@bitgo/utxo-bin 1.0.0 → 1.0.1-rc.3

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/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitgo/utxo-bin",
3
3
  "description": "Command-line utility for BitGo UTXO transactions",
4
- "version": "1.0.0",
4
+ "version": "1.0.1-rc.3",
5
5
  "files": [
6
6
  "dist/**/*"
7
7
  ],
@@ -25,18 +25,16 @@
25
25
  },
26
26
  "bin": "./dist/bin/index.js",
27
27
  "dependencies": {
28
- "@bitgo/blockapis": "^1.0.0",
29
- "@bitgo/statics": "^6.16.0",
30
- "@bitgo/utxo-lib": "^2.2.1",
28
+ "@bitgo/blockapis": "^1.0.1-rc.1",
29
+ "@bitgo/statics": "^6.17.0-rc.3",
30
+ "@bitgo/utxo-lib": "^2.2.2-rc.1",
31
31
  "archy": "^1.0.0",
32
32
  "chalk": "4",
33
33
  "yargs": "^17.3.1"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/archy": "^0.0.32",
37
- "@types/mocha": "^9.0.0",
38
37
  "@types/yargs": "^17.0.8",
39
- "mocha": "^9.1.4",
40
38
  "ts-node": "^10.4.0",
41
39
  "typescript": "^4.5.4"
42
40
  },
@@ -44,5 +42,5 @@
44
42
  "access": "public"
45
43
  },
46
44
  "license": "MIT",
47
- "gitHead": "6e5ced0a1afd015f348271481c18772b8899c260"
45
+ "gitHead": "9ac02a1532053ff4bc8bbcee8e7d00f33ae622ad"
48
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAU7C,aAAK,IAAI,GAAG;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,UAAU,CAAC;AAEf,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAE7D;AAED,eAAO,MAAM,QAAQ;;;eAIR,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;kBAiB7B,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC;CA0D1D,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAU7C,aAAK,IAAI,GAAG;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,UAAU,CAAC;AAEf,wBAAgB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAE7D;AAED,eAAO,MAAM,QAAQ;;;eAIR,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;kBAkB7B,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC;CA0D1D,CAAC"}
@@ -27,6 +27,7 @@ exports.cmdParse = {
27
27
  .option('parseScriptAsm', { alias: 'scriptasm', type: 'boolean', default: false })
28
28
  .option('parseScriptData', { alias: 'scriptdata', type: 'boolean', default: false })
29
29
  .option('parseSignatureData', { alias: 'sigdata', type: 'boolean', default: false })
30
+ .option('maxOutputs', { type: 'number' })
30
31
  .option('all', { type: 'boolean', default: false })
31
32
  .option('format', { choices: ['tree', 'json'], default: 'tree' });
32
33
  },
@@ -83,4 +84,4 @@ exports.cmdParse = {
83
84
  }
84
85
  },
85
86
  };
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUVuQywyQ0FBMkM7QUFFM0MsbUNBQTZDO0FBQzdDLHFDQUFzQztBQUN0QyxtQ0FNaUI7QUFlakIsU0FBZ0IsU0FBUyxDQUFDLElBQTJCO0lBQ25ELE9BQU8sSUFBSSxjQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELDhCQUVDO0FBRVksUUFBQSxRQUFRLEdBQUc7SUFDdEIsT0FBTyxFQUFFLGNBQWM7SUFDdkIsUUFBUSxFQUFFLHVEQUF1RDtJQUVqRSxPQUFPLENBQUMsQ0FBc0I7UUFDNUIsT0FBTyxDQUFDO2FBQ0wsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDekQsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7YUFDbEMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUMxRCxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFD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QUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckUsTUFBTTtTQUNUO0lBQ0gsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwcm9jZXNzIGZyb20gJ3Byb2Nlc3MnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IFBhcnNlciwgUGFyc2VyQXJncyB9IGZyb20gJy4vcGFyc2UnO1xuaW1wb3J0IHsgZm9ybWF0VHJlZSB9IGZyb20gJy4vZm9ybWF0JztcbmltcG9ydCB7XG4gIGZldGNoT3V0cHV0U3BlbmRzLFxuICBmZXRjaFByZXZPdXRwdXRzLFxuICBmZXRjaFByZXZPdXRwdXRTcGVuZHMsXG4gIGZldGNoVHJhbnNhY3Rpb25IZXgsXG4gIGZldGNoVHJhbnNhY3Rpb25TdGF0dXMsXG59IGZyb20gJy4vZmV0Y2gnO1xuXG50eXBlIEFyZ3MgPSB7XG4gIG5ldHdvcms6IHN0cmluZztcbiAgc3RkaW46IGJvb2xlYW47XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHR4aWQ/OiBzdHJpbmc7XG4gIGFsbDogYm9vbGVhbjtcbiAgZm9ybWF0OiAndHJlZScgfCAnanNvbic7XG4gIGZldGNoQWxsOiBib29sZWFuO1xuICBmZXRjaFN0YXR1czogYm9vbGVhbjtcbiAgZmV0Y2hJbnB1dHM6IGJvb2xlYW47XG4gIGZldGNoU3BlbmRzOiBib29sZWFuO1xufSAmIFBhcnNlckFyZ3M7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXJzZXIoYXJndjogeWFyZ3MuQXJndW1lbnRzPEFyZ3M+KTogUGFyc2VyIHtcbiAgcmV0dXJuIG5ldyBQYXJzZXIoYXJndi5hbGwgPyBQYXJzZXIuUEFSU0VfQUxMIDogYXJndik7XG59XG5cbmV4cG9ydCBjb25zdCBjbWRQYXJzZSA9IHtcbiAgY29tbWFuZDogJ3BhcnNlIFtwYXRoXScsXG4gIGRlc2NyaWJlOiAnZGlzcGxheSB0cmFuc2FjdGlvbiBjb21wb25lbnRzIGluIGh1bWFuLXJlYWRhYmxlIGZvcm0nLFxuXG4gIGJ1aWxkZXIoYjogeWFyZ3MuQXJndjx1bmtub3duPik6IHlhcmdzLkFyZ3Y8QXJncz4ge1xuICAgIHJldHVybiBiXG4gICAgICAub3B0aW9uKCdwYXRoJywgeyB0eXBlOiAnc3RyaW5nJywgbmFyZ3M6IDEsIGRlZmF1bHQ6ICcnIH0pXG4gICAgICAub3B0aW9uKCdzdGRpbicsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigndHhpZCcsIHsgdHlwZTogJ3N0cmluZycgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoQWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaFN0YXR1cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hJbnB1dHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3BlbmRzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCduZXR3b3JrJywgeyBhbGlhczogJ24nLCB0eXBlOiAnc3RyaW5nJywgZGVtYW5kT3B0aW9uOiB0cnVlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdEFzbScsIHsgYWxpYXM6ICdzY3JpcHRhc20nLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdwYXJzZVNjcmlwdERhdGEnLCB7IGFsaWFzOiAnc2NyaXB0ZGF0YScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2lnbmF0dXJlRGF0YScsIHsgYWxpYXM6ICdzaWdkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignYWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KTtcbiAgfSxcblxuICBhc3luYyBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzW2FyZ3YubmV0d29yayBhcyB1dHhvbGliLk5ldHdvcmtOYW1lXTtcbiAgICBpZiAoIW5ldHdvcmspIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrICR7bmV0d29ya31gKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YTtcblxuICAgIGlmIChhcmd2LnR4aWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdmZXRjaGluZyB0eEhleCB2aWEgYmxvY2thcGkuLi4nKTtcbiAgICAgIGRhdGEgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uSGV4KGFyZ3YudHhpZCwgbmV0d29yayk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3Yuc3RkaW4gfHwgYXJndi5wYXRoID09PSAnLScpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygncmVhZGluZyBmcm9tIHN0ZGluJyk7XG4gICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHByb2Nlc3Muc3RkaW4uZmQsICd1dGY4Jyk7XG4gICAgfSBlbHNlIGlmIChhcmd2LnBhdGgpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBkYXRhID0gKGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKGFyZ3YucGF0aCwgJ3V0ZjgnKSkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gdHhkYXRhYCk7XG4gICAgfVxuICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xccyovZywgJycpO1xuXG4gICAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChkYXRhLCBuZXR3b3JrKTtcbiAgICBjb25zdCB0eGlkID0gdHguZ2V0SWQoKTtcbiAgICBpZiAoYXJndi50eGlkICYmIHR4aWQgIT09IGFyZ3YudHhpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlZCB0eGlkIGRvZXMgbm90IG1hdGNoIHR4aWQgYXJndW1lbnRgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5mZXRjaEFsbCkge1xuICAgICAgYXJndi5mZXRjaFN0YXR1cyA9IHRydWU7XG4gICAgICBhcmd2LmZldGNoSW5wdXRzID0gdHJ1ZTtcbiAgICAgIGFyZ3YuZmV0Y2hTcGVuZHMgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IGdldFBhcnNlcihhcmd2KS5wYXJzZSh0eCwge1xuICAgICAgc3RhdHVzOiBhcmd2LmZldGNoU3RhdHVzID8gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvblN0YXR1cyh0eGlkLCBuZXR3b3JrKSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZPdXRwdXRzOiBhcmd2LmZldGNoSW5wdXRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0cyh0eCkgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2T3V0cHV0U3BlbmRzOiBhcmd2LmZldGNoU3BlbmRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzKHR4KSA6IHVuZGVmaW5lZCxcbiAgICAgIG91dHB1dFNwZW5kczogYXJndi5mZXRjaFNwZW5kcyA/IGF3YWl0IGZldGNoT3V0cHV0U3BlbmRzKHR4KSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBzd2l0Y2ggKGFyZ3YuZm9ybWF0KSB7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndHJlZSc6XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdFRyZWUocGFyc2VkLCB7IGhpZGU6IGFyZ3YuYWxsID8gW10gOiB1bmRlZmluZWQgfSkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0sXG59O1xuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUJBQXlCO0FBQ3pCLG1DQUFtQztBQUVuQywyQ0FBMkM7QUFFM0MsbUNBQTZDO0FBQzdDLHFDQUFzQztBQUN0QyxtQ0FNaUI7QUFlakIsU0FBZ0IsU0FBUyxDQUFDLElBQTJCO0lBQ25ELE9BQU8sSUFBSSxjQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUZELDhCQUVDO0FBRVksUUFBQSxRQUFRLEdBQUc7SUFDdEIsT0FBTyxFQUFFLGNBQWM7SUFDdkIsUUFBUSxFQUFFLHVEQUF1RDtJQUVqRSxPQUFPLENBQUMsQ0FBc0I7UUFDNUIsT0FBTyxDQUFDO2FBQ0wsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDekQsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3BELE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7YUFDbEMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUMxRCxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7YUFD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QUFDLEdBQUcsQ0FBQyxJQUFBLG1CQUFVLEVBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHByb2Nlc3MgZnJvbSAncHJvY2Vzcyc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgUGFyc2VyLCBQYXJzZXJBcmdzIH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgeyBmb3JtYXRUcmVlIH0gZnJvbSAnLi9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgZmV0Y2hPdXRwdXRTcGVuZHMsXG4gIGZldGNoUHJldk91dHB1dHMsXG4gIGZldGNoUHJldk91dHB1dFNwZW5kcyxcbiAgZmV0Y2hUcmFuc2FjdGlvbkhleCxcbiAgZmV0Y2hUcmFuc2FjdGlvblN0YXR1cyxcbn0gZnJvbSAnLi9mZXRjaCc7XG5cbnR5cGUgQXJncyA9IHtcbiAgbmV0d29yazogc3RyaW5nO1xuICBzdGRpbjogYm9vbGVhbjtcbiAgcGF0aD86IHN0cmluZztcbiAgdHhpZD86IHN0cmluZztcbiAgYWxsOiBib29sZWFuO1xuICBmb3JtYXQ6ICd0cmVlJyB8ICdqc29uJztcbiAgZmV0Y2hBbGw6IGJvb2xlYW47XG4gIGZldGNoU3RhdHVzOiBib29sZWFuO1xuICBmZXRjaElucHV0czogYm9vbGVhbjtcbiAgZmV0Y2hTcGVuZHM6IGJvb2xlYW47XG59ICYgUGFyc2VyQXJncztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnNlcihhcmd2OiB5YXJncy5Bcmd1bWVudHM8QXJncz4pOiBQYXJzZXIge1xuICByZXR1cm4gbmV3IFBhcnNlcihhcmd2LmFsbCA/IFBhcnNlci5QQVJTRV9BTEwgOiBhcmd2KTtcbn1cblxuZXhwb3J0IGNvbnN0IGNtZFBhcnNlID0ge1xuICBjb21tYW5kOiAncGFyc2UgW3BhdGhdJyxcbiAgZGVzY3JpYmU6ICdkaXNwbGF5IHRyYW5zYWN0aW9uIGNvbXBvbmVudHMgaW4gaHVtYW4tcmVhZGFibGUgZm9ybScsXG5cbiAgYnVpbGRlcihiOiB5YXJncy5Bcmd2PHVua25vd24+KTogeWFyZ3MuQXJndjxBcmdzPiB7XG4gICAgcmV0dXJuIGJcbiAgICAgIC5vcHRpb24oJ3BhdGgnLCB7IHR5cGU6ICdzdHJpbmcnLCBuYXJnczogMSwgZGVmYXVsdDogJycgfSlcbiAgICAgIC5vcHRpb24oJ3N0ZGluJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCd0eGlkJywgeyB0eXBlOiAnc3RyaW5nJyB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hBbGwnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ2ZldGNoU3RhdHVzJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmZXRjaElucHV0cycsIHsgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbignZmV0Y2hTcGVuZHMnLCB7IHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ25ldHdvcmsnLCB7IGFsaWFzOiAnbicsIHR5cGU6ICdzdHJpbmcnLCBkZW1hbmRPcHRpb246IHRydWUgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0QXNtJywgeyBhbGlhczogJ3NjcmlwdGFzbScsIHR5cGU6ICdib29sZWFuJywgZGVmYXVsdDogZmFsc2UgfSlcbiAgICAgIC5vcHRpb24oJ3BhcnNlU2NyaXB0RGF0YScsIHsgYWxpYXM6ICdzY3JpcHRkYXRhJywgdHlwZTogJ2Jvb2xlYW4nLCBkZWZhdWx0OiBmYWxzZSB9KVxuICAgICAgLm9wdGlvbigncGFyc2VTaWduYXR1cmVEYXRhJywgeyBhbGlhczogJ3NpZ2RhdGEnLCB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdtYXhPdXRwdXRzJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAgICAgLm9wdGlvbignYWxsJywgeyB0eXBlOiAnYm9vbGVhbicsIGRlZmF1bHQ6IGZhbHNlIH0pXG4gICAgICAub3B0aW9uKCdmb3JtYXQnLCB7IGNob2ljZXM6IFsndHJlZScsICdqc29uJ10sIGRlZmF1bHQ6ICd0cmVlJyB9IGFzIGNvbnN0KTtcbiAgfSxcblxuICBhc3luYyBoYW5kbGVyKGFyZ3Y6IHlhcmdzLkFyZ3VtZW50czxBcmdzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzW2FyZ3YubmV0d29yayBhcyB1dHhvbGliLk5ldHdvcmtOYW1lXTtcbiAgICBpZiAoIW5ldHdvcmspIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrICR7bmV0d29ya31gKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YTtcblxuICAgIGlmIChhcmd2LnR4aWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdmZXRjaGluZyB0eEhleCB2aWEgYmxvY2thcGkuLi4nKTtcbiAgICAgIGRhdGEgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9uSGV4KGFyZ3YudHhpZCwgbmV0d29yayk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3Yuc3RkaW4gfHwgYXJndi5wYXRoID09PSAnLScpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygncmVhZGluZyBmcm9tIHN0ZGluJyk7XG4gICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHByb2Nlc3Muc3RkaW4uZmQsICd1dGY4Jyk7XG4gICAgfSBlbHNlIGlmIChhcmd2LnBhdGgpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmxpY3RpbmcgYXJndW1lbnRzYCk7XG4gICAgICB9XG4gICAgICBkYXRhID0gKGF3YWl0IGZzLnByb21pc2VzLnJlYWRGaWxlKGFyZ3YucGF0aCwgJ3V0ZjgnKSkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gdHhkYXRhYCk7XG4gICAgfVxuICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoL1xccyovZywgJycpO1xuXG4gICAgY29uc3QgdHggPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVRyYW5zYWN0aW9uRnJvbUhleChkYXRhLCBuZXR3b3JrKTtcbiAgICBjb25zdCB0eGlkID0gdHguZ2V0SWQoKTtcbiAgICBpZiAoYXJndi50eGlkICYmIHR4aWQgIT09IGFyZ3YudHhpZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlZCB0eGlkIGRvZXMgbm90IG1hdGNoIHR4aWQgYXJndW1lbnRgKTtcbiAgICB9XG5cbiAgICBpZiAoYXJndi5mZXRjaEFsbCkge1xuICAgICAgYXJndi5mZXRjaFN0YXR1cyA9IHRydWU7XG4gICAgICBhcmd2LmZldGNoSW5wdXRzID0gdHJ1ZTtcbiAgICAgIGFyZ3YuZmV0Y2hTcGVuZHMgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IGdldFBhcnNlcihhcmd2KS5wYXJzZSh0eCwge1xuICAgICAgc3RhdHVzOiBhcmd2LmZldGNoU3RhdHVzID8gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvblN0YXR1cyh0eGlkLCBuZXR3b3JrKSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZPdXRwdXRzOiBhcmd2LmZldGNoSW5wdXRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0cyh0eCkgOiB1bmRlZmluZWQsXG4gICAgICBwcmV2T3V0cHV0U3BlbmRzOiBhcmd2LmZldGNoU3BlbmRzID8gYXdhaXQgZmV0Y2hQcmV2T3V0cHV0U3BlbmRzKHR4KSA6IHVuZGVmaW5lZCxcbiAgICAgIG91dHB1dFNwZW5kczogYXJndi5mZXRjaFNwZW5kcyA/IGF3YWl0IGZldGNoT3V0cHV0U3BlbmRzKHR4KSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBzd2l0Y2ggKGFyZ3YuZm9ybWF0KSB7XG4gICAgICBjYXNlICdqc29uJzpcbiAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndHJlZSc6XG4gICAgICAgIGNvbnNvbGUubG9nKGZvcm1hdFRyZWUocGFyc2VkLCB7IGhpZGU6IGFyZ3YuYWxsID8gW10gOiB1bmRlZmluZWQgfSkpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0sXG59O1xuIl19
@@ -15,6 +15,7 @@ export declare type ParserArgs = {
15
15
  parseScriptAsm: boolean;
16
16
  parseSignatureData: boolean;
17
17
  hide?: string[];
18
+ maxOutputs?: number;
18
19
  };
19
20
  export declare type ChainInfo = {
20
21
  status?: TransactionStatus;
@@ -39,6 +40,8 @@ export declare class Parser {
39
40
  conflict: boolean;
40
41
  }): TxNode[];
41
42
  parseIns(ins: utxolib.TxInput[], tx: utxolib.bitgo.UtxoTransaction, outputInfo: ChainInfo): TxNode[];
43
+ tryParseOpReturn(script: Buffer): TxNode[];
44
+ tryFormatAddress(script: Buffer, network: utxolib.Network): string | Buffer;
42
45
  parseOuts(outs: utxolib.TxOutput[], tx: utxolib.bitgo.UtxoTransaction, params: ChainInfo): TxNode[];
43
46
  parseStatus(tx: utxolib.bitgo.UtxoTransaction, status?: TransactionStatus): TxNode[];
44
47
  parse(tx: utxolib.bitgo.UtxoTransaction, chainInfo?: ChainInfo): TxNode;
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/parse.ts"],"names":[],"mappings":"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"}
package/dist/src/parse.js CHANGED
@@ -10,6 +10,10 @@ function toBufferUInt32BE(n) {
10
10
  buf.writeUInt32LE(n);
11
11
  return buf;
12
12
  }
13
+ function isPrintable(s) {
14
+ // https://stackoverflow.com/a/66447494
15
+ return !s.match(/[\p{Cc}\p{Cn}\p{Cs}]+/gu);
16
+ }
13
17
  class Parser {
14
18
  constructor(params) {
15
19
  this.params = params;
@@ -87,13 +91,18 @@ class Parser {
87
91
  }
88
92
  parseSigScript(tx, inputIndex, prevOutputs) {
89
93
  var _a;
90
- const parsed = utxolib.bitgo.parseSignatureScript(tx.ins[inputIndex]);
91
- return this.node('sigScript', (_a = parsed.scriptType) !== null && _a !== void 0 ? _a : 'unknown', parsed.scriptType && utxolib.bitgo.outputScripts.isScriptType2Of3(parsed.scriptType)
92
- ? [
93
- this.parsePubkeys(parsed),
94
- this.parseSignatures(parsed, tx, inputIndex, prevOutputs),
95
- ]
96
- : []);
94
+ try {
95
+ const parsed = utxolib.bitgo.parseSignatureScript(tx.ins[inputIndex]);
96
+ return this.node('sigScript', (_a = parsed.scriptType) !== null && _a !== void 0 ? _a : 'unknown', parsed.scriptType && utxolib.bitgo.outputScripts.isScriptType2Of3(parsed.scriptType)
97
+ ? [
98
+ this.parsePubkeys(parsed),
99
+ this.parseSignatures(parsed, tx, inputIndex, prevOutputs),
100
+ ]
101
+ : []);
102
+ }
103
+ catch (e) {
104
+ return this.node('error', String(e));
105
+ }
97
106
  }
98
107
  parsePrevOut(input, i, network, prevOutputs) {
99
108
  if (!prevOutputs || !prevOutputs[i]) {
@@ -140,9 +149,51 @@ class Parser {
140
149
  ]);
141
150
  });
142
151
  }
152
+ tryParseOpReturn(script) {
153
+ let data;
154
+ try {
155
+ ({ data } = utxolib.payments.embed({ output: script }));
156
+ }
157
+ catch (e) {
158
+ // ignore
159
+ }
160
+ if (!data) {
161
+ return [];
162
+ }
163
+ return data.map((buf, i) => {
164
+ let utf8;
165
+ try {
166
+ utf8 = buf.toString('utf8');
167
+ }
168
+ catch (e) {
169
+ // ignore
170
+ }
171
+ return this.node(i, `${buf.length} bytes`, [
172
+ this.node('hex', buf),
173
+ ...(utf8 && isPrintable(utf8) ? [this.node('utf8', utf8)] : []),
174
+ ]);
175
+ });
176
+ }
177
+ tryFormatAddress(script, network) {
178
+ const opReturnNodes = this.tryParseOpReturn(script);
179
+ if (opReturnNodes.length) {
180
+ return `OP_RETURN`;
181
+ }
182
+ try {
183
+ return utxolib.address.fromOutputScript(script, network);
184
+ }
185
+ catch (e) {
186
+ return script;
187
+ }
188
+ }
143
189
  parseOuts(outs, tx, params) {
190
+ var _a;
191
+ if (outs.length > ((_a = this.params.maxOutputs) !== null && _a !== void 0 ? _a : 200)) {
192
+ return [this.node('(omitted)', undefined)];
193
+ }
144
194
  const txid = tx.getId();
145
- return outs.map((o, i) => this.node(i, utxolib.address.fromOutputScript(o.script, tx.network), [
195
+ return outs.map((o, i) => this.node(i, this.tryFormatAddress(o.script, tx.network), [
196
+ ...this.tryParseOpReturn(o.script),
146
197
  this.node(`value`, o.value / 1e8),
147
198
  ...this.parseSpend(txid, i, params.outputSpends, { conflict: false }),
148
199
  ]));
@@ -191,4 +242,4 @@ Parser.PARSE_ALL = {
191
242
  parseScriptAsm: true,
192
243
  parseSignatureData: true,
193
244
  };
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTJDO0FBUTNDLFNBQVMsU0FBUyxDQUFDLENBQVM7SUFDMUIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQXVCRCxTQUFTLGdCQUFnQixDQUFDLENBQVM7SUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQWEsTUFBTTtJQU9qQixZQUFvQixNQUFrQjtRQUFsQixXQUFNLEdBQU4sTUFBTSxDQUFZO0lBQUcsQ0FBQztJQUUxQyxJQUFJLENBQUMsS0FBc0IsRUFBRSxLQUFrQixFQUFFLFFBQWtCLEVBQUU7UUFDbkUsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSztZQUNMLEtBQUs7U0FDTixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzdELElBQ0UsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3hFO1lBQ0EsSUFBSSxNQUFNLENBQUM7WUFFWCxJQUFJO2dCQUNGLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENB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YyxFQUFFLElBQUk7SUFDcEIsa0JBQWtCLEVBQUUsSUFBSTtDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgT3V0cHV0U3BlbmQgfSBmcm9tICdAYml0Z28vYmxvY2thcGlzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uU3RhdHVzIH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcy9kaXN0L3NyYy9UcmFuc2FjdGlvbkFwaSc7XG5cbmV4cG9ydCB0eXBlIElucHV0Rm9ybWF0ID0gJ2FzbScgfCAncGFyc2VTaWduYXR1cmUnO1xuXG5leHBvcnQgdHlwZSBUeE5vZGVWYWx1ZSA9IG51bWJlciB8IHN0cmluZyB8IEJ1ZmZlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsO1xuXG5mdW5jdGlvbiBmb3JtYXRTYXQodjogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuICh2IC8gMWU4KS50b0ZpeGVkKDgpO1xufVxuXG5leHBvcnQgdHlwZSBUeE5vZGUgPSB7XG4gIHR5cGU6ICdub2RlJztcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IFR4Tm9kZVZhbHVlIHwgdW5kZWZpbmVkO1xuICBub2RlczogVHhOb2RlW10gfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgdHlwZSBQYXJzZXJBcmdzID0ge1xuICBwYXJzZVNjcmlwdERhdGE6IGJvb2xlYW47XG4gIHBhcnNlU2NyaXB0QXNtOiBib29sZWFuO1xuICBwYXJzZVNpZ25hdHVyZURhdGE6IGJvb2xlYW47XG4gIGhpZGU/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIENoYWluSW5mbyA9IHtcbiAgc3RhdHVzPzogVHJhbnNhY3Rpb25TdGF0dXM7XG4gIG91dHB1dFNwZW5kcz86IE91dHB1dFNwZW5kW107XG4gIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dFtdO1xuICBwcmV2T3V0cHV0U3BlbmRzPzogT3V0cHV0U3BlbmRbXTtcbn07XG5cbmZ1bmN0aW9uIHRvQnVmZmVyVUludDMyQkUobjogbnVtYmVyKTogQnVmZmVyIHtcbiAgY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jKDQpO1xuICBidWYud3JpdGVVSW50MzJMRShuKTtcbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGNsYXNzIFBhcnNlciB7XG4gIHN0YXRpYyBQQVJTRV9BTEw6IFBhcnNlckFyZ3MgPSB7XG4gICAgcGFyc2VTY3JpcHREYXRhOiB0cnVlLFxuICAgIHBhcnNlU2NyaXB0QXNtOiB0cnVlLFxuICAgIHBhcnNlU2lnbmF0dXJlRGF0YTogdHJ1ZSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmFtczogUGFyc2VyQXJncykge31cblxuICBub2RlKGxhYmVsOiBzdHJpbmcgfCBudW1iZXIsIHZhbHVlOiBUeE5vZGVWYWx1ZSwgbm9kZXM6IFR4Tm9kZVtdID0gW10pOiBUeE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnbm9kZScsXG4gICAgICBsYWJlbDogU3RyaW5nKGxhYmVsKSxcbiAgICAgIHZhbHVlLFxuICAgICAgbm9kZXMsXG4gICAgfTtcbiAgfVxuXG4gIHBhcnNlU2NyaXB0QXNtKHR5cGU6IHN0cmluZywgcGFydDogQnVmZmVyLCBpOiBudW1iZXIsIG46IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKFxuICAgICAgKHR5cGUgPT09ICd0YXByb290JyAmJiBpID09PSBuIC0gMikgfHxcbiAgICAgICgodHlwZSA9PT0gJ3NjcmlwdGhhc2gnIHx8IHR5cGUgPT09ICd3aXRuZXNzc2NyaXB0aGFzaCcpICYmIGkgPT09IG4gLSAxKVxuICAgICkge1xuICAgICAgbGV0IHBhcnNlZDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gdXR4b2xpYi5zY3JpcHQudG9BU00ocGFydCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgIHJldHVybiBbJycsIC4uLnBhcnNlZC5zcGxpdCgnICcpXS5qb2luKCdcXG4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwYXJzZVNjcmlwdFBhcnRzKHR5cGU6IHN0cmluZywgcGFydHM6IEFycmF5PEJ1ZmZlciB8IG51bWJlcj4pOiBUeE5vZGVbXSB7XG4gICAgcmV0dXJuIHBhcnRzLm1hcCgodiwgaSkgPT4ge1xuICAgICAgbGV0IGFzbU5vZGU6IFR4Tm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgIGlmICh0aGlzLnBhcmFtcy5wYXJzZVNjcmlwdEFzbSAmJiBCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVNjcmlwdEFzbSh0eXBlLCB2LCBpLCBwYXJ0cy5sZW5ndGgpO1xuICAgICAgICBhc21Ob2RlID0gcGFyc2VkID8gdGhpcy5ub2RlKCdhc20nLCBwYXJzZWQpIDogdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5ub2RlKGksIHRoaXMucGFyYW1zLnBhcnNlU2NyaXB0RGF0YSA/IHYgOiB1bmRlZmluZWQsIGFzbU5vZGUgPyBbYXNtTm9kZV0gOiB1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcGFyc2VTY3JpcHQoYnVmZmVyOiBCdWZmZXIpOiBUeE5vZGUge1xuICAgIGxldCB2YWx1ZTtcbiAgICBsZXQgbm9kZXM7XG4gICAgaWYgKGJ1ZmZlci5sZW5ndGggJiYgdGhpcy5wYXJhbXMucGFyc2VTaWduYXR1cmVEYXRhKSB7XG4gICAgICBjb25zdCB0eXBlID0gdXR4b2xpYi5jbGFzc2lmeS5pbnB1dChidWZmZXIsIHRydWUpID8/ICd1bmtub3duJztcbiAgICAgIGNvbnN0IGRlY29tcGlsZWQgPSB1dHhvbGliLnNjcmlwdC5kZWNvbXBpbGUoYnVmZmVyKTtcbiAgICAgIGlmIChkZWNvbXBpbGVkKSB7XG4gICAgICAgIG5vZGVzID0gdGhpcy5wYXJzZVNjcmlwdFBhcnRzKHR5cGUsIGRlY29tcGlsZWQpO1xuICAgICAgfVxuICAgICAgdmFsdWUgPSB0eXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IGJ1ZmZlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ub2RlKCdzY3JpcHQnLCB2YWx1ZSwgbm9kZXMpO1xuICB9XG5cbiAgcGFyc2VXaXRuZXNzKHNjcmlwdDogQnVmZmVyW10pOiBUeE5vZGUge1xuICAgIGlmIChzY3JpcHQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlKCd3aXRuZXNzJywgJ1tdJyk7XG4gICAgfVxuICAgIGNvbnN0IHR5cGUgPSB1dHhvbGliLmNsYXNzaWZ5LndpdG5lc3Moc2NyaXB0LCB0cnVlKSA/PyAndW5rbm93bic7XG4gICAgcmV0dXJuIHRoaXMubm9kZSgnd2l0bmVzcycsIHR5cGUsIHRoaXMucGFyYW1zLnBhcnNlU2NyaXB0RGF0YSA/IHRoaXMucGFyc2VTY3JpcHRQYXJ0cyh0eXBlLCBzY3JpcHQpIDogdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHBhcnNlUHVia2V5cyhwYXJzZWQ6IHV0eG9saWIuYml0Z28uUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyk6IFR4Tm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZShcbiAgICAgICdwdWJrZXlzJyxcbiAgICAgIHBhcnNlZC5wdWJsaWNLZXlzLmxlbmd0aCxcbiAgICAgIHBhcnNlZC5wdWJsaWNLZXlzLm1hcCgoaywgaSkgPT4gdGhpcy5ub2RlKGksIGspKVxuICAgICk7XG4gIH1cblxuICBwYXJzZVNpZ25hdHVyZXMoXG4gICAgcGFyc2VkOiB1dHhvbGliLmJpdGdvLlBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMsXG4gICAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLFxuICAgIGlucHV0SW5kZXg6IG51bWJlcixcbiAgICBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXRbXVxuICApOiBUeE5vZGUge1xuICAgIGNvbnN0IG5vZGVzID0gW107XG4gICAgaWYgKHByZXZPdXRwdXRzKSB7XG4gICAgICBjb25zdCBzaWduZWRCeSA9IHV0eG9saWIuYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXModHgsIGlucHV0SW5kZXgsIHByZXZPdXRwdXRzLCBwYXJzZWQucHVibGljS2V5cyk7XG4gICAgICBub2Rlcy5wdXNoKHRoaXMubm9kZSgnc2lnbmVkIGJ5Jywgc2lnbmVkQnkuZmxhdE1hcCgodiwgaSkgPT4gKHYgPyBbaV0gOiBbXSkpLmpvaW4oJywgJykpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubm9kZShcbiAgICAgICdzaWduYXR1cmVzJyxcbiAgICAgIHBhcnNlZC5zaWduYXR1cmVzXG4gICAgICAgIC5tYXAoKHM6IEJ1ZmZlciB8IDApID0+XG4gICAgICAgICAgdXR4b2xpYi5iaXRnby5pc1BsYWNlaG9sZGVyU2lnbmF0dXJlKHMpID8gJ1tdJyA6IEJ1ZmZlci5pc0J1ZmZlcihzKSA/IGBbJHtzLmxlbmd0aH1ieXRlXWAgOiBgWyR7c31dYFxuICAgICAgICApXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgICBub2Rlc1xuICAgICk7XG4gIH1cblxuICBwYXJzZVNpZ1NjcmlwdCh0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24sIGlucHV0SW5kZXg6IG51bWJlciwgcHJldk91dHB1dHM/OiB1dHhvbGliLlR4T3V0cHV0W10pOiBUeE5vZGUge1xuICAgIGNvbnN0IHBhcnNlZCA9IHV0eG9saWIuYml0Z28ucGFyc2VTaWduYXR1cmVTY3JpcHQodHguaW5zW2lucHV0SW5kZXhdKTtcbiAgICByZXR1cm4gdGhpcy5ub2RlKFxuICAgICAgJ3NpZ1NjcmlwdCcsXG4gICAgICBwYXJzZWQuc2NyaXB0VHlwZSA/PyAndW5rbm93bicsXG4gICAgICBwYXJzZWQuc2NyaXB0VHlwZSAmJiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuaXNTY3JpcHRUeXBlMk9mMyhwYXJzZWQuc2NyaXB0VHlwZSlcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB0aGlzLnBhcnNlUHVia2V5cyhwYXJzZWQgYXMgdXR4b2xpYi5iaXRnby5QYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzKSxcbiAgICAgICAgICAgIHRoaXMucGFyc2VTaWduYXR1cmVzKHBhcnNlZCBhcyB1dHhvbGliLmJpdGdvLlBhcnNlZFNpZ25hdHVyZVNjcmlwdDJPZjMsIHR4LCBpbnB1dEluZGV4LCBwcmV2T3V0cHV0cyksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdXG4gICAgKTtcbiAgfVxuXG4gIHBhcnNlUHJldk91dChcbiAgICBpbnB1dDogdXR4b2xpYi5UeElucHV0LFxuICAgIGk6IG51bWJlcixcbiAgICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gICAgcHJldk91dHB1dHM/OiB1dHhvbGliLlR4T3V0cHV0W11cbiAgKTogVHhOb2RlW10ge1xuICAgIGlmICghcHJldk91dHB1dHMgfHwgIXByZXZPdXRwdXRzW2ldKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHsgc2NyaXB0LCB2YWx1ZSB9ID0gcHJldk91dHB1dHNbaV07XG4gICAgbGV0IGFkZHJlc3M7XG4gICAgdHJ5IHtcbiAgICAgIGFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHQsIG5ldHdvcmspO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGFkZHJlc3MgPSAnKGVycm9yKSc7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICB0aGlzLm5vZGUoJ3ZhbHVlJywgdmFsdWUgLyAxZTgpLFxuICAgICAgdGhpcy5ub2RlKCdwdWJTY3JpcHQnLCBzY3JpcHQsIGFkZHJlc3MgPyBbdGhpcy5ub2RlKCdhZGRyZXNzJywgYWRkcmVzcyldIDogdW5kZWZpbmVkKSxcbiAgICBdO1xuICB9XG5cbiAgcGFyc2VTcGVuZCh0eGlkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIHNwZW5kczogT3V0cHV0U3BlbmRbXSB8IHVuZGVmaW5lZCwgcGFyYW1zOiB7IGNvbmZsaWN0OiBib29sZWFuIH0pOiBUeE5vZGVbXSB7XG4gICAgaWYgKCFzcGVuZHMgfHwgIXNwZW5kc1tpbmRleF0pIHtcbiAgICAgIC8vIG5vIHNwZW5kIGRhdGEgYXZhaWxhYmxlXG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHNwZW5kID0gc3BlbmRzW2luZGV4XTtcbiAgICBpZiAoc3BlbmQudHhpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnc3BlbnQnLCBmYWxzZSldO1xuICAgIH1cbiAgICBpZiAoc3BlbmQudHhpZCA9PT0gdHhpZCkge1xuICAgICAgLy8gaWYgaW5wdXQgaXMgc3BlbnQgYnkgdGhpcyB0cmFuc2FjdGlvbiB3ZSBkb24ndCBkaXNwbGF5IGl0XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBbdGhpcy5ub2RlKCdzcGVudCcsIGAke3NwZW5kLnR4aWR9OiR7c3BlbmQudmlufWAsIHBhcmFtcy5jb25mbGljdCA/IFt0aGlzLm5vZGUoJ2NvbmZsaWN0JywgdHJ1ZSldIDogW10pXTtcbiAgfVxuXG4gIHBhcnNlSW5zKGluczogdXR4b2xpYi5UeElucHV0W10sIHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbiwgb3V0cHV0SW5mbzogQ2hhaW5JbmZvKTogVHhOb2RlW10ge1xuICAgIGNvbnN0IHR4aWQgPSB0eC5nZXRJZCgpO1xuICAgIHJldHVybiBpbnMubWFwKChpbnB1dCwgaSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubm9kZShpLCB1dHhvbGliLmJpdGdvLmZvcm1hdE91dHB1dElkKHV0eG9saWIuYml0Z28uZ2V0T3V0cHV0SWRGb3JJbnB1dChpbnB1dCkpLCBbXG4gICAgICAgIHRoaXMubm9kZSgnc2VxdWVuY2UnLCB0b0J1ZmZlclVJbnQzMkJFKGlucHV0LnNlcXVlbmNlKSksXG4gICAgICAgIHRoaXMucGFyc2VTY3JpcHQoaW5wdXQuc2NyaXB0KSxcbiAgICAgICAgdGhpcy5wYXJzZVdpdG5lc3MoaW5wdXQud2l0bmVzcyksXG4gICAgICAgIHRoaXMucGFyc2VTaWdTY3JpcHQodHgsIGksIG91dHB1dEluZm8ucHJldk91dHB1dHMpLFxuICAgICAgICAuLi50aGlzLnBhcnNlUHJldk91dChpbnB1dCwgaSwgdHgubmV0d29yaywgb3V0cHV0SW5mby5wcmV2T3V0cHV0cyksXG4gICAgICAgIC4uLnRoaXMucGFyc2VTcGVuZCh0eGlkLCBpLCBvdXRwdXRJbmZvLnByZXZPdXRwdXRTcGVuZHMsIHsgY29uZmxpY3Q6IHRydWUgfSksXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlT3V0cyhvdXRzOiB1dHhvbGliLlR4T3V0cHV0W10sIHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbiwgcGFyYW1zOiBDaGFpbkluZm8pOiBUeE5vZGVbXSB7XG4gICAgY29uc3QgdHhpZCA9IHR4LmdldElkKCk7XG4gICAgcmV0dXJuIG91dHMubWFwKChvLCBpKSA9PlxuICAgICAgdGhpcy5ub2RlKGksIHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KG8uc2NyaXB0LCB0eC5uZXR3b3JrKSwgW1xuICAgICAgICB0aGlzLm5vZGUoYHZhbHVlYCwgby52YWx1ZSAvIDFlOCksXG4gICAgICAgIC4uLnRoaXMucGFyc2VTcGVuZCh0eGlkLCBpLCBwYXJhbXMub3V0cHV0U3BlbmRzLCB7IGNvbmZsaWN0OiBmYWxzZSB9KSxcbiAgICAgIF0pXG4gICAgKTtcbiAgfVxuXG4gIHBhcnNlU3RhdHVzKHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbiwgc3RhdHVzPzogVHJhbnNhY3Rpb25TdGF0dXMpOiBUeE5vZGVbXSB7XG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybiBbdGhpcy5ub2RlKCdzdGF0dXMnLCAndW5rbm93bicpXTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgIHN0YXR1cy5mb3VuZCA/ICdmb3VuZCcgOiAnbm90IGZvdW5kJyxcbiAgICAgICAgc3RhdHVzLmZvdW5kXG4gICAgICAgICAgPyBzdGF0dXMuY29uZmlybWVkXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUoXG4gICAgICAgICAgICAgICAgICAnY29uZmlybWVkJyxcbiAgICAgICAgICAgICAgICAgIGBibG9jayAke3N0YXR1cy5ibG9ja0hlaWdodH1gICsgKHN0YXR1cy5kYXRlID8gYCBkYXRlPSR7c3RhdHVzLmRhdGUudG9JU09TdHJpbmcoKX1gIDogJycpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgOiBbdGhpcy5ub2RlKCdjb25maXJtZWQnLCBmYWxzZSldXG4gICAgICAgICAgOiBbXVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgcGFyc2UodHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLCBjaGFpbkluZm86IENoYWluSW5mbyA9IHt9KTogVHhOb2RlIHtcbiAgICBjb25zdCB3ZWlnaHQgPSB0eC53ZWlnaHQoKTtcbiAgICBjb25zdCB2c2l6ZSA9IHR4LnZpcnR1YWxTaXplKCk7XG4gICAgY29uc3Qgb3V0cHV0U3VtID0gdHgub3V0cy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgby52YWx1ZSwgMCk7XG4gICAgY29uc3QgaW5wdXRTdW0gPSBjaGFpbkluZm8ucHJldk91dHB1dHM/LnJlZHVjZSgoc3VtLCBvKSA9PiBzdW0gKyBvLnZhbHVlLCAwKTtcbiAgICBjb25zdCBmZWUgPSBpbnB1dFN1bSA/IGlucHV0U3VtIC0gb3V0cHV0U3VtIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZlZVJhdGUgPSBmZWUgPyBmZWUgLyB2c2l6ZSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5ub2RlKCd0cmFuc2FjdGlvbicsIHR4LmdldElkKCksIFtcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgJ3BhcnNlZEFzJyxcbiAgICAgICAgYCR7dXR4b2xpYi5nZXROZXR3b3JrTmFtZSh1dHhvbGliLmdldE1haW5uZXQodHgubmV0d29yaykpfSBgICtcbiAgICAgICAgICBgJHt1dHhvbGliLmlzTWFpbm5ldCh0eC5uZXR3b3JrKSA/ICdtYWlubmV0JyA6ICd0ZXN0bmV0J31gXG4gICAgICApLFxuICAgICAgdGhpcy5ub2RlKCd2ZXJzaW9uJywgdHgudmVyc2lvbiksXG4gICAgICB0aGlzLm5vZGUoJ2xvY2t0aW1lJywgdHgubG9ja3RpbWUpLFxuICAgICAgdGhpcy5ub2RlKCdoYXNXaXRuZXNzZXMnLCB0eC5oYXNXaXRuZXNzZXMoKSksXG4gICAgICAuLi50aGlzLnBhcnNlU3RhdHVzKHR4LCBjaGFpbkluZm8uc3RhdHVzKSxcbiAgICAgIHRoaXMubm9kZSgndnNpemUnLCBgJHt2c2l6ZX12Ynl0ZXMgKCR7d2VpZ2h0fXd1KWApLFxuICAgICAgLi4uKGZlZSAmJiBmZWVSYXRlXG4gICAgICAgID8gW3RoaXMubm9kZSgnZmVlIFtidGNdJywgZm9ybWF0U2F0KGZlZSkpLCB0aGlzLm5vZGUoJ2ZlZVJhdGUgW3NhdC92Ynl0ZV0nLCBmZWVSYXRlLnRvRml4ZWQoMikpXVxuICAgICAgICA6IFtdKSxcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgYGlucHV0c2AsXG4gICAgICAgIFtTdHJpbmcodHguaW5zLmxlbmd0aCldLmNvbmNhdChpbnB1dFN1bSA/IFsnc3VtPScgKyBmb3JtYXRTYXQoaW5wdXRTdW0pXSA6IFtdKS5qb2luKCcgJyksXG4gICAgICAgIHRoaXMucGFyc2VJbnModHguaW5zLCB0eCwgY2hhaW5JbmZvKVxuICAgICAgKSxcbiAgICAgIHRoaXMubm9kZShcbiAgICAgICAgYG91dHB1dHNgLFxuICAgICAgICBbU3RyaW5nKHR4Lm91dHMubGVuZ3RoKSwgJ3N1bT0nICsgZm9ybWF0U2F0KG91dHB1dFN1bSldLmpvaW4oJyAnKSxcbiAgICAgICAgdGhpcy5wYXJzZU91dHModHgub3V0cywgdHgsIGNoYWluSW5mbylcbiAgICAgICksXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTJDO0FBUTNDLFNBQVMsU0FBUyxDQUFDLENBQVM7SUFDMUIsT0FBTyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQXdCRCxTQUFTLGdCQUFnQixDQUFDLENBQVM7SUFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLENBQVM7SUFDNUIsdUNBQXVDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQWEsTUFBTTtJQU9qQixZQUFvQixNQUFrQjtRQUFsQixXQUFNLEdBQU4sTUFBTSxDQUFZO0lBQUcsQ0FBQztJQUUxQyxJQUFJLENBQUMsS0FBc0IsRUFBRSxLQUFrQixFQUFFLFFBQWtCLEVBQUU7UUFDbkUsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEIsS0FBSztZQUNMLEtBQUs7U0FDTixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzdELElBQ0UsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLElBQUksS0FBSyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdB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RUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ3hGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQ3JDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FDUCxTQUFTLEVBQ1QsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNqRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUN2QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeFJILHdCQXlSQztBQXhSUSxnQkFBUyxHQUFlO0lBQzdCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGtCQUFrQixFQUFFLElBQUk7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IE91dHB1dFNwZW5kIH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblN0YXR1cyB9IGZyb20gJ0BiaXRnby9ibG9ja2FwaXMvZGlzdC9zcmMvVHJhbnNhY3Rpb25BcGknO1xuXG5leHBvcnQgdHlwZSBJbnB1dEZvcm1hdCA9ICdhc20nIHwgJ3BhcnNlU2lnbmF0dXJlJztcblxuZXhwb3J0IHR5cGUgVHhOb2RlVmFsdWUgPSBudW1iZXIgfCBzdHJpbmcgfCBCdWZmZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuZnVuY3Rpb24gZm9ybWF0U2F0KHY6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiAodiAvIDFlOCkudG9GaXhlZCg4KTtcbn1cblxuZXhwb3J0IHR5cGUgVHhOb2RlID0ge1xuICB0eXBlOiAnbm9kZSc7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBUeE5vZGVWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgbm9kZXM6IFR4Tm9kZVtdIHwgdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IHR5cGUgUGFyc2VyQXJncyA9IHtcbiAgcGFyc2VTY3JpcHREYXRhOiBib29sZWFuO1xuICBwYXJzZVNjcmlwdEFzbTogYm9vbGVhbjtcbiAgcGFyc2VTaWduYXR1cmVEYXRhOiBib29sZWFuO1xuICBoaWRlPzogc3RyaW5nW107XG4gIG1heE91dHB1dHM/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDaGFpbkluZm8gPSB7XG4gIHN0YXR1cz86IFRyYW5zYWN0aW9uU3RhdHVzO1xuICBvdXRwdXRTcGVuZHM/OiBPdXRwdXRTcGVuZFtdO1xuICBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXRbXTtcbiAgcHJldk91dHB1dFNwZW5kcz86IE91dHB1dFNwZW5kW107XG59O1xuXG5mdW5jdGlvbiB0b0J1ZmZlclVJbnQzMkJFKG46IG51bWJlcik6IEJ1ZmZlciB7XG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgYnVmLndyaXRlVUludDMyTEUobik7XG4gIHJldHVybiBidWY7XG59XG5cbmZ1bmN0aW9uIGlzUHJpbnRhYmxlKHM6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNjY0NDc0OTRcbiAgcmV0dXJuICFzLm1hdGNoKC9bXFxwe0NjfVxccHtDbn1cXHB7Q3N9XSsvZ3UpO1xufVxuXG5leHBvcnQgY2xhc3MgUGFyc2VyIHtcbiAgc3RhdGljIFBBUlNFX0FMTDogUGFyc2VyQXJncyA9IHtcbiAgICBwYXJzZVNjcmlwdERhdGE6IHRydWUsXG4gICAgcGFyc2VTY3JpcHRBc206IHRydWUsXG4gICAgcGFyc2VTaWduYXR1cmVEYXRhOiB0cnVlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyYW1zOiBQYXJzZXJBcmdzKSB7fVxuXG4gIG5vZGUobGFiZWw6IHN0cmluZyB8IG51bWJlciwgdmFsdWU6IFR4Tm9kZVZhbHVlLCBub2RlczogVHhOb2RlW10gPSBbXSk6IFR4Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdub2RlJyxcbiAgICAgIGxhYmVsOiBTdHJpbmcobGFiZWwpLFxuICAgICAgdmFsdWUsXG4gICAgICBub2RlcyxcbiAgICB9O1xuICB9XG5cbiAgcGFyc2VTY3JpcHRBc20odHlwZTogc3RyaW5nLCBwYXJ0OiBCdWZmZXIsIGk6IG51bWJlciwgbjogbnVtYmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICAodHlwZSA9PT0gJ3RhcHJvb3QnICYmIGkgPT09IG4gLSAyKSB8fFxuICAgICAgKCh0eXBlID09PSAnc2NyaXB0aGFzaCcgfHwgdHlwZSA9PT0gJ3dpdG5lc3NzY3JpcHRoYXNoJykgJiYgaSA9PT0gbiAtIDEpXG4gICAgKSB7XG4gICAgICBsZXQgcGFyc2VkO1xuXG4gICAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSB1dHhvbGliLnNjcmlwdC50b0FTTShwYXJ0KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJzZWQpIHtcbiAgICAgICAgcmV0dXJuIFsnJywgLi4ucGFyc2VkLnNwbGl0KCcgJyldLmpvaW4oJ1xcbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHBhcnNlU2NyaXB0UGFydHModHlwZTogc3RyaW5nLCBwYXJ0czogQXJyYXk8QnVmZmVyIHwgbnVtYmVyPik6IFR4Tm9kZVtdIHtcbiAgICByZXR1cm4gcGFydHMubWFwKCh2LCBpKSA9PiB7XG4gICAgICBsZXQgYXNtTm9kZTogVHhOb2RlIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKHRoaXMucGFyYW1zLnBhcnNlU2NyaXB0QXNtICYmIEJ1ZmZlci5pc0J1ZmZlcih2KSkge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU2NyaXB0QXNtKHR5cGUsIHYsIGksIHBhcnRzLmxlbmd0aCk7XG4gICAgICAgIGFzbU5vZGUgPSBwYXJzZWQgPyB0aGlzLm5vZGUoJ2FzbScsIHBhcnNlZCkgOiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLm5vZGUoaSwgdGhpcy5wYXJhbXMucGFyc2VTY3JpcHREYXRhID8gdiA6IHVuZGVmaW5lZCwgYXNtTm9kZSA/IFthc21Ob2RlXSA6IHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH1cblxuICBwYXJzZVNjcmlwdChidWZmZXI6IEJ1ZmZlcik6IFR4Tm9kZSB7XG4gICAgbGV0IHZhbHVlO1xuICAgIGxldCBub2RlcztcbiAgICBpZiAoYnVmZmVyLmxlbmd0aCAmJiB0aGlzLnBhcmFtcy5wYXJzZVNpZ25hdHVyZURhdGEpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSB1dHhvbGliLmNsYXNzaWZ5LmlucHV0KGJ1ZmZlciwgdHJ1ZSkgPz8gJ3Vua25vd24nO1xuICAgICAgY29uc3QgZGVjb21waWxlZCA9IHV0eG9saWIuc2NyaXB0LmRlY29tcGlsZShidWZmZXIpO1xuICAgICAgaWYgKGRlY29tcGlsZWQpIHtcbiAgICAgICAgbm9kZXMgPSB0aGlzLnBhcnNlU2NyaXB0UGFydHModHlwZSwgZGVjb21waWxlZCk7XG4gICAgICB9XG4gICAgICB2YWx1ZSA9IHR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gYnVmZmVyO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm5vZGUoJ3NjcmlwdCcsIHZhbHVlLCBub2Rlcyk7XG4gIH1cblxuICBwYXJzZVdpdG5lc3Moc2NyaXB0OiBCdWZmZXJbXSk6IFR4Tm9kZSB7XG4gICAgaWYgKHNjcmlwdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUoJ3dpdG5lc3MnLCAnW10nKTtcbiAgICB9XG4gICAgY29uc3QgdHlwZSA9IHV0eG9saWIuY2xhc3NpZnkud2l0bmVzcyhzY3JpcHQsIHRydWUpID8/ICd1bmtub3duJztcbiAgICByZXR1cm4gdGhpcy5ub2RlKCd3aXRuZXNzJywgdHlwZSwgdGhpcy5wYXJhbXMucGFyc2VTY3JpcHREYXRhID8gdGhpcy5wYXJzZVNjcmlwdFBhcnRzKHR5cGUsIHNjcmlwdCkgOiB1bmRlZmluZWQpO1xuICB9XG5cbiAgcGFyc2VQdWJrZXlzKHBhcnNlZDogdXR4b2xpYi5iaXRnby5QYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzKTogVHhOb2RlIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlKFxuICAgICAgJ3B1YmtleXMnLFxuICAgICAgcGFyc2VkLnB1YmxpY0tleXMubGVuZ3RoLFxuICAgICAgcGFyc2VkLnB1YmxpY0tleXMubWFwKChrLCBpKSA9PiB0aGlzLm5vZGUoaSwgaykpXG4gICAgKTtcbiAgfVxuXG4gIHBhcnNlU2lnbmF0dXJlcyhcbiAgICBwYXJzZWQ6IHV0eG9saWIuYml0Z28uUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMyxcbiAgICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24sXG4gICAgaW5wdXRJbmRleDogbnVtYmVyLFxuICAgIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dFtdXG4gICk6IFR4Tm9kZSB7XG4gICAgY29uc3Qgbm9kZXMgPSBbXTtcbiAgICBpZiAocHJldk91dHB1dHMpIHtcbiAgICAgIGNvbnN0IHNpZ25lZEJ5ID0gdXR4b2xpYi5iaXRnby52ZXJpZnlTaWduYXR1cmVXaXRoUHVibGljS2V5cyh0eCwgaW5wdXRJbmRleCwgcHJldk91dHB1dHMsIHBhcnNlZC5wdWJsaWNLZXlzKTtcbiAgICAgIG5vZGVzLnB1c2godGhpcy5ub2RlKCdzaWduZWQgYnknLCBzaWduZWRCeS5mbGF0TWFwKCh2LCBpKSA9PiAodiA/IFtpXSA6IFtdKSkuam9pbignLCAnKSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ub2RlKFxuICAgICAgJ3NpZ25hdHVyZXMnLFxuICAgICAgcGFyc2VkLnNpZ25hdHVyZXNcbiAgICAgICAgLm1hcCgoczogQnVmZmVyIHwgMCkgPT5cbiAgICAgICAgICB1dHhvbGliLmJpdGdvLmlzUGxhY2Vob2xkZXJTaWduYXR1cmUocykgPyAnW10nIDogQnVmZmVyLmlzQnVmZmVyKHMpID8gYFske3MubGVuZ3RofWJ5dGVdYCA6IGBbJHtzfV1gXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICAgIG5vZGVzXG4gICAgKTtcbiAgfVxuXG4gIHBhcnNlU2lnU2NyaXB0KHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbiwgaW5wdXRJbmRleDogbnVtYmVyLCBwcmV2T3V0cHV0cz86IHV0eG9saWIuVHhPdXRwdXRbXSk6IFR4Tm9kZSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHV0eG9saWIuYml0Z28ucGFyc2VTaWduYXR1cmVTY3JpcHQodHguaW5zW2lucHV0SW5kZXhdKTtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUoXG4gICAgICAgICdzaWdTY3JpcHQnLFxuICAgICAgICBwYXJzZWQuc2NyaXB0VHlwZSA/PyAndW5rbm93bicsXG4gICAgICAgIHBhcnNlZC5zY3JpcHRUeXBlICYmIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5pc1NjcmlwdFR5cGUyT2YzKHBhcnNlZC5zY3JpcHRUeXBlKVxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICB0aGlzLnBhcnNlUHVia2V5cyhwYXJzZWQgYXMgdXR4b2xpYi5iaXRnby5QYXJzZWRTaWduYXR1cmVTY3JpcHQyT2YzKSxcbiAgICAgICAgICAgICAgdGhpcy5wYXJzZVNpZ25hdHVyZXMocGFyc2VkIGFzIHV0eG9saWIuYml0Z28uUGFyc2VkU2lnbmF0dXJlU2NyaXB0Mk9mMywgdHgsIGlucHV0SW5kZXgsIHByZXZPdXRwdXRzKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUoJ2Vycm9yJywgU3RyaW5nKGUpKTtcbiAgICB9XG4gIH1cblxuICBwYXJzZVByZXZPdXQoXG4gICAgaW5wdXQ6IHV0eG9saWIuVHhJbnB1dCxcbiAgICBpOiBudW1iZXIsXG4gICAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICAgIHByZXZPdXRwdXRzPzogdXR4b2xpYi5UeE91dHB1dFtdXG4gICk6IFR4Tm9kZVtdIHtcbiAgICBpZiAoIXByZXZPdXRwdXRzIHx8ICFwcmV2T3V0cHV0c1tpXSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCB7IHNjcmlwdCwgdmFsdWUgfSA9IHByZXZPdXRwdXRzW2ldO1xuICAgIGxldCBhZGRyZXNzO1xuICAgIHRyeSB7XG4gICAgICBhZGRyZXNzID0gdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0LCBuZXR3b3JrKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBhZGRyZXNzID0gJyhlcnJvciknO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5ub2RlKCd2YWx1ZScsIHZhbHVlIC8gMWU4KSxcbiAgICAgIHRoaXMubm9kZSgncHViU2NyaXB0Jywgc2NyaXB0LCBhZGRyZXNzID8gW3RoaXMubm9kZSgnYWRkcmVzcycsIGFkZHJlc3MpXSA6IHVuZGVmaW5lZCksXG4gICAgXTtcbiAgfVxuXG4gIHBhcnNlU3BlbmQodHhpZDogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBzcGVuZHM6IE91dHB1dFNwZW5kW10gfCB1bmRlZmluZWQsIHBhcmFtczogeyBjb25mbGljdDogYm9vbGVhbiB9KTogVHhOb2RlW10ge1xuICAgIGlmICghc3BlbmRzIHx8ICFzcGVuZHNbaW5kZXhdKSB7XG4gICAgICAvLyBubyBzcGVuZCBkYXRhIGF2YWlsYWJsZVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBjb25zdCBzcGVuZCA9IHNwZW5kc1tpbmRleF07XG4gICAgaWYgKHNwZW5kLnR4aWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFt0aGlzLm5vZGUoJ3NwZW50JywgZmFsc2UpXTtcbiAgICB9XG4gICAgaWYgKHNwZW5kLnR4aWQgPT09IHR4aWQpIHtcbiAgICAgIC8vIGlmIGlucHV0IGlzIHNwZW50IGJ5IHRoaXMgdHJhbnNhY3Rpb24gd2UgZG9uJ3QgZGlzcGxheSBpdFxuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMubm9kZSgnc3BlbnQnLCBgJHtzcGVuZC50eGlkfToke3NwZW5kLnZpbn1gLCBwYXJhbXMuY29uZmxpY3QgPyBbdGhpcy5ub2RlKCdjb25mbGljdCcsIHRydWUpXSA6IFtdKV07XG4gIH1cblxuICBwYXJzZUlucyhpbnM6IHV0eG9saWIuVHhJbnB1dFtdLCB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24sIG91dHB1dEluZm86IENoYWluSW5mbyk6IFR4Tm9kZVtdIHtcbiAgICBjb25zdCB0eGlkID0gdHguZ2V0SWQoKTtcbiAgICByZXR1cm4gaW5zLm1hcCgoaW5wdXQsIGkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGUoaSwgdXR4b2xpYi5iaXRnby5mb3JtYXRPdXRwdXRJZCh1dHhvbGliLmJpdGdvLmdldE91dHB1dElkRm9ySW5wdXQoaW5wdXQpKSwgW1xuICAgICAgICB0aGlzLm5vZGUoJ3NlcXVlbmNlJywgdG9CdWZmZXJVSW50MzJCRShpbnB1dC5zZXF1ZW5jZSkpLFxuICAgICAgICB0aGlzLnBhcnNlU2NyaXB0KGlucHV0LnNjcmlwdCksXG4gICAgICAgIHRoaXMucGFyc2VXaXRuZXNzKGlucHV0LndpdG5lc3MpLFxuICAgICAgICB0aGlzLnBhcnNlU2lnU2NyaXB0KHR4LCBpLCBvdXRwdXRJbmZvLnByZXZPdXRwdXRzKSxcbiAgICAgICAgLi4udGhpcy5wYXJzZVByZXZPdXQoaW5wdXQsIGksIHR4Lm5ldHdvcmssIG91dHB1dEluZm8ucHJldk91dHB1dHMpLFxuICAgICAgICAuLi50aGlzLnBhcnNlU3BlbmQodHhpZCwgaSwgb3V0cHV0SW5mby5wcmV2T3V0cHV0U3BlbmRzLCB7IGNvbmZsaWN0OiB0cnVlIH0pLFxuICAgICAgXSk7XG4gICAgfSk7XG4gIH1cblxuICB0cnlQYXJzZU9wUmV0dXJuKHNjcmlwdDogQnVmZmVyKTogVHhOb2RlW10ge1xuICAgIGxldCBkYXRhOiBCdWZmZXJbXSB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgKHsgZGF0YSB9ID0gdXR4b2xpYi5wYXltZW50cy5lbWJlZCh7IG91dHB1dDogc2NyaXB0IH0pKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBpZ25vcmVcbiAgICB9XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBkYXRhLm1hcCgoYnVmLCBpKSA9PiB7XG4gICAgICBsZXQgdXRmODtcbiAgICAgIHRyeSB7XG4gICAgICAgIHV0ZjggPSBidWYudG9TdHJpbmcoJ3V0ZjgnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaWdub3JlXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5ub2RlKGksIGAke2J1Zi5sZW5ndGh9IGJ5dGVzYCwgW1xuICAgICAgICB0aGlzLm5vZGUoJ2hleCcsIGJ1ZiksXG4gICAgICAgIC4uLih1dGY4ICYmIGlzUHJpbnRhYmxlKHV0ZjgpID8gW3RoaXMubm9kZSgndXRmOCcsIHV0ZjgpXSA6IFtdKSxcbiAgICAgIF0pO1xuICAgIH0pO1xuICB9XG5cbiAgdHJ5Rm9ybWF0QWRkcmVzcyhzY3JpcHQ6IEJ1ZmZlciwgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrKTogc3RyaW5nIHwgQnVmZmVyIHtcbiAgICBjb25zdCBvcFJldHVybk5vZGVzID0gdGhpcy50cnlQYXJzZU9wUmV0dXJuKHNjcmlwdCk7XG4gICAgaWYgKG9wUmV0dXJuTm9kZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYE9QX1JFVFVSTmA7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChzY3JpcHQsIG5ldHdvcmspO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBzY3JpcHQ7XG4gICAgfVxuICB9XG5cbiAgcGFyc2VPdXRzKG91dHM6IHV0eG9saWIuVHhPdXRwdXRbXSwgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uLCBwYXJhbXM6IENoYWluSW5mbyk6IFR4Tm9kZVtdIHtcbiAgICBpZiAob3V0cy5sZW5ndGggPiAodGhpcy5wYXJhbXMubWF4T3V0cHV0cyA/PyAyMDApKSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnKG9taXR0ZWQpJywgdW5kZWZpbmVkKV07XG4gICAgfVxuXG4gICAgY29uc3QgdHhpZCA9IHR4LmdldElkKCk7XG4gICAgcmV0dXJuIG91dHMubWFwKChvLCBpKSA9PlxuICAgICAgdGhpcy5ub2RlKGksIHRoaXMudHJ5Rm9ybWF0QWRkcmVzcyhvLnNjcmlwdCwgdHgubmV0d29yayksIFtcbiAgICAgICAgLi4udGhpcy50cnlQYXJzZU9wUmV0dXJuKG8uc2NyaXB0KSxcbiAgICAgICAgdGhpcy5ub2RlKGB2YWx1ZWAsIG8udmFsdWUgLyAxZTgpLFxuICAgICAgICAuLi50aGlzLnBhcnNlU3BlbmQodHhpZCwgaSwgcGFyYW1zLm91dHB1dFNwZW5kcywgeyBjb25mbGljdDogZmFsc2UgfSksXG4gICAgICBdKVxuICAgICk7XG4gIH1cblxuICBwYXJzZVN0YXR1cyh0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb24sIHN0YXR1cz86IFRyYW5zYWN0aW9uU3RhdHVzKTogVHhOb2RlW10ge1xuICAgIGlmICghc3RhdHVzKSB7XG4gICAgICByZXR1cm4gW3RoaXMubm9kZSgnc3RhdHVzJywgJ3Vua25vd24nKV07XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgICdzdGF0dXMnLFxuICAgICAgICBzdGF0dXMuZm91bmQgPyAnZm91bmQnIDogJ25vdCBmb3VuZCcsXG4gICAgICAgIHN0YXR1cy5mb3VuZFxuICAgICAgICAgID8gc3RhdHVzLmNvbmZpcm1lZFxuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlKFxuICAgICAgICAgICAgICAgICAgJ2NvbmZpcm1lZCcsXG4gICAgICAgICAgICAgICAgICBgYmxvY2sgJHtzdGF0dXMuYmxvY2tIZWlnaHR9YCArIChzdGF0dXMuZGF0ZSA/IGAgZGF0ZT0ke3N0YXR1cy5kYXRlLnRvSVNPU3RyaW5nKCl9YCA6ICcnKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogW3RoaXMubm9kZSgnY29uZmlybWVkJywgZmFsc2UpXVxuICAgICAgICAgIDogW11cbiAgICAgICksXG4gICAgXTtcbiAgfVxuXG4gIHBhcnNlKHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbiwgY2hhaW5JbmZvOiBDaGFpbkluZm8gPSB7fSk6IFR4Tm9kZSB7XG4gICAgY29uc3Qgd2VpZ2h0ID0gdHgud2VpZ2h0KCk7XG4gICAgY29uc3QgdnNpemUgPSB0eC52aXJ0dWFsU2l6ZSgpO1xuICAgIGNvbnN0IG91dHB1dFN1bSA9IHR4Lm91dHMucmVkdWNlKChzdW0sIG8pID0+IHN1bSArIG8udmFsdWUsIDApO1xuICAgIGNvbnN0IGlucHV0U3VtID0gY2hhaW5JbmZvLnByZXZPdXRwdXRzPy5yZWR1Y2UoKHN1bSwgbykgPT4gc3VtICsgby52YWx1ZSwgMCk7XG4gICAgY29uc3QgZmVlID0gaW5wdXRTdW0gPyBpbnB1dFN1bSAtIG91dHB1dFN1bSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmZWVSYXRlID0gZmVlID8gZmVlIC8gdnNpemUgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMubm9kZSgndHJhbnNhY3Rpb24nLCB0eC5nZXRJZCgpLCBbXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgICdwYXJzZWRBcycsXG4gICAgICAgIGAke3V0eG9saWIuZ2V0TmV0d29ya05hbWUodXR4b2xpYi5nZXRNYWlubmV0KHR4Lm5ldHdvcmspKX0gYCArXG4gICAgICAgICAgYCR7dXR4b2xpYi5pc01haW5uZXQodHgubmV0d29yaykgPyAnbWFpbm5ldCcgOiAndGVzdG5ldCd9YFxuICAgICAgKSxcbiAgICAgIHRoaXMubm9kZSgndmVyc2lvbicsIHR4LnZlcnNpb24pLFxuICAgICAgdGhpcy5ub2RlKCdsb2NrdGltZScsIHR4LmxvY2t0aW1lKSxcbiAgICAgIHRoaXMubm9kZSgnaGFzV2l0bmVzc2VzJywgdHguaGFzV2l0bmVzc2VzKCkpLFxuICAgICAgLi4udGhpcy5wYXJzZVN0YXR1cyh0eCwgY2hhaW5JbmZvLnN0YXR1cyksXG4gICAgICB0aGlzLm5vZGUoJ3ZzaXplJywgYCR7dnNpemV9dmJ5dGVzICgke3dlaWdodH13dSlgKSxcbiAgICAgIC4uLihmZWUgJiYgZmVlUmF0ZVxuICAgICAgICA/IFt0aGlzLm5vZGUoJ2ZlZSBbYnRjXScsIGZvcm1hdFNhdChmZWUpKSwgdGhpcy5ub2RlKCdmZWVSYXRlIFtzYXQvdmJ5dGVdJywgZmVlUmF0ZS50b0ZpeGVkKDIpKV1cbiAgICAgICAgOiBbXSksXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgIGBpbnB1dHNgLFxuICAgICAgICBbU3RyaW5nKHR4Lmlucy5sZW5ndGgpXS5jb25jYXQoaW5wdXRTdW0gPyBbJ3N1bT0nICsgZm9ybWF0U2F0KGlucHV0U3VtKV0gOiBbXSkuam9pbignICcpLFxuICAgICAgICB0aGlzLnBhcnNlSW5zKHR4LmlucywgdHgsIGNoYWluSW5mbylcbiAgICAgICksXG4gICAgICB0aGlzLm5vZGUoXG4gICAgICAgIGBvdXRwdXRzYCxcbiAgICAgICAgW1N0cmluZyh0eC5vdXRzLmxlbmd0aCksICdzdW09JyArIGZvcm1hdFNhdChvdXRwdXRTdW0pXS5qb2luKCcgJyksXG4gICAgICAgIHRoaXMucGFyc2VPdXRzKHR4Lm91dHMsIHR4LCBjaGFpbkluZm8pXG4gICAgICApLFxuICAgIF0pO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitgo/utxo-bin",
3
3
  "description": "Command-line utility for BitGo UTXO transactions",
4
- "version": "1.0.0",
4
+ "version": "1.0.1-rc.3",
5
5
  "files": [
6
6
  "dist/**/*"
7
7
  ],
@@ -25,18 +25,16 @@
25
25
  },
26
26
  "bin": "./dist/bin/index.js",
27
27
  "dependencies": {
28
- "@bitgo/blockapis": "^1.0.0",
29
- "@bitgo/statics": "^6.16.0",
30
- "@bitgo/utxo-lib": "^2.2.1",
28
+ "@bitgo/blockapis": "^1.0.1-rc.1",
29
+ "@bitgo/statics": "^6.17.0-rc.3",
30
+ "@bitgo/utxo-lib": "^2.2.2-rc.1",
31
31
  "archy": "^1.0.0",
32
32
  "chalk": "4",
33
33
  "yargs": "^17.3.1"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/archy": "^0.0.32",
37
- "@types/mocha": "^9.0.0",
38
37
  "@types/yargs": "^17.0.8",
39
- "mocha": "^9.1.4",
40
38
  "ts-node": "^10.4.0",
41
39
  "typescript": "^4.5.4"
42
40
  },
@@ -44,5 +42,5 @@
44
42
  "access": "public"
45
43
  },
46
44
  "license": "MIT",
47
- "gitHead": "6e5ced0a1afd015f348271481c18772b8899c260"
45
+ "gitHead": "9ac02a1532053ff4bc8bbcee8e7d00f33ae622ad"
48
46
  }