@pipeline-builder/pipeline-manager 4.2.2 → 4.2.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"create-pat.d.ts","sourceRoot":"","sources":["../../src/commands/create-pat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2JhD"}
1
+ {"version":3,"file":"create-pat.d.ts","sourceRoot":"","sources":["../../src/commands/create-pat.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgJhD"}
@@ -6,10 +6,10 @@ import pico from 'picocolors';
6
6
  import { TIMEOUTS } from '../config/cli.constants.js';
7
7
  import { assertCredentialTlsAllowed, credentialHttpsAgent, switchOrganization } from '../utils/auth-utils.js';
8
8
  import { printCommandHeader, withSslOptions } from '../utils/command-utils.js';
9
- import { DeviceAuthError, openInBrowser, pollForDeviceToken, requestDeviceCode } from '../utils/device-auth.js';
9
+ import { beginDeviceApproval, DeviceAuthError, pollForDeviceToken } from '../utils/device-auth.js';
10
10
  import { ERROR_CODES, handleError } from '../utils/error-handler.js';
11
11
  import { printDebug, printError, printInfo, printKeyValue, printSuccess } from '../utils/output-utils.js';
12
- const { bold, cyan, dim, green, yellow } = pico;
12
+ const { bold, green, yellow } = pico;
13
13
  const MAX_EXPIRES_DAYS = 365;
14
14
  /**
15
15
  * Registers the `pat` command with the CLI program.
@@ -81,24 +81,12 @@ export function createPat(program) {
81
81
  const timeout = TIMEOUTS.HTTP_REQUEST;
82
82
  const transport = { url: options.url, httpsAgent, timeout };
83
83
  // 1) Device sign-in, asking for the step-up the create call needs.
84
- if (!quiet)
85
- printInfo('Starting browser sign-in', { url: options.url, verifySsl: options.verifySsl });
86
- const code = await requestDeviceCode(transport, { stepUp: true });
87
- const approvalUrl = code.verification_uri_complete || code.verification_uri;
88
- const opened = options.browser !== false && openInBrowser(approvalUrl);
89
- // The prompt goes to STDERR under `--quiet`: stdout is captured by
90
- // `eval $(…)`, so printing the code there would swallow the one thing
91
- // the user has to read before anything can proceed.
92
- const say = quiet ? console.error : console.log;
93
- say('');
94
- say(` Your code: ${bold(cyan(code.user_code))}`);
95
- say(` Approve at: ${green(approvalUrl)}`);
96
- say('');
97
- say(dim(opened
98
- ? ' Opening your browser… approve the code there, then come back.'
99
- : ' Open that URL in a browser, check the code matches, and approve.'));
100
- if (!quiet)
101
- printInfo('Waiting for approval…');
84
+ const code = await beginDeviceApproval(transport, {
85
+ quiet,
86
+ browser: options.browser,
87
+ verifySsl: options.verifySsl,
88
+ stepUp: true,
89
+ });
102
90
  const session = await pollForDeviceToken(transport, code);
103
91
  let accessToken = session.access_token;
104
92
  const stepUpToken = session.step_up_token;
@@ -185,4 +173,4 @@ export function createPat(program) {
185
173
  }
186
174
  });
187
175
  }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jcmVhdGUtcGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUcsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFZaEQsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsV0FBVyxDQUFDLDBFQUEwRSxDQUFDO1NBQ3ZGLGNBQWMs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LEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO2FBQ2xFLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBUSU1FT1VUUyB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkLCBjcmVkZW50aWFsSHR0cHNBZ2VudCwgc3dpdGNoT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vdXRpbHMvYXV0aC11dGlscy5qcyc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIsIHdpdGhTc2xPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBEZXZpY2VBdXRoRXJyb3IsIG9wZW5JbkJyb3dzZXIsIHBvbGxGb3JEZXZpY2VUb2tlbiwgcmVxdWVzdERldmljZUNvZGUgfSBmcm9tICcuLi91dGlscy9kZXZpY2UtYXV0aC5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RGVidWcsIHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBjeWFuLCBkaW0sIGdyZWVuLCB5ZWxsb3cgfSA9IHBpY287XG5cbi8qKiBDcmVhdGUta2V5IHJlc3BvbnNlIOKAlCB0aGUgcmF3IGtleSBpcyByZXR1cm5lZCBleGFjdGx5IG9uY2UuICovXG5pbnRlcmZhY2UgQ3JlYXRlQWNjZXNzS2V5UmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBkYXRhOiB7XG4gICAgLyoqIFRoZSBvcGFxdWUga2V5IChgcGJfcGF0X+KApmApLiBPbmx5IGl0cyBoYXNoIGlzIHN0b3JlZCBzZXJ2ZXItc2lkZS4gKi9cbiAgICBrZXk6IHN0cmluZztcbiAgICBhY2Nlc3NLZXk6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBkaXNwbGF5OiBzdHJpbmc7IGV4cGlyZXNBdDogc3RyaW5nOyBzY29wZT86IHN0cmluZyB8IG51bGwgfTtcbiAgfTtcbn1cblxuY29uc3QgTUFYX0VYUElSRVNfREFZUyA9IDM2NTtcblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBwYXRgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogTWludHMgYSBuYW1lZCBBQ0NFU1MgS0VZIChgcGJfcGF0X+KApmApIOKAlCBhIGR1cmFibGUsIGluZGl2aWR1YWxseS1yZXZvY2FibGUgQVBJXG4gKiBjcmVkZW50aWFsIOKAlCBmb3IgQ0kvYXV0b21hdGlvbi4gVW5saWtlIGEgc2Vzc2lvbiwgYSBrZXkgaXMgdGhlIHJpZ2h0XG4gKiBsb25nLWxpdmVkIGNyZWRlbnRpYWwgZm9yIHNjcmlwdHMuXG4gKlxuICogVGhlIGtleSBpcyBPUEFRVUU6IGl0IGNhcnJpZXMgbm8gY2xhaW1zLCBhbmQgZWFjaCBzZXJ2aWNlIHRyYWRlcyBpdCBhdFxuICogcGxhdGZvcm0ncyAvYXV0aC90b2tlbi9leGNoYW5nZSBmb3IgYSA1LW1pbnV0ZSB0b2tlbiwgc28gcmV2b2tpbmcgaXQgdGFrZXNcbiAqIGVmZmVjdCBldmVyeXdoZXJlIHdpdGhpbiBmaXZlIG1pbnV0ZXMuXG4gKlxuICogQ3JlYXRpbmcgb25lIGlzIHN0ZXAtdXAgZ2F0ZWQgc2VydmVyLXNpZGUsIHlldCB0aGUgQ0xJIGhvbGRzIG5vIHBhc3N3b3JkOiB0aGVcbiAqIGRldmljZSBmbG93IGFza3MgZm9yIHRoZSBzdGVwLXVwIElOIFRIRSBCUk9XU0VSLCB3aGVyZSB0aGVcbiAqIGFjY291bnQncyByZWFsIGZhY3RvcnMgbGl2ZSwgYW5kIHRoZSBhcHByb3ZlZCBwb2xsIHJldHVybnMgYm90aCB0aGUgc2Vzc2lvblxuICogYW5kIGEgc2hvcnQtbGl2ZWQgc3RlcC11cCB0b2tlbi4gVGhlIGtleSBiaW5kcyB0byB0aGUgdXNlcidzIGFjdGl2ZSBvcmc7IHBhc3NcbiAqIGAtLW9yZ2AgdG8gc3dpdGNoIGZpcnN0ICh3aGljaCBwZXJzaXN0cyBhcyB0aGUgYWN0aXZlIG9yZykuXG4gKlxuICogVGhlIHJhdyBrZXkgaXMgcHJpbnRlZCBPTkNFIOKAlCBvbmx5IGl0cyBoYXNoIGlzIHN0b3JlZCwgc28gaXQgY2FuIG5ldmVyIGJlIHJlYWRcbiAqIGJhY2suIGAtLXF1aWV0YCBwcmludHMgb25seSBgZXhwb3J0IFBMQVRGT1JNX1RPS0VOPeKApmAgc28gaXQgY2FuIGJlIGBldmFsYCdkO1xuICogdGhlIGtleSBpcyBpdHNlbGYgYSB2YWxpZCBCZWFyZXIgY3JlZGVudGlhbC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIHBhdCAtLW5hbWUgY2ktZGVwbG95XG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggcGF0IC0tbmFtZSBjaSAtLWV4cGlyZXMtZGF5cyAzMCAtLW9yZyA8b3JnSWQ+XG4gKiBldmFsICQocGlwZWxpbmUtbWFuYWdlciBhdXRoIHBhdCAtLW5hbWUgY2kgLS1xdWlldClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF0KHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdwYXQnKVxuICAgIC5kZXNjcmlwdGlvbignQ3JlYXRlIGEgbmFtZWQgYWNjZXNzIGtleSAobG9uZy1saXZlZCwgb3BhcXVlIENMSS9hdXRvbWF0aW9uIGNyZWRlbnRpYWwpJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy0tbmFtZSA8bmFtZT4nLCAnSHVtYW4tcmVhZGFibGUga2V5IG5hbWUgKGUuZy4gY2ktZGVwbG95KScpXG4gICAgLm9wdGlvbignLS1leHBpcmVzLWRheXMgPGRheXM+JywgYEtleSBsaWZldGltZSBpbiBkYXlzICgxLSR7TUFYX0VYUElSRVNfREFZU30pYCwgJzkwJylcbiAgICAub3B0aW9uKCctLXNjb3BlIDxzY29wZT4nLCAnT3B0aW9uYWwgY2FwYWJpbGl0eSBzY29wZSAobGVhc3QtcHJpdmlsZWdlIGtleSknKVxuICAgIC5vcHRpb24oJy0tb3JnIDxvcmdJZD4nLCAnQmluZCB0aGUga2V5IHRvIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uIChzd2l0Y2hlcyBhY3RpdmUgb3JnKScpXG4gICAgLm9wdGlvbignLS1uby1icm93c2VyJywgJ05ldmVyIG9wZW4gYSBicm93c2VyIOKAlCBwcmludCB0aGUgdmVyaWZpY2F0aW9uIFVSTCBpbnN0ZWFkJylcbiAgICAub3B0aW9uKCctLXVybCA8dXJsPicsICdQbGF0Zm9ybSBiYXNlIFVSTCcsIHByb2Nlc3MuZW52LlBMQVRGT1JNX0JBU0VfVVJMIHx8ICdodHRwczovL2xvY2FsaG9zdDo4NDQzJykpXG4gICAgLm9wdGlvbignLS1xdWlldCcsICdPbmx5IHByaW50IHRoZSBleHBvcnQgc3RhdGVtZW50ICh1c2VmdWwgZm9yIGV2YWwpJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAvLyBTRUNVUklUWTogdGhlIHBvbGwgcmV0dXJucyBhIHNlc3Npb24gQU5EIGEgc3RlcC11cCB0b2tlbiwgYW5kIHRoZSByZXNwb25zZVxuICAgICAgLy8gYmVsb3cgY2FycmllcyB0aGUgcmF3IGtleS4gTm9uZSBvZiB0aGF0IG1heSBjcm9zcyBhbiB1bnZlcmlmaWVkIGNvbm5lY3Rpb25cbiAgICAgIC8vIGluIHByb2R1Y3Rpb24uIE1pcnJvcnMgdGhlIGd1YXJkIGluIGBsb2dpbmAuXG4gICAgICBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZChvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgIGNvbnN0IHF1aWV0ID0gb3B0aW9ucy5xdWlldCA/PyBmYWxzZTtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdDcmVhdGUgQWNjZXNzIEtleScsICdDcmVhdGUgQWNjZXNzIEtleScsIHsgcXVpZXQgfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIG5hbWUuXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0eXBlb2Ygb3B0aW9ucy5uYW1lID09PSAnc3RyaW5nJyA/IG9wdGlvbnMubmFtZS50cmltKCkgOiAnJztcbiAgICAgICAgaWYgKCFuYW1lKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignS2V5IG5hbWUgaXMgcmVxdWlyZWQgKC0tbmFtZSknKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuVkFMSURBVElPTik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5hbWUubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignS2V5IG5hbWUgbXVzdCBiZSAxMDAgY2hhcmFjdGVycyBvciBmZXdlcicpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5WQUxJREFUSU9OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkYXRlIGV4cGlyeSDihpIgc2Vjb25kcy5cbiAgICAgICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoTnVtYmVyKG9wdGlvbnMuZXhwaXJlc0RheXMpKTtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoZGF5cykgfHwgZGF5cyA8IDEgfHwgZGF5cyA+IE1BWF9FWFBJUkVTX0RBWVMpIHtcbiAgICAgICAgICBwcmludEVycm9yKGAtLWV4cGlyZXMtZGF5cyBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAke01BWF9FWFBJUkVTX0RBWVN9YCk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLlZBTElEQVRJT04pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4cGlyZXNJbiA9IGRheXMgKiA4NjQwMDtcblxuICAgICAgICBjb25zdCBodHRwc0FnZW50ID0gY3JlZGVudGlhbEh0dHBzQWdlbnQob3B0aW9ucy52ZXJpZnlTc2wpO1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gVElNRU9VVFMuSFRUUF9SRVFVRVNUO1xuICAgICAgICBjb25zdCB0cmFuc3BvcnQgPSB7IHVybDogb3B0aW9ucy51cmwsIGh0dHBzQWdlbnQsIHRpbWVvdXQgfTtcblxuICAgICAgICAvLyAxKSBEZXZpY2Ugc2lnbi1pbiwgYXNraW5nIGZvciB0aGUgc3RlcC11cCB0aGUgY3JlYXRlIGNhbGwgbmVlZHMuXG4gICAgICAgIGlmICghcXVpZXQpIHByaW50SW5mbygnU3RhcnRpbmcgYnJvd3NlciBzaWduLWluJywgeyB1cmw6IG9wdGlvbnMudXJsLCB2ZXJpZnlTc2w6IG9wdGlvbnMudmVyaWZ5U3NsIH0pO1xuICAgICAgICBjb25zdCBjb2RlID0gYXdhaXQgcmVxdWVzdERldmljZUNvZGUodHJhbnNwb3J0LCB7IHN0ZXBVcDogdHJ1ZSB9KTtcbiAgICAgICAgY29uc3QgYXBwcm92YWxVcmwgPSBjb2RlLnZlcmlmaWNhdGlvbl91cmlfY29tcGxldGUgfHwgY29kZS52ZXJpZmljYXRpb25fdXJpO1xuICAgICAgICBjb25zdCBvcGVuZWQgPSBvcHRpb25zLmJyb3dzZXIgIT09IGZhbHNlICYmIG9wZW5JbkJyb3dzZXIoYXBwcm92YWxVcmwpO1xuXG4gICAgICAgIC8vIFRoZSBwcm9tcHQgZ29lcyB0byBTVERFUlIgdW5kZXIgYC0tcXVpZXRgOiBzdGRvdXQgaXMgY2FwdHVyZWQgYnlcbiAgICAgICAgLy8gYGV2YWwgJCjigKYpYCwgc28gcHJpbnRpbmcgdGhlIGNvZGUgdGhlcmUgd291bGQgc3dhbGxvdyB0aGUgb25lIHRoaW5nXG4gICAgICAgIC8vIHRoZSB1c2VyIGhhcyB0byByZWFkIGJlZm9yZSBhbnl0aGluZyBjYW4gcHJvY2VlZC5cbiAgICAgICAgY29uc3Qgc2F5ID0gcXVpZXQgPyBjb25zb2xlLmVycm9yIDogY29uc29sZS5sb2c7XG4gICAgICAgIHNheSgnJyk7XG4gICAgICAgIHNheShgICBZb3VyIGNvZGU6ICAke2JvbGQoY3lhbihjb2RlLnVzZXJfY29kZSkpfWApO1xuICAgICAgICBzYXkoYCAgQXBwcm92ZSBhdDogJHtncmVlbihhcHByb3ZhbFVybCl9YCk7XG4gICAgICAgIHNheSgnJyk7XG4gICAgICAgIHNheShkaW0ob3BlbmVkXG4gICAgICAgICAgPyAnICBPcGVuaW5nIHlvdXIgYnJvd3NlcuKApiBhcHByb3ZlIHRoZSBjb2RlIHRoZXJlLCB0aGVuIGNvbWUgYmFjay4nXG4gICAgICAgICAgOiAnICBPcGVuIHRoYXQgVVJMIGluIGEgYnJvd3NlciwgY2hlY2sgdGhlIGNvZGUgbWF0Y2hlcywgYW5kIGFwcHJvdmUuJykpO1xuICAgICAgICBpZiAoIXF1aWV0KSBwcmludEluZm8oJ1dhaXRpbmcgZm9yIGFwcHJvdmFs4oCmJyk7XG5cbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHBvbGxGb3JEZXZpY2VUb2tlbih0cmFuc3BvcnQsIGNvZGUpO1xuICAgICAgICBsZXQgYWNjZXNzVG9rZW4gPSBzZXNzaW9uLmFjY2Vzc190b2tlbjtcbiAgICAgICAgY29uc3Qgc3RlcFVwVG9rZW4gPSBzZXNzaW9uLnN0ZXBfdXBfdG9rZW47XG4gICAgICAgIGlmICghc3RlcFVwVG9rZW4pIHtcbiAgICAgICAgICBwcmludEVycm9yKCdUaGUgYXBwcm92YWwgZGlkIG5vdCByZXR1cm4gYSBzdGVwLXVwIGNvbmZpcm1hdGlvbiDigJQgYXBwcm92ZSB0aGUgY29kZSBwcm9tcHRseSBhbmQgdHJ5IGFnYWluLicpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyKSBPcHRpb25hbGx5IGJpbmQgdG8gYSBzcGVjaWZpYyBvcmcgKHBlcnNpc3RzIGFzIHRoZSBhY3RpdmUgb3JnLCB3aGljaFxuICAgICAgICAvLyAgICB0aGUga2V5IGluaGVyaXRzKS4gUm90YXRlcyB0aGUgc2Vzc2lvbiwgYnV0IHRoZSBzdGVwLXVwIHRva2VuIGlzXG4gICAgICAgIC8vICAgIGJvdW5kIHRvIHRoZSB1c2VyLCBub3QgdGhlIHNlc3Npb24sIHNvIGl0IHN1cnZpdmVzIHRoZSBzd2l0Y2guXG4gICAgICAgIGlmIChvcHRpb25zLm9yZykge1xuICAgICAgICAgIGlmICghcXVpZXQpIHByaW50SW5mbygnU3dpdGNoaW5nIHRvIG9yZ2FuaXphdGlvbicsIHsgb3JnSWQ6IG9wdGlvbnMub3JnIH0pO1xuICAgICAgICAgIGFjY2Vzc1Rva2VuID0gKGF3YWl0IHN3aXRjaE9yZ2FuaXphdGlvbih7XG4gICAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgICAgb3JnSWQ6IG9wdGlvbnMub3JnLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICBodHRwc0FnZW50LFxuICAgICAgICAgICAgdGltZW91dCxcbiAgICAgICAgICAgIHF1aWV0LFxuICAgICAgICAgIH0pKS5hY2Nlc3NUb2tlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDMpIENyZWF0ZSB0aGUgYWNjZXNzIGtleS4gVGhlIHN0ZXAtdXAgdG9rZW4gaXMgc2hvcnQtbGl2ZWQgKH42MHMpIGFuZFxuICAgICAgICAvLyAgICBzaW5nbGUtdXNlLCBzbyBpdCBpcyBzcGVudCBpbW1lZGlhdGVseS5cbiAgICAgICAgY29uc3Qga2V5VXJsID0gYCR7b3B0aW9ucy51cmx9L2FwaS91c2VyL2tleXNgO1xuICAgICAgICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IGtleVVybCB9KTtcbiAgICAgICAgY29uc3Qga2V5UmVzID0gYXdhaXQgYXhpb3MucG9zdDxDcmVhdGVBY2Nlc3NLZXlSZXNwb25zZT4oXG4gICAgICAgICAga2V5VXJsLFxuICAgICAgICAgIHsgbmFtZSwgZXhwaXJlc0luLCAuLi4ob3B0aW9ucy5zY29wZSA/IHsgc2NvcGU6IG9wdGlvbnMuc2NvcGUgfSA6IHt9KSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICAgICAgICAgICAgJ1gtU3RlcC1VcC1Ub2tlbic6IHN0ZXBVcFRva2VuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQsXG4gICAgICAgICAgICB0aW1lb3V0LFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qga2V5ID0ga2V5UmVzLmRhdGE/LmRhdGE/LmtleTtcbiAgICAgICAgY29uc3QgbWV0YSA9IGtleVJlcy5kYXRhPy5kYXRhPy5hY2Nlc3NLZXk7XG4gICAgICAgIGlmICgha2V5KSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignQ3JlYXRlIGtleSBmYWlsZWQ6IG5vIGtleSBpbiByZXNwb25zZScpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBRdWlldCBtb2RlOiBlbWl0IG9ubHkgdGhlIGV4cG9ydCBsaW5lICh0aGUga2V5IGlzIGEgdmFsaWQgQmVhcmVyIGNyZWRlbnRpYWwpLlxuICAgICAgICBpZiAocXVpZXQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgZXhwb3J0IFBMQVRGT1JNX1RPS0VOPSR7a2V5fWApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdBY2Nlc3Mga2V5IGNyZWF0ZWQnKTtcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnTmFtZSc6IG1ldGE/Lm5hbWUgPz8gbmFtZSxcbiAgICAgICAgICAnS2V5IElEJzogbWV0YT8uaWQgPz8gJyh1bmtub3duKScsXG4gICAgICAgICAgJ0tleSc6IG1ldGE/LmRpc3BsYXkgPz8gJyh1bmtub3duKScsXG4gICAgICAgICAgJ0V4cGlyZXMnOiBtZXRhPy5leHBpcmVzQXQgPz8gYCR7ZGF5c30gZGF5KHMpYCxcbiAgICAgICAgICAuLi4obWV0YT8uc2NvcGUgPyB7IFNjb3BlOiBtZXRhLnNjb3BlIH0gOiB7fSksXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHllbGxvdyhib2xkKCdDb3B5IHlvdXIga2V5IG5vdyDigJQgb25seSBpdHMgaGFzaCBpcyBzdG9yZWQsIHNvIGl0IHdpbGwgbm90IGJlIHNob3duIGFnYWluOicpKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKGtleSkpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50SW5mbygnVGlwOiB1c2UgaXQgYXMgUExBVEZPUk1fVE9LRU4gZm9yIHN1YnNlcXVlbnQgY29tbWFuZHM6Jyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKCcgIGV4cG9ydCBQTEFURk9STV9UT0tFTj08dG9rZW4+JykpO1xuICAgICAgICBjb25zb2xlLmxvZyhncmVlbihgICAjIG9yOiAgZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBwYXQgLS1uYW1lICR7bmFtZX0gLS1xdWlldClgKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBEZXZpY2VBdXRoRXJyb3IpIHtcbiAgICAgICAgICBwcmludEVycm9yKGBDcmVhdGUga2V5IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWAsIHsgcmVhc29uOiBlcnJvci5jb2RlIH0pO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5yZXNwb25zZT8uc3RhdHVzO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZXJyb3IucmVzcG9uc2U/LmRhdGEgYXMgeyBtZXNzYWdlPzogc3RyaW5nIH0pPy5tZXNzYWdlO1xuICAgICAgICAgIHByaW50RXJyb3IoJ0NyZWF0ZSBrZXkgZmFpbGVkJywge1xuICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXMgPz8gJ25vIHJlc3BvbnNlJyxcbiAgICAgICAgICAgIC4uLihtZXNzYWdlID8geyBtZXNzYWdlIH0gOiB7fSksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdjcmVhdGUtcGF0JywgZXhlY3V0aW9uSWQsIHVybDogb3B0aW9ucy51cmwgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jcmVhdGUtcGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFZckMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsS0FBSyxDQUFDO1NBQ2QsV0FBVyxDQUFDLDBFQUEwRSxDQUFDO1NBQ3ZGLGNBQWMsQ0FBQyxlQUFlLEVBQUUsMENBQTBDLENBQUM7U0FD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QUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7YUFDbEUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7IFRJTUVPVVRTIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgYXNzZXJ0Q3JlZGVudGlhbFRsc0FsbG93ZWQsIGNyZWRlbnRpYWxIdHRwc0FnZW50LCBzd2l0Y2hPcmdhbml6YXRpb24gfSBmcm9tICcuLi91dGlscy9hdXRoLXV0aWxzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IGJlZ2luRGV2aWNlQXBwcm92YWwsIERldmljZUF1dGhFcnJvciwgcG9sbEZvckRldmljZVRva2VuIH0gZnJvbSAnLi4vdXRpbHMvZGV2aWNlLWF1dGguanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludERlYnVnLCBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U3VjY2VzcyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgZ3JlZW4sIHllbGxvdyB9ID0gcGljbztcblxuLyoqIENyZWF0ZS1rZXkgcmVzcG9uc2Ug4oCUIHRoZSByYXcga2V5IGlzIHJldHVybmVkIGV4YWN0bHkgb25jZS4gKi9cbmludGVyZmFjZSBDcmVhdGVBY2Nlc3NLZXlSZXNwb25zZSB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE6IHtcbiAgICAvKiogVGhlIG9wYXF1ZSBrZXkgKGBwYl9wYXRf4oCmYCkuIE9ubHkgaXRzIGhhc2ggaXMgc3RvcmVkIHNlcnZlci1zaWRlLiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIGFjY2Vzc0tleTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGRpc3BsYXk6IHN0cmluZzsgZXhwaXJlc0F0OiBzdHJpbmc7IHNjb3BlPzogc3RyaW5nIHwgbnVsbCB9O1xuICB9O1xufVxuXG5jb25zdCBNQVhfRVhQSVJFU19EQVlTID0gMzY1O1xuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHBhdGAgY29tbWFuZCB3aXRoIHRoZSBDTEkgcHJvZ3JhbS5cbiAqXG4gKiBNaW50cyBhIG5hbWVkIEFDQ0VTUyBLRVkgKGBwYl9wYXRf4oCmYCkg4oCUIGEgZHVyYWJsZSwgaW5kaXZpZHVhbGx5LXJldm9jYWJsZSBBUElcbiAqIGNyZWRlbnRpYWwg4oCUIGZvciBDSS9hdXRvbWF0aW9uLiBVbmxpa2UgYSBzZXNzaW9uLCBhIGtleSBpcyB0aGUgcmlnaHRcbiAqIGxvbmctbGl2ZWQgY3JlZGVudGlhbCBmb3Igc2NyaXB0cy5cbiAqXG4gKiBUaGUga2V5IGlzIE9QQVFVRTogaXQgY2FycmllcyBubyBjbGFpbXMsIGFuZCBlYWNoIHNlcnZpY2UgdHJhZGVzIGl0IGF0XG4gKiBwbGF0Zm9ybSdzIC9hdXRoL3Rva2VuL2V4Y2hhbmdlIGZvciBhIDUtbWludXRlIHRva2VuLCBzbyByZXZva2luZyBpdCB0YWtlc1xuICogZWZmZWN0IGV2ZXJ5d2hlcmUgd2l0aGluIGZpdmUgbWludXRlcy5cbiAqXG4gKiBDcmVhdGluZyBvbmUgaXMgc3RlcC11cCBnYXRlZCBzZXJ2ZXItc2lkZSwgeWV0IHRoZSBDTEkgaG9sZHMgbm8gcGFzc3dvcmQ6IHRoZVxuICogZGV2aWNlIGZsb3cgYXNrcyBmb3IgdGhlIHN0ZXAtdXAgSU4gVEhFIEJST1dTRVIsIHdoZXJlIHRoZVxuICogYWNjb3VudCdzIHJlYWwgZmFjdG9ycyBsaXZlLCBhbmQgdGhlIGFwcHJvdmVkIHBvbGwgcmV0dXJucyBib3RoIHRoZSBzZXNzaW9uXG4gKiBhbmQgYSBzaG9ydC1saXZlZCBzdGVwLXVwIHRva2VuLiBUaGUga2V5IGJpbmRzIHRvIHRoZSB1c2VyJ3MgYWN0aXZlIG9yZzsgcGFzc1xuICogYC0tb3JnYCB0byBzd2l0Y2ggZmlyc3QgKHdoaWNoIHBlcnNpc3RzIGFzIHRoZSBhY3RpdmUgb3JnKS5cbiAqXG4gKiBUaGUgcmF3IGtleSBpcyBwcmludGVkIE9OQ0Ug4oCUIG9ubHkgaXRzIGhhc2ggaXMgc3RvcmVkLCBzbyBpdCBjYW4gbmV2ZXIgYmUgcmVhZFxuICogYmFjay4gYC0tcXVpZXRgIHByaW50cyBvbmx5IGBleHBvcnQgUExBVEZPUk1fVE9LRU494oCmYCBzbyBpdCBjYW4gYmUgYGV2YWxgJ2Q7XG4gKiB0aGUga2V5IGlzIGl0c2VsZiBhIHZhbGlkIEJlYXJlciBjcmVkZW50aWFsLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggcGF0IC0tbmFtZSBjaS1kZXBsb3lcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBwYXQgLS1uYW1lIGNpIC0tZXhwaXJlcy1kYXlzIDMwIC0tb3JnIDxvcmdJZD5cbiAqIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggcGF0IC0tbmFtZSBjaSAtLXF1aWV0KVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXQocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3BhdCcpXG4gICAgLmRlc2NyaXB0aW9uKCdDcmVhdGUgYSBuYW1lZCBhY2Nlc3Mga2V5IChsb25nLWxpdmVkLCBvcGFxdWUgQ0xJL2F1dG9tYXRpb24gY3JlZGVudGlhbCknKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLS1uYW1lIDxuYW1lPicsICdIdW1hbi1yZWFkYWJsZSBrZXkgbmFtZSAoZS5nLiBjaS1kZXBsb3kpJylcbiAgICAub3B0aW9uKCctLWV4cGlyZXMtZGF5cyA8ZGF5cz4nLCBgS2V5IGxpZmV0aW1lIGluIGRheXMgKDEtJHtNQVhfRVhQSVJFU19EQVlTfSlgLCAnOTAnKVxuICAgIC5vcHRpb24oJy0tc2NvcGUgPHNjb3BlPicsICdPcHRpb25hbCBjYXBhYmlsaXR5IHNjb3BlIChsZWFzdC1wcml2aWxlZ2Uga2V5KScpXG4gICAgLm9wdGlvbignLS1vcmcgPG9yZ0lkPicsICdCaW5kIHRoZSBrZXkgdG8gYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gKHN3aXRjaGVzIGFjdGl2ZSBvcmcpJylcbiAgICAub3B0aW9uKCctLW5vLWJyb3dzZXInLCAnTmV2ZXIgb3BlbiBhIGJyb3dzZXIg4oCUIHByaW50IHRoZSB2ZXJpZmljYXRpb24gVVJMIGluc3RlYWQnKVxuICAgIC5vcHRpb24oJy0tdXJsIDx1cmw+JywgJ1BsYXRmb3JtIGJhc2UgVVJMJywgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnKSlcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ09ubHkgcHJpbnQgdGhlIGV4cG9ydCBzdGF0ZW1lbnQgKHVzZWZ1bCBmb3IgZXZhbCknKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIC8vIFNFQ1VSSVRZOiB0aGUgcG9sbCByZXR1cm5zIGEgc2Vzc2lvbiBBTkQgYSBzdGVwLXVwIHRva2VuLCBhbmQgdGhlIHJlc3BvbnNlXG4gICAgICAvLyBiZWxvdyBjYXJyaWVzIHRoZSByYXcga2V5LiBOb25lIG9mIHRoYXQgbWF5IGNyb3NzIGFuIHVudmVyaWZpZWQgY29ubmVjdGlvblxuICAgICAgLy8gaW4gcHJvZHVjdGlvbi4gTWlycm9ycyB0aGUgZ3VhcmQgaW4gYGxvZ2luYC5cbiAgICAgIGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgY29uc3QgcXVpZXQgPSBvcHRpb25zLnF1aWV0ID8/IGZhbHNlO1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ0NyZWF0ZSBBY2Nlc3MgS2V5JywgJ0NyZWF0ZSBBY2Nlc3MgS2V5JywgeyBxdWlldCB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVmFsaWRhdGUgbmFtZS5cbiAgICAgICAgY29uc3QgbmFtZSA9IHR5cGVvZiBvcHRpb25zLm5hbWUgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5uYW1lLnRyaW0oKSA6ICcnO1xuICAgICAgICBpZiAoIW5hbWUpIHtcbiAgICAgICAgICBwcmludEVycm9yKCdLZXkgbmFtZSBpcyByZXF1aXJlZCAoLS1uYW1lKScpO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5WQUxJREFUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmFtZS5sZW5ndGggPiAxMDApIHtcbiAgICAgICAgICBwcmludEVycm9yKCdLZXkgbmFtZSBtdXN0IGJlIDEwMCBjaGFyYWN0ZXJzIG9yIGZld2VyJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLlZBTElEQVRJT04pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhdGUgZXhwaXJ5IOKGkiBzZWNvbmRzLlxuICAgICAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihOdW1iZXIob3B0aW9ucy5leHBpcmVzRGF5cykpO1xuICAgICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShkYXlzKSB8fCBkYXlzIDwgMSB8fCBkYXlzID4gTUFYX0VYUElSRVNfREFZUykge1xuICAgICAgICAgIHByaW50RXJyb3IoYC0tZXhwaXJlcy1kYXlzIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kICR7TUFYX0VYUElSRVNfREFZU31gKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuVkFMSURBVElPTik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwaXJlc0luID0gZGF5cyAqIDg2NDAwO1xuXG4gICAgICAgIGNvbnN0IGh0dHBzQWdlbnQgPSBjcmVkZW50aWFsSHR0cHNBZ2VudChvcHRpb25zLnZlcmlmeVNzbCk7XG4gICAgICAgIGNvbnN0IHRpbWVvdXQgPSBUSU1FT1VUUy5IVFRQX1JFUVVFU1Q7XG4gICAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IHsgdXJsOiBvcHRpb25zLnVybCwgaHR0cHNBZ2VudCwgdGltZW91dCB9O1xuXG4gICAgICAgIC8vIDEpIERldmljZSBzaWduLWluLCBhc2tpbmcgZm9yIHRoZSBzdGVwLXVwIHRoZSBjcmVhdGUgY2FsbCBuZWVkcy5cbiAgICAgICAgY29uc3QgY29kZSA9IGF3YWl0IGJlZ2luRGV2aWNlQXBwcm92YWwodHJhbnNwb3J0LCB7XG4gICAgICAgICAgcXVpZXQsXG4gICAgICAgICAgYnJvd3Nlcjogb3B0aW9ucy5icm93c2VyLFxuICAgICAgICAgIHZlcmlmeVNzbDogb3B0aW9ucy52ZXJpZnlTc2wsXG4gICAgICAgICAgc3RlcFVwOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgcG9sbEZvckRldmljZVRva2VuKHRyYW5zcG9ydCwgY29kZSk7XG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbiA9IHNlc3Npb24uYWNjZXNzX3Rva2VuO1xuICAgICAgICBjb25zdCBzdGVwVXBUb2tlbiA9IHNlc3Npb24uc3RlcF91cF90b2tlbjtcbiAgICAgICAgaWYgKCFzdGVwVXBUb2tlbikge1xuICAgICAgICAgIHByaW50RXJyb3IoJ1RoZSBhcHByb3ZhbCBkaWQgbm90IHJldHVybiBhIHN0ZXAtdXAgY29uZmlybWF0aW9uIOKAlCBhcHByb3ZlIHRoZSBjb2RlIHByb21wdGx5IGFuZCB0cnkgYWdhaW4uJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIpIE9wdGlvbmFsbHkgYmluZCB0byBhIHNwZWNpZmljIG9yZyAocGVyc2lzdHMgYXMgdGhlIGFjdGl2ZSBvcmcsIHdoaWNoXG4gICAgICAgIC8vICAgIHRoZSBrZXkgaW5oZXJpdHMpLiBSb3RhdGVzIHRoZSBzZXNzaW9uLCBidXQgdGhlIHN0ZXAtdXAgdG9rZW4gaXNcbiAgICAgICAgLy8gICAgYm91bmQgdG8gdGhlIHVzZXIsIG5vdCB0aGUgc2Vzc2lvbiwgc28gaXQgc3Vydml2ZXMgdGhlIHN3aXRjaC5cbiAgICAgICAgaWYgKG9wdGlvbnMub3JnKSB7XG4gICAgICAgICAgaWYgKCFxdWlldCkgcHJpbnRJbmZvKCdTd2l0Y2hpbmcgdG8gb3JnYW5pemF0aW9uJywgeyBvcmdJZDogb3B0aW9ucy5vcmcgfSk7XG4gICAgICAgICAgYWNjZXNzVG9rZW4gPSAoYXdhaXQgc3dpdGNoT3JnYW5pemF0aW9uKHtcbiAgICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgICBvcmdJZDogb3B0aW9ucy5vcmcsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgIGh0dHBzQWdlbnQsXG4gICAgICAgICAgICB0aW1lb3V0LFxuICAgICAgICAgICAgcXVpZXQsXG4gICAgICAgICAgfSkpLmFjY2Vzc1Rva2VuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMykgQ3JlYXRlIHRoZSBhY2Nlc3Mga2V5LiBUaGUgc3RlcC11cCB0b2tlbiBpcyBzaG9ydC1saXZlZCAofjYwcykgYW5kXG4gICAgICAgIC8vICAgIHNpbmdsZS11c2UsIHNvIGl0IGlzIHNwZW50IGltbWVkaWF0ZWx5LlxuICAgICAgICBjb25zdCBrZXlVcmwgPSBgJHtvcHRpb25zLnVybH0vYXBpL3VzZXIva2V5c2A7XG4gICAgICAgIHByaW50RGVidWcoJ1BPU1QnLCB7IHVybDoga2V5VXJsIH0pO1xuICAgICAgICBjb25zdCBrZXlSZXMgPSBhd2FpdCBheGlvcy5wb3N0PENyZWF0ZUFjY2Vzc0tleVJlc3BvbnNlPihcbiAgICAgICAgICBrZXlVcmwsXG4gICAgICAgICAgeyBuYW1lLCBleHBpcmVzSW4sIC4uLihvcHRpb25zLnNjb3BlID8geyBzY29wZTogb3B0aW9ucy5zY29wZSB9IDoge30pIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAgICAgICAnWC1TdGVwLVVwLVRva2VuJzogc3RlcFVwVG9rZW4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaHR0cHNBZ2VudCxcbiAgICAgICAgICAgIHRpbWVvdXQsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBrZXkgPSBrZXlSZXMuZGF0YT8uZGF0YT8ua2V5O1xuICAgICAgICBjb25zdCBtZXRhID0ga2V5UmVzLmRhdGE/LmRhdGE/LmFjY2Vzc0tleTtcbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICBwcmludEVycm9yKCdDcmVhdGUga2V5IGZhaWxlZDogbm8ga2V5IGluIHJlc3BvbnNlJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFQSV9SRVFVRVNUKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFF1aWV0IG1vZGU6IGVtaXQgb25seSB0aGUgZXhwb3J0IGxpbmUgKHRoZSBrZXkgaXMgYSB2YWxpZCBCZWFyZXIgY3JlZGVudGlhbCkuXG4gICAgICAgIGlmIChxdWlldCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBleHBvcnQgUExBVEZPUk1fVE9LRU49JHtrZXl9YCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ0FjY2VzcyBrZXkgY3JlYXRlZCcpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICdOYW1lJzogbWV0YT8ubmFtZSA/PyBuYW1lLFxuICAgICAgICAgICdLZXkgSUQnOiBtZXRhPy5pZCA/PyAnKHVua25vd24pJyxcbiAgICAgICAgICAnS2V5JzogbWV0YT8uZGlzcGxheSA/PyAnKHVua25vd24pJyxcbiAgICAgICAgICAnRXhwaXJlcyc6IG1ldGE/LmV4cGlyZXNBdCA/PyBgJHtkYXlzfSBkYXkocylgLFxuICAgICAgICAgIC4uLihtZXRhPy5zY29wZSA/IHsgU2NvcGU6IG1ldGEuc2NvcGUgfSA6IHt9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgY29uc29sZS5sb2coeWVsbG93KGJvbGQoJ0NvcHkgeW91ciBrZXkgbm93IOKAlCBvbmx5IGl0cyBoYXNoIGlzIHN0b3JlZCwgc28gaXQgd2lsbCBub3QgYmUgc2hvd24gYWdhaW46JykpKTtcbiAgICAgICAgY29uc29sZS5sb2coZ3JlZW4oa2V5KSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdUaXA6IHVzZSBpdCBhcyBQTEFURk9STV9UT0tFTiBmb3Igc3Vic2VxdWVudCBjb21tYW5kczonKTtcbiAgICAgICAgY29uc29sZS5sb2coZ3JlZW4oJyAgZXhwb3J0IFBMQVRGT1JNX1RPS0VOPTx0b2tlbj4nKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGdyZWVuKGAgICMgb3I6ICBldmFsICQocGlwZWxpbmUtbWFuYWdlciBhdXRoIHBhdCAtLW5hbWUgJHtuYW1lfSAtLXF1aWV0KWApKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIERldmljZUF1dGhFcnJvcikge1xuICAgICAgICAgIHByaW50RXJyb3IoYENyZWF0ZSBrZXkgZmFpbGVkOiAke2Vycm9yLm1lc3NhZ2V9YCwgeyByZWFzb246IGVycm9yLmNvZGUgfSk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSkge1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGVycm9yLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IChlcnJvci5yZXNwb25zZT8uZGF0YSBhcyB7IG1lc3NhZ2U/OiBzdHJpbmcgfSk/Lm1lc3NhZ2U7XG4gICAgICAgICAgcHJpbnRFcnJvcignQ3JlYXRlIGtleSBmYWlsZWQnLCB7XG4gICAgICAgICAgICBzdGF0dXM6IHN0YXR1cyA/PyAnbm8gcmVzcG9uc2UnLFxuICAgICAgICAgICAgLi4uKG1lc3NhZ2UgPyB7IG1lc3NhZ2UgfSA6IHt9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ2NyZWF0ZS1wYXQnLCBleGVjdXRpb25JZCwgdXJsOiBvcHRpb25zLnVybCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8H5C"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgH5C"}
@@ -7,10 +7,10 @@ import { TIMEOUTS } from '../config/cli.constants.js';
7
7
  import { assertCredentialTlsAllowed, credentialHttpsAgent, switchOrganization } from '../utils/auth-utils.js';
8
8
  import { printCommandHeader, withSslOptions } from '../utils/command-utils.js';
9
9
  import { credentialStorePath, saveSession } from '../utils/credential-store.js';
10
- import { DeviceAuthError, openInBrowser, pollForDeviceToken, requestDeviceCode } from '../utils/device-auth.js';
10
+ import { beginDeviceApproval, DeviceAuthError, pollForDeviceToken } from '../utils/device-auth.js';
11
11
  import { ERROR_CODES, handleError } from '../utils/error-handler.js';
12
12
  import { printError, printInfo, printSuccess } from '../utils/output-utils.js';
13
- const { bold, cyan, dim, green } = pico;
13
+ const { green } = pico;
14
14
  /**
15
15
  * Registers the `login` command with the CLI program.
16
16
  *
@@ -68,25 +68,11 @@ export function login(program) {
68
68
  httpsAgent: credentialHttpsAgent(options.verifySsl),
69
69
  timeout: TIMEOUTS.HTTP_REQUEST,
70
70
  };
71
- if (!quiet)
72
- printInfo('Starting browser sign-in', { url: options.url, verifySsl: options.verifySsl });
73
- const code = await requestDeviceCode(transport);
74
- const approvalUrl = code.verification_uri_complete || code.verification_uri;
75
- // `--no-browser` sets options.browser to false (commander's --no- pair).
76
- const opened = options.browser !== false && openInBrowser(approvalUrl);
77
- // The prompt goes to STDERR under `--quiet`: stdout is captured by
78
- // `eval $(…)`, so printing the code there would swallow the one thing
79
- // the user has to read before anything can proceed.
80
- const say = quiet ? console.error : console.log;
81
- say('');
82
- say(` Your code: ${bold(cyan(code.user_code))}`);
83
- say(` Approve at: ${green(approvalUrl)}`);
84
- say('');
85
- say(dim(opened
86
- ? ' Opening your browser… approve the code there, then come back.'
87
- : ' Open that URL in a browser, check the code matches, and approve.'));
88
- if (!quiet)
89
- printInfo('Waiting for approval…');
71
+ const code = await beginDeviceApproval(transport, {
72
+ quiet,
73
+ browser: options.browser,
74
+ verifySsl: options.verifySsl,
75
+ });
90
76
  const session = await pollForDeviceToken(transport, code);
91
77
  let accessToken = session.access_token;
92
78
  let refreshToken = session.refresh_token;
@@ -154,4 +140,4 @@ export function login(program) {
154
140
  }
155
141
  });
156
142
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9FLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFnQjtJQUNwQyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQywyRUFBMkUsQ0FBQztTQUN4RixNQUFNLENBQUMsZUFBZSxFQUFFLG9EQUFvRCxD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T0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztnQkFDdEMsTUFBTSxPQUFPLEdBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUE2QixFQUFFLE9BQU8sQ0FBQztnQkFDeEUsVUFBVSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakcsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUVELFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsRUFBRTtnQkFDN0MsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRTthQUM3RCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZCwgY3JlZGVudGlhbEh0dHBzQWdlbnQsIHN3aXRjaE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL3V0aWxzL2F1dGgtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgY3JlZGVudGlhbFN0b3JlUGF0aCwgc2F2ZVNlc3Npb24gfSBmcm9tICcuLi91dGlscy9jcmVkZW50aWFsLXN0b3JlLmpzJztcbmltcG9ydCB7IERldmljZUF1dGhFcnJvciwgb3BlbkluQnJvd3NlciwgcG9sbEZvckRldmljZVRva2VuLCByZXF1ZXN0RGV2aWNlQ29kZSB9IGZyb20gJy4uL3V0aWxzL2RldmljZS1hdXRoLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFN1Y2Nlc3MgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIGRpbSwgZ3JlZW4gfSA9IHBpY287XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9naW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogU2lnbnMgaW4gd2l0aCB0aGUgT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IChSRkMgODYyOCk6IHRoZSBDTElcbiAqIHNob3dzIGEgc2hvcnQgY29kZSwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpdCBpbiBhIGJyb3dzZXIsIGFuZCB0aGUgQ0xJIHJlY2VpdmVzXG4gKiBhbiBvcmRpbmFyeSBzZXNzaW9uLiBUaGVyZSBpcyBubyBwYXNzd29yZCBmbGFnIGFuZCBubyB3YXkgdG8gaGFuZCB0aGUgQ0xJIGFcbiAqIHJlZnJlc2ggdG9rZW4g4oCUIGJvdGggZW5kIHVwIGluIHNoZWxsIGhpc3RvcnksIGBwc2Agb3V0cHV0IGFuZCBDSSBsb2dzLCBhbmRcbiAqIGJvdGggc2tpcCB0aGUgU1NPIC8gc3RlcC11cCAvIE1GQSB0aGUgYnJvd3NlciBhbHJlYWR5IGVuZm9yY2VzLlxuICpcbiAqIFRoZSBzZXNzaW9uIGlzIHdyaXR0ZW4gdG8gdGhlIGNyZWRlbnRpYWwgc3RvcmUgKGB+Ly5waXBlbGluZS1tYW5hZ2VyL1xuICogY3JlZGVudGlhbHMuanNvbmAsIG93bmVyLW9ubHkpLCBzbyBzdWJzZXF1ZW50IGNvbW1hbmRzIGF1dGhlbnRpY2F0ZSB3aXRoIG5vXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhdCBhbGwuIGBQTEFURk9STV9UT0tFTmAgc3RpbGwgd2lucyB3aGVuIGl0IGlzIHNldCwgd2hpY2hcbiAqIGlzIHdoYXQgQ0kgdXNlcyDigJQgYW4gYWNjZXNzIGtleSBmcm9tIGBhdXRoIHBhdGAuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpblxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tdXJsIGh0dHBzOi8vcGxhdGZvcm0uZXhhbXBsZS5jb20gLS1vcmcgPG9yZ0lkPlxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tbm8tYnJvd3NlciAgICAgICMgcHJpbnQgdGhlIFVSTCBpbnN0ZWFkIG9mIG9wZW5pbmcgaXRcbiAqIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS1xdWlldCkgICAjIGFsc28gZXhwb3J0IFBMQVRGT1JNX1RPS0VOXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsb2dpbicpXG4gICAgLmRlc2NyaXB0aW9uKCdTaWduIGluIHRocm91Z2ggeW91ciBicm93c2VyIGFuZCBzdG9yZSB0aGUgc2Vzc2lvbiAoZGV2aWNlIGF1dGhvcml6YXRpb24pJylcbiAgICAub3B0aW9uKCctLW9yZyA8b3JnSWQ+JywgJ1N3aXRjaCB0byBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiBhZnRlciBzaWduaW5nIGluJylcbiAgICAub3B0aW9uKCctLW5vLWJyb3dzZXInLCAnTmV2ZXIgb3BlbiBhIGJyb3dzZXIg4oCUIHByaW50IHRoZSB2ZXJpZmljYXRpb24gVVJMIGluc3RlYWQnKVxuICAgIC5vcHRpb24oJy0tdXJsIDx1cmw+JywgJ1BsYXRmb3JtIGJhc2UgVVJMJywgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnKSlcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ09ubHkgcHJpbnQgdGhlIGV4cG9ydCBzdGF0ZW1lbnQgKHVzZWZ1bCBmb3IgZXZhbCknKVxuICAgIC5vcHRpb24oJy0tdG9rZW4nLCAnUHJpbnQgT05MWSB0aGUgYWNjZXNzIHRva2VuLCBmb3IgYGV4cG9ydCBQTEFURk9STV9UT0tFTj0kKOKApilgJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zLCBjb21tYW5kOiBDb21tYW5kKSA9PiB7XG4gICAgICAvLyBgLS1xdWlldGAgaXMgQUxTTyBhIHByb2dyYW0tbGV2ZWwgb3B0aW9uLCBhbmQgQ29tbWFuZGVyIGJpbmRzIGEgdHJhaWxpbmdcbiAgICAgIC8vIGAtLXF1aWV0YCB0byB0aGUgcHJvZ3JhbSByYXRoZXIgdGhhbiB0byB0aGlzIHN1YmNvbW1hbmQg4oCUIHNvXG4gICAgICAvLyBgb3B0aW9ucy5xdWlldGAgaGVyZSBpcyBuZXZlciBzZXQgYW5kIHRoZSBkb2N1bWVudGVkXG4gICAgICAvLyBgZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtLXF1aWV0KWAgY291bGQgbm90IHdvcmsuIFJlYWQgdGhlXG4gICAgICAvLyB2YWx1ZSB0aGF0IGFjdHVhbGx5IGxhbmRzOiB0aGlzIGNvbW1hbmQncyBvd24gZmxhZyBpZiBDb21tYW5kZXIgZXZlclxuICAgICAgLy8gZ2l2ZXMgaXQgdG8gdXMsIGVsc2UgdGhlIHJvb3QgcHJvZ3JhbSdzLlxuICAgICAgY29uc3Qgcm9vdFF1aWV0ID0gKGNvbW1hbmQ/LnBhcmVudD8ucGFyZW50IGFzIENvbW1hbmQgfCB1bmRlZmluZWQpPy5vcHRzPy4oKS5xdWlldDtcbiAgICAgIC8vIGAtLXRva2VuYCBwcmludHMgdGhlIGJhcmUgdG9rZW4gZm9yIGAkKOKApilgIGNhcHR1cmUsIHNvIGl0IHNpbGVuY2VzIHRoZVxuICAgICAgLy8gc2FtZSBjaHJvbWUgYC0tcXVpZXRgIGRvZXMuIFJlYWQgZnJvbSBhcmd2IGFzIHdlbGw6IHRoZSBiYW5uZXIgaXNcbiAgICAgIC8vIGRlY2lkZWQgZnJvbSBhcmd2IGJlZm9yZSBDb21tYW5kZXIgcGFyc2VzIChzZWUgY2xpLnRzJ3MgZW50cnkpLCBzbyB0aGVcbiAgICAgIC8vIHR3byBoYXZlIHRvIGFncmVlIG9yIHRoZSBiYW5uZXIgbGFuZHMgb24gc3Rkb3V0IGFuZCBwb2lzb25zIHRoZSBjYXB0dXJlLlxuICAgICAgY29uc3QgdG9rZW5Pbmx5ID0gKG9wdGlvbnMudG9rZW4gPz8gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLXRva2VuJykpIGFzIGJvb2xlYW47XG4gICAgICBjb25zdCBxdWlldCA9IChvcHRpb25zLnF1aWV0ID8/IHJvb3RRdWlldCA/PyBmYWxzZSkgYXMgYm9vbGVhbiB8fCB0b2tlbk9ubHk7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignTG9naW4nLCAnUGxhdGZvcm0gQXV0aGVudGljYXRpb24nLCB7IHF1aWV0IH0pO1xuXG4gICAgICAvLyBTRUNVUklUWTogdGhlIHBvbGwgcmV0dXJucyBzZXNzaW9uIHRva2VucyDigJQgYmVhcmVyIGNyZWRlbnRpYWxzLiBOZXZlclxuICAgICAgLy8gZmV0Y2ggdGhlbSBvdmVyIGFuIHVudmVyaWZpZWQgVExTIGNvbm5lY3Rpb24gaW4gcHJvZHVjdGlvbi5cbiAgICAgIGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0ge1xuICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgaHR0cHNBZ2VudDogY3JlZGVudGlhbEh0dHBzQWdlbnQob3B0aW9ucy52ZXJpZnlTc2wpLFxuICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXF1aWV0KSBwcmludEluZm8oJ1N0YXJ0aW5nIGJyb3dzZXIgc2lnbi1pbicsIHsgdXJsOiBvcHRpb25zLnVybCwgdmVyaWZ5U3NsOiBvcHRpb25zLnZlcmlmeVNzbCB9KTtcblxuICAgICAgICBjb25zdCBjb2RlID0gYXdhaXQgcmVxdWVzdERldmljZUNvZGUodHJhbnNwb3J0KTtcbiAgICAgICAgY29uc3QgYXBwcm92YWxVcmwgPSBjb2RlLnZlcmlmaWNhdGlvbl91cmlfY29tcGxldGUgfHwgY29kZS52ZXJpZmljYXRpb25fdXJpO1xuICAgICAgICAvLyBgLS1uby1icm93c2VyYCBzZXRzIG9wdGlvbnMuYnJvd3NlciB0byBmYWxzZSAoY29tbWFuZGVyJ3MgLS1uby0gcGFpcikuXG4gICAgICAgIGNvbnN0IG9wZW5lZCA9IG9wdGlvbnMuYnJvd3NlciAhPT0gZmFsc2UgJiYgb3BlbkluQnJvd3NlcihhcHByb3ZhbFVybCk7XG5cbiAgICAgICAgLy8gVGhlIHByb21wdCBnb2VzIHRvIFNUREVSUiB1bmRlciBgLS1xdWlldGA6IHN0ZG91dCBpcyBjYXB0dXJlZCBieVxuICAgICAgICAvLyBgZXZhbCAkKOKApilgLCBzbyBwcmludGluZyB0aGUgY29kZSB0aGVyZSB3b3VsZCBzd2FsbG93IHRoZSBvbmUgdGhpbmdcbiAgICAgICAgLy8gdGhlIHVzZXIgaGFzIHRvIHJlYWQgYmVmb3JlIGFueXRoaW5nIGNhbiBwcm9jZWVkLlxuICAgICAgICBjb25zdCBzYXkgPSBxdWlldCA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLmxvZztcbiAgICAgICAgc2F5KCcnKTtcbiAgICAgICAgc2F5KGAgIFlvdXIgY29kZTogICR7Ym9sZChjeWFuKGNvZGUudXNlcl9jb2RlKSl9YCk7XG4gICAgICAgIHNheShgICBBcHByb3ZlIGF0OiAke2dyZWVuKGFwcHJvdmFsVXJsKX1gKTtcbiAgICAgICAgc2F5KCcnKTtcbiAgICAgICAgc2F5KGRpbShvcGVuZWRcbiAgICAgICAgICA/ICcgIE9wZW5pbmcgeW91ciBicm93c2Vy4oCmIGFwcHJvdmUgdGhlIGNvZGUgdGhlcmUsIHRoZW4gY29tZSBiYWNrLidcbiAgICAgICAgICA6ICcgIE9wZW4gdGhhdCBVUkwgaW4gYSBicm93c2VyLCBjaGVjayB0aGUgY29kZSBtYXRjaGVzLCBhbmQgYXBwcm92ZS4nKSk7XG4gICAgICAgIGlmICghcXVpZXQpIHByaW50SW5mbygnV2FpdGluZyBmb3IgYXBwcm92YWzigKYnKTtcblxuICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgcG9sbEZvckRldmljZVRva2VuKHRyYW5zcG9ydCwgY29kZSk7XG5cbiAgICAgICAgbGV0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvbi5hY2Nlc3NfdG9rZW47XG4gICAgICAgIGxldCByZWZyZXNoVG9rZW4gPSBzZXNzaW9uLnJlZnJlc2hfdG9rZW47XG4gICAgICAgIGxldCBleHBpcmVzSW4gPSBzZXNzaW9uLmV4cGlyZXNfaW47XG5cbiAgICAgICAgLy8gU3dpdGNoaW5nIHJlLWlzc3VlcyAoYW5kIHJvdGF0ZXMpIHRoZSBzZXNzaW9uLCBzbyB0aGUgc3RvcmUgaGFzIHRvIHRha2VcbiAgICAgICAgLy8gdGhlIE5FVyBwYWlyIOKAlCBrZWVwaW5nIHRoZSBvbGQgcmVmcmVzaCB0b2tlbiB3b3VsZCBzdHJhbmQgdGhlIHNlc3Npb24uXG4gICAgICAgIGlmIChvcHRpb25zLm9yZykge1xuICAgICAgICAgIGlmICghcXVpZXQpIHByaW50SW5mbygnU3dpdGNoaW5nIHRvIG9yZ2FuaXphdGlvbicsIHsgb3JnSWQ6IG9wdGlvbnMub3JnIH0pO1xuICAgICAgICAgIGNvbnN0IHN3aXRjaGVkID0gYXdhaXQgc3dpdGNoT3JnYW5pemF0aW9uKHtcbiAgICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgICBvcmdJZDogb3B0aW9ucy5vcmcsXG4gICAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IHRyYW5zcG9ydC5odHRwc0FnZW50LFxuICAgICAgICAgICAgdGltZW91dDogVElNRU9VVFMuSFRUUF9SRVFVRVNULFxuICAgICAgICAgICAgcXVpZXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYWNjZXNzVG9rZW4gPSBzd2l0Y2hlZC5hY2Nlc3NUb2tlbjtcbiAgICAgICAgICByZWZyZXNoVG9rZW4gPSBzd2l0Y2hlZC5yZWZyZXNoVG9rZW4gPz8gcmVmcmVzaFRva2VuO1xuICAgICAgICAgIGV4cGlyZXNJbiA9IHN3aXRjaGVkLmV4cGlyZXNJbiA/PyBleHBpcmVzSW47XG4gICAgICAgIH1cblxuICAgICAgICBzYXZlU2Vzc2lvbihvcHRpb25zLnVybCwge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgIC4uLihyZWZyZXNoVG9rZW4gPyB7IHJlZnJlc2hUb2tlbiB9IDoge30pLFxuICAgICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIGV4cGlyZXNJbiAqIDEwMDAsXG4gICAgICAgICAgLi4uKG9wdGlvbnMub3JnID8geyBvcmdhbml6YXRpb25JZDogb3B0aW9ucy5vcmcgfSA6IHt9KSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRva2VuT25seSkge1xuICAgICAgICAgIC8vIFRoZSB0b2tlbiBhbmQgTk9USElORyBlbHNlIOKAlCB0aGUgY2FsbGVyIHdyaXRlcyB0aGUgZXhwb3J0LlxuICAgICAgICAgIGNvbnNvbGUubG9nKGFjY2Vzc1Rva2VuKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHF1aWV0KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYGV4cG9ydCBQTEFURk9STV9UT0tFTj0ke2FjY2Vzc1Rva2VufWApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdTaWduZWQgaW4nKTtcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludEluZm8oJ1RoZSBzZXNzaW9uIGlzIHN0b3JlZCBmb3IgdGhpcyBwbGF0Zm9ybSDigJQgb3RoZXIgY29tbWFuZHMgcGljayBpdCB1cCBhdXRvbWF0aWNhbGx5LicsIHtcbiAgICAgICAgICBzdG9yZTogY3JlZGVudGlhbFN0b3JlUGF0aCgpLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludEluZm8oJ1RpcDogdG8gZXhwb3J0IGl0IGludG8gdGhpcyBzaGVsbCBpbnN0ZWFkOicpO1xuICAgICAgICBjb25zb2xlLmxvZyhncmVlbihgICBleHBvcnQgUExBVEZPUk1fVE9LRU49JChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4ke29wdGlvbnMub3JnID8gYCAtLW9yZyAke29wdGlvbnMub3JnfWAgOiAnJ30gLS10b2tlbilgKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdTaWduIHRoaXMgZGV2aWNlIG91dCBhZ2FpbiBmcm9tIFNldHRpbmdzIOKGkiBTZXNzaW9ucyBhbmQgZGV2aWNlcy4nKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIERldmljZUF1dGhFcnJvcikge1xuICAgICAgICAgIHByaW50RXJyb3IoYExvZ2luIGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWAsIHsgcmVhc29uOiBlcnJvci5jb2RlIH0pO1xuICAgICAgICAgIHByb2Nlc3MuZXhpdChFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSBlcnJvci5yZXNwb25zZT8uc3RhdHVzO1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZXJyb3IucmVzcG9uc2U/LmRhdGEgYXMgeyBtZXNzYWdlPzogc3RyaW5nIH0pPy5tZXNzYWdlO1xuICAgICAgICAgIHByaW50RXJyb3IoJ0xvZ2luIGZhaWxlZCcsIHsgc3RhdHVzOiBzdGF0dXMgPz8gJ25vIHJlc3BvbnNlJywgLi4uKG1lc3NhZ2UgPyB7IG1lc3NhZ2UgfSA6IHt9KSB9KTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OLCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAnbG9naW4nLCBleGVjdXRpb25JZCwgdXJsOiBvcHRpb25zLnVybCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0UsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztBQUV2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQWdCO0lBQ3BDLGNBQWMsQ0FBQyxPQUFPO1NBQ25CLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUFDLDJFQUEyRSxDQUFDO1NBQ3hGLE1BQU0sQ0FBQyxlQUFlLEVBQUUsb0RBQW9ELENBQUM7U0FDN0UsTUFBTSxDQUFDLGNBQWMsRUFBRSwyREFBMkQsQ0FB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Z2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZCwgY3JlZGVudGlhbEh0dHBzQWdlbnQsIHN3aXRjaE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uL3V0aWxzL2F1dGgtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgY3JlZGVudGlhbFN0b3JlUGF0aCwgc2F2ZVNlc3Npb24gfSBmcm9tICcuLi91dGlscy9jcmVkZW50aWFsLXN0b3JlLmpzJztcbmltcG9ydCB7IGJlZ2luRGV2aWNlQXBwcm92YWwsIERldmljZUF1dGhFcnJvciwgcG9sbEZvckRldmljZVRva2VuIH0gZnJvbSAnLi4vdXRpbHMvZGV2aWNlLWF1dGguanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50U3VjY2VzcyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbmNvbnN0IHsgZ3JlZW4gfSA9IHBpY287XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9naW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogU2lnbnMgaW4gd2l0aCB0aGUgT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IChSRkMgODYyOCk6IHRoZSBDTElcbiAqIHNob3dzIGEgc2hvcnQgY29kZSwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpdCBpbiBhIGJyb3dzZXIsIGFuZCB0aGUgQ0xJIHJlY2VpdmVzXG4gKiBhbiBvcmRpbmFyeSBzZXNzaW9uLiBUaGVyZSBpcyBubyBwYXNzd29yZCBmbGFnIGFuZCBubyB3YXkgdG8gaGFuZCB0aGUgQ0xJIGFcbiAqIHJlZnJlc2ggdG9rZW4g4oCUIGJvdGggZW5kIHVwIGluIHNoZWxsIGhpc3RvcnksIGBwc2Agb3V0cHV0IGFuZCBDSSBsb2dzLCBhbmRcbiAqIGJvdGggc2tpcCB0aGUgU1NPIC8gc3RlcC11cCAvIE1GQSB0aGUgYnJvd3NlciBhbHJlYWR5IGVuZm9yY2VzLlxuICpcbiAqIFRoZSBzZXNzaW9uIGlzIHdyaXR0ZW4gdG8gdGhlIGNyZWRlbnRpYWwgc3RvcmUgKGB+Ly5waXBlbGluZS1tYW5hZ2VyL1xuICogY3JlZGVudGlhbHMuanNvbmAsIG93bmVyLW9ubHkpLCBzbyBzdWJzZXF1ZW50IGNvbW1hbmRzIGF1dGhlbnRpY2F0ZSB3aXRoIG5vXG4gKiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhdCBhbGwuIGBQTEFURk9STV9UT0tFTmAgc3RpbGwgd2lucyB3aGVuIGl0IGlzIHNldCwgd2hpY2hcbiAqIGlzIHdoYXQgQ0kgdXNlcyDigJQgYW4gYWNjZXNzIGtleSBmcm9tIGBhdXRoIHBhdGAuXG4gKlxuICogQHBhcmFtIHByb2dyYW0gLSBUaGUgcm9vdCBDb21tYW5kZXIgcHJvZ3JhbSBpbnN0YW5jZSB0byBhdHRhY2ggdGhlIGNvbW1hbmQgdG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpblxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tdXJsIGh0dHBzOi8vcGxhdGZvcm0uZXhhbXBsZS5jb20gLS1vcmcgPG9yZ0lkPlxuICogcGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luIC0tbm8tYnJvd3NlciAgICAgICMgcHJpbnQgdGhlIFVSTCBpbnN0ZWFkIG9mIG9wZW5pbmcgaXRcbiAqIGV2YWwgJChwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW4gLS1xdWlldCkgICAjIGFsc28gZXhwb3J0IFBMQVRGT1JNX1RPS0VOXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZ2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsb2dpbicpXG4gICAgLmRlc2NyaXB0aW9uKCdTaWduIGluIHRocm91Z2ggeW91ciBicm93c2VyIGFuZCBzdG9yZSB0aGUgc2Vzc2lvbiAoZGV2aWNlIGF1dGhvcml6YXRpb24pJylcbiAgICAub3B0aW9uKCctLW9yZyA8b3JnSWQ+JywgJ1N3aXRjaCB0byBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiBhZnRlciBzaWduaW5nIGluJylcbiAgICAub3B0aW9uKCctLW5vLWJyb3dzZXInLCAnTmV2ZXIgb3BlbiBhIGJyb3dzZXIg4oCUIHByaW50IHRoZSB2ZXJpZmljYXRpb24gVVJMIGluc3RlYWQnKVxuICAgIC5vcHRpb24oJy0tdXJsIDx1cmw+JywgJ1BsYXRmb3JtIGJhc2UgVVJMJywgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnKSlcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ09ubHkgcHJpbnQgdGhlIGV4cG9ydCBzdGF0ZW1lbnQgKHVzZWZ1bCBmb3IgZXZhbCknKVxuICAgIC5vcHRpb24oJy0tdG9rZW4nLCAnUHJpbnQgT05MWSB0aGUgYWNjZXNzIHRva2VuLCBmb3IgYGV4cG9ydCBQTEFURk9STV9UT0tFTj0kKOKApilgJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zLCBjb21tYW5kOiBDb21tYW5kKSA9PiB7XG4gICAgICAvLyBgLS1xdWlldGAgaXMgQUxTTyBhIHByb2dyYW0tbGV2ZWwgb3B0aW9uLCBhbmQgQ29tbWFuZGVyIGJpbmRzIGEgdHJhaWxpbmdcbiAgICAgIC8vIGAtLXF1aWV0YCB0byB0aGUgcHJvZ3JhbSByYXRoZXIgdGhhbiB0byB0aGlzIHN1YmNvbW1hbmQg4oCUIHNvXG4gICAgICAvLyBgb3B0aW9ucy5xdWlldGAgaGVyZSBpcyBuZXZlciBzZXQgYW5kIHRoZSBkb2N1bWVudGVkXG4gICAgICAvLyBgZXZhbCAkKHBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpbiAtLXF1aWV0KWAgY291bGQgbm90IHdvcmsuIFJlYWQgdGhlXG4gICAgICAvLyB2YWx1ZSB0aGF0IGFjdHVhbGx5IGxhbmRzOiB0aGlzIGNvbW1hbmQncyBvd24gZmxhZyBpZiBDb21tYW5kZXIgZXZlclxuICAgICAgLy8gZ2l2ZXMgaXQgdG8gdXMsIGVsc2UgdGhlIHJvb3QgcHJvZ3JhbSdzLlxuICAgICAgY29uc3Qgcm9vdFF1aWV0ID0gKGNvbW1hbmQ/LnBhcmVudD8ucGFyZW50IGFzIENvbW1hbmQgfCB1bmRlZmluZWQpPy5vcHRzPy4oKS5xdWlldDtcbiAgICAgIC8vIGAtLXRva2VuYCBwcmludHMgdGhlIGJhcmUgdG9rZW4gZm9yIGAkKOKApilgIGNhcHR1cmUsIHNvIGl0IHNpbGVuY2VzIHRoZVxuICAgICAgLy8gc2FtZSBjaHJvbWUgYC0tcXVpZXRgIGRvZXMuIFJlYWQgZnJvbSBhcmd2IGFzIHdlbGw6IHRoZSBiYW5uZXIgaXNcbiAgICAgIC8vIGRlY2lkZWQgZnJvbSBhcmd2IGJlZm9yZSBDb21tYW5kZXIgcGFyc2VzIChzZWUgY2xpLnRzJ3MgZW50cnkpLCBzbyB0aGVcbiAgICAgIC8vIHR3byBoYXZlIHRvIGFncmVlIG9yIHRoZSBiYW5uZXIgbGFuZHMgb24gc3Rkb3V0IGFuZCBwb2lzb25zIHRoZSBjYXB0dXJlLlxuICAgICAgY29uc3QgdG9rZW5Pbmx5ID0gKG9wdGlvbnMudG9rZW4gPz8gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLXRva2VuJykpIGFzIGJvb2xlYW47XG4gICAgICBjb25zdCBxdWlldCA9IChvcHRpb25zLnF1aWV0ID8/IHJvb3RRdWlldCA/PyBmYWxzZSkgYXMgYm9vbGVhbiB8fCB0b2tlbk9ubHk7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignTG9naW4nLCAnUGxhdGZvcm0gQXV0aGVudGljYXRpb24nLCB7IHF1aWV0IH0pO1xuXG4gICAgICAvLyBTRUNVUklUWTogdGhlIHBvbGwgcmV0dXJucyBzZXNzaW9uIHRva2VucyDigJQgYmVhcmVyIGNyZWRlbnRpYWxzLiBOZXZlclxuICAgICAgLy8gZmV0Y2ggdGhlbSBvdmVyIGFuIHVudmVyaWZpZWQgVExTIGNvbm5lY3Rpb24gaW4gcHJvZHVjdGlvbi5cbiAgICAgIGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0ge1xuICAgICAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgICAgICAgaHR0cHNBZ2VudDogY3JlZGVudGlhbEh0dHBzQWdlbnQob3B0aW9ucy52ZXJpZnlTc2wpLFxuICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb2RlID0gYXdhaXQgYmVnaW5EZXZpY2VBcHByb3ZhbCh0cmFuc3BvcnQsIHtcbiAgICAgICAgICBxdWlldCxcbiAgICAgICAgICBicm93c2VyOiBvcHRpb25zLmJyb3dzZXIsXG4gICAgICAgICAgdmVyaWZ5U3NsOiBvcHRpb25zLnZlcmlmeVNzbCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHBvbGxGb3JEZXZpY2VUb2tlbih0cmFuc3BvcnQsIGNvZGUpO1xuXG4gICAgICAgIGxldCBhY2Nlc3NUb2tlbiA9IHNlc3Npb24uYWNjZXNzX3Rva2VuO1xuICAgICAgICBsZXQgcmVmcmVzaFRva2VuID0gc2Vzc2lvbi5yZWZyZXNoX3Rva2VuO1xuICAgICAgICBsZXQgZXhwaXJlc0luID0gc2Vzc2lvbi5leHBpcmVzX2luO1xuXG4gICAgICAgIC8vIFN3aXRjaGluZyByZS1pc3N1ZXMgKGFuZCByb3RhdGVzKSB0aGUgc2Vzc2lvbiwgc28gdGhlIHN0b3JlIGhhcyB0byB0YWtlXG4gICAgICAgIC8vIHRoZSBORVcgcGFpciDigJQga2VlcGluZyB0aGUgb2xkIHJlZnJlc2ggdG9rZW4gd291bGQgc3RyYW5kIHRoZSBzZXNzaW9uLlxuICAgICAgICBpZiAob3B0aW9ucy5vcmcpIHtcbiAgICAgICAgICBpZiAoIXF1aWV0KSBwcmludEluZm8oJ1N3aXRjaGluZyB0byBvcmdhbml6YXRpb24nLCB7IG9yZ0lkOiBvcHRpb25zLm9yZyB9KTtcbiAgICAgICAgICBjb25zdCBzd2l0Y2hlZCA9IGF3YWl0IHN3aXRjaE9yZ2FuaXphdGlvbih7XG4gICAgICAgICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgICAgICAgICAgb3JnSWQ6IG9wdGlvbnMub3JnLFxuICAgICAgICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICAgICAgICBodHRwc0FnZW50OiB0cmFuc3BvcnQuaHR0cHNBZ2VudCxcbiAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhUVFBfUkVRVUVTVCxcbiAgICAgICAgICAgIHF1aWV0LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGFjY2Vzc1Rva2VuID0gc3dpdGNoZWQuYWNjZXNzVG9rZW47XG4gICAgICAgICAgcmVmcmVzaFRva2VuID0gc3dpdGNoZWQucmVmcmVzaFRva2VuID8/IHJlZnJlc2hUb2tlbjtcbiAgICAgICAgICBleHBpcmVzSW4gPSBzd2l0Y2hlZC5leHBpcmVzSW4gPz8gZXhwaXJlc0luO1xuICAgICAgICB9XG5cbiAgICAgICAgc2F2ZVNlc3Npb24ob3B0aW9ucy51cmwsIHtcbiAgICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAuLi4ocmVmcmVzaFRva2VuID8geyByZWZyZXNoVG9rZW4gfSA6IHt9KSxcbiAgICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyBleHBpcmVzSW4gKiAxMDAwLFxuICAgICAgICAgIC4uLihvcHRpb25zLm9yZyA/IHsgb3JnYW5pemF0aW9uSWQ6IG9wdGlvbnMub3JnIH0gOiB7fSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0b2tlbk9ubHkpIHtcbiAgICAgICAgICAvLyBUaGUgdG9rZW4gYW5kIE5PVEhJTkcgZWxzZSDigJQgdGhlIGNhbGxlciB3cml0ZXMgdGhlIGV4cG9ydC5cbiAgICAgICAgICBjb25zb2xlLmxvZyhhY2Nlc3NUb2tlbik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChxdWlldCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBleHBvcnQgUExBVEZPUk1fVE9LRU49JHthY2Nlc3NUb2tlbn1gKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U3VjY2VzcygnU2lnbmVkIGluJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdUaGUgc2Vzc2lvbiBpcyBzdG9yZWQgZm9yIHRoaXMgcGxhdGZvcm0g4oCUIG90aGVyIGNvbW1hbmRzIHBpY2sgaXQgdXAgYXV0b21hdGljYWxseS4nLCB7XG4gICAgICAgICAgc3RvcmU6IGNyZWRlbnRpYWxTdG9yZVBhdGgoKSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdUaXA6IHRvIGV4cG9ydCBpdCBpbnRvIHRoaXMgc2hlbGwgaW5zdGVhZDonKTtcbiAgICAgICAgY29uc29sZS5sb2coZ3JlZW4oYCAgZXhwb3J0IFBMQVRGT1JNX1RPS0VOPSQocGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luJHtvcHRpb25zLm9yZyA/IGAgLS1vcmcgJHtvcHRpb25zLm9yZ31gIDogJyd9IC0tdG9rZW4pYCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50SW5mbygnU2lnbiB0aGlzIGRldmljZSBvdXQgYWdhaW4gZnJvbSBTZXR0aW5ncyDihpIgU2Vzc2lvbnMgYW5kIGRldmljZXMuJyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBEZXZpY2VBdXRoRXJyb3IpIHtcbiAgICAgICAgICBwcmludEVycm9yKGBMb2dpbiBmYWlsZWQ6ICR7ZXJyb3IubWVzc2FnZX1gLCB7IHJlYXNvbjogZXJyb3IuY29kZSB9KTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChheGlvcy5pc0F4aW9zRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyb3IucmVzcG9uc2U/LnN0YXR1cztcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gKGVycm9yLnJlc3BvbnNlPy5kYXRhIGFzIHsgbWVzc2FnZT86IHN0cmluZyB9KT8ubWVzc2FnZTtcbiAgICAgICAgICBwcmludEVycm9yKCdMb2dpbiBmYWlsZWQnLCB7IHN0YXR1czogc3RhdHVzID8/ICdubyByZXNwb25zZScsIC4uLihtZXNzYWdlID8geyBtZXNzYWdlIH0gOiB7fSkgfSk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTiwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ2xvZ2luJywgZXhlY3V0aW9uSWQsIHVybDogb3B0aW9ucy51cmwgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
@@ -28,6 +28,25 @@ export declare class DeviceAuthError extends Error {
28
28
  readonly code: string;
29
29
  constructor(message: string, code: string);
30
30
  }
31
+ /**
32
+ * Open a device authorization and print the approval prompt.
33
+ *
34
+ * `login` and `create-pat` ran byte-identical copies of this — the code line,
35
+ * the approval URL, the browser-opened/not-opened wording and the "Waiting for
36
+ * approval…" notice. That is user-facing AUTH copy: if one command tells people
37
+ * to "check the code matches" and the other stops saying it, the two teach
38
+ * different habits about a prompt whose whole job is to be verified. Worse, the
39
+ * stderr rule below is a correctness detail that was duplicated with it.
40
+ *
41
+ * The callers diverge AFTER this (one wants the step-up token, the other a
42
+ * refresh token), so this returns the code and leaves polling to them.
43
+ */
44
+ export declare function beginDeviceApproval(transport: DeviceAuthTransport, opts: {
45
+ quiet: boolean;
46
+ browser?: boolean;
47
+ stepUp?: boolean;
48
+ verifySsl?: boolean;
49
+ }): Promise<DeviceCodeResponse>;
31
50
  /** Ask the platform to open a device authorization. */
32
51
  export declare function requestDeviceCode(transport: DeviceAuthTransport, options?: {
33
52
  stepUp?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"device-auth.d.ts","sourceRoot":"","sources":["../../src/utils/device-auth.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,qBAAa,eAAgB,SAAQ,KAAK;IACX,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAlD,YAAY,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAGjD;CACF;AAED,uDAAuD;AACvD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,mBAAmB,EAC9B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE,kBAAkB,EACxB,KAAK,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CAAO,GACrC,OAAO,CAAC,mBAAmB,CAAC,CAkD9B;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAsBlD"}
1
+ {"version":3,"file":"device-auth.d.ts","sourceRoot":"","sources":["../../src/utils/device-auth.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,gDAAgD;AAChD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,qBAAa,eAAgB,SAAQ,KAAK;IACX,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAlD,YAAY,OAAO,EAAE,MAAM,EAAW,IAAI,EAAE,MAAM,EAGjD;CACF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GACjF,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED,uDAAuD;AACvD,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,mBAAmB,EAC9B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,mBAAmB,EAC9B,IAAI,EAAE,kBAAkB,EACxB,KAAK,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CAAO,GACrC,OAAO,CAAC,mBAAmB,CAAC,CAkD9B;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAsBlD"}
@@ -12,7 +12,9 @@
12
12
  import { spawn } from 'child_process';
13
13
  import { sleep } from '@pipeline-builder/api-core';
14
14
  import axios from 'axios';
15
- import { printDebug } from './output-utils.js';
15
+ import pico from 'picocolors';
16
+ import { printDebug, printInfo } from './output-utils.js';
17
+ const { bold, cyan, dim, green } = pico;
16
18
  /** Raised for every terminal outcome, so callers can print one clear message. */
17
19
  export class DeviceAuthError extends Error {
18
20
  code;
@@ -22,6 +24,41 @@ export class DeviceAuthError extends Error {
22
24
  this.name = 'DeviceAuthError';
23
25
  }
24
26
  }
27
+ /**
28
+ * Open a device authorization and print the approval prompt.
29
+ *
30
+ * `login` and `create-pat` ran byte-identical copies of this — the code line,
31
+ * the approval URL, the browser-opened/not-opened wording and the "Waiting for
32
+ * approval…" notice. That is user-facing AUTH copy: if one command tells people
33
+ * to "check the code matches" and the other stops saying it, the two teach
34
+ * different habits about a prompt whose whole job is to be verified. Worse, the
35
+ * stderr rule below is a correctness detail that was duplicated with it.
36
+ *
37
+ * The callers diverge AFTER this (one wants the step-up token, the other a
38
+ * refresh token), so this returns the code and leaves polling to them.
39
+ */
40
+ export async function beginDeviceApproval(transport, opts) {
41
+ if (!opts.quiet)
42
+ printInfo('Starting browser sign-in', { url: transport.url, verifySsl: opts.verifySsl });
43
+ const code = await requestDeviceCode(transport, opts.stepUp ? { stepUp: true } : {});
44
+ const approvalUrl = code.verification_uri_complete || code.verification_uri;
45
+ // `--no-browser` sets options.browser to false (commander's --no- pair).
46
+ const opened = opts.browser !== false && openInBrowser(approvalUrl);
47
+ // The prompt goes to STDERR under `--quiet`: stdout is captured by
48
+ // `eval $(…)`, so printing the code there would swallow the one thing
49
+ // the user has to read before anything can proceed.
50
+ const say = opts.quiet ? console.error : console.log;
51
+ say('');
52
+ say(` Your code: ${bold(cyan(code.user_code))}`);
53
+ say(` Approve at: ${green(approvalUrl)}`);
54
+ say('');
55
+ say(dim(opened
56
+ ? ' Opening your browser… approve the code there, then come back.'
57
+ : ' Open that URL in a browser, check the code matches, and approve.'));
58
+ if (!opts.quiet)
59
+ printInfo('Waiting for approval…');
60
+ return code;
61
+ }
25
62
  /** Ask the platform to open a device authorization. */
26
63
  export async function requestDeviceCode(transport, options = {}) {
27
64
  const codeUrl = `${transport.url}/api/auth/device/code`;
@@ -133,4 +170,4 @@ export function openInBrowser(url) {
133
170
  return false;
134
171
  }
135
172
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZGV2aWNlLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFvQy9DLGlGQUFpRjtBQUNqRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxLQUFLO0lBQ0YsSUFBSTtJQUExQyxZQUFZLE9BQWUsRUFBVyxJQUFZO1FBQ2hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFEcUIsSUFBSTtRQUV4QyxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7Q0FDRjtBQUVELHVEQUF1RDtBQUN2RCxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUNyQyxTQUE4QixFQUM5QixPQUFPLEdBQXlCLEVBQUU7SUFFbEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztJQUN4RCxVQUFVLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDckMsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUMvQixPQUFPLEVBQ1AsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQ2hEO1FBQ0UsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGFB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QyxjQUFjLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRXhDLE1BQU0sTUFBTSxHQUFHLFdBQVcsRUFBRSxDQUFDO0lBQzdCLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFMUIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hHLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUEwRCxDQUFDLENBQUMsQ0FBQztRQUNwRixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IGNsaWVudCAoUkZDIDg2MjgpIOKAlCBob3cgdGhlIENMSSBzaWducyBpbi5cbiAqXG4gKiBUaGUgQ0xJIGFza3MgdGhlIHBsYXRmb3JtIGZvciBhIGNvZGUsIHNob3dzIGl0IChhbmQgb3BlbnMgdGhlIGJyb3dzZXIgd2hlbiBpdFxuICogY2FuKSwgdGhlbiBwb2xscyB1bnRpbCB0aGUgcGVyc29uIGFwcHJvdmVzIGluIHRoYXQgYnJvd3Nlci4gTm8gcGFzc3dvcmQgYW5kIG5vXG4gKiBsb25nLWxpdmVkIHRva2VuIGV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSwgc2hlbGwgaGlzdG9yeSwgYHBzYFxuICogb3V0cHV0IG9yIGEgQ0kgbG9nOyB0aGUgYnJvd3NlciBpcyB3aGVyZSBTU08sIHN0ZXAtdXAgYW5kIGxhdGVyIE1GQSBhbHJlYWR5XG4gKiBhcHBseSwgc28gdGhlIHRlcm1pbmFsIGluaGVyaXRzIGFsbCBvZiBpdCB3aXRob3V0IGltcGxlbWVudGluZyBhbnkgb2YgaXQuXG4gKi9cblxuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB0eXBlIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IHByaW50RGVidWcgfSBmcm9tICcuL291dHB1dC11dGlscy5qcyc7XG5cbi8qKiBgUE9TVCAvYXV0aC9kZXZpY2UvY29kZWAg4oCUIFJGQyA4NjI4IMKnMy4yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VDb2RlUmVzcG9uc2Uge1xuICBkZXZpY2VfY29kZTogc3RyaW5nO1xuICB1c2VyX2NvZGU6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3VyaTogc3RyaW5nO1xuICB2ZXJpZmljYXRpb25fdXJpX2NvbXBsZXRlPzogc3RyaW5nO1xuICBleHBpcmVzX2luOiBudW1iZXI7XG4gIGludGVydmFsOiBudW1iZXI7XG59XG5cbi8qKiBgUE9TVCAvYXV0aC9kZXZpY2UvdG9rZW5gIG9uIHN1Y2Nlc3Mg4oCUIFJGQyA4NjI4IMKnMy41LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VUb2tlblJlc3BvbnNlIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW4/OiBzdHJpbmc7XG4gIHRva2VuX3R5cGU6IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xuICAvKiogUHJlc2VudCBvbmx5IHdoZW4gdGhlIGRldmljZSBhc2tlZCBmb3Igb25lIGF0IGAvY29kZWAgKGBhdXRoIHBhdGApLiAqL1xuICBzdGVwX3VwX3Rva2VuPzogc3RyaW5nO1xufVxuXG4vKiogVGhlIFJGQyBlcnJvciBib2R5LCBwbHVzIHRoZSBgaW50ZXJ2YWxgIHRoZSBwbGF0Zm9ybSBzZW5kcyB3aXRoIGBzbG93X2Rvd25gLiAqL1xuaW50ZXJmYWNlIERldmljZUVycm9yUmVzcG9uc2Uge1xuICBlcnJvcj86IHN0cmluZztcbiAgZXJyb3JfZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGludGVydmFsPzogbnVtYmVyO1xufVxuXG4vKiogQ29ubmVjdGlvbiBzZXR0aW5ncyBzaGFyZWQgYnkgYm90aCBjYWxscy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQXV0aFRyYW5zcG9ydCB7XG4gIHVybDogc3RyaW5nO1xuICBodHRwc0FnZW50OiBodHRwcy5BZ2VudDtcbiAgdGltZW91dDogbnVtYmVyO1xufVxuXG4vKiogUmFpc2VkIGZvciBldmVyeSB0ZXJtaW5hbCBvdXRjb21lLCBzbyBjYWxsZXJzIGNhbiBwcmludCBvbmUgY2xlYXIgbWVzc2FnZS4gKi9cbmV4cG9ydCBjbGFzcyBEZXZpY2VBdXRoRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcmVhZG9ubHkgY29kZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ0RldmljZUF1dGhFcnJvcic7XG4gIH1cbn1cblxuLyoqIEFzayB0aGUgcGxhdGZvcm0gdG8gb3BlbiBhIGRldmljZSBhdXRob3JpemF0aW9uLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcXVlc3REZXZpY2VDb2RlKFxuICB0cmFuc3BvcnQ6IERldmljZUF1dGhUcmFuc3BvcnQsXG4gIG9wdGlvbnM6IHsgc3RlcFVwPzogYm9vbGVhbiB9ID0ge30sXG4pOiBQcm9taXNlPERldmljZUNvZGVSZXNwb25zZT4ge1xuICBjb25zdCBjb2RlVXJsID0gYCR7dHJhbnNwb3J0LnVybH0vYXBpL2F1dGgvZGV2aWNlL2NvZGVgO1xuICBwcmludERlYnVnKCdQT1NUJywgeyB1cmw6IGNvZGVVcmwgfSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDxEZXZpY2VDb2RlUmVzcG9uc2U+KFxuICAgIGNvZGVVcmwsXG4gICAgeyAuLi4ob3B0aW9ucy5zdGVwVXAgPyB7IHN0ZXBfdXA6IHRydWUgfSA6IHt9KSB9LFxuICAgIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ1gtUGItQ2xpZW50JzogJ2NsaScgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IHRyYW5zcG9ydC5odHRwc0FnZW50LFxuICAgICAgdGltZW91dDogdHJhbnNwb3J0LnRpbWVvdXQsXG4gICAgfSxcbiAgKTtcbiAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gIGlmICghZGF0YT8uZGV2aWNlX2NvZGUgfHwgIWRhdGEudXNlcl9jb2RlKSB7XG4gICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHBsYXRmb3JtIGRpZCBub3QgcmV0dXJuIGEgZGV2aWNlIGNvZGUuJywgJ2ludmFsaWRfcmVzcG9uc2UnKTtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBQb2xsIGAvYXV0aC9kZXZpY2UvdG9rZW5gIHVudGlsIHRoZSBicm93c2VyIGRlY2lkZXMsIHRoZSBjb2RlIGV4cGlyZXMsIG9yXG4gKiBgc2lnbmFsYCBzYXlzIHRvIHN0b3AuXG4gKlxuICogSW50ZXJ2YWwgaGFuZGxpbmcgaXMgdGhlIFJGQydzOiBzdGFydCBhdCB0aGUgYWR2ZXJ0aXNlZCBgaW50ZXJ2YWxgLCBhbmQgd2lkZW5cbiAqIGl0IGJ5IDUgc2Vjb25kcyAob3IgdG8gd2hhdGV2ZXIgdGhlIHBsYXRmb3JtIG5hbWVzKSBvbiBldmVyeSBgc2xvd19kb3duYC4gVGhlXG4gKiBwbGF0Zm9ybSBhbHNvIGVuZm9yY2VzIHRoZSBpbnRlcnZhbCwgc28gYSBjbGllbnQgdGhhdCBpZ25vcmVzIGl0IGlzIHRocm90dGxlZFxuICogcmF0aGVyIHRoYW4gdHJ1c3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBvbGxGb3JEZXZpY2VUb2tlbihcbiAgdHJhbnNwb3J0OiBEZXZpY2VBdXRoVHJhbnNwb3J0LFxuICBjb2RlOiBEZXZpY2VDb2RlUmVzcG9uc2UsXG4gIGhvb2tzOiB7IG9uUGVuZGluZz86ICgpID0+IHZvaWQgfSA9IHt9LFxuKTogUHJvbWlzZTxEZXZpY2VUb2tlblJlc3BvbnNlPiB7XG4gIGNvbnN0IHRva2VuVXJsID0gYCR7dHJhbnNwb3J0LnVybH0vYXBpL2F1dGgvZGV2aWNlL3Rva2VuYDtcbiAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgY29kZS5leHBpcmVzX2luICogMTAwMDtcbiAgbGV0IGludGVydmFsTXMgPSBNYXRoLm1heCgxLCBjb2RlLmludGVydmFsKSAqIDEwMDA7XG5cbiAgd2hpbGUgKERhdGUubm93KCkgPCBkZWFkbGluZSkge1xuICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMpO1xuXG4gICAgcHJpbnREZWJ1ZygnUE9TVCcsIHsgdXJsOiB0b2tlblVybCB9KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RGV2aWNlVG9rZW5SZXNwb25zZSAmIERldmljZUVycm9yUmVzcG9uc2U+KFxuICAgICAgdG9rZW5VcmwsXG4gICAgICB7IGRldmljZV9jb2RlOiBjb2RlLmRldmljZV9jb2RlIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ1gtUGItQ2xpZW50JzogJ2NsaScgfSxcbiAgICAgICAgaHR0cHNBZ2VudDogdHJhbnNwb3J0Lmh0dHBzQWdlbnQsXG4gICAgICAgIHRpbWVvdXQ6IHRyYW5zcG9ydC50aW1lb3V0LFxuICAgICAgICAvLyBUaGUgUkZDJ3MgcGVuZGluZy9iYWNrb2ZmIHNpZ25hbHMgYXJyaXZlIGFzIEhUVFAgNDAwLCB3aGljaCBheGlvcyB3b3VsZFxuICAgICAgICAvLyBvdGhlcndpc2UgdGhyb3c6IHRoZXkgYXJlIHByb3RvY29sIHN0YXRlcywgbm90IGZhaWx1cmVzLlxuICAgICAgICB2YWxpZGF0ZVN0YXR1czogKHN0YXR1cykgPT4gKHN0YXR1cyA+PSAyMDAgJiYgc3RhdHVzIDwgMzAwKSB8fCBzdGF0dXMgPT09IDQwMCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgaWYgKCFyZXNwb25zZS5kYXRhPy5hY2Nlc3NfdG9rZW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHBsYXRmb3JtIGFwcHJvdmVkIHRoZSBzaWduLWluIGJ1dCByZXR1cm5lZCBubyB0b2tlbi4nLCAnaW52YWxpZF9yZXNwb25zZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfVxuXG4gICAgc3dpdGNoIChyZXNwb25zZS5kYXRhPy5lcnJvcikge1xuICAgICAgY2FzZSAnYXV0aG9yaXphdGlvbl9wZW5kaW5nJzpcbiAgICAgICAgaG9va3Mub25QZW5kaW5nPy4oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzbG93X2Rvd24nOlxuICAgICAgICBpbnRlcnZhbE1zID0gTWF0aC5tYXgoaW50ZXJ2YWxNcyArIDVfMDAwLCAocmVzcG9uc2UuZGF0YS5pbnRlcnZhbCA/PyAwKSAqIDEwMDApO1xuICAgICAgICBwcmludERlYnVnKCdQb2xsaW5nIHNsb3dlZCBieSB0aGUgcGxhdGZvcm0nLCB7IGludGVydmFsTXMgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWNjZXNzX2RlbmllZCc6XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBzaWduLWluIHdhcyBkZW5pZWQgaW4gdGhlIGJyb3dzZXIuJywgJ2FjY2Vzc19kZW5pZWQnKTtcbiAgICAgIGNhc2UgJ2V4cGlyZWRfdG9rZW4nOlxuICAgICAgICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKCdUaGUgc2lnbi1pbiBjb2RlIGV4cGlyZWQgYmVmb3JlIGl0IHdhcyBhcHByb3ZlZC4nLCAnZXhwaXJlZF90b2tlbicpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcihcbiAgICAgICAgICByZXNwb25zZS5kYXRhPy5lcnJvcl9kZXNjcmlwdGlvbiB8fCAnVGhlIHBsYXRmb3JtIHJlZnVzZWQgdGhlIGRldmljZSBzaWduLWluLicsXG4gICAgICAgICAgcmVzcG9uc2UuZGF0YT8uZXJyb3IgfHwgJ2ludmFsaWRfcmVxdWVzdCcsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9yIHRoZSBzaWduLWluIHRvIGJlIGFwcHJvdmVkLicsICdleHBpcmVkX3Rva2VuJyk7XG59XG5cbi8qKiBUaGUgT1MgY29tbWFuZCB0aGF0IG9wZW5zIGEgVVJMIGluIHRoZSBkZWZhdWx0IGJyb3dzZXIuICovXG5mdW5jdGlvbiBvcGVuQ29tbWFuZCgpOiB7IGNvbW1hbmQ6IHN0cmluZzsgYXJnczogc3RyaW5nW10gfSB8IG51bGwge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHJldHVybiB7IGNvbW1hbmQ6ICdvcGVuJywgYXJnczogW10gfTtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicpIHJldHVybiB7IGNvbW1hbmQ6ICdjbWQnLCBhcmdzOiBbJy9jJywgJ3N0YXJ0JywgJyddIH07XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnbGludXgnKSByZXR1cm4geyBjb21tYW5kOiAneGRnLW9wZW4nLCBhcmdzOiBbXSB9O1xuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBUcnkgdG8gb3BlbiBgdXJsYCBpbiB0aGUgZGVmYXVsdCBicm93c2VyLiBSZXR1cm5zIGZhbHNlIOKAlCBuZXZlciB0aHJvd3Mg4oCUIHdoZW5cbiAqIHRoZSBlbnZpcm9ubWVudCBoYXMgbm8gYnJvd3NlciB0byBvcGVuIChhIENJIHJ1bm5lciwgYW4gU1NIIHNlc3Npb24sIGFcbiAqIG5vbi1pbnRlcmFjdGl2ZSBzaGVsbCkgb3IgdGhlIG9wZW5lciBpc24ndCBpbnN0YWxsZWQsIHNvIHRoZSBjYWxsZXIgZmFsbHMgYmFja1xuICogdG8gcHJpbnRpbmcgdGhlIFVSTC5cbiAqXG4gKiBUaGUgVVJMIGlzIHBhc3NlZCBhcyBhbiBBUkdVTUVOVCwgbmV2ZXIgdGhyb3VnaCBhIHNoZWxsLCBhbmQgb25seSBodHRwKHMpIGlzXG4gKiBhY2NlcHRlZDogdGhlIHZhbHVlIGNvbWVzIGZyb20gdGhlIHBsYXRmb3JtJ3MgcmVzcG9uc2UsIGFuZCBoYW5kaW5nIGFuXG4gKiBhcmJpdHJhcnkgc2NoZW1lIHRvIHRoZSBPUyBvcGVuZXIgaXMgaG93IFwiY2xpY2sgdGhpcyBsaW5rXCIgdHVybnMgaW50byBcInJ1blxuICogdGhpcyBwcm9ncmFtXCIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvcGVuSW5Ccm93c2VyKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCBwYXJzZWQ6IFVSTDtcbiAgdHJ5IHtcbiAgICBwYXJzZWQgPSBuZXcgVVJMKHVybCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAocGFyc2VkLnByb3RvY29sICE9PSAnaHR0cHM6JyAmJiBwYXJzZWQucHJvdG9jb2wgIT09ICdodHRwOicpIHJldHVybiBmYWxzZTtcbiAgaWYgKHByb2Nlc3MuZW52LkNJIHx8IHByb2Nlc3MuZW52LlNTSF9DT05ORUNUSU9OIHx8IHByb2Nlc3MuZW52LlNTSF9UVFkpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFwcm9jZXNzLnN0ZG91dC5pc1RUWSkgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IG9wZW5lciA9IG9wZW5Db21tYW5kKCk7XG4gIGlmICghb3BlbmVyKSByZXR1cm4gZmFsc2U7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKG9wZW5lci5jb21tYW5kLCBbLi4ub3BlbmVyLmFyZ3MsIHVybF0sIHsgc3RkaW86ICdpZ25vcmUnLCBkZXRhY2hlZDogdHJ1ZSB9KTtcbiAgICBjaGlsZC5vbignZXJyb3InLCAoKSA9PiB7IC8qIG5vIGJyb3dzZXIgaGVyZTsgdGhlIHByaW50ZWQgVVJMIGlzIHRoZSBmYWxsYmFjayAqLyB9KTtcbiAgICBjaGlsZC51bnJlZigpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZGV2aWNlLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBb0N4QyxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSztJQUNGLElBQUk7SUFBMUMsWUFBWSxPQUFlLEVBQVcsSUFBWTtRQUNoRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRHFCLElBQUk7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxTQUE4QixFQUM5QixJQUFrRjtJQUVsRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFBRSxTQUFTLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDMUcsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDNUUseUVBQXlFO0lBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxJQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVwRSxtRUFBbUU7SUFDbkUsc0VBQXNFO0lBQ3RFLG9EQUFvRDtJQUNwRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ3JELEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNSLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkQsR0FBRyxDQUFDLGlCQUFpQixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNSLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTTtRQUNaLENBQUMsQ0FBQyxpRUFBaUU7UUFDbkUsQ0FBQyxDQUFDLG9FQUFvRSxDQUFDLENBQUMsQ0FBQztJQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFBRSxTQUFTLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNwRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCx1REFBdUQ7QUFDdkQsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FDckMsU0FBOEIsRUFDOUIsT0FBTyxHQUF5QixFQUFFO0lBRWxDLE1BQU0sT0FBTyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsdUJBQXVCLENBQUM7SUFDeEQsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FDL0IsT0FBTyxFQUNQLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUNoRDtRQUNFLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFO1FBQ3JFLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtRQUNoQyxPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87S0FDM0IsQ0FDRixDQUFDO0lBQ0YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUMzQixJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksZUFBZSxDQUFDLDRDQUE0QyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsU0FBOEIsRUFDOUIsSUFBd0IsRUFDeEIsS0FBSyxHQUErQixFQUFFO0lBRXRDLE1BQU0sUUFBUSxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsd0JBQXdCLENBQUM7SUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3JELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7SUFFbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDN0IsTUFBTSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEIsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FDL0IsUUFBUSxFQUNSLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDakM7WUFDRSxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRTtZQUNyRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7WUFDaEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzFCLDBFQUEwRTtZQUMxRSwyREFBMkQ7WUFDM0QsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxJQUFJLE1BQU0sS0FBSyxHQUFHO1NBQzlFLENBQ0YsQ0FBQztRQUVGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxJQUFJLGVBQWUsQ0FBQywwREFBMEQsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQzVHLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUVELFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM3QixLQUFLLHVCQUF1QjtnQkFDMUIsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNoRixVQUFVLENBQUMsZ0NBQWdDLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxNQUFNO1lBQ1IsS0FBSyxlQUFlO2dCQUNsQixNQUFNLElBQUksZUFBZSxDQUFDLHdDQUF3QyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZGLEtBQUssZUFBZTtnQkFDbEIsTUFBTSxJQUFJLGVBQWUsQ0FBQyxrREFBa0QsRUFBRSxlQUFlLENBQUMsQ0FBQztZQUNqRztnQkFDRSxNQUFNLElBQUksZUFBZSxDQUN2QixRQUFRLENBQUMsSUFBSSxFQUFFLGlCQUFpQixJQUFJLDBDQUEwQyxFQUM5RSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxpQkFBaUIsQ0FDMUMsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxJQUFJLGVBQWUsQ0FBQyxtREFBbUQsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNsRyxDQUFDO0FBRUQsOERBQThEO0FBQzlELFNBQVMsV0FBVztJQUNsQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUTtRQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4RSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTztRQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN2RixJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTztRQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUMzRSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFXO0lBQ3ZDLElBQUksTUFBVyxDQUFDO0lBQ2hCLElBQUksQ0FBQztRQUNILE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM5RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV4QyxNQUFNLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTFCLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBMEQsQ0FBQyxDQUFDLENBQUM7UUFDcEYsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIE9BdXRoIDIuMCBkZXZpY2UgYXV0aG9yaXphdGlvbiBncmFudCBjbGllbnQgKFJGQyA4NjI4KSDigJQgaG93IHRoZSBDTEkgc2lnbnMgaW4uXG4gKlxuICogVGhlIENMSSBhc2tzIHRoZSBwbGF0Zm9ybSBmb3IgYSBjb2RlLCBzaG93cyBpdCAoYW5kIG9wZW5zIHRoZSBicm93c2VyIHdoZW4gaXRcbiAqIGNhbiksIHRoZW4gcG9sbHMgdW50aWwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpbiB0aGF0IGJyb3dzZXIuIE5vIHBhc3N3b3JkIGFuZCBub1xuICogbG9uZy1saXZlZCB0b2tlbiBldmVyIHBhc3NlcyB0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUsIHNoZWxsIGhpc3RvcnksIGBwc2BcbiAqIG91dHB1dCBvciBhIENJIGxvZzsgdGhlIGJyb3dzZXIgaXMgd2hlcmUgU1NPLCBzdGVwLXVwIGFuZCBsYXRlciBNRkEgYWxyZWFkeVxuICogYXBwbHksIHNvIHRoZSB0ZXJtaW5hbCBpbmhlcml0cyBhbGwgb2YgaXQgd2l0aG91dCBpbXBsZW1lbnRpbmcgYW55IG9mIGl0LlxuICovXG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7IHByaW50RGVidWcsIHByaW50SW5mbyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBjeWFuLCBkaW0sIGdyZWVuIH0gPSBwaWNvO1xuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL2NvZGVgIOKAlCBSRkMgODYyOCDCpzMuMi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQ29kZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZztcbiAgdXNlcl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl91cmk6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZT86IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xuICBpbnRlcnZhbDogbnVtYmVyO1xufVxuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL3Rva2VuYCBvbiBzdWNjZXNzIOKAlCBSRkMgODYyOCDCpzMuNS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlVG9rZW5SZXNwb25zZSB7XG4gIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW46IG51bWJlcjtcbiAgLyoqIFByZXNlbnQgb25seSB3aGVuIHRoZSBkZXZpY2UgYXNrZWQgZm9yIG9uZSBhdCBgL2NvZGVgIChgYXV0aCBwYXRgKS4gKi9cbiAgc3RlcF91cF90b2tlbj86IHN0cmluZztcbn1cblxuLyoqIFRoZSBSRkMgZXJyb3IgYm9keSwgcGx1cyB0aGUgYGludGVydmFsYCB0aGUgcGxhdGZvcm0gc2VuZHMgd2l0aCBgc2xvd19kb3duYC4gKi9cbmludGVyZmFjZSBEZXZpY2VFcnJvclJlc3BvbnNlIHtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9yX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpbnRlcnZhbD86IG51bWJlcjtcbn1cblxuLyoqIENvbm5lY3Rpb24gc2V0dGluZ3Mgc2hhcmVkIGJ5IGJvdGggY2FsbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhUcmFuc3BvcnQge1xuICB1cmw6IHN0cmluZztcbiAgaHR0cHNBZ2VudDogaHR0cHMuQWdlbnQ7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbn1cblxuLyoqIFJhaXNlZCBmb3IgZXZlcnkgdGVybWluYWwgb3V0Y29tZSwgc28gY2FsbGVycyBjYW4gcHJpbnQgb25lIGNsZWFyIG1lc3NhZ2UuICovXG5leHBvcnQgY2xhc3MgRGV2aWNlQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHJlYWRvbmx5IGNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdEZXZpY2VBdXRoRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogT3BlbiBhIGRldmljZSBhdXRob3JpemF0aW9uIGFuZCBwcmludCB0aGUgYXBwcm92YWwgcHJvbXB0LlxuICpcbiAqIGBsb2dpbmAgYW5kIGBjcmVhdGUtcGF0YCByYW4gYnl0ZS1pZGVudGljYWwgY29waWVzIG9mIHRoaXMg4oCUIHRoZSBjb2RlIGxpbmUsXG4gKiB0aGUgYXBwcm92YWwgVVJMLCB0aGUgYnJvd3Nlci1vcGVuZWQvbm90LW9wZW5lZCB3b3JkaW5nIGFuZCB0aGUgXCJXYWl0aW5nIGZvclxuICogYXBwcm92YWzigKZcIiBub3RpY2UuIFRoYXQgaXMgdXNlci1mYWNpbmcgQVVUSCBjb3B5OiBpZiBvbmUgY29tbWFuZCB0ZWxscyBwZW9wbGVcbiAqIHRvIFwiY2hlY2sgdGhlIGNvZGUgbWF0Y2hlc1wiIGFuZCB0aGUgb3RoZXIgc3RvcHMgc2F5aW5nIGl0LCB0aGUgdHdvIHRlYWNoXG4gKiBkaWZmZXJlbnQgaGFiaXRzIGFib3V0IGEgcHJvbXB0IHdob3NlIHdob2xlIGpvYiBpcyB0byBiZSB2ZXJpZmllZC4gV29yc2UsIHRoZVxuICogc3RkZXJyIHJ1bGUgYmVsb3cgaXMgYSBjb3JyZWN0bmVzcyBkZXRhaWwgdGhhdCB3YXMgZHVwbGljYXRlZCB3aXRoIGl0LlxuICpcbiAqIFRoZSBjYWxsZXJzIGRpdmVyZ2UgQUZURVIgdGhpcyAob25lIHdhbnRzIHRoZSBzdGVwLXVwIHRva2VuLCB0aGUgb3RoZXIgYVxuICogcmVmcmVzaCB0b2tlbiksIHNvIHRoaXMgcmV0dXJucyB0aGUgY29kZSBhbmQgbGVhdmVzIHBvbGxpbmcgdG8gdGhlbS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJlZ2luRGV2aWNlQXBwcm92YWwoXG4gIHRyYW5zcG9ydDogRGV2aWNlQXV0aFRyYW5zcG9ydCxcbiAgb3B0czogeyBxdWlldDogYm9vbGVhbjsgYnJvd3Nlcj86IGJvb2xlYW47IHN0ZXBVcD86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW4gfSxcbik6IFByb21pc2U8RGV2aWNlQ29kZVJlc3BvbnNlPiB7XG4gIGlmICghb3B0cy5xdWlldCkgcHJpbnRJbmZvKCdTdGFydGluZyBicm93c2VyIHNpZ24taW4nLCB7IHVybDogdHJhbnNwb3J0LnVybCwgdmVyaWZ5U3NsOiBvcHRzLnZlcmlmeVNzbCB9KTtcbiAgY29uc3QgY29kZSA9IGF3YWl0IHJlcXVlc3REZXZpY2VDb2RlKHRyYW5zcG9ydCwgb3B0cy5zdGVwVXAgPyB7IHN0ZXBVcDogdHJ1ZSB9IDoge30pO1xuICBjb25zdCBhcHByb3ZhbFVybCA9IGNvZGUudmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZSB8fCBjb2RlLnZlcmlmaWNhdGlvbl91cmk7XG4gIC8vIGAtLW5vLWJyb3dzZXJgIHNldHMgb3B0aW9ucy5icm93c2VyIHRvIGZhbHNlIChjb21tYW5kZXIncyAtLW5vLSBwYWlyKS5cbiAgY29uc3Qgb3BlbmVkID0gb3B0cy5icm93c2VyICE9PSBmYWxzZSAmJiBvcGVuSW5Ccm93c2VyKGFwcHJvdmFsVXJsKTtcblxuICAvLyBUaGUgcHJvbXB0IGdvZXMgdG8gU1RERVJSIHVuZGVyIGAtLXF1aWV0YDogc3Rkb3V0IGlzIGNhcHR1cmVkIGJ5XG4gIC8vIGBldmFsICQo4oCmKWAsIHNvIHByaW50aW5nIHRoZSBjb2RlIHRoZXJlIHdvdWxkIHN3YWxsb3cgdGhlIG9uZSB0aGluZ1xuICAvLyB0aGUgdXNlciBoYXMgdG8gcmVhZCBiZWZvcmUgYW55dGhpbmcgY2FuIHByb2NlZWQuXG4gIGNvbnN0IHNheSA9IG9wdHMucXVpZXQgPyBjb25zb2xlLmVycm9yIDogY29uc29sZS5sb2c7XG4gIHNheSgnJyk7XG4gIHNheShgICBZb3VyIGNvZGU6ICAke2JvbGQoY3lhbihjb2RlLnVzZXJfY29kZSkpfWApO1xuICBzYXkoYCAgQXBwcm92ZSBhdDogJHtncmVlbihhcHByb3ZhbFVybCl9YCk7XG4gIHNheSgnJyk7XG4gIHNheShkaW0ob3BlbmVkXG4gICAgPyAnICBPcGVuaW5nIHlvdXIgYnJvd3NlcuKApiBhcHByb3ZlIHRoZSBjb2RlIHRoZXJlLCB0aGVuIGNvbWUgYmFjay4nXG4gICAgOiAnICBPcGVuIHRoYXQgVVJMIGluIGEgYnJvd3NlciwgY2hlY2sgdGhlIGNvZGUgbWF0Y2hlcywgYW5kIGFwcHJvdmUuJykpO1xuICBpZiAoIW9wdHMucXVpZXQpIHByaW50SW5mbygnV2FpdGluZyBmb3IgYXBwcm92YWzigKYnKTtcbiAgcmV0dXJuIGNvZGU7XG59XG5cbi8qKiBBc2sgdGhlIHBsYXRmb3JtIHRvIG9wZW4gYSBkZXZpY2UgYXV0aG9yaXphdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXF1ZXN0RGV2aWNlQ29kZShcbiAgdHJhbnNwb3J0OiBEZXZpY2VBdXRoVHJhbnNwb3J0LFxuICBvcHRpb25zOiB7IHN0ZXBVcD86IGJvb2xlYW4gfSA9IHt9LFxuKTogUHJvbWlzZTxEZXZpY2VDb2RlUmVzcG9uc2U+IHtcbiAgY29uc3QgY29kZVVybCA9IGAke3RyYW5zcG9ydC51cmx9L2FwaS9hdXRoL2RldmljZS9jb2RlYDtcbiAgcHJpbnREZWJ1ZygnUE9TVCcsIHsgdXJsOiBjb2RlVXJsIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RGV2aWNlQ29kZVJlc3BvbnNlPihcbiAgICBjb2RlVXJsLFxuICAgIHsgLi4uKG9wdGlvbnMuc3RlcFVwID8geyBzdGVwX3VwOiB0cnVlIH0gOiB7fSkgfSxcbiAgICB7XG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknIH0sXG4gICAgICBodHRwc0FnZW50OiB0cmFuc3BvcnQuaHR0cHNBZ2VudCxcbiAgICAgIHRpbWVvdXQ6IHRyYW5zcG9ydC50aW1lb3V0LFxuICAgIH0sXG4gICk7XG4gIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuICBpZiAoIWRhdGE/LmRldmljZV9jb2RlIHx8ICFkYXRhLnVzZXJfY29kZSkge1xuICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBwbGF0Zm9ybSBkaWQgbm90IHJldHVybiBhIGRldmljZSBjb2RlLicsICdpbnZhbGlkX3Jlc3BvbnNlJyk7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogUG9sbCBgL2F1dGgvZGV2aWNlL3Rva2VuYCB1bnRpbCB0aGUgYnJvd3NlciBkZWNpZGVzLCB0aGUgY29kZSBleHBpcmVzLCBvclxuICogYHNpZ25hbGAgc2F5cyB0byBzdG9wLlxuICpcbiAqIEludGVydmFsIGhhbmRsaW5nIGlzIHRoZSBSRkMnczogc3RhcnQgYXQgdGhlIGFkdmVydGlzZWQgYGludGVydmFsYCwgYW5kIHdpZGVuXG4gKiBpdCBieSA1IHNlY29uZHMgKG9yIHRvIHdoYXRldmVyIHRoZSBwbGF0Zm9ybSBuYW1lcykgb24gZXZlcnkgYHNsb3dfZG93bmAuIFRoZVxuICogcGxhdGZvcm0gYWxzbyBlbmZvcmNlcyB0aGUgaW50ZXJ2YWwsIHNvIGEgY2xpZW50IHRoYXQgaWdub3JlcyBpdCBpcyB0aHJvdHRsZWRcbiAqIHJhdGhlciB0aGFuIHRydXN0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsRm9yRGV2aWNlVG9rZW4oXG4gIHRyYW5zcG9ydDogRGV2aWNlQXV0aFRyYW5zcG9ydCxcbiAgY29kZTogRGV2aWNlQ29kZVJlc3BvbnNlLFxuICBob29rczogeyBvblBlbmRpbmc/OiAoKSA9PiB2b2lkIH0gPSB7fSxcbik6IFByb21pc2U8RGV2aWNlVG9rZW5SZXNwb25zZT4ge1xuICBjb25zdCB0b2tlblVybCA9IGAke3RyYW5zcG9ydC51cmx9L2FwaS9hdXRoL2RldmljZS90b2tlbmA7XG4gIGNvbnN0IGRlYWRsaW5lID0gRGF0ZS5ub3coKSArIGNvZGUuZXhwaXJlc19pbiAqIDEwMDA7XG4gIGxldCBpbnRlcnZhbE1zID0gTWF0aC5tYXgoMSwgY29kZS5pbnRlcnZhbCkgKiAxMDAwO1xuXG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zKTtcblxuICAgIHByaW50RGVidWcoJ1BPU1QnLCB7IHVybDogdG9rZW5VcmwgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PERldmljZVRva2VuUmVzcG9uc2UgJiBEZXZpY2VFcnJvclJlc3BvbnNlPihcbiAgICAgIHRva2VuVXJsLFxuICAgICAgeyBkZXZpY2VfY29kZTogY29kZS5kZXZpY2VfY29kZSB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknIH0sXG4gICAgICAgIGh0dHBzQWdlbnQ6IHRyYW5zcG9ydC5odHRwc0FnZW50LFxuICAgICAgICB0aW1lb3V0OiB0cmFuc3BvcnQudGltZW91dCxcbiAgICAgICAgLy8gVGhlIFJGQydzIHBlbmRpbmcvYmFja29mZiBzaWduYWxzIGFycml2ZSBhcyBIVFRQIDQwMCwgd2hpY2ggYXhpb3Mgd291bGRcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHRocm93OiB0aGV5IGFyZSBwcm90b2NvbCBzdGF0ZXMsIG5vdCBmYWlsdXJlcy5cbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IChzdGF0dXMpID0+IChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCkgfHwgc3RhdHVzID09PSA0MDAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgIGlmICghcmVzcG9uc2UuZGF0YT8uYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBwbGF0Zm9ybSBhcHByb3ZlZCB0aGUgc2lnbi1pbiBidXQgcmV0dXJuZWQgbm8gdG9rZW4uJywgJ2ludmFsaWRfcmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICAgIHN3aXRjaCAocmVzcG9uc2UuZGF0YT8uZXJyb3IpIHtcbiAgICAgIGNhc2UgJ2F1dGhvcml6YXRpb25fcGVuZGluZyc6XG4gICAgICAgIGhvb2tzLm9uUGVuZGluZz8uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xvd19kb3duJzpcbiAgICAgICAgaW50ZXJ2YWxNcyA9IE1hdGgubWF4KGludGVydmFsTXMgKyA1XzAwMCwgKHJlc3BvbnNlLmRhdGEuaW50ZXJ2YWwgPz8gMCkgKiAxMDAwKTtcbiAgICAgICAgcHJpbnREZWJ1ZygnUG9sbGluZyBzbG93ZWQgYnkgdGhlIHBsYXRmb3JtJywgeyBpbnRlcnZhbE1zIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKCdUaGUgc2lnbi1pbiB3YXMgZGVuaWVkIGluIHRoZSBicm93c2VyLicsICdhY2Nlc3NfZGVuaWVkJyk7XG4gICAgICBjYXNlICdleHBpcmVkX3Rva2VuJzpcbiAgICAgICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHNpZ24taW4gY29kZSBleHBpcmVkIGJlZm9yZSBpdCB3YXMgYXBwcm92ZWQuJywgJ2V4cGlyZWRfdG9rZW4nKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoXG4gICAgICAgICAgcmVzcG9uc2UuZGF0YT8uZXJyb3JfZGVzY3JpcHRpb24gfHwgJ1RoZSBwbGF0Zm9ybSByZWZ1c2VkIHRoZSBkZXZpY2Ugc2lnbi1pbi4nLFxuICAgICAgICAgIHJlc3BvbnNlLmRhdGE/LmVycm9yIHx8ICdpbnZhbGlkX3JlcXVlc3QnLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RpbWVkIG91dCB3YWl0aW5nIGZvciB0aGUgc2lnbi1pbiB0byBiZSBhcHByb3ZlZC4nLCAnZXhwaXJlZF90b2tlbicpO1xufVxuXG4vKiogVGhlIE9TIGNvbW1hbmQgdGhhdCBvcGVucyBhIFVSTCBpbiB0aGUgZGVmYXVsdCBicm93c2VyLiAqL1xuZnVuY3Rpb24gb3BlbkNvbW1hbmQoKTogeyBjb21tYW5kOiBzdHJpbmc7IGFyZ3M6IHN0cmluZ1tdIH0gfCBudWxsIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdkYXJ3aW4nKSByZXR1cm4geyBjb21tYW5kOiAnb3BlbicsIGFyZ3M6IFtdIH07XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSByZXR1cm4geyBjb21tYW5kOiAnY21kJywgYXJnczogWycvYycsICdzdGFydCcsICcnXSB9O1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2xpbnV4JykgcmV0dXJuIHsgY29tbWFuZDogJ3hkZy1vcGVuJywgYXJnczogW10gfTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVHJ5IHRvIG9wZW4gYHVybGAgaW4gdGhlIGRlZmF1bHQgYnJvd3Nlci4gUmV0dXJucyBmYWxzZSDigJQgbmV2ZXIgdGhyb3dzIOKAlCB3aGVuXG4gKiB0aGUgZW52aXJvbm1lbnQgaGFzIG5vIGJyb3dzZXIgdG8gb3BlbiAoYSBDSSBydW5uZXIsIGFuIFNTSCBzZXNzaW9uLCBhXG4gKiBub24taW50ZXJhY3RpdmUgc2hlbGwpIG9yIHRoZSBvcGVuZXIgaXNuJ3QgaW5zdGFsbGVkLCBzbyB0aGUgY2FsbGVyIGZhbGxzIGJhY2tcbiAqIHRvIHByaW50aW5nIHRoZSBVUkwuXG4gKlxuICogVGhlIFVSTCBpcyBwYXNzZWQgYXMgYW4gQVJHVU1FTlQsIG5ldmVyIHRocm91Z2ggYSBzaGVsbCwgYW5kIG9ubHkgaHR0cChzKSBpc1xuICogYWNjZXB0ZWQ6IHRoZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBwbGF0Zm9ybSdzIHJlc3BvbnNlLCBhbmQgaGFuZGluZyBhblxuICogYXJiaXRyYXJ5IHNjaGVtZSB0byB0aGUgT1Mgb3BlbmVyIGlzIGhvdyBcImNsaWNrIHRoaXMgbGlua1wiIHR1cm5zIGludG8gXCJydW5cbiAqIHRoaXMgcHJvZ3JhbVwiLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlbkluQnJvd3Nlcih1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBsZXQgcGFyc2VkOiBVUkw7XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gbmV3IFVSTCh1cmwpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHBhcnNlZC5wcm90b2NvbCAhPT0gJ2h0dHBzOicgJiYgcGFyc2VkLnByb3RvY29sICE9PSAnaHR0cDonKSByZXR1cm4gZmFsc2U7XG4gIGlmIChwcm9jZXNzLmVudi5DSSB8fCBwcm9jZXNzLmVudi5TU0hfQ09OTkVDVElPTiB8fCBwcm9jZXNzLmVudi5TU0hfVFRZKSByZXR1cm4gZmFsc2U7XG4gIGlmICghcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBvcGVuZXIgPSBvcGVuQ29tbWFuZCgpO1xuICBpZiAoIW9wZW5lcikgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihvcGVuZXIuY29tbWFuZCwgWy4uLm9wZW5lci5hcmdzLCB1cmxdLCB7IHN0ZGlvOiAnaWdub3JlJywgZGV0YWNoZWQ6IHRydWUgfSk7XG4gICAgY2hpbGQub24oJ2Vycm9yJywgKCkgPT4geyAvKiBubyBicm93c2VyIGhlcmU7IHRoZSBwcmludGVkIFVSTCBpcyB0aGUgZmFsbGJhY2sgKi8gfSk7XG4gICAgY2hpbGQudW5yZWYoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -33,9 +33,9 @@
33
33
  "@aws-sdk/client-secrets-manager": "3.1154.0",
34
34
  "@aws-sdk/client-sqs": "3.1154.0",
35
35
  "@aws-sdk/client-sts": "3.1154.0",
36
- "@pipeline-builder/ai-core": "4.2.1",
37
- "@pipeline-builder/api-core": "5.1.1",
38
- "@pipeline-builder/pipeline-core": "4.2.1",
36
+ "@pipeline-builder/ai-core": "4.2.3",
37
+ "@pipeline-builder/api-core": "5.1.3",
38
+ "@pipeline-builder/pipeline-core": "4.2.3",
39
39
  "aws-cdk-lib": "2.270.0",
40
40
  "axios": "1.20.0",
41
41
  "commander": "15.0.0",
@@ -90,7 +90,7 @@
90
90
  "containerized"
91
91
  ],
92
92
  "engines": {
93
- "node": ">= 24.22.0"
93
+ "node": ">= 24.22.2"
94
94
  },
95
95
  "devEngines": {
96
96
  "packageManager": {
@@ -105,7 +105,7 @@
105
105
  "access": "public",
106
106
  "registry": "https://registry.npmjs.org/"
107
107
  },
108
- "version": "4.2.2",
108
+ "version": "4.2.4",
109
109
  "bugs": {
110
110
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
111
111
  },