footprintjs 6.1.0 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/trace.js CHANGED
@@ -5,19 +5,28 @@
5
5
  *
6
6
  * @example
7
7
  * ```typescript
8
- * import { parseRuntimeStageId, findLastWriter, KeyedRecorder, SequenceRecorder } from 'footprintjs/trace';
8
+ * import { parseRuntimeStageId, findLastWriter, KeyedStore, SequenceStore } from 'footprintjs/trace';
9
9
  *
10
10
  * // Parse a runtimeStageId
11
11
  * const { stageId, executionIndex } = parseRuntimeStageId('call-llm#5');
12
12
  *
13
- * // Backtrack: who wrote 'systemPrompt' before stage at idx 8?
13
+ * // Backtrack: who wrote 'systemPrompt' before commit at idx 8?
14
14
  * const writer = findLastWriter(commitLog, 'systemPrompt', 8);
15
15
  *
16
- * // Build a keyed recorder (1:1 one entry per step)
17
- * class MyRecorder extends KeyedRecorder<MyEntry> { ... }
16
+ * // v5 primary API: compose a Store as a field (one purpose per recorder).
17
+ * // KeyedStore<T> 1:1 (one entry per step)
18
+ * class MyRecorder {
19
+ * readonly id = 'my-recorder';
20
+ * private store = new KeyedStore<MyEntry>();
21
+ * onWrite(e) { this.store.set(e.runtimeStageId, { ... }); }
22
+ * }
18
23
  *
19
- * // Build a sequence recorder (1:N multiple entries per step, ordering matters)
20
- * class AuditRecorder extends SequenceRecorder<AuditEntry> { ... }
24
+ * // SequenceStore<T> 1:N (multiple entries per step, ordering matters)
25
+ * class AuditRecorder {
26
+ * readonly id = 'audit';
27
+ * private store = new SequenceStore<AuditEntry>();
28
+ * onRead(e) { this.store.push({ runtimeStageId: e.runtimeStageId, ... }); }
29
+ * }
21
30
  * ```
22
31
  */
23
32
  export { buildRuntimeStageId, createExecutionCounter, parseRuntimeStageId, splitStageId, } from './lib/engine/runtimeStageId.js';
@@ -48,4 +57,4 @@ export { TopologyRecorder, topologyRecorder } from './lib/recorder/TopologyRecor
48
57
  export { InOutRecorder, inOutRecorder, ROOT_RUNTIME_STAGE_ID, ROOT_SUBFLOW_ID } from './lib/recorder/InOutRecorder.js';
49
58
  export { QualityRecorder } from './lib/recorder/QualityRecorder.js';
50
59
  export { formatQualityTrace, qualityTrace } from './lib/recorder/qualityTrace.js';
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUlILE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixZQUFZLEdBQ2IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUt4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RixtRUFBbUU7QUFDbkUsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxvRUFBb0U7QUFDcEUsK0RBQStEO0FBQy9ELGdFQUFnRTtBQUNoRSx3REFBd0Q7QUFDeEQseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRSxvRkFBb0Y7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsdUVBQXVFO0FBQ3ZFLDZFQUE2RTtBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUt4RixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUl2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmb290cHJpbnRqcy90cmFjZSDigJQgRXhlY3V0aW9uIHRyYWNpbmcsIGRlYnVnZ2luZywgYW5kIGJhY2t0cmFja2luZyB1dGlsaXRpZXMuXG4gKlxuICogUnVudGltZSBzdGFnZSBJRHMsIGNvbW1pdCBsb2cgcXVlcmllcywgYW5kIHJlY29yZGVyIGJhc2UgY2xhc3Nlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcGFyc2VSdW50aW1lU3RhZ2VJZCwgZmluZExhc3RXcml0ZXIsIEtleWVkUmVjb3JkZXIsIFNlcXVlbmNlUmVjb3JkZXIgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogLy8gUGFyc2UgYSBydW50aW1lU3RhZ2VJZFxuICogY29uc3QgeyBzdGFnZUlkLCBleGVjdXRpb25JbmRleCB9ID0gcGFyc2VSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0jNScpO1xuICpcbiAqIC8vIEJhY2t0cmFjazogd2hvIHdyb3RlICdzeXN0ZW1Qcm9tcHQnIGJlZm9yZSBzdGFnZSBhdCBpZHggOD9cbiAqIGNvbnN0IHdyaXRlciA9IGZpbmRMYXN0V3JpdGVyKGNvbW1pdExvZywgJ3N5c3RlbVByb21wdCcsIDgpO1xuICpcbiAqIC8vIEJ1aWxkIGEga2V5ZWQgcmVjb3JkZXIgKDE6MSDigJQgb25lIGVudHJ5IHBlciBzdGVwKVxuICogY2xhc3MgTXlSZWNvcmRlciBleHRlbmRzIEtleWVkUmVjb3JkZXI8TXlFbnRyeT4geyAuLi4gfVxuICpcbiAqIC8vIEJ1aWxkIGEgc2VxdWVuY2UgcmVjb3JkZXIgKDE6TiDigJQgbXVsdGlwbGUgZW50cmllcyBwZXIgc3RlcCwgb3JkZXJpbmcgbWF0dGVycylcbiAqIGNsYXNzIEF1ZGl0UmVjb3JkZXIgZXh0ZW5kcyBTZXF1ZW5jZVJlY29yZGVyPEF1ZGl0RW50cnk+IHsgLi4uIH1cbiAqIGBgYFxuICovXG5cbi8vIFJ1bnRpbWUgc3RhZ2UgSUQg4oCUIHVuaXF1ZSBleGVjdXRpb24gc3RlcCBpZGVudGlmaWVyc1xuZXhwb3J0IHR5cGUgeyBFeGVjdXRpb25Db3VudGVyIH0gZnJvbSAnLi9saWIvZW5naW5lL3J1bnRpbWVTdGFnZUlkLmpzJztcbmV4cG9ydCB7XG4gIGJ1aWxkUnVudGltZVN0YWdlSWQsXG4gIGNyZWF0ZUV4ZWN1dGlvbkNvdW50ZXIsXG4gIHBhcnNlUnVudGltZVN0YWdlSWQsXG4gIHNwbGl0U3RhZ2VJZCxcbn0gZnJvbSAnLi9saWIvZW5naW5lL3J1bnRpbWVTdGFnZUlkLmpzJztcblxuLy8gd2Fsa1N1YmZsb3dTcGVjIOKAlCBmbGF0IG9yZGVyZWQgdHJhdmVyc2FsIG9mIGEgc3ViZmxvdydzIHN0cnVjdHVyZVxuLy8gKGNvbnN1bWUgdmlhIFN0cnVjdHVyZVJlY29yZGVyLm9uU3ViZmxvd01vdW50ZWQncyBzdWJmbG93U3BlYyBwYXlsb2FkKVxuZXhwb3J0IHR5cGUgeyBXYWxrZXJJdGVtLCBXYWxrZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL3dhbGtTdWJmbG93U3BlYy5qcyc7XG5leHBvcnQgeyB3YWxrU3ViZmxvd1NwZWMgfSBmcm9tICcuL2xpYi9lbmdpbmUvd2Fsa1N1YmZsb3dTcGVjLmpzJztcblxuLy8gQ29tbWl0IGxvZyBxdWVyaWVzIOKAlCB0eXBlZCB1dGlsaXRpZXMgZm9yIGJhY2t0cmFja2luZ1xuZXhwb3J0IHsgZmluZENvbW1pdCwgZmluZENvbW1pdHMsIGZpbmRMYXN0V3JpdGVyIH0gZnJvbSAnLi9saWIvbWVtb3J5L2NvbW1pdExvZ1V0aWxzLmpzJztcblxuLy8gQ2F1c2FsIGNoYWluIOKAlCBiYWNrd2FyZCBwcm9ncmFtIHNsaWNpbmcgb24gY29tbWl0IGxvZyAoREFHKVxuZXhwb3J0IHR5cGUgeyBDYXVzYWxDaGFpbk9wdGlvbnMsIENhdXNhbE5vZGUsIEtleXNSZWFkTG9va3VwIH0gZnJvbSAnLi9saWIvbWVtb3J5L2JhY2t0cmFjay5qcyc7XG5leHBvcnQgeyBjYXVzYWxDaGFpbiwgZmxhdHRlbkNhdXNhbERBRywgZm9ybWF0Q2F1c2FsQ2hhaW4gfSBmcm9tICcuL2xpYi9tZW1vcnkvYmFja3RyYWNrLmpzJztcblxuLy8g4pSA4pSAIHY1IFN0b3JlcyAoY29uY3JldGUsIGNvbXBvc2FibGUg4oCUIHByaW1hcnkgcmVjb3JkZXIgQVBJKSDilIDilIDilIDilIDilIBcbi8vIENvbXBvc2UgdGhlc2UgdmlhIGBuZXcgU3RvcmU8VD4oKWAgYXMgYSBmaWVsZCBvbiB5b3VyIHJlY29yZGVyXG4vLyBjbGFzcy4gT25lIHB1cnBvc2UgcGVyIHJlY29yZGVyOiBzdG9yZXMgYXJlIHN0b3JhZ2U7IHJlY29yZGVyc1xuLy8gYXJlIGV2ZW50LWhvb2sgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9ucy5cbmV4cG9ydCB7IEJvdW5kYXJ5U3RhdGVTdG9yZSB9IGZyb20gJy4vbGliL3JlY29yZGVyL0JvdW5kYXJ5U3RhdGVTdG9yZS5qcyc7XG5leHBvcnQgeyBLZXllZFN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRTdG9yZS5qcyc7XG5leHBvcnQgeyBTZXF1ZW5jZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvU2VxdWVuY2VTdG9yZS5qcyc7XG5cbi8vIOKUgOKUgCB2NS4xIENvbW1pdCBncm91cGluZyBwcmltaXRpdmUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBJbnRlcnZhbCBpbmRleCBvdmVyIGNvbW1pdCBpbmRpY2VzLiBCdWlsdCBpbmNyZW1lbnRhbGx5IGR1cmluZ1xuLy8gdHJhdmVyc2FsOiBvcGVuKCkgb24gYm91bmRhcnkgZW50cnksIGNsb3NlKCkgb24gZXhpdC4gUXVlcnkgYXQgYW55XG4vLyBjb21taXQgcG9zaXRpb24gd2l0aCBlbmNsb3NpbmcoKS9vdmVybGFwcGluZygpLiBHZW5lcmljIG92ZXIgVExhYmVsXG4vLyDigJQgZm9vdHByaW50anMgb3ducyBaRVJPIGtub3dsZWRnZSBvZiB3aGF0IGNvbnN1bWVycyB1c2UgYXMgbGFiZWxzLlxuLy8gU2VlIGRvY3MvZGVzaWduL2NvbW1pdC1yYW5nZS1pbmRleC5tZCBmb3IgdGhlIGZ1bGwgY29udHJhY3QuXG5leHBvcnQgdHlwZSB7IFJhbmdlRW50cnksIFJhbmdlVG9rZW4gfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Db21taXRSYW5nZUluZGV4LmpzJztcbmV4cG9ydCB7IENvbW1pdFJhbmdlSW5kZXggfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Db21taXRSYW5nZUluZGV4LmpzJztcblxuLy8g4pSA4pSAIEFic3RyYWN0IGJhc2VzIChERVBSRUNBVEVEIGluIHY1IOKAlCBzbGF0ZWQgZm9yIHJlbW92YWwpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gS2VwdCBkdXJpbmcgdGhlIHY1IG1pZ3JhdGlvbiB3aW5kb3cgZm9yIGRvd25zdHJlYW0gY29uc3VtZXJzXG4vLyAoYWdlbnRmb290cHJpbnQsIGFnZW50Zm9vdHByaW50LWxlbnMsIGV0Yy4pIHRoYXQgc3RpbGwgZXh0ZW5kXG4vLyB0aGVtLiBNaWdyYXRlIHRvIHRoZSBjb3JyZXNwb25kaW5nIFN0b3JlIGNsYXNzIGFib3ZlLlxuLy8gS2V5ZWRSZWNvcmRlciDigJQgYmFzZSBjbGFzcyBmb3IgMToxIE1hcC1iYXNlZCByZWNvcmRlcnNcbmV4cG9ydCB7IEtleWVkUmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9LZXllZFJlY29yZGVyLmpzJztcblxuLy8gU2VxdWVuY2VSZWNvcmRlciDigJQgYmFzZSBjbGFzcyBmb3IgMTpOIG9yZGVyZWQgc2VxdWVuY2UgcmVjb3JkZXJzIHdpdGgga2V5ZWQgaW5kZXhcbmV4cG9ydCB7IFNlcXVlbmNlUmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVJlY29yZGVyLmpzJztcblxuLy8gQm91bmRhcnlTdGF0ZVRyYWNrZXIg4oCUIGJhc2UgY2xhc3MgZm9yIHRyYW5zaWVudCBicmFja2V0LXNjb3BlZCBzdGF0ZVxuLy8gKGxpdmUgc3RhdGUgRFVSSU5HIGEgbWF0Y2hlZCBbc3RhcnQsIHN0b3BdIGV2ZW50IGludGVydmFsOyBjbGVhcnMgb24gc3RvcClcbmV4cG9ydCB7IEJvdW5kYXJ5U3RhdGVUcmFja2VyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVRyYWNrZXIuanMnO1xuXG4vLyBUb3BvbG9neVJlY29yZGVyIOKAlCBjb21wb3NpdGlvbiBncmFwaCBhY2N1bXVsYXRvciAoc3ViZmxvd3MgKyBjb250cm9sLWZsb3cgZWRnZXMpXG5leHBvcnQgdHlwZSB7XG4gIFRvcG9sb2d5LFxuICBUb3BvbG9neUVkZ2UsXG4gIFRvcG9sb2d5SW5jb21pbmdLaW5kLFxuICBUb3BvbG9neU5vZGUsXG4gIFRvcG9sb2d5UmVjb3JkZXJPcHRpb25zLFxufSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFRvcG9sb2d5UmVjb3JkZXIsIHRvcG9sb2d5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcblxuLy8gSW5PdXRSZWNvcmRlciDigJQgY2hhcnQgaW4vb3V0IHN0cmVhbSAoZW50cnkvZXhpdCBwYWlycyBhdCBldmVyeSBjaGFydCBib3VuZGFyeSxcbi8vIGluY2x1ZGluZyB0aGUgdG9wLWxldmVsIHJ1biBhbmQgZXZlcnkgc3ViZmxvdylcbmV4cG9ydCB0eXBlIHsgSW5PdXRFbnRyeSwgSW5PdXRQaGFzZSwgSW5PdXRSZWNvcmRlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IEluT3V0UmVjb3JkZXIsIGluT3V0UmVjb3JkZXIsIFJPT1RfUlVOVElNRV9TVEFHRV9JRCwgUk9PVF9TVUJGTE9XX0lEIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5cbi8vIFF1YWxpdHlSZWNvcmRlciDigJQgcGVyLXN0ZXAgcXVhbGl0eSBzY29yaW5nIHdpdGggYmFja3RyYWNraW5nXG5leHBvcnQgdHlwZSB7IFF1YWxpdHlFbnRyeSwgUXVhbGl0eVJlY29yZGVyT3B0aW9ucywgUXVhbGl0eVNjb3JpbmdGbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBRdWFsaXR5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIuanMnO1xuXG4vLyBxdWFsaXR5VHJhY2Ug4oCUIFF1YWxpdHkgU3RhY2sgVHJhY2UgKGJhY2t0cmFjayBmcm9tIGxvdy1zY29yaW5nIHN0ZXBzKVxuZXhwb3J0IHR5cGUgeyBRdWFsaXR5RnJhbWUsIFF1YWxpdHlTdGFja1RyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbmV4cG9ydCB7IGZvcm1hdFF1YWxpdHlUcmFjZSwgcXVhbGl0eVRyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUlILE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixZQUFZLEdBQ2IsTUFBTSxnQ0FBZ0MsQ0FBQztBQUt4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsd0RBQXdEO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RixtRUFBbUU7QUFDbkUsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQVNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV0RSxvRUFBb0U7QUFDcEUsK0RBQStEO0FBQy9ELGdFQUFnRTtBQUNoRSx3REFBd0Q7QUFDeEQseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRSxvRkFBb0Y7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsdUVBQXVFO0FBQ3ZFLDZFQUE2RTtBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUt4RixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUl2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmb290cHJpbnRqcy90cmFjZSDigJQgRXhlY3V0aW9uIHRyYWNpbmcsIGRlYnVnZ2luZywgYW5kIGJhY2t0cmFja2luZyB1dGlsaXRpZXMuXG4gKlxuICogUnVudGltZSBzdGFnZSBJRHMsIGNvbW1pdCBsb2cgcXVlcmllcywgYW5kIHJlY29yZGVyIGJhc2UgY2xhc3Nlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcGFyc2VSdW50aW1lU3RhZ2VJZCwgZmluZExhc3RXcml0ZXIsIEtleWVkU3RvcmUsIFNlcXVlbmNlU3RvcmUgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogLy8gUGFyc2UgYSBydW50aW1lU3RhZ2VJZFxuICogY29uc3QgeyBzdGFnZUlkLCBleGVjdXRpb25JbmRleCB9ID0gcGFyc2VSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0jNScpO1xuICpcbiAqIC8vIEJhY2t0cmFjazogd2hvIHdyb3RlICdzeXN0ZW1Qcm9tcHQnIGJlZm9yZSBjb21taXQgYXQgaWR4IDg/XG4gKiBjb25zdCB3cml0ZXIgPSBmaW5kTGFzdFdyaXRlcihjb21taXRMb2csICdzeXN0ZW1Qcm9tcHQnLCA4KTtcbiAqXG4gKiAvLyB2NSBwcmltYXJ5IEFQSTogY29tcG9zZSBhIFN0b3JlIGFzIGEgZmllbGQgKG9uZSBwdXJwb3NlIHBlciByZWNvcmRlcikuXG4gKiAvLyBLZXllZFN0b3JlPFQ+IOKAlCAxOjEgKG9uZSBlbnRyeSBwZXIgc3RlcClcbiAqIGNsYXNzIE15UmVjb3JkZXIge1xuICogICByZWFkb25seSBpZCA9ICdteS1yZWNvcmRlcic7XG4gKiAgIHByaXZhdGUgc3RvcmUgPSBuZXcgS2V5ZWRTdG9yZTxNeUVudHJ5PigpO1xuICogICBvbldyaXRlKGUpIHsgdGhpcy5zdG9yZS5zZXQoZS5ydW50aW1lU3RhZ2VJZCwgeyAuLi4gfSk7IH1cbiAqIH1cbiAqXG4gKiAvLyBTZXF1ZW5jZVN0b3JlPFQ+IOKAlCAxOk4gKG11bHRpcGxlIGVudHJpZXMgcGVyIHN0ZXAsIG9yZGVyaW5nIG1hdHRlcnMpXG4gKiBjbGFzcyBBdWRpdFJlY29yZGVyIHtcbiAqICAgcmVhZG9ubHkgaWQgPSAnYXVkaXQnO1xuICogICBwcml2YXRlIHN0b3JlID0gbmV3IFNlcXVlbmNlU3RvcmU8QXVkaXRFbnRyeT4oKTtcbiAqICAgb25SZWFkKGUpIHsgdGhpcy5zdG9yZS5wdXNoKHsgcnVudGltZVN0YWdlSWQ6IGUucnVudGltZVN0YWdlSWQsIC4uLiB9KTsgfVxuICogfVxuICogYGBgXG4gKi9cblxuLy8gUnVudGltZSBzdGFnZSBJRCDigJQgdW5pcXVlIGV4ZWN1dGlvbiBzdGVwIGlkZW50aWZpZXJzXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvbkNvdW50ZXIgfSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuZXhwb3J0IHtcbiAgYnVpbGRSdW50aW1lU3RhZ2VJZCxcbiAgY3JlYXRlRXhlY3V0aW9uQ291bnRlcixcbiAgcGFyc2VSdW50aW1lU3RhZ2VJZCxcbiAgc3BsaXRTdGFnZUlkLFxufSBmcm9tICcuL2xpYi9lbmdpbmUvcnVudGltZVN0YWdlSWQuanMnO1xuXG4vLyB3YWxrU3ViZmxvd1NwZWMg4oCUIGZsYXQgb3JkZXJlZCB0cmF2ZXJzYWwgb2YgYSBzdWJmbG93J3Mgc3RydWN0dXJlXG4vLyAoY29uc3VtZSB2aWEgU3RydWN0dXJlUmVjb3JkZXIub25TdWJmbG93TW91bnRlZCdzIHN1YmZsb3dTcGVjIHBheWxvYWQpXG5leHBvcnQgdHlwZSB7IFdhbGtlckl0ZW0sIFdhbGtlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9lbmdpbmUvd2Fsa1N1YmZsb3dTcGVjLmpzJztcbmV4cG9ydCB7IHdhbGtTdWJmbG93U3BlYyB9IGZyb20gJy4vbGliL2VuZ2luZS93YWxrU3ViZmxvd1NwZWMuanMnO1xuXG4vLyBDb21taXQgbG9nIHF1ZXJpZXMg4oCUIHR5cGVkIHV0aWxpdGllcyBmb3IgYmFja3RyYWNraW5nXG5leHBvcnQgeyBmaW5kQ29tbWl0LCBmaW5kQ29tbWl0cywgZmluZExhc3RXcml0ZXIgfSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuXG4vLyBDYXVzYWwgY2hhaW4g4oCUIGJhY2t3YXJkIHByb2dyYW0gc2xpY2luZyBvbiBjb21taXQgbG9nIChEQUcpXG5leHBvcnQgdHlwZSB7IENhdXNhbENoYWluT3B0aW9ucywgQ2F1c2FsTm9kZSwgS2V5c1JlYWRMb29rdXAgfSBmcm9tICcuL2xpYi9tZW1vcnkvYmFja3RyYWNrLmpzJztcbmV4cG9ydCB7IGNhdXNhbENoYWluLCBmbGF0dGVuQ2F1c2FsREFHLCBmb3JtYXRDYXVzYWxDaGFpbiB9IGZyb20gJy4vbGliL21lbW9yeS9iYWNrdHJhY2suanMnO1xuXG4vLyDilIDilIAgdjUgU3RvcmVzIChjb25jcmV0ZSwgY29tcG9zYWJsZSDigJQgcHJpbWFyeSByZWNvcmRlciBBUEkpIOKUgOKUgOKUgOKUgOKUgFxuLy8gQ29tcG9zZSB0aGVzZSB2aWEgYG5ldyBTdG9yZTxUPigpYCBhcyBhIGZpZWxkIG9uIHlvdXIgcmVjb3JkZXJcbi8vIGNsYXNzLiBPbmUgcHVycG9zZSBwZXIgcmVjb3JkZXI6IHN0b3JlcyBhcmUgc3RvcmFnZTsgcmVjb3JkZXJzXG4vLyBhcmUgZXZlbnQtaG9vayBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25zLlxuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB7IEtleWVkU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9LZXllZFN0b3JlLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVN0b3JlLmpzJztcblxuLy8g4pSA4pSAIHY1LjEgQ29tbWl0IGdyb3VwaW5nIHByaW1pdGl2ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEludGVydmFsIGluZGV4IG92ZXIgY29tbWl0IGluZGljZXMuIEJ1aWx0IGluY3JlbWVudGFsbHkgZHVyaW5nXG4vLyB0cmF2ZXJzYWw6IG9wZW4oKSBvbiBib3VuZGFyeSBlbnRyeSwgY2xvc2UoKSBvbiBleGl0LiBRdWVyeSBhdCBhbnlcbi8vIGNvbW1pdCBwb3NpdGlvbiB3aXRoIGVuY2xvc2luZygpL292ZXJsYXBwaW5nKCkuIEdlbmVyaWMgb3ZlciBUTGFiZWxcbi8vIOKAlCBmb290cHJpbnRqcyBvd25zIFpFUk8ga25vd2xlZGdlIG9mIHdoYXQgY29uc3VtZXJzIHVzZSBhcyBsYWJlbHMuXG4vLyBTZWUgZG9jcy9kZXNpZ24vY29tbWl0LXJhbmdlLWluZGV4Lm1kIGZvciB0aGUgZnVsbCBjb250cmFjdC5cbmV4cG9ydCB0eXBlIHsgUmFuZ2VFbnRyeSwgUmFuZ2VUb2tlbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuZXhwb3J0IHsgQ29tbWl0UmFuZ2VJbmRleCB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuXG4vLyDilIDilIAgQWJzdHJhY3QgYmFzZXMgKERFUFJFQ0FURUQgaW4gdjUg4oCUIHNsYXRlZCBmb3IgcmVtb3ZhbCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBLZXB0IGR1cmluZyB0aGUgdjUgbWlncmF0aW9uIHdpbmRvdyBmb3IgZG93bnN0cmVhbSBjb25zdW1lcnNcbi8vIChhZ2VudGZvb3RwcmludCwgYWdlbnRmb290cHJpbnQtbGVucywgZXRjLikgdGhhdCBzdGlsbCBleHRlbmRcbi8vIHRoZW0uIE1pZ3JhdGUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgU3RvcmUgY2xhc3MgYWJvdmUuXG4vLyBLZXllZFJlY29yZGVyIOKAlCBiYXNlIGNsYXNzIGZvciAxOjEgTWFwLWJhc2VkIHJlY29yZGVyc1xuZXhwb3J0IHsgS2V5ZWRSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL0tleWVkUmVjb3JkZXIuanMnO1xuXG4vLyBTZXF1ZW5jZVJlY29yZGVyIOKAlCBiYXNlIGNsYXNzIGZvciAxOk4gb3JkZXJlZCBzZXF1ZW5jZSByZWNvcmRlcnMgd2l0aCBrZXllZCBpbmRleFxuZXhwb3J0IHsgU2VxdWVuY2VSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1NlcXVlbmNlUmVjb3JkZXIuanMnO1xuXG4vLyBCb3VuZGFyeVN0YXRlVHJhY2tlciDigJQgYmFzZSBjbGFzcyBmb3IgdHJhbnNpZW50IGJyYWNrZXQtc2NvcGVkIHN0YXRlXG4vLyAobGl2ZSBzdGF0ZSBEVVJJTkcgYSBtYXRjaGVkIFtzdGFydCwgc3RvcF0gZXZlbnQgaW50ZXJ2YWw7IGNsZWFycyBvbiBzdG9wKVxuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVRyYWNrZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Cb3VuZGFyeVN0YXRlVHJhY2tlci5qcyc7XG5cbi8vIFRvcG9sb2d5UmVjb3JkZXIg4oCUIGNvbXBvc2l0aW9uIGdyYXBoIGFjY3VtdWxhdG9yIChzdWJmbG93cyArIGNvbnRyb2wtZmxvdyBlZGdlcylcbmV4cG9ydCB0eXBlIHtcbiAgVG9wb2xvZ3ksXG4gIFRvcG9sb2d5RWRnZSxcbiAgVG9wb2xvZ3lJbmNvbWluZ0tpbmQsXG4gIFRvcG9sb2d5Tm9kZSxcbiAgVG9wb2xvZ3lSZWNvcmRlck9wdGlvbnMsXG59IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgVG9wb2xvZ3lSZWNvcmRlciwgdG9wb2xvZ3lSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuXG4vLyBJbk91dFJlY29yZGVyIOKAlCBjaGFydCBpbi9vdXQgc3RyZWFtIChlbnRyeS9leGl0IHBhaXJzIGF0IGV2ZXJ5IGNoYXJ0IGJvdW5kYXJ5LFxuLy8gaW5jbHVkaW5nIHRoZSB0b3AtbGV2ZWwgcnVuIGFuZCBldmVyeSBzdWJmbG93KVxuZXhwb3J0IHR5cGUgeyBJbk91dEVudHJ5LCBJbk91dFBoYXNlLCBJbk91dFJlY29yZGVyT3B0aW9ucyB9IGZyb20gJy4vbGliL3JlY29yZGVyL0luT3V0UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgSW5PdXRSZWNvcmRlciwgaW5PdXRSZWNvcmRlciwgUk9PVF9SVU5USU1FX1NUQUdFX0lELCBST09UX1NVQkZMT1dfSUQgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcblxuLy8gUXVhbGl0eVJlY29yZGVyIOKAlCBwZXItc3RlcCBxdWFsaXR5IHNjb3Jpbmcgd2l0aCBiYWNrdHJhY2tpbmdcbmV4cG9ydCB0eXBlIHsgUXVhbGl0eUVudHJ5LCBRdWFsaXR5UmVjb3JkZXJPcHRpb25zLCBRdWFsaXR5U2NvcmluZ0ZuIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvUXVhbGl0eVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFF1YWxpdHlSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5cbi8vIHF1YWxpdHlUcmFjZSDigJQgUXVhbGl0eSBTdGFjayBUcmFjZSAoYmFja3RyYWNrIGZyb20gbG93LXNjb3Jpbmcgc3RlcHMpXG5leHBvcnQgdHlwZSB7IFF1YWxpdHlGcmFtZSwgUXVhbGl0eVN0YWNrVHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuZXhwb3J0IHsgZm9ybWF0UXVhbGl0eVRyYWNlLCBxdWFsaXR5VHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuIl19
@@ -35,4 +35,4 @@
35
35
  * - Type-level rejection of `outputMapper` on detach options
36
36
  */
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RldGFjaC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRldGFjaC90eXBlcy50cyDigJQgVHlwZSBkZWZpbml0aW9ucyBmb3IgdGhlIGZpcmUtYW5kLWZvcmdldCBwcmltaXRpdmUuXG4gKlxuICogUGF0dGVybjogIFN0cmF0ZWd5ICsgQnJpZGdlIChHb0YpLiBTYW1lIHNoYXBlIGFzIGNhY2hlIHN0cmF0ZWdpZXMgaW5cbiAqICAgICAgICAgICBhZ2VudGZvb3RwcmludCB2Mi42IOKAlCBPTkUgaW50ZXJmYWNlLCBOIGNvbmNyZXRlIGRyaXZlcnMsXG4gKiAgICAgICAgICAgY29uc3VtZXIgcGlja3MgdmlhIGV4cGxpY2l0IGltcG9ydC5cbiAqIFJvbGU6ICAgICBGb3VuZGF0aW9uLiBFdmVyeSBvdGhlciBkZXRhY2ggZmlsZSBpbXBvcnRzIGZyb20gaGVyZS5cbiAqICAgICAgICAgICBUaGlzIGlzIHRoZSBsb2NrYWJsZSBjb250cmFjdDsgZG93bnN0cmVhbSBmaWxlcyBpbXBsZW1lbnQgaXQuXG4gKlxuICogVHdvIHNpYmxpbmcgY29uY2VwdHM6XG4gKlxuICogICAxLiBgRGV0YWNoRHJpdmVyYCDigJQgdGhlIGFsZ29yaXRobSB0aGF0IGRlY2lkZXMgV0hFTi9IT1cgdGhlIHdvcmsgcnVucy5cbiAqICAgICAgU2l4IGJ1aWx0LWluIGFsZ29yaXRobXMgc2hpcCBhcyBhbGdvcml0aG0tbmFtZWQgZXhwb3J0c1xuICogICAgICAoYG1pY3JvdGFza0JhdGNoRHJpdmVyYCwgYHNldEltbWVkaWF0ZURyaXZlcmAsIGBzZW5kQmVhY29uRHJpdmVyYCxcbiAqICAgICAgYHNldFRpbWVvdXREcml2ZXJgLCBgaW1tZWRpYXRlRHJpdmVyYCwgYHdvcmtlclRocmVhZERyaXZlcmApLlxuICogICAgICBDb25zdW1lcnMgY2FuIGltcGxlbWVudCB0aGVpciBvd24gKEJZT1Mg4oCUIGJyaW5nIHlvdXIgb3duIGRyaXZlcikuXG4gKlxuICogICAyLiBgRGV0YWNoSGFuZGxlYCDigJQgdGhlIGNvbnN1bWVyLWZhY2luZyBoYW5kbGUgcmV0dXJuZWQgYnlcbiAqICAgICAgYGRldGFjaEFuZEpvaW5MYXRlcmAuIEV4cG9zZXMgc3RhdHVzIGFzIFBST1BFUlRJRVMgKHN5bmMgcmVhZClcbiAqICAgICAgYW5kIGB3YWl0KClgIChQcm9taXNlIOKAlCBvcHQtaW4gYXN5bmMgam9pbikuIFN0eWxlIDIgZnJvbSB0aGVcbiAqICAgICAgcGFuZWwgcmV2aWV3OiBwcm9wZXJ0aWVzIGZvciBzeW5jLCBzaW5nbGUgbWV0aG9kIGZvciBhc3luYy5cbiAqXG4gKiBOYW1pbmcgcG9saWN5IChsb2NrZWQgZnJvbSBuYW1pbmcgcmV2aWV3KTpcbiAqICAgLSBQdWJsaWMgQVBJIHVzZXMgc2ltcGxlIHZlcmJzIC8gcHJvcGVydGllcyAocHJvZHVjdC1lbmdpbmVlciBmcmllbmRseSlcbiAqICAgLSBJbnRlcm5hbCBjbGFzcyBuYW1lcyBDQU4gdXNlIENTIHRlcm1zIChTY2hlZHVsZXIsIENvbnRpbnVhdGlvbiwgZXRjLilcbiAqICAgLSBEcml2ZXJzIGFyZSBhbGdvcml0aG0tbmFtZWQgKHNlbWFudGljIGF0IHRoZSBhbGdvcml0aG0gbGV2ZWwpXG4gKlxuICogTG9ja2VkIGRlc2lnbiBkZWNpc2lvbnMgKHBhbmVsIHJldmlldyBjYXB0dXJlZCBpblxuICogYGRvY3MvaW5zcGlyYXRpb24vZGV0YWNoLXByaW1pdGl2ZS5tZGApOlxuICogICAtIFN5bmMgaG90IHBhdGg7IGFzeW5jIG9ubHkgYXQgZmx1c2ggYm91bmRhcmllc1xuICogICAtIEVycm9ycyDihpIgY29tbWl0TG9nICsgdHlwZWQgZXZlbnQsIE5FVkVSIHRocm93biB0byBwYXJlbnRcbiAqICAgLSBTY29wZSBpc29sYXRpb24gYmV0d2VlbiBwYXJlbnQgYW5kIGRldGFjaGVkIGNoaWxkXG4gKiAgIC0gTGlmZWN5Y2xlIHRpZWQgdG8gZXhlY3V0b3IgZGlzcG9zYWxcbiAqICAgLSBUeXBlLWxldmVsIHJlamVjdGlvbiBvZiBgb3V0cHV0TWFwcGVyYCBvbiBkZXRhY2ggb3B0aW9uc1xuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0IH0gZnJvbSAnLi4vYnVpbGRlci90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgCBEZXRhY2hIYW5kbGUg4oCUIHdoYXQgdGhlIGNvbnN1bWVyIGdldHMgYmFjayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqXG4gKiBTbmFwc2hvdCBvZiBhIGRldGFjaGVkIGhhbmRsZSdzIHN0YXRlLiBSZXR1cm5lZCBieSBgaGFuZGxlLnBvbGwoKWBcbiAqICh3aGVuIGFkZGVkIGluIGEgZm9sbG93LXVwOyB2MSBleHBvc2VzIHByb3BlcnRpZXMgZGlyZWN0bHkgb25cbiAqIGBEZXRhY2hIYW5kbGVgKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRhY2hQb2xsUmVzdWx0IHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBEZXRhY2hIYW5kbGVbJ3N0YXR1cyddO1xuICAvKiogUHJlc2VudCBpZmYgc3RhdHVzID09PSAnZG9uZScuICovXG4gIHJlYWRvbmx5IHJlc3VsdD86IHVua25vd247XG4gIC8qKiBQcmVzZW50IGlmZiBzdGF0dXMgPT09ICdmYWlsZWQnLiAqL1xuICByZWFkb25seSBlcnJvcj86IEVycm9yO1xufVxuXG4vKipcbiAqIFJlc3VsdCBkZWxpdmVyZWQgd2hlbiB0aGUgaGFuZGxlJ3MgYHdhaXQoKWAgUHJvbWlzZSByZXNvbHZlc1xuICogc3VjY2Vzc2Z1bGx5IChzdGF0dXMgcmVhY2hlZCAnZG9uZScpLiBSZWplY3Rpb24gZGVsaXZlcnMgdGhlXG4gKiBuYXRpdmUgYEVycm9yYCBkaXJlY3RseSDigJQgbm8gd3JhcHBpbmcgc2hhcGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWNoV2FpdFJlc3VsdCB7XG4gIHJlYWRvbmx5IHJlc3VsdDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBIYW5kbGUgcmV0dXJuZWQgYnkgYGNoYXJ0LmRldGFjaEFuZEpvaW5MYXRlciguLi4pYCBhbmRcbiAqIGBleGVjdXRvci5kZXRhY2hBbmRKb2luTGF0ZXIoLi4uKWAuIEV4cG9zZXMgc3RhdHVzIGFzIFBST1BFUlRJRVMgc29cbiAqIHN5bmMgYWNjZXNzIGlzIHByb3BlcnR5LXJlYWQgKGNoZWFwLCBubyBhbGxvY2F0aW9uKS4gVGhlIHNpbmdsZVxuICogbWV0aG9kIGB3YWl0KClgIHJldHVybnMgYSBQcm9taXNlIGZvciBvcHQtaW4gYXN5bmMgam9pbi5cbiAqXG4gKiBUaGUgaGFuZGxlIGlzICoqbm90KiogUHJvbWlzZS1zaGFwZWQgKG5vIGAudGhlbigpYCkg4oCUIHRoYXQgd291bGRcbiAqIG1ha2UgaXQgYWNjaWRlbnRhbGx5IGF3YWl0YWJsZSwgZGVmZWF0aW5nIHRoZSBmaXJlLWFuZC1mb3JnZXRcbiAqIHNlbWFudGljcy4gVG8gYXdhaXQsIHRoZSBjb25zdW1lciBtdXN0IGNhbGwgYC53YWl0KClgIGV4cGxpY2l0bHkuXG4gKlxuICogTGlmZWN5Y2xlOlxuICpcbiAqICAgcXVldWVkICDihpIgZHJpdmVyIHJlY2VpdmVkIHRoZSB3b3JrLCBoYXNuJ3Qgc3RhcnRlZCBpdFxuICogICBydW5uaW5nIOKGkiBkcml2ZXIgc3RhcnRlZCB0aGUgd29ya1xuICogICBkb25lICAgIOKGkiB0ZXJtaW5hbDogcmVzdWx0IGF2YWlsYWJsZVxuICogICBmYWlsZWQgIOKGkiB0ZXJtaW5hbDogZXJyb3IgYXZhaWxhYmxlXG4gKlxuICogYGRvbmVgIGFuZCBgZmFpbGVkYCBhcmUgVEVSTUlOQUwg4oCUIG9uY2UgcmVhY2hlZCwgc3RhdHVzIG5ldmVyXG4gKiBjaGFuZ2VzIGFnYWluLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldGFjaEhhbmRsZSB7XG4gIC8qKiBTdGFibGUgaWQgYXNzaWduZWQgYXQgZGV0YWNoIHRpbWUuIFVzZWQgYXMgdGhlIGxvb2t1cCBrZXkgaW5cbiAgICogIGBkZXRhY2hSZWdpc3RyeWAgYW5kIGFzIHRoZSBzY29wZS1zdG9yYWdlIGtleSBwcmVmaXguICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqIEN1cnJlbnQgc3RhdGUuIFJlYWQgZGlyZWN0bHkgZm9yIHN5bmMgYWNjZXNzLiAqL1xuICByZWFkb25seSBzdGF0dXM6ICdxdWV1ZWQnIHwgJ3J1bm5pbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCc7XG5cbiAgLyoqIFRoZSB3b3JrJ3MgcmVzdWx0LiBQcmVzZW50IGlmZiBgc3RhdHVzID09PSAnZG9uZSdgLiBSZWFkaW5nXG4gICAqICBiZWZvcmUgdGVybWluYWwgcmV0dXJucyBgdW5kZWZpbmVkYC4gKi9cbiAgcmVhZG9ubHkgcmVzdWx0PzogdW5rbm93bjtcblxuICAvKiogVGhlIHdvcmsncyBlcnJvci4gUHJlc2VudCBpZmYgYHN0YXR1cyA9PT0gJ2ZhaWxlZCdgLiBSZWFkaW5nXG4gICAqICBiZWZvcmUgdGVybWluYWwgcmV0dXJucyBgdW5kZWZpbmVkYC4gKi9cbiAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvcjtcblxuICAvKipcbiAgICogT3B0LWluIGFzeW5jIGpvaW4uIFJldHVybnMgYSBQcm9taXNlIHRoYXQ6XG4gICAqICAgLSByZXNvbHZlcyB3aXRoIGB7IHJlc3VsdCB9YCB3aGVuIHN0YXR1cyBiZWNvbWVzICdkb25lJ1xuICAgKiAgIC0gcmVqZWN0cyB3aXRoIHRoZSBjYXB0dXJlZCBgRXJyb3JgIHdoZW4gc3RhdHVzIGJlY29tZXMgJ2ZhaWxlZCdcbiAgICogICAtIHJlc29sdmVzL3JlamVjdHMgSU1NRURJQVRFTFkgaWYgc3RhdHVzIGlzIGFscmVhZHkgdGVybWluYWxcbiAgICogICAtIHJldHVybnMgdGhlIFNBTUUgY2FjaGVkIFByb21pc2Ugb24gcmVwZWF0ZWQgY2FsbHMgKG5vXG4gICAqICAgICByZS1ydW5uaW5nLCBubyBkdXBsaWNhdGVkIEkvTylcbiAgICpcbiAgICogQ2FsbGluZyBgd2FpdCgpYCBkb2VzIE5PVCBjaGFuZ2UgdGhlIGhhbmRsZSdzIGxpZmVjeWNsZSDigJQgaXQnc1xuICAgKiBwYXNzaXZlIG9ic2VydmF0aW9uLiBJZiBuZXZlciBjYWxsZWQsIHRoZSB3b3JrIHN0aWxsIGNvbXBsZXRlcztcbiAgICogdGhlIGhhbmRsZSBqdXN0IGdvZXMgdW5jb2xsZWN0ZWQgKHBhcmVudCBleGVjdXRpb24gdW5hZmZlY3RlZCkuXG4gICAqXG4gICAqIFVzZSB3aGVuOlxuICAgKiAgIC0gWW91IGFjdHVhbGx5IG5lZWQgdGhlIHJlc3VsdCBhbmQgd2FudCB0byBhd2FpdCBpdFxuICAgKiAgIC0gQ29vcmRpbmF0aW5nIG11bHRpcGxlIGhhbmRsZXMgdmlhIFByb21pc2UuYWxsIC8gUHJvbWlzZS5yYWNlXG4gICAqICAgLSBCYWNrcHJlc3N1cmUgKFwiZG9uJ3QgZmlyZSBtb3JlIHRoYW4gTiBpbiBmbGlnaHRcIilcbiAgICpcbiAgICogRG9uJ3QgdXNlIHdoZW46XG4gICAqICAgLSBQdXJlIGZpcmUtYW5kLWZvcmdldCAodXNlIGBkZXRhY2hBbmRGb3JnZXRgIOKAlCBubyBoYW5kbGUgcmV0dXJuZWQpXG4gICAqICAgLSBZb3UganVzdCB3YW50IHRvIGNoZWNrIHN0YXR1cyAocmVhZCBgaGFuZGxlLnN0YXR1c2AgZGlyZWN0bHkpXG4gICAqL1xuICB3YWl0KCk6IFByb21pc2U8RGV0YWNoV2FpdFJlc3VsdD47XG59XG5cbi8vIOKUgOKUgOKUgCBEZXRhY2hEcml2ZXIg4oCUIHRoZSBhbGdvcml0aG0gaW50ZXJmYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIENhcGFiaWxpdGllcyBhIGRyaXZlciBkZWNsYXJlcy4gRHJpdmVzIHRoZSBydW50aW1lIGRlY2lzaW9uIG9mXG4gKiBcImlzIHRoaXMgZHJpdmVyIGFwcHJvcHJpYXRlIGZvciB0aGUgY3VycmVudCBlbnZpcm9ubWVudD9cIiBDb25zdW1lcnNcbiAqIGluc3BlY3QgYXQgY29uc3RydWN0aW9uOyB0aGUgZnJhbWV3b3JrIGRvZXNuJ3QgZW5mb3JjZS5cbiAqXG4gKiBBbGwgY2FwYWJpbGl0aWVzIGFyZSBvcHRpb25hbCBmbGFncyDigJQgZmFsc2UgLyB1bmRlZmluZWQgbWVhbnMgXCJub3RcbiAqIHN1cHBvcnRlZCAvIG5vIGNsYWltLlwiIEEgZHJpdmVyIHRoYXQgc3VwcG9ydHMgZXZlcnl0aGluZyBzZXRzIGFsbFxuICogdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcml2ZXJDYXBhYmlsaXRpZXMge1xuICAvKiogRHJpdmVyIHdvcmtzIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzICh3aW5kb3csIGRvY3VtZW50LCBldGMuKS4gKi9cbiAgcmVhZG9ubHkgYnJvd3NlclNhZmU/OiBib29sZWFuO1xuICAvKiogRHJpdmVyIHdvcmtzIGluIE5vZGUuanMgZW52aXJvbm1lbnRzLiAqL1xuICByZWFkb25seSBub2RlU2FmZT86IGJvb2xlYW47XG4gIC8qKiBEcml2ZXIgd29ya3MgaW4gZWRnZSBydW50aW1lcyAoQ2xvdWRmbGFyZSBXb3JrZXJzLCBEZW5vIERlcGxveSxcbiAgICogIEJ1biBlZGdlLCBldGMuIOKAlCByZXN0cmljdGVkIGVudmlyb25tZW50cykuICovXG4gIHJlYWRvbmx5IGVkZ2VTYWZlPzogYm9vbGVhbjtcbiAgLyoqIFdvcmsgc3Vydml2ZXMgcGFnZS11bmxvYWQgLyBwcm9jZXNzLWV4aXQuIGUuZy4sXG4gICAqICBgc2VuZEJlYWNvbkRyaXZlcmAgc2NoZWR1bGVzIHZpYSBgbmF2aWdhdG9yLnNlbmRCZWFjb25gIHdoaWNoXG4gICAqICBzaGlwcyBldmVuIG9uIHRhYiBjbG9zZS4gKi9cbiAgcmVhZG9ubHkgc3Vydml2ZXNVbmxvYWQ/OiBib29sZWFuO1xuICAvKiogV29yayBydW5zIG9uIGEgc2VwYXJhdGUgT1MgdGhyZWFkIChubyBldmVudC1sb29wIGJsb2NrKS5cbiAgICogIGUuZy4sIGB3b3JrZXJUaHJlYWREcml2ZXJgLiAqL1xuICByZWFkb25seSBjcHVJc29sYXRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBkcml2ZXIgaXMgdGhlIFdIRU4vSE9XIG9mIHRoZSBkZXRhY2guIE1hcHMgYChjaGlsZCwgaW5wdXQsIHJlZklkKWBcbiAqIHRvIGEgYERldGFjaEhhbmRsZWAgd2hvc2UgbGlmZWN5Y2xlIHRoZSBkcml2ZXIgb3ducy5cbiAqXG4gKiBEcml2ZXJzIGFyZSB0aGVtc2VsdmVzIGZvb3RwcmludGpzIHByaW1pdGl2ZXMg4oCUIGludGVybmFsbHkgdGhleSBtYXlcbiAqIGJlIGEgc2luZ2xlIGZ1bmN0aW9uIG9yIGEgbXVsdGktc3RhZ2UgZmxvd0NoYXJ0LiBFaXRoZXIgd2F5LCB0aGVcbiAqIGludGVyZmFjZSB0aGV5IGV4cG9zZSB0byBjb25zdW1lcnMgaXMgYHNjaGVkdWxlKC4uLilgLlxuICpcbiAqIERyaXZlcnMgTVVTVDpcbiAqICAgLSBSZXR1cm4gc3luY2hyb25vdXNseSAodGhlIGFnZW50IGxvb3AgbmV2ZXIgYmxvY2tzIG9uIHNjaGVkdWxlKVxuICogICAtIE5vdCB0aHJvdyDigJQgZXJyb3JzIGR1cmluZyBzY2hlZHVsaW5nIHJvdXRlIHRocm91Z2ggdGhlIGhhbmRsZVxuICogICAgIChgaGFuZGxlLnN0YXR1cyA9ICdmYWlsZWQnYCwgYGhhbmRsZS5lcnJvciA9IC4uLmApXG4gKiAgIC0gSG9ub3IgdGhlIHBhc3NpdmUtcmVjb3JkZXIgcnVsZTogdGhlIHBhcmVudCdzIGBkZXRhY2gqYCBjYWxsXG4gKiAgICAgbmV2ZXIgd2FpdHMgZm9yIHRoZSBkcml2ZXIncyBkZWZlcnJlZCB3b3JrIHRvIGNvbXBsZXRlXG4gKlxuICogRHJpdmVycyBNQVk6XG4gKiAgIC0gSW1wbGVtZW50IGB2YWxpZGF0ZSgpYCBmb3Igb25lLXRpbWUgY29uZmlndXJhdGlvbiBjaGVja3MgYXRcbiAqICAgICByZWdpc3RyYXRpb24gLyB1c2UgdGltZSAoZS5nLiwgYXNzZXJ0IGBuYXZpZ2F0b3Iuc2VuZEJlYWNvbmAgZXhpc3RzKVxuICogICAtIEJ1aWxkIHRoZWlyIGludGVybmFsIHBpcGVsaW5lIGFzIGEgZm9vdHByaW50anMgZmxvd0NoYXJ0IGZvclxuICogICAgIG9ic2VydmFiaWxpdHkg4oCUIGRyaXZlciBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIG5vdCBjb25zdW1lci1mYWNpbmdcbiAqXG4gKiBAZXhhbXBsZSBCdWlsdC1pblxuICogICBpbXBvcnQgeyBtaWNyb3Rhc2tCYXRjaERyaXZlciB9IGZyb20gJ2Zvb3RwcmludGpzL2RldGFjaCc7XG4gKiAgIGNvbnN0IGhhbmRsZSA9IGRyaXZlci5zY2hlZHVsZShjaGlsZCwgaW5wdXQsIHJlZklkKTtcbiAqXG4gKiBAZXhhbXBsZSBDdXN0b20gKEJZT1MpXG4gKiAgIGNvbnN0IGxhbWJkYUV4dGVuc2lvbkRyaXZlcjogRGV0YWNoRHJpdmVyID0ge1xuICogICAgIG5hbWU6ICdsYW1iZGEtZXh0ZW5zaW9uJyxcbiAqICAgICBjYXBhYmlsaXRpZXM6IHsgbm9kZVNhZmU6IHRydWUsIHN1cnZpdmVzVW5sb2FkOiB0cnVlIH0sXG4gKiAgICAgc2NoZWR1bGUoY2hpbGQsIGlucHV0LCByZWZJZCkge1xuICogICAgICAgc2hhcmVkQnVmZmVyLnB1c2goeyByZWZJZCwgY2hpbGQsIGlucHV0IH0pO1xuICogICAgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZShyZWZJZCwgJ3F1ZXVlZCcpO1xuICogICAgIH0sXG4gKiAgIH07XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWNoRHJpdmVyIHtcbiAgLyoqIFN0YWJsZSBuYW1lIGZvciBkaWFnbm9zdGljcyArIHJlZ2lzdHJ5IGxvb2t1cC4gQ29udmVudGlvbmFsbHlcbiAgICogIGFsZ29yaXRobS1uYW1lZCAoZS5nLiBgJ21pY3JvdGFzay1iYXRjaCdgLCBgJ3NlbmQtYmVhY29uJ2ApLiAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIFdoYXQgdGhpcyBkcml2ZXIgc3VwcG9ydHMuIFVzZWQgYnkgY29uc3VtZXJzIHRvIHBpY2sgdGhlIHJpZ2h0XG4gICAqICBkcml2ZXIgZm9yIHRoZWlyIGVudmlyb25tZW50LiAqL1xuICByZWFkb25seSBjYXBhYmlsaXRpZXM6IERyaXZlckNhcGFiaWxpdGllcztcblxuICAvKipcbiAgICogSGFuZCB0aGUgd29yayB0byB0aGUgZHJpdmVyJ3Mgc2NoZWR1bGluZyBtZWNoYW5pc20uIE1VU1QgcmV0dXJuXG4gICAqIHN5bmNocm9ub3VzbHkgd2l0aCBhIGZyZXNoIGBEZXRhY2hIYW5kbGVgLiBUaGUgYWN0dWFsIHdvcmsgbWF5XG4gICAqIHJ1biBsYXRlciAobmV4dCBtaWNyb3Rhc2sgLyBzZXRJbW1lZGlhdGUgLyBicm93c2VyLWJlYWNvbi1mbHVzaCAvXG4gICAqIHdvcmtlci10aHJlYWQgLyBldGMuKSBvbiB0aGUgZHJpdmVyJ3MgY2hvc2VuIG1lY2hhbmlzbS5cbiAgICovXG4gIHNjaGVkdWxlKGNoaWxkOiBGbG93Q2hhcnQsIGlucHV0OiB1bmtub3duLCByZWZJZDogc3RyaW5nKTogRGV0YWNoSGFuZGxlO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBvbmUtdGltZSB2YWxpZGF0aW9uIGhvb2suIENhbGxlZCBhdCBmaXJzdCB1c2UgKG9yXG4gICAqIHJlZ2lzdHJhdGlvbiB0aW1lLCBkZXBlbmRpbmcgb24gZHJpdmVyKSDigJQgZHJpdmVycyB0aHJvdyBpZiB0aGVpclxuICAgKiBjb25maWd1cmF0aW9uIGlzIGludmFsaWQgKG1pc3NpbmcgcGVlciBkZXAsIHVucmVhY2hhYmxlIGVuZHBvaW50LFxuICAgKiB3cm9uZyBBUEkga2V5IHNoYXBlLCBldGMuKS5cbiAgICpcbiAgICogRXhhbXBsZTogYHNlbmRCZWFjb25Ecml2ZXIudmFsaWRhdGUoKWAgY2hlY2tzXG4gICAqIGB0eXBlb2YgbmF2aWdhdG9yPy5zZW5kQmVhY29uID09PSAnZnVuY3Rpb24nYCBhbmQgdGhyb3dzIHdpdGggYVxuICAgKiBoZWxwZnVsIG1lc3NhZ2UgaWYgYWJzZW50IChlLmcuLCBpbiBOb2RlKS5cbiAgICpcbiAgICogUGVyIHRoZSBOZXcgUmVsaWMgcGFuZWwgcmV2aWV3OiBlYXJseS1mYWlsLXdpdGgtdXNlZnVsLW1lc3NhZ2VcbiAgICogYmVhdHMgc2lsZW50IHplcm8tZW1pc3Npb24uXG4gICAqL1xuICB2YWxpZGF0ZT8oKTogdm9pZDtcbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RldGFjaC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGRldGFjaC90eXBlcy50cyDigJQgVHlwZSBkZWZpbml0aW9ucyBmb3IgdGhlIGZpcmUtYW5kLWZvcmdldCBwcmltaXRpdmUuXG4gKlxuICogUGF0dGVybjogIFN0cmF0ZWd5ICsgQnJpZGdlIChHb0YpLiBTYW1lIHNoYXBlIGFzIGNhY2hlIHN0cmF0ZWdpZXMgaW5cbiAqICAgICAgICAgICBhZ2VudGZvb3RwcmludCB2Mi42IOKAlCBPTkUgaW50ZXJmYWNlLCBOIGNvbmNyZXRlIGRyaXZlcnMsXG4gKiAgICAgICAgICAgY29uc3VtZXIgcGlja3MgdmlhIGV4cGxpY2l0IGltcG9ydC5cbiAqIFJvbGU6ICAgICBGb3VuZGF0aW9uLiBFdmVyeSBvdGhlciBkZXRhY2ggZmlsZSBpbXBvcnRzIGZyb20gaGVyZS5cbiAqICAgICAgICAgICBUaGlzIGlzIHRoZSBsb2NrYWJsZSBjb250cmFjdDsgZG93bnN0cmVhbSBmaWxlcyBpbXBsZW1lbnQgaXQuXG4gKlxuICogVHdvIHNpYmxpbmcgY29uY2VwdHM6XG4gKlxuICogICAxLiBgRGV0YWNoRHJpdmVyYCDigJQgdGhlIGFsZ29yaXRobSB0aGF0IGRlY2lkZXMgV0hFTi9IT1cgdGhlIHdvcmsgcnVucy5cbiAqICAgICAgU2l4IGJ1aWx0LWluIGFsZ29yaXRobXMgc2hpcCBhcyBhbGdvcml0aG0tbmFtZWQgZXhwb3J0c1xuICogICAgICAoYG1pY3JvdGFza0JhdGNoRHJpdmVyYCwgYHNldEltbWVkaWF0ZURyaXZlcmAsIGBzZW5kQmVhY29uRHJpdmVyYCxcbiAqICAgICAgYHNldFRpbWVvdXREcml2ZXJgLCBgaW1tZWRpYXRlRHJpdmVyYCwgYHdvcmtlclRocmVhZERyaXZlcmApLlxuICogICAgICBDb25zdW1lcnMgY2FuIGltcGxlbWVudCB0aGVpciBvd24gKEJZT1Mg4oCUIGJyaW5nIHlvdXIgb3duIGRyaXZlcikuXG4gKlxuICogICAyLiBgRGV0YWNoSGFuZGxlYCDigJQgdGhlIGNvbnN1bWVyLWZhY2luZyBoYW5kbGUgcmV0dXJuZWQgYnlcbiAqICAgICAgYGRldGFjaEFuZEpvaW5MYXRlcmAuIEV4cG9zZXMgc3RhdHVzIGFzIFBST1BFUlRJRVMgKHN5bmMgcmVhZClcbiAqICAgICAgYW5kIGB3YWl0KClgIChQcm9taXNlIOKAlCBvcHQtaW4gYXN5bmMgam9pbikuIFN0eWxlIDIgZnJvbSB0aGVcbiAqICAgICAgcGFuZWwgcmV2aWV3OiBwcm9wZXJ0aWVzIGZvciBzeW5jLCBzaW5nbGUgbWV0aG9kIGZvciBhc3luYy5cbiAqXG4gKiBOYW1pbmcgcG9saWN5IChsb2NrZWQgZnJvbSBuYW1pbmcgcmV2aWV3KTpcbiAqICAgLSBQdWJsaWMgQVBJIHVzZXMgc2ltcGxlIHZlcmJzIC8gcHJvcGVydGllcyAocHJvZHVjdC1lbmdpbmVlciBmcmllbmRseSlcbiAqICAgLSBJbnRlcm5hbCBjbGFzcyBuYW1lcyBDQU4gdXNlIENTIHRlcm1zIChTY2hlZHVsZXIsIENvbnRpbnVhdGlvbiwgZXRjLilcbiAqICAgLSBEcml2ZXJzIGFyZSBhbGdvcml0aG0tbmFtZWQgKHNlbWFudGljIGF0IHRoZSBhbGdvcml0aG0gbGV2ZWwpXG4gKlxuICogTG9ja2VkIGRlc2lnbiBkZWNpc2lvbnMgKHBhbmVsIHJldmlldyBjYXB0dXJlZCBpblxuICogYGRvY3MvaW5zcGlyYXRpb24vZGV0YWNoLXByaW1pdGl2ZS5tZGApOlxuICogICAtIFN5bmMgaG90IHBhdGg7IGFzeW5jIG9ubHkgYXQgZmx1c2ggYm91bmRhcmllc1xuICogICAtIEVycm9ycyDihpIgY29tbWl0TG9nICsgdHlwZWQgZXZlbnQsIE5FVkVSIHRocm93biB0byBwYXJlbnRcbiAqICAgLSBTY29wZSBpc29sYXRpb24gYmV0d2VlbiBwYXJlbnQgYW5kIGRldGFjaGVkIGNoaWxkXG4gKiAgIC0gTGlmZWN5Y2xlIHRpZWQgdG8gZXhlY3V0b3IgZGlzcG9zYWxcbiAqICAgLSBUeXBlLWxldmVsIHJlamVjdGlvbiBvZiBgb3V0cHV0TWFwcGVyYCBvbiBkZXRhY2ggb3B0aW9uc1xuICovXG5cbmltcG9ydCB0eXBlIHsgRmxvd0NoYXJ0IH0gZnJvbSAnLi4vYnVpbGRlci90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgOKUgCBEZXRhY2hIYW5kbGUg4oCUIHdoYXQgdGhlIGNvbnN1bWVyIGdldHMgYmFjayDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuLyoqXG4gKiBTbmFwc2hvdCBvZiBhIGRldGFjaGVkIGhhbmRsZSdzIHN0YXRlLiBSZXR1cm5lZCBieSBgaGFuZGxlLnBvbGwoKWBcbiAqICh3aGVuIGFkZGVkIGluIGEgZm9sbG93LXVwOyB2MSBleHBvc2VzIHByb3BlcnRpZXMgZGlyZWN0bHkgb25cbiAqIGBEZXRhY2hIYW5kbGVgKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRhY2hQb2xsUmVzdWx0IHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBEZXRhY2hIYW5kbGVbJ3N0YXR1cyddO1xuICAvKiogUHJlc2VudCBpZmYgc3RhdHVzID09PSAnZG9uZScuICovXG4gIHJlYWRvbmx5IHJlc3VsdD86IHVua25vd247XG4gIC8qKiBQcmVzZW50IGlmZiBzdGF0dXMgPT09ICdmYWlsZWQnLiAqL1xuICByZWFkb25seSBlcnJvcj86IEVycm9yO1xufVxuXG4vKipcbiAqIFJlc3VsdCBkZWxpdmVyZWQgd2hlbiB0aGUgaGFuZGxlJ3MgYHdhaXQoKWAgUHJvbWlzZSByZXNvbHZlc1xuICogc3VjY2Vzc2Z1bGx5IChzdGF0dXMgcmVhY2hlZCAnZG9uZScpLiBSZWplY3Rpb24gZGVsaXZlcnMgdGhlXG4gKiBuYXRpdmUgYEVycm9yYCBkaXJlY3RseSDigJQgbm8gd3JhcHBpbmcgc2hhcGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWNoV2FpdFJlc3VsdCB7XG4gIHJlYWRvbmx5IHJlc3VsdDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBIYW5kbGUgcmV0dXJuZWQgYnkgYGNoYXJ0LmRldGFjaEFuZEpvaW5MYXRlciguLi4pYCBhbmRcbiAqIGBleGVjdXRvci5kZXRhY2hBbmRKb2luTGF0ZXIoLi4uKWAuIEV4cG9zZXMgc3RhdHVzIGFzIFBST1BFUlRJRVMgc29cbiAqIHN5bmMgYWNjZXNzIGlzIHByb3BlcnR5LXJlYWQgKGNoZWFwLCBubyBhbGxvY2F0aW9uKS4gVGhlIHNpbmdsZVxuICogbWV0aG9kIGB3YWl0KClgIHJldHVybnMgYSBQcm9taXNlIGZvciBvcHQtaW4gYXN5bmMgam9pbi5cbiAqXG4gKiBUaGUgaGFuZGxlIGlzICoqbm90KiogUHJvbWlzZS1zaGFwZWQgKG5vIGAudGhlbigpYCkg4oCUIHRoYXQgd291bGRcbiAqIG1ha2UgaXQgYWNjaWRlbnRhbGx5IGF3YWl0YWJsZSwgZGVmZWF0aW5nIHRoZSBmaXJlLWFuZC1mb3JnZXRcbiAqIHNlbWFudGljcy4gVG8gYXdhaXQsIHRoZSBjb25zdW1lciBtdXN0IGNhbGwgYC53YWl0KClgIGV4cGxpY2l0bHkuXG4gKlxuICogTGlmZWN5Y2xlOlxuICpcbiAqICAgcXVldWVkICDihpIgZHJpdmVyIHJlY2VpdmVkIHRoZSB3b3JrLCBoYXNuJ3Qgc3RhcnRlZCBpdFxuICogICBydW5uaW5nIOKGkiBkcml2ZXIgc3RhcnRlZCB0aGUgd29ya1xuICogICBkb25lICAgIOKGkiB0ZXJtaW5hbDogcmVzdWx0IGF2YWlsYWJsZVxuICogICBmYWlsZWQgIOKGkiB0ZXJtaW5hbDogZXJyb3IgYXZhaWxhYmxlXG4gKlxuICogYGRvbmVgIGFuZCBgZmFpbGVkYCBhcmUgVEVSTUlOQUwg4oCUIG9uY2UgcmVhY2hlZCwgc3RhdHVzIG5ldmVyXG4gKiBjaGFuZ2VzIGFnYWluLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldGFjaEhhbmRsZSB7XG4gIC8qKiBTdGFibGUgaWQgYXNzaWduZWQgYXQgZGV0YWNoIHRpbWUuIFVzZWQgYXMgdGhlIGxvb2t1cCBrZXkgaW5cbiAgICogIGBkZXRhY2hSZWdpc3RyeWAgYW5kIGFzIHRoZSBzY29wZS1zdG9yYWdlIGtleSBwcmVmaXguICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqIEN1cnJlbnQgc3RhdGUuIFJlYWQgZGlyZWN0bHkgZm9yIHN5bmMgYWNjZXNzLiAqL1xuICByZWFkb25seSBzdGF0dXM6ICdxdWV1ZWQnIHwgJ3J1bm5pbmcnIHwgJ2RvbmUnIHwgJ2ZhaWxlZCc7XG5cbiAgLyoqIFRoZSB3b3JrJ3MgcmVzdWx0LiBQcmVzZW50IGlmZiBgc3RhdHVzID09PSAnZG9uZSdgLiBSZWFkaW5nXG4gICAqICBiZWZvcmUgdGVybWluYWwgcmV0dXJucyBgdW5kZWZpbmVkYC4gKi9cbiAgcmVhZG9ubHkgcmVzdWx0PzogdW5rbm93bjtcblxuICAvKiogVGhlIHdvcmsncyBlcnJvci4gUHJlc2VudCBpZmYgYHN0YXR1cyA9PT0gJ2ZhaWxlZCdgLiBSZWFkaW5nXG4gICAqICBiZWZvcmUgdGVybWluYWwgcmV0dXJucyBgdW5kZWZpbmVkYC4gKi9cbiAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvcjtcblxuICAvKipcbiAgICogT3B0LWluIGFzeW5jIGpvaW4uIFJldHVybnMgYSBQcm9taXNlIHRoYXQ6XG4gICAqICAgLSByZXNvbHZlcyB3aXRoIGB7IHJlc3VsdCB9YCB3aGVuIHN0YXR1cyBiZWNvbWVzICdkb25lJ1xuICAgKiAgIC0gcmVqZWN0cyB3aXRoIHRoZSBjYXB0dXJlZCBgRXJyb3JgIHdoZW4gc3RhdHVzIGJlY29tZXMgJ2ZhaWxlZCdcbiAgICogICAtIHJlc29sdmVzL3JlamVjdHMgSU1NRURJQVRFTFkgaWYgc3RhdHVzIGlzIGFscmVhZHkgdGVybWluYWxcbiAgICogICAtIHJldHVybnMgdGhlIFNBTUUgY2FjaGVkIFByb21pc2Ugb24gcmVwZWF0ZWQgY2FsbHMgKG5vXG4gICAqICAgICByZS1ydW5uaW5nLCBubyBkdXBsaWNhdGVkIEkvTylcbiAgICpcbiAgICogQ2FsbGluZyBgd2FpdCgpYCBkb2VzIE5PVCBjaGFuZ2UgdGhlIGhhbmRsZSdzIGxpZmVjeWNsZSDigJQgaXQnc1xuICAgKiBwYXNzaXZlIG9ic2VydmF0aW9uLiBJZiBuZXZlciBjYWxsZWQsIHRoZSB3b3JrIHN0aWxsIGNvbXBsZXRlcztcbiAgICogdGhlIGhhbmRsZSBqdXN0IGdvZXMgdW5jb2xsZWN0ZWQgKHBhcmVudCBleGVjdXRpb24gdW5hZmZlY3RlZCkuXG4gICAqXG4gICAqIFVzZSB3aGVuOlxuICAgKiAgIC0gWW91IGFjdHVhbGx5IG5lZWQgdGhlIHJlc3VsdCBhbmQgd2FudCB0byBhd2FpdCBpdFxuICAgKiAgIC0gQ29vcmRpbmF0aW5nIG11bHRpcGxlIGhhbmRsZXMgdmlhIFByb21pc2UuYWxsIC8gUHJvbWlzZS5yYWNlXG4gICAqICAgLSBCYWNrcHJlc3N1cmUgKFwiZG9uJ3QgZmlyZSBtb3JlIHRoYW4gTiBpbiBmbGlnaHRcIilcbiAgICpcbiAgICogRG9uJ3QgdXNlIHdoZW46XG4gICAqICAgLSBQdXJlIGZpcmUtYW5kLWZvcmdldCAodXNlIGBkZXRhY2hBbmRGb3JnZXRgIOKAlCBubyBoYW5kbGUgcmV0dXJuZWQpXG4gICAqICAgLSBZb3UganVzdCB3YW50IHRvIGNoZWNrIHN0YXR1cyAocmVhZCBgaGFuZGxlLnN0YXR1c2AgZGlyZWN0bHkpXG4gICAqL1xuICB3YWl0KCk6IFByb21pc2U8RGV0YWNoV2FpdFJlc3VsdD47XG59XG5cbi8vIOKUgOKUgOKUgCBEZXRhY2hEcml2ZXIg4oCUIHRoZSBhbGdvcml0aG0gaW50ZXJmYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4vKipcbiAqIENhcGFiaWxpdGllcyBhIGRyaXZlciBkZWNsYXJlcy4gRHJpdmVzIHRoZSBydW50aW1lIGRlY2lzaW9uIG9mXG4gKiBcImlzIHRoaXMgZHJpdmVyIGFwcHJvcHJpYXRlIGZvciB0aGUgY3VycmVudCBlbnZpcm9ubWVudD9cIiBDb25zdW1lcnNcbiAqIGluc3BlY3QgYXQgY29uc3RydWN0aW9uOyB0aGUgZnJhbWV3b3JrIGRvZXNuJ3QgZW5mb3JjZS5cbiAqXG4gKiBBbGwgY2FwYWJpbGl0aWVzIGFyZSBvcHRpb25hbCBmbGFncyDigJQgZmFsc2UgLyB1bmRlZmluZWQgbWVhbnMgXCJub3RcbiAqIHN1cHBvcnRlZCAvIG5vIGNsYWltLlwiIEEgZHJpdmVyIHRoYXQgc3VwcG9ydHMgZXZlcnl0aGluZyBzZXRzIGFsbFxuICogdG8gdHJ1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcml2ZXJDYXBhYmlsaXRpZXMge1xuICAvKiogRHJpdmVyIHdvcmtzIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzICh3aW5kb3csIGRvY3VtZW50LCBldGMuKS4gKi9cbiAgcmVhZG9ubHkgYnJvd3NlclNhZmU/OiBib29sZWFuO1xuICAvKiogRHJpdmVyIHdvcmtzIGluIE5vZGUuanMgZW52aXJvbm1lbnRzLiAqL1xuICByZWFkb25seSBub2RlU2FmZT86IGJvb2xlYW47XG4gIC8qKiBEcml2ZXIgd29ya3MgaW4gZWRnZSBydW50aW1lcyAoQ2xvdWRmbGFyZSBXb3JrZXJzLCBEZW5vIERlcGxveSxcbiAgICogIEJ1biBlZGdlLCBldGMuIOKAlCByZXN0cmljdGVkIGVudmlyb25tZW50cykuICovXG4gIHJlYWRvbmx5IGVkZ2VTYWZlPzogYm9vbGVhbjtcbiAgLyoqIFdvcmsgc3Vydml2ZXMgcGFnZS11bmxvYWQgLyBwcm9jZXNzLWV4aXQuIGUuZy4sXG4gICAqICBgc2VuZEJlYWNvbkRyaXZlcmAgc2NoZWR1bGVzIHZpYSBgbmF2aWdhdG9yLnNlbmRCZWFjb25gIHdoaWNoXG4gICAqICBzaGlwcyBldmVuIG9uIHRhYiBjbG9zZS4gKi9cbiAgcmVhZG9ubHkgc3Vydml2ZXNVbmxvYWQ/OiBib29sZWFuO1xuICAvKiogV29yayBydW5zIG9uIGEgc2VwYXJhdGUgT1MgdGhyZWFkIChubyBldmVudC1sb29wIGJsb2NrKS5cbiAgICogIGUuZy4sIGB3b3JrZXJUaHJlYWREcml2ZXJgLiAqL1xuICByZWFkb25seSBjcHVJc29sYXRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBkcml2ZXIgaXMgdGhlIFdIRU4vSE9XIG9mIHRoZSBkZXRhY2guIE1hcHMgYChjaGlsZCwgaW5wdXQsIHJlZklkKWBcbiAqIHRvIGEgYERldGFjaEhhbmRsZWAgd2hvc2UgbGlmZWN5Y2xlIHRoZSBkcml2ZXIgb3ducy5cbiAqXG4gKiBEcml2ZXJzIGFyZSB0aGVtc2VsdmVzIGZvb3RwcmludGpzIHByaW1pdGl2ZXMg4oCUIGludGVybmFsbHkgdGhleSBtYXlcbiAqIGJlIGEgc2luZ2xlIGZ1bmN0aW9uIG9yIGEgbXVsdGktc3RhZ2UgZmxvd0NoYXJ0LiBFaXRoZXIgd2F5LCB0aGVcbiAqIGludGVyZmFjZSB0aGV5IGV4cG9zZSB0byBjb25zdW1lcnMgaXMgYHNjaGVkdWxlKC4uLilgLlxuICpcbiAqIERyaXZlcnMgTVVTVDpcbiAqICAgLSBSZXR1cm4gc3luY2hyb25vdXNseSAodGhlIGFnZW50IGxvb3AgbmV2ZXIgYmxvY2tzIG9uIHNjaGVkdWxlKVxuICogICAtIE5vdCB0aHJvdyDigJQgZXJyb3JzIGR1cmluZyBzY2hlZHVsaW5nIHJvdXRlIHRocm91Z2ggdGhlIGhhbmRsZVxuICogICAgIChgaGFuZGxlLnN0YXR1cyA9ICdmYWlsZWQnYCwgYGhhbmRsZS5lcnJvciA9IC4uLmApXG4gKiAgIC0gSG9ub3IgdGhlIHBhc3NpdmUtcmVjb3JkZXIgcnVsZTogdGhlIHBhcmVudCdzIGBkZXRhY2gqYCBjYWxsXG4gKiAgICAgbmV2ZXIgd2FpdHMgZm9yIHRoZSBkcml2ZXIncyBkZWZlcnJlZCB3b3JrIHRvIGNvbXBsZXRlXG4gKlxuICogRHJpdmVycyBNQVk6XG4gKiAgIC0gSW1wbGVtZW50IGB2YWxpZGF0ZSgpYCBmb3Igb25lLXRpbWUgY29uZmlndXJhdGlvbiBjaGVja3MgYXRcbiAqICAgICByZWdpc3RyYXRpb24gLyB1c2UgdGltZSAoZS5nLiwgYXNzZXJ0IGBuYXZpZ2F0b3Iuc2VuZEJlYWNvbmAgZXhpc3RzKVxuICogICAtIEJ1aWxkIHRoZWlyIGludGVybmFsIHBpcGVsaW5lIGFzIGEgZm9vdHByaW50anMgZmxvd0NoYXJ0IGZvclxuICogICAgIG9ic2VydmFiaWxpdHkg4oCUIGRyaXZlciBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIG5vdCBjb25zdW1lci1mYWNpbmdcbiAqXG4gKiBAZXhhbXBsZSBCdWlsdC1pblxuICogICBpbXBvcnQgeyBtaWNyb3Rhc2tCYXRjaERyaXZlciB9IGZyb20gJ2Zvb3RwcmludGpzL2RldGFjaCc7XG4gKiAgIGNvbnN0IGhhbmRsZSA9IGRyaXZlci5zY2hlZHVsZShjaGlsZCwgaW5wdXQsIHJlZklkKTtcbiAqXG4gKiBAZXhhbXBsZSBDdXN0b20gKEJZT1MpXG4gKiAgIGNvbnN0IGxhbWJkYUV4dGVuc2lvbkRyaXZlcjogRGV0YWNoRHJpdmVyID0ge1xuICogICAgIG5hbWU6ICdsYW1iZGEtZXh0ZW5zaW9uJyxcbiAqICAgICBjYXBhYmlsaXRpZXM6IHsgbm9kZVNhZmU6IHRydWUsIHN1cnZpdmVzVW5sb2FkOiB0cnVlIH0sXG4gKiAgICAgc2NoZWR1bGUoY2hpbGQsIGlucHV0LCByZWZJZCkge1xuICogICAgICAgc2hhcmVkQnVmZmVyLnB1c2goeyByZWZJZCwgY2hpbGQsIGlucHV0IH0pO1xuICogICAgICAgcmV0dXJuIGNyZWF0ZUhhbmRsZShyZWZJZCk7XG4gKiAgICAgfSxcbiAqICAgfTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRhY2hEcml2ZXIge1xuICAvKiogU3RhYmxlIG5hbWUgZm9yIGRpYWdub3N0aWNzICsgcmVnaXN0cnkgbG9va3VwLiBDb252ZW50aW9uYWxseVxuICAgKiAgYWxnb3JpdGhtLW5hbWVkIChlLmcuIGAnbWljcm90YXNrLWJhdGNoJ2AsIGAnc2VuZC1iZWFjb24nYCkuICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKiogV2hhdCB0aGlzIGRyaXZlciBzdXBwb3J0cy4gVXNlZCBieSBjb25zdW1lcnMgdG8gcGljayB0aGUgcmlnaHRcbiAgICogIGRyaXZlciBmb3IgdGhlaXIgZW52aXJvbm1lbnQuICovXG4gIHJlYWRvbmx5IGNhcGFiaWxpdGllczogRHJpdmVyQ2FwYWJpbGl0aWVzO1xuXG4gIC8qKlxuICAgKiBIYW5kIHRoZSB3b3JrIHRvIHRoZSBkcml2ZXIncyBzY2hlZHVsaW5nIG1lY2hhbmlzbS4gTVVTVCByZXR1cm5cbiAgICogc3luY2hyb25vdXNseSB3aXRoIGEgZnJlc2ggYERldGFjaEhhbmRsZWAuIFRoZSBhY3R1YWwgd29yayBtYXlcbiAgICogcnVuIGxhdGVyIChuZXh0IG1pY3JvdGFzayAvIHNldEltbWVkaWF0ZSAvIGJyb3dzZXItYmVhY29uLWZsdXNoIC9cbiAgICogd29ya2VyLXRocmVhZCAvIGV0Yy4pIG9uIHRoZSBkcml2ZXIncyBjaG9zZW4gbWVjaGFuaXNtLlxuICAgKi9cbiAgc2NoZWR1bGUoY2hpbGQ6IEZsb3dDaGFydCwgaW5wdXQ6IHVua25vd24sIHJlZklkOiBzdHJpbmcpOiBEZXRhY2hIYW5kbGU7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG9uZS10aW1lIHZhbGlkYXRpb24gaG9vay4gQ2FsbGVkIGF0IGZpcnN0IHVzZSAob3JcbiAgICogcmVnaXN0cmF0aW9uIHRpbWUsIGRlcGVuZGluZyBvbiBkcml2ZXIpIOKAlCBkcml2ZXJzIHRocm93IGlmIHRoZWlyXG4gICAqIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCAobWlzc2luZyBwZWVyIGRlcCwgdW5yZWFjaGFibGUgZW5kcG9pbnQsXG4gICAqIHdyb25nIEFQSSBrZXkgc2hhcGUsIGV0Yy4pLlxuICAgKlxuICAgKiBFeGFtcGxlOiBgc2VuZEJlYWNvbkRyaXZlci52YWxpZGF0ZSgpYCBjaGVja3NcbiAgICogYHR5cGVvZiBuYXZpZ2F0b3I/LnNlbmRCZWFjb24gPT09ICdmdW5jdGlvbidgIGFuZCB0aHJvd3Mgd2l0aCBhXG4gICAqIGhlbHBmdWwgbWVzc2FnZSBpZiBhYnNlbnQgKGUuZy4sIGluIE5vZGUpLlxuICAgKlxuICAgKiBQZXIgdGhlIE5ldyBSZWxpYyBwYW5lbCByZXZpZXc6IGVhcmx5LWZhaWwtd2l0aC11c2VmdWwtbWVzc2FnZVxuICAgKiBiZWF0cyBzaWxlbnQgemVyby1lbWlzc2lvbi5cbiAgICovXG4gIHZhbGlkYXRlPygpOiB2b2lkO1xufVxuIl19
@@ -14,8 +14,8 @@
14
14
  * executor.attachFlowRecorder(recorder);
15
15
  * await executor.run();
16
16
  *
17
- * const mainNarrative = executor.getNarrative(); // No loop sentences
18
- * const loopDetail = recorder.getLoopSentences(); // All loop detail
17
+ * const mainEntries = executor.getNarrativeEntries(); // No loop sentences
18
+ * const loopDetail = recorder.getLoopSentences(); // All loop detail
19
19
  * ```
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -55,4 +55,4 @@ class SeparateNarrativeFlowRecorder extends NarrativeFlowRecorder_js_1.Narrative
55
55
  }
56
56
  }
57
57
  exports.SeparateNarrativeFlowRecorder = SeparateNarrativeFlowRecorder;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1NlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHOzs7QUFFSCwwRUFBb0U7QUFHcEUsTUFBYSw2QkFBOEIsU0FBUSxnREFBcUI7SUFDOUQsYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUM3QixVQUFVLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEQsWUFBWSxFQUFXO1FBQ3JCLEtBQUssQ0FBQyxFQUFFLElBQUksb0JBQW9CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLHNEQUFzRDtRQUV0RCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsV0FBVyxTQUFTLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXRDRCxzRUFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBDb2xsZWN0cyBsb29wIGl0ZXJhdGlvbnMgaW4gYSBzZXBhcmF0ZSBjaGFubmVsLlxuICpcbiAqIEtlZXBzIHRoZSBtYWluIG5hcnJhdGl2ZSBjbGVhbiAobm8gbG9vcCBzZW50ZW5jZXMpIHdoaWxlIHByZXNlcnZpbmcgZnVsbFxuICogaXRlcmF0aW9uIGRldGFpbCBpbiBhIHNlcGFyYXRlIGFjY2Vzc29yIGZvciBjb25zdW1lcnMgd2hvIG5lZWQgaXQuXG4gKlxuICogQmVzdCBmb3I6IFVJcyBvciByZXBvcnRzIHdoZXJlIGxvb3AgZGV0YWlsIGlzIGluIGEgY29sbGFwc2libGUgc2VjdGlvbixcbiAqIG9yIExMTSBwaXBlbGluZXMgd2hlcmUgbG9vcCBjb250ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUgYnV0IG5vdCBpbiB0aGUgbWFpbiBwcm9tcHQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlY29yZGVyID0gbmV3IFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyKCk7XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIocmVjb3JkZXIpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogY29uc3QgbWFpbk5hcnJhdGl2ZSA9IGV4ZWN1dG9yLmdldE5hcnJhdGl2ZSgpOyAgICAgLy8gTm8gbG9vcCBzZW50ZW5jZXNcbiAqIGNvbnN0IGxvb3BEZXRhaWwgPSByZWNvcmRlci5nZXRMb29wU2VudGVuY2VzKCk7ICAgIC8vIEFsbCBsb29wIGRldGFpbFxuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgTmFycmF0aXZlRmxvd1JlY29yZGVyIH0gZnJvbSAnLi4vTmFycmF0aXZlRmxvd1JlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgRmxvd0xvb3BFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyIGV4dGVuZHMgTmFycmF0aXZlRmxvd1JlY29yZGVyIHtcbiAgcHJpdmF0ZSBsb29wU2VudGVuY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIGxvb3BDb3VudHM6IE1hcDxzdHJpbmcsIG51bWJlcj4gPSBuZXcgTWFwKCk7XG5cbiAgY29uc3RydWN0b3IoaWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihpZCA/PyAnbmFycmF0aXZlLXNlcGFyYXRlJyk7XG4gIH1cblxuICBvdmVycmlkZSBvbkxvb3AoZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkIHtcbiAgICAvLyBEb24ndCBjYWxsIHN1cGVyIOKAlCBrZWVwIGxvb3BzIG91dCBvZiBtYWluIG5hcnJhdGl2ZVxuXG4gICAgLy8gVHJhY2sgY291bnQgZm9yIHN1bW1hcnlcbiAgICBjb25zdCBjb3VudCA9ICh0aGlzLmxvb3BDb3VudHMuZ2V0KGV2ZW50LnRhcmdldCkgPz8gMCkgKyAxO1xuICAgIHRoaXMubG9vcENvdW50cy5zZXQoZXZlbnQudGFyZ2V0LCBjb3VudCk7XG5cbiAgICAvLyBTdG9yZSBpbiBzZXBhcmF0ZSBjaGFubmVsXG4gICAgaWYgKGV2ZW50LmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmxvb3BTZW50ZW5jZXMucHVzaChgT24gcGFzcyAke2V2ZW50Lml0ZXJhdGlvbn06ICR7ZXZlbnQuZGVzY3JpcHRpb259IGFnYWluLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvb3BTZW50ZW5jZXMucHVzaChgT24gcGFzcyAke2V2ZW50Lml0ZXJhdGlvbn0gdGhyb3VnaCAke2V2ZW50LnRhcmdldH0uYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgYWxsIGxvb3AgaXRlcmF0aW9uIHNlbnRlbmNlcyAodGhlIHNlcGFyYXRlIGNoYW5uZWwpLiAqL1xuICBnZXRMb29wU2VudGVuY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMubG9vcFNlbnRlbmNlc107XG4gIH1cblxuICAvKiogUmV0dXJucyB0b3RhbCBsb29wIGNvdW50IHBlciB0YXJnZXQuICovXG4gIGdldExvb3BDb3VudHMoKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAodGhpcy5sb29wQ291bnRzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgIHN1cGVyLmNsZWFyKCk7XG4gICAgdGhpcy5sb29wU2VudGVuY2VzID0gW107XG4gICAgdGhpcy5sb29wQ291bnRzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvcmVjb3JkZXJzL1NlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHOzs7QUFFSCwwRUFBb0U7QUFHcEUsTUFBYSw2QkFBOEIsU0FBUSxnREFBcUI7SUFDOUQsYUFBYSxHQUFhLEVBQUUsQ0FBQztJQUM3QixVQUFVLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFcEQsWUFBWSxFQUFXO1FBQ3JCLEtBQUssQ0FBQyxFQUFFLElBQUksb0JBQW9CLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVEsTUFBTSxDQUFDLEtBQW9CO1FBQ2xDLHNEQUFzRDtRQUV0RCwwQkFBMEI7UUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFekMsNEJBQTRCO1FBQzVCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsV0FBVyxTQUFTLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxDQUFDLFNBQVMsWUFBWSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELDJDQUEyQztJQUMzQyxhQUFhO1FBQ1gsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQXRDRCxzRUFzQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyIOKAlCBDb2xsZWN0cyBsb29wIGl0ZXJhdGlvbnMgaW4gYSBzZXBhcmF0ZSBjaGFubmVsLlxuICpcbiAqIEtlZXBzIHRoZSBtYWluIG5hcnJhdGl2ZSBjbGVhbiAobm8gbG9vcCBzZW50ZW5jZXMpIHdoaWxlIHByZXNlcnZpbmcgZnVsbFxuICogaXRlcmF0aW9uIGRldGFpbCBpbiBhIHNlcGFyYXRlIGFjY2Vzc29yIGZvciBjb25zdW1lcnMgd2hvIG5lZWQgaXQuXG4gKlxuICogQmVzdCBmb3I6IFVJcyBvciByZXBvcnRzIHdoZXJlIGxvb3AgZGV0YWlsIGlzIGluIGEgY29sbGFwc2libGUgc2VjdGlvbixcbiAqIG9yIExMTSBwaXBlbGluZXMgd2hlcmUgbG9vcCBjb250ZXh0IHNob3VsZCBiZSBhdmFpbGFibGUgYnV0IG5vdCBpbiB0aGUgbWFpbiBwcm9tcHQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlY29yZGVyID0gbmV3IFNlcGFyYXRlTmFycmF0aXZlRmxvd1JlY29yZGVyKCk7XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIocmVjb3JkZXIpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogY29uc3QgbWFpbkVudHJpZXMgPSBleGVjdXRvci5nZXROYXJyYXRpdmVFbnRyaWVzKCk7IC8vIE5vIGxvb3Agc2VudGVuY2VzXG4gKiBjb25zdCBsb29wRGV0YWlsID0gcmVjb3JkZXIuZ2V0TG9vcFNlbnRlbmNlcygpOyAgICAgLy8gQWxsIGxvb3AgZGV0YWlsXG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBOYXJyYXRpdmVGbG93UmVjb3JkZXIgfSBmcm9tICcuLi9OYXJyYXRpdmVGbG93UmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBGbG93TG9vcEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU2VwYXJhdGVOYXJyYXRpdmVGbG93UmVjb3JkZXIgZXh0ZW5kcyBOYXJyYXRpdmVGbG93UmVjb3JkZXIge1xuICBwcml2YXRlIGxvb3BTZW50ZW5jZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgbG9vcENvdW50czogTWFwPHN0cmluZywgbnVtYmVyPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihpZD86IHN0cmluZykge1xuICAgIHN1cGVyKGlkID8/ICduYXJyYXRpdmUtc2VwYXJhdGUnKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uTG9vcChldmVudDogRmxvd0xvb3BFdmVudCk6IHZvaWQge1xuICAgIC8vIERvbid0IGNhbGwgc3VwZXIg4oCUIGtlZXAgbG9vcHMgb3V0IG9mIG1haW4gbmFycmF0aXZlXG5cbiAgICAvLyBUcmFjayBjb3VudCBmb3Igc3VtbWFyeVxuICAgIGNvbnN0IGNvdW50ID0gKHRoaXMubG9vcENvdW50cy5nZXQoZXZlbnQudGFyZ2V0KSA/PyAwKSArIDE7XG4gICAgdGhpcy5sb29wQ291bnRzLnNldChldmVudC50YXJnZXQsIGNvdW50KTtcblxuICAgIC8vIFN0b3JlIGluIHNlcGFyYXRlIGNoYW5uZWxcbiAgICBpZiAoZXZlbnQuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubG9vcFNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufTogJHtldmVudC5kZXNjcmlwdGlvbn0gYWdhaW4uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9vcFNlbnRlbmNlcy5wdXNoKGBPbiBwYXNzICR7ZXZlbnQuaXRlcmF0aW9ufSB0aHJvdWdoICR7ZXZlbnQudGFyZ2V0fS5gKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyBhbGwgbG9vcCBpdGVyYXRpb24gc2VudGVuY2VzICh0aGUgc2VwYXJhdGUgY2hhbm5lbCkuICovXG4gIGdldExvb3BTZW50ZW5jZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5sb29wU2VudGVuY2VzXTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRvdGFsIGxvb3AgY291bnQgcGVyIHRhcmdldC4gKi9cbiAgZ2V0TG9vcENvdW50cygpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IE1hcCh0aGlzLmxvb3BDb3VudHMpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLmxvb3BTZW50ZW5jZXMgPSBbXTtcbiAgICB0aGlzLmxvb3BDb3VudHMuY2xlYXIoKTtcbiAgfVxufVxuIl19
@@ -96,11 +96,8 @@
96
96
  * @example Build a live LLM tracker (combining storage + observer):
97
97
  *
98
98
  * ```typescript
99
- * import {
100
- * BoundaryStateTracker,
101
- * type CombinedRecorder,
102
- * type EmitEvent,
103
- * } from 'footprintjs';
99
+ * import { BoundaryStateTracker } from 'footprintjs/trace';
100
+ * import { type CombinedRecorder, type EmitEvent } from 'footprintjs';
104
101
  *
105
102
  * interface LLMLiveState {
106
103
  * readonly partial: string;
@@ -264,4 +261,4 @@ class BoundaryStateTracker {
264
261
  }
265
262
  }
266
263
  exports.BoundaryStateTracker = BoundaryStateTracker;
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnlTdGF0ZVRyYWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlY29yZGVyL0JvdW5kYXJ5U3RhdGVUcmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0pHOzs7QUFFSCxrRUFBdUQ7QUFFdkQsTUFBc0Isb0JBQW9CO0lBSXhDLDBEQUEwRDtJQUN6QyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFcEQ7O29EQUVnRDtJQUMvQixhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFM0QsdUVBQXVFO0lBRXZFOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDTyxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFBLDZCQUFTLEdBQUUsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxJQUFJLENBQUMsRUFBRSxvQkFBb0IsR0FBRyxxREFBcUQ7Z0JBQ3JGLGtFQUFrRSxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxjQUFjLENBQUMsR0FBVyxFQUFFLE9BQWlDO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFB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b250ZW50IjpbIi8qKlxuICogQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPiDigJQgdGhpcmQgc3RvcmFnZSBwcmltaXRpdmUgb24gdGhlIHJlY29yZGVyXG4gKiBzaGVsZiwgYWxvbmdzaWRlIGBTZXF1ZW5jZVJlY29yZGVyPFQ+YCBhbmQgYEtleWVkUmVjb3JkZXI8VD5gLlxuICpcbiAqICoqTWVudGFsIG1vZGVsIOKAlCBvYnNlcnZlcnMgdnMuIGJvb2trZWVwZXJzOioqXG4gKlxuICogICBgU2NvcGVSZWNvcmRlcmAgLyBgRmxvd1JlY29yZGVyYCAvIGBFbWl0UmVjb3JkZXJgIC8gYENvbWJpbmVkUmVjb3JkZXJgXG4gKiAgICAgYXJlIE9CU0VSVkVSIGludGVyZmFjZXMg4oCUIHRoZXkgZGVzY3JpYmUgaG93IGEgcmVjb3JkZXIgaGVhcnNcbiAqICAgICBldmVudHMgZnJvbSB0aGUgZXhlY3V0b3IuXG4gKlxuICogICBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgLyBgS2V5ZWRSZWNvcmRlcjxUPmAgLyBgQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPmBcbiAqICAgICBhcmUgU1RPUkFHRSBwcmltaXRpdmVzIOKAlCB0aHJlZSBkaWZmZXJlbnQgYm9va2tlZXBpbmcgc2hlbHZlcyB3aXRoXG4gKiAgICAgZGlmZmVyZW50IGR1cmFiaWxpdHkgYW5kIGluZGV4aW5nIHByb3BlcnRpZXMuIEEgcmVhbCByZWNvcmRlclxuICogICAgIGNsYXNzIHR5cGljYWxseSBwaWNrcyBPTkUgb2JzZXJ2ZXIgaW50ZXJmYWNlIEFORCBPTkUgc3RvcmFnZVxuICogICAgIHNoZWxmLCBjb21iaW5pbmcgdGhlbSB2aWEgYGV4dGVuZHMgKyBpbXBsZW1lbnRzYC5cbiAqXG4gKiAqKldoYXQgdGhpcyBwcmltaXRpdmUgYW5zd2VyczoqKiBcIkF0IGFueSBtb21lbnQgZHVyaW5nIHRoZSBydW4sIHdoYXRcbiAqIGlzIHRoZSBMSVZFIHRyYW5zaWVudCBzdGF0ZSBvZiBldmVyeSBjdXJyZW50bHktYWN0aXZlIGJvdW5kYXJ5P1wiXG4gKlxuICogQSBcImJvdW5kYXJ5XCIgaXMgYSBtYXRjaGVkIGV2ZW50IHBhaXIgYFtzdGFydCwgc3RvcF1gIGJyYWNrZXRpbmcgYW5cbiAqIGludGVydmFsIOKAlCBmb3IgZXhhbXBsZSwgYChsbG1fc3RhcnQsIGxsbV9lbmQpYCBmb3IgYW4gTExNIGNhbGwsXG4gKiBgKHRvb2xfc3RhcnQsIHRvb2xfZW5kKWAgZm9yIHRvb2wgZXhlY3V0aW9uLCBgKHR1cm5fc3RhcnQsIHR1cm5fZW5kKWBcbiAqIGZvciBhbiBhZ2VudCB0dXJuLiBCZXR3ZWVuIHRoZSBicmFja2V0cywgaW50ZXJtZWRpYXRlIGV2ZW50cyBldm9sdmVcbiAqIHRoZSBib3VuZGFyeSdzIHN0YXRlICh0b2tlbiBjaHVua3MgYWNjdW11bGF0aW5nIGludG8gYSBwYXJ0aWFsXG4gKiBhbnN3ZXIsIGFyZ3Mgc3RyZWFtaW5nIGluLCBldGMuKS4gT24gYHN0b3BgLCB0aGUgc3RhdGUgY2xlYXJzLlxuICpcbiAqIEFsZ29yaXRobWljYWxseSB0aGlzIGlzIHRoZSAqKkRGUyBicmFja2V0LXNlcXVlbmNlIHBhdHRlcm4qKiDigJRcbiAqIHN0YWNrLWZyYW1lIHN0YXRlIGR1cmluZyBhIGdyYXBoLXRyYXZlcnNhbCBpbnRlcnZhbC4gU2FtZSBzaGFwZSB1c2VkXG4gKiBieSBUYXJqYW4ncyBTQ0MgYWxnb3JpdGhtLCB0cmVlIGRlY29tcG9zaXRpb24sIGFuZCBwdXNoLWRvd25cbiAqIGF1dG9tYXRhLiBUaGUgYGFjdGl2ZWAgbWFwIGlzIHRoZSBvcGVuLWJyYWNrZXRzIHN0YWNrIGF0IGFueSBtb21lbnQuXG4gKlxuICogKipDb21wYXJpc29uIHdpdGggdGhlIG90aGVyIHN0b3JhZ2UgcHJpbWl0aXZlczoqKlxuICpcbiAqIHwgUHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpbWUgc2NvcGUgICAgICAgICAgfCBNZW1vcnkgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfFxuICogfCBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgICAgICAgICAgIHwgYXBwZW5kLW9ubHkgb3JkZXJlZCArIGtleWVkIGVudHJpZXMgIHwgZHVyYWJsZSBhY3Jvc3MgcnVuICB8IE8oTiBldmVudHMpIHxcbiAqIHwgYEtleWVkUmVjb3JkZXI8VD5gICAgICAgICAgICAgICB8IDE6MSBlbnRyeSBwZXIgYHJ1bnRpbWVTdGFnZUlkYCAgICAgICB8IGR1cmFibGUgYWNyb3NzIHJ1biAgfCBPKE4gc3RlcHMpICB8XG4gKiB8IGBCb3VuZGFyeVN0YXRlVHJhY2tlcjxUU3RhdGU+YCAgfCB0cmFuc2llbnQgYnJhY2tldC1zY29wZWQgc3RhdGUgICAgICAgfCBsaXZlOyBjbGVhcnMgb24gc3RvcCB8IE8oSyBhY3RpdmUpIHxcbiAqXG4gKiAqKldoZW4gdG8gcGljayB3aGljaDoqKlxuICpcbiAqICAgLSBcIkkgbmVlZCB0byBrZWVwIGEgcGVybWFuZW50IGxvZyBvZiBldmVyeSBldmVudCBmb3IgdGltZS10cmF2ZWxcIlxuICogICAgICDihpIgYFNlcXVlbmNlUmVjb3JkZXI8VD5gXG4gKiAgIC0gXCJJIHdhbnQgb25lIGR1cmFibGUgcmVjb3JkIHBlciBzdGFnZSBleGVjdXRpb24gKGUuZy4sIG1ldHJpY3MpXCJcbiAqICAgICAg4oaSIGBLZXllZFJlY29yZGVyPFQ+YFxuICogICAtIFwiSSBuZWVkIHRvIGtub3cgd2hhdCdzIGhhcHBlbmluZyBSSUdIVCBOT1cgaW5zaWRlIGFuIGluLWZsaWdodFxuICogICAgIGJvdW5kYXJ5IChlLmcuLCBwYXJ0aWFsIExMTSBzdHJlYW0sIHBhcnRpYWwgdG9vbCBhcmdzKVwiXG4gKiAgICAgIOKGkiBgQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPmAgKHRoaXMgY2xhc3MpXG4gKlxuICogKipXaGF0IHRoaXMgaXMgTk9UIGZvcjoqKlxuICpcbiAqICAgLSBUaW1lLXRyYXZlbCBxdWVyaWVzIChcIndoYXQgd2FzIHRoZSBzdGF0ZSBhdCBwYXN0IHNsaWRlciBzdGVwIE4/XCIpXG4gKiAgICAg4oCUIHRyYW5zaWVudCBzdGF0ZSBjbGVhcnMgb24gc3RvcC4gRm9yIHRpbWUtdHJhdmVsLCBzbmFwc2hvdCB0aGVcbiAqICAgICBzdGF0ZSBhdCBlYWNoIGVtaXQgaW50byBhIHNlcGFyYXRlIGBTZXF1ZW5jZVJlY29yZGVyPFRTdGF0ZT5gLFxuICogICAgIG9yIHdhaXQgZm9yIGEgZnV0dXJlIGBCb3VuZGFyeVNuYXBzaG90UmVjb3JkZXI8VFN0YXRlPmAgcHJpbWl0aXZlLlxuICpcbiAqICAgLSBBZ2dyZWdhdGlvbnMgYWNyb3NzIHRoZSB3aG9sZSBydW4gKHRvdGFscywgY291bnRzKSDigJQgdGhvc2UgYXJlXG4gKiAgICAgYFNlcXVlbmNlUmVjb3JkZXIuYWdncmVnYXRlKClgIC8gYEtleWVkUmVjb3JkZXIuYWdncmVnYXRlKClgLlxuICpcbiAqICAgLSBTdGFnZS1sZXZlbCBjb25jZXJucyDigJQgdGhvc2UgdXNlIGBTY29wZVJlY29yZGVyLm9uU3RhZ2VTdGFydGAgL1xuICogICAgIGBTY29wZVJlY29yZGVyLm9uU3RhZ2VFbmRgLiBUaGlzIHByaW1pdGl2ZSBvcGVyYXRlcyBhdCBmaW5lclxuICogICAgIGdyYW51bGFyaXR5IChldmVudHMgZW1pdHRlZCBEVVJJTkcgYSBzdGFnZSBleGVjdXRpb24pLlxuICpcbiAqICoqTGlmZWN5Y2xlIGNvbnRyYWN0IOKAlCBTVFJJQ1Q6KipcbiAqXG4gKiAgIEV2ZXJ5IGBzdGFydEJvdW5kYXJ5KGtleSwgLi4uKWAgY2FsbCBNVVNUIGJlIHBhaXJlZCB3aXRoIGFcbiAqICAgYHN0b3BCb3VuZGFyeShrZXkpYCBjYWxsLiBGYWlsdXJlIHRvIHdpcmUgdGhlIHN0b3Agc2lkZSBwcm9kdWNlcyBhXG4gKiAgIG1lbW9yeSBsZWFrOiB0aGUgYWN0aXZlIG1hcCBncm93cyB3aXRob3V0IGJvdW5kLCBhbmQgYGdldEFsbEFjdGl2ZSgpYFxuICogICByZXR1cm5zIHN0YWxlIGVudHJpZXMgdGhhdCBsb29rIGluLWZsaWdodCBidXQgYXJlbid0LiBDb21tb24gY2F1c2U6XG4gKiAgIHN1YmNsYXNzIHdpcmVzIGBzdGFydGAgdG8gb25lIGV2ZW50IGhhbmRsZXIgYW5kIGZvcmdldHMgdG8gd2lyZVxuICogICBgc3RvcGAuICoqQWx3YXlzIHdpcmUgYm90aCBhdCB0aGUgc2FtZSB0aW1lLioqXG4gKlxuICogICBEZXYgbW9kZSAoYGVuYWJsZURldk1vZGUoKWApIGRldGVjdHMgbGVha3MgYXQgYGNsZWFyKClgIHRpbWUg4oCUXG4gKiAgIHdhcm5pbmcgaW5jbHVkZXMgdGhlIGxlYWtlZCBrZXlzIHNvIHlvdSBjYW4gZmluZCB0aGUgbWlzc2luZyB3aXJpbmcuXG4gKlxuICogKipDb25jdXJyZW5jeSAvIG5lc3Rpbmc6KipcbiAqXG4gKiAgIC0gQ29uY3VycmVudCBib3VuZGFyaWVzIChwYXJhbGxlbCBicmFuY2hlcyB3aXRoIHR3byBMTE0gY2FsbHNcbiAqICAgICBhY3RpdmUgYXQgb25jZSkgd29yayBjb3JyZWN0bHk6IGVhY2ggaXMga2V5ZWQgaW5kZXBlbmRlbnRseSBpblxuICogICAgIHRoZSBhY3RpdmUgbWFwLlxuICogICAtIE5lc3RlZCBib3VuZGFyaWVzIG9mIERJRkZFUkVOVCBLSU5EUyAoQWdlbnQgYm91bmRhcnkgY29udGFpbnNcbiAqICAgICBMTE0gYm91bmRhcnkpIHJlcXVpcmUgU0VQQVJBVEUgdHJhY2tlciBpbnN0YW5jZXMg4oCUIG9uZSBwZXIga2luZC5cbiAqICAgICBUaGUgYmFzZSBjbGFzcyB0cmFja3Mgb25lIGJvdW5kYXJ5IGtpbmQgcGVyIGluc3RhbmNlLlxuICpcbiAqICoqS2V5IGNvbnZlbnRpb246KipcbiAqXG4gKiAgIFRoZSBga2V5OiBzdHJpbmdgIGlzIHdoYXRldmVyIHlvdXIgc3ViY2xhc3MgcGlja3MuIENvbnZlbnRpb246XG4gKiAgIHVzZSBgcnVudGltZVN0YWdlSWRgIHdoZW4gdGhlIGJvdW5kYXJ5IG1hcHMgMToxIHRvIGEgc3RhZ2VcbiAqICAgZXhlY3V0aW9uIOKAlCB0aGlzIGdpdmVzIGZyZWUgaW50ZXJvcCB3aXRoIGBTZXF1ZW5jZVJlY29yZGVyXG4gKiAgIC5nZXRFbnRyaWVzRm9yU3RlcGAsIGBLZXllZFJlY29yZGVyLmdldEJ5S2V5YCwgYGZpbmRDb21taXRgIC9cbiAqICAgYGZpbmRMYXN0V3JpdGVyYCwgYW5kIHRoZSByZXN0IG9mIHRoZSB0cmFjZSBlY29zeXN0ZW0uIFVzZSBhIG1vcmVcbiAqICAgZ3JhbnVsYXIga2V5IChlLmcuLCBgdG9vbENhbGxJZGApIG9ubHkgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGVcbiAqICAgY29uY3VycmVudCBib3VuZGFyaWVzIFdJVEhJTiBvbmUgc3RhZ2UgZXhlY3V0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJ1aWxkIGEgbGl2ZSBMTE0gdHJhY2tlciAoY29tYmluaW5nIHN0b3JhZ2UgKyBvYnNlcnZlcik6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHtcbiAqICAgQm91bmRhcnlTdGF0ZVRyYWNrZXIsXG4gKiAgIHR5cGUgQ29tYmluZWRSZWNvcmRlcixcbiAqICAgdHlwZSBFbWl0RXZlbnQsXG4gKiB9IGZyb20gJ2Zvb3RwcmludGpzJztcbiAqXG4gKiBpbnRlcmZhY2UgTExNTGl2ZVN0YXRlIHtcbiAqICAgcmVhZG9ubHkgcGFydGlhbDogc3RyaW5nO1xuICogICByZWFkb25seSB0b2tlbnM6IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBjbGFzcyBMaXZlTExNVHJhY2tlclxuICogICBleHRlbmRzIEJvdW5kYXJ5U3RhdGVUcmFja2VyPExMTUxpdmVTdGF0ZT4gICAvLyBTVE9SQUdFIHNoZWxmXG4gKiAgIGltcGxlbWVudHMgQ29tYmluZWRSZWNvcmRlciAgICAgICAgICAgICAgICAgICAvLyBPQlNFUlZFUiBpbnRlcmZhY2VcbiAqIHtcbiAqICAgcmVhZG9ubHkgaWQgPSAnbGl2ZS1sbG0nO1xuICpcbiAqICAgLy8gT2JzZXJ2ZXIgaGFsZiDigJQgdHJhbnNsYXRlIGV2ZW50cyBpbnRvIGJyYWNrZXQgbXV0YXRpb25zLlxuICogICBvbkVtaXQoZXZlbnQ6IEVtaXRFdmVudCk6IHZvaWQge1xuICogICAgIGlmIChldmVudC5uYW1lID09PSAnYWdlbnRmb290cHJpbnQuc3RyZWFtLmxsbV9zdGFydCcpIHtcbiAqICAgICAgIHRoaXMuc3RhcnRCb3VuZGFyeShldmVudC5ydW50aW1lU3RhZ2VJZCwgeyBwYXJ0aWFsOiAnJywgdG9rZW5zOiAwIH0pO1xuICogICAgIH0gZWxzZSBpZiAoZXZlbnQubmFtZSA9PT0gJ2FnZW50Zm9vdHByaW50LnN0cmVhbS5sbG1fZW5kJykge1xuICogICAgICAgdGhpcy5zdG9wQm91bmRhcnkoZXZlbnQucnVudGltZVN0YWdlSWQpO1xuICogICAgIH0gZWxzZSBpZiAoZXZlbnQubmFtZSA9PT0gJ2FnZW50Zm9vdHByaW50LnN0cmVhbS50b2tlbicpIHtcbiAqICAgICAgIHRoaXMudXBkYXRlQm91bmRhcnkoZXZlbnQucnVudGltZVN0YWdlSWQsIChzKSA9PiAoe1xuICogICAgICAgICBwYXJ0aWFsOiBzLnBhcnRpYWwgKyAoZXZlbnQucGF5bG9hZCBhcyB7IGNvbnRlbnQ6IHN0cmluZyB9KS5jb250ZW50LFxuICogICAgICAgICB0b2tlbnM6IHMudG9rZW5zICsgMSxcbiAqICAgICAgIH0pKTtcbiAqICAgICB9XG4gKiAgIH1cbiAqXG4gKiAgIC8vIFB1YmxpYyByZWFkIEFQSSDigJQgTygxKSBhdCBhbnkgbW9tZW50LlxuICogICBpc0luRmxpZ2h0KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5oYXNBY3RpdmU7IH1cbiAqICAgZ2V0UGFydGlhbChzdGFnZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICogICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZShzdGFnZUlkKT8ucGFydGlhbCA/PyAnJztcbiAqICAgfVxuICogfVxuICpcbiAqIC8vIEF0dGFjaGVkIHRoZSBzYW1lIHdheSBhcyBhbnkgb3RoZXIgQ29tYmluZWRSZWNvcmRlci5cbiAqIGNvbnN0IHRyYWNrZXIgPSBuZXcgTGl2ZUxMTVRyYWNrZXIoKTtcbiAqIGV4ZWN1dG9yLmF0dGFjaENvbWJpbmVkUmVjb3JkZXIodHJhY2tlcik7XG4gKiBhd2FpdCBleGVjdXRvci5ydW4oeyBpbnB1dCB9KTtcbiAqXG4gKiAvLyBSZWFkIGxpdmUgc3RhdGUgYXQgYW55IHRpbWUgZHVyaW5nIG9yIGFmdGVyIHRoZSBydW4uXG4gKiB0cmFja2VyLmlzSW5GbGlnaHQoKTtcbiAqIHRyYWNrZXIuZ2V0UGFydGlhbChyaWQpO1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnLi4vc2NvcGUvZGV0ZWN0Q2lyY3VsYXIuanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPiB7XG4gIC8qKiBTdGFibGUgaWQg4oCUIHNhbWUgaWRlbXBvdGVuY3kgY29udHJhY3QgYXMgb3RoZXIgcmVjb3JkZXJzLiAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKiBPcGVuLWJyYWNrZXRzIHN0YWNrOiBrZXkg4oaSIGN1cnJlbnQgdHJhbnNpZW50IHN0YXRlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZSA9IG5ldyBNYXA8c3RyaW5nLCBUU3RhdGU+KCk7XG5cbiAgLyoqIFBlci1rZXkgY291bnQgb2YgYHVwZGF0ZUJvdW5kYXJ5YCBjYWxscyB0aGF0IGxhbmRlZCB3aXRob3V0IGFcbiAgICogIG1hdGNoaW5nIGFjdGl2ZSBib3VuZGFyeS4gRHJpdmVzIHJhdGUtbGltaXRlZCBkZXYtbW9kZSB3YXJuaW5nc1xuICAgKiAgc28gYSBzdHVjayBsb29wIGRvZXNuJ3Qgc3BhbSB0aGUgY29uc29sZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBtaXNzZWRVcGRhdGVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAvLyDilIDilIAgTXV0YXRvciBBUEkgKHN1YmNsYXNzIGNhbGxzIHRoZXNlIGZyb20gb2JzZXJ2ZXIgaG9va3MpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBPcGVuIGEgbmV3IGJvdW5kYXJ5IHdpdGggaW5pdGlhbCB0cmFuc2llbnQgc3RhdGUuXG4gICAqXG4gICAqIElmIGEgYm91bmRhcnkgd2l0aCB0aGUgc2FtZSBga2V5YCBpcyBhbHJlYWR5IGFjdGl2ZSwgdGhlIHByaW9yXG4gICAqIHN0YXRlIGlzIG92ZXJ3cml0dGVuIChsYXN0LXdyaXRlci13aW5zKS4gSW4gZGV2IG1vZGUsIGEgd2FybmluZ1xuICAgKiBpcyBsb2dnZWQgYmVjYXVzZSByZS1zdGFydGluZyBhbiBhY3RpdmUga2V5IHVzdWFsbHkgaW5kaWNhdGVzIGFcbiAgICogbWlzc2VkIGBzdG9wQm91bmRhcnlgIGNhbGwgdXBzdHJlYW0uXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQm91bmRhcnkgaWRlbnRpZmllciDigJQgYnkgY29udmVudGlvbiwgYHJ1bnRpbWVTdGFnZUlkYFxuICAgKiAgICAgICAgICAgIGZvciAxOjEtd2l0aC1zdGFnZSBib3VuZGFyaWVzLCBvciBhIG1vcmUgZ3JhbnVsYXIgaWRcbiAgICogICAgICAgICAgICAoZS5nLiwgYHRvb2xDYWxsSWRgKSB3aGVuIG11bHRpcGxlIGNvbmN1cnJlbnQgYm91bmRhcmllc1xuICAgKiAgICAgICAgICAgIHJ1biB3aXRoaW4gb25lIHN0YWdlIGV4ZWN1dGlvbi5cbiAgICogQHBhcmFtIGluaXRpYWwgSW5pdGlhbCBzdGF0ZSDigJQgdHlwZWQgYnkgYFRTdGF0ZWAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhcnRCb3VuZGFyeShrZXk6IHN0cmluZywgaW5pdGlhbDogVFN0YXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlLmhhcyhrZXkpICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbJHt0aGlzLmlkfV0gc3RhcnRCb3VuZGFyeSgnJHtrZXl9JykgY2FsbGVkIHdoaWxlIGFuIGFjdGl2ZSBib3VuZGFyeSBhbHJlYWR5IGV4aXN0cy4gYCArXG4gICAgICAgICAgJ092ZXJ3cml0aW5nIHByaW9yIHN0YXRlIOKAlCBsaWtlbHkgYSBtaXNzZWQgc3RvcEJvdW5kYXJ5IHVwc3RyZWFtLicsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZS5zZXQoa2V5LCBpbml0aWFsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdm9sdmUgdGhlIHRyYW5zaWVudCBzdGF0ZSBvZiBhbiBhY3RpdmUgYm91bmRhcnkgdXNpbmcgYW4gdXBkYXRlclxuICAgKiBmdW5jdGlvbi4gU2lsZW50IG5vLW9wIGlmIG5vIGJvdW5kYXJ5IGlzIGFjdGl2ZSBmb3IgYGtleWBcbiAgICogKGRlZmVuc2l2ZSBhZ2FpbnN0IG91dC1vZi1vcmRlciBldmVudHMpLiBJbiBkZXYgbW9kZSwgYSByYXRlLWxpbWl0ZWRcbiAgICogd2FybmluZyBpcyBsb2dnZWQgb24gdGhlIDFzdCwgMTB0aCwgYW5kIDEwMHRoIG1pc3NlZCB1cGRhdGUgcGVyIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGtleSAgICAgIEJvdW5kYXJ5IGlkZW50aWZpZXIgKG11c3QgbWF0Y2ggYSBwcmlvciBgc3RhcnRCb3VuZGFyeWApLlxuICAgKiBAcGFyYW0gdXBkYXRlciAgUHVyZSBmdW5jdGlvbjogcHJldmlvdXMgc3RhdGUg4oaSIG5leHQgc3RhdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQm91bmRhcnkoa2V5OiBzdHJpbmcsIHVwZGF0ZXI6IChwcmV2OiBUU3RhdGUpID0+IFRTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGN1ciA9IHRoaXMuYWN0aXZlLmdldChrZXkpO1xuICAgIGlmIChjdXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnN0IG4gPSAodGhpcy5taXNzZWRVcGRhdGVzLmdldChrZXkpID8/IDApICsgMTtcbiAgICAgICAgdGhpcy5taXNzZWRVcGRhdGVzLnNldChrZXksIG4pO1xuICAgICAgICBpZiAobiA9PT0gMSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgWyR7dGhpcy5pZH1dIHVwZGF0ZUJvdW5kYXJ5KCcke2tleX0nKSDigJQgbm8gYWN0aXZlIGJvdW5kYXJ5LiBVcGRhdGUgZHJvcHBlZC5gKTtcbiAgICAgICAgfSBlbHNlIGlmIChuID09PSAxMCB8fCBuID09PSAxMDApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFske3RoaXMuaWR9XSB1cGRhdGVCb3VuZGFyeSgnJHtrZXl9Jykg4oCUICR7bn0gZHJvcHBlZCB1cGRhdGVzLiBXaXJpbmcgYnVnP2ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlLnNldChrZXksIHVwZGF0ZXIoY3VyKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGJvdW5kYXJ5IGlkZW50aWZpZWQgYnkgYGtleWAgYW5kIHJldHVybiBpdHMgRklOQUxcbiAgICogdHJhbnNpZW50IHN0YXRlIChmb3IgYW55IGNsZWFudXAgdGhlIHN1YmNsYXNzIHdhbnRzIOKAlCBlLmcuLCBlbWl0IGFcbiAgICogc25hcHNob3QgdG8gYSBTZXF1ZW5jZVJlY29yZGVyIGZvciBkdXJhYmxlIHN0b3JhZ2UpLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IEJvdW5kYXJ5IGlkZW50aWZpZXIuXG4gICAqIEByZXR1cm5zIFRoZSBmaW5hbCBzdGF0ZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm8gYm91bmRhcnkgd2FzIGFjdGl2ZS5cbiAgICovXG4gIHByb3RlY3RlZCBzdG9wQm91bmRhcnkoa2V5OiBzdHJpbmcpOiBUU3RhdGUgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGZpbmFsID0gdGhpcy5hY3RpdmUuZ2V0KGtleSk7XG4gICAgdGhpcy5hY3RpdmUuZGVsZXRlKGtleSk7XG4gICAgcmV0dXJuIGZpbmFsO1xuICB9XG5cbiAgLy8g4pSA4pSAIFJlYWQgQVBJIChjb25zdW1lcnMgY2FsbCB0aGVzZSDigJQgTygxKSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIEN1cnJlbnQgdHJhbnNpZW50IHN0YXRlIG9mIE9ORSBhY3RpdmUgYm91bmRhcnkuIGB1bmRlZmluZWRgIGlmIG5vXG4gICAqICBib3VuZGFyeSBpcyBhY3RpdmUgZm9yIGBrZXlgLiAqL1xuICBnZXRBY3RpdmUoa2V5OiBzdHJpbmcpOiBUU3RhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGwgY3VycmVudGx5LWFjdGl2ZSBib3VuZGFyaWVzLlxuICAgKlxuICAgKiAqKlR5cGUtb25seSByZWFkb25seToqKiB0aGUgcmV0dXJuZWQgcmVmZXJlbmNlIElTIHRoZSBpbnRlcm5hbCBNYXAuXG4gICAqIFR5cGVTY3JpcHQgcHJldmVudHMgbXV0YXRpb24gdGhyb3VnaCB0aGUgYFJlYWRvbmx5TWFwYCB0eXBlLCBidXQgYVxuICAgKiBydW50aW1lIGNhc3Qgb3Igbm9uLVRTIGNvbnN1bWVyIGNhbiBtdXRhdGUgaXQgYW5kIGNvcnJ1cHQgaW50ZXJuYWxcbiAgICogc3RhdGUuICoqRG8gbm90IG11dGF0ZS4qKlxuICAgKi9cbiAgZ2V0QWxsQWN0aXZlKCk6IFJlYWRvbmx5TWFwPHN0cmluZywgVFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlO1xuICB9XG5cbiAgLyoqIFRydWUgaWYgYW55IGJvdW5kYXJ5IGlzIGN1cnJlbnRseSBhY3RpdmUuIE8oMSkuICovXG4gIGdldCBoYXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLnNpemUgPiAwO1xuICB9XG5cbiAgLyoqIE51bWJlciBvZiBjdXJyZW50bHktYWN0aXZlIGJvdW5kYXJpZXMuIE8oMSkuICovXG4gIGdldCBhY3RpdmVDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZS5zaXplO1xuICB9XG5cbiAgLy8g4pSA4pSAIExpZmVjeWNsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogUmVzZXQgYWxsIHRyYW5zaWVudCBzdGF0ZS4gQ2FsbGVkIGJ5IGV4ZWN1dG9ycyBiZWZvcmUgZWFjaCBgcnVuKClgXG4gICAqIHNvIGNvbnN1bWVycyBnZXQgYSBjbGVhbiBzbGF0ZSBwZXIgcnVuIOKAlCBzYW1lIGxpZmVjeWNsZSBjb250cmFjdFxuICAgKiBhcyBgU2VxdWVuY2VSZWNvcmRlci5jbGVhcigpYC5cbiAgICpcbiAgICogSW4gZGV2IG1vZGUsIHdhcm5zIGlmIGFueSBib3VuZGFyaWVzIGFyZSBzdGlsbCBhY3RpdmUgd2hlbiBjYWxsZWRcbiAgICog4oCUIGxpa2VseSBpbmRpY2F0ZXMgYSBtaXNzZWQgYHN0b3BCb3VuZGFyeWAgdXBzdHJlYW0uIFRoZSBsZWFrZWRcbiAgICoga2V5cyBhcmUgbGlzdGVkICh0cnVuY2F0ZWQgdG8gMTApIHNvIHRoZSB3aXJpbmcgYnVnIGlzIGZpbmRhYmxlLlxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlLnNpemUgPiAwICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zdCBrZXlzID0gWy4uLnRoaXMuYWN0aXZlLmtleXMoKV07XG4gICAgICBjb25zdCBoZWFkID0ga2V5cy5zbGljZSgwLCAxMCkuam9pbignLCAnKTtcbiAgICAgIGNvbnN0IG1vcmUgPSBrZXlzLmxlbmd0aCA+IDEwID8gYCAuLi4oKyR7a2V5cy5sZW5ndGggLSAxMH0gbW9yZSlgIDogJyc7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbJHt0aGlzLmlkfV0gY2xlYXIoKSBjYWxsZWQgd2l0aCAke3RoaXMuYWN0aXZlLnNpemV9IGAgK1xuICAgICAgICAgICdzdGlsbC1hY3RpdmUgYm91bmRhcmllcy4gTWlzc2VkIHN0b3BCb3VuZGFyeT8gJyArXG4gICAgICAgICAgYExlYWtlZCBrZXlzOiAke2hlYWR9JHttb3JlfWAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZS5jbGVhcigpO1xuICAgIHRoaXMubWlzc2VkVXBkYXRlcy5jbGVhcigpO1xuICB9XG59XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnlTdGF0ZVRyYWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlY29yZGVyL0JvdW5kYXJ5U3RhdGVUcmFja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNklHOzs7QUFFSCxrRUFBdUQ7QUFFdkQsTUFBc0Isb0JBQW9CO0lBSXhDLDBEQUEwRDtJQUN6QyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFcEQ7O29EQUVnRDtJQUMvQixhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFM0QsdUVBQXVFO0lBRXZFOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDTyxhQUFhLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFBLDZCQUFTLEdBQUUsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxJQUFJLENBQUMsRUFBRSxvQkFBb0IsR0FBRyxxREFBcUQ7Z0JBQ3JGLGtFQUFrRSxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDTyxjQUFjLENBQUMsR0FBVyxFQUFFLE9BQWlDO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxD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ZW50IjpbIi8qKlxuICogQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPiDigJQgdGhpcmQgc3RvcmFnZSBwcmltaXRpdmUgb24gdGhlIHJlY29yZGVyXG4gKiBzaGVsZiwgYWxvbmdzaWRlIGBTZXF1ZW5jZVJlY29yZGVyPFQ+YCBhbmQgYEtleWVkUmVjb3JkZXI8VD5gLlxuICpcbiAqICoqTWVudGFsIG1vZGVsIOKAlCBvYnNlcnZlcnMgdnMuIGJvb2trZWVwZXJzOioqXG4gKlxuICogICBgU2NvcGVSZWNvcmRlcmAgLyBgRmxvd1JlY29yZGVyYCAvIGBFbWl0UmVjb3JkZXJgIC8gYENvbWJpbmVkUmVjb3JkZXJgXG4gKiAgICAgYXJlIE9CU0VSVkVSIGludGVyZmFjZXMg4oCUIHRoZXkgZGVzY3JpYmUgaG93IGEgcmVjb3JkZXIgaGVhcnNcbiAqICAgICBldmVudHMgZnJvbSB0aGUgZXhlY3V0b3IuXG4gKlxuICogICBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgLyBgS2V5ZWRSZWNvcmRlcjxUPmAgLyBgQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPmBcbiAqICAgICBhcmUgU1RPUkFHRSBwcmltaXRpdmVzIOKAlCB0aHJlZSBkaWZmZXJlbnQgYm9va2tlZXBpbmcgc2hlbHZlcyB3aXRoXG4gKiAgICAgZGlmZmVyZW50IGR1cmFiaWxpdHkgYW5kIGluZGV4aW5nIHByb3BlcnRpZXMuIEEgcmVhbCByZWNvcmRlclxuICogICAgIGNsYXNzIHR5cGljYWxseSBwaWNrcyBPTkUgb2JzZXJ2ZXIgaW50ZXJmYWNlIEFORCBPTkUgc3RvcmFnZVxuICogICAgIHNoZWxmLCBjb21iaW5pbmcgdGhlbSB2aWEgYGV4dGVuZHMgKyBpbXBsZW1lbnRzYC5cbiAqXG4gKiAqKldoYXQgdGhpcyBwcmltaXRpdmUgYW5zd2VyczoqKiBcIkF0IGFueSBtb21lbnQgZHVyaW5nIHRoZSBydW4sIHdoYXRcbiAqIGlzIHRoZSBMSVZFIHRyYW5zaWVudCBzdGF0ZSBvZiBldmVyeSBjdXJyZW50bHktYWN0aXZlIGJvdW5kYXJ5P1wiXG4gKlxuICogQSBcImJvdW5kYXJ5XCIgaXMgYSBtYXRjaGVkIGV2ZW50IHBhaXIgYFtzdGFydCwgc3RvcF1gIGJyYWNrZXRpbmcgYW5cbiAqIGludGVydmFsIOKAlCBmb3IgZXhhbXBsZSwgYChsbG1fc3RhcnQsIGxsbV9lbmQpYCBmb3IgYW4gTExNIGNhbGwsXG4gKiBgKHRvb2xfc3RhcnQsIHRvb2xfZW5kKWAgZm9yIHRvb2wgZXhlY3V0aW9uLCBgKHR1cm5fc3RhcnQsIHR1cm5fZW5kKWBcbiAqIGZvciBhbiBhZ2VudCB0dXJuLiBCZXR3ZWVuIHRoZSBicmFja2V0cywgaW50ZXJtZWRpYXRlIGV2ZW50cyBldm9sdmVcbiAqIHRoZSBib3VuZGFyeSdzIHN0YXRlICh0b2tlbiBjaHVua3MgYWNjdW11bGF0aW5nIGludG8gYSBwYXJ0aWFsXG4gKiBhbnN3ZXIsIGFyZ3Mgc3RyZWFtaW5nIGluLCBldGMuKS4gT24gYHN0b3BgLCB0aGUgc3RhdGUgY2xlYXJzLlxuICpcbiAqIEFsZ29yaXRobWljYWxseSB0aGlzIGlzIHRoZSAqKkRGUyBicmFja2V0LXNlcXVlbmNlIHBhdHRlcm4qKiDigJRcbiAqIHN0YWNrLWZyYW1lIHN0YXRlIGR1cmluZyBhIGdyYXBoLXRyYXZlcnNhbCBpbnRlcnZhbC4gU2FtZSBzaGFwZSB1c2VkXG4gKiBieSBUYXJqYW4ncyBTQ0MgYWxnb3JpdGhtLCB0cmVlIGRlY29tcG9zaXRpb24sIGFuZCBwdXNoLWRvd25cbiAqIGF1dG9tYXRhLiBUaGUgYGFjdGl2ZWAgbWFwIGlzIHRoZSBvcGVuLWJyYWNrZXRzIHN0YWNrIGF0IGFueSBtb21lbnQuXG4gKlxuICogKipDb21wYXJpc29uIHdpdGggdGhlIG90aGVyIHN0b3JhZ2UgcHJpbWl0aXZlczoqKlxuICpcbiAqIHwgUHJpbWl0aXZlICAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpbWUgc2NvcGUgICAgICAgICAgfCBNZW1vcnkgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfFxuICogfCBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgICAgICAgICAgIHwgYXBwZW5kLW9ubHkgb3JkZXJlZCArIGtleWVkIGVudHJpZXMgIHwgZHVyYWJsZSBhY3Jvc3MgcnVuICB8IE8oTiBldmVudHMpIHxcbiAqIHwgYEtleWVkUmVjb3JkZXI8VD5gICAgICAgICAgICAgICB8IDE6MSBlbnRyeSBwZXIgYHJ1bnRpbWVTdGFnZUlkYCAgICAgICB8IGR1cmFibGUgYWNyb3NzIHJ1biAgfCBPKE4gc3RlcHMpICB8XG4gKiB8IGBCb3VuZGFyeVN0YXRlVHJhY2tlcjxUU3RhdGU+YCAgfCB0cmFuc2llbnQgYnJhY2tldC1zY29wZWQgc3RhdGUgICAgICAgfCBsaXZlOyBjbGVhcnMgb24gc3RvcCB8IE8oSyBhY3RpdmUpIHxcbiAqXG4gKiAqKldoZW4gdG8gcGljayB3aGljaDoqKlxuICpcbiAqICAgLSBcIkkgbmVlZCB0byBrZWVwIGEgcGVybWFuZW50IGxvZyBvZiBldmVyeSBldmVudCBmb3IgdGltZS10cmF2ZWxcIlxuICogICAgICDihpIgYFNlcXVlbmNlUmVjb3JkZXI8VD5gXG4gKiAgIC0gXCJJIHdhbnQgb25lIGR1cmFibGUgcmVjb3JkIHBlciBzdGFnZSBleGVjdXRpb24gKGUuZy4sIG1ldHJpY3MpXCJcbiAqICAgICAg4oaSIGBLZXllZFJlY29yZGVyPFQ+YFxuICogICAtIFwiSSBuZWVkIHRvIGtub3cgd2hhdCdzIGhhcHBlbmluZyBSSUdIVCBOT1cgaW5zaWRlIGFuIGluLWZsaWdodFxuICogICAgIGJvdW5kYXJ5IChlLmcuLCBwYXJ0aWFsIExMTSBzdHJlYW0sIHBhcnRpYWwgdG9vbCBhcmdzKVwiXG4gKiAgICAgIOKGkiBgQm91bmRhcnlTdGF0ZVRyYWNrZXI8VFN0YXRlPmAgKHRoaXMgY2xhc3MpXG4gKlxuICogKipXaGF0IHRoaXMgaXMgTk9UIGZvcjoqKlxuICpcbiAqICAgLSBUaW1lLXRyYXZlbCBxdWVyaWVzIChcIndoYXQgd2FzIHRoZSBzdGF0ZSBhdCBwYXN0IHNsaWRlciBzdGVwIE4/XCIpXG4gKiAgICAg4oCUIHRyYW5zaWVudCBzdGF0ZSBjbGVhcnMgb24gc3RvcC4gRm9yIHRpbWUtdHJhdmVsLCBzbmFwc2hvdCB0aGVcbiAqICAgICBzdGF0ZSBhdCBlYWNoIGVtaXQgaW50byBhIHNlcGFyYXRlIGBTZXF1ZW5jZVJlY29yZGVyPFRTdGF0ZT5gLFxuICogICAgIG9yIHdhaXQgZm9yIGEgZnV0dXJlIGBCb3VuZGFyeVNuYXBzaG90UmVjb3JkZXI8VFN0YXRlPmAgcHJpbWl0aXZlLlxuICpcbiAqICAgLSBBZ2dyZWdhdGlvbnMgYWNyb3NzIHRoZSB3aG9sZSBydW4gKHRvdGFscywgY291bnRzKSDigJQgdGhvc2UgYXJlXG4gKiAgICAgYFNlcXVlbmNlUmVjb3JkZXIuYWdncmVnYXRlKClgIC8gYEtleWVkUmVjb3JkZXIuYWdncmVnYXRlKClgLlxuICpcbiAqICAgLSBTdGFnZS1sZXZlbCBjb25jZXJucyDigJQgdGhvc2UgdXNlIGBTY29wZVJlY29yZGVyLm9uU3RhZ2VTdGFydGAgL1xuICogICAgIGBTY29wZVJlY29yZGVyLm9uU3RhZ2VFbmRgLiBUaGlzIHByaW1pdGl2ZSBvcGVyYXRlcyBhdCBmaW5lclxuICogICAgIGdyYW51bGFyaXR5IChldmVudHMgZW1pdHRlZCBEVVJJTkcgYSBzdGFnZSBleGVjdXRpb24pLlxuICpcbiAqICoqTGlmZWN5Y2xlIGNvbnRyYWN0IOKAlCBTVFJJQ1Q6KipcbiAqXG4gKiAgIEV2ZXJ5IGBzdGFydEJvdW5kYXJ5KGtleSwgLi4uKWAgY2FsbCBNVVNUIGJlIHBhaXJlZCB3aXRoIGFcbiAqICAgYHN0b3BCb3VuZGFyeShrZXkpYCBjYWxsLiBGYWlsdXJlIHRvIHdpcmUgdGhlIHN0b3Agc2lkZSBwcm9kdWNlcyBhXG4gKiAgIG1lbW9yeSBsZWFrOiB0aGUgYWN0aXZlIG1hcCBncm93cyB3aXRob3V0IGJvdW5kLCBhbmQgYGdldEFsbEFjdGl2ZSgpYFxuICogICByZXR1cm5zIHN0YWxlIGVudHJpZXMgdGhhdCBsb29rIGluLWZsaWdodCBidXQgYXJlbid0LiBDb21tb24gY2F1c2U6XG4gKiAgIHN1YmNsYXNzIHdpcmVzIGBzdGFydGAgdG8gb25lIGV2ZW50IGhhbmRsZXIgYW5kIGZvcmdldHMgdG8gd2lyZVxuICogICBgc3RvcGAuICoqQWx3YXlzIHdpcmUgYm90aCBhdCB0aGUgc2FtZSB0aW1lLioqXG4gKlxuICogICBEZXYgbW9kZSAoYGVuYWJsZURldk1vZGUoKWApIGRldGVjdHMgbGVha3MgYXQgYGNsZWFyKClgIHRpbWUg4oCUXG4gKiAgIHdhcm5pbmcgaW5jbHVkZXMgdGhlIGxlYWtlZCBrZXlzIHNvIHlvdSBjYW4gZmluZCB0aGUgbWlzc2luZyB3aXJpbmcuXG4gKlxuICogKipDb25jdXJyZW5jeSAvIG5lc3Rpbmc6KipcbiAqXG4gKiAgIC0gQ29uY3VycmVudCBib3VuZGFyaWVzIChwYXJhbGxlbCBicmFuY2hlcyB3aXRoIHR3byBMTE0gY2FsbHNcbiAqICAgICBhY3RpdmUgYXQgb25jZSkgd29yayBjb3JyZWN0bHk6IGVhY2ggaXMga2V5ZWQgaW5kZXBlbmRlbnRseSBpblxuICogICAgIHRoZSBhY3RpdmUgbWFwLlxuICogICAtIE5lc3RlZCBib3VuZGFyaWVzIG9mIERJRkZFUkVOVCBLSU5EUyAoQWdlbnQgYm91bmRhcnkgY29udGFpbnNcbiAqICAgICBMTE0gYm91bmRhcnkpIHJlcXVpcmUgU0VQQVJBVEUgdHJhY2tlciBpbnN0YW5jZXMg4oCUIG9uZSBwZXIga2luZC5cbiAqICAgICBUaGUgYmFzZSBjbGFzcyB0cmFja3Mgb25lIGJvdW5kYXJ5IGtpbmQgcGVyIGluc3RhbmNlLlxuICpcbiAqICoqS2V5IGNvbnZlbnRpb246KipcbiAqXG4gKiAgIFRoZSBga2V5OiBzdHJpbmdgIGlzIHdoYXRldmVyIHlvdXIgc3ViY2xhc3MgcGlja3MuIENvbnZlbnRpb246XG4gKiAgIHVzZSBgcnVudGltZVN0YWdlSWRgIHdoZW4gdGhlIGJvdW5kYXJ5IG1hcHMgMToxIHRvIGEgc3RhZ2VcbiAqICAgZXhlY3V0aW9uIOKAlCB0aGlzIGdpdmVzIGZyZWUgaW50ZXJvcCB3aXRoIGBTZXF1ZW5jZVJlY29yZGVyXG4gKiAgIC5nZXRFbnRyaWVzRm9yU3RlcGAsIGBLZXllZFJlY29yZGVyLmdldEJ5S2V5YCwgYGZpbmRDb21taXRgIC9cbiAqICAgYGZpbmRMYXN0V3JpdGVyYCwgYW5kIHRoZSByZXN0IG9mIHRoZSB0cmFjZSBlY29zeXN0ZW0uIFVzZSBhIG1vcmVcbiAqICAgZ3JhbnVsYXIga2V5IChlLmcuLCBgdG9vbENhbGxJZGApIG9ubHkgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGVcbiAqICAgY29uY3VycmVudCBib3VuZGFyaWVzIFdJVEhJTiBvbmUgc3RhZ2UgZXhlY3V0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJ1aWxkIGEgbGl2ZSBMTE0gdHJhY2tlciAoY29tYmluaW5nIHN0b3JhZ2UgKyBvYnNlcnZlcik6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQm91bmRhcnlTdGF0ZVRyYWNrZXIgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKiBpbXBvcnQgeyB0eXBlIENvbWJpbmVkUmVjb3JkZXIsIHR5cGUgRW1pdEV2ZW50IH0gZnJvbSAnZm9vdHByaW50anMnO1xuICpcbiAqIGludGVyZmFjZSBMTE1MaXZlU3RhdGUge1xuICogICByZWFkb25seSBwYXJ0aWFsOiBzdHJpbmc7XG4gKiAgIHJlYWRvbmx5IHRva2VuczogbnVtYmVyO1xuICogfVxuICpcbiAqIGNsYXNzIExpdmVMTE1UcmFja2VyXG4gKiAgIGV4dGVuZHMgQm91bmRhcnlTdGF0ZVRyYWNrZXI8TExNTGl2ZVN0YXRlPiAgIC8vIFNUT1JBR0Ugc2hlbGZcbiAqICAgaW1wbGVtZW50cyBDb21iaW5lZFJlY29yZGVyICAgICAgICAgICAgICAgICAgIC8vIE9CU0VSVkVSIGludGVyZmFjZVxuICoge1xuICogICByZWFkb25seSBpZCA9ICdsaXZlLWxsbSc7XG4gKlxuICogICAvLyBPYnNlcnZlciBoYWxmIOKAlCB0cmFuc2xhdGUgZXZlbnRzIGludG8gYnJhY2tldCBtdXRhdGlvbnMuXG4gKiAgIG9uRW1pdChldmVudDogRW1pdEV2ZW50KTogdm9pZCB7XG4gKiAgICAgaWYgKGV2ZW50Lm5hbWUgPT09ICdhZ2VudGZvb3RwcmludC5zdHJlYW0ubGxtX3N0YXJ0Jykge1xuICogICAgICAgdGhpcy5zdGFydEJvdW5kYXJ5KGV2ZW50LnJ1bnRpbWVTdGFnZUlkLCB7IHBhcnRpYWw6ICcnLCB0b2tlbnM6IDAgfSk7XG4gKiAgICAgfSBlbHNlIGlmIChldmVudC5uYW1lID09PSAnYWdlbnRmb290cHJpbnQuc3RyZWFtLmxsbV9lbmQnKSB7XG4gKiAgICAgICB0aGlzLnN0b3BCb3VuZGFyeShldmVudC5ydW50aW1lU3RhZ2VJZCk7XG4gKiAgICAgfSBlbHNlIGlmIChldmVudC5uYW1lID09PSAnYWdlbnRmb290cHJpbnQuc3RyZWFtLnRva2VuJykge1xuICogICAgICAgdGhpcy51cGRhdGVCb3VuZGFyeShldmVudC5ydW50aW1lU3RhZ2VJZCwgKHMpID0+ICh7XG4gKiAgICAgICAgIHBhcnRpYWw6IHMucGFydGlhbCArIChldmVudC5wYXlsb2FkIGFzIHsgY29udGVudDogc3RyaW5nIH0pLmNvbnRlbnQsXG4gKiAgICAgICAgIHRva2Vuczogcy50b2tlbnMgKyAxLFxuICogICAgICAgfSkpO1xuICogICAgIH1cbiAqICAgfVxuICpcbiAqICAgLy8gUHVibGljIHJlYWQgQVBJIOKAlCBPKDEpIGF0IGFueSBtb21lbnQuXG4gKiAgIGlzSW5GbGlnaHQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmhhc0FjdGl2ZTsgfVxuICogICBnZXRQYXJ0aWFsKHN0YWdlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gKiAgICAgcmV0dXJuIHRoaXMuZ2V0QWN0aXZlKHN0YWdlSWQpPy5wYXJ0aWFsID8/ICcnO1xuICogICB9XG4gKiB9XG4gKlxuICogLy8gQXR0YWNoZWQgdGhlIHNhbWUgd2F5IGFzIGFueSBvdGhlciBDb21iaW5lZFJlY29yZGVyLlxuICogY29uc3QgdHJhY2tlciA9IG5ldyBMaXZlTExNVHJhY2tlcigpO1xuICogZXhlY3V0b3IuYXR0YWNoQ29tYmluZWRSZWNvcmRlcih0cmFja2VyKTtcbiAqIGF3YWl0IGV4ZWN1dG9yLnJ1bih7IGlucHV0IH0pO1xuICpcbiAqIC8vIFJlYWQgbGl2ZSBzdGF0ZSBhdCBhbnkgdGltZSBkdXJpbmcgb3IgYWZ0ZXIgdGhlIHJ1bi5cbiAqIHRyYWNrZXIuaXNJbkZsaWdodCgpO1xuICogdHJhY2tlci5nZXRQYXJ0aWFsKHJpZCk7XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICcuLi9zY29wZS9kZXRlY3RDaXJjdWxhci5qcyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCb3VuZGFyeVN0YXRlVHJhY2tlcjxUU3RhdGU+IHtcbiAgLyoqIFN0YWJsZSBpZCDigJQgc2FtZSBpZGVtcG90ZW5jeSBjb250cmFjdCBhcyBvdGhlciByZWNvcmRlcnMuICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqIE9wZW4tYnJhY2tldHMgc3RhY2s6IGtleSDihpIgY3VycmVudCB0cmFuc2llbnQgc3RhdGUuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlID0gbmV3IE1hcDxzdHJpbmcsIFRTdGF0ZT4oKTtcblxuICAvKiogUGVyLWtleSBjb3VudCBvZiBgdXBkYXRlQm91bmRhcnlgIGNhbGxzIHRoYXQgbGFuZGVkIHdpdGhvdXQgYVxuICAgKiAgbWF0Y2hpbmcgYWN0aXZlIGJvdW5kYXJ5LiBEcml2ZXMgcmF0ZS1saW1pdGVkIGRldi1tb2RlIHdhcm5pbmdzXG4gICAqICBzbyBhIHN0dWNrIGxvb3AgZG9lc24ndCBzcGFtIHRoZSBjb25zb2xlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG1pc3NlZFVwZGF0ZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gIC8vIOKUgOKUgCBNdXRhdG9yIEFQSSAoc3ViY2xhc3MgY2FsbHMgdGhlc2UgZnJvbSBvYnNlcnZlciBob29rcykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIE9wZW4gYSBuZXcgYm91bmRhcnkgd2l0aCBpbml0aWFsIHRyYW5zaWVudCBzdGF0ZS5cbiAgICpcbiAgICogSWYgYSBib3VuZGFyeSB3aXRoIHRoZSBzYW1lIGBrZXlgIGlzIGFscmVhZHkgYWN0aXZlLCB0aGUgcHJpb3JcbiAgICogc3RhdGUgaXMgb3ZlcndyaXR0ZW4gKGxhc3Qtd3JpdGVyLXdpbnMpLiBJbiBkZXYgbW9kZSwgYSB3YXJuaW5nXG4gICAqIGlzIGxvZ2dlZCBiZWNhdXNlIHJlLXN0YXJ0aW5nIGFuIGFjdGl2ZSBrZXkgdXN1YWxseSBpbmRpY2F0ZXMgYVxuICAgKiBtaXNzZWQgYHN0b3BCb3VuZGFyeWAgY2FsbCB1cHN0cmVhbS5cbiAgICpcbiAgICogQHBhcmFtIGtleSBCb3VuZGFyeSBpZGVudGlmaWVyIOKAlCBieSBjb252ZW50aW9uLCBgcnVudGltZVN0YWdlSWRgXG4gICAqICAgICAgICAgICAgZm9yIDE6MS13aXRoLXN0YWdlIGJvdW5kYXJpZXMsIG9yIGEgbW9yZSBncmFudWxhciBpZFxuICAgKiAgICAgICAgICAgIChlLmcuLCBgdG9vbENhbGxJZGApIHdoZW4gbXVsdGlwbGUgY29uY3VycmVudCBib3VuZGFyaWVzXG4gICAqICAgICAgICAgICAgcnVuIHdpdGhpbiBvbmUgc3RhZ2UgZXhlY3V0aW9uLlxuICAgKiBAcGFyYW0gaW5pdGlhbCBJbml0aWFsIHN0YXRlIOKAlCB0eXBlZCBieSBgVFN0YXRlYC5cbiAgICovXG4gIHByb3RlY3RlZCBzdGFydEJvdW5kYXJ5KGtleTogc3RyaW5nLCBpbml0aWFsOiBUU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmUuaGFzKGtleSkgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFske3RoaXMuaWR9XSBzdGFydEJvdW5kYXJ5KCcke2tleX0nKSBjYWxsZWQgd2hpbGUgYW4gYWN0aXZlIGJvdW5kYXJ5IGFscmVhZHkgZXhpc3RzLiBgICtcbiAgICAgICAgICAnT3ZlcndyaXRpbmcgcHJpb3Igc3RhdGUg4oCUIGxpa2VseSBhIG1pc3NlZCBzdG9wQm91bmRhcnkgdXBzdHJlYW0uJyxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlLnNldChrZXksIGluaXRpYWwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2b2x2ZSB0aGUgdHJhbnNpZW50IHN0YXRlIG9mIGFuIGFjdGl2ZSBib3VuZGFyeSB1c2luZyBhbiB1cGRhdGVyXG4gICAqIGZ1bmN0aW9uLiBTaWxlbnQgbm8tb3AgaWYgbm8gYm91bmRhcnkgaXMgYWN0aXZlIGZvciBga2V5YFxuICAgKiAoZGVmZW5zaXZlIGFnYWluc3Qgb3V0LW9mLW9yZGVyIGV2ZW50cykuIEluIGRldiBtb2RlLCBhIHJhdGUtbGltaXRlZFxuICAgKiB3YXJuaW5nIGlzIGxvZ2dlZCBvbiB0aGUgMXN0LCAxMHRoLCBhbmQgMTAwdGggbWlzc2VkIHVwZGF0ZSBwZXIga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5ICAgICAgQm91bmRhcnkgaWRlbnRpZmllciAobXVzdCBtYXRjaCBhIHByaW9yIGBzdGFydEJvdW5kYXJ5YCkuXG4gICAqIEBwYXJhbSB1cGRhdGVyICBQdXJlIGZ1bmN0aW9uOiBwcmV2aW91cyBzdGF0ZSDihpIgbmV4dCBzdGF0ZS5cbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVCb3VuZGFyeShrZXk6IHN0cmluZywgdXBkYXRlcjogKHByZXY6IFRTdGF0ZSkgPT4gVFN0YXRlKTogdm9pZCB7XG4gICAgY29uc3QgY3VyID0gdGhpcy5hY3RpdmUuZ2V0KGtleSk7XG4gICAgaWYgKGN1ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc3QgbiA9ICh0aGlzLm1pc3NlZFVwZGF0ZXMuZ2V0KGtleSkgPz8gMCkgKyAxO1xuICAgICAgICB0aGlzLm1pc3NlZFVwZGF0ZXMuc2V0KGtleSwgbik7XG4gICAgICAgIGlmIChuID09PSAxKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBbJHt0aGlzLmlkfV0gdXBkYXRlQm91bmRhcnkoJyR7a2V5fScpIOKAlCBubyBhY3RpdmUgYm91bmRhcnkuIFVwZGF0ZSBkcm9wcGVkLmApO1xuICAgICAgICB9IGVsc2UgaWYgKG4gPT09IDEwIHx8IG4gPT09IDEwMCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgWyR7dGhpcy5pZH1dIHVwZGF0ZUJvdW5kYXJ5KCcke2tleX0nKSDigJQgJHtufSBkcm9wcGVkIHVwZGF0ZXMuIFdpcmluZyBidWc/YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmUuc2V0KGtleSwgdXBkYXRlcihjdXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgYm91bmRhcnkgaWRlbnRpZmllZCBieSBga2V5YCBhbmQgcmV0dXJuIGl0cyBGSU5BTFxuICAgKiB0cmFuc2llbnQgc3RhdGUgKGZvciBhbnkgY2xlYW51cCB0aGUgc3ViY2xhc3Mgd2FudHMg4oCUIGUuZy4sIGVtaXQgYVxuICAgKiBzbmFwc2hvdCB0byBhIFNlcXVlbmNlUmVjb3JkZXIgZm9yIGR1cmFibGUgc3RvcmFnZSkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgQm91bmRhcnkgaWRlbnRpZmllci5cbiAgICogQHJldHVybnMgVGhlIGZpbmFsIHN0YXRlLCBvciBgdW5kZWZpbmVkYCBpZiBubyBib3VuZGFyeSB3YXMgYWN0aXZlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0b3BCb3VuZGFyeShrZXk6IHN0cmluZyk6IFRTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmluYWwgPSB0aGlzLmFjdGl2ZS5nZXQoa2V5KTtcbiAgICB0aGlzLmFjdGl2ZS5kZWxldGUoa2V5KTtcbiAgICByZXR1cm4gZmluYWw7XG4gIH1cblxuICAvLyDilIDilIAgUmVhZCBBUEkgKGNvbnN1bWVycyBjYWxsIHRoZXNlIOKAlCBPKDEpKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogQ3VycmVudCB0cmFuc2llbnQgc3RhdGUgb2YgT05FIGFjdGl2ZSBib3VuZGFyeS4gYHVuZGVmaW5lZGAgaWYgbm9cbiAgICogIGJvdW5kYXJ5IGlzIGFjdGl2ZSBmb3IgYGtleWAuICovXG4gIGdldEFjdGl2ZShrZXk6IHN0cmluZyk6IFRTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLmdldChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbCBjdXJyZW50bHktYWN0aXZlIGJvdW5kYXJpZXMuXG4gICAqXG4gICAqICoqVHlwZS1vbmx5IHJlYWRvbmx5OioqIHRoZSByZXR1cm5lZCByZWZlcmVuY2UgSVMgdGhlIGludGVybmFsIE1hcC5cbiAgICogVHlwZVNjcmlwdCBwcmV2ZW50cyBtdXRhdGlvbiB0aHJvdWdoIHRoZSBgUmVhZG9ubHlNYXBgIHR5cGUsIGJ1dCBhXG4gICAqIHJ1bnRpbWUgY2FzdCBvciBub24tVFMgY29uc3VtZXIgY2FuIG11dGF0ZSBpdCBhbmQgY29ycnVwdCBpbnRlcm5hbFxuICAgKiBzdGF0ZS4gKipEbyBub3QgbXV0YXRlLioqXG4gICAqL1xuICBnZXRBbGxBY3RpdmUoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBUU3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmU7XG4gIH1cblxuICAvKiogVHJ1ZSBpZiBhbnkgYm91bmRhcnkgaXMgY3VycmVudGx5IGFjdGl2ZS4gTygxKS4gKi9cbiAgZ2V0IGhhc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUuc2l6ZSA+IDA7XG4gIH1cblxuICAvKiogTnVtYmVyIG9mIGN1cnJlbnRseS1hY3RpdmUgYm91bmRhcmllcy4gTygxKS4gKi9cbiAgZ2V0IGFjdGl2ZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlLnNpemU7XG4gIH1cblxuICAvLyDilIDilIAgTGlmZWN5Y2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBSZXNldCBhbGwgdHJhbnNpZW50IHN0YXRlLiBDYWxsZWQgYnkgZXhlY3V0b3JzIGJlZm9yZSBlYWNoIGBydW4oKWBcbiAgICogc28gY29uc3VtZXJzIGdldCBhIGNsZWFuIHNsYXRlIHBlciBydW4g4oCUIHNhbWUgbGlmZWN5Y2xlIGNvbnRyYWN0XG4gICAqIGFzIGBTZXF1ZW5jZVJlY29yZGVyLmNsZWFyKClgLlxuICAgKlxuICAgKiBJbiBkZXYgbW9kZSwgd2FybnMgaWYgYW55IGJvdW5kYXJpZXMgYXJlIHN0aWxsIGFjdGl2ZSB3aGVuIGNhbGxlZFxuICAgKiDigJQgbGlrZWx5IGluZGljYXRlcyBhIG1pc3NlZCBgc3RvcEJvdW5kYXJ5YCB1cHN0cmVhbS4gVGhlIGxlYWtlZFxuICAgKiBrZXlzIGFyZSBsaXN0ZWQgKHRydW5jYXRlZCB0byAxMCkgc28gdGhlIHdpcmluZyBidWcgaXMgZmluZGFibGUuXG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmUuc2l6ZSA+IDAgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnN0IGtleXMgPSBbLi4udGhpcy5hY3RpdmUua2V5cygpXTtcbiAgICAgIGNvbnN0IGhlYWQgPSBrZXlzLnNsaWNlKDAsIDEwKS5qb2luKCcsICcpO1xuICAgICAgY29uc3QgbW9yZSA9IGtleXMubGVuZ3RoID4gMTAgPyBgIC4uLigrJHtrZXlzLmxlbmd0aCAtIDEwfSBtb3JlKWAgOiAnJztcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFske3RoaXMuaWR9XSBjbGVhcigpIGNhbGxlZCB3aXRoICR7dGhpcy5hY3RpdmUuc2l6ZX0gYCArXG4gICAgICAgICAgJ3N0aWxsLWFjdGl2ZSBib3VuZGFyaWVzLiBNaXNzZWQgc3RvcEJvdW5kYXJ5PyAnICtcbiAgICAgICAgICBgTGVha2VkIGtleXM6ICR7aGVhZH0ke21vcmV9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlLmNsZWFyKCk7XG4gICAgdGhpcy5taXNzZWRVcGRhdGVzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -12,10 +12,10 @@
12
12
  *
13
13
  * @example
14
14
  * ```typescript
15
- * const quality = new QualityRecorder((runtimeStageId, event) => {
16
- * // Custom scoring function — return 0.0–1.0
17
- * if (event.stageName.includes('llm')) return 0.7;
18
- * return 1.0;
15
+ * const quality = new QualityRecorder((runtimeStageId, context) => {
16
+ * // Custom scoring function — return { score: 0.0–1.0, factors? }
17
+ * if (context.stageName.includes('llm')) return { score: 0.7, factors: ['llm stage'] };
18
+ * return { score: 1.0 };
19
19
  * });
20
20
  * executor.attachScopeRecorder(quality);
21
21
  * await executor.run();
@@ -134,4 +134,4 @@ class QualityRecorder extends KeyedRecorder_js_1.KeyedRecorder {
134
134
  }
135
135
  }
136
136
  exports.QualityRecorder = QualityRecorder;
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVhbGl0eVJlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7OztBQUdILHlEQUFtRDtBQTJDbkQsTUFBYSxlQUFnQixTQUFRLGdDQUEyQjtJQUN0RCxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUVuQixFQUFFLENBQVM7SUFDWCxrQkFBa0IsQ0FBb0I7SUFDOUIsU0FBUyxDQUFtQjtJQUU3QywrQ0FBK0M7SUFDdkMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQzNCLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDL0Isa0JBQWtCLEdBQWEsRUFBRSxDQUFDO0lBRTFDLFlBQVksU0FBMkIsRUFBRSxPQUFnQztRQUN2RSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsSUFBSSxXQUFXLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLEVBQUUsa0JBQWtCLElBQUksWUFBWSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFC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QUssR0FBNEIsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsNkRBQTZEO1lBQzFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxPQUFPO2dCQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjO2dCQUM1QyxLQUFLO2FBQ047U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDOztBQWpISCwwQ0FrSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFF1YWxpdHlSZWNvcmRlciDigJQgcGVyLXN0ZXAgcXVhbGl0eSBzY29yaW5nIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkLlxuICpcbiAqIENvbGxlY3RzIHF1YWxpdHkgc2NvcmVzIGR1cmluZyB0cmF2ZXJzYWwgKGFjY3VtdWxhdGUgcGF0dGVybikuXG4gKiBBZnRlciBleGVjdXRpb24sIHVzZSBxdWFsaXR5VHJhY2UoKSB0byBiYWNrdHJhY2sgZnJvbSBhbnkgbG93LXNjb3Jpbmcgc3RlcC5cbiAqXG4gKiBFeHRlbmRzIEtleWVkUmVjb3JkZXI8UXVhbGl0eUVudHJ5PiBmb3IgTygxKSBsb29rdXAgYW5kIHN0YW5kYXJkIG9wZXJhdGlvbnM6XG4gKiAgIC0gKipUcmFuc2xhdGUqKjogYGdldEJ5S2V5KCdjYWxsLWxsbSM1JylgIOKAlCBxdWFsaXR5IGF0IHRoaXMgc3RlcFxuICogICAtICoqQWNjdW11bGF0ZSoqOiBwcm9ncmVzc2l2ZSBxdWFsaXR5IHVwIHRvIHNsaWRlciBwb3NpdGlvblxuICogICAtICoqQWdncmVnYXRlKio6IG92ZXJhbGwgcGlwZWxpbmUgcXVhbGl0eSBzY29yZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBxdWFsaXR5ID0gbmV3IFF1YWxpdHlSZWNvcmRlcigocnVudGltZVN0YWdlSWQsIGV2ZW50KSA9PiB7XG4gKiAgIC8vIEN1c3RvbSBzY29yaW5nIGZ1bmN0aW9uIOKAlCByZXR1cm4gMC4w4oCTMS4wXG4gKiAgIGlmIChldmVudC5zdGFnZU5hbWUuaW5jbHVkZXMoJ2xsbScpKSByZXR1cm4gMC43O1xuICogICByZXR1cm4gMS4wO1xuICogfSk7XG4gKiBleGVjdXRvci5hdHRhY2hTY29wZVJlY29yZGVyKHF1YWxpdHkpO1xuICogYXdhaXQgZXhlY3V0b3IucnVuKCk7XG4gKlxuICogLy8gUGVyLXN0ZXAgc2NvcmVcbiAqIHF1YWxpdHkuZ2V0QnlLZXkoJ2NhbGwtbGxtIzUnKTsgIC8vIHsgc2NvcmU6IDAuNywgc3RhZ2VOYW1lOiAnQ2FsbExMTScsIGZhY3RvcnM6IFsuLi5dIH1cbiAqXG4gKiAvLyBPdmVyYWxsIHF1YWxpdHlcbiAqIHF1YWxpdHkuZ2V0T3ZlcmFsbFNjb3JlKCk7ICAvLyAwLjg1XG4gKlxuICogLy8gTG93ZXN0LXNjb3Jpbmcgc3RlcFxuICogcXVhbGl0eS5nZXRMb3dlc3QoKTsgIC8vIHsgcnVudGltZVN0YWdlSWQ6ICdjYWxsLWxsbSM1JywgZW50cnk6IHsgc2NvcmU6IDAuNywgLi4uIH0gfVxuICogYGBgXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBSZWFkRXZlbnQsIFNjb3BlUmVjb3JkZXIsIFN0YWdlRXZlbnQsIFdyaXRlRXZlbnQgfSBmcm9tICcuLi9zY29wZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBLZXllZFJlY29yZGVyIH0gZnJvbSAnLi9LZXllZFJlY29yZGVyLmpzJztcbmltcG9ydCB0eXBlIHsgUmVjb3JkZXJPcGVyYXRpb24gfSBmcm9tICcuL1JlY29yZGVyT3BlcmF0aW9uLmpzJztcblxuLyoqIFBlci1zdGVwIHF1YWxpdHkgZGF0YSBzdG9yZWQgYnkgUXVhbGl0eVJlY29yZGVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWFsaXR5RW50cnkge1xuICAvKiogSHVtYW4tcmVhZGFibGUgc3RhZ2UgbmFtZS4gKi9cbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBTdGFibGUgc3RhZ2UgaWRlbnRpZmllci4gKi9cbiAgc3RhZ2VJZDogc3RyaW5nO1xuICAvKiogUXVhbGl0eSBzY29yZSBmb3IgdGhpcyBzdGVwICgwLjAgPSB3b3JzdCwgMS4wID0gYmVzdCkuICovXG4gIHNjb3JlOiBudW1iZXI7XG4gIC8qKiBXaGF0IGNvbnRyaWJ1dGVkIHRvIHRoaXMgc2NvcmUuICovXG4gIGZhY3RvcnM6IHN0cmluZ1tdO1xuICAvKiogS2V5cyByZWFkIGR1cmluZyB0aGlzIHN0ZXAgKGZvciBiYWNrdHJhY2tpbmcpLiAqL1xuICBrZXlzUmVhZDogc3RyaW5nW107XG4gIC8qKiBLZXlzIHdyaXR0ZW4gZHVyaW5nIHRoaXMgc3RlcCAoZm9yIGJhY2t0cmFja2luZykuICovXG4gIGtleXNXcml0dGVuOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBTY29yaW5nIGZ1bmN0aW9uIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGVhY2ggc3RhZ2UuXG4gKiBSZWNlaXZlcyB0aGUgcnVudGltZVN0YWdlSWQsIHN0YWdlIGV2ZW50LCBhbmQgYSBzdW1tYXJ5IG9mIHJlYWRzL3dyaXRlcy5cbiAqIFJldHVybiBhIHNjb3JlICgwLjDigJMxLjApIGFuZCBvcHRpb25hbCBmYWN0b3JzIGV4cGxhaW5pbmcgdGhlIHNjb3JlLlxuICovXG5leHBvcnQgdHlwZSBRdWFsaXR5U2NvcmluZ0ZuID0gKFxuICBydW50aW1lU3RhZ2VJZDogc3RyaW5nLFxuICBjb250ZXh0OiB7XG4gICAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gICAgc3RhZ2VJZDogc3RyaW5nO1xuICAgIGtleXNSZWFkOiBzdHJpbmdbXTtcbiAgICBrZXlzV3JpdHRlbjogc3RyaW5nW107XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG4gIH0sXG4pID0+IHsgc2NvcmU6IG51bWJlcjsgZmFjdG9ycz86IHN0cmluZ1tdIH07XG5cbi8qKiBPcHRpb25zIGZvciBRdWFsaXR5UmVjb3JkZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlSZWNvcmRlck9wdGlvbnMge1xuICAvKiogU2NvcGVSZWNvcmRlciBJRC4gRGVmYXVsdHMgdG8gYXV0by1pbmNyZW1lbnQuICovXG4gIGlkPzogc3RyaW5nO1xuICAvKiogUHJlZmVycmVkIFVJIG9wZXJhdGlvbi4gRGVmYXVsdHMgdG8gJ2FjY3VtdWxhdGUnIChwcm9ncmVzc2l2ZSBxdWFsaXR5KS4gKi9cbiAgcHJlZmVycmVkT3BlcmF0aW9uPzogUmVjb3JkZXJPcGVyYXRpb247XG59XG5cbmV4cG9ydCBjbGFzcyBRdWFsaXR5UmVjb3JkZXIgZXh0ZW5kcyBLZXllZFJlY29yZGVyPFF1YWxpdHlFbnRyeT4gaW1wbGVtZW50cyBTY29wZVJlY29yZGVyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2NvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByZWZlcnJlZE9wZXJhdGlvbjogUmVjb3JkZXJPcGVyYXRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NvcmluZ0ZuOiBRdWFsaXR5U2NvcmluZ0ZuO1xuXG4gIC8vIFBlci1zdGFnZSBidWZmZXJzIChyZXNldCBvbiBlYWNoIHN0YWdlU3RhcnQpXG4gIHByaXZhdGUgY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gJyc7XG4gIHByaXZhdGUgY3VycmVudFN0YWdlSWQgPSAnJztcbiAgcHJpdmF0ZSBjdXJyZW50U3RhZ2VOYW1lID0gJyc7XG4gIHByaXZhdGUgY3VycmVudEtleXNSZWFkOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIGN1cnJlbnRLZXlzV3JpdHRlbjogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihzY29yaW5nRm46IFF1YWxpdHlTY29yaW5nRm4sIG9wdGlvbnM/OiBRdWFsaXR5UmVjb3JkZXJPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNjb3JpbmdGbiA9IHNjb3JpbmdGbjtcbiAgICB0aGlzLmlkID0gb3B0aW9ucz8uaWQgPz8gYHF1YWxpdHktJHsrK1F1YWxpdHlSZWNvcmRlci5fY291bnRlcn1gO1xuICAgIHRoaXMucHJlZmVycmVkT3BlcmF0aW9uID0gb3B0aW9ucz8ucHJlZmVycmVkT3BlcmF0aW9uID8/ICdhY2N1bXVsYXRlJztcbiAgfVxuXG4gIG9uU3RhZ2VTdGFydChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gZXZlbnQucnVudGltZVN0YWdlSWQ7XG4gICAgdGhpcy5jdXJyZW50U3RhZ2VJZCA9IGV2ZW50LnN0YWdlSWQ7XG4gICAgdGhpcy5jdXJyZW50U3RhZ2VOYW1lID0gZXZlbnQuc3RhZ2VOYW1lO1xuICAgIHRoaXMuY3VycmVudEtleXNSZWFkID0gW107XG4gICAgdGhpcy5jdXJyZW50S2V5c1dyaXR0ZW4gPSBbXTtcbiAgfVxuXG4gIG9uUmVhZChldmVudDogUmVhZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSkgdGhpcy5jdXJyZW50S2V5c1JlYWQucHVzaChldmVudC5rZXkpO1xuICB9XG5cbiAgb25Xcml0ZShldmVudDogV3JpdGVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudEtleXNXcml0dGVuLnB1c2goZXZlbnQua2V5KTtcbiAgfVxuXG4gIG9uU3RhZ2VFbmQoZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB7IHNjb3JlLCBmYWN0b3JzIH0gPSB0aGlzLnNjb3JpbmdGbih0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCwge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLmN1cnJlbnRTdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiB0aGlzLmN1cnJlbnRTdGFnZUlkLFxuICAgICAga2V5c1JlYWQ6IHRoaXMuY3VycmVudEtleXNSZWFkLFxuICAgICAga2V5c1dyaXR0ZW46IHRoaXMuY3VycmVudEtleXNXcml0dGVuLFxuICAgICAgZHVyYXRpb246IGV2ZW50LmR1cmF0aW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZSh0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCwge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLmN1cnJlbnRTdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiB0aGlzLmN1cnJlbnRTdGFnZUlkLFxuICAgICAgc2NvcmU6IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIHNjb3JlKSksXG4gICAgICBmYWN0b3JzOiBmYWN0b3JzID8/IFtdLFxuICAgICAga2V5c1JlYWQ6IFsuLi50aGlzLmN1cnJlbnRLZXlzUmVhZF0sXG4gICAgICBrZXlzV3JpdHRlbjogWy4uLnRoaXMuY3VycmVudEtleXNXcml0dGVuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBPdmVyYWxsIHF1YWxpdHkgc2NvcmUg4oCUIGF2ZXJhZ2Ugb2YgYWxsIHN0ZXAgc2NvcmVzLiAqL1xuICBnZXRPdmVyYWxsU2NvcmUoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5zaXplID09PSAwKSByZXR1cm4gMS4wO1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5hZ2dyZWdhdGUoKHN1bSwgZSkgPT4gc3VtICsgZS5zY29yZSwgMCk7XG4gICAgcmV0dXJuIHRvdGFsIC8gdGhpcy5zaXplO1xuICB9XG5cbiAgLyoqIEZpbmQgdGhlIGxvd2VzdC1zY29yaW5nIHN0ZXAuICovXG4gIGdldExvd2VzdCgpOiB7IHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmc7IGVudHJ5OiBRdWFsaXR5RW50cnkgfSB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGxvd2VzdDogeyBydW50aW1lU3RhZ2VJZDogc3RyaW5nOyBlbnRyeTogUXVhbGl0eUVudHJ5IH0gfCB1bmRlZmluZWQ7XG4gICAgZm9yIChjb25zdCBba2V5LCBlbnRyeV0gb2YgdGhpcy5nZXRNYXAoKSkge1xuICAgICAgaWYgKCFsb3dlc3QgfHwgZW50cnkuc2NvcmUgPCBsb3dlc3QuZW50cnkuc2NvcmUpIHtcbiAgICAgICAgbG93ZXN0ID0geyBydW50aW1lU3RhZ2VJZDoga2V5LCBlbnRyeSB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbG93ZXN0O1xuICB9XG5cbiAgLyoqIFByb2dyZXNzaXZlIHF1YWxpdHkgc2NvcmUgdXAgdG8gYSBzbGlkZXIgcG9zaXRpb24uICovXG4gIGdldFNjb3JlVXBUbyh2aXNpYmxlS2V5czogUmVhZG9ubHlTZXQ8c3RyaW5nPik6IG51bWJlciB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMuYWNjdW11bGF0ZShcbiAgICAgIChzdW0sIGUpID0+IHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgcmV0dXJuIHN1bSArIGUuc2NvcmU7XG4gICAgICB9LFxuICAgICAgMCxcbiAgICAgIHZpc2libGVLZXlzLFxuICAgICk7XG4gICAgcmV0dXJuIGNvdW50ID09PSAwID8gMS4wIDogdG90YWwgLyBjb3VudDtcbiAgfVxuXG4gIHRvU25hcHNob3QoKSB7XG4gICAgY29uc3Qgc3RlcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5nZXRNYXAoKSkge1xuICAgICAgc3RlcHNba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ1F1YWxpdHknLFxuICAgICAgZGVzY3JpcHRpb246ICdRdWFsaXR5IHNjb3JlcyBwZXIgZXhlY3V0aW9uIHN0ZXAgd2l0aCBiYWNrdHJhY2tpbmcgc3VwcG9ydCcsXG4gICAgICBwcmVmZXJyZWRPcGVyYXRpb246IHRoaXMucHJlZmVycmVkT3BlcmF0aW9uLFxuICAgICAgZGF0YToge1xuICAgICAgICBudW1lcmljRmllbGQ6ICdzY29yZScsXG4gICAgICAgIG92ZXJhbGxTY29yZTogdGhpcy5nZXRPdmVyYWxsU2NvcmUoKSxcbiAgICAgICAgbG93ZXN0U3RlcDogdGhpcy5nZXRMb3dlc3QoKT8ucnVudGltZVN0YWdlSWQsXG4gICAgICAgIHN0ZXBzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgc3VwZXIuY2xlYXIoKTtcbiAgICB0aGlzLmN1cnJlbnRSdW50aW1lU3RhZ2VJZCA9ICcnO1xuICAgIHRoaXMuY3VycmVudFN0YWdlSWQgPSAnJztcbiAgICB0aGlzLmN1cnJlbnRTdGFnZU5hbWUgPSAnJztcbiAgICB0aGlzLmN1cnJlbnRLZXlzUmVhZCA9IFtdO1xuICAgIHRoaXMuY3VycmVudEtleXNXcml0dGVuID0gW107XG4gIH1cbn1cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVhbGl0eVJlY29yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7OztBQUdILHlEQUFtRDtBQTJDbkQsTUFBYSxlQUFnQixTQUFRLGdDQUEyQjtJQUN0RCxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUVuQixFQUFFLENBQVM7SUFDWCxrQkFBa0IsQ0FBb0I7SUFDOUIsU0FBUyxDQUFtQjtJQUU3QywrQ0FBK0M7SUFDdkMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0lBQzNCLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDL0Isa0JBQWtCLEdBQWEsRUFBRSxDQUFDO0lBRTFDLFlBQVksU0FBMkIsRUFBRSxPQUFnQztRQUN2RSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsSUFBSSxXQUFXLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLEVBQUUsa0JBQWtCLElBQUksWUFBWSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBaUI7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFC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QUssR0FBNEIsRUFBRSxDQUFDO1FBQzFDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsNkRBQTZEO1lBQzFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxPQUFPO2dCQUNyQixZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjO2dCQUM1QyxLQUFLO2FBQ047U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVRLEtBQUs7UUFDWixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDOztBQWpISCwwQ0FrSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFF1YWxpdHlSZWNvcmRlciDigJQgcGVyLXN0ZXAgcXVhbGl0eSBzY29yaW5nIGtleWVkIGJ5IHJ1bnRpbWVTdGFnZUlkLlxuICpcbiAqIENvbGxlY3RzIHF1YWxpdHkgc2NvcmVzIGR1cmluZyB0cmF2ZXJzYWwgKGFjY3VtdWxhdGUgcGF0dGVybikuXG4gKiBBZnRlciBleGVjdXRpb24sIHVzZSBxdWFsaXR5VHJhY2UoKSB0byBiYWNrdHJhY2sgZnJvbSBhbnkgbG93LXNjb3Jpbmcgc3RlcC5cbiAqXG4gKiBFeHRlbmRzIEtleWVkUmVjb3JkZXI8UXVhbGl0eUVudHJ5PiBmb3IgTygxKSBsb29rdXAgYW5kIHN0YW5kYXJkIG9wZXJhdGlvbnM6XG4gKiAgIC0gKipUcmFuc2xhdGUqKjogYGdldEJ5S2V5KCdjYWxsLWxsbSM1JylgIOKAlCBxdWFsaXR5IGF0IHRoaXMgc3RlcFxuICogICAtICoqQWNjdW11bGF0ZSoqOiBwcm9ncmVzc2l2ZSBxdWFsaXR5IHVwIHRvIHNsaWRlciBwb3NpdGlvblxuICogICAtICoqQWdncmVnYXRlKio6IG92ZXJhbGwgcGlwZWxpbmUgcXVhbGl0eSBzY29yZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBxdWFsaXR5ID0gbmV3IFF1YWxpdHlSZWNvcmRlcigocnVudGltZVN0YWdlSWQsIGNvbnRleHQpID0+IHtcbiAqICAgLy8gQ3VzdG9tIHNjb3JpbmcgZnVuY3Rpb24g4oCUIHJldHVybiB7IHNjb3JlOiAwLjDigJMxLjAsIGZhY3RvcnM/IH1cbiAqICAgaWYgKGNvbnRleHQuc3RhZ2VOYW1lLmluY2x1ZGVzKCdsbG0nKSkgcmV0dXJuIHsgc2NvcmU6IDAuNywgZmFjdG9yczogWydsbG0gc3RhZ2UnXSB9O1xuICogICByZXR1cm4geyBzY29yZTogMS4wIH07XG4gKiB9KTtcbiAqIGV4ZWN1dG9yLmF0dGFjaFNjb3BlUmVjb3JkZXIocXVhbGl0eSk7XG4gKiBhd2FpdCBleGVjdXRvci5ydW4oKTtcbiAqXG4gKiAvLyBQZXItc3RlcCBzY29yZVxuICogcXVhbGl0eS5nZXRCeUtleSgnY2FsbC1sbG0jNScpOyAgLy8geyBzY29yZTogMC43LCBzdGFnZU5hbWU6ICdDYWxsTExNJywgZmFjdG9yczogWy4uLl0gfVxuICpcbiAqIC8vIE92ZXJhbGwgcXVhbGl0eVxuICogcXVhbGl0eS5nZXRPdmVyYWxsU2NvcmUoKTsgIC8vIDAuODVcbiAqXG4gKiAvLyBMb3dlc3Qtc2NvcmluZyBzdGVwXG4gKiBxdWFsaXR5LmdldExvd2VzdCgpOyAgLy8geyBydW50aW1lU3RhZ2VJZDogJ2NhbGwtbGxtIzUnLCBlbnRyeTogeyBzY29yZTogMC43LCAuLi4gfSB9XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFJlYWRFdmVudCwgU2NvcGVSZWNvcmRlciwgU3RhZ2VFdmVudCwgV3JpdGVFdmVudCB9IGZyb20gJy4uL3Njb3BlL3R5cGVzLmpzJztcbmltcG9ydCB7IEtleWVkUmVjb3JkZXIgfSBmcm9tICcuL0tleWVkUmVjb3JkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBSZWNvcmRlck9wZXJhdGlvbiB9IGZyb20gJy4vUmVjb3JkZXJPcGVyYXRpb24uanMnO1xuXG4vKiogUGVyLXN0ZXAgcXVhbGl0eSBkYXRhIHN0b3JlZCBieSBRdWFsaXR5UmVjb3JkZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YWxpdHlFbnRyeSB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdGFnZSBuYW1lLiAqL1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgLyoqIFN0YWJsZSBzdGFnZSBpZGVudGlmaWVyLiAqL1xuICBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBRdWFsaXR5IHNjb3JlIGZvciB0aGlzIHN0ZXAgKDAuMCA9IHdvcnN0LCAxLjAgPSBiZXN0KS4gKi9cbiAgc2NvcmU6IG51bWJlcjtcbiAgLyoqIFdoYXQgY29udHJpYnV0ZWQgdG8gdGhpcyBzY29yZS4gKi9cbiAgZmFjdG9yczogc3RyaW5nW107XG4gIC8qKiBLZXlzIHJlYWQgZHVyaW5nIHRoaXMgc3RlcCAoZm9yIGJhY2t0cmFja2luZykuICovXG4gIGtleXNSZWFkOiBzdHJpbmdbXTtcbiAgLyoqIEtleXMgd3JpdHRlbiBkdXJpbmcgdGhpcyBzdGVwIChmb3IgYmFja3RyYWNraW5nKS4gKi9cbiAga2V5c1dyaXR0ZW46IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFNjb3JpbmcgZnVuY3Rpb24gY2FsbGVkIGF0IHRoZSBlbmQgb2YgZWFjaCBzdGFnZS5cbiAqIFJlY2VpdmVzIHRoZSBydW50aW1lU3RhZ2VJZCwgc3RhZ2UgZXZlbnQsIGFuZCBhIHN1bW1hcnkgb2YgcmVhZHMvd3JpdGVzLlxuICogUmV0dXJuIGEgc2NvcmUgKDAuMOKAkzEuMCkgYW5kIG9wdGlvbmFsIGZhY3RvcnMgZXhwbGFpbmluZyB0aGUgc2NvcmUuXG4gKi9cbmV4cG9ydCB0eXBlIFF1YWxpdHlTY29yaW5nRm4gPSAoXG4gIHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmcsXG4gIGNvbnRleHQ6IHtcbiAgICBzdGFnZU5hbWU6IHN0cmluZztcbiAgICBzdGFnZUlkOiBzdHJpbmc7XG4gICAga2V5c1JlYWQ6IHN0cmluZ1tdO1xuICAgIGtleXNXcml0dGVuOiBzdHJpbmdbXTtcbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbiAgfSxcbikgPT4geyBzY29yZTogbnVtYmVyOyBmYWN0b3JzPzogc3RyaW5nW10gfTtcblxuLyoqIE9wdGlvbnMgZm9yIFF1YWxpdHlSZWNvcmRlci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVhbGl0eVJlY29yZGVyT3B0aW9ucyB7XG4gIC8qKiBTY29wZVJlY29yZGVyIElELiBEZWZhdWx0cyB0byBhdXRvLWluY3JlbWVudC4gKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKiBQcmVmZXJyZWQgVUkgb3BlcmF0aW9uLiBEZWZhdWx0cyB0byAnYWNjdW11bGF0ZScgKHByb2dyZXNzaXZlIHF1YWxpdHkpLiAqL1xuICBwcmVmZXJyZWRPcGVyYXRpb24/OiBSZWNvcmRlck9wZXJhdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIFF1YWxpdHlSZWNvcmRlciBleHRlbmRzIEtleWVkUmVjb3JkZXI8UXVhbGl0eUVudHJ5PiBpbXBsZW1lbnRzIFNjb3BlUmVjb3JkZXIge1xuICBwcml2YXRlIHN0YXRpYyBfY291bnRlciA9IDA7XG5cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJlZmVycmVkT3BlcmF0aW9uOiBSZWNvcmRlck9wZXJhdGlvbjtcbiAgcHJpdmF0ZSByZWFkb25seSBzY29yaW5nRm46IFF1YWxpdHlTY29yaW5nRm47XG5cbiAgLy8gUGVyLXN0YWdlIGJ1ZmZlcnMgKHJlc2V0IG9uIGVhY2ggc3RhZ2VTdGFydClcbiAgcHJpdmF0ZSBjdXJyZW50UnVudGltZVN0YWdlSWQgPSAnJztcbiAgcHJpdmF0ZSBjdXJyZW50U3RhZ2VJZCA9ICcnO1xuICBwcml2YXRlIGN1cnJlbnRTdGFnZU5hbWUgPSAnJztcbiAgcHJpdmF0ZSBjdXJyZW50S2V5c1JlYWQ6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgY3VycmVudEtleXNXcml0dGVuOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3JpbmdGbjogUXVhbGl0eVNjb3JpbmdGbiwgb3B0aW9ucz86IFF1YWxpdHlSZWNvcmRlck9wdGlvbnMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc2NvcmluZ0ZuID0gc2NvcmluZ0ZuO1xuICAgIHRoaXMuaWQgPSBvcHRpb25zPy5pZCA/PyBgcXVhbGl0eS0keysrUXVhbGl0eVJlY29yZGVyLl9jb3VudGVyfWA7XG4gICAgdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24gPSBvcHRpb25zPy5wcmVmZXJyZWRPcGVyYXRpb24gPz8gJ2FjY3VtdWxhdGUnO1xuICB9XG5cbiAgb25TdGFnZVN0YXJ0KGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50UnVudGltZVN0YWdlSWQgPSBldmVudC5ydW50aW1lU3RhZ2VJZDtcbiAgICB0aGlzLmN1cnJlbnRTdGFnZUlkID0gZXZlbnQuc3RhZ2VJZDtcbiAgICB0aGlzLmN1cnJlbnRTdGFnZU5hbWUgPSBldmVudC5zdGFnZU5hbWU7XG4gICAgdGhpcy5jdXJyZW50S2V5c1JlYWQgPSBbXTtcbiAgICB0aGlzLmN1cnJlbnRLZXlzV3JpdHRlbiA9IFtdO1xuICB9XG5cbiAgb25SZWFkKGV2ZW50OiBSZWFkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5KSB0aGlzLmN1cnJlbnRLZXlzUmVhZC5wdXNoKGV2ZW50LmtleSk7XG4gIH1cblxuICBvbldyaXRlKGV2ZW50OiBXcml0ZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50S2V5c1dyaXR0ZW4ucHVzaChldmVudC5rZXkpO1xuICB9XG5cbiAgb25TdGFnZUVuZChldmVudDogU3RhZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2NvcmUsIGZhY3RvcnMgfSA9IHRoaXMuc2NvcmluZ0ZuKHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuY3VycmVudFN0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQ6IHRoaXMuY3VycmVudFN0YWdlSWQsXG4gICAgICBrZXlzUmVhZDogdGhpcy5jdXJyZW50S2V5c1JlYWQsXG4gICAgICBrZXlzV3JpdHRlbjogdGhpcy5jdXJyZW50S2V5c1dyaXR0ZW4sXG4gICAgICBkdXJhdGlvbjogZXZlbnQuZHVyYXRpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0b3JlKHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuY3VycmVudFN0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQ6IHRoaXMuY3VycmVudFN0YWdlSWQsXG4gICAgICBzY29yZTogTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgc2NvcmUpKSxcbiAgICAgIGZhY3RvcnM6IGZhY3RvcnMgPz8gW10sXG4gICAgICBrZXlzUmVhZDogWy4uLnRoaXMuY3VycmVudEtleXNSZWFkXSxcbiAgICAgIGtleXNXcml0dGVuOiBbLi4udGhpcy5jdXJyZW50S2V5c1dyaXR0ZW5dLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIE92ZXJhbGwgcXVhbGl0eSBzY29yZSDigJQgYXZlcmFnZSBvZiBhbGwgc3RlcCBzY29yZXMuICovXG4gIGdldE92ZXJhbGxTY29yZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnNpemUgPT09IDApIHJldHVybiAxLjA7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLmFnZ3JlZ2F0ZSgoc3VtLCBlKSA9PiBzdW0gKyBlLnNjb3JlLCAwKTtcbiAgICByZXR1cm4gdG90YWwgLyB0aGlzLnNpemU7XG4gIH1cblxuICAvKiogRmluZCB0aGUgbG93ZXN0LXNjb3Jpbmcgc3RlcC4gKi9cbiAgZ2V0TG93ZXN0KCk6IHsgcnVudGltZVN0YWdlSWQ6IHN0cmluZzsgZW50cnk6IFF1YWxpdHlFbnRyeSB9IHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgbG93ZXN0OiB7IHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmc7IGVudHJ5OiBRdWFsaXR5RW50cnkgfSB8IHVuZGVmaW5lZDtcbiAgICBmb3IgKGNvbnN0IFtrZXksIGVudHJ5XSBvZiB0aGlzLmdldE1hcCgpKSB7XG4gICAgICBpZiAoIWxvd2VzdCB8fCBlbnRyeS5zY29yZSA8IGxvd2VzdC5lbnRyeS5zY29yZSkge1xuICAgICAgICBsb3dlc3QgPSB7IHJ1bnRpbWVTdGFnZUlkOiBrZXksIGVudHJ5IH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb3dlc3Q7XG4gIH1cblxuICAvKiogUHJvZ3Jlc3NpdmUgcXVhbGl0eSBzY29yZSB1cCB0byBhIHNsaWRlciBwb3NpdGlvbi4gKi9cbiAgZ2V0U2NvcmVVcFRvKHZpc2libGVLZXlzOiBSZWFkb25seVNldDxzdHJpbmc+KTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5hY2N1bXVsYXRlKFxuICAgICAgKHN1bSwgZSkgPT4ge1xuICAgICAgICBjb3VudCsrO1xuICAgICAgICByZXR1cm4gc3VtICsgZS5zY29yZTtcbiAgICAgIH0sXG4gICAgICAwLFxuICAgICAgdmlzaWJsZUtleXMsXG4gICAgKTtcbiAgICByZXR1cm4gY291bnQgPT09IDAgPyAxLjAgOiB0b3RhbCAvIGNvdW50O1xuICB9XG5cbiAgdG9TbmFwc2hvdCgpIHtcbiAgICBjb25zdCBzdGVwczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLmdldE1hcCgpKSB7XG4gICAgICBzdGVwc1trZXldID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnUXVhbGl0eScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1F1YWxpdHkgc2NvcmVzIHBlciBleGVjdXRpb24gc3RlcCB3aXRoIGJhY2t0cmFja2luZyBzdXBwb3J0JyxcbiAgICAgIHByZWZlcnJlZE9wZXJhdGlvbjogdGhpcy5wcmVmZXJyZWRPcGVyYXRpb24sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIG51bWVyaWNGaWVsZDogJ3Njb3JlJyxcbiAgICAgICAgb3ZlcmFsbFNjb3JlOiB0aGlzLmdldE92ZXJhbGxTY29yZSgpLFxuICAgICAgICBsb3dlc3RTdGVwOiB0aGlzLmdldExvd2VzdCgpPy5ydW50aW1lU3RhZ2VJZCxcbiAgICAgICAgc3RlcHMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhcigpO1xuICAgIHRoaXMuY3VycmVudFJ1bnRpbWVTdGFnZUlkID0gJyc7XG4gICAgdGhpcy5jdXJyZW50U3RhZ2VJZCA9ICcnO1xuICAgIHRoaXMuY3VycmVudFN0YWdlTmFtZSA9ICcnO1xuICAgIHRoaXMuY3VycmVudEtleXNSZWFkID0gW107XG4gICAgdGhpcy5jdXJyZW50S2V5c1dyaXR0ZW4gPSBbXTtcbiAgfVxufVxuIl19
@@ -18,7 +18,7 @@ exports.SequenceStore = void 0;
18
18
  * @example
19
19
  * ```typescript
20
20
  * import { SequenceStore } from 'footprintjs/trace';
21
- * import type { ScopeRecorder } from 'footprintjs';
21
+ * import type { ScopeRecorder, ReadEvent, WriteEvent } from 'footprintjs';
22
22
  *
23
23
  * interface AuditEntry {
24
24
  * runtimeStageId?: string;
@@ -196,4 +196,4 @@ class SequenceStore {
196
196
  }
197
197
  }
198
198
  exports.SequenceStore = SequenceStore;
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2VTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVjb3JkZXIvU2VxdWVuY2VTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeURHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCLHlEQUF5RDtJQUN4QyxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ25DLDJGQUEyRjtJQUMxRSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQzNEO21HQUMrRjtJQUM5RSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWdELENBQUM7SUFDdkY7OEZBQzBGO0lBQ2xGLGFBQWEsQ0FBcUI7SUFFMUMsd0VBQXdFO0lBRXhFOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUFRO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNoQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENB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O29CQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7b0JBQy9CLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx3RUFBd0U7SUFFeEU7d0VBQ29FO0lBQ3BFLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBbEpELHNDQWtKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VxdWVuY2VTdG9yZTxUPiDigJQgY29uY3JldGUsIGNvbXBvc2FibGUgc3RvcmFnZSBmb3Igb3JkZXJlZCBzZXF1ZW5jZSBkYXRhLlxuICpcbiAqIFBhdHRlcm46IENPTVBPU0lUSU9OIHByaW1pdGl2ZS4gQ29uY3JldGUgY2xhc3Mg4oCUIGluc3RhbnRpYXRlIHdpdGhcbiAqICAgICAgICAgIGBuZXcgU2VxdWVuY2VTdG9yZTxUPigpYCBhbmQgb3duIGl0IGFzIGEgZmllbGQgb24geW91clxuICogICAgICAgICAgcmVjb3JkZXIuIFJlcGxhY2VzIHRoZSBhYnN0cmFjdCBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgYmFzZVxuICogICAgICAgICAgY2xhc3MgZm9yIHRoZSB2NSBcIm9uZSBwdXJwb3NlIHBlciByZWNvcmRlclwiIHJ1bGU6XG4gKiAgICAgICAgICBzdG9yZXMgQVJFIHN0b3JhZ2U7IHJlY29yZGVycyBBUkUgZXZlbnQgaGFuZGxlcnM7IGNvbnN1bWVyc1xuICogICAgICAgICAgQ09NUE9TRS5cbiAqIFJvbGU6ICAgIER1YWwtaW5kZXhlZCBhcHBlbmQtb25seSBzZXF1ZW5jZTogYSBmbGF0IGFycmF5IHByZXNlcnZpbmdcbiAqICAgICAgICAgIGluc2VydGlvbiBvcmRlciBwbHVzIGEgYE1hcDxydW50aW1lU3RhZ2VJZCwgVFtdPmAgZm9yIE8oMSlcbiAqICAgICAgICAgIHBlci1zdGVwIGxvb2t1cC4gUGx1cyBhIHByZWNvbXB1dGVkIHJhbmdlIGluZGV4IGZvciB0aW1lLVxuICogICAgICAgICAgdHJhdmVsIHNjcnViYmluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU2VxdWVuY2VTdG9yZSB9IGZyb20gJ2Zvb3RwcmludGpzL3RyYWNlJztcbiAqIGltcG9ydCB0eXBlIHsgU2NvcGVSZWNvcmRlciB9IGZyb20gJ2Zvb3RwcmludGpzJztcbiAqXG4gKiBpbnRlcmZhY2UgQXVkaXRFbnRyeSB7XG4gKiAgIHJ1bnRpbWVTdGFnZUlkPzogc3RyaW5nO1xuICogICB0eXBlOiAncmVhZCcgfCAnd3JpdGUnIHwgJ2RlY2lzaW9uJztcbiAqICAgZGV0YWlsOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogLy8gT05FIFBVUlBPU0U6IHNjb3BlLWV2ZW50IGhhbmRsZXIuIFN0b3JhZ2UgaXMgY29tcG9zZWQgaW4uXG4gKiBjbGFzcyBBdWRpdFJlY29yZGVyIGltcGxlbWVudHMgU2NvcGVSZWNvcmRlciB7XG4gKiAgIHJlYWRvbmx5IGlkID0gJ2F1ZGl0JztcbiAqICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IG5ldyBTZXF1ZW5jZVN0b3JlPEF1ZGl0RW50cnk+KCk7XG4gKlxuICogICBvblJlYWQoZXZlbnQ6IFJlYWRFdmVudCkge1xuICogICAgIHRoaXMuc3RvcmUucHVzaCh7XG4gKiAgICAgICBydW50aW1lU3RhZ2VJZDogZXZlbnQucnVudGltZVN0YWdlSWQsXG4gKiAgICAgICB0eXBlOiAncmVhZCcsXG4gKiAgICAgICBkZXRhaWw6IGV2ZW50LmtleSxcbiAqICAgICB9KTtcbiAqICAgfVxuICogICBvbldyaXRlKGV2ZW50OiBXcml0ZUV2ZW50KSB7XG4gKiAgICAgdGhpcy5zdG9yZS5wdXNoKHtcbiAqICAgICAgIHJ1bnRpbWVTdGFnZUlkOiBldmVudC5ydW50aW1lU3RhZ2VJZCxcbiAqICAgICAgIHR5cGU6ICd3cml0ZScsXG4gKiAgICAgICBkZXRhaWw6IGV2ZW50LmtleSxcbiAqICAgICB9KTtcbiAqICAgfVxuICpcbiAqICAgZ2V0QXVkaXQoKSB7IHJldHVybiB0aGlzLnN0b3JlLmdldEFsbCgpOyB9XG4gKiAgIGdldEF1ZGl0VXBUbyhpZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4pIHtcbiAqICAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRFbnRyaWVzVXBUbyhpZHMpO1xuICogICB9XG4gKlxuICogICBjbGVhcigpIHsgdGhpcy5zdG9yZS5jbGVhcigpOyB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAqKkNvbnRyYXN0IHdpdGggYEtleWVkU3RvcmU8VD5gOioqIFNlcXVlbmNlU3RvcmUgc3RvcmVzIDE6TiBlbnRyaWVzXG4gKiBwZXIgcnVudGltZVN0YWdlSWQgaW4gaW5zZXJ0aW9uIG9yZGVyLiBVc2UgS2V5ZWRTdG9yZSBmb3IgMToxXG4gKiAob25lIHJlY29yZCBwZXIgc3RlcCDigJQgdG9rZW4gY291bnRzLCBtZXRyaWMgc25hcHNob3RzKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlcXVlbmNlU3RvcmU8VCBleHRlbmRzIHsgcnVudGltZVN0YWdlSWQ/OiBzdHJpbmcgfT4ge1xuICAvKiogT3JkZXJlZCBzZXF1ZW5jZSBvZiBhbGwgZW50cmllcyAoaW5zZXJ0aW9uIG9yZGVyKS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyaWVzOiBUW10gPSBbXTtcbiAgLyoqIFBlci1zdGVwIGluZGV4OiBydW50aW1lU3RhZ2VJZCDihpIgZW50cmllcyBmb3IgdGhhdCBzdGVwLiBTYW1lIG9iamVjdHMgYXMgYGVudHJpZXNbXWAuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgYnlSdW50aW1lU3RhZ2VJZCA9IG5ldyBNYXA8c3RyaW5nLCBUW10+KCk7XG4gIC8qKiBQZXItc3RlcCByYW5nZSBpbmRleDogcnVudGltZVN0YWdlSWQg4oaSIFtmaXJzdElkeCwgZW5kSWR4KSBpbiBlbnRyaWVzIGFycmF5LlxuICAgKiAgZW5kSWR4IGluY2x1ZGVzIHRyYWlsaW5nIGtleWxlc3MgZW50cmllcyAoc3RydWN0dXJhbCBtYXJrZXJzKS4gTWFpbnRhaW5lZCBkdXJpbmcgcHVzaCgpLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJ5UmFuZ2VzID0gbmV3IE1hcDxzdHJpbmcsIHsgZmlyc3RJZHg6IG51bWJlcjsgZW5kSWR4OiBudW1iZXIgfT4oKTtcbiAgLyoqIFRoZSBydW50aW1lU3RhZ2VJZCBvZiB0aGUgbW9zdCByZWNlbnRseSBlbWl0dGVkIGtleWVkIGVudHJ5LiBVc2VkIHRvIGV4dGVuZFxuICAgKiAgcmFuZ2VzIGZvciB0cmFpbGluZyBtYXJrZXJzIChlbnRyaWVzIHdpdGhvdXQgcnVudGltZVN0YWdlSWQgYXR0YWNoZWQgYWZ0ZXIgYSBzdGVwKS4gKi9cbiAgcHJpdmF0ZSBsYXN0RW1pdHRlZElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLy8g4pSA4pSAIFdyaXRlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBBcHBlbmQgYW4gZW50cnkgdG8gYm90aCB0aGUgb3JkZXJlZCBzZXF1ZW5jZSwga2V5ZWQgaW5kZXgsIGFuZCByYW5nZSBpbmRleC5cbiAgICogQWxsIHRocmVlIHJlZmVyZW5jZSB0aGUgU0FNRSBlbnRyeSBvYmplY3Qg4oCUIG5vIGR1cGxpY2F0aW9uLlxuICAgKi9cbiAgcHVzaChlbnRyeTogVCk6IHZvaWQge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuZW50cmllcy5sZW5ndGg7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIGNvbnN0IGlkID0gZW50cnkucnVudGltZVN0YWdlSWQ7XG4gICAgaWYgKGlkKSB7XG4gICAgICBsZXQgYXJyID0gdGhpcy5ieVJ1bnRpbWVTdGFnZUlkLmdldChpZCk7XG4gICAgICBpZiAoIWFycikge1xuICAgICAgICBhcnIgPSBbXTtcbiAgICAgICAgdGhpcy5ieVJ1bnRpbWVTdGFnZUlkLnNldChpZCwgYXJyKTtcbiAgICAgICAgdGhpcy5lbnRyeVJhbmdlcy5zZXQoaWQsIHsgZmlyc3RJZHg6IGlkeCwgZW5kSWR4OiBpZHggKyAxIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lbnRyeVJhbmdlcy5nZXQoaWQpIS5lbmRJZHggPSBpZHggKyAxO1xuICAgICAgfVxuICAgICAgYXJyLnB1c2goZW50cnkpO1xuICAgICAgdGhpcy5sYXN0RW1pdHRlZElkID0gaWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxhc3RFbWl0dGVkSWQpIHtcbiAgICAgIC8vIFN0cnVjdHVyYWwgbWFya2VyIChubyBydW50aW1lU3RhZ2VJZCkg4oCUIGV4dGVuZCB0aGUgcHJlY2VkaW5nIHN0ZXAncyByYW5nZS5cbiAgICAgIHRoaXMuZW50cnlSYW5nZXMuZ2V0KHRoaXMubGFzdEVtaXR0ZWRJZCkhLmVuZElkeCA9IGlkeCArIDE7XG4gICAgfVxuICB9XG5cbiAgLy8g4pSA4pSAIE9yZGVyZWQgYWNjZXNzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBBbGwgZW50cmllcyBpbiBpbnNlcnRpb24gb3JkZXIuIFJldHVybnMgYSBzaGFsbG93IGNvcHkg4oCUIGVudHJ5IG9iamVjdHMgYXJlIHNoYXJlZC4gKi9cbiAgZ2V0QWxsKCk6IFRbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmVudHJpZXNdO1xuICB9XG5cbiAgLyoqIE51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBzZXF1ZW5jZS4gKi9cbiAgZ2V0IHNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKiBaZXJvLWNvcHkgaXRlcmF0aW9uLiBBdm9pZHMgdGhlIGBnZXRBbGwoKWAgc3ByZWFkIHdoZW4gdGhlIGNhbGxlciBqdXN0IG5lZWRzXG4gICAqICB0byB3YWxrIHRoZSBlbnRyaWVzIChlLmcuLCBhZ2dyZWdhdGluZywgcmVuZGVyaW5nKS4gKi9cbiAgZm9yRWFjaChmbjogKGVudHJ5OiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmVudHJpZXMpIGZuKGVudHJ5KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBLZXllZCBhY2Nlc3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIE8oMSkgbG9va3VwOiBhbGwgZW50cmllcyBmb3IgYSBzcGVjaWZpYyBleGVjdXRpb24gc3RlcC4gUmV0dXJucyBhIGNvcHkuICovXG4gIGdldEJ5S2V5KHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmcpOiBUW10ge1xuICAgIHJldHVybiBbLi4uKHRoaXMuYnlSdW50aW1lU3RhZ2VJZC5nZXQocnVudGltZVN0YWdlSWQpID8/IFtdKV07XG4gIH1cblxuICAvKiogTnVtYmVyIG9mIGRpc3RpbmN0IGV4ZWN1dGlvbiBzdGVwcyB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIGVudHJ5LiAqL1xuICBnZXQga2V5Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5ieVJ1bnRpbWVTdGFnZUlkLnNpemU7XG4gIH1cblxuICAvKipcbiAgICogUHJlLWJ1aWx0IHJhbmdlIGluZGV4OiBydW50aW1lU3RhZ2VJZCDihpIgaGFsZi1vcGVuIGBbZmlyc3RJZHgsIGVuZElkeClgXG4gICAqIHJhbmdlIGluIHRoZSBlbnRyaWVzIGFycmF5LiBNYWludGFpbmVkIGR1cmluZyBgcHVzaCgpYCDigJQgbm8gcmVidWlsZFxuICAgKiBuZWVkZWQuIFVzZSBmb3IgTygxKSBwZXItc3RlcCBsb29rdXBzIGR1cmluZyB0aW1lLXRyYXZlbCBzY3J1YmJpbmcuXG4gICAqIGBlbmRJZHhgIGluY2x1ZGVzIHRyYWlsaW5nIGtleWxlc3MgZW50cmllcyAoc3RydWN0dXJhbCBtYXJrZXJzXG4gICAqIGZvbGxvd2luZyBhIHN0ZXApLlxuICAgKi9cbiAgZ2V0RW50cnlSYW5nZXMoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCB7IHJlYWRvbmx5IGZpcnN0SWR4OiBudW1iZXI7IHJlYWRvbmx5IGVuZElkeDogbnVtYmVyIH0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRyeVJhbmdlcztcbiAgfVxuXG4gIC8vIOKUgOKUgCBBZ2dyZWdhdGUgKHJlZHVjZSBhbGwgZW50cmllcykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIFJlZHVjZSBBTEwgZW50cmllcyB0byBhIHNpbmdsZSB2YWx1ZS4gRm9yIGRhc2hib2FyZHMsIHRvdGFscywgc3VtbWFyaWVzLiAqL1xuICBhZ2dyZWdhdGU8Uj4oZm46IChhY2M6IFIsIGVudHJ5OiBUKSA9PiBSLCBpbml0aWFsOiBSKTogUiB7XG4gICAgbGV0IGFjYyA9IGluaXRpYWw7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmVudHJpZXMpIGFjYyA9IGZuKGFjYywgZW50cnkpO1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICAvLyDilIDilIAgQWNjdW11bGF0ZSAocHJvZ3Jlc3NpdmUgcmVkdWNlKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogUmVkdWNlIGVudHJpZXMsIG9wdGlvbmFsbHkgZmlsdGVyZWQgYnkgYSBzZXQgb2YgYHJ1bnRpbWVTdGFnZUlkc2AuXG4gICAqIEZvciB0aW1lLXRyYXZlbCBwcm9ncmVzc2l2ZSB2aWV3OiBwYXNzIHRoZSBydW50aW1lU3RhZ2VJZHMgdmlzaWJsZVxuICAgKiBhdCB0aGUgY3VycmVudCBzbGlkZXIgcG9zaXRpb24uIEVudHJpZXMgd2l0aG91dCBgcnVudGltZVN0YWdlSWRgXG4gICAqIChzdHJ1Y3R1cmFsIG1hcmtlcnMpIGFyZSBleGNsdWRlZCB3aGVuIGtleXMgYXJlIHByb3ZpZGVkLiBXaXRob3V0XG4gICAqIGtleXMsIHJlZHVjZXMgYWxsIGVudHJpZXMgKHNhbWUgYXMgYGFnZ3JlZ2F0ZWApLlxuICAgKi9cbiAgYWNjdW11bGF0ZTxSPihmbjogKGFjYzogUiwgZW50cnk6IFQpID0+IFIsIGluaXRpYWw6IFIsIGtleXM/OiBSZWFkb25seVNldDxzdHJpbmc+KTogUiB7XG4gICAgbGV0IGFjYyA9IGluaXRpYWw7XG4gICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmVudHJpZXMpIHtcbiAgICAgIGlmIChrZXlzKSB7XG4gICAgICAgIGlmICghZW50cnkucnVudGltZVN0YWdlSWQgfHwgIWtleXMuaGFzKGVudHJ5LnJ1bnRpbWVTdGFnZUlkKSkgY29udGludWU7XG4gICAgICB9XG4gICAgICBhY2MgPSBmbihhY2MsIGVudHJ5KTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIC8vIOKUgOKUgCBUaW1lLXRyYXZlbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogUHJvZ3Jlc3NpdmUgcmV2ZWFsOiBlbnRyaWVzIHdob3NlIGBydW50aW1lU3RhZ2VJZGAgaXMgaW4gdGhlIHZpc2libGVcbiAgICogc2V0LiBQcmVzZXJ2ZXMgaW5zZXJ0aW9uIG9yZGVyLiBFbnRyaWVzIHdpdGhvdXQgYHJ1bnRpbWVTdGFnZUlkYFxuICAgKiAoc3RydWN0dXJhbCBtYXJrZXJzKSBhcmUgYnVmZmVyZWQgYW5kIGluY2x1ZGVkIG9ubHkgd2hlbiBzdXJyb3VuZGVkXG4gICAqIGJ5IHZpc2libGUgc3RlcHMgb24gYm90aCBzaWRlcyDigJQgdHJhaWxpbmcgbWFya2VycyBhZnRlciB0aGUgbGFzdFxuICAgKiB2aXNpYmxlIHN0ZXAgYXJlIGRpc2NhcmRlZC5cbiAgICovXG4gIGdldEVudHJpZXNVcFRvKHZpc2libGVJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4pOiBUW10ge1xuICAgIGNvbnN0IHJlc3VsdDogVFtdID0gW107XG4gICAgbGV0IHBlbmRpbmdNYXJrZXJzOiBUW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZW50cmllcykge1xuICAgICAgY29uc3QgaWQgPSBlbnRyeS5ydW50aW1lU3RhZ2VJZDtcbiAgICAgIGlmICghaWQpIHtcbiAgICAgICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSBwZW5kaW5nTWFya2Vycy5wdXNoKGVudHJ5KTtcbiAgICAgIH0gZWxzZSBpZiAodmlzaWJsZUlkcy5oYXMoaWQpKSB7XG4gICAgICAgIGlmIChwZW5kaW5nTWFya2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goLi4ucGVuZGluZ01hcmtlcnMpO1xuICAgICAgICAgIHBlbmRpbmdNYXJrZXJzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LnB1c2goZW50cnkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8g4pSA4pSAIExpZmVjeWNsZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogQ2xlYXIgYWxsIHN0b3JlZCBkYXRhLiBSZWNvcmRlcnMgdHlwaWNhbGx5IGNhbGwgdGhpcyBmcm9tIHRoZWlyIG93blxuICAgKiAgYGNsZWFyKClgIG1ldGhvZCwgd2hpY2ggdGhlIGV4ZWN1dG9yIGludm9rZXMgYmVmb3JlIGVhY2ggcnVuLiAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmVudHJpZXMubGVuZ3RoID0gMDtcbiAgICB0aGlzLmJ5UnVudGltZVN0YWdlSWQuY2xlYXIoKTtcbiAgICB0aGlzLmVudHJ5UmFuZ2VzLmNsZWFyKCk7XG4gICAgdGhpcy5sYXN0RW1pdHRlZElkID0gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2VTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVjb3JkZXIvU2VxdWVuY2VTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeURHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCLHlEQUF5RDtJQUN4QyxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBQ25DLDJGQUEyRjtJQUMxRSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO0lBQzNEO21HQUMrRjtJQUM5RSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWdELENBQUM7SUFDdkY7OEZBQzBGO0lBQ2xGLGFBQWEsQ0FBcUI7SUFFMUMsd0VBQXdFO0lBRXhFOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUFRO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNoQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENB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O29CQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7b0JBQy9CLGNBQWMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx3RUFBd0U7SUFFeEU7d0VBQ29FO0lBQ3BFLEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztDQUNGO0FBbEpELHNDQWtKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VxdWVuY2VTdG9yZTxUPiDigJQgY29uY3JldGUsIGNvbXBvc2FibGUgc3RvcmFnZSBmb3Igb3JkZXJlZCBzZXF1ZW5jZSBkYXRhLlxuICpcbiAqIFBhdHRlcm46IENPTVBPU0lUSU9OIHByaW1pdGl2ZS4gQ29uY3JldGUgY2xhc3Mg4oCUIGluc3RhbnRpYXRlIHdpdGhcbiAqICAgICAgICAgIGBuZXcgU2VxdWVuY2VTdG9yZTxUPigpYCBhbmQgb3duIGl0IGFzIGEgZmllbGQgb24geW91clxuICogICAgICAgICAgcmVjb3JkZXIuIFJlcGxhY2VzIHRoZSBhYnN0cmFjdCBgU2VxdWVuY2VSZWNvcmRlcjxUPmAgYmFzZVxuICogICAgICAgICAgY2xhc3MgZm9yIHRoZSB2NSBcIm9uZSBwdXJwb3NlIHBlciByZWNvcmRlclwiIHJ1bGU6XG4gKiAgICAgICAgICBzdG9yZXMgQVJFIHN0b3JhZ2U7IHJlY29yZGVycyBBUkUgZXZlbnQgaGFuZGxlcnM7IGNvbnN1bWVyc1xuICogICAgICAgICAgQ09NUE9TRS5cbiAqIFJvbGU6ICAgIER1YWwtaW5kZXhlZCBhcHBlbmQtb25seSBzZXF1ZW5jZTogYSBmbGF0IGFycmF5IHByZXNlcnZpbmdcbiAqICAgICAgICAgIGluc2VydGlvbiBvcmRlciBwbHVzIGEgYE1hcDxydW50aW1lU3RhZ2VJZCwgVFtdPmAgZm9yIE8oMSlcbiAqICAgICAgICAgIHBlci1zdGVwIGxvb2t1cC4gUGx1cyBhIHByZWNvbXB1dGVkIHJhbmdlIGluZGV4IGZvciB0aW1lLVxuICogICAgICAgICAgdHJhdmVsIHNjcnViYmluZy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU2VxdWVuY2VTdG9yZSB9IGZyb20gJ2Zvb3RwcmludGpzL3RyYWNlJztcbiAqIGltcG9ydCB0eXBlIHsgU2NvcGVSZWNvcmRlciwgUmVhZEV2ZW50LCBXcml0ZUV2ZW50IH0gZnJvbSAnZm9vdHByaW50anMnO1xuICpcbiAqIGludGVyZmFjZSBBdWRpdEVudHJ5IHtcbiAqICAgcnVudGltZVN0YWdlSWQ/OiBzdHJpbmc7XG4gKiAgIHR5cGU6ICdyZWFkJyB8ICd3cml0ZScgfCAnZGVjaXNpb24nO1xuICogICBkZXRhaWw6IHN0cmluZztcbiAqIH1cbiAqXG4gKiAvLyBPTkUgUFVSUE9TRTogc2NvcGUtZXZlbnQgaGFuZGxlci4gU3RvcmFnZSBpcyBjb21wb3NlZCBpbi5cbiAqIGNsYXNzIEF1ZGl0UmVjb3JkZXIgaW1wbGVtZW50cyBTY29wZVJlY29yZGVyIHtcbiAqICAgcmVhZG9ubHkgaWQgPSAnYXVkaXQnO1xuICogICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IFNlcXVlbmNlU3RvcmU8QXVkaXRFbnRyeT4oKTtcbiAqXG4gKiAgIG9uUmVhZChldmVudDogUmVhZEV2ZW50KSB7XG4gKiAgICAgdGhpcy5zdG9yZS5wdXNoKHtcbiAqICAgICAgIHJ1bnRpbWVTdGFnZUlkOiBldmVudC5ydW50aW1lU3RhZ2VJZCxcbiAqICAgICAgIHR5cGU6ICdyZWFkJyxcbiAqICAgICAgIGRldGFpbDogZXZlbnQua2V5LFxuICogICAgIH0pO1xuICogICB9XG4gKiAgIG9uV3JpdGUoZXZlbnQ6IFdyaXRlRXZlbnQpIHtcbiAqICAgICB0aGlzLnN0b3JlLnB1c2goe1xuICogICAgICAgcnVudGltZVN0YWdlSWQ6IGV2ZW50LnJ1bnRpbWVTdGFnZUlkLFxuICogICAgICAgdHlwZTogJ3dyaXRlJyxcbiAqICAgICAgIGRldGFpbDogZXZlbnQua2V5LFxuICogICAgIH0pO1xuICogICB9XG4gKlxuICogICBnZXRBdWRpdCgpIHsgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0QWxsKCk7IH1cbiAqICAgZ2V0QXVkaXRVcFRvKGlkczogUmVhZG9ubHlTZXQ8c3RyaW5nPikge1xuICogICAgIHJldHVybiB0aGlzLnN0b3JlLmdldEVudHJpZXNVcFRvKGlkcyk7XG4gKiAgIH1cbiAqXG4gKiAgIGNsZWFyKCkgeyB0aGlzLnN0b3JlLmNsZWFyKCk7IH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICoqQ29udHJhc3Qgd2l0aCBgS2V5ZWRTdG9yZTxUPmA6KiogU2VxdWVuY2VTdG9yZSBzdG9yZXMgMTpOIGVudHJpZXNcbiAqIHBlciBydW50aW1lU3RhZ2VJZCBpbiBpbnNlcnRpb24gb3JkZXIuIFVzZSBLZXllZFN0b3JlIGZvciAxOjFcbiAqIChvbmUgcmVjb3JkIHBlciBzdGVwIOKAlCB0b2tlbiBjb3VudHMsIG1ldHJpYyBzbmFwc2hvdHMpLlxuICovXG5leHBvcnQgY2xhc3MgU2VxdWVuY2VTdG9yZTxUIGV4dGVuZHMgeyBydW50aW1lU3RhZ2VJZD86IHN0cmluZyB9PiB7XG4gIC8qKiBPcmRlcmVkIHNlcXVlbmNlIG9mIGFsbCBlbnRyaWVzIChpbnNlcnRpb24gb3JkZXIpLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJpZXM6IFRbXSA9IFtdO1xuICAvKiogUGVyLXN0ZXAgaW5kZXg6IHJ1bnRpbWVTdGFnZUlkIOKGkiBlbnRyaWVzIGZvciB0aGF0IHN0ZXAuIFNhbWUgb2JqZWN0cyBhcyBgZW50cmllc1tdYC4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBieVJ1bnRpbWVTdGFnZUlkID0gbmV3IE1hcDxzdHJpbmcsIFRbXT4oKTtcbiAgLyoqIFBlci1zdGVwIHJhbmdlIGluZGV4OiBydW50aW1lU3RhZ2VJZCDihpIgW2ZpcnN0SWR4LCBlbmRJZHgpIGluIGVudHJpZXMgYXJyYXkuXG4gICAqICBlbmRJZHggaW5jbHVkZXMgdHJhaWxpbmcga2V5bGVzcyBlbnRyaWVzIChzdHJ1Y3R1cmFsIG1hcmtlcnMpLiBNYWludGFpbmVkIGR1cmluZyBwdXNoKCkuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZW50cnlSYW5nZXMgPSBuZXcgTWFwPHN0cmluZywgeyBmaXJzdElkeDogbnVtYmVyOyBlbmRJZHg6IG51bWJlciB9PigpO1xuICAvKiogVGhlIHJ1bnRpbWVTdGFnZUlkIG9mIHRoZSBtb3N0IHJlY2VudGx5IGVtaXR0ZWQga2V5ZWQgZW50cnkuIFVzZWQgdG8gZXh0ZW5kXG4gICAqICByYW5nZXMgZm9yIHRyYWlsaW5nIG1hcmtlcnMgKGVudHJpZXMgd2l0aG91dCBydW50aW1lU3RhZ2VJZCBhdHRhY2hlZCBhZnRlciBhIHN0ZXApLiAqL1xuICBwcml2YXRlIGxhc3RFbWl0dGVkSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvLyDilIDilIAgV3JpdGUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIEFwcGVuZCBhbiBlbnRyeSB0byBib3RoIHRoZSBvcmRlcmVkIHNlcXVlbmNlLCBrZXllZCBpbmRleCwgYW5kIHJhbmdlIGluZGV4LlxuICAgKiBBbGwgdGhyZWUgcmVmZXJlbmNlIHRoZSBTQU1FIGVudHJ5IG9iamVjdCDigJQgbm8gZHVwbGljYXRpb24uXG4gICAqL1xuICBwdXNoKGVudHJ5OiBUKTogdm9pZCB7XG4gICAgY29uc3QgaWR4ID0gdGhpcy5lbnRyaWVzLmxlbmd0aDtcbiAgICB0aGlzLmVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgY29uc3QgaWQgPSBlbnRyeS5ydW50aW1lU3RhZ2VJZDtcbiAgICBpZiAoaWQpIHtcbiAgICAgIGxldCBhcnIgPSB0aGlzLmJ5UnVudGltZVN0YWdlSWQuZ2V0KGlkKTtcbiAgICAgIGlmICghYXJyKSB7XG4gICAgICAgIGFyciA9IFtdO1xuICAgICAgICB0aGlzLmJ5UnVudGltZVN0YWdlSWQuc2V0KGlkLCBhcnIpO1xuICAgICAgICB0aGlzLmVudHJ5UmFuZ2VzLnNldChpZCwgeyBmaXJzdElkeDogaWR4LCBlbmRJZHg6IGlkeCArIDEgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVudHJ5UmFuZ2VzLmdldChpZCkhLmVuZElkeCA9IGlkeCArIDE7XG4gICAgICB9XG4gICAgICBhcnIucHVzaChlbnRyeSk7XG4gICAgICB0aGlzLmxhc3RFbWl0dGVkSWQgPSBpZDtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdEVtaXR0ZWRJZCkge1xuICAgICAgLy8gU3RydWN0dXJhbCBtYXJrZXIgKG5vIHJ1bnRpbWVTdGFnZUlkKSDigJQgZXh0ZW5kIHRoZSBwcmVjZWRpbmcgc3RlcCdzIHJhbmdlLlxuICAgICAgdGhpcy5lbnRyeVJhbmdlcy5nZXQodGhpcy5sYXN0RW1pdHRlZElkKSEuZW5kSWR4ID0gaWR4ICsgMTtcbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgT3JkZXJlZCBhY2Nlc3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIEFsbCBlbnRyaWVzIGluIGluc2VydGlvbiBvcmRlci4gUmV0dXJucyBhIHNoYWxsb3cgY29weSDigJQgZW50cnkgb2JqZWN0cyBhcmUgc2hhcmVkLiAqL1xuICBnZXRBbGwoKTogVFtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuZW50cmllc107XG4gIH1cblxuICAvKiogTnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIHNlcXVlbmNlLiAqL1xuICBnZXQgc2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMubGVuZ3RoO1xuICB9XG5cbiAgLyoqIFplcm8tY29weSBpdGVyYXRpb24uIEF2b2lkcyB0aGUgYGdldEFsbCgpYCBzcHJlYWQgd2hlbiB0aGUgY2FsbGVyIGp1c3QgbmVlZHNcbiAgICogIHRvIHdhbGsgdGhlIGVudHJpZXMgKGUuZy4sIGFnZ3JlZ2F0aW5nLCByZW5kZXJpbmcpLiAqL1xuICBmb3JFYWNoKGZuOiAoZW50cnk6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZW50cmllcykgZm4oZW50cnkpO1xuICB9XG5cbiAgLy8g4pSA4pSAIEtleWVkIGFjY2VzcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogTygxKSBsb29rdXA6IGFsbCBlbnRyaWVzIGZvciBhIHNwZWNpZmljIGV4ZWN1dGlvbiBzdGVwLiBSZXR1cm5zIGEgY29weS4gKi9cbiAgZ2V0QnlLZXkocnVudGltZVN0YWdlSWQ6IHN0cmluZyk6IFRbXSB7XG4gICAgcmV0dXJuIFsuLi4odGhpcy5ieVJ1bnRpbWVTdGFnZUlkLmdldChydW50aW1lU3RhZ2VJZCkgPz8gW10pXTtcbiAgfVxuXG4gIC8qKiBOdW1iZXIgb2YgZGlzdGluY3QgZXhlY3V0aW9uIHN0ZXBzIHRoYXQgaGF2ZSBhdCBsZWFzdCBvbmUgZW50cnkuICovXG4gIGdldCBrZXlDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ5UnVudGltZVN0YWdlSWQuc2l6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmUtYnVpbHQgcmFuZ2UgaW5kZXg6IHJ1bnRpbWVTdGFnZUlkIOKGkiBoYWxmLW9wZW4gYFtmaXJzdElkeCwgZW5kSWR4KWBcbiAgICogcmFuZ2UgaW4gdGhlIGVudHJpZXMgYXJyYXkuIE1haW50YWluZWQgZHVyaW5nIGBwdXNoKClgIOKAlCBubyByZWJ1aWxkXG4gICAqIG5lZWRlZC4gVXNlIGZvciBPKDEpIHBlci1zdGVwIGxvb2t1cHMgZHVyaW5nIHRpbWUtdHJhdmVsIHNjcnViYmluZy5cbiAgICogYGVuZElkeGAgaW5jbHVkZXMgdHJhaWxpbmcga2V5bGVzcyBlbnRyaWVzIChzdHJ1Y3R1cmFsIG1hcmtlcnNcbiAgICogZm9sbG93aW5nIGEgc3RlcCkuXG4gICAqL1xuICBnZXRFbnRyeVJhbmdlcygpOiBSZWFkb25seU1hcDxzdHJpbmcsIHsgcmVhZG9ubHkgZmlyc3RJZHg6IG51bWJlcjsgcmVhZG9ubHkgZW5kSWR4OiBudW1iZXIgfT4ge1xuICAgIHJldHVybiB0aGlzLmVudHJ5UmFuZ2VzO1xuICB9XG5cbiAgLy8g4pSA4pSAIEFnZ3JlZ2F0ZSAocmVkdWNlIGFsbCBlbnRyaWVzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogUmVkdWNlIEFMTCBlbnRyaWVzIHRvIGEgc2luZ2xlIHZhbHVlLiBGb3IgZGFzaGJvYXJkcywgdG90YWxzLCBzdW1tYXJpZXMuICovXG4gIGFnZ3JlZ2F0ZTxSPihmbjogKGFjYzogUiwgZW50cnk6IFQpID0+IFIsIGluaXRpYWw6IFIpOiBSIHtcbiAgICBsZXQgYWNjID0gaW5pdGlhbDtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZW50cmllcykgYWNjID0gZm4oYWNjLCBlbnRyeSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIC8vIOKUgOKUgCBBY2N1bXVsYXRlIChwcm9ncmVzc2l2ZSByZWR1Y2UpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBSZWR1Y2UgZW50cmllcywgb3B0aW9uYWxseSBmaWx0ZXJlZCBieSBhIHNldCBvZiBgcnVudGltZVN0YWdlSWRzYC5cbiAgICogRm9yIHRpbWUtdHJhdmVsIHByb2dyZXNzaXZlIHZpZXc6IHBhc3MgdGhlIHJ1bnRpbWVTdGFnZUlkcyB2aXNpYmxlXG4gICAqIGF0IHRoZSBjdXJyZW50IHNsaWRlciBwb3NpdGlvbi4gRW50cmllcyB3aXRob3V0IGBydW50aW1lU3RhZ2VJZGBcbiAgICogKHN0cnVjdHVyYWwgbWFya2VycykgYXJlIGV4Y2x1ZGVkIHdoZW4ga2V5cyBhcmUgcHJvdmlkZWQuIFdpdGhvdXRcbiAgICoga2V5cywgcmVkdWNlcyBhbGwgZW50cmllcyAoc2FtZSBhcyBgYWdncmVnYXRlYCkuXG4gICAqL1xuICBhY2N1bXVsYXRlPFI+KGZuOiAoYWNjOiBSLCBlbnRyeTogVCkgPT4gUiwgaW5pdGlhbDogUiwga2V5cz86IFJlYWRvbmx5U2V0PHN0cmluZz4pOiBSIHtcbiAgICBsZXQgYWNjID0gaW5pdGlhbDtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZW50cmllcykge1xuICAgICAgaWYgKGtleXMpIHtcbiAgICAgICAgaWYgKCFlbnRyeS5ydW50aW1lU3RhZ2VJZCB8fCAha2V5cy5oYXMoZW50cnkucnVudGltZVN0YWdlSWQpKSBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGFjYyA9IGZuKGFjYywgZW50cnkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9XG5cbiAgLy8g4pSA4pSAIFRpbWUtdHJhdmVsIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBQcm9ncmVzc2l2ZSByZXZlYWw6IGVudHJpZXMgd2hvc2UgYHJ1bnRpbWVTdGFnZUlkYCBpcyBpbiB0aGUgdmlzaWJsZVxuICAgKiBzZXQuIFByZXNlcnZlcyBpbnNlcnRpb24gb3JkZXIuIEVudHJpZXMgd2l0aG91dCBgcnVudGltZVN0YWdlSWRgXG4gICAqIChzdHJ1Y3R1cmFsIG1hcmtlcnMpIGFyZSBidWZmZXJlZCBhbmQgaW5jbHVkZWQgb25seSB3aGVuIHN1cnJvdW5kZWRcbiAgICogYnkgdmlzaWJsZSBzdGVwcyBvbiBib3RoIHNpZGVzIOKAlCB0cmFpbGluZyBtYXJrZXJzIGFmdGVyIHRoZSBsYXN0XG4gICAqIHZpc2libGUgc3RlcCBhcmUgZGlzY2FyZGVkLlxuICAgKi9cbiAgZ2V0RW50cmllc1VwVG8odmlzaWJsZUlkczogUmVhZG9ubHlTZXQ8c3RyaW5nPik6IFRbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcbiAgICBsZXQgcGVuZGluZ01hcmtlcnM6IFRbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgdGhpcy5lbnRyaWVzKSB7XG4gICAgICBjb25zdCBpZCA9IGVudHJ5LnJ1bnRpbWVTdGFnZUlkO1xuICAgICAgaWYgKCFpZCkge1xuICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIHBlbmRpbmdNYXJrZXJzLnB1c2goZW50cnkpO1xuICAgICAgfSBlbHNlIGlmICh2aXNpYmxlSWRzLmhhcyhpZCkpIHtcbiAgICAgICAgaWYgKHBlbmRpbmdNYXJrZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXN1bHQucHVzaCguLi5wZW5kaW5nTWFya2Vycyk7XG4gICAgICAgICAgcGVuZGluZ01hcmtlcnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChlbnRyeSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyDilIDilIAgTGlmZWN5Y2xlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBDbGVhciBhbGwgc3RvcmVkIGRhdGEuIFJlY29yZGVycyB0eXBpY2FsbHkgY2FsbCB0aGlzIGZyb20gdGhlaXIgb3duXG4gICAqICBgY2xlYXIoKWAgbWV0aG9kLCB3aGljaCB0aGUgZXhlY3V0b3IgaW52b2tlcyBiZWZvcmUgZWFjaCBydW4uICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuYnlSdW50aW1lU3RhZ2VJZC5jbGVhcigpO1xuICAgIHRoaXMuZW50cnlSYW5nZXMuY2xlYXIoKTtcbiAgICB0aGlzLmxhc3RFbWl0dGVkSWQgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==