mnemonica 1.0.7 → 1.0.8
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/.ai/TACTICA-DEEP-DIVE.md +2 -2
- package/.ai/TACTICA-RULES.md +1 -1
- package/AGENTS.md +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.js +1 -1
- package/build/types/index.d.ts +1 -1
- package/build/types/index.js +1 -1
- package/docs/typed-lookup.md +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -1
- package/src/types/index.ts +1 -1
package/.ai/TACTICA-DEEP-DIVE.md
CHANGED
|
@@ -229,7 +229,7 @@ declare module 'mnemonica' {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
const RequestData = lookup('RequestData'); // typed constructor
|
|
232
|
+
const RequestData = lookup('RequestData'); // typed constructor
|
|
233
233
|
```
|
|
234
234
|
|
|
235
235
|
---
|
|
@@ -286,7 +286,7 @@ Because without the augmentation, `TypeRegistry` is empty and `lookup()` falls b
|
|
|
286
286
|
export function lookup<const K extends keyof TypeRegistry>(
|
|
287
287
|
this: unknown,
|
|
288
288
|
TypeNestedPath: K
|
|
289
|
-
): TypeRegistry[K]
|
|
289
|
+
): TypeRegistry[K];
|
|
290
290
|
export function lookup(
|
|
291
291
|
this: unknown,
|
|
292
292
|
TypeNestedPath: string
|
package/.ai/TACTICA-RULES.md
CHANGED
|
@@ -39,7 +39,7 @@ That bypasses the type system. The right answer is to teach TypeScript what the
|
|
|
39
39
|
|
|
40
40
|
## The mechanism in one paragraph
|
|
41
41
|
|
|
42
|
-
`mnemonica` exports an empty `interface TypeRegistry {}`. `lookup<const K extends keyof TypeRegistry>(path: K)` returns `TypeRegistry[K]
|
|
42
|
+
`mnemonica` exports an empty `interface TypeRegistry {}`. `lookup<const K extends keyof TypeRegistry>(path: K)` returns `TypeRegistry[K]`. So a `declare module 'mnemonica' { interface TypeRegistry { ... } }` augmentation in your project — by hand, or generated by tactica — gives `lookup('Path.To.Type')` a fully typed return value. Zero casts.
|
|
43
43
|
|
|
44
44
|
After augmentation, TypeScript knows:
|
|
45
45
|
- The constructor arguments for each type
|
package/AGENTS.md
CHANGED
|
@@ -105,7 +105,7 @@ export interface TypeRegistry {
|
|
|
105
105
|
export function lookup<const K extends keyof TypeRegistry>(
|
|
106
106
|
this: unknown,
|
|
107
107
|
TypeNestedPath: K
|
|
108
|
-
): TypeRegistry[K]
|
|
108
|
+
): TypeRegistry[K];
|
|
109
109
|
export function lookup(
|
|
110
110
|
this: unknown,
|
|
111
111
|
TypeNestedPath: string
|
package/build/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface TypeRegistry {
|
|
|
6
6
|
export { getProps, setProps } from './api/types/Props';
|
|
7
7
|
export declare const defaultTypes: import("./types").TypesCollection;
|
|
8
8
|
export declare const define: TypeAbsorber;
|
|
9
|
-
export declare function lookup<const K extends keyof TypeRegistry>(this: unknown, TypeNestedPath: K): TypeRegistry[K]
|
|
9
|
+
export declare function lookup<const K extends keyof TypeRegistry>(this: unknown, TypeNestedPath: K): TypeRegistry[K];
|
|
10
10
|
export declare function lookup(this: unknown, TypeNestedPath: string): TypeClass | undefined;
|
|
11
11
|
export declare const apply: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Ctor: IDEF<T>, args?: unknown[]) => InstanceResult<Merge<E, T>>;
|
|
12
12
|
export declare const call: <E extends object, T extends object, S extends Proto<E, T>>(entity: E, Ctor: IDEF<T>, ...args: unknown[]) => InstanceResult<Merge<E, T>>;
|
package/build/index.js
CHANGED
|
@@ -148,4 +148,4 @@ var utils_1 = require("./utils");
|
|
|
148
148
|
Object.defineProperty(exports, "utils", { enumerable: true, get: function () { return utils_1.utils; } });
|
|
149
149
|
var utils_2 = require("./utils");
|
|
150
150
|
Object.defineProperty(exports, "defineStackCleaner", { enumerable: true, get: function () { return utils_2.defineStackCleaner; } });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0diLHdCQVFDO0FBcEdELDhEQUEyQztBQUUxQyxlQUFPLEdBRUosZUFBVSxVQURiLDZCQUFxQixHQUNsQixlQUFVLHVCQUFDO0FBa0NmLDJDQUUyQjtBQUQxQixpR0FBQSxRQUFRLE9BQUE7QUFBRSxpR0FBQSxRQUFRLE9BQUE7QUFHbkIsMkNBQXdDO0FBQ3hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHdEQUEwQztBQUMxQywrQ0FBNEM7QUFFNUMsTUFBTSxFQUFFLDBCQUEwQixFQUFFLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUM7QUFFL0Qsc0VBQStDO0FBQy9DLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxHQUFHLG1CQUFVLENBQUM7QUFFdEMsb0JBQVksR0FBTSx5QkFBVyxjQUFDO0FBRTdDLFNBQVMsU0FBUyxDQUFDLE9BQW9EO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxpQkFBUyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUM7SUFDNUQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBSVksUUFBQSxNQUFNLEdBQUcsVUFTckIsUUFBc0QsRUFFdEQsZ0JBQWtGLEVBQ2xGLE1BQTJCO0lBRTNCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLG9CQUFZLENBQUM7SUFFcEUsTUFBTSxZQUFZLEdBQUksS0FBa0M7U0FDdEQsTUFBTSxDQUNOLFFBQWtCLEVBQ2xCLGdCQUEyQixFQUMzQixNQUFNLENBQ1UsQ0FBQztJQUNuQixPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFpQixDQUFD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Wiw2QkFBcUIsR0FRbEIsaUJBQVMsd0JBUFosb0NBQTRCLEdBT3pCLGlCQUFTLCtCQU5aLG9CQUFZLEdBTVQsaUJBQVMsZUFMWixpQkFBUyxHQUtOLGlCQUFTLFlBSlosaUJBQVMsR0FJTixpQkFBUyxZQUhaLHlCQUFpQixHQUdkLGlCQUFTLG9CQUZaLHFCQUFhLEdBRVYsaUJBQVMsZUFBQztBQUdELFFBQUEscUJBQXFCLEdBQ2pDLGlCQUFTLENBQUMscUJBQXNELENBQUM7QUFHckQsUUFBQSxpQkFBaUIsR0FBSSxvQkFBa0QsQ0FBQyxRQUFRLENBQUM7QUFDakYsUUFBQSxNQUFNLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUM7QUFFOUMsaUNBQWdDO0FBQXZCLDhGQUFBLEtBQUssT0FBQTtBQUNkLGlDQUE2QztBQUFwQywyR0FBQSxrQkFBa0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7XG5cdENyZWF0ZVR5cGVzQ29sbGVjdGlvbkZ1bmN0aW9uLFxuXHRJREVGLFxuXHRob29rLFxuXHRob29rc1R5cGVzLFxuXHRjb25zdHJ1Y3Rvck9wdGlvbnMsXG5cdFByb3RvLFxuXHRJRGVmaW5pdG9ySW5zdGFuY2UsXG5cdENvbnN0cnVjdG9yLFxuXHREZWNvcmF0ZWRDbGFzcyxcblx0VHlwZUNsYXNzLFxuXHRUeXBlQWJzb3JiZXIsXG5cdE1uZW1vbmljYU1vZHVsZSxcblx0SW5zdGFuY2VSZXN1bHQsXG5cdE1lcmdlXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuL2FwaS91dGlscy9pbmRleCc7XG5leHBvcnQgY29uc3Qge1xuXHRpc0NsYXNzLFxuXHRmaW5kU3ViVHlwZUZyb21QYXJlbnQsXG59ID0gVHlwZXNVdGlscztcblxuZXhwb3J0IHR5cGUge1xuXHRJREVGLCBUeXBlQ29uc3RydWN0b3IsIFR5cGVDb25zdHJ1Y3RvckJhc2UsXG5cdEluc3RhbmNlT2ZUeXBlUmVnaXN0cnksIExpdGVyYWxLZXlzT2YsIFBhcmVudFBhdGgsIFBhdGhPZkluc3RhbmNlLFxuXHRBbGxQYXJlbnRQcmVmaXhlcywgUGFyZW50UGF0aE9mSW5zdGFuY2UsXG5cdF9JbnRlcm5hbF9UQ18sIFByb3RvLCBQcm90b0ZsYXQsXG5cdGhvb2tzT3B0cywgaG9vaywgaG9va3NUeXBlcywgVHlwZXNDb2xsZWN0aW9uXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUtc2FmZSByZWdpc3RyeSBmb3IgbW5lbW9uaWNhIHR5cGVzLlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIHN0YXJ0cyBlbXB0eS4gQXBwbGljYXRpb24gY29kZSBvciBgQG1uZW1vbmljYS90YWN0aWNhYFxuICogYXVnbWVudHMgaXQgdGhyb3VnaCBUeXBlU2NyaXB0IG1vZHVsZSBkZWNsYXJhdGlvbiBtZXJnaW5nOlxuICpcbiAqIGBgYHRzXG4gKiBkZWNsYXJlIG1vZHVsZSAnbW5lbW9uaWNhJyB7XG4gKiAgIGludGVyZmFjZSBUeXBlUmVnaXN0cnkge1xuICogICAgICdNeVR5cGUnOiBUeXBlQ29uc3RydWN0b3I8TXlUeXBlSW5zdGFuY2U+O1xuICogICAgICdNeVR5cGUuU3ViVHlwZSc6IFR5cGVDb25zdHJ1Y3RvcjxTdWJUeXBlSW5zdGFuY2U+O1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBPbmNlIGF1Z21lbnRlZCwgYGxvb2t1cCgnTXlUeXBlJylgIGFuZCBgdXRpbHMucGFyZW50KGluc3RhbmNlLCAnTXlUeXBlJylgXG4gKiByZXNvbHZlIGtleXMgYWdhaW5zdCB0aGlzIHJlZ2lzdHJ5LiBVbmF1Z21lbnRlZCBrZXlzIGZhbGwgYmFjayB0byB0aGUgYnJvYWRcbiAqIGBUeXBlQ2xhc3MgfCB1bmRlZmluZWRgIHJldHVybiB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVSZWdpc3RyeSB7XG5cdC8vIEludGVudGlvbmFsbHkgZW1wdHkuIEF1Z21lbnQgdGhpcyBpbnRlcmZhY2UgdmlhIGRlY2xhcmF0aW9uIG1lcmdpbmdcblx0Ly8gKGhhbmQtd3JpdHRlbiBvciBnZW5lcmF0ZWQgYnkgQG1uZW1vbmljYS90YWN0aWNhKSB0byBlbmFibGUgdHlwZWRcblx0Ly8gdXRpbGl0aWVzIGxpa2UgbG9va3VwKCkgYW5kIHBhcmVudCgpLlxufVxuZXhwb3J0IHtcblx0Z2V0UHJvcHMsIHNldFByb3BzIFxufSBmcm9tICcuL2FwaS90eXBlcy9Qcm9wcyc7XG5cbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IHsgb2RwIH0gPSBjb25zdGFudHM7XG5cbmltcG9ydCAqIGFzIGVycm9yc0FwaSBmcm9tICcuL2FwaS9lcnJvcnMnO1xuaW1wb3J0IHsgZGVzY3JpcHRvcnMgfSBmcm9tICcuL2Rlc2NyaXB0b3JzJztcblxuY29uc3QgeyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiB9ID0gZGVzY3JpcHRvcnMuRXJyb3JzVHlwZXM7XG5cbmltcG9ydCBtbmVtb3N5bmVzIGZyb20gJy4vYXBpL3R5cGVzL01uZW1vc3luZSc7XG5jb25zdCB7IHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uIH0gPSBtbmVtb3N5bmVzO1xuXG5leHBvcnQgY29uc3QgeyBkZWZhdWx0VHlwZXMsIH0gPSBkZXNjcmlwdG9ycztcblxuZnVuY3Rpb24gY2hlY2tUaGlzKHBvaW50ZXI6IHR5cGVvZiBtbmVtb25pY2EgfCB0eXBlb2YgZXhwb3J0cyB8IHVua25vd24pOiBib29sZWFuIHtcblx0Y29uc3QgcmVzdWx0ID0gcG9pbnRlciA9PT0gbW5lbW9uaWNhIHx8IHBvaW50ZXIgPT09IGV4cG9ydHM7XG5cdHJldHVybiByZXN1bHQ7XG59XG5cblxuLy8gRGVmaW5lIGZ1bmN0aW9uIHVzaW5nIFR5cGVBYnNvcmJlciBpbnRlcmZhY2Ugd2l0aCBwcm9wZXIgdHlwZSBjYXN0aW5nXG5leHBvcnQgY29uc3QgZGVmaW5lID0gZnVuY3Rpb24gPFxuXHRUIGV4dGVuZHMgb2JqZWN0LFxuXHRQIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuXHROIGV4dGVuZHMgUHJvdG88UCwgVD4gPSBQcm90bzxQLCBUPixcblxuXHQvLyBoZXJlIElEZWZpbml0b3JJbnN0YW5jZSBpcyBhIENPTlNUUlVDVE9SICEhIVxuXHRSIGV4dGVuZHMgSURlZmluaXRvckluc3RhbmNlPE4+ID0gSURlZmluaXRvckluc3RhbmNlPE4+XG4+KFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmFtZT86IHN0cmluZyB8IENhbGxhYmxlRnVuY3Rpb24gfCBOZXdhYmxlRnVuY3Rpb24sXG5cdC8vIEFsbG93IGJvdGggc3RyaWN0IElERUYgYW5kIG1vcmUgZmxleGlibGUgZnVuY3Rpb24gc2lnbmF0dXJlc1xuXHRjb25zdHJ1Y3RIYW5kbGVyPzogSURFRjxUPiB8IENhbGxhYmxlRnVuY3Rpb24gfCBOZXdhYmxlRnVuY3Rpb24gfCBvYmplY3QgfCBib29sZWFuLFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnMsXG4pOiBSIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXModGhpcykgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0Ly8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGJlY2F1c2UgVHlwZXNDb2xsZWN0aW9uUHJveHkgaXMgYSBQcm94eVxuXHRjb25zdCBkZWZpbmVSZXN1bHQgPSAodHlwZXMgYXMgeyBkZWZpbmU6IFR5cGVBYnNvcmJlciB9KVxuXHRcdC5kZWZpbmUoXG5cdFx0XHRUeXBlTmFtZSBhcyBzdHJpbmcsXG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyIGFzIElERUY8VD4sXG5cdFx0XHRjb25maWdcblx0XHQpIGFzIHVua25vd24gYXMgUjtcblx0cmV0dXJuIGRlZmluZVJlc3VsdDtcbn0gYXMgVHlwZUFic29yYmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9va3VwPGNvbnN0IEsgZXh0ZW5kcyBrZXlvZiBUeXBlUmVnaXN0cnk+KFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmVzdGVkUGF0aDogS1xuKTogVHlwZVJlZ2lzdHJ5W0tdIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cCh0aGlzOiB1bmtub3duLCBUeXBlTmVzdGVkUGF0aDogc3RyaW5nKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cChcblx0dGhpczogdW5rbm93bixcblx0VHlwZU5lc3RlZFBhdGg6IHN0cmluZ1xuKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXModGhpcykgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0Ly8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGJlY2F1c2UgVHlwZXNDb2xsZWN0aW9uUHJveHkgaXMgYSBQcm94eVxuXHRjb25zdCBsb29rdXBSZXN1bHQgPSAodHlwZXMgYXMgeyBsb29rdXA6IChwYXRoOiBzdHJpbmcpID0+IFR5cGVDbGFzcyB8IHVuZGVmaW5lZCB9KS5sb29rdXAoVHlwZU5lc3RlZFBhdGgpO1xuXHRyZXR1cm4gbG9va3VwUmVzdWx0O1xufVxuXG5cbmNvbnN0ICRydW4gPSBmdW5jdGlvbiA8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdCwgUyBleHRlbmRzIFByb3RvPEUsIFQ+Pihcblx0ZW50aXR5OiBFLFxuXHRDdG9yOiBJREVGPFQ+LFxuXHRhcmdzOiB1bmtub3duW11cbik6IHtcblx0XHRba2V5IGluIGtleW9mIFNdOiBTW2tleV1cblx0fSB7XG5cblx0Ly8gZGVidWdnZXI7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBleHRyYWN0aW5nIFR5cGVOYW1lIGZyb20gZnVuY3Rpb25cblx0Y29uc3QgeyBUeXBlTmFtZSB9ID0gQ3Rvcjtcblx0Y29uc3QgQ3N0ciA9IHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uKFxuXHRcdFR5cGVOYW1lLFxuXHRcdGVudGl0eVxuXHQpIGFzIHVua25vd24gYXMgeyBuZXcoLi4uYXJzOiB1bmtub3duW10pOiB1bmtub3duIH07XG5cdC8vIFRPRE86IGNoZWNrIGxpbmVzIGJlbG93IGFuZCBpZiBDb25zdHJ1Y3RvciBpcyBub3QgbW5lbW9uaXplZCAuLi5cblx0aWYgKENzdHIgPT09IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IEVycm9yQ3RvciA9IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOIGFzIHVua25vd24gYXMgbmV3IChtc2c6IHN0cmluZykgPT4gRXJyb3I7XG5cdFx0dGhyb3cgbmV3IEVycm9yQ3RvcihgWyAke1R5cGVOYW1lfSBdIGlzIG5vdCBkZWZpbmVkIGFzIGEgVHlwZSBDb25zdHJ1Y3RvciBvbiB1c2VkIGluc3RhbmNlYCk7XG5cdH1cblx0Y29uc3QgcnVuUmVzdWx0ID0gbmV3IENzdHIoLi4uYXJncyk7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSByZXR1cm5pbmcgcmVzdWx0IGFzIG1lcmdlZCBwcm90byB0eXBlXG5cdHJldHVybiBydW5SZXN1bHQ7XG59O1xuXG4vLyBUT0RPOiBhcHBseSBpbnN0YW5jZSAudG8gdHlwZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBhcHBseSA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+KFxuXHRlbnRpdHk6IEUsXG5cdEN0b3I6IElERUY8VD4sXG5cdGFyZ3M6IHVua25vd25bXSA9IFtdXG4pOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj4ge1xuXHRjb25zdCBydW5SZXN1bHQgPSAkcnVuPEUsIFQsIFM+KFxuXHRcdGVudGl0eSxcblx0XHRDdG9yLFxuXHRcdGFyZ3Ncblx0KTtcblx0Y29uc3QgcmVzdWx0ID0gcnVuUmVzdWx0IGFzIHVua25vd24gYXMgSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVE9ETzogY2FsbCB0eXBlIC5ieSBpbnN0YW5jZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBjYWxsID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0Li4uYXJnczogdW5rbm93bltdXG4pOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj4ge1xuXHRjb25zdCBydW5SZXN1bHQgPSAkcnVuPEUsIFQsIFM+KFxuXHRcdGVudGl0eSxcblx0XHRDdG9yLFxuXHRcdGFyZ3Ncblx0KTtcblx0Y29uc3QgcmVzdWx0ID0gcnVuUmVzdWx0IGFzIHVua25vd24gYXMgSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVE9ETzogYmluZCB0eXBlIC53aXRoIGluc3RhbmNlIOKGkiAoLi4uYXJncylcbmV4cG9ydCBjb25zdCBiaW5kID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPlxuKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+IHtcblx0Y29uc3QgcmVzdWx0ID0gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRcdGNvbnN0IHJ1blJlc3VsdCA9ICRydW48RSwgVCwgUz4oXG5cdFx0XHRlbnRpdHksXG5cdFx0XHRDdG9yLFxuXHRcdFx0YXJnc1xuXHRcdCk7XG5cdFx0Y29uc3QgdHlwZWRSZXN1bHQgPSBydW5SZXN1bHQgYXMgdW5rbm93biBhcyBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj47XG5cdFx0cmV0dXJuIHR5cGVkUmVzdWx0O1xuXHR9O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY29yYXRlID0gZnVuY3Rpb24gPFxuXHRUIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0PiB8IGNvbnN0cnVjdG9yT3B0aW9ucyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPihcblx0dGFyZ2V0PzogVCxcblx0Y29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zXG4pOiA8VSBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4+KGNzdHI6IFUpID0+IERlY29yYXRlZENsYXNzPFU+IHtcblx0Y29uc3Qgb3B0cyA9IChjb25maWcgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiAhKHRhcmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSlcblx0XHQ/IHRhcmdldCBhcyBjb25zdHJ1Y3Rvck9wdGlvbnNcblx0XHQ6IGNvbmZpZztcblxuXHRjb25zdCBwYXJlbnRUeXBlID0gKHRhcmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uKVxuXHRcdD8gdGFyZ2V0IGFzIENvbnN0cnVjdG9yPG9iamVjdD5cblx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiA8VSBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4+KGNzdHI6IFUpOiBEZWNvcmF0ZWRDbGFzczxVPiB7XG5cdFx0Y29uc3QgeyBuYW1lIH0gPSBjc3RyO1xuXHRcdGlmIChwYXJlbnRUeXBlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IGRlY29yYXRvclJlc3VsdCA9IGRlZmluZShcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0Y3N0ciBhcyBJREVGPG9iamVjdD4sXG5cdFx0XHRcdG9wdHNcblx0XHRcdCkgYXMgdW5rbm93biBhcyBEZWNvcmF0ZWRDbGFzczxVPjtcblx0XHRcdHJldHVybiBkZWNvcmF0b3JSZXN1bHQ7XG5cdFx0fVxuXHRcdGNvbnN0IHBhcmVudCA9IHBhcmVudFR5cGUgYXMgdW5rbm93biBhcyB7XG5cdFx0XHRkZWZpbmU6IFR5cGVBYnNvcmJlcjtcblx0XHR9O1xuXHRcdGNvbnN0IGRlZmluZVJlc3VsdCA9IHBhcmVudC5kZWZpbmUoXG5cdFx0XHRuYW1lLFxuXHRcdFx0Y3N0ciBhcyBJREVGPG9iamVjdD4sXG5cdFx0XHRvcHRzXG5cdFx0KSBhcyB1bmtub3duIGFzIERlY29yYXRlZENsYXNzPFU+O1xuXHRcdHJldHVybiBkZWZpbmVSZXN1bHQ7XG5cdH07XG5cdHJldHVybiBkZWNvcmF0b3I7XG59O1xuXG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlckhvb2sgPSBmdW5jdGlvbiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFQ+Pihcblx0Q3RvcjogRGVjb3JhdGVkQ2xhc3M8VD4sXG5cdGhvb2tUeXBlOiBob29rc1R5cGVzLFxuXHRjYjogaG9va1xuKTogdm9pZCB7XG5cdEN0b3IucmVnaXN0ZXJIb29rKFxuXHRcdGhvb2tUeXBlLFxuXHRcdGNiXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgbW5lbW9uaWNhID0gT2JqZWN0LmVudHJpZXMoe1xuXG5cdGRlZmluZSxcblx0bG9va3VwLFxuXHRhcHBseSxcblx0Y2FsbCxcblx0YmluZCxcblx0ZGVjb3JhdGUsXG5cdHJlZ2lzdGVySG9vayxcblxuXHQuLi5kZXNjcmlwdG9ycyxcblxuXHQuLi5lcnJvcnNBcGksXG5cdC4uLmNvbnN0YW50cyxcblxufSkucmVkdWNlKFxuXHQoYWNjOiB7IFtpbmRleDogc3RyaW5nXTogdW5rbm93biB9LCBlbnRyeTogW3N0cmluZywgdW5rbm93bl0pID0+IHtcblx0XHRjb25zdCBbIG5hbWUsIGNvZGUgXSA9IGVudHJ5O1xuXHRcdG9kcChcblx0XHRcdGFjYyxcblx0XHRcdG5hbWUsXG5cdFx0XHR7XG5cdFx0XHRcdGdldCgpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29kZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0XHRcdH1cblx0XHQpO1xuXHRcdHJldHVybiBhY2M7XG5cdH0sXG5cdHt9XG4pIGFzIE1uZW1vbmljYU1vZHVsZTtcblxuaW1wb3J0ICogYXMgYXBpIGZyb20gJy4vYXBpJztcblxuZXhwb3J0IGNvbnN0IHtcblx0ZGVmaW5lOiBfZGVmaW5lLFxuXHRsb29rdXA6IF9sb29rdXBcbn0gPSBhcGkudHlwZXM7XG5cbmV4cG9ydCBjb25zdCB7XG5cblx0U3ltYm9sUGFyZW50VHlwZSxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLFxuXHRTeW1ib2xEZWZhdWx0VHlwZXNDb2xsZWN0aW9uLFxuXHRTeW1ib2xDb25maWcsXG5cdE1ORU1PTklDQSxcblx0TU5FTU9TWU5FLFxuXHRUWVBFX1RJVExFX1BSRUZJWCxcblx0RXJyb3JNZXNzYWdlcyxcblxufSA9IG1uZW1vbmljYTtcblxuLy8gRXhwb3J0IGNyZWF0ZVR5cGVzQ29sbGVjdGlvbiB3aXRoIHByb3BlciB0eXBlXG5leHBvcnQgY29uc3QgY3JlYXRlVHlwZXNDb2xsZWN0aW9uOiBDcmVhdGVUeXBlc0NvbGxlY3Rpb25GdW5jdGlvbiA9XG5cdG1uZW1vbmljYS5jcmVhdGVUeXBlc0NvbGxlY3Rpb24gYXMgQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb247XG5cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb2xsZWN0aW9uID0gKGRlZmF1bHRUeXBlcyBhcyB7IHN1YnR5cGVzOiBNYXA8c3RyaW5nLCBvYmplY3Q+IH0pLnN1YnR5cGVzO1xuZXhwb3J0IGNvbnN0IGVycm9ycyA9IGRlc2NyaXB0b3JzLkVycm9yc1R5cGVzO1xuXG5leHBvcnQgeyB1dGlscyB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgZGVmaW5lU3RhY2tDbGVhbmVyIH0gZnJvbSAnLi91dGlscyc7XG4vKiBlc2xpbnQtZW5hYmxlIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0diLHdCQVFDO0FBcEdELDhEQUEyQztBQUUxQyxlQUFPLEdBRUosZUFBVSxVQURiLDZCQUFxQixHQUNsQixlQUFVLHVCQUFDO0FBa0NmLDJDQUUyQjtBQUQxQixpR0FBQSxRQUFRLE9BQUE7QUFBRSxpR0FBQSxRQUFRLE9BQUE7QUFHbkIsMkNBQXdDO0FBQ3hDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHdEQUEwQztBQUMxQywrQ0FBNEM7QUFFNUMsTUFBTSxFQUFFLDBCQUEwQixFQUFFLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUM7QUFFL0Qsc0VBQStDO0FBQy9DLE1BQU0sRUFBRSw2QkFBNkIsRUFBRSxHQUFHLG1CQUFVLENBQUM7QUFFdEMsb0JBQVksR0FBTSx5QkFBVyxjQUFDO0FBRTdDLFNBQVMsU0FBUyxDQUFDLE9BQW9EO0lBQ3RFLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxpQkFBUyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUM7SUFDNUQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBSVksUUFBQSxNQUFNLEdBQUcsVUFTckIsUUFBc0QsRUFFdEQsZ0JBQWtGLEVBQ2xGLE1BQTJCO0lBRTNCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLG9CQUFZLENBQUM7SUFFcEUsTUFBTSxZQUFZLEdBQUksS0FBa0M7U0FDdEQsTUFBTSxDQUNOLFFBQWtCLEVBQ2xCLGdCQUEyQixFQUMzQixNQUFNLENBQ1UsQ0FBQztJQUNuQixPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFpQixDQUFD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Wiw2QkFBcUIsR0FRbEIsaUJBQVMsd0JBUFosb0NBQTRCLEdBT3pCLGlCQUFTLCtCQU5aLG9CQUFZLEdBTVQsaUJBQVMsZUFMWixpQkFBUyxHQUtOLGlCQUFTLFlBSlosaUJBQVMsR0FJTixpQkFBUyxZQUhaLHlCQUFpQixHQUdkLGlCQUFTLG9CQUZaLHFCQUFhLEdBRVYsaUJBQVMsZUFBQztBQUdELFFBQUEscUJBQXFCLEdBQ2pDLGlCQUFTLENBQUMscUJBQXNELENBQUM7QUFHckQsUUFBQSxpQkFBaUIsR0FBSSxvQkFBa0QsQ0FBQyxRQUFRLENBQUM7QUFDakYsUUFBQSxNQUFNLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUM7QUFFOUMsaUNBQWdDO0FBQXZCLDhGQUFBLEtBQUssT0FBQTtBQUNkLGlDQUE2QztBQUFwQywyR0FBQSxrQkFBa0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7XG5cdENyZWF0ZVR5cGVzQ29sbGVjdGlvbkZ1bmN0aW9uLFxuXHRJREVGLFxuXHRob29rLFxuXHRob29rc1R5cGVzLFxuXHRjb25zdHJ1Y3Rvck9wdGlvbnMsXG5cdFByb3RvLFxuXHRJRGVmaW5pdG9ySW5zdGFuY2UsXG5cdENvbnN0cnVjdG9yLFxuXHREZWNvcmF0ZWRDbGFzcyxcblx0VHlwZUNsYXNzLFxuXHRUeXBlQWJzb3JiZXIsXG5cdE1uZW1vbmljYU1vZHVsZSxcblx0SW5zdGFuY2VSZXN1bHQsXG5cdE1lcmdlXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuL2FwaS91dGlscy9pbmRleCc7XG5leHBvcnQgY29uc3Qge1xuXHRpc0NsYXNzLFxuXHRmaW5kU3ViVHlwZUZyb21QYXJlbnQsXG59ID0gVHlwZXNVdGlscztcblxuZXhwb3J0IHR5cGUge1xuXHRJREVGLCBUeXBlQ29uc3RydWN0b3IsIFR5cGVDb25zdHJ1Y3RvckJhc2UsXG5cdEluc3RhbmNlT2ZUeXBlUmVnaXN0cnksIExpdGVyYWxLZXlzT2YsIFBhcmVudFBhdGgsIFBhdGhPZkluc3RhbmNlLFxuXHRBbGxQYXJlbnRQcmVmaXhlcywgUGFyZW50UGF0aE9mSW5zdGFuY2UsXG5cdF9JbnRlcm5hbF9UQ18sIFByb3RvLCBQcm90b0ZsYXQsXG5cdGhvb2tzT3B0cywgaG9vaywgaG9va3NUeXBlcywgVHlwZXNDb2xsZWN0aW9uXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFR5cGUtc2FmZSByZWdpc3RyeSBmb3IgbW5lbW9uaWNhIHR5cGVzLlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIHN0YXJ0cyBlbXB0eS4gQXBwbGljYXRpb24gY29kZSBvciBgQG1uZW1vbmljYS90YWN0aWNhYFxuICogYXVnbWVudHMgaXQgdGhyb3VnaCBUeXBlU2NyaXB0IG1vZHVsZSBkZWNsYXJhdGlvbiBtZXJnaW5nOlxuICpcbiAqIGBgYHRzXG4gKiBkZWNsYXJlIG1vZHVsZSAnbW5lbW9uaWNhJyB7XG4gKiAgIGludGVyZmFjZSBUeXBlUmVnaXN0cnkge1xuICogICAgICdNeVR5cGUnOiBUeXBlQ29uc3RydWN0b3I8TXlUeXBlSW5zdGFuY2U+O1xuICogICAgICdNeVR5cGUuU3ViVHlwZSc6IFR5cGVDb25zdHJ1Y3RvcjxTdWJUeXBlSW5zdGFuY2U+O1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBPbmNlIGF1Z21lbnRlZCwgYGxvb2t1cCgnTXlUeXBlJylgIGFuZCBgdXRpbHMucGFyZW50KGluc3RhbmNlLCAnTXlUeXBlJylgXG4gKiByZXNvbHZlIGtleXMgYWdhaW5zdCB0aGlzIHJlZ2lzdHJ5LiBVbmF1Z21lbnRlZCBrZXlzIGZhbGwgYmFjayB0byB0aGUgYnJvYWRcbiAqIGBUeXBlQ2xhc3MgfCB1bmRlZmluZWRgIHJldHVybiB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVSZWdpc3RyeSB7XG5cdC8vIEludGVudGlvbmFsbHkgZW1wdHkuIEF1Z21lbnQgdGhpcyBpbnRlcmZhY2UgdmlhIGRlY2xhcmF0aW9uIG1lcmdpbmdcblx0Ly8gKGhhbmQtd3JpdHRlbiBvciBnZW5lcmF0ZWQgYnkgQG1uZW1vbmljYS90YWN0aWNhKSB0byBlbmFibGUgdHlwZWRcblx0Ly8gdXRpbGl0aWVzIGxpa2UgbG9va3VwKCkgYW5kIHBhcmVudCgpLlxufVxuZXhwb3J0IHtcblx0Z2V0UHJvcHMsIHNldFByb3BzIFxufSBmcm9tICcuL2FwaS90eXBlcy9Qcm9wcyc7XG5cbmltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IHsgb2RwIH0gPSBjb25zdGFudHM7XG5cbmltcG9ydCAqIGFzIGVycm9yc0FwaSBmcm9tICcuL2FwaS9lcnJvcnMnO1xuaW1wb3J0IHsgZGVzY3JpcHRvcnMgfSBmcm9tICcuL2Rlc2NyaXB0b3JzJztcblxuY29uc3QgeyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiB9ID0gZGVzY3JpcHRvcnMuRXJyb3JzVHlwZXM7XG5cbmltcG9ydCBtbmVtb3N5bmVzIGZyb20gJy4vYXBpL3R5cGVzL01uZW1vc3luZSc7XG5jb25zdCB7IHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uIH0gPSBtbmVtb3N5bmVzO1xuXG5leHBvcnQgY29uc3QgeyBkZWZhdWx0VHlwZXMsIH0gPSBkZXNjcmlwdG9ycztcblxuZnVuY3Rpb24gY2hlY2tUaGlzKHBvaW50ZXI6IHR5cGVvZiBtbmVtb25pY2EgfCB0eXBlb2YgZXhwb3J0cyB8IHVua25vd24pOiBib29sZWFuIHtcblx0Y29uc3QgcmVzdWx0ID0gcG9pbnRlciA9PT0gbW5lbW9uaWNhIHx8IHBvaW50ZXIgPT09IGV4cG9ydHM7XG5cdHJldHVybiByZXN1bHQ7XG59XG5cblxuLy8gRGVmaW5lIGZ1bmN0aW9uIHVzaW5nIFR5cGVBYnNvcmJlciBpbnRlcmZhY2Ugd2l0aCBwcm9wZXIgdHlwZSBjYXN0aW5nXG5leHBvcnQgY29uc3QgZGVmaW5lID0gZnVuY3Rpb24gPFxuXHRUIGV4dGVuZHMgb2JqZWN0LFxuXHRQIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0LFxuXHROIGV4dGVuZHMgUHJvdG88UCwgVD4gPSBQcm90bzxQLCBUPixcblxuXHQvLyBoZXJlIElEZWZpbml0b3JJbnN0YW5jZSBpcyBhIENPTlNUUlVDVE9SICEhIVxuXHRSIGV4dGVuZHMgSURlZmluaXRvckluc3RhbmNlPE4+ID0gSURlZmluaXRvckluc3RhbmNlPE4+XG4+KFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmFtZT86IHN0cmluZyB8IENhbGxhYmxlRnVuY3Rpb24gfCBOZXdhYmxlRnVuY3Rpb24sXG5cdC8vIEFsbG93IGJvdGggc3RyaWN0IElERUYgYW5kIG1vcmUgZmxleGlibGUgZnVuY3Rpb24gc2lnbmF0dXJlc1xuXHRjb25zdHJ1Y3RIYW5kbGVyPzogSURFRjxUPiB8IENhbGxhYmxlRnVuY3Rpb24gfCBOZXdhYmxlRnVuY3Rpb24gfCBvYmplY3QgfCBib29sZWFuLFxuXHRjb25maWc/OiBjb25zdHJ1Y3Rvck9wdGlvbnMsXG4pOiBSIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXModGhpcykgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0Ly8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGJlY2F1c2UgVHlwZXNDb2xsZWN0aW9uUHJveHkgaXMgYSBQcm94eVxuXHRjb25zdCBkZWZpbmVSZXN1bHQgPSAodHlwZXMgYXMgeyBkZWZpbmU6IFR5cGVBYnNvcmJlciB9KVxuXHRcdC5kZWZpbmUoXG5cdFx0XHRUeXBlTmFtZSBhcyBzdHJpbmcsXG5cdFx0XHRjb25zdHJ1Y3RIYW5kbGVyIGFzIElERUY8VD4sXG5cdFx0XHRjb25maWdcblx0XHQpIGFzIHVua25vd24gYXMgUjtcblx0cmV0dXJuIGRlZmluZVJlc3VsdDtcbn0gYXMgVHlwZUFic29yYmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9va3VwPGNvbnN0IEsgZXh0ZW5kcyBrZXlvZiBUeXBlUmVnaXN0cnk+KFxuXHR0aGlzOiB1bmtub3duLFxuXHRUeXBlTmVzdGVkUGF0aDogS1xuKTogVHlwZVJlZ2lzdHJ5W0tdO1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cCh0aGlzOiB1bmtub3duLCBUeXBlTmVzdGVkUGF0aDogc3RyaW5nKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIGxvb2t1cChcblx0dGhpczogdW5rbm93bixcblx0VHlwZU5lc3RlZFBhdGg6IHN0cmluZ1xuKTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgdHlwZXMgPSBjaGVja1RoaXModGhpcykgPyBkZWZhdWx0VHlwZXMgOiB0aGlzIHx8IGRlZmF1bHRUeXBlcztcblx0Ly8gVHlwZSBhc3NlcnRpb24gbmVlZGVkIGJlY2F1c2UgVHlwZXNDb2xsZWN0aW9uUHJveHkgaXMgYSBQcm94eVxuXHRjb25zdCBsb29rdXBSZXN1bHQgPSAodHlwZXMgYXMgeyBsb29rdXA6IChwYXRoOiBzdHJpbmcpID0+IFR5cGVDbGFzcyB8IHVuZGVmaW5lZCB9KS5sb29rdXAoVHlwZU5lc3RlZFBhdGgpO1xuXHRyZXR1cm4gbG9va3VwUmVzdWx0O1xufVxuXG5cbmNvbnN0ICRydW4gPSBmdW5jdGlvbiA8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdCwgUyBleHRlbmRzIFByb3RvPEUsIFQ+Pihcblx0ZW50aXR5OiBFLFxuXHRDdG9yOiBJREVGPFQ+LFxuXHRhcmdzOiB1bmtub3duW11cbik6IHtcblx0XHRba2V5IGluIGtleW9mIFNdOiBTW2tleV1cblx0fSB7XG5cblx0Ly8gZGVidWdnZXI7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBleHRyYWN0aW5nIFR5cGVOYW1lIGZyb20gZnVuY3Rpb25cblx0Y29uc3QgeyBUeXBlTmFtZSB9ID0gQ3Rvcjtcblx0Y29uc3QgQ3N0ciA9IHByZXBhcmVTdWJ0eXBlRm9yQ29uc3RydWN0aW9uKFxuXHRcdFR5cGVOYW1lLFxuXHRcdGVudGl0eVxuXHQpIGFzIHVua25vd24gYXMgeyBuZXcoLi4uYXJzOiB1bmtub3duW10pOiB1bmtub3duIH07XG5cdC8vIFRPRE86IGNoZWNrIGxpbmVzIGJlbG93IGFuZCBpZiBDb25zdHJ1Y3RvciBpcyBub3QgbW5lbW9uaXplZCAuLi5cblx0aWYgKENzdHIgPT09IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IEVycm9yQ3RvciA9IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOIGFzIHVua25vd24gYXMgbmV3IChtc2c6IHN0cmluZykgPT4gRXJyb3I7XG5cdFx0dGhyb3cgbmV3IEVycm9yQ3RvcihgWyAke1R5cGVOYW1lfSBdIGlzIG5vdCBkZWZpbmVkIGFzIGEgVHlwZSBDb25zdHJ1Y3RvciBvbiB1c2VkIGluc3RhbmNlYCk7XG5cdH1cblx0Y29uc3QgcnVuUmVzdWx0ID0gbmV3IENzdHIoLi4uYXJncyk7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSByZXR1cm5pbmcgcmVzdWx0IGFzIG1lcmdlZCBwcm90byB0eXBlXG5cdHJldHVybiBydW5SZXN1bHQ7XG59O1xuXG4vLyBUT0RPOiBhcHBseSBpbnN0YW5jZSAudG8gdHlwZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBhcHBseSA9IGZ1bmN0aW9uIDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0LCBTIGV4dGVuZHMgUHJvdG88RSwgVD4+KFxuXHRlbnRpdHk6IEUsXG5cdEN0b3I6IElERUY8VD4sXG5cdGFyZ3M6IHVua25vd25bXSA9IFtdXG4pOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj4ge1xuXHRjb25zdCBydW5SZXN1bHQgPSAkcnVuPEUsIFQsIFM+KFxuXHRcdGVudGl0eSxcblx0XHRDdG9yLFxuXHRcdGFyZ3Ncblx0KTtcblx0Y29uc3QgcmVzdWx0ID0gcnVuUmVzdWx0IGFzIHVua25vd24gYXMgSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVE9ETzogY2FsbCB0eXBlIC5ieSBpbnN0YW5jZSAud2l0aCBhcmd1bWVudHNcbmV4cG9ydCBjb25zdCBjYWxsID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPixcblx0Li4uYXJnczogdW5rbm93bltdXG4pOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj4ge1xuXHRjb25zdCBydW5SZXN1bHQgPSAkcnVuPEUsIFQsIFM+KFxuXHRcdGVudGl0eSxcblx0XHRDdG9yLFxuXHRcdGFyZ3Ncblx0KTtcblx0Y29uc3QgcmVzdWx0ID0gcnVuUmVzdWx0IGFzIHVua25vd24gYXMgSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuLy8gVE9ETzogYmluZCB0eXBlIC53aXRoIGluc3RhbmNlIOKGkiAoLi4uYXJncylcbmV4cG9ydCBjb25zdCBiaW5kID0gZnVuY3Rpb24gPEUgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3QsIFMgZXh0ZW5kcyBQcm90bzxFLCBUPj4oXG5cdGVudGl0eTogRSxcblx0Q3RvcjogSURFRjxUPlxuKTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+IHtcblx0Y29uc3QgcmVzdWx0ID0gKC4uLmFyZ3M6IHVua25vd25bXSkgPT4ge1xuXHRcdGNvbnN0IHJ1blJlc3VsdCA9ICRydW48RSwgVCwgUz4oXG5cdFx0XHRlbnRpdHksXG5cdFx0XHRDdG9yLFxuXHRcdFx0YXJnc1xuXHRcdCk7XG5cdFx0Y29uc3QgdHlwZWRSZXN1bHQgPSBydW5SZXN1bHQgYXMgdW5rbm93biBhcyBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj47XG5cdFx0cmV0dXJuIHR5cGVkUmVzdWx0O1xuXHR9O1xuXHRyZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlY29yYXRlID0gZnVuY3Rpb24gPFxuXHRUIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0PiB8IGNvbnN0cnVjdG9yT3B0aW9ucyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPihcblx0dGFyZ2V0PzogVCxcblx0Y29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zXG4pOiA8VSBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4+KGNzdHI6IFUpID0+IERlY29yYXRlZENsYXNzPFU+IHtcblx0Y29uc3Qgb3B0cyA9IChjb25maWcgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdGFyZ2V0ID09PSAnb2JqZWN0JyAmJiAhKHRhcmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSlcblx0XHQ/IHRhcmdldCBhcyBjb25zdHJ1Y3Rvck9wdGlvbnNcblx0XHQ6IGNvbmZpZztcblxuXHRjb25zdCBwYXJlbnRUeXBlID0gKHRhcmdldCBpbnN0YW5jZW9mIEZ1bmN0aW9uKVxuXHRcdD8gdGFyZ2V0IGFzIENvbnN0cnVjdG9yPG9iamVjdD5cblx0XHQ6IHVuZGVmaW5lZDtcblxuXHRjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiA8VSBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4+KGNzdHI6IFUpOiBEZWNvcmF0ZWRDbGFzczxVPiB7XG5cdFx0Y29uc3QgeyBuYW1lIH0gPSBjc3RyO1xuXHRcdGlmIChwYXJlbnRUeXBlID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGNvbnN0IGRlY29yYXRvclJlc3VsdCA9IGRlZmluZShcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0Y3N0ciBhcyBJREVGPG9iamVjdD4sXG5cdFx0XHRcdG9wdHNcblx0XHRcdCkgYXMgdW5rbm93biBhcyBEZWNvcmF0ZWRDbGFzczxVPjtcblx0XHRcdHJldHVybiBkZWNvcmF0b3JSZXN1bHQ7XG5cdFx0fVxuXHRcdGNvbnN0IHBhcmVudCA9IHBhcmVudFR5cGUgYXMgdW5rbm93biBhcyB7XG5cdFx0XHRkZWZpbmU6IFR5cGVBYnNvcmJlcjtcblx0XHR9O1xuXHRcdGNvbnN0IGRlZmluZVJlc3VsdCA9IHBhcmVudC5kZWZpbmUoXG5cdFx0XHRuYW1lLFxuXHRcdFx0Y3N0ciBhcyBJREVGPG9iamVjdD4sXG5cdFx0XHRvcHRzXG5cdFx0KSBhcyB1bmtub3duIGFzIERlY29yYXRlZENsYXNzPFU+O1xuXHRcdHJldHVybiBkZWZpbmVSZXN1bHQ7XG5cdH07XG5cdHJldHVybiBkZWNvcmF0b3I7XG59O1xuXG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlckhvb2sgPSBmdW5jdGlvbiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPFQ+Pihcblx0Q3RvcjogRGVjb3JhdGVkQ2xhc3M8VD4sXG5cdGhvb2tUeXBlOiBob29rc1R5cGVzLFxuXHRjYjogaG9va1xuKTogdm9pZCB7XG5cdEN0b3IucmVnaXN0ZXJIb29rKFxuXHRcdGhvb2tUeXBlLFxuXHRcdGNiXG5cdCk7XG59O1xuXG5leHBvcnQgY29uc3QgbW5lbW9uaWNhID0gT2JqZWN0LmVudHJpZXMoe1xuXG5cdGRlZmluZSxcblx0bG9va3VwLFxuXHRhcHBseSxcblx0Y2FsbCxcblx0YmluZCxcblx0ZGVjb3JhdGUsXG5cdHJlZ2lzdGVySG9vayxcblxuXHQuLi5kZXNjcmlwdG9ycyxcblxuXHQuLi5lcnJvcnNBcGksXG5cdC4uLmNvbnN0YW50cyxcblxufSkucmVkdWNlKFxuXHQoYWNjOiB7IFtpbmRleDogc3RyaW5nXTogdW5rbm93biB9LCBlbnRyeTogW3N0cmluZywgdW5rbm93bl0pID0+IHtcblx0XHRjb25zdCBbIG5hbWUsIGNvZGUgXSA9IGVudHJ5O1xuXHRcdG9kcChcblx0XHRcdGFjYyxcblx0XHRcdG5hbWUsXG5cdFx0XHR7XG5cdFx0XHRcdGdldCgpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29kZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0XHRcdH1cblx0XHQpO1xuXHRcdHJldHVybiBhY2M7XG5cdH0sXG5cdHt9XG4pIGFzIE1uZW1vbmljYU1vZHVsZTtcblxuaW1wb3J0ICogYXMgYXBpIGZyb20gJy4vYXBpJztcblxuZXhwb3J0IGNvbnN0IHtcblx0ZGVmaW5lOiBfZGVmaW5lLFxuXHRsb29rdXA6IF9sb29rdXBcbn0gPSBhcGkudHlwZXM7XG5cbmV4cG9ydCBjb25zdCB7XG5cblx0U3ltYm9sUGFyZW50VHlwZSxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lLFxuXHRTeW1ib2xEZWZhdWx0VHlwZXNDb2xsZWN0aW9uLFxuXHRTeW1ib2xDb25maWcsXG5cdE1ORU1PTklDQSxcblx0TU5FTU9TWU5FLFxuXHRUWVBFX1RJVExFX1BSRUZJWCxcblx0RXJyb3JNZXNzYWdlcyxcblxufSA9IG1uZW1vbmljYTtcblxuLy8gRXhwb3J0IGNyZWF0ZVR5cGVzQ29sbGVjdGlvbiB3aXRoIHByb3BlciB0eXBlXG5leHBvcnQgY29uc3QgY3JlYXRlVHlwZXNDb2xsZWN0aW9uOiBDcmVhdGVUeXBlc0NvbGxlY3Rpb25GdW5jdGlvbiA9XG5cdG1uZW1vbmljYS5jcmVhdGVUeXBlc0NvbGxlY3Rpb24gYXMgQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb247XG5cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb2xsZWN0aW9uID0gKGRlZmF1bHRUeXBlcyBhcyB7IHN1YnR5cGVzOiBNYXA8c3RyaW5nLCBvYmplY3Q+IH0pLnN1YnR5cGVzO1xuZXhwb3J0IGNvbnN0IGVycm9ycyA9IGRlc2NyaXB0b3JzLkVycm9yc1R5cGVzO1xuXG5leHBvcnQgeyB1dGlscyB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgZGVmaW5lU3RhY2tDbGVhbmVyIH0gZnJvbSAnLi91dGlscyc7XG4vKiBlc2xpbnQtZW5hYmxlIHNwYWNlLWJlZm9yZS1mdW5jdGlvbi1wYXJlbiAqL1xuIl19
|
package/build/types/index.d.ts
CHANGED
|
@@ -281,7 +281,7 @@ export interface MnemonicaModule {
|
|
|
281
281
|
define: TypeAbsorber;
|
|
282
282
|
lookup: {
|
|
283
283
|
(TypeNestedPath: string): TypeClass | undefined;
|
|
284
|
-
<const K extends keyof TypeRegistry>(TypeNestedPath: K): TypeRegistry[K]
|
|
284
|
+
<const K extends keyof TypeRegistry>(TypeNestedPath: K): TypeRegistry[K];
|
|
285
285
|
};
|
|
286
286
|
apply: ApplyFunction;
|
|
287
287
|
call: CallFunction;
|
package/build/types/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiICovXG5cbmltcG9ydCB0eXBlIHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnLi4vaW5kZXgnO1xuXG4vLyBQcm9wcyB0eXBlIGZvciBnZXRQcm9wcy9zZXRQcm9wc1xuZXhwb3J0IHR5cGUgUHJvcHNUeXBlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8vIENvcmUgdHlwZSBkZWZpbml0aW9ucyBmb3IgbW5lbW9uaWNhXG5cbi8vIEJhc2UgY29uc3RydWN0b3IgZnVuY3Rpb24gdHlwZSAtIGNhbiBiZSBhIGNsYXNzIGNvbnN0cnVjdG9yIG9yIGEgZnVuY3Rpb24uXG4vLyBBcmdzIGRlZmF1bHRzIHRvIHVua25vd25bXSBzbyBJREVGPFQ+IGlzIGJhY2t3YXJkcyBjb21wYXRpYmxlO1xuLy8gc3VwcGx5IEFyZ3MgdG8gZ2V0IHR5cGVkIGNvbnN0cnVjdG9yIHBhcmFtczogSURFRjxNeVR5cGUsIFtzdHJpbmcsIG51bWJlcl0+XG5leHBvcnQgdHlwZSBJREVGPFQsIEFyZ3MgZXh0ZW5kcyB1bmtub3duW10gPSB1bmtub3duW10+ID0geyBuZXcoKTogVCB9IHwgeyAodGhpczogVCwgLi4uYXJnczogQXJncyk6IHZvaWQgfTtcblxuLy8gRXJyb3IgbWVzc2FnZSB0eXBlcyAtIGFsbCBlcnJvciBtZXNzYWdlcyBhcmUgc3RyaW5nc1xuZXhwb3J0IHR5cGUgRXJyb3JNZXNzYWdlS2V5ID1cblx0fCAnQkFTRV9FUlJPUl9NRVNTQUdFJ1xuXHR8ICdIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTidcblx0fCAnV1JPTkdfVFlQRV9ERUZJTklUSU9OJ1xuXHR8ICdXUk9OR19JTlNUQU5DRV9JTlZPQ0FUSU9OJ1xuXHR8ICdXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTidcblx0fCAnQUxSRUFEWV9ERUNMQVJFRCdcblx0fCAnV1JPTkdfQVJHVU1FTlRTX1VTRUQnXG5cdHwgJ1dST05HX0hPT0tfVFlQRSdcblx0fCAnTUlTU0lOR19IT09LX0NBTExCQUNLJ1xuXHR8ICdNSVNTSU5HX0NBTExCQUNLX0FSR1VNRU5UJ1xuXHR8ICdPUFRJT05TX0VSUk9SJ1xuXHR8ICdXUk9OR19TVEFDS19DTEVBTkVSJztcblx0Ly8gfCAnVFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORydcblx0Ly8gfCAnRkxPV19DSEVDS0VSX1JFREVGSU5JVElPTidcblxuLy8gRXJyb3IgbWVzc2FnZXMgb2JqZWN0IHR5cGVcbmV4cG9ydCB0eXBlIEVycm9yTWVzc2FnZXMgPSBSZWNvcmQ8RXJyb3JNZXNzYWdlS2V5LCBzdHJpbmc+O1xuXG4vLyBIb29rIGNhbGxiYWNrIOKAlCBwYXNzZWQgdG8gcmVnaXN0ZXJIb29rIGFuZCBpbnZva2VkIGJ5IGludm9rZUhvb2tcbmV4cG9ydCBpbnRlcmZhY2UgaG9vayBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQob3B0czogaG9va3NPcHRzKTogdW5rbm93bjtcbn1cblxuLy8gRXJyb3IgY29uc3RydWN0b3IgZnJvbSBjb25zdHJ1Y3RFcnJvciAtIGNvbnN0cnVjdGFibGUgZnVuY3Rpb24gd2l0aCBwcm90b3R5cGVcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3RvciB7XG5cdG5ldyhhZGRpdGlvbj86IHN0cmluZywgc3RhY2s/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IEVycm9yO1xuXHQobmFtZTogc3RyaW5nKTogRXJyb3I7XG5cdHByb3RvdHlwZToge1xuXHRcdGNvbnN0cnVjdG9yOiBNbmVtb25pY2FFcnJvckNvbnN0cnVjdG9yO1xuXHR9O1xufVxuXG4vLyBFcnJvcnMgdHlwZXMgbWFwIC0gaW5kZXhhYmxlIHJlY29yZCBvZiBlcnJvciBjb25zdHJ1Y3RvcnNcbmV4cG9ydCB0eXBlIEVycm9yc1R5cGVzTWFwID0gUmVjb3JkPHN0cmluZywgTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcj47XG5cbi8vIE1uZW1vbmljYSBlcnJvciBpbnRlcmZhY2UgZm9yIGV4dGVuZGVkIEVycm9yIG9iamVjdHNcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdGV4Y2VwdGlvblJlYXNvbj86IEVycm9yO1xuXHRyZWFzb25zPzogRXJyb3JbXTtcblx0c3VycGx1cz86IEVycm9yW107XG59XG5cbi8qKlxuICogSW50ZXJuYWwgVHlwZSBDb25zdHJ1Y3Rvci5cbiAqIFwiVHlwZVwiIGhlcmUgaXMgdXNlZCBpbiB0aGUgQ29tcHV0ZXIgU2NpZW5jZSBzZW5zZSDigJQgYW4gaW50ZXJmYWNlL2NvbnRyYWN0XG4gKiBkZXNjcmliaW5nIHdoYXQgYSBjb25zdHJ1Y3RvciBtdXN0IHNhdGlzZnkgKGJvdGggYG5ld2AtYWJsZSBhbmQgY2FsbGFibGUpLlxuICogVEMgPSBUeXBlIENvbnN0cnVjdG9yOyBcIkludGVybmFsXCIgbWVhbnMgdGhpcyBpcyB0aGUgbGlicmFyeSdzIG93biBjb25zdHJ1Y3RvclxuICogc2hhcGUsIGRpc3RpbmN0IGZyb20gdXNlci1mYWNpbmcgVHlwZUNvbnN0cnVjdG9yIGJlbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9JbnRlcm5hbF9UQ188Q29uc3RydWN0b3JJbnN0YW5jZSBleHRlbmRzIG9iamVjdD4ge1xuXHRuZXcoLi4uYXJnczogdW5rbm93bltdKTogQ29uc3RydWN0b3JJbnN0YW5jZTtcblx0KHRoaXM6IENvbnN0cnVjdG9ySW5zdGFuY2UsIC4uLmFyZ3M6IHVua25vd25bXSk6IENvbnN0cnVjdG9ySW5zdGFuY2U7XG5cdHJlYWRvbmx5IHByb3RvdHlwZTogQ29uc3RydWN0b3JJbnN0YW5jZSAmIHtcblx0XHRyZWFkb25seSBjb25zdHJ1Y3RvcjogX0ludGVybmFsX1RDXzxDb25zdHJ1Y3Rvckluc3RhbmNlPlxuXHR9O1xufVxuXG4vKipcbiAqIFB1YmxpYyBhbGlhcyBmb3IgX0ludGVybmFsX1RDXyDigJQgdGhlIHNoYXBlIG9mIGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyByZXR1cm5lZCBieSBgZGVmaW5lKClgLlxuICogQXVnbWVudGVkIGJ5IHRhY3RpY2EtZ2VuZXJhdGVkIFR5cGVSZWdpc3RyeSB0byBiZWNvbWUgdXNlci1zcGVjaWZpYyB0eXBlcy5cbiAqIEtlcHQgYXMgYSBuYW1lZCBhbGlhcyAocmF0aGVyIHRoYW4gaW5saW5pbmcgX0ludGVybmFsX1RDXykgc28gdGFjdGljYSBjYW4gcmVmZXJlbmNlIGl0XG4gKiBjbGVhbmx5IGluIGdlbmVyYXRlZCBkZWNsYXJhdGlvbiBmaWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZUNvbnN0cnVjdG9yPENvbnN0cnVjdG9ySW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+ID0gX0ludGVybmFsX1RDXzxDb25zdHJ1Y3Rvckluc3RhbmNlPjtcblxuLyoqXG4gKiBNaW5pbWFsIGNvbnN0cnVjdG9yIHNoYXBlIHVzZWQgZm9yIHRoZSBUeXBlUmVnaXN0cnkgaW5kZXggc2lnbmF0dXJlLlxuICogSXQgYWNjZXB0cyBhbnkgbW5lbW9uaWNhLWNvbXBhdGlibGUgY29uc3RydWN0b3IsIGJ1dCBkZWxpYmVyYXRlbHkgcmV0dXJuc1xuICogYG9iamVjdGAgc28gdW5hdWdtZW50ZWQgcmVnaXN0cnkgbG9va3VwcyBhcmUgbm90IHVzZWZ1bCB3aXRob3V0IGFuIGV4cGxpY2l0XG4gKiBwZXIta2V5IGNvbnN0cnVjdG9yIHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUNvbnN0cnVjdG9yQmFzZSB7XG5cdG5ldyAoLi4uYXJnczogdW5rbm93bltdKTogb2JqZWN0O1xufVxuXG4vKipcbiAqIEluc3RhbmNlIHR5cGUgcHJvZHVjZWQgYnkgYSBUeXBlUmVnaXN0cnkgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlT2ZUeXBlUmVnaXN0cnk8SyBleHRlbmRzIGtleW9mIFR5cGVSZWdpc3RyeT4gPVxuXHRUeXBlUmVnaXN0cnlbS10gZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gaW5mZXIgUiA/IFIgOiBuZXZlcjtcblxuXG4vKipcbiAqIEV4dHJhY3Qgb25seSB0aGUgbGl0ZXJhbCBzdHJpbmcga2V5cyBvZiBhIHR5cGUsIGZpbHRlcmluZyBvdXQgZ2VuZXJpY1xuICogaW5kZXggc2lnbmF0dXJlcy4gVGhpcyBsZXRzIHVzIGl0ZXJhdGUgb3ZlciBhdWdtZW50ZWQgVHlwZVJlZ2lzdHJ5IGtleXNcbiAqIHdpdGhvdXQgcGlja2luZyB1cCB0aGUgYFtrZXk6IHN0cmluZ11gIHNpZ25hdHVyZS5cbiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbEtleXNPZjxUPiA9IGtleW9mIFQgZXh0ZW5kcyBpbmZlciBLXG5cdD8gSyBleHRlbmRzIHN0cmluZ1xuXHRcdD8gc3RyaW5nIGV4dGVuZHMgSyA/IG5ldmVyIDogS1xuXHRcdDogbmV2ZXJcblx0OiBuZXZlcjtcblxuLyoqXG4gKiBHaXZlbiBhIGRvdHRlZCBUeXBlUmVnaXN0cnkga2V5LCBleHRyYWN0IHRoZSBwYXJlbnQgcGF0aC5cbiAqIGBQYXJlbnRQYXRoPCdBLkIuQyc+YCDihpIgYCdBLkInYC5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyZW50UGF0aDxLIGV4dGVuZHMgc3RyaW5nPiA9XG5cdEsgZXh0ZW5kcyBgJHtpbmZlciBQfS4ke3N0cmluZ31gID8gUCA6IG5ldmVyO1xuXG4vKipcbiAqIEdpdmVuIGEgZG90dGVkIFR5cGVSZWdpc3RyeSBrZXksIHJldHVybiB0aGUgdW5pb24gb2YgYWxsIGFuY2VzdG9yIHByZWZpeGVzLlxuICogYEFsbFBhcmVudFByZWZpeGVzPCdBLkIuQyc+YCDihpIgYCdBJyB8ICdBLkInYC5cbiAqL1xuZXhwb3J0IHR5cGUgQWxsUGFyZW50UHJlZml4ZXM8SyBleHRlbmRzIHN0cmluZz4gPVxuXHRLIGV4dGVuZHMgYCR7aW5mZXIgUH0uJHtzdHJpbmd9YCA/IFAgfCBBbGxQYXJlbnRQcmVmaXhlczxQPiA6IG5ldmVyO1xuXG4vKipcbiAqIEdpdmVuIGEgcGFyZW50IHBhdGgsIHJldHVybiB0aGUgdW5pb24gb2YgVHlwZVJlZ2lzdHJ5IGtleXMgdGhhdCBhcmUgZGlyZWN0XG4gKiBvciBpbmRpcmVjdCBjaGlsZHJlbiBvZiB0aGF0IHBhdGguXG4gKi9cbmV4cG9ydCB0eXBlIENoaWxkS2V5c09mPFAgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuXHRbSyBpbiBrZXlvZiBUeXBlUmVnaXN0cnldOiBLIGV4dGVuZHMgYCR7UH0uJHtzdHJpbmd9YCA/IEsgOiBuZXZlclxufVtrZXlvZiBUeXBlUmVnaXN0cnldO1xuXG4vKipcbiAqIEdpdmVuIGFuIGluc3RhbmNlIHR5cGUsIGZpbmQgdGhlIFR5cGVSZWdpc3RyeSBrZXkocykgd2hvc2UgY29uc3RydWN0b3JcbiAqIHJldHVybnMgdGhhdCBpbnN0YW5jZSB0eXBlLiBUaGlzIGludmVydHMgdGhlIHJlZ2lzdHJ5IGF0IHRoZSB0eXBlIGxldmVsXG4gKiBzbyB1dGlsaXRpZXMgbGlrZSBgcGFyZW50KClgIGNhbiBkZXJpdmUgYW4gaW5zdGFuY2UncyBwYXRoIGZyb20gaXRzXG4gKiB0eXBlIGFsb25lLlxuICovXG5leHBvcnQgdHlwZSBQYXRoT2ZJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0W0sgaW4gTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTogVHlwZVJlZ2lzdHJ5W0tdIGV4dGVuZHMgbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IGluZmVyIFJcblx0XHQ/IFQgZXh0ZW5kcyBSID8gSyA6IG5ldmVyXG5cdFx0OiBuZXZlclxufVtMaXRlcmFsS2V5c09mPFR5cGVSZWdpc3RyeT5dO1xuXG4vKipcbiAqIEdpdmVuIGFuIGluc3RhbmNlIHR5cGUsIHJldHVybiB0aGUgdW5pb24gb2YgVHlwZVJlZ2lzdHJ5IHBhdGhzIHRoYXQgYXJlXG4gKiB2YWxpZCBwYXJlbnQgbG9va3VwcyBmb3IgdGhhdCBpbnN0YW5jZS4gUm9vdCB0eXBlcyBwcm9kdWNlIGBuZXZlcmAgYmVjYXVzZVxuICogdGhleSBoYXZlIG5vIHBhcmVudCBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBQYXJlbnRQYXRoT2ZJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0W0sgaW4gTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTogVHlwZVJlZ2lzdHJ5W0tdIGV4dGVuZHMgbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IGluZmVyIFJcblx0XHQ/IFQgZXh0ZW5kcyBSID8gQWxsUGFyZW50UHJlZml4ZXM8Sz4gOiBuZXZlclxuXHRcdDogbmV2ZXJcbn1bTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTtcblxuLy8gSG9vayB0eXBlc1xuZXhwb3J0IHR5cGUgaG9va3NUeXBlcyA9ICdwcmVDcmVhdGlvbicgfCAncG9zdENyZWF0aW9uJyB8ICdjcmVhdGlvbkVycm9yJztcblxuLy8gSG9vayBvcHRpb25zIHBhc3NlZCB0byBob29rIGNhbGxiYWNrc1xuLy8gUCA9IHBhcmVudCAvIGV4aXN0ZW50IGluc3RhbmNlIChwcm90bylcbi8vIFQgPSBjaGlsZCAvIGluaGVyaXRlZCBpbnN0YW5jZSAodHlwZSBiZWluZyBjcmVhdGVkKVxuZXhwb3J0IHR5cGUgaG9va3NPcHRzPFAgPSBvYmplY3QsIFQgPSBQPiA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0dHlwZTogVHlwZURlZjtcblx0YXJnczogdW5rbm93bltdO1xuXHRleGlzdGVudEluc3RhbmNlOiBQO1xuXHRpbmhlcml0ZWRJbnN0YW5jZT86IFQ7XG5cdGNyZWF0b3I/OiB7IHRocm93TW9kaWZpY2F0aW9uRXJyb3IoZXJyb3I6IEVycm9yKTogdm9pZCB9O1xufTtcblxuLy8gQ2FsbGJhY2sgcGFzc2VkIGludG8gTW9kaWZpY2F0aW9uQ29uc3RydWN0b3IgdG8gYXR0YWNoIGludGVybmFsIHByb3BzIHRvIHRoZSBwcm90b3R5cGVcbmV4cG9ydCBpbnRlcmZhY2UgQWRkUHJvcHNDYWxsYmFjayBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQocHJvdG86IG9iamVjdCk6IHZvaWQ7XG59XG5cbi8vIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yOiB3aXJlcyBwcm90b3R5cGUgY2hhaW4gZHVyaW5nIGluc3RhbmNlIGNyZWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdChcblx0XHR0aGlzOiBvYmplY3QsXG5cdFx0TW9kaWZpY2F0b3JUeXBlOiBNbmVtb25pY2FDb25zdHJ1Y3Rvcixcblx0XHRNb2RpZmljYXRvclR5cGVQcm90b3R5cGU6IG9iamVjdCxcblx0XHRfYWRkUHJvcHM6IEFkZFByb3BzQ2FsbGJhY2tcblx0KTogTW5lbW9uaWNhQ29uc3RydWN0b3I7XG59XG5cbi8vIEZhY3RvcnkgdGhhdCByZXR1cm5zIGEgTW9kaWZpY2F0aW9uQ29uc3RydWN0b3IgKHVzZWQgaW4gY29uc3RydWN0b3JPcHRpb25zKVxuZXhwb3J0IGludGVyZmFjZSBNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnkgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KCk6IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yO1xufVxuXG4vLyBGYWN0b3J5IHRoYXQgcmV0dXJucyBhIE1uZW1vbmljYUNvbnN0cnVjdG9yIChzdG9yZWQgaW4gVHlwZURlZi5jb25zdHJ1Y3RIYW5kbGVyKVxuZXhwb3J0IGludGVyZmFjZSBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3RvcnkgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KCk6IE1uZW1vbmljYUNvbnN0cnVjdG9yO1xufVxuXG4vLyBNYXJrcyB0aGUgdG9wIG9mIGEgY2FwdHVyZWQgc3RhY2sgdHJhY2UgKHBhc3NlZCB0byBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSBhcyBjb25zdHJ1Y3Rvck9wdClcbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCb3VuZGFyeSBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge31cblxuLy8gQSB3cmFwcGFibGUgdXRpbGl0eSBtZXRob2Qg4oCUIGFueSBjYWxsYWJsZSB0aGF0IHdyYXBUaGlzKCkgY2FuIHByb3h5XG5leHBvcnQgaW50ZXJmYWNlIFdyYXBwYWJsZU1ldGhvZCBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge31cblxuLy8gQ29uc3RydWN0b3Igb3B0aW9ucyBmb3IgZGVmaW5lXG5leHBvcnQgdHlwZSBjb25zdHJ1Y3Rvck9wdGlvbnMgPSB7XG5cdC8vIGV4cGxpY2l0IGRlY2xhcmF0aW9uIHdlIHdpc2ggdXNlXG5cdC8vIGFuIG9sZCBzdHlsZSBiYXNlZCBjb25zdHJ1Y3RvcnNcblx0TW9kaWZpY2F0aW9uQ29uc3RydWN0b3I/OiBNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnksXG5cdC8vIHNoYWxsIG9yIG5vdCB3ZSB1c2Ugc3RyaWN0IGNoZWNraW5nXG5cdC8vIGZvciBjcmVhdGlvbiBzdWItaW5zdGFuY2VzIE9ubHkgZnJvbSBjdXJyZW50IHR5cGVcblx0Ly8gb3Igd2UgbWlnaHQgdXNlIHVwLW5lc3RlZCBzdWItaW5zdGFuY2VzIGZyb20gY2hhaW5cblx0c3RyaWN0Q2hhaW4/OiBib29sZWFuLFxuXHQvLyBzaG91bGQgd2UgdXNlIGZvcmNlZCBlcnJvcnMgY2hlY2tpbmdcblx0Ly8gdG8gbWFrZSBhbGwgaW5oZXJpdGVkIHR5cGVzIGVycm9yZWRcblx0Ly8gaWYgdGhlcmUgaXMgYW4gZXJyb3Igc29tZXdoZXJlIGluIGNoYWluXG5cdGJsb2NrRXJyb3JzPzogYm9vbGVhbixcblx0Ly8gaWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGNvbGxlY3Qgc3RhY2tcblx0Ly8gYXMgYSBfX3N0YWNrX18gcHJvdG90eXBlIHByb3BlcnR5XG5cdC8vIGR1cmluZyB0aGUgcHJvY2VzcyBvZiBpbnN0YW5jZSBjcmVhdGlvblxuXHRzdWJtaXRTdGFjaz86IGJvb2xlYW4sXG5cdC8vIGF3YWl0IG5ldyBDb25zdHJ1Y3RvcigpXG5cdC8vIG11c3QgcmV0dXJuIHZhbHVlXG5cdGF3YWl0UmV0dXJuPzogYm9vbGVhbixcblx0Ly8gRm9yY2UgY2xhc3MgbW9kZSAoYXV0by1kZXRlY3RlZCBieSBkZWZhdWx0KVxuXHRhc0NsYXNzPzogYm9vbGVhbixcbn07XG5cbi8vIFN1YnR5cGVzIG1hcCAtIHJlcHJlc2VudHMgdGhlIHN1YnR5cGVzIHByb3BlcnR5XG5leHBvcnQgdHlwZSBTdWJ0eXBlc01hcCA9IE1hcDxzdHJpbmcsIFR5cGVDbGFzcz47XG5cbi8vIFR5cGUgZGVmaW5pdGlvbiBvYmplY3QgKGludGVybmFsIHByb3BlcnRpZXMpXG5leHBvcnQgdHlwZSBUeXBlRGVmID0ge1xuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRwcm90bzogb2JqZWN0O1xuXHRpc1N1YlR5cGU6IGJvb2xlYW47XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0Y29sbGVjdGlvbjogQ29sbGVjdGlvbkRlZjtcblx0Y29uZmlnOiBjb25zdHJ1Y3Rvck9wdGlvbnM7XG5cdHBhcmVudFR5cGU/OiBUeXBlRGVmO1xuXHRjb25zdHJ1Y3RIYW5kbGVyOiBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3Rvcnk7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGhvb2tzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8aG9vaz4+O1xuXHRpbnZva2VIb29rOiAoaG9va1R5cGU6IGhvb2tzVHlwZXMsIG9wdHM6IGhvb2tzT3B0cykgPT4gU2V0PHVua25vd24+O1xuXHRwcm90b3R5cGU6IHVua25vd247XG5cdHN0YWNrPzogc3RyaW5nO1xuXHRbU3ltYm9sLmhhc0luc3RhbmNlXTogKGluc3RhbmNlOiBvYmplY3QpID0+IGJvb2xlYW47XG59O1xuXG4vLyBDb2xsZWN0aW9uIGRlZmluaXRpb25cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25EZWYgPSBIb29rYWJsZSAmIHtcblx0ZGVmaW5lOiBUeXBlQWJzb3JiZXI7XG5cdGxvb2t1cDogVHlwZUxvb2t1cDtcblx0c3VidHlwZXM6IFN1YnR5cGVzTWFwO1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuLy8gVHlwZSBsb29rdXAgZnVuY3Rpb24gdHlwZTogbWF5IGhhdmUgYXVnbWVudGF0aW9uIGJ5IFRhY3RpY2EgcmUtZGVmaW5pdGlvblxuZXhwb3J0IGludGVyZmFjZSBUeXBlTG9va3VwIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdCh0aGlzOiBNYXA8c3RyaW5nLCB1bmtub3duPiwgVHlwZU5lc3RlZFBhdGg6IHN0cmluZyk6IFR5cGVDbGFzcyB8IHVuZGVmaW5lZDtcbn1cblxuLy8gU3BlY2lmaWNhdGlvbiBmb3IgY2hhaW5lZCBzdWJ0eXBlIGNyZWF0aW9uIHdpdGggLnRoZW4oKVxuZXhwb3J0IGludGVyZmFjZSBUaGVuU3BlYyB7XG5cdHN1YnR5cGU6IG9iamVjdDtcblx0YXJnczogdW5rbm93bltdO1xuXHRuYW1lPzogc3RyaW5nO1xufVxuXG4vLyBDb250ZXh0IG9iamVjdCBwYXNzZWQgdGhyb3VnaCB0aGUgSW5zdGFuY2VDcmVhdG9yIHBpcGVsaW5lXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQge1xuXHR0eXBlOiBUeXBlRGVmO1xuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRleGlzdGVudEluc3RhbmNlOiBvYmplY3Q7XG5cdGFyZ3M6IHVua25vd25bXTtcblx0TW9kaWZpY2F0aW9uQ29uc3RydWN0b3I6IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yO1xuXHRNb2RpZmljYXRvclR5cGU6IE1uZW1vbmljYUNvbnN0cnVjdG9yO1xuXHRJbnN0YW5jZU1vZGlmaWNhdG9yOiBNbmVtb25pY2FDb25zdHJ1Y3Rvcjtcblx0aW5oZXJpdGVkSW5zdGFuY2U6IG9iamVjdCB8IFByb21pc2U8b2JqZWN0Pjtcblx0Y29uZmlnOiBjb25zdHJ1Y3Rvck9wdGlvbnM7XG5cdHByb3RvOiBvYmplY3Q7XG5cdF9fcHJvdG9fcHJvdG9fXz86IG9iamVjdDtcblx0c3RhY2s/OiBzdHJpbmdbXTtcblxuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2soZXhpc3RlbnRJbnN0YW5jZTogb2JqZWN0KTogdW5rbm93bjtcblx0cG9zdFByb2Nlc3NpbmcoY29udGludWF0aW9uT2Y/OiBUeXBlRGVmKTogdm9pZDtcblx0bWFrZUF3YWl0ZXIodHlwZTogVHlwZURlZiwgdGhlbj86IFRoZW5TcGVjKTogUHJvbWlzZTxvYmplY3Q+O1xuXHRhZGRUaGVuKHRoZW46IFRoZW5TcGVjKTogdm9pZDtcblx0aW52b2tlUHJlSG9va3MoKTogdm9pZDtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0dGhyb3dNb2RpZmljYXRpb25FcnJvcihlcnJvcjogTW5lbW9uaWNhRXJyb3IpOiB2b2lkO1xufVxuXG4vKipcbiAqIFByb3RvIG1lcmdlIHR5cGUgLSBjb21iaW5lcyBwYXJlbnQgYW5kIGNoaWxkIHR5cGVzIHdpdGhvdXQgcHJvcGVydHkgY29uZmxpY3RzLlxuICpcbiAqIFdoZW4gYSBzdWJ0eXBlIGlzIGRlZmluZWQgZnJvbSBhIHBhcmVudCBpbnN0YW5jZSwgd2Ugd2FudCB0aGUgY2hpbGQgcHJvcGVydGllc1xuICogdG8gdGFrZSBwcmVjZWRlbmNlLiBgRXhjbHVkZTxrZXlvZiBQLCBrZXlvZiBUPmAgcmVtb3ZlcyBvdmVybGFwcGluZyBrZXlzIGZyb20gUCxcbiAqIHNvIGBQaWNrPFAsIC4uLj5gIG9ubHkgYnJpbmdzIGluIHBhcmVudCBwcm9wZXJ0aWVzIHRoYXQgZG9uJ3QgY2xhc2ggd2l0aCBjaGlsZC5cbiAqXG4gKiBSZXN1bHQ6IGNoaWxkIFQgZ2V0cyBhbGwgaXRzIG93biBwcm9wcywgcGx1cyBwYXJlbnQncyBub24tb3ZlcmxhcHBpbmcgcHJvcHMuXG4gKi9cbmV4cG9ydCB0eXBlIFByb3RvPFAgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3Q+ID0gVCAmIFBpY2s8UCwgRXhjbHVkZTxrZXlvZiBQLCBrZXlvZiBUPj47XG5cblxuLy8gZXhwb3J0IHR5cGUgUHJvdG9GbGF0PFxuLy8gXHRQIGV4dGVuZHMgb2JqZWN0LFxuLy8gXHRUIGV4dGVuZHMgb2JqZWN0LFxuLy8gXHRGIGV4dGVuZHMgUHJvdG88UCwgVD4gPSBQcm90bzxQLCBUPlxuLy8gPiA9IHsgW2tleSBpbiBrZXlvZiBGXTogRltrZXldfSA7XG5cbmV4cG9ydCB0eXBlIFByb3RvRmxhdDxcblx0UCBleHRlbmRzIG9iamVjdCxcblx0VCBleHRlbmRzIG9iamVjdCxcblx0TCBleHRlbmRzIEV4Y2x1ZGU8a2V5b2YgUCwga2V5b2YgVD4gPSBFeGNsdWRlPGtleW9mIFAsIGtleW9mIFQ+LFxuPiA9IHtcbiAgICBba2V5IGluIGtleW9mIFRdOiBUW2tleV07XG59ICYge1xuXHRba2V5IGluIExdOiBQW2tleV07XG59O1xuXG4vLyBNbmVtb25pY2EgaW5zdGFuY2UgbWV0aG9kIGtleXMuIFRoZXNlIGFyZSBmaWx0ZXJlZCBvdXQgb2YgZXh0cmFjdGVkL21lcmdlZFxuLy8gZmllbGQtb25seSB2aWV3cyBiZWNhdXNlIHRoZXkgYmVsb25nIHRvIHRoZSBwcm90b3R5cGUsIG5vdCB0byB0aGUgdXNlcidzXG4vLyBlbnVtZXJhYmxlIGRhdGEgcHJvcGVydGllcy5cbmV4cG9ydCB0eXBlIE1uZW1vbmljYUluc3RhbmNlTWV0aG9kS2V5cyA9XG5cdCdleHRyYWN0JyB8ICdwaWNrJyB8ICdwYXJlbnQnIHwgJ2Nsb25lJyB8ICdmb3JrJyB8ICdleGNlcHRpb24nIHwgJ3NpYmxpbmcnO1xuXG5leHBvcnQgdHlwZSBGbGF0dGVuPEY+ID0geyBba2V5IGluIGtleW9mIEZdOiBGW2tleV0gfVxuXG4vLyBFeHRyYWN0ZWQ8VD46IHRoZSBzaGFwZSByZXR1cm5lZCBieSB1dGlscy5leHRyYWN0KGluc3RhbmNlKS5cbi8vIEl0IGNvbnRhaW5zIHRoZSBlbnVtZXJhYmxlIHN0cmluZy1rZXllZCB1c2VyIHByb3BlcnRpZXMgb2YgdGhlIGluc3RhbmNlLFxuLy8gb21pdHRpbmcgTW5lbW9uaWNhSW5zdGFuY2UgbWV0aG9kcyAoZXh0cmFjdCwgcGljaywgcGFyZW50LCBjbG9uZSwgZm9yayxcbi8vIGV4Y2VwdGlvbiwgc2libGluZykuIE9wdGlvbmFsaXR5IGlzIHByZXNlcnZlZCBmcm9tIHRoZSBzb3VyY2UgdHlwZS5cbi8vIFRoZSBgJiB7fWAgdHJpY2sgZm9yY2VzIFR5cGVTY3JpcHQgdG8gZXhwYW5kIHRoZSBhbGlhcyBpbiBob3ZlciB0b29sdGlwc1xuLy8gc28gaXQgcmVuZGVycyBhcyBhIHBsYWluIG9iamVjdCBsaXRlcmFsIGluc3RlYWQgb2YgXCJFeHRyYWN0ZWQ8ey4uLn0+XCIuXG5leHBvcnQgdHlwZSBFeHRyYWN0ZWQ8VCBleHRlbmRzIG9iamVjdD4gPSB7XG5cdFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IChLIGV4dGVuZHMgTW5lbW9uaWNhSW5zdGFuY2VNZXRob2RLZXlzID8gbmV2ZXIgOiBLKSA6IG5ldmVyXTogVFtLXTtcbn0gJiB7fTtcblxuLy8gUGFyc2VkPFQ+OiB0aGUgc2hhcGUgcmV0dXJuZWQgYnkgdXRpbHMucGFyc2UoaW5zdGFuY2UpLlxuLy8gSXQgaXMgYSBvbmUtbGV2ZWwgc25hcHNob3Qgb2YgdGhlIGluc3RhbmNlJ3MgcHJvdG90eXBlIGNoYWluLlxuLy8gYHByb3BzYCBjb250YWlucyB0aGUgaW5zdGFuY2UncyBlbnVtZXJhYmxlIHVzZXIgcHJvcGVydGllcztcbi8vIGBqb2ludGAgY29udGFpbnMgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGNvcGllZCBmcm9tIHRoZSBpbW1lZGlhdGUgcHJvdG90eXBlO1xuLy8gYHBhcmVudGAgaXMgdGhlIG5leHQgbGluayB1cCB0aGUgY2hhaW4gKGN1cnJlbnRseSBub3QgcmVjdXJzaXZlbHkgcGFyc2VkKS5cbmV4cG9ydCB0eXBlIFBhcnNlZDxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHRwcm9wczogRXh0cmFjdGVkPFQ+O1xuXHRzZWxmOiBUO1xuXHRwcm90bzogb2JqZWN0O1xuXHRqb2ludDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdHBhcmVudDogb2JqZWN0IHwgdW5kZWZpbmVkO1xufTtcblxuLy8gU2libGluZyB0eXBlIGFjY2Vzc29yXG5leHBvcnQgaW50ZXJmYWNlIFNpYmxpbmdBY2Nlc3NvciB7XG5cdChTaWJsaW5nVHlwZU5hbWU6IHN0cmluZyk6IFR5cGVDbGFzcyB8IHVuZGVmaW5lZDtcblx0W2tleTogc3RyaW5nXTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBNbmVtb25pY2EgaW5zdGFuY2UgbWV0aG9kcyBpbnRlcmZhY2UgKG9wdC1pbikuXG4vLyBUaGVzZSBtZXRob2RzIHVzZWQgdG8gYmUgYXV0by1pbmplY3RlZCBvbnRvIGV2ZXJ5IGluc3RhbmNlLiBUaGV5IGFyZSBub3dcbi8vIGF2YWlsYWJsZSBvbmx5IHdoZW4gYSB0eXBlIGV4cGxpY2l0bHkgYWRkcyB0aGVtIHRvIGl0cyBwcm90b3R5cGUuXG4vLyBVc2VycyBjYW4gc3RpbGwgdXNlIHRoaXMgaW50ZXJmYWNlIHRvIHR5cGUgdGhlaXIgb3duIHJvb3QtbGV2ZWwgaGVscGVycy5cbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhSW5zdGFuY2U8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ge1xuXHRleHRyYWN0KCk6IEV4dHJhY3RlZDxUPjtcblx0cGljazxLIGV4dGVuZHMga2V5b2YgVD4oLi4ua2V5czogKEsgfCBLW10pW10pOiB7IFtQIGluIEtdOiBUW1BdIH0gJiB7fTtcblx0cGljayguLi5rZXlzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRwYXJlbnQoKTogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRwYXJlbnQ8SyBleHRlbmRzIFBhcmVudFBhdGhPZkluc3RhbmNlPHRoaXM+ICYgc3RyaW5nPihcblx0XHRjb25zdHJ1Y3Rvckxvb2t1cFBhdGg6IEtcblx0KTogSW5zdGFuY2VPZlR5cGVSZWdpc3RyeTxLPiB8IHVuZGVmaW5lZDtcblx0cGFyZW50KGNvbnN0cnVjdG9yTG9va3VwUGF0aDogc3RyaW5nKTogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRyZWFkb25seSBjbG9uZTogdGhpcztcblx0Zm9yayguLi5mb3JrQXJnczogdW5rbm93bltdKTogdGhpcztcblx0ZXhjZXB0aW9uKGVycm9yOiBFcnJvciwgLi4uYXJnczogdW5rbm93bltdKTogRXJyb3I7XG5cdHJlYWRvbmx5IHNpYmxpbmc6IFNpYmxpbmdBY2Nlc3Nvcjtcbn1cblxuLy8gSW5zdGFuY2UgcHJvcGVydGllcyBmb3IgX19zZWxmX18gcmVmZXJlbmNlXG4vLyBUaGlzIG1lcmdlcyBpbnRlcm5hbCBwcm9wcyB3aXRoIHRoZSBpbnN0YW5jZSBtZXRob2RzXG4vLyBJbnRlcm5hbCBpbnN0YW5jZSBwcm9wZXJ0aWVzIChub24tZW51bWVyYWJsZSlcbi8vIFRoZXNlIGFyZSBhbHdheXMgcHJlc2VudCBvbiBpbnN0YW5jZXMgYnV0IGFjY2Vzc2VkIHZpYSBnZXRQcm9wcy9zZXRQcm9wc1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VJbnRlcm5hbFByb3BzID0ge1xuXHRfX3Byb3RvX3Byb3RvX186IG9iamVjdDtcblx0X19hcmdzX186IHVua25vd25bXTtcblx0X19jb2xsZWN0aW9uX186IENvbGxlY3Rpb25EZWY7XG5cdF9fc3VidHlwZXNfXzogTWFwPHN0cmluZywgb2JqZWN0Pjtcblx0X190eXBlX186IFR5cGVEZWY7XG5cdF9fcGFyZW50X186IG9iamVjdDtcblx0X19zdGFja19fPzogc3RyaW5nO1xuXHRfX2NyZWF0b3JfXzogSW5zdGFuY2VDcmVhdG9yQ29udGV4dDtcblx0X190aW1lc3RhbXBfXzogbnVtYmVyO1xufTtcblxuLy8gQ29tYmluZWQgUHJvcHMgdHlwZSBmb3IgaW50ZXJuYWwgdXNlIGluc2lkZSAuL3NyY1xuZXhwb3J0IHR5cGUgUHJvcHMgPSBJbnN0YW5jZUludGVybmFsUHJvcHMgJiB7XG5cdF9fc2VsZl9fOiBJbnN0YW5jZUludGVybmFsUHJvcHM7XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG4vLyBDb21iaW5lZCBpbnN0YW5jZSB0eXBlOiBwbGFpbiBvYmplY3Qgd2l0aCB0aGUgdXNlcidzIGZpZWxkcyBvbmx5LlxuLy8gSW5zdGFuY2UgbWV0aG9kcyAoZXh0cmFjdCwgcGljaywgZm9yaywgZXRjLikgYXJlIG5vIGxvbmdlciBhdXRvLWluamVjdGVkLlxuLy8gVGhlIGlubGluZSBtYXBwZWQgdHlwZSBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIEZsYXR0ZW4gYWxpYXMgc28gdGhhdCBob3ZlclxuLy8gdG9vbHRpcHMgc2hvdyB0aGUgYWN0dWFsIGZpZWxkIG9iamVjdCBsaXRlcmFsIGZpcnN0LCBub3QgXCJGbGF0dGVuPHsuLi59PlwiLlxuZXhwb3J0IHR5cGUgSW5zdGFuY2VSZXN1bHQ8XG4gIE4gZXh0ZW5kcyBvYmplY3QsXG4+ID0geyBbSyBpbiBrZXlvZiBOXTogTltLXSB9O1xuXG4vLyBEZWZpbml0b3IgaW5zdGFuY2UgLSB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gcmV0dXJuZWQgYnkgZGVmaW5lXG4vLyBOID0gaW5zdGFuY2UgdHlwZSAocHJvcGVydGllcyBhdmFpbGFibGUgb24gaW5zdGFuY2VzKVxuLy8gUyA9IHN1YnR5cGVzIG1hcFxuZXhwb3J0IGludGVyZmFjZSBJRGVmaW5pdG9ySW5zdGFuY2U8XG5cdE4gZXh0ZW5kcyBvYmplY3QsXG5cdFIgZXh0ZW5kcyBJbnN0YW5jZVJlc3VsdDxOPiA9IEluc3RhbmNlUmVzdWx0PE4+XG4+IHtcblxuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRwcm90b3R5cGU6IE47XG5cblx0XG5cdC8vIHRoZSBsaW5lIGJlbG93IGRlY2xhcmVzIGEgYG5ldyAuLi5gIGludm9jYXRpb24sXG5cdC8vIHNvIG1ha2VzIGludGVyZmFjZSBjb25zdHJ1Y3RpYmxlXG5cdC8vIG5ldyguLi5hcmdzOiB1bmtub3duW10pOiB7IFtrZXkgaW4ga2V5b2YgUl06IFJba2V5XSB9O1xuXHRuZXcoLi4uYXJnczogdW5rbm93bltdKTogUjtcblxuXHRcblx0Ly8gVE9ETzogbmVlZCBjaGVjayBpZiBsaW5lIGJlbG93IHdvcmtzXG5cdC8vIGFsc28gVFMgaGludGluZyBjaGVjayBhcyB3ZWxsXG5cdC8vIHRoZSBsaW5lIGJlbG93IHNob3VsZCBtYWtlIGlzIGEgQGRlY29yYXRlIGRlY29yYXRvciB3b3JraW5nXG5cdCguLi5hcmdzOiB1bmtub3duW10pOiBJRGVmaW5pdG9ySW5zdGFuY2U8Uj47XG5cblxuXHQvLyBEZWZpbmUgbWV0aG9kIHRoYXQgY29tYmluZXMgcGFyZW50IE4gd2l0aCBuZXcgdHlwZSBUIHVzaW5nIFByb3RvXG5cdGRlZmluZTxcblx0XHRUIGV4dGVuZHMgb2JqZWN0LFxuXG5cdFx0Ly8gdGhpcyB3aWxsIGJlIGluc3RhbmNlIHR5cGUgZm9yIHN1Yi10eXBlICEhIVxuXHRcdC8vIEYgZXh0ZW5kcyBGbGF0dGVuPFByb3RvPE4sIFQ+PlxuXHRcdEYgZXh0ZW5kcyBQcm90bzxOLCBUPlxuXHQ+KFxuXHRcdFR5cGVPclR5cGVOYW1lOiBzdHJpbmcgfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRcdGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZz86IElERUY8VD4gfCBvYmplY3QgfCBib29sZWFuIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0XHRjb25maWdPclVuZGVmaW5lZD86IGNvbnN0cnVjdG9yT3B0aW9ucyB8IENhbGxhYmxlRnVuY3Rpb24gfCBib29sZWFuXG5cdCk6IElEZWZpbml0b3JJbnN0YW5jZTxGPjtcblx0XG5cdGxvb2t1cDogVHlwZUxvb2t1cDtcblx0XG5cdHJlZ2lzdGVySG9vayhob29rVHlwZTogaG9va3NUeXBlcywgY2I6IGhvb2spOiB2b2lkO1xuXHRcblx0XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0XG5cdC8vIEludGVybmFsIHByb3BlcnRpZXMgYWNjZXNzZWQgYnkgdGVzdHNcblx0X190eXBlX18/OiBUeXBlRGVmO1xuXHRjb2xsZWN0aW9uPzogQ29sbGVjdGlvbkRlZjtcblxuXHQvKlxuXHQvLyBBbGxvdyBkeW5hbWljIHByb3BlcnR5IGFjY2VzcyBmb3Igc3VidHlwZXNcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcblx0Ki9cbn1cblxuLy8gVHlwZSBhYnNvcmJlciBmdW5jdGlvbiB0eXBlIC0gdXNlZCBmb3IgZGVmaW5pbmcgc3VidHlwZXNcbi8vIFN1cHBvcnRzIG11bHRpcGxlIGNhbGxpbmcgY29udmVudGlvbnM6XG4vLyAxLiBNb2Rlcm46IGRlZmluZShUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlciwgY29uZmlnPylcbi8vIDIuIExlZ2FjeTogZGVmaW5lKGNvbnN0cnVjdEhhbmRsZXIsIGNvbmZpZz8pIC0gVHlwZU5hbWUgZnJvbSBjb25zdHJ1Y3RvciBuYW1lXG4vLyAzLiBOZXN0ZWQ6IHBhcmVudFR5cGUuZGVmaW5lKFR5cGVOYW1lLCBjb25zdHJ1Y3RIYW5kbGVyLCBjb25maWc/KVxuZXhwb3J0IGludGVyZmFjZSBUeXBlQWJzb3JiZXIgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuXHRcdHRoaXM6IHVua25vd24sXG5cdFx0VHlwZU9yVHlwZU5hbWU6IHN0cmluZyB8IENhbGxhYmxlRnVuY3Rpb24sXG5cdFx0Y29uc3RydWN0SGFuZGxlck9yQ29uZmlnPzogSURFRjxUPiB8IG9iamVjdCB8IGJvb2xlYW4gfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRcdGNvbmZpZ09yVW5kZWZpbmVkPzogY29uc3RydWN0b3JPcHRpb25zIHwgQ2FsbGFibGVGdW5jdGlvbiB8IGJvb2xlYW5cblx0KTogSURlZmluaXRvckluc3RhbmNlPFQ+O1xufVxuXG4vLyBUeXBlc0NvbGxlY3Rpb24gaW50ZXJmYWNlIGZvciBjcmVhdGVUeXBlc0NvbGxlY3Rpb25cbi8vIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJldHVybiB0eXBlIG9mIGNyZWF0ZVR5cGVzQ29sbGVjdGlvblxuZXhwb3J0IGludGVyZmFjZSBUeXBlc0NvbGxlY3Rpb24gZXh0ZW5kcyBIb29rYWJsZSB7XG5cdGRlZmluZTogVHlwZUFic29yYmVyO1xuXHRsb29rdXA6IFR5cGVMb29rdXA7XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gU2hhcmVkIGludGVyZmFjZSBmb3Igb2JqZWN0cyB0aGF0IHN1cHBvcnQgaG9va3MgKFR5cGVEZWYgYW5kIENvbGxlY3Rpb25EZWYpXG5leHBvcnQgaW50ZXJmYWNlIEhvb2thYmxlIHtcblx0aG9va3M6IFJlY29yZDxzdHJpbmcsIFNldDxob29rPj47XG5cdGludm9rZUhvb2soaG9va1R5cGU6IGhvb2tzVHlwZXMsIG9wdHM6IGhvb2tzT3B0cyk6IFNldDx1bmtub3duPjtcblx0cmVnaXN0ZXJIb29rKGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vayk6IHZvaWQ7XG5cdHJlZ2lzdGVyRmxvd0NoZWNrZXIoY2I6IChvcHRzOiBvYmplY3QpID0+IHVua25vd24pOiB2b2lkO1xufVxuXG4vLyBjcmVhdGVUeXBlc0NvbGxlY3Rpb24gZnVuY3Rpb24gdHlwZVxuZXhwb3J0IHR5cGUgQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb24gPSAoY29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zKSA9PiBUeXBlc0NvbGxlY3Rpb247XG5cbi8vIFR5cGUgY2xhc3MgLSBiYXNlIHR5cGUgY29uc3RydWN0b3JcbmV4cG9ydCB0eXBlIFR5cGVDbGFzcyA9IElEZWZpbml0b3JJbnN0YW5jZTxvYmplY3Q+O1xuXG4vLyBNbmVtb25pY2EgY29uc3RydWN0b3Ig4oCUIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiByZXR1cm5lZCBieSBjb25zdHJ1Y3RIYW5kbGVyKClcbi8vIEhhcyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgYXR0YWNoZWQgYW5kIGlzIGJvdGggbmV3YWJsZSBhbmQgY2FsbGFibGVcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhQ29uc3RydWN0b3IgZXh0ZW5kcyBOZXdhYmxlRnVuY3Rpb24ge1xuXHRuZXcgKC4uLmFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0KHRoaXM6IG9iamVjdCwgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93bjtcblx0W2tleTogc3ltYm9sXTogdW5rbm93bjtcbn1cblxuLy8gVHlwZSBkZXNjcmlwdG9yIGluc3RhbmNlIOKAlCBpbnRlcm5hbCBzaGFwZSBvZiBUeXBlRGVzY3JpcHRvciBvYmplY3RzXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEZXNjcmlwdG9yRGVmaW5lIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdChcblx0XHRUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0XHRjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc/OiBDYWxsYWJsZUZ1bmN0aW9uIHwgb2JqZWN0LFxuXHRcdGNvbmZpZz86IG9iamVjdFxuXHQpOiBUeXBlQ2xhc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlc2NyaXB0b3JMb29rdXAgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcpOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UgPSB7XG5cdGRlZmluZTogVHlwZURlc2NyaXB0b3JEZWZpbmU7XG5cdGxvb2t1cDogVHlwZURlc2NyaXB0b3JMb29rdXA7XG5cdHN1YnR5cGVzOiBNYXA8c3RyaW5nLCBvYmplY3Q+O1xuXHRUeXBlTmFtZTogc3RyaW5nO1xufTtcblxuLy8gQ29uc3RydWN0b3IgdHlwZSBmb3IgZGVjb3JhdGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQgPSBvYmplY3Q+ID0gbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IFQ7XG5cbi8vIERlY29yYXRlZCBjbGFzcyB0eXBlIC0gaW5jbHVkZXMgY2FsbCBzaWduYXR1cmUgZm9yIGRlY29yYXRvciBwYXR0ZXJuXG5leHBvcnQgdHlwZSBEZWNvcmF0ZWRDbGFzczxUIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4gPVxuXHRUICZcblx0KDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4odGFyZ2V0OiBVKSA9PiBEZWNvcmF0ZWRDbGFzczxVPikgJiB7XG5cdFx0ZGVmaW5lOiBUeXBlQWJzb3JiZXI7XG5cdFx0cmVnaXN0ZXJIb29rKGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vayk6IHZvaWQ7XG5cdFx0bG9va3VwOiBUeXBlTG9va3VwO1xuXHRcdFR5cGVOYW1lOiBzdHJpbmc7XG5cdH07XG5cbi8vIEhlbHBlcjogbWVyZ2UgcGFyZW50IGVudGl0eSAoRSkgYW5kIGNoaWxkIGNvbnN0cnVjdG9yIGluc3RhbmNlIChUKSBpbnRvIGFcbi8vIHNpbmdsZSBmbGF0IG9iamVjdCB0eXBlLCBmaWx0ZXJpbmcgb3V0IE1uZW1vbmljYUluc3RhbmNlIG1ldGhvZCBuYW1lcy5cbi8vIFVzZWQgYnkgYXBwbHkvY2FsbC9iaW5kLlxuZXhwb3J0IHR5cGUgTWVyZ2U8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4gPSB7XG5cdFtLIGluIGtleW9mIFQgfCBrZXlvZiBFIGFzIEsgZXh0ZW5kcyBNbmVtb25pY2FJbnN0YW5jZU1ldGhvZEtleXMgPyBuZXZlciA6IEtdOlxuXHRcdEsgZXh0ZW5kcyBrZXlvZiBUID8gVFtLXSA6IEVbSyAmIGtleW9mIEVdO1xufTtcblxuLy8gQXBwbHkvQ2FsbC9CaW5kIGZ1bmN0aW9uIHR5cGVzXG4vLyBUaGUgcmV0dXJuIHR5cGUgbWVyZ2VzIHRoZSBwYXJlbnQgZW50aXR5IGZpZWxkcyB3aXRoIHRoZSBjaGlsZCBjb25zdHJ1Y3RvclxuLy8gZmllbGRzIChmaWx0ZXJpbmcgb3V0IE1uZW1vbmljYUluc3RhbmNlIG1ldGhvZCBuYW1lcyksIHByb2R1Y2luZyB0aGUgc2FtZVxuLy8gYHsgZmllbGRzIH1gIGhvdmVyIHN0eWxlIGFzIGBuZXcgVHlwZSgpYC5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlGdW5jdGlvbiBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQ8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4oXG5cdFx0ZW50aXR5OiBFLFxuXHRcdENvbnN0cnVjdG9yOiBJREVGPFQ+LFxuXHRcdGFyZ3M/OiB1bmtub3duW11cblx0KTogSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxGdW5jdGlvbiBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQ8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4oXG5cdFx0ZW50aXR5OiBFLFxuXHRcdENvbnN0cnVjdG9yOiBJREVGPFQ+LFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEZ1bmN0aW9uIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0Pihcblx0XHRlbnRpdHk6IEUsXG5cdFx0Q29uc3RydWN0b3I6IElERUY8VD5cblx0KTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xufVxuXG4vLyBVdGlscyBvYmplY3QgdHlwZVxuZXhwb3J0IGludGVyZmFjZSBVdGlsc0NvbGxlY3Rpb24ge1xuXHRleHRyYWN0PFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogRXh0cmFjdGVkPFQ+O1xuXHRwaWNrPFQgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBrZXlvZiBUPihpbnN0YW5jZTogVCwgLi4uYXJnczogKEsgfCBLW10pW10pOiB7IFtQIGluIEtdOiBUW1BdIH0gJiB7fTtcblx0cGljazxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCwgLi4uYXJnczogKHN0cmluZyB8IHN0cmluZ1tdKVtdKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdGNsb25lPFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogVDtcblx0Zm9yazxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCk6ICh0aGlzOiBvYmplY3QsIC4uLmZvcmtBcmdzOiB1bmtub3duW10pID0+IFQ7XG5cdHNpYmxpbmcoaW5zdGFuY2U6IG9iamVjdCk6IFNpYmxpbmdBY2Nlc3Nvcjtcblx0Y29sbGVjdENvbnN0cnVjdG9yczogKGluc3RhbmNlOiBvYmplY3QsIGZsYXQ/OiBib29sZWFuKSA9PiAoQ2FsbGFibGVGdW5jdGlvbiB8IHN0cmluZylbXTtcblx0bWVyZ2U8QSBleHRlbmRzIG9iamVjdCwgQiBleHRlbmRzIG9iamVjdD4oXG5cdFx0YTogQSxcblx0XHRiOiBCLFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxCLCBBPj47XG5cdHBhcnNlPFQgZXh0ZW5kcyBvYmplY3Q+KHNlbGY6IFQpOiBQYXJzZWQ8VD47XG5cdHBhcmVudDxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCk6IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0cGFyZW50PFQgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBQYXJlbnRQYXRoT2ZJbnN0YW5jZTxUPiAmIHN0cmluZz4oXG5cdFx0aW5zdGFuY2U6IFQsXG5cdFx0cGF0aDogS1xuXHQpOiBJbnN0YW5jZU9mVHlwZVJlZ2lzdHJ5PEs+IHwgdW5kZWZpbmVkO1xuXHRwYXJlbnQ8VCBleHRlbmRzIG9iamVjdD4oaW5zdGFuY2U6IFQsIHBhdGg6IHN0cmluZyk6IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0dG9KU09OPFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogc3RyaW5nO1xuXHRba2V5OiBzdHJpbmddOiBDYWxsYWJsZUZ1bmN0aW9uO1xufVxuXG4vLyBNYWluIG1uZW1vbmljYSBtb2R1bGUgaW50ZXJmYWNlIC0gcmVwcmVzZW50cyB0aGUgZXhwb3J0ZWQgbW9kdWxlIG9iamVjdFxuZXhwb3J0IGludGVyZmFjZSBNbmVtb25pY2FNb2R1bGUge1xuXHQvLyBDb3JlIGZ1bmN0aW9uc1xuXHRkZWZpbmU6IFR5cGVBYnNvcmJlcjtcblx0bG9va3VwOiB7XG5cdFx0KFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcpOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQ7XG5cdFx0PGNvbnN0IEsgZXh0ZW5kcyBrZXlvZiBUeXBlUmVnaXN0cnk+KFR5cGVOZXN0ZWRQYXRoOiBLKTogVHlwZVJlZ2lzdHJ5W0tdIHwgdW5kZWZpbmVkO1xuXHR9O1xuXHRhcHBseTogQXBwbHlGdW5jdGlvbjtcblx0Y2FsbDogQ2FsbEZ1bmN0aW9uO1xuXHRiaW5kOiBCaW5kRnVuY3Rpb247XG5cdGRlY29yYXRlOiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4gfCBjb25zdHJ1Y3Rvck9wdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuXHRcdHRhcmdldD86IFQsXG5cdFx0Y29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zXG5cdCkgPT4gPFUgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxvYmplY3Q+Pihjc3RyOiBVKSA9PiBEZWNvcmF0ZWRDbGFzczxVPjtcblx0cmVnaXN0ZXJIb29rOiA8VCBleHRlbmRzIG9iamVjdD4oQ29uc3RydWN0b3I6IElERUY8VD4sIGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vaykgPT4gdm9pZDtcblxuXHQvLyBEZXNjcmlwdG9yc1xuXHRkZWZhdWx0VHlwZXM6IFR5cGVzQ29sbGVjdGlvbjtcblxuXHQvLyBFcnJvcnNcblx0QkFTRV9NTkVNT05JQ0FfRVJST1I6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTjogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0V1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTjogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0V1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk46IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdEFMUkVBRFlfREVDTEFSRUQ6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX0FSR1VNRU5UU19VU0VEOiBNbmVtb25pY2FFcnJvckNvbnN0cnVjdG9yO1xuXHRXUk9OR19IT09LX1RZUEU6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE1JU1NJTkdfQ0FMTEJBQ0tfQVJHVU1FTlQ6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdC8vIEZMT1dfQ0hFQ0tFUl9SRURFRklOSVRJT046IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE1JU1NJTkdfSE9PS19DQUxMQkFDSzogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORzogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT046IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE9QVElPTlNfRVJST1I6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX1NUQUNLX0NMRUFORVI6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cblx0Ly8gQ29uc3RhbnRzXG5cdE1ORU1PTklDQTogc3RyaW5nO1xuXHRNTkVNT1NZTkU6IHN0cmluZztcblx0U3ltYm9sUGFyZW50VHlwZTogc3ltYm9sO1xuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWU6IHN5bWJvbDtcblx0U3ltYm9sRGVmYXVsdFR5cGVzQ29sbGVjdGlvbjogc3ltYm9sO1xuXHRTeW1ib2xDb25maWc6IHN5bWJvbDtcblx0VFlQRV9USVRMRV9QUkVGSVg6IHN0cmluZztcblx0RXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlcztcblxuXHQvLyBVdGlsc1xuXHR1dGlsczogVXRpbHNDb2xsZWN0aW9uO1xuXHRnZXRQcm9wczogKGluc3RhbmNlOiBvYmplY3QpID0+IFByb3BzVHlwZSB8IHVuZGVmaW5lZDtcblx0c2V0UHJvcHM6IChpbnN0YW5jZTogb2JqZWN0LCB2YWx1ZXM6IG9iamVjdCkgPT4gc3RyaW5nW10gfCBmYWxzZTtcblx0ZmluZFN1YlR5cGVGcm9tUGFyZW50OiAoaW5zdGFuY2U6IG9iamVjdCB8IHVuZGVmaW5lZCwgc3ViVHlwZTogc3RyaW5nKSA9PiBvYmplY3QgfCBudWxsO1xuXHRpc0NsYXNzOiAoZm46IENhbGxhYmxlRnVuY3Rpb24pID0+IGJvb2xlYW47XG5cblx0Ly8gY3JlYXRlVHlwZXNDb2xsZWN0aW9uXG5cdGNyZWF0ZVR5cGVzQ29sbGVjdGlvbjogQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb247XG5cblx0Ly8gQWxsb3cgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuLyogZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiICovXG5cbmltcG9ydCB0eXBlIHsgVHlwZVJlZ2lzdHJ5IH0gZnJvbSAnLi4vaW5kZXgnO1xuXG4vLyBQcm9wcyB0eXBlIGZvciBnZXRQcm9wcy9zZXRQcm9wc1xuZXhwb3J0IHR5cGUgUHJvcHNUeXBlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8vIENvcmUgdHlwZSBkZWZpbml0aW9ucyBmb3IgbW5lbW9uaWNhXG5cbi8vIEJhc2UgY29uc3RydWN0b3IgZnVuY3Rpb24gdHlwZSAtIGNhbiBiZSBhIGNsYXNzIGNvbnN0cnVjdG9yIG9yIGEgZnVuY3Rpb24uXG4vLyBBcmdzIGRlZmF1bHRzIHRvIHVua25vd25bXSBzbyBJREVGPFQ+IGlzIGJhY2t3YXJkcyBjb21wYXRpYmxlO1xuLy8gc3VwcGx5IEFyZ3MgdG8gZ2V0IHR5cGVkIGNvbnN0cnVjdG9yIHBhcmFtczogSURFRjxNeVR5cGUsIFtzdHJpbmcsIG51bWJlcl0+XG5leHBvcnQgdHlwZSBJREVGPFQsIEFyZ3MgZXh0ZW5kcyB1bmtub3duW10gPSB1bmtub3duW10+ID0geyBuZXcoKTogVCB9IHwgeyAodGhpczogVCwgLi4uYXJnczogQXJncyk6IHZvaWQgfTtcblxuLy8gRXJyb3IgbWVzc2FnZSB0eXBlcyAtIGFsbCBlcnJvciBtZXNzYWdlcyBhcmUgc3RyaW5nc1xuZXhwb3J0IHR5cGUgRXJyb3JNZXNzYWdlS2V5ID1cblx0fCAnQkFTRV9FUlJPUl9NRVNTQUdFJ1xuXHR8ICdIQU5ETEVSX01VU1RfQkVfQV9GVU5DVElPTidcblx0fCAnV1JPTkdfVFlQRV9ERUZJTklUSU9OJ1xuXHR8ICdXUk9OR19JTlNUQU5DRV9JTlZPQ0FUSU9OJ1xuXHR8ICdXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTidcblx0fCAnQUxSRUFEWV9ERUNMQVJFRCdcblx0fCAnV1JPTkdfQVJHVU1FTlRTX1VTRUQnXG5cdHwgJ1dST05HX0hPT0tfVFlQRSdcblx0fCAnTUlTU0lOR19IT09LX0NBTExCQUNLJ1xuXHR8ICdNSVNTSU5HX0NBTExCQUNLX0FSR1VNRU5UJ1xuXHR8ICdPUFRJT05TX0VSUk9SJ1xuXHR8ICdXUk9OR19TVEFDS19DTEVBTkVSJztcblx0Ly8gfCAnVFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORydcblx0Ly8gfCAnRkxPV19DSEVDS0VSX1JFREVGSU5JVElPTidcblxuLy8gRXJyb3IgbWVzc2FnZXMgb2JqZWN0IHR5cGVcbmV4cG9ydCB0eXBlIEVycm9yTWVzc2FnZXMgPSBSZWNvcmQ8RXJyb3JNZXNzYWdlS2V5LCBzdHJpbmc+O1xuXG4vLyBIb29rIGNhbGxiYWNrIOKAlCBwYXNzZWQgdG8gcmVnaXN0ZXJIb29rIGFuZCBpbnZva2VkIGJ5IGludm9rZUhvb2tcbmV4cG9ydCBpbnRlcmZhY2UgaG9vayBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQob3B0czogaG9va3NPcHRzKTogdW5rbm93bjtcbn1cblxuLy8gRXJyb3IgY29uc3RydWN0b3IgZnJvbSBjb25zdHJ1Y3RFcnJvciAtIGNvbnN0cnVjdGFibGUgZnVuY3Rpb24gd2l0aCBwcm90b3R5cGVcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3RvciB7XG5cdG5ldyhhZGRpdGlvbj86IHN0cmluZywgc3RhY2s/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IEVycm9yO1xuXHQobmFtZTogc3RyaW5nKTogRXJyb3I7XG5cdHByb3RvdHlwZToge1xuXHRcdGNvbnN0cnVjdG9yOiBNbmVtb25pY2FFcnJvckNvbnN0cnVjdG9yO1xuXHR9O1xufVxuXG4vLyBFcnJvcnMgdHlwZXMgbWFwIC0gaW5kZXhhYmxlIHJlY29yZCBvZiBlcnJvciBjb25zdHJ1Y3RvcnNcbmV4cG9ydCB0eXBlIEVycm9yc1R5cGVzTWFwID0gUmVjb3JkPHN0cmluZywgTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcj47XG5cbi8vIE1uZW1vbmljYSBlcnJvciBpbnRlcmZhY2UgZm9yIGV4dGVuZGVkIEVycm9yIG9iamVjdHNcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG5cdGV4Y2VwdGlvblJlYXNvbj86IEVycm9yO1xuXHRyZWFzb25zPzogRXJyb3JbXTtcblx0c3VycGx1cz86IEVycm9yW107XG59XG5cbi8qKlxuICogSW50ZXJuYWwgVHlwZSBDb25zdHJ1Y3Rvci5cbiAqIFwiVHlwZVwiIGhlcmUgaXMgdXNlZCBpbiB0aGUgQ29tcHV0ZXIgU2NpZW5jZSBzZW5zZSDigJQgYW4gaW50ZXJmYWNlL2NvbnRyYWN0XG4gKiBkZXNjcmliaW5nIHdoYXQgYSBjb25zdHJ1Y3RvciBtdXN0IHNhdGlzZnkgKGJvdGggYG5ld2AtYWJsZSBhbmQgY2FsbGFibGUpLlxuICogVEMgPSBUeXBlIENvbnN0cnVjdG9yOyBcIkludGVybmFsXCIgbWVhbnMgdGhpcyBpcyB0aGUgbGlicmFyeSdzIG93biBjb25zdHJ1Y3RvclxuICogc2hhcGUsIGRpc3RpbmN0IGZyb20gdXNlci1mYWNpbmcgVHlwZUNvbnN0cnVjdG9yIGJlbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9JbnRlcm5hbF9UQ188Q29uc3RydWN0b3JJbnN0YW5jZSBleHRlbmRzIG9iamVjdD4ge1xuXHRuZXcoLi4uYXJnczogdW5rbm93bltdKTogQ29uc3RydWN0b3JJbnN0YW5jZTtcblx0KHRoaXM6IENvbnN0cnVjdG9ySW5zdGFuY2UsIC4uLmFyZ3M6IHVua25vd25bXSk6IENvbnN0cnVjdG9ySW5zdGFuY2U7XG5cdHJlYWRvbmx5IHByb3RvdHlwZTogQ29uc3RydWN0b3JJbnN0YW5jZSAmIHtcblx0XHRyZWFkb25seSBjb25zdHJ1Y3RvcjogX0ludGVybmFsX1RDXzxDb25zdHJ1Y3Rvckluc3RhbmNlPlxuXHR9O1xufVxuXG4vKipcbiAqIFB1YmxpYyBhbGlhcyBmb3IgX0ludGVybmFsX1RDXyDigJQgdGhlIHNoYXBlIG9mIGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyByZXR1cm5lZCBieSBgZGVmaW5lKClgLlxuICogQXVnbWVudGVkIGJ5IHRhY3RpY2EtZ2VuZXJhdGVkIFR5cGVSZWdpc3RyeSB0byBiZWNvbWUgdXNlci1zcGVjaWZpYyB0eXBlcy5cbiAqIEtlcHQgYXMgYSBuYW1lZCBhbGlhcyAocmF0aGVyIHRoYW4gaW5saW5pbmcgX0ludGVybmFsX1RDXykgc28gdGFjdGljYSBjYW4gcmVmZXJlbmNlIGl0XG4gKiBjbGVhbmx5IGluIGdlbmVyYXRlZCBkZWNsYXJhdGlvbiBmaWxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZUNvbnN0cnVjdG9yPENvbnN0cnVjdG9ySW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+ID0gX0ludGVybmFsX1RDXzxDb25zdHJ1Y3Rvckluc3RhbmNlPjtcblxuLyoqXG4gKiBNaW5pbWFsIGNvbnN0cnVjdG9yIHNoYXBlIHVzZWQgZm9yIHRoZSBUeXBlUmVnaXN0cnkgaW5kZXggc2lnbmF0dXJlLlxuICogSXQgYWNjZXB0cyBhbnkgbW5lbW9uaWNhLWNvbXBhdGlibGUgY29uc3RydWN0b3IsIGJ1dCBkZWxpYmVyYXRlbHkgcmV0dXJuc1xuICogYG9iamVjdGAgc28gdW5hdWdtZW50ZWQgcmVnaXN0cnkgbG9va3VwcyBhcmUgbm90IHVzZWZ1bCB3aXRob3V0IGFuIGV4cGxpY2l0XG4gKiBwZXIta2V5IGNvbnN0cnVjdG9yIHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUNvbnN0cnVjdG9yQmFzZSB7XG5cdG5ldyAoLi4uYXJnczogdW5rbm93bltdKTogb2JqZWN0O1xufVxuXG4vKipcbiAqIEluc3RhbmNlIHR5cGUgcHJvZHVjZWQgYnkgYSBUeXBlUmVnaXN0cnkgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlT2ZUeXBlUmVnaXN0cnk8SyBleHRlbmRzIGtleW9mIFR5cGVSZWdpc3RyeT4gPVxuXHRUeXBlUmVnaXN0cnlbS10gZXh0ZW5kcyBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gaW5mZXIgUiA/IFIgOiBuZXZlcjtcblxuXG4vKipcbiAqIEV4dHJhY3Qgb25seSB0aGUgbGl0ZXJhbCBzdHJpbmcga2V5cyBvZiBhIHR5cGUsIGZpbHRlcmluZyBvdXQgZ2VuZXJpY1xuICogaW5kZXggc2lnbmF0dXJlcy4gVGhpcyBsZXRzIHVzIGl0ZXJhdGUgb3ZlciBhdWdtZW50ZWQgVHlwZVJlZ2lzdHJ5IGtleXNcbiAqIHdpdGhvdXQgcGlja2luZyB1cCB0aGUgYFtrZXk6IHN0cmluZ11gIHNpZ25hdHVyZS5cbiAqL1xuZXhwb3J0IHR5cGUgTGl0ZXJhbEtleXNPZjxUPiA9IGtleW9mIFQgZXh0ZW5kcyBpbmZlciBLXG5cdD8gSyBleHRlbmRzIHN0cmluZ1xuXHRcdD8gc3RyaW5nIGV4dGVuZHMgSyA/IG5ldmVyIDogS1xuXHRcdDogbmV2ZXJcblx0OiBuZXZlcjtcblxuLyoqXG4gKiBHaXZlbiBhIGRvdHRlZCBUeXBlUmVnaXN0cnkga2V5LCBleHRyYWN0IHRoZSBwYXJlbnQgcGF0aC5cbiAqIGBQYXJlbnRQYXRoPCdBLkIuQyc+YCDihpIgYCdBLkInYC5cbiAqL1xuZXhwb3J0IHR5cGUgUGFyZW50UGF0aDxLIGV4dGVuZHMgc3RyaW5nPiA9XG5cdEsgZXh0ZW5kcyBgJHtpbmZlciBQfS4ke3N0cmluZ31gID8gUCA6IG5ldmVyO1xuXG4vKipcbiAqIEdpdmVuIGEgZG90dGVkIFR5cGVSZWdpc3RyeSBrZXksIHJldHVybiB0aGUgdW5pb24gb2YgYWxsIGFuY2VzdG9yIHByZWZpeGVzLlxuICogYEFsbFBhcmVudFByZWZpeGVzPCdBLkIuQyc+YCDihpIgYCdBJyB8ICdBLkInYC5cbiAqL1xuZXhwb3J0IHR5cGUgQWxsUGFyZW50UHJlZml4ZXM8SyBleHRlbmRzIHN0cmluZz4gPVxuXHRLIGV4dGVuZHMgYCR7aW5mZXIgUH0uJHtzdHJpbmd9YCA/IFAgfCBBbGxQYXJlbnRQcmVmaXhlczxQPiA6IG5ldmVyO1xuXG4vKipcbiAqIEdpdmVuIGEgcGFyZW50IHBhdGgsIHJldHVybiB0aGUgdW5pb24gb2YgVHlwZVJlZ2lzdHJ5IGtleXMgdGhhdCBhcmUgZGlyZWN0XG4gKiBvciBpbmRpcmVjdCBjaGlsZHJlbiBvZiB0aGF0IHBhdGguXG4gKi9cbmV4cG9ydCB0eXBlIENoaWxkS2V5c09mPFAgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuXHRbSyBpbiBrZXlvZiBUeXBlUmVnaXN0cnldOiBLIGV4dGVuZHMgYCR7UH0uJHtzdHJpbmd9YCA/IEsgOiBuZXZlclxufVtrZXlvZiBUeXBlUmVnaXN0cnldO1xuXG4vKipcbiAqIEdpdmVuIGFuIGluc3RhbmNlIHR5cGUsIGZpbmQgdGhlIFR5cGVSZWdpc3RyeSBrZXkocykgd2hvc2UgY29uc3RydWN0b3JcbiAqIHJldHVybnMgdGhhdCBpbnN0YW5jZSB0eXBlLiBUaGlzIGludmVydHMgdGhlIHJlZ2lzdHJ5IGF0IHRoZSB0eXBlIGxldmVsXG4gKiBzbyB1dGlsaXRpZXMgbGlrZSBgcGFyZW50KClgIGNhbiBkZXJpdmUgYW4gaW5zdGFuY2UncyBwYXRoIGZyb20gaXRzXG4gKiB0eXBlIGFsb25lLlxuICovXG5leHBvcnQgdHlwZSBQYXRoT2ZJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0W0sgaW4gTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTogVHlwZVJlZ2lzdHJ5W0tdIGV4dGVuZHMgbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IGluZmVyIFJcblx0XHQ/IFQgZXh0ZW5kcyBSID8gSyA6IG5ldmVyXG5cdFx0OiBuZXZlclxufVtMaXRlcmFsS2V5c09mPFR5cGVSZWdpc3RyeT5dO1xuXG4vKipcbiAqIEdpdmVuIGFuIGluc3RhbmNlIHR5cGUsIHJldHVybiB0aGUgdW5pb24gb2YgVHlwZVJlZ2lzdHJ5IHBhdGhzIHRoYXQgYXJlXG4gKiB2YWxpZCBwYXJlbnQgbG9va3VwcyBmb3IgdGhhdCBpbnN0YW5jZS4gUm9vdCB0eXBlcyBwcm9kdWNlIGBuZXZlcmAgYmVjYXVzZVxuICogdGhleSBoYXZlIG5vIHBhcmVudCBwYXRoLlxuICovXG5leHBvcnQgdHlwZSBQYXJlbnRQYXRoT2ZJbnN0YW5jZTxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0W0sgaW4gTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTogVHlwZVJlZ2lzdHJ5W0tdIGV4dGVuZHMgbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IGluZmVyIFJcblx0XHQ/IFQgZXh0ZW5kcyBSID8gQWxsUGFyZW50UHJlZml4ZXM8Sz4gOiBuZXZlclxuXHRcdDogbmV2ZXJcbn1bTGl0ZXJhbEtleXNPZjxUeXBlUmVnaXN0cnk+XTtcblxuLy8gSG9vayB0eXBlc1xuZXhwb3J0IHR5cGUgaG9va3NUeXBlcyA9ICdwcmVDcmVhdGlvbicgfCAncG9zdENyZWF0aW9uJyB8ICdjcmVhdGlvbkVycm9yJztcblxuLy8gSG9vayBvcHRpb25zIHBhc3NlZCB0byBob29rIGNhbGxiYWNrc1xuLy8gUCA9IHBhcmVudCAvIGV4aXN0ZW50IGluc3RhbmNlIChwcm90bylcbi8vIFQgPSBjaGlsZCAvIGluaGVyaXRlZCBpbnN0YW5jZSAodHlwZSBiZWluZyBjcmVhdGVkKVxuZXhwb3J0IHR5cGUgaG9va3NPcHRzPFAgPSBvYmplY3QsIFQgPSBQPiA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0dHlwZTogVHlwZURlZjtcblx0YXJnczogdW5rbm93bltdO1xuXHRleGlzdGVudEluc3RhbmNlOiBQO1xuXHRpbmhlcml0ZWRJbnN0YW5jZT86IFQ7XG5cdGNyZWF0b3I/OiB7IHRocm93TW9kaWZpY2F0aW9uRXJyb3IoZXJyb3I6IEVycm9yKTogdm9pZCB9O1xufTtcblxuLy8gQ2FsbGJhY2sgcGFzc2VkIGludG8gTW9kaWZpY2F0aW9uQ29uc3RydWN0b3IgdG8gYXR0YWNoIGludGVybmFsIHByb3BzIHRvIHRoZSBwcm90b3R5cGVcbmV4cG9ydCBpbnRlcmZhY2UgQWRkUHJvcHNDYWxsYmFjayBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQocHJvdG86IG9iamVjdCk6IHZvaWQ7XG59XG5cbi8vIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yOiB3aXJlcyBwcm90b3R5cGUgY2hhaW4gZHVyaW5nIGluc3RhbmNlIGNyZWF0aW9uXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdChcblx0XHR0aGlzOiBvYmplY3QsXG5cdFx0TW9kaWZpY2F0b3JUeXBlOiBNbmVtb25pY2FDb25zdHJ1Y3Rvcixcblx0XHRNb2RpZmljYXRvclR5cGVQcm90b3R5cGU6IG9iamVjdCxcblx0XHRfYWRkUHJvcHM6IEFkZFByb3BzQ2FsbGJhY2tcblx0KTogTW5lbW9uaWNhQ29uc3RydWN0b3I7XG59XG5cbi8vIEZhY3RvcnkgdGhhdCByZXR1cm5zIGEgTW9kaWZpY2F0aW9uQ29uc3RydWN0b3IgKHVzZWQgaW4gY29uc3RydWN0b3JPcHRpb25zKVxuZXhwb3J0IGludGVyZmFjZSBNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnkgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KCk6IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yO1xufVxuXG4vLyBGYWN0b3J5IHRoYXQgcmV0dXJucyBhIE1uZW1vbmljYUNvbnN0cnVjdG9yIChzdG9yZWQgaW4gVHlwZURlZi5jb25zdHJ1Y3RIYW5kbGVyKVxuZXhwb3J0IGludGVyZmFjZSBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3RvcnkgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KCk6IE1uZW1vbmljYUNvbnN0cnVjdG9yO1xufVxuXG4vLyBNYXJrcyB0aGUgdG9wIG9mIGEgY2FwdHVyZWQgc3RhY2sgdHJhY2UgKHBhc3NlZCB0byBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSBhcyBjb25zdHJ1Y3Rvck9wdClcbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tCb3VuZGFyeSBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge31cblxuLy8gQSB3cmFwcGFibGUgdXRpbGl0eSBtZXRob2Qg4oCUIGFueSBjYWxsYWJsZSB0aGF0IHdyYXBUaGlzKCkgY2FuIHByb3h5XG5leHBvcnQgaW50ZXJmYWNlIFdyYXBwYWJsZU1ldGhvZCBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge31cblxuLy8gQ29uc3RydWN0b3Igb3B0aW9ucyBmb3IgZGVmaW5lXG5leHBvcnQgdHlwZSBjb25zdHJ1Y3Rvck9wdGlvbnMgPSB7XG5cdC8vIGV4cGxpY2l0IGRlY2xhcmF0aW9uIHdlIHdpc2ggdXNlXG5cdC8vIGFuIG9sZCBzdHlsZSBiYXNlZCBjb25zdHJ1Y3RvcnNcblx0TW9kaWZpY2F0aW9uQ29uc3RydWN0b3I/OiBNb2RpZmljYXRpb25Db25zdHJ1Y3RvckZhY3RvcnksXG5cdC8vIHNoYWxsIG9yIG5vdCB3ZSB1c2Ugc3RyaWN0IGNoZWNraW5nXG5cdC8vIGZvciBjcmVhdGlvbiBzdWItaW5zdGFuY2VzIE9ubHkgZnJvbSBjdXJyZW50IHR5cGVcblx0Ly8gb3Igd2UgbWlnaHQgdXNlIHVwLW5lc3RlZCBzdWItaW5zdGFuY2VzIGZyb20gY2hhaW5cblx0c3RyaWN0Q2hhaW4/OiBib29sZWFuLFxuXHQvLyBzaG91bGQgd2UgdXNlIGZvcmNlZCBlcnJvcnMgY2hlY2tpbmdcblx0Ly8gdG8gbWFrZSBhbGwgaW5oZXJpdGVkIHR5cGVzIGVycm9yZWRcblx0Ly8gaWYgdGhlcmUgaXMgYW4gZXJyb3Igc29tZXdoZXJlIGluIGNoYWluXG5cdGJsb2NrRXJyb3JzPzogYm9vbGVhbixcblx0Ly8gaWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGNvbGxlY3Qgc3RhY2tcblx0Ly8gYXMgYSBfX3N0YWNrX18gcHJvdG90eXBlIHByb3BlcnR5XG5cdC8vIGR1cmluZyB0aGUgcHJvY2VzcyBvZiBpbnN0YW5jZSBjcmVhdGlvblxuXHRzdWJtaXRTdGFjaz86IGJvb2xlYW4sXG5cdC8vIGF3YWl0IG5ldyBDb25zdHJ1Y3RvcigpXG5cdC8vIG11c3QgcmV0dXJuIHZhbHVlXG5cdGF3YWl0UmV0dXJuPzogYm9vbGVhbixcblx0Ly8gRm9yY2UgY2xhc3MgbW9kZSAoYXV0by1kZXRlY3RlZCBieSBkZWZhdWx0KVxuXHRhc0NsYXNzPzogYm9vbGVhbixcbn07XG5cbi8vIFN1YnR5cGVzIG1hcCAtIHJlcHJlc2VudHMgdGhlIHN1YnR5cGVzIHByb3BlcnR5XG5leHBvcnQgdHlwZSBTdWJ0eXBlc01hcCA9IE1hcDxzdHJpbmcsIFR5cGVDbGFzcz47XG5cbi8vIFR5cGUgZGVmaW5pdGlvbiBvYmplY3QgKGludGVybmFsIHByb3BlcnRpZXMpXG5leHBvcnQgdHlwZSBUeXBlRGVmID0ge1xuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRwcm90bzogb2JqZWN0O1xuXHRpc1N1YlR5cGU6IGJvb2xlYW47XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0Y29sbGVjdGlvbjogQ29sbGVjdGlvbkRlZjtcblx0Y29uZmlnOiBjb25zdHJ1Y3Rvck9wdGlvbnM7XG5cdHBhcmVudFR5cGU/OiBUeXBlRGVmO1xuXHRjb25zdHJ1Y3RIYW5kbGVyOiBNbmVtb25pY2FDb25zdHJ1Y3RvckZhY3Rvcnk7XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGhvb2tzOiBSZWNvcmQ8c3RyaW5nLCBTZXQ8aG9vaz4+O1xuXHRpbnZva2VIb29rOiAoaG9va1R5cGU6IGhvb2tzVHlwZXMsIG9wdHM6IGhvb2tzT3B0cykgPT4gU2V0PHVua25vd24+O1xuXHRwcm90b3R5cGU6IHVua25vd247XG5cdHN0YWNrPzogc3RyaW5nO1xuXHRbU3ltYm9sLmhhc0luc3RhbmNlXTogKGluc3RhbmNlOiBvYmplY3QpID0+IGJvb2xlYW47XG59O1xuXG4vLyBDb2xsZWN0aW9uIGRlZmluaXRpb25cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25EZWYgPSBIb29rYWJsZSAmIHtcblx0ZGVmaW5lOiBUeXBlQWJzb3JiZXI7XG5cdGxvb2t1cDogVHlwZUxvb2t1cDtcblx0c3VidHlwZXM6IFN1YnR5cGVzTWFwO1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuLy8gVHlwZSBsb29rdXAgZnVuY3Rpb24gdHlwZTogbWF5IGhhdmUgYXVnbWVudGF0aW9uIGJ5IFRhY3RpY2EgcmUtZGVmaW5pdGlvblxuZXhwb3J0IGludGVyZmFjZSBUeXBlTG9va3VwIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdCh0aGlzOiBNYXA8c3RyaW5nLCB1bmtub3duPiwgVHlwZU5lc3RlZFBhdGg6IHN0cmluZyk6IFR5cGVDbGFzcyB8IHVuZGVmaW5lZDtcbn1cblxuLy8gU3BlY2lmaWNhdGlvbiBmb3IgY2hhaW5lZCBzdWJ0eXBlIGNyZWF0aW9uIHdpdGggLnRoZW4oKVxuZXhwb3J0IGludGVyZmFjZSBUaGVuU3BlYyB7XG5cdHN1YnR5cGU6IG9iamVjdDtcblx0YXJnczogdW5rbm93bltdO1xuXHRuYW1lPzogc3RyaW5nO1xufVxuXG4vLyBDb250ZXh0IG9iamVjdCBwYXNzZWQgdGhyb3VnaCB0aGUgSW5zdGFuY2VDcmVhdG9yIHBpcGVsaW5lXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQge1xuXHR0eXBlOiBUeXBlRGVmO1xuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRleGlzdGVudEluc3RhbmNlOiBvYmplY3Q7XG5cdGFyZ3M6IHVua25vd25bXTtcblx0TW9kaWZpY2F0aW9uQ29uc3RydWN0b3I6IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yO1xuXHRNb2RpZmljYXRvclR5cGU6IE1uZW1vbmljYUNvbnN0cnVjdG9yO1xuXHRJbnN0YW5jZU1vZGlmaWNhdG9yOiBNbmVtb25pY2FDb25zdHJ1Y3Rvcjtcblx0aW5oZXJpdGVkSW5zdGFuY2U6IG9iamVjdCB8IFByb21pc2U8b2JqZWN0Pjtcblx0Y29uZmlnOiBjb25zdHJ1Y3Rvck9wdGlvbnM7XG5cdHByb3RvOiBvYmplY3Q7XG5cdF9fcHJvdG9fcHJvdG9fXz86IG9iamVjdDtcblx0c3RhY2s/OiBzdHJpbmdbXTtcblxuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2soZXhpc3RlbnRJbnN0YW5jZTogb2JqZWN0KTogdW5rbm93bjtcblx0cG9zdFByb2Nlc3NpbmcoY29udGludWF0aW9uT2Y/OiBUeXBlRGVmKTogdm9pZDtcblx0bWFrZUF3YWl0ZXIodHlwZTogVHlwZURlZiwgdGhlbj86IFRoZW5TcGVjKTogUHJvbWlzZTxvYmplY3Q+O1xuXHRhZGRUaGVuKHRoZW46IFRoZW5TcGVjKTogdm9pZDtcblx0aW52b2tlUHJlSG9va3MoKTogdm9pZDtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0dGhyb3dNb2RpZmljYXRpb25FcnJvcihlcnJvcjogTW5lbW9uaWNhRXJyb3IpOiB2b2lkO1xufVxuXG4vKipcbiAqIFByb3RvIG1lcmdlIHR5cGUgLSBjb21iaW5lcyBwYXJlbnQgYW5kIGNoaWxkIHR5cGVzIHdpdGhvdXQgcHJvcGVydHkgY29uZmxpY3RzLlxuICpcbiAqIFdoZW4gYSBzdWJ0eXBlIGlzIGRlZmluZWQgZnJvbSBhIHBhcmVudCBpbnN0YW5jZSwgd2Ugd2FudCB0aGUgY2hpbGQgcHJvcGVydGllc1xuICogdG8gdGFrZSBwcmVjZWRlbmNlLiBgRXhjbHVkZTxrZXlvZiBQLCBrZXlvZiBUPmAgcmVtb3ZlcyBvdmVybGFwcGluZyBrZXlzIGZyb20gUCxcbiAqIHNvIGBQaWNrPFAsIC4uLj5gIG9ubHkgYnJpbmdzIGluIHBhcmVudCBwcm9wZXJ0aWVzIHRoYXQgZG9uJ3QgY2xhc2ggd2l0aCBjaGlsZC5cbiAqXG4gKiBSZXN1bHQ6IGNoaWxkIFQgZ2V0cyBhbGwgaXRzIG93biBwcm9wcywgcGx1cyBwYXJlbnQncyBub24tb3ZlcmxhcHBpbmcgcHJvcHMuXG4gKi9cbmV4cG9ydCB0eXBlIFByb3RvPFAgZXh0ZW5kcyBvYmplY3QsIFQgZXh0ZW5kcyBvYmplY3Q+ID0gVCAmIFBpY2s8UCwgRXhjbHVkZTxrZXlvZiBQLCBrZXlvZiBUPj47XG5cblxuLy8gZXhwb3J0IHR5cGUgUHJvdG9GbGF0PFxuLy8gXHRQIGV4dGVuZHMgb2JqZWN0LFxuLy8gXHRUIGV4dGVuZHMgb2JqZWN0LFxuLy8gXHRGIGV4dGVuZHMgUHJvdG88UCwgVD4gPSBQcm90bzxQLCBUPlxuLy8gPiA9IHsgW2tleSBpbiBrZXlvZiBGXTogRltrZXldfSA7XG5cbmV4cG9ydCB0eXBlIFByb3RvRmxhdDxcblx0UCBleHRlbmRzIG9iamVjdCxcblx0VCBleHRlbmRzIG9iamVjdCxcblx0TCBleHRlbmRzIEV4Y2x1ZGU8a2V5b2YgUCwga2V5b2YgVD4gPSBFeGNsdWRlPGtleW9mIFAsIGtleW9mIFQ+LFxuPiA9IHtcbiAgICBba2V5IGluIGtleW9mIFRdOiBUW2tleV07XG59ICYge1xuXHRba2V5IGluIExdOiBQW2tleV07XG59O1xuXG4vLyBNbmVtb25pY2EgaW5zdGFuY2UgbWV0aG9kIGtleXMuIFRoZXNlIGFyZSBmaWx0ZXJlZCBvdXQgb2YgZXh0cmFjdGVkL21lcmdlZFxuLy8gZmllbGQtb25seSB2aWV3cyBiZWNhdXNlIHRoZXkgYmVsb25nIHRvIHRoZSBwcm90b3R5cGUsIG5vdCB0byB0aGUgdXNlcidzXG4vLyBlbnVtZXJhYmxlIGRhdGEgcHJvcGVydGllcy5cbmV4cG9ydCB0eXBlIE1uZW1vbmljYUluc3RhbmNlTWV0aG9kS2V5cyA9XG5cdCdleHRyYWN0JyB8ICdwaWNrJyB8ICdwYXJlbnQnIHwgJ2Nsb25lJyB8ICdmb3JrJyB8ICdleGNlcHRpb24nIHwgJ3NpYmxpbmcnO1xuXG5leHBvcnQgdHlwZSBGbGF0dGVuPEY+ID0geyBba2V5IGluIGtleW9mIEZdOiBGW2tleV0gfVxuXG4vLyBFeHRyYWN0ZWQ8VD46IHRoZSBzaGFwZSByZXR1cm5lZCBieSB1dGlscy5leHRyYWN0KGluc3RhbmNlKS5cbi8vIEl0IGNvbnRhaW5zIHRoZSBlbnVtZXJhYmxlIHN0cmluZy1rZXllZCB1c2VyIHByb3BlcnRpZXMgb2YgdGhlIGluc3RhbmNlLFxuLy8gb21pdHRpbmcgTW5lbW9uaWNhSW5zdGFuY2UgbWV0aG9kcyAoZXh0cmFjdCwgcGljaywgcGFyZW50LCBjbG9uZSwgZm9yayxcbi8vIGV4Y2VwdGlvbiwgc2libGluZykuIE9wdGlvbmFsaXR5IGlzIHByZXNlcnZlZCBmcm9tIHRoZSBzb3VyY2UgdHlwZS5cbi8vIFRoZSBgJiB7fWAgdHJpY2sgZm9yY2VzIFR5cGVTY3JpcHQgdG8gZXhwYW5kIHRoZSBhbGlhcyBpbiBob3ZlciB0b29sdGlwc1xuLy8gc28gaXQgcmVuZGVycyBhcyBhIHBsYWluIG9iamVjdCBsaXRlcmFsIGluc3RlYWQgb2YgXCJFeHRyYWN0ZWQ8ey4uLn0+XCIuXG5leHBvcnQgdHlwZSBFeHRyYWN0ZWQ8VCBleHRlbmRzIG9iamVjdD4gPSB7XG5cdFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IChLIGV4dGVuZHMgTW5lbW9uaWNhSW5zdGFuY2VNZXRob2RLZXlzID8gbmV2ZXIgOiBLKSA6IG5ldmVyXTogVFtLXTtcbn0gJiB7fTtcblxuLy8gUGFyc2VkPFQ+OiB0aGUgc2hhcGUgcmV0dXJuZWQgYnkgdXRpbHMucGFyc2UoaW5zdGFuY2UpLlxuLy8gSXQgaXMgYSBvbmUtbGV2ZWwgc25hcHNob3Qgb2YgdGhlIGluc3RhbmNlJ3MgcHJvdG90eXBlIGNoYWluLlxuLy8gYHByb3BzYCBjb250YWlucyB0aGUgaW5zdGFuY2UncyBlbnVtZXJhYmxlIHVzZXIgcHJvcGVydGllcztcbi8vIGBqb2ludGAgY29udGFpbnMgZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGNvcGllZCBmcm9tIHRoZSBpbW1lZGlhdGUgcHJvdG90eXBlO1xuLy8gYHBhcmVudGAgaXMgdGhlIG5leHQgbGluayB1cCB0aGUgY2hhaW4gKGN1cnJlbnRseSBub3QgcmVjdXJzaXZlbHkgcGFyc2VkKS5cbmV4cG9ydCB0eXBlIFBhcnNlZDxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcblx0bmFtZTogc3RyaW5nO1xuXHRwcm9wczogRXh0cmFjdGVkPFQ+O1xuXHRzZWxmOiBUO1xuXHRwcm90bzogb2JqZWN0O1xuXHRqb2ludDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdHBhcmVudDogb2JqZWN0IHwgdW5kZWZpbmVkO1xufTtcblxuLy8gU2libGluZyB0eXBlIGFjY2Vzc29yXG5leHBvcnQgaW50ZXJmYWNlIFNpYmxpbmdBY2Nlc3NvciB7XG5cdChTaWJsaW5nVHlwZU5hbWU6IHN0cmluZyk6IFR5cGVDbGFzcyB8IHVuZGVmaW5lZDtcblx0W2tleTogc3RyaW5nXTogVHlwZUNsYXNzIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBNbmVtb25pY2EgaW5zdGFuY2UgbWV0aG9kcyBpbnRlcmZhY2UgKG9wdC1pbikuXG4vLyBUaGVzZSBtZXRob2RzIHVzZWQgdG8gYmUgYXV0by1pbmplY3RlZCBvbnRvIGV2ZXJ5IGluc3RhbmNlLiBUaGV5IGFyZSBub3dcbi8vIGF2YWlsYWJsZSBvbmx5IHdoZW4gYSB0eXBlIGV4cGxpY2l0bHkgYWRkcyB0aGVtIHRvIGl0cyBwcm90b3R5cGUuXG4vLyBVc2VycyBjYW4gc3RpbGwgdXNlIHRoaXMgaW50ZXJmYWNlIHRvIHR5cGUgdGhlaXIgb3duIHJvb3QtbGV2ZWwgaGVscGVycy5cbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhSW5zdGFuY2U8VCBleHRlbmRzIG9iamVjdCA9IG9iamVjdD4ge1xuXHRleHRyYWN0KCk6IEV4dHJhY3RlZDxUPjtcblx0cGljazxLIGV4dGVuZHMga2V5b2YgVD4oLi4ua2V5czogKEsgfCBLW10pW10pOiB7IFtQIGluIEtdOiBUW1BdIH0gJiB7fTtcblx0cGljayguLi5rZXlzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRwYXJlbnQoKTogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRwYXJlbnQ8SyBleHRlbmRzIFBhcmVudFBhdGhPZkluc3RhbmNlPHRoaXM+ICYgc3RyaW5nPihcblx0XHRjb25zdHJ1Y3Rvckxvb2t1cFBhdGg6IEtcblx0KTogSW5zdGFuY2VPZlR5cGVSZWdpc3RyeTxLPiB8IHVuZGVmaW5lZDtcblx0cGFyZW50KGNvbnN0cnVjdG9yTG9va3VwUGF0aDogc3RyaW5nKTogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRyZWFkb25seSBjbG9uZTogdGhpcztcblx0Zm9yayguLi5mb3JrQXJnczogdW5rbm93bltdKTogdGhpcztcblx0ZXhjZXB0aW9uKGVycm9yOiBFcnJvciwgLi4uYXJnczogdW5rbm93bltdKTogRXJyb3I7XG5cdHJlYWRvbmx5IHNpYmxpbmc6IFNpYmxpbmdBY2Nlc3Nvcjtcbn1cblxuLy8gSW5zdGFuY2UgcHJvcGVydGllcyBmb3IgX19zZWxmX18gcmVmZXJlbmNlXG4vLyBUaGlzIG1lcmdlcyBpbnRlcm5hbCBwcm9wcyB3aXRoIHRoZSBpbnN0YW5jZSBtZXRob2RzXG4vLyBJbnRlcm5hbCBpbnN0YW5jZSBwcm9wZXJ0aWVzIChub24tZW51bWVyYWJsZSlcbi8vIFRoZXNlIGFyZSBhbHdheXMgcHJlc2VudCBvbiBpbnN0YW5jZXMgYnV0IGFjY2Vzc2VkIHZpYSBnZXRQcm9wcy9zZXRQcm9wc1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VJbnRlcm5hbFByb3BzID0ge1xuXHRfX3Byb3RvX3Byb3RvX186IG9iamVjdDtcblx0X19hcmdzX186IHVua25vd25bXTtcblx0X19jb2xsZWN0aW9uX186IENvbGxlY3Rpb25EZWY7XG5cdF9fc3VidHlwZXNfXzogTWFwPHN0cmluZywgb2JqZWN0Pjtcblx0X190eXBlX186IFR5cGVEZWY7XG5cdF9fcGFyZW50X186IG9iamVjdDtcblx0X19zdGFja19fPzogc3RyaW5nO1xuXHRfX2NyZWF0b3JfXzogSW5zdGFuY2VDcmVhdG9yQ29udGV4dDtcblx0X190aW1lc3RhbXBfXzogbnVtYmVyO1xufTtcblxuLy8gQ29tYmluZWQgUHJvcHMgdHlwZSBmb3IgaW50ZXJuYWwgdXNlIGluc2lkZSAuL3NyY1xuZXhwb3J0IHR5cGUgUHJvcHMgPSBJbnN0YW5jZUludGVybmFsUHJvcHMgJiB7XG5cdF9fc2VsZl9fOiBJbnN0YW5jZUludGVybmFsUHJvcHM7XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuXG4vLyBDb21iaW5lZCBpbnN0YW5jZSB0eXBlOiBwbGFpbiBvYmplY3Qgd2l0aCB0aGUgdXNlcidzIGZpZWxkcyBvbmx5LlxuLy8gSW5zdGFuY2UgbWV0aG9kcyAoZXh0cmFjdCwgcGljaywgZm9yaywgZXRjLikgYXJlIG5vIGxvbmdlciBhdXRvLWluamVjdGVkLlxuLy8gVGhlIGlubGluZSBtYXBwZWQgdHlwZSBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIEZsYXR0ZW4gYWxpYXMgc28gdGhhdCBob3ZlclxuLy8gdG9vbHRpcHMgc2hvdyB0aGUgYWN0dWFsIGZpZWxkIG9iamVjdCBsaXRlcmFsIGZpcnN0LCBub3QgXCJGbGF0dGVuPHsuLi59PlwiLlxuZXhwb3J0IHR5cGUgSW5zdGFuY2VSZXN1bHQ8XG4gIE4gZXh0ZW5kcyBvYmplY3QsXG4+ID0geyBbSyBpbiBrZXlvZiBOXTogTltLXSB9O1xuXG4vLyBEZWZpbml0b3IgaW5zdGFuY2UgLSB0aGUgY29uc3RydWN0b3IgZnVuY3Rpb24gcmV0dXJuZWQgYnkgZGVmaW5lXG4vLyBOID0gaW5zdGFuY2UgdHlwZSAocHJvcGVydGllcyBhdmFpbGFibGUgb24gaW5zdGFuY2VzKVxuLy8gUyA9IHN1YnR5cGVzIG1hcFxuZXhwb3J0IGludGVyZmFjZSBJRGVmaW5pdG9ySW5zdGFuY2U8XG5cdE4gZXh0ZW5kcyBvYmplY3QsXG5cdFIgZXh0ZW5kcyBJbnN0YW5jZVJlc3VsdDxOPiA9IEluc3RhbmNlUmVzdWx0PE4+XG4+IHtcblxuXHRUeXBlTmFtZTogc3RyaW5nO1xuXHRwcm90b3R5cGU6IE47XG5cblx0XG5cdC8vIHRoZSBsaW5lIGJlbG93IGRlY2xhcmVzIGEgYG5ldyAuLi5gIGludm9jYXRpb24sXG5cdC8vIHNvIG1ha2VzIGludGVyZmFjZSBjb25zdHJ1Y3RpYmxlXG5cdC8vIG5ldyguLi5hcmdzOiB1bmtub3duW10pOiB7IFtrZXkgaW4ga2V5b2YgUl06IFJba2V5XSB9O1xuXHRuZXcoLi4uYXJnczogdW5rbm93bltdKTogUjtcblxuXHRcblx0Ly8gVE9ETzogbmVlZCBjaGVjayBpZiBsaW5lIGJlbG93IHdvcmtzXG5cdC8vIGFsc28gVFMgaGludGluZyBjaGVjayBhcyB3ZWxsXG5cdC8vIHRoZSBsaW5lIGJlbG93IHNob3VsZCBtYWtlIGlzIGEgQGRlY29yYXRlIGRlY29yYXRvciB3b3JraW5nXG5cdCguLi5hcmdzOiB1bmtub3duW10pOiBJRGVmaW5pdG9ySW5zdGFuY2U8Uj47XG5cblxuXHQvLyBEZWZpbmUgbWV0aG9kIHRoYXQgY29tYmluZXMgcGFyZW50IE4gd2l0aCBuZXcgdHlwZSBUIHVzaW5nIFByb3RvXG5cdGRlZmluZTxcblx0XHRUIGV4dGVuZHMgb2JqZWN0LFxuXG5cdFx0Ly8gdGhpcyB3aWxsIGJlIGluc3RhbmNlIHR5cGUgZm9yIHN1Yi10eXBlICEhIVxuXHRcdC8vIEYgZXh0ZW5kcyBGbGF0dGVuPFByb3RvPE4sIFQ+PlxuXHRcdEYgZXh0ZW5kcyBQcm90bzxOLCBUPlxuXHQ+KFxuXHRcdFR5cGVPclR5cGVOYW1lOiBzdHJpbmcgfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRcdGNvbnN0cnVjdEhhbmRsZXJPckNvbmZpZz86IElERUY8VD4gfCBvYmplY3QgfCBib29sZWFuIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0XHRjb25maWdPclVuZGVmaW5lZD86IGNvbnN0cnVjdG9yT3B0aW9ucyB8IENhbGxhYmxlRnVuY3Rpb24gfCBib29sZWFuXG5cdCk6IElEZWZpbml0b3JJbnN0YW5jZTxGPjtcblx0XG5cdGxvb2t1cDogVHlwZUxvb2t1cDtcblx0XG5cdHJlZ2lzdGVySG9vayhob29rVHlwZTogaG9va3NUeXBlcywgY2I6IGhvb2spOiB2b2lkO1xuXHRcblx0XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0XG5cdC8vIEludGVybmFsIHByb3BlcnRpZXMgYWNjZXNzZWQgYnkgdGVzdHNcblx0X190eXBlX18/OiBUeXBlRGVmO1xuXHRjb2xsZWN0aW9uPzogQ29sbGVjdGlvbkRlZjtcblxuXHQvKlxuXHQvLyBBbGxvdyBkeW5hbWljIHByb3BlcnR5IGFjY2VzcyBmb3Igc3VidHlwZXNcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcblx0Ki9cbn1cblxuLy8gVHlwZSBhYnNvcmJlciBmdW5jdGlvbiB0eXBlIC0gdXNlZCBmb3IgZGVmaW5pbmcgc3VidHlwZXNcbi8vIFN1cHBvcnRzIG11bHRpcGxlIGNhbGxpbmcgY29udmVudGlvbnM6XG4vLyAxLiBNb2Rlcm46IGRlZmluZShUeXBlTmFtZSwgY29uc3RydWN0SGFuZGxlciwgY29uZmlnPylcbi8vIDIuIExlZ2FjeTogZGVmaW5lKGNvbnN0cnVjdEhhbmRsZXIsIGNvbmZpZz8pIC0gVHlwZU5hbWUgZnJvbSBjb25zdHJ1Y3RvciBuYW1lXG4vLyAzLiBOZXN0ZWQ6IHBhcmVudFR5cGUuZGVmaW5lKFR5cGVOYW1lLCBjb25zdHJ1Y3RIYW5kbGVyLCBjb25maWc/KVxuZXhwb3J0IGludGVyZmFjZSBUeXBlQWJzb3JiZXIgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0PFQgZXh0ZW5kcyBvYmplY3Q+KFxuXHRcdHRoaXM6IHVua25vd24sXG5cdFx0VHlwZU9yVHlwZU5hbWU6IHN0cmluZyB8IENhbGxhYmxlRnVuY3Rpb24sXG5cdFx0Y29uc3RydWN0SGFuZGxlck9yQ29uZmlnPzogSURFRjxUPiB8IG9iamVjdCB8IGJvb2xlYW4gfCBDYWxsYWJsZUZ1bmN0aW9uLFxuXHRcdGNvbmZpZ09yVW5kZWZpbmVkPzogY29uc3RydWN0b3JPcHRpb25zIHwgQ2FsbGFibGVGdW5jdGlvbiB8IGJvb2xlYW5cblx0KTogSURlZmluaXRvckluc3RhbmNlPFQ+O1xufVxuXG4vLyBUeXBlc0NvbGxlY3Rpb24gaW50ZXJmYWNlIGZvciBjcmVhdGVUeXBlc0NvbGxlY3Rpb25cbi8vIFRoaXMgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJldHVybiB0eXBlIG9mIGNyZWF0ZVR5cGVzQ29sbGVjdGlvblxuZXhwb3J0IGludGVyZmFjZSBUeXBlc0NvbGxlY3Rpb24gZXh0ZW5kcyBIb29rYWJsZSB7XG5cdGRlZmluZTogVHlwZUFic29yYmVyO1xuXHRsb29rdXA6IFR5cGVMb29rdXA7XG5cdHN1YnR5cGVzOiBTdWJ0eXBlc01hcDtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuLy8gU2hhcmVkIGludGVyZmFjZSBmb3Igb2JqZWN0cyB0aGF0IHN1cHBvcnQgaG9va3MgKFR5cGVEZWYgYW5kIENvbGxlY3Rpb25EZWYpXG5leHBvcnQgaW50ZXJmYWNlIEhvb2thYmxlIHtcblx0aG9va3M6IFJlY29yZDxzdHJpbmcsIFNldDxob29rPj47XG5cdGludm9rZUhvb2soaG9va1R5cGU6IGhvb2tzVHlwZXMsIG9wdHM6IGhvb2tzT3B0cyk6IFNldDx1bmtub3duPjtcblx0cmVnaXN0ZXJIb29rKGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vayk6IHZvaWQ7XG5cdHJlZ2lzdGVyRmxvd0NoZWNrZXIoY2I6IChvcHRzOiBvYmplY3QpID0+IHVua25vd24pOiB2b2lkO1xufVxuXG4vLyBjcmVhdGVUeXBlc0NvbGxlY3Rpb24gZnVuY3Rpb24gdHlwZVxuZXhwb3J0IHR5cGUgQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb24gPSAoY29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zKSA9PiBUeXBlc0NvbGxlY3Rpb247XG5cbi8vIFR5cGUgY2xhc3MgLSBiYXNlIHR5cGUgY29uc3RydWN0b3JcbmV4cG9ydCB0eXBlIFR5cGVDbGFzcyA9IElEZWZpbml0b3JJbnN0YW5jZTxvYmplY3Q+O1xuXG4vLyBNbmVtb25pY2EgY29uc3RydWN0b3Ig4oCUIHRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiByZXR1cm5lZCBieSBjb25zdHJ1Y3RIYW5kbGVyKClcbi8vIEhhcyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgYXR0YWNoZWQgYW5kIGlzIGJvdGggbmV3YWJsZSBhbmQgY2FsbGFibGVcbmV4cG9ydCBpbnRlcmZhY2UgTW5lbW9uaWNhQ29uc3RydWN0b3IgZXh0ZW5kcyBOZXdhYmxlRnVuY3Rpb24ge1xuXHRuZXcgKC4uLmFyZ3M6IHVua25vd25bXSk6IG9iamVjdDtcblx0KHRoaXM6IG9iamVjdCwgLi4uYXJnczogdW5rbm93bltdKTogdW5rbm93bjtcblx0W2tleTogc3ltYm9sXTogdW5rbm93bjtcbn1cblxuLy8gVHlwZSBkZXNjcmlwdG9yIGluc3RhbmNlIOKAlCBpbnRlcm5hbCBzaGFwZSBvZiBUeXBlRGVzY3JpcHRvciBvYmplY3RzXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEZXNjcmlwdG9yRGVmaW5lIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdChcblx0XHRUeXBlT3JUeXBlTmFtZTogc3RyaW5nIHwgQ2FsbGFibGVGdW5jdGlvbixcblx0XHRjb25zdHJ1Y3RIYW5kbGVyT3JDb25maWc/OiBDYWxsYWJsZUZ1bmN0aW9uIHwgb2JqZWN0LFxuXHRcdGNvbmZpZz86IG9iamVjdFxuXHQpOiBUeXBlQ2xhc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURlc2NyaXB0b3JMb29rdXAgZXh0ZW5kcyBDYWxsYWJsZUZ1bmN0aW9uIHtcblx0KFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcpOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIFR5cGVEZXNjcmlwdG9ySW5zdGFuY2UgPSB7XG5cdGRlZmluZTogVHlwZURlc2NyaXB0b3JEZWZpbmU7XG5cdGxvb2t1cDogVHlwZURlc2NyaXB0b3JMb29rdXA7XG5cdHN1YnR5cGVzOiBNYXA8c3RyaW5nLCBvYmplY3Q+O1xuXHRUeXBlTmFtZTogc3RyaW5nO1xufTtcblxuLy8gQ29uc3RydWN0b3IgdHlwZSBmb3IgZGVjb3JhdGUgZnVuY3Rpb25cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yPFQgPSBvYmplY3Q+ID0gbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IFQ7XG5cbi8vIERlY29yYXRlZCBjbGFzcyB0eXBlIC0gaW5jbHVkZXMgY2FsbCBzaWduYXR1cmUgZm9yIGRlY29yYXRvciBwYXR0ZXJuXG5leHBvcnQgdHlwZSBEZWNvcmF0ZWRDbGFzczxUIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4gPVxuXHRUICZcblx0KDxVIGV4dGVuZHMgQ29uc3RydWN0b3I8b2JqZWN0Pj4odGFyZ2V0OiBVKSA9PiBEZWNvcmF0ZWRDbGFzczxVPikgJiB7XG5cdFx0ZGVmaW5lOiBUeXBlQWJzb3JiZXI7XG5cdFx0cmVnaXN0ZXJIb29rKGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vayk6IHZvaWQ7XG5cdFx0bG9va3VwOiBUeXBlTG9va3VwO1xuXHRcdFR5cGVOYW1lOiBzdHJpbmc7XG5cdH07XG5cbi8vIEhlbHBlcjogbWVyZ2UgcGFyZW50IGVudGl0eSAoRSkgYW5kIGNoaWxkIGNvbnN0cnVjdG9yIGluc3RhbmNlIChUKSBpbnRvIGFcbi8vIHNpbmdsZSBmbGF0IG9iamVjdCB0eXBlLCBmaWx0ZXJpbmcgb3V0IE1uZW1vbmljYUluc3RhbmNlIG1ldGhvZCBuYW1lcy5cbi8vIFVzZWQgYnkgYXBwbHkvY2FsbC9iaW5kLlxuZXhwb3J0IHR5cGUgTWVyZ2U8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4gPSB7XG5cdFtLIGluIGtleW9mIFQgfCBrZXlvZiBFIGFzIEsgZXh0ZW5kcyBNbmVtb25pY2FJbnN0YW5jZU1ldGhvZEtleXMgPyBuZXZlciA6IEtdOlxuXHRcdEsgZXh0ZW5kcyBrZXlvZiBUID8gVFtLXSA6IEVbSyAmIGtleW9mIEVdO1xufTtcblxuLy8gQXBwbHkvQ2FsbC9CaW5kIGZ1bmN0aW9uIHR5cGVzXG4vLyBUaGUgcmV0dXJuIHR5cGUgbWVyZ2VzIHRoZSBwYXJlbnQgZW50aXR5IGZpZWxkcyB3aXRoIHRoZSBjaGlsZCBjb25zdHJ1Y3RvclxuLy8gZmllbGRzIChmaWx0ZXJpbmcgb3V0IE1uZW1vbmljYUluc3RhbmNlIG1ldGhvZCBuYW1lcyksIHByb2R1Y2luZyB0aGUgc2FtZVxuLy8gYHsgZmllbGRzIH1gIGhvdmVyIHN0eWxlIGFzIGBuZXcgVHlwZSgpYC5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbHlGdW5jdGlvbiBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQ8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4oXG5cdFx0ZW50aXR5OiBFLFxuXHRcdENvbnN0cnVjdG9yOiBJREVGPFQ+LFxuXHRcdGFyZ3M/OiB1bmtub3duW11cblx0KTogSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxGdW5jdGlvbiBleHRlbmRzIENhbGxhYmxlRnVuY3Rpb24ge1xuXHQ8RSBleHRlbmRzIG9iamVjdCwgVCBleHRlbmRzIG9iamVjdD4oXG5cdFx0ZW50aXR5OiBFLFxuXHRcdENvbnN0cnVjdG9yOiBJREVGPFQ+LFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxFLCBUPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmluZEZ1bmN0aW9uIGV4dGVuZHMgQ2FsbGFibGVGdW5jdGlvbiB7XG5cdDxFIGV4dGVuZHMgb2JqZWN0LCBUIGV4dGVuZHMgb2JqZWN0Pihcblx0XHRlbnRpdHk6IEUsXG5cdFx0Q29uc3RydWN0b3I6IElERUY8VD5cblx0KTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gSW5zdGFuY2VSZXN1bHQ8TWVyZ2U8RSwgVD4+O1xufVxuXG4vLyBVdGlscyBvYmplY3QgdHlwZVxuZXhwb3J0IGludGVyZmFjZSBVdGlsc0NvbGxlY3Rpb24ge1xuXHRleHRyYWN0PFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogRXh0cmFjdGVkPFQ+O1xuXHRwaWNrPFQgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBrZXlvZiBUPihpbnN0YW5jZTogVCwgLi4uYXJnczogKEsgfCBLW10pW10pOiB7IFtQIGluIEtdOiBUW1BdIH0gJiB7fTtcblx0cGljazxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCwgLi4uYXJnczogKHN0cmluZyB8IHN0cmluZ1tdKVtdKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdGNsb25lPFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogVDtcblx0Zm9yazxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCk6ICh0aGlzOiBvYmplY3QsIC4uLmZvcmtBcmdzOiB1bmtub3duW10pID0+IFQ7XG5cdHNpYmxpbmcoaW5zdGFuY2U6IG9iamVjdCk6IFNpYmxpbmdBY2Nlc3Nvcjtcblx0Y29sbGVjdENvbnN0cnVjdG9yczogKGluc3RhbmNlOiBvYmplY3QsIGZsYXQ/OiBib29sZWFuKSA9PiAoQ2FsbGFibGVGdW5jdGlvbiB8IHN0cmluZylbXTtcblx0bWVyZ2U8QSBleHRlbmRzIG9iamVjdCwgQiBleHRlbmRzIG9iamVjdD4oXG5cdFx0YTogQSxcblx0XHRiOiBCLFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpOiBJbnN0YW5jZVJlc3VsdDxNZXJnZTxCLCBBPj47XG5cdHBhcnNlPFQgZXh0ZW5kcyBvYmplY3Q+KHNlbGY6IFQpOiBQYXJzZWQ8VD47XG5cdHBhcmVudDxUIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVCk6IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0cGFyZW50PFQgZXh0ZW5kcyBvYmplY3QsIEsgZXh0ZW5kcyBQYXJlbnRQYXRoT2ZJbnN0YW5jZTxUPiAmIHN0cmluZz4oXG5cdFx0aW5zdGFuY2U6IFQsXG5cdFx0cGF0aDogS1xuXHQpOiBJbnN0YW5jZU9mVHlwZVJlZ2lzdHJ5PEs+IHwgdW5kZWZpbmVkO1xuXHRwYXJlbnQ8VCBleHRlbmRzIG9iamVjdD4oaW5zdGFuY2U6IFQsIHBhdGg6IHN0cmluZyk6IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0dG9KU09OPFQgZXh0ZW5kcyBvYmplY3Q+KGluc3RhbmNlOiBUKTogc3RyaW5nO1xuXHRba2V5OiBzdHJpbmddOiBDYWxsYWJsZUZ1bmN0aW9uO1xufVxuXG4vLyBNYWluIG1uZW1vbmljYSBtb2R1bGUgaW50ZXJmYWNlIC0gcmVwcmVzZW50cyB0aGUgZXhwb3J0ZWQgbW9kdWxlIG9iamVjdFxuZXhwb3J0IGludGVyZmFjZSBNbmVtb25pY2FNb2R1bGUge1xuXHQvLyBDb3JlIGZ1bmN0aW9uc1xuXHRkZWZpbmU6IFR5cGVBYnNvcmJlcjtcblx0bG9va3VwOiB7XG5cdFx0KFR5cGVOZXN0ZWRQYXRoOiBzdHJpbmcpOiBUeXBlQ2xhc3MgfCB1bmRlZmluZWQ7XG5cdFx0PGNvbnN0IEsgZXh0ZW5kcyBrZXlvZiBUeXBlUmVnaXN0cnk+KFR5cGVOZXN0ZWRQYXRoOiBLKTogVHlwZVJlZ2lzdHJ5W0tdO1xuXHR9O1xuXHRhcHBseTogQXBwbHlGdW5jdGlvbjtcblx0Y2FsbDogQ2FsbEZ1bmN0aW9uO1xuXHRiaW5kOiBCaW5kRnVuY3Rpb247XG5cdGRlY29yYXRlOiA8VCBleHRlbmRzIENvbnN0cnVjdG9yPG9iamVjdD4gfCBjb25zdHJ1Y3Rvck9wdGlvbnMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuXHRcdHRhcmdldD86IFQsXG5cdFx0Y29uZmlnPzogY29uc3RydWN0b3JPcHRpb25zXG5cdCkgPT4gPFUgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxvYmplY3Q+Pihjc3RyOiBVKSA9PiBEZWNvcmF0ZWRDbGFzczxVPjtcblx0cmVnaXN0ZXJIb29rOiA8VCBleHRlbmRzIG9iamVjdD4oQ29uc3RydWN0b3I6IElERUY8VD4sIGhvb2tUeXBlOiBob29rc1R5cGVzLCBjYjogaG9vaykgPT4gdm9pZDtcblxuXHQvLyBEZXNjcmlwdG9yc1xuXHRkZWZhdWx0VHlwZXM6IFR5cGVzQ29sbGVjdGlvbjtcblxuXHQvLyBFcnJvcnNcblx0QkFTRV9NTkVNT05JQ0FfRVJST1I6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX1RZUEVfREVGSU5JVElPTjogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0V1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTjogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0V1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk46IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdEFMUkVBRFlfREVDTEFSRUQ6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX0FSR1VNRU5UU19VU0VEOiBNbmVtb25pY2FFcnJvckNvbnN0cnVjdG9yO1xuXHRXUk9OR19IT09LX1RZUEU6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE1JU1NJTkdfQ0FMTEJBQ0tfQVJHVU1FTlQ6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdC8vIEZMT1dfQ0hFQ0tFUl9SRURFRklOSVRJT046IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE1JU1NJTkdfSE9PS19DQUxMQkFDSzogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0VFlQRU5BTUVfTVVTVF9CRV9BX1NUUklORzogTW5lbW9uaWNhRXJyb3JDb25zdHJ1Y3Rvcjtcblx0SEFORExFUl9NVVNUX0JFX0FfRlVOQ1RJT046IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdE9QVElPTlNfRVJST1I6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cdFdST05HX1NUQUNLX0NMRUFORVI6IE1uZW1vbmljYUVycm9yQ29uc3RydWN0b3I7XG5cblx0Ly8gQ29uc3RhbnRzXG5cdE1ORU1PTklDQTogc3RyaW5nO1xuXHRNTkVNT1NZTkU6IHN0cmluZztcblx0U3ltYm9sUGFyZW50VHlwZTogc3ltYm9sO1xuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWU6IHN5bWJvbDtcblx0U3ltYm9sRGVmYXVsdFR5cGVzQ29sbGVjdGlvbjogc3ltYm9sO1xuXHRTeW1ib2xDb25maWc6IHN5bWJvbDtcblx0VFlQRV9USVRMRV9QUkVGSVg6IHN0cmluZztcblx0RXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlcztcblxuXHQvLyBVdGlsc1xuXHR1dGlsczogVXRpbHNDb2xsZWN0aW9uO1xuXHRnZXRQcm9wczogKGluc3RhbmNlOiBvYmplY3QpID0+IFByb3BzVHlwZSB8IHVuZGVmaW5lZDtcblx0c2V0UHJvcHM6IChpbnN0YW5jZTogb2JqZWN0LCB2YWx1ZXM6IG9iamVjdCkgPT4gc3RyaW5nW10gfCBmYWxzZTtcblx0ZmluZFN1YlR5cGVGcm9tUGFyZW50OiAoaW5zdGFuY2U6IG9iamVjdCB8IHVuZGVmaW5lZCwgc3ViVHlwZTogc3RyaW5nKSA9PiBvYmplY3QgfCBudWxsO1xuXHRpc0NsYXNzOiAoZm46IENhbGxhYmxlRnVuY3Rpb24pID0+IGJvb2xlYW47XG5cblx0Ly8gY3JlYXRlVHlwZXNDb2xsZWN0aW9uXG5cdGNyZWF0ZVR5cGVzQ29sbGVjdGlvbjogQ3JlYXRlVHlwZXNDb2xsZWN0aW9uRnVuY3Rpb247XG5cblx0Ly8gQWxsb3cgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG4iXX0=
|
package/docs/typed-lookup.md
CHANGED
|
@@ -12,7 +12,7 @@ export interface TypeRegistry {
|
|
|
12
12
|
export function lookup<const K extends keyof TypeRegistry>(
|
|
13
13
|
this: unknown,
|
|
14
14
|
TypeNestedPath: K
|
|
15
|
-
): TypeRegistry[K]
|
|
15
|
+
): TypeRegistry[K];
|
|
16
16
|
export function lookup(
|
|
17
17
|
this: unknown,
|
|
18
18
|
TypeNestedPath: string
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -108,7 +108,7 @@ export const define = function <
|
|
|
108
108
|
export function lookup<const K extends keyof TypeRegistry>(
|
|
109
109
|
this: unknown,
|
|
110
110
|
TypeNestedPath: K
|
|
111
|
-
): TypeRegistry[K]
|
|
111
|
+
): TypeRegistry[K];
|
|
112
112
|
export function lookup(this: unknown, TypeNestedPath: string): TypeClass | undefined;
|
|
113
113
|
export function lookup(
|
|
114
114
|
this: unknown,
|
package/src/types/index.ts
CHANGED
|
@@ -601,7 +601,7 @@ export interface MnemonicaModule {
|
|
|
601
601
|
define: TypeAbsorber;
|
|
602
602
|
lookup: {
|
|
603
603
|
(TypeNestedPath: string): TypeClass | undefined;
|
|
604
|
-
<const K extends keyof TypeRegistry>(TypeNestedPath: K): TypeRegistry[K]
|
|
604
|
+
<const K extends keyof TypeRegistry>(TypeNestedPath: K): TypeRegistry[K];
|
|
605
605
|
};
|
|
606
606
|
apply: ApplyFunction;
|
|
607
607
|
call: CallFunction;
|