@pipeline-builder/api-core 5.2.7 → 5.2.9

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.
@@ -38,6 +38,7 @@ export const AUDIT_CORRELATION_HEADERS = {
38
38
  pipelineExecutionId: 'x-pipeline-execution-id',
39
39
  codebuildBuildId: 'x-codebuild-build-id',
40
40
  sourceEventId: 'x-source-event-id',
41
+ clientVersion: 'x-pb-client-version',
41
42
  };
42
43
  /** Max length of a stored correlation id / request id. */
43
44
  const MAX_CORRELATION_LEN = 128;
@@ -131,4 +132,4 @@ export function auditAuthBlock(user) {
131
132
  }
132
133
  return Object.keys(block).length > 0 ? block : undefined;
133
134
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29udGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2F1ZGl0LWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQXNFNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBZ0IsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFJLEdBQWlCLEVBQUUsRUFBVztJQUNuRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQWlCLEtBQUs7UUFDaEMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDbEksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNSLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0s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Q0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2hILENBQUM7SUFDRixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFnQyxFQUFFLENBQUM7UUFDcEUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIEFtYmllbnQgYXVkaXQgY29udGV4dDogdGhlIHJlcXVlc3Qvam9iIGZhY3RzIGV2ZXJ5IGF1ZGl0IGV2ZW50IHNob3VsZCBjYXJyeVxuICogKHJlcXVlc3QgaWQsIHRyYWNlIGlkLCBjbGllbnQgaXAgLyB1c2VyIGFnZW50LCB0aGUgdmVyaWZpZWQgcHJpbmNpcGFsJ3NcbiAqIGNyZWRlbnRpYWwsIGluYm91bmQgY29ycmVsYXRpb24gaWRzKSB3aXRob3V0IGVhY2ggb2YgdGhlIH4xNTAgYHJlY29yZEF1ZGl0YFxuICogY2FsbCBzaXRlcyB0aHJlYWRpbmcgdGhlbSB0aHJvdWdoIGJ5IGhhbmQuXG4gKlxuICogYXBpLXNlcnZlcidzIHJlcXVlc3QgcGlwZWxpbmUgb3BlbnMgYSBzY29wZSBwZXIgaW5ib3VuZCByZXF1ZXN0XG4gKiAoYGF1ZGl0Q29udGV4dEZyb21SZXF1ZXN0YCArIGBydW5XaXRoQXVkaXRDb250ZXh0YCk7IGJhY2tncm91bmQgd29yayBvcGVucyBpdHNcbiAqIG93biB3aXRoIGBydW5XaXRoQXVkaXRDb250ZXh0KHsgam9iOiB7IGpvYklkLCBydW5JZCwgdHJpZ2dlciB9IH0sIGZuKWAuIFRoZVxuICogcmVtb3RlLWF1ZGl0IGNsaWVudCByZWFkcyB0aGUgc2NvcGUgd2hlbiBhbiBldmVudCBpcyBSRUNPUkRFRCBhbmQgc3RhbXBzIHRoZVxuICogcmVzdWx0IG9udG8gdGhlIGV2ZW50IGl0c2VsZiwgc28gYSBzcG9vbGVkIHJlLWRlbGl2ZXJ5IG1pbnV0ZXMgbGF0ZXIgc3RpbGxcbiAqIGNhcnJpZXMgdGhlIGNvbnRleHQgb2YgdGhlIG1vbWVudCBpdCBoYXBwZW5lZC5cbiAqL1xuXG5pbXBvcnQgeyBBc3luY0xvY2FsU3RvcmFnZSB9IGZyb20gJ2FzeW5jX2hvb2tzJztcbmltcG9ydCB0eXBlIHsgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgc2VydmljZU5hbWVPZiB9IGZyb20gJy4uL21pZGRsZXdhcmUvc2VydmljZS10b2tlbnMuanMnO1xuaW1wb3J0IHsgaXNTeXN0ZW1PcmdJZCB9IGZyb20gJy4uL21pZGRsZXdhcmUvc3lzdGVtLW9yZy5qcyc7XG5pbXBvcnQgdHlwZSB7IEp3dFBheWxvYWQgfSBmcm9tICcuLi90eXBlcy9jb21tb24uanMnO1xuXG4vKiogSW5ib3VuZCBjb3JyZWxhdGlvbiBpZHMgYSBjYWxsZXIgKENMSSwgTGFtYmRhLCBDb2RlQnVpbGQpIG1heSBmb3J3YXJkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdWRpdENvcnJlbGF0aW9uIHtcbiAgLyoqIGBYLVBpcGVsaW5lLUV4ZWN1dGlvbi1JZGAg4oCUIHRoZSBDb2RlUGlwZWxpbmUgZXhlY3V0aW9uIHRoYXQgbWFkZSB0aGUgY2FsbC4gKi9cbiAgcGlwZWxpbmVFeGVjdXRpb25JZD86IHN0cmluZztcbiAgLyoqIGBYLUNvZGVCdWlsZC1CdWlsZC1JZGAg4oCUIHRoZSBDb2RlQnVpbGQgYnVpbGQgdGhhdCBtYWRlIHRoZSBjYWxsLiAqL1xuICBjb2RlYnVpbGRCdWlsZElkPzogc3RyaW5nO1xuICAvKiogYFgtU291cmNlLUV2ZW50LUlkYCDigJQgdGhlIHVwc3RyZWFtIGV2ZW50IChFdmVudEJyaWRnZSAvIHdlYmhvb2spIGJlaW5nIGhhbmRsZWQuICovXG4gIHNvdXJjZUV2ZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBCYWNrZ3JvdW5kLXdvcmsgaWRlbnRpdHkgZm9yIGV2ZW50cyByZWNvcmRlZCBvdXRzaWRlIGFueSByZXF1ZXN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdWRpdEpvYkNvbnRleHQge1xuICAvKiogU3RhYmxlIGpvYiBuYW1lIChlLmcuIGByZWdpc3RyeS1nY2AsIGB2dWxuLXJlc2NhbmApLiAqL1xuICBqb2JJZD86IHN0cmluZztcbiAgLyoqIFRoaXMgcnVuJ3MgaWQgKGEgQnVsbE1RIGpvYiBpZCwgYSBzd2VlcCdzIHV1aWQpLiAqL1xuICBydW5JZD86IHN0cmluZztcbiAgLyoqIFdoYXQgc3RhcnRlZCBpdDogYHNjaGVkdWxlYCwgYHF1ZXVlYCwgYHN0YXJ0dXBgLCBgbWFudWFsYCwg4oCmICovXG4gIHRyaWdnZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaXRDb250ZXh0IHtcbiAgcmVxdWVzdElkPzogc3RyaW5nO1xuICB0cmFjZUlkPzogc3RyaW5nO1xuICBpcD86IHN0cmluZztcbiAgdXNlckFnZW50Pzogc3RyaW5nO1xuICBjb3JyZWxhdGlvbj86IEF1ZGl0Q29ycmVsYXRpb247XG4gIGpvYj86IEF1ZGl0Sm9iQ29udGV4dDtcbiAgLyoqXG4gICAqIFRoZSBWRVJJRklFRCBwcmluY2lwYWwgb2YgdGhlIGluYm91bmQgcmVxdWVzdC4gQSBnZXR0ZXIsIG5vdCBhIHZhbHVlOiB0aGVcbiAgICogc2NvcGUgb3BlbnMgYmVmb3JlIGByZXF1aXJlQXV0aGAgcnVucywgc28gYHJlcS51c2VyYCBpcyByZWFkIGF0IHRoZSBtb21lbnRcbiAgICogYW4gZXZlbnQgaXMgcmVjb3JkZWQuXG4gICAqL1xuICBwcmluY2lwYWw/OiAoKSA9PiBKd3RQYXlsb2FkIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFRoZSBjcmVkZW50aWFsIGJlaGluZCBhbiBhdWRpdGVkIGFjdGlvbiDigJQgcmVzZXJ2ZWQgYGRldGFpbHMuX2F1dGhgLCBzbyBpdCBpc1xuICogY292ZXJlZCBieSB0aGUgYXVkaXQgaGFzaCBjaGFpbiAod2hpY2ggaGFzaGVzIGBkZXRhaWxzYCkuIEJ1aWx0IG9ubHkgZnJvbSBhXG4gKiB2ZXJpZmllZCB0b2tlbiwgbmV2ZXIgZnJvbSBjYWxsZXIgaW5wdXQ7IHRoZSByZW1vdGUtYXVkaXQgY2xpZW50IG92ZXJ3cml0ZXNcbiAqIGFueSBgX2F1dGhgIGEgY2FsbCBzaXRlIHB1dCBpbiBgZGV0YWlsc2AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaXRBdXRoQmxvY2sge1xuICBwcmluY2lwYWxUeXBlPzogc3RyaW5nO1xuICAvKiogVGhlIGludGVybmFsIHNlcnZpY2UsIHdoZW4gdGhlIHByaW5jaXBhbCBpcyBhIHNlcnZpY2UgdG9rZW4uICovXG4gIHNlcnZpY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmV2b2NhYmxlIGNyZWRlbnRpYWw6IHRoZSBhY2Nlc3Mga2V5IChQQVQgLyBzZXJ2aWNlLWFjY291bnQga2V5KSB0aGVcbiAgICogdG9rZW4gZGVyaXZlcyBmcm9tIChgcGFyZW50S2V5SWRgKSwgZWxzZSB0aGUgdG9rZW4ncyBvd24gYGp0aWAgKGFuIGV4Y2hhbmdlZFxuICAgKiBrZXkgdG9rZW4ncyBrZXkgaWQsIGFuIGltcGVyc29uYXRpb24gc2Vzc2lvbiBpZCwgYSBzZXJ2aWNlIG1pbnQgaWQpLlxuICAgKi9cbiAga2V5SWQ/OiBzdHJpbmc7XG4gIC8qKiBSZWZyZXNoLXNlc3Npb24gc2xvdCB0aGUgdG9rZW4gd2FzIG1pbnRlZCBvbi4gKi9cbiAgc2lkPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZztcbiAgdG9rZW5Vc2U/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdG9rZW4ncyBwZXJtaXNzaW9ucyB3ZXJlIG5hcnJvd2VkIHRvIGEgc3Vic2V0IGF0IGNyZWRlbnRpYWwgY3JlYXRpb24uICovXG4gIHBlcm1pc3Npb25zUmVzdHJpY3RlZD86IHRydWU7XG4gIC8qKiBUaGUgcHJpbmNpcGFsIGlzIGEgcGxhdGZvcm0gc3VwZXJhZG1pbi4gKi9cbiAgc3VwZXJBZG1pbj86IHRydWU7XG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsJ3MgYWN0aXZlIG9yZyBpcyB0aGUgc3lzdGVtIG9yZyAodmVuZG9yIHN0YWZmIGFjdGluZyB0aHJvdWdoIGFcbiAgICogc3lzdGVtLW9yZyBqb2IgUm9sZSkuIFdpdGggYHN1cGVyQWRtaW5gLCB0aGlzIGlzIHdoYXQgbGV0cyB0aGUgcmVtb3RlLWF1ZGl0XG4gICAqIGNsaWVudCBjbGFpbSBhIGNyb3NzLW9yZyBgYWZmZWN0ZWRPcmdJZGAgKHNlZSBgYXVkaXRDcm9zc09yZ2ApLlxuICAgKi9cbiAgc3lzdGVtT3JnPzogdHJ1ZTtcbn1cblxuY29uc3Qgc3RvcmFnZSA9IG5ldyBBc3luY0xvY2FsU3RvcmFnZTxBdWRpdENvbnRleHQ+KCk7XG5cbi8qKlxuICogUnVuIGBmbmAgaW5zaWRlIGFuIGF1ZGl0LWNvbnRleHQgc2NvcGUuIE5lc3RlZCBzY29wZXMgTUVSR0Ugb250byB0aGUgb3V0ZXJcbiAqIG9uZSAoYSBqb2Igc3RhcnRlZCBpbnNpZGUgYSByZXF1ZXN0IGtlZXBzIHRoZSByZXF1ZXN0J3MgaWQpLCB3aXRoIHRoZSBpbm5lclxuICogZmllbGRzIHdpbm5pbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5XaXRoQXVkaXRDb250ZXh0PFQ+KGN0eDogQXVkaXRDb250ZXh0LCBmbjogKCkgPT4gVCk6IFQge1xuICBjb25zdCBvdXRlciA9IHN0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgY29uc3QgbWVyZ2VkOiBBdWRpdENvbnRleHQgPSBvdXRlclxuICAgID8geyAuLi5vdXRlciwgLi4uY3R4LCBjb3JyZWxhdGlvbjogY3R4LmNvcnJlbGF0aW9uID8/IG91dGVyLmNvcnJlbGF0aW9uLCBqb2I6IGN0eC5qb2IgPyB7IC4uLm91dGVyLmpvYiwgLi4uY3R4LmpvYiB9IDogb3V0ZXIuam9iIH1cbiAgICA6IGN0eDtcbiAgcmV0dXJuIHN0b3JhZ2UucnVuKG1lcmdlZCwgZm4pO1xufVxuXG4vKiogVGhlIGFjdGl2ZSBhdWRpdCBjb250ZXh0LCBvciB1bmRlZmluZWQgb3V0c2lkZSBhbnkgc2NvcGUuICovXG5leHBvcnQgZnVuY3Rpb24gY3VycmVudEF1ZGl0Q29udGV4dCgpOiBBdWRpdENvbnRleHQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gc3RvcmFnZS5nZXRTdG9yZSgpO1xufVxuXG4vKiogSW5ib3VuZCBjb3JyZWxhdGlvbiBoZWFkZXJzIHJlY29yZGVkIGludG8gdGhlIGF1ZGl0IGNvbnRleHQuICovXG5leHBvcnQgY29uc3QgQVVESVRfQ09SUkVMQVRJT05fSEVBREVSUyA9IHtcbiAgcGlwZWxpbmVFeGVjdXRpb25JZDogJ3gtcGlwZWxpbmUtZXhlY3V0aW9uLWlkJyxcbiAgY29kZWJ1aWxkQnVpbGRJZDogJ3gtY29kZWJ1aWxkLWJ1aWxkLWlkJyxcbiAgc291cmNlRXZlbnRJZDogJ3gtc291cmNlLWV2ZW50LWlkJyxcbn0gYXMgY29uc3Q7XG5cbi8qKiBNYXggbGVuZ3RoIG9mIGEgc3RvcmVkIGNvcnJlbGF0aW9uIGlkIC8gcmVxdWVzdCBpZC4gKi9cbmNvbnN0IE1BWF9DT1JSRUxBVElPTl9MRU4gPSAxMjg7XG4vKiogSWRzIGFyZSBvcGFxdWUgdG9rZW5zOiB1dWlkcywgYHByb2plY3Q6dXVpZGAgYnVpbGQgaWRzLCBVTElEcy4gTm90aGluZyBlbHNlIGlzIHN0b3JlZC4gKi9cbmNvbnN0IENPUlJFTEFUSU9OX0lEID0gL15bQS1aYS16MC05Ll86L0ArPS1dKyQvO1xuLyoqIEEgYmFyZSBBV1MgYWNjb3VudCBpZC4gKi9cbmNvbnN0IEJBUkVfQUNDT1VOVF9JRCA9IC9eXFxkezEyfSQvO1xuXG4vKiogTWF4IHN0b3JlZCBVc2VyLUFnZW50IGxlbmd0aCDigJQgYSBob3N0aWxlIGhlYWRlciBtdXN0IG5vdCBibG9hdCBhdWRpdCByb3dzLiAqL1xuY29uc3QgTUFYX1VTRVJfQUdFTlRfTEVOID0gNTEyO1xuLyoqIEMwICsgREVMICsgQzEgY29udHJvbCBjaGFyYWN0ZXJzLCByZXBsYWNlZCBzbyBhIFVBIGNhbid0IGluamVjdCBpbnRvIHRoZSBVSS9DU1YgZXhwb3J0LiAqL1xuY29uc3QgQ09OVFJPTF9DSEFSUyA9IG5ldyBSZWdFeHAoJ1tcXFxcdTAwMDAtXFxcXHUwMDFmXFxcXHUwMDdmLVxcXFx1MDA5Zl0nLCAnZycpO1xuXG5mdW5jdGlvbiBmaXJzdEhlYWRlcihyYXc6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmF3KSA/IHJhd1swXSA6IHJhdztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhbiBpbmJvdW5kIGNvcnJlbGF0aW9uIGlkIChgWC1SZXF1ZXN0LUlkYCwgYFgtQ29kZUJ1aWxkLUJ1aWxkLUlkYCwg4oCmKTpcbiAqIGEgYm91bmRlZCBvcGFxdWUgdG9rZW4sIGVsc2UgYHVuZGVmaW5lZGAg4oCUIGFuIGludmFsaWQgdmFsdWUgaXMgZHJvcHBlZCwgbmV2ZXJcbiAqIHRydW5jYXRlZCBpbnRvIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBkaWZmZXJlbnQgaWQuXG4gKlxuICogTm8gQVdTIGFjY291bnQgaWQgaXMgZXZlciBzdG9yZWQ6IGFuIEFSTiAoYSBDb2RlQnVpbGQgYnVpbGQgQVJOLCBzYXkpIGhhcyBpdHNcbiAqIGFjY291bnQgc2VnbWVudCBlbXB0aWVkLCBhbmQgYSBiYXJlIDEyLWRpZ2l0IHZhbHVlIGlzIHJlZnVzZWQuIFRoZSBnZW5lcmljXG4gKiAxMi1kaWdpdC1ydW4gc2NydWIgaXMgTk9UIHVzZWQgaGVyZSDigJQgaXQgd291bGQgcmVkYWN0IHRoZSBhbGwtZGlnaXQgZmluYWxcbiAqIGdyb3VwIG9mIHJvdWdobHkgb25lIHV1aWQgaW4gdGhyZWUgaHVuZHJlZCwgY29ycnVwdGluZyB0aGUgaWQgaXQgZXhpc3RzIHRvXG4gKiBjb3JyZWxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUNvcnJlbGF0aW9uSWQocmF3OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiByYXcgIT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCB2YWx1ZSA9IHJhdy50cmltKCk7XG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgdmFsdWUubGVuZ3RoID4gTUFYX0NPUlJFTEFUSU9OX0xFTiB8fCAhQ09SUkVMQVRJT05fSUQudGVzdCh2YWx1ZSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmIChCQVJFX0FDQ09VTlRfSUQudGVzdCh2YWx1ZSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICgvXmFybjovaS50ZXN0KHZhbHVlKSkge1xuICAgIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gNCkgcGFydHNbNF0gPSAnJztcbiAgICByZXR1cm4gcGFydHMuam9pbignOicpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIFN0cmlwIGNvbnRyb2wgY2hhcmFjdGVycyBmcm9tIGEgVXNlci1BZ2VudCBhbmQgY2FwIGl0cyBsZW5ndGg7IHVuZGVmaW5lZCB3aGVuIGVtcHR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplVXNlckFnZW50KHJhdzogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgcmF3ICE9PSAnc3RyaW5nJyB8fCByYXcubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBjbGVhbmVkID0gcmF3LnJlcGxhY2UoQ09OVFJPTF9DSEFSUywgJyAnKS50cmltKCk7XG4gIHJldHVybiBjbGVhbmVkLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGNsZWFuZWQuc2xpY2UoMCwgTUFYX1VTRVJfQUdFTlRfTEVOKTtcbn1cblxuLyoqXG4gKiBUaGUgYXVkaXQgY29udGV4dCBmb3IgYW4gaW5ib3VuZCByZXF1ZXN0LiBgcmVxdWVzdElkYCBpcyB0aGUgaWQgdGhlXG4gKiByZXF1ZXN0LWlkIG1pZGRsZXdhcmUgcmVzb2x2ZWQgKHZhbGlkYXRlZCBpbmJvdW5kIGBYLVJlcXVlc3QtSWRgLCBlbHNlIGEgZnJlc2hcbiAqIHV1aWQpOyB0aGUgcHJpbmNpcGFsIGlzIHJlYWQgbGF6aWx5IGZyb20gYHJlcS51c2VyYCAoYXV0aCBydW5zIGxhdGVyIGluIHRoZVxuICogY2hhaW4pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXVkaXRDb250ZXh0RnJvbVJlcXVlc3QocmVxOiBSZXF1ZXN0LCBpZHM6IHsgcmVxdWVzdElkPzogc3RyaW5nOyB0cmFjZUlkPzogc3RyaW5nIH0gPSB7fSk6IEF1ZGl0Q29udGV4dCB7XG4gIGNvbnN0IGNvcnJlbGF0aW9uOiBBdWRpdENvcnJlbGF0aW9uID0ge307XG4gIGZvciAoY29uc3QgW2ZpZWxkLCBoZWFkZXJdIG9mIE9iamVjdC5lbnRyaWVzKEFVRElUX0NPUlJFTEFUSU9OX0hFQURFUlMpIGFzIEFycmF5PFtrZXlvZiBBdWRpdENvcnJlbGF0aW9uLCBzdHJpbmddPikge1xuICAgIGNvbnN0IHZhbHVlID0gc2FuaXRpemVDb3JyZWxhdGlvbklkKGZpcnN0SGVhZGVyKHJlcS5oZWFkZXJzW2hlYWRlcl0pKTtcbiAgICBpZiAodmFsdWUpIGNvcnJlbGF0aW9uW2ZpZWxkXSA9IHZhbHVlO1xuICB9XG4gIHJldHVybiB7XG4gICAgcmVxdWVzdElkOiBpZHMucmVxdWVzdElkLFxuICAgIHRyYWNlSWQ6IGlkcy50cmFjZUlkLFxuICAgIGlwOiByZXEuaXAsXG4gICAgdXNlckFnZW50OiBzYW5pdGl6ZVVzZXJBZ2VudChmaXJzdEhlYWRlcihyZXEuaGVhZGVyc1sndXNlci1hZ2VudCddKSksXG4gICAgY29ycmVsYXRpb246IE9iamVjdC5rZXlzKGNvcnJlbGF0aW9uKS5sZW5ndGggPiAwID8gY29ycmVsYXRpb24gOiB1bmRlZmluZWQsXG4gICAgcHJpbmNpcGFsOiAoKSA9PiByZXEudXNlcixcbiAgfTtcbn1cblxuLyoqIFRoZSBgX2F1dGhgIGJsb2NrIGZvciBhIHZlcmlmaWVkIHByaW5jaXBhbCAodW5kZWZpbmVkIHdoZW4gdGhlcmUgaXMgbm9uZSkuICovXG5leHBvcnQgZnVuY3Rpb24gYXVkaXRBdXRoQmxvY2sodXNlcjogSnd0UGF5bG9hZCB8IHVuZGVmaW5lZCk6IEF1ZGl0QXV0aEJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF1c2VyKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBibG9jazogQXVkaXRBdXRoQmxvY2sgPSB7XG4gICAgcHJpbmNpcGFsVHlwZTogdXNlci5wcmluY2lwYWxUeXBlLFxuICAgIHNlcnZpY2U6IHNlcnZpY2VOYW1lT2YodXNlciksXG4gICAga2V5SWQ6IHVzZXIucGFyZW50S2V5SWQgPz8gdXNlci5qdGksXG4gICAgc2lkOiB1c2VyLnNpZCxcbiAgICBzY29wZTogdXNlci5zY29wZSxcbiAgICB0b2tlblVzZTogdXNlci50b2tlbl91c2UsXG4gICAgLi4uKHVzZXIucGVybWlzc2lvbnNSZXN0cmljdGVkID09PSB0cnVlID8geyBwZXJtaXNzaW9uc1Jlc3RyaWN0ZWQ6IHRydWUgYXMgY29uc3QgfSA6IHt9KSxcbiAgICAuLi4odXNlci5pc1N1cGVyQWRtaW4gPT09IHRydWUgPyB7IHN1cGVyQWRtaW46IHRydWUgYXMgY29uc3QgfSA6IHt9KSxcbiAgICAvLyBBIFNFUlZJQ0UgdG9rZW4gaW4gdGhlIHN5c3RlbSBvcmcgaXMgdGhlIHBsYXRmb3JtJ3Mgb3duIHBsdW1iaW5nLCBub3Qgc3RhZmZcbiAgICAvLyBhY3Rpbmcgb24gYSB0ZW5hbnQ7IG9ubHkgaHVtYW4gLyBzZXJ2aWNlLWFjY291bnQgcHJpbmNpcGFscyBjb3VudC5cbiAgICAuLi4odXNlci5wcmluY2lwYWxUeXBlICE9PSAnc2VydmljZScgJiYgaXNTeXN0ZW1PcmdJZCh1c2VyLm9yZ2FuaXphdGlvbklkKSA/IHsgc3lzdGVtT3JnOiB0cnVlIGFzIGNvbnN0IH0gOiB7fSksXG4gIH07XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJsb2NrKSBhcyBBcnJheTxrZXlvZiBBdWRpdEF1dGhCbG9jaz4pIHtcbiAgICBpZiAoYmxvY2tba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgYmxvY2tba2V5XTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoYmxvY2spLmxlbmd0aCA+IDAgPyBibG9jayA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtY29udGV4dC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2F1ZGl0LWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQXdFNUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBZ0IsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFJLEdBQWlCLEVBQUUsRUFBVztJQUNuRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQWlCLEtBQUs7UUFDaEMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDbEksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNSLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzVCLENBQUM7QUFFRCxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0s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QUM5RSxxRUFBcUU7UUFDckUsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDaEgsQ0FBQztJQUNGLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQWdDLEVBQUUsQ0FBQztRQUNwRSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTO1lBQUUsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMzRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQW1iaWVudCBhdWRpdCBjb250ZXh0OiB0aGUgcmVxdWVzdC9qb2IgZmFjdHMgZXZlcnkgYXVkaXQgZXZlbnQgc2hvdWxkIGNhcnJ5XG4gKiAocmVxdWVzdCBpZCwgdHJhY2UgaWQsIGNsaWVudCBpcCAvIHVzZXIgYWdlbnQsIHRoZSB2ZXJpZmllZCBwcmluY2lwYWwnc1xuICogY3JlZGVudGlhbCwgaW5ib3VuZCBjb3JyZWxhdGlvbiBpZHMpIHdpdGhvdXQgZWFjaCBvZiB0aGUgfjE1MCBgcmVjb3JkQXVkaXRgXG4gKiBjYWxsIHNpdGVzIHRocmVhZGluZyB0aGVtIHRocm91Z2ggYnkgaGFuZC5cbiAqXG4gKiBhcGktc2VydmVyJ3MgcmVxdWVzdCBwaXBlbGluZSBvcGVucyBhIHNjb3BlIHBlciBpbmJvdW5kIHJlcXVlc3RcbiAqIChgYXVkaXRDb250ZXh0RnJvbVJlcXVlc3RgICsgYHJ1bldpdGhBdWRpdENvbnRleHRgKTsgYmFja2dyb3VuZCB3b3JrIG9wZW5zIGl0c1xuICogb3duIHdpdGggYHJ1bldpdGhBdWRpdENvbnRleHQoeyBqb2I6IHsgam9iSWQsIHJ1bklkLCB0cmlnZ2VyIH0gfSwgZm4pYC4gVGhlXG4gKiByZW1vdGUtYXVkaXQgY2xpZW50IHJlYWRzIHRoZSBzY29wZSB3aGVuIGFuIGV2ZW50IGlzIFJFQ09SREVEIGFuZCBzdGFtcHMgdGhlXG4gKiByZXN1bHQgb250byB0aGUgZXZlbnQgaXRzZWxmLCBzbyBhIHNwb29sZWQgcmUtZGVsaXZlcnkgbWludXRlcyBsYXRlciBzdGlsbFxuICogY2FycmllcyB0aGUgY29udGV4dCBvZiB0aGUgbW9tZW50IGl0IGhhcHBlbmVkLlxuICovXG5cbmltcG9ydCB7IEFzeW5jTG9jYWxTdG9yYWdlIH0gZnJvbSAnYXN5bmNfaG9va3MnO1xuaW1wb3J0IHR5cGUgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgeyBzZXJ2aWNlTmFtZU9mIH0gZnJvbSAnLi4vbWlkZGxld2FyZS9zZXJ2aWNlLXRva2Vucy5qcyc7XG5pbXBvcnQgeyBpc1N5c3RlbU9yZ0lkIH0gZnJvbSAnLi4vbWlkZGxld2FyZS9zeXN0ZW0tb3JnLmpzJztcbmltcG9ydCB0eXBlIHsgSnd0UGF5bG9hZCB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbi5qcyc7XG5cbi8qKiBJbmJvdW5kIGNvcnJlbGF0aW9uIGlkcyBhIGNhbGxlciAoQ0xJLCBMYW1iZGEsIENvZGVCdWlsZCkgbWF5IGZvcndhcmQuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGl0Q29ycmVsYXRpb24ge1xuICAvKiogYFgtUGlwZWxpbmUtRXhlY3V0aW9uLUlkYCDigJQgdGhlIENvZGVQaXBlbGluZSBleGVjdXRpb24gdGhhdCBtYWRlIHRoZSBjYWxsLiAqL1xuICBwaXBlbGluZUV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICAvKiogYFgtQ29kZUJ1aWxkLUJ1aWxkLUlkYCDigJQgdGhlIENvZGVCdWlsZCBidWlsZCB0aGF0IG1hZGUgdGhlIGNhbGwuICovXG4gIGNvZGVidWlsZEJ1aWxkSWQ/OiBzdHJpbmc7XG4gIC8qKiBgWC1Tb3VyY2UtRXZlbnQtSWRgIOKAlCB0aGUgdXBzdHJlYW0gZXZlbnQgKEV2ZW50QnJpZGdlIC8gd2ViaG9vaykgYmVpbmcgaGFuZGxlZC4gKi9cbiAgc291cmNlRXZlbnRJZD86IHN0cmluZztcbiAgLyoqIGBYLVBiLUNsaWVudC1WZXJzaW9uYCDigJQgdGhlIHBpcGVsaW5lLW1hbmFnZXIgQ0xJIHZlcnNpb24gdGhhdCBtYWRlIHRoZSBjYWxsLiAqL1xuICBjbGllbnRWZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKiogQmFja2dyb3VuZC13b3JrIGlkZW50aXR5IGZvciBldmVudHMgcmVjb3JkZWQgb3V0c2lkZSBhbnkgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXVkaXRKb2JDb250ZXh0IHtcbiAgLyoqIFN0YWJsZSBqb2IgbmFtZSAoZS5nLiBgcmVnaXN0cnktZ2NgLCBgdnVsbi1yZXNjYW5gKS4gKi9cbiAgam9iSWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGlzIHJ1bidzIGlkIChhIEJ1bGxNUSBqb2IgaWQsIGEgc3dlZXAncyB1dWlkKS4gKi9cbiAgcnVuSWQ/OiBzdHJpbmc7XG4gIC8qKiBXaGF0IHN0YXJ0ZWQgaXQ6IGBzY2hlZHVsZWAsIGBxdWV1ZWAsIGBzdGFydHVwYCwgYG1hbnVhbGAsIOKApiAqL1xuICB0cmlnZ2VyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGl0Q29udGV4dCB7XG4gIHJlcXVlc3RJZD86IHN0cmluZztcbiAgdHJhY2VJZD86IHN0cmluZztcbiAgaXA/OiBzdHJpbmc7XG4gIHVzZXJBZ2VudD86IHN0cmluZztcbiAgY29ycmVsYXRpb24/OiBBdWRpdENvcnJlbGF0aW9uO1xuICBqb2I/OiBBdWRpdEpvYkNvbnRleHQ7XG4gIC8qKlxuICAgKiBUaGUgVkVSSUZJRUQgcHJpbmNpcGFsIG9mIHRoZSBpbmJvdW5kIHJlcXVlc3QuIEEgZ2V0dGVyLCBub3QgYSB2YWx1ZTogdGhlXG4gICAqIHNjb3BlIG9wZW5zIGJlZm9yZSBgcmVxdWlyZUF1dGhgIHJ1bnMsIHNvIGByZXEudXNlcmAgaXMgcmVhZCBhdCB0aGUgbW9tZW50XG4gICAqIGFuIGV2ZW50IGlzIHJlY29yZGVkLlxuICAgKi9cbiAgcHJpbmNpcGFsPzogKCkgPT4gSnd0UGF5bG9hZCB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBUaGUgY3JlZGVudGlhbCBiZWhpbmQgYW4gYXVkaXRlZCBhY3Rpb24g4oCUIHJlc2VydmVkIGBkZXRhaWxzLl9hdXRoYCwgc28gaXQgaXNcbiAqIGNvdmVyZWQgYnkgdGhlIGF1ZGl0IGhhc2ggY2hhaW4gKHdoaWNoIGhhc2hlcyBgZGV0YWlsc2ApLiBCdWlsdCBvbmx5IGZyb20gYVxuICogdmVyaWZpZWQgdG9rZW4sIG5ldmVyIGZyb20gY2FsbGVyIGlucHV0OyB0aGUgcmVtb3RlLWF1ZGl0IGNsaWVudCBvdmVyd3JpdGVzXG4gKiBhbnkgYF9hdXRoYCBhIGNhbGwgc2l0ZSBwdXQgaW4gYGRldGFpbHNgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1ZGl0QXV0aEJsb2NrIHtcbiAgcHJpbmNpcGFsVHlwZT86IHN0cmluZztcbiAgLyoqIFRoZSBpbnRlcm5hbCBzZXJ2aWNlLCB3aGVuIHRoZSBwcmluY2lwYWwgaXMgYSBzZXJ2aWNlIHRva2VuLiAqL1xuICBzZXJ2aWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJldm9jYWJsZSBjcmVkZW50aWFsOiB0aGUgYWNjZXNzIGtleSAoUEFUIC8gc2VydmljZS1hY2NvdW50IGtleSkgdGhlXG4gICAqIHRva2VuIGRlcml2ZXMgZnJvbSAoYHBhcmVudEtleUlkYCksIGVsc2UgdGhlIHRva2VuJ3Mgb3duIGBqdGlgIChhbiBleGNoYW5nZWRcbiAgICoga2V5IHRva2VuJ3Mga2V5IGlkLCBhbiBpbXBlcnNvbmF0aW9uIHNlc3Npb24gaWQsIGEgc2VydmljZSBtaW50IGlkKS5cbiAgICovXG4gIGtleUlkPzogc3RyaW5nO1xuICAvKiogUmVmcmVzaC1zZXNzaW9uIHNsb3QgdGhlIHRva2VuIHdhcyBtaW50ZWQgb24uICovXG4gIHNpZD86IHN0cmluZztcbiAgc2NvcGU/OiBzdHJpbmc7XG4gIHRva2VuVXNlPzogc3RyaW5nO1xuICAvKiogVGhlIHRva2VuJ3MgcGVybWlzc2lvbnMgd2VyZSBuYXJyb3dlZCB0byBhIHN1YnNldCBhdCBjcmVkZW50aWFsIGNyZWF0aW9uLiAqL1xuICBwZXJtaXNzaW9uc1Jlc3RyaWN0ZWQ/OiB0cnVlO1xuICAvKiogVGhlIHByaW5jaXBhbCBpcyBhIHBsYXRmb3JtIHN1cGVyYWRtaW4uICovXG4gIHN1cGVyQWRtaW4/OiB0cnVlO1xuICAvKipcbiAgICogVGhlIHByaW5jaXBhbCdzIGFjdGl2ZSBvcmcgaXMgdGhlIHN5c3RlbSBvcmcgKHZlbmRvciBzdGFmZiBhY3RpbmcgdGhyb3VnaCBhXG4gICAqIHN5c3RlbS1vcmcgam9iIFJvbGUpLiBXaXRoIGBzdXBlckFkbWluYCwgdGhpcyBpcyB3aGF0IGxldHMgdGhlIHJlbW90ZS1hdWRpdFxuICAgKiBjbGllbnQgY2xhaW0gYSBjcm9zcy1vcmcgYGFmZmVjdGVkT3JnSWRgIChzZWUgYGF1ZGl0Q3Jvc3NPcmdgKS5cbiAgICovXG4gIHN5c3RlbU9yZz86IHRydWU7XG59XG5cbmNvbnN0IHN0b3JhZ2UgPSBuZXcgQXN5bmNMb2NhbFN0b3JhZ2U8QXVkaXRDb250ZXh0PigpO1xuXG4vKipcbiAqIFJ1biBgZm5gIGluc2lkZSBhbiBhdWRpdC1jb250ZXh0IHNjb3BlLiBOZXN0ZWQgc2NvcGVzIE1FUkdFIG9udG8gdGhlIG91dGVyXG4gKiBvbmUgKGEgam9iIHN0YXJ0ZWQgaW5zaWRlIGEgcmVxdWVzdCBrZWVwcyB0aGUgcmVxdWVzdCdzIGlkKSwgd2l0aCB0aGUgaW5uZXJcbiAqIGZpZWxkcyB3aW5uaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuV2l0aEF1ZGl0Q29udGV4dDxUPihjdHg6IEF1ZGl0Q29udGV4dCwgZm46ICgpID0+IFQpOiBUIHtcbiAgY29uc3Qgb3V0ZXIgPSBzdG9yYWdlLmdldFN0b3JlKCk7XG4gIGNvbnN0IG1lcmdlZDogQXVkaXRDb250ZXh0ID0gb3V0ZXJcbiAgICA/IHsgLi4ub3V0ZXIsIC4uLmN0eCwgY29ycmVsYXRpb246IGN0eC5jb3JyZWxhdGlvbiA/PyBvdXRlci5jb3JyZWxhdGlvbiwgam9iOiBjdHguam9iID8geyAuLi5vdXRlci5qb2IsIC4uLmN0eC5qb2IgfSA6IG91dGVyLmpvYiB9XG4gICAgOiBjdHg7XG4gIHJldHVybiBzdG9yYWdlLnJ1bihtZXJnZWQsIGZuKTtcbn1cblxuLyoqIFRoZSBhY3RpdmUgYXVkaXQgY29udGV4dCwgb3IgdW5kZWZpbmVkIG91dHNpZGUgYW55IHNjb3BlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN1cnJlbnRBdWRpdENvbnRleHQoKTogQXVkaXRDb250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHN0b3JhZ2UuZ2V0U3RvcmUoKTtcbn1cblxuLyoqIEluYm91bmQgY29ycmVsYXRpb24gaGVhZGVycyByZWNvcmRlZCBpbnRvIHRoZSBhdWRpdCBjb250ZXh0LiAqL1xuZXhwb3J0IGNvbnN0IEFVRElUX0NPUlJFTEFUSU9OX0hFQURFUlMgPSB7XG4gIHBpcGVsaW5lRXhlY3V0aW9uSWQ6ICd4LXBpcGVsaW5lLWV4ZWN1dGlvbi1pZCcsXG4gIGNvZGVidWlsZEJ1aWxkSWQ6ICd4LWNvZGVidWlsZC1idWlsZC1pZCcsXG4gIHNvdXJjZUV2ZW50SWQ6ICd4LXNvdXJjZS1ldmVudC1pZCcsXG4gIGNsaWVudFZlcnNpb246ICd4LXBiLWNsaWVudC12ZXJzaW9uJyxcbn0gYXMgY29uc3Q7XG5cbi8qKiBNYXggbGVuZ3RoIG9mIGEgc3RvcmVkIGNvcnJlbGF0aW9uIGlkIC8gcmVxdWVzdCBpZC4gKi9cbmNvbnN0IE1BWF9DT1JSRUxBVElPTl9MRU4gPSAxMjg7XG4vKiogSWRzIGFyZSBvcGFxdWUgdG9rZW5zOiB1dWlkcywgYHByb2plY3Q6dXVpZGAgYnVpbGQgaWRzLCBVTElEcy4gTm90aGluZyBlbHNlIGlzIHN0b3JlZC4gKi9cbmNvbnN0IENPUlJFTEFUSU9OX0lEID0gL15bQS1aYS16MC05Ll86L0ArPS1dKyQvO1xuLyoqIEEgYmFyZSBBV1MgYWNjb3VudCBpZC4gKi9cbmNvbnN0IEJBUkVfQUNDT1VOVF9JRCA9IC9eXFxkezEyfSQvO1xuXG4vKiogTWF4IHN0b3JlZCBVc2VyLUFnZW50IGxlbmd0aCDigJQgYSBob3N0aWxlIGhlYWRlciBtdXN0IG5vdCBibG9hdCBhdWRpdCByb3dzLiAqL1xuY29uc3QgTUFYX1VTRVJfQUdFTlRfTEVOID0gNTEyO1xuLyoqIEMwICsgREVMICsgQzEgY29udHJvbCBjaGFyYWN0ZXJzLCByZXBsYWNlZCBzbyBhIFVBIGNhbid0IGluamVjdCBpbnRvIHRoZSBVSS9DU1YgZXhwb3J0LiAqL1xuY29uc3QgQ09OVFJPTF9DSEFSUyA9IG5ldyBSZWdFeHAoJ1tcXFxcdTAwMDAtXFxcXHUwMDFmXFxcXHUwMDdmLVxcXFx1MDA5Zl0nLCAnZycpO1xuXG5mdW5jdGlvbiBmaXJzdEhlYWRlcihyYXc6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmF3KSA/IHJhd1swXSA6IHJhdztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhbiBpbmJvdW5kIGNvcnJlbGF0aW9uIGlkIChgWC1SZXF1ZXN0LUlkYCwgYFgtQ29kZUJ1aWxkLUJ1aWxkLUlkYCwg4oCmKTpcbiAqIGEgYm91bmRlZCBvcGFxdWUgdG9rZW4sIGVsc2UgYHVuZGVmaW5lZGAg4oCUIGFuIGludmFsaWQgdmFsdWUgaXMgZHJvcHBlZCwgbmV2ZXJcbiAqIHRydW5jYXRlZCBpbnRvIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBkaWZmZXJlbnQgaWQuXG4gKlxuICogTm8gQVdTIGFjY291bnQgaWQgaXMgZXZlciBzdG9yZWQ6IGFuIEFSTiAoYSBDb2RlQnVpbGQgYnVpbGQgQVJOLCBzYXkpIGhhcyBpdHNcbiAqIGFjY291bnQgc2VnbWVudCBlbXB0aWVkLCBhbmQgYSBiYXJlIDEyLWRpZ2l0IHZhbHVlIGlzIHJlZnVzZWQuIFRoZSBnZW5lcmljXG4gKiAxMi1kaWdpdC1ydW4gc2NydWIgaXMgTk9UIHVzZWQgaGVyZSDigJQgaXQgd291bGQgcmVkYWN0IHRoZSBhbGwtZGlnaXQgZmluYWxcbiAqIGdyb3VwIG9mIHJvdWdobHkgb25lIHV1aWQgaW4gdGhyZWUgaHVuZHJlZCwgY29ycnVwdGluZyB0aGUgaWQgaXQgZXhpc3RzIHRvXG4gKiBjb3JyZWxhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUNvcnJlbGF0aW9uSWQocmF3OiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiByYXcgIT09ICdzdHJpbmcnKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCB2YWx1ZSA9IHJhdy50cmltKCk7XG4gIGlmICh2YWx1ZS5sZW5ndGggPT09IDAgfHwgdmFsdWUubGVuZ3RoID4gTUFYX0NPUlJFTEFUSU9OX0xFTiB8fCAhQ09SUkVMQVRJT05fSUQudGVzdCh2YWx1ZSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmIChCQVJFX0FDQ09VTlRfSUQudGVzdCh2YWx1ZSkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICgvXmFybjovaS50ZXN0KHZhbHVlKSkge1xuICAgIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoJzonKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID4gNCkgcGFydHNbNF0gPSAnJztcbiAgICByZXR1cm4gcGFydHMuam9pbignOicpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqIFN0cmlwIGNvbnRyb2wgY2hhcmFjdGVycyBmcm9tIGEgVXNlci1BZ2VudCBhbmQgY2FwIGl0cyBsZW5ndGg7IHVuZGVmaW5lZCB3aGVuIGVtcHR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplVXNlckFnZW50KHJhdzogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgcmF3ICE9PSAnc3RyaW5nJyB8fCByYXcubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBjbGVhbmVkID0gcmF3LnJlcGxhY2UoQ09OVFJPTF9DSEFSUywgJyAnKS50cmltKCk7XG4gIHJldHVybiBjbGVhbmVkLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IGNsZWFuZWQuc2xpY2UoMCwgTUFYX1VTRVJfQUdFTlRfTEVOKTtcbn1cblxuLyoqXG4gKiBUaGUgYXVkaXQgY29udGV4dCBmb3IgYW4gaW5ib3VuZCByZXF1ZXN0LiBgcmVxdWVzdElkYCBpcyB0aGUgaWQgdGhlXG4gKiByZXF1ZXN0LWlkIG1pZGRsZXdhcmUgcmVzb2x2ZWQgKHZhbGlkYXRlZCBpbmJvdW5kIGBYLVJlcXVlc3QtSWRgLCBlbHNlIGEgZnJlc2hcbiAqIHV1aWQpOyB0aGUgcHJpbmNpcGFsIGlzIHJlYWQgbGF6aWx5IGZyb20gYHJlcS51c2VyYCAoYXV0aCBydW5zIGxhdGVyIGluIHRoZVxuICogY2hhaW4pLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXVkaXRDb250ZXh0RnJvbVJlcXVlc3QocmVxOiBSZXF1ZXN0LCBpZHM6IHsgcmVxdWVzdElkPzogc3RyaW5nOyB0cmFjZUlkPzogc3RyaW5nIH0gPSB7fSk6IEF1ZGl0Q29udGV4dCB7XG4gIGNvbnN0IGNvcnJlbGF0aW9uOiBBdWRpdENvcnJlbGF0aW9uID0ge307XG4gIGZvciAoY29uc3QgW2ZpZWxkLCBoZWFkZXJdIG9mIE9iamVjdC5lbnRyaWVzKEFVRElUX0NPUlJFTEFUSU9OX0hFQURFUlMpIGFzIEFycmF5PFtrZXlvZiBBdWRpdENvcnJlbGF0aW9uLCBzdHJpbmddPikge1xuICAgIGNvbnN0IHZhbHVlID0gc2FuaXRpemVDb3JyZWxhdGlvbklkKGZpcnN0SGVhZGVyKHJlcS5oZWFkZXJzW2hlYWRlcl0pKTtcbiAgICBpZiAodmFsdWUpIGNvcnJlbGF0aW9uW2ZpZWxkXSA9IHZhbHVlO1xuICB9XG4gIHJldHVybiB7XG4gICAgcmVxdWVzdElkOiBpZHMucmVxdWVzdElkLFxuICAgIHRyYWNlSWQ6IGlkcy50cmFjZUlkLFxuICAgIGlwOiByZXEuaXAsXG4gICAgdXNlckFnZW50OiBzYW5pdGl6ZVVzZXJBZ2VudChmaXJzdEhlYWRlcihyZXEuaGVhZGVyc1sndXNlci1hZ2VudCddKSksXG4gICAgY29ycmVsYXRpb246IE9iamVjdC5rZXlzKGNvcnJlbGF0aW9uKS5sZW5ndGggPiAwID8gY29ycmVsYXRpb24gOiB1bmRlZmluZWQsXG4gICAgcHJpbmNpcGFsOiAoKSA9PiByZXEudXNlcixcbiAgfTtcbn1cblxuLyoqIFRoZSBgX2F1dGhgIGJsb2NrIGZvciBhIHZlcmlmaWVkIHByaW5jaXBhbCAodW5kZWZpbmVkIHdoZW4gdGhlcmUgaXMgbm9uZSkuICovXG5leHBvcnQgZnVuY3Rpb24gYXVkaXRBdXRoQmxvY2sodXNlcjogSnd0UGF5bG9hZCB8IHVuZGVmaW5lZCk6IEF1ZGl0QXV0aEJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF1c2VyKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBibG9jazogQXVkaXRBdXRoQmxvY2sgPSB7XG4gICAgcHJpbmNpcGFsVHlwZTogdXNlci5wcmluY2lwYWxUeXBlLFxuICAgIHNlcnZpY2U6IHNlcnZpY2VOYW1lT2YodXNlciksXG4gICAga2V5SWQ6IHVzZXIucGFyZW50S2V5SWQgPz8gdXNlci5qdGksXG4gICAgc2lkOiB1c2VyLnNpZCxcbiAgICBzY29wZTogdXNlci5zY29wZSxcbiAgICB0b2tlblVzZTogdXNlci50b2tlbl91c2UsXG4gICAgLi4uKHVzZXIucGVybWlzc2lvbnNSZXN0cmljdGVkID09PSB0cnVlID8geyBwZXJtaXNzaW9uc1Jlc3RyaWN0ZWQ6IHRydWUgYXMgY29uc3QgfSA6IHt9KSxcbiAgICAuLi4odXNlci5pc1N1cGVyQWRtaW4gPT09IHRydWUgPyB7IHN1cGVyQWRtaW46IHRydWUgYXMgY29uc3QgfSA6IHt9KSxcbiAgICAvLyBBIFNFUlZJQ0UgdG9rZW4gaW4gdGhlIHN5c3RlbSBvcmcgaXMgdGhlIHBsYXRmb3JtJ3Mgb3duIHBsdW1iaW5nLCBub3Qgc3RhZmZcbiAgICAvLyBhY3Rpbmcgb24gYSB0ZW5hbnQ7IG9ubHkgaHVtYW4gLyBzZXJ2aWNlLWFjY291bnQgcHJpbmNpcGFscyBjb3VudC5cbiAgICAuLi4odXNlci5wcmluY2lwYWxUeXBlICE9PSAnc2VydmljZScgJiYgaXNTeXN0ZW1PcmdJZCh1c2VyLm9yZ2FuaXphdGlvbklkKSA/IHsgc3lzdGVtT3JnOiB0cnVlIGFzIGNvbnN0IH0gOiB7fSksXG4gIH07XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJsb2NrKSBhcyBBcnJheTxrZXlvZiBBdWRpdEF1dGhCbG9jaz4pIHtcbiAgICBpZiAoYmxvY2tba2V5XSA9PT0gdW5kZWZpbmVkKSBkZWxldGUgYmxvY2tba2V5XTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmtleXMoYmxvY2spLmxlbmd0aCA+IDAgPyBibG9jayA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -49,6 +49,26 @@ export interface Scheduler {
49
49
  */
50
50
  stop(): void;
51
51
  }
52
+ /**
53
+ * Liveness gauges every scheduler publishes, labelled `{key}` (the lock key, or
54
+ * the scheduler's name when it has no lock). Together they let ONE alert rule
55
+ * cover every job at its own cadence — the interval is published rather than
56
+ * written into the rule, so a job whose interval an operator overrides through
57
+ * the environment is judged against the interval it actually runs at.
58
+ *
59
+ * - `scheduler_interval_seconds` — the configured interval, set on `start()`.
60
+ * - `scheduler_started_timestamp_seconds` — when `start()` ran, so a job that
61
+ * started but has NEVER succeeded on any pod still has something to age.
62
+ * - `scheduler_last_success_timestamp_seconds` — the end of the last cycle that
63
+ * actually ran the job and returned without throwing. Only the pod that held
64
+ * the lock publishes it; a contended or unavailable lock is not a success.
65
+ *
66
+ * The values live in process memory, so a restart drops the last success until
67
+ * the next cycle republishes it. Most jobs run on start, so the gap is minutes.
68
+ */
69
+ export declare const SCHEDULER_INTERVAL_METRIC = "scheduler_interval_seconds";
70
+ export declare const SCHEDULER_STARTED_METRIC = "scheduler_started_timestamp_seconds";
71
+ export declare const SCHEDULER_LAST_SUCCESS_METRIC = "scheduler_last_success_timestamp_seconds";
52
72
  /**
53
73
  * A periodic background job: a single unref'd `setInterval` with start-once
54
74
  * semantics, error isolation (a throwing cycle is logged, never crashes the
@@ -2,7 +2,28 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { acquireSharedEnvLock, releaseSharedEnvLock, withLeaderLock } from './leader-lock.js';
4
4
  import { createLogger } from '../utils/logger.js';
5
+ import { emitGauge } from '../utils/metric-emitter.js';
5
6
  import { errorMessage } from '../utils/response.js';
7
+ /**
8
+ * Liveness gauges every scheduler publishes, labelled `{key}` (the lock key, or
9
+ * the scheduler's name when it has no lock). Together they let ONE alert rule
10
+ * cover every job at its own cadence — the interval is published rather than
11
+ * written into the rule, so a job whose interval an operator overrides through
12
+ * the environment is judged against the interval it actually runs at.
13
+ *
14
+ * - `scheduler_interval_seconds` — the configured interval, set on `start()`.
15
+ * - `scheduler_started_timestamp_seconds` — when `start()` ran, so a job that
16
+ * started but has NEVER succeeded on any pod still has something to age.
17
+ * - `scheduler_last_success_timestamp_seconds` — the end of the last cycle that
18
+ * actually ran the job and returned without throwing. Only the pod that held
19
+ * the lock publishes it; a contended or unavailable lock is not a success.
20
+ *
21
+ * The values live in process memory, so a restart drops the last success until
22
+ * the next cycle republishes it. Most jobs run on start, so the gap is minutes.
23
+ */
24
+ export const SCHEDULER_INTERVAL_METRIC = 'scheduler_interval_seconds';
25
+ export const SCHEDULER_STARTED_METRIC = 'scheduler_started_timestamp_seconds';
26
+ export const SCHEDULER_LAST_SUCCESS_METRIC = 'scheduler_last_success_timestamp_seconds';
6
27
  /**
7
28
  * A periodic background job: a single unref'd `setInterval` with start-once
8
29
  * semantics, error isolation (a throwing cycle is logged, never crashes the
@@ -14,6 +35,7 @@ import { errorMessage } from '../utils/response.js';
14
35
  */
15
36
  export function createScheduler(opts) {
16
37
  const log = createLogger(opts.name);
38
+ const metricLabels = { key: opts.lock?.key ?? opts.name };
17
39
  let interval = null;
18
40
  let startup = null;
19
41
  let stopped = false;
@@ -25,6 +47,10 @@ export function createScheduler(opts) {
25
47
  let shutdown = new AbortController();
26
48
  /** The in-flight cycle, so `stop()` can wait for it before closing the client. */
27
49
  let inFlight = null;
50
+ /** A cycle that was cut short by `stop()` is not stamped: it did not finish. */
51
+ const stampSuccess = () => {
52
+ emitGauge(SCHEDULER_LAST_SUCCESS_METRIC, metricLabels, Date.now() / 1000);
53
+ };
28
54
  const cycle = async () => {
29
55
  // Same-pod re-entrancy guard: setInterval doesn't await the async cycle, so
30
56
  // a cycle slower than intervalMs would otherwise overlap ITSELF on this pod
@@ -45,11 +71,15 @@ export function createScheduler(opts) {
45
71
  const ran = await withLeaderLock(redis, opts.lock.key, opts.lock.ttlMs, opts.run, { signal });
46
72
  if (!ran)
47
73
  log.debug('Cycle skipped — another pod holds the lock');
74
+ else if (!signal.aborted)
75
+ stampSuccess();
48
76
  }
49
77
  else {
50
78
  // Unlocked: still give the job a signal, so `stop()` can cut a long cycle
51
79
  // short rather than waiting for it during shutdown.
52
80
  await opts.run({ signal });
81
+ if (!signal.aborted)
82
+ stampSuccess();
53
83
  }
54
84
  }
55
85
  catch (err) {
@@ -82,6 +112,8 @@ export function createScheduler(opts) {
82
112
  // one, and an already-aborted signal would make every cycle a no-op.
83
113
  if (shutdown.signal.aborted)
84
114
  shutdown = new AbortController();
115
+ emitGauge(SCHEDULER_INTERVAL_METRIC, metricLabels, opts.intervalMs / 1000);
116
+ emitGauge(SCHEDULER_STARTED_METRIC, metricLabels, Date.now() / 1000);
85
117
  if (opts.lock && !opts.lock.redis && !holdsEnvLock) {
86
118
  envLock = acquireSharedEnvLock();
87
119
  holdsEnvLock = true;
@@ -125,4 +157,4 @@ export function createScheduler(opts) {
125
157
  },
126
158
  };
127
159
  }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBc0MsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBdURwRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBc0I7SUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLFFBQVEsR0FBMEMsSUFBSSxDQUFDO0lBQzNELElBQUksT0FBTyxHQUF5QyxJQUFJLENBQUM7SUFDekQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQiwwRkFBMEY7SUFDMUYsSUFBSSxPQUFPLEdBQXFCLElBQUksQ0FBQztJQUNyQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDekIsa0ZBQWtGO0lBQ2xGLElBQUksUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDckMsa0ZBQWtGO0lBQ2xGLElBQUksUUFBUSxHQUF5QixJQUFJLENBQUM7SUFFMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFtQixFQUFFO1FBQ3RDLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLDhFQUE4RTtRQUM5RSxxQkFBcUI7UUFDckIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLEdBQUcsQ0FBQyxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztZQUNqRixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJ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QUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBhY3F1aXJlU2hhcmVkRW52TG9jaywgcmVsZWFzZVNoYXJlZEVudkxvY2ssIHdpdGhMZWFkZXJMb2NrLCB0eXBlIExlYWRlckxvY2tSdW4sIHR5cGUgTG9ja1JlZGlzIH0gZnJvbSAnLi9sZWFkZXItbG9jay5qcyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgZXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vdXRpbHMvcmVzcG9uc2UuanMnO1xuXG4vKipcbiAqIE9wdGlvbmFsIGNyb3NzLXBvZCBzaW5nbGUtcnVubmVyIGxvY2sgZm9yIGEgc2NoZWR1bGVyJ3MgY3ljbGUuIFdpdGhvdXRcbiAqIGByZWRpc2AgdGhlIHNjaGVkdWxlciB1c2VzIHRoZSBwcm9jZXNzJ3Mgc2hhcmVkIGVudi1jb25maWd1cmVkIGxvY2sgY2xpZW50XG4gKiAodGFrZW4gb24gYHN0YXJ0YCwgcmVsZWFzZWQgb24gYHN0b3BgKTsgd2hlbiBSZWRpcyBpc24ndCBjb25maWd1cmVkIHRoZSBjeWNsZVxuICogcnVucyBvbiBldmVyeSBwb2QsIHNvIHRoZSB3b3JrIGl0IHdyYXBzIG11c3Qgc3RheSBzYWZlIHRvIHJ1biBjb25jdXJyZW50bHkuXG4gKiBBIHN1cHBsaWVkIGByZWRpc2AgZmFjdG9yeSBpcyByZXNvbHZlZCBwZXIgY3ljbGUgKGUuZy4gYSBCdWxsTVEgY29ubmVjdGlvbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyTG9jayB7XG4gIGtleTogc3RyaW5nO1xuICB0dGxNczogbnVtYmVyO1xuICByZWRpcz86ICgpID0+IExvY2tSZWRpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXJPcHRpb25zIHtcbiAgLyoqIExvZyBsYWJlbCAoYWxzbyB0aGUgbG9nZ2VyIG5hbWUpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBJbnRlcnZhbCBiZXR3ZWVuIGN5Y2xlcyAobXMpLiAqL1xuICBpbnRlcnZhbE1zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgd29yayB0byBydW4gZWFjaCBjeWNsZS4gRXJyb3JzIGFyZSBjYXVnaHQgKyBsb2dnZWQsIG5ldmVyIHRocm93bi5cbiAgICpcbiAgICogYHJ1bi5zaWduYWxgIGlzIGFib3J0ZWQgd2hlbiBhIGxlYWRlci1sb2NrZWQgY3ljbGUgTE9TRVMgaXRzIGxvY2sgbWlkLXJ1biwgb3JcbiAgICogd2hlbiBgc3RvcCgpYCBpcyBjYWxsZWQuIEEgam9iIHRoYXQgaXRlcmF0ZXMgb3ZlciB1bml0cyBvZiB3b3JrIChvcmdzLCByZXBvcyxcbiAgICogZW50aXRpZXMpIG11c3QgY2hlY2sgaXQgYmV0d2VlbiB1bml0cyBhbmQgcmV0dXJuOiBwYXN0IGEgbG9jayBsb3NzIGFub3RoZXIgcG9kXG4gICAqIG1heSBiZSBkb2luZyB0aGUgc2FtZSB3b3JrLCBhbmQgb24gc2h1dGRvd24gcmV0dXJuaW5nIHByb21wdGx5IGlzIHdoYXRcbiAgICogcmVsZWFzZXMgdGhlIGxvY2sgaW5zdGVhZCBvZiBsZWF2aW5nIGl0IHRvIGV4cGlyZS4gVW5sb2NrZWQgc2NoZWR1bGVycyBnZXQgYVxuICAgKiBzaWduYWwgdG9vIOKAlCBpdCBmaXJlcyBvbiBgc3RvcCgpYCBvbmx5LlxuICAgKi9cbiAgcnVuOiAocnVuOiBMZWFkZXJMb2NrUnVuKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKiogUnVuIGEgY3ljbGUgaW1tZWRpYXRlbHkgd2hlbiBzdGFydGVkLiBEZWZhdWx0IHRydWUuICovXG4gIHJ1bk9uU3RhcnQ/OiBib29sZWFuO1xuICAvKiogRGVsYXkgYmVmb3JlIHRoZSBmaXJzdCBjeWNsZSAoYW5kIGJlZm9yZSB0aGUgaW50ZXJ2YWwgYmVnaW5zKSwgbXMuXG4gICAqICBEZWZhdWx0IDAuIExldHMgYSBzZXJ2aWNlIHdhaXQgZm9yIGRlcGVuZGVuY2llcyB0byBjb21lIHVwLiAqL1xuICBzdGFydHVwRGVsYXlNcz86IG51bWJlcjtcbiAgLyoqIFdoZW4gc2V0LCBlYWNoIGN5Y2xlIHJ1bnMgb25seSBvbiB0aGUgcG9kIHRoYXQgd2lucyB0aGlzIGxvY2sg4oCUIHNvIHdpdGhcbiAgICogIG11bHRpcGxlIHJlcGxpY2FzIG9ubHkgb25lIHJ1bnMgcGVyIHdpbmRvdy4gKi9cbiAgbG9jaz86IFNjaGVkdWxlckxvY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyIHtcbiAgLyoqIFN0YXJ0IHRoZSB0aW1lci4gSWRlbXBvdGVudCDigJQgcmVwZWF0ZWQgY2FsbHMgYXJlIG5vLW9wcy4gKi9cbiAgc3RhcnQoKTogdm9pZDtcbiAgLyoqXG4gICAqIFN0b3AgdGhlIHRpbWVyIChhbmQgY2FuY2VsIGEgcGVuZGluZyBzdGFydHVwIGRlbGF5KS4gU2FmZSBiZWZvcmUgc3RhcnQuXG4gICAqXG4gICAqIEFsc28gQUJPUlRTIGFuIGluLWZsaWdodCBjeWNsZSdzIGBydW4uc2lnbmFsYCBhbmQgZGVmZXJzIGNsb3NpbmcgdGhlIHNoYXJlZFxuICAgKiBsb2NrIGNsaWVudCB1bnRpbCB0aGF0IGN5Y2xlIHNldHRsZXM6IGEgcnVubmluZyBjeWNsZSB1c2VkIHRvIGtlZXAgaXRzIGxvY2tcbiAgICoga2V5IHVudGlsIHRoZSBUVEwgbGFwc2VkLCBzbyBhIHJvbGxpbmcgZGVwbG95IG1pZC1ydW4gcGFya2VkIHRoZSBqb2IgZm9yIHRoZVxuICAgKiByZXN0IG9mIHRoZSBUVEwuIEEgc2lnbmFsLWF3YXJlIGBydW5gIHJldHVybnMgYW5kIHRoZSBsb2NrIGlzIHJlbGVhc2VkLlxuICAgKi9cbiAgc3RvcCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgcGVyaW9kaWMgYmFja2dyb3VuZCBqb2I6IGEgc2luZ2xlIHVucmVmJ2QgYHNldEludGVydmFsYCB3aXRoIHN0YXJ0LW9uY2VcbiAqIHNlbWFudGljcywgZXJyb3IgaXNvbGF0aW9uIChhIHRocm93aW5nIGN5Y2xlIGlzIGxvZ2dlZCwgbmV2ZXIgY3Jhc2hlcyB0aGVcbiAqIGxvb3ApLCBhbiBvcHRpb25hbCBzdGFydHVwIGRlbGF5LCBhbmQgYW4gb3B0aW9uYWwgY3Jvc3MtcG9kIGxlYWRlciBsb2NrLlxuICpcbiAqIFJlcGxhY2VzIHRoZSBoYW5kLXJvbGxlZCB0aW1lci9gdW5yZWZgL2BjYXRjaGAvc3RhcnQtc3RvcCBib2lsZXJwbGF0ZSB0aGF0XG4gKiBlYWNoIHNjaGVkdWxlciAoc2NhbiwgZGlnZXN0LCByZWdpc3RyeSBHQywgYmlsbGluZyBsaWZlY3ljbGUpIHJlcGVhdGVkLCBhbmRcbiAqIG1ha2VzIHRoZSBsZWFkZXIgbG9jayBhdmFpbGFibGUgdG8gYWxsIG9mIHRoZW0gdW5pZm9ybWx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NoZWR1bGVyKG9wdHM6IFNjaGVkdWxlck9wdGlvbnMpOiBTY2hlZHVsZXIge1xuICBjb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIob3B0cy5uYW1lKTtcbiAgbGV0IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbDtcbiAgbGV0IHN0YXJ0dXA6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIGxldCBzdG9wcGVkID0gZmFsc2U7XG4gIGxldCBydW5uaW5nID0gZmFsc2U7XG4gIC8qKiBUaGUgc2hhcmVkIGVudiBjbGllbnQgdGhpcyBzY2hlZHVsZXIgaG9sZHMgYSByZWZlcmVuY2Ugb24gKG93bi1jbGllbnQgbG9ja3MgZG9uJ3QpLiAqL1xuICBsZXQgZW52TG9jazogTG9ja1JlZGlzIHwgbnVsbCA9IG51bGw7XG4gIGxldCBob2xkc0VudkxvY2sgPSBmYWxzZTtcbiAgLyoqIEFib3J0ZWQgYnkgYHN0b3AoKWAsIHNvIGFuIGluLWZsaWdodCBjeWNsZSBjYW4gcmV0dXJuIGFuZCByZWxlYXNlIGl0cyBsb2NrLiAqL1xuICBsZXQgc2h1dGRvd24gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIC8qKiBUaGUgaW4tZmxpZ2h0IGN5Y2xlLCBzbyBgc3RvcCgpYCBjYW4gd2FpdCBmb3IgaXQgYmVmb3JlIGNsb3NpbmcgdGhlIGNsaWVudC4gKi9cbiAgbGV0IGluRmxpZ2h0OiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3QgY3ljbGUgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy8gU2FtZS1wb2QgcmUtZW50cmFuY3kgZ3VhcmQ6IHNldEludGVydmFsIGRvZXNuJ3QgYXdhaXQgdGhlIGFzeW5jIGN5Y2xlLCBzb1xuICAgIC8vIGEgY3ljbGUgc2xvd2VyIHRoYW4gaW50ZXJ2YWxNcyB3b3VsZCBvdGhlcndpc2Ugb3ZlcmxhcCBJVFNFTEYgb24gdGhpcyBwb2RcbiAgICAvLyAoZG91YmxlLXByb2Nlc3NpbmcsIGR1cGxpY2F0ZSBzaWRlIGVmZmVjdHMpLiBUaGUgb3B0aW9uYWwgbGVhZGVyIGxvY2sgb25seVxuICAgIC8vIGd1YXJkcyBDUk9TUy1wb2Qgb3ZlcmxhcDsgdGhpcyBndWFyZHMgc2FtZS1wb2QuIEEgc2tpcHBlZCB0aWNrIGp1c3QgcnVucyBvblxuICAgIC8vIHRoZSBuZXh0IGludGVydmFsLlxuICAgIGlmIChydW5uaW5nKSB7XG4gICAgICBsb2cuZGVidWcoJ0N5Y2xlIHNraXBwZWQg4oCUIHByZXZpb3VzIGN5Y2xlIHN0aWxsIHJ1bm5pbmcgKHNhbWUtcG9kIHJlLWVudHJhbmN5KScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBydW5uaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBzaWduYWwgPSBzaHV0ZG93bi5zaWduYWw7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZGlzID0gb3B0cy5sb2NrID8gKG9wdHMubG9jay5yZWRpcyA/IG9wdHMubG9jay5yZWRpcygpIDogZW52TG9jaykgOiBudWxsO1xuICAgICAgaWYgKG9wdHMubG9jayAmJiByZWRpcykge1xuICAgICAgICAvLyB3aXRoTGVhZGVyTG9jayBtZXJnZXMgYHNpZ25hbGAgaW50byB0aGUgcnVuJ3Mgb3duLCBzbyBgcnVuYCBzZWVzIGEgc2luZ2xlXG4gICAgICAgIC8vIHNpZ25hbCBmb3IgYm90aCBcImxvY2sgbG9zdFwiIGFuZCBcInNodXR0aW5nIGRvd25cIi5cbiAgICAgICAgY29uc3QgcmFuID0gYXdhaXQgd2l0aExlYWRlckxvY2socmVkaXMsIG9wdHMubG9jay5rZXksIG9wdHMubG9jay50dGxNcywgb3B0cy5ydW4sIHsgc2lnbmFsIH0pO1xuICAgICAgICBpZiAoIXJhbikgbG9nLmRlYnVnKCdDeWNsZSBza2lwcGVkIOKAlCBhbm90aGVyIHBvZCBob2xkcyB0aGUgbG9jaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVW5sb2NrZWQ6IHN0aWxsIGdpdmUgdGhlIGpvYiBhIHNpZ25hbCwgc28gYHN0b3AoKWAgY2FuIGN1dCBhIGxvbmcgY3ljbGVcbiAgICAgICAgLy8gc2hvcnQgcmF0aGVyIHRoYW4gd2FpdGluZyBmb3IgaXQgZHVyaW5nIHNodXRkb3duLlxuICAgICAgICBhd2FpdCBvcHRzLnJ1bih7IHNpZ25hbCB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5lcnJvcignU2NoZWR1bGVyIGN5Y2xlIGZhaWxlZCcsIHsgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBydW5uaW5nID0gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBSdW4gYSBjeWNsZSBhbmQgcHVibGlzaCBpdCBhcyBgaW5GbGlnaHRgIHNvIGBzdG9wKClgIGNhbiBhd2FpdCBpdC4gKi9cbiAgY29uc3QgcnVuQ3ljbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgcCA9IGN5Y2xlKCkuZmluYWxseSgoKSA9PiB7IGlmIChpbkZsaWdodCA9PT0gcCkgaW5GbGlnaHQgPSBudWxsOyB9KTtcbiAgICBpbkZsaWdodCA9IHA7XG4gIH07XG5cbiAgY29uc3QgYmVnaW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHN0b3BwZWQpIHJldHVybjsgLy8gc3RvcCgpIGNhbGxlZCBkdXJpbmcgdGhlIHN0YXJ0dXAgZGVsYXlcbiAgICBpZiAob3B0cy5ydW5PblN0YXJ0ICE9PSBmYWxzZSkgcnVuQ3ljbGUoKTtcbiAgICBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHJ1bkN5Y2xlKCksIG9wdHMuaW50ZXJ2YWxNcyk7XG4gICAgaW50ZXJ2YWwudW5yZWYoKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgaWYgKGludGVydmFsIHx8IHN0YXJ0dXApIHJldHVybjtcbiAgICAgIHN0b3BwZWQgPSBmYWxzZTtcbiAgICAgIC8vIEEgcmVzdGFydCBuZWVkcyBhIGZyZXNoIGNvbnRyb2xsZXI6IHRoZSBwcmV2aW91cyBzdG9wKCkgYWJvcnRlZCB0aGUgb2xkXG4gICAgICAvLyBvbmUsIGFuZCBhbiBhbHJlYWR5LWFib3J0ZWQgc2lnbmFsIHdvdWxkIG1ha2UgZXZlcnkgY3ljbGUgYSBuby1vcC5cbiAgICAgIGlmIChzaHV0ZG93bi5zaWduYWwuYWJvcnRlZCkgc2h1dGRvd24gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBpZiAob3B0cy5sb2NrICYmICFvcHRzLmxvY2sucmVkaXMgJiYgIWhvbGRzRW52TG9jaykge1xuICAgICAgICBlbnZMb2NrID0gYWNxdWlyZVNoYXJlZEVudkxvY2soKTtcbiAgICAgICAgaG9sZHNFbnZMb2NrID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0YXJ0dXBEZWxheU1zICYmIG9wdHMuc3RhcnR1cERlbGF5TXMgPiAwKSB7XG4gICAgICAgIHN0YXJ0dXAgPSBzZXRUaW1lb3V0KCgpID0+IHsgc3RhcnR1cCA9IG51bGw7IGJlZ2luKCk7IH0sIG9wdHMuc3RhcnR1cERlbGF5TXMpO1xuICAgICAgICBzdGFydHVwLnVucmVmKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZWdpbigpO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8oJ1NjaGVkdWxlciBzdGFydGVkJywgeyBpbnRlcnZhbE1zOiBvcHRzLmludGVydmFsTXMsIGxvY2tlZDogISFvcHRzLmxvY2sgJiYgKCEhb3B0cy5sb2NrLnJlZGlzIHx8ICEhZW52TG9jaykgfSk7XG4gICAgfSxcbiAgICBzdG9wKCk6IHZvaWQge1xuICAgICAgc3RvcHBlZCA9IHRydWU7XG4gICAgICBpZiAoc3RhcnR1cCkgeyBjbGVhclRpbWVvdXQoc3RhcnR1cCk7IHN0YXJ0dXAgPSBudWxsOyB9XG4gICAgICBpZiAoaW50ZXJ2YWwpIHsgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7IGludGVydmFsID0gbnVsbDsgfVxuICAgICAgLy8gQXNrIGFuIGluLWZsaWdodCBjeWNsZSB0byB3aW5kIHVwLiBBIHNpZ25hbC1hd2FyZSBgcnVuYCByZXR1cm5zIGJldHdlZW5cbiAgICAgIC8vIHVuaXRzIG9mIHdvcmssIHdoaWNoIGxldHMgd2l0aExlYWRlckxvY2sncyBgZmluYWxseWAgUkVMRUFTRSB0aGUgbG9jayDigJRcbiAgICAgIC8vIG90aGVyd2lzZSB0aGUga2V5IHNhdCB0aGVyZSB1bnRpbCB0aGUgVFRMIGxhcHNlZCBhbmQgdGhlIGpvYiB3YXMgcGFya2VkXG4gICAgICAvLyBmbGVldC13aWRlIGZvciB0aGF0IGxvbmcgYWZ0ZXIgZXZlcnkgcm9sbGluZyBkZXBsb3kuXG4gICAgICBpZiAoIXNodXRkb3duLnNpZ25hbC5hYm9ydGVkKSBzaHV0ZG93bi5hYm9ydCgnc2h1dGRvd24nKTtcbiAgICAgIGlmIChob2xkc0VudkxvY2spIHtcbiAgICAgICAgaG9sZHNFbnZMb2NrID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHBlbmRpbmcgPSBpbkZsaWdodDtcbiAgICAgICAgZW52TG9jayA9IG51bGw7XG4gICAgICAgIC8vIENsb3NpbmcgdGhlIGNsaWVudCB1bmRlciBhIHJ1bm5pbmcgY3ljbGUga2lsbHMgaXRzIGhlYXJ0YmVhdCBhbmQgaXRzXG4gICAgICAgIC8vIHJlbGVhc2UsIHNvIHdhaXQgZm9yIHRoZSBjeWNsZSB0byBzZXR0bGUgZmlyc3QuIEJvdW5kZWQgYnkgdGhlIGN5Y2xlXG4gICAgICAgIC8vIGl0c2VsZiwgd2hpY2ggaXMgbm93IGJlaW5nIGFza2VkIHRvIHN0b3AuXG4gICAgICAgIHZvaWQgKHBlbmRpbmcgPyBwZW5kaW5nLmNhdGNoKCgpID0+IHVuZGVmaW5lZCkgOiBQcm9taXNlLnJlc29sdmUoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiByZWxlYXNlU2hhcmVkRW52TG9jaygpKTtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdTY2hlZHVsZXIgc3RvcHBlZCcpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBc0MsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXVEcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyw0QkFBNEIsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxxQ0FBcUMsQ0FBQztBQUM5RSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywwQ0FBMEMsQ0FBQztBQUV4Rjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBc0I7SUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLFlBQVksR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUQsSUFBSSxRQUFRLEdBQTBDLElBQUksQ0FBQztJQUMzRCxJQUFJLE9BQU8sR0FBeUMsSUFBSSxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsMEZBQTBGO0lBQzFGLElBQUksT0FBTyxHQUFxQixJQUFJLENBQUM7SUFDckMsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLGtGQUFrRjtJ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Z2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGFjcXVpcmVTaGFyZWRFbnZMb2NrLCByZWxlYXNlU2hhcmVkRW52TG9jaywgd2l0aExlYWRlckxvY2ssIHR5cGUgTGVhZGVyTG9ja1J1biwgdHlwZSBMb2NrUmVkaXMgfSBmcm9tICcuL2xlYWRlci1sb2NrLmpzJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBlbWl0R2F1Z2UgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS5qcyc7XG5cbi8qKlxuICogT3B0aW9uYWwgY3Jvc3MtcG9kIHNpbmdsZS1ydW5uZXIgbG9jayBmb3IgYSBzY2hlZHVsZXIncyBjeWNsZS4gV2l0aG91dFxuICogYHJlZGlzYCB0aGUgc2NoZWR1bGVyIHVzZXMgdGhlIHByb2Nlc3MncyBzaGFyZWQgZW52LWNvbmZpZ3VyZWQgbG9jayBjbGllbnRcbiAqICh0YWtlbiBvbiBgc3RhcnRgLCByZWxlYXNlZCBvbiBgc3RvcGApOyB3aGVuIFJlZGlzIGlzbid0IGNvbmZpZ3VyZWQgdGhlIGN5Y2xlXG4gKiBydW5zIG9uIGV2ZXJ5IHBvZCwgc28gdGhlIHdvcmsgaXQgd3JhcHMgbXVzdCBzdGF5IHNhZmUgdG8gcnVuIGNvbmN1cnJlbnRseS5cbiAqIEEgc3VwcGxpZWQgYHJlZGlzYCBmYWN0b3J5IGlzIHJlc29sdmVkIHBlciBjeWNsZSAoZS5nLiBhIEJ1bGxNUSBjb25uZWN0aW9uKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXJMb2NrIHtcbiAga2V5OiBzdHJpbmc7XG4gIHR0bE1zOiBudW1iZXI7XG4gIHJlZGlzPzogKCkgPT4gTG9ja1JlZGlzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlck9wdGlvbnMge1xuICAvKiogTG9nIGxhYmVsIChhbHNvIHRoZSBsb2dnZXIgbmFtZSkuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIEludGVydmFsIGJldHdlZW4gY3ljbGVzIChtcykuICovXG4gIGludGVydmFsTXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSB3b3JrIHRvIHJ1biBlYWNoIGN5Y2xlLiBFcnJvcnMgYXJlIGNhdWdodCArIGxvZ2dlZCwgbmV2ZXIgdGhyb3duLlxuICAgKlxuICAgKiBgcnVuLnNpZ25hbGAgaXMgYWJvcnRlZCB3aGVuIGEgbGVhZGVyLWxvY2tlZCBjeWNsZSBMT1NFUyBpdHMgbG9jayBtaWQtcnVuLCBvclxuICAgKiB3aGVuIGBzdG9wKClgIGlzIGNhbGxlZC4gQSBqb2IgdGhhdCBpdGVyYXRlcyBvdmVyIHVuaXRzIG9mIHdvcmsgKG9yZ3MsIHJlcG9zLFxuICAgKiBlbnRpdGllcykgbXVzdCBjaGVjayBpdCBiZXR3ZWVuIHVuaXRzIGFuZCByZXR1cm46IHBhc3QgYSBsb2NrIGxvc3MgYW5vdGhlciBwb2RcbiAgICogbWF5IGJlIGRvaW5nIHRoZSBzYW1lIHdvcmssIGFuZCBvbiBzaHV0ZG93biByZXR1cm5pbmcgcHJvbXB0bHkgaXMgd2hhdFxuICAgKiByZWxlYXNlcyB0aGUgbG9jayBpbnN0ZWFkIG9mIGxlYXZpbmcgaXQgdG8gZXhwaXJlLiBVbmxvY2tlZCBzY2hlZHVsZXJzIGdldCBhXG4gICAqIHNpZ25hbCB0b28g4oCUIGl0IGZpcmVzIG9uIGBzdG9wKClgIG9ubHkuXG4gICAqL1xuICBydW46IChydW46IExlYWRlckxvY2tSdW4pID0+IFByb21pc2U8dm9pZD47XG4gIC8qKiBSdW4gYSBjeWNsZSBpbW1lZGlhdGVseSB3aGVuIHN0YXJ0ZWQuIERlZmF1bHQgdHJ1ZS4gKi9cbiAgcnVuT25TdGFydD86IGJvb2xlYW47XG4gIC8qKiBEZWxheSBiZWZvcmUgdGhlIGZpcnN0IGN5Y2xlIChhbmQgYmVmb3JlIHRoZSBpbnRlcnZhbCBiZWdpbnMpLCBtcy5cbiAgICogIERlZmF1bHQgMC4gTGV0cyBhIHNlcnZpY2Ugd2FpdCBmb3IgZGVwZW5kZW5jaWVzIHRvIGNvbWUgdXAuICovXG4gIHN0YXJ0dXBEZWxheU1zPzogbnVtYmVyO1xuICAvKiogV2hlbiBzZXQsIGVhY2ggY3ljbGUgcnVucyBvbmx5IG9uIHRoZSBwb2QgdGhhdCB3aW5zIHRoaXMgbG9jayDigJQgc28gd2l0aFxuICAgKiAgbXVsdGlwbGUgcmVwbGljYXMgb25seSBvbmUgcnVucyBwZXIgd2luZG93LiAqL1xuICBsb2NrPzogU2NoZWR1bGVyTG9jaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXIge1xuICAvKiogU3RhcnQgdGhlIHRpbWVyLiBJZGVtcG90ZW50IOKAlCByZXBlYXRlZCBjYWxscyBhcmUgbm8tb3BzLiAqL1xuICBzdGFydCgpOiB2b2lkO1xuICAvKipcbiAgICogU3RvcCB0aGUgdGltZXIgKGFuZCBjYW5jZWwgYSBwZW5kaW5nIHN0YXJ0dXAgZGVsYXkpLiBTYWZlIGJlZm9yZSBzdGFydC5cbiAgICpcbiAgICogQWxzbyBBQk9SVFMgYW4gaW4tZmxpZ2h0IGN5Y2xlJ3MgYHJ1bi5zaWduYWxgIGFuZCBkZWZlcnMgY2xvc2luZyB0aGUgc2hhcmVkXG4gICAqIGxvY2sgY2xpZW50IHVudGlsIHRoYXQgY3ljbGUgc2V0dGxlczogYSBydW5uaW5nIGN5Y2xlIHVzZWQgdG8ga2VlcCBpdHMgbG9ja1xuICAgKiBrZXkgdW50aWwgdGhlIFRUTCBsYXBzZWQsIHNvIGEgcm9sbGluZyBkZXBsb3kgbWlkLXJ1biBwYXJrZWQgdGhlIGpvYiBmb3IgdGhlXG4gICAqIHJlc3Qgb2YgdGhlIFRUTC4gQSBzaWduYWwtYXdhcmUgYHJ1bmAgcmV0dXJucyBhbmQgdGhlIGxvY2sgaXMgcmVsZWFzZWQuXG4gICAqL1xuICBzdG9wKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogTGl2ZW5lc3MgZ2F1Z2VzIGV2ZXJ5IHNjaGVkdWxlciBwdWJsaXNoZXMsIGxhYmVsbGVkIGB7a2V5fWAgKHRoZSBsb2NrIGtleSwgb3JcbiAqIHRoZSBzY2hlZHVsZXIncyBuYW1lIHdoZW4gaXQgaGFzIG5vIGxvY2spLiBUb2dldGhlciB0aGV5IGxldCBPTkUgYWxlcnQgcnVsZVxuICogY292ZXIgZXZlcnkgam9iIGF0IGl0cyBvd24gY2FkZW5jZSDigJQgdGhlIGludGVydmFsIGlzIHB1Ymxpc2hlZCByYXRoZXIgdGhhblxuICogd3JpdHRlbiBpbnRvIHRoZSBydWxlLCBzbyBhIGpvYiB3aG9zZSBpbnRlcnZhbCBhbiBvcGVyYXRvciBvdmVycmlkZXMgdGhyb3VnaFxuICogdGhlIGVudmlyb25tZW50IGlzIGp1ZGdlZCBhZ2FpbnN0IHRoZSBpbnRlcnZhbCBpdCBhY3R1YWxseSBydW5zIGF0LlxuICpcbiAqIC0gYHNjaGVkdWxlcl9pbnRlcnZhbF9zZWNvbmRzYCDigJQgdGhlIGNvbmZpZ3VyZWQgaW50ZXJ2YWwsIHNldCBvbiBgc3RhcnQoKWAuXG4gKiAtIGBzY2hlZHVsZXJfc3RhcnRlZF90aW1lc3RhbXBfc2Vjb25kc2Ag4oCUIHdoZW4gYHN0YXJ0KClgIHJhbiwgc28gYSBqb2IgdGhhdFxuICogICBzdGFydGVkIGJ1dCBoYXMgTkVWRVIgc3VjY2VlZGVkIG9uIGFueSBwb2Qgc3RpbGwgaGFzIHNvbWV0aGluZyB0byBhZ2UuXG4gKiAtIGBzY2hlZHVsZXJfbGFzdF9zdWNjZXNzX3RpbWVzdGFtcF9zZWNvbmRzYCDigJQgdGhlIGVuZCBvZiB0aGUgbGFzdCBjeWNsZSB0aGF0XG4gKiAgIGFjdHVhbGx5IHJhbiB0aGUgam9iIGFuZCByZXR1cm5lZCB3aXRob3V0IHRocm93aW5nLiBPbmx5IHRoZSBwb2QgdGhhdCBoZWxkXG4gKiAgIHRoZSBsb2NrIHB1Ymxpc2hlcyBpdDsgYSBjb250ZW5kZWQgb3IgdW5hdmFpbGFibGUgbG9jayBpcyBub3QgYSBzdWNjZXNzLlxuICpcbiAqIFRoZSB2YWx1ZXMgbGl2ZSBpbiBwcm9jZXNzIG1lbW9yeSwgc28gYSByZXN0YXJ0IGRyb3BzIHRoZSBsYXN0IHN1Y2Nlc3MgdW50aWxcbiAqIHRoZSBuZXh0IGN5Y2xlIHJlcHVibGlzaGVzIGl0LiBNb3N0IGpvYnMgcnVuIG9uIHN0YXJ0LCBzbyB0aGUgZ2FwIGlzIG1pbnV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ0hFRFVMRVJfSU5URVJWQUxfTUVUUklDID0gJ3NjaGVkdWxlcl9pbnRlcnZhbF9zZWNvbmRzJztcbmV4cG9ydCBjb25zdCBTQ0hFRFVMRVJfU1RBUlRFRF9NRVRSSUMgPSAnc2NoZWR1bGVyX3N0YXJ0ZWRfdGltZXN0YW1wX3NlY29uZHMnO1xuZXhwb3J0IGNvbnN0IFNDSEVEVUxFUl9MQVNUX1NVQ0NFU1NfTUVUUklDID0gJ3NjaGVkdWxlcl9sYXN0X3N1Y2Nlc3NfdGltZXN0YW1wX3NlY29uZHMnO1xuXG4vKipcbiAqIEEgcGVyaW9kaWMgYmFja2dyb3VuZCBqb2I6IGEgc2luZ2xlIHVucmVmJ2QgYHNldEludGVydmFsYCB3aXRoIHN0YXJ0LW9uY2VcbiAqIHNlbWFudGljcywgZXJyb3IgaXNvbGF0aW9uIChhIHRocm93aW5nIGN5Y2xlIGlzIGxvZ2dlZCwgbmV2ZXIgY3Jhc2hlcyB0aGVcbiAqIGxvb3ApLCBhbiBvcHRpb25hbCBzdGFydHVwIGRlbGF5LCBhbmQgYW4gb3B0aW9uYWwgY3Jvc3MtcG9kIGxlYWRlciBsb2NrLlxuICpcbiAqIFJlcGxhY2VzIHRoZSBoYW5kLXJvbGxlZCB0aW1lci9gdW5yZWZgL2BjYXRjaGAvc3RhcnQtc3RvcCBib2lsZXJwbGF0ZSB0aGF0XG4gKiBlYWNoIHNjaGVkdWxlciAoc2NhbiwgZGlnZXN0LCByZWdpc3RyeSBHQywgYmlsbGluZyBsaWZlY3ljbGUpIHJlcGVhdGVkLCBhbmRcbiAqIG1ha2VzIHRoZSBsZWFkZXIgbG9jayBhdmFpbGFibGUgdG8gYWxsIG9mIHRoZW0gdW5pZm9ybWx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NoZWR1bGVyKG9wdHM6IFNjaGVkdWxlck9wdGlvbnMpOiBTY2hlZHVsZXIge1xuICBjb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIob3B0cy5uYW1lKTtcbiAgY29uc3QgbWV0cmljTGFiZWxzID0geyBrZXk6IG9wdHMubG9jaz8ua2V5ID8/IG9wdHMubmFtZSB9O1xuICBsZXQgaW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IG51bGwgPSBudWxsO1xuICBsZXQgc3RhcnR1cDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgbGV0IHN0b3BwZWQgPSBmYWxzZTtcbiAgbGV0IHJ1bm5pbmcgPSBmYWxzZTtcbiAgLyoqIFRoZSBzaGFyZWQgZW52IGNsaWVudCB0aGlzIHNjaGVkdWxlciBob2xkcyBhIHJlZmVyZW5jZSBvbiAob3duLWNsaWVudCBsb2NrcyBkb24ndCkuICovXG4gIGxldCBlbnZMb2NrOiBMb2NrUmVkaXMgfCBudWxsID0gbnVsbDtcbiAgbGV0IGhvbGRzRW52TG9jayA9IGZhbHNlO1xuICAvKiogQWJvcnRlZCBieSBgc3RvcCgpYCwgc28gYW4gaW4tZmxpZ2h0IGN5Y2xlIGNhbiByZXR1cm4gYW5kIHJlbGVhc2UgaXRzIGxvY2suICovXG4gIGxldCBzaHV0ZG93biA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgLyoqIFRoZSBpbi1mbGlnaHQgY3ljbGUsIHNvIGBzdG9wKClgIGNhbiB3YWl0IGZvciBpdCBiZWZvcmUgY2xvc2luZyB0aGUgY2xpZW50LiAqL1xuICBsZXQgaW5GbGlnaHQ6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICAvKiogQSBjeWNsZSB0aGF0IHdhcyBjdXQgc2hvcnQgYnkgYHN0b3AoKWAgaXMgbm90IHN0YW1wZWQ6IGl0IGRpZCBub3QgZmluaXNoLiAqL1xuICBjb25zdCBzdGFtcFN1Y2Nlc3MgPSAoKTogdm9pZCA9PiB7XG4gICAgZW1pdEdhdWdlKFNDSEVEVUxFUl9MQVNUX1NVQ0NFU1NfTUVUUklDLCBtZXRyaWNMYWJlbHMsIERhdGUubm93KCkgLyAxMDAwKTtcbiAgfTtcblxuICBjb25zdCBjeWNsZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAvLyBTYW1lLXBvZCByZS1lbnRyYW5jeSBndWFyZDogc2V0SW50ZXJ2YWwgZG9lc24ndCBhd2FpdCB0aGUgYXN5bmMgY3ljbGUsIHNvXG4gICAgLy8gYSBjeWNsZSBzbG93ZXIgdGhhbiBpbnRlcnZhbE1zIHdvdWxkIG90aGVyd2lzZSBvdmVybGFwIElUU0VMRiBvbiB0aGlzIHBvZFxuICAgIC8vIChkb3VibGUtcHJvY2Vzc2luZywgZHVwbGljYXRlIHNpZGUgZWZmZWN0cykuIFRoZSBvcHRpb25hbCBsZWFkZXIgbG9jayBvbmx5XG4gICAgLy8gZ3VhcmRzIENST1NTLXBvZCBvdmVybGFwOyB0aGlzIGd1YXJkcyBzYW1lLXBvZC4gQSBza2lwcGVkIHRpY2sganVzdCBydW5zIG9uXG4gICAgLy8gdGhlIG5leHQgaW50ZXJ2YWwuXG4gICAgaWYgKHJ1bm5pbmcpIHtcbiAgICAgIGxvZy5kZWJ1ZygnQ3ljbGUgc2tpcHBlZCDigJQgcHJldmlvdXMgY3ljbGUgc3RpbGwgcnVubmluZyAoc2FtZS1wb2QgcmUtZW50cmFuY3kpJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJ1bm5pbmcgPSB0cnVlO1xuICAgIGNvbnN0IHNpZ25hbCA9IHNodXRkb3duLnNpZ25hbDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVkaXMgPSBvcHRzLmxvY2sgPyAob3B0cy5sb2NrLnJlZGlzID8gb3B0cy5sb2NrLnJlZGlzKCkgOiBlbnZMb2NrKSA6IG51bGw7XG4gICAgICBpZiAob3B0cy5sb2NrICYmIHJlZGlzKSB7XG4gICAgICAgIC8vIHdpdGhMZWFkZXJMb2NrIG1lcmdlcyBgc2lnbmFsYCBpbnRvIHRoZSBydW4ncyBvd24sIHNvIGBydW5gIHNlZXMgYSBzaW5nbGVcbiAgICAgICAgLy8gc2lnbmFsIGZvciBib3RoIFwibG9jayBsb3N0XCIgYW5kIFwic2h1dHRpbmcgZG93blwiLlxuICAgICAgICBjb25zdCByYW4gPSBhd2FpdCB3aXRoTGVhZGVyTG9jayhyZWRpcywgb3B0cy5sb2NrLmtleSwgb3B0cy5sb2NrLnR0bE1zLCBvcHRzLnJ1biwgeyBzaWduYWwgfSk7XG4gICAgICAgIGlmICghcmFuKSBsb2cuZGVidWcoJ0N5Y2xlIHNraXBwZWQg4oCUIGFub3RoZXIgcG9kIGhvbGRzIHRoZSBsb2NrJyk7XG4gICAgICAgIGVsc2UgaWYgKCFzaWduYWwuYWJvcnRlZCkgc3RhbXBTdWNjZXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVbmxvY2tlZDogc3RpbGwgZ2l2ZSB0aGUgam9iIGEgc2lnbmFsLCBzbyBgc3RvcCgpYCBjYW4gY3V0IGEgbG9uZyBjeWNsZVxuICAgICAgICAvLyBzaG9ydCByYXRoZXIgdGhhbiB3YWl0aW5nIGZvciBpdCBkdXJpbmcgc2h1dGRvd24uXG4gICAgICAgIGF3YWl0IG9wdHMucnVuKHsgc2lnbmFsIH0pO1xuICAgICAgICBpZiAoIXNpZ25hbC5hYm9ydGVkKSBzdGFtcFN1Y2Nlc3MoKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5lcnJvcignU2NoZWR1bGVyIGN5Y2xlIGZhaWxlZCcsIHsgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBydW5uaW5nID0gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBSdW4gYSBjeWNsZSBhbmQgcHVibGlzaCBpdCBhcyBgaW5GbGlnaHRgIHNvIGBzdG9wKClgIGNhbiBhd2FpdCBpdC4gKi9cbiAgY29uc3QgcnVuQ3ljbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgcCA9IGN5Y2xlKCkuZmluYWxseSgoKSA9PiB7IGlmIChpbkZsaWdodCA9PT0gcCkgaW5GbGlnaHQgPSBudWxsOyB9KTtcbiAgICBpbkZsaWdodCA9IHA7XG4gIH07XG5cbiAgY29uc3QgYmVnaW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHN0b3BwZWQpIHJldHVybjsgLy8gc3RvcCgpIGNhbGxlZCBkdXJpbmcgdGhlIHN0YXJ0dXAgZGVsYXlcbiAgICBpZiAob3B0cy5ydW5PblN0YXJ0ICE9PSBmYWxzZSkgcnVuQ3ljbGUoKTtcbiAgICBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHJ1bkN5Y2xlKCksIG9wdHMuaW50ZXJ2YWxNcyk7XG4gICAgaW50ZXJ2YWwudW5yZWYoKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgaWYgKGludGVydmFsIHx8IHN0YXJ0dXApIHJldHVybjtcbiAgICAgIHN0b3BwZWQgPSBmYWxzZTtcbiAgICAgIC8vIEEgcmVzdGFydCBuZWVkcyBhIGZyZXNoIGNvbnRyb2xsZXI6IHRoZSBwcmV2aW91cyBzdG9wKCkgYWJvcnRlZCB0aGUgb2xkXG4gICAgICAvLyBvbmUsIGFuZCBhbiBhbHJlYWR5LWFib3J0ZWQgc2lnbmFsIHdvdWxkIG1ha2UgZXZlcnkgY3ljbGUgYSBuby1vcC5cbiAgICAgIGlmIChzaHV0ZG93bi5zaWduYWwuYWJvcnRlZCkgc2h1dGRvd24gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBlbWl0R2F1Z2UoU0NIRURVTEVSX0lOVEVSVkFMX01FVFJJQywgbWV0cmljTGFiZWxzLCBvcHRzLmludGVydmFsTXMgLyAxMDAwKTtcbiAgICAgIGVtaXRHYXVnZShTQ0hFRFVMRVJfU1RBUlRFRF9NRVRSSUMsIG1ldHJpY0xhYmVscywgRGF0ZS5ub3coKSAvIDEwMDApO1xuICAgICAgaWYgKG9wdHMubG9jayAmJiAhb3B0cy5sb2NrLnJlZGlzICYmICFob2xkc0VudkxvY2spIHtcbiAgICAgICAgZW52TG9jayA9IGFjcXVpcmVTaGFyZWRFbnZMb2NrKCk7XG4gICAgICAgIGhvbGRzRW52TG9jayA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5zdGFydHVwRGVsYXlNcyAmJiBvcHRzLnN0YXJ0dXBEZWxheU1zID4gMCkge1xuICAgICAgICBzdGFydHVwID0gc2V0VGltZW91dCgoKSA9PiB7IHN0YXJ0dXAgPSBudWxsOyBiZWdpbigpOyB9LCBvcHRzLnN0YXJ0dXBEZWxheU1zKTtcbiAgICAgICAgc3RhcnR1cC51bnJlZigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmVnaW4oKTtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdTY2hlZHVsZXIgc3RhcnRlZCcsIHsgaW50ZXJ2YWxNczogb3B0cy5pbnRlcnZhbE1zLCBsb2NrZWQ6ICEhb3B0cy5sb2NrICYmICghIW9wdHMubG9jay5yZWRpcyB8fCAhIWVudkxvY2spIH0pO1xuICAgIH0sXG4gICAgc3RvcCgpOiB2b2lkIHtcbiAgICAgIHN0b3BwZWQgPSB0cnVlO1xuICAgICAgaWYgKHN0YXJ0dXApIHsgY2xlYXJUaW1lb3V0KHN0YXJ0dXApOyBzdGFydHVwID0gbnVsbDsgfVxuICAgICAgaWYgKGludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOyBpbnRlcnZhbCA9IG51bGw7IH1cbiAgICAgIC8vIEFzayBhbiBpbi1mbGlnaHQgY3ljbGUgdG8gd2luZCB1cC4gQSBzaWduYWwtYXdhcmUgYHJ1bmAgcmV0dXJucyBiZXR3ZWVuXG4gICAgICAvLyB1bml0cyBvZiB3b3JrLCB3aGljaCBsZXRzIHdpdGhMZWFkZXJMb2NrJ3MgYGZpbmFsbHlgIFJFTEVBU0UgdGhlIGxvY2sg4oCUXG4gICAgICAvLyBvdGhlcndpc2UgdGhlIGtleSBzYXQgdGhlcmUgdW50aWwgdGhlIFRUTCBsYXBzZWQgYW5kIHRoZSBqb2Igd2FzIHBhcmtlZFxuICAgICAgLy8gZmxlZXQtd2lkZSBmb3IgdGhhdCBsb25nIGFmdGVyIGV2ZXJ5IHJvbGxpbmcgZGVwbG95LlxuICAgICAgaWYgKCFzaHV0ZG93bi5zaWduYWwuYWJvcnRlZCkgc2h1dGRvd24uYWJvcnQoJ3NodXRkb3duJyk7XG4gICAgICBpZiAoaG9sZHNFbnZMb2NrKSB7XG4gICAgICAgIGhvbGRzRW52TG9jayA9IGZhbHNlO1xuICAgICAgICBjb25zdCBwZW5kaW5nID0gaW5GbGlnaHQ7XG4gICAgICAgIGVudkxvY2sgPSBudWxsO1xuICAgICAgICAvLyBDbG9zaW5nIHRoZSBjbGllbnQgdW5kZXIgYSBydW5uaW5nIGN5Y2xlIGtpbGxzIGl0cyBoZWFydGJlYXQgYW5kIGl0c1xuICAgICAgICAvLyByZWxlYXNlLCBzbyB3YWl0IGZvciB0aGUgY3ljbGUgdG8gc2V0dGxlIGZpcnN0LiBCb3VuZGVkIGJ5IHRoZSBjeWNsZVxuICAgICAgICAvLyBpdHNlbGYsIHdoaWNoIGlzIG5vdyBiZWluZyBhc2tlZCB0byBzdG9wLlxuICAgICAgICB2b2lkIChwZW5kaW5nID8gcGVuZGluZy5jYXRjaCgoKSA9PiB1bmRlZmluZWQpIDogUHJvbWlzZS5yZXNvbHZlKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVsZWFzZVNoYXJlZEVudkxvY2soKSk7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbygnU2NoZWR1bGVyIHN0b3BwZWQnKTtcbiAgICB9LFxuICB9O1xufVxuIl19
@@ -82,6 +82,9 @@ export declare enum ErrorCode {
82
82
  TEMPLATE_CONTRACT_VIOLATION = "TEMPLATE_CONTRACT_VIOLATION",
83
83
  TEMPLATE_SIZE_EXCEEDED = "TEMPLATE_SIZE_EXCEEDED",
84
84
  TEMPLATE_VALIDATION_FAILED = "TEMPLATE_VALIDATION_FAILED",
85
+ /** The pipeline-manager CLI is older than the platform's
86
+ * `PIPELINE_MANAGER_MIN_VERSION`; the fix is `pipeline-manager --upgrade`. */
87
+ CLIENT_UPGRADE_REQUIRED = "CLIENT_UPGRADE_REQUIRED",
85
88
  QUOTA_EXCEEDED = "QUOTA_EXCEEDED",
86
89
  /** The caller's per-member share of the org's `aiCalls` (org setting
87
90
  * `aiCallsPerMemberPct`) is spent for this period — the org itself may have headroom. */
@@ -89,6 +89,10 @@ export var ErrorCode;
89
89
  ErrorCode["TEMPLATE_CONTRACT_VIOLATION"] = "TEMPLATE_CONTRACT_VIOLATION";
90
90
  ErrorCode["TEMPLATE_SIZE_EXCEEDED"] = "TEMPLATE_SIZE_EXCEEDED";
91
91
  ErrorCode["TEMPLATE_VALIDATION_FAILED"] = "TEMPLATE_VALIDATION_FAILED";
92
+ // Client too old (426)
93
+ /** The pipeline-manager CLI is older than the platform's
94
+ * `PIPELINE_MANAGER_MIN_VERSION`; the fix is `pipeline-manager --upgrade`. */
95
+ ErrorCode["CLIENT_UPGRADE_REQUIRED"] = "CLIENT_UPGRADE_REQUIRED";
92
96
  // Quota/Rate limit errors (429)
93
97
  ErrorCode["QUOTA_EXCEEDED"] = "QUOTA_EXCEEDED";
94
98
  /** The caller's per-member share of the org's `aiCalls` (org setting
@@ -226,6 +230,7 @@ export const ErrorCodeStatus = {
226
230
  [ErrorCode.TEMPLATE_CONTRACT_VIOLATION]: 400,
227
231
  [ErrorCode.TEMPLATE_SIZE_EXCEEDED]: 400,
228
232
  [ErrorCode.TEMPLATE_VALIDATION_FAILED]: 400,
233
+ [ErrorCode.CLIENT_UPGRADE_REQUIRED]: 426,
229
234
  [ErrorCode.QUOTA_EXCEEDED]: 429,
230
235
  [ErrorCode.AI_MEMBER_SHARE_EXCEEDED]: 429,
231
236
  [ErrorCode.AI_TOKEN_BUDGET_EXCEEDED]: 429,
@@ -272,4 +277,4 @@ export const ErrorCodeStatus = {
272
277
  export function getStatusForErrorCode(code) {
273
278
  return ErrorCodeStatus[code] ?? 500;
274
279
  }
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lcnJvci1jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQU4sSUFBWSxTQTBMWDtBQTFMRCxXQUFZLFNBQVM7SUFDbkIsOEJBQThCO0lBQzlCLDBDQUE2QixDQUFBO0lBQzdCLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9COzs7dURBR21EO0lBQ25ELDBDQUE2QixDQUFBO0lBQzdCOzhFQUMwRTtJQUMxRSxnREFBbUMsQ0FBQTtJQUVuQyw2QkFBNkI7SUFDN0Isa0VBQXFELENBQUE7SUFDckQ7d0VBQ29FO0lBQ3BFLDhEQUFpRCxDQUFBO0lBQ2pEO29FQUNnRTtJQUNoRSxnRUFBbUQsQ0FBQTtJQUNuRDtrRUFDOEQ7SUFDOUQsZ0VBQW1ELENBQUE7SUFDbkQ7O29GQUVnRjtJQUNoRix3REFBMkMsQ0FBQTtJQUMzQzt3RUFDb0U7SUFDcEUsa0VBQXFELENBQUE7SUFDckQ7MkJBQ3VCO0lBQ3ZCLHdFQUEyRCxDQUFBO0lBQzNELG9EQUFvRDtJQUNwRCx3REFBMkMsQ0FBQTtJQUMzQztnRkFDNEU7SUFDNUUsd0NBQTJCLENBQUE7SUFDM0Isd0ZBQXdGO0lBQ3hGLHNFQUF5RCxDQUFBO0lBQ3pEO3lEQUNxRDtJQUNyRCxnRUFBbUQsQ0FBQTtJQUNuRDsyREFDdUQ7SUFDdkQsNERBQStDLENBQUE7SUFDL0M7OzJDQUV1QztJQUN2QywwREFBNkMsQ0FBQTtJQUM3QywwQ0FBNkIsQ0FBQTtJQUM3QiwwREFBNkMsQ0FBQTtJQUU3Qyx5QkFBeUI7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNENBQStCLENBQUE7SUFDL0I7OzJEQUV1RDtJQUN2RCx3REFBMkMsQ0FBQTtJQUMzQzs7K0RBRTJEO0lBQzNELDBE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Y0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHO0lBQ2hDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRztJQUNwQyxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLEdBQUc7Q0FDaEQsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQWU7SUFDbkQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTdGFuZGFyZGl6ZWQgZXJyb3IgY29kZXMgdXNlZCBhY3Jvc3MgYWxsIEFQSSBtaWNyb3NlcnZpY2VzLlxuICogVXNlIHRoZXNlIGNvZGVzIGluIGVycm9yIHJlc3BvbnNlcyBmb3IgY29uc2lzdGVudCBjbGllbnQgaGFuZGxpbmcuXG4gKlxuICogRWFjaCBIVFRQIHN0YXR1cyBjYXRlZ29yeSBoYXMgb25lIHByaW1hcnkgY29kZS4gVXNlIHRoZSBgZGV0YWlsc2BcbiAqIGZpZWxkIGluIGVycm9yIHJlc3BvbnNlcyBmb3Igc3ViLXR5cGUgaW5mb3JtYXRpb24gKGUuZy4gd2hpY2ggcXVvdGFcbiAqIHdhcyBleGNlZWRlZCwgd2hpY2ggZmllbGQgZmFpbGVkIHZhbGlkYXRpb24pLlxuICovXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xuICAvLyBBdXRoZW50aWNhdGlvbiBlcnJvcnMgKDQwMSlcbiAgVU5BVVRIT1JJWkVEID0gJ1VOQVVUSE9SSVpFRCcsXG4gIFRPS0VOX0VYUElSRUQgPSAnVE9LRU5fRVhQSVJFRCcsXG4gIFRPS0VOX0lOVkFMSUQgPSAnVE9LRU5fSU5WQUxJRCcsXG4gIFRPS0VOX01JU1NJTkcgPSAnVE9LRU5fTUlTU0lORycsXG4gIFRPS0VOX1JFVk9LRUQgPSAnVE9LRU5fUkVWT0tFRCcsXG4gIC8qKiBUaGUgc2Vzc2lvbiBpcyBub3QgTUZBLWdyYWRlIChgYWFsYCBiZWxvdyB0aGUgcm91dGUncyBgbWluQXNzdXJhbmNlYCkuXG4gICAqICBUaGUgY2xpZW50IHNlbmRzIHRoZSBwZXJzb24gdG8gZW5yb2wgLyBzaWduIGluIGFnYWluIHdpdGggYSBzZWNvbmRcbiAgICogIGZhY3RvciDigJQgaXQgbXVzdCBOT1Qgc2lnbiB0aGVtIG91dCBvciByZXRyeSBhIHRva2VuIHJlZnJlc2gsIHNpbmNlIGFcbiAgICogIHJlZnJlc2ggY2FuIG5ldmVyIHJhaXNlIHRoZSBhc3N1cmFuY2UgbGV2ZWwuICovXG4gIE1GQV9SRVFVSVJFRCA9ICdNRkFfUkVRVUlSRUQnLFxuICAvKiogVGhlIHNlc3Npb24gaXMgTUZBLWdyYWRlIGJ1dCBpdHMgYGF1dGhfdGltZWAgaXMgb2xkZXIgdGhhbiB0aGUgcm91dGUnc1xuICAgKiAgYG1heEFnZWAg4oCUIHRoZSBwZXJzb24gbXVzdCBhdXRoZW50aWNhdGUgYWdhaW4gKG5vdCBtZXJlbHkgcmVmcmVzaCkuICovXG4gIFJFQVVUSF9SRVFVSVJFRCA9ICdSRUFVVEhfUkVRVUlSRUQnLFxuXG4gIC8vIEF1dGhvcml6YXRpb24gZXJyb3JzICg0MDMpXG4gIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnLFxuICAvKiogQSBtYWNoaW5lIGNyZWRlbnRpYWwgKHNlcnZpY2UgcHJpbmNpcGFsLCBvcmcgc2VydmljZSBhY2NvdW50LCBvciBhblxuICAgKiAgZXhjaGFuZ2VkIGFjY2VzcyBrZXkpIHJlYWNoZWQgYSByb3V0ZSB0aGF0IHJlcXVpcmVzIGEgcGVyc29uLiAqL1xuICBIVU1BTl9TRVNTSU9OX1JFUVVJUkVEID0gJ0hVTUFOX1NFU1NJT05fUkVRVUlSRUQnLFxuICAvKiogQSBib290c3RyYXAtYWRtaW4gZW5yb2xtZW50IHNlc3Npb24gKGBtZmFFbnJvbGxtZW50UGVuZGluZ2ApIHJlYWNoZWQgYVxuICAgKiAgcm91dGUgb3V0c2lkZSB0aGUgZW5yb2xtZW50IC8gc2lnbi1vdXQgLyBzZXR1cCBhbGxvd2xpc3QuICovXG4gIE1GQV9FTlJPTExNRU5UX1JFUVVJUkVEID0gJ01GQV9FTlJPTExNRU5UX1JFUVVJUkVEJyxcbiAgLyoqIEEgcmVhZC1vbmx5IGltcGVyc29uYXRpb24gdG9rZW4gKGBpbXBlcnNvbmF0aW9uUmVhZE9ubHlgKSBhdHRlbXB0ZWQgYVxuICAgKiAgc3RhdGUtY2hhbmdpbmcgcmVxdWVzdCAoYW55dGhpbmcgYnV0IEdFVC9IRUFEL09QVElPTlMpLiAqL1xuICBJTVBFUlNPTkFUSU9OX1JFQURfT05MWSA9ICdJTVBFUlNPTkFUSU9OX1JFQURfT05MWScsXG4gIC8qKiBBIHBsdWdpbi1lY29zeXN0ZW0gZ292ZXJuYW5jZSByb3V0ZSAoZG9jcy9ydW5ib29rcy9lY29zeXN0ZW0tbW9kZXJhdGlvbi5tZClcbiAgICogIHdhcyBjYWxsZWQgZnJvbSBhbiBhY3RpdmUgb3JnIG90aGVyIHRoYW4gdGhlIHN5c3RlbSBvcmcg4oCUIGEgdG9rZW4gbWludGVkIGluXG4gICAqICBhIHRlbmFudCBvcmcgaXMgcmVmdXNlZCBldmVuIGZvciB0aGUgc2FtZSB1c2VyLiBTd2l0Y2ggdG8gdGhlIHN5c3RlbSBvcmcuICovXG4gIFNZU1RFTV9PUkdfUkVRVUlSRUQgPSAnU1lTVEVNX09SR19SRVFVSVJFRCcsXG4gIC8qKiBUaGUgcHVibGlzaGVyIGhhc24ndCBhY2NlcHRlZCB0aGUgQ1VSUkVOVCBwdWJsaXNoZXIgdGVybXMgdmVyc2lvbiwgc28gaXRcbiAgICogIGNhbid0IHN1Ym1pdCBuZXcgcmVxdWVzdHMgKGV4aXN0aW5nIGxpc3RpbmdzIGFyZSB1bmFmZmVjdGVkKS4gKi9cbiAgUFVCTElTSEVSX1RFUk1TX1JFUVVJUkVEID0gJ1BVQkxJU0hFUl9URVJNU19SRVFVSVJFRCcsXG4gIC8qKiBQdWJsaXNoaW5nIGlzIGRvbmUgZnJvbSB0aGUgUk9PVCBvcmc7IGEgdGVhbSBvcmcgY2FuJ3Qgb3duIGEgcHVibGlzaGVyIG9yXG4gICAqICBzdWJtaXQgcmVxdWVzdHMuICovXG4gIFBVQkxJU0hFUl9ST09UX09SR19SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRUQnLFxuICAvKiogVGhlIHB1Ymxpc2hlciBpcyBzdXNwZW5kZWQgYnkgdGhlIHN5c3RlbSBvcmcuICovXG4gIFBVQkxJU0hFUl9TVVNQRU5ERUQgPSAnUFVCTElTSEVSX1NVU1BFTkRFRCcsXG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uJ3MgYWRtaW5pc3RyYXRvcnMgc3dpdGNoZWQgQUkgZmVhdHVyZXMgb2ZmIChgYWlFbmFibGVkOiBmYWxzZWBcbiAgICogIG9uIHRoZSBvcmcncyBBSSBjb25maWd1cmF0aW9uKS4gRXZlcnkgQUkgZW50cnkgcG9pbnQgcmVmdXNlcyB3aXRoIGl0LiAqL1xuICBBSV9ESVNBQkxFRCA9ICdBSV9ESVNBQkxFRCcsXG4gIC8qKiBUZW5hbnQgcHVibGlzaGluZyBpcyBzd2l0Y2hlZCBvZmYgb24gdGhpcyBpbnN0YW5jZSAoYFBMVUdJTl9QVUJMSVNISU5HX0VOQUJMRURgKS4gKi9cbiAgUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQgPSAnUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQnLFxuICAvKiogUmV2aWV3IHdyaXRlcyBhcmUgc3dpdGNoZWQgb2ZmIG9uIHRoaXMgaW5zdGFuY2UgKGBQTFVHSU5fUkVWSUVXU19FTkFCTEVEYCk6XG4gICAqICByZXZpZXdzIHN0YXkgcmVhZGFibGUsIG5vdGhpbmcgbmV3IGlzIHdyaXR0ZW4uICovXG4gIFBMVUdJTl9SRVZJRVdTX0RJU0FCTEVEID0gJ1BMVUdJTl9SRVZJRVdTX0RJU0FCTEVEJyxcbiAgLyoqIEEgbWVtYmVyIG9mIHRoZSBwdWJsaXNoZXIncyBvd24gb3JnYW5pemF0aW9uIHRyaWVkIHRvIHJldmlldyAob3Igdm90ZSBvbiBhXG4gICAqICByZXZpZXcgb2YpIG9uZSBvZiBpdHMgbGlzdGluZ3MgKHNlbGYtcHJvbW90aW9uKS4gKi9cbiAgUkVWSUVXX1NFTEZfUFJPTU9USU9OID0gJ1JFVklFV19TRUxGX1BST01PVElPTicsXG4gIC8qKiBTZXBhcmF0aW9uIG9mIGR1dGllczogdGhlIGNhbGxlciBtYXkgbm90IGRlY2lkZSB0aGlzIHJlcXVlc3Qg4oCUXG4gICAqICBpdCBjYW1lIGZyb20gYW4gb3JnIHRoZXkgYmVsb25nIHRvLCB0aGV5IHVwbG9hZGVkIHRoZSB2ZXJzaW9uLCBvciB0aGV5XG4gICAqICBnYXZlIHRoZSBmaXJzdCBvZiB0d28gYXBwcm92YWxzLiAqL1xuICBTRVBBUkFUSU9OX09GX0RVVElFUyA9ICdTRVBBUkFUSU9OX09GX0RVVElFUycsXG4gIE9SR19NSVNNQVRDSCA9ICdPUkdfTUlTTUFUQ0gnLFxuICBDT01QTElBTkNFX1ZJT0xBVElPTiA9ICdDT01QTElBTkNFX1ZJT0xBVElPTicsXG5cbiAgLy8gTm90IGZvdW5kIGVycm9ycyAoNDA0KVxuICBOT1RfRk9VTkQgPSAnTk9UX0ZPVU5EJyxcbiAgT1JHX05PVF9GT1VORCA9ICdPUkdfTk9UX0ZPVU5EJyxcbiAgLyoqIFRoZSBlbWFpbCBnaXZlbiB0byBcImFkZCBtZW1iZXJcIiBoYXMgbm8gYWNjb3VudC4gRGlzdGluY3QgZnJvbSBOT1RfRk9VTkRcbiAgICogIGJlY2F1c2UgaXQgaXMgQUNUSU9OQUJMRTogdGhlIGNhbGxlcidzIGludGVudCBpcyBzYXRpc2ZpYWJsZSBieSBzZW5kaW5nIGFuXG4gICAqICBpbnZpdGF0aW9uLCBhbmQgYSBiYXJlIDQwNCBuYW1lZCBubyB3YXkgZm9yd2FyZC4gKi9cbiAgVVNFUl9OT1RfUkVHSVNURVJFRCA9ICdVU0VSX05PVF9SRUdJU1RFUkVEJyxcbiAgLyoqIFRoZSBhbm9ueW1vdXMgcGx1Z2luIHN1Ym1pc3Npb24gQVBJIGlzIG9mZiBvbiB0aGlzIGluc3RhbmNlXG4gICAqICAoYEFOT05ZTU9VU19TVUJNSVNTSU9OU19FTkFCTEVEYCwgb3Igb3V0Ym91bmQgZW1haWwgaXNuJ3QgY29uZmlndXJlZCkg4oCUXG4gICAqICBhbnN3ZXJlZCBhcyBhIHBsYWluIDQwNCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFNVQk1JU1NJT05TX0RJU0FCTEVEID0gJ1NVQk1JU1NJT05TX0RJU0FCTEVEJyxcblxuICAvLyBWYWxpZGF0aW9uIGVycm9ycyAoNDAwKVxuICBWQUxJREFUSU9OX0VSUk9SID0gJ1ZBTElEQVRJT05fRVJST1InLFxuICBNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEID0gJ01JU1NJTkdfUkVRVUlSRURfRklFTEQnLFxuICAvKiogQSBwcm9vZi1vZi13b3JrIGFuc3dlciBpcyBtaXNzaW5nLCBtYWxmb3JtZWQsIGV4cGlyZWQsIHRvbyBlYXN5LCB3cm9uZyxcbiAgICogIG9yIHdhcyBhbHJlYWR5IHVzZWQgKGFub255bW91cyBzdWJtaXNzaW9ucykuICovXG4gIFBST09GX09GX1dPUktfSU5WQUxJRCA9ICdQUk9PRl9PRl9XT1JLX0lOVkFMSUQnLFxuICBURU1QTEFURV9VTktOT1dOX1BBVEggPSAnVEVNUExBVEVfVU5LTk9XTl9QQVRIJyxcbiAgVEVNUExBVEVfQ1lDTEUgPSAnVEVNUExBVEVfQ1lDTEUnLFxuICBURU1QTEFURV9QQVJTRV9FUlJPUiA9ICdURU1QTEFURV9QQVJTRV9FUlJPUicsXG4gIFRFTVBMQVRFX1RZUEVfTUlTTUFUQ0ggPSAnVEVNUExBVEVfVFlQRV9NSVNNQVRDSCcsXG4gIFRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQgPSAnVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCcsXG4gIFRFTVBMQVRFX0NPTlRSQUNUX1ZJT0xBVElPTiA9ICdURU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT04nLFxuICBURU1QTEFURV9TSVpFX0VYQ0VFREVEID0gJ1RFTVBMQVRFX1NJWkVfRVhDRUVERUQnLFxuICBURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCA9ICdURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCcsXG5cbiAgLy8gUXVvdGEvUmF0ZSBsaW1pdCBlcnJvcnMgKDQyOSlcbiAgUVVPVEFfRVhDRUVERUQgPSAnUVVPVEFfRVhDRUVERUQnLFxuICAvKiogVGhlIGNhbGxlcidzIHBlci1tZW1iZXIgc2hhcmUgb2YgdGhlIG9yZydzIGBhaUNhbGxzYCAob3JnIHNldHRpbmdcbiAgICogIGBhaUNhbGxzUGVyTWVtYmVyUGN0YCkgaXMgc3BlbnQgZm9yIHRoaXMgcGVyaW9kIOKAlCB0aGUgb3JnIGl0c2VsZiBtYXkgaGF2ZSBoZWFkcm9vbS4gKi9cbiAgQUlfTUVNQkVSX1NIQVJFX0VYQ0VFREVEID0gJ0FJX01FTUJFUl9TSEFSRV9FWENFRURFRCcsXG4gIC8qKiBUaGUgb3JnJ3MgcGVyLXBlcmlvZCBBSSB0b2tlbiBidWRnZXQgKG9yZyBzZXR0aW5nIGBhaVRva2VuQnVkZ2V0YCkgaXMgc3BlbnQuICovXG4gIEFJX1RPS0VOX0JVREdFVF9FWENFRURFRCA9ICdBSV9UT0tFTl9CVURHRVRfRVhDRUVERUQnLFxuICBSQVRFX0xJTUlUX0VYQ0VFREVEID0gJ1JBVEVfTElNSVRfRVhDRUVERUQnLFxuICAvKiogQW4gYW5vbnltb3VzIHN1Ym1pdHRlciAocGVyIHZlcmlmaWVkIGVtYWlsLCBvciBwZXIgY2xpZW50IElQKSBpcyBhdCB0aGVcbiAgICogIHJvbGxpbmcgMjQtaG91ciBzdWJtaXNzaW9uIGNhcC4gKi9cbiAgU1VCTUlTU0lPTl9MSU1JVCA9ICdTVUJNSVNTSU9OX0xJTUlUJyxcblxuICAvLyBQYXlsb2FkIGVycm9ycyAoNDEzKVxuICBQQVlMT0FEX1RPT19MQVJHRSA9ICdQQVlMT0FEX1RPT19MQVJHRScsXG5cbiAgLy8gQ29uZmxpY3QgZXJyb3JzICg0MDkpXG4gIENPTkZMSUNUID0gJ0NPTkZMSUNUJyxcbiAgRFVQTElDQVRFX0VOVFJZID0gJ0RVUExJQ0FURV9FTlRSWScsXG4gIFNDQU5fQ09ORkxJQ1QgPSAnU0NBTl9DT05GTElDVCcsXG4gIC8qKiBBIHBsdWdpbiBpbWFnZSdzIGNvc2lnbiBzaWduYXR1cmUgKG9yIGl0cyBzaWduZWQgU0JPTSBhdHRlc3RhdGlvbikgZGlkXG4gICAqICBub3QgdmVyaWZ5IGFnYWluc3QgdGhlIHBsYXRmb3JtJ3MgcGx1Z2luLXNpZ25pbmcga2V5IOKAlCB0aGUgcmVnaXN0cnlcbiAgICogIGNvbnRlbnQgbm8gbG9uZ2VyIG1hdGNoZXMgd2hhdCB0aGUgcGxhdGZvcm0gYnVpbHQgYW5kIHNpZ25lZC4gKi9cbiAgSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRCA9ICdJTUFHRV9WRVJJRklDQVRJT05fRkFJTEVEJyxcbiAgLyoqIFRoZSBwbHVnaW4gdmVyc2lvbiBpcyBpbW11dGFibGUg4oCUIGEgcHVibGlzaCByZXF1ZXN0IHJlZmVyZW5jZXMgaXRcbiAgICogIChgZnJvemVuX2F0YCBzZXQpIG9yIGl0IGlzIHB1Ymxpc2hlZCB0byBhIGxpc3Rpbmcg4oCUIHNvIGl0IGNhbiBiZSBuZWl0aGVyXG4gICAqICByZS11cGxvYWRlZCwgZWRpdGVkIG5vciBkZWxldGVkIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgUExVR0lOX1ZFUlNJT05fRlJPWkVOID0gJ1BMVUdJTl9WRVJTSU9OX0ZST1pFTicsXG4gIC8qKiBUaGUgcGx1Z2luIHZlcnNpb24gaXMgcmVmZXJlbmNlZCBieSBvbmUgb2YgdGhlIG9yZydzIHBpcGVsaW5lcywgb3IgcHVibGlzaGVkXG4gICAqICB0byBhbiBlY29zeXN0ZW0gbGlzdGluZzsgZGVsZXRpbmcgaXQgbmVlZHMgYD9mb3JjZT10cnVlYCBwbHVzIGEgc3RlcC11cC4gKi9cbiAgUExVR0lOX1ZFUlNJT05fSU5fVVNFID0gJ1BMVUdJTl9WRVJTSU9OX0lOX1VTRScsXG4gIC8qKiBBIGZyZWV6ZSBuYW1lZCBhbiBpbWFnZSBkaWdlc3QgdGhhdCBpcyBub3QgdGhlIHZlcnNpb24ncyBzdG9yZWQgZGlnZXN0XG4gICAqICAoZmFpbCBjbG9zZWQ6IHdoYXQgd2FzIHJlcXVlc3RlZCBpcyBub3Qgd2hhdCB3b3VsZCBiZSBwdWJsaXNoZWQpLiAqL1xuICBQTFVHSU5fRElHRVNUX01JU01BVENIID0gJ1BMVUdJTl9ESUdFU1RfTUlTTUFUQ0gnLFxuICAvKiogQSBwdWJsaXNoIHJlcXVlc3QgbmVlZHMgdGhlIG9yZydzIHB1Ymxpc2hlciBwcm9maWxlLCB3aGljaCBkb2Vzbid0IGV4aXN0XG4gICAqICB5ZXQgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBDbGFpbSBhIGhhbmRsZSBmaXJzdC4gKi9cbiAgUFVCTElTSEVSX1JFUVVJUkVEID0gJ1BVQkxJU0hFUl9SRVFVSVJFRCcsXG4gIC8qKiBUaGUgcmVxdWVzdGVkIHB1Ymxpc2hlciBoYW5kbGUgaXMgcmVzZXJ2ZWQgKE9mZmljaWFsL1ZlcmlmaWVkXG4gICAqICByZXNlcnZhdGlvbnMsIGNvbmZ1c2FibGVzKS4gU3VibWl0IGEgYGNsYWltYCByZXF1ZXN0IGluc3RlYWQuICovXG4gIFBVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRUQgPSAnUFVCTElTSEVSX0hBTkRMRV9SRVNFUlZFRCcsXG4gIC8qKiBBIHB1Ymxpc2ggcmVxdWVzdCBmYWlsZWQgYSBzdWJtaXQgZ2F0ZSAocHVibGljIHZpc2liaWxpdHksIFNQRFggbGljZW5zZSxcbiAgICogIFJFQURNRSwgc2lnbmF0dXJlLCBzY2FuLCB2dWxuZXJhYmlsaXR5IGdhdGUg4oCmKTsgYGRldGFpbHMuZ2F0ZXNgIGxpc3RzIHRoZW0uICovXG4gIFBVQkxJU0hfR0FURV9GQUlMRUQgPSAnUFVCTElTSF9HQVRFX0ZBSUxFRCcsXG4gIC8qKiBBIFZlcmlmaWVkLXB1Ymxpc2hlciBhcHBsaWNhdGlvbiAob3IgaXRzIGRlY2lzaW9uKSBmcm9tIGFuIG9yZyB3aG9zZSBwbGFuXG4gICAqICBsYWNrcyB0aGUgYHZlcmlmaWVkX3B1Ymxpc2hlcmAgZmVhdHVyZSAoVGVhbSssIGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiAqL1xuICBWRVJJRklFRF9QTEFOX1JFUVVJUkVEID0gJ1ZFUklGSUVEX1BMQU5fUkVRVUlSRUQnLFxuICAvKiogQSBWZXJpZmllZC1wdWJsaXNoZXIgYXBwbGljYXRpb24gZnJvbSBhbiBvcmcgd2l0aCBubyBETlMtdmVyaWZpZWQgZG9tYWluLiAqL1xuICBWRVJJRklFRF9ET01BSU5fUkVRVUlSRUQgPSAnVkVSSUZJRURfRE9NQUlOX1JFUVVJUkVEJyxcbiAgLyoqIEEgVmVyaWZpZWQtcHVibGlzaGVyIGFwcGxpY2F0aW9uIGZyb20gYW4gb3JnIHdob3NlIG93bmVyIGhhcyBubyBzZWNvbmRcbiAgICogIGZhY3RvciAocGFzc2tleSBvciBhdXRoZW50aWNhdG9yIGFwcCkuICovXG4gIFZFUklGSUVEX09XTkVSX01GQV9SRVFVSVJFRCA9ICdWRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRUQnLFxuICAvKiogQSBwbHVnaW4gcmVmZXJlbmNlIG5hbWVzIGFuIGVjb3N5c3RlbSBsaXN0aW5nIHRoZSBvcmcgaGFzbid0IGluc3RhbGxlZCAob3JcbiAgICogIHdob3NlIGluc3RhbGwgaXMgcGVuZGluZywgZGVuaWVkLCBvciBkb2Vzbid0IGNvdmVyIHRoZSB2ZXJzaW9uIGFza2VkIGZvcjtcbiAgICogIGBkZXRhaWxzLnJlYXNvbmApIOKAlCBkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kICovXG4gIFBMVUdJTl9OT1RfSU5TVEFMTEVEID0gJ1BMVUdJTl9OT1RfSU5TVEFMTEVEJyxcbiAgLyoqIFRoZSBvcmcncyBjb25zdW1wdGlvbiBwb2xpY3kgcmVmdXNlcyB0aGUgbGlzdGluZzogaXRzIHRpZXIgaXNuJ3QgYWxsb3dlZCxcbiAgICogIHRoZSBsaXN0aW5nIGlzIGJsb2NrZWQsIG9yIGFuIGFkdmlzb3J5IGJsb2NrcyB0aGUgdmVyc2lvbiAoYGRldGFpbHMucmVhc29uYCkuICovXG4gIFBMVUdJTl9CTE9DS0VEX0JZX1BPTElDWSA9ICdQTFVHSU5fQkxPQ0tFRF9CWV9QT0xJQ1knLFxuICAvKiogVGhlIGxpc3Rpbmcgb3IgdmVyc2lvbiBjYW4ndCBiZSB1c2VkOiB5YW5rZWQsIHN1c3BlbmRlZCwgb3IgcGF1c2VkIGZvciBuZXdcbiAgICogIGluc3RhbGxzIChgZGV0YWlscy5yZWFzb25gKS4gKi9cbiAgUExVR0lOX1VOQVZBSUxBQkxFID0gJ1BMVUdJTl9VTkFWQUlMQUJMRScsXG4gIC8qKiBBbiBhdXRvLWNyZWF0ZWQgcGxhY2Vob2xkZXIgcGx1Z2luIGNhbid0IHRha2UgdGhlIG5hbWUgb2YgYSBsaXN0ZWQgcGx1Z2luXG4gICAqIOKAlCBpbnN0YWxsIHRoZSBsaXN0aW5nIGluc3RlYWQuICovXG4gIFBMVUdJTl9OQU1FX0xJU1RFRCA9ICdQTFVHSU5fTkFNRV9MSVNURUQnLFxuICAvKiogQW4gYW5vbnltb3VzIHN1Ym1pc3Npb24gbmFtZXMgYSBjb21tdW5pdHkgbGlzdGluZyBhbm90aGVyIHN1Ym1pdHRlciBvd25zLFxuICAgKiAgYSByZXNlcnZlZCBuYW1lLCBhbiBPZmZpY2lhbC9WZXJpZmllZCBsaXN0aW5nJ3MgbmFtZSwgb3Igb25lIGNvbmZ1c2FibGVcbiAgICogIHdpdGggYSB0b3AgbGlzdGluZzsgYGRldGFpbHMucmVhc29uYCBzYXlzIHdoaWNoLiAqL1xuICBOQU1FX1RBS0VOID0gJ05BTUVfVEFLRU4nLFxuICAvKiogQW4gVU5RVUFMSUZJRUQgcmVmZXJlbmNlIG5hbWVzIGEgcGx1Z2luIHRoZSBvcmcgREVMRVRFRDogcmVmdXNlZCByYXRoZXJcbiAgICogIHRoYW4gc2lsZW50bHkgZmFsbGluZyB0aHJvdWdoIHRvIGEgc2FtZS1uYW1lZCBsaXN0aW5nLCB3aGljaCB3b3VsZCBzd2FwIHRoZVxuICAgKiAgaW1hZ2UgYSBwaXBlbGluZSBydW5zIHdpdGhvdXQgYW55b25lIGNob29zaW5nIGl0IChgZGV0YWlscy5zdGF0ZTogJ2RlbGV0ZWQnYCkuICovXG4gIFBMVUdJTl9ERUxFVEVEID0gJ1BMVUdJTl9ERUxFVEVEJyxcblxuICAvLyBQbHVnaW4gYnVpbGQgb3V0Y29tZXMgKDQyMikg4oCUIHRlcm1pbmFsIGJ1aWxkIGZhaWx1cmVzLCByZXBvcnRlZCBvbiB0aGUgYnVpbGRcbiAgLy8gc3RyZWFtIGFuZCBpbiB0aGUgYnVpbGQncyBmYWlsdXJlIHJlY29yZCwgbmV2ZXIgYW5zd2VyZWQgb24gYSByZXF1ZXN0LlxuICAvKiogVGhlIGJ1aWx0IGltYWdlIGNvdWxkIG5vdCBiZSB2dWxuZXJhYmlsaXR5LXNjYW5uZWQgYWZ0ZXIgZXZlcnkgcmV0cnksIHNvXG4gICAqICBub3RoaW5nIHdhcyBwZXJzaXN0ZWQgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiAqL1xuICBJTUFHRV9TQ0FOX1VOQVZBSUxBQkxFID0gJ0lNQUdFX1NDQU5fVU5BVkFJTEFCTEUnLFxuICAvKiogVGhlIGJ1aWx0IGltYWdlIGhhcyBtb3JlIGZpeGFibGUgQ3JpdGljYWwgZmluZGluZ3MgdGhhbiB0aGUgcGxhdGZvcm1cbiAgICogIGZsb29yIGBQTFVHSU5fVlVMTl9NQVhfRklORElOR1NgOyB0aGUgbWVzc2FnZSBsaXN0cyB0aGVtIHdpdGggdGhlaXIgZml4ZXMuICovXG4gIFBMVUdJTl9WVUxOX0dBVEUgPSAnUExVR0lOX1ZVTE5fR0FURScsXG4gIC8qKiBBbiB1cGxvYWQgd2hvc2UgTkFNRSB3b3VsZCBvdmVycmlkZSBhIGxpc3Rpbmcgb3IgdGhlIHBhcmVudCBvcmcncyBwbHVnaW4sXG4gICAqICByZWZ1c2VkIGJlY2F1c2UgdGhlIGNvbnN1bXB0aW9uIHBvbGljeSBzYXlzIGBzaGFkb3dpbmc6IGRlbnlgLiAqL1xuICBQTFVHSU5fTkFNRV9TSEFET1dTID0gJ1BMVUdJTl9OQU1FX1NIQURPV1MnLFxuXG4gIC8vIEJpbGxpbmcgZXJyb3JzXG4gIFBBWU1FTlRfTUVUSE9EX1JFUVVJUkVEID0gJ1BBWU1FTlRfTUVUSE9EX1JFUVVJUkVEJywgLy8gNDAyXG4gIERJU0NPVU5UX0NFSUxJTkdfRVhDRUVERUQgPSAnRElTQ09VTlRfQ0VJTElOR19FWENFRURFRCcsIC8vIDQwMFxuICBESVNDT1VOVF9OT1RfRk9VTkQgPSAnRElTQ09VTlRfTk9UX0ZPVU5EJywgLy8gNDA0XG4gIERJU0NPVU5UX0lOQUNUSVZFID0gJ0RJU0NPVU5UX0lOQUNUSVZFJywgLy8gNDA5XG4gIFBMQU5fT1ZFUl9DQVAgPSAnUExBTl9PVkVSX0NBUCcsIC8vIDQwOVxuICBBRERPTl9PVkVSX0NBUCA9ICdBRERPTl9PVkVSX0NBUCcsIC8vIDQwOVxuXG4gIC8vIFNlcnZlciBlcnJvcnMgKDUwMClcbiAgSU5URVJOQUxfRVJST1IgPSAnSU5URVJOQUxfRVJST1InLFxuICBEQVRBQkFTRV9FUlJPUiA9ICdEQVRBQkFTRV9FUlJPUicsXG5cbiAgLy8gTm90IGltcGxlbWVudGVkICg1MDEpIOKAlCB0aGUgY29uZmlndXJlZCBwcm92aWRlciBoYXMgbm8gc3VjaCBjYXBhYmlsaXR5XG4gIE5PVF9JTVBMRU1FTlRFRCA9ICdOT1RfSU1QTEVNRU5URUQnLFxuXG4gIC8vIFNlcnZpY2UgdW5hdmFpbGFibGUgKDUwMylcbiAgU0VSVklDRV9VTkFWQUlMQUJMRSA9ICdTRVJWSUNFX1VOQVZBSUxBQkxFJyxcbiAgQ09NUExJQU5DRV9TRVJWSUNFX1VOQVZBSUxBQkxFID0gJ0NPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRScsXG59XG5cbi8qKlxuICogTWFwcyBlcnJvciBjb2RlcyB0byB0aGVpciBkZWZhdWx0IEhUVFAgc3RhdHVzIGNvZGVzLlxuICovXG5leHBvcnQgY29uc3QgRXJyb3JDb2RlU3RhdHVzOiBSZWNvcmQ8RXJyb3JDb2RlLCBudW1iZXI+ID0ge1xuICBbRXJyb3JDb2RlLlVOQVVUSE9SSVpFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9FWFBJUkVEXTogNDAxLFxuICBbRXJyb3JDb2RlLlRPS0VOX0lOVkFMSURdOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fTUlTU0lOR106IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9SRVZPS0VEXTogNDAxLFxuICBbRXJyb3JDb2RlLk1GQV9SRVFVSVJFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5SRUFVVEhfUkVRVUlSRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuSU5TVUZGSUNJRU5UX1BFUk1JU1NJT05TXTogNDAzLFxuICBbRXJyb3JDb2RlLlNZU1RFTV9PUkdfUkVRVUlSRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1RFUk1TX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9ST09UX09SR19SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIRVJfU1VTUEVOREVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9QVUJMSVNISU5HX0RJU0FCTEVEXTogNDAzLFxuICBbRXJyb3JDb2RlLkFJX0RJU0FCTEVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9SRVZJRVdTX0RJU0FCTEVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlJFVklFV19TRUxGX1BST01PVElPTl06IDQwMyxcbiAgW0Vycm9yQ29kZS5TRVBBUkFUSU9OX09GX0RVVElFU106IDQwMyxcbiAgW0Vycm9yQ29kZS5IVU1BTl9TRVNTSU9OX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLk1GQV9FTlJPTExNRU5UX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLklNUEVSU09OQVRJT05fUkVBRF9PTkxZXTogNDAzLFxuICBbRXJyb3JDb2RlLk9SR19NSVNNQVRDSF06IDQwMyxcbiAgW0Vycm9yQ29kZS5DT01QTElBTkNFX1ZJT0xBVElPTl06IDQwMyxcbiAgW0Vycm9yQ29kZS5OT1RfRk9VTkRdOiA0MDQsXG4gIFtFcnJvckNvZGUuT1JHX05PVF9GT1VORF06IDQwNCxcbiAgW0Vycm9yQ29kZS5VU0VSX05PVF9SRUdJU1RFUkVEXTogNDA0LFxuICBbRXJyb3JDb2RlLlNVQk1JU1NJT05TX0RJU0FCTEVEXTogNDA0LFxuICBbRXJyb3JDb2RlLlZBTElEQVRJT05fRVJST1JdOiA0MDAsXG4gIFtFcnJvckNvZGUuTUlTU0lOR19SRVFVSVJFRF9GSUVMRF06IDQwMCxcbiAgW0Vycm9yQ29kZS5QUk9PRl9PRl9XT1JLX0lOVkFMSURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfVU5LTk9XTl9QQVRIXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX0NZQ0xFXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1BBUlNFX0VSUk9SXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0hdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT05dOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfU0laRV9FWENFRURFRF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRF06IDQwMCxcbiAgW0Vycm9yQ29kZS5RVU9UQV9FWENFRURFRF06IDQyOSxcbiAgW0Vycm9yQ29kZS5BSV9NRU1CRVJfU0hBUkVfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuQUlfVE9LRU5fQlVER0VUX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLlJBVEVfTElNSVRfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuU1VCTUlTU0lPTl9MSU1JVF06IDQyOSxcbiAgW0Vycm9yQ29kZS5QQVlMT0FEX1RPT19MQVJHRV06IDQxMyxcbiAgW0Vycm9yQ29kZS5DT05GTElDVF06IDQwOSxcbiAgW0Vycm9yQ29kZS5EVVBMSUNBVEVfRU5UUlldOiA0MDksXG4gIFtFcnJvckNvZGUuU0NBTl9DT05GTElDVF06IDQwOSxcbiAgW0Vycm9yQ29kZS5JTUFHRV9WRVJJRklDQVRJT05fRkFJTEVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9WRVJTSU9OX0ZST1pFTl06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fVkVSU0lPTl9JTl9VU0VdOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX0RJR0VTVF9NSVNNQVRDSF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIRVJfUkVRVUlSRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX0hBTkRMRV9SRVNFUlZFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIX0dBVEVfRkFJTEVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlZFUklGSUVEX1BMQU5fUkVRVUlSRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuVkVSSUZJRURfRE9NQUlOX1JFUVVJUkVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlZFUklGSUVEX09XTkVSX01GQV9SRVFVSVJFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fTk9UX0lOU1RBTExFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fQkxPQ0tFRF9CWV9QT0xJQ1ldOiA0MDMsXG4gIFtFcnJvckNvZGUuUExVR0lOX1VOQVZBSUxBQkxFXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9OQU1FX0xJU1RFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5OQU1FX1RBS0VOXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9ERUxFVEVEXTogNDEwLFxuICBbRXJyb3JDb2RlLklNQUdFX1NDQU5fVU5BVkFJTEFCTEVdOiA0MjIsXG4gIFtFcnJvckNvZGUuUExVR0lOX1ZVTE5fR0FURV06IDQyMixcbiAgW0Vycm9yQ29kZS5QTFVHSU5fTkFNRV9TSEFET1dTXTogNDA5LFxuICBbRXJyb3JDb2RlLlBBWU1FTlRfTUVUSE9EX1JFUVVJUkVEXTogNDAyLFxuICBbRXJyb3JDb2RlLkRJU0NPVU5UX0NFSUxJTkdfRVhDRUVERURdOiA0MDAsXG4gIFtFcnJvckNvZGUuRElTQ09VTlRfTk9UX0ZPVU5EXTogNDA0LFxuICBbRXJyb3JDb2RlLkRJU0NPVU5UX0lOQUNUSVZFXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMQU5fT1ZFUl9DQVBdOiA0MDksXG4gIFtFcnJvckNvZGUuQURET05fT1ZFUl9DQVBdOiA0MDksXG4gIFtFcnJvckNvZGUuSU5URVJOQUxfRVJST1JdOiA1MDAsXG4gIFtFcnJvckNvZGUuREFUQUJBU0VfRVJST1JdOiA1MDAsXG4gIFtFcnJvckNvZGUuTk9UX0lNUExFTUVOVEVEXTogNTAxLFxuICBbRXJyb3JDb2RlLlNFUlZJQ0VfVU5BVkFJTEFCTEVdOiA1MDMsXG4gIFtFcnJvckNvZGUuQ09NUExJQU5DRV9TRVJWSUNFX1VOQVZBSUxBQkxFXTogNTAzLFxufTtcblxuLyoqXG4gKiBHZXQgdGhlIEhUVFAgc3RhdHVzIGNvZGUgZm9yIGFuIGVycm9yIGNvZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNGb3JFcnJvckNvZGUoY29kZTogRXJyb3JDb2RlKTogbnVtYmVyIHtcbiAgcmV0dXJuIEVycm9yQ29kZVN0YXR1c1tjb2RlXSA/PyA1MDA7XG59XG4iXX0=
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItY29kZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9lcnJvci1jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQU4sSUFBWSxTQStMWDtBQS9MRCxXQUFZLFNBQVM7SUFDbkIsOEJBQThCO0lBQzlCLDBDQUE2QixDQUFBO0lBQzdCLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9CLDRDQUErQixDQUFBO0lBQy9COzs7dURBR21EO0lBQ25ELDBDQUE2QixDQUFBO0lBQzdCOzhFQUMwRTtJQUMxRSxnREFBbUMsQ0FBQTtJQUVuQyw2QkFBNkI7SUFDN0Isa0VBQXFELENBQUE7SUFDckQ7d0VBQ29FO0lBQ3BFLDhEQUFpRCxDQUFBO0lBQ2pEO29FQUNnRTtJQUNoRSxnRUFBbUQsQ0FBQTtJQUNuRDtrRUFDOEQ7SUFDOUQsZ0VBQW1ELENBQUE7SUFDbkQ7O29GQUVnRjtJQUNoRix3REFBMkMsQ0FBQTtJQUMzQzt3RUFDb0U7SUFDcEUsa0VBQXFELENBQUE7SUFDckQ7MkJBQ3VCO0lBQ3ZCLHdFQUEyRCxDQUFBO0lBQzNELG9EQUFvRDtJQUNwRCx3REFBMkMsQ0FBQTtJQUMzQztnRkFDNEU7SUFDNUUsd0NBQTJCLENBQUE7SUFDM0Isd0ZBQXdGO0lBQ3hGLHNFQUF5RCxDQUFBO0lBQ3pEO3lEQUNxRDtJQUNyRCxnRUFBbUQsQ0FBQTtJQUNuRDsyREFDdUQ7SUFDdkQsNERBQStDLENBQUE7SUFDL0M7OzJDQUV1QztJQUN2QywwREFBNkMsQ0FBQTtJQUM3QywwQ0FBNkIsQ0FBQTtJQUM3QiwwREFBNkMsQ0FBQTtJQUU3Qyx5QkFBeUI7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNENBQStCLENBQUE7SUFDL0I7OzJEQUV1RDtJQUN2RCx3REFBMkMsQ0FBQTtJQUMzQzs7K0RBRTJEO0lBQzNELDBE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Q0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHO0lBQy9CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUc7SUFDL0IsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRztJQUMvQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxHQUFHO0lBQ2hDLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRztJQUNwQyxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFLEdBQUc7Q0FDaEQsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQWU7SUFDbkQsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0FBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTdGFuZGFyZGl6ZWQgZXJyb3IgY29kZXMgdXNlZCBhY3Jvc3MgYWxsIEFQSSBtaWNyb3NlcnZpY2VzLlxuICogVXNlIHRoZXNlIGNvZGVzIGluIGVycm9yIHJlc3BvbnNlcyBmb3IgY29uc2lzdGVudCBjbGllbnQgaGFuZGxpbmcuXG4gKlxuICogRWFjaCBIVFRQIHN0YXR1cyBjYXRlZ29yeSBoYXMgb25lIHByaW1hcnkgY29kZS4gVXNlIHRoZSBgZGV0YWlsc2BcbiAqIGZpZWxkIGluIGVycm9yIHJlc3BvbnNlcyBmb3Igc3ViLXR5cGUgaW5mb3JtYXRpb24gKGUuZy4gd2hpY2ggcXVvdGFcbiAqIHdhcyBleGNlZWRlZCwgd2hpY2ggZmllbGQgZmFpbGVkIHZhbGlkYXRpb24pLlxuICovXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xuICAvLyBBdXRoZW50aWNhdGlvbiBlcnJvcnMgKDQwMSlcbiAgVU5BVVRIT1JJWkVEID0gJ1VOQVVUSE9SSVpFRCcsXG4gIFRPS0VOX0VYUElSRUQgPSAnVE9LRU5fRVhQSVJFRCcsXG4gIFRPS0VOX0lOVkFMSUQgPSAnVE9LRU5fSU5WQUxJRCcsXG4gIFRPS0VOX01JU1NJTkcgPSAnVE9LRU5fTUlTU0lORycsXG4gIFRPS0VOX1JFVk9LRUQgPSAnVE9LRU5fUkVWT0tFRCcsXG4gIC8qKiBUaGUgc2Vzc2lvbiBpcyBub3QgTUZBLWdyYWRlIChgYWFsYCBiZWxvdyB0aGUgcm91dGUncyBgbWluQXNzdXJhbmNlYCkuXG4gICAqICBUaGUgY2xpZW50IHNlbmRzIHRoZSBwZXJzb24gdG8gZW5yb2wgLyBzaWduIGluIGFnYWluIHdpdGggYSBzZWNvbmRcbiAgICogIGZhY3RvciDigJQgaXQgbXVzdCBOT1Qgc2lnbiB0aGVtIG91dCBvciByZXRyeSBhIHRva2VuIHJlZnJlc2gsIHNpbmNlIGFcbiAgICogIHJlZnJlc2ggY2FuIG5ldmVyIHJhaXNlIHRoZSBhc3N1cmFuY2UgbGV2ZWwuICovXG4gIE1GQV9SRVFVSVJFRCA9ICdNRkFfUkVRVUlSRUQnLFxuICAvKiogVGhlIHNlc3Npb24gaXMgTUZBLWdyYWRlIGJ1dCBpdHMgYGF1dGhfdGltZWAgaXMgb2xkZXIgdGhhbiB0aGUgcm91dGUnc1xuICAgKiAgYG1heEFnZWAg4oCUIHRoZSBwZXJzb24gbXVzdCBhdXRoZW50aWNhdGUgYWdhaW4gKG5vdCBtZXJlbHkgcmVmcmVzaCkuICovXG4gIFJFQVVUSF9SRVFVSVJFRCA9ICdSRUFVVEhfUkVRVUlSRUQnLFxuXG4gIC8vIEF1dGhvcml6YXRpb24gZXJyb3JzICg0MDMpXG4gIElOU1VGRklDSUVOVF9QRVJNSVNTSU9OUyA9ICdJTlNVRkZJQ0lFTlRfUEVSTUlTU0lPTlMnLFxuICAvKiogQSBtYWNoaW5lIGNyZWRlbnRpYWwgKHNlcnZpY2UgcHJpbmNpcGFsLCBvcmcgc2VydmljZSBhY2NvdW50LCBvciBhblxuICAgKiAgZXhjaGFuZ2VkIGFjY2VzcyBrZXkpIHJlYWNoZWQgYSByb3V0ZSB0aGF0IHJlcXVpcmVzIGEgcGVyc29uLiAqL1xuICBIVU1BTl9TRVNTSU9OX1JFUVVJUkVEID0gJ0hVTUFOX1NFU1NJT05fUkVRVUlSRUQnLFxuICAvKiogQSBib290c3RyYXAtYWRtaW4gZW5yb2xtZW50IHNlc3Npb24gKGBtZmFFbnJvbGxtZW50UGVuZGluZ2ApIHJlYWNoZWQgYVxuICAgKiAgcm91dGUgb3V0c2lkZSB0aGUgZW5yb2xtZW50IC8gc2lnbi1vdXQgLyBzZXR1cCBhbGxvd2xpc3QuICovXG4gIE1GQV9FTlJPTExNRU5UX1JFUVVJUkVEID0gJ01GQV9FTlJPTExNRU5UX1JFUVVJUkVEJyxcbiAgLyoqIEEgcmVhZC1vbmx5IGltcGVyc29uYXRpb24gdG9rZW4gKGBpbXBlcnNvbmF0aW9uUmVhZE9ubHlgKSBhdHRlbXB0ZWQgYVxuICAgKiAgc3RhdGUtY2hhbmdpbmcgcmVxdWVzdCAoYW55dGhpbmcgYnV0IEdFVC9IRUFEL09QVElPTlMpLiAqL1xuICBJTVBFUlNPTkFUSU9OX1JFQURfT05MWSA9ICdJTVBFUlNPTkFUSU9OX1JFQURfT05MWScsXG4gIC8qKiBBIHBsdWdpbi1lY29zeXN0ZW0gZ292ZXJuYW5jZSByb3V0ZSAoZG9jcy9ydW5ib29rcy9lY29zeXN0ZW0tbW9kZXJhdGlvbi5tZClcbiAgICogIHdhcyBjYWxsZWQgZnJvbSBhbiBhY3RpdmUgb3JnIG90aGVyIHRoYW4gdGhlIHN5c3RlbSBvcmcg4oCUIGEgdG9rZW4gbWludGVkIGluXG4gICAqICBhIHRlbmFudCBvcmcgaXMgcmVmdXNlZCBldmVuIGZvciB0aGUgc2FtZSB1c2VyLiBTd2l0Y2ggdG8gdGhlIHN5c3RlbSBvcmcuICovXG4gIFNZU1RFTV9PUkdfUkVRVUlSRUQgPSAnU1lTVEVNX09SR19SRVFVSVJFRCcsXG4gIC8qKiBUaGUgcHVibGlzaGVyIGhhc24ndCBhY2NlcHRlZCB0aGUgQ1VSUkVOVCBwdWJsaXNoZXIgdGVybXMgdmVyc2lvbiwgc28gaXRcbiAgICogIGNhbid0IHN1Ym1pdCBuZXcgcmVxdWVzdHMgKGV4aXN0aW5nIGxpc3RpbmdzIGFyZSB1bmFmZmVjdGVkKS4gKi9cbiAgUFVCTElTSEVSX1RFUk1TX1JFUVVJUkVEID0gJ1BVQkxJU0hFUl9URVJNU19SRVFVSVJFRCcsXG4gIC8qKiBQdWJsaXNoaW5nIGlzIGRvbmUgZnJvbSB0aGUgUk9PVCBvcmc7IGEgdGVhbSBvcmcgY2FuJ3Qgb3duIGEgcHVibGlzaGVyIG9yXG4gICAqICBzdWJtaXQgcmVxdWVzdHMuICovXG4gIFBVQkxJU0hFUl9ST09UX09SR19SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRUQnLFxuICAvKiogVGhlIHB1Ymxpc2hlciBpcyBzdXNwZW5kZWQgYnkgdGhlIHN5c3RlbSBvcmcuICovXG4gIFBVQkxJU0hFUl9TVVNQRU5ERUQgPSAnUFVCTElTSEVSX1NVU1BFTkRFRCcsXG4gIC8qKiBUaGUgb3JnYW5pemF0aW9uJ3MgYWRtaW5pc3RyYXRvcnMgc3dpdGNoZWQgQUkgZmVhdHVyZXMgb2ZmIChgYWlFbmFibGVkOiBmYWxzZWBcbiAgICogIG9uIHRoZSBvcmcncyBBSSBjb25maWd1cmF0aW9uKS4gRXZlcnkgQUkgZW50cnkgcG9pbnQgcmVmdXNlcyB3aXRoIGl0LiAqL1xuICBBSV9ESVNBQkxFRCA9ICdBSV9ESVNBQkxFRCcsXG4gIC8qKiBUZW5hbnQgcHVibGlzaGluZyBpcyBzd2l0Y2hlZCBvZmYgb24gdGhpcyBpbnN0YW5jZSAoYFBMVUdJTl9QVUJMSVNISU5HX0VOQUJMRURgKS4gKi9cbiAgUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQgPSAnUExVR0lOX1BVQkxJU0hJTkdfRElTQUJMRUQnLFxuICAvKiogUmV2aWV3IHdyaXRlcyBhcmUgc3dpdGNoZWQgb2ZmIG9uIHRoaXMgaW5zdGFuY2UgKGBQTFVHSU5fUkVWSUVXU19FTkFCTEVEYCk6XG4gICAqICByZXZpZXdzIHN0YXkgcmVhZGFibGUsIG5vdGhpbmcgbmV3IGlzIHdyaXR0ZW4uICovXG4gIFBMVUdJTl9SRVZJRVdTX0RJU0FCTEVEID0gJ1BMVUdJTl9SRVZJRVdTX0RJU0FCTEVEJyxcbiAgLyoqIEEgbWVtYmVyIG9mIHRoZSBwdWJsaXNoZXIncyBvd24gb3JnYW5pemF0aW9uIHRyaWVkIHRvIHJldmlldyAob3Igdm90ZSBvbiBhXG4gICAqICByZXZpZXcgb2YpIG9uZSBvZiBpdHMgbGlzdGluZ3MgKHNlbGYtcHJvbW90aW9uKS4gKi9cbiAgUkVWSUVXX1NFTEZfUFJPTU9USU9OID0gJ1JFVklFV19TRUxGX1BST01PVElPTicsXG4gIC8qKiBTZXBhcmF0aW9uIG9mIGR1dGllczogdGhlIGNhbGxlciBtYXkgbm90IGRlY2lkZSB0aGlzIHJlcXVlc3Qg4oCUXG4gICAqICBpdCBjYW1lIGZyb20gYW4gb3JnIHRoZXkgYmVsb25nIHRvLCB0aGV5IHVwbG9hZGVkIHRoZSB2ZXJzaW9uLCBvciB0aGV5XG4gICAqICBnYXZlIHRoZSBmaXJzdCBvZiB0d28gYXBwcm92YWxzLiAqL1xuICBTRVBBUkFUSU9OX09GX0RVVElFUyA9ICdTRVBBUkFUSU9OX09GX0RVVElFUycsXG4gIE9SR19NSVNNQVRDSCA9ICdPUkdfTUlTTUFUQ0gnLFxuICBDT01QTElBTkNFX1ZJT0xBVElPTiA9ICdDT01QTElBTkNFX1ZJT0xBVElPTicsXG5cbiAgLy8gTm90IGZvdW5kIGVycm9ycyAoNDA0KVxuICBOT1RfRk9VTkQgPSAnTk9UX0ZPVU5EJyxcbiAgT1JHX05PVF9GT1VORCA9ICdPUkdfTk9UX0ZPVU5EJyxcbiAgLyoqIFRoZSBlbWFpbCBnaXZlbiB0byBcImFkZCBtZW1iZXJcIiBoYXMgbm8gYWNjb3VudC4gRGlzdGluY3QgZnJvbSBOT1RfRk9VTkRcbiAgICogIGJlY2F1c2UgaXQgaXMgQUNUSU9OQUJMRTogdGhlIGNhbGxlcidzIGludGVudCBpcyBzYXRpc2ZpYWJsZSBieSBzZW5kaW5nIGFuXG4gICAqICBpbnZpdGF0aW9uLCBhbmQgYSBiYXJlIDQwNCBuYW1lZCBubyB3YXkgZm9yd2FyZC4gKi9cbiAgVVNFUl9OT1RfUkVHSVNURVJFRCA9ICdVU0VSX05PVF9SRUdJU1RFUkVEJyxcbiAgLyoqIFRoZSBhbm9ueW1vdXMgcGx1Z2luIHN1Ym1pc3Npb24gQVBJIGlzIG9mZiBvbiB0aGlzIGluc3RhbmNlXG4gICAqICAoYEFOT05ZTU9VU19TVUJNSVNTSU9OU19FTkFCTEVEYCwgb3Igb3V0Ym91bmQgZW1haWwgaXNuJ3QgY29uZmlndXJlZCkg4oCUXG4gICAqICBhbnN3ZXJlZCBhcyBhIHBsYWluIDQwNCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFNVQk1JU1NJT05TX0RJU0FCTEVEID0gJ1NVQk1JU1NJT05TX0RJU0FCTEVEJyxcblxuICAvLyBWYWxpZGF0aW9uIGVycm9ycyAoNDAwKVxuICBWQUxJREFUSU9OX0VSUk9SID0gJ1ZBTElEQVRJT05fRVJST1InLFxuICBNSVNTSU5HX1JFUVVJUkVEX0ZJRUxEID0gJ01JU1NJTkdfUkVRVUlSRURfRklFTEQnLFxuICAvKiogQSBwcm9vZi1vZi13b3JrIGFuc3dlciBpcyBtaXNzaW5nLCBtYWxmb3JtZWQsIGV4cGlyZWQsIHRvbyBlYXN5LCB3cm9uZyxcbiAgICogIG9yIHdhcyBhbHJlYWR5IHVzZWQgKGFub255bW91cyBzdWJtaXNzaW9ucykuICovXG4gIFBST09GX09GX1dPUktfSU5WQUxJRCA9ICdQUk9PRl9PRl9XT1JLX0lOVkFMSUQnLFxuICBURU1QTEFURV9VTktOT1dOX1BBVEggPSAnVEVNUExBVEVfVU5LTk9XTl9QQVRIJyxcbiAgVEVNUExBVEVfQ1lDTEUgPSAnVEVNUExBVEVfQ1lDTEUnLFxuICBURU1QTEFURV9QQVJTRV9FUlJPUiA9ICdURU1QTEFURV9QQVJTRV9FUlJPUicsXG4gIFRFTVBMQVRFX1RZUEVfTUlTTUFUQ0ggPSAnVEVNUExBVEVfVFlQRV9NSVNNQVRDSCcsXG4gIFRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQgPSAnVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCcsXG4gIFRFTVBMQVRFX0NPTlRSQUNUX1ZJT0xBVElPTiA9ICdURU1QTEFURV9DT05UUkFDVF9WSU9MQVRJT04nLFxuICBURU1QTEFURV9TSVpFX0VYQ0VFREVEID0gJ1RFTVBMQVRFX1NJWkVfRVhDRUVERUQnLFxuICBURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCA9ICdURU1QTEFURV9WQUxJREFUSU9OX0ZBSUxFRCcsXG5cbiAgLy8gQ2xpZW50IHRvbyBvbGQgKDQyNilcbiAgLyoqIFRoZSBwaXBlbGluZS1tYW5hZ2VyIENMSSBpcyBvbGRlciB0aGFuIHRoZSBwbGF0Zm9ybSdzXG4gICAqICBgUElQRUxJTkVfTUFOQUdFUl9NSU5fVkVSU0lPTmA7IHRoZSBmaXggaXMgYHBpcGVsaW5lLW1hbmFnZXIgLS11cGdyYWRlYC4gKi9cbiAgQ0xJRU5UX1VQR1JBREVfUkVRVUlSRUQgPSAnQ0xJRU5UX1VQR1JBREVfUkVRVUlSRUQnLFxuXG4gIC8vIFF1b3RhL1JhdGUgbGltaXQgZXJyb3JzICg0MjkpXG4gIFFVT1RBX0VYQ0VFREVEID0gJ1FVT1RBX0VYQ0VFREVEJyxcbiAgLyoqIFRoZSBjYWxsZXIncyBwZXItbWVtYmVyIHNoYXJlIG9mIHRoZSBvcmcncyBgYWlDYWxsc2AgKG9yZyBzZXR0aW5nXG4gICAqICBgYWlDYWxsc1Blck1lbWJlclBjdGApIGlzIHNwZW50IGZvciB0aGlzIHBlcmlvZCDigJQgdGhlIG9yZyBpdHNlbGYgbWF5IGhhdmUgaGVhZHJvb20uICovXG4gIEFJX01FTUJFUl9TSEFSRV9FWENFRURFRCA9ICdBSV9NRU1CRVJfU0hBUkVfRVhDRUVERUQnLFxuICAvKiogVGhlIG9yZydzIHBlci1wZXJpb2QgQUkgdG9rZW4gYnVkZ2V0IChvcmcgc2V0dGluZyBgYWlUb2tlbkJ1ZGdldGApIGlzIHNwZW50LiAqL1xuICBBSV9UT0tFTl9CVURHRVRfRVhDRUVERUQgPSAnQUlfVE9LRU5fQlVER0VUX0VYQ0VFREVEJyxcbiAgUkFURV9MSU1JVF9FWENFRURFRCA9ICdSQVRFX0xJTUlUX0VYQ0VFREVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXR0ZXIgKHBlciB2ZXJpZmllZCBlbWFpbCwgb3IgcGVyIGNsaWVudCBJUCkgaXMgYXQgdGhlXG4gICAqICByb2xsaW5nIDI0LWhvdXIgc3VibWlzc2lvbiBjYXAuICovXG4gIFNVQk1JU1NJT05fTElNSVQgPSAnU1VCTUlTU0lPTl9MSU1JVCcsXG5cbiAgLy8gUGF5bG9hZCBlcnJvcnMgKDQxMylcbiAgUEFZTE9BRF9UT09fTEFSR0UgPSAnUEFZTE9BRF9UT09fTEFSR0UnLFxuXG4gIC8vIENvbmZsaWN0IGVycm9ycyAoNDA5KVxuICBDT05GTElDVCA9ICdDT05GTElDVCcsXG4gIERVUExJQ0FURV9FTlRSWSA9ICdEVVBMSUNBVEVfRU5UUlknLFxuICBTQ0FOX0NPTkZMSUNUID0gJ1NDQU5fQ09ORkxJQ1QnLFxuICAvKiogQSBwbHVnaW4gaW1hZ2UncyBjb3NpZ24gc2lnbmF0dXJlIChvciBpdHMgc2lnbmVkIFNCT00gYXR0ZXN0YXRpb24pIGRpZFxuICAgKiAgbm90IHZlcmlmeSBhZ2FpbnN0IHRoZSBwbGF0Zm9ybSdzIHBsdWdpbi1zaWduaW5nIGtleSDigJQgdGhlIHJlZ2lzdHJ5XG4gICAqICBjb250ZW50IG5vIGxvbmdlciBtYXRjaGVzIHdoYXQgdGhlIHBsYXRmb3JtIGJ1aWx0IGFuZCBzaWduZWQuICovXG4gIElNQUdFX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAnSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRCcsXG4gIC8qKiBUaGUgcGx1Z2luIHZlcnNpb24gaXMgaW1tdXRhYmxlIOKAlCBhIHB1Ymxpc2ggcmVxdWVzdCByZWZlcmVuY2VzIGl0XG4gICAqICAoYGZyb3plbl9hdGAgc2V0KSBvciBpdCBpcyBwdWJsaXNoZWQgdG8gYSBsaXN0aW5nIOKAlCBzbyBpdCBjYW4gYmUgbmVpdGhlclxuICAgKiAgcmUtdXBsb2FkZWQsIGVkaXRlZCBub3IgZGVsZXRlZCAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuICovXG4gIFBMVUdJTl9WRVJTSU9OX0ZST1pFTiA9ICdQTFVHSU5fVkVSU0lPTl9GUk9aRU4nLFxuICAvKiogVGhlIHBsdWdpbiB2ZXJzaW9uIGlzIHJlZmVyZW5jZWQgYnkgb25lIG9mIHRoZSBvcmcncyBwaXBlbGluZXMsIG9yIHB1Ymxpc2hlZFxuICAgKiAgdG8gYW4gZWNvc3lzdGVtIGxpc3Rpbmc7IGRlbGV0aW5nIGl0IG5lZWRzIGA/Zm9yY2U9dHJ1ZWAgcGx1cyBhIHN0ZXAtdXAuICovXG4gIFBMVUdJTl9WRVJTSU9OX0lOX1VTRSA9ICdQTFVHSU5fVkVSU0lPTl9JTl9VU0UnLFxuICAvKiogQSBmcmVlemUgbmFtZWQgYW4gaW1hZ2UgZGlnZXN0IHRoYXQgaXMgbm90IHRoZSB2ZXJzaW9uJ3Mgc3RvcmVkIGRpZ2VzdFxuICAgKiAgKGZhaWwgY2xvc2VkOiB3aGF0IHdhcyByZXF1ZXN0ZWQgaXMgbm90IHdoYXQgd291bGQgYmUgcHVibGlzaGVkKS4gKi9cbiAgUExVR0lOX0RJR0VTVF9NSVNNQVRDSCA9ICdQTFVHSU5fRElHRVNUX01JU01BVENIJyxcbiAgLyoqIEEgcHVibGlzaCByZXF1ZXN0IG5lZWRzIHRoZSBvcmcncyBwdWJsaXNoZXIgcHJvZmlsZSwgd2hpY2ggZG9lc24ndCBleGlzdFxuICAgKiAgeWV0IChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gQ2xhaW0gYSBoYW5kbGUgZmlyc3QuICovXG4gIFBVQkxJU0hFUl9SRVFVSVJFRCA9ICdQVUJMSVNIRVJfUkVRVUlSRUQnLFxuICAvKiogVGhlIHJlcXVlc3RlZCBwdWJsaXNoZXIgaGFuZGxlIGlzIHJlc2VydmVkIChPZmZpY2lhbC9WZXJpZmllZFxuICAgKiAgcmVzZXJ2YXRpb25zLCBjb25mdXNhYmxlcykuIFN1Ym1pdCBhIGBjbGFpbWAgcmVxdWVzdCBpbnN0ZWFkLiAqL1xuICBQVUJMSVNIRVJfSEFORExFX1JFU0VSVkVEID0gJ1BVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRUQnLFxuICAvKiogQSBwdWJsaXNoIHJlcXVlc3QgZmFpbGVkIGEgc3VibWl0IGdhdGUgKHB1YmxpYyB2aXNpYmlsaXR5LCBTUERYIGxpY2Vuc2UsXG4gICAqICBSRUFETUUsIHNpZ25hdHVyZSwgc2NhbiwgdnVsbmVyYWJpbGl0eSBnYXRlIOKApik7IGBkZXRhaWxzLmdhdGVzYCBsaXN0cyB0aGVtLiAqL1xuICBQVUJMSVNIX0dBVEVfRkFJTEVEID0gJ1BVQkxJU0hfR0FURV9GQUlMRUQnLFxuICAvKiogQSBWZXJpZmllZC1wdWJsaXNoZXIgYXBwbGljYXRpb24gKG9yIGl0cyBkZWNpc2lvbikgZnJvbSBhbiBvcmcgd2hvc2UgcGxhblxuICAgKiAgbGFja3MgdGhlIGB2ZXJpZmllZF9wdWJsaXNoZXJgIGZlYXR1cmUgKFRlYW0rLCBkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgVkVSSUZJRURfUExBTl9SRVFVSVJFRCA9ICdWRVJJRklFRF9QTEFOX1JFUVVJUkVEJyxcbiAgLyoqIEEgVmVyaWZpZWQtcHVibGlzaGVyIGFwcGxpY2F0aW9uIGZyb20gYW4gb3JnIHdpdGggbm8gRE5TLXZlcmlmaWVkIGRvbWFpbi4gKi9cbiAgVkVSSUZJRURfRE9NQUlOX1JFUVVJUkVEID0gJ1ZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRCcsXG4gIC8qKiBBIFZlcmlmaWVkLXB1Ymxpc2hlciBhcHBsaWNhdGlvbiBmcm9tIGFuIG9yZyB3aG9zZSBvd25lciBoYXMgbm8gc2Vjb25kXG4gICAqICBmYWN0b3IgKHBhc3NrZXkgb3IgYXV0aGVudGljYXRvciBhcHApLiAqL1xuICBWRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRUQgPSAnVkVSSUZJRURfT1dORVJfTUZBX1JFUVVJUkVEJyxcbiAgLyoqIEEgcGx1Z2luIHJlZmVyZW5jZSBuYW1lcyBhbiBlY29zeXN0ZW0gbGlzdGluZyB0aGUgb3JnIGhhc24ndCBpbnN0YWxsZWQgKG9yXG4gICAqICB3aG9zZSBpbnN0YWxsIGlzIHBlbmRpbmcsIGRlbmllZCwgb3IgZG9lc24ndCBjb3ZlciB0aGUgdmVyc2lvbiBhc2tlZCBmb3I7XG4gICAqICBgZGV0YWlscy5yZWFzb25gKSDigJQgZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCAqL1xuICBQTFVHSU5fTk9UX0lOU1RBTExFRCA9ICdQTFVHSU5fTk9UX0lOU1RBTExFRCcsXG4gIC8qKiBUaGUgb3JnJ3MgY29uc3VtcHRpb24gcG9saWN5IHJlZnVzZXMgdGhlIGxpc3Rpbmc6IGl0cyB0aWVyIGlzbid0IGFsbG93ZWQsXG4gICAqICB0aGUgbGlzdGluZyBpcyBibG9ja2VkLCBvciBhbiBhZHZpc29yeSBibG9ja3MgdGhlIHZlcnNpb24gKGBkZXRhaWxzLnJlYXNvbmApLiAqL1xuICBQTFVHSU5fQkxPQ0tFRF9CWV9QT0xJQ1kgPSAnUExVR0lOX0JMT0NLRURfQllfUE9MSUNZJyxcbiAgLyoqIFRoZSBsaXN0aW5nIG9yIHZlcnNpb24gY2FuJ3QgYmUgdXNlZDogeWFua2VkLCBzdXNwZW5kZWQsIG9yIHBhdXNlZCBmb3IgbmV3XG4gICAqICBpbnN0YWxscyAoYGRldGFpbHMucmVhc29uYCkuICovXG4gIFBMVUdJTl9VTkFWQUlMQUJMRSA9ICdQTFVHSU5fVU5BVkFJTEFCTEUnLFxuICAvKiogQW4gYXV0by1jcmVhdGVkIHBsYWNlaG9sZGVyIHBsdWdpbiBjYW4ndCB0YWtlIHRoZSBuYW1lIG9mIGEgbGlzdGVkIHBsdWdpblxuICAgKiDigJQgaW5zdGFsbCB0aGUgbGlzdGluZyBpbnN0ZWFkLiAqL1xuICBQTFVHSU5fTkFNRV9MSVNURUQgPSAnUExVR0lOX05BTUVfTElTVEVEJyxcbiAgLyoqIEFuIGFub255bW91cyBzdWJtaXNzaW9uIG5hbWVzIGEgY29tbXVuaXR5IGxpc3RpbmcgYW5vdGhlciBzdWJtaXR0ZXIgb3ducyxcbiAgICogIGEgcmVzZXJ2ZWQgbmFtZSwgYW4gT2ZmaWNpYWwvVmVyaWZpZWQgbGlzdGluZydzIG5hbWUsIG9yIG9uZSBjb25mdXNhYmxlXG4gICAqICB3aXRoIGEgdG9wIGxpc3Rpbmc7IGBkZXRhaWxzLnJlYXNvbmAgc2F5cyB3aGljaC4gKi9cbiAgTkFNRV9UQUtFTiA9ICdOQU1FX1RBS0VOJyxcbiAgLyoqIEFuIFVOUVVBTElGSUVEIHJlZmVyZW5jZSBuYW1lcyBhIHBsdWdpbiB0aGUgb3JnIERFTEVURUQ6IHJlZnVzZWQgcmF0aGVyXG4gICAqICB0aGFuIHNpbGVudGx5IGZhbGxpbmcgdGhyb3VnaCB0byBhIHNhbWUtbmFtZWQgbGlzdGluZywgd2hpY2ggd291bGQgc3dhcCB0aGVcbiAgICogIGltYWdlIGEgcGlwZWxpbmUgcnVucyB3aXRob3V0IGFueW9uZSBjaG9vc2luZyBpdCAoYGRldGFpbHMuc3RhdGU6ICdkZWxldGVkJ2ApLiAqL1xuICBQTFVHSU5fREVMRVRFRCA9ICdQTFVHSU5fREVMRVRFRCcsXG5cbiAgLy8gUGx1Z2luIGJ1aWxkIG91dGNvbWVzICg0MjIpIOKAlCB0ZXJtaW5hbCBidWlsZCBmYWlsdXJlcywgcmVwb3J0ZWQgb24gdGhlIGJ1aWxkXG4gIC8vIHN0cmVhbSBhbmQgaW4gdGhlIGJ1aWxkJ3MgZmFpbHVyZSByZWNvcmQsIG5ldmVyIGFuc3dlcmVkIG9uIGEgcmVxdWVzdC5cbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBjb3VsZCBub3QgYmUgdnVsbmVyYWJpbGl0eS1zY2FubmVkIGFmdGVyIGV2ZXJ5IHJldHJ5LCBzb1xuICAgKiAgbm90aGluZyB3YXMgcGVyc2lzdGVkIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gKi9cbiAgSU1BR0VfU0NBTl9VTkFWQUlMQUJMRSA9ICdJTUFHRV9TQ0FOX1VOQVZBSUxBQkxFJyxcbiAgLyoqIFRoZSBidWlsdCBpbWFnZSBoYXMgbW9yZSBmaXhhYmxlIENyaXRpY2FsIGZpbmRpbmdzIHRoYW4gdGhlIHBsYXRmb3JtXG4gICAqICBmbG9vciBgUExVR0lOX1ZVTE5fTUFYX0ZJTkRJTkdTYDsgdGhlIG1lc3NhZ2UgbGlzdHMgdGhlbSB3aXRoIHRoZWlyIGZpeGVzLiAqL1xuICBQTFVHSU5fVlVMTl9HQVRFID0gJ1BMVUdJTl9WVUxOX0dBVEUnLFxuICAvKiogQW4gdXBsb2FkIHdob3NlIE5BTUUgd291bGQgb3ZlcnJpZGUgYSBsaXN0aW5nIG9yIHRoZSBwYXJlbnQgb3JnJ3MgcGx1Z2luLFxuICAgKiAgcmVmdXNlZCBiZWNhdXNlIHRoZSBjb25zdW1wdGlvbiBwb2xpY3kgc2F5cyBgc2hhZG93aW5nOiBkZW55YC4gKi9cbiAgUExVR0lOX05BTUVfU0hBRE9XUyA9ICdQTFVHSU5fTkFNRV9TSEFET1dTJyxcblxuICAvLyBCaWxsaW5nIGVycm9yc1xuICBQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCA9ICdQQVlNRU5UX01FVEhPRF9SRVFVSVJFRCcsIC8vIDQwMlxuICBESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEID0gJ0RJU0NPVU5UX0NFSUxJTkdfRVhDRUVERUQnLCAvLyA0MDBcbiAgRElTQ09VTlRfTk9UX0ZPVU5EID0gJ0RJU0NPVU5UX05PVF9GT1VORCcsIC8vIDQwNFxuICBESVNDT1VOVF9JTkFDVElWRSA9ICdESVNDT1VOVF9JTkFDVElWRScsIC8vIDQwOVxuICBQTEFOX09WRVJfQ0FQID0gJ1BMQU5fT1ZFUl9DQVAnLCAvLyA0MDlcbiAgQURET05fT1ZFUl9DQVAgPSAnQURET05fT1ZFUl9DQVAnLCAvLyA0MDlcblxuICAvLyBTZXJ2ZXIgZXJyb3JzICg1MDApXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgREFUQUJBU0VfRVJST1IgPSAnREFUQUJBU0VfRVJST1InLFxuXG4gIC8vIE5vdCBpbXBsZW1lbnRlZCAoNTAxKSDigJQgdGhlIGNvbmZpZ3VyZWQgcHJvdmlkZXIgaGFzIG5vIHN1Y2ggY2FwYWJpbGl0eVxuICBOT1RfSU1QTEVNRU5URUQgPSAnTk9UX0lNUExFTUVOVEVEJyxcblxuICAvLyBTZXJ2aWNlIHVuYXZhaWxhYmxlICg1MDMpXG4gIFNFUlZJQ0VfVU5BVkFJTEFCTEUgPSAnU0VSVklDRV9VTkFWQUlMQUJMRScsXG4gIENPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRSA9ICdDT01QTElBTkNFX1NFUlZJQ0VfVU5BVkFJTEFCTEUnLFxufVxuXG4vKipcbiAqIE1hcHMgZXJyb3IgY29kZXMgdG8gdGhlaXIgZGVmYXVsdCBIVFRQIHN0YXR1cyBjb2Rlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEVycm9yQ29kZVN0YXR1czogUmVjb3JkPEVycm9yQ29kZSwgbnVtYmVyPiA9IHtcbiAgW0Vycm9yQ29kZS5VTkFVVEhPUklaRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fRVhQSVJFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5UT0tFTl9JTlZBTElEXTogNDAxLFxuICBbRXJyb3JDb2RlLlRPS0VOX01JU1NJTkddOiA0MDEsXG4gIFtFcnJvckNvZGUuVE9LRU5fUkVWT0tFRF06IDQwMSxcbiAgW0Vycm9yQ29kZS5NRkFfUkVRVUlSRURdOiA0MDEsXG4gIFtFcnJvckNvZGUuUkVBVVRIX1JFUVVJUkVEXTogNDAxLFxuICBbRXJyb3JDb2RlLklOU1VGRklDSUVOVF9QRVJNSVNTSU9OU106IDQwMyxcbiAgW0Vycm9yQ29kZS5TWVNURU1fT1JHX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9URVJNU19SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QVUJMSVNIRVJfUk9PVF9PUkdfUkVRVUlSRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1NVU1BFTkRFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUFVCTElTSElOR19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5BSV9ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fUkVWSUVXU19ESVNBQkxFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5SRVZJRVdfU0VMRl9QUk9NT1RJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuU0VQQVJBVElPTl9PRl9EVVRJRVNdOiA0MDMsXG4gIFtFcnJvckNvZGUuSFVNQU5fU0VTU0lPTl9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5NRkFfRU5ST0xMTUVOVF9SRVFVSVJFRF06IDQwMyxcbiAgW0Vycm9yQ29kZS5JTVBFUlNPTkFUSU9OX1JFQURfT05MWV06IDQwMyxcbiAgW0Vycm9yQ29kZS5PUkdfTUlTTUFUQ0hdOiA0MDMsXG4gIFtFcnJvckNvZGUuQ09NUExJQU5DRV9WSU9MQVRJT05dOiA0MDMsXG4gIFtFcnJvckNvZGUuTk9UX0ZPVU5EXTogNDA0LFxuICBbRXJyb3JDb2RlLk9SR19OT1RfRk9VTkRdOiA0MDQsXG4gIFtFcnJvckNvZGUuVVNFUl9OT1RfUkVHSVNURVJFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5TVUJNSVNTSU9OU19ESVNBQkxFRF06IDQwNCxcbiAgW0Vycm9yQ29kZS5WQUxJREFUSU9OX0VSUk9SXTogNDAwLFxuICBbRXJyb3JDb2RlLk1JU1NJTkdfUkVRVUlSRURfRklFTERdOiA0MDAsXG4gIFtFcnJvckNvZGUuUFJPT0ZfT0ZfV09SS19JTlZBTElEXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1VOS05PV05fUEFUSF06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9DWUNMRV06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9QQVJTRV9FUlJPUl06IDQwMCxcbiAgW0Vycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENIXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfQ09OVFJBQ1RfVklPTEFUSU9OXTogNDAwLFxuICBbRXJyb3JDb2RlLlRFTVBMQVRFX1NJWkVfRVhDRUVERURdOiA0MDAsXG4gIFtFcnJvckNvZGUuVEVNUExBVEVfVkFMSURBVElPTl9GQUlMRURdOiA0MDAsXG4gIFtFcnJvckNvZGUuQ0xJRU5UX1VQR1JBREVfUkVRVUlSRURdOiA0MjYsXG4gIFtFcnJvckNvZGUuUVVPVEFfRVhDRUVERURdOiA0MjksXG4gIFtFcnJvckNvZGUuQUlfTUVNQkVSX1NIQVJFX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLkFJX1RPS0VOX0JVREdFVF9FWENFRURFRF06IDQyOSxcbiAgW0Vycm9yQ29kZS5SQVRFX0xJTUlUX0VYQ0VFREVEXTogNDI5LFxuICBbRXJyb3JDb2RlLlNVQk1JU1NJT05fTElNSVRdOiA0MjksXG4gIFtFcnJvckNvZGUuUEFZTE9BRF9UT09fTEFSR0VdOiA0MTMsXG4gIFtFcnJvckNvZGUuQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuRFVQTElDQVRFX0VOVFJZXTogNDA5LFxuICBbRXJyb3JDb2RlLlNDQU5fQ09ORkxJQ1RdOiA0MDksXG4gIFtFcnJvckNvZGUuSU1BR0VfVkVSSUZJQ0FUSU9OX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fVkVSU0lPTl9GUk9aRU5dOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX1ZFUlNJT05fSU5fVVNFXTogNDA5LFxuICBbRXJyb3JDb2RlLlBMVUdJTl9ESUdFU1RfTUlTTUFUQ0hdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSEVSX1JFUVVJUkVEXTogNDA5LFxuICBbRXJyb3JDb2RlLlBVQkxJU0hFUl9IQU5ETEVfUkVTRVJWRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUFVCTElTSF9HQVRFX0ZBSUxFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9QTEFOX1JFUVVJUkVEXTogNDAzLFxuICBbRXJyb3JDb2RlLlZFUklGSUVEX0RPTUFJTl9SRVFVSVJFRF06IDQwOSxcbiAgW0Vycm9yQ29kZS5WRVJJRklFRF9PV05FUl9NRkFfUkVRVUlSRURdOiA0MDksXG4gIFtFcnJvckNvZGUuUExVR0lOX05PVF9JTlNUQUxMRURdOiA0MDMsXG4gIFtFcnJvckNvZGUuUExVR0lOX0JMT0NLRURfQllfUE9MSUNZXTogNDAzLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9VTkFWQUlMQUJMRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fTkFNRV9MSVNURURdOiA0MDksXG4gIFtFcnJvckNvZGUuTkFNRV9UQUtFTl06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTFVHSU5fREVMRVRFRF06IDQxMCxcbiAgW0Vycm9yQ29kZS5JTUFHRV9TQ0FOX1VOQVZBSUxBQkxFXTogNDIyLFxuICBbRXJyb3JDb2RlLlBMVUdJTl9WVUxOX0dBVEVdOiA0MjIsXG4gIFtFcnJvckNvZGUuUExVR0lOX05BTUVfU0hBRE9XU106IDQwOSxcbiAgW0Vycm9yQ29kZS5QQVlNRU5UX01FVEhPRF9SRVFVSVJFRF06IDQwMixcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9DRUlMSU5HX0VYQ0VFREVEXTogNDAwLFxuICBbRXJyb3JDb2RlLkRJU0NPVU5UX05PVF9GT1VORF06IDQwNCxcbiAgW0Vycm9yQ29kZS5ESVNDT1VOVF9JTkFDVElWRV06IDQwOSxcbiAgW0Vycm9yQ29kZS5QTEFOX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLkFERE9OX09WRVJfQ0FQXTogNDA5LFxuICBbRXJyb3JDb2RlLklOVEVSTkFMX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLkRBVEFCQVNFX0VSUk9SXTogNTAwLFxuICBbRXJyb3JDb2RlLk5PVF9JTVBMRU1FTlRFRF06IDUwMSxcbiAgW0Vycm9yQ29kZS5TRVJWSUNFX1VOQVZBSUxBQkxFXTogNTAzLFxuICBbRXJyb3JDb2RlLkNPTVBMSUFOQ0VfU0VSVklDRV9VTkFWQUlMQUJMRV06IDUwMyxcbn07XG5cbi8qKlxuICogR2V0IHRoZSBIVFRQIHN0YXR1cyBjb2RlIGZvciBhbiBlcnJvciBjb2RlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzRm9yRXJyb3JDb2RlKGNvZGU6IEVycm9yQ29kZSk6IG51bWJlciB7XG4gIHJldHVybiBFcnJvckNvZGVTdGF0dXNbY29kZV0gPz8gNTAwO1xufVxuIl19
@@ -27,3 +27,4 @@ export * from './service-registry.js';
27
27
  export * from './retention.js';
28
28
  export * from './compliance-attributes.js';
29
29
  export { leadingZeroBits, proofOfWorkHash, challengeKey, clampDifficulty, createProofOfWorkChallenge, parseProofOfWorkChallenge, verifyProofOfWork, solveProofOfWork, POW_DEFAULT_DIFFICULTY, POW_MAX_DIFFICULTY, POW_CHALLENGE_TTL_MS, type ProofOfWorkChallenge, type ProofOfWorkSolution, } from './proof-of-work.js';
30
+ export { compareSemver, isSemver, satisfiesRange } from './semver.js';
@@ -33,4 +33,5 @@ export * from './service-registry.js';
33
33
  export * from './retention.js';
34
34
  export * from './compliance-attributes.js';
35
35
  export { leadingZeroBits, proofOfWorkHash, challengeKey, clampDifficulty, createProofOfWorkChallenge, parseProofOfWorkChallenge, verifyProofOfWork, solveProofOfWork, POW_DEFAULT_DIFFICULTY, POW_MAX_DIFFICULTY, POW_CHALLENGE_TTL_MS, } from './proof-of-work.js';
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZUFBZSxFQUNmLFlBQVksRUFFWixNQUFNLEVBQ04sT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUVkLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlCQUFpQixFQUNqQixxQkFBcUIsR0FHdEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGNBQWMsRUFJZCxnQkFBZ0IsRUFDaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLHlFQUF5RTtBQUN6RSxtRUFBbUU7QUFDbkUseUVBQXlFO0FBQ3pFLDhFQUE4RTtBQUM5RSxpQ0FBaUM7QUFDakMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFDZixjQUFjLEVBQ2QsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsVUFBVSxHQUNYLE1BQU0sVUFBVSxDQUFDO0FBS2xCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBR2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBR3BCLG9CQUFvQixHQUNyQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxHQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1Isd0JBQXdCLEdBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsU0FBUyxHQUVWLE1BQU0sV0FBVyxDQUFDO0FBQ25CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsb0JBQW9CLEdBR3JCLE1BQU0sb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IHtcbiAgc2V0TG9nQ29udGV4dFByb3ZpZGVyLFxuICByZWRhY3RTZW5zaXRpdmUsXG4gIGNyZWF0ZUxvZ2dlcixcbiAgdHlwZSBMb2dnZXIsXG4gIGxvZ2dlcixcbiAgZGVmYXVsdCxcbn0gZnJvbSAnLi9sb2dnZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkta2V5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc2FmZS1yZXF1aXJlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VjdXJlLWNvbXBhcmUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmFzaC1oYW5kbGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmN1cnJlbmN5LWdhdGUuanMnO1xuZXhwb3J0IHtcbiAgc2VuZFN1Y2Nlc3MsXG4gIHNlbmRFcnJvcixcbiAgc2VuZFF1b3RhRXhjZWVkZWQsXG4gIHF1b3RhRXhjZWVkZWRNZXNzYWdlLFxuICB0eXBlIFF1b3RhRXhjZWVkZWREZXRhaWxzLFxuICBzZW5kUGFnaW5hdGVkTmVzdGVkLFxuICBwYWdpbmF0aW9uTWV0YSxcbiAgdHlwZSBQYWdpbmF0aW9uTWV0YSxcbiAgZXh0cmFjdERiRXJyb3IsXG4gIGVycm9yTWVzc2FnZSxcbiAgc2VuZEJhZFJlcXVlc3QsXG4gIHNlbmRJbnRlcm5hbEVycm9yLFxuICBwYXJzZVBhZ2luYXRpb25QYXJhbXMsXG4gIHR5cGUgUGFnaW5hdGlvblBhcmFtcyxcbiAgdHlwZSBTb3J0UGFyYW1zLFxufSBmcm9tICcuL3Jlc3BvbnNlLmpzJztcbmV4cG9ydCB7XG4gIGdldFBhcmFtLFxuICBwYXJzZVF1ZXJ5SW50LFxuICBwYXJzZVF1ZXJ5U3RyaW5nLFxuICBwYXJzZU9wdGlvbmFsRGF0ZSxcbiAgcGFyc2VQb3NpdGl2ZUludCxcbiAgcGFyc2VRdWVyeUludENsYW1wZWQsXG4gIHBhcnNlUGFnZSxcbiAgdmFsaWRhdGVCdWxrQXJyYXksXG4gIHBhcnNlUmVwb3J0SW50ZXJ2YWwsXG4gIHBhcnNlUmVwb3J0VGltZXpvbmUsXG4gIHBhcnNlV2Vla1N0YXJ0LFxuICBpc1ZhbGlkVGltZXpvbmUsXG4gIHBhcnNlRGF0ZVJhbmdlLFxuICB0eXBlIFBhZ2UsXG4gIHR5cGUgUmVwb3J0SW50ZXJ2YWwsXG4gIHR5cGUgV2Vla1N0YXJ0LFxuICBSRVBPUlRfSU5URVJWQUxTLFxuICBXRUVLX1NUQVJUUyxcbn0gZnJvbSAnLi9wYXJhbXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXJzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaWRlbnRpdHkuanMnO1xuLy8gSldLIHByaW1pdGl2ZXMuIFBsYXRmb3JtIElTIHRoZSB0b2tlbiBzaWduZXIsIHNvIGl0IGxlZ2l0aW1hdGVseSBuZWVkc1xuLy8gYHB1YmxpY0p3a0Zyb21gICsgYGRlclRvSm9zZVNpZ25hdHVyZWAgZnJvbSB0aGUgcGFja2FnZSBzdXJmYWNlLlxuLy8gYGp3a1RodW1icHJpbnRgIGFuZCBgcHVibGljS2V5RnJvbUp3a2AgYXJlIGtpZC1kZXJpdmF0aW9uL3ZlcmlmaWNhdGlvblxuLy8gcGx1bWJpbmcgdXNlZCBvbmx5IGluc2lkZSBhcGktY29yZSDigJQgZGVlcC1pbXBvcnQgdGhlbSBmcm9tIHRoZXJlIGluc3RlYWQgb2Zcbi8vIGxlYWtpbmcgdGhlbSB0byBldmVyeSBzZXJ2aWNlLlxuZXhwb3J0IHtcbiAgVVNFUl9UT0tFTl9BTEdPUklUSE0sXG4gIFVTRVJfVE9LRU5fQ1VSVkUsXG4gIEpXS1NfUEFUSCxcbiAgZGVjb2RlSnd0SGVhZGVyLFxuICBpc0p3a3NEb2N1bWVudCxcbiAgcHVibGljSndrRnJvbSxcbiAgZGVyVG9Kb3NlU2lnbmF0dXJlLFxuICBlbmNvZGVKd3NTaWduaW5nSW5wdXQsXG4gIGNvbXBhY3RKd3MsXG59IGZyb20gJy4vandrLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgUHVibGljSndrLFxuICBKd2tzRG9jdW1lbnQsXG59IGZyb20gJy4vandrLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vb2JqZWN0LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS5qcyc7XG5leHBvcnQge1xuICByZXNldFN1cHBvcnRBbGlhc2VzQ2FjaGUsXG4gIGdldFByaW1hcnlTdXBwb3J0QWxpYXMsXG4gIGdldEFsbFN1cHBvcnRBbGlhc2VzLFxuICByZXNvbHZlUmVjaXBpZW50QWxpYXMsXG4gIERFRkFVTFRfU1VQUE9SVF9BTElBUyxcbn0gZnJvbSAnLi9hbGlhcy1yZXNvbHZlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmN1cnJlbmN5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaXQuanMnO1xuZXhwb3J0IHtcbiAgZ2V0RGVmYXVsdEtleVByb3ZpZGVyLFxuICByZXNldERlZmF1bHRLZXlQcm92aWRlcixcbiAgc2V0S2V5UHJvdmlkZXIsXG4gIGVuY3J5cHRTZWNyZXQsXG4gIGRlY3J5cHRTZWNyZXQsXG4gIGlzRW5jcnlwdGVkQmxvYixcbiAgdHlwZSBFbmNyeXB0ZWRCbG9iLFxuICB0eXBlIEtleVByb3ZpZGVyLFxuICBFbnZLZXlQcm92aWRlcixcbiAgS21zS2V5UHJvdmlkZXIsXG4gIGNyZWF0ZUJhc2VLZXlQcm92aWRlcixcbiAgaW5pdFNlY3JldEVuY3J5cHRpb24sXG4gIHR5cGUgUGVyT3JnS21zQ29uZmlnLFxuICB0eXBlIFBlck9yZ0ttc1Jlc29sdmVyLFxuICBQZXJPcmdLbXNLZXlQcm92aWRlcixcbn0gZnJvbSAnLi9zZWNyZXQtZW5jcnlwdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3JldC1yb3RhdGlvbi5qcyc7XG5leHBvcnQge1xuICBzZXRDb3VudGVyRW1pdHRlcixcbiAgcmVzZXRDb3VudGVyRW1pdHRlcixcbiAgc2V0R2F1Z2VFbWl0dGVyLFxuICByZXNldEdhdWdlRW1pdHRlcixcbiAgZW1pdEdhdWdlLFxuICBlbWl0Q291bnRlcixcbn0gZnJvbSAnLi9tZXRyaWMtZW1pdHRlci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2F3cy1zY3J1Yi5qcyc7XG5leHBvcnQge1xuICBleHRyYWN0UHJlZGljYXRlLFxuICBTUERYX1BSRURJQ0FURV9UWVBFLFxufSBmcm9tICcuL2Rzc2UuanMnO1xuZXhwb3J0IHtcbiAgbWFza0xpbmUsXG4gIGxvb2tzU2Vuc2l0aXZlLFxuICBSRURBQ1RFRCxcbiAgU0VOU0lUSVZFX1ZBTFVFX1BBVFRFUk5TLFxufSBmcm9tICcuL3NlbnNpdGl2ZS1wYXR0ZXJucy5qcyc7XG5leHBvcnQge1xuICBpc1ByaXZhdGVBZGRyZXNzLFxuICBhc3NlcnRTYWZlVXJsLFxuICBzYWZlRmV0Y2gsXG4gIHR5cGUgU2FmZUZldGNoUmVzcG9uc2UsXG59IGZyb20gJy4vc3NyZi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Vudi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcmVnaXN0cnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXRlbnRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wbGlhbmNlLWF0dHJpYnV0ZXMuanMnO1xuZXhwb3J0IHtcbiAgbGVhZGluZ1plcm9CaXRzLFxuICBwcm9vZk9mV29ya0hhc2gsXG4gIGNoYWxsZW5nZUtleSxcbiAgY2xhbXBEaWZmaWN1bHR5LFxuICBjcmVhdGVQcm9vZk9mV29ya0NoYWxsZW5nZSxcbiAgcGFyc2VQcm9vZk9mV29ya0NoYWxsZW5nZSxcbiAgdmVyaWZ5UHJvb2ZPZldvcmssXG4gIHNvbHZlUHJvb2ZPZldvcmssXG4gIFBPV19ERUZBVUxUX0RJRkZJQ1VMVFksXG4gIFBPV19NQVhfRElGRklDVUxUWSxcbiAgUE9XX0NIQUxMRU5HRV9UVExfTVMsXG4gIHR5cGUgUHJvb2ZPZldvcmtDaGFsbGVuZ2UsXG4gIHR5cGUgUHJvb2ZPZldvcmtTb2x1dGlvbixcbn0gZnJvbSAnLi9wcm9vZi1vZi13b3JrLmpzJztcbiJdfQ==
36
+ export { compareSemver, isSemver, satisfiesRange } from './semver.js';
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZUFBZSxFQUNmLFlBQVksRUFFWixNQUFNLEVBQ04sT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixtQkFBbUIsRUFDbkIsY0FBYyxFQUVkLGNBQWMsRUFDZCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlCQUFpQixFQUNqQixxQkFBcUIsR0FHdEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFFBQVEsRUFDUixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGNBQWMsRUFJZCxnQkFBZ0IsRUFDaEIsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLHlFQUF5RTtBQUN6RSxtRUFBbUU7QUFDbkUseUVBQXlFO0FBQ3pFLDhFQUE4RTtBQUM5RSxpQ0FBaUM7QUFDakMsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGVBQWUsRUFDZixjQUFjLEVBQ2QsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsVUFBVSxHQUNYLE1BQU0sVUFBVSxDQUFDO0FBS2xCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIscUJBQXFCLEdBQ3RCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQztBQUMzQixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBR2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsb0JBQW9CLEVBR3BCLG9CQUFvQixHQUNyQixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxHQUNaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUNwQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsUUFBUSxFQUNSLGNBQWMsRUFDZCxRQUFRLEVBQ1Isd0JBQXdCLEdBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsU0FBUyxHQUVWLE1BQU0sV0FBVyxDQUFDO0FBQ25CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsb0JBQW9CLEdBR3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmV4cG9ydCB7XG4gIHNldExvZ0NvbnRleHRQcm92aWRlcixcbiAgcmVkYWN0U2Vuc2l0aXZlLFxuICBjcmVhdGVMb2dnZXIsXG4gIHR5cGUgTG9nZ2VyLFxuICBsb2dnZXIsXG4gIGRlZmF1bHQsXG59IGZyb20gJy4vbG9nZ2VyLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpLWtleS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NhZmUtcmVxdWlyZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3VyZS1jb21wYXJlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY3Jhc2gtaGFuZGxlcnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25jdXJyZW5jeS1nYXRlLmpzJztcbmV4cG9ydCB7XG4gIHNlbmRTdWNjZXNzLFxuICBzZW5kRXJyb3IsXG4gIHNlbmRRdW90YUV4Y2VlZGVkLFxuICBxdW90YUV4Y2VlZGVkTWVzc2FnZSxcbiAgdHlwZSBRdW90YUV4Y2VlZGVkRGV0YWlscyxcbiAgc2VuZFBhZ2luYXRlZE5lc3RlZCxcbiAgcGFnaW5hdGlvbk1ldGEsXG4gIHR5cGUgUGFnaW5hdGlvbk1ldGEsXG4gIGV4dHJhY3REYkVycm9yLFxuICBlcnJvck1lc3NhZ2UsXG4gIHNlbmRCYWRSZXF1ZXN0LFxuICBzZW5kSW50ZXJuYWxFcnJvcixcbiAgcGFyc2VQYWdpbmF0aW9uUGFyYW1zLFxuICB0eXBlIFBhZ2luYXRpb25QYXJhbXMsXG4gIHR5cGUgU29ydFBhcmFtcyxcbn0gZnJvbSAnLi9yZXNwb25zZS5qcyc7XG5leHBvcnQge1xuICBnZXRQYXJhbSxcbiAgcGFyc2VRdWVyeUludCxcbiAgcGFyc2VRdWVyeVN0cmluZyxcbiAgcGFyc2VPcHRpb25hbERhdGUsXG4gIHBhcnNlUG9zaXRpdmVJbnQsXG4gIHBhcnNlUXVlcnlJbnRDbGFtcGVkLFxuICBwYXJzZVBhZ2UsXG4gIHZhbGlkYXRlQnVsa0FycmF5LFxuICBwYXJzZVJlcG9ydEludGVydmFsLFxuICBwYXJzZVJlcG9ydFRpbWV6b25lLFxuICBwYXJzZVdlZWtTdGFydCxcbiAgaXNWYWxpZFRpbWV6b25lLFxuICBwYXJzZURhdGVSYW5nZSxcbiAgdHlwZSBQYWdlLFxuICB0eXBlIFJlcG9ydEludGVydmFsLFxuICB0eXBlIFdlZWtTdGFydCxcbiAgUkVQT1JUX0lOVEVSVkFMUyxcbiAgV0VFS19TVEFSVFMsXG59IGZyb20gJy4vcGFyYW1zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2lkZW50aXR5LmpzJztcbi8vIEpXSyBwcmltaXRpdmVzLiBQbGF0Zm9ybSBJUyB0aGUgdG9rZW4gc2lnbmVyLCBzbyBpdCBsZWdpdGltYXRlbHkgbmVlZHNcbi8vIGBwdWJsaWNKd2tGcm9tYCArIGBkZXJUb0pvc2VTaWduYXR1cmVgIGZyb20gdGhlIHBhY2thZ2Ugc3VyZmFjZS5cbi8vIGBqd2tUaHVtYnByaW50YCBhbmQgYHB1YmxpY0tleUZyb21Kd2tgIGFyZSBraWQtZGVyaXZhdGlvbi92ZXJpZmljYXRpb25cbi8vIHBsdW1iaW5nIHVzZWQgb25seSBpbnNpZGUgYXBpLWNvcmUg4oCUIGRlZXAtaW1wb3J0IHRoZW0gZnJvbSB0aGVyZSBpbnN0ZWFkIG9mXG4vLyBsZWFraW5nIHRoZW0gdG8gZXZlcnkgc2VydmljZS5cbmV4cG9ydCB7XG4gIFVTRVJfVE9LRU5fQUxHT1JJVEhNLFxuICBVU0VSX1RPS0VOX0NVUlZFLFxuICBKV0tTX1BBVEgsXG4gIGRlY29kZUp3dEhlYWRlcixcbiAgaXNKd2tzRG9jdW1lbnQsXG4gIHB1YmxpY0p3a0Zyb20sXG4gIGRlclRvSm9zZVNpZ25hdHVyZSxcbiAgZW5jb2RlSndzU2lnbmluZ0lucHV0LFxuICBjb21wYWN0SndzLFxufSBmcm9tICcuL2p3ay5qcyc7XG5leHBvcnQgdHlwZSB7XG4gIFB1YmxpY0p3ayxcbiAgSndrc0RvY3VtZW50LFxufSBmcm9tICcuL2p3ay5qcyc7XG5leHBvcnQgKiBmcm9tICcuL29iamVjdC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUuanMnO1xuZXhwb3J0IHtcbiAgcmVzZXRTdXBwb3J0QWxpYXNlc0NhY2hlLFxuICBnZXRQcmltYXJ5U3VwcG9ydEFsaWFzLFxuICBnZXRBbGxTdXBwb3J0QWxpYXNlcyxcbiAgcmVzb2x2ZVJlY2lwaWVudEFsaWFzLFxuICBERUZBVUxUX1NVUFBPUlRfQUxJQVMsXG59IGZyb20gJy4vYWxpYXMtcmVzb2x2ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25jdXJyZW5jeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1ZGl0LmpzJztcbmV4cG9ydCB7XG4gIGdldERlZmF1bHRLZXlQcm92aWRlcixcbiAgcmVzZXREZWZhdWx0S2V5UHJvdmlkZXIsXG4gIHNldEtleVByb3ZpZGVyLFxuICBlbmNyeXB0U2VjcmV0LFxuICBkZWNyeXB0U2VjcmV0LFxuICBpc0VuY3J5cHRlZEJsb2IsXG4gIHR5cGUgRW5jcnlwdGVkQmxvYixcbiAgdHlwZSBLZXlQcm92aWRlcixcbiAgRW52S2V5UHJvdmlkZXIsXG4gIEttc0tleVByb3ZpZGVyLFxuICBjcmVhdGVCYXNlS2V5UHJvdmlkZXIsXG4gIGluaXRTZWNyZXRFbmNyeXB0aW9uLFxuICB0eXBlIFBlck9yZ0ttc0NvbmZpZyxcbiAgdHlwZSBQZXJPcmdLbXNSZXNvbHZlcixcbiAgUGVyT3JnS21zS2V5UHJvdmlkZXIsXG59IGZyb20gJy4vc2VjcmV0LWVuY3J5cHRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWNyZXQtcm90YXRpb24uanMnO1xuZXhwb3J0IHtcbiAgc2V0Q291bnRlckVtaXR0ZXIsXG4gIHJlc2V0Q291bnRlckVtaXR0ZXIsXG4gIHNldEdhdWdlRW1pdHRlcixcbiAgcmVzZXRHYXVnZUVtaXR0ZXIsXG4gIGVtaXRHYXVnZSxcbiAgZW1pdENvdW50ZXIsXG59IGZyb20gJy4vbWV0cmljLWVtaXR0ZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hd3Mtc2NydWIuanMnO1xuZXhwb3J0IHtcbiAgZXh0cmFjdFByZWRpY2F0ZSxcbiAgU1BEWF9QUkVESUNBVEVfVFlQRSxcbn0gZnJvbSAnLi9kc3NlLmpzJztcbmV4cG9ydCB7XG4gIG1hc2tMaW5lLFxuICBsb29rc1NlbnNpdGl2ZSxcbiAgUkVEQUNURUQsXG4gIFNFTlNJVElWRV9WQUxVRV9QQVRURVJOUyxcbn0gZnJvbSAnLi9zZW5zaXRpdmUtcGF0dGVybnMuanMnO1xuZXhwb3J0IHtcbiAgaXNQcml2YXRlQWRkcmVzcyxcbiAgYXNzZXJ0U2FmZVVybCxcbiAgc2FmZUZldGNoLFxuICB0eXBlIFNhZmVGZXRjaFJlc3BvbnNlLFxufSBmcm9tICcuL3NzcmYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlZ2lzdHJ5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmV0ZW50aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcGxpYW5jZS1hdHRyaWJ1dGVzLmpzJztcbmV4cG9ydCB7XG4gIGxlYWRpbmdaZXJvQml0cyxcbiAgcHJvb2ZPZldvcmtIYXNoLFxuICBjaGFsbGVuZ2VLZXksXG4gIGNsYW1wRGlmZmljdWx0eSxcbiAgY3JlYXRlUHJvb2ZPZldvcmtDaGFsbGVuZ2UsXG4gIHBhcnNlUHJvb2ZPZldvcmtDaGFsbGVuZ2UsXG4gIHZlcmlmeVByb29mT2ZXb3JrLFxuICBzb2x2ZVByb29mT2ZXb3JrLFxuICBQT1dfREVGQVVMVF9ESUZGSUNVTFRZLFxuICBQT1dfTUFYX0RJRkZJQ1VMVFksXG4gIFBPV19DSEFMTEVOR0VfVFRMX01TLFxuICB0eXBlIFByb29mT2ZXb3JrQ2hhbGxlbmdlLFxuICB0eXBlIFByb29mT2ZXb3JrU29sdXRpb24sXG59IGZyb20gJy4vcHJvb2Ytb2Ytd29yay5qcyc7XG5leHBvcnQgeyBjb21wYXJlU2VtdmVyLCBpc1NlbXZlciwgc2F0aXNmaWVzUmFuZ2UgfSBmcm9tICcuL3NlbXZlci5qcyc7XG4iXX0=
@@ -0,0 +1,18 @@
1
+ /** True for a full `x.y.z[-pre][+build]` version (a leading `v` is allowed). */
2
+ export declare function isSemver(v: string): boolean;
3
+ /**
4
+ * -1 / 0 / 1 ordering of two versions per SemVer §11: numeric x.y.z, a
5
+ * prerelease sorts before its release, and prerelease identifiers compare
6
+ * numerically when both are numeric (`rc.2` < `rc.10`), else as ASCII, with a
7
+ * numeric identifier below an alphanumeric one and a shorter set below a
8
+ * longer one that it prefixes. Throws on a value that isn't a version.
9
+ */
10
+ export declare function compareSemver(a: string, b: string): -1 | 0 | 1;
11
+ /**
12
+ * Whether `version` satisfies an `engines`-style range: comparator sets joined
13
+ * by `||`, each a space-separated AND of `>=`, `>`, `<=`, `<`, `=`, `^`, `~` or
14
+ * bare versions (partials like `>= 26` allowed). `*` / empty match anything.
15
+ * Returns null when the range uses syntax outside that (hyphen ranges, `x`
16
+ * wildcards), so the caller can decide rather than guess.
17
+ */
18
+ export declare function satisfiesRange(version: string, range: string): boolean | null;