@shipload/sdk 1.0.0-next.23 → 1.0.0-next.25
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.d.ts +46 -12
- package/lib/shipload.js +2128 -669
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2130 -669
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +5 -0
- package/lib/testing.js +29 -13
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +29 -13
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/contracts/server.ts +16 -1
- package/src/data/colors.ts +1 -19
- package/src/data/metadata.ts +13 -13
- package/src/index-module.ts +1 -3
- package/src/managers/actions.ts +65 -20
- package/src/managers/base.ts +4 -0
- package/src/managers/construction-types.ts +11 -1
- package/src/managers/construction.ts +51 -2
- package/src/managers/context.ts +2 -1
- package/src/managers/index.ts +1 -0
- package/src/managers/locations.ts +24 -10
- package/src/managers/plot.ts +9 -5
- package/src/nft/atomicassets.abi.json +1342 -0
- package/src/nft/atomicassets.ts +9 -3
- package/src/resolution/resolve-item.ts +2 -8
- package/src/shipload.ts +11 -1
- package/src/types.ts +1 -0
package/lib/shipload.js
CHANGED
|
@@ -427,7 +427,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
427
427
|
Contract: Contract$1
|
|
428
428
|
});
|
|
429
429
|
|
|
430
|
-
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDiiAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAgJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1wbG90AAMKYnVpbGRlcl9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmNvb3Jkcwtjb29yZGluYXRlcwljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwZjb21taXQAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGY29tbWl0C2NoZWNrc3VtMjU2CmNvbW1pdF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAQCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQACAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmCmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABoEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpdGVtX2lkBnVpbnQxNgljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPw5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQllcG9jaF9yb3cABAVlcG9jaAZ1aW50NjQKb3JhY2xlX2lkcwZuYW1lW10JdGhyZXNob2xkBXVpbnQ4BHNlZWQLY2hlY2tzdW0yNTYMZml4Y2FyZ29tYXNzAAEJZW50aXR5X2lkBnVpbnQ2NAtmb3JjZXJldmVhbAABBWVwb2NoBnVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAECXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg5nYXRoZXJlcl9zdGF0cwADBXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MTYFZGVwdGgGdWludDE2CWdldGNvbmZpZwAACmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAMIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDE2C2ltcG9ydGNhcmdvAAEDcm93CWNhcmdvX3JvdwxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwACBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbA9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQOcGFja2VkX21vZHVsZT8LbW9kdWxlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzILbW9kdWxlX3R5cGUFdWludDgEdGllcgV1aW50OA5tb2R1bGVzX3Jlc3VsdAABB21vZHVsZXMNbW9kdWxlX2luZm9bXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvDm5mdF9jYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyEG5mdF9pdGVtX3BheWxvYWQAAgRpdGVtDm5mdF9jYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAwdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lC3RlbXBsYXRlX2lkBWludDMyDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lCW5mdGltZ3VybAACBGl0ZW0KY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0aW5mb19yZXN1bHQAAgdzY2hlbWFzEG5mdF9zY2hlbWFfZGVmW10JdGVtcGxhdGVzEm5mdF90ZW1wbGF0ZV9kZWZbXQZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50EW9yYWNsZV9jb25maWdfcm93AAEJdGhyZXNob2xkBXVpbnQ4Cm9yYWNsZV9yb3cAAQJpZARuYW1lDXBhY2tlZF9tb2R1bGUAAgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQKcGxhY2VjYXJnbwADBW93bmVyBG5hbWUHaG9zdF9pZAZ1aW50NjQIYXNzZXRfaWQGdWludDY0C3BsYWNlZW50aXR5AAMFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQPdGFyZ2V0X25leHVzX2lkBnVpbnQ2NAtwbGF5ZXJfaW5mbwADBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQ9wcm9qZWN0ZWRfc3RhdGUADgVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29fdmlld1tdCGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UABw5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWULcmVzZXJ2ZV9yb3cABQJpZAZ1aW50NjQIY29vcmRfaWQGdWludDY0B3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIKbGFzdF9ibG9jaxRibG9ja190aW1lc3RhbXBfdHlwZQdyZXNvbHZlAAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQhzbG90X2RlZgACBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cAAwdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcIdHJhbnNmZXIAAwlzb3VyY2VfaWQGdWludDY0B2Rlc3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAUCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZxZzdHJhdHVtX3JlbWFpbmluZ190eXBlEXN0cmF0dW1fcmVtYWluaW5nFW5mdF9pdGVtX3BheWxvYWRfdHlwZRBuZnRfaXRlbV9wYXlsb2FkCHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAR3YXJwAAMCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAA53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NFAAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAADINFbpTEQJY2xhaW1wbG90AAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AQHaYVpWyYgpnZXRkZXBvc2l0AABUPI65qLJiC2dldGVsaWdpYmxlyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZWxpZ2libGUKc3VtbWFyeTogJ0dldCBlbGlnaWJsZSByZXNvdXJjZSBpdGVtIElEcyBhdCBhIGxvY2F0aW9uIGFuZCBzdHJhdHVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbGlzdCBvZiByZXNvdXJjZSBpdGVtIElEcyBlbGlnaWJsZSB0byBiZSBnYXRoZXJlZCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgYW5kIHN0cmF0dW0gZGVwdGguIEl0ZW1zIGFyZSBnYXRlZCBieSBib3RoIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIHByb2ZpbGUgYW5kIHRoZSBkZXB0aCB0aHJlc2hvbGQgZm9yIGVhY2ggdGllci4AAMAR5amyYglnZXRlbnRjbHOMAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRjbHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoT3JiaXRhbFZlc3NlbCwgUGxhbmV0YXJ5U3RydWN0dXJlKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgZW50aXR5IGNsYXNzIGlkZW50aWZpZXJzLgCwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgBMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AgMLm5DWzYgpnZXRuZnRiYXNlAAAAXdPlNbNiCmdldG5mdGluZm/wAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZnRpbmZvCnN1bW1hcnk6ICdHZXQgTkZUIHNjaGVtYSBhbmQgdGVtcGxhdGUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIEF0b21pY0Fzc2V0cyBzY2hlbWFzIGFuZCB0ZW1wbGF0ZXMgdGhlIGdhbWUgY29udHJhY3QgZXhwZWN0cywgcGx1cyB0aGUgY3VycmVudCBgaXRlbV9pZCDihpIgKHRlbXBsYXRlX2lkLCBzY2hlbWFfbmFtZSlgIG1hcHBpbmcgc3RvcmVkIGluIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBzeW5jIGF0b21pY2Fzc2V0cyBzdGF0ZSB3aXRoIHRoZSBjb250cmFjdC4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLqCyyfjRW7NiDGdldHByb2pzdGF0ZcsDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHByb2pzdGF0ZQpzdW1tYXJ5OiAnR2V0IHByb2plY3RlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBwcm9qZWN0ZWQgc3RhdGUgb2YgYW4gZW50aXR5IGFmdGVyIGFwcGx5aW5nIHRoZSBuZXh0IHRhc2tfY291bnQgc2NoZWR1bGVkIHRhc2tzIChvciBhbGwgdGFza3MgaWYgdGFza19jb3VudCBpcyBvbWl0dGVkKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBwcmV2aWV3IHRoZSByZXN1bHQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUgd2l0aG91dCByZXNvbHZpbmcgb24tY2hhaW4uAABQ1SF1s2IJZ2V0cmVjaXBlpgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlCnN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgY3JhZnRpbmcgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcmVjaXBlIHdob3NlIG91dHB1dCBtYXRjaGVzIHRoZSBnaXZlbiBpdGVtIGlkLCBpbmNsdWRpbmcgaXRzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRpc3BsYXkgY3JhZnRpbmcgcmVxdWlyZW1lbnRzLgAAVtUhdbNiCmdldHJlY2lwZXOsAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGVzCnN1bW1hcnk6ICdMaXN0IGNyYWZ0aW5nIHJlY2lwZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY3JhZnRpbmcgcmVjaXBlcyBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgbG93ZXIgYm91bmQgb3V0cHV0IGl0ZW0gaWQsIHVwIHRvIHRoZSBzcGVjaWZpZWQgbGltaXQuIEVhY2ggZW50cnkgaW5jbHVkZXMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uAADOBmF1s2IKZ2V0cmVzY2F0c54DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2NhdHMKc3VtbWFyeTogJ0dldCByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKG9yZSwgZ2FzLCByZWdvbGl0aCwgYmlvbWFzcywgY3J5c3RhbCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIHJlc291cmNlIHN1YnR5cGUgaWRlbnRpZmllcnMuALDaV2F1s2ILZ2V0cmVzZXJ2ZXP8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNlcnZlcwpzdW1tYXJ5OiAnR2V0IGN1cnJlbnQgcmVzZXJ2ZSBtb2RpZmljYXRpb25zIGF0IGEgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGNoYWluJ3MgbW9kaWZpY2F0aW9ucyB0byBkZXJpdmVkIHJlc2VydmVzIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlIGZvciB0aGUgY3VycmVudCBlcG9jaCBhcyBhIGxpc3Qgb2Yge3N0cmF0dW0sIHJlbWFpbmluZ30gcGFpcnMuIFN0cmF0YSBub3QgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgdXNlIHRoZWlyIGRlcml2ZWQgaW5pdGlhbCByZXNlcnZlLiBDb21wb3NlIHdpdGggU0RLIGRlcml2YXRpb24gdG8gZ2V0IHRoZSBmdWxsIHBlci1sb2NhdGlvbiBzdHJhdGEgdmlldy6AFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28A4LPLU+VLq3QMaW1wb3J0ZW50aXR5AACqppflS6t0C2ltcG9ydGdyb3VwAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEAAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAADMAAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnAEB2mFaVsmIOZXh0ZW5kZWRfYXNzZXQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
430
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDijAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAgJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1wbG90AAMKYnVpbGRlcl9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmNvb3Jkcwtjb29yZGluYXRlcwljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwZjb21taXQAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGY29tbWl0C2NoZWNrc3VtMjU2CmNvbW1pdF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAQCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10NY3JhZnRlcl9zdGF0cwACBXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQACAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmCmRlc2NlbnRpdHkABAdpdGVtX2lkBnVpbnQxNgpodWxsX3N0YXRzBnVpbnQ2NAxtb2R1bGVfaXRlbXMIdWludDE2W10MbW9kdWxlX3N0YXRzCHVpbnQ2NFtdBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAAgt3YXJlaG91c2VfegZ1aW50MTYLY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABoEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpdGVtX2lkBnVpbnQxNgljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPw1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwALAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHNjaGVkdWxlCXNjaGVkdWxlPw5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10LZW51bV9tZW1iZXIAAgV2YWx1ZQV1aW50OARuYW1lBnN0cmluZwtlbnVtX3Jlc3VsdAABB21lbWJlcnMNZW51bV9tZW1iZXJbXQllcG9jaF9yb3cABAVlcG9jaAZ1aW50NjQKb3JhY2xlX2lkcwZuYW1lW10JdGhyZXNob2xkBXVpbnQ4BHNlZWQLY2hlY2tzdW0yNTYMZml4Y2FyZ29tYXNzAAEJZW50aXR5X2lkBnVpbnQ2NAtmb3JjZXJldmVhbAABBWVwb2NoBnVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAECXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg5nYXRoZXJlcl9zdGF0cwADBXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MTYFZGVwdGgGdWludDE2CWdldGNvbmZpZwAACmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtncm91cHRyYXZlbAAECGVudGl0aWVzDGVudGl0eV9yZWZbXQF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcMaGF1bGVyX3N0YXRzAAMIY2FwYWNpdHkFdWludDgKZWZmaWNpZW5jeQZ1aW50MTYFZHJhaW4GdWludDE2C2ltcG9ydGNhcmdvAAEDcm93CWNhcmdvX3JvdwxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwACBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbA9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQOcGFja2VkX21vZHVsZT8LbW9kdWxlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzILbW9kdWxlX3R5cGUFdWludDgEdGllcgV1aW50OA5tb2R1bGVzX3Jlc3VsdAABB21vZHVsZXMNbW9kdWxlX2luZm9bXQ5tb3ZlbWVudF9zdGF0cwACBnRocnVzdAZ1aW50MzIFZHJhaW4GdWludDE2C25lYXJieV9pbmZvAAUKY2FuX3RyYXZlbARib29sB2N1cnJlbnQUZW50aXR5X2N1cnJlbnRfc3RhdGUJcHJvamVjdGVkFGVudGl0eV9jdXJyZW50X3N0YXRlCm1heF9lbmVyZ3kGdWludDE2B3N5c3RlbXMPbmVhcmJ5X3N5c3RlbVtdDW5lYXJieV9zeXN0ZW0ABAhkaXN0YW5jZQZ1aW50NjQLZW5lcmd5X2Nvc3QGdWludDY0C2ZsaWdodF90aW1lBnVpbnQzMghsb2NhdGlvbg1sb2NhdGlvbl9pbmZvDm5mdF9jYXJnb19pdGVtAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyEG5mdF9pdGVtX3BheWxvYWQAAgRpdGVtDm5mdF9jYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRfc2NoZW1hX2RlZgACC3NjaGVtYV9uYW1lBG5hbWUGZmllbGRzDnNjaGVtYV9maWVsZFtdEG5mdF90ZW1wbGF0ZV9kZWYAAwdpdGVtX2lkBnVpbnQxNgtzY2hlbWFfbmFtZQRuYW1lC3RlbXBsYXRlX2lkBWludDMyDW5mdGNvbmZpZ19yb3cAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lCW5mdGltZ3VybAACBGl0ZW0KY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0aW5mb19yZXN1bHQAAgdzY2hlbWFzEG5mdF9zY2hlbWFfZGVmW10JdGVtcGxhdGVzEm5mdF90ZW1wbGF0ZV9kZWZbXQZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50EW9yYWNsZV9jb25maWdfcm93AAEJdGhyZXNob2xkBXVpbnQ4Cm9yYWNsZV9yb3cAAQJpZARuYW1lDXBhY2tlZF9tb2R1bGUAAgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQKcGxhY2VjYXJnbwADBW93bmVyBG5hbWUHaG9zdF9pZAZ1aW50NjQIYXNzZXRfaWQGdWludDY0C3BsYWNlZW50aXR5AAMFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQPdGFyZ2V0X25leHVzX2lkBnVpbnQ2NAtwbGF5ZXJfaW5mbwADBW93bmVyBG5hbWUJaXNfcGxheWVyBGJvb2wMY29tcGFueV9uYW1lBnN0cmluZwpwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQ9wcm9qZWN0ZWRfc3RhdGUADgVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQd1aW50MTY/CWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29fdmlld1tdCGh1bGxtYXNzB3VpbnQzMj8IY2FwYWNpdHkHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/CWdlbmVyYXRvcg1lbmVyZ3lfc3RhdHM/CGdhdGhlcmVyD2dhdGhlcmVyX3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UABw5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWULcmVzZXJ2ZV9yb3cABQJpZAZ1aW50NjQIY29vcmRfaWQGdWludDY0B3N0cmF0dW0GdWludDE2CXJlbWFpbmluZwZ1aW50MzIKbGFzdF9ibG9jaxRibG9ja190aW1lc3RhbXBfdHlwZQdyZXNvbHZlAAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQhzbG90X2RlZgACBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUKc3dhcG1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmBHRhc2sACAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDE2Pwp0YXNrX2V2ZW50AAkKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BXVpbnQ4BHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQxNj8MdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdEXRlbXBsYXRlX21ldGFfcm93AAMHaXRlbV9pZAZ1aW50MTYEa2luZARuYW1lDWRpc3BsYXlfbGFiZWwGc3RyaW5nCHRyYW5zZmVyAAMJc291cmNlX2lkBnVpbnQ2NAdkZXN0X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10GdHJhdmVsAAQCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAFAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZAh1bmRlcGxveQACB2hvc3RfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQEd2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAOd3JhcGNvbmZpZ19yb3cAAgdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lDHdyYXBjb3N0X3JvdwADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjRRAABQUScqUzIJYWRkbW9kdWxlxwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbW9kdWxlCnN1bW1hcnk6ICdJbnN0YWxsIGEgbW9kdWxlIGludG8gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YWxsIGEgbW9kdWxlIGZyb20gY2FyZ28gaW50byBhIG1vZHVsZSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSB0eXBlIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSB0YXJnZXQgc2xvdCB0eXBlLiBUaGUgbW9kdWxlIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIGNhcmdvIHVwb24gaW5zdGFsbGF0aW9uLgAAAFh3NVMyCGFkZG5leHVzpwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbmV4dXMKc3VtbWFyeTogJ0FkZCBhIG5leHVzIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDcmVhdGUgYSBuZXcgbmV4dXMgZW50aXR5IGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcy4gTmV4dXNlcyBhcmUgb3duZWQgYnkgdGhlIGNvbnRyYWN0IGFuZCBzZXJ2ZSBhcyBmaXhlZCBnYXRoZXJpbmcgcG9pbnRzIHdoZXJlIHBsYXllcnMgY2FuIHdyYXAsIHVud3JhcCwgZGVwbG95LCBhbmQgb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggTkZULWJhY2tlZCBhc3NldHMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAFARmUtTMglhZGRvcmFjbGUAAAAAAIA0VTwFYmxlbmT8Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIG5ldyBibGVuZGVkIHN0YXRzLiBBbGwgaW5wdXQgc3RhY2tzIG11c3Qgc2hhcmUgdGhlIHNhbWUgaXRlbSBpZC4gVGhlIG91dHB1dCBzdGFjayBoYXMgdGhlIGNvbWJpbmVkIHF1YW50aXR5IG9mIGFsbCBpbnB1dHMuAADINNYUnT4JYnVpbGRwbG90AAAAAABEhaZBBmNhbmNlbMICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNhbmNlbApzdW1tYXJ5OiAnQ2FuY2VsIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FuY2VsIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRhc2tzIGZyb20gdGhlIGVuZCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZS4gVGFza3MgdGhhdCBhcmUgaW1tdXRhYmxlIGFuZCBpbiBwcm9ncmVzcyBjYW5ub3QgYmUgY2FuY2VsbGVkLgAAyDRW6UxECWNsYWltcGxvdAAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgCiUVtdhS5dC2ZvcmNlcmV2ZWFsvgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm9yY2VyZXZlYWwKc3VtbWFyeTogJ0RFQlVHOiBmb3JjZS1maW5hbGl6ZSBhbiBlcG9jaCBmcm9tIGV4aXN0aW5nIHJldmVhbHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZpbmFsaXplIGEgc3R1Y2sgZXBvY2ggYnkgY29tcHV0aW5nIGl0cyBzZWVkIGZyb20gdGhlIHJldmVhbHMgYWxyZWFkeSBzdWJtaXR0ZWQsIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIFRoZSBzZWVkIGlzIGRlcml2ZWQgc29sZWx5IGZyb20gdGhlIHByZS1pbWFnZS1sb2NrZWQgcmV2ZWFscyBhbHJlYWR5IG9uIGNoYWluOyBubyBhZG1pbi1zdXBwbGllZCBlbnRyb3B5IGlzIGludHJvZHVjZWQuIFVzZWQgdG8gdW5ibG9jayBlcG9jaCBwcm9ncmVzc2lvbiB3aGVuIHRoZSB0aHJlc2hvbGQgY2Fubm90IG90aGVyd2lzZSBiZSBtZXQuAAAAAFzVsmEGZ2F0aGVylwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2F0aGVyCnN1bW1hcnk6ICdHYXRoZXIgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpHYXRoZXIgcmVzb3VyY2VzIGF0IHRoZSBzaGlwJ3MgY3VycmVudCBsb2NhdGlvbi4gT25seSB3b3JrcyBhdCBnYXRoZXJhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYSBnYXRoZXIgdGFzayB0aGF0IGNvbnN1bWVzIGVuZXJneSBhbmQgeWllbGRzIGNhcmdvIGJhc2VkIG9uIHRoZSBzaGlwJ3MgZ2F0aGVyZXIgc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4ATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ53gMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgZmxpZ2h0IHRpbWUsIGFuZCBtYXJrZXQgaW5mb3JtYXRpb24uAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS6gssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaPgBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAouwblS6t0C2ltcG9ydGNhcmdvAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAqqaX5UurdAtpbXBvcnRncm91cABwlTex5kurdAxpbXBvcnRwbGF5ZXIAuq/C6uZLq3QNaW1wb3J0cmVzZXJ2ZQAAVDYZ50urdAtpbXBvcnRzdGF0ZQAAAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAACIVzPp8poJbmZ0aW1ndXJssgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbmZ0aW1ndXJsCnN1bW1hcnk6ICdHZXQgTkZUIGltYWdlIFVSTCBmb3IgYSBjYXJnbyBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgaW1hZ2UgVVJMIHRoZSBjb250cmFjdCBlbWl0cyBmb3IgYSBnaXZlbiBjYXJnbyBpdGVtLCBvcHRpb25hbGx5IHNjb3BlZCB0byBhIGxvY2F0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGZldGNoIHRoZSBjYW5vbmljYWwgYXJ0d29yayBmb3IgYW4gaXRlbSBvciBwYWNrZWQgZW50aXR5LgAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAZdcghUysCnBsYWNlY2FyZ2/JBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWNhcmdvCnN1bW1hcnk6ICdSZXN0b3JlIE5GVCBjYXJnbyBvbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXN0b3JlcyB0aGUgY2FyZ28gcmVjb3JkZWQgaW4gYW4gdW53cmFwcGVkIE5GVCBvbnRvIGEgaG9zdCBlbnRpdHkuIFZhbGlkYXRlcyBob3N0IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHJlbWFpbmluZyBjYXBhY2l0eSwgZGVzZXJpYWxpemVzIHRoZSBORlQncyBpdGVtIGRhdGEsIGFuZCBhcHBlbmRzIGFuIHVud3JhcCB0YXNrIHRvIGRlbGl2ZXIgdGhlIGNhcmdvIHRvIHRoZSBob3N0LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgB8dnkqhUysC3BsYWNlZW50aXR5wAQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VlbnRpdHkKc3VtbWFyeTogJ01hdGVyaWFsaXplIGEgcGFja2VkLWVudGl0eSBORlQgYXMgYSBsaXZlIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIEVtcGxhY2VzIGEgbGl2ZSBvcmJpdGFsIHZlc3NlbCAoc2hpcCBvciBjb250YWluZXIpIGZyb20gaXRzIHBhY2tlZC1lbnRpdHkgTkZUIGRhdGEgYXQgdGhlIHJlY29yZGVkIHdyYXAgb3JpZ2luLCB0aGVuIHF1ZXVlcyB0cmF2ZWwgYW5kIHJlY2hhcmdlIHRhc2tzIHRvIGRlbGl2ZXIgaXQgdG8gdGhlIHRhcmdldCBuZXh1cyBhdCBmdWxsIGVuZXJneS4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUu4LPLUzV8l7oMcmVmcnNoZW50aXR5uAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVmcnNoZW50aXR5CnN1bW1hcnk6ICdSZWZyZXNoIGRlcml2ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgZGVyaXZlZCBmaWVsZHMgb24gYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgY2FyZ28gYW5kIG1vZHVsZXMsIHJlZnJlc2hpbmcgY2FwYWJpbGl0eSBzdGF0cyBhbmQgY2FyZ28gbWFzcy4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFVzZWQgdG8gcmVjb25jaWxlIGRlcml2ZWQgc3RhdGUgYWZ0ZXIgZGF0YSBtaWdyYXRpb25zIG9yIGNvbnRyYWN0IHVwZ3JhZGVzLqAiMpeqTaW6DHJlbW92ZW9yYWNsZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAKDsGsRpxglzdG93Y2FyZ2/VBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93Y2FyZ28Kc3VtbWFyeTogJ1Jlc2VydmUgYSBjYXJnbyBzdGFjayBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhbmQgY29uc3VtZXMgYSBjYXJnbyBzdGFjayBvbiBhIGxpdmUgZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVmFsaWRhdGVzIGVudGl0eSBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCBwcmVzZW5jZSBhdCB0aGUgbmV4dXMsIGFuZCBjb25maXJtcyB0aGUgdGFyZ2V0IGNhcmdvIHN0YWNrIGlzIGF2YWlsYWJsZSBhbmQgbm90IHJlc2VydmVkIGJ5IGEgcGVuZGluZyB0YXNrLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBORlQncyBpbW11dGFibGUgZGF0YSwgYW5kIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0IGJlZm9yZSBjb25zdW1pbmcgdGhlIGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAIDPLk/FacYKc3Rvd2VudGl0eZkFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3dlbnRpdHkKc3VtbWFyeTogJ1Jlc2VydmUgYW4gZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGEgd2hvbGUgZW50aXR5IChzaGlwLCBjb250YWluZXIsIG9yIHBsYW5ldGFyeSBzdHJ1Y3R1cmUpIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnbyBhbmQgbm8gc2NoZWR1bGVkIHRhc2tzLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBlbnRpdHkgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0LCBhbmQgZXJhc2VzIHRoZSBlbnRpdHkgZnJvbSB0aGUgd29ybGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgIo6UVkNxwpzd2FwbW9kdWxlAAAAAFctPM3NCHRyYW5zZmVyyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhbnNmZXIKc3VtbWFyeTogJ1RyYW5zZmVyIGNhcmdvIGJldHdlZW4gZW50aXRpZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZmVyIGNhcmdvIGJldHdlZW4gdHdvIGVudGl0aWVzIGF0IHRoZSBzYW1lIGxvY2F0aW9uLiBCb3RoIGVudGl0aWVzIG11c3QgYmUgb3duZWQgYnkgdGhlIGNhbGxlciBhbmQgYXQgbGVhc3Qgb25lIG11c3QgaGF2ZSBsb2FkZXJzLiBDcmVhdGVzIGxvYWQgYW5kIHVubG9hZCB0YXNrcyBvbiBib3RoIGVudGl0aWVzIHdpdGggZHVyYXRpb24gYmFzZWQgb24gY29tYmluZWQgbG9hZGVyIGNhcGFjaXR5IGFuZCBaLWRpc3RhbmNlIGJldHdlZW4gdGhlbS4AAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEAAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAADMAAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwAAYG5NirJiC2dhbWVfY29uZmlnAEB2mFaVsmIOZXh0ZW5kZWRfYXNzZXQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvAEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10Aotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAVy08zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
431
431
|
const abi = antelope.ABI.from(abiBlob);
|
|
432
432
|
exports.ServerTypes = void 0;
|
|
433
433
|
(function (Types) {
|
|
@@ -2558,6 +2558,21 @@ exports.ServerTypes = void 0;
|
|
|
2558
2558
|
antelope.Struct.type('stratum_remaining')
|
|
2559
2559
|
], stratum_remaining);
|
|
2560
2560
|
Types.stratum_remaining = stratum_remaining;
|
|
2561
|
+
let swapmodule = class swapmodule extends antelope.Struct {
|
|
2562
|
+
};
|
|
2563
|
+
tslib.__decorate([
|
|
2564
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2565
|
+
], swapmodule.prototype, "entity_id", void 0);
|
|
2566
|
+
tslib.__decorate([
|
|
2567
|
+
antelope.Struct.field(antelope.UInt8)
|
|
2568
|
+
], swapmodule.prototype, "module_index", void 0);
|
|
2569
|
+
tslib.__decorate([
|
|
2570
|
+
antelope.Struct.field(cargo_ref)
|
|
2571
|
+
], swapmodule.prototype, "module_ref", void 0);
|
|
2572
|
+
swapmodule = tslib.__decorate([
|
|
2573
|
+
antelope.Struct.type('swapmodule')
|
|
2574
|
+
], swapmodule);
|
|
2575
|
+
Types.swapmodule = swapmodule;
|
|
2561
2576
|
let task_results = class task_results extends antelope.Struct {
|
|
2562
2577
|
};
|
|
2563
2578
|
tslib.__decorate([
|
|
@@ -2839,6 +2854,7 @@ exports.TaskType = void 0;
|
|
|
2839
2854
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
2840
2855
|
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
2841
2856
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
2857
|
+
TaskType[TaskType["RESERVED"] = 16] = "RESERVED";
|
|
2842
2858
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
2843
2859
|
exports.LocationType = void 0;
|
|
2844
2860
|
(function (LocationType) {
|
|
@@ -4738,24 +4754,24 @@ const itemMetadata = {
|
|
|
4738
4754
|
208: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4739
4755
|
209: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4740
4756
|
210: { name: 'Crystal', description: '', color: '#4ADBFF' },
|
|
4741
|
-
301: { name: 'Gas', description: 'Raw volatile gas.', color: '#
|
|
4757
|
+
301: { name: 'Gas', description: 'Raw volatile gas.', color: '#B877FF' },
|
|
4742
4758
|
302: {
|
|
4743
4759
|
name: 'Gas',
|
|
4744
4760
|
description: 'Refined volatile gas with improved reactivity.',
|
|
4745
|
-
color: '#
|
|
4761
|
+
color: '#B877FF',
|
|
4746
4762
|
},
|
|
4747
4763
|
303: {
|
|
4748
4764
|
name: 'Gas',
|
|
4749
4765
|
description: 'High-grade volatile gas with exceptional energy density.',
|
|
4750
|
-
color: '#
|
|
4766
|
+
color: '#B877FF',
|
|
4751
4767
|
},
|
|
4752
|
-
304: { name: 'Gas', description: '', color: '#
|
|
4753
|
-
305: { name: 'Gas', description: '', color: '#
|
|
4754
|
-
306: { name: 'Gas', description: '', color: '#
|
|
4755
|
-
307: { name: 'Gas', description: '', color: '#
|
|
4756
|
-
308: { name: 'Gas', description: '', color: '#
|
|
4757
|
-
309: { name: 'Gas', description: '', color: '#
|
|
4758
|
-
310: { name: 'Gas', description: '', color: '#
|
|
4768
|
+
304: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4769
|
+
305: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4770
|
+
306: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4771
|
+
307: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4772
|
+
308: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4773
|
+
309: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4774
|
+
310: { name: 'Gas', description: '', color: '#B877FF' },
|
|
4759
4775
|
401: { name: 'Regolith', description: 'Crude regolith dust.', color: '#C4A57B' },
|
|
4760
4776
|
402: {
|
|
4761
4777
|
name: 'Regolith',
|
|
@@ -4835,7 +4851,7 @@ const itemMetadata = {
|
|
|
4835
4851
|
10009: {
|
|
4836
4852
|
name: 'Reactor',
|
|
4837
4853
|
description: 'Gas-pressurized vessel for controlled reactions. Vents heat and contains volatility.',
|
|
4838
|
-
color: '#
|
|
4854
|
+
color: '#B877FF',
|
|
4839
4855
|
},
|
|
4840
4856
|
10010: {
|
|
4841
4857
|
name: 'Emitter',
|
|
@@ -4865,7 +4881,7 @@ const itemMetadata = {
|
|
|
4865
4881
|
10104: {
|
|
4866
4882
|
name: 'Crafter',
|
|
4867
4883
|
description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
|
|
4868
|
-
color: '#
|
|
4884
|
+
color: '#B877FF',
|
|
4869
4885
|
},
|
|
4870
4886
|
10105: {
|
|
4871
4887
|
name: 'Storage',
|
|
@@ -7602,6 +7618,9 @@ class BaseManager {
|
|
|
7602
7618
|
get platform() {
|
|
7603
7619
|
return this.context.platform;
|
|
7604
7620
|
}
|
|
7621
|
+
get atomicAssetsAccount() {
|
|
7622
|
+
return this.context.atomicAssetsAccount;
|
|
7623
|
+
}
|
|
7605
7624
|
async getGame() {
|
|
7606
7625
|
return this.context.getGame();
|
|
7607
7626
|
}
|
|
@@ -9188,7 +9207,7 @@ class LocationsManager extends BaseManager {
|
|
|
9188
9207
|
const game = await this.getGame();
|
|
9189
9208
|
return findNearbyPlanets(game.config.seed, origin, maxDistance);
|
|
9190
9209
|
}
|
|
9191
|
-
async getStrata(coords) {
|
|
9210
|
+
async getStrata(coords, now = antelope.BlockTimestamp.fromMilliseconds(Date.now())) {
|
|
9192
9211
|
const game = await this.getGame();
|
|
9193
9212
|
const state = await this.getState();
|
|
9194
9213
|
const derived = deriveStrata(coords, game.config.seed, state.epochSeed);
|
|
@@ -9198,15 +9217,22 @@ class LocationsManager extends BaseManager {
|
|
|
9198
9217
|
x: coords.x,
|
|
9199
9218
|
y: coords.y,
|
|
9200
9219
|
}));
|
|
9220
|
+
const epochSeconds = Number(game.config.epochtime);
|
|
9201
9221
|
const overrideMap = new Map();
|
|
9202
9222
|
for (const o of overrides) {
|
|
9203
|
-
overrideMap.set(Number(o.stratum),
|
|
9204
|
-
}
|
|
9205
|
-
return derived.map((s) =>
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9209
|
-
|
|
9223
|
+
overrideMap.set(Number(o.stratum), o);
|
|
9224
|
+
}
|
|
9225
|
+
return derived.map((s) => {
|
|
9226
|
+
const override = overrideMap.get(s.index);
|
|
9227
|
+
const reserve = override
|
|
9228
|
+
? getEffectiveReserve({
|
|
9229
|
+
remaining: override.remaining,
|
|
9230
|
+
max_reserve: s.reserve,
|
|
9231
|
+
last_block: override.last_block,
|
|
9232
|
+
}, now, epochSeconds)
|
|
9233
|
+
: s.reserve;
|
|
9234
|
+
return { ...s, reserveMax: s.reserve, reserve };
|
|
9235
|
+
});
|
|
9210
9236
|
}
|
|
9211
9237
|
}
|
|
9212
9238
|
|
|
@@ -9281,123 +9307,1923 @@ class EpochsManager extends BaseManager {
|
|
|
9281
9307
|
}
|
|
9282
9308
|
}
|
|
9283
9309
|
|
|
9284
|
-
|
|
9285
|
-
|
|
9286
|
-
|
|
9287
|
-
|
|
9288
|
-
|
|
9289
|
-
id: antelope.UInt64.from(shipId),
|
|
9290
|
-
x,
|
|
9291
|
-
y,
|
|
9292
|
-
recharge,
|
|
9293
|
-
});
|
|
9310
|
+
function deserializeAtomicData(data, schema) {
|
|
9311
|
+
let rawData;
|
|
9312
|
+
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
9313
|
+
rawData = data
|
|
9314
|
+
.immutable_serialized_data;
|
|
9294
9315
|
}
|
|
9295
|
-
|
|
9296
|
-
|
|
9297
|
-
entity_type: e.entityType,
|
|
9298
|
-
entity_id: antelope.UInt64.from(e.entityId),
|
|
9299
|
-
}));
|
|
9300
|
-
const x = antelope.Int64.from(destination.x);
|
|
9301
|
-
const y = antelope.Int64.from(destination.y);
|
|
9302
|
-
return this.server.action('grouptravel', {
|
|
9303
|
-
entities: entityRefs,
|
|
9304
|
-
x,
|
|
9305
|
-
y,
|
|
9306
|
-
recharge,
|
|
9307
|
-
});
|
|
9316
|
+
else {
|
|
9317
|
+
rawData = data;
|
|
9308
9318
|
}
|
|
9309
|
-
|
|
9310
|
-
|
|
9311
|
-
|
|
9312
|
-
|
|
9313
|
-
|
|
9314
|
-
|
|
9319
|
+
let bytes;
|
|
9320
|
+
if (typeof rawData === 'string') {
|
|
9321
|
+
const hex = rawData;
|
|
9322
|
+
bytes = new Uint8Array(hex.length / 2);
|
|
9323
|
+
for (let i = 0; i < hex.length; i += 2) {
|
|
9324
|
+
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
9315
9325
|
}
|
|
9316
|
-
return this.server.action('resolve', params);
|
|
9317
|
-
}
|
|
9318
|
-
cancel(entityId, count) {
|
|
9319
|
-
return this.server.action('cancel', {
|
|
9320
|
-
id: antelope.UInt64.from(entityId),
|
|
9321
|
-
count: antelope.UInt64.from(count),
|
|
9322
|
-
});
|
|
9323
|
-
}
|
|
9324
|
-
recharge(entityId) {
|
|
9325
|
-
return this.server.action('recharge', {
|
|
9326
|
-
id: antelope.UInt64.from(entityId),
|
|
9327
|
-
});
|
|
9328
|
-
}
|
|
9329
|
-
refrshentity(entityId) {
|
|
9330
|
-
return this.server.action('refrshentity', {
|
|
9331
|
-
entity_id: antelope.UInt64.from(entityId),
|
|
9332
|
-
});
|
|
9333
|
-
}
|
|
9334
|
-
transfer(sourceId, destId, items) {
|
|
9335
|
-
return this.server.action('transfer', {
|
|
9336
|
-
source_id: antelope.UInt64.from(sourceId),
|
|
9337
|
-
dest_id: antelope.UInt64.from(destId),
|
|
9338
|
-
items,
|
|
9339
|
-
});
|
|
9340
|
-
}
|
|
9341
|
-
foundCompany(account, name) {
|
|
9342
|
-
return this.platform.action('foundcompany', {
|
|
9343
|
-
account: antelope.Name.from(account),
|
|
9344
|
-
name,
|
|
9345
|
-
});
|
|
9346
9326
|
}
|
|
9347
|
-
|
|
9348
|
-
|
|
9349
|
-
account: antelope.Name.from(account),
|
|
9350
|
-
});
|
|
9327
|
+
else if (Array.isArray(rawData)) {
|
|
9328
|
+
bytes = new Uint8Array(rawData);
|
|
9351
9329
|
}
|
|
9352
|
-
|
|
9353
|
-
|
|
9354
|
-
source_id: antelope.UInt64.from(sourceId),
|
|
9355
|
-
destination_id: antelope.UInt64.from(destinationId),
|
|
9356
|
-
stratum: antelope.UInt16.from(stratum),
|
|
9357
|
-
quantity: antelope.UInt32.from(quantity),
|
|
9358
|
-
});
|
|
9330
|
+
else {
|
|
9331
|
+
bytes = rawData;
|
|
9359
9332
|
}
|
|
9360
|
-
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9366
|
-
|
|
9367
|
-
|
|
9333
|
+
let offset = 0;
|
|
9334
|
+
function readVarint() {
|
|
9335
|
+
let result = 0;
|
|
9336
|
+
let multiplier = 1;
|
|
9337
|
+
while (bytes[offset] >= 128) {
|
|
9338
|
+
result += (bytes[offset] - 128) * multiplier;
|
|
9339
|
+
offset++;
|
|
9340
|
+
multiplier *= 128;
|
|
9341
|
+
}
|
|
9342
|
+
result += bytes[offset] * multiplier;
|
|
9343
|
+
offset++;
|
|
9344
|
+
return result;
|
|
9368
9345
|
}
|
|
9369
|
-
|
|
9370
|
-
|
|
9371
|
-
|
|
9372
|
-
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9346
|
+
function readVarint64() {
|
|
9347
|
+
let result = 0n;
|
|
9348
|
+
let multiplier = 1n;
|
|
9349
|
+
while (bytes[offset] >= 128) {
|
|
9350
|
+
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
9351
|
+
offset++;
|
|
9352
|
+
multiplier *= 128n;
|
|
9353
|
+
}
|
|
9354
|
+
result += BigInt(bytes[offset]) * multiplier;
|
|
9355
|
+
offset++;
|
|
9356
|
+
return result;
|
|
9376
9357
|
}
|
|
9377
|
-
|
|
9378
|
-
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
}
|
|
9358
|
+
function readZigzagInt64() {
|
|
9359
|
+
const unsigned = readVarint64();
|
|
9360
|
+
if (unsigned % 2n === 0n) {
|
|
9361
|
+
return unsigned / 2n;
|
|
9362
|
+
}
|
|
9363
|
+
else {
|
|
9364
|
+
return -(unsigned / 2n) - 1n;
|
|
9365
|
+
}
|
|
9382
9366
|
}
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
|
-
|
|
9386
|
-
|
|
9387
|
-
|
|
9367
|
+
function readString() {
|
|
9368
|
+
const length = readVarint();
|
|
9369
|
+
const str = new TextDecoder().decode(bytes.slice(offset, offset + length));
|
|
9370
|
+
offset += length;
|
|
9371
|
+
return str;
|
|
9388
9372
|
}
|
|
9389
|
-
|
|
9390
|
-
|
|
9391
|
-
|
|
9392
|
-
|
|
9393
|
-
|
|
9394
|
-
|
|
9373
|
+
const RESERVED = 4;
|
|
9374
|
+
const result = {};
|
|
9375
|
+
while (offset < bytes.length) {
|
|
9376
|
+
const fieldIndex = readVarint() - RESERVED;
|
|
9377
|
+
const field = schema[fieldIndex];
|
|
9378
|
+
if (!field)
|
|
9379
|
+
break;
|
|
9380
|
+
switch (field.type) {
|
|
9381
|
+
case 'uint16':
|
|
9382
|
+
result[field.name] = readVarint();
|
|
9383
|
+
break;
|
|
9384
|
+
case 'uint32':
|
|
9385
|
+
result[field.name] = readVarint();
|
|
9386
|
+
break;
|
|
9387
|
+
case 'uint64':
|
|
9388
|
+
result[field.name] = readVarint64();
|
|
9389
|
+
break;
|
|
9390
|
+
case 'int32':
|
|
9391
|
+
result[field.name] = readZigzagInt64();
|
|
9392
|
+
break;
|
|
9393
|
+
case 'int64':
|
|
9394
|
+
result[field.name] = readZigzagInt64();
|
|
9395
|
+
break;
|
|
9396
|
+
case 'string':
|
|
9397
|
+
case 'image':
|
|
9398
|
+
case 'ipfs':
|
|
9399
|
+
result[field.name] = readString();
|
|
9400
|
+
break;
|
|
9401
|
+
case 'uint16[]': {
|
|
9402
|
+
const len = readVarint();
|
|
9403
|
+
const arr = [];
|
|
9404
|
+
for (let i = 0; i < len; i++)
|
|
9405
|
+
arr.push(readVarint());
|
|
9406
|
+
result[field.name] = arr;
|
|
9407
|
+
break;
|
|
9408
|
+
}
|
|
9409
|
+
case 'uint64[]': {
|
|
9410
|
+
const len = readVarint();
|
|
9411
|
+
const arr = [];
|
|
9412
|
+
for (let i = 0; i < len; i++)
|
|
9413
|
+
arr.push(readVarint64());
|
|
9414
|
+
result[field.name] = arr;
|
|
9415
|
+
break;
|
|
9416
|
+
}
|
|
9417
|
+
default:
|
|
9418
|
+
throw new Error(`Unknown type: ${field.type}`);
|
|
9419
|
+
}
|
|
9395
9420
|
}
|
|
9396
|
-
|
|
9397
|
-
|
|
9398
|
-
|
|
9399
|
-
|
|
9400
|
-
|
|
9421
|
+
return result;
|
|
9422
|
+
}
|
|
9423
|
+
|
|
9424
|
+
const MODULE_ANY = 0;
|
|
9425
|
+
const MODULE_ENGINE = 1;
|
|
9426
|
+
const MODULE_GENERATOR = 2;
|
|
9427
|
+
const MODULE_GATHERER = 3;
|
|
9428
|
+
const MODULE_LOADER = 4;
|
|
9429
|
+
const MODULE_WARP = 5;
|
|
9430
|
+
const MODULE_CRAFTER = 6;
|
|
9431
|
+
const MODULE_LAUNCHER = 7;
|
|
9432
|
+
const MODULE_STORAGE = 8;
|
|
9433
|
+
const MODULE_HAULER = 9;
|
|
9434
|
+
const MODULE_BATTERY = 10;
|
|
9435
|
+
function moduleAccepts(slotType, moduleType) {
|
|
9436
|
+
return slotType === MODULE_ANY || slotType === moduleType;
|
|
9437
|
+
}
|
|
9438
|
+
function getModuleCapabilityType(itemId) {
|
|
9439
|
+
switch (itemId) {
|
|
9440
|
+
case ITEM_ENGINE_T1:
|
|
9441
|
+
return MODULE_ENGINE;
|
|
9442
|
+
case ITEM_GENERATOR_T1:
|
|
9443
|
+
return MODULE_GENERATOR;
|
|
9444
|
+
case ITEM_GATHERER_T1:
|
|
9445
|
+
return MODULE_GATHERER;
|
|
9446
|
+
case ITEM_LOADER_T1:
|
|
9447
|
+
return MODULE_LOADER;
|
|
9448
|
+
case ITEM_CRAFTER_T1:
|
|
9449
|
+
return MODULE_CRAFTER;
|
|
9450
|
+
case ITEM_STORAGE_T1:
|
|
9451
|
+
return MODULE_STORAGE;
|
|
9452
|
+
case ITEM_HAULER_T1:
|
|
9453
|
+
return MODULE_HAULER;
|
|
9454
|
+
case ITEM_WARP_T1:
|
|
9455
|
+
return MODULE_WARP;
|
|
9456
|
+
case ITEM_BATTERY_T1:
|
|
9457
|
+
return MODULE_BATTERY;
|
|
9458
|
+
default:
|
|
9459
|
+
return 0xff;
|
|
9460
|
+
}
|
|
9461
|
+
}
|
|
9462
|
+
function isModuleItem(itemId) {
|
|
9463
|
+
return getModuleCapabilityType(itemId) !== 0xff;
|
|
9464
|
+
}
|
|
9465
|
+
function moduleSlotTypeToCode(slotType) {
|
|
9466
|
+
switch (slotType) {
|
|
9467
|
+
case 'any':
|
|
9468
|
+
return MODULE_ANY;
|
|
9469
|
+
case 'engine':
|
|
9470
|
+
return MODULE_ENGINE;
|
|
9471
|
+
case 'generator':
|
|
9472
|
+
return MODULE_GENERATOR;
|
|
9473
|
+
case 'gatherer':
|
|
9474
|
+
return MODULE_GATHERER;
|
|
9475
|
+
case 'loader':
|
|
9476
|
+
return MODULE_LOADER;
|
|
9477
|
+
case 'warp':
|
|
9478
|
+
return MODULE_WARP;
|
|
9479
|
+
case 'crafter':
|
|
9480
|
+
return MODULE_CRAFTER;
|
|
9481
|
+
case 'launcher':
|
|
9482
|
+
return MODULE_LAUNCHER;
|
|
9483
|
+
case 'storage':
|
|
9484
|
+
return MODULE_STORAGE;
|
|
9485
|
+
case 'hauler':
|
|
9486
|
+
return MODULE_HAULER;
|
|
9487
|
+
case 'battery':
|
|
9488
|
+
return MODULE_BATTERY;
|
|
9489
|
+
default:
|
|
9490
|
+
return MODULE_ANY;
|
|
9491
|
+
}
|
|
9492
|
+
}
|
|
9493
|
+
|
|
9494
|
+
const ITEM_TYPE_RESOURCE = 0;
|
|
9495
|
+
const ITEM_TYPE_COMPONENT = 1;
|
|
9496
|
+
const ITEM_TYPE_MODULE = 2;
|
|
9497
|
+
const ITEM_TYPE_ENTITY = 3;
|
|
9498
|
+
function itemTypeCode(id) {
|
|
9499
|
+
switch (itemCategory(id)) {
|
|
9500
|
+
case 'resource':
|
|
9501
|
+
return ITEM_TYPE_RESOURCE;
|
|
9502
|
+
case 'component':
|
|
9503
|
+
return ITEM_TYPE_COMPONENT;
|
|
9504
|
+
case 'module':
|
|
9505
|
+
return ITEM_TYPE_MODULE;
|
|
9506
|
+
case 'entity':
|
|
9507
|
+
return ITEM_TYPE_ENTITY;
|
|
9508
|
+
}
|
|
9509
|
+
}
|
|
9510
|
+
function itemTier(id) {
|
|
9511
|
+
if (id < 10000)
|
|
9512
|
+
return 0;
|
|
9513
|
+
return Math.floor(id / 10000);
|
|
9514
|
+
}
|
|
9515
|
+
function itemOffset(id) {
|
|
9516
|
+
return id % 10000;
|
|
9517
|
+
}
|
|
9518
|
+
function itemCategory(id) {
|
|
9519
|
+
if (id < 10000)
|
|
9520
|
+
return 'resource';
|
|
9521
|
+
const offset = itemOffset(id);
|
|
9522
|
+
if (offset >= 200)
|
|
9523
|
+
return 'entity';
|
|
9524
|
+
if (offset >= 100)
|
|
9525
|
+
return 'module';
|
|
9526
|
+
return 'component';
|
|
9527
|
+
}
|
|
9528
|
+
function isRelatedItem(a, b) {
|
|
9529
|
+
if (a < 10000 || b < 10000)
|
|
9530
|
+
return false;
|
|
9531
|
+
return itemOffset(a) === itemOffset(b);
|
|
9532
|
+
}
|
|
9533
|
+
function isCraftedItem(id) {
|
|
9534
|
+
return id >= 10000;
|
|
9535
|
+
}
|
|
9536
|
+
|
|
9537
|
+
function readCommonBase(data) {
|
|
9538
|
+
return {
|
|
9539
|
+
quantity: Number(data.quantity),
|
|
9540
|
+
stats: String(data.stats),
|
|
9541
|
+
origin_x: String(data.origin_x),
|
|
9542
|
+
origin_y: String(data.origin_y),
|
|
9543
|
+
};
|
|
9544
|
+
}
|
|
9545
|
+
function deserializeScalar(data, itemId) {
|
|
9546
|
+
const base = readCommonBase(data);
|
|
9547
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
9548
|
+
}
|
|
9549
|
+
const deserializeResource = deserializeScalar;
|
|
9550
|
+
const deserializeComponent = deserializeScalar;
|
|
9551
|
+
const deserializeModule = deserializeScalar;
|
|
9552
|
+
function deserializeEntity(data, itemId) {
|
|
9553
|
+
const base = readCommonBase(data);
|
|
9554
|
+
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
9555
|
+
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
9556
|
+
const layout = getEntityLayout(itemId);
|
|
9557
|
+
const slots = layout?.slots ?? [];
|
|
9558
|
+
const modules = slots.map((slot, i) => ({
|
|
9559
|
+
type: moduleSlotTypeToCode(slot.type),
|
|
9560
|
+
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
9561
|
+
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
9562
|
+
: undefined,
|
|
9563
|
+
}));
|
|
9564
|
+
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
9565
|
+
}
|
|
9566
|
+
function deserializeAsset(data, itemId) {
|
|
9567
|
+
const type = itemTypeCode(itemId);
|
|
9568
|
+
switch (type) {
|
|
9569
|
+
case ITEM_TYPE_RESOURCE:
|
|
9570
|
+
case ITEM_TYPE_COMPONENT:
|
|
9571
|
+
case ITEM_TYPE_MODULE:
|
|
9572
|
+
return deserializeScalar(data, itemId);
|
|
9573
|
+
case ITEM_TYPE_ENTITY:
|
|
9574
|
+
return deserializeEntity(data, itemId);
|
|
9575
|
+
default:
|
|
9576
|
+
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
9577
|
+
}
|
|
9578
|
+
}
|
|
9579
|
+
|
|
9580
|
+
var ____comment = "This file was generated with eosio-abigen. DO NOT EDIT ";
|
|
9581
|
+
var version = "eosio::abi/1.2";
|
|
9582
|
+
var types = [
|
|
9583
|
+
{
|
|
9584
|
+
new_type_name: "ATOMIC_ATTRIBUTE",
|
|
9585
|
+
type: "variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC"
|
|
9586
|
+
},
|
|
9587
|
+
{
|
|
9588
|
+
new_type_name: "ATTRIBUTE_MAP",
|
|
9589
|
+
type: "pair_string_ATOMIC_ATTRIBUTE[]"
|
|
9590
|
+
},
|
|
9591
|
+
{
|
|
9592
|
+
new_type_name: "DOUBLE_VEC",
|
|
9593
|
+
type: "float64[]"
|
|
9594
|
+
},
|
|
9595
|
+
{
|
|
9596
|
+
new_type_name: "FLOAT_VEC",
|
|
9597
|
+
type: "float32[]"
|
|
9598
|
+
},
|
|
9599
|
+
{
|
|
9600
|
+
new_type_name: "INT16_VEC",
|
|
9601
|
+
type: "int16[]"
|
|
9602
|
+
},
|
|
9603
|
+
{
|
|
9604
|
+
new_type_name: "INT32_VEC",
|
|
9605
|
+
type: "int32[]"
|
|
9606
|
+
},
|
|
9607
|
+
{
|
|
9608
|
+
new_type_name: "INT64_VEC",
|
|
9609
|
+
type: "int64[]"
|
|
9610
|
+
},
|
|
9611
|
+
{
|
|
9612
|
+
new_type_name: "INT8_VEC",
|
|
9613
|
+
type: "bytes"
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
new_type_name: "STRING_VEC",
|
|
9617
|
+
type: "string[]"
|
|
9618
|
+
},
|
|
9619
|
+
{
|
|
9620
|
+
new_type_name: "UINT16_VEC",
|
|
9621
|
+
type: "uint16[]"
|
|
9622
|
+
},
|
|
9623
|
+
{
|
|
9624
|
+
new_type_name: "UINT32_VEC",
|
|
9625
|
+
type: "uint32[]"
|
|
9626
|
+
},
|
|
9627
|
+
{
|
|
9628
|
+
new_type_name: "UINT64_VEC",
|
|
9629
|
+
type: "uint64[]"
|
|
9630
|
+
},
|
|
9631
|
+
{
|
|
9632
|
+
new_type_name: "UINT8_VEC",
|
|
9633
|
+
type: "bytes"
|
|
9634
|
+
}
|
|
9635
|
+
];
|
|
9636
|
+
var structs = [
|
|
9637
|
+
{
|
|
9638
|
+
name: "FORMAT",
|
|
9639
|
+
base: "",
|
|
9640
|
+
fields: [
|
|
9641
|
+
{
|
|
9642
|
+
name: "name",
|
|
9643
|
+
type: "string"
|
|
9644
|
+
},
|
|
9645
|
+
{
|
|
9646
|
+
name: "type",
|
|
9647
|
+
type: "string"
|
|
9648
|
+
}
|
|
9649
|
+
]
|
|
9650
|
+
},
|
|
9651
|
+
{
|
|
9652
|
+
name: "acceptoffer",
|
|
9653
|
+
base: "",
|
|
9654
|
+
fields: [
|
|
9655
|
+
{
|
|
9656
|
+
name: "offer_id",
|
|
9657
|
+
type: "uint64"
|
|
9658
|
+
}
|
|
9659
|
+
]
|
|
9660
|
+
},
|
|
9661
|
+
{
|
|
9662
|
+
name: "addcolauth",
|
|
9663
|
+
base: "",
|
|
9664
|
+
fields: [
|
|
9665
|
+
{
|
|
9666
|
+
name: "collection_name",
|
|
9667
|
+
type: "name"
|
|
9668
|
+
},
|
|
9669
|
+
{
|
|
9670
|
+
name: "account_to_add",
|
|
9671
|
+
type: "name"
|
|
9672
|
+
}
|
|
9673
|
+
]
|
|
9674
|
+
},
|
|
9675
|
+
{
|
|
9676
|
+
name: "addconftoken",
|
|
9677
|
+
base: "",
|
|
9678
|
+
fields: [
|
|
9679
|
+
{
|
|
9680
|
+
name: "token_contract",
|
|
9681
|
+
type: "name"
|
|
9682
|
+
},
|
|
9683
|
+
{
|
|
9684
|
+
name: "token_symbol",
|
|
9685
|
+
type: "symbol"
|
|
9686
|
+
}
|
|
9687
|
+
]
|
|
9688
|
+
},
|
|
9689
|
+
{
|
|
9690
|
+
name: "addnotifyacc",
|
|
9691
|
+
base: "",
|
|
9692
|
+
fields: [
|
|
9693
|
+
{
|
|
9694
|
+
name: "collection_name",
|
|
9695
|
+
type: "name"
|
|
9696
|
+
},
|
|
9697
|
+
{
|
|
9698
|
+
name: "account_to_add",
|
|
9699
|
+
type: "name"
|
|
9700
|
+
}
|
|
9701
|
+
]
|
|
9702
|
+
},
|
|
9703
|
+
{
|
|
9704
|
+
name: "admincoledit",
|
|
9705
|
+
base: "",
|
|
9706
|
+
fields: [
|
|
9707
|
+
{
|
|
9708
|
+
name: "collection_format_extension",
|
|
9709
|
+
type: "FORMAT[]"
|
|
9710
|
+
}
|
|
9711
|
+
]
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
name: "announcedepo",
|
|
9715
|
+
base: "",
|
|
9716
|
+
fields: [
|
|
9717
|
+
{
|
|
9718
|
+
name: "owner",
|
|
9719
|
+
type: "name"
|
|
9720
|
+
},
|
|
9721
|
+
{
|
|
9722
|
+
name: "symbol_to_announce",
|
|
9723
|
+
type: "symbol"
|
|
9724
|
+
}
|
|
9725
|
+
]
|
|
9726
|
+
},
|
|
9727
|
+
{
|
|
9728
|
+
name: "assets_s",
|
|
9729
|
+
base: "",
|
|
9730
|
+
fields: [
|
|
9731
|
+
{
|
|
9732
|
+
name: "asset_id",
|
|
9733
|
+
type: "uint64"
|
|
9734
|
+
},
|
|
9735
|
+
{
|
|
9736
|
+
name: "collection_name",
|
|
9737
|
+
type: "name"
|
|
9738
|
+
},
|
|
9739
|
+
{
|
|
9740
|
+
name: "schema_name",
|
|
9741
|
+
type: "name"
|
|
9742
|
+
},
|
|
9743
|
+
{
|
|
9744
|
+
name: "template_id",
|
|
9745
|
+
type: "int32"
|
|
9746
|
+
},
|
|
9747
|
+
{
|
|
9748
|
+
name: "ram_payer",
|
|
9749
|
+
type: "name"
|
|
9750
|
+
},
|
|
9751
|
+
{
|
|
9752
|
+
name: "backed_tokens",
|
|
9753
|
+
type: "asset[]"
|
|
9754
|
+
},
|
|
9755
|
+
{
|
|
9756
|
+
name: "immutable_serialized_data",
|
|
9757
|
+
type: "bytes"
|
|
9758
|
+
},
|
|
9759
|
+
{
|
|
9760
|
+
name: "mutable_serialized_data",
|
|
9761
|
+
type: "bytes"
|
|
9762
|
+
}
|
|
9763
|
+
]
|
|
9764
|
+
},
|
|
9765
|
+
{
|
|
9766
|
+
name: "backasset",
|
|
9767
|
+
base: "",
|
|
9768
|
+
fields: [
|
|
9769
|
+
{
|
|
9770
|
+
name: "payer",
|
|
9771
|
+
type: "name"
|
|
9772
|
+
},
|
|
9773
|
+
{
|
|
9774
|
+
name: "asset_owner",
|
|
9775
|
+
type: "name"
|
|
9776
|
+
},
|
|
9777
|
+
{
|
|
9778
|
+
name: "asset_id",
|
|
9779
|
+
type: "uint64"
|
|
9780
|
+
},
|
|
9781
|
+
{
|
|
9782
|
+
name: "token_to_back",
|
|
9783
|
+
type: "asset"
|
|
9784
|
+
}
|
|
9785
|
+
]
|
|
9786
|
+
},
|
|
9787
|
+
{
|
|
9788
|
+
name: "balances_s",
|
|
9789
|
+
base: "",
|
|
9790
|
+
fields: [
|
|
9791
|
+
{
|
|
9792
|
+
name: "owner",
|
|
9793
|
+
type: "name"
|
|
9794
|
+
},
|
|
9795
|
+
{
|
|
9796
|
+
name: "quantities",
|
|
9797
|
+
type: "asset[]"
|
|
9798
|
+
}
|
|
9799
|
+
]
|
|
9800
|
+
},
|
|
9801
|
+
{
|
|
9802
|
+
name: "burnasset",
|
|
9803
|
+
base: "",
|
|
9804
|
+
fields: [
|
|
9805
|
+
{
|
|
9806
|
+
name: "asset_owner",
|
|
9807
|
+
type: "name"
|
|
9808
|
+
},
|
|
9809
|
+
{
|
|
9810
|
+
name: "asset_id",
|
|
9811
|
+
type: "uint64"
|
|
9812
|
+
}
|
|
9813
|
+
]
|
|
9814
|
+
},
|
|
9815
|
+
{
|
|
9816
|
+
name: "canceloffer",
|
|
9817
|
+
base: "",
|
|
9818
|
+
fields: [
|
|
9819
|
+
{
|
|
9820
|
+
name: "offer_id",
|
|
9821
|
+
type: "uint64"
|
|
9822
|
+
}
|
|
9823
|
+
]
|
|
9824
|
+
},
|
|
9825
|
+
{
|
|
9826
|
+
name: "collections_s",
|
|
9827
|
+
base: "",
|
|
9828
|
+
fields: [
|
|
9829
|
+
{
|
|
9830
|
+
name: "collection_name",
|
|
9831
|
+
type: "name"
|
|
9832
|
+
},
|
|
9833
|
+
{
|
|
9834
|
+
name: "author",
|
|
9835
|
+
type: "name"
|
|
9836
|
+
},
|
|
9837
|
+
{
|
|
9838
|
+
name: "allow_notify",
|
|
9839
|
+
type: "bool"
|
|
9840
|
+
},
|
|
9841
|
+
{
|
|
9842
|
+
name: "authorized_accounts",
|
|
9843
|
+
type: "name[]"
|
|
9844
|
+
},
|
|
9845
|
+
{
|
|
9846
|
+
name: "notify_accounts",
|
|
9847
|
+
type: "name[]"
|
|
9848
|
+
},
|
|
9849
|
+
{
|
|
9850
|
+
name: "market_fee",
|
|
9851
|
+
type: "float64"
|
|
9852
|
+
},
|
|
9853
|
+
{
|
|
9854
|
+
name: "serialized_data",
|
|
9855
|
+
type: "bytes"
|
|
9856
|
+
}
|
|
9857
|
+
]
|
|
9858
|
+
},
|
|
9859
|
+
{
|
|
9860
|
+
name: "config_s",
|
|
9861
|
+
base: "",
|
|
9862
|
+
fields: [
|
|
9863
|
+
{
|
|
9864
|
+
name: "asset_counter",
|
|
9865
|
+
type: "uint64"
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
name: "template_counter",
|
|
9869
|
+
type: "int32"
|
|
9870
|
+
},
|
|
9871
|
+
{
|
|
9872
|
+
name: "offer_counter",
|
|
9873
|
+
type: "uint64"
|
|
9874
|
+
},
|
|
9875
|
+
{
|
|
9876
|
+
name: "collection_format",
|
|
9877
|
+
type: "FORMAT[]"
|
|
9878
|
+
},
|
|
9879
|
+
{
|
|
9880
|
+
name: "supported_tokens",
|
|
9881
|
+
type: "extended_symbol[]"
|
|
9882
|
+
}
|
|
9883
|
+
]
|
|
9884
|
+
},
|
|
9885
|
+
{
|
|
9886
|
+
name: "createcol",
|
|
9887
|
+
base: "",
|
|
9888
|
+
fields: [
|
|
9889
|
+
{
|
|
9890
|
+
name: "author",
|
|
9891
|
+
type: "name"
|
|
9892
|
+
},
|
|
9893
|
+
{
|
|
9894
|
+
name: "collection_name",
|
|
9895
|
+
type: "name"
|
|
9896
|
+
},
|
|
9897
|
+
{
|
|
9898
|
+
name: "allow_notify",
|
|
9899
|
+
type: "bool"
|
|
9900
|
+
},
|
|
9901
|
+
{
|
|
9902
|
+
name: "authorized_accounts",
|
|
9903
|
+
type: "name[]"
|
|
9904
|
+
},
|
|
9905
|
+
{
|
|
9906
|
+
name: "notify_accounts",
|
|
9907
|
+
type: "name[]"
|
|
9908
|
+
},
|
|
9909
|
+
{
|
|
9910
|
+
name: "market_fee",
|
|
9911
|
+
type: "float64"
|
|
9912
|
+
},
|
|
9913
|
+
{
|
|
9914
|
+
name: "data",
|
|
9915
|
+
type: "ATTRIBUTE_MAP"
|
|
9916
|
+
}
|
|
9917
|
+
]
|
|
9918
|
+
},
|
|
9919
|
+
{
|
|
9920
|
+
name: "createoffer",
|
|
9921
|
+
base: "",
|
|
9922
|
+
fields: [
|
|
9923
|
+
{
|
|
9924
|
+
name: "sender",
|
|
9925
|
+
type: "name"
|
|
9926
|
+
},
|
|
9927
|
+
{
|
|
9928
|
+
name: "recipient",
|
|
9929
|
+
type: "name"
|
|
9930
|
+
},
|
|
9931
|
+
{
|
|
9932
|
+
name: "sender_asset_ids",
|
|
9933
|
+
type: "uint64[]"
|
|
9934
|
+
},
|
|
9935
|
+
{
|
|
9936
|
+
name: "recipient_asset_ids",
|
|
9937
|
+
type: "uint64[]"
|
|
9938
|
+
},
|
|
9939
|
+
{
|
|
9940
|
+
name: "memo",
|
|
9941
|
+
type: "string"
|
|
9942
|
+
}
|
|
9943
|
+
]
|
|
9944
|
+
},
|
|
9945
|
+
{
|
|
9946
|
+
name: "createschema",
|
|
9947
|
+
base: "",
|
|
9948
|
+
fields: [
|
|
9949
|
+
{
|
|
9950
|
+
name: "authorized_creator",
|
|
9951
|
+
type: "name"
|
|
9952
|
+
},
|
|
9953
|
+
{
|
|
9954
|
+
name: "collection_name",
|
|
9955
|
+
type: "name"
|
|
9956
|
+
},
|
|
9957
|
+
{
|
|
9958
|
+
name: "schema_name",
|
|
9959
|
+
type: "name"
|
|
9960
|
+
},
|
|
9961
|
+
{
|
|
9962
|
+
name: "schema_format",
|
|
9963
|
+
type: "FORMAT[]"
|
|
9964
|
+
}
|
|
9965
|
+
]
|
|
9966
|
+
},
|
|
9967
|
+
{
|
|
9968
|
+
name: "createtempl",
|
|
9969
|
+
base: "",
|
|
9970
|
+
fields: [
|
|
9971
|
+
{
|
|
9972
|
+
name: "authorized_creator",
|
|
9973
|
+
type: "name"
|
|
9974
|
+
},
|
|
9975
|
+
{
|
|
9976
|
+
name: "collection_name",
|
|
9977
|
+
type: "name"
|
|
9978
|
+
},
|
|
9979
|
+
{
|
|
9980
|
+
name: "schema_name",
|
|
9981
|
+
type: "name"
|
|
9982
|
+
},
|
|
9983
|
+
{
|
|
9984
|
+
name: "transferable",
|
|
9985
|
+
type: "bool"
|
|
9986
|
+
},
|
|
9987
|
+
{
|
|
9988
|
+
name: "burnable",
|
|
9989
|
+
type: "bool"
|
|
9990
|
+
},
|
|
9991
|
+
{
|
|
9992
|
+
name: "max_supply",
|
|
9993
|
+
type: "uint32"
|
|
9994
|
+
},
|
|
9995
|
+
{
|
|
9996
|
+
name: "immutable_data",
|
|
9997
|
+
type: "ATTRIBUTE_MAP"
|
|
9998
|
+
}
|
|
9999
|
+
]
|
|
10000
|
+
},
|
|
10001
|
+
{
|
|
10002
|
+
name: "declineoffer",
|
|
10003
|
+
base: "",
|
|
10004
|
+
fields: [
|
|
10005
|
+
{
|
|
10006
|
+
name: "offer_id",
|
|
10007
|
+
type: "uint64"
|
|
10008
|
+
}
|
|
10009
|
+
]
|
|
10010
|
+
},
|
|
10011
|
+
{
|
|
10012
|
+
name: "extended_symbol",
|
|
10013
|
+
base: "",
|
|
10014
|
+
fields: [
|
|
10015
|
+
{
|
|
10016
|
+
name: "sym",
|
|
10017
|
+
type: "symbol"
|
|
10018
|
+
},
|
|
10019
|
+
{
|
|
10020
|
+
name: "contract",
|
|
10021
|
+
type: "name"
|
|
10022
|
+
}
|
|
10023
|
+
]
|
|
10024
|
+
},
|
|
10025
|
+
{
|
|
10026
|
+
name: "extendschema",
|
|
10027
|
+
base: "",
|
|
10028
|
+
fields: [
|
|
10029
|
+
{
|
|
10030
|
+
name: "authorized_editor",
|
|
10031
|
+
type: "name"
|
|
10032
|
+
},
|
|
10033
|
+
{
|
|
10034
|
+
name: "collection_name",
|
|
10035
|
+
type: "name"
|
|
10036
|
+
},
|
|
10037
|
+
{
|
|
10038
|
+
name: "schema_name",
|
|
10039
|
+
type: "name"
|
|
10040
|
+
},
|
|
10041
|
+
{
|
|
10042
|
+
name: "schema_format_extension",
|
|
10043
|
+
type: "FORMAT[]"
|
|
10044
|
+
}
|
|
10045
|
+
]
|
|
10046
|
+
},
|
|
10047
|
+
{
|
|
10048
|
+
name: "forbidnotify",
|
|
10049
|
+
base: "",
|
|
10050
|
+
fields: [
|
|
10051
|
+
{
|
|
10052
|
+
name: "collection_name",
|
|
10053
|
+
type: "name"
|
|
10054
|
+
}
|
|
10055
|
+
]
|
|
10056
|
+
},
|
|
10057
|
+
{
|
|
10058
|
+
name: "init",
|
|
10059
|
+
base: "",
|
|
10060
|
+
fields: [
|
|
10061
|
+
]
|
|
10062
|
+
},
|
|
10063
|
+
{
|
|
10064
|
+
name: "locktemplate",
|
|
10065
|
+
base: "",
|
|
10066
|
+
fields: [
|
|
10067
|
+
{
|
|
10068
|
+
name: "authorized_editor",
|
|
10069
|
+
type: "name"
|
|
10070
|
+
},
|
|
10071
|
+
{
|
|
10072
|
+
name: "collection_name",
|
|
10073
|
+
type: "name"
|
|
10074
|
+
},
|
|
10075
|
+
{
|
|
10076
|
+
name: "template_id",
|
|
10077
|
+
type: "int32"
|
|
10078
|
+
}
|
|
10079
|
+
]
|
|
10080
|
+
},
|
|
10081
|
+
{
|
|
10082
|
+
name: "logbackasset",
|
|
10083
|
+
base: "",
|
|
10084
|
+
fields: [
|
|
10085
|
+
{
|
|
10086
|
+
name: "asset_owner",
|
|
10087
|
+
type: "name"
|
|
10088
|
+
},
|
|
10089
|
+
{
|
|
10090
|
+
name: "asset_id",
|
|
10091
|
+
type: "uint64"
|
|
10092
|
+
},
|
|
10093
|
+
{
|
|
10094
|
+
name: "backed_token",
|
|
10095
|
+
type: "asset"
|
|
10096
|
+
}
|
|
10097
|
+
]
|
|
10098
|
+
},
|
|
10099
|
+
{
|
|
10100
|
+
name: "logburnasset",
|
|
10101
|
+
base: "",
|
|
10102
|
+
fields: [
|
|
10103
|
+
{
|
|
10104
|
+
name: "asset_owner",
|
|
10105
|
+
type: "name"
|
|
10106
|
+
},
|
|
10107
|
+
{
|
|
10108
|
+
name: "asset_id",
|
|
10109
|
+
type: "uint64"
|
|
10110
|
+
},
|
|
10111
|
+
{
|
|
10112
|
+
name: "collection_name",
|
|
10113
|
+
type: "name"
|
|
10114
|
+
},
|
|
10115
|
+
{
|
|
10116
|
+
name: "schema_name",
|
|
10117
|
+
type: "name"
|
|
10118
|
+
},
|
|
10119
|
+
{
|
|
10120
|
+
name: "template_id",
|
|
10121
|
+
type: "int32"
|
|
10122
|
+
},
|
|
10123
|
+
{
|
|
10124
|
+
name: "backed_tokens",
|
|
10125
|
+
type: "asset[]"
|
|
10126
|
+
},
|
|
10127
|
+
{
|
|
10128
|
+
name: "old_immutable_data",
|
|
10129
|
+
type: "ATTRIBUTE_MAP"
|
|
10130
|
+
},
|
|
10131
|
+
{
|
|
10132
|
+
name: "old_mutable_data",
|
|
10133
|
+
type: "ATTRIBUTE_MAP"
|
|
10134
|
+
},
|
|
10135
|
+
{
|
|
10136
|
+
name: "asset_ram_payer",
|
|
10137
|
+
type: "name"
|
|
10138
|
+
}
|
|
10139
|
+
]
|
|
10140
|
+
},
|
|
10141
|
+
{
|
|
10142
|
+
name: "logmint",
|
|
10143
|
+
base: "",
|
|
10144
|
+
fields: [
|
|
10145
|
+
{
|
|
10146
|
+
name: "asset_id",
|
|
10147
|
+
type: "uint64"
|
|
10148
|
+
},
|
|
10149
|
+
{
|
|
10150
|
+
name: "authorized_minter",
|
|
10151
|
+
type: "name"
|
|
10152
|
+
},
|
|
10153
|
+
{
|
|
10154
|
+
name: "collection_name",
|
|
10155
|
+
type: "name"
|
|
10156
|
+
},
|
|
10157
|
+
{
|
|
10158
|
+
name: "schema_name",
|
|
10159
|
+
type: "name"
|
|
10160
|
+
},
|
|
10161
|
+
{
|
|
10162
|
+
name: "template_id",
|
|
10163
|
+
type: "int32"
|
|
10164
|
+
},
|
|
10165
|
+
{
|
|
10166
|
+
name: "new_asset_owner",
|
|
10167
|
+
type: "name"
|
|
10168
|
+
},
|
|
10169
|
+
{
|
|
10170
|
+
name: "immutable_data",
|
|
10171
|
+
type: "ATTRIBUTE_MAP"
|
|
10172
|
+
},
|
|
10173
|
+
{
|
|
10174
|
+
name: "mutable_data",
|
|
10175
|
+
type: "ATTRIBUTE_MAP"
|
|
10176
|
+
},
|
|
10177
|
+
{
|
|
10178
|
+
name: "backed_tokens",
|
|
10179
|
+
type: "asset[]"
|
|
10180
|
+
},
|
|
10181
|
+
{
|
|
10182
|
+
name: "immutable_template_data",
|
|
10183
|
+
type: "ATTRIBUTE_MAP"
|
|
10184
|
+
}
|
|
10185
|
+
]
|
|
10186
|
+
},
|
|
10187
|
+
{
|
|
10188
|
+
name: "lognewoffer",
|
|
10189
|
+
base: "",
|
|
10190
|
+
fields: [
|
|
10191
|
+
{
|
|
10192
|
+
name: "offer_id",
|
|
10193
|
+
type: "uint64"
|
|
10194
|
+
},
|
|
10195
|
+
{
|
|
10196
|
+
name: "sender",
|
|
10197
|
+
type: "name"
|
|
10198
|
+
},
|
|
10199
|
+
{
|
|
10200
|
+
name: "recipient",
|
|
10201
|
+
type: "name"
|
|
10202
|
+
},
|
|
10203
|
+
{
|
|
10204
|
+
name: "sender_asset_ids",
|
|
10205
|
+
type: "uint64[]"
|
|
10206
|
+
},
|
|
10207
|
+
{
|
|
10208
|
+
name: "recipient_asset_ids",
|
|
10209
|
+
type: "uint64[]"
|
|
10210
|
+
},
|
|
10211
|
+
{
|
|
10212
|
+
name: "memo",
|
|
10213
|
+
type: "string"
|
|
10214
|
+
}
|
|
10215
|
+
]
|
|
10216
|
+
},
|
|
10217
|
+
{
|
|
10218
|
+
name: "lognewtempl",
|
|
10219
|
+
base: "",
|
|
10220
|
+
fields: [
|
|
10221
|
+
{
|
|
10222
|
+
name: "template_id",
|
|
10223
|
+
type: "int32"
|
|
10224
|
+
},
|
|
10225
|
+
{
|
|
10226
|
+
name: "authorized_creator",
|
|
10227
|
+
type: "name"
|
|
10228
|
+
},
|
|
10229
|
+
{
|
|
10230
|
+
name: "collection_name",
|
|
10231
|
+
type: "name"
|
|
10232
|
+
},
|
|
10233
|
+
{
|
|
10234
|
+
name: "schema_name",
|
|
10235
|
+
type: "name"
|
|
10236
|
+
},
|
|
10237
|
+
{
|
|
10238
|
+
name: "transferable",
|
|
10239
|
+
type: "bool"
|
|
10240
|
+
},
|
|
10241
|
+
{
|
|
10242
|
+
name: "burnable",
|
|
10243
|
+
type: "bool"
|
|
10244
|
+
},
|
|
10245
|
+
{
|
|
10246
|
+
name: "max_supply",
|
|
10247
|
+
type: "uint32"
|
|
10248
|
+
},
|
|
10249
|
+
{
|
|
10250
|
+
name: "immutable_data",
|
|
10251
|
+
type: "ATTRIBUTE_MAP"
|
|
10252
|
+
}
|
|
10253
|
+
]
|
|
10254
|
+
},
|
|
10255
|
+
{
|
|
10256
|
+
name: "logrampayer",
|
|
10257
|
+
base: "",
|
|
10258
|
+
fields: [
|
|
10259
|
+
{
|
|
10260
|
+
name: "asset_owner",
|
|
10261
|
+
type: "name"
|
|
10262
|
+
},
|
|
10263
|
+
{
|
|
10264
|
+
name: "asset_id",
|
|
10265
|
+
type: "uint64"
|
|
10266
|
+
},
|
|
10267
|
+
{
|
|
10268
|
+
name: "old_ram_payer",
|
|
10269
|
+
type: "name"
|
|
10270
|
+
},
|
|
10271
|
+
{
|
|
10272
|
+
name: "new_ram_payer",
|
|
10273
|
+
type: "name"
|
|
10274
|
+
}
|
|
10275
|
+
]
|
|
10276
|
+
},
|
|
10277
|
+
{
|
|
10278
|
+
name: "logsetdata",
|
|
10279
|
+
base: "",
|
|
10280
|
+
fields: [
|
|
10281
|
+
{
|
|
10282
|
+
name: "asset_owner",
|
|
10283
|
+
type: "name"
|
|
10284
|
+
},
|
|
10285
|
+
{
|
|
10286
|
+
name: "asset_id",
|
|
10287
|
+
type: "uint64"
|
|
10288
|
+
},
|
|
10289
|
+
{
|
|
10290
|
+
name: "old_data",
|
|
10291
|
+
type: "ATTRIBUTE_MAP"
|
|
10292
|
+
},
|
|
10293
|
+
{
|
|
10294
|
+
name: "new_data",
|
|
10295
|
+
type: "ATTRIBUTE_MAP"
|
|
10296
|
+
}
|
|
10297
|
+
]
|
|
10298
|
+
},
|
|
10299
|
+
{
|
|
10300
|
+
name: "logtransfer",
|
|
10301
|
+
base: "",
|
|
10302
|
+
fields: [
|
|
10303
|
+
{
|
|
10304
|
+
name: "collection_name",
|
|
10305
|
+
type: "name"
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
name: "from",
|
|
10309
|
+
type: "name"
|
|
10310
|
+
},
|
|
10311
|
+
{
|
|
10312
|
+
name: "to",
|
|
10313
|
+
type: "name"
|
|
10314
|
+
},
|
|
10315
|
+
{
|
|
10316
|
+
name: "asset_ids",
|
|
10317
|
+
type: "uint64[]"
|
|
10318
|
+
},
|
|
10319
|
+
{
|
|
10320
|
+
name: "memo",
|
|
10321
|
+
type: "string"
|
|
10322
|
+
}
|
|
10323
|
+
]
|
|
10324
|
+
},
|
|
10325
|
+
{
|
|
10326
|
+
name: "mintasset",
|
|
10327
|
+
base: "",
|
|
10328
|
+
fields: [
|
|
10329
|
+
{
|
|
10330
|
+
name: "authorized_minter",
|
|
10331
|
+
type: "name"
|
|
10332
|
+
},
|
|
10333
|
+
{
|
|
10334
|
+
name: "collection_name",
|
|
10335
|
+
type: "name"
|
|
10336
|
+
},
|
|
10337
|
+
{
|
|
10338
|
+
name: "schema_name",
|
|
10339
|
+
type: "name"
|
|
10340
|
+
},
|
|
10341
|
+
{
|
|
10342
|
+
name: "template_id",
|
|
10343
|
+
type: "int32"
|
|
10344
|
+
},
|
|
10345
|
+
{
|
|
10346
|
+
name: "new_asset_owner",
|
|
10347
|
+
type: "name"
|
|
10348
|
+
},
|
|
10349
|
+
{
|
|
10350
|
+
name: "immutable_data",
|
|
10351
|
+
type: "ATTRIBUTE_MAP"
|
|
10352
|
+
},
|
|
10353
|
+
{
|
|
10354
|
+
name: "mutable_data",
|
|
10355
|
+
type: "ATTRIBUTE_MAP"
|
|
10356
|
+
},
|
|
10357
|
+
{
|
|
10358
|
+
name: "tokens_to_back",
|
|
10359
|
+
type: "asset[]"
|
|
10360
|
+
}
|
|
10361
|
+
]
|
|
10362
|
+
},
|
|
10363
|
+
{
|
|
10364
|
+
name: "offers_s",
|
|
10365
|
+
base: "",
|
|
10366
|
+
fields: [
|
|
10367
|
+
{
|
|
10368
|
+
name: "offer_id",
|
|
10369
|
+
type: "uint64"
|
|
10370
|
+
},
|
|
10371
|
+
{
|
|
10372
|
+
name: "sender",
|
|
10373
|
+
type: "name"
|
|
10374
|
+
},
|
|
10375
|
+
{
|
|
10376
|
+
name: "recipient",
|
|
10377
|
+
type: "name"
|
|
10378
|
+
},
|
|
10379
|
+
{
|
|
10380
|
+
name: "sender_asset_ids",
|
|
10381
|
+
type: "uint64[]"
|
|
10382
|
+
},
|
|
10383
|
+
{
|
|
10384
|
+
name: "recipient_asset_ids",
|
|
10385
|
+
type: "uint64[]"
|
|
10386
|
+
},
|
|
10387
|
+
{
|
|
10388
|
+
name: "memo",
|
|
10389
|
+
type: "string"
|
|
10390
|
+
},
|
|
10391
|
+
{
|
|
10392
|
+
name: "ram_payer",
|
|
10393
|
+
type: "name"
|
|
10394
|
+
}
|
|
10395
|
+
]
|
|
10396
|
+
},
|
|
10397
|
+
{
|
|
10398
|
+
name: "pair_string_ATOMIC_ATTRIBUTE",
|
|
10399
|
+
base: "",
|
|
10400
|
+
fields: [
|
|
10401
|
+
{
|
|
10402
|
+
name: "first",
|
|
10403
|
+
type: "string"
|
|
10404
|
+
},
|
|
10405
|
+
{
|
|
10406
|
+
name: "second",
|
|
10407
|
+
type: "ATOMIC_ATTRIBUTE"
|
|
10408
|
+
}
|
|
10409
|
+
]
|
|
10410
|
+
},
|
|
10411
|
+
{
|
|
10412
|
+
name: "payofferram",
|
|
10413
|
+
base: "",
|
|
10414
|
+
fields: [
|
|
10415
|
+
{
|
|
10416
|
+
name: "payer",
|
|
10417
|
+
type: "name"
|
|
10418
|
+
},
|
|
10419
|
+
{
|
|
10420
|
+
name: "offer_id",
|
|
10421
|
+
type: "uint64"
|
|
10422
|
+
}
|
|
10423
|
+
]
|
|
10424
|
+
},
|
|
10425
|
+
{
|
|
10426
|
+
name: "remcolauth",
|
|
10427
|
+
base: "",
|
|
10428
|
+
fields: [
|
|
10429
|
+
{
|
|
10430
|
+
name: "collection_name",
|
|
10431
|
+
type: "name"
|
|
10432
|
+
},
|
|
10433
|
+
{
|
|
10434
|
+
name: "account_to_remove",
|
|
10435
|
+
type: "name"
|
|
10436
|
+
}
|
|
10437
|
+
]
|
|
10438
|
+
},
|
|
10439
|
+
{
|
|
10440
|
+
name: "remnotifyacc",
|
|
10441
|
+
base: "",
|
|
10442
|
+
fields: [
|
|
10443
|
+
{
|
|
10444
|
+
name: "collection_name",
|
|
10445
|
+
type: "name"
|
|
10446
|
+
},
|
|
10447
|
+
{
|
|
10448
|
+
name: "account_to_remove",
|
|
10449
|
+
type: "name"
|
|
10450
|
+
}
|
|
10451
|
+
]
|
|
10452
|
+
},
|
|
10453
|
+
{
|
|
10454
|
+
name: "schemas_s",
|
|
10455
|
+
base: "",
|
|
10456
|
+
fields: [
|
|
10457
|
+
{
|
|
10458
|
+
name: "schema_name",
|
|
10459
|
+
type: "name"
|
|
10460
|
+
},
|
|
10461
|
+
{
|
|
10462
|
+
name: "format",
|
|
10463
|
+
type: "FORMAT[]"
|
|
10464
|
+
}
|
|
10465
|
+
]
|
|
10466
|
+
},
|
|
10467
|
+
{
|
|
10468
|
+
name: "setassetdata",
|
|
10469
|
+
base: "",
|
|
10470
|
+
fields: [
|
|
10471
|
+
{
|
|
10472
|
+
name: "authorized_editor",
|
|
10473
|
+
type: "name"
|
|
10474
|
+
},
|
|
10475
|
+
{
|
|
10476
|
+
name: "asset_owner",
|
|
10477
|
+
type: "name"
|
|
10478
|
+
},
|
|
10479
|
+
{
|
|
10480
|
+
name: "asset_id",
|
|
10481
|
+
type: "uint64"
|
|
10482
|
+
},
|
|
10483
|
+
{
|
|
10484
|
+
name: "new_mutable_data",
|
|
10485
|
+
type: "ATTRIBUTE_MAP"
|
|
10486
|
+
}
|
|
10487
|
+
]
|
|
10488
|
+
},
|
|
10489
|
+
{
|
|
10490
|
+
name: "setcoldata",
|
|
10491
|
+
base: "",
|
|
10492
|
+
fields: [
|
|
10493
|
+
{
|
|
10494
|
+
name: "collection_name",
|
|
10495
|
+
type: "name"
|
|
10496
|
+
},
|
|
10497
|
+
{
|
|
10498
|
+
name: "data",
|
|
10499
|
+
type: "ATTRIBUTE_MAP"
|
|
10500
|
+
}
|
|
10501
|
+
]
|
|
10502
|
+
},
|
|
10503
|
+
{
|
|
10504
|
+
name: "setlastpayer",
|
|
10505
|
+
base: "",
|
|
10506
|
+
fields: [
|
|
10507
|
+
{
|
|
10508
|
+
name: "owner",
|
|
10509
|
+
type: "name"
|
|
10510
|
+
},
|
|
10511
|
+
{
|
|
10512
|
+
name: "collection_name",
|
|
10513
|
+
type: "name"
|
|
10514
|
+
}
|
|
10515
|
+
]
|
|
10516
|
+
},
|
|
10517
|
+
{
|
|
10518
|
+
name: "setmarketfee",
|
|
10519
|
+
base: "",
|
|
10520
|
+
fields: [
|
|
10521
|
+
{
|
|
10522
|
+
name: "collection_name",
|
|
10523
|
+
type: "name"
|
|
10524
|
+
},
|
|
10525
|
+
{
|
|
10526
|
+
name: "market_fee",
|
|
10527
|
+
type: "float64"
|
|
10528
|
+
}
|
|
10529
|
+
]
|
|
10530
|
+
},
|
|
10531
|
+
{
|
|
10532
|
+
name: "setrampayer",
|
|
10533
|
+
base: "",
|
|
10534
|
+
fields: [
|
|
10535
|
+
{
|
|
10536
|
+
name: "new_payer",
|
|
10537
|
+
type: "name"
|
|
10538
|
+
},
|
|
10539
|
+
{
|
|
10540
|
+
name: "asset_id",
|
|
10541
|
+
type: "uint64"
|
|
10542
|
+
}
|
|
10543
|
+
]
|
|
10544
|
+
},
|
|
10545
|
+
{
|
|
10546
|
+
name: "setversion",
|
|
10547
|
+
base: "",
|
|
10548
|
+
fields: [
|
|
10549
|
+
{
|
|
10550
|
+
name: "new_version",
|
|
10551
|
+
type: "string"
|
|
10552
|
+
}
|
|
10553
|
+
]
|
|
10554
|
+
},
|
|
10555
|
+
{
|
|
10556
|
+
name: "templates_s",
|
|
10557
|
+
base: "",
|
|
10558
|
+
fields: [
|
|
10559
|
+
{
|
|
10560
|
+
name: "template_id",
|
|
10561
|
+
type: "int32"
|
|
10562
|
+
},
|
|
10563
|
+
{
|
|
10564
|
+
name: "schema_name",
|
|
10565
|
+
type: "name"
|
|
10566
|
+
},
|
|
10567
|
+
{
|
|
10568
|
+
name: "transferable",
|
|
10569
|
+
type: "bool"
|
|
10570
|
+
},
|
|
10571
|
+
{
|
|
10572
|
+
name: "burnable",
|
|
10573
|
+
type: "bool"
|
|
10574
|
+
},
|
|
10575
|
+
{
|
|
10576
|
+
name: "max_supply",
|
|
10577
|
+
type: "uint32"
|
|
10578
|
+
},
|
|
10579
|
+
{
|
|
10580
|
+
name: "issued_supply",
|
|
10581
|
+
type: "uint32"
|
|
10582
|
+
},
|
|
10583
|
+
{
|
|
10584
|
+
name: "immutable_serialized_data",
|
|
10585
|
+
type: "bytes"
|
|
10586
|
+
}
|
|
10587
|
+
]
|
|
10588
|
+
},
|
|
10589
|
+
{
|
|
10590
|
+
name: "tokenconfigs_s",
|
|
10591
|
+
base: "",
|
|
10592
|
+
fields: [
|
|
10593
|
+
{
|
|
10594
|
+
name: "standard",
|
|
10595
|
+
type: "name"
|
|
10596
|
+
},
|
|
10597
|
+
{
|
|
10598
|
+
name: "version",
|
|
10599
|
+
type: "string"
|
|
10600
|
+
}
|
|
10601
|
+
]
|
|
10602
|
+
},
|
|
10603
|
+
{
|
|
10604
|
+
name: "transfer",
|
|
10605
|
+
base: "",
|
|
10606
|
+
fields: [
|
|
10607
|
+
{
|
|
10608
|
+
name: "from",
|
|
10609
|
+
type: "name"
|
|
10610
|
+
},
|
|
10611
|
+
{
|
|
10612
|
+
name: "to",
|
|
10613
|
+
type: "name"
|
|
10614
|
+
},
|
|
10615
|
+
{
|
|
10616
|
+
name: "asset_ids",
|
|
10617
|
+
type: "uint64[]"
|
|
10618
|
+
},
|
|
10619
|
+
{
|
|
10620
|
+
name: "memo",
|
|
10621
|
+
type: "string"
|
|
10622
|
+
}
|
|
10623
|
+
]
|
|
10624
|
+
},
|
|
10625
|
+
{
|
|
10626
|
+
name: "withdraw",
|
|
10627
|
+
base: "",
|
|
10628
|
+
fields: [
|
|
10629
|
+
{
|
|
10630
|
+
name: "owner",
|
|
10631
|
+
type: "name"
|
|
10632
|
+
},
|
|
10633
|
+
{
|
|
10634
|
+
name: "token_to_withdraw",
|
|
10635
|
+
type: "asset"
|
|
10636
|
+
}
|
|
10637
|
+
]
|
|
10638
|
+
}
|
|
10639
|
+
];
|
|
10640
|
+
var actions = [
|
|
10641
|
+
{
|
|
10642
|
+
name: "acceptoffer",
|
|
10643
|
+
type: "acceptoffer",
|
|
10644
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Accept an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is accepted'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe recipient of the offer with the id {{offer_id}} accepts the offer.\n\nThe assets from either side specified in the offer are automatically transferred to the respective other side.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the recipient of the offer.\n</div>"
|
|
10645
|
+
},
|
|
10646
|
+
{
|
|
10647
|
+
name: "addcolauth",
|
|
10648
|
+
type: "addcolauth",
|
|
10649
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Make an account authorized in a collection\nsummary: 'Add the account {{nowrap account_to_add}} to the authorized_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nAdds the account {{account_to_add}} to the authorized_accounts list of the collection {{collection_name}}.\n\nThis allows {{account_to_add}} to both create and edit templates and assets of this collection.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10650
|
+
},
|
|
10651
|
+
{
|
|
10652
|
+
name: "addconftoken",
|
|
10653
|
+
type: "addconftoken",
|
|
10654
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Add token to supported list\nsummary: 'Adds a token that can then be used to back assets'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n<b>Description:</b>\n<div class=\"description\">\nThe token with the symbol {{token_symbol}} from the token contract {{token_contract}} is added to the supported_tokens list.\n\nThis means that assets can then be backed with that specific token.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10655
|
+
},
|
|
10656
|
+
{
|
|
10657
|
+
name: "addnotifyacc",
|
|
10658
|
+
type: "addnotifyacc",
|
|
10659
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Add an account to a collection's notify list\nsummary: 'Add the account {{nowrap account_to_add}} to the notify_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nAdds the account {{account_to_add}} to the notify_accounts list of the collection {{collection_name}}.\n\nThis will make {{account_to_add}} get notifications directly on the blockchain when one of the following actions is performed:\n- One or more assets of the collection {{collection_name}} is transferred\n- An asset of the collection {{collection_name}} is minted\n- An asset of the collection {{collection_name}} has its mutable data changed\n- An asset of the collection {{collection_name}} is burned\n- An asset of the collection {{collection_name}} gets backed with core tokens\n- A template of the collection {{collection_name}} is created\n\n{{account_to_add}} is able to add code to their own smart contract to handle these notifications. \n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n\n{{account_to_add}} may not make any transactions throw when receiving a notification. This includes, but is not limited to, purposely blocking certain transfers by making the transaction throw.\n\nIt is the collection author's responsibility to enforce that this does not happen.\n</div>"
|
|
10660
|
+
},
|
|
10661
|
+
{
|
|
10662
|
+
name: "admincoledit",
|
|
10663
|
+
type: "admincoledit",
|
|
10664
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Extend collections schema\nsummary: 'Extends the schema to serialize collection data by one or more lines'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe following FORMAT lines are added to the schema that is used to serialize collections data:\n{{#each collection_format_extension}}\n - name: {{this.name}} , type: {{this.type}}\n{{/each}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10665
|
+
},
|
|
10666
|
+
{
|
|
10667
|
+
name: "announcedepo",
|
|
10668
|
+
type: "announcedepo",
|
|
10669
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Announces a deposit\nsummary: '{{nowrap owner}} adds the symbol {{nowrap symbol_to_announce}} to his balance table row'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThis action is used to add a zero value asset to the quantities vector of the balance row with the owner {{owner}}.\nIf there is no balance row with the owner {{owner}}, a new one is created.\nAdding something to a vector increases the RAM required, therefore this can't be done directly in the receipt of the transfer action, so using this action a zero value is added so that the RAM required doesn't change when adding the received quantity in the transfer action later.\n\nBy calling this action, {{payer}} pays for the RAM of the balance table row with the owner {{owner}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10670
|
+
},
|
|
10671
|
+
{
|
|
10672
|
+
name: "backasset",
|
|
10673
|
+
type: "backasset",
|
|
10674
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Backs an asset with tokens\nsummary: '{{nowrap payer}} backs the asset with the ID {{nowrap asset_id}} with {{nowrap token_to_back}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{payer}} backs an the asset with the ID {{asset_id}} owned by {{asset_owner}} with {{token_to_back}}.\n{{payer}} must have at least as many tokens in his balance. {{token_to_back}} will be removed from {{payer}}'s balance.\nThe tokens backed to this asset can be retreived by burning the asset, in which case the owner at the time of the burn will receive the tokens.\n\n{{payer}} pays for the full RAM cost of the asset.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10675
|
+
},
|
|
10676
|
+
{
|
|
10677
|
+
name: "burnasset",
|
|
10678
|
+
type: "burnasset",
|
|
10679
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Burn an asset\nsummary: '{{nowrap asset_owner}} burns his asset with the id {{nowrap asset_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{asset_owner}} burns his asset with the id {{asset_id}}.\n\nIf there previously were tokens backed to this asset, these tokens are added to the balance table entry {{asset_owner}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{asset_owner}}.\n</div>"
|
|
10680
|
+
},
|
|
10681
|
+
{
|
|
10682
|
+
name: "canceloffer",
|
|
10683
|
+
type: "canceloffer",
|
|
10684
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Cancel an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is cancelled'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe creator of the offer with the id {{offer_id}} cancels this offer. The offer is deleted from the offers table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the creator of the offer.\n</div>"
|
|
10685
|
+
},
|
|
10686
|
+
{
|
|
10687
|
+
name: "createcol",
|
|
10688
|
+
type: "createcol",
|
|
10689
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create collection\nsummary: '{{nowrap author}} creates a new collection with the name {{collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{author}} creates a new collection with the name {{collection_name}}.\n\n{{#if authorized_accounts}}The following accounts are added to the authorized_accounts list, allowing them create and edit templates and assets within this collection:\n {{#each authorized_accounts}}\n - {{this}}\n {{/each}}\n{{else}}No accounts are added to the authorized_accounts list.\n{{/if}}\n\n{{#if notify_accounts}}The following accounts are added to the notify_accounts list, which means that they get notified on the blockchain of any actions related to assets and templates of this collection:\n {{#each notify_accounts}}\n - {{this}}\n {{/each}}\n{{else}}No accounts are added to the notify_accounts list.\n{{/if}}\n\n{{#if allow_notify}}It will be possible to add more accounts to the notify_accounts list later.\n{{else}}It will not be possible to add more accounts to the notify_accounts list later.\n{{/if}}\n\nThe market_fee for this collection will be set to {{market_fee}}. 3rd party markets are encouraged to use this value to collect fees for the collection author, but are not required to do so.\n\n{{#if data}}The collections will be initialized with the following data:\n {{#each data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}The collection will be initialized without any data.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{author}}.\n\nCreating collections with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n\nIf the notify functionality is being used, the notify accounts may not make any transactions throw when receiving the notification. This includes, but is not limited to, purposely blocking certain transfers by making the transaction throw.\n\nIt is the collection author's responsibility to enforce that this does not happen.\n</div>"
|
|
10690
|
+
},
|
|
10691
|
+
{
|
|
10692
|
+
name: "createoffer",
|
|
10693
|
+
type: "createoffer",
|
|
10694
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create an offer\nsummary: '{{nowrap sender}} makes an offer to {{nowrap recipient}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{sender}} makes the following offer to {{recipient}}.\n\n{{#if sender_asset_ids}}{{sender}} gives the assets with the following ids:\n {{#each sender_asset_ids}}\n - {{this}}\n {{/each}}\n{{else}}{{sender}} does not give any assets.\n{{/if}}\n\n{{#if recipient_asset_ids}}{{recipient}} gives the assets with the following ids:\n {{#each recipient_asset_ids}}\n - {{this}}\n {{/each}}\n{{else}}{{recipient}} does not give any assets.\n{{/if}}\n\nIf {{recipient}} accepts the offer, the assets will automatically be transferred to the respective sides.\n\n{{#if memo}}There is a memo attached to the offer stating:\n {{memo}}\n{{else}}No memo is attached to the offer.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{sender}}.\n\nCreating offers that do not serve any purpose other than spamming the recipient is not allowed.\n\n{{sender}} must not take advantage of the notification they receive when the offer is accepted or declined in a way that harms {{recipient}}.\n</div>"
|
|
10695
|
+
},
|
|
10696
|
+
{
|
|
10697
|
+
name: "createschema",
|
|
10698
|
+
type: "createschema",
|
|
10699
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create a schema\nsummary: '{{nowrap authorized_creator}} creates a new schema with the name {{nowrap schema_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_creator}} creates a new schema with the name {{schema_name}}. This schema belongs to the collection {{collection_name}}\n\n{{#if schema_format}}The schema will be initialized with the following FORMAT lines that can be used to serialize template and asset data:\n {{#each schema_format}}\n - name: {{this.name}} , type: {{this.type}}\n {{/each}}\n{{else}}The schema will be initialized without any FORMAT lines.\n{{/if}}\n\nOnly authorized accounts of the {{collection_name}} collection will be able to extend the schema by adding additional FORMAT lines in the future, but they will not be able to delete previously added FORMAT lines.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n\nCreating schemas with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n</div>"
|
|
10700
|
+
},
|
|
10701
|
+
{
|
|
10702
|
+
name: "createtempl",
|
|
10703
|
+
type: "createtempl",
|
|
10704
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Create a template\nsummary: '{{nowrap authorized_creator}} creates a new template which belongs to the {{nowrap collection_name}} collection and uses the {{nowrap schema_name}} schema'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_creator}} creates a new template which belongs to the {{collection_name}} collection.\n\nThe schema {{schema_name}} is used for the serialization of the template's data.\n\n{{#if transferable}}The assets within this template will be transferable\n{{else}}The assets within this template will not be transferable\n{{/if}}\n\n{{#if burnable}}The assets within this template will be burnable\n{{else}}The assets within this template will not be burnable\n{{/if}}\n\n{{#if max_supply}}A maximum of {{max_supply}} assets can ever be created within this template.\n{{else}}There is no maximum amount of assets that can be created within this template.\n{{/if}}\n\n{{#if immutable_data}}The immutable data of the template is set to:\n {{#each immutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No immutable data is set for the template.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n</div>"
|
|
10705
|
+
},
|
|
10706
|
+
{
|
|
10707
|
+
name: "declineoffer",
|
|
10708
|
+
type: "declineoffer",
|
|
10709
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Decline an offer\nsummary: 'The offer with the id {{nowrap offer_id}} is declined'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe recipient of the offer with the id {{offer_id}} declines the offer. The offer is deleted from the offers table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the recipient of the offer.\n</div>"
|
|
10710
|
+
},
|
|
10711
|
+
{
|
|
10712
|
+
name: "extendschema",
|
|
10713
|
+
type: "extendschema",
|
|
10714
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Extend schema\nsummary: 'Extends the schema {{nowrap schema_name}} by adding one or more FORMAT lines'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe schema {{schema_name}} belonging to the collection {{collection_name}} is extended by adding the following FORMAT lines that can be used to serialize template and asset data:\n{{#each schema_format_extension}}\n - name: {{this.name}} , type: {{this.type}}\n{{/each}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_editor}}.\n\n{{authorized_editor}} has to be an authorized account in the collection {{collection_name}}.\n</div>"
|
|
10715
|
+
},
|
|
10716
|
+
{
|
|
10717
|
+
name: "forbidnotify",
|
|
10718
|
+
type: "forbidnotify",
|
|
10719
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Disallow collection notifications\nsummary: 'Sets the allow_notify value of the collection {{nowrap collection_name}} to false'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe allow_notify value of the collection {{collection_name}} is set to false.\nThis means that it will not be possible to add accounts to the notify_accounts list later.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10720
|
+
},
|
|
10721
|
+
{
|
|
10722
|
+
name: "init",
|
|
10723
|
+
type: "init",
|
|
10724
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Initialize config tables\nsummary: 'Initialize the tables \"config\" and \"tokenconfig\" if they have not been initialized before'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nInitialize the tables \"config\" and \"tokenconfig\" if they have not been initialized before. If they have been initialized before, nothing will happen.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
name: "locktemplate",
|
|
10728
|
+
type: "locktemplate",
|
|
10729
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Locks a template\nsummary: '{{nowrap authorized_editor}} locks the template with the id {{nowrap template_id}} belonging to the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_editor}} locks the template with the id {{template_id}} belonging to the collection {{collection_name}}.\n\nThis sets the template's maximum supply to the template's current supply, which means that no more assets referencing this template can be minted.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_creator}}.\n\n{{authorized_creator}} has to be an authorized account in the collection {{collection_name}}.\n\nThe template's issued supply must be greater than 0.\n</div>"
|
|
10730
|
+
},
|
|
10731
|
+
{
|
|
10732
|
+
name: "logbackasset",
|
|
10733
|
+
type: "logbackasset",
|
|
10734
|
+
ricardian_contract: ""
|
|
10735
|
+
},
|
|
10736
|
+
{
|
|
10737
|
+
name: "logburnasset",
|
|
10738
|
+
type: "logburnasset",
|
|
10739
|
+
ricardian_contract: ""
|
|
10740
|
+
},
|
|
10741
|
+
{
|
|
10742
|
+
name: "logmint",
|
|
10743
|
+
type: "logmint",
|
|
10744
|
+
ricardian_contract: ""
|
|
10745
|
+
},
|
|
10746
|
+
{
|
|
10747
|
+
name: "lognewoffer",
|
|
10748
|
+
type: "lognewoffer",
|
|
10749
|
+
ricardian_contract: ""
|
|
10750
|
+
},
|
|
10751
|
+
{
|
|
10752
|
+
name: "lognewtempl",
|
|
10753
|
+
type: "lognewtempl",
|
|
10754
|
+
ricardian_contract: ""
|
|
10755
|
+
},
|
|
10756
|
+
{
|
|
10757
|
+
name: "logrampayer",
|
|
10758
|
+
type: "logrampayer",
|
|
10759
|
+
ricardian_contract: ""
|
|
10760
|
+
},
|
|
10761
|
+
{
|
|
10762
|
+
name: "logsetdata",
|
|
10763
|
+
type: "logsetdata",
|
|
10764
|
+
ricardian_contract: ""
|
|
10765
|
+
},
|
|
10766
|
+
{
|
|
10767
|
+
name: "logtransfer",
|
|
10768
|
+
type: "logtransfer",
|
|
10769
|
+
ricardian_contract: ""
|
|
10770
|
+
},
|
|
10771
|
+
{
|
|
10772
|
+
name: "mintasset",
|
|
10773
|
+
type: "mintasset",
|
|
10774
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Mint an asset\nsummary: '{{nowrap authorized_minter}} mints an asset which will be owned by {{nowrap new_asset_owner}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{authorized_minter}} mints an asset of the template which belongs to the {{schema_name}} schema of the {{collection_name}} collection. The asset will be owned by {{new_asset_owner}}.\n\n{{#if immutable_data}}The immutable data of the asset is set to:\n {{#each immutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No immutable data is set for the asset.\n{{/if}}\n\n{{#if mutable_data}}The mutable data of the asset is set to:\n {{#each mutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}No mutable data is set for the asset.\n{{/if}}\n\n{{#if quantities_to_back}}The asset will be backed with the following tokens and {{authorized_minter}} needs to have at least that amount of tokens in their balance:\n {{#each quantities_to_back}}\n - {{quantities_to_back}}\n {{/each}}\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_minter}}.\n\n{{authorized_minter}} has to be an authorized account in the collection that the template with the id {{template_id}} belongs to.\n\nMinting assets that contain intellectual property requires the permission of the all rights holders of that intellectual property.\n\nMinting assets with the purpose of confusing or taking advantage of others, especially by impersonating other well known brands, personalities or dapps is not allowed.\n\nMinting assets with the purpose of spamming or otherwise negatively impacing {{new_owner}} is not allowed.\n</div>"
|
|
10775
|
+
},
|
|
10776
|
+
{
|
|
10777
|
+
name: "payofferram",
|
|
10778
|
+
type: "payofferram",
|
|
10779
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Pays RAM for existing offer\nsummary: '{{nowrap payer}} will pay for the RAM cost of the offer {{nowrap offer_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{payer}} pays for the RAM cost of the offer {{offer_id}}. The offer itself is not modified\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{payer}}.\n</div>"
|
|
10780
|
+
},
|
|
10781
|
+
{
|
|
10782
|
+
name: "remcolauth",
|
|
10783
|
+
type: "remcolauth",
|
|
10784
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Remove an account's authorization in a collection\nsummary: 'Remove the account {{nowrap account_to_remove}} from the authorized_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nRemoves the account {{account_to_remove}} from the authorized_accounts list of the collection {{collection_name}}.\n\nThis removes {{account_to_remove}}'s permission to both create and edit templates and assets of this collection.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10785
|
+
},
|
|
10786
|
+
{
|
|
10787
|
+
name: "remnotifyacc",
|
|
10788
|
+
type: "remnotifyacc",
|
|
10789
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Remove an account from a collection's notfiy list\nsummary: 'Remove the account {{nowrap account_to_remove}} from the notify_accounts list of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nRemoves the account {{account_to_remove}} from the notify_accounts list of the collection {{collection_name}}.\n\n{{account_to_remove}} will therefore no longer receive notifications for any of the actions related to the collection {{collection_name}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10790
|
+
},
|
|
10791
|
+
{
|
|
10792
|
+
name: "setassetdata",
|
|
10793
|
+
type: "setassetdata",
|
|
10794
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set the mutable data of an asset\nsummary: '{{nowrap authorized_editor}} sets the mutable data of the asset with the id {{nowrap asset_id}} owned by {{nowrap asset_owner}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{#if new_mutable_data}}{{authorized_editor}} sets the mutable data of the asset with the id {{asset_id}} owned by {{nowrap asset_owner}} to the following:\n {{#each new_mutable_data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}{{authorized_editor}} clears the mutable data of the asset with the id {{asset_id}} owned by {{asset_owner}}.\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{authorized_editor}}.\n\n{{authorized_editor}} has to be an authorized account in the collection that the asset with the id {{asset_id}} belongs to. (An asset belongs to the collection that the template it is within belongs to)\n</div>"
|
|
10795
|
+
},
|
|
10796
|
+
{
|
|
10797
|
+
name: "setcoldata",
|
|
10798
|
+
type: "setcoldata",
|
|
10799
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set collection data\nsummary: 'Sets the data of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{#if data}}Sets the data of the collection {{collection_name}} to the following\n {{#each data}}\n - name: {{this.key}} , value: {{this.value}}\n {{/each}}\n{{else}}Clears the data of the collection {{collection_name}}\n{{/if}}\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10800
|
+
},
|
|
10801
|
+
{
|
|
10802
|
+
name: "setlastpayer",
|
|
10803
|
+
type: "setlastpayer",
|
|
10804
|
+
ricardian_contract: ""
|
|
10805
|
+
},
|
|
10806
|
+
{
|
|
10807
|
+
name: "setmarketfee",
|
|
10808
|
+
type: "setmarketfee",
|
|
10809
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set collection market fee\nsummary: 'Sets the market fee of the collection {{nowrap collection_name}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\nThe market_fee for the collection {{collection_name}} will be set to {{market_fee}}. 3rd party markets are encouraged to use this value to collect fees for the collection author, but are not required to do so.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of the collection's author.\n</div>"
|
|
10810
|
+
},
|
|
10811
|
+
{
|
|
10812
|
+
name: "setrampayer",
|
|
10813
|
+
type: "setrampayer",
|
|
10814
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set the RAM payer of an asset\nsummary: '{{nowrap new_payer}} takes over the RAM cost of the asset with the id {{nowrap asset_id}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{new_payer}} takes over responsibility for the RAM cost of the asset with the id {{asset_id}}. The previous RAM payer is refunded the freed RAM.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{new_payer}}.\n\n{{new_payer}} has to be the current owner of the asset with the id {{asset_id}}.\n</div>"
|
|
10815
|
+
},
|
|
10816
|
+
{
|
|
10817
|
+
name: "setversion",
|
|
10818
|
+
type: "setversion",
|
|
10819
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Set tokenconfig version\nsummary: 'Sets the version in the tokenconfigs table to {{nowrap new_version}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n<b>Description:</b>\n<div class=\"description\">\nThe version in the tokenconfigs table is set to {{new_version}}.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{$action.account}}.\n</div>"
|
|
10820
|
+
},
|
|
10821
|
+
{
|
|
10822
|
+
name: "transfer",
|
|
10823
|
+
type: "transfer",
|
|
10824
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Transfer Assets\nsummary: 'Send one or more assets from {{nowrap from}} to {{nowrap to}}'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{from}} transfers one or more assets with the following ids to {{to}}:\n{{#each asset_ids}}\n - {{this}}\n{{/each}}\n\n{{#if memo}}There is a memo attached to the transfer stating:\n {{memo}}\n{{else}}No memo is attached to the transfer.\n{{/if}}\n\nIf {{to}} does not own any assets, {{from}} pays the RAM for the scope of {{to}} in the assets table.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{from}}.\n\nTransfers that do not serve any purpose other than spamming the recipient are not allowed.\n</div>"
|
|
10825
|
+
},
|
|
10826
|
+
{
|
|
10827
|
+
name: "withdraw",
|
|
10828
|
+
type: "withdraw",
|
|
10829
|
+
ricardian_contract: "---\nspec_version: \"0.2.0\"\ntitle: Withdraws fungible tokens\nsummary: '{{nowrap owner}} withdraws {{token_to_withdraw}} from his balance'\nicon: https://atomicassets.io/image/logo256.png#108AEE3530F4EB368A4B0C28800894CFBABF46534F48345BF6453090554C52D5\n---\n\n<b>Description:</b>\n<div class=\"description\">\n{{owner}} withdraws {{token_to_withdraw}} that they previously deposited and have not yet spent otherwise.\nThe tokens will be transferred back to {{owner}} and will be deducted from {{owner}}'s balance.\n</div>\n\n<b>Clauses:</b>\n<div class=\"clauses\">\nThis action may only be called with the permission of {{owner}}.\n</div>"
|
|
10830
|
+
}
|
|
10831
|
+
];
|
|
10832
|
+
var tables = [
|
|
10833
|
+
{
|
|
10834
|
+
name: "assets",
|
|
10835
|
+
type: "assets_s",
|
|
10836
|
+
index_type: "i64",
|
|
10837
|
+
key_names: [
|
|
10838
|
+
],
|
|
10839
|
+
key_types: [
|
|
10840
|
+
]
|
|
10841
|
+
},
|
|
10842
|
+
{
|
|
10843
|
+
name: "balances",
|
|
10844
|
+
type: "balances_s",
|
|
10845
|
+
index_type: "i64",
|
|
10846
|
+
key_names: [
|
|
10847
|
+
],
|
|
10848
|
+
key_types: [
|
|
10849
|
+
]
|
|
10850
|
+
},
|
|
10851
|
+
{
|
|
10852
|
+
name: "collections",
|
|
10853
|
+
type: "collections_s",
|
|
10854
|
+
index_type: "i64",
|
|
10855
|
+
key_names: [
|
|
10856
|
+
],
|
|
10857
|
+
key_types: [
|
|
10858
|
+
]
|
|
10859
|
+
},
|
|
10860
|
+
{
|
|
10861
|
+
name: "config",
|
|
10862
|
+
type: "config_s",
|
|
10863
|
+
index_type: "i64",
|
|
10864
|
+
key_names: [
|
|
10865
|
+
],
|
|
10866
|
+
key_types: [
|
|
10867
|
+
]
|
|
10868
|
+
},
|
|
10869
|
+
{
|
|
10870
|
+
name: "offers",
|
|
10871
|
+
type: "offers_s",
|
|
10872
|
+
index_type: "i64",
|
|
10873
|
+
key_names: [
|
|
10874
|
+
],
|
|
10875
|
+
key_types: [
|
|
10876
|
+
]
|
|
10877
|
+
},
|
|
10878
|
+
{
|
|
10879
|
+
name: "schemas",
|
|
10880
|
+
type: "schemas_s",
|
|
10881
|
+
index_type: "i64",
|
|
10882
|
+
key_names: [
|
|
10883
|
+
],
|
|
10884
|
+
key_types: [
|
|
10885
|
+
]
|
|
10886
|
+
},
|
|
10887
|
+
{
|
|
10888
|
+
name: "templates",
|
|
10889
|
+
type: "templates_s",
|
|
10890
|
+
index_type: "i64",
|
|
10891
|
+
key_names: [
|
|
10892
|
+
],
|
|
10893
|
+
key_types: [
|
|
10894
|
+
]
|
|
10895
|
+
},
|
|
10896
|
+
{
|
|
10897
|
+
name: "tokenconfigs",
|
|
10898
|
+
type: "tokenconfigs_s",
|
|
10899
|
+
index_type: "i64",
|
|
10900
|
+
key_names: [
|
|
10901
|
+
],
|
|
10902
|
+
key_types: [
|
|
10903
|
+
]
|
|
10904
|
+
}
|
|
10905
|
+
];
|
|
10906
|
+
var ricardian_clauses = [
|
|
10907
|
+
];
|
|
10908
|
+
var variants = [
|
|
10909
|
+
{
|
|
10910
|
+
name: "variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC",
|
|
10911
|
+
types: [
|
|
10912
|
+
"int8",
|
|
10913
|
+
"int16",
|
|
10914
|
+
"int32",
|
|
10915
|
+
"int64",
|
|
10916
|
+
"uint8",
|
|
10917
|
+
"uint16",
|
|
10918
|
+
"uint32",
|
|
10919
|
+
"uint64",
|
|
10920
|
+
"float32",
|
|
10921
|
+
"float64",
|
|
10922
|
+
"string",
|
|
10923
|
+
"INT8_VEC",
|
|
10924
|
+
"INT16_VEC",
|
|
10925
|
+
"INT32_VEC",
|
|
10926
|
+
"INT64_VEC",
|
|
10927
|
+
"UINT8_VEC",
|
|
10928
|
+
"UINT16_VEC",
|
|
10929
|
+
"UINT32_VEC",
|
|
10930
|
+
"UINT64_VEC",
|
|
10931
|
+
"FLOAT_VEC",
|
|
10932
|
+
"DOUBLE_VEC",
|
|
10933
|
+
"STRING_VEC"
|
|
10934
|
+
]
|
|
10935
|
+
}
|
|
10936
|
+
];
|
|
10937
|
+
var action_results = [
|
|
10938
|
+
];
|
|
10939
|
+
var atomicAssetsAbi = {
|
|
10940
|
+
____comment: ____comment,
|
|
10941
|
+
version: version,
|
|
10942
|
+
types: types,
|
|
10943
|
+
structs: structs,
|
|
10944
|
+
actions: actions,
|
|
10945
|
+
tables: tables,
|
|
10946
|
+
ricardian_clauses: ricardian_clauses,
|
|
10947
|
+
variants: variants,
|
|
10948
|
+
action_results: action_results
|
|
10949
|
+
};
|
|
10950
|
+
|
|
10951
|
+
const PLACEHOLDER_AUTH = antelope.PermissionLevel.from({
|
|
10952
|
+
actor: '............1',
|
|
10953
|
+
permission: '............2',
|
|
10954
|
+
});
|
|
10955
|
+
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
10956
|
+
const SHIPLOAD_COLLECTION = 'shipload';
|
|
10957
|
+
const ATOMICASSETS_ABI = antelope.ABI.from(atomicAssetsAbi);
|
|
10958
|
+
const ATOMIC_ATTRIBUTE_VARIANT_NAME = 'variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC';
|
|
10959
|
+
const MINTASSET_ABI_DEF = {
|
|
10960
|
+
version: 'eosio::abi/1.2',
|
|
10961
|
+
types: [
|
|
10962
|
+
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
10963
|
+
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
10964
|
+
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
10965
|
+
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
10966
|
+
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
10967
|
+
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
10968
|
+
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
10969
|
+
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
10970
|
+
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
10971
|
+
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
10972
|
+
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
10973
|
+
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
10974
|
+
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
10975
|
+
],
|
|
10976
|
+
structs: [
|
|
10977
|
+
{
|
|
10978
|
+
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
10979
|
+
base: '',
|
|
10980
|
+
fields: [
|
|
10981
|
+
{ name: 'first', type: 'string' },
|
|
10982
|
+
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
10983
|
+
],
|
|
10984
|
+
},
|
|
10985
|
+
{
|
|
10986
|
+
name: 'mintasset',
|
|
10987
|
+
base: '',
|
|
10988
|
+
fields: [
|
|
10989
|
+
{ name: 'authorized_minter', type: 'name' },
|
|
10990
|
+
{ name: 'collection_name', type: 'name' },
|
|
10991
|
+
{ name: 'schema_name', type: 'name' },
|
|
10992
|
+
{ name: 'template_id', type: 'int32' },
|
|
10993
|
+
{ name: 'new_asset_owner', type: 'name' },
|
|
10994
|
+
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
10995
|
+
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
10996
|
+
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
10997
|
+
],
|
|
10998
|
+
},
|
|
10999
|
+
],
|
|
11000
|
+
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
11001
|
+
variants: [
|
|
11002
|
+
{
|
|
11003
|
+
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
11004
|
+
types: [
|
|
11005
|
+
'int8',
|
|
11006
|
+
'int16',
|
|
11007
|
+
'int32',
|
|
11008
|
+
'int64',
|
|
11009
|
+
'uint8',
|
|
11010
|
+
'uint16',
|
|
11011
|
+
'uint32',
|
|
11012
|
+
'uint64',
|
|
11013
|
+
'float32',
|
|
11014
|
+
'float64',
|
|
11015
|
+
'string',
|
|
11016
|
+
'INT8_VEC',
|
|
11017
|
+
'INT16_VEC',
|
|
11018
|
+
'INT32_VEC',
|
|
11019
|
+
'INT64_VEC',
|
|
11020
|
+
'UINT8_VEC',
|
|
11021
|
+
'UINT16_VEC',
|
|
11022
|
+
'UINT32_VEC',
|
|
11023
|
+
'UINT64_VEC',
|
|
11024
|
+
'FLOAT_VEC',
|
|
11025
|
+
'DOUBLE_VEC',
|
|
11026
|
+
'STRING_VEC',
|
|
11027
|
+
],
|
|
11028
|
+
},
|
|
11029
|
+
],
|
|
11030
|
+
};
|
|
11031
|
+
const MINTASSET_ABI = antelope.ABI.from(MINTASSET_ABI_DEF);
|
|
11032
|
+
function buildMintAssetAction(params) {
|
|
11033
|
+
return antelope.Action.from({
|
|
11034
|
+
account: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
11035
|
+
name: antelope.Name.from('mintasset'),
|
|
11036
|
+
authorization: [PLACEHOLDER_AUTH],
|
|
11037
|
+
data: {
|
|
11038
|
+
authorized_minter: antelope.Name.from(params.authorizedMinter),
|
|
11039
|
+
collection_name: antelope.Name.from(params.collectionName),
|
|
11040
|
+
schema_name: antelope.Name.from(params.schemaName),
|
|
11041
|
+
template_id: params.templateId,
|
|
11042
|
+
new_asset_owner: antelope.Name.from(params.newAssetOwner),
|
|
11043
|
+
immutable_data: params.immutableData,
|
|
11044
|
+
mutable_data: [],
|
|
11045
|
+
tokens_to_back: [],
|
|
11046
|
+
},
|
|
11047
|
+
}, MINTASSET_ABI);
|
|
11048
|
+
}
|
|
11049
|
+
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
11050
|
+
const collection = opts.collection ? String(antelope.Name.from(opts.collection)) : undefined;
|
|
11051
|
+
const pageSize = opts.pageSize ?? 1000;
|
|
11052
|
+
const account = antelope.Name.from(opts.account ?? ATOMICASSETS_ACCOUNT);
|
|
11053
|
+
const out = [];
|
|
11054
|
+
let lower;
|
|
11055
|
+
while (true) {
|
|
11056
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11057
|
+
code: account,
|
|
11058
|
+
scope: String(antelope.Name.from(owner)),
|
|
11059
|
+
table: antelope.Name.from('assets'),
|
|
11060
|
+
limit: pageSize,
|
|
11061
|
+
lower_bound: lower,
|
|
11062
|
+
json: true,
|
|
11063
|
+
});
|
|
11064
|
+
for (const row of res.rows) {
|
|
11065
|
+
if (!collection || row.collection_name === collection)
|
|
11066
|
+
out.push(row);
|
|
11067
|
+
}
|
|
11068
|
+
if (!res.more)
|
|
11069
|
+
break;
|
|
11070
|
+
lower = antelope.UInt64.from(String(res.next_key));
|
|
11071
|
+
}
|
|
11072
|
+
return out;
|
|
11073
|
+
}
|
|
11074
|
+
async function fetchAtomicSchemas(client, collection, account = ATOMICASSETS_ACCOUNT) {
|
|
11075
|
+
const out = [];
|
|
11076
|
+
let lower;
|
|
11077
|
+
while (true) {
|
|
11078
|
+
const res = await client.v1.chain.get_table_rows({
|
|
11079
|
+
code: antelope.Name.from(account),
|
|
11080
|
+
scope: String(antelope.Name.from(collection)),
|
|
11081
|
+
table: antelope.Name.from('schemas'),
|
|
11082
|
+
limit: 100,
|
|
11083
|
+
lower_bound: lower,
|
|
11084
|
+
json: true,
|
|
11085
|
+
});
|
|
11086
|
+
for (const row of res.rows)
|
|
11087
|
+
out.push(row);
|
|
11088
|
+
if (!res.more)
|
|
11089
|
+
break;
|
|
11090
|
+
lower = antelope.Name.from(String(res.next_key));
|
|
11091
|
+
}
|
|
11092
|
+
return out;
|
|
11093
|
+
}
|
|
11094
|
+
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
11095
|
+
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
11096
|
+
const cargo = deserializeAsset(data, itemId);
|
|
11097
|
+
return {
|
|
11098
|
+
asset_id: BigInt(String(asset.asset_id)),
|
|
11099
|
+
schema_name: String(asset.schema_name),
|
|
11100
|
+
template_id: Number(asset.template_id),
|
|
11101
|
+
item_id: cargo.item_id,
|
|
11102
|
+
quantity: cargo.quantity,
|
|
11103
|
+
stats: cargo.stats,
|
|
11104
|
+
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
11105
|
+
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
11106
|
+
modules: cargo.modules,
|
|
11107
|
+
};
|
|
11108
|
+
}
|
|
11109
|
+
|
|
11110
|
+
class ActionsManager extends BaseManager {
|
|
11111
|
+
travel(shipId, destination, recharge = true) {
|
|
11112
|
+
const x = antelope.Int64.from(destination.x);
|
|
11113
|
+
const y = antelope.Int64.from(destination.y);
|
|
11114
|
+
return this.server.action('travel', {
|
|
11115
|
+
id: antelope.UInt64.from(shipId),
|
|
11116
|
+
x,
|
|
11117
|
+
y,
|
|
11118
|
+
recharge,
|
|
11119
|
+
});
|
|
11120
|
+
}
|
|
11121
|
+
grouptravel(entities, destination, recharge = true) {
|
|
11122
|
+
const entityRefs = entities.map((e) => exports.ServerTypes.entity_ref.from({
|
|
11123
|
+
entity_type: e.entityType,
|
|
11124
|
+
entity_id: antelope.UInt64.from(e.entityId),
|
|
11125
|
+
}));
|
|
11126
|
+
const x = antelope.Int64.from(destination.x);
|
|
11127
|
+
const y = antelope.Int64.from(destination.y);
|
|
11128
|
+
return this.server.action('grouptravel', {
|
|
11129
|
+
entities: entityRefs,
|
|
11130
|
+
x,
|
|
11131
|
+
y,
|
|
11132
|
+
recharge,
|
|
11133
|
+
});
|
|
11134
|
+
}
|
|
11135
|
+
resolve(entityId, count) {
|
|
11136
|
+
const params = {
|
|
11137
|
+
id: antelope.UInt64.from(entityId),
|
|
11138
|
+
};
|
|
11139
|
+
if (count !== undefined) {
|
|
11140
|
+
params.count = antelope.UInt64.from(count);
|
|
11141
|
+
}
|
|
11142
|
+
return this.server.action('resolve', params);
|
|
11143
|
+
}
|
|
11144
|
+
cancel(entityId, count) {
|
|
11145
|
+
return this.server.action('cancel', {
|
|
11146
|
+
id: antelope.UInt64.from(entityId),
|
|
11147
|
+
count: antelope.UInt64.from(count),
|
|
11148
|
+
});
|
|
11149
|
+
}
|
|
11150
|
+
recharge(entityId) {
|
|
11151
|
+
return this.server.action('recharge', {
|
|
11152
|
+
id: antelope.UInt64.from(entityId),
|
|
11153
|
+
});
|
|
11154
|
+
}
|
|
11155
|
+
refrshentity(entityId) {
|
|
11156
|
+
return this.server.action('refrshentity', {
|
|
11157
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
11158
|
+
});
|
|
11159
|
+
}
|
|
11160
|
+
transfer(sourceId, destId, items) {
|
|
11161
|
+
return this.server.action('transfer', {
|
|
11162
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
11163
|
+
dest_id: antelope.UInt64.from(destId),
|
|
11164
|
+
items,
|
|
11165
|
+
});
|
|
11166
|
+
}
|
|
11167
|
+
foundCompany(account, name) {
|
|
11168
|
+
return this.platform.action('foundcompany', {
|
|
11169
|
+
account: antelope.Name.from(account),
|
|
11170
|
+
name,
|
|
11171
|
+
});
|
|
11172
|
+
}
|
|
11173
|
+
join(account) {
|
|
11174
|
+
return this.server.action('join', {
|
|
11175
|
+
account: antelope.Name.from(account),
|
|
11176
|
+
});
|
|
11177
|
+
}
|
|
11178
|
+
gather(sourceId, destinationId, stratum, quantity) {
|
|
11179
|
+
return this.server.action('gather', {
|
|
11180
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
11181
|
+
destination_id: antelope.UInt64.from(destinationId),
|
|
11182
|
+
stratum: antelope.UInt16.from(stratum),
|
|
11183
|
+
quantity: antelope.UInt32.from(quantity),
|
|
11184
|
+
});
|
|
11185
|
+
}
|
|
11186
|
+
warp(entityId, destination) {
|
|
11187
|
+
const x = antelope.Int64.from(destination.x);
|
|
11188
|
+
const y = antelope.Int64.from(destination.y);
|
|
11189
|
+
return this.server.action('warp', {
|
|
11190
|
+
id: antelope.UInt64.from(entityId),
|
|
11191
|
+
x,
|
|
11192
|
+
y,
|
|
11193
|
+
});
|
|
11194
|
+
}
|
|
11195
|
+
craft(entityId, recipeId, quantity, inputs) {
|
|
11196
|
+
return this.server.action('craft', {
|
|
11197
|
+
id: antelope.UInt64.from(entityId),
|
|
11198
|
+
recipe_id: antelope.UInt16.from(recipeId),
|
|
11199
|
+
quantity: antelope.UInt32.from(quantity),
|
|
11200
|
+
inputs,
|
|
11201
|
+
});
|
|
11202
|
+
}
|
|
11203
|
+
blend(entityId, inputs) {
|
|
11204
|
+
return this.server.action('blend', {
|
|
11205
|
+
id: antelope.UInt64.from(entityId),
|
|
11206
|
+
inputs,
|
|
11207
|
+
});
|
|
11208
|
+
}
|
|
11209
|
+
deploy(entityId, ref) {
|
|
11210
|
+
return this.server.action('deploy', {
|
|
11211
|
+
id: antelope.UInt64.from(entityId),
|
|
11212
|
+
ref,
|
|
11213
|
+
});
|
|
11214
|
+
}
|
|
11215
|
+
claimplot(entityId, targetItemId, coords) {
|
|
11216
|
+
return this.server.action('claimplot', {
|
|
11217
|
+
builder_id: antelope.UInt64.from(entityId),
|
|
11218
|
+
target_item_id: antelope.UInt16.from(targetItemId),
|
|
11219
|
+
coords,
|
|
11220
|
+
});
|
|
11221
|
+
}
|
|
11222
|
+
buildplot(entityId, plotId) {
|
|
11223
|
+
return this.server.action('buildplot', {
|
|
11224
|
+
builder_id: antelope.UInt64.from(entityId),
|
|
11225
|
+
plot_id: antelope.UInt64.from(plotId),
|
|
11226
|
+
});
|
|
9401
11227
|
}
|
|
9402
11228
|
addmodule(entityId, moduleIndex, moduleRef, targetRef = null) {
|
|
9403
11229
|
return this.server.action('addmodule', {
|
|
@@ -9414,8 +11240,15 @@ class ActionsManager extends BaseManager {
|
|
|
9414
11240
|
target_ref: targetRef ?? undefined,
|
|
9415
11241
|
});
|
|
9416
11242
|
}
|
|
9417
|
-
|
|
9418
|
-
return
|
|
11243
|
+
swapmodule(entityId, moduleIndex, moduleRef) {
|
|
11244
|
+
return this.server.action('swapmodule', {
|
|
11245
|
+
entity_id: antelope.UInt64.from(entityId),
|
|
11246
|
+
module_index: moduleIndex,
|
|
11247
|
+
module_ref: moduleRef,
|
|
11248
|
+
});
|
|
11249
|
+
}
|
|
11250
|
+
async wrap(owner, entityId, nexusId, cargoId, quantity, opts = {}) {
|
|
11251
|
+
const actions = [
|
|
9419
11252
|
this.platform.action('wrapcargo', {
|
|
9420
11253
|
game: this.server.account,
|
|
9421
11254
|
owner: antelope.Name.from(owner),
|
|
@@ -9425,6 +11258,11 @@ class ActionsManager extends BaseManager {
|
|
|
9425
11258
|
quantity: antelope.UInt64.from(quantity),
|
|
9426
11259
|
}),
|
|
9427
11260
|
];
|
|
11261
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11262
|
+
if (claimRam) {
|
|
11263
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11264
|
+
}
|
|
11265
|
+
return actions;
|
|
9428
11266
|
}
|
|
9429
11267
|
undeploy(hostId, targetId) {
|
|
9430
11268
|
return this.server.action('undeploy', {
|
|
@@ -9432,8 +11270,8 @@ class ActionsManager extends BaseManager {
|
|
|
9432
11270
|
target_id: antelope.UInt64.from(targetId),
|
|
9433
11271
|
});
|
|
9434
11272
|
}
|
|
9435
|
-
async wrapEntity(owner, entityId, nexusId) {
|
|
9436
|
-
|
|
11273
|
+
async wrapEntity(owner, entityId, nexusId, opts = {}) {
|
|
11274
|
+
const actions = [
|
|
9437
11275
|
this.platform.action('wrapentity', {
|
|
9438
11276
|
game: this.server.account,
|
|
9439
11277
|
owner: antelope.Name.from(owner),
|
|
@@ -9441,6 +11279,11 @@ class ActionsManager extends BaseManager {
|
|
|
9441
11279
|
nexus_id: antelope.UInt64.from(nexusId),
|
|
9442
11280
|
}),
|
|
9443
11281
|
];
|
|
11282
|
+
const claimRam = opts.claimRam ?? (this.atomicAssetsAccount ?? 'atomicassets') !== 'atomicassets';
|
|
11283
|
+
if (claimRam) {
|
|
11284
|
+
actions.push(this.setLastPayer(owner, SHIPLOAD_COLLECTION));
|
|
11285
|
+
}
|
|
11286
|
+
return actions;
|
|
9444
11287
|
}
|
|
9445
11288
|
placecargo(owner, hostId, assetId) {
|
|
9446
11289
|
return this.server.action('placecargo', {
|
|
@@ -9458,7 +11301,7 @@ class ActionsManager extends BaseManager {
|
|
|
9458
11301
|
}
|
|
9459
11302
|
transferForUnwrap(owner, assetId) {
|
|
9460
11303
|
return antelope.Action.from({
|
|
9461
|
-
account:
|
|
11304
|
+
account: this.atomicAssetsAccount,
|
|
9462
11305
|
name: 'transfer',
|
|
9463
11306
|
authorization: [{ actor: antelope.Name.from(owner), permission: 'active' }],
|
|
9464
11307
|
data: {
|
|
@@ -9467,7 +11310,7 @@ class ActionsManager extends BaseManager {
|
|
|
9467
11310
|
asset_ids: [antelope.UInt64.from(assetId)],
|
|
9468
11311
|
memo: 'unwrap',
|
|
9469
11312
|
},
|
|
9470
|
-
});
|
|
11313
|
+
}, ATOMICASSETS_ABI);
|
|
9471
11314
|
}
|
|
9472
11315
|
unwrapCargoTx(owner, assetId, hostId) {
|
|
9473
11316
|
return [this.transferForUnwrap(owner, assetId), this.placecargo(owner, hostId, assetId)];
|
|
@@ -9480,11 +11323,19 @@ class ActionsManager extends BaseManager {
|
|
|
9480
11323
|
}
|
|
9481
11324
|
setRamPayer(newPayer, assetId) {
|
|
9482
11325
|
return antelope.Action.from({
|
|
9483
|
-
account:
|
|
11326
|
+
account: this.atomicAssetsAccount,
|
|
9484
11327
|
name: 'setrampayer',
|
|
9485
11328
|
authorization: [{ actor: antelope.Name.from(newPayer), permission: 'active' }],
|
|
9486
11329
|
data: { new_payer: antelope.Name.from(newPayer), asset_id: antelope.UInt64.from(assetId) },
|
|
9487
|
-
});
|
|
11330
|
+
}, ATOMICASSETS_ABI);
|
|
11331
|
+
}
|
|
11332
|
+
setLastPayer(owner, collectionName) {
|
|
11333
|
+
return antelope.Action.from({
|
|
11334
|
+
account: this.atomicAssetsAccount,
|
|
11335
|
+
name: 'setlastpayer',
|
|
11336
|
+
authorization: [{ actor: antelope.Name.from(owner), permission: 'active' }],
|
|
11337
|
+
data: { owner: antelope.Name.from(owner), collection_name: antelope.Name.from(collectionName) },
|
|
11338
|
+
}, ATOMICASSETS_ABI);
|
|
9488
11339
|
}
|
|
9489
11340
|
demolish(entityId) {
|
|
9490
11341
|
return this.server.action('demolish', {
|
|
@@ -9958,10 +11809,11 @@ class SubscriptionsManager {
|
|
|
9958
11809
|
}
|
|
9959
11810
|
|
|
9960
11811
|
class GameContext {
|
|
9961
|
-
constructor(client, server, platform) {
|
|
11812
|
+
constructor(client, server, platform, atomicAssetsAccount = 'atomicassets') {
|
|
9962
11813
|
this.client = client;
|
|
9963
11814
|
this.server = server;
|
|
9964
11815
|
this.platform = platform;
|
|
11816
|
+
this.atomicAssetsAccount = atomicAssetsAccount;
|
|
9965
11817
|
}
|
|
9966
11818
|
get entities() {
|
|
9967
11819
|
if (!this._entities) {
|
|
@@ -10052,7 +11904,7 @@ class Shipload {
|
|
|
10052
11904
|
const server$1 = serverContract
|
|
10053
11905
|
? serverContract
|
|
10054
11906
|
: new Contract({ client: apiClient });
|
|
10055
|
-
this._context = new GameContext(apiClient, server$1, platform$1);
|
|
11907
|
+
this._context = new GameContext(apiClient, server$1, platform$1, constructorOptions?.atomicAssetsAccount ?? 'atomicassets');
|
|
10056
11908
|
if (constructorOptions?.subscriptionsUrl) {
|
|
10057
11909
|
this._context.setSubscriptionsUrl(constructorOptions.subscriptionsUrl);
|
|
10058
11910
|
}
|
|
@@ -10083,109 +11935,42 @@ class Shipload {
|
|
|
10083
11935
|
get client() {
|
|
10084
11936
|
return this._context.client;
|
|
10085
11937
|
}
|
|
11938
|
+
get atomicAssetsAccount() {
|
|
11939
|
+
return this._context.atomicAssetsAccount;
|
|
11940
|
+
}
|
|
10086
11941
|
get server() {
|
|
10087
11942
|
return this._context.server;
|
|
10088
11943
|
}
|
|
10089
11944
|
get platform() {
|
|
10090
11945
|
return this._context.platform;
|
|
10091
11946
|
}
|
|
10092
|
-
get entities() {
|
|
10093
|
-
return this._context.entities;
|
|
10094
|
-
}
|
|
10095
|
-
get players() {
|
|
10096
|
-
return this._context.players;
|
|
10097
|
-
}
|
|
10098
|
-
get locations() {
|
|
10099
|
-
return this._context.locations;
|
|
10100
|
-
}
|
|
10101
|
-
get epochs() {
|
|
10102
|
-
return this._context.epochs;
|
|
10103
|
-
}
|
|
10104
|
-
get actions() {
|
|
10105
|
-
return this._context.actions;
|
|
10106
|
-
}
|
|
10107
|
-
get nft() {
|
|
10108
|
-
return this._context.nft;
|
|
10109
|
-
}
|
|
10110
|
-
get subscriptions() {
|
|
10111
|
-
return this._context.subscriptions;
|
|
10112
|
-
}
|
|
10113
|
-
async getGame(reload = false) {
|
|
10114
|
-
return this._context.getGame(reload);
|
|
10115
|
-
}
|
|
10116
|
-
async getState(reload = false) {
|
|
10117
|
-
return this._context.getState(reload);
|
|
10118
|
-
}
|
|
10119
|
-
}
|
|
10120
|
-
|
|
10121
|
-
const MODULE_ANY = 0;
|
|
10122
|
-
const MODULE_ENGINE = 1;
|
|
10123
|
-
const MODULE_GENERATOR = 2;
|
|
10124
|
-
const MODULE_GATHERER = 3;
|
|
10125
|
-
const MODULE_LOADER = 4;
|
|
10126
|
-
const MODULE_WARP = 5;
|
|
10127
|
-
const MODULE_CRAFTER = 6;
|
|
10128
|
-
const MODULE_LAUNCHER = 7;
|
|
10129
|
-
const MODULE_STORAGE = 8;
|
|
10130
|
-
const MODULE_HAULER = 9;
|
|
10131
|
-
const MODULE_BATTERY = 10;
|
|
10132
|
-
function moduleAccepts(slotType, moduleType) {
|
|
10133
|
-
return slotType === MODULE_ANY || slotType === moduleType;
|
|
10134
|
-
}
|
|
10135
|
-
function getModuleCapabilityType(itemId) {
|
|
10136
|
-
switch (itemId) {
|
|
10137
|
-
case ITEM_ENGINE_T1:
|
|
10138
|
-
return MODULE_ENGINE;
|
|
10139
|
-
case ITEM_GENERATOR_T1:
|
|
10140
|
-
return MODULE_GENERATOR;
|
|
10141
|
-
case ITEM_GATHERER_T1:
|
|
10142
|
-
return MODULE_GATHERER;
|
|
10143
|
-
case ITEM_LOADER_T1:
|
|
10144
|
-
return MODULE_LOADER;
|
|
10145
|
-
case ITEM_CRAFTER_T1:
|
|
10146
|
-
return MODULE_CRAFTER;
|
|
10147
|
-
case ITEM_STORAGE_T1:
|
|
10148
|
-
return MODULE_STORAGE;
|
|
10149
|
-
case ITEM_HAULER_T1:
|
|
10150
|
-
return MODULE_HAULER;
|
|
10151
|
-
case ITEM_WARP_T1:
|
|
10152
|
-
return MODULE_WARP;
|
|
10153
|
-
case ITEM_BATTERY_T1:
|
|
10154
|
-
return MODULE_BATTERY;
|
|
10155
|
-
default:
|
|
10156
|
-
return 0xff;
|
|
10157
|
-
}
|
|
10158
|
-
}
|
|
10159
|
-
function isModuleItem(itemId) {
|
|
10160
|
-
return getModuleCapabilityType(itemId) !== 0xff;
|
|
10161
|
-
}
|
|
10162
|
-
function moduleSlotTypeToCode(slotType) {
|
|
10163
|
-
switch (slotType) {
|
|
10164
|
-
case 'any':
|
|
10165
|
-
return MODULE_ANY;
|
|
10166
|
-
case 'engine':
|
|
10167
|
-
return MODULE_ENGINE;
|
|
10168
|
-
case 'generator':
|
|
10169
|
-
return MODULE_GENERATOR;
|
|
10170
|
-
case 'gatherer':
|
|
10171
|
-
return MODULE_GATHERER;
|
|
10172
|
-
case 'loader':
|
|
10173
|
-
return MODULE_LOADER;
|
|
10174
|
-
case 'warp':
|
|
10175
|
-
return MODULE_WARP;
|
|
10176
|
-
case 'crafter':
|
|
10177
|
-
return MODULE_CRAFTER;
|
|
10178
|
-
case 'launcher':
|
|
10179
|
-
return MODULE_LAUNCHER;
|
|
10180
|
-
case 'storage':
|
|
10181
|
-
return MODULE_STORAGE;
|
|
10182
|
-
case 'hauler':
|
|
10183
|
-
return MODULE_HAULER;
|
|
10184
|
-
case 'battery':
|
|
10185
|
-
return MODULE_BATTERY;
|
|
10186
|
-
default:
|
|
10187
|
-
return MODULE_ANY;
|
|
10188
|
-
}
|
|
11947
|
+
get entities() {
|
|
11948
|
+
return this._context.entities;
|
|
11949
|
+
}
|
|
11950
|
+
get players() {
|
|
11951
|
+
return this._context.players;
|
|
11952
|
+
}
|
|
11953
|
+
get locations() {
|
|
11954
|
+
return this._context.locations;
|
|
11955
|
+
}
|
|
11956
|
+
get epochs() {
|
|
11957
|
+
return this._context.epochs;
|
|
11958
|
+
}
|
|
11959
|
+
get actions() {
|
|
11960
|
+
return this._context.actions;
|
|
11961
|
+
}
|
|
11962
|
+
get nft() {
|
|
11963
|
+
return this._context.nft;
|
|
11964
|
+
}
|
|
11965
|
+
get subscriptions() {
|
|
11966
|
+
return this._context.subscriptions;
|
|
11967
|
+
}
|
|
11968
|
+
async getGame(reload = false) {
|
|
11969
|
+
return this._context.getGame(reload);
|
|
11970
|
+
}
|
|
11971
|
+
async getState(reload = false) {
|
|
11972
|
+
return this._context.getState(reload);
|
|
11973
|
+
}
|
|
10189
11974
|
}
|
|
10190
11975
|
|
|
10191
11976
|
const U16_MAX = 65535;
|
|
@@ -10638,7 +12423,7 @@ class PlotManager extends BaseManager {
|
|
|
10638
12423
|
const isComplete = rows.every((r) => r.missing === 0);
|
|
10639
12424
|
return { targetItemId, rows, massProvided, massRequired, isComplete };
|
|
10640
12425
|
}
|
|
10641
|
-
buildableTarget(plot, cargo, activeTask) {
|
|
12426
|
+
buildableTarget(plot, cargo, activeTask, scheduledBuild) {
|
|
10642
12427
|
const progress = this.progress(plot, cargo);
|
|
10643
12428
|
const targetItemId = Number(plot.item_id.toString());
|
|
10644
12429
|
const targetItem = getItem(targetItemId);
|
|
@@ -10648,12 +12433,15 @@ class PlotManager extends BaseManager {
|
|
|
10648
12433
|
}
|
|
10649
12434
|
let state;
|
|
10650
12435
|
const taskType = activeTask?.type.toNumber();
|
|
10651
|
-
if (
|
|
10652
|
-
state = 'initializing';
|
|
10653
|
-
}
|
|
10654
|
-
else if (taskType === exports.TaskType.BUILDPLOT) {
|
|
12436
|
+
if (scheduledBuild?.hasStarted) {
|
|
10655
12437
|
state = 'finalizing';
|
|
10656
12438
|
}
|
|
12439
|
+
else if (scheduledBuild) {
|
|
12440
|
+
state = 'scheduled';
|
|
12441
|
+
}
|
|
12442
|
+
else if (taskType === exports.TaskType.CLAIMPLOT) {
|
|
12443
|
+
state = 'initializing';
|
|
12444
|
+
}
|
|
10657
12445
|
else if (progress.isComplete) {
|
|
10658
12446
|
state = 'ready';
|
|
10659
12447
|
}
|
|
@@ -10672,6 +12460,7 @@ class PlotManager extends BaseManager {
|
|
|
10672
12460
|
finalizeAction: antelope.Name.from('buildplot'),
|
|
10673
12461
|
finalizerCapability: 'crafter',
|
|
10674
12462
|
activeTask,
|
|
12463
|
+
scheduledBuild,
|
|
10675
12464
|
};
|
|
10676
12465
|
}
|
|
10677
12466
|
canBuild(plot, cargo) {
|
|
@@ -10692,10 +12481,10 @@ class ConstructionManager extends BaseManager {
|
|
|
10692
12481
|
super(...arguments);
|
|
10693
12482
|
this.plot = new PlotManager(this.context);
|
|
10694
12483
|
}
|
|
10695
|
-
getTarget(entity, cargo, activeTask) {
|
|
12484
|
+
getTarget(entity, cargo, activeTask, scheduledBuild) {
|
|
10696
12485
|
const kind = entity.kind.toString();
|
|
10697
12486
|
if (kind === 'plot') {
|
|
10698
|
-
return this.plot.buildableTarget(entity, cargo, activeTask);
|
|
12487
|
+
return this.plot.buildableTarget(entity, cargo, activeTask, scheduledBuild);
|
|
10699
12488
|
}
|
|
10700
12489
|
return null;
|
|
10701
12490
|
}
|
|
@@ -10790,6 +12579,48 @@ class ConstructionManager extends BaseManager {
|
|
|
10790
12579
|
}
|
|
10791
12580
|
return out;
|
|
10792
12581
|
}
|
|
12582
|
+
scheduledBuildFor(plotId, entities, now) {
|
|
12583
|
+
return this.scheduledBuildsByTarget(entities, now).get(plotId.toString()) ?? null;
|
|
12584
|
+
}
|
|
12585
|
+
scheduledBuildsByTarget(entities, now) {
|
|
12586
|
+
const nowMs = now.getTime();
|
|
12587
|
+
const best = new Map();
|
|
12588
|
+
for (const entity of entities) {
|
|
12589
|
+
const schedule = entity.schedule;
|
|
12590
|
+
if (!schedule)
|
|
12591
|
+
continue;
|
|
12592
|
+
const startedMs = schedule.started.toDate().getTime();
|
|
12593
|
+
const tasks = schedule.tasks;
|
|
12594
|
+
let cumulativeSec = 0;
|
|
12595
|
+
for (let i = 0; i < tasks.length; i++) {
|
|
12596
|
+
const task = tasks[i];
|
|
12597
|
+
const startSec = cumulativeSec;
|
|
12598
|
+
cumulativeSec += task.duration.toNumber();
|
|
12599
|
+
if (task.type.toNumber() !== exports.TaskType.BUILDPLOT)
|
|
12600
|
+
continue;
|
|
12601
|
+
if (!task.entitytarget)
|
|
12602
|
+
continue;
|
|
12603
|
+
const completesAt = startedMs + cumulativeSec * 1000;
|
|
12604
|
+
if (completesAt < nowMs)
|
|
12605
|
+
continue;
|
|
12606
|
+
const startsAt = startedMs + startSec * 1000;
|
|
12607
|
+
const targetId = task.entitytarget.entity_id.toString();
|
|
12608
|
+
const candidate = {
|
|
12609
|
+
shipId: entity.id,
|
|
12610
|
+
shipName: entity.entity_name || entity.id.toString(),
|
|
12611
|
+
hasStarted: startsAt <= nowMs,
|
|
12612
|
+
startsAt,
|
|
12613
|
+
completesAt,
|
|
12614
|
+
trailingCancelCount: tasks.length - 1 - i,
|
|
12615
|
+
};
|
|
12616
|
+
const existing = best.get(targetId);
|
|
12617
|
+
if (!existing || candidate.completesAt < existing.completesAt) {
|
|
12618
|
+
best.set(targetId, candidate);
|
|
12619
|
+
}
|
|
12620
|
+
}
|
|
12621
|
+
}
|
|
12622
|
+
return best;
|
|
12623
|
+
}
|
|
10793
12624
|
reservationsFrom(sourceEntityId, entities) {
|
|
10794
12625
|
const source = entities.find((e) => e.id.equals(sourceEntityId));
|
|
10795
12626
|
if (!source)
|
|
@@ -11647,7 +13478,7 @@ function computeHaulerDrain$1(distance, drain, haulCount) {
|
|
|
11647
13478
|
const categoryColors = {
|
|
11648
13479
|
ore: '#C26D3F',
|
|
11649
13480
|
crystal: '#4ADBFF',
|
|
11650
|
-
gas: '#
|
|
13481
|
+
gas: '#B877FF',
|
|
11651
13482
|
regolith: '#C4A57B',
|
|
11652
13483
|
biomass: '#5A8B3E',
|
|
11653
13484
|
};
|
|
@@ -11663,20 +13494,6 @@ const tierColors = {
|
|
|
11663
13494
|
9: '#06b6d4',
|
|
11664
13495
|
10: '#ffffff',
|
|
11665
13496
|
};
|
|
11666
|
-
const categoryIcons = {
|
|
11667
|
-
ore: '⬡',
|
|
11668
|
-
crystal: '◈',
|
|
11669
|
-
gas: '◎',
|
|
11670
|
-
regolith: '■',
|
|
11671
|
-
biomass: '❋',
|
|
11672
|
-
};
|
|
11673
|
-
const categoryIconShapes = {
|
|
11674
|
-
ore: 'hex',
|
|
11675
|
-
crystal: 'diamond',
|
|
11676
|
-
gas: 'circle',
|
|
11677
|
-
regolith: 'square',
|
|
11678
|
-
biomass: 'star',
|
|
11679
|
-
};
|
|
11680
13497
|
const componentIcon = '▣';
|
|
11681
13498
|
const moduleIcon = '⬢';
|
|
11682
13499
|
const itemAbbreviations = {
|
|
@@ -11706,49 +13523,6 @@ const itemAbbreviations = {
|
|
|
11706
13523
|
20200: 'CT',
|
|
11707
13524
|
};
|
|
11708
13525
|
|
|
11709
|
-
const ITEM_TYPE_RESOURCE = 0;
|
|
11710
|
-
const ITEM_TYPE_COMPONENT = 1;
|
|
11711
|
-
const ITEM_TYPE_MODULE = 2;
|
|
11712
|
-
const ITEM_TYPE_ENTITY = 3;
|
|
11713
|
-
function itemTypeCode(id) {
|
|
11714
|
-
switch (itemCategory(id)) {
|
|
11715
|
-
case 'resource':
|
|
11716
|
-
return ITEM_TYPE_RESOURCE;
|
|
11717
|
-
case 'component':
|
|
11718
|
-
return ITEM_TYPE_COMPONENT;
|
|
11719
|
-
case 'module':
|
|
11720
|
-
return ITEM_TYPE_MODULE;
|
|
11721
|
-
case 'entity':
|
|
11722
|
-
return ITEM_TYPE_ENTITY;
|
|
11723
|
-
}
|
|
11724
|
-
}
|
|
11725
|
-
function itemTier(id) {
|
|
11726
|
-
if (id < 10000)
|
|
11727
|
-
return 0;
|
|
11728
|
-
return Math.floor(id / 10000);
|
|
11729
|
-
}
|
|
11730
|
-
function itemOffset(id) {
|
|
11731
|
-
return id % 10000;
|
|
11732
|
-
}
|
|
11733
|
-
function itemCategory(id) {
|
|
11734
|
-
if (id < 10000)
|
|
11735
|
-
return 'resource';
|
|
11736
|
-
const offset = itemOffset(id);
|
|
11737
|
-
if (offset >= 200)
|
|
11738
|
-
return 'entity';
|
|
11739
|
-
if (offset >= 100)
|
|
11740
|
-
return 'module';
|
|
11741
|
-
return 'component';
|
|
11742
|
-
}
|
|
11743
|
-
function isRelatedItem(a, b) {
|
|
11744
|
-
if (a < 10000 || b < 10000)
|
|
11745
|
-
return false;
|
|
11746
|
-
return itemOffset(a) === itemOffset(b);
|
|
11747
|
-
}
|
|
11748
|
-
function isCraftedItem(id) {
|
|
11749
|
-
return id >= 10000;
|
|
11750
|
-
}
|
|
11751
|
-
|
|
11752
13526
|
const categories = [
|
|
11753
13527
|
{
|
|
11754
13528
|
id: 'ore',
|
|
@@ -12108,7 +13882,7 @@ function resolveResource(id, stats) {
|
|
|
12108
13882
|
return {
|
|
12109
13883
|
itemId: id,
|
|
12110
13884
|
name: item.name,
|
|
12111
|
-
icon:
|
|
13885
|
+
icon: '',
|
|
12112
13886
|
abbreviation: null,
|
|
12113
13887
|
category: cat,
|
|
12114
13888
|
tier: item.tier,
|
|
@@ -12468,49 +14242,6 @@ function renderDescription(desc, options) {
|
|
|
12468
14242
|
return spans;
|
|
12469
14243
|
}
|
|
12470
14244
|
|
|
12471
|
-
function readCommonBase(data) {
|
|
12472
|
-
return {
|
|
12473
|
-
quantity: Number(data.quantity),
|
|
12474
|
-
stats: String(data.stats),
|
|
12475
|
-
origin_x: String(data.origin_x),
|
|
12476
|
-
origin_y: String(data.origin_y),
|
|
12477
|
-
};
|
|
12478
|
-
}
|
|
12479
|
-
function deserializeScalar(data, itemId) {
|
|
12480
|
-
const base = readCommonBase(data);
|
|
12481
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats };
|
|
12482
|
-
}
|
|
12483
|
-
const deserializeResource = deserializeScalar;
|
|
12484
|
-
const deserializeComponent = deserializeScalar;
|
|
12485
|
-
const deserializeModule = deserializeScalar;
|
|
12486
|
-
function deserializeEntity(data, itemId) {
|
|
12487
|
-
const base = readCommonBase(data);
|
|
12488
|
-
const moduleItems = (data.module_items ?? []).map((v) => Number(v));
|
|
12489
|
-
const moduleStats = (data.module_stats ?? []).map((v) => String(v));
|
|
12490
|
-
const layout = getEntityLayout(itemId);
|
|
12491
|
-
const slots = layout?.slots ?? [];
|
|
12492
|
-
const modules = slots.map((slot, i) => ({
|
|
12493
|
-
type: moduleSlotTypeToCode(slot.type),
|
|
12494
|
-
installed: moduleItems[i] && moduleItems[i] !== 0
|
|
12495
|
-
? { item_id: moduleItems[i], stats: moduleStats[i] }
|
|
12496
|
-
: undefined,
|
|
12497
|
-
}));
|
|
12498
|
-
return { item_id: itemId, quantity: base.quantity, stats: base.stats, modules };
|
|
12499
|
-
}
|
|
12500
|
-
function deserializeAsset(data, itemId) {
|
|
12501
|
-
const type = itemTypeCode(itemId);
|
|
12502
|
-
switch (type) {
|
|
12503
|
-
case ITEM_TYPE_RESOURCE:
|
|
12504
|
-
case ITEM_TYPE_COMPONENT:
|
|
12505
|
-
case ITEM_TYPE_MODULE:
|
|
12506
|
-
return deserializeScalar(data, itemId);
|
|
12507
|
-
case ITEM_TYPE_ENTITY:
|
|
12508
|
-
return deserializeEntity(data, itemId);
|
|
12509
|
-
default:
|
|
12510
|
-
throw new Error(`unknown item type ${type} for item ${itemId}`);
|
|
12511
|
-
}
|
|
12512
|
-
}
|
|
12513
|
-
|
|
12514
14245
|
function idiv(a, b) {
|
|
12515
14246
|
return Math.floor(a / b);
|
|
12516
14247
|
}
|
|
@@ -12603,342 +14334,71 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
12603
14334
|
case MODULE_GATHERER: {
|
|
12604
14335
|
const str = decodeStat(stats, 0);
|
|
12605
14336
|
const tol = decodeStat(stats, 1);
|
|
12606
|
-
const con = decodeStat(stats, 2);
|
|
12607
|
-
const tier = getItem(itemId).tier;
|
|
12608
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
12609
|
-
break;
|
|
12610
|
-
}
|
|
12611
|
-
case MODULE_LOADER: {
|
|
12612
|
-
const fin = decodeStat(stats, 0);
|
|
12613
|
-
const pla = decodeStat(stats, 1);
|
|
12614
|
-
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
12615
|
-
break;
|
|
12616
|
-
}
|
|
12617
|
-
case MODULE_CRAFTER: {
|
|
12618
|
-
const rea = decodeStat(stats, 0);
|
|
12619
|
-
const com = decodeStat(stats, 1);
|
|
12620
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12621
|
-
break;
|
|
12622
|
-
}
|
|
12623
|
-
case MODULE_STORAGE: {
|
|
12624
|
-
const str = decodeStat(stats, 0);
|
|
12625
|
-
const fin = decodeStat(stats, 2);
|
|
12626
|
-
const sat = decodeStat(stats, 3);
|
|
12627
|
-
const sum = str + fin + sat;
|
|
12628
|
-
const pct = 10 + idiv(sum * 10, 2997);
|
|
12629
|
-
out += ` +${pct}% capacity`;
|
|
12630
|
-
break;
|
|
12631
|
-
}
|
|
12632
|
-
case MODULE_HAULER: {
|
|
12633
|
-
const res = decodeStat(stats, 0);
|
|
12634
|
-
const con = decodeStat(stats, 1);
|
|
12635
|
-
const ref = decodeStat(stats, 2);
|
|
12636
|
-
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12637
|
-
break;
|
|
12638
|
-
}
|
|
12639
|
-
case MODULE_WARP: {
|
|
12640
|
-
const stat = decodeStat(stats, 0);
|
|
12641
|
-
out += ` Range ${computeWarpRange(stat)}`;
|
|
12642
|
-
break;
|
|
12643
|
-
}
|
|
12644
|
-
}
|
|
12645
|
-
return out;
|
|
12646
|
-
}
|
|
12647
|
-
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
12648
|
-
const hullMass = computeBaseHullmass(hullStats);
|
|
12649
|
-
let baseCapacity = 0;
|
|
12650
|
-
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
12651
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12652
|
-
}
|
|
12653
|
-
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
12654
|
-
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
12655
|
-
}
|
|
12656
|
-
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
12657
|
-
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
12658
|
-
}
|
|
12659
|
-
let out = entityDisplayName(itemId);
|
|
12660
|
-
out += ` - Hull ${hullMass} mass`;
|
|
12661
|
-
if (baseCapacity > 0) {
|
|
12662
|
-
out += ` * ${baseCapacity} capacity`;
|
|
12663
|
-
}
|
|
12664
|
-
out += '\n\n';
|
|
12665
|
-
for (let i = 0; i < moduleItems.length; i++) {
|
|
12666
|
-
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
12667
|
-
out += '\n';
|
|
12668
|
-
}
|
|
12669
|
-
return out;
|
|
12670
|
-
}
|
|
12671
|
-
|
|
12672
|
-
function deserializeAtomicData(data, schema) {
|
|
12673
|
-
let rawData;
|
|
12674
|
-
if (data && typeof data === 'object' && 'immutable_serialized_data' in data) {
|
|
12675
|
-
rawData = data
|
|
12676
|
-
.immutable_serialized_data;
|
|
12677
|
-
}
|
|
12678
|
-
else {
|
|
12679
|
-
rawData = data;
|
|
12680
|
-
}
|
|
12681
|
-
let bytes;
|
|
12682
|
-
if (typeof rawData === 'string') {
|
|
12683
|
-
const hex = rawData;
|
|
12684
|
-
bytes = new Uint8Array(hex.length / 2);
|
|
12685
|
-
for (let i = 0; i < hex.length; i += 2) {
|
|
12686
|
-
bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
|
|
12687
|
-
}
|
|
12688
|
-
}
|
|
12689
|
-
else if (Array.isArray(rawData)) {
|
|
12690
|
-
bytes = new Uint8Array(rawData);
|
|
12691
|
-
}
|
|
12692
|
-
else {
|
|
12693
|
-
bytes = rawData;
|
|
12694
|
-
}
|
|
12695
|
-
let offset = 0;
|
|
12696
|
-
function readVarint() {
|
|
12697
|
-
let result = 0;
|
|
12698
|
-
let multiplier = 1;
|
|
12699
|
-
while (bytes[offset] >= 128) {
|
|
12700
|
-
result += (bytes[offset] - 128) * multiplier;
|
|
12701
|
-
offset++;
|
|
12702
|
-
multiplier *= 128;
|
|
12703
|
-
}
|
|
12704
|
-
result += bytes[offset] * multiplier;
|
|
12705
|
-
offset++;
|
|
12706
|
-
return result;
|
|
12707
|
-
}
|
|
12708
|
-
function readVarint64() {
|
|
12709
|
-
let result = 0n;
|
|
12710
|
-
let multiplier = 1n;
|
|
12711
|
-
while (bytes[offset] >= 128) {
|
|
12712
|
-
result += BigInt(bytes[offset] - 128) * multiplier;
|
|
12713
|
-
offset++;
|
|
12714
|
-
multiplier *= 128n;
|
|
12715
|
-
}
|
|
12716
|
-
result += BigInt(bytes[offset]) * multiplier;
|
|
12717
|
-
offset++;
|
|
12718
|
-
return result;
|
|
12719
|
-
}
|
|
12720
|
-
function readZigzagInt64() {
|
|
12721
|
-
const unsigned = readVarint64();
|
|
12722
|
-
if (unsigned % 2n === 0n) {
|
|
12723
|
-
return unsigned / 2n;
|
|
14337
|
+
const con = decodeStat(stats, 2);
|
|
14338
|
+
const tier = getItem(itemId).tier;
|
|
14339
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
14340
|
+
break;
|
|
12724
14341
|
}
|
|
12725
|
-
|
|
12726
|
-
|
|
14342
|
+
case MODULE_LOADER: {
|
|
14343
|
+
const fin = decodeStat(stats, 0);
|
|
14344
|
+
const pla = decodeStat(stats, 1);
|
|
14345
|
+
out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
|
|
14346
|
+
break;
|
|
12727
14347
|
}
|
|
12728
|
-
|
|
12729
|
-
|
|
12730
|
-
|
|
12731
|
-
|
|
12732
|
-
offset += length;
|
|
12733
|
-
return str;
|
|
12734
|
-
}
|
|
12735
|
-
const RESERVED = 4;
|
|
12736
|
-
const result = {};
|
|
12737
|
-
while (offset < bytes.length) {
|
|
12738
|
-
const fieldIndex = readVarint() - RESERVED;
|
|
12739
|
-
const field = schema[fieldIndex];
|
|
12740
|
-
if (!field)
|
|
14348
|
+
case MODULE_CRAFTER: {
|
|
14349
|
+
const rea = decodeStat(stats, 0);
|
|
14350
|
+
const com = decodeStat(stats, 1);
|
|
14351
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
|
|
12741
14352
|
break;
|
|
12742
|
-
switch (field.type) {
|
|
12743
|
-
case 'uint16':
|
|
12744
|
-
result[field.name] = readVarint();
|
|
12745
|
-
break;
|
|
12746
|
-
case 'uint32':
|
|
12747
|
-
result[field.name] = readVarint();
|
|
12748
|
-
break;
|
|
12749
|
-
case 'uint64':
|
|
12750
|
-
result[field.name] = readVarint64();
|
|
12751
|
-
break;
|
|
12752
|
-
case 'int32':
|
|
12753
|
-
result[field.name] = readZigzagInt64();
|
|
12754
|
-
break;
|
|
12755
|
-
case 'int64':
|
|
12756
|
-
result[field.name] = readZigzagInt64();
|
|
12757
|
-
break;
|
|
12758
|
-
case 'string':
|
|
12759
|
-
case 'image':
|
|
12760
|
-
case 'ipfs':
|
|
12761
|
-
result[field.name] = readString();
|
|
12762
|
-
break;
|
|
12763
|
-
case 'uint16[]': {
|
|
12764
|
-
const len = readVarint();
|
|
12765
|
-
const arr = [];
|
|
12766
|
-
for (let i = 0; i < len; i++)
|
|
12767
|
-
arr.push(readVarint());
|
|
12768
|
-
result[field.name] = arr;
|
|
12769
|
-
break;
|
|
12770
|
-
}
|
|
12771
|
-
case 'uint64[]': {
|
|
12772
|
-
const len = readVarint();
|
|
12773
|
-
const arr = [];
|
|
12774
|
-
for (let i = 0; i < len; i++)
|
|
12775
|
-
arr.push(readVarint64());
|
|
12776
|
-
result[field.name] = arr;
|
|
12777
|
-
break;
|
|
12778
|
-
}
|
|
12779
|
-
default:
|
|
12780
|
-
throw new Error(`Unknown type: ${field.type}`);
|
|
12781
14353
|
}
|
|
12782
|
-
|
|
12783
|
-
|
|
12784
|
-
|
|
12785
|
-
|
|
12786
|
-
const
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
const ATOMICASSETS_ACCOUNT = 'atomicassets';
|
|
12791
|
-
const SHIPLOAD_COLLECTION = 'shipload';
|
|
12792
|
-
const ATOMIC_ATTRIBUTE_VARIANT_NAME = 'variant_int8_int16_int32_int64_uint8_uint16_uint32_uint64_float32_float64_string_INT8_VEC_INT16_VEC_INT32_VEC_INT64_VEC_UINT8_VEC_UINT16_VEC_UINT32_VEC_UINT64_VEC_FLOAT_VEC_DOUBLE_VEC_STRING_VEC';
|
|
12793
|
-
const MINTASSET_ABI_DEF = {
|
|
12794
|
-
version: 'eosio::abi/1.2',
|
|
12795
|
-
types: [
|
|
12796
|
-
{ new_type_name: 'ATOMIC_ATTRIBUTE', type: ATOMIC_ATTRIBUTE_VARIANT_NAME },
|
|
12797
|
-
{ new_type_name: 'ATTRIBUTE_MAP', type: 'pair_string_ATOMIC_ATTRIBUTE[]' },
|
|
12798
|
-
{ new_type_name: 'INT8_VEC', type: 'bytes' },
|
|
12799
|
-
{ new_type_name: 'INT16_VEC', type: 'int16[]' },
|
|
12800
|
-
{ new_type_name: 'INT32_VEC', type: 'int32[]' },
|
|
12801
|
-
{ new_type_name: 'INT64_VEC', type: 'int64[]' },
|
|
12802
|
-
{ new_type_name: 'UINT8_VEC', type: 'bytes' },
|
|
12803
|
-
{ new_type_name: 'UINT16_VEC', type: 'uint16[]' },
|
|
12804
|
-
{ new_type_name: 'UINT32_VEC', type: 'uint32[]' },
|
|
12805
|
-
{ new_type_name: 'UINT64_VEC', type: 'uint64[]' },
|
|
12806
|
-
{ new_type_name: 'FLOAT_VEC', type: 'float32[]' },
|
|
12807
|
-
{ new_type_name: 'DOUBLE_VEC', type: 'float64[]' },
|
|
12808
|
-
{ new_type_name: 'STRING_VEC', type: 'string[]' },
|
|
12809
|
-
],
|
|
12810
|
-
structs: [
|
|
12811
|
-
{
|
|
12812
|
-
name: 'pair_string_ATOMIC_ATTRIBUTE',
|
|
12813
|
-
base: '',
|
|
12814
|
-
fields: [
|
|
12815
|
-
{ name: 'first', type: 'string' },
|
|
12816
|
-
{ name: 'second', type: 'ATOMIC_ATTRIBUTE' },
|
|
12817
|
-
],
|
|
12818
|
-
},
|
|
12819
|
-
{
|
|
12820
|
-
name: 'mintasset',
|
|
12821
|
-
base: '',
|
|
12822
|
-
fields: [
|
|
12823
|
-
{ name: 'authorized_minter', type: 'name' },
|
|
12824
|
-
{ name: 'collection_name', type: 'name' },
|
|
12825
|
-
{ name: 'schema_name', type: 'name' },
|
|
12826
|
-
{ name: 'template_id', type: 'int32' },
|
|
12827
|
-
{ name: 'new_asset_owner', type: 'name' },
|
|
12828
|
-
{ name: 'immutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12829
|
-
{ name: 'mutable_data', type: 'ATTRIBUTE_MAP' },
|
|
12830
|
-
{ name: 'tokens_to_back', type: 'asset[]' },
|
|
12831
|
-
],
|
|
12832
|
-
},
|
|
12833
|
-
],
|
|
12834
|
-
actions: [{ name: 'mintasset', type: 'mintasset', ricardian_contract: '' }],
|
|
12835
|
-
variants: [
|
|
12836
|
-
{
|
|
12837
|
-
name: ATOMIC_ATTRIBUTE_VARIANT_NAME,
|
|
12838
|
-
types: [
|
|
12839
|
-
'int8',
|
|
12840
|
-
'int16',
|
|
12841
|
-
'int32',
|
|
12842
|
-
'int64',
|
|
12843
|
-
'uint8',
|
|
12844
|
-
'uint16',
|
|
12845
|
-
'uint32',
|
|
12846
|
-
'uint64',
|
|
12847
|
-
'float32',
|
|
12848
|
-
'float64',
|
|
12849
|
-
'string',
|
|
12850
|
-
'INT8_VEC',
|
|
12851
|
-
'INT16_VEC',
|
|
12852
|
-
'INT32_VEC',
|
|
12853
|
-
'INT64_VEC',
|
|
12854
|
-
'UINT8_VEC',
|
|
12855
|
-
'UINT16_VEC',
|
|
12856
|
-
'UINT32_VEC',
|
|
12857
|
-
'UINT64_VEC',
|
|
12858
|
-
'FLOAT_VEC',
|
|
12859
|
-
'DOUBLE_VEC',
|
|
12860
|
-
'STRING_VEC',
|
|
12861
|
-
],
|
|
12862
|
-
},
|
|
12863
|
-
],
|
|
12864
|
-
};
|
|
12865
|
-
const MINTASSET_ABI = antelope.ABI.from(MINTASSET_ABI_DEF);
|
|
12866
|
-
function buildMintAssetAction(params) {
|
|
12867
|
-
return antelope.Action.from({
|
|
12868
|
-
account: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
12869
|
-
name: antelope.Name.from('mintasset'),
|
|
12870
|
-
authorization: [PLACEHOLDER_AUTH],
|
|
12871
|
-
data: {
|
|
12872
|
-
authorized_minter: antelope.Name.from(params.authorizedMinter),
|
|
12873
|
-
collection_name: antelope.Name.from(params.collectionName),
|
|
12874
|
-
schema_name: antelope.Name.from(params.schemaName),
|
|
12875
|
-
template_id: params.templateId,
|
|
12876
|
-
new_asset_owner: antelope.Name.from(params.newAssetOwner),
|
|
12877
|
-
immutable_data: params.immutableData,
|
|
12878
|
-
mutable_data: [],
|
|
12879
|
-
tokens_to_back: [],
|
|
12880
|
-
},
|
|
12881
|
-
}, MINTASSET_ABI);
|
|
12882
|
-
}
|
|
12883
|
-
async function fetchAtomicAssetsForOwner(client, owner, opts = {}) {
|
|
12884
|
-
const collection = opts.collection ? String(antelope.Name.from(opts.collection)) : undefined;
|
|
12885
|
-
const pageSize = opts.pageSize ?? 1000;
|
|
12886
|
-
const out = [];
|
|
12887
|
-
let lower;
|
|
12888
|
-
while (true) {
|
|
12889
|
-
const res = await client.v1.chain.get_table_rows({
|
|
12890
|
-
code: antelope.Name.from(ATOMICASSETS_ACCOUNT),
|
|
12891
|
-
scope: String(antelope.Name.from(owner)),
|
|
12892
|
-
table: antelope.Name.from('assets'),
|
|
12893
|
-
limit: pageSize,
|
|
12894
|
-
lower_bound: lower,
|
|
12895
|
-
json: true,
|
|
12896
|
-
});
|
|
12897
|
-
for (const row of res.rows) {
|
|
12898
|
-
if (!collection || row.collection_name === collection)
|
|
12899
|
-
out.push(row);
|
|
14354
|
+
case MODULE_STORAGE: {
|
|
14355
|
+
const str = decodeStat(stats, 0);
|
|
14356
|
+
const fin = decodeStat(stats, 2);
|
|
14357
|
+
const sat = decodeStat(stats, 3);
|
|
14358
|
+
const sum = str + fin + sat;
|
|
14359
|
+
const pct = 10 + idiv(sum * 10, 2997);
|
|
14360
|
+
out += ` +${pct}% capacity`;
|
|
14361
|
+
break;
|
|
12900
14362
|
}
|
|
12901
|
-
|
|
14363
|
+
case MODULE_HAULER: {
|
|
14364
|
+
const res = decodeStat(stats, 0);
|
|
14365
|
+
const con = decodeStat(stats, 1);
|
|
14366
|
+
const ref = decodeStat(stats, 2);
|
|
14367
|
+
out += ` Capacity ${computeHaulerCapacity(res)} Efficiency ${computeHaulerEfficiency(con)} Drain ${computeHaulerDrain(ref)}`;
|
|
12902
14368
|
break;
|
|
12903
|
-
|
|
14369
|
+
}
|
|
14370
|
+
case MODULE_WARP: {
|
|
14371
|
+
const stat = decodeStat(stats, 0);
|
|
14372
|
+
out += ` Range ${computeWarpRange(stat)}`;
|
|
14373
|
+
break;
|
|
14374
|
+
}
|
|
12904
14375
|
}
|
|
12905
14376
|
return out;
|
|
12906
14377
|
}
|
|
12907
|
-
|
|
12908
|
-
const
|
|
12909
|
-
let
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
14378
|
+
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14379
|
+
const hullMass = computeBaseHullmass(hullStats);
|
|
14380
|
+
let baseCapacity = 0;
|
|
14381
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
14382
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14383
|
+
}
|
|
14384
|
+
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
14385
|
+
baseCapacity = computeBaseCapacityWarehouse(hullStats);
|
|
14386
|
+
}
|
|
14387
|
+
else if (itemId === ITEM_EXTRACTOR_T1_PACKED) {
|
|
14388
|
+
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14389
|
+
}
|
|
14390
|
+
let out = entityDisplayName(itemId);
|
|
14391
|
+
out += ` - Hull ${hullMass} mass`;
|
|
14392
|
+
if (baseCapacity > 0) {
|
|
14393
|
+
out += ` * ${baseCapacity} capacity`;
|
|
14394
|
+
}
|
|
14395
|
+
out += '\n\n';
|
|
14396
|
+
for (let i = 0; i < moduleItems.length; i++) {
|
|
14397
|
+
out += formatModuleLine(i, moduleItems[i], moduleStats[i] ?? 0n);
|
|
14398
|
+
out += '\n';
|
|
12924
14399
|
}
|
|
12925
14400
|
return out;
|
|
12926
14401
|
}
|
|
12927
|
-
function decodeAtomicAsset(asset, schemaFormat, itemId) {
|
|
12928
|
-
const data = deserializeAtomicData(asset.immutable_serialized_data, schemaFormat);
|
|
12929
|
-
const cargo = deserializeAsset(data, itemId);
|
|
12930
|
-
return {
|
|
12931
|
-
asset_id: BigInt(String(asset.asset_id)),
|
|
12932
|
-
schema_name: String(asset.schema_name),
|
|
12933
|
-
template_id: Number(asset.template_id),
|
|
12934
|
-
item_id: cargo.item_id,
|
|
12935
|
-
quantity: cargo.quantity,
|
|
12936
|
-
stats: cargo.stats,
|
|
12937
|
-
origin_x: BigInt(String(data.origin_x ?? 0)),
|
|
12938
|
-
origin_y: BigInt(String(data.origin_y ?? 0)),
|
|
12939
|
-
modules: cargo.modules,
|
|
12940
|
-
};
|
|
12941
|
-
}
|
|
12942
14402
|
|
|
12943
14403
|
function moduleSlotsForImmutable(modules) {
|
|
12944
14404
|
return modules.map((m) => ({
|
|
@@ -13169,6 +14629,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
13169
14629
|
deserializeAtomicData: deserializeAtomicData,
|
|
13170
14630
|
ATOMICASSETS_ACCOUNT: ATOMICASSETS_ACCOUNT,
|
|
13171
14631
|
SHIPLOAD_COLLECTION: SHIPLOAD_COLLECTION,
|
|
14632
|
+
ATOMICASSETS_ABI: ATOMICASSETS_ABI,
|
|
13172
14633
|
buildMintAssetAction: buildMintAssetAction,
|
|
13173
14634
|
fetchAtomicAssetsForOwner: fetchAtomicAssetsForOwner,
|
|
13174
14635
|
fetchAtomicSchemas: fetchAtomicSchemas,
|
|
@@ -13562,8 +15023,6 @@ exports.cargoRef = cargoRef;
|
|
|
13562
15023
|
exports.cargoUtils = cargoUtils;
|
|
13563
15024
|
exports.categoryColors = categoryColors;
|
|
13564
15025
|
exports.categoryFromIndex = categoryFromIndex;
|
|
13565
|
-
exports.categoryIconShapes = categoryIconShapes;
|
|
13566
|
-
exports.categoryIcons = categoryIcons;
|
|
13567
15026
|
exports.categoryLabel = categoryLabel;
|
|
13568
15027
|
exports.categoryLabelFromIndex = categoryLabelFromIndex;
|
|
13569
15028
|
exports.componentIcon = componentIcon;
|