@jigx/core-sdk 1.2.0-next.1 → 1.2.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -59,7 +59,7 @@ export type ApplicationGroupId = z.infer<typeof ApplicationGroupIdSchema>;
59
59
  */
60
60
  export declare const InstanceIdSchema: z.ZodString;
61
61
  /**
62
- * Instance identifier. Starts with letter, contains letters/numbers/underscore/hyphen, ends with letter/number.
62
+ * Instance identifier. 2-50 characters: starts with letter, contains letters/numbers/underscore/hyphen, ends with letter/number.
63
63
  * @see #/definitions/InstanceId
64
64
  */
65
65
  export type InstanceId = z.infer<typeof InstanceIdSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"zod.types.d.ts","sourceRoot":"","sources":["../../src/abstract/zod.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod.types.d.ts","sourceRoot":"","sources":["../../src/abstract/zod.types.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,8 @@ export function toSolutionId(value) {
24
24
  return SolutionIdSchema.parse(value);
25
25
  }
26
26
  export const CommonNameMixedRegex = /^[a-zA-Z][a-zA-Z0-9_-]{0,48}[a-zA-Z0-9]$/;
27
- export const CommonNameMixedSchema = z
28
- .string()
29
- .regex(CommonNameMixedRegex, 'Mixedcase 2-50, prefer kebab-case, starts alpha, contains alphanum and `-`, ends alphanum.');
27
+ const CommonNameMixedMessage = 'Mixedcase 2-50, prefer kebab-case, starts alpha, contains alphanum and `-`, ends alphanum.';
28
+ export const CommonNameMixedSchema = z.string().regex(CommonNameMixedRegex, CommonNameMixedMessage);
30
29
  /**
31
30
  * Convert string to CommonNameMixed.
32
31
  */
@@ -60,7 +59,7 @@ const ApplicationGroupIdSchema = CommonNameMixedSchema.describe('Application gro
60
59
  export const InstanceIdSchema = z
61
60
  .string()
62
61
  .min(1, 'Required')
63
- .regex(CommonNameMixedRegex, 'Starts with alpha, 0-48 alphanum/`_`/`-`, ends alphanum.')
62
+ .regex(CommonNameMixedRegex, CommonNameMixedMessage)
64
63
  //.brand<'InstanceId'>()
65
64
  .describe('Instance Id');
66
65
  /**
@@ -1026,4 +1025,4 @@ export const ImageSizeSchema = z
1026
1025
  export const HorizontalAlignSchema = z.enum(['left', 'center', 'right']);
1027
1026
  export const VerticalAlignSchema = z.enum(['top', 'center', 'bottom']);
1028
1027
  export const DataRowId = z.string().regex(/^[!$*-:=@-_a-~]{1,64}$/);
1029
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fic3RyYWN0L3pvZC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRTFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxvQkFBb0IsQ0FBQTtBQUNoRixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFFeEIsMkJBQTJCLEVBQzNCLGVBQWUsRUFFZix3QkFBd0IsRUFDeEIsWUFBWSxHQUNiLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQztLQUNsQyxJQUFJLEVBQUU7S0FDTixRQUFRLENBQUMscURBQXFELENBQUMsQ0FBQTtBQUdsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUN0RCxDQUFDO0FBQ0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUd4Rjs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYztJQUN6QyxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYztJQUN6QyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN0QyxDQUFDO0FB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QUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUE7QUFReEUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtBQVF0RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gJ3pvZC92NCdcblxuaW1wb3J0IHsgY29udmVydE9yRXhwcmVzc2lvbiwgdHlwZSBFeHByZXNzaW9uT3B0aW9ucyB9IGZyb20gJy4uL2pzb25hdGEvYmFzZS5qcydcbmltcG9ydCB7XG4gIHR5cGUgRXhwcmVzc2lvbixcbiAgRXhwcmVzc2lvblNjaGVtYSxcbiAgTm9uRXhwcmVzc2lvblNjaGVtYSxcbiAgTnVtYmVyT3JFeHByZXNzaW9uU2NoZW1hLFxuICB0eXBlIFByaW1pdGl2ZU9yRXhwcmVzc2lvbixcbiAgUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLFxuICBQcmltaXRpdmVTY2hlbWEsXG4gIHR5cGUgU3RyaW5nT3JFeHByZXNzaW9uLFxuICBTdHJpbmdPckV4cHJlc3Npb25TY2hlbWEsXG4gIHRvRXhwcmVzc2lvbixcbn0gZnJvbSAnLi9zZGsuZXhwcmVzc2lvbi5qcydcblxuZXhwb3J0IGNvbnN0IE9yZ2FuaXphdGlvbklkU2NoZW1hID0gelxuICAudXVpZCgpXG4gIC5kZXNjcmliZSgnT3JnYW5pemF0aW9uIFVVSUQgKGNvbnRhaW5zIHVzZXJzLCBzb2x1dGlvbnMsIGRhdGEpJylcbmV4cG9ydCB0eXBlIE9yZ2FuaXphdGlvbklkID0gei5pbmZlcjx0eXBlb2YgT3JnYW5pemF0aW9uSWRTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIE9yZ2FuaXphdGlvbklkIChVVUlEKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3JnYW5pemF0aW9uSWQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBPcmdhbml6YXRpb25JZCB7XG4gIHJldHVybiBPcmdhbml6YXRpb25JZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cbmV4cG9ydCBmdW5jdGlvbiB0b09yZ2FuaXphdGlvbklkKHZhbHVlOiB1bmtub3duKTogT3JnYW5pemF0aW9uSWQge1xuICByZXR1cm4gT3JnYW5pemF0aW9uSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBTb2x1dGlvbklkU2NoZW1hID0gei51dWlkKCkuZGVzY3JpYmUoJ1NvbHV0aW9uIFVVSUQgKGEgbmF0aXZlIG1vYmlsZSBhcHApJylcbmV4cG9ydCB0eXBlIFNvbHV0aW9uSWQgPSB6LmluZmVyPHR5cGVvZiBTb2x1dGlvbklkU2NoZW1hPlxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBTb2x1dGlvbklkIChVVUlEKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU29sdXRpb25JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNvbHV0aW9uSWQge1xuICByZXR1cm4gU29sdXRpb25JZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU29sdXRpb25JZCh2YWx1ZTogdW5rbm93bik6IFNvbHV0aW9uSWQge1xuICByZXR1cm4gU29sdXRpb25JZFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IENvbW1vbk5hbWVNaXhlZFJlZ2V4ID0gL15bYS16QS1aXVthLXpBLVowLTlfLV17MCw0OH1bYS16QS1aMC05XSQvXG5cbmV4cG9ydCBjb25zdCBDb21tb25OYW1lTWl4ZWRTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAucmVnZXgoXG4gICAgQ29tbW9uTmFtZU1peGVkUmVnZXgsXG4gICAgJ01peGVkY2FzZSAyLTUwLCBwcmVmZXIga2ViYWItY2FzZSwgc3RhcnRzIGFscGhhLCBjb250YWlucyBhbHBoYW51bSBhbmQgYC1gLCBlbmRzIGFscGhhbnVtLicsXG4gIClcbi8qKlxuICogTWl4ZWRjYXNlIDItNTAsIHByZWZlciBrZWJhYi1jYXNlLCBzdGFydHMgYWxwaGEsIGNvbnRhaW5zIGFscGhhbnVtIGFuZCBgLWAsIGVuZHMgYWxwaGFudW0uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29tbW9uTmFtZU1peGVkXG4gKi9cbmV4cG9ydCB0eXBlIENvbW1vbk5hbWVNaXhlZCA9IHouaW5mZXI8dHlwZW9mIENvbW1vbk5hbWVNaXhlZFNjaGVtYT5cblxuLyoqXG4gKiBDb252ZXJ0IHN0cmluZyB0byBDb21tb25OYW1lTWl4ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbW1vbk5hbWVNaXhlZCh2YWx1ZTogc3RyaW5nKTogQ29tbW9uTmFtZU1peGVkIHtcbiAgcmV0dXJuIENvbW1vbk5hbWVNaXhlZFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IENhdGVnb3J5U2NoZW1hID0gelxuICAuZW51bShbXG4gICAgJ3Vua25vd24nLFxuICAgICdhbmFseXRpY3MnLFxuICAgICdidXNpbmVzcycsXG4gICAgJ2NvbW11bmljYXRpb25zJyxcbiAgICAnY29uc3VsdGluZycsXG4gICAgJ2ZpZWxkLXNlcnZpY2VzJyxcbiAgICAnZmluYW5jZXMnLFxuICAgICdoZWFsdGgnLFxuICAgICdodW1hbi1yZXNvdXJjZXMnLFxuICAgICdsb2dpc3RpY3MnLFxuICAgICdtYW5hZ2VtZW50JyxcbiAgICAnbWlzY2VsbGFuZW91cycsXG4gICAgJ29wZXJhdGlvbnMnLFxuICAgICdwZXJzb25hbCcsXG4gICAgJ3NhbGVzJyxcbiAgXSlcbiAgLmRlc2NyaWJlKCdTb2x1dGlvbiBjYXRlZ29yeScpXG4vKipcbiAqIEFwcGxpY2F0aW9uIGNhdGVnb3J5IGVudW1lcmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBDYXRlZ29yeSA9IHouaW5mZXI8dHlwZW9mIENhdGVnb3J5U2NoZW1hPlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBBcHBsaWNhdGlvbkdyb3VwSWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEuZGVzY3JpYmUoJ0FwcGxpY2F0aW9uIGdyb3VwIElkJylcbi8qKlxuICogQXBwbGljYXRpb24gZ3JvdXAgaWRlbnRpZmllci5cbiAqIEBhbGlhcyBTb2x1dGlvbkdyb3VwSWRcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9Tb2x1dGlvbkdyb3VwSWRcbiAqL1xuZXhwb3J0IHR5cGUgQXBwbGljYXRpb25Hcm91cElkID0gei5pbmZlcjx0eXBlb2YgQXBwbGljYXRpb25Hcm91cElkU2NoZW1hPlxuXG4vKipcbiAqIFN0cmluZyBvciBFeHByZXNzaW9uIHVuaW9uIHR5cGUuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEluc3RhbmNlSWRTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAubWluKDEsICdSZXF1aXJlZCcpXG4gIC5yZWdleChDb21tb25OYW1lTWl4ZWRSZWdleCwgJ1N0YXJ0cyB3aXRoIGFscGhhLCAwLTQ4IGFscGhhbnVtL2BfYC9gLWAsIGVuZHMgYWxwaGFudW0uJylcbiAgLy8uYnJhbmQ8J0luc3RhbmNlSWQnPigpXG4gIC5kZXNjcmliZSgnSW5zdGFuY2UgSWQnKVxuLyoqXG4gKiBJbnN0YW5jZSBpZGVudGlmaWVyLiBTdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW5zdGFuY2VJZFxuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZUlkID0gei5pbmZlcjx0eXBlb2YgSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFuY2VJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEluc3RhbmNlSWQge1xuICByZXR1cm4gSW5zdGFuY2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSW5zdGFuY2VJZCh2YWx1ZTogc3RyaW5nKTogSW5zdGFuY2VJZCB7XG4gIHJldHVybiBJbnN0YW5jZUlkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgS2VnSW5zdGFuY2VJZFNjaGVtYSA9IHpcbiAgLnVuaW9uKFtJbnN0YW5jZUlkU2NoZW1hLCBFeHByZXNzaW9uU2NoZW1hXSlcbiAgLmRlc2NyaWJlKCdJbnN0YW5jZSBJZGVudGlmaWVyJylcblxuLyoqXG4gKiBLZWcgaW5zdGFuY2UgaWRlbnRpZmllci4gRWl0aGVyIHN0YXRpYyBpZGVudGlmaWVyIG9yIGV4cHJlc3Npb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvS2VnSW5zdGFuY2VJZFxuICovXG5leHBvcnQgdHlwZSBLZWdJbnN0YW5jZUlkID0gei5pbmZlcjx0eXBlb2YgS2VnSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgS2VnSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFuY2VJZE9yRXhwcmVzc2lvbihcbiAgdmFsdWU6IHVua25vd24sXG4gIG9wdGlvbnM/OiBFeHByZXNzaW9uT3B0aW9ucyxcbik6IHZhbHVlIGlzIEtlZ0luc3RhbmNlSWQge1xuICBpZiAoIUtlZ0luc3RhbmNlSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzKSByZXR1cm4gZmFsc2VcblxuICAvLyBJZiBubyBvcHRpb25zIG9yIHlhbWxDb252ZXJzaW9uIGRpc2FibGVkLCBzY2hlbWEgdmFsaWRhdGlvbiBpcyBlbm91Z2hcbiAgaWYgKCFvcHRpb25zIHx8IG9wdGlvbnMueWFtbENvbnZlcnNpb24gPT09IGZhbHNlKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIElmIFlBTUwgY29udmVyc2lvbiBlbmFibGVkLCB0ZXN0IHRoZSBhY3R1YWwgY29udmVyc2lvblxuICB0cnkge1xuICAgIHRvSW5zdGFuY2VJZE9yRXhwcmVzc2lvbih2YWx1ZSBhcyBzdHJpbmcgfCBFeHByZXNzaW9uLCBvcHRpb25zKVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgdmFsdWUgdG8gS2VnSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSW5zdGFuY2VJZE9yRXhwcmVzc2lvbihcbiAgdmFsdWU6IHN0cmluZyB8IEV4cHJlc3Npb24sXG4gIG9wdGlvbnM/OiBFeHByZXNzaW9uT3B0aW9ucyxcbik6IEtlZ0luc3RhbmNlSWQge1xuICByZXR1cm4gY29udmVydE9yRXhwcmVzc2lvbih2YWx1ZSwgS2VnSW5zdGFuY2VJZFNjaGVtYSwgJ0tlZ0luc3RhbmNlSWQnLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgRm9ybUlkU2NoZW1hID0gTm9uRXhwcmVzc2lvblNjaGVtYS5kZXNjcmliZSgnRm9ybSBJZGVudGlmaWVyJylcblxuLyoqXG4gKiBGb3JtIGlkZW50aWZpZXIuIE5vbi1leHByZXNzaW9uIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybUlkID0gei5pbmZlcjx0eXBlb2YgS2VnSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRm9ybUlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JtSWQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBGb3JtSWQge1xuICByZXR1cm4gRm9ybUlkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIEZvcm1JZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRm9ybUlkKHZhbHVlOiBzdHJpbmcgfCBFeHByZXNzaW9uKTogRm9ybUlkIHtcbiAgcmV0dXJuIEZvcm1JZFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuLyoqXG4gKiBXaGl0ZWxpc3RlZCBzeXN0ZW0gdGFibGVzIHRoYXQgYnlwYXNzIHN0YW5kYXJkIGVudGl0eSBuYW1lIHZhbGlkYXRpb24uXG4gKiBUaGVzZSB0YWJsZXMgc3RhcnQgd2l0aCB1bmRlcnNjb3JlIGFuZCBhcmUgbWFuYWdlZCBieSB0aGUgSmlneCBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNZU1RFTV9UQUJMRVMgPSBbXG4gICdfY29tbWFuZFF1ZXVlJyxcbiAgJ19zeW5jU2NvcGUnLFxuICAvLyBBZGQgbW9yZSBzeXN0ZW0gdGFibGVzIGhlcmUgaWYgbmVlZGVkXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIFN5c3RlbVNxbGl0ZVRhYmxlTmFtZSA9ICh0eXBlb2YgU1lTVEVNX1RBQkxFUylbbnVtYmVyXVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBzdHJpbmcgaXMgYSBzeXN0ZW0gdGFibGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3FsaXRlU3lzdGVtVGFibGUobmFtZTogc3RyaW5nKTogbmFtZSBpcyBTeXN0ZW1TcWxpdGVUYWJsZU5hbWUge1xuICByZXR1cm4gKFNZU1RFTV9UQUJMRVMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKG5hbWUpXG59XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJOYW1lU2NoZW1hID0gei5zdHJpbmcoKS5kZXNjcmliZSgnUGFyYW1ldGVyIG5hbWUnKVxuXG4vKipcbiAqIFBhcmFtZXRlciBuYW1lLiBTdGFydHMgd2l0aCAkLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlck5hbWVcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1ldGVyTmFtZSA9IHouaW5mZXI8dHlwZW9mIFBhcmFtZXRlck5hbWVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFBhcmFtZXRlck5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFtZXRlck5hbWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQYXJhbWV0ZXJOYW1lIHtcbiAgcmV0dXJuIFBhcmFtZXRlck5hbWVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIFBhcmFtZXRlck5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlck5hbWUodmFsdWU6IHN0cmluZyk6IFBhcmFtZXRlck5hbWUge1xuICByZXR1cm4gUGFyYW1ldGVyTmFtZVNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlck5hbWVEb2xsYXJTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAucmVnZXgoXG4gICAgL15bJGEtekEtWl1bYS16QS1aMC05Xy1dezAsNDh9W2EtekEtWjAtOV0kLyxcbiAgICAnU3RhcnRzIHdpdGggJCBvciBhbHBoYSwgMC00OCBhbHBoYW51bS9gX2AvYC1gLCBlbmRzIGFscGhhbnVtLicsXG4gIClcblxuLyoqXG4gKiBQYXJhbWV0ZXIgbmFtZS4gU3RhcnRzIHdpdGggJCBvciBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvbnMvcHJvcGVydHlOYW1lc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJOYW1lRG9sbGFyID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyTmFtZURvbGxhclNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgUGFyYW1ldGVyRG9sbGFyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXJhbWV0ZXJOYW1lRG9sbGFyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUGFyYW1ldGVyTmFtZURvbGxhciB7XG4gIHJldHVybiBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBQYXJhbWV0ZXJEb2xsYXIsIGFkZGluZyAkIHByZWZpeCBpZiBuZWVkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlck5hbWVEb2xsYXIodmFsdWU6IHN0cmluZyk6IFBhcmFtZXRlck5hbWVEb2xsYXIge1xuICAvLyBJZiBpdCBhbHJlYWR5IHN0YXJ0cyB3aXRoICQsIGp1c3QgdmFsaWRhdGUgaXRcbiAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgIHJldHVybiBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLnBhcnNlKHZhbHVlKVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIHdpdGhvdXQgJCB3b3VsZCBiZSB2YWxpZFxuICAvLyBUaGUgcmVnZXggcmVxdWlyZXM6IHN0YXJ0cyB3aXRoIGxldHRlciwgMC00OCBhbHBoYW51bS9fLy0sIGVuZHMgYWxwaGFudW1cbiAgLy8gU28gd2UgbmVlZCBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgdG90YWxcbiAgaWYgKHZhbHVlLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXJ0cyB3aXRoICQgb3IgYWxwaGEsIDAtNDggYWxwaGFudW0vYF9gL2AtYCwgZW5kcyBhbHBoYW51bS4nKVxuICB9XG5cbiAgLy8gRmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsZXR0ZXJcbiAgaWYgKCEvXlthLXpBLVpdLy50ZXN0KHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignU3RhcnRzIHdpdGggJCBvciBhbHBoYSwgMC00OCBhbHBoYW51bS9gX2AvYC1gLCBlbmRzIGFscGhhbnVtLicpXG4gIH1cblxuICAvLyBMYXN0IGNoYXJhY3RlciBtdXN0IGJlIGFscGhhbnVtZXJpY1xuICBpZiAoIS9bYS16QS1aMC05XSQvLnRlc3QodmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdGFydHMgd2l0aCAkIG9yIGFscGhhLCAwLTQ4IGFscGhhbnVtL2BfYC9gLWAsIGVuZHMgYWxwaGFudW0uJylcbiAgfVxuXG4gIC8vIEFkZCAkIHByZWZpeCBhbmQgdmFsaWRhdGUgd2l0aCB0aGUgc2NoZW1hXG4gIGNvbnN0IHdpdGhEb2xsYXIgPSBgJCR7dmFsdWV9YFxuICByZXR1cm4gUGFyYW1ldGVyTmFtZURvbGxhclNjaGVtYS5wYXJzZSh3aXRoRG9sbGFyKVxufVxuXG5jb25zdCBFbnRpdHlOYW1lQmFzZVNjaGVtYSA9IHouc3RyaW5nKCkubWluKDEsICdSZXF1aXJlZCcpLnJlZ2V4KENvbW1vbk5hbWVNaXhlZFJlZ2V4KVxuY29uc3QgRW50aXR5TmFtZUZxblNjaGVtYSA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSwgJ1JlcXVpcmVkJylcbiAgLnJlZ2V4KFxuICAgIC9eZGVmYXVsdFxcL1thLXpBLVpdW2EtekEtWjAtOV8tXXswLDQ4fVthLXpBLVowLTldJC8sXG4gICAgJ0VudGl0eSBuYW1lIG11c3QgYmUgaW4gZm9ybWF0IGRlZmF1bHQvdGFibGUnLFxuICApXG4gIC5kZXNjcmliZSgnRW50aXR5IG5hbWUgaW4gZm9ybWF0IGRlZmF1bHQvdGFibGUnKVxuXG4vLyAjL2RlZmluaXRpb25zL0R5bmFtaWNFbnRpdHlOYW1lXG4vLyAjL2RlZmluaXRpb25zL0VudGl0eU5hbWVcbmV4cG9ydCBjb25zdCBFbnRpdHlOYW1lU2NoZW1hID0gei51bmlvbihbRW50aXR5TmFtZUJhc2VTY2hlbWEsIEVudGl0eU5hbWVGcW5TY2hlbWFdKVxuXG4vKipcbiAqIEVudGl0eSBuYW1lLiBGb3JtYXQ6IGRlZmF1bHQvdGFibGVuYW1lIHdoZXJlIHRhYmxlbmFtZSBzdGFydHMgd2l0aCBsZXR0ZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRW50aXR5TmFtZVxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlOYW1lID0gei5pbmZlcjx0eXBlb2YgRW50aXR5TmFtZVNjaGVtYT5cbmV4cG9ydCBjb25zdCBFbnRpdHlOYW1lQnJhbmRlZCA9IEVudGl0eU5hbWVTY2hlbWFcbi8vLmJyYW5kPCdFbnRpdHlOYW1lJz4oKVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlOYW1lKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRW50aXR5TmFtZSB7XG4gIHJldHVybiBFbnRpdHlOYW1lQnJhbmRlZC5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gZW50aXR5IG5hbWUsIGFkZGluZyBkZWZhdWx0LyBwcmVmaXggaWYgbmVlZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9FbnRpdHlOYW1lKHZhbHVlOiBzdHJpbmcsIHJlcXVpcmVEZWZhdWx0OiBib29sZWFuKTogRW50aXR5TmFtZSB7XG4gIGlmIChyZXF1aXJlRGVmYXVsdCB8fCB2YWx1ZS5zdGFydHNXaXRoKCdkZWZhdWx0LycpKSB7XG4gICAgcmV0dXJuIEVudGl0eU5hbWVGcW5TY2hlbWEucGFyc2UodmFsdWUpXG4gIH0gZWxzZSBpZiAoaXNTcWxpdGVTeXN0ZW1UYWJsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gRW50aXR5TmFtZUJhc2VTY2hlbWEucGFyc2UodmFsdWUpXG4gIH1cbn1cblxuLy8gIy9kZWZpbml0aW9ucy9BY3Rpb25JZERlZmluaXRpb25cbmV4cG9ydCBjb25zdCBBY3Rpb25JZFNjaGVtYSA9IHouc3RyaW5nKCkucmVnZXgoQ29tbW9uTmFtZU1peGVkUmVnZXgpXG4vLy5icmFuZDwnQWN0aW9uSWQnPigpXG4vKipcbiAqIEFjdGlvbiBpZGVudGlmaWVyLiBTdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvbklkID0gei5pbmZlcjx0eXBlb2YgQWN0aW9uSWRTY2hlbWE+XG5cbi8qKlxuICogQ29udmVydHMgdmFsdWUgdG8gdmFsaWRhdGVkIEFjdGlvbklkIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FjdGlvbklkKHZhbHVlOiB1bmtub3duKTogQWN0aW9uSWQge1xuICByZXR1cm4gQWN0aW9uSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIEFjdGlvbklkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb25JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEFjdGlvbklkIHtcbiAgcmV0dXJuIEFjdGlvbklkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vLyAjL2RlZmluaXRpb25zL0ppZ0lkXG5leHBvcnQgY29uc3QgU2NyZWVuSWRTY2hlbWEgPSB6LnN0cmluZygpLnJlZ2V4KENvbW1vbk5hbWVNaXhlZFJlZ2V4KVxuLy8uYnJhbmQ8J1NjcmVlbklkJz4oKVxuLyoqXG4gKiBTY3JlZW4gaWRlbnRpZmllci4gU3RhcnRzIHdpdGggbGV0dGVyLCBjb250YWlucyBsZXR0ZXJzL251bWJlcnMvdW5kZXJzY29yZS9oeXBoZW4sIGVuZHMgd2l0aCBsZXR0ZXIvbnVtYmVyLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0ppZ0lkRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBTY3JlZW5JZCA9IHouaW5mZXI8dHlwZW9mIFNjcmVlbklkU2NoZW1hPlxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIFNjcmVlbklkIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1NjcmVlbklkKHZhbHVlOiB1bmtub3duKTogU2NyZWVuSWQge1xuICByZXR1cm4gU2NyZWVuSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbi8qKlxuICogUGFyc2VzIHZhbHVlIGFzIEV4cHJlc3Npb24gKGlmIHN0YXJ0cyB3aXRoIGA9YCkgb3IgU2NyZWVuSWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1NjcmVlbklkT3JFeHByZXNzaW9uKHZhbHVlOiBzdHJpbmcpOiBTY3JlZW5JZCB8IEV4cHJlc3Npb24ge1xuICByZXR1cm4gdmFsdWUuc3RhcnRzV2l0aCgnPScpID8gdG9FeHByZXNzaW9uKHZhbHVlKSA6IHRvU2NyZWVuSWQodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmVlbklkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU2NyZWVuSWQge1xuICByZXR1cm4gU2NyZWVuSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JFRU5fVFlQRSA9IHtcbiAgQ0FMRU5EQVI6ICdqaWcuY2FsZW5kYXInLFxuICBERUZBVUxUOiAnamlnLmRlZmF1bHQnLFxuICBET0NVTUVOVDogJ2ppZy5kb2N1bWVudCcsXG4gIEZVTExfU0NSRUVOOiAnamlnLmZ1bGwtc2NyZWVuJyxcbiAgR0FMTEVSWTogJ2ppZy5nYWxsZXJ5JyxcbiAgR1JJRDogJ2ppZy5ncmlkJyxcbiAgTElTVDogJ2ppZy5saXN0JyxcbiAgVEFCTEU6ICdqaWcudGFibGUnLFxuICBUQUJTOiAnamlnLnRhYnMnLFxuICBXSVpBUkQ6ICdqaWcud2l6YXJkJyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFNDUkVFTl9UWVBFUyA9IE9iamVjdC52YWx1ZXMoU0NSRUVOX1RZUEUpXG4vKipcbiAqIFNjcmVlbiB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1NjcmVlblR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgU2NyZWVuVHlwZSA9ICh0eXBlb2YgU0NSRUVOX1RZUEUpW2tleW9mIHR5cGVvZiBTQ1JFRU5fVFlQRV1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NyZWVuVHlwZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNjcmVlblR5cGUge1xuICByZXR1cm4gU0NSRUVOX1RZUEVTLmluY2x1ZGVzKHZhbHVlIGFzIFNjcmVlblR5cGUpXG59XG5cbi8vIFJlY3Vyc2l2ZSAoZGlmZmljdWx0IHRvIGV4cHJlc3MgaW4gWm9kKVxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlclZhbHVlU2NoZW1hID0gei51bmlvbihbXG4gIFByaW1pdGl2ZVNjaGVtYSxcbiAgei5hcnJheShQcmltaXRpdmVTY2hlbWEpLFxuICB6LnJlY29yZCh6LnN0cmluZygpLCBQcmltaXRpdmVTY2hlbWEpLFxuXSlcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9UWVBFID0ge1xuICBBQ1RJT05TOiAnd2lkZ2V0LmFjdGlvbnMnLFxuICBBVkFUQVI6ICd3aWRnZXQuYXZhdGFyJyxcbiAgQ0hBUlQ6ICd3aWRnZXQuY2hhcnQnLFxuICBHUk9VUDogJ3dpZGdldC5ncm91cCcsXG4gIElNQUdFOiAnd2lkZ2V0LmltYWdlJyxcbiAgTElTVDogJ3dpZGdldC5saXN0JyxcbiAgTE9DQVRJT046ICd3aWRnZXQubG9jYXRpb24nLFxuICBTVEFUVVM6ICd3aWRnZXQuc3RhdHVzJyxcbiAgVkFMVUU6ICd3aWRnZXQudmFsdWUnLFxufSBhcyBjb25zdFxuXG5jb25zdCBXSURHRVRfVFlQRVMgPSBPYmplY3QudmFsdWVzKFdJREdFVF9UWVBFKVxuZXhwb3J0IGNvbnN0IFdpZGdldFR5cGVFbnVtID0gei5lbnVtKFdJREdFVF9UWVBFUywge1xuICBtZXNzYWdlOiBgTXVzdCBiZSBvbmUgb2Y6ICR7V0lER0VUX1RZUEVTLmpvaW4oJywgJyl9YCxcbn0pXG4vKipcbiAqIFdpZGdldCB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1dpZGdldFR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0VHlwZSA9IHouaW5mZXI8dHlwZW9mIFdpZGdldFR5cGVFbnVtPlxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaWRnZXRUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgV2lkZ2V0VHlwZSB7XG4gIHJldHVybiBXaWRnZXRUeXBlRW51bS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgdmFsdWUuIFN0cmluZywgbnVtYmVyLCBib29sZWFuLCBudWxsLCBhcnJheSwgb3Igb2JqZWN0LlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlclZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtZXRlclZhbHVlID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyVmFsdWVTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJEZWZpbml0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiBOb25FeHByZXNzaW9uU2NoZW1hLmRlc2NyaWJlKCdUeXBlIGZyb20gZGF0YXNvdXJjZScpLFxuICBkZWZhdWx0OiBQYXJhbWV0ZXJWYWx1ZVNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdEZWZhdWx0IHZhbHVlJyksXG4gIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdSZXF1aXJlZCBmbGFnJyksXG59KVxuXG4vKipcbiAqIFBhcmFtZXRlciBkZWZpbml0aW9uIHdpdGggdHlwZSwgZGVmYXVsdCB2YWx1ZSwgYW5kIHJlcXVpcmVkIGZsYWcuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJEZWZpbml0aW9uID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyRGVmaW5pdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlckRlZmluaXRpb25zU2NoZW1hID0gei5yZWNvcmQoXG4gIFBhcmFtZXRlck5hbWVEb2xsYXJTY2hlbWEsXG4gIFBhcmFtZXRlckRlZmluaXRpb25TY2hlbWEsXG4pXG5cbi8qKlxuICogTWFwIG9mIHBhcmFtZXRlciBuYW1lcyAod2l0aCAkKSB0byBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1ldGVyRGVmaW5pdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBQYXJhbWV0ZXJEZWZpbml0aW9uc1NjaGVtYT5cblxuY29uc3QgQ29udmVydEZyb21Ub0VudW0gPSB6XG4gIC5lbnVtKFsnYnVmZmVyJywgJ2xvY2FsLXVyaScsICdiYXNlNjQnLCAnZGF0YS11cmknXSlcbiAgLmRlc2NyaWJlKFxuICAgICdTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBjb252ZXJ0IGZyb20gb3IgdG86IGJ1ZmZlciwgbG9jYWwtdXJpLCBiYXNlNjQsIGRhdGEtdXJpLicsXG4gIClcblxuLyoqXG4gKiBEYXRhIGNvbnZlcnNpb24gdHlwZTogYnVmZmVyLCBsb2NhbC11cmksIGJhc2U2NCwgb3IgZGF0YS11cmkuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVydFRvXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVydEZyb21Ub1xuICovXG5leHBvcnQgdHlwZSBDb252ZXJ0RnJvbVRvID0gei5pbmZlcjx0eXBlb2YgQ29udmVydEZyb21Ub0VudW0+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIENvbnZlcnRGcm9tVG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnZlcnRGcm9tVG8odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDb252ZXJ0RnJvbVRvIHtcbiAgcmV0dXJuIENvbnZlcnRGcm9tVG9FbnVtLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBDb252ZXJ0RnJvbVRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db252ZXJ0RnJvbVRvKHZhbHVlOiBzdHJpbmcpOiBDb252ZXJ0RnJvbVRvIHtcbiAgcmV0dXJuIENvbnZlcnRGcm9tVG9FbnVtLnBhcnNlKHZhbHVlKVxufVxuXG5jb25zdCBDb252ZXJzaW9uRGVmaW5pdGlvbkJhc2UgPSB6Lm9iamVjdCh7XG4gIHByb3BlcnR5OiBDb21tb25OYW1lTWl4ZWRTY2hlbWEuZGVzY3JpYmUoJ05hbWUgb2YgcHJvcGVydHkgdG8gcHJvY2VzcyBjb252ZXJzaW9uIG9uJyksXG4gIGZyb206IENvbnZlcnRGcm9tVG9FbnVtLFxuICBjb252ZXJ0SGVpY1RvSnBnOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdDb252ZXJ0IEhFSUMgdG8gSlBHJyksXG59KVxuXG5leHBvcnQgY29uc3QgQ29udmVyc2lvbkRlZmluaXRpb25TY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbigndG8nLCBbXG4gIENvbnZlcnNpb25EZWZpbml0aW9uQmFzZS5leHRlbmQoe1xuICAgIHRvOiB6LmVudW0oWydidWZmZXInLCAnYmFzZTY0JywgJ2RhdGEtdXJpJ10pLFxuICB9KSxcbiAgQ29udmVyc2lvbkRlZmluaXRpb25CYXNlLmV4dGVuZCh7XG4gICAgdG86IHoubGl0ZXJhbCgnbG9jYWwtdXJpJyksXG4gICAgbG9jYWxGaWxlbmFtZTogTm9uRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdMb2NhbCBmaWxlbmFtZSAob3B0aW9uYWwpJyksXG4gIH0pLFxuXSlcblxuLyoqXG4gKiBEYXRhIGNvbnZlcnNpb24gZGVmaW5pdGlvbiB3aXRoIHByb3BlcnR5LCBmcm9tL3RvIHR5cGVzLCBhbmQgb3B0aW9uYWwgc2V0dGluZ3MuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVyc2lvbkRlZmluaXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgQ29udmVyc2lvbkRlZmluaXRpb24gPSB6LmluZmVyPHR5cGVvZiBDb252ZXJzaW9uRGVmaW5pdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRhYmxlTmFtZVNjaGVtYSA9IENvbW1vbk5hbWVNaXhlZFNjaGVtYVxuICAvLyAuYnJhbmQgPCAnVGFibGVOYW1lJ1xuICAuZGVzY3JpYmUoJ1RhYmxlIE5hbWUuJylcbi8qKlxuICogVGFibGUgbmFtZS4gTWl4ZWQtY2FzZSAyLTUwIGNoYXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFUYWJsZXNEZWZpbml0aW9uL3Byb3BlcnRpZXMvcHJvcGVydHlOYW1lc1xuICovXG5leHBvcnQgdHlwZSBUYWJsZU5hbWUgPSB6LmluZmVyPHR5cGVvZiBUYWJsZU5hbWVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRhYmxlTmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YWJhc2VUYWJsZU5hbWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUYWJsZU5hbWUge1xuICByZXR1cm4gVGFibGVOYW1lU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBUYWJsZU5hbWUsIHJlbW92aW5nIGBkZWZhdWx0L2AgcHJlZml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRhYmFzZVRhYmxlTmFtZSh2YWx1ZTogc3RyaW5nKTogVGFibGVOYW1lIHtcbiAgLy8gSWYgaXQgc3RhcnRzIHdpdGggZGVmYXVsdC8sIHJlbW92ZSBpdFxuICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnZGVmYXVsdC8nKSkge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoOClcbiAgfVxuICByZXR1cm4gVGFibGVOYW1lU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQ29tcG9uZW50SWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpXG4vLyAuYnJhbmQ8J0NvbXBvbmVudElkJz4oKVxuXG4vKipcbiAqIENvbXBvbmVudCBpZGVudGlmaWVyLiBNaXhlZC1jYXNlIDItNTAgY2hhcnMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29tcG9uZW50SWREZWZpbml0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudElkID0gei5pbmZlcjx0eXBlb2YgQ29tcG9uZW50SWRTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIENvbXBvbmVudElkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnRJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIENvbXBvbmVudElkIHtcbiAgcmV0dXJuIENvbXBvbmVudElkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBDb21wb25lbnRJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29tcG9uZW50SWQodmFsdWU6IHN0cmluZyk6IENvbXBvbmVudElkIHtcbiAgcmV0dXJuIENvbXBvbmVudElkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQUNUSU9OX1RZUEUgPSB7XG4gIEFDVElPTl9MSVNUOiAnYWN0aW9uLmFjdGlvbi1saXN0JyxcbiAgQ0xFQVJfUVVFVUU6ICdhY3Rpb24uY2xlYXItcXVldWUnLFxuICBDT05GSVJNOiAnYWN0aW9uLmNvbmZpcm0nLFxuICBERUxFVEVfUVVFVUVfQ09NTUFORDogJ2FjdGlvbi5kZWxldGUtcXVldWUtY29tbWFuZCcsXG4gIERFTEVURV9TWU5DX1NDT1BFOiAnYWN0aW9uLmRlbGV0ZS1zeW5jLXNjb3BlJyxcbiAgREVMRVRFX1NZTkNfU1RBVFVTOiAnYWN0aW9uLmRlbGV0ZS1zeW5jLXN0YXR1cycsXG4gIEVYRUNVVEVfQUNUSU9OOiAnYWN0aW9uLmV4ZWN1dGUtYWN0aW9uJyxcbiAgRVhFQ1VURV9FTlRJVElFUzogJ2FjdGlvbi5leGVjdXRlLWVudGl0aWVzJyxcbiAgRVhFQ1VURV9FTlRJVFk6ICdhY3Rpb24uZXhlY3V0ZS1lbnRpdHknLFxuICBFWEVDVVRFX1NRTDogJ2FjdGlvbi5leGVjdXRlLXNxbCcsXG4gIEVWQUxVQVRFOiAnYWN0aW9uLmV2YWx1YXRlJyxcbiAgRklORF9SRVBMQUNFOiAnYWN0aW9uLmZpbmQtcmVwbGFjZScsXG4gIEdFTkVSQVRFX0ZJTEU6ICdhY3Rpb24uZ2VuZXJhdGUtZmlsZScsXG4gIEdFTkVSQVRFX1BERjogJ2FjdGlvbi5nZW5lcmF0ZS1wZGYnLFxuICBHT19CQUNLOiAnYWN0aW9uLmdvLWJhY2snLFxuICBHT19UTzogJ2FjdGlvbi5nby10bycsXG4gIElORk9fTU9EQUw6ICdhY3Rpb24uaW5mby1tb2RhbCcsXG4gIE9QRU5fQVBQX1NFVFRJTkdTOiAnYWN0aW9uLm9wZW4tYXBwLXNldHRpbmdzJyxcbiAgT1BFTl9NQVA6ICdhY3Rpb24ub3Blbi1tYXAnLFxuICBPUEVOX01FRElBX1BJQ0tFUjogJ2FjdGlvbi5vcGVuLW1lZGlhLXBpY2tlcicsXG4gIE9QRU5fU0NBTk5FUjogJ2FjdGlvbi5vcGVuLXNjYW5uZXInLFxuICBPUEVOX1VSTDogJ2FjdGlvbi5vcGVuLXVybCcsXG4gIFBSSU5UOiAnYWN0aW9uLnByaW50JyxcbiAgUkVTRVRfQ09NUE9ORU5UX1NUQVRFOiAnYWN0aW9uLnJlc2V0LWNvbXBvbmVudC1zdGF0ZScsXG4gIFJFU0VUX0pJR19TVEFURTogJ2FjdGlvbi5yZXNldC1qaWctc3RhdGUnLFxuICBSRVNFVF9TT0xVVElPTl9TVEFURTogJ2FjdGlvbi5yZXNldC1zb2x1dGlvbi1zdGF0ZScsXG4gIFJFU0VUX1NUQVRFOiAnYWN0aW9uLnJlc2V0LXN0YXRlJyxcbiAgUkVUUllfUVVFVUVfQ09NTUFORDogJ2FjdGlvbi5yZXRyeS1xdWV1ZS1jb21tYW5kJyxcbiAgU0VUX0FDVElWRV9UQUI6ICdhY3Rpb24uc2V0LWFjdGl2ZS10YWInLFxuICBTRVRfSklHX1NUQVRFOiAnYWN0aW9uLnNldC1qaWctc3RhdGUnLFxuICBTRVRfU09MVVRJT05fU1RBVEU6ICdhY3Rpb24uc2V0LXNvbHV0aW9uLXN0YXRlJyxcbiAgU0VUX1NUQVRFOiAnYWN0aW9uLnNldC1zdGF0ZScsXG4gIFNIQVJFOiAnYWN0aW9uLnNoYXJlJyxcbiAgU0hPV19BTEVSVDogJ2FjdGlvbi5zaG93LWFsZXJ0JyxcbiAgU1RBUlRfTE9DQVRJT05fU0hBUklORzogJ2FjdGlvbi5zdGFydC1sb2NhdGlvbi1zaGFyaW5nJyxcbiAgU1RBUlRfU1lOQ19TQ09QRTogJ2FjdGlvbi5zdGFydC1zeW5jLXNjb3BlJyxcbiAgU1RPUF9MT0NBVElPTl9TSEFSSU5HOiAnYWN0aW9uLnN0b3AtbG9jYXRpb24tc2hhcmluZycsXG4gIFNVQk1JVF9GT1JNOiAnYWN0aW9uLnN1Ym1pdC1mb3JtJyxcbiAgU1lOQ19FTlRJVElFUzogJ2FjdGlvbi5zeW5jLWVudGl0aWVzJyxcbiAgVVBEQVRFX1BST0ZJTEU6ICdhY3Rpb24udXBkYXRlLXByb2ZpbGUnLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQWN0aW9uVHlwZVNjaGVtYSA9IHouZW51bShBQ1RJT05fVFlQRSwge1xuICBlcnJvcjogYE11c3QgYmUgb25lIG9mOiAke09iamVjdC52YWx1ZXMoQUNUSU9OX1RZUEUpLmpvaW4oJywgJyl9YCxcbn0pXG5cbi8qKlxuICogQWN0aW9uIHR5cGUgZW51bWVyYXRpb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQWN0aW9uVHlwZVxuICovXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlID0gei5pbmZlcjx0eXBlb2YgQWN0aW9uVHlwZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IERhdGFiYXNlSWRTY2hlbWEgPSB6XG4gIC5saXRlcmFsKCdkZWZhdWx0JylcbiAgLy8uYnJhbmQ8J0RhdGFiYXNlSWQnPigpXG4gIC5kZXNjcmliZSgnTmFtZSBvZiBkYXRhYmFzZS4gQWx3YXlzIG5hbWVkIGBkZWZhdWx0YC4nKVxuXG4vKipcbiAqIERhdGFiYXNlIGlkZW50aWZpZXIuIEFsd2F5cyAnZGVmYXVsdCcuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRGF0YWJhc2VJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhYmFzZUlkID0gei5pbmZlcjx0eXBlb2YgRGF0YWJhc2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRGF0YWJhc2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YWJhc2VJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFiYXNlSWQge1xuICByZXR1cm4gRGF0YWJhc2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gRGF0YWJhc2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0YWJhc2VJZCh2YWx1ZTogc3RyaW5nKTogRGF0YWJhc2VJZCB7XG4gIHJldHVybiBEYXRhYmFzZUlkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdERhdGFiYXNlSWQ6IERhdGFiYXNlSWQgPSB0b0RhdGFiYXNlSWQoJ2RlZmF1bHQnKVxuXG4vLyBjb25zdCBEYXRhVGFibGVzU2NoZW1hID0gei5yZWNvcmQoVGFibGVOYW1lU2NoZW1hLCB6Lm51bGwoKSlcblxuLy8gZXhwb3J0IGNvbnN0IERhdGFiYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuLy8gICBkYXRhYmFzZUlkOiBEYXRhYmFzZUlkU2NoZW1hLFxuLy8gICB0YWJsZXM6IERhdGFUYWJsZXNTY2hlbWFcbi8vIH0pXG5cbi8vIGV4cG9ydCB0eXBlIERhdGFiYXNlID0gei5pbmZlcjx0eXBlb2YgRGF0YWJhc2VTY2hlbWE+XG5cbi8vIGV4cG9ydCBjb25zdCBEYXRhYmFzZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4vLyAgIGRlZmF1bHQ6IERhdGFiYXNlU2NoZW1hXG4vLyB9KVxuXG4vLyBleHBvcnQgdHlwZSBEYXRhYmFzZXMgPSB6LmluZmVyPHR5cGVvZiBEYXRhYmFzZXNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBEYXRhc291cmNlSWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpXG4vLy5icmFuZDwnRGF0YXNvdXJjZUlkJz4oKVxuXG4vKipcbiAqIERhdGFzb3VyY2UgaWRlbnRpZmllci4gTWl4ZWQtY2FzZSAyLTUwIGNoYXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFzb3VyY2VJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhc291cmNlSWQgPSB6LmluZmVyPHR5cGVvZiBEYXRhc291cmNlSWRTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIERhdGFzb3VyY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YXNvdXJjZUlkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRGF0YXNvdXJjZUlkIHtcbiAgcmV0dXJuIERhdGFzb3VyY2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBEYXRhc291cmNlSWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGFzb3VyY2VJZCh2YWx1ZTogdW5rbm93bik6IERhdGFzb3VyY2VJZCB7XG4gIHJldHVybiBEYXRhc291cmNlSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBEQVRBU09VUkNFX1RZUEUgPSB7XG4gIFNRTElURTogJ2RhdGFzb3VyY2Uuc3FsaXRlJyxcbiAgU1RBVElDOiAnZGF0YXNvdXJjZS5zdGF0aWMnLFxuICBTWVNURU06ICdkYXRhc291cmNlLnN5c3RlbScsXG4gIFJFRkVSRU5DRTogJ2RhdGFzb3VyY2UucmVmZXJlbmNlJyxcbn0gYXMgY29uc3RcblxuY29uc3QgREFUQVNPVVJDRV9UWVBFUyA9IE9iamVjdC52YWx1ZXMoREFUQVNPVVJDRV9UWVBFKVxuZXhwb3J0IGNvbnN0IERhdGFzb3VyY2VUeXBlRW51bSA9IHouZW51bShEQVRBU09VUkNFX1RZUEVTLCB7XG4gIGVycm9yOiBgTXVzdCBiZSBvbmUgb2Y6ICR7REFUQVNPVVJDRV9UWVBFUy5qb2luKCcsICcpfWAsXG59KVxuXG4vKipcbiAqIERhdGFzb3VyY2UgdHlwZSBlbnVtZXJhdGlvbi5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9EYXRhc291cmNlVHlwZVxuICovXG5leHBvcnQgdHlwZSBEYXRhc291cmNlVHlwZSA9IHouaW5mZXI8dHlwZW9mIERhdGFzb3VyY2VUeXBlRW51bT5cblxuZXhwb3J0IGNvbnN0IEZ1bmN0aW9uSWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpIC8vLmJyYW5kPCdGdW5jdGlvbklkJz4oKVxuXG4vKipcbiAqIEZ1bmN0aW9uIGlkZW50aWZpZXIuIE1peGVkLWNhc2UgMi01MCBjaGFycy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9GdW5jdGlvbklkRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBGdW5jdGlvbklkID0gei5pbmZlcjx0eXBlb2YgRnVuY3Rpb25JZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRnVuY3Rpb25JZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb25JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEZ1bmN0aW9uSWQge1xuICByZXR1cm4gRnVuY3Rpb25JZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBGdW5jdGlvbklkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9GdW5jdGlvbklkKHZhbHVlOiB1bmtub3duKTogRnVuY3Rpb25JZCB7XG4gIHJldHVybiBGdW5jdGlvbklkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG4vKipcbiAqIERhdGEgcHJvdmlkZXIgdHlwZSBjb25zdGFudHMgZm9yIGV4ZWN1dGUgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IERBVEFfUFJPVklERVIgPSB7XG4gIE9ORURSSVZFOiAnREFUQV9QUk9WSURFUl9PTkVEUklWRScsXG4gIFNBTEVTRk9SQ0U6ICdEQVRBX1BST1ZJREVSX1NBTEVTRk9SQ0UnLFxuICBTUUw6ICdEQVRBX1BST1ZJREVSX1NRTCcsXG4gIFJFU1Q6ICdEQVRBX1BST1ZJREVSX1JFU1QnLFxuICBTT0FQOiAnREFUQV9QUk9WSURFUl9TT0FQJyxcbiAgRFlOQU1JQzogJ0RBVEFfUFJPVklERVJfRFlOQU1JQycsXG4gIExPQ0FMOiAnREFUQV9QUk9WSURFUl9MT0NBTCcsXG4gIERZTkFNSUNfRklMRTogJ0RBVEFfUFJPVklERVJfRFlOQU1JQ19GSUxFJyxcbn0gYXMgY29uc3RcblxuY29uc3QgREFUQV9QUk9WSURFUlMgPSBPYmplY3QudmFsdWVzKERBVEFfUFJPVklERVIpXG5leHBvcnQgY29uc3QgRGF0YVByb3ZpZGVyRW51bSA9IHouZW51bShEQVRBX1BST1ZJREVSUywge1xuICBlcnJvcjogYE11c3QgYmUgb25lIG9mOiAke0RBVEFfUFJPVklERVJTLmpvaW4oJywgJyl9YCxcbn0pXG5cbi8qKlxuICogRGF0YSBwcm92aWRlciB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1Byb3ZpZGVyVHlwZVxuICovXG5leHBvcnQgdHlwZSBEYXRhUHJvdmlkZXIgPSB6LmluZmVyPHR5cGVvZiBEYXRhUHJvdmlkZXJFbnVtPlxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBEYXRhUHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGFQcm92aWRlcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFQcm92aWRlciB7XG4gIHJldHVybiBEYXRhUHJvdmlkZXJFbnVtLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG5leHBvcnQgY29uc3QgQ29tbW9uTmFtZUxvd2VyID0gelxuICAuc3RyaW5nKClcbiAgLnJlZ2V4KFxuICAgIC9eW2Etel1bYS16MC05Xy1dezAsNDh9W2EtejAtOV0kLyxcbiAgICAnTG93ZXJjYXNlIDItNTAsIHByZWZlciBrZWJhYi1jYXNlLCBzdGFydHMgYWxwaGEsIGNvbnRhaW5zIGFscGhhbnVtIGFuZCBgLWAsIGVuZHMgYWxwaGFudW0uJyxcbiAgKVxuXG4vKipcbiAqIExvd2VyY2FzZSBpZGVudGlmaWVyLiAyLTUwIGNoYXJzLCBzdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbW9uTmFtZUxvd2VyID0gei5pbmZlcjx0eXBlb2YgQ29tbW9uTmFtZUxvd2VyPlxuXG5leHBvcnQgY29uc3QgQ29tbW9uTmFtZSA9IHpcbiAgLnN0cmluZygpXG4gIC5yZWdleChcbiAgICAvXlthLXpBLVpdW2EtekEtWjAtOV8tXXswLDQ4fVthLXpBLVowLTldJC8sXG4gICAgJzItNTAgY2hhcnMsIHN0YXJ0cyB3aXRoIGxldHRlciwgY29udGFpbnMgbGV0dGVycy9udW1iZXJzL3VuZGVyc2NvcmUvaHlwaGVuLicsXG4gIClcblxuLyoqXG4gKiAyLTUwIGNoYXJzLCBzdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbW9uTmFtZSA9IHouaW5mZXI8dHlwZW9mIENvbW1vbk5hbWU+XG5cbi8qKlxuICogTWFwIG9mIGxvd2VyY2FzZSBuYW1lcyB0byBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IEV4cHJlc3Npb25zU2NoZW1hID0gei5yZWNvcmQoQ29tbW9uTmFtZUxvd2VyLCBFeHByZXNzaW9uU2NoZW1hKS5kZWZhdWx0KHt9KVxuXG5leHBvcnQgY29uc3QgSW5wdXRFeHByZXNzaW9uc1NjaGVtYSA9IHpcbiAgLnJlY29yZChDb21tb25OYW1lTG93ZXIsIHoudW5pb24oW1ByaW1pdGl2ZVNjaGVtYSwgRXhwcmVzc2lvblNjaGVtYSwgei5hbnkoKV0pKVxuICAuZGVzY3JpYmUoJ05hbWVkIElucHV0cyB3aXRoIHZhbHVlcyBvciBleHByZXNzaW9ucycpXG5cbi8qKlxuICogTWFwIG9mIGxvd2VyY2FzZSBuYW1lcyB0byBwcmltaXRpdmUgdmFsdWVzIG9yIGV4cHJlc3Npb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0lucHV0RXhwcmVzc2lvbnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRFeHByZXNzaW9ucyA9IHouaW5mZXI8dHlwZW9mIElucHV0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJFeHByZXNzaW9uc1NjaGVtYSA9IHpcbiAgLnJlY29yZChcbiAgICBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLFxuICAgIC8vIGRpZmZlcmVuY2UgZnJvbSBtb2JpbGUtcnVudGltZSBzY2hlbWFzLCBidXQgcnVudGltZSBzdXBwb3J0cyBvYmplY3QgYXMgcGFyYW1ldGVyIHZhbHVlXG4gICAgei51bmlvbihbUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLCB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSldKSxcbiAgKVxuICAuZGVzY3JpYmUoJ05hbWVkIHBhcmFtZXRlcnMgd2l0aCB2YWx1ZXMsIGV4cHJlc3Npb25zLCBvciBvYmplY3RzJylcblxuLyoqXG4gKiBNYXAgb2YgcGFyYW1ldGVyIG5hbWVzICh3aXRoICQpIHRvIHByaW1pdGl2ZSB2YWx1ZXMsIGV4cHJlc3Npb25zLCBvciBvYmplY3RzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlckV4cHJlc3Npb25zXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtZXRlckV4cHJlc3Npb25zID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyRXhwcmVzc2lvbnNTY2hlbWE+XG5cbmNvbnN0IEJhc2ljQ29sb3JTY2hlbWEgPSB6LmVudW0oW1xuICAnY29sb3IxJyxcbiAgJ2NvbG9yMicsXG4gICdjb2xvcjMnLFxuICAnY29sb3I0JyxcbiAgJ2NvbG9yNScsXG4gICdjb2xvcjYnLFxuICAnY29sb3I3JyxcbiAgJ2NvbG9yOCcsXG4gICdjb2xvcjknLFxuICAnY29sb3IxMCcsXG4gICdjb2xvcjExJyxcbiAgJ2NvbG9yMTInLFxuICAnY29sb3IxMycsXG4gICdjb2xvcjE0Jyxcbl0pXG5cbi8qKlxuICogQmFzaWMgY29sb3IgcGFsZXR0ZTogY29sb3IxIHRocm91Z2ggY29sb3IxNC5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9CYXNpY0NvbG9yXG4gKi9cbi8vIGV4cG9ydCB0eXBlIEJhc2ljQ29sb3IgPSB6LmluZmVyPHR5cGVvZiBCYXNpY0NvbG9yU2NoZW1hPlxuXG5jb25zdCBTdGF0dXNDb2xvclNjaGVtYSA9IHouZW51bShbJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ3dhcm5pbmcnXSlcblxuLyoqXG4gKiBTdGF0dXMgY29sb3I6IHBvc2l0aXZlLCBuZWdhdGl2ZSwgb3Igd2FybmluZy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TdGF0dXNDb2xvclxuICovXG4vLyBleHBvcnQgdHlwZSBTdGF0dXNDb2xvciA9IHouaW5mZXI8dHlwZW9mIFN0YXR1c0NvbG9yU2NoZW1hPlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBDb21wb25lbnRDb2xvclNjaGVtYSA9IHoudW5pb24oW0Jhc2ljQ29sb3JTY2hlbWEsIFN0YXR1c0NvbG9yU2NoZW1hXSlcblxuLyoqXG4gKiBDb21wb25lbnQgY29sb3IuIEJhc2ljIHBhbGV0dGUgb3Igc3RhdHVzIGNvbG9yLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbXBvbmVudENvbG9yXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudENvbG9yID0gei5pbmZlcjx0eXBlb2YgQ29tcG9uZW50Q29sb3JTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBDb2xvclZhbHVlU2NoZW1hID0gei51bmlvbihbXG4gIHoubGl0ZXJhbCgncHJpbWFyeScpLFxuICBCYXNpY0NvbG9yU2NoZW1hLFxuICBTdGF0dXNDb2xvclNjaGVtYSxcbiAgRXhwcmVzc2lvblNjaGVtYSxcbl0pXG5cbi8qKlxuICogQ29sb3IgdmFsdWUgc3RyaW5nLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbG9yVmFsdWVcbiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JWYWx1ZSA9IHouaW5mZXI8dHlwZW9mIENvbG9yVmFsdWVTY2hlbWE+XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbG9yVmFsdWUodmFsdWU6IHVua25vd24pOiBDb2xvclZhbHVlIHtcbiAgcmV0dXJuIENvbG9yVmFsdWVTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbG9yVmFsdWVPckNvbmRpdGlvbnModmFsdWU6IHVua25vd24pOiBDb2xvclZhbHVlT3JDb25kaXRpb25zIHtcbiAgcmV0dXJuIENvbG9yVmFsdWVPckNvbmRpdGlvbnNTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBDb2xvckNvbmRpdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgd2hlbjogei51bmlvbihbei5zdHJpbmcoKSwgei5ib29sZWFuKCldKSxcbiAgY29sb3I6IENvbG9yVmFsdWVTY2hlbWEsXG59KVxuXG4vKipcbiAqIENvbG9yIGNvbmRpdGlvbiB3aXRoIHdoZW4gY2xhdXNlIGFuZCBjb2xvciB2YWx1ZS5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9Db2xvckNvbmRpdGlvblxuICovXG5leHBvcnQgdHlwZSBDb2xvckNvbmRpdGlvbiA9IHouaW5mZXI8dHlwZW9mIENvbG9yQ29uZGl0aW9uU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgQ29sb3JWYWx1ZU9yQ29uZGl0aW9uc1NjaGVtYSA9IHpcbiAgLnVuaW9uKFtDb2xvclZhbHVlU2NoZW1hLCB6LmFycmF5KENvbG9yQ29uZGl0aW9uU2NoZW1hKV0pXG4gIC5kZXNjcmliZSgnQ29sb3IgZGVmaW5pdGlvbiBjYW4gYmUgZWl0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIG9yIGEgc2luZ2xlIGNvbG9yIHZhbHVlJylcblxuLyoqXG4gKiBDb2xvciB2YWx1ZSBvciBhcnJheSBvZiBjb2xvciBjb25kaXRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbG9yVmFsdWVPckNvbmRpdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JWYWx1ZU9yQ29uZGl0aW9ucyA9IHouaW5mZXI8dHlwZW9mIENvbG9yVmFsdWVPckNvbmRpdGlvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBKaWdQcmV2aWV3Q29uZmlndXJhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgnUHJldmlldyB0aXRsZScpLFxuICBzdWJ0aXRsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdQcmV2aWV3IHN1YnRpdGxlJyksXG4gIGltYWdlOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ1ByZXZpZXcgaW1hZ2UgVVJMJyksXG59KVxuXG4vKipcbiAqIEppZyBwcmV2aWV3IHdpdGggdGl0bGUsIHN1YnRpdGxlLCBhbmQgaW1hZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIEppZ1ByZXZpZXdUeXBlID0gei5pbmZlcjx0eXBlb2YgSmlnUHJldmlld0NvbmZpZ3VyYXRpb25TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYWxldHRlQ29sb3JTY2hlbWEgPSB6LmVudW0oW1xuICAnZWxlbWVudCcsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ29uQmFja2dyb3VuZCcsXG4gICdzY3JlZW4nLFxuICAnY2FyZCcsXG4gICdjb2xvcjEwJyxcbiAgJ2NvbG9yMTEnLFxuICAnY29sb3IxMicsXG4gICdjb2xvcjEzJyxcbiAgJ2NvbG9yMTQnLFxuICAnY29sb3IxJyxcbiAgJ2NvbG9yMicsXG4gICdjb2xvcjMnLFxuICAnY29sb3I0JyxcbiAgJ2NvbG9yNScsXG4gICdjb2xvcjYnLFxuICAnY29sb3I3JyxcbiAgJ2NvbG9yOCcsXG4gICdjb2xvcjknLFxuICAnb3ZlcmxheScsXG4gICdvbk92ZXJsYXknLFxuICAnbGluaycsXG4gICduYXZpZ2F0aW9uJyxcbiAgJ29uTmF2aWdhdGlvbicsXG4gICduZWdhdGl2ZScsXG4gICdvblNjcmVlbicsXG4gICdvbkNhcmQnLFxuICAnb25Db2xvcjEwJyxcbiAgJ29uQ29sb3IxMScsXG4gICdvbkNvbG9yMTInLFxuICAnb25Db2xvcjEzJyxcbiAgJ29uQ29sb3IxNCcsXG4gICdvbkNvbG9yMScsXG4gICdvbkNvbG9yMicsXG4gICdvbkNvbG9yMycsXG4gICdvbkNvbG9yNCcsXG4gICdvbkNvbG9yNScsXG4gICdvbkNvbG9yNicsXG4gICdvbkNvbG9yNycsXG4gICdvbkNvbG9yOCcsXG4gICdvbkNvbG9yOScsXG4gICdvbkVsZW1lbnQnLFxuICAnb25OZWdhdGl2ZScsXG4gICdvblBvc2l0aXZlJyxcbiAgJ29uUHJpbWFyeScsXG4gICdvblNlY29uZGFyeScsXG4gICdvblNwbGFzaCcsXG4gICdvblRvYXN0JyxcbiAgJ29uV2FybmluZycsXG4gICdwb3NpdGl2ZScsXG4gICdwcmltYXJ5JyxcbiAgJ3NlY29uZGFyeScsXG4gICdzcGxhc2gnLFxuICAndG9hc3QnLFxuICAndHJhbnNwYXJlbnQnLFxuICAnd2FybmluZycsXG5dKVxuXG4vKipcbiAqIEZ1bGwgcGFsZXR0ZSBjb2xvciBpbmNsdWRpbmcgc2VtYW50aWMgYW5kIG51bWJlcmVkIGNvbG9ycy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9QYWxldHRlQ29sb3JcbiAqL1xuZXhwb3J0IHR5cGUgUGFsZXR0ZUNvbG9yID0gei5pbmZlcjx0eXBlb2YgUGFsZXR0ZUNvbG9yU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dE51bWJlclN0eWxlU2NoZW1hID0gei5lbnVtKFsnZGVjaW1hbCcsICdjdXJyZW5jeScsICdwZXJjZW50JywgJ3VuaXQnXSlcbmV4cG9ydCB0eXBlIFRleHROdW1iZXJTdHlsZSA9IHouaW5mZXI8dHlwZW9mIFRleHROdW1iZXJTdHlsZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRTaWduRGlzcGxheVNjaGVtYSA9IHouZW51bShbJ2F1dG8nLCAnYWx3YXlzJywgJ25ldmVyJ10pXG5leHBvcnQgdHlwZSBUZXh0U2lnbkRpc3BsYXkgPSB6LmluZmVyPHR5cGVvZiBUZXh0U2lnbkRpc3BsYXlTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0VW5pdERpc3BsYXlTY2hlbWEgPSB6LmVudW0oWydsb25nJywgJ3Nob3J0JywgJ25hcnJvdyddKVxuZXhwb3J0IHR5cGUgVGV4dFVuaXREaXNwbGF5ID0gei5pbmZlcjx0eXBlb2YgVGV4dFVuaXREaXNwbGF5U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dE51bWJlcmluZ1N5c3RlbVNjaGVtYSA9IHouZW51bShbXG4gICdhcmFiJyxcbiAgJ2FyYWJleHQnLFxuICAnYmFsaScsXG4gICdiZW5nJyxcbiAgJ2RldmEnLFxuICAnZnVsbHdpZGUnLFxuICAnZ3VqcicsXG4gICdndXJ1JyxcbiAgJ2hhbmlkZWMnLFxuICAna2htcicsXG4gICdrbmRhJyxcbiAgJ2xhb28nLFxuICAnbGF0bicsXG4gICdsaW1iJyxcbiAgJ21seW0nLFxuICAnbW9uZycsXG4gICdteW1yJyxcbiAgJ29yeWEnLFxuICAndGFtbGRlYycsXG4gICd0ZWx1JyxcbiAgJ3RoYWknLFxuICAndGlidCcsXG5dKVxuZXhwb3J0IHR5cGUgVGV4dE51bWJlcmluZ1N5c3RlbSA9IHouaW5mZXI8dHlwZW9mIFRleHROdW1iZXJpbmdTeXN0ZW1TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Tm90YXRpb25TY2hlbWEgPSB6LmVudW0oWydzdGFuZGFyZCcsICdzY2llbnRpZmljJywgJ2VuZ2luZWVyaW5nJywgJ2NvbXBhY3QnXSlcbmV4cG9ydCB0eXBlIFRleHROb3RhdGlvbiA9IHouaW5mZXI8dHlwZW9mIFRleHROb3RhdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRDb21wYWN0RGlzcGxheVNjaGVtYSA9IHouZW51bShbJ3Nob3J0JywgJ2xvbmcnXSlcbmV4cG9ydCB0eXBlIFRleHRDb21wYWN0RGlzcGxheSA9IHouaW5mZXI8dHlwZW9mIFRleHRDb21wYWN0RGlzcGxheVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRDdXJyZW5jeURpc3BsYXlTY2hlbWEgPSB6LmVudW0oWydzeW1ib2wnLCAnY29kZScsICduYW1lJywgJ25hcnJvd1N5bWJvbCddKVxuZXhwb3J0IHR5cGUgVGV4dEN1cnJlbmN5RGlzcGxheSA9IHouaW5mZXI8dHlwZW9mIFRleHRDdXJyZW5jeURpc3BsYXlTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Q3VycmVuY3lTaWduU2NoZW1hID0gei5lbnVtKFsnc3RhbmRhcmQnLCAnYWNjb3VudGluZyddKVxuZXhwb3J0IHR5cGUgVGV4dEN1cnJlbmN5U2lnbiA9IHouaW5mZXI8dHlwZW9mIFRleHRDdXJyZW5jeVNpZ25TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0RGF0ZUZvcm1hdFNjaGVtYSA9IHoudW5pb24oW3ouc3RyaW5nKCksIHouZW51bShbJ2RlZmF1bHQnLCAnZnJvbU5vdycsICd0b05vdyddKV0pXG5leHBvcnQgdHlwZSBUZXh0RGF0ZUZvcm1hdCA9IHouaW5mZXI8dHlwZW9mIFRleHREYXRlRm9ybWF0U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgQ3VycmVuY3lDb2Rlc1NjaGVtYSA9IHouZW51bShbXG4gICdBRUQnLCAvLyAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgRGlyaGFtJ1xuICAnQUZOJywgLy8gJ0FmZ2hhbiBBZmdoYW5pJ1xuICAnQUxMJywgLy8gJ0FsYmFuaWFuIExlaydcbiAgJ0FNRCcsIC8vICdBcm1lbmlhbiBEcmFtJ1xuICAnQU5HJywgLy8gJ05ldGhlcmxhbmRzIEFudGlsbGVhbiBHdWlsZGVyJ1xuICAnQU9BJywgLy8gJ0FuZ29sYW4gS3dhbnphJ1xuICAnQVJTJywgLy8gJ0FyZ2VudGluZSBQZXNvJ1xuICAnQVVEJywgLy8gJ0F1c3RyYWxpYW4gRG9sbGFyJ1xuICAnQVdHJywgLy8gJ0FydWJhbiBGbG9yaW4nXG4gICdBWk4nLCAvLyAnQXplcmJhaWphbmkgTWFuYXQnXG4gICdCQU0nLCAvLyAnQm9zbmlhLUhlcnplZ292aW5hIENvbnZlcnRpYmxlIE1hcmsnXG4gICdCQkQnLCAvLyAnQmFyYmFkaWFuIERvbGxhcidcbiAgJ0JEVCcsIC8vICdCYW5nbGFkZXNoaSBUYWthJ1xuICAnQkdOJywgLy8gJ0J1bGdhcmlhbiBMZXYnXG4gICdCSEQnLCAvLyAnQmFocmFpbmkgRGluYXInXG4gICdCSUYnLCAvLyAnQnVydW5kaWFuIEZyYW5jJ1xuICAnQk1EJywgLy8gJ0Jlcm11ZGlhbiBEb2xsYXInXG4gICdCTkQnLCAvLyAnQnJ1bmVpIERvbGxhcidcbiAgJ0JPQicsIC8vICdCb2xpdmlhbiBCb2xpdmlhbm8nXG4gICdCUkwnLCAvLyAnQnJhemlsaWFuIFJlYWwnXG4gICdCU0QnLCAvLyAnQmFoYW1pYW4gRG9sbGFyJ1xuICAnQlROJywgLy8gJ0JodXRhbmVzZSBOZ3VsdHJ1bSdcbiAgJ0JXUCcsIC8vICdCb3Rzd2FuYW4gUHVsYSdcbiAgJ0JZTicsIC8vICdCZWxhcnVzaWFuIFJ1YmxlJ1xuICAnQlpEJywgLy8gJ0JlbGl6ZSBEb2xsYXInXG4gICdDQUQnLCAvLyAnQ2FuYWRpYW4gRG9sbGFyJ1xuICAnQ0RGJywgLy8gJ0NvbmdvbGVzZSBGcmFuYydcbiAgJ0NIRicsIC8vICdTd2lzcyBGcmFuYydcbiAgJ0NMUCcsIC8vICdDaGlsZWFuIFBlc28nXG4gICdDTlknLCAvLyAnQ2hpbmVzZSBZdWFuJ1xuICAnQ09QJywgLy8gJ0NvbG9tYmlhbiBQZXNvJ1xuICAnQ1JDJywgLy8gJ0Nvc3RhIFJpY2FuIENvbMOzbidcbiAgJ0NVUCcsIC8vICdDdWJhbiBQZXNvJ1xuICAnQ1ZFJywgLy8gJ0NhcGUgVmVyZGVhbiBFc2N1ZG8nXG4gICdDWksnLCAvLyAnQ3plY2ggS29ydW5hJ1xuICAnREpGJywgLy8gJ0RqaWJvdXRpYW4gRnJhbmMnXG4gICdES0snLCAvLyAnRGFuaXNoIEtyb25lJ1xuICAnRE9QJywgLy8gJ0RvbWluaWNhbiBQZXNvJ1xuICAnRFpEJywgLy8gJ0FsZ2VyaWFuIERpbmFyJ1xuICAnRUdQJywgLy8gJ0VneXB0aWFuIFBvdW5kJ1xuICAnRVJOJywgLy8gJ0VyaXRyZWFuIE5ha2ZhJ1xuICAnRVRCJywgLy8gJ0V0aGlvcGlhbiBCaXJyJ1xuICAnRVVSJywgLy8gJ0V1cm8nXG4gICdGSkQnLCAvLyAnRmlqaWFuIERvbGxhcidcbiAgJ0ZLUCcsIC8vICdGYWxrbGFuZCBJc2xhbmRzIFBvdW5kJ1xuICAnRk9LJywgLy8gJ0Zhcm9lc2UgS3LDs25hJ1xuICAnR0JQJywgLy8gJ0JyaXRpc2ggUG91bmQgU3RlcmxpbmcnXG4gICdHRUwnLCAvLyAnR2VvcmdpYW4gTGFyaSdcbiAgJ0dHUCcsIC8vICdHdWVybnNleSBQb3VuZCdcbiAgJ0dIUycsIC8vICdHaGFuYWlhbiBDZWRpJ1xuICAnR0lQJywgLy8gJ0dpYnJhbHRhciBQb3VuZCdcbiAgJ0dNRCcsIC8vICdHYW1iaWFuIERhbGFzaSdcbiAgJ0dORicsIC8vICdHdWluZWFuIEZyYW5jJ1xuICAnR1RRJywgLy8gJ0d1YXRlbWFsYW4gUXVldHphbCdcbiAgJ0dZRCcsIC8vICdHdXlhbmFlc2UgRG9sbGFyJ1xuICAnSEtEJywgLy8gJ0hvbmcgS29uZyBEb2xsYXInXG4gICdITkwnLCAvLyAnSG9uZHVyYW4gTGVtcGlyYSdcbiAgJ0hSSycsIC8vICdDcm9hdGlhbiBLdW5hJ1xuICAnSFRHJywgLy8gJ0hhaXRpYW4gR291cmRlJ1xuICAnSFVGJywgLy8gJ0h1bmdhcmlhbiBGb3JpbnQnXG4gICdJRFInLCAvLyAnSW5kb25lc2lhbiBSdXBpYWgnXG4gICdJTFMnLCAvLyAnSXNyYWVsaSBOZXcgU2hla2VsJ1xuICAnSU1QJywgLy8gJ0lzbGUgb2YgTWFuIFBvdW5kJ1xuICAnSU5SJywgLy8gJ0luZGlhbiBSdXBlZSdcbiAgJ0lRRCcsIC8vICdJcmFxaSBEaW5hcidcbiAgJ0lSUicsIC8vICdJcmFuaWFuIFJpYWwnXG4gICdJU0snLCAvLyAnSWNlbGFuZGljIEtyw7NuYSdcbiAgJ0pFUCcsIC8vICdKZXJzZXkgUG91bmQnXG4gICdKTUQnLCAvLyAnSmFtYWljYW4gRG9sbGFyJ1xuICAnSk9EJywgLy8gJ0pvcmRhbmlhbiBEaW5hcidcbiAgJ0pQWScsIC8vICdKYXBhbmVzZSBZZW4nXG4gICdLRVMnLCAvLyAnS2VueWFuIFNoaWxsaW5nJ1xuICAnS0dTJywgLy8gJ0t5cmd5c3RhbmkgU29tJ1xuICAnS0hSJywgLy8gJ0NhbWJvZGlhbiBSaWVsJ1xuICAnS0lEJywgLy8gJ0tpcmliYXRpIERvbGxhcidcbiAgJ0tNRicsIC8vICdDb21vcmlhbiBGcmFuYydcbiAgJ0tSVycsIC8vICdTb3V0aCBLb3JlYW4gV29uJ1xuICAnS1dEJywgLy8gJ0t1d2FpdGkgRGluYXInXG4gICdLWUQnLCAvLyAnQ2F5bWFuIElzbGFuZHMgRG9sbGFyJ1xuICAnS1pUJywgLy8gJ0themFraHN0YW5pIFRlbmdlJ1xuICAnTEFLJywgLy8gJ0xhb3RpYW4gS2lwJ1xuICAnTEJQJywgLy8gJ0xlYmFuZXNlIFBvdW5kJ1xuICAnTEtSJywgLy8gJ1NyaSBMYW5rYW4gUnVwZWUnXG4gICdMUkQnLCAvLyAnTGliZXJpYW4gRG9sbGFyJ1xuICAnTFNMJywgLy8gJ0xlc290aG8gTG90aSdcbiAgJ0xZRCcsIC8vICdMaWJ5YW4gRGluYXInXG4gICdNQUQnLCAvLyAnTW9yb2NjYW4gRGlyaGFtJ1xuICAnTURMJywgLy8gJ01vbGRvdmFuIExldSdcbiAgJ01HQScsIC8vICdNYWxhZ2FzeSBBcmlhcnknXG4gICdNS0QnLCAvLyAnTWFjZWRvbmlhbiBEZW5hcidcbiAgJ01NSycsIC8vICdNeWFubWEgS3lhdCdcbiAgJ01OVCcsIC8vICdNb25nb2xpYW4gVHVncmlrJ1xuICAnTU9QJywgLy8gJ01hY2FuZXNlIFBhdGFjYSdcbiAgJ01SVScsIC8vICdNYXVyaXRhbmlhbiBPdWd1aXlhJ1xuICAnTVVSJywgLy8gJ01hdXJpdGlhbiBSdXBlZSdcbiAgJ01WUicsIC8vICdNYWxkaXZpYW4gUnVmaXlhYSdcbiAgJ01XSycsIC8vICdNYWxhd2lhbiBLd2FjaGEnXG4gICdNWE4nLCAvLyAnTWV4aWNhbiBQZXNvJ1xuICAnTVlSJywgLy8gJ01hbGF5c2lhbiBSaW5nZ2l0J1xuICAnTVpOJywgLy8gJ01vemFtYmljYW4gTWV0aWNhbCdcbiAgJ05BRCcsIC8vICdOYW1pYmlhbiBEb2xsYXInXG4gICdOR04nLCAvLyAnTmlnZXJpYW4gTmFpcmEnXG4gICdOSU8nLCAvLyAnTmljYXJhZ3VhbiBDw7NyZG9iYSdcbiAgJ05PSycsIC8vICdOb3J3ZWdpYW4gS3JvbmUnXG4gICdOUFInLCAvLyAnTmVwYWxlc2UgUnVwZWUnXG4gICdOWkQnLCAvLyAnTmV3IFplYWxhbmQgRG9sbGFyJ1xuICAnT01SJywgLy8gJ09tYW5pIFJpYWwnXG4gICdQQUInLCAvLyAnUGFuYW1hbmlhbiBCYWxib2EnXG4gICdQRU4nLCAvLyAnUGVydXZpYW4gU29sJ1xuICAnUEdLJywgLy8gJ1BhcHVhIE5ldyBHdWluZWFuIEtpbmEnXG4gICdQSFAnLCAvLyAnUGhpbGlwcGluZSBQZXNvJ1xuICAnUEtSJywgLy8gJ1Bha2lzdGFuaSBSdXBlZSdcbiAgJ1BMTicsIC8vICdQb2xpc2ggWmxvdHknXG4gICdQWUcnLCAvLyAnUGFyYWd1YXlhbiBHdWFyYW5pJ1xuICAnUUFSJywgLy8gJ1FhdGFyaSBSaWFsJ1xuICAnUk9OJywgLy8gJ1JvbWFuaWFuIExldSdcbiAgJ1JTRCcsIC8vICdTZXJiaWFuIERpbmFyJ1xuICAnUlVCJywgLy8gJ1J1c3NpYW4gUnVibGUnXG4gICdSV0YnLCAvLyAnUndhbmRhbiBGcmFuYydcbiAgJ1NBUicsIC8vICdTYXVkaSBSaXlhbCdcbiAgJ1NCRCcsIC8vICdTb2xvbW9uIElzbGFuZHMgRG9sbGFyJ1xuICAnU0NSJywgLy8gJ1NleWNoZWxsb2lzIFJ1cGVlJ1xuICAnU0RHJywgLy8gJ1N1ZGFuZXNlIFBvdW5kJ1xuICAnU0VLJywgLy8gJ1N3ZWRpc2ggS3JvbmEnXG4gICdTR0QnLCAvLyAnU2luZ2Fwb3JlIERvbGxhcidcbiAgJ1NIUCcsIC8vICdTYWludCBIZWxlbmEgUG91bmQnXG4gICdTTEwnLCAvLyAnU2llcnJhIExlb25lYW4gTGVvbmUnXG4gICdTT1MnLCAvLyAnU29tYWxpIFNoaWxsaW5nJ1xuICAnU1JEJywgLy8gJ1N1cmluYW1lc2UgRG9sbGFyJ1xuICAnU1NQJywgLy8gJ1NvdXRoIFN1ZGFuZXNlIFBvdW5kJ1xuICAnU1ROJywgLy8gJ1PDo28gVG9tw6kgJiBQcsOtbmNpcGUgRG9icmEnXG4gICdTWVAnLCAvLyAnU3lyaWFuIFBvdW5kJ1xuICAnU1pMJywgLy8gJ0Vzd2F0aW5pIExpbGFuZ2VuaSdcbiAgJ1RIQicsIC8vICdUaGFpIEJhaHQnXG4gICdUSlMnLCAvLyAnVGFqaWtpc3RhbmkgU29tb25pJ1xuICAnVE1UJywgLy8gJ1R1cmttZW5pc3RhbiBNYW5hdCdcbiAgJ1RORCcsIC8vICdUdW5pc2lhbiBEaW5hcidcbiAgJ1RPUCcsIC8vIFwiVG9uZ2FuIFBhJ2FuZ2FcIlxuICAnVFJZJywgLy8gJ1R1cmtpc2ggTGlyYSdcbiAgJ1RURCcsIC8vICdUcmluaWRhZCAmIFRvYmFnbyBEb2xsYXInXG4gICdUVkQnLCAvLyAnVHV2YWx1YW4gRG9sbGFyJ1xuICAnVFdEJywgLy8gJ05ldyBUYWl3YW4gRG9sbGFyJ1xuICAnVFpTJywgLy8gJ1RhbnphbmlhbiBTaGlsbGluZydcbiAgJ1VBSCcsIC8vICdVa3JhaW5pYW4gSHJ5dm5pYSdcbiAgJ1VHWCcsIC8vICdVZ2FuZGFuIFNoaWxsaW5nJ1xuICAnVVNEJywgLy8gJ1VuaXRlZCBTdGF0ZXMgRG9sbGFyJ1xuICAnVVlVJywgLy8gJ1VydWd1YXlhbiBQZXNvJ1xuICAnVVpTJywgLy8gJ1V6YmVraXN0YW5pIFNvbSdcbiAgJ1ZFUycsIC8vICdWZW5lenVlbGFuIEJvbMOtdmFyJ1xuICAnVk5EJywgLy8gJ1ZpZXRuYW1lc2UgRG9uZydcbiAgJ1ZVVicsIC8vICdWYW51YXR1IFZhdHUnXG4gICdXU1QnLCAvLyAnU2Ftb2FuIFRhbGEnXG4gICdYQUYnLCAvLyAnQ2VudHJhbCBBZnJpY2FuIENGQSBGcmFuYydcbiAgJ1hDRCcsIC8vICdFYXN0IENhcmliYmVhbiBEb2xsYXInXG4gICdYRFInLCAvLyAnU3BlY2lhbCBEcmF3aW5nIFJpZ2h0cydcbiAgJ1hPRicsIC8vICdXZXN0IEFmcmljYW4gQ0ZBIEZyYW5jJ1xuICAnWFBGJywgLy8gJ0NGUCBGcmFuYydcbiAgJ1lFUicsIC8vICdZZW1lbmkgUmlhbCdcbiAgJ1pBUicsIC8vICdTb3V0aCBBZnJpY2FuIFJhbmQnXG4gICdaTVcnLCAvLyAnWmFtYmlhbiBLd2FjaGEnXG5dKVxuZXhwb3J0IHR5cGUgQ3VycmVuY3lDb2Rlc0tleXMgPSB6LmluZmVyPHR5cGVvZiBDdXJyZW5jeUNvZGVzU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgTnVtYmVyVW5pdFNjaGVtYSA9IHouZW51bShbXG4gICdhY3JlJyxcbiAgJ2JpdCcsXG4gICdieXRlJyxcbiAgJ2NlbHNpdXMnLFxuICAnY2VudGltZXRlcicsXG4gICdkYXknLFxuICAnZGVncmVlJyxcbiAgJ2ZhaHJlbmhlaXQnLFxuICAnZmx1aWQtb3VuY2UnLFxuICAnZm9vdCcsXG4gICdnYWxsb24nLFxuICAnZ2lnYWJpdCcsXG4gICdnaWdhYnl0ZScsXG4gICdncmFtJyxcbiAgJ2hlY3RhcmUnLFxuICAnaG91cicsXG4gICdpbmNoJyxcbiAgJ2tpbG9iaXQnLFxuICAna2lsb2J5dGUnLFxuICAna2lsb2dyYW0nLFxuICAna2lsb21ldGVyJyxcbiAgJ2xpdGVyJyxcbiAgJ21lZ2FiaXQnLFxuICAnbWVnYWJ5dGUnLFxuICAnbWV0ZXInLFxuICAnbWlsZScsXG4gICdtaWxlLXNjYW5kaW5hdmlhbicsXG4gICdtaWxsaWxpdGVyJyxcbiAgJ21pbGxpbWV0ZXInLFxuICAnbWlsbGlzZWNvbmQnLFxuICAnbWludXRlJyxcbiAgJ21vbnRoJyxcbiAgJ291bmNlJyxcbiAgJ3BlcmNlbnQnLFxuICAncGV0YWJ5dGUnLFxuICAncG91bmQnLFxuICAnc2Vjb25kJyxcbiAgJ3N0b25lJyxcbiAgJ3RlcmFiaXQnLFxuICAndGVyYWJ5dGUnLFxuICAnd2VlaycsXG4gICd5YXJkJyxcbiAgJ3llYXInLFxuXSlcbmV4cG9ydCB0eXBlIE51bWJlclVuaXQgPSB6LmluZmVyPHR5cGVvZiBOdW1iZXJVbml0U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgTnVtYmVyRm9ybWF0RXhwcmVzc2lvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG51bWJlclN0eWxlOiB6XG4gICAgLnVuaW9uKFtUZXh0TnVtYmVyU3R5bGVTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoXG4gICAgICAnZGVjaW1hbCwgY3VycmVuY3ksIHBlcmNlbnQgb3IgdW5pdCAtIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIHF1YW50aXR5IGJlaW5nIG1lYXN1cmVkJyxcbiAgICApLFxuICBtaW5pbXVtSW50ZWdlckRpZ2l0czogTnVtYmVyT3JFeHByZXNzaW9uU2NoZW1hLm9wdGlvbmFsKCkuZGVzY3JpYmUoXG4gICAgJ01pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzICgxLTIxKS4gTnVtYmVycyBwYWRkZWQgd2l0aCBsZWFkaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNaW5pbXVtIGZyYWN0aW9uIGRpZ2l0cy4gTnVtYmVycyByb3VuZGVkIG9yIHBhZGRlZCB3aXRoIHRyYWlsaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gTnVtYmVycyByb3VuZGVkIG9yIHBhZGRlZCB3aXRoIHRyYWlsaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cyB0byBzaG93JyxcbiAgKSxcbiAgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzOiBOdW1iZXJPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcbiAgICAnTWF4aW11bSBzaWduaWZpY2FudCBkaWdpdHMgdG8gc2hvdycsXG4gICksXG4gIHNpZ25EaXNwbGF5OiB6XG4gICAgLnVuaW9uKFtUZXh0U2lnbkRpc3BsYXlTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoJ2F1dG8sIGFsd2F5cywgbmV2ZXIsIG9yIGV4Y2VwdFplcm8gLSB3aGV0aGVyIHRvIHNob3cgc2lnbicpLFxuICB1bml0OiBQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcbiAgICAnVW5pdCBmb3IgdW5pdCBmb3JtYXR0aW5nIChlLmcuIGtpbG9tZXRlciwgbWlsZS1wZXItaG91ciknLFxuICApLFxuICB1bml0RGlzcGxheTogelxuICAgIC51bmlvbihbVGV4dFVuaXREaXNwbGF5U2NoZW1hLCBTdHJpbmdPckV4cHJlc3Npb25TY2hlbWFdKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKCdsb25nLCBzaG9ydCwgb3IgbmFycm93IC0gdW5pdCBkaXNwbGF5IHN0eWxlJyksXG4gIG51bWJlcmluZ1N5c3RlbTogelxuICAgIC51bmlvbihbVGV4dE51bWJlcmluZ1N5c3RlbVNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnTnVtYmVyaW5nIHN5c3RlbSBmb3IgZm9ybWF0dGluZycpLFxuICBjdXJyZW5jeTogelxuICAgIC51bmlvbihbQ3VycmVuY3lDb2Rlc1NjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnQ3VycmVuY3kgY29kZSAoZS5nLiBVU0QsIEVVUikgZm9yIGN1cnJlbmN5IGZvcm1hdHRpbmcnKSxcbiAgbm90YXRpb246IHpcbiAgICAudW5pb24oW1RleHROb3RhdGlvblNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3RhbmRhcmQsIHNjaWVudGlmaWMsIGVuZ2luZWVyaW5nLCBvciBjb21wYWN0JyksXG4gIGNvbXBhY3REaXNwbGF5OiB6XG4gICAgLnVuaW9uKFtUZXh0Q29tcGFjdERpc3BsYXlTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoJ3Nob3J0IG9yIGxvbmcgLSBvbmx5IHVzZWQgd2hlbiBub3RhdGlvbiBpcyBjb21wYWN0JyksXG4gIGN1cnJlbmN5RGlzcGxheTogelxuICAgIC51bmlvbihbVGV4dEN1cnJlbmN5RGlzcGxheVNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3ltYm9sLCBjb2RlLCBuYW1lLCBvciBuYXJyb3dTeW1ib2wgLSBjdXJyZW5jeSBkaXNwbGF5IHN0eWxlJyksXG4gIGN1cnJlbmN5U2lnbjogelxuICAgIC51bmlvbihbVGV4dEN1cnJlbmN5U2lnblNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3RhbmRhcmQgb3IgYWNjb3VudGluZyAtIGZvciBuZWdhdGl2ZSBjdXJyZW5jeSByZW5kZXJpbmcnKSxcbn0pXG5cbi8qKlxuICogTnVtYmVyIGZvcm1hdHRpbmcgb3B0aW9ucyB3aXRoIHN0eWxlLCBkaXNwbGF5LCBhbmQgcHJlY2lzaW9uIHNldHRpbmdzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL051bWJlckZvcm1hdEV4cHJlc3Npb25zXG4gKi9cbmV4cG9ydCB0eXBlIE51bWJlckZvcm1hdEV4cHJlc3Npb25zID0gei5pbmZlcjx0eXBlb2YgTnVtYmVyRm9ybWF0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Rm9ybWF0RXhwcmVzc2lvbnNTY2hlbWEgPSBOdW1iZXJGb3JtYXRFeHByZXNzaW9uc1NjaGVtYS5leHRlbmQoe1xuICBkYXRlRm9ybWF0OiB6XG4gICAgLnVuaW9uKFtUZXh0RGF0ZUZvcm1hdFNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnRGF0ZSBmb3JtYXQgcGF0dGVybiBvciBwcmVzZXQnKSxcbiAgdGltZXpvbmU6IFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgIFwiSUFOQSB6b25lIG5hbWUgKGUuZy4gRXVyb3BlL1ByYWd1ZSkgZGF0ZXMgcmVuZGVyIGluLiBEZWZhdWx0OiAnbG9jYWwnIOKAlCB0aGUgZGV2aWNlIHpvbmUuIERpc3BsYXktb25seSDigJQgdGhlIHN0b3JlZCB2YWx1ZSBpcyB1bmNoYW5nZWRcIixcbiAgKSxcbn0pLmRlc2NyaWJlKCdEYXRlICYgTnVtYmVyIEZvcm1hdCcpXG5cbi8qKlxuICogVGV4dCBmb3JtYXR0aW5nIG9wdGlvbnMgZm9yIGRhdGVzIGFuZCBudW1iZXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRGb3JtYXRFeHByZXNzaW9uc1xuICovXG5leHBvcnQgdHlwZSBUZXh0Rm9ybWF0RXhwcmVzc2lvbnMgPSB6LmluZmVyPHR5cGVvZiBUZXh0Rm9ybWF0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBFbXBoYXNpc0RlZmluaXRpb25TY2hlbWEgPSB6XG4gIC51bmlvbihbXG4gICAgei5saXRlcmFsKCdleHRyYS1sb3cnKSxcbiAgICB6LmxpdGVyYWwoJ2xvdycpLFxuICAgIHoubGl0ZXJhbCgnbG93LW1lZGl1bScpLFxuICAgIHoubGl0ZXJhbCgnbWVkaXVtJyksXG4gICAgei5saXRlcmFsKCdoaWdoJyksXG4gICAgei5saXRlcmFsKCdjb2xvcicpLFxuICAgIEV4cHJlc3Npb25TY2hlbWEsXG4gIF0pXG4gIC5kZXNjcmliZSgnRW1waGFzaXMgZGVmaW5pdGlvbicpXG5cbi8qKlxuICogRW1waGFzaXMgbGV2ZWwgZnJvbSBleHRyYS1sb3cgdG8gaGlnaCwgY29sb3IsIG9yIGV4cHJlc3Npb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRW1waGFzaXNEZWZpbml0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEVtcGhhc2lzRGVmaW5pdGlvbiA9IHouaW5mZXI8dHlwZW9mIEVtcGhhc2lzRGVmaW5pdGlvblNjaGVtYT5cblxuLyoqXG4gKiBUZXh0IHdpdGggZm9ybWF0dGluZyBvcHRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRXaXRoRm9ybWF0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFdpdGhGb3JtYXQge1xuICB0ZXh0OiBTdHJpbmdPckV4cHJlc3Npb24gfCBUZXh0TG9jYWxlXG4gIGZvcm1hdD86IFRleHRGb3JtYXRFeHByZXNzaW9uc1xufVxuXG5jb25zdCBfVGV4dFdpdGhGb3JtYXRTY2hlbWFCYXNlID0gei5vYmplY3Qoe1xuICB0ZXh0OiB6LnVuaW9uKFtTdHJpbmdPckV4cHJlc3Npb25TY2hlbWEsIHoubGF6eSgoKSA9PiBUZXh0TG9jYWxlU2NoZW1hKV0pLFxuICBmb3JtYXQ6IFRleHRGb3JtYXRFeHByZXNzaW9uc1NjaGVtYS5vcHRpb25hbCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IFRleHRXaXRoRm9ybWF0U2NoZW1hOiB6LlpvZFR5cGU8VGV4dFdpdGhGb3JtYXQ+ID0gX1RleHRXaXRoRm9ybWF0U2NoZW1hQmFzZVxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBUZXh0V2l0aEZvcm1hdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGV4dFdpdGhGb3JtYXQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0V2l0aEZvcm1hdCB7XG4gIHJldHVybiBUZXh0V2l0aEZvcm1hdFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBUZXh0IGxvY2FsZSB3aXRoIGlkLCBkZWZhdWx0IG1lc3NhZ2UsIGFuZCB2YWx1ZXMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvVGV4dExvY2FsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRMb2NhbGUge1xuICBpZDogUHJpbWl0aXZlT3JFeHByZXNzaW9uXG4gIGRlZmF1bHRNZXNzYWdlPzogUHJpbWl0aXZlT3JFeHByZXNzaW9uXG4gIHZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZU9yRXhwcmVzc2lvbiB8IFRleHRXaXRoRm9ybWF0IHwgVGV4dExvY2FsZT5cbn1cblxuZXhwb3J0IGNvbnN0IFRleHRMb2NhbGVTY2hlbWE6IHouWm9kVHlwZTxUZXh0TG9jYWxlPiA9IHoub2JqZWN0KHtcbiAgaWQ6IFByaW1pdGl2ZU9yRXhwcmVzc2lvblNjaGVtYS5kZXNjcmliZSgnTG9jYWxlIElkJyksXG4gIGRlZmF1bHRNZXNzYWdlOiBQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZSgnRGVmYXVsdCBtZXNzYWdlJyksXG4gIHZhbHVlczogelxuICAgIC5yZWNvcmQoXG4gICAgICBDb21tb25OYW1lLFxuICAgICAgLy8gei5sYXp5IHRvIGFsbG93IGZvciByZWN1cnNpdmUgZGVmaW5pdGlvblxuICAgICAgLy8gdGhlcmUgaGFzIHRvIGJlIGEgc3BlY2lhbCBtb2RpZmljYXRpb24gaW4gem9kLnV0aWxzIGFuZCBleHRyYWN0LXR5cGUgdG8gc3VwcG9ydCB0aGlzIGxhenkgcmVjdXJzaW9uXG4gICAgICB6LnVuaW9uKFtQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEsIFRleHRXaXRoRm9ybWF0U2NoZW1hLCB6LmxhenkoKCkgPT4gVGV4dExvY2FsZVNjaGVtYSldKSxcbiAgICApXG4gICAgLm9wdGlvbmFsKCksXG59KVxuXG5leHBvcnQgY29uc3QgVGV4dExvY2FsZVZhbHVlc1NjaGVtYSA9IHoucmVjb3JkKFxuICBDb21tb25OYW1lLFxuICB6LnVuaW9uKFtQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEsIFRleHRXaXRoRm9ybWF0U2NoZW1hLCBUZXh0TG9jYWxlU2NoZW1hXSksXG4pXG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRMb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RleHRMb2NhbGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0TG9jYWxlIHtcbiAgcmV0dXJuIFRleHRMb2NhbGVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBUZXh0VmFsdWVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLFxuICBUZXh0V2l0aEZvcm1hdFNjaGVtYSxcbiAgVGV4dExvY2FsZVNjaGVtYSxcbl0pXG5cbi8qKlxuICogVGV4dCB2YWx1ZS4gUHJpbWl0aXZlLCBmb3JtYXR0ZWQgdGV4dCwgb3IgbG9jYWxpemVkIHRleHQuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvVGV4dFZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIFRleHRWYWx1ZSA9IHouaW5mZXI8dHlwZW9mIFRleHRWYWx1ZVNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgVGV4dFZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXh0VmFsdWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0VmFsdWUge1xuICByZXR1cm4gVGV4dFZhbHVlU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIFRleHRWYWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB6LmluZmVyPHR5cGVvZiBUZXh0VmFsdWVTY2hlbWE+KTogVGV4dFZhbHVlIHtcbiAgcmV0dXJuIFRleHRWYWx1ZVNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFRleHRTdHlsZU9wdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZm9udFNpemU6IHouZW51bShbJ3JlZ3VsYXInLCAnc21hbGwnLCAnbWVkaXVtJ10pLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ0ZvbnQgc2l6ZScpLFxuICBjb2xvcjogQ29sb3JWYWx1ZU9yQ29uZGl0aW9uc1NjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdUZXh0IGNvbG9yJyksXG4gIGlzU3VidGxlOiB6LnVuaW9uKFt6LmJvb2xlYW4oKSwgRXhwcmVzc2lvblNjaGVtYV0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ0lzIHRleHQgc3VidGxlJyksXG4gIGlzQm9sZDogei51bmlvbihbei5ib29sZWFuKCksIEV4cHJlc3Npb25TY2hlbWFdKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdJcyB0ZXh0IGJvbGQnKSxcbiAgbnVtYmVyT2ZMaW5lczogTnVtYmVyT3JFeHByZXNzaW9uU2NoZW1hLm9wdGlvbmFsKCkuZGVzY3JpYmUoXG4gICAgJ051bWJlciBvZiBsaW5lcyB0byBzaG93IGJlZm9yZSB0cnVuY2F0aW5nIHdpdGggZWxsaXBzaXMnLFxuICApLFxufSlcblxuLyoqXG4gKiBUZXh0IHN0eWxlIG9wdGlvbnMgZm9yIGZvbnRTaXplLCBjb2xvciwgaXNTdWJ0bGUsIGlzQm9sZCwgbnVtYmVyT2ZMaW5lcy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9UZXh0U3R5bGVPcHRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVGV4dFN0eWxlT3B0aW9uID0gei5pbmZlcjx0eXBlb2YgVGV4dFN0eWxlT3B0aW9uU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dFdpdGhTdHlsZVNjaGVtYSA9IF9UZXh0V2l0aEZvcm1hdFNjaGVtYUJhc2UuZXh0ZW5kKFRleHRTdHlsZU9wdGlvblNjaGVtYS5zaGFwZSlcblxuLyoqXG4gKiBUZXh0IHdpdGggZm9ybWF0IGFuZCBzdHlsZSBvcHRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRXaXRoU3R5bGVcbiAqL1xuZXhwb3J0IHR5cGUgVGV4dFdpdGhTdHlsZSA9IHouaW5mZXI8dHlwZW9mIFRleHRXaXRoU3R5bGVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRXaXRoU3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RleHRXaXRoU3R5bGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0V2l0aFN0eWxlIHtcbiAgcmV0dXJuIFRleHRXaXRoU3R5bGVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBUZXh0VmFsdWVXaXRoU3R5bGVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLFxuICBUZXh0V2l0aFN0eWxlU2NoZW1hLFxuICBUZXh0TG9jYWxlU2NoZW1hLFxuXSlcblxuLyoqXG4gKiBUZXh0IHZhbHVlIHdpdGggc3R5bGUgc3VwcG9ydC4gUHJpbWl0aXZlLCBzdHlsZWQvZm9ybWF0dGVkIHRleHQsIG9yIGxvY2FsaXplZCB0ZXh0LlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRWYWx1ZVdpdGhTdHlsZVxuICovXG5leHBvcnQgdHlwZSBUZXh0VmFsdWVXaXRoU3R5bGUgPSB6LmluZmVyPHR5cGVvZiBUZXh0VmFsdWVXaXRoU3R5bGVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRWYWx1ZVdpdGhTdHlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGV4dFZhbHVlV2l0aFN0eWxlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVGV4dFZhbHVlV2l0aFN0eWxlIHtcbiAgcmV0dXJuIFRleHRWYWx1ZVdpdGhTdHlsZVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBUZXh0VmFsdWVXaXRoU3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1RleHRWYWx1ZVdpdGhTdHlsZShcbiAgdmFsdWU6IHN0cmluZyB8IHouaW5mZXI8dHlwZW9mIFRleHRWYWx1ZVdpdGhTdHlsZVNjaGVtYT4sXG4pOiBUZXh0VmFsdWVXaXRoU3R5bGUge1xuICByZXR1cm4gVGV4dFZhbHVlV2l0aFN0eWxlU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQmFzZTY0U2NoZW1hID0gei5iYXNlNjQoKVxuZXhwb3J0IGNvbnN0IEJhc2U2NFVybFNjaGVtYSA9IHouYmFzZTY0dXJsKClcbmV4cG9ydCBjb25zdCBCYXNlNjRPclVybFNjaGVtYSA9IHoudW5pb24oW0Jhc2U2NFNjaGVtYSwgQmFzZTY0VXJsU2NoZW1hXSlcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gQmFzZTY0IG9yIEJhc2U2NFVybC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZTY0T3JVcmwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBCYXNlNjRPclVybFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFNlbGVjdGFibGVNZWRpYVR5cGVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgei5saXRlcmFsKCdpbWFnZScpLFxuICB6LmxpdGVyYWwoJ3ZpZGVvJyksXG4gIHoubGl0ZXJhbCgnaW1hZ2VBbmRWaWRlbycpLFxuICB6LmxpdGVyYWwoJ3BkZicpLFxuICB6LmxpdGVyYWwoJ2RvYycpLFxuICB6LmxpdGVyYWwoJ3BwdCcpLFxuICB6LmxpdGVyYWwoJ3hscycpLFxuICB6LmxpdGVyYWwoJ2NzdicpLFxuICB6LmxpdGVyYWwoJ3BsYWluVGV4dCcpLFxuICB6LmxpdGVyYWwoJ2FueScpLFxuXSlcblxuLyoqXG4gKiBNZWRpYSB0eXBlIGZvciBmaWxlIHNlbGVjdGlvbi5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TZWxlY3RhYmxlTWVkaWFUeXBlXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdGFibGVNZWRpYVR5cGUgPSB6LmluZmVyPHR5cGVvZiBTZWxlY3RhYmxlTWVkaWFUeXBlU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgU2V0U3RhdGVDaGFuZ2VzU2NoZW1hID0gei5yZWNvcmQoXG4gIHouc3RyaW5nKCksXG4gIHoudW5pb24oW1xuICAgIEV4cHJlc3Npb25TY2hlbWEsXG4gICAgei5zdHJpbmcoKSxcbiAgICB6Lm51bWJlcigpLFxuICAgIHouYm9vbGVhbigpLFxuICAgIHoubnVsbCgpLFxuICAgIHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSxcbiAgICB6LmFycmF5KHouYW55KCkpLFxuICBdKSxcbilcblxuLyoqXG4gKiBNYXAgb2Ygc3RhdGUgcHJvcGVydHkgbmFtZXMgdG8gbmV3IHZhbHVlcy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TZXRTdGF0ZUNoYW5nZXNcbiAqL1xuZXhwb3J0IHR5cGUgU2V0U3RhdGVDaGFuZ2VzID0gei5pbmZlcjx0eXBlb2YgU2V0U3RhdGVDaGFuZ2VzU2NoZW1hPlxuXG5leHBvcnQgZnVuY3Rpb24gdG9TZXRTdGF0ZUNoYW5nZXModmFsdWU6IHVua25vd24pOiBTZXRTdGF0ZUNoYW5nZXMge1xuICByZXR1cm4gU2V0U3RhdGVDaGFuZ2VzU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgSW1hZ2VSZXNpemVNb2RlU2NoZW1hID0gelxuICAuZW51bShbJ2NvdmVyJywgJ2NvbnRhaW4nLCAnc3RyZXRjaCcsICdyZXBlYXQnLCAnY2VudGVyJ10pXG4gIC5kZXNjcmliZSgnSW1hZ2UgcmVzaXplIG1vZGUnKVxuXG4vKipcbiAqIEltYWdlIHJlc2l6ZSBtb2RlOiBjb3ZlciwgY29udGFpbiwgc3RyZXRjaCwgcmVwZWF0LCBvciBjZW50ZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VSZXNpemVNb2RlXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlUmVzaXplTW9kZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlUmVzaXplTW9kZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEltYWdlU2hhcGVTY2hlbWEgPSB6XG4gIC5lbnVtKFsnbGFuZHNjYXBlJywgJ3BvcnRyYWl0JywgJ3NxdWFyZSddKVxuICAuZGVzY3JpYmUoJ0ltYWdlIHNoYXBlIGZvciBsaXN0IGl0ZW0nKVxuXG4vKipcbiAqIEltYWdlIHNoYXBlOiBsYW5kc2NhcGUsIHBvcnRyYWl0LCBvciBzcXVhcmUuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VTaGFwZVxuICovXG5leHBvcnQgdHlwZSBJbWFnZVNoYXBlID0gei5pbmZlcjx0eXBlb2YgSW1hZ2VTaGFwZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEltYWdlU2l6ZVNjaGVtYSA9IHpcbiAgLmVudW0oWydzbWFsbCcsICdyZWd1bGFyJywgJ2xhcmdlJ10pXG4gIC5kZXNjcmliZSgnSW1hZ2Ugc2l6ZSBmb3IgbGlzdCBpdGVtJylcblxuLyoqXG4gKiBJbWFnZSBzaXplOiBzbWFsbCwgcmVndWxhciwgb3IgbGFyZ2UuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VTaXplXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlU2l6ZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlU2l6ZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEhvcml6b250YWxBbGlnblNjaGVtYSA9IHouZW51bShbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0J10pXG5cbi8qKlxuICogSG9yaXpvbnRhbCBhbGlnbm1lbnQ6IGxlZnQsIGNlbnRlciwgb3IgcmlnaHQuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSG9yaXpvbnRhbEFsaWduXG4gKi9cbmV4cG9ydCB0eXBlIEhvcml6b250YWxBbGlnbiA9IHouaW5mZXI8dHlwZW9mIEhvcml6b250YWxBbGlnblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFZlcnRpY2FsQWxpZ25TY2hlbWEgPSB6LmVudW0oWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddKVxuXG4vKipcbiAqIFZlcnRpY2FsIGFsaWdubWVudDogdG9wLCBjZW50ZXIsIG9yIGJvdHRvbS5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9WZXJ0aWNhbEFsaWduXG4gKi9cbmV4cG9ydCB0eXBlIFZlcnRpY2FsQWxpZ24gPSB6LmluZmVyPHR5cGVvZiBWZXJ0aWNhbEFsaWduU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgRGF0YVJvd0lkID0gei5zdHJpbmcoKS5yZWdleCgvXlshJCotOj1ALV9hLX5dezEsNjR9JC8pXG4vLy5icmFuZDwnRGF0YVJvd0lkJz4oKVxuXG4vKipcbiAqIERhdGEgcm93IGlkZW50aWZpZXIuIDEtNjQgY2hhcnMsIGNvbnRhaW5zIHByaW50YWJsZSBBU0NJSSBleGNlcHQgc3BhY2UvY29tbWEvc2VtaWNvbG9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFSb3dJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhUm93SWQgPSB6LmluZmVyPHR5cGVvZiBEYXRhUm93SWQ+XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyTWV0aG9kID1cbiAgfCAnY3JlYXRlJ1xuICB8ICd1cGRhdGUnXG4gIHwgJ3NhdmUnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnZG93bmxvYWQnXG4gIHwgJ2Z1bmN0aW9uQ2FsbCdcbiAgfCBFeHByZXNzaW9uXG4iXX0=
1028
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Fic3RyYWN0L3pvZC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRTFCLE9BQU8sRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxvQkFBb0IsQ0FBQTtBQUNoRixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFFeEIsMkJBQTJCLEVBQzNCLGVBQWUsRUFFZix3QkFBd0IsRUFDeEIsWUFBWSxHQUNiLE1BQU0scUJBQXFCLENBQUE7QUFFNUIsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQztLQUNsQyxJQUFJLEVBQUU7S0FDTixRQUFRLENBQUMscURBQXFELENBQUMsQ0FBQTtBQUdsRTs7R0FFRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLE9BQU8sb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQTtBQUN0RCxDQUFDO0FBQ0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDMUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUd4Rjs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYztJQUN6QyxPQUFPLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUE7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYztJQUN6QyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUN0QyxDQUFDO0FB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MEJBQTBCLENBQUMsQ0FBQTtBQVF2QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBUXhFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7QUFRdEUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tICd6b2QvdjQnXG5cbmltcG9ydCB7IGNvbnZlcnRPckV4cHJlc3Npb24sIHR5cGUgRXhwcmVzc2lvbk9wdGlvbnMgfSBmcm9tICcuLi9qc29uYXRhL2Jhc2UuanMnXG5pbXBvcnQge1xuICB0eXBlIEV4cHJlc3Npb24sXG4gIEV4cHJlc3Npb25TY2hlbWEsXG4gIE5vbkV4cHJlc3Npb25TY2hlbWEsXG4gIE51bWJlck9yRXhwcmVzc2lvblNjaGVtYSxcbiAgdHlwZSBQcmltaXRpdmVPckV4cHJlc3Npb24sXG4gIFByaW1pdGl2ZU9yRXhwcmVzc2lvblNjaGVtYSxcbiAgUHJpbWl0aXZlU2NoZW1hLFxuICB0eXBlIFN0cmluZ09yRXhwcmVzc2lvbixcbiAgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hLFxuICB0b0V4cHJlc3Npb24sXG59IGZyb20gJy4vc2RrLmV4cHJlc3Npb24uanMnXG5cbmV4cG9ydCBjb25zdCBPcmdhbml6YXRpb25JZFNjaGVtYSA9IHpcbiAgLnV1aWQoKVxuICAuZGVzY3JpYmUoJ09yZ2FuaXphdGlvbiBVVUlEIChjb250YWlucyB1c2Vycywgc29sdXRpb25zLCBkYXRhKScpXG5leHBvcnQgdHlwZSBPcmdhbml6YXRpb25JZCA9IHouaW5mZXI8dHlwZW9mIE9yZ2FuaXphdGlvbklkU2NoZW1hPlxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBPcmdhbml6YXRpb25JZCAoVVVJRCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09yZ2FuaXphdGlvbklkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgT3JnYW5pemF0aW9uSWQge1xuICByZXR1cm4gT3JnYW5pemF0aW9uSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5leHBvcnQgZnVuY3Rpb24gdG9Pcmdhbml6YXRpb25JZCh2YWx1ZTogdW5rbm93bik6IE9yZ2FuaXphdGlvbklkIHtcbiAgcmV0dXJuIE9yZ2FuaXphdGlvbklkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgU29sdXRpb25JZFNjaGVtYSA9IHoudXVpZCgpLmRlc2NyaWJlKCdTb2x1dGlvbiBVVUlEIChhIG5hdGl2ZSBtb2JpbGUgYXBwKScpXG5leHBvcnQgdHlwZSBTb2x1dGlvbklkID0gei5pbmZlcjx0eXBlb2YgU29sdXRpb25JZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgU29sdXRpb25JZCAoVVVJRCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NvbHV0aW9uSWQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTb2x1dGlvbklkIHtcbiAgcmV0dXJuIFNvbHV0aW9uSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1NvbHV0aW9uSWQodmFsdWU6IHVua25vd24pOiBTb2x1dGlvbklkIHtcbiAgcmV0dXJuIFNvbHV0aW9uSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBDb21tb25OYW1lTWl4ZWRSZWdleCA9IC9eW2EtekEtWl1bYS16QS1aMC05Xy1dezAsNDh9W2EtekEtWjAtOV0kL1xuXG5jb25zdCBDb21tb25OYW1lTWl4ZWRNZXNzYWdlID1cbiAgJ01peGVkY2FzZSAyLTUwLCBwcmVmZXIga2ViYWItY2FzZSwgc3RhcnRzIGFscGhhLCBjb250YWlucyBhbHBoYW51bSBhbmQgYC1gLCBlbmRzIGFscGhhbnVtLidcblxuZXhwb3J0IGNvbnN0IENvbW1vbk5hbWVNaXhlZFNjaGVtYSA9IHouc3RyaW5nKCkucmVnZXgoQ29tbW9uTmFtZU1peGVkUmVnZXgsIENvbW1vbk5hbWVNaXhlZE1lc3NhZ2UpXG4vKipcbiAqIE1peGVkY2FzZSAyLTUwLCBwcmVmZXIga2ViYWItY2FzZSwgc3RhcnRzIGFscGhhLCBjb250YWlucyBhbHBoYW51bSBhbmQgYC1gLCBlbmRzIGFscGhhbnVtLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbW1vbk5hbWVNaXhlZFxuICovXG5leHBvcnQgdHlwZSBDb21tb25OYW1lTWl4ZWQgPSB6LmluZmVyPHR5cGVvZiBDb21tb25OYW1lTWl4ZWRTY2hlbWE+XG5cbi8qKlxuICogQ29udmVydCBzdHJpbmcgdG8gQ29tbW9uTmFtZU1peGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tb25OYW1lTWl4ZWQodmFsdWU6IHN0cmluZyk6IENvbW1vbk5hbWVNaXhlZCB7XG4gIHJldHVybiBDb21tb25OYW1lTWl4ZWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yeVNjaGVtYSA9IHpcbiAgLmVudW0oW1xuICAgICd1bmtub3duJyxcbiAgICAnYW5hbHl0aWNzJyxcbiAgICAnYnVzaW5lc3MnLFxuICAgICdjb21tdW5pY2F0aW9ucycsXG4gICAgJ2NvbnN1bHRpbmcnLFxuICAgICdmaWVsZC1zZXJ2aWNlcycsXG4gICAgJ2ZpbmFuY2VzJyxcbiAgICAnaGVhbHRoJyxcbiAgICAnaHVtYW4tcmVzb3VyY2VzJyxcbiAgICAnbG9naXN0aWNzJyxcbiAgICAnbWFuYWdlbWVudCcsXG4gICAgJ21pc2NlbGxhbmVvdXMnLFxuICAgICdvcGVyYXRpb25zJyxcbiAgICAncGVyc29uYWwnLFxuICAgICdzYWxlcycsXG4gIF0pXG4gIC5kZXNjcmliZSgnU29sdXRpb24gY2F0ZWdvcnknKVxuLyoqXG4gKiBBcHBsaWNhdGlvbiBjYXRlZ29yeSBlbnVtZXJhdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ2F0ZWdvcnkgPSB6LmluZmVyPHR5cGVvZiBDYXRlZ29yeVNjaGVtYT5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuY29uc3QgQXBwbGljYXRpb25Hcm91cElkU2NoZW1hID0gQ29tbW9uTmFtZU1peGVkU2NoZW1hLmRlc2NyaWJlKCdBcHBsaWNhdGlvbiBncm91cCBJZCcpXG4vKipcbiAqIEFwcGxpY2F0aW9uIGdyb3VwIGlkZW50aWZpZXIuXG4gKiBAYWxpYXMgU29sdXRpb25Hcm91cElkXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvU29sdXRpb25Hcm91cElkXG4gKi9cbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uR3JvdXBJZCA9IHouaW5mZXI8dHlwZW9mIEFwcGxpY2F0aW9uR3JvdXBJZFNjaGVtYT5cblxuLyoqXG4gKiBTdHJpbmcgb3IgRXhwcmVzc2lvbiB1bmlvbiB0eXBlLlxuICovXG5cbmV4cG9ydCBjb25zdCBJbnN0YW5jZUlkU2NoZW1hID0gelxuICAuc3RyaW5nKClcbiAgLm1pbigxLCAnUmVxdWlyZWQnKVxuICAucmVnZXgoQ29tbW9uTmFtZU1peGVkUmVnZXgsIENvbW1vbk5hbWVNaXhlZE1lc3NhZ2UpXG4gIC8vLmJyYW5kPCdJbnN0YW5jZUlkJz4oKVxuICAuZGVzY3JpYmUoJ0luc3RhbmNlIElkJylcbi8qKlxuICogSW5zdGFuY2UgaWRlbnRpZmllci4gMi01MCBjaGFyYWN0ZXJzOiBzdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW5zdGFuY2VJZFxuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZUlkID0gei5pbmZlcjx0eXBlb2YgSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFuY2VJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEluc3RhbmNlSWQge1xuICByZXR1cm4gSW5zdGFuY2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSW5zdGFuY2VJZCh2YWx1ZTogc3RyaW5nKTogSW5zdGFuY2VJZCB7XG4gIHJldHVybiBJbnN0YW5jZUlkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgS2VnSW5zdGFuY2VJZFNjaGVtYSA9IHpcbiAgLnVuaW9uKFtJbnN0YW5jZUlkU2NoZW1hLCBFeHByZXNzaW9uU2NoZW1hXSlcbiAgLmRlc2NyaWJlKCdJbnN0YW5jZSBJZGVudGlmaWVyJylcblxuLyoqXG4gKiBLZWcgaW5zdGFuY2UgaWRlbnRpZmllci4gRWl0aGVyIHN0YXRpYyBpZGVudGlmaWVyIG9yIGV4cHJlc3Npb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvS2VnSW5zdGFuY2VJZFxuICovXG5leHBvcnQgdHlwZSBLZWdJbnN0YW5jZUlkID0gei5pbmZlcjx0eXBlb2YgS2VnSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgS2VnSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzSW5zdGFuY2VJZE9yRXhwcmVzc2lvbihcbiAgdmFsdWU6IHVua25vd24sXG4gIG9wdGlvbnM/OiBFeHByZXNzaW9uT3B0aW9ucyxcbik6IHZhbHVlIGlzIEtlZ0luc3RhbmNlSWQge1xuICBpZiAoIUtlZ0luc3RhbmNlSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzKSByZXR1cm4gZmFsc2VcblxuICAvLyBJZiBubyBvcHRpb25zIG9yIHlhbWxDb252ZXJzaW9uIGRpc2FibGVkLCBzY2hlbWEgdmFsaWRhdGlvbiBpcyBlbm91Z2hcbiAgaWYgKCFvcHRpb25zIHx8IG9wdGlvbnMueWFtbENvbnZlcnNpb24gPT09IGZhbHNlKSByZXR1cm4gdHJ1ZVxuXG4gIC8vIElmIFlBTUwgY29udmVyc2lvbiBlbmFibGVkLCB0ZXN0IHRoZSBhY3R1YWwgY29udmVyc2lvblxuICB0cnkge1xuICAgIHRvSW5zdGFuY2VJZE9yRXhwcmVzc2lvbih2YWx1ZSBhcyBzdHJpbmcgfCBFeHByZXNzaW9uLCBvcHRpb25zKVxuICAgIHJldHVybiB0cnVlXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgdmFsdWUgdG8gS2VnSW5zdGFuY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSW5zdGFuY2VJZE9yRXhwcmVzc2lvbihcbiAgdmFsdWU6IHN0cmluZyB8IEV4cHJlc3Npb24sXG4gIG9wdGlvbnM/OiBFeHByZXNzaW9uT3B0aW9ucyxcbik6IEtlZ0luc3RhbmNlSWQge1xuICByZXR1cm4gY29udmVydE9yRXhwcmVzc2lvbih2YWx1ZSwgS2VnSW5zdGFuY2VJZFNjaGVtYSwgJ0tlZ0luc3RhbmNlSWQnLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgRm9ybUlkU2NoZW1hID0gTm9uRXhwcmVzc2lvblNjaGVtYS5kZXNjcmliZSgnRm9ybSBJZGVudGlmaWVyJylcblxuLyoqXG4gKiBGb3JtIGlkZW50aWZpZXIuIE5vbi1leHByZXNzaW9uIHN0cmluZy5cbiAqL1xuZXhwb3J0IHR5cGUgRm9ybUlkID0gei5pbmZlcjx0eXBlb2YgS2VnSW5zdGFuY2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRm9ybUlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGb3JtSWQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBGb3JtSWQge1xuICByZXR1cm4gRm9ybUlkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIEZvcm1JZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRm9ybUlkKHZhbHVlOiBzdHJpbmcgfCBFeHByZXNzaW9uKTogRm9ybUlkIHtcbiAgcmV0dXJuIEZvcm1JZFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuLyoqXG4gKiBXaGl0ZWxpc3RlZCBzeXN0ZW0gdGFibGVzIHRoYXQgYnlwYXNzIHN0YW5kYXJkIGVudGl0eSBuYW1lIHZhbGlkYXRpb24uXG4gKiBUaGVzZSB0YWJsZXMgc3RhcnQgd2l0aCB1bmRlcnNjb3JlIGFuZCBhcmUgbWFuYWdlZCBieSB0aGUgSmlneCBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNZU1RFTV9UQUJMRVMgPSBbXG4gICdfY29tbWFuZFF1ZXVlJyxcbiAgJ19zeW5jU2NvcGUnLFxuICAvLyBBZGQgbW9yZSBzeXN0ZW0gdGFibGVzIGhlcmUgaWYgbmVlZGVkXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIFN5c3RlbVNxbGl0ZVRhYmxlTmFtZSA9ICh0eXBlb2YgU1lTVEVNX1RBQkxFUylbbnVtYmVyXVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBzdHJpbmcgaXMgYSBzeXN0ZW0gdGFibGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3FsaXRlU3lzdGVtVGFibGUobmFtZTogc3RyaW5nKTogbmFtZSBpcyBTeXN0ZW1TcWxpdGVUYWJsZU5hbWUge1xuICByZXR1cm4gKFNZU1RFTV9UQUJMRVMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKG5hbWUpXG59XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJOYW1lU2NoZW1hID0gei5zdHJpbmcoKS5kZXNjcmliZSgnUGFyYW1ldGVyIG5hbWUnKVxuXG4vKipcbiAqIFBhcmFtZXRlciBuYW1lLiBTdGFydHMgd2l0aCAkLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlck5hbWVcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1ldGVyTmFtZSA9IHouaW5mZXI8dHlwZW9mIFBhcmFtZXRlck5hbWVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFBhcmFtZXRlck5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFtZXRlck5hbWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQYXJhbWV0ZXJOYW1lIHtcbiAgcmV0dXJuIFBhcmFtZXRlck5hbWVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIFBhcmFtZXRlck5hbWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlck5hbWUodmFsdWU6IHN0cmluZyk6IFBhcmFtZXRlck5hbWUge1xuICByZXR1cm4gUGFyYW1ldGVyTmFtZVNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlck5hbWVEb2xsYXJTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAucmVnZXgoXG4gICAgL15bJGEtekEtWl1bYS16QS1aMC05Xy1dezAsNDh9W2EtekEtWjAtOV0kLyxcbiAgICAnU3RhcnRzIHdpdGggJCBvciBhbHBoYSwgMC00OCBhbHBoYW51bS9gX2AvYC1gLCBlbmRzIGFscGhhbnVtLicsXG4gIClcblxuLyoqXG4gKiBQYXJhbWV0ZXIgbmFtZS4gU3RhcnRzIHdpdGggJCBvciBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvbnMvcHJvcGVydHlOYW1lc1xuICovXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJOYW1lRG9sbGFyID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyTmFtZURvbGxhclNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgUGFyYW1ldGVyRG9sbGFyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXJhbWV0ZXJOYW1lRG9sbGFyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUGFyYW1ldGVyTmFtZURvbGxhciB7XG4gIHJldHVybiBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBQYXJhbWV0ZXJEb2xsYXIsIGFkZGluZyAkIHByZWZpeCBpZiBuZWVkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhcmFtZXRlck5hbWVEb2xsYXIodmFsdWU6IHN0cmluZyk6IFBhcmFtZXRlck5hbWVEb2xsYXIge1xuICAvLyBJZiBpdCBhbHJlYWR5IHN0YXJ0cyB3aXRoICQsIGp1c3QgdmFsaWRhdGUgaXRcbiAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgIHJldHVybiBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLnBhcnNlKHZhbHVlKVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIHdpdGhvdXQgJCB3b3VsZCBiZSB2YWxpZFxuICAvLyBUaGUgcmVnZXggcmVxdWlyZXM6IHN0YXJ0cyB3aXRoIGxldHRlciwgMC00OCBhbHBoYW51bS9fLy0sIGVuZHMgYWxwaGFudW1cbiAgLy8gU28gd2UgbmVlZCBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgdG90YWxcbiAgaWYgKHZhbHVlLmxlbmd0aCA8IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXJ0cyB3aXRoICQgb3IgYWxwaGEsIDAtNDggYWxwaGFudW0vYF9gL2AtYCwgZW5kcyBhbHBoYW51bS4nKVxuICB9XG5cbiAgLy8gRmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsZXR0ZXJcbiAgaWYgKCEvXlthLXpBLVpdLy50ZXN0KHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignU3RhcnRzIHdpdGggJCBvciBhbHBoYSwgMC00OCBhbHBoYW51bS9gX2AvYC1gLCBlbmRzIGFscGhhbnVtLicpXG4gIH1cblxuICAvLyBMYXN0IGNoYXJhY3RlciBtdXN0IGJlIGFscGhhbnVtZXJpY1xuICBpZiAoIS9bYS16QS1aMC05XSQvLnRlc3QodmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTdGFydHMgd2l0aCAkIG9yIGFscGhhLCAwLTQ4IGFscGhhbnVtL2BfYC9gLWAsIGVuZHMgYWxwaGFudW0uJylcbiAgfVxuXG4gIC8vIEFkZCAkIHByZWZpeCBhbmQgdmFsaWRhdGUgd2l0aCB0aGUgc2NoZW1hXG4gIGNvbnN0IHdpdGhEb2xsYXIgPSBgJCR7dmFsdWV9YFxuICByZXR1cm4gUGFyYW1ldGVyTmFtZURvbGxhclNjaGVtYS5wYXJzZSh3aXRoRG9sbGFyKVxufVxuXG5jb25zdCBFbnRpdHlOYW1lQmFzZVNjaGVtYSA9IHouc3RyaW5nKCkubWluKDEsICdSZXF1aXJlZCcpLnJlZ2V4KENvbW1vbk5hbWVNaXhlZFJlZ2V4KVxuY29uc3QgRW50aXR5TmFtZUZxblNjaGVtYSA9IHpcbiAgLnN0cmluZygpXG4gIC5taW4oMSwgJ1JlcXVpcmVkJylcbiAgLnJlZ2V4KFxuICAgIC9eZGVmYXVsdFxcL1thLXpBLVpdW2EtekEtWjAtOV8tXXswLDQ4fVthLXpBLVowLTldJC8sXG4gICAgJ0VudGl0eSBuYW1lIG11c3QgYmUgaW4gZm9ybWF0IGRlZmF1bHQvdGFibGUnLFxuICApXG4gIC5kZXNjcmliZSgnRW50aXR5IG5hbWUgaW4gZm9ybWF0IGRlZmF1bHQvdGFibGUnKVxuXG4vLyAjL2RlZmluaXRpb25zL0R5bmFtaWNFbnRpdHlOYW1lXG4vLyAjL2RlZmluaXRpb25zL0VudGl0eU5hbWVcbmV4cG9ydCBjb25zdCBFbnRpdHlOYW1lU2NoZW1hID0gei51bmlvbihbRW50aXR5TmFtZUJhc2VTY2hlbWEsIEVudGl0eU5hbWVGcW5TY2hlbWFdKVxuXG4vKipcbiAqIEVudGl0eSBuYW1lLiBGb3JtYXQ6IGRlZmF1bHQvdGFibGVuYW1lIHdoZXJlIHRhYmxlbmFtZSBzdGFydHMgd2l0aCBsZXR0ZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRW50aXR5TmFtZVxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlOYW1lID0gei5pbmZlcjx0eXBlb2YgRW50aXR5TmFtZVNjaGVtYT5cbmV4cG9ydCBjb25zdCBFbnRpdHlOYW1lQnJhbmRlZCA9IEVudGl0eU5hbWVTY2hlbWFcbi8vLmJyYW5kPCdFbnRpdHlOYW1lJz4oKVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlOYW1lKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRW50aXR5TmFtZSB7XG4gIHJldHVybiBFbnRpdHlOYW1lQnJhbmRlZC5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gZW50aXR5IG5hbWUsIGFkZGluZyBkZWZhdWx0LyBwcmVmaXggaWYgbmVlZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9FbnRpdHlOYW1lKHZhbHVlOiBzdHJpbmcsIHJlcXVpcmVEZWZhdWx0OiBib29sZWFuKTogRW50aXR5TmFtZSB7XG4gIGlmIChyZXF1aXJlRGVmYXVsdCB8fCB2YWx1ZS5zdGFydHNXaXRoKCdkZWZhdWx0LycpKSB7XG4gICAgcmV0dXJuIEVudGl0eU5hbWVGcW5TY2hlbWEucGFyc2UodmFsdWUpXG4gIH0gZWxzZSBpZiAoaXNTcWxpdGVTeXN0ZW1UYWJsZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gRW50aXR5TmFtZUJhc2VTY2hlbWEucGFyc2UodmFsdWUpXG4gIH1cbn1cblxuLy8gIy9kZWZpbml0aW9ucy9BY3Rpb25JZERlZmluaXRpb25cbmV4cG9ydCBjb25zdCBBY3Rpb25JZFNjaGVtYSA9IHouc3RyaW5nKCkucmVnZXgoQ29tbW9uTmFtZU1peGVkUmVnZXgpXG4vLy5icmFuZDwnQWN0aW9uSWQnPigpXG4vKipcbiAqIEFjdGlvbiBpZGVudGlmaWVyLiBTdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbiwgZW5kcyB3aXRoIGxldHRlci9udW1iZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvbklkID0gei5pbmZlcjx0eXBlb2YgQWN0aW9uSWRTY2hlbWE+XG5cbi8qKlxuICogQ29udmVydHMgdmFsdWUgdG8gdmFsaWRhdGVkIEFjdGlvbklkIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FjdGlvbklkKHZhbHVlOiB1bmtub3duKTogQWN0aW9uSWQge1xuICByZXR1cm4gQWN0aW9uSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIEFjdGlvbklkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBY3Rpb25JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEFjdGlvbklkIHtcbiAgcmV0dXJuIEFjdGlvbklkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vLyAjL2RlZmluaXRpb25zL0ppZ0lkXG5leHBvcnQgY29uc3QgU2NyZWVuSWRTY2hlbWEgPSB6LnN0cmluZygpLnJlZ2V4KENvbW1vbk5hbWVNaXhlZFJlZ2V4KVxuLy8uYnJhbmQ8J1NjcmVlbklkJz4oKVxuLyoqXG4gKiBTY3JlZW4gaWRlbnRpZmllci4gU3RhcnRzIHdpdGggbGV0dGVyLCBjb250YWlucyBsZXR0ZXJzL251bWJlcnMvdW5kZXJzY29yZS9oeXBoZW4sIGVuZHMgd2l0aCBsZXR0ZXIvbnVtYmVyLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0ppZ0lkRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBTY3JlZW5JZCA9IHouaW5mZXI8dHlwZW9mIFNjcmVlbklkU2NoZW1hPlxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIFNjcmVlbklkIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1NjcmVlbklkKHZhbHVlOiB1bmtub3duKTogU2NyZWVuSWQge1xuICByZXR1cm4gU2NyZWVuSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbi8qKlxuICogUGFyc2VzIHZhbHVlIGFzIEV4cHJlc3Npb24gKGlmIHN0YXJ0cyB3aXRoIGA9YCkgb3IgU2NyZWVuSWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1NjcmVlbklkT3JFeHByZXNzaW9uKHZhbHVlOiBzdHJpbmcpOiBTY3JlZW5JZCB8IEV4cHJlc3Npb24ge1xuICByZXR1cm4gdmFsdWUuc3RhcnRzV2l0aCgnPScpID8gdG9FeHByZXNzaW9uKHZhbHVlKSA6IHRvU2NyZWVuSWQodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmVlbklkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU2NyZWVuSWQge1xuICByZXR1cm4gU2NyZWVuSWRTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBTQ1JFRU5fVFlQRSA9IHtcbiAgQ0FMRU5EQVI6ICdqaWcuY2FsZW5kYXInLFxuICBERUZBVUxUOiAnamlnLmRlZmF1bHQnLFxuICBET0NVTUVOVDogJ2ppZy5kb2N1bWVudCcsXG4gIEZVTExfU0NSRUVOOiAnamlnLmZ1bGwtc2NyZWVuJyxcbiAgR0FMTEVSWTogJ2ppZy5nYWxsZXJ5JyxcbiAgR1JJRDogJ2ppZy5ncmlkJyxcbiAgTElTVDogJ2ppZy5saXN0JyxcbiAgVEFCTEU6ICdqaWcudGFibGUnLFxuICBUQUJTOiAnamlnLnRhYnMnLFxuICBXSVpBUkQ6ICdqaWcud2l6YXJkJyxcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFNDUkVFTl9UWVBFUyA9IE9iamVjdC52YWx1ZXMoU0NSRUVOX1RZUEUpXG4vKipcbiAqIFNjcmVlbiB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1NjcmVlblR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgU2NyZWVuVHlwZSA9ICh0eXBlb2YgU0NSRUVOX1RZUEUpW2tleW9mIHR5cGVvZiBTQ1JFRU5fVFlQRV1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NyZWVuVHlwZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNjcmVlblR5cGUge1xuICByZXR1cm4gU0NSRUVOX1RZUEVTLmluY2x1ZGVzKHZhbHVlIGFzIFNjcmVlblR5cGUpXG59XG5cbi8vIFJlY3Vyc2l2ZSAoZGlmZmljdWx0IHRvIGV4cHJlc3MgaW4gWm9kKVxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlclZhbHVlU2NoZW1hID0gei51bmlvbihbXG4gIFByaW1pdGl2ZVNjaGVtYSxcbiAgei5hcnJheShQcmltaXRpdmVTY2hlbWEpLFxuICB6LnJlY29yZCh6LnN0cmluZygpLCBQcmltaXRpdmVTY2hlbWEpLFxuXSlcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9UWVBFID0ge1xuICBBQ1RJT05TOiAnd2lkZ2V0LmFjdGlvbnMnLFxuICBBVkFUQVI6ICd3aWRnZXQuYXZhdGFyJyxcbiAgQ0hBUlQ6ICd3aWRnZXQuY2hhcnQnLFxuICBHUk9VUDogJ3dpZGdldC5ncm91cCcsXG4gIElNQUdFOiAnd2lkZ2V0LmltYWdlJyxcbiAgTElTVDogJ3dpZGdldC5saXN0JyxcbiAgTE9DQVRJT046ICd3aWRnZXQubG9jYXRpb24nLFxuICBTVEFUVVM6ICd3aWRnZXQuc3RhdHVzJyxcbiAgVkFMVUU6ICd3aWRnZXQudmFsdWUnLFxufSBhcyBjb25zdFxuXG5jb25zdCBXSURHRVRfVFlQRVMgPSBPYmplY3QudmFsdWVzKFdJREdFVF9UWVBFKVxuZXhwb3J0IGNvbnN0IFdpZGdldFR5cGVFbnVtID0gei5lbnVtKFdJREdFVF9UWVBFUywge1xuICBtZXNzYWdlOiBgTXVzdCBiZSBvbmUgb2Y6ICR7V0lER0VUX1RZUEVTLmpvaW4oJywgJyl9YCxcbn0pXG4vKipcbiAqIFdpZGdldCB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1dpZGdldFR5cGVcbiAqL1xuZXhwb3J0IHR5cGUgV2lkZ2V0VHlwZSA9IHouaW5mZXI8dHlwZW9mIFdpZGdldFR5cGVFbnVtPlxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaWRnZXRUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgV2lkZ2V0VHlwZSB7XG4gIHJldHVybiBXaWRnZXRUeXBlRW51bS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgdmFsdWUuIFN0cmluZywgbnVtYmVyLCBib29sZWFuLCBudWxsLCBhcnJheSwgb3Igb2JqZWN0LlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlclZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtZXRlclZhbHVlID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyVmFsdWVTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJEZWZpbml0aW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiBOb25FeHByZXNzaW9uU2NoZW1hLmRlc2NyaWJlKCdUeXBlIGZyb20gZGF0YXNvdXJjZScpLFxuICBkZWZhdWx0OiBQYXJhbWV0ZXJWYWx1ZVNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdEZWZhdWx0IHZhbHVlJyksXG4gIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdSZXF1aXJlZCBmbGFnJyksXG59KVxuXG4vKipcbiAqIFBhcmFtZXRlciBkZWZpbml0aW9uIHdpdGggdHlwZSwgZGVmYXVsdCB2YWx1ZSwgYW5kIHJlcXVpcmVkIGZsYWcuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJEZWZpbml0aW9uID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyRGVmaW5pdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFBhcmFtZXRlckRlZmluaXRpb25zU2NoZW1hID0gei5yZWNvcmQoXG4gIFBhcmFtZXRlck5hbWVEb2xsYXJTY2hlbWEsXG4gIFBhcmFtZXRlckRlZmluaXRpb25TY2hlbWEsXG4pXG5cbi8qKlxuICogTWFwIG9mIHBhcmFtZXRlciBuYW1lcyAod2l0aCAkKSB0byBwYXJhbWV0ZXIgZGVmaW5pdGlvbnMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvUGFyYW1ldGVyRGVmaW5pdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgUGFyYW1ldGVyRGVmaW5pdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBQYXJhbWV0ZXJEZWZpbml0aW9uc1NjaGVtYT5cblxuY29uc3QgQ29udmVydEZyb21Ub0VudW0gPSB6XG4gIC5lbnVtKFsnYnVmZmVyJywgJ2xvY2FsLXVyaScsICdiYXNlNjQnLCAnZGF0YS11cmknXSlcbiAgLmRlc2NyaWJlKFxuICAgICdTcGVjaWZpZXMgdGhlIHR5cGUgb2YgZGF0YSB0byBjb252ZXJ0IGZyb20gb3IgdG86IGJ1ZmZlciwgbG9jYWwtdXJpLCBiYXNlNjQsIGRhdGEtdXJpLicsXG4gIClcblxuLyoqXG4gKiBEYXRhIGNvbnZlcnNpb24gdHlwZTogYnVmZmVyLCBsb2NhbC11cmksIGJhc2U2NCwgb3IgZGF0YS11cmkuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVydFRvXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVydEZyb21Ub1xuICovXG5leHBvcnQgdHlwZSBDb252ZXJ0RnJvbVRvID0gei5pbmZlcjx0eXBlb2YgQ29udmVydEZyb21Ub0VudW0+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIENvbnZlcnRGcm9tVG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnZlcnRGcm9tVG8odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDb252ZXJ0RnJvbVRvIHtcbiAgcmV0dXJuIENvbnZlcnRGcm9tVG9FbnVtLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBDb252ZXJ0RnJvbVRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db252ZXJ0RnJvbVRvKHZhbHVlOiBzdHJpbmcpOiBDb252ZXJ0RnJvbVRvIHtcbiAgcmV0dXJuIENvbnZlcnRGcm9tVG9FbnVtLnBhcnNlKHZhbHVlKVxufVxuXG5jb25zdCBDb252ZXJzaW9uRGVmaW5pdGlvbkJhc2UgPSB6Lm9iamVjdCh7XG4gIHByb3BlcnR5OiBDb21tb25OYW1lTWl4ZWRTY2hlbWEuZGVzY3JpYmUoJ05hbWUgb2YgcHJvcGVydHkgdG8gcHJvY2VzcyBjb252ZXJzaW9uIG9uJyksXG4gIGZyb206IENvbnZlcnRGcm9tVG9FbnVtLFxuICBjb252ZXJ0SGVpY1RvSnBnOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdDb252ZXJ0IEhFSUMgdG8gSlBHJyksXG59KVxuXG5leHBvcnQgY29uc3QgQ29udmVyc2lvbkRlZmluaXRpb25TY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbigndG8nLCBbXG4gIENvbnZlcnNpb25EZWZpbml0aW9uQmFzZS5leHRlbmQoe1xuICAgIHRvOiB6LmVudW0oWydidWZmZXInLCAnYmFzZTY0JywgJ2RhdGEtdXJpJ10pLFxuICB9KSxcbiAgQ29udmVyc2lvbkRlZmluaXRpb25CYXNlLmV4dGVuZCh7XG4gICAgdG86IHoubGl0ZXJhbCgnbG9jYWwtdXJpJyksXG4gICAgbG9jYWxGaWxlbmFtZTogTm9uRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdMb2NhbCBmaWxlbmFtZSAob3B0aW9uYWwpJyksXG4gIH0pLFxuXSlcblxuLyoqXG4gKiBEYXRhIGNvbnZlcnNpb24gZGVmaW5pdGlvbiB3aXRoIHByb3BlcnR5LCBmcm9tL3RvIHR5cGVzLCBhbmQgb3B0aW9uYWwgc2V0dGluZ3MuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29udmVyc2lvbkRlZmluaXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgQ29udmVyc2lvbkRlZmluaXRpb24gPSB6LmluZmVyPHR5cGVvZiBDb252ZXJzaW9uRGVmaW5pdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRhYmxlTmFtZVNjaGVtYSA9IENvbW1vbk5hbWVNaXhlZFNjaGVtYVxuICAvLyAuYnJhbmQgPCAnVGFibGVOYW1lJ1xuICAuZGVzY3JpYmUoJ1RhYmxlIE5hbWUuJylcbi8qKlxuICogVGFibGUgbmFtZS4gTWl4ZWQtY2FzZSAyLTUwIGNoYXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFUYWJsZXNEZWZpbml0aW9uL3Byb3BlcnRpZXMvcHJvcGVydHlOYW1lc1xuICovXG5leHBvcnQgdHlwZSBUYWJsZU5hbWUgPSB6LmluZmVyPHR5cGVvZiBUYWJsZU5hbWVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRhYmxlTmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YWJhc2VUYWJsZU5hbWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUYWJsZU5hbWUge1xuICByZXR1cm4gVGFibGVOYW1lU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBUYWJsZU5hbWUsIHJlbW92aW5nIGBkZWZhdWx0L2AgcHJlZml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRhYmFzZVRhYmxlTmFtZSh2YWx1ZTogc3RyaW5nKTogVGFibGVOYW1lIHtcbiAgLy8gSWYgaXQgc3RhcnRzIHdpdGggZGVmYXVsdC8sIHJlbW92ZSBpdFxuICBpZiAodmFsdWUuc3RhcnRzV2l0aCgnZGVmYXVsdC8nKSkge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoOClcbiAgfVxuICByZXR1cm4gVGFibGVOYW1lU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQ29tcG9uZW50SWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpXG4vLyAuYnJhbmQ8J0NvbXBvbmVudElkJz4oKVxuXG4vKipcbiAqIENvbXBvbmVudCBpZGVudGlmaWVyLiBNaXhlZC1jYXNlIDItNTAgY2hhcnMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQ29tcG9uZW50SWREZWZpbml0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudElkID0gei5pbmZlcjx0eXBlb2YgQ29tcG9uZW50SWRTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIENvbXBvbmVudElkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnRJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIENvbXBvbmVudElkIHtcbiAgcmV0dXJuIENvbXBvbmVudElkU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBDb21wb25lbnRJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29tcG9uZW50SWQodmFsdWU6IHN0cmluZyk6IENvbXBvbmVudElkIHtcbiAgcmV0dXJuIENvbXBvbmVudElkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQUNUSU9OX1RZUEUgPSB7XG4gIEFDVElPTl9MSVNUOiAnYWN0aW9uLmFjdGlvbi1saXN0JyxcbiAgQ0xFQVJfUVVFVUU6ICdhY3Rpb24uY2xlYXItcXVldWUnLFxuICBDT05GSVJNOiAnYWN0aW9uLmNvbmZpcm0nLFxuICBERUxFVEVfUVVFVUVfQ09NTUFORDogJ2FjdGlvbi5kZWxldGUtcXVldWUtY29tbWFuZCcsXG4gIERFTEVURV9TWU5DX1NDT1BFOiAnYWN0aW9uLmRlbGV0ZS1zeW5jLXNjb3BlJyxcbiAgREVMRVRFX1NZTkNfU1RBVFVTOiAnYWN0aW9uLmRlbGV0ZS1zeW5jLXN0YXR1cycsXG4gIEVYRUNVVEVfQUNUSU9OOiAnYWN0aW9uLmV4ZWN1dGUtYWN0aW9uJyxcbiAgRVhFQ1VURV9FTlRJVElFUzogJ2FjdGlvbi5leGVjdXRlLWVudGl0aWVzJyxcbiAgRVhFQ1VURV9FTlRJVFk6ICdhY3Rpb24uZXhlY3V0ZS1lbnRpdHknLFxuICBFWEVDVVRFX1NRTDogJ2FjdGlvbi5leGVjdXRlLXNxbCcsXG4gIEVWQUxVQVRFOiAnYWN0aW9uLmV2YWx1YXRlJyxcbiAgRklORF9SRVBMQUNFOiAnYWN0aW9uLmZpbmQtcmVwbGFjZScsXG4gIEdFTkVSQVRFX0ZJTEU6ICdhY3Rpb24uZ2VuZXJhdGUtZmlsZScsXG4gIEdFTkVSQVRFX1BERjogJ2FjdGlvbi5nZW5lcmF0ZS1wZGYnLFxuICBHT19CQUNLOiAnYWN0aW9uLmdvLWJhY2snLFxuICBHT19UTzogJ2FjdGlvbi5nby10bycsXG4gIElORk9fTU9EQUw6ICdhY3Rpb24uaW5mby1tb2RhbCcsXG4gIE9QRU5fQVBQX1NFVFRJTkdTOiAnYWN0aW9uLm9wZW4tYXBwLXNldHRpbmdzJyxcbiAgT1BFTl9NQVA6ICdhY3Rpb24ub3Blbi1tYXAnLFxuICBPUEVOX01FRElBX1BJQ0tFUjogJ2FjdGlvbi5vcGVuLW1lZGlhLXBpY2tlcicsXG4gIE9QRU5fU0NBTk5FUjogJ2FjdGlvbi5vcGVuLXNjYW5uZXInLFxuICBPUEVOX1VSTDogJ2FjdGlvbi5vcGVuLXVybCcsXG4gIFBSSU5UOiAnYWN0aW9uLnByaW50JyxcbiAgUkVTRVRfQ09NUE9ORU5UX1NUQVRFOiAnYWN0aW9uLnJlc2V0LWNvbXBvbmVudC1zdGF0ZScsXG4gIFJFU0VUX0pJR19TVEFURTogJ2FjdGlvbi5yZXNldC1qaWctc3RhdGUnLFxuICBSRVNFVF9TT0xVVElPTl9TVEFURTogJ2FjdGlvbi5yZXNldC1zb2x1dGlvbi1zdGF0ZScsXG4gIFJFU0VUX1NUQVRFOiAnYWN0aW9uLnJlc2V0LXN0YXRlJyxcbiAgUkVUUllfUVVFVUVfQ09NTUFORDogJ2FjdGlvbi5yZXRyeS1xdWV1ZS1jb21tYW5kJyxcbiAgU0VUX0FDVElWRV9UQUI6ICdhY3Rpb24uc2V0LWFjdGl2ZS10YWInLFxuICBTRVRfSklHX1NUQVRFOiAnYWN0aW9uLnNldC1qaWctc3RhdGUnLFxuICBTRVRfU09MVVRJT05fU1RBVEU6ICdhY3Rpb24uc2V0LXNvbHV0aW9uLXN0YXRlJyxcbiAgU0VUX1NUQVRFOiAnYWN0aW9uLnNldC1zdGF0ZScsXG4gIFNIQVJFOiAnYWN0aW9uLnNoYXJlJyxcbiAgU0hPV19BTEVSVDogJ2FjdGlvbi5zaG93LWFsZXJ0JyxcbiAgU1RBUlRfTE9DQVRJT05fU0hBUklORzogJ2FjdGlvbi5zdGFydC1sb2NhdGlvbi1zaGFyaW5nJyxcbiAgU1RBUlRfU1lOQ19TQ09QRTogJ2FjdGlvbi5zdGFydC1zeW5jLXNjb3BlJyxcbiAgU1RPUF9MT0NBVElPTl9TSEFSSU5HOiAnYWN0aW9uLnN0b3AtbG9jYXRpb24tc2hhcmluZycsXG4gIFNVQk1JVF9GT1JNOiAnYWN0aW9uLnN1Ym1pdC1mb3JtJyxcbiAgU1lOQ19FTlRJVElFUzogJ2FjdGlvbi5zeW5jLWVudGl0aWVzJyxcbiAgVVBEQVRFX1BST0ZJTEU6ICdhY3Rpb24udXBkYXRlLXByb2ZpbGUnLFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQWN0aW9uVHlwZVNjaGVtYSA9IHouZW51bShBQ1RJT05fVFlQRSwge1xuICBlcnJvcjogYE11c3QgYmUgb25lIG9mOiAke09iamVjdC52YWx1ZXMoQUNUSU9OX1RZUEUpLmpvaW4oJywgJyl9YCxcbn0pXG5cbi8qKlxuICogQWN0aW9uIHR5cGUgZW51bWVyYXRpb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvQWN0aW9uVHlwZVxuICovXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlID0gei5pbmZlcjx0eXBlb2YgQWN0aW9uVHlwZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IERhdGFiYXNlSWRTY2hlbWEgPSB6XG4gIC5saXRlcmFsKCdkZWZhdWx0JylcbiAgLy8uYnJhbmQ8J0RhdGFiYXNlSWQnPigpXG4gIC5kZXNjcmliZSgnTmFtZSBvZiBkYXRhYmFzZS4gQWx3YXlzIG5hbWVkIGBkZWZhdWx0YC4nKVxuXG4vKipcbiAqIERhdGFiYXNlIGlkZW50aWZpZXIuIEFsd2F5cyAnZGVmYXVsdCcuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRGF0YWJhc2VJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhYmFzZUlkID0gei5pbmZlcjx0eXBlb2YgRGF0YWJhc2VJZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRGF0YWJhc2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YWJhc2VJZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFiYXNlSWQge1xuICByZXR1cm4gRGF0YWJhc2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gRGF0YWJhc2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvRGF0YWJhc2VJZCh2YWx1ZTogc3RyaW5nKTogRGF0YWJhc2VJZCB7XG4gIHJldHVybiBEYXRhYmFzZUlkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgRGVmYXVsdERhdGFiYXNlSWQ6IERhdGFiYXNlSWQgPSB0b0RhdGFiYXNlSWQoJ2RlZmF1bHQnKVxuXG4vLyBjb25zdCBEYXRhVGFibGVzU2NoZW1hID0gei5yZWNvcmQoVGFibGVOYW1lU2NoZW1hLCB6Lm51bGwoKSlcblxuLy8gZXhwb3J0IGNvbnN0IERhdGFiYXNlU2NoZW1hID0gei5vYmplY3Qoe1xuLy8gICBkYXRhYmFzZUlkOiBEYXRhYmFzZUlkU2NoZW1hLFxuLy8gICB0YWJsZXM6IERhdGFUYWJsZXNTY2hlbWFcbi8vIH0pXG5cbi8vIGV4cG9ydCB0eXBlIERhdGFiYXNlID0gei5pbmZlcjx0eXBlb2YgRGF0YWJhc2VTY2hlbWE+XG5cbi8vIGV4cG9ydCBjb25zdCBEYXRhYmFzZXNTY2hlbWEgPSB6Lm9iamVjdCh7XG4vLyAgIGRlZmF1bHQ6IERhdGFiYXNlU2NoZW1hXG4vLyB9KVxuXG4vLyBleHBvcnQgdHlwZSBEYXRhYmFzZXMgPSB6LmluZmVyPHR5cGVvZiBEYXRhYmFzZXNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBEYXRhc291cmNlSWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpXG4vLy5icmFuZDwnRGF0YXNvdXJjZUlkJz4oKVxuXG4vKipcbiAqIERhdGFzb3VyY2UgaWRlbnRpZmllci4gTWl4ZWQtY2FzZSAyLTUwIGNoYXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFzb3VyY2VJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhc291cmNlSWQgPSB6LmluZmVyPHR5cGVvZiBEYXRhc291cmNlSWRTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIERhdGFzb3VyY2VJZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0YXNvdXJjZUlkKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRGF0YXNvdXJjZUlkIHtcbiAgcmV0dXJuIERhdGFzb3VyY2VJZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBEYXRhc291cmNlSWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGFzb3VyY2VJZCh2YWx1ZTogdW5rbm93bik6IERhdGFzb3VyY2VJZCB7XG4gIHJldHVybiBEYXRhc291cmNlSWRTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBEQVRBU09VUkNFX1RZUEUgPSB7XG4gIFNRTElURTogJ2RhdGFzb3VyY2Uuc3FsaXRlJyxcbiAgU1RBVElDOiAnZGF0YXNvdXJjZS5zdGF0aWMnLFxuICBTWVNURU06ICdkYXRhc291cmNlLnN5c3RlbScsXG4gIFJFRkVSRU5DRTogJ2RhdGFzb3VyY2UucmVmZXJlbmNlJyxcbn0gYXMgY29uc3RcblxuY29uc3QgREFUQVNPVVJDRV9UWVBFUyA9IE9iamVjdC52YWx1ZXMoREFUQVNPVVJDRV9UWVBFKVxuZXhwb3J0IGNvbnN0IERhdGFzb3VyY2VUeXBlRW51bSA9IHouZW51bShEQVRBU09VUkNFX1RZUEVTLCB7XG4gIGVycm9yOiBgTXVzdCBiZSBvbmUgb2Y6ICR7REFUQVNPVVJDRV9UWVBFUy5qb2luKCcsICcpfWAsXG59KVxuXG4vKipcbiAqIERhdGFzb3VyY2UgdHlwZSBlbnVtZXJhdGlvbi5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9EYXRhc291cmNlVHlwZVxuICovXG5leHBvcnQgdHlwZSBEYXRhc291cmNlVHlwZSA9IHouaW5mZXI8dHlwZW9mIERhdGFzb3VyY2VUeXBlRW51bT5cblxuZXhwb3J0IGNvbnN0IEZ1bmN0aW9uSWRTY2hlbWEgPSBDb21tb25OYW1lTWl4ZWRTY2hlbWEubWluKDEsICdSZXF1aXJlZCcpIC8vLmJyYW5kPCdGdW5jdGlvbklkJz4oKVxuXG4vKipcbiAqIEZ1bmN0aW9uIGlkZW50aWZpZXIuIE1peGVkLWNhc2UgMi01MCBjaGFycy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9GdW5jdGlvbklkRGVmaW5pdGlvblxuICovXG5leHBvcnQgdHlwZSBGdW5jdGlvbklkID0gei5pbmZlcjx0eXBlb2YgRnVuY3Rpb25JZFNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgRnVuY3Rpb25JZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb25JZCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEZ1bmN0aW9uSWQge1xuICByZXR1cm4gRnVuY3Rpb25JZFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBGdW5jdGlvbklkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9GdW5jdGlvbklkKHZhbHVlOiB1bmtub3duKTogRnVuY3Rpb25JZCB7XG4gIHJldHVybiBGdW5jdGlvbklkU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG4vKipcbiAqIERhdGEgcHJvdmlkZXIgdHlwZSBjb25zdGFudHMgZm9yIGV4ZWN1dGUgYWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IERBVEFfUFJPVklERVIgPSB7XG4gIE9ORURSSVZFOiAnREFUQV9QUk9WSURFUl9PTkVEUklWRScsXG4gIFNBTEVTRk9SQ0U6ICdEQVRBX1BST1ZJREVSX1NBTEVTRk9SQ0UnLFxuICBTUUw6ICdEQVRBX1BST1ZJREVSX1NRTCcsXG4gIFJFU1Q6ICdEQVRBX1BST1ZJREVSX1JFU1QnLFxuICBTT0FQOiAnREFUQV9QUk9WSURFUl9TT0FQJyxcbiAgRFlOQU1JQzogJ0RBVEFfUFJPVklERVJfRFlOQU1JQycsXG4gIExPQ0FMOiAnREFUQV9QUk9WSURFUl9MT0NBTCcsXG4gIERZTkFNSUNfRklMRTogJ0RBVEFfUFJPVklERVJfRFlOQU1JQ19GSUxFJyxcbn0gYXMgY29uc3RcblxuY29uc3QgREFUQV9QUk9WSURFUlMgPSBPYmplY3QudmFsdWVzKERBVEFfUFJPVklERVIpXG5leHBvcnQgY29uc3QgRGF0YVByb3ZpZGVyRW51bSA9IHouZW51bShEQVRBX1BST1ZJREVSUywge1xuICBlcnJvcjogYE11c3QgYmUgb25lIG9mOiAke0RBVEFfUFJPVklERVJTLmpvaW4oJywgJyl9YCxcbn0pXG5cbi8qKlxuICogRGF0YSBwcm92aWRlciB0eXBlIGVudW1lcmF0aW9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1Byb3ZpZGVyVHlwZVxuICovXG5leHBvcnQgdHlwZSBEYXRhUHJvdmlkZXIgPSB6LmluZmVyPHR5cGVvZiBEYXRhUHJvdmlkZXJFbnVtPlxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBEYXRhUHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGFQcm92aWRlcih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFQcm92aWRlciB7XG4gIHJldHVybiBEYXRhUHJvdmlkZXJFbnVtLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG5leHBvcnQgY29uc3QgQ29tbW9uTmFtZUxvd2VyID0gelxuICAuc3RyaW5nKClcbiAgLnJlZ2V4KFxuICAgIC9eW2Etel1bYS16MC05Xy1dezAsNDh9W2EtejAtOV0kLyxcbiAgICAnTG93ZXJjYXNlIDItNTAsIHByZWZlciBrZWJhYi1jYXNlLCBzdGFydHMgYWxwaGEsIGNvbnRhaW5zIGFscGhhbnVtIGFuZCBgLWAsIGVuZHMgYWxwaGFudW0uJyxcbiAgKVxuXG4vKipcbiAqIExvd2VyY2FzZSBpZGVudGlmaWVyLiAyLTUwIGNoYXJzLCBzdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbW9uTmFtZUxvd2VyID0gei5pbmZlcjx0eXBlb2YgQ29tbW9uTmFtZUxvd2VyPlxuXG5leHBvcnQgY29uc3QgQ29tbW9uTmFtZSA9IHpcbiAgLnN0cmluZygpXG4gIC5yZWdleChcbiAgICAvXlthLXpBLVpdW2EtekEtWjAtOV8tXXswLDQ4fVthLXpBLVowLTldJC8sXG4gICAgJzItNTAgY2hhcnMsIHN0YXJ0cyB3aXRoIGxldHRlciwgY29udGFpbnMgbGV0dGVycy9udW1iZXJzL3VuZGVyc2NvcmUvaHlwaGVuLicsXG4gIClcblxuLyoqXG4gKiAyLTUwIGNoYXJzLCBzdGFydHMgd2l0aCBsZXR0ZXIsIGNvbnRhaW5zIGxldHRlcnMvbnVtYmVycy91bmRlcnNjb3JlL2h5cGhlbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tbW9uTmFtZSA9IHouaW5mZXI8dHlwZW9mIENvbW1vbk5hbWU+XG5cbi8qKlxuICogTWFwIG9mIGxvd2VyY2FzZSBuYW1lcyB0byBleHByZXNzaW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IEV4cHJlc3Npb25zU2NoZW1hID0gei5yZWNvcmQoQ29tbW9uTmFtZUxvd2VyLCBFeHByZXNzaW9uU2NoZW1hKS5kZWZhdWx0KHt9KVxuXG5leHBvcnQgY29uc3QgSW5wdXRFeHByZXNzaW9uc1NjaGVtYSA9IHpcbiAgLnJlY29yZChDb21tb25OYW1lTG93ZXIsIHoudW5pb24oW1ByaW1pdGl2ZVNjaGVtYSwgRXhwcmVzc2lvblNjaGVtYSwgei5hbnkoKV0pKVxuICAuZGVzY3JpYmUoJ05hbWVkIElucHV0cyB3aXRoIHZhbHVlcyBvciBleHByZXNzaW9ucycpXG5cbi8qKlxuICogTWFwIG9mIGxvd2VyY2FzZSBuYW1lcyB0byBwcmltaXRpdmUgdmFsdWVzIG9yIGV4cHJlc3Npb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0lucHV0RXhwcmVzc2lvbnNcbiAqL1xuZXhwb3J0IHR5cGUgSW5wdXRFeHByZXNzaW9ucyA9IHouaW5mZXI8dHlwZW9mIElucHV0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYXJhbWV0ZXJFeHByZXNzaW9uc1NjaGVtYSA9IHpcbiAgLnJlY29yZChcbiAgICBQYXJhbWV0ZXJOYW1lRG9sbGFyU2NoZW1hLFxuICAgIC8vIGRpZmZlcmVuY2UgZnJvbSBtb2JpbGUtcnVudGltZSBzY2hlbWFzLCBidXQgcnVudGltZSBzdXBwb3J0cyBvYmplY3QgYXMgcGFyYW1ldGVyIHZhbHVlXG4gICAgei51bmlvbihbUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLCB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSldKSxcbiAgKVxuICAuZGVzY3JpYmUoJ05hbWVkIHBhcmFtZXRlcnMgd2l0aCB2YWx1ZXMsIGV4cHJlc3Npb25zLCBvciBvYmplY3RzJylcblxuLyoqXG4gKiBNYXAgb2YgcGFyYW1ldGVyIG5hbWVzICh3aXRoICQpIHRvIHByaW1pdGl2ZSB2YWx1ZXMsIGV4cHJlc3Npb25zLCBvciBvYmplY3RzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1BhcmFtZXRlckV4cHJlc3Npb25zXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtZXRlckV4cHJlc3Npb25zID0gei5pbmZlcjx0eXBlb2YgUGFyYW1ldGVyRXhwcmVzc2lvbnNTY2hlbWE+XG5cbmNvbnN0IEJhc2ljQ29sb3JTY2hlbWEgPSB6LmVudW0oW1xuICAnY29sb3IxJyxcbiAgJ2NvbG9yMicsXG4gICdjb2xvcjMnLFxuICAnY29sb3I0JyxcbiAgJ2NvbG9yNScsXG4gICdjb2xvcjYnLFxuICAnY29sb3I3JyxcbiAgJ2NvbG9yOCcsXG4gICdjb2xvcjknLFxuICAnY29sb3IxMCcsXG4gICdjb2xvcjExJyxcbiAgJ2NvbG9yMTInLFxuICAnY29sb3IxMycsXG4gICdjb2xvcjE0Jyxcbl0pXG5cbi8qKlxuICogQmFzaWMgY29sb3IgcGFsZXR0ZTogY29sb3IxIHRocm91Z2ggY29sb3IxNC5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9CYXNpY0NvbG9yXG4gKi9cbi8vIGV4cG9ydCB0eXBlIEJhc2ljQ29sb3IgPSB6LmluZmVyPHR5cGVvZiBCYXNpY0NvbG9yU2NoZW1hPlxuXG5jb25zdCBTdGF0dXNDb2xvclNjaGVtYSA9IHouZW51bShbJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ3dhcm5pbmcnXSlcblxuLyoqXG4gKiBTdGF0dXMgY29sb3I6IHBvc2l0aXZlLCBuZWdhdGl2ZSwgb3Igd2FybmluZy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TdGF0dXNDb2xvclxuICovXG4vLyBleHBvcnQgdHlwZSBTdGF0dXNDb2xvciA9IHouaW5mZXI8dHlwZW9mIFN0YXR1c0NvbG9yU2NoZW1hPlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5jb25zdCBDb21wb25lbnRDb2xvclNjaGVtYSA9IHoudW5pb24oW0Jhc2ljQ29sb3JTY2hlbWEsIFN0YXR1c0NvbG9yU2NoZW1hXSlcblxuLyoqXG4gKiBDb21wb25lbnQgY29sb3IuIEJhc2ljIHBhbGV0dGUgb3Igc3RhdHVzIGNvbG9yLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbXBvbmVudENvbG9yXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBvbmVudENvbG9yID0gei5pbmZlcjx0eXBlb2YgQ29tcG9uZW50Q29sb3JTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBDb2xvclZhbHVlU2NoZW1hID0gei51bmlvbihbXG4gIHoubGl0ZXJhbCgncHJpbWFyeScpLFxuICBCYXNpY0NvbG9yU2NoZW1hLFxuICBTdGF0dXNDb2xvclNjaGVtYSxcbiAgRXhwcmVzc2lvblNjaGVtYSxcbl0pXG5cbi8qKlxuICogQ29sb3IgdmFsdWUgc3RyaW5nLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbG9yVmFsdWVcbiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JWYWx1ZSA9IHouaW5mZXI8dHlwZW9mIENvbG9yVmFsdWVTY2hlbWE+XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbG9yVmFsdWUodmFsdWU6IHVua25vd24pOiBDb2xvclZhbHVlIHtcbiAgcmV0dXJuIENvbG9yVmFsdWVTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0NvbG9yVmFsdWVPckNvbmRpdGlvbnModmFsdWU6IHVua25vd24pOiBDb2xvclZhbHVlT3JDb25kaXRpb25zIHtcbiAgcmV0dXJuIENvbG9yVmFsdWVPckNvbmRpdGlvbnNTY2hlbWEucGFyc2UodmFsdWUpXG59XG5cbmV4cG9ydCBjb25zdCBDb2xvckNvbmRpdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgd2hlbjogei51bmlvbihbei5zdHJpbmcoKSwgei5ib29sZWFuKCldKSxcbiAgY29sb3I6IENvbG9yVmFsdWVTY2hlbWEsXG59KVxuXG4vKipcbiAqIENvbG9yIGNvbmRpdGlvbiB3aXRoIHdoZW4gY2xhdXNlIGFuZCBjb2xvciB2YWx1ZS5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9Db2xvckNvbmRpdGlvblxuICovXG5leHBvcnQgdHlwZSBDb2xvckNvbmRpdGlvbiA9IHouaW5mZXI8dHlwZW9mIENvbG9yQ29uZGl0aW9uU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgQ29sb3JWYWx1ZU9yQ29uZGl0aW9uc1NjaGVtYSA9IHpcbiAgLnVuaW9uKFtDb2xvclZhbHVlU2NoZW1hLCB6LmFycmF5KENvbG9yQ29uZGl0aW9uU2NoZW1hKV0pXG4gIC5kZXNjcmliZSgnQ29sb3IgZGVmaW5pdGlvbiBjYW4gYmUgZWl0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIG9yIGEgc2luZ2xlIGNvbG9yIHZhbHVlJylcblxuLyoqXG4gKiBDb2xvciB2YWx1ZSBvciBhcnJheSBvZiBjb2xvciBjb25kaXRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0NvbG9yVmFsdWVPckNvbmRpdGlvbnNcbiAqL1xuZXhwb3J0IHR5cGUgQ29sb3JWYWx1ZU9yQ29uZGl0aW9ucyA9IHouaW5mZXI8dHlwZW9mIENvbG9yVmFsdWVPckNvbmRpdGlvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBKaWdQcmV2aWV3Q29uZmlndXJhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgnUHJldmlldyB0aXRsZScpLFxuICBzdWJ0aXRsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdQcmV2aWV3IHN1YnRpdGxlJyksXG4gIGltYWdlOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ1ByZXZpZXcgaW1hZ2UgVVJMJyksXG59KVxuXG4vKipcbiAqIEppZyBwcmV2aWV3IHdpdGggdGl0bGUsIHN1YnRpdGxlLCBhbmQgaW1hZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIEppZ1ByZXZpZXdUeXBlID0gei5pbmZlcjx0eXBlb2YgSmlnUHJldmlld0NvbmZpZ3VyYXRpb25TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBQYWxldHRlQ29sb3JTY2hlbWEgPSB6LmVudW0oW1xuICAnZWxlbWVudCcsXG4gICdiYWNrZ3JvdW5kJyxcbiAgJ29uQmFja2dyb3VuZCcsXG4gICdzY3JlZW4nLFxuICAnY2FyZCcsXG4gICdjb2xvcjEwJyxcbiAgJ2NvbG9yMTEnLFxuICAnY29sb3IxMicsXG4gICdjb2xvcjEzJyxcbiAgJ2NvbG9yMTQnLFxuICAnY29sb3IxJyxcbiAgJ2NvbG9yMicsXG4gICdjb2xvcjMnLFxuICAnY29sb3I0JyxcbiAgJ2NvbG9yNScsXG4gICdjb2xvcjYnLFxuICAnY29sb3I3JyxcbiAgJ2NvbG9yOCcsXG4gICdjb2xvcjknLFxuICAnb3ZlcmxheScsXG4gICdvbk92ZXJsYXknLFxuICAnbGluaycsXG4gICduYXZpZ2F0aW9uJyxcbiAgJ29uTmF2aWdhdGlvbicsXG4gICduZWdhdGl2ZScsXG4gICdvblNjcmVlbicsXG4gICdvbkNhcmQnLFxuICAnb25Db2xvcjEwJyxcbiAgJ29uQ29sb3IxMScsXG4gICdvbkNvbG9yMTInLFxuICAnb25Db2xvcjEzJyxcbiAgJ29uQ29sb3IxNCcsXG4gICdvbkNvbG9yMScsXG4gICdvbkNvbG9yMicsXG4gICdvbkNvbG9yMycsXG4gICdvbkNvbG9yNCcsXG4gICdvbkNvbG9yNScsXG4gICdvbkNvbG9yNicsXG4gICdvbkNvbG9yNycsXG4gICdvbkNvbG9yOCcsXG4gICdvbkNvbG9yOScsXG4gICdvbkVsZW1lbnQnLFxuICAnb25OZWdhdGl2ZScsXG4gICdvblBvc2l0aXZlJyxcbiAgJ29uUHJpbWFyeScsXG4gICdvblNlY29uZGFyeScsXG4gICdvblNwbGFzaCcsXG4gICdvblRvYXN0JyxcbiAgJ29uV2FybmluZycsXG4gICdwb3NpdGl2ZScsXG4gICdwcmltYXJ5JyxcbiAgJ3NlY29uZGFyeScsXG4gICdzcGxhc2gnLFxuICAndG9hc3QnLFxuICAndHJhbnNwYXJlbnQnLFxuICAnd2FybmluZycsXG5dKVxuXG4vKipcbiAqIEZ1bGwgcGFsZXR0ZSBjb2xvciBpbmNsdWRpbmcgc2VtYW50aWMgYW5kIG51bWJlcmVkIGNvbG9ycy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9QYWxldHRlQ29sb3JcbiAqL1xuZXhwb3J0IHR5cGUgUGFsZXR0ZUNvbG9yID0gei5pbmZlcjx0eXBlb2YgUGFsZXR0ZUNvbG9yU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dE51bWJlclN0eWxlU2NoZW1hID0gei5lbnVtKFsnZGVjaW1hbCcsICdjdXJyZW5jeScsICdwZXJjZW50JywgJ3VuaXQnXSlcbmV4cG9ydCB0eXBlIFRleHROdW1iZXJTdHlsZSA9IHouaW5mZXI8dHlwZW9mIFRleHROdW1iZXJTdHlsZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRTaWduRGlzcGxheVNjaGVtYSA9IHouZW51bShbJ2F1dG8nLCAnYWx3YXlzJywgJ25ldmVyJ10pXG5leHBvcnQgdHlwZSBUZXh0U2lnbkRpc3BsYXkgPSB6LmluZmVyPHR5cGVvZiBUZXh0U2lnbkRpc3BsYXlTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0VW5pdERpc3BsYXlTY2hlbWEgPSB6LmVudW0oWydsb25nJywgJ3Nob3J0JywgJ25hcnJvdyddKVxuZXhwb3J0IHR5cGUgVGV4dFVuaXREaXNwbGF5ID0gei5pbmZlcjx0eXBlb2YgVGV4dFVuaXREaXNwbGF5U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dE51bWJlcmluZ1N5c3RlbVNjaGVtYSA9IHouZW51bShbXG4gICdhcmFiJyxcbiAgJ2FyYWJleHQnLFxuICAnYmFsaScsXG4gICdiZW5nJyxcbiAgJ2RldmEnLFxuICAnZnVsbHdpZGUnLFxuICAnZ3VqcicsXG4gICdndXJ1JyxcbiAgJ2hhbmlkZWMnLFxuICAna2htcicsXG4gICdrbmRhJyxcbiAgJ2xhb28nLFxuICAnbGF0bicsXG4gICdsaW1iJyxcbiAgJ21seW0nLFxuICAnbW9uZycsXG4gICdteW1yJyxcbiAgJ29yeWEnLFxuICAndGFtbGRlYycsXG4gICd0ZWx1JyxcbiAgJ3RoYWknLFxuICAndGlidCcsXG5dKVxuZXhwb3J0IHR5cGUgVGV4dE51bWJlcmluZ1N5c3RlbSA9IHouaW5mZXI8dHlwZW9mIFRleHROdW1iZXJpbmdTeXN0ZW1TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Tm90YXRpb25TY2hlbWEgPSB6LmVudW0oWydzdGFuZGFyZCcsICdzY2llbnRpZmljJywgJ2VuZ2luZWVyaW5nJywgJ2NvbXBhY3QnXSlcbmV4cG9ydCB0eXBlIFRleHROb3RhdGlvbiA9IHouaW5mZXI8dHlwZW9mIFRleHROb3RhdGlvblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRDb21wYWN0RGlzcGxheVNjaGVtYSA9IHouZW51bShbJ3Nob3J0JywgJ2xvbmcnXSlcbmV4cG9ydCB0eXBlIFRleHRDb21wYWN0RGlzcGxheSA9IHouaW5mZXI8dHlwZW9mIFRleHRDb21wYWN0RGlzcGxheVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFRleHRDdXJyZW5jeURpc3BsYXlTY2hlbWEgPSB6LmVudW0oWydzeW1ib2wnLCAnY29kZScsICduYW1lJywgJ25hcnJvd1N5bWJvbCddKVxuZXhwb3J0IHR5cGUgVGV4dEN1cnJlbmN5RGlzcGxheSA9IHouaW5mZXI8dHlwZW9mIFRleHRDdXJyZW5jeURpc3BsYXlTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Q3VycmVuY3lTaWduU2NoZW1hID0gei5lbnVtKFsnc3RhbmRhcmQnLCAnYWNjb3VudGluZyddKVxuZXhwb3J0IHR5cGUgVGV4dEN1cnJlbmN5U2lnbiA9IHouaW5mZXI8dHlwZW9mIFRleHRDdXJyZW5jeVNpZ25TY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0RGF0ZUZvcm1hdFNjaGVtYSA9IHoudW5pb24oW3ouc3RyaW5nKCksIHouZW51bShbJ2RlZmF1bHQnLCAnZnJvbU5vdycsICd0b05vdyddKV0pXG5leHBvcnQgdHlwZSBUZXh0RGF0ZUZvcm1hdCA9IHouaW5mZXI8dHlwZW9mIFRleHREYXRlRm9ybWF0U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgQ3VycmVuY3lDb2Rlc1NjaGVtYSA9IHouZW51bShbXG4gICdBRUQnLCAvLyAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMgRGlyaGFtJ1xuICAnQUZOJywgLy8gJ0FmZ2hhbiBBZmdoYW5pJ1xuICAnQUxMJywgLy8gJ0FsYmFuaWFuIExlaydcbiAgJ0FNRCcsIC8vICdBcm1lbmlhbiBEcmFtJ1xuICAnQU5HJywgLy8gJ05ldGhlcmxhbmRzIEFudGlsbGVhbiBHdWlsZGVyJ1xuICAnQU9BJywgLy8gJ0FuZ29sYW4gS3dhbnphJ1xuICAnQVJTJywgLy8gJ0FyZ2VudGluZSBQZXNvJ1xuICAnQVVEJywgLy8gJ0F1c3RyYWxpYW4gRG9sbGFyJ1xuICAnQVdHJywgLy8gJ0FydWJhbiBGbG9yaW4nXG4gICdBWk4nLCAvLyAnQXplcmJhaWphbmkgTWFuYXQnXG4gICdCQU0nLCAvLyAnQm9zbmlhLUhlcnplZ292aW5hIENvbnZlcnRpYmxlIE1hcmsnXG4gICdCQkQnLCAvLyAnQmFyYmFkaWFuIERvbGxhcidcbiAgJ0JEVCcsIC8vICdCYW5nbGFkZXNoaSBUYWthJ1xuICAnQkdOJywgLy8gJ0J1bGdhcmlhbiBMZXYnXG4gICdCSEQnLCAvLyAnQmFocmFpbmkgRGluYXInXG4gICdCSUYnLCAvLyAnQnVydW5kaWFuIEZyYW5jJ1xuICAnQk1EJywgLy8gJ0Jlcm11ZGlhbiBEb2xsYXInXG4gICdCTkQnLCAvLyAnQnJ1bmVpIERvbGxhcidcbiAgJ0JPQicsIC8vICdCb2xpdmlhbiBCb2xpdmlhbm8nXG4gICdCUkwnLCAvLyAnQnJhemlsaWFuIFJlYWwnXG4gICdCU0QnLCAvLyAnQmFoYW1pYW4gRG9sbGFyJ1xuICAnQlROJywgLy8gJ0JodXRhbmVzZSBOZ3VsdHJ1bSdcbiAgJ0JXUCcsIC8vICdCb3Rzd2FuYW4gUHVsYSdcbiAgJ0JZTicsIC8vICdCZWxhcnVzaWFuIFJ1YmxlJ1xuICAnQlpEJywgLy8gJ0JlbGl6ZSBEb2xsYXInXG4gICdDQUQnLCAvLyAnQ2FuYWRpYW4gRG9sbGFyJ1xuICAnQ0RGJywgLy8gJ0NvbmdvbGVzZSBGcmFuYydcbiAgJ0NIRicsIC8vICdTd2lzcyBGcmFuYydcbiAgJ0NMUCcsIC8vICdDaGlsZWFuIFBlc28nXG4gICdDTlknLCAvLyAnQ2hpbmVzZSBZdWFuJ1xuICAnQ09QJywgLy8gJ0NvbG9tYmlhbiBQZXNvJ1xuICAnQ1JDJywgLy8gJ0Nvc3RhIFJpY2FuIENvbMOzbidcbiAgJ0NVUCcsIC8vICdDdWJhbiBQZXNvJ1xuICAnQ1ZFJywgLy8gJ0NhcGUgVmVyZGVhbiBFc2N1ZG8nXG4gICdDWksnLCAvLyAnQ3plY2ggS29ydW5hJ1xuICAnREpGJywgLy8gJ0RqaWJvdXRpYW4gRnJhbmMnXG4gICdES0snLCAvLyAnRGFuaXNoIEtyb25lJ1xuICAnRE9QJywgLy8gJ0RvbWluaWNhbiBQZXNvJ1xuICAnRFpEJywgLy8gJ0FsZ2VyaWFuIERpbmFyJ1xuICAnRUdQJywgLy8gJ0VneXB0aWFuIFBvdW5kJ1xuICAnRVJOJywgLy8gJ0VyaXRyZWFuIE5ha2ZhJ1xuICAnRVRCJywgLy8gJ0V0aGlvcGlhbiBCaXJyJ1xuICAnRVVSJywgLy8gJ0V1cm8nXG4gICdGSkQnLCAvLyAnRmlqaWFuIERvbGxhcidcbiAgJ0ZLUCcsIC8vICdGYWxrbGFuZCBJc2xhbmRzIFBvdW5kJ1xuICAnRk9LJywgLy8gJ0Zhcm9lc2UgS3LDs25hJ1xuICAnR0JQJywgLy8gJ0JyaXRpc2ggUG91bmQgU3RlcmxpbmcnXG4gICdHRUwnLCAvLyAnR2VvcmdpYW4gTGFyaSdcbiAgJ0dHUCcsIC8vICdHdWVybnNleSBQb3VuZCdcbiAgJ0dIUycsIC8vICdHaGFuYWlhbiBDZWRpJ1xuICAnR0lQJywgLy8gJ0dpYnJhbHRhciBQb3VuZCdcbiAgJ0dNRCcsIC8vICdHYW1iaWFuIERhbGFzaSdcbiAgJ0dORicsIC8vICdHdWluZWFuIEZyYW5jJ1xuICAnR1RRJywgLy8gJ0d1YXRlbWFsYW4gUXVldHphbCdcbiAgJ0dZRCcsIC8vICdHdXlhbmFlc2UgRG9sbGFyJ1xuICAnSEtEJywgLy8gJ0hvbmcgS29uZyBEb2xsYXInXG4gICdITkwnLCAvLyAnSG9uZHVyYW4gTGVtcGlyYSdcbiAgJ0hSSycsIC8vICdDcm9hdGlhbiBLdW5hJ1xuICAnSFRHJywgLy8gJ0hhaXRpYW4gR291cmRlJ1xuICAnSFVGJywgLy8gJ0h1bmdhcmlhbiBGb3JpbnQnXG4gICdJRFInLCAvLyAnSW5kb25lc2lhbiBSdXBpYWgnXG4gICdJTFMnLCAvLyAnSXNyYWVsaSBOZXcgU2hla2VsJ1xuICAnSU1QJywgLy8gJ0lzbGUgb2YgTWFuIFBvdW5kJ1xuICAnSU5SJywgLy8gJ0luZGlhbiBSdXBlZSdcbiAgJ0lRRCcsIC8vICdJcmFxaSBEaW5hcidcbiAgJ0lSUicsIC8vICdJcmFuaWFuIFJpYWwnXG4gICdJU0snLCAvLyAnSWNlbGFuZGljIEtyw7NuYSdcbiAgJ0pFUCcsIC8vICdKZXJzZXkgUG91bmQnXG4gICdKTUQnLCAvLyAnSmFtYWljYW4gRG9sbGFyJ1xuICAnSk9EJywgLy8gJ0pvcmRhbmlhbiBEaW5hcidcbiAgJ0pQWScsIC8vICdKYXBhbmVzZSBZZW4nXG4gICdLRVMnLCAvLyAnS2VueWFuIFNoaWxsaW5nJ1xuICAnS0dTJywgLy8gJ0t5cmd5c3RhbmkgU29tJ1xuICAnS0hSJywgLy8gJ0NhbWJvZGlhbiBSaWVsJ1xuICAnS0lEJywgLy8gJ0tpcmliYXRpIERvbGxhcidcbiAgJ0tNRicsIC8vICdDb21vcmlhbiBGcmFuYydcbiAgJ0tSVycsIC8vICdTb3V0aCBLb3JlYW4gV29uJ1xuICAnS1dEJywgLy8gJ0t1d2FpdGkgRGluYXInXG4gICdLWUQnLCAvLyAnQ2F5bWFuIElzbGFuZHMgRG9sbGFyJ1xuICAnS1pUJywgLy8gJ0themFraHN0YW5pIFRlbmdlJ1xuICAnTEFLJywgLy8gJ0xhb3RpYW4gS2lwJ1xuICAnTEJQJywgLy8gJ0xlYmFuZXNlIFBvdW5kJ1xuICAnTEtSJywgLy8gJ1NyaSBMYW5rYW4gUnVwZWUnXG4gICdMUkQnLCAvLyAnTGliZXJpYW4gRG9sbGFyJ1xuICAnTFNMJywgLy8gJ0xlc290aG8gTG90aSdcbiAgJ0xZRCcsIC8vICdMaWJ5YW4gRGluYXInXG4gICdNQUQnLCAvLyAnTW9yb2NjYW4gRGlyaGFtJ1xuICAnTURMJywgLy8gJ01vbGRvdmFuIExldSdcbiAgJ01HQScsIC8vICdNYWxhZ2FzeSBBcmlhcnknXG4gICdNS0QnLCAvLyAnTWFjZWRvbmlhbiBEZW5hcidcbiAgJ01NSycsIC8vICdNeWFubWEgS3lhdCdcbiAgJ01OVCcsIC8vICdNb25nb2xpYW4gVHVncmlrJ1xuICAnTU9QJywgLy8gJ01hY2FuZXNlIFBhdGFjYSdcbiAgJ01SVScsIC8vICdNYXVyaXRhbmlhbiBPdWd1aXlhJ1xuICAnTVVSJywgLy8gJ01hdXJpdGlhbiBSdXBlZSdcbiAgJ01WUicsIC8vICdNYWxkaXZpYW4gUnVmaXlhYSdcbiAgJ01XSycsIC8vICdNYWxhd2lhbiBLd2FjaGEnXG4gICdNWE4nLCAvLyAnTWV4aWNhbiBQZXNvJ1xuICAnTVlSJywgLy8gJ01hbGF5c2lhbiBSaW5nZ2l0J1xuICAnTVpOJywgLy8gJ01vemFtYmljYW4gTWV0aWNhbCdcbiAgJ05BRCcsIC8vICdOYW1pYmlhbiBEb2xsYXInXG4gICdOR04nLCAvLyAnTmlnZXJpYW4gTmFpcmEnXG4gICdOSU8nLCAvLyAnTmljYXJhZ3VhbiBDw7NyZG9iYSdcbiAgJ05PSycsIC8vICdOb3J3ZWdpYW4gS3JvbmUnXG4gICdOUFInLCAvLyAnTmVwYWxlc2UgUnVwZWUnXG4gICdOWkQnLCAvLyAnTmV3IFplYWxhbmQgRG9sbGFyJ1xuICAnT01SJywgLy8gJ09tYW5pIFJpYWwnXG4gICdQQUInLCAvLyAnUGFuYW1hbmlhbiBCYWxib2EnXG4gICdQRU4nLCAvLyAnUGVydXZpYW4gU29sJ1xuICAnUEdLJywgLy8gJ1BhcHVhIE5ldyBHdWluZWFuIEtpbmEnXG4gICdQSFAnLCAvLyAnUGhpbGlwcGluZSBQZXNvJ1xuICAnUEtSJywgLy8gJ1Bha2lzdGFuaSBSdXBlZSdcbiAgJ1BMTicsIC8vICdQb2xpc2ggWmxvdHknXG4gICdQWUcnLCAvLyAnUGFyYWd1YXlhbiBHdWFyYW5pJ1xuICAnUUFSJywgLy8gJ1FhdGFyaSBSaWFsJ1xuICAnUk9OJywgLy8gJ1JvbWFuaWFuIExldSdcbiAgJ1JTRCcsIC8vICdTZXJiaWFuIERpbmFyJ1xuICAnUlVCJywgLy8gJ1J1c3NpYW4gUnVibGUnXG4gICdSV0YnLCAvLyAnUndhbmRhbiBGcmFuYydcbiAgJ1NBUicsIC8vICdTYXVkaSBSaXlhbCdcbiAgJ1NCRCcsIC8vICdTb2xvbW9uIElzbGFuZHMgRG9sbGFyJ1xuICAnU0NSJywgLy8gJ1NleWNoZWxsb2lzIFJ1cGVlJ1xuICAnU0RHJywgLy8gJ1N1ZGFuZXNlIFBvdW5kJ1xuICAnU0VLJywgLy8gJ1N3ZWRpc2ggS3JvbmEnXG4gICdTR0QnLCAvLyAnU2luZ2Fwb3JlIERvbGxhcidcbiAgJ1NIUCcsIC8vICdTYWludCBIZWxlbmEgUG91bmQnXG4gICdTTEwnLCAvLyAnU2llcnJhIExlb25lYW4gTGVvbmUnXG4gICdTT1MnLCAvLyAnU29tYWxpIFNoaWxsaW5nJ1xuICAnU1JEJywgLy8gJ1N1cmluYW1lc2UgRG9sbGFyJ1xuICAnU1NQJywgLy8gJ1NvdXRoIFN1ZGFuZXNlIFBvdW5kJ1xuICAnU1ROJywgLy8gJ1PDo28gVG9tw6kgJiBQcsOtbmNpcGUgRG9icmEnXG4gICdTWVAnLCAvLyAnU3lyaWFuIFBvdW5kJ1xuICAnU1pMJywgLy8gJ0Vzd2F0aW5pIExpbGFuZ2VuaSdcbiAgJ1RIQicsIC8vICdUaGFpIEJhaHQnXG4gICdUSlMnLCAvLyAnVGFqaWtpc3RhbmkgU29tb25pJ1xuICAnVE1UJywgLy8gJ1R1cmttZW5pc3RhbiBNYW5hdCdcbiAgJ1RORCcsIC8vICdUdW5pc2lhbiBEaW5hcidcbiAgJ1RPUCcsIC8vIFwiVG9uZ2FuIFBhJ2FuZ2FcIlxuICAnVFJZJywgLy8gJ1R1cmtpc2ggTGlyYSdcbiAgJ1RURCcsIC8vICdUcmluaWRhZCAmIFRvYmFnbyBEb2xsYXInXG4gICdUVkQnLCAvLyAnVHV2YWx1YW4gRG9sbGFyJ1xuICAnVFdEJywgLy8gJ05ldyBUYWl3YW4gRG9sbGFyJ1xuICAnVFpTJywgLy8gJ1RhbnphbmlhbiBTaGlsbGluZydcbiAgJ1VBSCcsIC8vICdVa3JhaW5pYW4gSHJ5dm5pYSdcbiAgJ1VHWCcsIC8vICdVZ2FuZGFuIFNoaWxsaW5nJ1xuICAnVVNEJywgLy8gJ1VuaXRlZCBTdGF0ZXMgRG9sbGFyJ1xuICAnVVlVJywgLy8gJ1VydWd1YXlhbiBQZXNvJ1xuICAnVVpTJywgLy8gJ1V6YmVraXN0YW5pIFNvbSdcbiAgJ1ZFUycsIC8vICdWZW5lenVlbGFuIEJvbMOtdmFyJ1xuICAnVk5EJywgLy8gJ1ZpZXRuYW1lc2UgRG9uZydcbiAgJ1ZVVicsIC8vICdWYW51YXR1IFZhdHUnXG4gICdXU1QnLCAvLyAnU2Ftb2FuIFRhbGEnXG4gICdYQUYnLCAvLyAnQ2VudHJhbCBBZnJpY2FuIENGQSBGcmFuYydcbiAgJ1hDRCcsIC8vICdFYXN0IENhcmliYmVhbiBEb2xsYXInXG4gICdYRFInLCAvLyAnU3BlY2lhbCBEcmF3aW5nIFJpZ2h0cydcbiAgJ1hPRicsIC8vICdXZXN0IEFmcmljYW4gQ0ZBIEZyYW5jJ1xuICAnWFBGJywgLy8gJ0NGUCBGcmFuYydcbiAgJ1lFUicsIC8vICdZZW1lbmkgUmlhbCdcbiAgJ1pBUicsIC8vICdTb3V0aCBBZnJpY2FuIFJhbmQnXG4gICdaTVcnLCAvLyAnWmFtYmlhbiBLd2FjaGEnXG5dKVxuZXhwb3J0IHR5cGUgQ3VycmVuY3lDb2Rlc0tleXMgPSB6LmluZmVyPHR5cGVvZiBDdXJyZW5jeUNvZGVzU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgTnVtYmVyVW5pdFNjaGVtYSA9IHouZW51bShbXG4gICdhY3JlJyxcbiAgJ2JpdCcsXG4gICdieXRlJyxcbiAgJ2NlbHNpdXMnLFxuICAnY2VudGltZXRlcicsXG4gICdkYXknLFxuICAnZGVncmVlJyxcbiAgJ2ZhaHJlbmhlaXQnLFxuICAnZmx1aWQtb3VuY2UnLFxuICAnZm9vdCcsXG4gICdnYWxsb24nLFxuICAnZ2lnYWJpdCcsXG4gICdnaWdhYnl0ZScsXG4gICdncmFtJyxcbiAgJ2hlY3RhcmUnLFxuICAnaG91cicsXG4gICdpbmNoJyxcbiAgJ2tpbG9iaXQnLFxuICAna2lsb2J5dGUnLFxuICAna2lsb2dyYW0nLFxuICAna2lsb21ldGVyJyxcbiAgJ2xpdGVyJyxcbiAgJ21lZ2FiaXQnLFxuICAnbWVnYWJ5dGUnLFxuICAnbWV0ZXInLFxuICAnbWlsZScsXG4gICdtaWxlLXNjYW5kaW5hdmlhbicsXG4gICdtaWxsaWxpdGVyJyxcbiAgJ21pbGxpbWV0ZXInLFxuICAnbWlsbGlzZWNvbmQnLFxuICAnbWludXRlJyxcbiAgJ21vbnRoJyxcbiAgJ291bmNlJyxcbiAgJ3BlcmNlbnQnLFxuICAncGV0YWJ5dGUnLFxuICAncG91bmQnLFxuICAnc2Vjb25kJyxcbiAgJ3N0b25lJyxcbiAgJ3RlcmFiaXQnLFxuICAndGVyYWJ5dGUnLFxuICAnd2VlaycsXG4gICd5YXJkJyxcbiAgJ3llYXInLFxuXSlcbmV4cG9ydCB0eXBlIE51bWJlclVuaXQgPSB6LmluZmVyPHR5cGVvZiBOdW1iZXJVbml0U2NoZW1hPlxuXG5leHBvcnQgY29uc3QgTnVtYmVyRm9ybWF0RXhwcmVzc2lvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG51bWJlclN0eWxlOiB6XG4gICAgLnVuaW9uKFtUZXh0TnVtYmVyU3R5bGVTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoXG4gICAgICAnZGVjaW1hbCwgY3VycmVuY3ksIHBlcmNlbnQgb3IgdW5pdCAtIGlkZW50aWZ5aW5nIHRoZSB0eXBlIG9mIHF1YW50aXR5IGJlaW5nIG1lYXN1cmVkJyxcbiAgICApLFxuICBtaW5pbXVtSW50ZWdlckRpZ2l0czogTnVtYmVyT3JFeHByZXNzaW9uU2NoZW1hLm9wdGlvbmFsKCkuZGVzY3JpYmUoXG4gICAgJ01pbmltdW0gbnVtYmVyIG9mIGludGVnZXIgZGlnaXRzICgxLTIxKS4gTnVtYmVycyBwYWRkZWQgd2l0aCBsZWFkaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNaW5pbXVtIGZyYWN0aW9uIGRpZ2l0cy4gTnVtYmVycyByb3VuZGVkIG9yIHBhZGRlZCB3aXRoIHRyYWlsaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNYXhpbXVtIGZyYWN0aW9uIGRpZ2l0cy4gTnVtYmVycyByb3VuZGVkIG9yIHBhZGRlZCB3aXRoIHRyYWlsaW5nIHplcm9lcyBpZiBuZWNlc3NhcnknLFxuICApLFxuICBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHM6IE51bWJlck9yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgICdNaW5pbXVtIHNpZ25pZmljYW50IGRpZ2l0cyB0byBzaG93JyxcbiAgKSxcbiAgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzOiBOdW1iZXJPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcbiAgICAnTWF4aW11bSBzaWduaWZpY2FudCBkaWdpdHMgdG8gc2hvdycsXG4gICksXG4gIHNpZ25EaXNwbGF5OiB6XG4gICAgLnVuaW9uKFtUZXh0U2lnbkRpc3BsYXlTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoJ2F1dG8sIGFsd2F5cywgbmV2ZXIsIG9yIGV4Y2VwdFplcm8gLSB3aGV0aGVyIHRvIHNob3cgc2lnbicpLFxuICB1bml0OiBQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZShcbiAgICAnVW5pdCBmb3IgdW5pdCBmb3JtYXR0aW5nIChlLmcuIGtpbG9tZXRlciwgbWlsZS1wZXItaG91ciknLFxuICApLFxuICB1bml0RGlzcGxheTogelxuICAgIC51bmlvbihbVGV4dFVuaXREaXNwbGF5U2NoZW1hLCBTdHJpbmdPckV4cHJlc3Npb25TY2hlbWFdKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKCdsb25nLCBzaG9ydCwgb3IgbmFycm93IC0gdW5pdCBkaXNwbGF5IHN0eWxlJyksXG4gIG51bWJlcmluZ1N5c3RlbTogelxuICAgIC51bmlvbihbVGV4dE51bWJlcmluZ1N5c3RlbVNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnTnVtYmVyaW5nIHN5c3RlbSBmb3IgZm9ybWF0dGluZycpLFxuICBjdXJyZW5jeTogelxuICAgIC51bmlvbihbQ3VycmVuY3lDb2Rlc1NjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnQ3VycmVuY3kgY29kZSAoZS5nLiBVU0QsIEVVUikgZm9yIGN1cnJlbmN5IGZvcm1hdHRpbmcnKSxcbiAgbm90YXRpb246IHpcbiAgICAudW5pb24oW1RleHROb3RhdGlvblNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3RhbmRhcmQsIHNjaWVudGlmaWMsIGVuZ2luZWVyaW5nLCBvciBjb21wYWN0JyksXG4gIGNvbXBhY3REaXNwbGF5OiB6XG4gICAgLnVuaW9uKFtUZXh0Q29tcGFjdERpc3BsYXlTY2hlbWEsIFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYV0pXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoJ3Nob3J0IG9yIGxvbmcgLSBvbmx5IHVzZWQgd2hlbiBub3RhdGlvbiBpcyBjb21wYWN0JyksXG4gIGN1cnJlbmN5RGlzcGxheTogelxuICAgIC51bmlvbihbVGV4dEN1cnJlbmN5RGlzcGxheVNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3ltYm9sLCBjb2RlLCBuYW1lLCBvciBuYXJyb3dTeW1ib2wgLSBjdXJyZW5jeSBkaXNwbGF5IHN0eWxlJyksXG4gIGN1cnJlbmN5U2lnbjogelxuICAgIC51bmlvbihbVGV4dEN1cnJlbmN5U2lnblNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnc3RhbmRhcmQgb3IgYWNjb3VudGluZyAtIGZvciBuZWdhdGl2ZSBjdXJyZW5jeSByZW5kZXJpbmcnKSxcbn0pXG5cbi8qKlxuICogTnVtYmVyIGZvcm1hdHRpbmcgb3B0aW9ucyB3aXRoIHN0eWxlLCBkaXNwbGF5LCBhbmQgcHJlY2lzaW9uIHNldHRpbmdzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL051bWJlckZvcm1hdEV4cHJlc3Npb25zXG4gKi9cbmV4cG9ydCB0eXBlIE51bWJlckZvcm1hdEV4cHJlc3Npb25zID0gei5pbmZlcjx0eXBlb2YgTnVtYmVyRm9ybWF0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBUZXh0Rm9ybWF0RXhwcmVzc2lvbnNTY2hlbWEgPSBOdW1iZXJGb3JtYXRFeHByZXNzaW9uc1NjaGVtYS5leHRlbmQoe1xuICBkYXRlRm9ybWF0OiB6XG4gICAgLnVuaW9uKFtUZXh0RGF0ZUZvcm1hdFNjaGVtYSwgU3RyaW5nT3JFeHByZXNzaW9uU2NoZW1hXSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZSgnRGF0ZSBmb3JtYXQgcGF0dGVybiBvciBwcmVzZXQnKSxcbiAgdGltZXpvbmU6IFN0cmluZ09yRXhwcmVzc2lvblNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgIFwiSUFOQSB6b25lIG5hbWUgKGUuZy4gRXVyb3BlL1ByYWd1ZSkgZGF0ZXMgcmVuZGVyIGluLiBEZWZhdWx0OiAnbG9jYWwnIOKAlCB0aGUgZGV2aWNlIHpvbmUuIERpc3BsYXktb25seSDigJQgdGhlIHN0b3JlZCB2YWx1ZSBpcyB1bmNoYW5nZWRcIixcbiAgKSxcbn0pLmRlc2NyaWJlKCdEYXRlICYgTnVtYmVyIEZvcm1hdCcpXG5cbi8qKlxuICogVGV4dCBmb3JtYXR0aW5nIG9wdGlvbnMgZm9yIGRhdGVzIGFuZCBudW1iZXJzLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRGb3JtYXRFeHByZXNzaW9uc1xuICovXG5leHBvcnQgdHlwZSBUZXh0Rm9ybWF0RXhwcmVzc2lvbnMgPSB6LmluZmVyPHR5cGVvZiBUZXh0Rm9ybWF0RXhwcmVzc2lvbnNTY2hlbWE+XG5cbmV4cG9ydCBjb25zdCBFbXBoYXNpc0RlZmluaXRpb25TY2hlbWEgPSB6XG4gIC51bmlvbihbXG4gICAgei5saXRlcmFsKCdleHRyYS1sb3cnKSxcbiAgICB6LmxpdGVyYWwoJ2xvdycpLFxuICAgIHoubGl0ZXJhbCgnbG93LW1lZGl1bScpLFxuICAgIHoubGl0ZXJhbCgnbWVkaXVtJyksXG4gICAgei5saXRlcmFsKCdoaWdoJyksXG4gICAgei5saXRlcmFsKCdjb2xvcicpLFxuICAgIEV4cHJlc3Npb25TY2hlbWEsXG4gIF0pXG4gIC5kZXNjcmliZSgnRW1waGFzaXMgZGVmaW5pdGlvbicpXG5cbi8qKlxuICogRW1waGFzaXMgbGV2ZWwgZnJvbSBleHRyYS1sb3cgdG8gaGlnaCwgY29sb3IsIG9yIGV4cHJlc3Npb24uXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvRW1waGFzaXNEZWZpbml0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEVtcGhhc2lzRGVmaW5pdGlvbiA9IHouaW5mZXI8dHlwZW9mIEVtcGhhc2lzRGVmaW5pdGlvblNjaGVtYT5cblxuLyoqXG4gKiBUZXh0IHdpdGggZm9ybWF0dGluZyBvcHRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRXaXRoRm9ybWF0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dFdpdGhGb3JtYXQge1xuICB0ZXh0OiBTdHJpbmdPckV4cHJlc3Npb24gfCBUZXh0TG9jYWxlXG4gIGZvcm1hdD86IFRleHRGb3JtYXRFeHByZXNzaW9uc1xufVxuXG5jb25zdCBfVGV4dFdpdGhGb3JtYXRTY2hlbWFCYXNlID0gei5vYmplY3Qoe1xuICB0ZXh0OiB6LnVuaW9uKFtTdHJpbmdPckV4cHJlc3Npb25TY2hlbWEsIHoubGF6eSgoKSA9PiBUZXh0TG9jYWxlU2NoZW1hKV0pLFxuICBmb3JtYXQ6IFRleHRGb3JtYXRFeHByZXNzaW9uc1NjaGVtYS5vcHRpb25hbCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IFRleHRXaXRoRm9ybWF0U2NoZW1hOiB6LlpvZFR5cGU8VGV4dFdpdGhGb3JtYXQ+ID0gX1RleHRXaXRoRm9ybWF0U2NoZW1hQmFzZVxuXG4vKipcbiAqIENoZWNrcyBpZiB2YWx1ZSBpcyB2YWxpZCBUZXh0V2l0aEZvcm1hdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGV4dFdpdGhGb3JtYXQodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0V2l0aEZvcm1hdCB7XG4gIHJldHVybiBUZXh0V2l0aEZvcm1hdFNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBUZXh0IGxvY2FsZSB3aXRoIGlkLCBkZWZhdWx0IG1lc3NhZ2UsIGFuZCB2YWx1ZXMuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvVGV4dExvY2FsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRMb2NhbGUge1xuICBpZDogUHJpbWl0aXZlT3JFeHByZXNzaW9uXG4gIGRlZmF1bHRNZXNzYWdlPzogUHJpbWl0aXZlT3JFeHByZXNzaW9uXG4gIHZhbHVlcz86IFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZU9yRXhwcmVzc2lvbiB8IFRleHRXaXRoRm9ybWF0IHwgVGV4dExvY2FsZT5cbn1cblxuZXhwb3J0IGNvbnN0IFRleHRMb2NhbGVTY2hlbWE6IHouWm9kVHlwZTxUZXh0TG9jYWxlPiA9IHoub2JqZWN0KHtcbiAgaWQ6IFByaW1pdGl2ZU9yRXhwcmVzc2lvblNjaGVtYS5kZXNjcmliZSgnTG9jYWxlIElkJyksXG4gIGRlZmF1bHRNZXNzYWdlOiBQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEub3B0aW9uYWwoKS5kZXNjcmliZSgnRGVmYXVsdCBtZXNzYWdlJyksXG4gIHZhbHVlczogelxuICAgIC5yZWNvcmQoXG4gICAgICBDb21tb25OYW1lLFxuICAgICAgLy8gei5sYXp5IHRvIGFsbG93IGZvciByZWN1cnNpdmUgZGVmaW5pdGlvblxuICAgICAgLy8gdGhlcmUgaGFzIHRvIGJlIGEgc3BlY2lhbCBtb2RpZmljYXRpb24gaW4gem9kLnV0aWxzIGFuZCBleHRyYWN0LXR5cGUgdG8gc3VwcG9ydCB0aGlzIGxhenkgcmVjdXJzaW9uXG4gICAgICB6LnVuaW9uKFtQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEsIFRleHRXaXRoRm9ybWF0U2NoZW1hLCB6LmxhenkoKCkgPT4gVGV4dExvY2FsZVNjaGVtYSldKSxcbiAgICApXG4gICAgLm9wdGlvbmFsKCksXG59KVxuXG5leHBvcnQgY29uc3QgVGV4dExvY2FsZVZhbHVlc1NjaGVtYSA9IHoucmVjb3JkKFxuICBDb21tb25OYW1lLFxuICB6LnVuaW9uKFtQcmltaXRpdmVPckV4cHJlc3Npb25TY2hlbWEsIFRleHRXaXRoRm9ybWF0U2NoZW1hLCBUZXh0TG9jYWxlU2NoZW1hXSksXG4pXG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRMb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RleHRMb2NhbGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0TG9jYWxlIHtcbiAgcmV0dXJuIFRleHRMb2NhbGVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBUZXh0VmFsdWVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLFxuICBUZXh0V2l0aEZvcm1hdFNjaGVtYSxcbiAgVGV4dExvY2FsZVNjaGVtYSxcbl0pXG5cbi8qKlxuICogVGV4dCB2YWx1ZS4gUHJpbWl0aXZlLCBmb3JtYXR0ZWQgdGV4dCwgb3IgbG9jYWxpemVkIHRleHQuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvVGV4dFZhbHVlXG4gKi9cbmV4cG9ydCB0eXBlIFRleHRWYWx1ZSA9IHouaW5mZXI8dHlwZW9mIFRleHRWYWx1ZVNjaGVtYT5cblxuLyoqXG4gKiBDaGVja3MgaWYgdmFsdWUgaXMgdmFsaWQgVGV4dFZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXh0VmFsdWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0VmFsdWUge1xuICByZXR1cm4gVGV4dFZhbHVlU2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSkuc3VjY2Vzc1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHZhbHVlIHRvIFRleHRWYWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB6LmluZmVyPHR5cGVvZiBUZXh0VmFsdWVTY2hlbWE+KTogVGV4dFZhbHVlIHtcbiAgcmV0dXJuIFRleHRWYWx1ZVNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFRleHRTdHlsZU9wdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZm9udFNpemU6IHouZW51bShbJ3JlZ3VsYXInLCAnc21hbGwnLCAnbWVkaXVtJ10pLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ0ZvbnQgc2l6ZScpLFxuICBjb2xvcjogQ29sb3JWYWx1ZU9yQ29uZGl0aW9uc1NjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKCdUZXh0IGNvbG9yJyksXG4gIGlzU3VidGxlOiB6LnVuaW9uKFt6LmJvb2xlYW4oKSwgRXhwcmVzc2lvblNjaGVtYV0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ0lzIHRleHQgc3VidGxlJyksXG4gIGlzQm9sZDogei51bmlvbihbei5ib29sZWFuKCksIEV4cHJlc3Npb25TY2hlbWFdKS5vcHRpb25hbCgpLmRlc2NyaWJlKCdJcyB0ZXh0IGJvbGQnKSxcbiAgbnVtYmVyT2ZMaW5lczogTnVtYmVyT3JFeHByZXNzaW9uU2NoZW1hLm9wdGlvbmFsKCkuZGVzY3JpYmUoXG4gICAgJ051bWJlciBvZiBsaW5lcyB0byBzaG93IGJlZm9yZSB0cnVuY2F0aW5nIHdpdGggZWxsaXBzaXMnLFxuICApLFxufSlcblxuLyoqXG4gKiBUZXh0IHN0eWxlIG9wdGlvbnMgZm9yIGZvbnRTaXplLCBjb2xvciwgaXNTdWJ0bGUsIGlzQm9sZCwgbnVtYmVyT2ZMaW5lcy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9UZXh0U3R5bGVPcHRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVGV4dFN0eWxlT3B0aW9uID0gei5pbmZlcjx0eXBlb2YgVGV4dFN0eWxlT3B0aW9uU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgVGV4dFdpdGhTdHlsZVNjaGVtYSA9IF9UZXh0V2l0aEZvcm1hdFNjaGVtYUJhc2UuZXh0ZW5kKFRleHRTdHlsZU9wdGlvblNjaGVtYS5zaGFwZSlcblxuLyoqXG4gKiBUZXh0IHdpdGggZm9ybWF0IGFuZCBzdHlsZSBvcHRpb25zLlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRXaXRoU3R5bGVcbiAqL1xuZXhwb3J0IHR5cGUgVGV4dFdpdGhTdHlsZSA9IHouaW5mZXI8dHlwZW9mIFRleHRXaXRoU3R5bGVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRXaXRoU3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RleHRXaXRoU3R5bGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUZXh0V2l0aFN0eWxlIHtcbiAgcmV0dXJuIFRleHRXaXRoU3R5bGVTY2hlbWEuc2FmZVBhcnNlKHZhbHVlKS5zdWNjZXNzXG59XG5cbmV4cG9ydCBjb25zdCBUZXh0VmFsdWVXaXRoU3R5bGVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgUHJpbWl0aXZlT3JFeHByZXNzaW9uU2NoZW1hLFxuICBUZXh0V2l0aFN0eWxlU2NoZW1hLFxuICBUZXh0TG9jYWxlU2NoZW1hLFxuXSlcblxuLyoqXG4gKiBUZXh0IHZhbHVlIHdpdGggc3R5bGUgc3VwcG9ydC4gUHJpbWl0aXZlLCBzdHlsZWQvZm9ybWF0dGVkIHRleHQsIG9yIGxvY2FsaXplZCB0ZXh0LlxuICogQHNlZSAjL2RlZmluaXRpb25zL1RleHRWYWx1ZVdpdGhTdHlsZVxuICovXG5leHBvcnQgdHlwZSBUZXh0VmFsdWVXaXRoU3R5bGUgPSB6LmluZmVyPHR5cGVvZiBUZXh0VmFsdWVXaXRoU3R5bGVTY2hlbWE+XG5cbi8qKlxuICogQ2hlY2tzIGlmIHZhbHVlIGlzIHZhbGlkIFRleHRWYWx1ZVdpdGhTdHlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGV4dFZhbHVlV2l0aFN0eWxlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVGV4dFZhbHVlV2l0aFN0eWxlIHtcbiAgcmV0dXJuIFRleHRWYWx1ZVdpdGhTdHlsZVNjaGVtYS5zYWZlUGFyc2UodmFsdWUpLnN1Y2Nlc3Ncbn1cblxuLyoqXG4gKiBDb252ZXJ0cyB2YWx1ZSB0byBUZXh0VmFsdWVXaXRoU3R5bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1RleHRWYWx1ZVdpdGhTdHlsZShcbiAgdmFsdWU6IHN0cmluZyB8IHouaW5mZXI8dHlwZW9mIFRleHRWYWx1ZVdpdGhTdHlsZVNjaGVtYT4sXG4pOiBUZXh0VmFsdWVXaXRoU3R5bGUge1xuICByZXR1cm4gVGV4dFZhbHVlV2l0aFN0eWxlU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgQmFzZTY0U2NoZW1hID0gei5iYXNlNjQoKVxuZXhwb3J0IGNvbnN0IEJhc2U2NFVybFNjaGVtYSA9IHouYmFzZTY0dXJsKClcbmV4cG9ydCBjb25zdCBCYXNlNjRPclVybFNjaGVtYSA9IHoudW5pb24oW0Jhc2U2NFNjaGVtYSwgQmFzZTY0VXJsU2NoZW1hXSlcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gQmFzZTY0IG9yIEJhc2U2NFVybC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQmFzZTY0T3JVcmwodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBCYXNlNjRPclVybFNjaGVtYS5wYXJzZSh2YWx1ZSlcbn1cblxuZXhwb3J0IGNvbnN0IFNlbGVjdGFibGVNZWRpYVR5cGVTY2hlbWEgPSB6LnVuaW9uKFtcbiAgei5saXRlcmFsKCdpbWFnZScpLFxuICB6LmxpdGVyYWwoJ3ZpZGVvJyksXG4gIHoubGl0ZXJhbCgnaW1hZ2VBbmRWaWRlbycpLFxuICB6LmxpdGVyYWwoJ3BkZicpLFxuICB6LmxpdGVyYWwoJ2RvYycpLFxuICB6LmxpdGVyYWwoJ3BwdCcpLFxuICB6LmxpdGVyYWwoJ3hscycpLFxuICB6LmxpdGVyYWwoJ2NzdicpLFxuICB6LmxpdGVyYWwoJ3BsYWluVGV4dCcpLFxuICB6LmxpdGVyYWwoJ2FueScpLFxuXSlcblxuLyoqXG4gKiBNZWRpYSB0eXBlIGZvciBmaWxlIHNlbGVjdGlvbi5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TZWxlY3RhYmxlTWVkaWFUeXBlXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdGFibGVNZWRpYVR5cGUgPSB6LmluZmVyPHR5cGVvZiBTZWxlY3RhYmxlTWVkaWFUeXBlU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgU2V0U3RhdGVDaGFuZ2VzU2NoZW1hID0gei5yZWNvcmQoXG4gIHouc3RyaW5nKCksXG4gIHoudW5pb24oW1xuICAgIEV4cHJlc3Npb25TY2hlbWEsXG4gICAgei5zdHJpbmcoKSxcbiAgICB6Lm51bWJlcigpLFxuICAgIHouYm9vbGVhbigpLFxuICAgIHoubnVsbCgpLFxuICAgIHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSxcbiAgICB6LmFycmF5KHouYW55KCkpLFxuICBdKSxcbilcblxuLyoqXG4gKiBNYXAgb2Ygc3RhdGUgcHJvcGVydHkgbmFtZXMgdG8gbmV3IHZhbHVlcy5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9TZXRTdGF0ZUNoYW5nZXNcbiAqL1xuZXhwb3J0IHR5cGUgU2V0U3RhdGVDaGFuZ2VzID0gei5pbmZlcjx0eXBlb2YgU2V0U3RhdGVDaGFuZ2VzU2NoZW1hPlxuXG5leHBvcnQgZnVuY3Rpb24gdG9TZXRTdGF0ZUNoYW5nZXModmFsdWU6IHVua25vd24pOiBTZXRTdGF0ZUNoYW5nZXMge1xuICByZXR1cm4gU2V0U3RhdGVDaGFuZ2VzU2NoZW1hLnBhcnNlKHZhbHVlKVxufVxuXG5leHBvcnQgY29uc3QgSW1hZ2VSZXNpemVNb2RlU2NoZW1hID0gelxuICAuZW51bShbJ2NvdmVyJywgJ2NvbnRhaW4nLCAnc3RyZXRjaCcsICdyZXBlYXQnLCAnY2VudGVyJ10pXG4gIC5kZXNjcmliZSgnSW1hZ2UgcmVzaXplIG1vZGUnKVxuXG4vKipcbiAqIEltYWdlIHJlc2l6ZSBtb2RlOiBjb3ZlciwgY29udGFpbiwgc3RyZXRjaCwgcmVwZWF0LCBvciBjZW50ZXIuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VSZXNpemVNb2RlXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlUmVzaXplTW9kZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlUmVzaXplTW9kZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEltYWdlU2hhcGVTY2hlbWEgPSB6XG4gIC5lbnVtKFsnbGFuZHNjYXBlJywgJ3BvcnRyYWl0JywgJ3NxdWFyZSddKVxuICAuZGVzY3JpYmUoJ0ltYWdlIHNoYXBlIGZvciBsaXN0IGl0ZW0nKVxuXG4vKipcbiAqIEltYWdlIHNoYXBlOiBsYW5kc2NhcGUsIHBvcnRyYWl0LCBvciBzcXVhcmUuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VTaGFwZVxuICovXG5leHBvcnQgdHlwZSBJbWFnZVNoYXBlID0gei5pbmZlcjx0eXBlb2YgSW1hZ2VTaGFwZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEltYWdlU2l6ZVNjaGVtYSA9IHpcbiAgLmVudW0oWydzbWFsbCcsICdyZWd1bGFyJywgJ2xhcmdlJ10pXG4gIC5kZXNjcmliZSgnSW1hZ2Ugc2l6ZSBmb3IgbGlzdCBpdGVtJylcblxuLyoqXG4gKiBJbWFnZSBzaXplOiBzbWFsbCwgcmVndWxhciwgb3IgbGFyZ2UuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSW1hZ2VTaXplXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlU2l6ZSA9IHouaW5mZXI8dHlwZW9mIEltYWdlU2l6ZVNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IEhvcml6b250YWxBbGlnblNjaGVtYSA9IHouZW51bShbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0J10pXG5cbi8qKlxuICogSG9yaXpvbnRhbCBhbGlnbm1lbnQ6IGxlZnQsIGNlbnRlciwgb3IgcmlnaHQuXG4gKiBAc2VlICMvZGVmaW5pdGlvbnMvSG9yaXpvbnRhbEFsaWduXG4gKi9cbmV4cG9ydCB0eXBlIEhvcml6b250YWxBbGlnbiA9IHouaW5mZXI8dHlwZW9mIEhvcml6b250YWxBbGlnblNjaGVtYT5cblxuZXhwb3J0IGNvbnN0IFZlcnRpY2FsQWxpZ25TY2hlbWEgPSB6LmVudW0oWyd0b3AnLCAnY2VudGVyJywgJ2JvdHRvbSddKVxuXG4vKipcbiAqIFZlcnRpY2FsIGFsaWdubWVudDogdG9wLCBjZW50ZXIsIG9yIGJvdHRvbS5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9WZXJ0aWNhbEFsaWduXG4gKi9cbmV4cG9ydCB0eXBlIFZlcnRpY2FsQWxpZ24gPSB6LmluZmVyPHR5cGVvZiBWZXJ0aWNhbEFsaWduU2NoZW1hPlxuXG5leHBvcnQgY29uc3QgRGF0YVJvd0lkID0gei5zdHJpbmcoKS5yZWdleCgvXlshJCotOj1ALV9hLX5dezEsNjR9JC8pXG4vLy5icmFuZDwnRGF0YVJvd0lkJz4oKVxuXG4vKipcbiAqIERhdGEgcm93IGlkZW50aWZpZXIuIDEtNjQgY2hhcnMsIGNvbnRhaW5zIHByaW50YWJsZSBBU0NJSSBleGNlcHQgc3BhY2UvY29tbWEvc2VtaWNvbG9uLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0RhdGFSb3dJZFxuICovXG5leHBvcnQgdHlwZSBEYXRhUm93SWQgPSB6LmluZmVyPHR5cGVvZiBEYXRhUm93SWQ+XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyTWV0aG9kID1cbiAgfCAnY3JlYXRlJ1xuICB8ICd1cGRhdGUnXG4gIHwgJ3NhdmUnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnZG93bmxvYWQnXG4gIHwgJ2Z1bmN0aW9uQ2FsbCdcbiAgfCBFeHByZXNzaW9uXG4iXX0=
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": "2.0.0",
3
- "sourceHash": "d7f0260dfc5da0a7d21f0fa97d86c22d",
4
- "timestamp": 1786967386050,
3
+ "sourceHash": "70ed1e5e4701f9c640b7c188772eeadf",
4
+ "timestamp": 1787128200623,
5
5
  "stats": {
6
6
  "inputFiles": 426,
7
- "extractionTimeMs": 329
7
+ "extractionTimeMs": 262
8
8
  }
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"screen.list.d.ts","sourceRoot":"","sources":["../../src/screen/screen.list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screen.list.d.ts","sourceRoot":"","sources":["../../src/screen/screen.list.ts"],"names":[],"mappings":"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"}
@@ -158,6 +158,7 @@ export class ListScreenBuilder extends ScreenBaseBuilderNew {
158
158
  data: toExpression(options.data),
159
159
  };
160
160
  sections.push(section);
161
+ this._config.sections = sections;
161
162
  return this;
162
163
  }
163
164
  build() {
@@ -170,4 +171,4 @@ export class ListScreenBuilder extends ScreenBaseBuilderNew {
170
171
  return result;
171
172
  }
172
173
  }
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLmxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuL3NjcmVlbi5saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBRVgsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzdDLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsK0JBQStCLEVBQy9CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEdBR2YsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUUsT0FBTyxFQUdMLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxxQ0FBcUMsQ0FBQTtBQXVDNUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUNULE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBRXhELFlBQVksT0FBK0I7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQStCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7UUFDekIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUYsQ0FBQzthQUFNLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNsQixDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQTtRQUNsRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0NBQ0Y7QUFjRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsb0JBQW9CO0lBQ2hELEtBQUssQ0FZYjtJQUVELHlFQUF5RTtJQUN4RCxpQkFBaUIsR0FBNEIsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFFOUU7OztPQUdHO0lBQ00sVUFBVSxDQUF3RDtJQUUzRSxZQUFZLE9BQXdCO1FBQ2xDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFBO1FBQ2hELE1BQU0sRUFDSixJQUFJLEVBQUUsS0FBSyxFQUNYLE9BQU8sRUFBRSxRQUFRLEVBQ2pCLEdBQUcsVUFBVSxFQUNkLEdBQUcsa0NBQWtDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzFFLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFBO1FBRTVCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFN0MsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFVBQVUsRUFBRSxhQUFhLFFBQVEsbUJBQW1CO1lBQ3BELFlBQVksRUFBRSxhQUFhLFFBQVEscUJBQXFCO1lBQ3hELFlBQVksRUFBRSxhQUFhLFFBQVEscUJBQXFCO1lBQ3hELFlBQVksRUFBRSxhQUFhLFFBQVEscUJBQXFCO1lBQ3hELFVBQVUsRUFBRSxhQUFhLFFBQVEsbUJBQW1CO1lBQ3BELGNBQWMsRUFBRSxhQUFhLFFBQVEsdUJBQXVCO1lBQzVELE9BQU8sRUFBRSxhQUFhLFFBQVEsZ0JBQWdCO1lBQzlDLFFBQVEsRUFBRSxhQUFhLFFBQVEsaUJBQWlCO1lBQ2hELEtBQUssRUFBRSxhQUFhLFFBQVEsY0FBYztZQUMxQyxNQUFNLEVBQUUsYUFBYSxRQUFRLGVBQWU7WUFDNUMsWUFBWSxFQUFFLGFBQWEsUUFBUSxxQkFBcUI7U0FDekQsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLEdBQUcsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUV4RSw0QkFBNEI7SUFDNUIsVUFBVSxHQUFHO1FBQ1gsUUFBUSxFQUFFLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3ZFLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUN2RSxRQUFRLEVBQUUsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDdkUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3ZFLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDakUsT0FBTyxFQUFFLG9CQUFvQixDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3pFLGdJQUFnSTtRQUNoSSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7S0FDN0YsQ0FBQTtJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxJQUFnRDtRQUNuRCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzdELENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBWTtRQUM1QiwyQkFBMkI7UUFDM0IsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsT0FBTyxtQkFBbUIsQ0FBQTtRQUM1QixDQUFDO1FBRUQsT0FBTyxxQkFBcUIsR0FBRyxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ00sSUFBSSxDQUFDLE9BQW1EO1FBQy9ELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFbkIsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUE7UUFDbEQsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLGlDQUFpQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsaUNBQWlDLEdBQUcsT0FBTyxDQUFDLGlDQUFpQyxDQUFBO1FBQzVGLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQywrQkFBK0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLCtCQUErQixHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQTtRQUN4RixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUE7UUFDbEQsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFBO1FBQ2xELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtRQUNwRCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUE7UUFDeEQsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFBO1FBQzFELENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQTtRQUM5RCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsT0FHUDtRQUNDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNsRixNQUFNLE9BQU8sR0FBZ0I7WUFDM0IsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNDLElBQUksRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFBO1FBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN0QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFUSxLQUFLO1FBQ1osTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBRTVCLGtFQUFrRTtRQUNsRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBa0QsQ0FBQTtRQUM1RSxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1RixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUE7UUFDMUIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXNzaWduQnVpbGRlckZhY3RvcnksXG4gIGJ1aWxkVHJlZSxcbiAgdHlwZSBEYXRhc291cmNlSWQsXG4gIHR5cGUgRXhwcmVzc2lvbixcbiAgaXNFeHByZXNzaW9uLFxuICBTQ1JFRU5fVFlQRSxcbiAgdHlwZSBUZXh0VmFsdWUsXG4gIFRleHRWYWx1ZUJ1aWxkZXIsXG4gIHRvRXhwcmVzc2lvbixcbiAgdG9TY3JlZW5JZCxcbiAgdG9UZXh0VmFsdWUsXG59IGZyb20gJy4uL2Fic3RyYWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgQ1RYIH0gZnJvbSAnLi4vYXBwbGljYXRpb24vaW5kZXguanMnXG5pbXBvcnQge1xuICB0eXBlIEZpbHRlcixcbiAgSmNCYXJDaGFydEJ1aWxkZXIsXG4gIHR5cGUgSmNCYXNlLFxuICBKY0N1c3RvbUNvbXBvbmVudEludGVyb3BCdWlsZGVyLFxuICBKY0V4cGFuZGVyQnVpbGRlcixcbiAgSmNMaXN0SXRlbUJ1aWxkZXIsXG4gIEpjUGllQ2hhcnRCdWlsZGVyLFxuICBKY1Byb2R1Y3RJdGVtQnVpbGRlcixcbiAgSmNTdGFnZUJ1aWxkZXIsXG4gIHR5cGUgTGlzdEZpbHRlckl0ZW0sXG4gIHR5cGUgU2VjdGlvbkJhc2UsXG59IGZyb20gJy4uL2NvbXBvbmVudC9pbmRleC5qcydcbmltcG9ydCB7IHR5cGUgRGF0YXNvdXJjZUJhc2UsIGlzRGF0YXNvdXJjZUJhc2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2luZGV4LmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBTY3JlZW5CYXNlLFxuICB0eXBlIFNjcmVlbkJhc2VCdWlsZGVySW5wdXQsXG4gIFNjcmVlbkJhc2VCdWlsZGVyTmV3LFxufSBmcm9tICcuL3NjcmVlbi5hYnN0cmFjdC5qcydcbmltcG9ydCB7XG4gIGNyZWF0ZURlZmF1bHRTY3JlZW5DaGlsZHJlbkZhY3RvcnksXG4gIHR5cGUgRGVmYXVsdFNjcmVlbkNoaWxkcmVuRmFjdG9yeSxcbn0gZnJvbSAnLi9jb21tb24vc2NyZWVuLmRlZmF1bHQtY2hpbGRyZW4uanMnXG5cbi8qKlxuICogQ3JlYXRlIGxpc3RzIG9mIGRhdGEgd2l0aCBpbnRlcmFjdGl2ZSBlbGVtZW50cy5cbiAqIFVzZSBmb3IgYnJvd3NpbmcgY29sbGVjdGlvbnMsIHNlYXJjaCByZXN1bHRzLCBvciBpdGVtIGNhdGFsb2dzLlxuICogU3VwcG9ydHMgY2hlY2tib3hlcywgc3dpcGUgYWN0aW9ucywgc2VhcmNoLCBhbmQgZmlsdGVyaW5nLlxuICogU3R5bGUgd2l0aCBhdmF0YXJzLCBpbWFnZXMsIG9yIHVzZSBwcm9kdWN0LWl0ZW0gZm9yIHNob3BwaW5nLlxuICogU2luZ2xlIHRlbXBsYXRlIGFwcGxpZXMgdG8gYWxsIGl0ZW1zIGZvciBjb25zaXN0ZW5jeS5cbiAqIEBhbGlhcyBqaWcubGlzdFxuICogQHNlZSAjL2RlZmluaXRpb25zL2ppZy1saXN0LXNwZWNpZmljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2NyZWVuIGV4dGVuZHMgU2NyZWVuQmFzZSB7XG4gIHJlYWRvbmx5IHR5cGU6IHR5cGVvZiBTQ1JFRU5fVFlQRS5MSVNUXG4gIHJlYWRvbmx5IGl0ZW06IEpjQmFzZVxuICBkYXRhPzogRXhwcmVzc2lvbiB8IHN0cmluZ1xuICBzZWN0aW9ucz86IFNlY3Rpb25CYXNlW11cbiAgZmlsdGVyPzogRmlsdGVyXG4gIGlzU2VhcmNoYWJsZT86IGJvb2xlYW5cbiAgaXNTZWxlY3RhYmxlPzogYm9vbGVhblxuICBpc1JlZnJlc2hhYmxlPzogYm9vbGVhblxuICBoYXNBY3RpdmVJdGVtPzogYm9vbGVhblxuICBpc1ZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuPzogYm9vbGVhblxuICBpc0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JIaWRkZW4/OiBib29sZWFuXG4gIGlzSG9yaXpvbnRhbD86IGJvb2xlYW5cbiAgbnVtYmVyT2ZDb2x1bW5zPzogbnVtYmVyIHwgRXhwcmVzc2lvblxuICBpbml0aWFsSXRlbUNvdW50PzogbnVtYmVyIHwgRXhwcmVzc2lvblxuICBzY3JvbGxSZW5kZXJCdWZmZXI/OiBudW1iZXIgfCBFeHByZXNzaW9uXG4gIGdyb3VwQnk/OiBzdHJpbmdcbiAgc2VhcmNoPzogRXhwcmVzc2lvblxuICB0YWdzPzogc3RyaW5nW11cbiAgLyoqIEN1c3RvbSBjb21wb25lbnRzIHJlbmRlcmVkIGFib3ZlIHRoZSBsaXN0LiBFeGNsdWRlcyBuZXN0ZWQgbGlzdHMgYW5kIHdlYiB2aWV3cy4gKi9cbiAgbGlzdEhlYWRlcj86IHsgY2hpbGRyZW46IEpjQmFzZVtdIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0RmlsdGVyQnVpbGRlcklucHV0IHtcbiAgZGF0YTogRGF0YXNvdXJjZUlkIHwgRGF0YXNvdXJjZUJhc2UgfCBFeHByZXNzaW9uIHwgTGlzdEZpbHRlckl0ZW1bXVxuICBpbml0aWFsVmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRXhwcmVzc2lvblxufVxuXG4vKipcbiAqIEJ1aWxkcyBmaWx0ZXIgY29uZmlndXJhdGlvbiBmb3IgbGlzdCBkYXRhLlxuICogQHNlZSAjL2RlZmluaXRpb25zL0xpc3RGaWx0ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBMaXN0RmlsdGVyQnVpbGRlcklucHV0KSB7XG4gICAgdGhpcy53aXRoKG9wdGlvbnMpXG4gIH1cblxuICB3aXRoKG9wdGlvbnM6IExpc3RGaWx0ZXJCdWlsZGVySW5wdXQpOiB0aGlzIHtcbiAgICBjb25zdCBkYXRhID0gb3B0aW9ucy5kYXRhXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fY29uZmlnLmRhdGEgPSBpc0V4cHJlc3Npb24oZGF0YSkgPyB0b0V4cHJlc3Npb24oZGF0YSkgOiBDVFguZGF0YXNvdXJjZXMuZXhwcihkYXRhKVxuICAgIH0gZWxzZSBpZiAoaXNEYXRhc291cmNlQmFzZShkYXRhKSkge1xuICAgICAgdGhpcy5fY29uZmlnLmRhdGEgPSBkYXRhXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5kYXRhID0gZGF0YS5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIHRpdGxlOiB0b1RleHRWYWx1ZShpdGVtLnRpdGxlKSxcbiAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICB9KSlcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLmluaXRpYWxWYWx1ZSA9IG9wdGlvbnMuaW5pdGlhbFZhbHVlXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBidWlsZCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIGJ1aWxkVHJlZSh0aGlzLl9jb25maWcpXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0U2NyZWVuSW5wdXQgZXh0ZW5kcyBTY3JlZW5CYXNlQnVpbGRlcklucHV0IHtcbiAgaXNIb3Jpem9udGFsPzogYm9vbGVhblxuICBpc0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JIaWRkZW4/OiBib29sZWFuXG4gIGlzVmVydGljYWxTY3JvbGxJbmRpY2F0b3JIaWRkZW4/OiBib29sZWFuXG4gIGlzU2VhcmNoYWJsZT86IGJvb2xlYW5cbiAgaXNTZWxlY3RhYmxlPzogYm9vbGVhblxuICBoYXNBY3RpdmVJdGVtPzogYm9vbGVhblxuICBudW1iZXJPZkNvbHVtbnM/OiBudW1iZXIgfCBFeHByZXNzaW9uXG4gIGluaXRpYWxJdGVtQ291bnQ/OiBudW1iZXIgfCBFeHByZXNzaW9uXG4gIHNjcm9sbFJlbmRlckJ1ZmZlcj86IG51bWJlciB8IEV4cHJlc3Npb25cbn1cblxuLyoqXG4gKiBCdWlsZCBzY3JvbGxhYmxlIGxpc3RzIGZvciBkYXRhIGNvbGxlY3Rpb25zLlxuICogRGlzcGxheSBpdGVtcyB1c2luZyBjb25zaXN0ZW50IHRlbXBsYXRlcyB3aXRoIHJpY2ggc3R5bGluZyBvcHRpb25zLlxuICogRW5hYmxlIHNlYXJjaCwgZmlsdGVyaW5nLCBzZWxlY3Rpb24sIGFuZCBzZWN0aW9uaW5nIGZvciBiZXR0ZXIgb3JnYW5pemF0aW9uLlxuICogU3VwcG9ydCBob3Jpem9udGFsIHNjcm9sbGluZywgYWN0aXZlIGl0ZW0gc3RhdGVzLCBhbmQgc3dpcGUgYWN0aW9ucy5cbiAqIFVzZSBmb3IgY3VzdG9tZXIgbGlzdHMsIHByb2R1Y3QgY2F0YWxvZ3MsIGFjdGl2aXR5IGZlZWRzLCBvciBhbnkgZGF0YSBjb2xsZWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgTGlzdFNjcmVlbkJ1aWxkZXIgZXh0ZW5kcyBTY3JlZW5CYXNlQnVpbGRlck5ldyB7XG4gIHJlYWRvbmx5IHN0YXRlOiB7XG4gICAgcmVhZG9ubHkgc2VhcmNoVGV4dDogc3RyaW5nXG4gICAgcmVhZG9ubHkgaXNTZWxlY3RhYmxlOiBzdHJpbmdcbiAgICByZWFkb25seSBpc0hvcml6b250YWw6IHN0cmluZ1xuICAgIHJlYWRvbmx5IGFjdGl2ZUl0ZW1JZDogc3RyaW5nXG4gICAgcmVhZG9ubHkgYWN0aXZlSXRlbTogc3RyaW5nXG4gICAgcmVhZG9ubHkgaXNTZWxlY3RBY3RpdmU6IHN0cmluZ1xuICAgIHJlYWRvbmx5IGFtb3VudHM6IHN0cmluZ1xuICAgIHJlYWRvbmx5IHNlbGVjdGVkOiBzdHJpbmdcbiAgICByZWFkb25seSB2YWx1ZTogc3RyaW5nXG4gICAgcmVhZG9ubHkgZmlsdGVyOiBzdHJpbmdcbiAgICByZWFkb25seSBpc1JlZnJlc2hpbmc6IHN0cmluZ1xuICB9XG5cbiAgLyoqIEJhY2tpbmcgY29uZmlnIGZvciBgbGlzdEhlYWRlcmAsIGxpbmtlZCBpbnRvIGBfY29uZmlnLmxpc3RIZWFkZXJgLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9saXN0SGVhZGVyQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgY2hpbGRyZW46IFtdIH1cblxuICAvKipcbiAgICogRmFjdG9yeSBmb3IgY3VzdG9tIGNvbXBvbmVudHMgcmVuZGVyZWQgYWJvdmUgdGhlIGxpc3QuIE1pcnJvcnMgdGhlXG4gICAqIGppZy5kZWZhdWx0IGNvbnRlbnQgZmFjdG9yeSwgZXhjbHVkaW5nIG5lc3RlZCBsaXN0cyBhbmQgd2ViIHZpZXdzLlxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdEhlYWRlcjogT21pdDxEZWZhdWx0U2NyZWVuQ2hpbGRyZW5GYWN0b3J5LCAnbGlzdCcgfCAnd2ViVmlldyc+XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGlzdFNjcmVlbklucHV0KSB7XG4gICAgc3VwZXIoU0NSRUVOX1RZUEUuTElTVCwgb3B0aW9ucylcbiAgICB0aGlzLndpdGgob3B0aW9ucylcblxuICAgIHRoaXMuX2NvbmZpZy5saXN0SGVhZGVyID0gdGhpcy5fbGlzdEhlYWRlckNvbmZpZ1xuICAgIGNvbnN0IHtcbiAgICAgIGxpc3Q6IF9saXN0LFxuICAgICAgd2ViVmlldzogX3dlYlZpZXcsXG4gICAgICAuLi5saXN0SGVhZGVyXG4gICAgfSA9IGNyZWF0ZURlZmF1bHRTY3JlZW5DaGlsZHJlbkZhY3RvcnkodGhpcy5fbGlzdEhlYWRlckNvbmZpZywgJ2NoaWxkcmVuJylcbiAgICB0aGlzLmxpc3RIZWFkZXIgPSBsaXN0SGVhZGVyXG5cbiAgICBjb25zdCBzY3JlZW5JZCA9IHRvU2NyZWVuSWQob3B0aW9ucy5zY3JlZW5JZClcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBzZWFyY2hUZXh0OiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLnNlYXJjaFRleHRgLFxuICAgICAgaXNTZWxlY3RhYmxlOiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLmlzU2VsZWN0YWJsZWAsXG4gICAgICBpc0hvcml6b250YWw6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuaXNIb3Jpem9udGFsYCxcbiAgICAgIGFjdGl2ZUl0ZW1JZDogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5hY3RpdmVJdGVtSWRgLFxuICAgICAgYWN0aXZlSXRlbTogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5hY3RpdmVJdGVtYCxcbiAgICAgIGlzU2VsZWN0QWN0aXZlOiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLmlzU2VsZWN0QWN0aXZlYCxcbiAgICAgIGFtb3VudHM6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuYW1vdW50c2AsXG4gICAgICBzZWxlY3RlZDogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5zZWxlY3RlZGAsXG4gICAgICB2YWx1ZTogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS52YWx1ZWAsXG4gICAgICBmaWx0ZXI6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuZmlsdGVyYCxcbiAgICAgIGlzUmVmcmVzaGluZzogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5pc1JlZnJlc2hpbmdgLFxuICAgIH1cbiAgfVxuXG4gIGZpbHRlciA9IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KExpc3RGaWx0ZXJCdWlsZGVyLCB0aGlzLl9jb25maWcsICdmaWx0ZXInKVxuXG4gIC8vIFRPRE86IHJlbmFtZSB0byBgc2V0SXRlbWBcbiAgYWRkQ29udHJvbCA9IHtcbiAgICBiYXJDaGFydDogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNCYXJDaGFydEJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICBleHBhbmRlcjogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNFeHBhbmRlckJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICBsaXN0SXRlbTogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNMaXN0SXRlbUJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICBwaWVDaGFydDogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNQaWVDaGFydEJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICBzdGFnZTogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNTdGFnZUJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICBwcm9kdWN0OiBhc3NpZ25CdWlsZGVyRmFjdG9yeShKY1Byb2R1Y3RJdGVtQnVpbGRlciwgdGhpcy5fY29uZmlnLCAnaXRlbScpLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZGVwcmVjYXRlZCAtLSBpbnRlcm5hbCBTREsgc3RpbGwgd2lyZXMgdGhpcyBkZXByZWNhdGVkIGJ1aWxkZXIgZm9yIGJhY2stY29tcGF0XG4gICAgY3VzdG9tQ29tcG9uZW50OiBhc3NpZ25CdWlsZGVyRmFjdG9yeShKY0N1c3RvbUNvbXBvbmVudEludGVyb3BCdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gIH1cblxuICAvKipcbiAgICogU2V0cyBkYXRhIHNvdXJjZSBmb3IgbGlzdCBpdGVtcy5cbiAgICogQHBhcmFtIGRhdGEgRGF0YXNvdXJjZSBJRCBvciBleHByZXNzaW9uXG4gICAqL1xuICBkYXRhKGRhdGE6IERhdGFzb3VyY2VJZCB8IERhdGFzb3VyY2VCYXNlIHwgRXhwcmVzc2lvbik6IHRoaXMge1xuICAgIGlmIChpc0RhdGFzb3VyY2VCYXNlKGRhdGEpKSB7XG4gICAgICB0aGlzLl9jb25maWcuZGF0YSA9IENUWC5kYXRhc291cmNlcy5leHByKGRhdGEuZGF0YXNvdXJjZUlkKVxuICAgIH0gZWxzZSBpZiAoZGF0YS5zdGFydHNXaXRoKCc9JykpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5kYXRhID0gdG9FeHByZXNzaW9uKGRhdGEpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5kYXRhID0gQ1RYLmRhdGFzb3VyY2VzLmV4cHIoZGF0YSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGdldEN1cnJlbnRJdGVtUmVmKGtleT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogdmFsaWRhdGUga2V5LCBob3c/XG4gICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYEBjdHguY3VycmVudC5pdGVtYFxuICAgIH1cblxuICAgIHJldHVybiBgQGN0eC5jdXJyZW50Lml0ZW0uJHtrZXl9YFxuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgbGlzdCBkaXNwbGF5IGFuZCBiZWhhdmlvci5cbiAgICogQHBhcmFtIG9wdGlvbnMuaG9yaXpvbnRhbCBFbmFibGUgaG9yaXpvbnRhbCBzY3JvbGxpbmdcbiAgICogQHBhcmFtIG9wdGlvbnMuaXNTZWFyY2hhYmxlIEVuYWJsZSBzZWFyY2ggYmFyXG4gICAqIEBwYXJhbSBvcHRpb25zLmlzU2VsZWN0YWJsZSBFbmFibGUgaXRlbSBzZWxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHdpdGgob3B0aW9uczogUGFydGlhbDxPbWl0PExpc3RTY3JlZW5JbnB1dCwgJ3NjcmVlbklkJz4+KTogdGhpcyB7XG4gICAgc3VwZXIud2l0aChvcHRpb25zKVxuXG4gICAgaWYgKG9wdGlvbnMuaXNIb3Jpem9udGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5pc0hvcml6b250YWwgPSBvcHRpb25zLmlzSG9yaXpvbnRhbFxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmlzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvckhpZGRlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaXNIb3Jpem9udGFsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuID0gb3B0aW9ucy5pc0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JIaWRkZW5cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pc1ZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5pc1ZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuID0gb3B0aW9ucy5pc1ZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaXNTZWFyY2hhYmxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5pc1NlYXJjaGFibGUgPSBvcHRpb25zLmlzU2VhcmNoYWJsZVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmlzU2VsZWN0YWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaXNTZWxlY3RhYmxlID0gb3B0aW9ucy5pc1NlbGVjdGFibGVcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oYXNBY3RpdmVJdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5oYXNBY3RpdmVJdGVtID0gb3B0aW9ucy5oYXNBY3RpdmVJdGVtXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubnVtYmVyT2ZDb2x1bW5zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5udW1iZXJPZkNvbHVtbnMgPSBvcHRpb25zLm51bWJlck9mQ29sdW1uc1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmluaXRpYWxJdGVtQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLmluaXRpYWxJdGVtQ291bnQgPSBvcHRpb25zLmluaXRpYWxJdGVtQ291bnRcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5zY3JvbGxSZW5kZXJCdWZmZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLnNjcm9sbFJlbmRlckJ1ZmZlciA9IG9wdGlvbnMuc2Nyb2xsUmVuZGVyQnVmZmVyXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHNlY3Rpb24gdG8gZ3JvdXAgbGlzdCBpdGVtcy5cbiAgICogQHBhcmFtIG9wdGlvbnMgUmVxdWlyZWQgc2VjdGlvbiBvcHRpb25zXG4gICAqIEBwYXJhbSBvcHRpb25zLnRpdGxlIFNlY3Rpb24gaGVhZGVyXG4gICAqIEBwYXJhbSBvcHRpb25zLmRhdGEgRXhwcmVzc2lvbiBmb3Igc2VjdGlvbiBkYXRhXG4gICAqL1xuICBzZWN0aW9uKG9wdGlvbnM6IHtcbiAgICB0aXRsZTogc3RyaW5nIHwgVGV4dFZhbHVlIHwgVGV4dFZhbHVlQnVpbGRlclxuICAgIGRhdGE6IHN0cmluZyB8IEV4cHJlc3Npb25cbiAgfSk6IHRoaXMge1xuICAgIGNvbnN0IHNlY3Rpb25zID0gQXJyYXkuaXNBcnJheSh0aGlzLl9jb25maWcuc2VjdGlvbnMpID8gdGhpcy5fY29uZmlnLnNlY3Rpb25zIDogW11cbiAgICBjb25zdCBzZWN0aW9uOiBTZWN0aW9uQmFzZSA9IHtcbiAgICAgIHRpdGxlOiBUZXh0VmFsdWVCdWlsZGVyLmZyb20ob3B0aW9ucy50aXRsZSksXG4gICAgICBkYXRhOiB0b0V4cHJlc3Npb24ob3B0aW9ucy5kYXRhKSxcbiAgICB9XG4gICAgc2VjdGlvbnMucHVzaChzZWN0aW9uKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBvdmVycmlkZSBidWlsZCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuYnVpbGQoKVxuXG4gICAgLy8gRHJvcCBlbXB0eSBsaXN0SGVhZGVyIGZvciBZQU1MIHBhcml0eSAobm8gY2hpbGRyZW4gd2VyZSBhZGRlZCkuXG4gICAgY29uc3QgbGlzdEhlYWRlciA9IHJlc3VsdC5saXN0SGVhZGVyIGFzIHsgY2hpbGRyZW4/OiB1bmtub3duW10gfSB8IHVuZGVmaW5lZFxuICAgIGlmIChsaXN0SGVhZGVyICYmICghQXJyYXkuaXNBcnJheShsaXN0SGVhZGVyLmNoaWxkcmVuKSB8fCBsaXN0SGVhZGVyLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIGRlbGV0ZSByZXN1bHQubGlzdEhlYWRlclxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl19
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLmxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuL3NjcmVlbi5saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBRVgsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzdDLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsK0JBQStCLEVBQy9CLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEdBR2YsTUFBTSx1QkFBdUIsQ0FBQTtBQUM5QixPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDOUUsT0FBTyxFQUdMLG9CQUFvQixHQUNyQixNQUFNLHNCQUFzQixDQUFBO0FBQzdCLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxxQ0FBcUMsQ0FBQTtBQXVDNUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUNULE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBRXhELFlBQVksT0FBK0I7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQStCO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7UUFDekIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FB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TyxNQUFNLENBQUMsVUFBVSxDQUFBO1FBQzFCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFzc2lnbkJ1aWxkZXJGYWN0b3J5LFxuICBidWlsZFRyZWUsXG4gIHR5cGUgRGF0YXNvdXJjZUlkLFxuICB0eXBlIEV4cHJlc3Npb24sXG4gIGlzRXhwcmVzc2lvbixcbiAgU0NSRUVOX1RZUEUsXG4gIHR5cGUgVGV4dFZhbHVlLFxuICBUZXh0VmFsdWVCdWlsZGVyLFxuICB0b0V4cHJlc3Npb24sXG4gIHRvU2NyZWVuSWQsXG4gIHRvVGV4dFZhbHVlLFxufSBmcm9tICcuLi9hYnN0cmFjdC9pbmRleC5qcydcbmltcG9ydCB7IENUWCB9IGZyb20gJy4uL2FwcGxpY2F0aW9uL2luZGV4LmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBGaWx0ZXIsXG4gIEpjQmFyQ2hhcnRCdWlsZGVyLFxuICB0eXBlIEpjQmFzZSxcbiAgSmNDdXN0b21Db21wb25lbnRJbnRlcm9wQnVpbGRlcixcbiAgSmNFeHBhbmRlckJ1aWxkZXIsXG4gIEpjTGlzdEl0ZW1CdWlsZGVyLFxuICBKY1BpZUNoYXJ0QnVpbGRlcixcbiAgSmNQcm9kdWN0SXRlbUJ1aWxkZXIsXG4gIEpjU3RhZ2VCdWlsZGVyLFxuICB0eXBlIExpc3RGaWx0ZXJJdGVtLFxuICB0eXBlIFNlY3Rpb25CYXNlLFxufSBmcm9tICcuLi9jb21wb25lbnQvaW5kZXguanMnXG5pbXBvcnQgeyB0eXBlIERhdGFzb3VyY2VCYXNlLCBpc0RhdGFzb3VyY2VCYXNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9pbmRleC5qcydcbmltcG9ydCB7XG4gIHR5cGUgU2NyZWVuQmFzZSxcbiAgdHlwZSBTY3JlZW5CYXNlQnVpbGRlcklucHV0LFxuICBTY3JlZW5CYXNlQnVpbGRlck5ldyxcbn0gZnJvbSAnLi9zY3JlZW4uYWJzdHJhY3QuanMnXG5pbXBvcnQge1xuICBjcmVhdGVEZWZhdWx0U2NyZWVuQ2hpbGRyZW5GYWN0b3J5LFxuICB0eXBlIERlZmF1bHRTY3JlZW5DaGlsZHJlbkZhY3RvcnksXG59IGZyb20gJy4vY29tbW9uL3NjcmVlbi5kZWZhdWx0LWNoaWxkcmVuLmpzJ1xuXG4vKipcbiAqIENyZWF0ZSBsaXN0cyBvZiBkYXRhIHdpdGggaW50ZXJhY3RpdmUgZWxlbWVudHMuXG4gKiBVc2UgZm9yIGJyb3dzaW5nIGNvbGxlY3Rpb25zLCBzZWFyY2ggcmVzdWx0cywgb3IgaXRlbSBjYXRhbG9ncy5cbiAqIFN1cHBvcnRzIGNoZWNrYm94ZXMsIHN3aXBlIGFjdGlvbnMsIHNlYXJjaCwgYW5kIGZpbHRlcmluZy5cbiAqIFN0eWxlIHdpdGggYXZhdGFycywgaW1hZ2VzLCBvciB1c2UgcHJvZHVjdC1pdGVtIGZvciBzaG9wcGluZy5cbiAqIFNpbmdsZSB0ZW1wbGF0ZSBhcHBsaWVzIHRvIGFsbCBpdGVtcyBmb3IgY29uc2lzdGVuY3kuXG4gKiBAYWxpYXMgamlnLmxpc3RcbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9qaWctbGlzdC1zcGVjaWZpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNjcmVlbiBleHRlbmRzIFNjcmVlbkJhc2Uge1xuICByZWFkb25seSB0eXBlOiB0eXBlb2YgU0NSRUVOX1RZUEUuTElTVFxuICByZWFkb25seSBpdGVtOiBKY0Jhc2VcbiAgZGF0YT86IEV4cHJlc3Npb24gfCBzdHJpbmdcbiAgc2VjdGlvbnM/OiBTZWN0aW9uQmFzZVtdXG4gIGZpbHRlcj86IEZpbHRlclxuICBpc1NlYXJjaGFibGU/OiBib29sZWFuXG4gIGlzU2VsZWN0YWJsZT86IGJvb2xlYW5cbiAgaXNSZWZyZXNoYWJsZT86IGJvb2xlYW5cbiAgaGFzQWN0aXZlSXRlbT86IGJvb2xlYW5cbiAgaXNWZXJ0aWNhbFNjcm9sbEluZGljYXRvckhpZGRlbj86IGJvb2xlYW5cbiAgaXNIb3Jpem9udGFsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuPzogYm9vbGVhblxuICBpc0hvcml6b250YWw/OiBib29sZWFuXG4gIG51bWJlck9mQ29sdW1ucz86IG51bWJlciB8IEV4cHJlc3Npb25cbiAgaW5pdGlhbEl0ZW1Db3VudD86IG51bWJlciB8IEV4cHJlc3Npb25cbiAgc2Nyb2xsUmVuZGVyQnVmZmVyPzogbnVtYmVyIHwgRXhwcmVzc2lvblxuICBncm91cEJ5Pzogc3RyaW5nXG4gIHNlYXJjaD86IEV4cHJlc3Npb25cbiAgdGFncz86IHN0cmluZ1tdXG4gIC8qKiBDdXN0b20gY29tcG9uZW50cyByZW5kZXJlZCBhYm92ZSB0aGUgbGlzdC4gRXhjbHVkZXMgbmVzdGVkIGxpc3RzIGFuZCB3ZWIgdmlld3MuICovXG4gIGxpc3RIZWFkZXI/OiB7IGNoaWxkcmVuOiBKY0Jhc2VbXSB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEZpbHRlckJ1aWxkZXJJbnB1dCB7XG4gIGRhdGE6IERhdGFzb3VyY2VJZCB8IERhdGFzb3VyY2VCYXNlIHwgRXhwcmVzc2lvbiB8IExpc3RGaWx0ZXJJdGVtW11cbiAgaW5pdGlhbFZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IEV4cHJlc3Npb25cbn1cblxuLyoqXG4gKiBCdWlsZHMgZmlsdGVyIGNvbmZpZ3VyYXRpb24gZm9yIGxpc3QgZGF0YS5cbiAqIEBzZWUgIy9kZWZpbml0aW9ucy9MaXN0RmlsdGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyQnVpbGRlciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogTGlzdEZpbHRlckJ1aWxkZXJJbnB1dCkge1xuICAgIHRoaXMud2l0aChvcHRpb25zKVxuICB9XG5cbiAgd2l0aChvcHRpb25zOiBMaXN0RmlsdGVyQnVpbGRlcklucHV0KTogdGhpcyB7XG4gICAgY29uc3QgZGF0YSA9IG9wdGlvbnMuZGF0YVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5kYXRhID0gaXNFeHByZXNzaW9uKGRhdGEpID8gdG9FeHByZXNzaW9uKGRhdGEpIDogQ1RYLmRhdGFzb3VyY2VzLmV4cHIoZGF0YSlcbiAgICB9IGVsc2UgaWYgKGlzRGF0YXNvdXJjZUJhc2UoZGF0YSkpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5kYXRhID0gZGF0YVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jb25maWcuZGF0YSA9IGRhdGEubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICB0aXRsZTogdG9UZXh0VmFsdWUoaXRlbS50aXRsZSksXG4gICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgfSkpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW5pdGlhbFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5pbml0aWFsVmFsdWUgPSBvcHRpb25zLmluaXRpYWxWYWx1ZVxuICAgIH1cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYnVpbGQoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBidWlsZFRyZWUodGhpcy5fY29uZmlnKVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNjcmVlbklucHV0IGV4dGVuZHMgU2NyZWVuQmFzZUJ1aWxkZXJJbnB1dCB7XG4gIGlzSG9yaXpvbnRhbD86IGJvb2xlYW5cbiAgaXNIb3Jpem9udGFsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuPzogYm9vbGVhblxuICBpc1ZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuPzogYm9vbGVhblxuICBpc1NlYXJjaGFibGU/OiBib29sZWFuXG4gIGlzU2VsZWN0YWJsZT86IGJvb2xlYW5cbiAgaGFzQWN0aXZlSXRlbT86IGJvb2xlYW5cbiAgbnVtYmVyT2ZDb2x1bW5zPzogbnVtYmVyIHwgRXhwcmVzc2lvblxuICBpbml0aWFsSXRlbUNvdW50PzogbnVtYmVyIHwgRXhwcmVzc2lvblxuICBzY3JvbGxSZW5kZXJCdWZmZXI/OiBudW1iZXIgfCBFeHByZXNzaW9uXG59XG5cbi8qKlxuICogQnVpbGQgc2Nyb2xsYWJsZSBsaXN0cyBmb3IgZGF0YSBjb2xsZWN0aW9ucy5cbiAqIERpc3BsYXkgaXRlbXMgdXNpbmcgY29uc2lzdGVudCB0ZW1wbGF0ZXMgd2l0aCByaWNoIHN0eWxpbmcgb3B0aW9ucy5cbiAqIEVuYWJsZSBzZWFyY2gsIGZpbHRlcmluZywgc2VsZWN0aW9uLCBhbmQgc2VjdGlvbmluZyBmb3IgYmV0dGVyIG9yZ2FuaXphdGlvbi5cbiAqIFN1cHBvcnQgaG9yaXpvbnRhbCBzY3JvbGxpbmcsIGFjdGl2ZSBpdGVtIHN0YXRlcywgYW5kIHN3aXBlIGFjdGlvbnMuXG4gKiBVc2UgZm9yIGN1c3RvbWVyIGxpc3RzLCBwcm9kdWN0IGNhdGFsb2dzLCBhY3Rpdml0eSBmZWVkcywgb3IgYW55IGRhdGEgY29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RTY3JlZW5CdWlsZGVyIGV4dGVuZHMgU2NyZWVuQmFzZUJ1aWxkZXJOZXcge1xuICByZWFkb25seSBzdGF0ZToge1xuICAgIHJlYWRvbmx5IHNlYXJjaFRleHQ6IHN0cmluZ1xuICAgIHJlYWRvbmx5IGlzU2VsZWN0YWJsZTogc3RyaW5nXG4gICAgcmVhZG9ubHkgaXNIb3Jpem9udGFsOiBzdHJpbmdcbiAgICByZWFkb25seSBhY3RpdmVJdGVtSWQ6IHN0cmluZ1xuICAgIHJlYWRvbmx5IGFjdGl2ZUl0ZW06IHN0cmluZ1xuICAgIHJlYWRvbmx5IGlzU2VsZWN0QWN0aXZlOiBzdHJpbmdcbiAgICByZWFkb25seSBhbW91bnRzOiBzdHJpbmdcbiAgICByZWFkb25seSBzZWxlY3RlZDogc3RyaW5nXG4gICAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZ1xuICAgIHJlYWRvbmx5IGZpbHRlcjogc3RyaW5nXG4gICAgcmVhZG9ubHkgaXNSZWZyZXNoaW5nOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBCYWNraW5nIGNvbmZpZyBmb3IgYGxpc3RIZWFkZXJgLCBsaW5rZWQgaW50byBgX2NvbmZpZy5saXN0SGVhZGVyYC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEhlYWRlckNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IGNoaWxkcmVuOiBbXSB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgZm9yIGN1c3RvbSBjb21wb25lbnRzIHJlbmRlcmVkIGFib3ZlIHRoZSBsaXN0LiBNaXJyb3JzIHRoZVxuICAgKiBqaWcuZGVmYXVsdCBjb250ZW50IGZhY3RvcnksIGV4Y2x1ZGluZyBuZXN0ZWQgbGlzdHMgYW5kIHdlYiB2aWV3cy5cbiAgICovXG4gIHJlYWRvbmx5IGxpc3RIZWFkZXI6IE9taXQ8RGVmYXVsdFNjcmVlbkNoaWxkcmVuRmFjdG9yeSwgJ2xpc3QnIHwgJ3dlYlZpZXcnPlxuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IExpc3RTY3JlZW5JbnB1dCkge1xuICAgIHN1cGVyKFNDUkVFTl9UWVBFLkxJU1QsIG9wdGlvbnMpXG4gICAgdGhpcy53aXRoKG9wdGlvbnMpXG5cbiAgICB0aGlzLl9jb25maWcubGlzdEhlYWRlciA9IHRoaXMuX2xpc3RIZWFkZXJDb25maWdcbiAgICBjb25zdCB7XG4gICAgICBsaXN0OiBfbGlzdCxcbiAgICAgIHdlYlZpZXc6IF93ZWJWaWV3LFxuICAgICAgLi4ubGlzdEhlYWRlclxuICAgIH0gPSBjcmVhdGVEZWZhdWx0U2NyZWVuQ2hpbGRyZW5GYWN0b3J5KHRoaXMuX2xpc3RIZWFkZXJDb25maWcsICdjaGlsZHJlbicpXG4gICAgdGhpcy5saXN0SGVhZGVyID0gbGlzdEhlYWRlclxuXG4gICAgY29uc3Qgc2NyZWVuSWQgPSB0b1NjcmVlbklkKG9wdGlvbnMuc2NyZWVuSWQpXG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgc2VhcmNoVGV4dDogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5zZWFyY2hUZXh0YCxcbiAgICAgIGlzU2VsZWN0YWJsZTogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5pc1NlbGVjdGFibGVgLFxuICAgICAgaXNIb3Jpem9udGFsOiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLmlzSG9yaXpvbnRhbGAsXG4gICAgICBhY3RpdmVJdGVtSWQ6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuYWN0aXZlSXRlbUlkYCxcbiAgICAgIGFjdGl2ZUl0ZW06IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuYWN0aXZlSXRlbWAsXG4gICAgICBpc1NlbGVjdEFjdGl2ZTogYEBjdHguamlncy4ke3NjcmVlbklkfS5zdGF0ZS5pc1NlbGVjdEFjdGl2ZWAsXG4gICAgICBhbW91bnRzOiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLmFtb3VudHNgLFxuICAgICAgc2VsZWN0ZWQ6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuc2VsZWN0ZWRgLFxuICAgICAgdmFsdWU6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUudmFsdWVgLFxuICAgICAgZmlsdGVyOiBgQGN0eC5qaWdzLiR7c2NyZWVuSWR9LnN0YXRlLmZpbHRlcmAsXG4gICAgICBpc1JlZnJlc2hpbmc6IGBAY3R4LmppZ3MuJHtzY3JlZW5JZH0uc3RhdGUuaXNSZWZyZXNoaW5nYCxcbiAgICB9XG4gIH1cblxuICBmaWx0ZXIgPSBhc3NpZ25CdWlsZGVyRmFjdG9yeShMaXN0RmlsdGVyQnVpbGRlciwgdGhpcy5fY29uZmlnLCAnZmlsdGVyJylcblxuICAvLyBUT0RPOiByZW5hbWUgdG8gYHNldEl0ZW1gXG4gIGFkZENvbnRyb2wgPSB7XG4gICAgYmFyQ2hhcnQ6IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KEpjQmFyQ2hhcnRCdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gICAgZXhwYW5kZXI6IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KEpjRXhwYW5kZXJCdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gICAgbGlzdEl0ZW06IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KEpjTGlzdEl0ZW1CdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gICAgcGllQ2hhcnQ6IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KEpjUGllQ2hhcnRCdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gICAgc3RhZ2U6IGFzc2lnbkJ1aWxkZXJGYWN0b3J5KEpjU3RhZ2VCdWlsZGVyLCB0aGlzLl9jb25maWcsICdpdGVtJyksXG4gICAgcHJvZHVjdDogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNQcm9kdWN0SXRlbUJ1aWxkZXIsIHRoaXMuX2NvbmZpZywgJ2l0ZW0nKSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWRlcHJlY2F0ZWQgLS0gaW50ZXJuYWwgU0RLIHN0aWxsIHdpcmVzIHRoaXMgZGVwcmVjYXRlZCBidWlsZGVyIGZvciBiYWNrLWNvbXBhdFxuICAgIGN1c3RvbUNvbXBvbmVudDogYXNzaWduQnVpbGRlckZhY3RvcnkoSmNDdXN0b21Db21wb25lbnRJbnRlcm9wQnVpbGRlciwgdGhpcy5fY29uZmlnLCAnaXRlbScpLFxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgZGF0YSBzb3VyY2UgZm9yIGxpc3QgaXRlbXMuXG4gICAqIEBwYXJhbSBkYXRhIERhdGFzb3VyY2UgSUQgb3IgZXhwcmVzc2lvblxuICAgKi9cbiAgZGF0YShkYXRhOiBEYXRhc291cmNlSWQgfCBEYXRhc291cmNlQmFzZSB8IEV4cHJlc3Npb24pOiB0aGlzIHtcbiAgICBpZiAoaXNEYXRhc291cmNlQmFzZShkYXRhKSkge1xuICAgICAgdGhpcy5fY29uZmlnLmRhdGEgPSBDVFguZGF0YXNvdXJjZXMuZXhwcihkYXRhLmRhdGFzb3VyY2VJZClcbiAgICB9IGVsc2UgaWYgKGRhdGEuc3RhcnRzV2l0aCgnPScpKSB7XG4gICAgICB0aGlzLl9jb25maWcuZGF0YSA9IHRvRXhwcmVzc2lvbihkYXRhKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jb25maWcuZGF0YSA9IENUWC5kYXRhc291cmNlcy5leHByKGRhdGEpXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXRDdXJyZW50SXRlbVJlZihrZXk/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIFRPRE86IHZhbGlkYXRlIGtleSwgaG93P1xuICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGBAY3R4LmN1cnJlbnQuaXRlbWBcbiAgICB9XG5cbiAgICByZXR1cm4gYEBjdHguY3VycmVudC5pdGVtLiR7a2V5fWBcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGxpc3QgZGlzcGxheSBhbmQgYmVoYXZpb3IuXG4gICAqIEBwYXJhbSBvcHRpb25zLmhvcml6b250YWwgRW5hYmxlIGhvcml6b250YWwgc2Nyb2xsaW5nXG4gICAqIEBwYXJhbSBvcHRpb25zLmlzU2VhcmNoYWJsZSBFbmFibGUgc2VhcmNoIGJhclxuICAgKiBAcGFyYW0gb3B0aW9ucy5pc1NlbGVjdGFibGUgRW5hYmxlIGl0ZW0gc2VsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSB3aXRoKG9wdGlvbnM6IFBhcnRpYWw8T21pdDxMaXN0U2NyZWVuSW5wdXQsICdzY3JlZW5JZCc+Pik6IHRoaXMge1xuICAgIHN1cGVyLndpdGgob3B0aW9ucylcblxuICAgIGlmIChvcHRpb25zLmlzSG9yaXpvbnRhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaXNIb3Jpem9udGFsID0gb3B0aW9ucy5pc0hvcml6b250YWxcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pc0hvcml6b250YWxTY3JvbGxJbmRpY2F0b3JIaWRkZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLmlzSG9yaXpvbnRhbFNjcm9sbEluZGljYXRvckhpZGRlbiA9IG9wdGlvbnMuaXNIb3Jpem9udGFsU2Nyb2xsSW5kaWNhdG9ySGlkZGVuXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaXNWZXJ0aWNhbFNjcm9sbEluZGljYXRvckhpZGRlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaXNWZXJ0aWNhbFNjcm9sbEluZGljYXRvckhpZGRlbiA9IG9wdGlvbnMuaXNWZXJ0aWNhbFNjcm9sbEluZGljYXRvckhpZGRlblxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmlzU2VhcmNoYWJsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaXNTZWFyY2hhYmxlID0gb3B0aW9ucy5pc1NlYXJjaGFibGVcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pc1NlbGVjdGFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fY29uZmlnLmlzU2VsZWN0YWJsZSA9IG9wdGlvbnMuaXNTZWxlY3RhYmxlXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGFzQWN0aXZlSXRlbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcuaGFzQWN0aXZlSXRlbSA9IG9wdGlvbnMuaGFzQWN0aXZlSXRlbVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm51bWJlck9mQ29sdW1ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jb25maWcubnVtYmVyT2ZDb2x1bW5zID0gb3B0aW9ucy5udW1iZXJPZkNvbHVtbnNcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbml0aWFsSXRlbUNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5pbml0aWFsSXRlbUNvdW50ID0gb3B0aW9ucy5pbml0aWFsSXRlbUNvdW50XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuc2Nyb2xsUmVuZGVyQnVmZmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZy5zY3JvbGxSZW5kZXJCdWZmZXIgPSBvcHRpb25zLnNjcm9sbFJlbmRlckJ1ZmZlclxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQWRkcyBzZWN0aW9uIHRvIGdyb3VwIGxpc3QgaXRlbXMuXG4gICAqIEBwYXJhbSBvcHRpb25zIFJlcXVpcmVkIHNlY3Rpb24gb3B0aW9uc1xuICAgKiBAcGFyYW0gb3B0aW9ucy50aXRsZSBTZWN0aW9uIGhlYWRlclxuICAgKiBAcGFyYW0gb3B0aW9ucy5kYXRhIEV4cHJlc3Npb24gZm9yIHNlY3Rpb24gZGF0YVxuICAgKi9cbiAgc2VjdGlvbihvcHRpb25zOiB7XG4gICAgdGl0bGU6IHN0cmluZyB8IFRleHRWYWx1ZSB8IFRleHRWYWx1ZUJ1aWxkZXJcbiAgICBkYXRhOiBzdHJpbmcgfCBFeHByZXNzaW9uXG4gIH0pOiB0aGlzIHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkodGhpcy5fY29uZmlnLnNlY3Rpb25zKSA/IHRoaXMuX2NvbmZpZy5zZWN0aW9ucyA6IFtdXG4gICAgY29uc3Qgc2VjdGlvbjogU2VjdGlvbkJhc2UgPSB7XG4gICAgICB0aXRsZTogVGV4dFZhbHVlQnVpbGRlci5mcm9tKG9wdGlvbnMudGl0bGUpLFxuICAgICAgZGF0YTogdG9FeHByZXNzaW9uKG9wdGlvbnMuZGF0YSksXG4gICAgfVxuICAgIHNlY3Rpb25zLnB1c2goc2VjdGlvbilcbiAgICB0aGlzLl9jb25maWcuc2VjdGlvbnMgPSBzZWN0aW9uc1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBvdmVycmlkZSBidWlsZCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuYnVpbGQoKVxuXG4gICAgLy8gRHJvcCBlbXB0eSBsaXN0SGVhZGVyIGZvciBZQU1MIHBhcml0eSAobm8gY2hpbGRyZW4gd2VyZSBhZGRlZCkuXG4gICAgY29uc3QgbGlzdEhlYWRlciA9IHJlc3VsdC5saXN0SGVhZGVyIGFzIHsgY2hpbGRyZW4/OiB1bmtub3duW10gfSB8IHVuZGVmaW5lZFxuICAgIGlmIChsaXN0SGVhZGVyICYmICghQXJyYXkuaXNBcnJheShsaXN0SGVhZGVyLmNoaWxkcmVuKSB8fCBsaXN0SGVhZGVyLmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIGRlbGV0ZSByZXN1bHQubGlzdEhlYWRlclxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl19
@@ -33,7 +33,7 @@ npx tsx workspace/build.ts workspace/acumatica-apps/create-customer
33
33
  npx tsx workspace/build-yaml.ts workspace/acumatica-apps/create-customer
34
34
 
35
35
  # Deploy (env vars or .env)
36
- STAMP=PROD ORGANIZATION_ID="..." JIGX_API_KEY="..." \
36
+ STAMP=CLF-PROD ORGANIZATION_ID="..." JIGX_API_KEY="..." \
37
37
  ./workspace/acumatica-apps/create-customer/build-publish.sh
38
38
  ```
39
39
 
@@ -87,5 +87,5 @@ All calls use `Authorization: Bearer {JIGX_API_KEY}`.
87
87
  Inline env vars override `.env` defaults — pass credentials on the command line to avoid storing prod keys:
88
88
 
89
89
  ```bash
90
- STAMP=PROD ORGANIZATION_ID="..." JIGX_API_KEY="..." ./workspace/acumatica-apps/create-customer/build-publish.sh
90
+ STAMP=CLF-PROD ORGANIZATION_ID="..." JIGX_API_KEY="..." ./workspace/acumatica-apps/create-customer/build-publish.sh
91
91
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jigx/core-sdk",
3
- "version": "1.2.0-next.1",
3
+ "version": "1.2.0-next.3",
4
4
  "description": "Jigx Software Development Kit - SDK for building Jigx applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",