@dollhousemcp/mcp-server 2.0.27-rc.8 → 2.0.27
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/CHANGELOG.md +1 -1
- package/dist/config/env.d.ts +0 -10
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +1 -31
- package/dist/elements/ensembles/EnsembleManager.d.ts +0 -18
- package/dist/elements/ensembles/EnsembleManager.d.ts.map +1 -1
- package/dist/elements/ensembles/EnsembleManager.js +5 -37
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +3 -3
- package/dist/logging/LogHooks.d.ts.map +1 -1
- package/dist/logging/LogHooks.js +1 -33
- package/dist/web/console/IngestRoutes.d.ts +0 -2
- package/dist/web/console/IngestRoutes.d.ts.map +1 -1
- package/dist/web/console/IngestRoutes.js +2 -49
- package/dist/web/console/LeaderElection.d.ts +5 -6
- package/dist/web/console/LeaderElection.d.ts.map +1 -1
- package/dist/web/console/LeaderElection.js +21 -24
- package/dist/web/console/SessionNames.d.ts +0 -6
- package/dist/web/console/SessionNames.d.ts.map +1 -1
- package/dist/web/console/SessionNames.js +1 -20
- package/dist/web/console/UnifiedConsole.d.ts +2 -37
- package/dist/web/console/UnifiedConsole.d.ts.map +1 -1
- package/dist/web/console/UnifiedConsole.js +15 -374
- package/dist/web/contentPipeline.d.ts +0 -1
- package/dist/web/contentPipeline.d.ts.map +1 -1
- package/dist/web/contentPipeline.js +4 -48
- package/dist/web/public/app.js +83 -196
- package/dist/web/public/index.html +7 -16
- package/dist/web/public/logs.css +1 -157
- package/dist/web/public/logs.js +8 -56
- package/dist/web/public/sessions.css +1 -2
- package/dist/web/public/styles.css +34 -247
- package/dist/web/routes/permissionRoutes.d.ts.map +1 -1
- package/dist/web/routes/permissionRoutes.js +4 -18
- package/dist/web/server.d.ts +0 -6
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +14 -62
- package/package.json +3 -1
- package/scripts/permission-port-discovery.sh +79 -0
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
package/dist/config/env.d.ts
CHANGED
|
@@ -80,11 +80,6 @@ declare const envSchema: z.ZodObject<{
|
|
|
80
80
|
DOLLHOUSE_CONSOLE_LEADER_LOCK_FILE: z.ZodOptional<z.ZodString>;
|
|
81
81
|
DOLLHOUSE_CONSOLE_BIND_RETRY_DELAYS: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<number[] | undefined, string | undefined>>;
|
|
82
82
|
DOLLHOUSE_CONSOLE_MAX_FORWARD_FAILURES: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
83
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
84
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_JITTER_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
85
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_THRESHOLD: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
86
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_COOLDOWN_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
87
|
-
DOLLHOUSE_CONSOLE_LEADER_DISCOVERY_TIMEOUT_MS: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
88
83
|
DOLLHOUSE_CONSOLE_ROTATION_REQUIRE_CONFIRMATION: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
|
|
89
84
|
DOLLHOUSE_GATEKEEPER_ENABLED: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
|
|
90
85
|
DOLLHOUSE_GATEKEEPER_ELEMENT_POLICY_OVERRIDES: z.ZodDefault<z.ZodCoercedBoolean<unknown>>;
|
|
@@ -146,11 +141,6 @@ export declare const env: {
|
|
|
146
141
|
DOLLHOUSE_WEB_AUTH_ENABLED: boolean;
|
|
147
142
|
DOLLHOUSE_CONSOLE_BIND_RETRY_DELAYS: number[] | undefined;
|
|
148
143
|
DOLLHOUSE_CONSOLE_MAX_FORWARD_FAILURES: number;
|
|
149
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_MS: number;
|
|
150
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_JITTER_MS: number;
|
|
151
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_THRESHOLD: number;
|
|
152
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_COOLDOWN_MS: number;
|
|
153
|
-
DOLLHOUSE_CONSOLE_LEADER_DISCOVERY_TIMEOUT_MS: number;
|
|
154
144
|
DOLLHOUSE_CONSOLE_ROTATION_REQUIRE_CONFIRMATION: boolean;
|
|
155
145
|
DOLLHOUSE_GATEKEEPER_ENABLED: boolean;
|
|
156
146
|
DOLLHOUSE_GATEKEEPER_ELEMENT_POLICY_OVERRIDES: boolean;
|
package/dist/config/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB;;GAEG;AACH,QAAA,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB;;GAEG;AACH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuQb,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAA+B,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,MAAM,SAA0B,CAAC;AAC9C,eAAO,MAAM,aAAa,SAAiC,CAAC;AAC5D,eAAO,MAAM,YAAY,SAAgC,CAAC"}
|
package/dist/config/env.js
CHANGED
|
@@ -196,36 +196,6 @@ const envSchema = z.object({
|
|
|
196
196
|
* Default: 10.
|
|
197
197
|
*/
|
|
198
198
|
DOLLHOUSE_CONSOLE_MAX_FORWARD_FAILURES: z.coerce.number().int().min(1).max(100).default(10),
|
|
199
|
-
/**
|
|
200
|
-
* How often a follower re-evaluates whether it should take over console
|
|
201
|
-
* leadership in a heterogeneous mixed-version environment.
|
|
202
|
-
* Default: 15000ms.
|
|
203
|
-
*/
|
|
204
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_MS: z.coerce.number().int().min(1_000).max(300_000).default(15_000),
|
|
205
|
-
/**
|
|
206
|
-
* Additional per-session jitter added to authority rechecks so large mixed
|
|
207
|
-
* fleets do not all wake up in the same instant.
|
|
208
|
-
* Default: 5000ms.
|
|
209
|
-
*/
|
|
210
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_JITTER_MS: z.coerce.number().int().min(0).max(60_000).default(5_000),
|
|
211
|
-
/**
|
|
212
|
-
* Number of consecutive authority recheck failures before the follower opens
|
|
213
|
-
* its local circuit breaker and stops retrying until the cooldown expires.
|
|
214
|
-
* Default: 3.
|
|
215
|
-
*/
|
|
216
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_THRESHOLD: z.coerce.number().int().min(1).max(100).default(3),
|
|
217
|
-
/**
|
|
218
|
-
* Cooldown period after the follower authority monitor opens its circuit
|
|
219
|
-
* breaker due to repeated failures.
|
|
220
|
-
* Default: 60000ms.
|
|
221
|
-
*/
|
|
222
|
-
DOLLHOUSE_CONSOLE_AUTHORITY_RECHECK_FAILURE_COOLDOWN_MS: z.coerce.number().int().min(1_000).max(900_000).default(60_000),
|
|
223
|
-
/**
|
|
224
|
-
* Timeout for leader-discovery HTTP probes against /api/sessions before the
|
|
225
|
-
* caller falls back to lock-file or synthetic-owner heuristics.
|
|
226
|
-
* Default: 2000ms.
|
|
227
|
-
*/
|
|
228
|
-
DOLLHOUSE_CONSOLE_LEADER_DISCOVERY_TIMEOUT_MS: z.coerce.number().int().min(250).max(30_000).default(2_000),
|
|
229
199
|
/**
|
|
230
200
|
* Issue #1780: Phase 2 — require a confirmation code (OS dialog or TOTP)
|
|
231
201
|
* for privileged actions like token rotation. Default is true for safety;
|
|
@@ -324,4 +294,4 @@ if (isDevelopment || isTest) {
|
|
|
324
294
|
HAS_GITHUB_TEST_TOKEN: !!env.GITHUB_TEST_TOKEN,
|
|
325
295
|
});
|
|
326
296
|
}
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVDLGdGQUFnRjtBQUNoRiw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLDJEQUEyRDtBQUMzRCxzRUFBc0U7QUFDdEUsb0ZBQW9GO0FBQ3BGLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsaUZBQWlGO0FBQ2pGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztPQUM3QyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7QUFDL0QsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBUSxDQUFDO0FBQ3ZHLElBQUksV0FBVztJQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMs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RSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRWhELDBDQUEwQztJQUMxQyxzRkFBc0Y7SUFDdEYsaUVBQWlFO0lBQ2pFLDhEQUE4RDtJQUM5RCxzQkFBc0IsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN0RCxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFPaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUM7QUFDOUMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDO0FBQzVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQztBQUUxRDs7R0FFRztBQUNILElBQUksYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUU7UUFDaEQsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1FBQ3RCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztRQUN4QixnQkFBZ0IsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVk7UUFDcEMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUI7S0FDL0MsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2VudHJhbGl6ZWQgRW52aXJvbm1lbnQgQ29uZmlndXJhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHR5cGUtc2FmZSBhY2Nlc3MgdG8gZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggdmFsaWRhdGlvbi5cbiAqIEFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgc2hvdWxkIGJlIGFjY2Vzc2VkIHRocm91Z2ggdGhpcyBtb2R1bGUgcmF0aGVyIHRoYW5cbiAqIGRpcmVjdGx5IHZpYSBwcm9jZXNzLmVudiB0byBlbnN1cmUgdHlwZSBzYWZldHkgYW5kIHZhbGlkYXRpb24uXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBlbnYgfSBmcm9tICcuL2NvbmZpZy9lbnYnO1xuICogY29uc3QgdG9rZW4gPSBlbnYuR0lUSFVCX1RPS0VOOyAgLy8gVHlwZTogc3RyaW5nXG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCBkb3RlbnYgZnJvbSAnZG90ZW52JztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5cbi8vIExvYWQgLmVudiBmaWxlcyB3aXRoIHByaW9yaXR5OiAuZW52LmxvY2FsIChwZXJzb25hbCkgPiAuZW52IChzaGFyZWQgZGVmYXVsdHMpXG4vLyBCb3RoIGZpbGVzIGFyZSBvcHRpb25hbCAtIG5vIGVycm9yIGlmIGVpdGhlciBkb2Vzbid0IGV4aXN0XG4vL1xuLy8gTUNQIFByb3RvY29sIENvbXBsaWFuY2U6IFN1cHByZXNzIGRvdGVudidzIHN0ZG91dCBvdXRwdXRcbi8vIFRoZSBNQ1AgcHJvdG9jb2wgcmVxdWlyZXMgdGhhdCBPTkxZIEpTT04tUlBDIG1lc3NhZ2VzIGdvIHRvIHN0ZG91dC5cbi8vIGRvdGVudiBtYXkgb3V0cHV0IHZlcnNpb24gaW5mbyB0byBzdGRvdXQsIHdoaWNoIGJyZWFrcyBDbGF1ZGUgRGVza3RvcCBjb25uZWN0aW9uLlxuLy8gU29sdXRpb246IFRlbXBvcmFyaWx5IHJlZGlyZWN0IHN0ZG91dCB0byBzdGRlcnIgZHVyaW5nIGRvdGVudiBpbml0aWFsaXphdGlvbi5cbi8vIEluIC0td2ViIG1vZGUsIHN1cHByZXNzIGJvdGggc3Rkb3V0IEFORCBzdGRlcnIg4oCUIHRoZSB1c2VyIG9ubHkgbmVlZHMgdGhlXG4vLyBjb25zb2xlIFVSTCBiYW5uZXIsIG5vdCBkb3RlbnYncyBpbmplY3Rpb24gc3VtbWFyeS4gTG9ncyBnbyB0byB0aGUgd2ViIHZpZXdlci5cbmNvbnN0IGlzV2ViU2lsZW50ID0gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLXdlYicpXG4gICYmICFwcm9jZXNzLmVudi5ET0xMSE9VU0VfREVCVUcgJiYgIXByb2Nlc3MuZW52LkVOQUJMRV9ERUJVRztcbmNvbnN0IG9yaWdpbmFsU3Rkb3V0V3JpdGUgPSBwcm9jZXNzLnN0ZG91dC53cml0ZS5iaW5kKHByb2Nlc3Muc3Rkb3V0KTtcbmNvbnN0IG9yaWdpbmFsU3RkZXJyV3JpdGUgPSBwcm9jZXNzLnN0ZGVyci53cml0ZS5iaW5kKHByb2Nlc3Muc3RkZXJyKTtcbnByb2Nlc3Muc3Rkb3V0LndyaXRlID0gKGlzV2ViU2lsZW50ID8gKCgpID0+IHRydWUpIDogcHJvY2Vzcy5zdGRlcnIud3JpdGUuYmluZChwcm9jZXNzLnN0ZGVycikpIGFzIGFueTtcbmlmIChpc1dlYlNpbGVudCkgcHJvY2Vzcy5zdGRlcnIud3JpdGUgPSAoKCkgPT4gdHJ1ZSkgYXMgYW55O1xuZG90ZW52LmNvbmZpZyh7IHBhdGg6IFsnLmVudi5sb2NhbCcsICcuZW52J10gfSk7XG5wcm9jZXNzLnN0ZG91dC53cml0ZSA9IG9yaWdpbmFsU3Rkb3V0V3JpdGU7XG5pZiAoaXNXZWJTaWxlbnQpIHByb2Nlc3Muc3RkZXJyLndyaXRlID0gb3JpZ2luYWxTdGRlcnJXcml0ZTtcblxuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZSBzY2hlbWEgd2l0aCB2YWxpZGF0aW9uXG4gKi9cbmNvbnN0IGVudlNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBFbnZpcm9ubWVudFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIE5PREVfRU5WOiB6LmVudW0oWydkZXZlbG9wbWVudCcsICd0ZXN0JywgJ3Byb2R1Y3Rpb24nXSkuZGVmYXVsdCgnZGV2ZWxvcG1lbnQnKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFByb2R1Y3Rpb24gR2l0SHViIENyZWRlbnRpYWxzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVXNlZCBieSBwcm9kdWN0aW9uIGNvZGUgKHNyYy8pIGZvciByZWFsIEdpdEh1YiBvcGVyYXRpb25zXG4gIC8vIE9wdGlvbmFsOiBGZWF0dXJlcyByZXF1aXJpbmcgR2l0SHViIHdpbGwgZmFpbCBncmFjZWZ1bGx5IGlmIG5vdCBzZXRcbiAgR0lUSFVCX1RPS0VOOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIEdJVEhVQl9VU0VSTkFNRTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBHSVRIVUJfUkVQT1NJVE9SWTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVzdCBHaXRIdWIgQ3JlZGVudGlhbHMgKFNFUEFSQVRFIGFjY291bnQhKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVzZWQgYnkgdGVzdCBjb2RlICh0ZXN0cy8pIC0gdGVzdHMgd2lsbCBza2lwIGlmIG5vdCBwcm92aWRlZFxuICAvLyBJTVBPUlRBTlQ6IFVzZSBhIGRpZmZlcmVudCBHaXRIdWIgYWNjb3VudCBmb3IgdGVzdGluZyFcbiAgR0lUSFVCX1RFU1RfVE9LRU46IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgR0lUSFVCX1RFU1RfVVNFUk5BTUU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgR0lUSFVCX1RFU1RfUkVQT1NJVE9SWTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2VydmVyIENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBQT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDMwMDApLFxuICBMT0dfTEVWRUw6IHouZW51bShbJ2Vycm9yJywgJ3dhcm4nLCAnaW5mbycsICdkZWJ1ZyddKS5kZWZhdWx0KCdpbmZvJyksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBUZXN0IENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBURVNUX0JBU0VfRElSOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIFRFU1RfUEVSU09OQVNfRElSOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIFRFU1RfQ0FDSEVfRElSOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIFRFU1RfQ09ORklHX0RJUjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRmVhdHVyZSBGbGFnc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIERPTExIT1VTRV9BVVRPX1NVQk1JVF9UT19DT0xMRUNUSU9OOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIEVOQUJMRV9ERUJVRzogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBURVNUX1ZFUkJPU0VfTE9HR0lORzogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTUNQIEludGVyZmFjZSBDb25maWd1cmF0aW9uIChJc3N1ZSAjMjM3KVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8qKlxuICAgKiBNQ1AgaW50ZXJmYWNlIG1vZGUgLSBjb250cm9scyB3aGljaCB0b29sIGludGVyZmFjZSBpcyBleHBvc2VkIHRvIExMTXM6XG4gICAqIC0gJ2Rpc2NyZXRlJzogfjQwIGluZGl2aWR1YWwgdG9vbHMgKGxpc3RfZWxlbWVudHMsIGNyZWF0ZV9lbGVtZW50LCBldGMuKSAtIH4zLDAwMCB0b2tlbnNcbiAgICogLSAnbWNwYXFsJzogQ29uc29saWRhdGVkIE1DUC1BUUwgaW50ZXJmYWNlIC0gdXNlcyBNQ1BfQVFMX0VORFBPSU5UX01PREUgZm9yIHN0eWxlXG4gICAqXG4gICAqIERlZmF1bHQ6ICdtY3BhcWwnIC0gcmVjb21tZW5kZWQgZm9yIHRva2VuIGVmZmljaWVuY3kgYW5kIGNsZWFuZXIgdG9vbCBkaXNjb3ZlcnlcbiAgICovXG4gIE1DUF9JTlRFUkZBQ0VfTU9ERTogei5lbnVtKFsnZGlzY3JldGUnLCAnbWNwYXFsJ10pLmRlZmF1bHQoJ21jcGFxbCcpLFxuXG4gIC8qKlxuICAgKiBNQ1AtQVFMIGVuZHBvaW50IG1vZGUgKG9ubHkgYXBwbGllcyB3aGVuIE1DUF9JTlRFUkZBQ0VfTU9ERT0nbWNwYXFsJyk6XG4gICAqIC0gJ2NydWRlJzogNSBDUlVERSB0b29scyAoQ3JlYXRlLCBSZWFkLCBVcGRhdGUsIERlbGV0ZSwgRXhlY3V0ZSkgLSB+NCwzMDAgdG9rZW5zXG4gICAqIC0gJ3NpbmdsZSc6IDEgdG9vbCAobWNwX2FxbCkgLSB+MzUwIHRva2VucywgaWRlYWwgZm9yIG11bHRpLXNlcnZlciBkZXBsb3ltZW50c1xuICAgKi9cbiAgTUNQX0FRTF9FTkRQT0lOVF9NT0RFOiB6LmVudW0oWydjcnVkZScsICdzaW5nbGUnXSkuZGVmYXVsdCgnY3J1ZGUnKSxcblxuICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGFsaWFzIGZvciBNQ1BfQVFMX01PREUgKGRlcHJlY2F0ZWQsIHVzZSBNQ1BfQVFMX0VORFBPSU5UX01PREUpXG4gIE1DUF9BUUxfTU9ERTogei5lbnVtKFsnY3J1ZGUnLCAnc2luZ2xlJ10pLm9wdGlvbmFsKCksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVbmlmaWVkIExvZ2dpbmcgQ29uZmlndXJhdGlvbiAoZG9jcy9MT0dHSU5HLURFU0lHTi5tZClcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBET0xMSE9VU0VfTE9HX0RJUjogei5zdHJpbmcoKS5kZWZhdWx0KCd+Ly5kb2xsaG91c2UvbG9ncy8nKSxcbiAgRE9MTEhPVVNFX0xPR19GT1JNQVQ6IHouZW51bShbJ3RleHQnLCAnanNvbmwnXSkuZGVmYXVsdCgndGV4dCcpLFxuICBET0xMSE9VU0VfTE9HX1JFVEVOVElPTl9EQVlTOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDMwKSxcbiAgRE9MTEhPVVNFX0xPR19TRUNVUklUWV9SRVRFTlRJT05fREFZUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCg3KSxcbiAgRE9MTEhPVVNFX0xPR19GTFVTSF9JTlRFUlZBTF9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCg1MDAwKSxcbiAgLy8gQnVmZmVyIHJhaXNlZCB0byAyMDAwIHRvIHN1cHBvcnQgdGhlIHdlYiBjb25zb2xlIGxvZyB2aWV3ZXIg4oCUIHRoZSBoaWdoZXIgY2FwYWNpdHlcbiAgLy8gcmVkdWNlcyBmbHVzaCBmcmVxdWVuY3kgYW5kIGtlZXBzIG1vcmUgZW50cmllcyBhdmFpbGFibGUgZm9yIFNTRSBiYWNrZmlsbCBvbiBjb25uZWN0LlxuICBET0xMSE9VU0VfTE9HX0JVRkZFUl9TSVpFOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDIwMDApLFxuICBET0xMSE9VU0VfTE9HX01FTU9SWV9DQVBBQ0lUWTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCg1MDAwKSxcbiAgRE9MTEhPVVNFX0xPR19NRU1PUllfQVBQX0NBUEFDSVRZOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDEwMDAwKSxcbiAgRE9MTEhPVVNFX0xPR19NRU1PUllfU0VDVVJJVFlfQ0FQQUNJVFk6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNTAwMCksXG4gIERPTExIT1VTRV9MT0dfTUVNT1JZX1BFUkZfQ0FQQUNJVFk6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMjAwMCksXG4gIERPTExIT1VTRV9MT0dfTUVNT1JZX1RFTEVNRVRSWV9DQVBBQ0lUWTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgxMDAwKSxcbiAgRE9MTEhPVVNFX0xPR19NQVhfRU5UUllfU0laRTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgxNjM4NCksXG4gIERPTExIT1VTRV9MT0dfSU1NRURJQVRFX0ZMVVNIX1JBVEU6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNTApLFxuICBET0xMSE9VU0VfTE9HX0ZJTEVfTUFYX1NJWkU6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTA0ODU3NjAwKSxcbiAgRE9MTEhPVVNFX0xPR19NQVhfRElSX1NJWkVfQllURVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMCksXG4gIERPTExIT1VTRV9MT0dfTUFYX0ZJTEVTX1BFUl9DQVRFR09SWTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgxMDApLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUGVybWlzc2lvbiBTZXJ2ZXIgQ29uZmlndXJhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIEhUVFAgcGVybWlzc2lvbiBldmFsdWF0aW9uIHNlcnZlciBmb3IgUHJlVG9vbFVzZSBob29rcy5cbiAgICogV2hlbiB0cnVlLCBzdGFydHMgYW4gSFRUUCBlbmRwb2ludCBvbiBhIGR5bmFtaWMgcG9ydCBhZnRlciBkZWZlcnJlZFxuICAgKiBzZXR1cCBjb21wbGV0ZXMuIFdyaXRlcyBwb3J0IHRvIH4vLmRvbGxob3VzZS9ydW4vcGVybWlzc2lvbi1zZXJ2ZXIucG9ydFxuICAgKiBmb3IgaG9vayBzY3JpcHQgZGlzY292ZXJ5LiBSZXF1aXJlZCBmb3IgYXV0b25vbW91cyBhZ2VudCBwZXJtaXNzaW9uXG4gICAqIG1hbmFnZW1lbnQgdmlhIENsYXVkZSBDb2RlIGhvb2tzLlxuICAgKi9cbiAgRE9MTEhPVVNFX1BFUk1JU1NJT05fU0VSVkVSOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcblxuICAvLyBXZWIgQ29uc29sZSBDb25maWd1cmF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLyoqIEVuYWJsZSB0aGUgdW5pZmllZCB3ZWIgY29uc29sZSAobG9ncyArIG1ldHJpY3MgdGFicykgKi9cbiAgRE9MTEhPVVNFX1dFQl9DT05TT0xFOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcblxuICAvKipcbiAgICogUG9ydCB0aGUgd2ViIGNvbnNvbGUgbGVhZGVyIGJpbmRzIHRvICgjMTc5NCwgIzE3OTgpLlxuICAgKlxuICAgKiBEZWZhdWx0OiA0MTcxNSDigJQgXCJBSUxJU1wiIG9uIGEgcGhvbmUga2V5cGFkLCBhZnRlciB0aGUgQUkgTGF5ZXJcbiAgICogSW50ZXJmYWNlIFNwZWNpZmljYXRpb24gdGhhdCBEb2xsaG91c2VNQ1AgaW1wbGVtZW50cy4gQWxzbyBcIkFsaWNlXCJcbiAgICogaW4gR2FlbGljLlxuICAgKlxuICAgKiBQb3J0IHNlbGVjdGlvbiBjcml0ZXJpYSAodmVyaWZpZWQgMjAyNi0wNC0wNik6XG4gICAqICAgLSBOb3QgcmVnaXN0ZXJlZCB3aXRoIElBTkEgKG5vIGVudHJ5IGluIHRoZSBzZXJ2aWNlIG5hbWUgcmVnaXN0cnkpXG4gICAqICAgLSBOb3QgaW4gbm1hcCBzZXJ2aWNlcyBkYXRhYmFzZSAobmV2ZXIgb2JzZXJ2ZWQgaW4gdGhlIHdpbGQpXG4gICAqICAgLSBObyBrbm93biBhcHBsaWNhdGlvbiwgc2VjdXJpdHkgdG9vbCwgb3IgbWFsd2FyZSBhc3NvY2lhdGlvbnNcbiAgICogICAtIEJlbG93IHRoZSBtYWNPUyBlcGhlbWVyYWwgcmFuZ2UgKDQ5MTUyLTY1NTM1KSwgc28gYGJpbmQoKWBcbiAgICogICAgIGRvZXMgbm90IHJhY2Ugd2l0aCBrZXJuZWwtYWxsb2NhdGVkIHNvdXJjZSBwb3J0c1xuICAgKiAgIC0gSW4gdGhlIElBTkEgdXNlciBwb3J0IHJhbmdlICgxMDI0LTQ5MTUxKVxuICAgKiAgIC0gTm90IGFkamFjZW50IHRvIHRoZSBwcmUtYXV0aGVudGljYXRpb24gZGVmYXVsdCAoMzkzOSlcbiAgICpcbiAgICogUHJldmlvdXMgZGVmYXVsdCB3YXMgNTkwNyAoXCJMT0dTXCIgdXBzaWRlIGRvd24gb24gYSBjYWxjdWxhdG9yKSxcbiAgICogd2hpY2ggY29uZmxpY3RlZCB3aXRoIFN0ZWxsYXIgQ3liZXIncyBIVFRQIEdLRSBsb2cgcGFyc2VyLlxuICAgKlxuICAgKiBPdmVycmlkZSB2aWEgZW52IHZhciBpZiA0MTcxNSBjb2xsaWRlcyB3aXRoIHNvbWV0aGluZyBpbiB5b3VyXG4gICAqIGVudmlyb25tZW50IOKAlCBldmVyeSBydW50aW1lIHJlZmVyZW5jZSByZWFkcyBmcm9tIHRoaXMgc2luZ2xlIHZhbHVlLlxuICAgKi9cbiAgRE9MTEhPVVNFX1dFQl9DT05TT0xFX1BPUlQ6IHouY29lcmNlLm51bWJlcigpLmludCgpLm1pbigxMDI0KS5tYXgoNjU1MzUpLmRlZmF1bHQoNDE3MTUpLFxuXG4gIC8qKlxuICAgKiBJc3N1ZSAjMTc4MDogRW5mb3JjZSBCZWFyZXIgdG9rZW4gYXV0aGVudGljYXRpb24gb24gdGhlIHdlYiBjb25zb2xlIEFQSS5cbiAgICogV2hlbiB0cnVlLCBhbGwgcHJvdGVjdGVkIGVuZHBvaW50cyByZXF1aXJlIGEgdmFsaWQgdG9rZW4gZnJvbSB0aGVcbiAgICogY29uc29sZSB0b2tlbiBmaWxlLiBXaGVuIGZhbHNlICh0aGUgcHJlLVBoYXNlLTIgZGVmYXVsdCksIHRoZSB0b2tlblxuICAgKiBmaWxlIGlzIHN0aWxsIGdlbmVyYXRlZCBidXQgdGhlIG1pZGRsZXdhcmUgZG9lcyBub3QgZW5mb3JjZSDigJQgdGhpc1xuICAgKiBsZXRzIHRoZSBpbmZyYXN0cnVjdHVyZSBsYW5kIHdpdGhvdXQgYnJlYWtpbmcgZXhpc3RpbmcgY29uc3VtZXJzLlxuICAgKiBXaWxsIGZsaXAgdG8gZGVmYXVsdCBgdHJ1ZWAgaW4gYSBmb2xsb3ctdXAgUFIgb25jZSBhbGwgY29uc3VtZXJzXG4gICAqIChicm93c2VyLCBmb2xsb3dlcnMsIGJyaWRnZSkgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gYXR0YWNoIHRva2Vucy5cbiAgICovXG4gIERPTExIT1VTRV9XRUJfQVVUSF9FTkFCTEVEOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG5cbiAgLyoqXG4gICAqIElzc3VlICMxNzgwOiBPcHRpb25hbCBvdmVycmlkZSBmb3IgdGhlIGNvbnNvbGUgdG9rZW4gZmlsZSBsb2NhdGlvbi5cbiAgICogV2hlbiB1bnNldCwgYENvbnNvbGVUb2tlblN0b3JlYCBmYWxscyBiYWNrIHRvIGl0cyBidWlsdC1pbiBkZWZhdWx0XG4gICAqIHVuZGVyIGB+Ly5kb2xsaG91c2UvcnVuL2AuIE1haW5seSB1c2VmdWwgZm9yIHRlc3RzIGFuZCBmb3IgZW50ZXJwcmlzZVxuICAgKiBkZXBsb3ltZW50cyB0aGF0IG1vdW50IGEgc2hhcmVkIHRva2VuIGZpbGUgZnJvbSBhIHNlY3JldHMgdm9sdW1lLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfVE9LRU5fRklMRTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBvdmVycmlkZSBmb3IgdGhlIGNvbnNvbGUgbGVhZGVyIGxvY2sgZmlsZSBsb2NhdGlvbiAoIzE3OTQpLlxuICAgKiBXaGVuIHVuc2V0LCBgTGVhZGVyRWxlY3Rpb25gIGZhbGxzIGJhY2sgdG8gaXRzIGJ1aWx0LWluIGRlZmF1bHQgdW5kZXJcbiAgICogYH4vLmRvbGxob3VzZS9ydW4vYC4gUHJpbWFyaWx5IHVzZWZ1bCBmb3IgdGVzdHMgdGhhdCBuZWVkIGlzb2xhdGlvblxuICAgKiBiZXR3ZWVuIHJ1bnMgYW5kIGZvciBkZXBsb3ltZW50cyB0aGF0IHNwbGl0IHJ1bnRpbWUgc3RhdGUgYWNyb3NzXG4gICAqIG11bHRpcGxlIGluc3RhbGxhdGlvbnMgb24gdGhlIHNhbWUgbWFjaGluZS5cbiAgICovXG4gIERPTExIT1VTRV9DT05TT0xFX0xFQURFUl9MT0NLX0ZJTEU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvLyBMZWFkZXIvRm9sbG93ZXIgUmVjb3ZlcnkgKCMxODUwKVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIElzc3VlICMxODUwOiBSZXRyeSBkZWxheXMgKGluIG1zKSB3aGVuIHRoZSBsZWFkZXIgZmFpbHMgdG8gYmluZCB0aGUgY29uc29sZVxuICAgKiBwb3J0IGR1ZSB0byBFQUREUklOVVNFLiBFYWNoIHZhbHVlIGlzIGEgc3VjY2Vzc2l2ZSBiYWNrb2ZmIGRlbGF5LlxuICAgKiBEZWZhdWx0OiAxcywgMnMsIDRzICg3cyB0b3RhbCkuIEluY3JlYXNlIGZvciBzbG93IG9yIHJlbW90ZSBlbnZpcm9ubWVudHMuXG4gICAqL1xuICBET0xMSE9VU0VfQ09OU09MRV9CSU5EX1JFVFJZX0RFTEFZUzogei5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLnRyYW5zZm9ybSh2ID0+IHYgPyB2LnNwbGl0KCcsJykubWFwKE51bWJlcikuZmlsdGVyKG4gPT4gIU51bWJlci5pc05hTihuKSAmJiBuID4gMCkgOiB1bmRlZmluZWQpLFxuXG4gIC8qKlxuICAgKiBJc3N1ZSAjMTg1MDogTnVtYmVyIG9mIGNvbnNlY3V0aXZlIGZvcndhcmRpbmcgZmFpbHVyZXMgYmVmb3JlIGEgZm9sbG93ZXJcbiAgICogZGVjbGFyZXMgdGhlIGxlYWRlciBkZWFkIGFuZCBhdHRlbXB0cyBzZWxmLXByb21vdGlvbi4gSGlnaGVyIHZhbHVlcyByZWR1Y2VcbiAgICogZmFsc2UgcG9zaXRpdmVzIGluIGhpZ2gtbGF0ZW5jeSBlbnZpcm9ubWVudHMgYnV0IGRlbGF5IHJlY292ZXJ5LlxuICAgKiBEZWZhdWx0OiAxMC5cbiAgICovXG4gIERPTExIT1VTRV9DT05TT0xFX01BWF9GT1JXQVJEX0ZBSUxVUkVTOiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMSkubWF4KDEwMCkuZGVmYXVsdCgxMCksXG5cbiAgLyoqXG4gICAqIEhvdyBvZnRlbiBhIGZvbGxvd2VyIHJlLWV2YWx1YXRlcyB3aGV0aGVyIGl0IHNob3VsZCB0YWtlIG92ZXIgY29uc29sZVxuICAgKiBsZWFkZXJzaGlwIGluIGEgaGV0ZXJvZ2VuZW91cyBtaXhlZC12ZXJzaW9uIGVudmlyb25tZW50LlxuICAgKiBEZWZhdWx0OiAxNTAwMG1zLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfQVVUSE9SSVRZX1JFQ0hFQ0tfTVM6IHouY29lcmNlLm51bWJlcigpLmludCgpLm1pbigxXzAwMCkubWF4KDMwMF8wMDApLmRlZmF1bHQoMTVfMDAwKSxcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwZXItc2Vzc2lvbiBqaXR0ZXIgYWRkZWQgdG8gYXV0aG9yaXR5IHJlY2hlY2tzIHNvIGxhcmdlIG1peGVkXG4gICAqIGZsZWV0cyBkbyBub3QgYWxsIHdha2UgdXAgaW4gdGhlIHNhbWUgaW5zdGFudC5cbiAgICogRGVmYXVsdDogNTAwMG1zLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfQVVUSE9SSVRZX1JFQ0hFQ0tfSklUVEVSX01TOiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMCkubWF4KDYwXzAwMCkuZGVmYXVsdCg1XzAwMCksXG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBjb25zZWN1dGl2ZSBhdXRob3JpdHkgcmVjaGVjayBmYWlsdXJlcyBiZWZvcmUgdGhlIGZvbGxvd2VyIG9wZW5zXG4gICAqIGl0cyBsb2NhbCBjaXJjdWl0IGJyZWFrZXIgYW5kIHN0b3BzIHJldHJ5aW5nIHVudGlsIHRoZSBjb29sZG93biBleHBpcmVzLlxuICAgKiBEZWZhdWx0OiAzLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfQVVUSE9SSVRZX1JFQ0hFQ0tfRkFJTFVSRV9USFJFU0hPTEQ6IHouY29lcmNlLm51bWJlcigpLmludCgpLm1pbigxKS5tYXgoMTAwKS5kZWZhdWx0KDMpLFxuXG4gIC8qKlxuICAgKiBDb29sZG93biBwZXJpb2QgYWZ0ZXIgdGhlIGZvbGxvd2VyIGF1dGhvcml0eSBtb25pdG9yIG9wZW5zIGl0cyBjaXJjdWl0XG4gICAqIGJyZWFrZXIgZHVlIHRvIHJlcGVhdGVkIGZhaWx1cmVzLlxuICAgKiBEZWZhdWx0OiA2MDAwMG1zLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfQVVUSE9SSVRZX1JFQ0hFQ0tfRkFJTFVSRV9DT09MRE9XTl9NUzogei5jb2VyY2UubnVtYmVyKCkuaW50KCkubWluKDFfMDAwKS5tYXgoOTAwXzAwMCkuZGVmYXVsdCg2MF8wMDApLFxuXG4gIC8qKlxuICAgKiBUaW1lb3V0IGZvciBsZWFkZXItZGlzY292ZXJ5IEhUVFAgcHJvYmVzIGFnYWluc3QgL2FwaS9zZXNzaW9ucyBiZWZvcmUgdGhlXG4gICAqIGNhbGxlciBmYWxscyBiYWNrIHRvIGxvY2stZmlsZSBvciBzeW50aGV0aWMtb3duZXIgaGV1cmlzdGljcy5cbiAgICogRGVmYXVsdDogMjAwMG1zLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfTEVBREVSX0RJU0NPVkVSWV9USU1FT1VUX01TOiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMjUwKS5tYXgoMzBfMDAwKS5kZWZhdWx0KDJfMDAwKSxcblxuICAvKipcbiAgICogSXNzdWUgIzE3ODA6IFBoYXNlIDIg4oCUIHJlcXVpcmUgYSBjb25maXJtYXRpb24gY29kZSAoT1MgZGlhbG9nIG9yIFRPVFApXG4gICAqIGZvciBwcml2aWxlZ2VkIGFjdGlvbnMgbGlrZSB0b2tlbiByb3RhdGlvbi4gRGVmYXVsdCBpcyB0cnVlIGZvciBzYWZldHk7XG4gICAqIHNldCB0byBmYWxzZSBmb3IgaGVhZGxlc3MgQ0kgYW5kIHNjcmlwdGVkIGRlcGxveW1lbnRzIHRoYXQgbmVlZCB0byByb3RhdGVcbiAgICogd2l0aG91dCBodW1hbiBpbnRlcmFjdGlvbi5cbiAgICovXG4gIERPTExIT1VTRV9DT05TT0xFX1JPVEFUSU9OX1JFUVVJUkVfQ09ORklSTUFUSU9OOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdCh0cnVlKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlY3VyaXR5IENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvKipcbiAgICogSXNzdWUgIzQ1MjogR2F0ZWtlZXBlciBwb2xpY3kgZW5mb3JjZW1lbnQuXG4gICAqIFdoZW4gdHJ1ZSAoZGVmYXVsdCksIGFsbCBNQ1AtQVFMIG9wZXJhdGlvbnMgZ28gdGhyb3VnaCB0aGUgNC1sYXllciBHYXRla2VlcGVyXG4gICAqIGVuZm9yY2UoKSBwaXBlbGluZS4gV2hlbiBmYWxzZSwgZmFsbHMgYmFjayB0byByb3V0ZSB2YWxpZGF0aW9uIG9ubHkuXG4gICAqIFRoaXMgaXMgYSB1c2VyL29wZXJhdG9yIHNldHRpbmcg4oCUIHRoZSBMTE0gY2Fubm90IGJ5cGFzcyBpdC5cbiAgICovXG4gIERPTExIT1VTRV9HQVRFS0VFUEVSX0VOQUJMRUQ6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICAvKipcbiAgICogSXNzdWUgIzY3OTogRWxlbWVudCBwb2xpY3kgbGF5ZXIga2lsbCBzd2l0Y2guXG4gICAqIFdoZW4gdHJ1ZSAoZGVmYXVsdCksIGFjdGl2ZSBlbGVtZW50IGdhdGVrZWVwZXIgcG9saWNpZXMgKGFsbG93L2NvbmZpcm0vZGVueS9zY29wZVJlc3RyaWN0aW9ucylcbiAgICogY2FuIG92ZXJyaWRlIGRlZmF1bHQgb3BlcmF0aW9uIHBlcm1pc3Npb24gbGV2ZWxzLiBXaGVuIGZhbHNlLCBMYXllciAyIG9mIEdhdGVrZWVwZXIuZW5mb3JjZSgpXG4gICAqIGlzIGJ5cGFzc2VkIGVudGlyZWx5IOKAlCBvbmx5IHJvdXRlIHZhbGlkYXRpb24gYW5kIGRlZmF1bHQgcGVybWlzc2lvbiBsZXZlbHMgYXBwbHkuXG4gICAqIFVzZSBmb3IgZW1lcmdlbmN5IGxvY2tkb3duLCBoYXJkZW5lZCBkZXBsb3ltZW50cywgb3IgcG9saWN5IGRlYnVnZ2luZy5cbiAgICogVGhpcyBpcyBhbiBvcGVyYXRvci9pbmZyYXN0cnVjdHVyZSBzZXR0aW5nIOKAlCB0aGUgTExNIGNhbm5vdCBieXBhc3MgaXQuXG4gICAqL1xuICBET0xMSE9VU0VfR0FURUtFRVBFUl9FTEVNRU5UX1BPTElDWV9PVkVSUklERVM6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICAvKipcbiAgICogSXNzdWUgIzc5OTogUG9saWN5IGV4cG9ydCBvcHQtaW4gZmxhZy5cbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgUG9saWN5RXhwb3J0U2VydmljZSB3cml0ZXMgdGhlIHNlY3VyaXR5IHBvbGljeSBibHVlcHJpbnQgdG9cbiAgICogfi8uZG9sbGhvdXNlL2JyaWRnZS9pbXBvcnRzL3BvbGljaWVzLyBvbiBhY3RpdmF0aW9uIGNoYW5nZXMuIFRoZSBEb2xsaG91c2VCcmlkZ2VcbiAgICogcGVybWlzc2lvbi1wcm9tcHQgc2VydmVyIHdhdGNoZXMgdGhpcyBmaWxlIHRvIGV2YWx1YXRlIHBlcm1pc3Npb25zIGxvY2FsbHkuXG4gICAqIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIHBvbGljeSBmaWxlIGV4cG9ydCBlbnRpcmVseS5cbiAgICovXG4gIERPTExIT1VTRV9QT0xJQ1lfRVhQT1JUX0VOQUJMRUQ6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU3RvcmFnZSBMYXllciBDb25maWd1cmF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgRE9MTEhPVVNFX1NDQU5fQ09PTERPV05fTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTAwMCksXG4gIERPTExIT1VTRV9JTkRFWF9ERUJPVU5DRV9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgyMDAwKSxcbiAgRE9MTEhPVVNFX0VMRU1FTlRfQ0FDSEVfVFRMX01TOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDM2MDAwMDApLFxuICBET0xMSE9VU0VfUEFUSF9DQUNIRV9UVExfTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMzYwMDAwMCksXG4gIERPTExIT1VTRV9UT09MX0NBQ0hFX1RUTF9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCg2MDAwMCksXG4gIERPTExIT1VTRV9HTE9CQUxfQ0FDSEVfTUVNT1JZX01COiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDE1MCksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQZXJtaXNzaW9uIFByb21wdCBDb25maWd1cmF0aW9uIChJc3N1ZSAjNjI1KVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIE1heGltdW0gQ0xJIGFwcHJvdmFsIHJlY29yZHMgYmVmb3JlIExSVSBldmljdGlvbiAoZGVmYXVsdDogNTApICovXG4gIERPTExIT1VTRV9DTElfQVBQUk9WQUxfTUFYOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDUwKSxcblxuICAvKiogRGVmYXVsdCBUVEwgZm9yIENMSSBhcHByb3ZhbCByZWNvcmRzIGluIG1zIChkZWZhdWx0OiAzMDAwMDAgPSA1IG1pbikgKi9cbiAgRE9MTEhPVVNFX0NMSV9BUFBST1ZBTF9UVExfTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMzAwXzAwMCksXG5cbiAgLyoqIFBlcm1pc3Npb24gcHJvbXB0IHJhdGUgbGltaXQ6IG1heCByZXF1ZXN0cyBwZXIgd2luZG93IChkZWZhdWx0OiAxMDApICovXG4gIERPTExIT1VTRV9QRVJNSVNTSU9OX1BST01QVF9SQVRFX0xJTUlUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDEwMCksXG5cbiAgLyoqIENMSSBhcHByb3ZhbCBjcmVhdGlvbiByYXRlIGxpbWl0OiBtYXggcmVxdWVzdHMgcGVyIHdpbmRvdyAoZGVmYXVsdDogMjApICovXG4gIERPTExIT1VTRV9DTElfQVBQUk9WQUxfUkFURV9MSU1JVDogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgyMCksXG5cbiAgLyoqIFJhdGUgbGltaXQgd2luZG93IGluIG1zIGZvciBwZXJtaXNzaW9uIHByb21wdCBhbmQgQ0xJIGFwcHJvdmFscyAoZGVmYXVsdDogNjAwMDAgPSA2MHMpICovXG4gIERPTExIT1VTRV9QRVJNSVNTSU9OX1JBVEVfV0lORE9XX01TOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDYwXzAwMCksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNZXRyaWNzIENvbGxlY3Rpb24gQ29uZmlndXJhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIERPTExIT1VTRV9NRVRSSUNTX0VOQUJMRUQ6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICBET0xMSE9VU0VfTUVUUklDU19DT0xMRUNUSU9OX0lOVEVSVkFMX01TOiB6LmNvZXJjZS5udW1iZXIoKS5taW4oMTAwMCkubWF4KDMwMDAwMCkuZGVmYXVsdCgxNTAwMCksXG4gIERPTExIT1VTRV9NRVRSSUNTX01BWF9TTkFQU0hPVF9TSVpFOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDEwMjQwMCksXG4gIERPTExIT1VTRV9NRVRSSUNTX0NPTExFQ1RPUl9GQUlMVVJFX1RIUkVTSE9MRDogei5jb2VyY2UubnVtYmVyKCkubWluKDEpLm1heCgxMDApLmRlZmF1bHQoMTApLFxuICBET0xMSE9VU0VfTUVUUklDU19DT0xMRUNUSU9OX0RVUkFUSU9OX1dBUk5fTVM6IHouY29lcmNlLm51bWJlcigpLm1pbigxMDApLm1heCg2MDAwMCkuZGVmYXVsdCg1MDAwKSxcbiAgRE9MTEhPVVNFX01FVFJJQ1NfTUVNT1JZX1NOQVBTSE9UX0NBUEFDSVRZOiB6LmNvZXJjZS5udW1iZXIoKS5taW4oMTApLm1heCgxMDAwMCkuZGVmYXVsdCgyNDApLFxuXG4gIC8vIFBhdHRlcm4gZW5jcnlwdGlvbiBzZXR0aW5ncyBmb3IgTWVtb3J5IFNlY3VyaXR5IChJc3N1ZSAjMTMyMSlcbiAgRE9MTEhPVVNFX0RJU0FCTEVfRU5DUllQVElPTjogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBET0xMSE9VU0VfRU5DUllQVElPTl9TRUNSRVQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgRE9MTEhPVVNFX0VOQ1JZUFRJT05fU0FMVDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuXG4gIC8vIFRva2VuIGVuY3J5cHRpb24gc2VjcmV0IChTRUMtMDEsICMxNzM1KVxuICAvLyBXaGVuIHNldCwgcmVwbGFjZXMgdGhlIHByZWRpY3RhYmxlIG1hY2hpbmUtZGVyaXZlZCBwYXNzcGhyYXNlIGZvciB0b2tlbiBlbmNyeXB0aW9uLlxuICAvLyBTdHJvbmdseSByZWNvbW1lbmRlZCBmb3IgYW55IHNoYXJlZCBvciBtdWx0aS11c2VyIGVudmlyb25tZW50LlxuICAvLyBNaW5pbXVtIDMyIGNoYXJhY3RlcnMgZW5mb3JjZWQgdG8gcHJldmVudCB3ZWFrIHBhc3NwaHJhc2VzLlxuICBET0xMSE9VU0VfVE9LRU5fU0VDUkVUOiB6LnN0cmluZygpLm1pbigzMikub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFZhbGlkYXRlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqIFR5cGUgaXMgYXV0b21hdGljYWxseSBpbmZlcnJlZCBmcm9tIHRoZSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IGVudiA9IGVudlNjaGVtYS5wYXJzZShwcm9jZXNzLmVudik7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdHlwZSAoaW5mZXJyZWQgZnJvbSBzY2hlbWEpXG4gKi9cbmV4cG9ydCB0eXBlIEVudiA9IHouaW5mZXI8dHlwZW9mIGVudlNjaGVtYT47XG5cbi8qKlxuICogQ29udmVuaWVuY2UgaGVscGVycyBmb3IgZW52aXJvbm1lbnQgZGV0ZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBpc1Rlc3QgPSBlbnYuTk9ERV9FTlYgPT09ICd0ZXN0JztcbmV4cG9ydCBjb25zdCBpc0RldmVsb3BtZW50ID0gZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnO1xuZXhwb3J0IGNvbnN0IGlzUHJvZHVjdGlvbiA9IGVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nO1xuXG4vKipcbiAqIExvZyBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uICh3aXRob3V0IHNlY3JldHMpXG4gKi9cbmlmIChpc0RldmVsb3BtZW50IHx8IGlzVGVzdCkge1xuICBsb2dnZXIuZGVidWcoJ0Vudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gbG9hZGVkOicsIHtcbiAgICBOT0RFX0VOVjogZW52Lk5PREVfRU5WLFxuICAgIFBPUlQ6IGVudi5QT1JULFxuICAgIExPR19MRVZFTDogZW52LkxPR19MRVZFTCxcbiAgICBIQVNfR0lUSFVCX1RPS0VOOiAhIWVudi5HSVRIVUJfVE9LRU4sXG4gICAgSEFTX0dJVEhVQl9URVNUX1RPS0VOOiAhIWVudi5HSVRIVUJfVEVTVF9UT0tFTixcbiAgfSk7XG59XG4iXX0=
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTVDLGdGQUFnRjtBQUNoRiw2REFBNkQ7QUFDN0QsRUFBRTtBQUNGLDJEQUEyRDtBQUMzRCxzRUFBc0U7QUFDdEUsb0ZBQW9GO0FBQ3BGLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsaUZBQWlGO0FBQ2pGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztPQUM3QyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7QUFDL0QsTUFBTSxtQkFBbUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RFLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0RSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBUSxDQUFDO0FBQ3ZHLElBQUksV0FBVztJQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMs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LCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENlbnRyYWxpemVkIEVudmlyb25tZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyB0eXBlLXNhZmUgYWNjZXNzIHRvIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHZhbGlkYXRpb24uXG4gKiBBbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHNob3VsZCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoaXMgbW9kdWxlIHJhdGhlciB0aGFuXG4gKiBkaXJlY3RseSB2aWEgcHJvY2Vzcy5lbnYgdG8gZW5zdXJlIHR5cGUgc2FmZXR5IGFuZCB2YWxpZGF0aW9uLlxuICpcbiAqIFVzYWdlOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgZW52IH0gZnJvbSAnLi9jb25maWcvZW52JztcbiAqIGNvbnN0IHRva2VuID0gZW52LkdJVEhVQl9UT0tFTjsgIC8vIFR5cGU6IHN0cmluZ1xuICogYGBgXG4gKi9cblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgZG90ZW52IGZyb20gJ2RvdGVudic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuXG4vLyBMb2FkIC5lbnYgZmlsZXMgd2l0aCBwcmlvcml0eTogLmVudi5sb2NhbCAocGVyc29uYWwpID4gLmVudiAoc2hhcmVkIGRlZmF1bHRzKVxuLy8gQm90aCBmaWxlcyBhcmUgb3B0aW9uYWwgLSBubyBlcnJvciBpZiBlaXRoZXIgZG9lc24ndCBleGlzdFxuLy9cbi8vIE1DUCBQcm90b2NvbCBDb21wbGlhbmNlOiBTdXBwcmVzcyBkb3RlbnYncyBzdGRvdXQgb3V0cHV0XG4vLyBUaGUgTUNQIHByb3RvY29sIHJlcXVpcmVzIHRoYXQgT05MWSBKU09OLVJQQyBtZXNzYWdlcyBnbyB0byBzdGRvdXQuXG4vLyBkb3RlbnYgbWF5IG91dHB1dCB2ZXJzaW9uIGluZm8gdG8gc3Rkb3V0LCB3aGljaCBicmVha3MgQ2xhdWRlIERlc2t0b3AgY29ubmVjdGlvbi5cbi8vIFNvbHV0aW9uOiBUZW1wb3JhcmlseSByZWRpcmVjdCBzdGRvdXQgdG8gc3RkZXJyIGR1cmluZyBkb3RlbnYgaW5pdGlhbGl6YXRpb24uXG4vLyBJbiAtLXdlYiBtb2RlLCBzdXBwcmVzcyBib3RoIHN0ZG91dCBBTkQgc3RkZXJyIOKAlCB0aGUgdXNlciBvbmx5IG5lZWRzIHRoZVxuLy8gY29uc29sZSBVUkwgYmFubmVyLCBub3QgZG90ZW52J3MgaW5qZWN0aW9uIHN1bW1hcnkuIExvZ3MgZ28gdG8gdGhlIHdlYiB2aWV3ZXIuXG5jb25zdCBpc1dlYlNpbGVudCA9IHByb2Nlc3MuYXJndi5pbmNsdWRlcygnLS13ZWInKVxuICAmJiAhcHJvY2Vzcy5lbnYuRE9MTEhPVVNFX0RFQlVHICYmICFwcm9jZXNzLmVudi5FTkFCTEVfREVCVUc7XG5jb25zdCBvcmlnaW5hbFN0ZG91dFdyaXRlID0gcHJvY2Vzcy5zdGRvdXQud3JpdGUuYmluZChwcm9jZXNzLnN0ZG91dCk7XG5jb25zdCBvcmlnaW5hbFN0ZGVycldyaXRlID0gcHJvY2Vzcy5zdGRlcnIud3JpdGUuYmluZChwcm9jZXNzLnN0ZGVycik7XG5wcm9jZXNzLnN0ZG91dC53cml0ZSA9IChpc1dlYlNpbGVudCA/ICgoKSA9PiB0cnVlKSA6IHByb2Nlc3Muc3RkZXJyLndyaXRlLmJpbmQocHJvY2Vzcy5zdGRlcnIpKSBhcyBhbnk7XG5pZiAoaXNXZWJTaWxlbnQpIHByb2Nlc3Muc3RkZXJyLndyaXRlID0gKCgpID0+IHRydWUpIGFzIGFueTtcbmRvdGVudi5jb25maWcoeyBwYXRoOiBbJy5lbnYubG9jYWwnLCAnLmVudiddIH0pO1xucHJvY2Vzcy5zdGRvdXQud3JpdGUgPSBvcmlnaW5hbFN0ZG91dFdyaXRlO1xuaWYgKGlzV2ViU2lsZW50KSBwcm9jZXNzLnN0ZGVyci53cml0ZSA9IG9yaWdpbmFsU3RkZXJyV3JpdGU7XG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgc2NoZW1hIHdpdGggdmFsaWRhdGlvblxuICovXG5jb25zdCBlbnZTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRW52aXJvbm1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBOT0RFX0VOVjogei5lbnVtKFsnZGV2ZWxvcG1lbnQnLCAndGVzdCcsICdwcm9kdWN0aW9uJ10pLmRlZmF1bHQoJ2RldmVsb3BtZW50JyksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQcm9kdWN0aW9uIEdpdEh1YiBDcmVkZW50aWFsc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFVzZWQgYnkgcHJvZHVjdGlvbiBjb2RlIChzcmMvKSBmb3IgcmVhbCBHaXRIdWIgb3BlcmF0aW9uc1xuICAvLyBPcHRpb25hbDogRmVhdHVyZXMgcmVxdWlyaW5nIEdpdEh1YiB3aWxsIGZhaWwgZ3JhY2VmdWxseSBpZiBub3Qgc2V0XG4gIEdJVEhVQl9UT0tFTjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBHSVRIVUJfVVNFUk5BTUU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgR0lUSFVCX1JFUE9TSVRPUlk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFRlc3QgR2l0SHViIENyZWRlbnRpYWxzIChTRVBBUkFURSBhY2NvdW50ISlcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVc2VkIGJ5IHRlc3QgY29kZSAodGVzdHMvKSAtIHRlc3RzIHdpbGwgc2tpcCBpZiBub3QgcHJvdmlkZWRcbiAgLy8gSU1QT1JUQU5UOiBVc2UgYSBkaWZmZXJlbnQgR2l0SHViIGFjY291bnQgZm9yIHRlc3RpbmchXG4gIEdJVEhVQl9URVNUX1RPS0VOOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIEdJVEhVQl9URVNUX1VTRVJOQU1FOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIEdJVEhVQl9URVNUX1JFUE9TSVRPUlk6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNlcnZlciBDb25maWd1cmF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgUE9SVDogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgzMDAwKSxcbiAgTE9HX0xFVkVMOiB6LmVudW0oWydlcnJvcicsICd3YXJuJywgJ2luZm8nLCAnZGVidWcnXSkuZGVmYXVsdCgnaW5mbycpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVzdCBDb25maWd1cmF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgVEVTVF9CQVNFX0RJUjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBURVNUX1BFUlNPTkFTX0RJUjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBURVNUX0NBQ0hFX0RJUjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBURVNUX0NPTkZJR19ESVI6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEZlYXR1cmUgRmxhZ3NcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBET0xMSE9VU0VfQVVUT19TVUJNSVRfVE9fQ09MTEVDVElPTjogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBFTkFCTEVfREVCVUc6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgVEVTVF9WRVJCT1NFX0xPR0dJTkc6IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE1DUCBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbiAoSXNzdWUgIzIzNylcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvKipcbiAgICogTUNQIGludGVyZmFjZSBtb2RlIC0gY29udHJvbHMgd2hpY2ggdG9vbCBpbnRlcmZhY2UgaXMgZXhwb3NlZCB0byBMTE1zOlxuICAgKiAtICdkaXNjcmV0ZSc6IH40MCBpbmRpdmlkdWFsIHRvb2xzIChsaXN0X2VsZW1lbnRzLCBjcmVhdGVfZWxlbWVudCwgZXRjLikgLSB+MywwMDAgdG9rZW5zXG4gICAqIC0gJ21jcGFxbCc6IENvbnNvbGlkYXRlZCBNQ1AtQVFMIGludGVyZmFjZSAtIHVzZXMgTUNQX0FRTF9FTkRQT0lOVF9NT0RFIGZvciBzdHlsZVxuICAgKlxuICAgKiBEZWZhdWx0OiAnbWNwYXFsJyAtIHJlY29tbWVuZGVkIGZvciB0b2tlbiBlZmZpY2llbmN5IGFuZCBjbGVhbmVyIHRvb2wgZGlzY292ZXJ5XG4gICAqL1xuICBNQ1BfSU5URVJGQUNFX01PREU6IHouZW51bShbJ2Rpc2NyZXRlJywgJ21jcGFxbCddKS5kZWZhdWx0KCdtY3BhcWwnKSxcblxuICAvKipcbiAgICogTUNQLUFRTCBlbmRwb2ludCBtb2RlIChvbmx5IGFwcGxpZXMgd2hlbiBNQ1BfSU5URVJGQUNFX01PREU9J21jcGFxbCcpOlxuICAgKiAtICdjcnVkZSc6IDUgQ1JVREUgdG9vbHMgKENyZWF0ZSwgUmVhZCwgVXBkYXRlLCBEZWxldGUsIEV4ZWN1dGUpIC0gfjQsMzAwIHRva2Vuc1xuICAgKiAtICdzaW5nbGUnOiAxIHRvb2wgKG1jcF9hcWwpIC0gfjM1MCB0b2tlbnMsIGlkZWFsIGZvciBtdWx0aS1zZXJ2ZXIgZGVwbG95bWVudHNcbiAgICovXG4gIE1DUF9BUUxfRU5EUE9JTlRfTU9ERTogei5lbnVtKFsnY3J1ZGUnLCAnc2luZ2xlJ10pLmRlZmF1bHQoJ2NydWRlJyksXG5cbiAgLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBhbGlhcyBmb3IgTUNQX0FRTF9NT0RFIChkZXByZWNhdGVkLCB1c2UgTUNQX0FRTF9FTkRQT0lOVF9NT0RFKVxuICBNQ1BfQVFMX01PREU6IHouZW51bShbJ2NydWRlJywgJ3NpbmdsZSddKS5vcHRpb25hbCgpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVW5pZmllZCBMb2dnaW5nIENvbmZpZ3VyYXRpb24gKGRvY3MvTE9HR0lORy1ERVNJR04ubWQpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgRE9MTEhPVVNFX0xPR19ESVI6IHouc3RyaW5nKCkuZGVmYXVsdCgnfi8uZG9sbGhvdXNlL2xvZ3MvJyksXG4gIERPTExIT1VTRV9MT0dfRk9STUFUOiB6LmVudW0oWyd0ZXh0JywgJ2pzb25sJ10pLmRlZmF1bHQoJ3RleHQnKSxcbiAgRE9MTEhPVVNFX0xPR19SRVRFTlRJT05fREFZUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgzMCksXG4gIERPTExIT1VTRV9MT0dfU0VDVVJJVFlfUkVURU5USU9OX0RBWVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNyksXG4gIERPTExIT1VTRV9MT0dfRkxVU0hfSU5URVJWQUxfTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNTAwMCksXG4gIC8vIEJ1ZmZlciByYWlzZWQgdG8gMjAwMCB0byBzdXBwb3J0IHRoZSB3ZWIgY29uc29sZSBsb2cgdmlld2VyIOKAlCB0aGUgaGlnaGVyIGNhcGFjaXR5XG4gIC8vIHJlZHVjZXMgZmx1c2ggZnJlcXVlbmN5IGFuZCBrZWVwcyBtb3JlIGVudHJpZXMgYXZhaWxhYmxlIGZvciBTU0UgYmFja2ZpbGwgb24gY29ubmVjdC5cbiAgRE9MTEhPVVNFX0xPR19CVUZGRVJfU0laRTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgyMDAwKSxcbiAgRE9MTEhPVVNFX0xPR19NRU1PUllfQ0FQQUNJVFk6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNTAwMCksXG4gIERPTExIT1VTRV9MT0dfTUVNT1JZX0FQUF9DQVBBQ0lUWTogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgxMDAwMCksXG4gIERPTExIT1VTRV9MT0dfTUVNT1JZX1NFQ1VSSVRZX0NBUEFDSVRZOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDUwMDApLFxuICBET0xMSE9VU0VfTE9HX01FTU9SWV9QRVJGX0NBUEFDSVRZOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDIwMDApLFxuICBET0xMSE9VU0VfTE9HX01FTU9SWV9URUxFTUVUUllfQ0FQQUNJVFk6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTAwMCksXG4gIERPTExIT1VTRV9MT0dfTUFYX0VOVFJZX1NJWkU6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTYzODQpLFxuICBET0xMSE9VU0VfTE9HX0lNTUVESUFURV9GTFVTSF9SQVRFOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDUwKSxcbiAgRE9MTEhPVVNFX0xPR19GSUxFX01BWF9TSVpFOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDEwNDg1NzYwMCksXG4gIERPTExIT1VTRV9MT0dfTUFYX0RJUl9TSVpFX0JZVEVTOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDApLFxuICBET0xMSE9VU0VfTE9HX01BWF9GSUxFU19QRVJfQ0FURUdPUlk6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTAwKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBlcm1pc3Npb24gU2VydmVyIENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvKipcbiAgICogRW5hYmxlIHRoZSBIVFRQIHBlcm1pc3Npb24gZXZhbHVhdGlvbiBzZXJ2ZXIgZm9yIFByZVRvb2xVc2UgaG9va3MuXG4gICAqIFdoZW4gdHJ1ZSwgc3RhcnRzIGFuIEhUVFAgZW5kcG9pbnQgb24gYSBkeW5hbWljIHBvcnQgYWZ0ZXIgZGVmZXJyZWRcbiAgICogc2V0dXAgY29tcGxldGVzLiBXcml0ZXMgcG9ydCB0byB+Ly5kb2xsaG91c2UvcnVuL3Blcm1pc3Npb24tc2VydmVyLnBvcnRcbiAgICogZm9yIGhvb2sgc2NyaXB0IGRpc2NvdmVyeS4gUmVxdWlyZWQgZm9yIGF1dG9ub21vdXMgYWdlbnQgcGVybWlzc2lvblxuICAgKiBtYW5hZ2VtZW50IHZpYSBDbGF1ZGUgQ29kZSBob29rcy5cbiAgICovXG4gIERPTExIT1VTRV9QRVJNSVNTSU9OX1NFUlZFUjogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG5cbiAgLy8gV2ViIENvbnNvbGUgQ29uZmlndXJhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8qKiBFbmFibGUgdGhlIHVuaWZpZWQgd2ViIGNvbnNvbGUgKGxvZ3MgKyBtZXRyaWNzIHRhYnMpICovXG4gIERPTExIT1VTRV9XRUJfQ09OU09MRTogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG5cbiAgLyoqXG4gICAqIFBvcnQgdGhlIHdlYiBjb25zb2xlIGxlYWRlciBiaW5kcyB0byAoIzE3OTQsICMxNzk4KS5cbiAgICpcbiAgICogRGVmYXVsdDogNDE3MTUg4oCUIFwiQUlMSVNcIiBvbiBhIHBob25lIGtleXBhZCwgYWZ0ZXIgdGhlIEFJIExheWVyXG4gICAqIEludGVyZmFjZSBTcGVjaWZpY2F0aW9uIHRoYXQgRG9sbGhvdXNlTUNQIGltcGxlbWVudHMuIEFsc28gXCJBbGljZVwiXG4gICAqIGluIEdhZWxpYy5cbiAgICpcbiAgICogUG9ydCBzZWxlY3Rpb24gY3JpdGVyaWEgKHZlcmlmaWVkIDIwMjYtMDQtMDYpOlxuICAgKiAgIC0gTm90IHJlZ2lzdGVyZWQgd2l0aCBJQU5BIChubyBlbnRyeSBpbiB0aGUgc2VydmljZSBuYW1lIHJlZ2lzdHJ5KVxuICAgKiAgIC0gTm90IGluIG5tYXAgc2VydmljZXMgZGF0YWJhc2UgKG5ldmVyIG9ic2VydmVkIGluIHRoZSB3aWxkKVxuICAgKiAgIC0gTm8ga25vd24gYXBwbGljYXRpb24sIHNlY3VyaXR5IHRvb2wsIG9yIG1hbHdhcmUgYXNzb2NpYXRpb25zXG4gICAqICAgLSBCZWxvdyB0aGUgbWFjT1MgZXBoZW1lcmFsIHJhbmdlICg0OTE1Mi02NTUzNSksIHNvIGBiaW5kKClgXG4gICAqICAgICBkb2VzIG5vdCByYWNlIHdpdGgga2VybmVsLWFsbG9jYXRlZCBzb3VyY2UgcG9ydHNcbiAgICogICAtIEluIHRoZSBJQU5BIHVzZXIgcG9ydCByYW5nZSAoMTAyNC00OTE1MSlcbiAgICogICAtIE5vdCBhZGphY2VudCB0byB0aGUgcHJlLWF1dGhlbnRpY2F0aW9uIGRlZmF1bHQgKDM5MzkpXG4gICAqXG4gICAqIFByZXZpb3VzIGRlZmF1bHQgd2FzIDU5MDcgKFwiTE9HU1wiIHVwc2lkZSBkb3duIG9uIGEgY2FsY3VsYXRvciksXG4gICAqIHdoaWNoIGNvbmZsaWN0ZWQgd2l0aCBTdGVsbGFyIEN5YmVyJ3MgSFRUUCBHS0UgbG9nIHBhcnNlci5cbiAgICpcbiAgICogT3ZlcnJpZGUgdmlhIGVudiB2YXIgaWYgNDE3MTUgY29sbGlkZXMgd2l0aCBzb21ldGhpbmcgaW4geW91clxuICAgKiBlbnZpcm9ubWVudCDigJQgZXZlcnkgcnVudGltZSByZWZlcmVuY2UgcmVhZHMgZnJvbSB0aGlzIHNpbmdsZSB2YWx1ZS5cbiAgICovXG4gIERPTExIT1VTRV9XRUJfQ09OU09MRV9QT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5pbnQoKS5taW4oMTAyNCkubWF4KDY1NTM1KS5kZWZhdWx0KDQxNzE1KSxcblxuICAvKipcbiAgICogSXNzdWUgIzE3ODA6IEVuZm9yY2UgQmVhcmVyIHRva2VuIGF1dGhlbnRpY2F0aW9uIG9uIHRoZSB3ZWIgY29uc29sZSBBUEkuXG4gICAqIFdoZW4gdHJ1ZSwgYWxsIHByb3RlY3RlZCBlbmRwb2ludHMgcmVxdWlyZSBhIHZhbGlkIHRva2VuIGZyb20gdGhlXG4gICAqIGNvbnNvbGUgdG9rZW4gZmlsZS4gV2hlbiBmYWxzZSAodGhlIHByZS1QaGFzZS0yIGRlZmF1bHQpLCB0aGUgdG9rZW5cbiAgICogZmlsZSBpcyBzdGlsbCBnZW5lcmF0ZWQgYnV0IHRoZSBtaWRkbGV3YXJlIGRvZXMgbm90IGVuZm9yY2Ug4oCUIHRoaXNcbiAgICogbGV0cyB0aGUgaW5mcmFzdHJ1Y3R1cmUgbGFuZCB3aXRob3V0IGJyZWFraW5nIGV4aXN0aW5nIGNvbnN1bWVycy5cbiAgICogV2lsbCBmbGlwIHRvIGRlZmF1bHQgYHRydWVgIGluIGEgZm9sbG93LXVwIFBSIG9uY2UgYWxsIGNvbnN1bWVyc1xuICAgKiAoYnJvd3NlciwgZm9sbG93ZXJzLCBicmlkZ2UpIGhhdmUgYmVlbiB1cGRhdGVkIHRvIGF0dGFjaCB0b2tlbnMuXG4gICAqL1xuICBET0xMSE9VU0VfV0VCX0FVVEhfRU5BQkxFRDogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuXG4gIC8qKlxuICAgKiBJc3N1ZSAjMTc4MDogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBjb25zb2xlIHRva2VuIGZpbGUgbG9jYXRpb24uXG4gICAqIFdoZW4gdW5zZXQsIGBDb25zb2xlVG9rZW5TdG9yZWAgZmFsbHMgYmFjayB0byBpdHMgYnVpbHQtaW4gZGVmYXVsdFxuICAgKiB1bmRlciBgfi8uZG9sbGhvdXNlL3J1bi9gLiBNYWlubHkgdXNlZnVsIGZvciB0ZXN0cyBhbmQgZm9yIGVudGVycHJpc2VcbiAgICogZGVwbG95bWVudHMgdGhhdCBtb3VudCBhIHNoYXJlZCB0b2tlbiBmaWxlIGZyb20gYSBzZWNyZXRzIHZvbHVtZS5cbiAgICovXG4gIERPTExIT1VTRV9DT05TT0xFX1RPS0VOX0ZJTEU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcblxuICAvKipcbiAgICogT3B0aW9uYWwgb3ZlcnJpZGUgZm9yIHRoZSBjb25zb2xlIGxlYWRlciBsb2NrIGZpbGUgbG9jYXRpb24gKCMxNzk0KS5cbiAgICogV2hlbiB1bnNldCwgYExlYWRlckVsZWN0aW9uYCBmYWxscyBiYWNrIHRvIGl0cyBidWlsdC1pbiBkZWZhdWx0IHVuZGVyXG4gICAqIGB+Ly5kb2xsaG91c2UvcnVuL2AuIFByaW1hcmlseSB1c2VmdWwgZm9yIHRlc3RzIHRoYXQgbmVlZCBpc29sYXRpb25cbiAgICogYmV0d2VlbiBydW5zIGFuZCBmb3IgZGVwbG95bWVudHMgdGhhdCBzcGxpdCBydW50aW1lIHN0YXRlIGFjcm9zc1xuICAgKiBtdWx0aXBsZSBpbnN0YWxsYXRpb25zIG9uIHRoZSBzYW1lIG1hY2hpbmUuXG4gICAqL1xuICBET0xMSE9VU0VfQ09OU09MRV9MRUFERVJfTE9DS19GSUxFOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG5cbiAgLy8gTGVhZGVyL0ZvbGxvd2VyIFJlY292ZXJ5ICgjMTg1MClcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBJc3N1ZSAjMTg1MDogUmV0cnkgZGVsYXlzIChpbiBtcykgd2hlbiB0aGUgbGVhZGVyIGZhaWxzIHRvIGJpbmQgdGhlIGNvbnNvbGVcbiAgICogcG9ydCBkdWUgdG8gRUFERFJJTlVTRS4gRWFjaCB2YWx1ZSBpcyBhIHN1Y2Nlc3NpdmUgYmFja29mZiBkZWxheS5cbiAgICogRGVmYXVsdDogMXMsIDJzLCA0cyAoN3MgdG90YWwpLiBJbmNyZWFzZSBmb3Igc2xvdyBvciByZW1vdGUgZW52aXJvbm1lbnRzLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfQklORF9SRVRSWV9ERUxBWVM6IHouc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC50cmFuc2Zvcm0odiA9PiB2ID8gdi5zcGxpdCgnLCcpLm1hcChOdW1iZXIpLmZpbHRlcihuID0+ICFOdW1iZXIuaXNOYU4obikgJiYgbiA+IDApIDogdW5kZWZpbmVkKSxcblxuICAvKipcbiAgICogSXNzdWUgIzE4NTA6IE51bWJlciBvZiBjb25zZWN1dGl2ZSBmb3J3YXJkaW5nIGZhaWx1cmVzIGJlZm9yZSBhIGZvbGxvd2VyXG4gICAqIGRlY2xhcmVzIHRoZSBsZWFkZXIgZGVhZCBhbmQgYXR0ZW1wdHMgc2VsZi1wcm9tb3Rpb24uIEhpZ2hlciB2YWx1ZXMgcmVkdWNlXG4gICAqIGZhbHNlIHBvc2l0aXZlcyBpbiBoaWdoLWxhdGVuY3kgZW52aXJvbm1lbnRzIGJ1dCBkZWxheSByZWNvdmVyeS5cbiAgICogRGVmYXVsdDogMTAuXG4gICAqL1xuICBET0xMSE9VU0VfQ09OU09MRV9NQVhfRk9SV0FSRF9GQUlMVVJFUzogei5jb2VyY2UubnVtYmVyKCkuaW50KCkubWluKDEpLm1heCgxMDApLmRlZmF1bHQoMTApLFxuXG4gIC8qKlxuICAgKiBJc3N1ZSAjMTc4MDogUGhhc2UgMiDigJQgcmVxdWlyZSBhIGNvbmZpcm1hdGlvbiBjb2RlIChPUyBkaWFsb2cgb3IgVE9UUClcbiAgICogZm9yIHByaXZpbGVnZWQgYWN0aW9ucyBsaWtlIHRva2VuIHJvdGF0aW9uLiBEZWZhdWx0IGlzIHRydWUgZm9yIHNhZmV0eTtcbiAgICogc2V0IHRvIGZhbHNlIGZvciBoZWFkbGVzcyBDSSBhbmQgc2NyaXB0ZWQgZGVwbG95bWVudHMgdGhhdCBuZWVkIHRvIHJvdGF0ZVxuICAgKiB3aXRob3V0IGh1bWFuIGludGVyYWN0aW9uLlxuICAgKi9cbiAgRE9MTEhPVVNFX0NPTlNPTEVfUk9UQVRJT05fUkVRVUlSRV9DT05GSVJNQVRJT046IHouY29lcmNlLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2VjdXJpdHkgQ29uZmlndXJhdGlvblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8qKlxuICAgKiBJc3N1ZSAjNDUyOiBHYXRla2VlcGVyIHBvbGljeSBlbmZvcmNlbWVudC5cbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgYWxsIE1DUC1BUUwgb3BlcmF0aW9ucyBnbyB0aHJvdWdoIHRoZSA0LWxheWVyIEdhdGVrZWVwZXJcbiAgICogZW5mb3JjZSgpIHBpcGVsaW5lLiBXaGVuIGZhbHNlLCBmYWxscyBiYWNrIHRvIHJvdXRlIHZhbGlkYXRpb24gb25seS5cbiAgICogVGhpcyBpcyBhIHVzZXIvb3BlcmF0b3Igc2V0dGluZyDigJQgdGhlIExMTSBjYW5ub3QgYnlwYXNzIGl0LlxuICAgKi9cbiAgRE9MTEhPVVNFX0dBVEVLRUVQRVJfRU5BQkxFRDogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIC8qKlxuICAgKiBJc3N1ZSAjNjc5OiBFbGVtZW50IHBvbGljeSBsYXllciBraWxsIHN3aXRjaC5cbiAgICogV2hlbiB0cnVlIChkZWZhdWx0KSwgYWN0aXZlIGVsZW1lbnQgZ2F0ZWtlZXBlciBwb2xpY2llcyAoYWxsb3cvY29uZmlybS9kZW55L3Njb3BlUmVzdHJpY3Rpb25zKVxuICAgKiBjYW4gb3ZlcnJpZGUgZGVmYXVsdCBvcGVyYXRpb24gcGVybWlzc2lvbiBsZXZlbHMuIFdoZW4gZmFsc2UsIExheWVyIDIgb2YgR2F0ZWtlZXBlci5lbmZvcmNlKClcbiAgICogaXMgYnlwYXNzZWQgZW50aXJlbHkg4oCUIG9ubHkgcm91dGUgdmFsaWRhdGlvbiBhbmQgZGVmYXVsdCBwZXJtaXNzaW9uIGxldmVscyBhcHBseS5cbiAgICogVXNlIGZvciBlbWVyZ2VuY3kgbG9ja2Rvd24sIGhhcmRlbmVkIGRlcGxveW1lbnRzLCBvciBwb2xpY3kgZGVidWdnaW5nLlxuICAgKiBUaGlzIGlzIGFuIG9wZXJhdG9yL2luZnJhc3RydWN0dXJlIHNldHRpbmcg4oCUIHRoZSBMTE0gY2Fubm90IGJ5cGFzcyBpdC5cbiAgICovXG4gIERPTExIT1VTRV9HQVRFS0VFUEVSX0VMRU1FTlRfUE9MSUNZX09WRVJSSURFUzogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIC8qKlxuICAgKiBJc3N1ZSAjNzk5OiBQb2xpY3kgZXhwb3J0IG9wdC1pbiBmbGFnLlxuICAgKiBXaGVuIHRydWUgKGRlZmF1bHQpLCBQb2xpY3lFeHBvcnRTZXJ2aWNlIHdyaXRlcyB0aGUgc2VjdXJpdHkgcG9saWN5IGJsdWVwcmludCB0b1xuICAgKiB+Ly5kb2xsaG91c2UvYnJpZGdlL2ltcG9ydHMvcG9saWNpZXMvIG9uIGFjdGl2YXRpb24gY2hhbmdlcy4gVGhlIERvbGxob3VzZUJyaWRnZVxuICAgKiBwZXJtaXNzaW9uLXByb21wdCBzZXJ2ZXIgd2F0Y2hlcyB0aGlzIGZpbGUgdG8gZXZhbHVhdGUgcGVybWlzc2lvbnMgbG9jYWxseS5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgcG9saWN5IGZpbGUgZXhwb3J0IGVudGlyZWx5LlxuICAgKi9cbiAgRE9MTEhPVVNFX1BPTElDWV9FWFBPUlRfRU5BQkxFRDogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTdG9yYWdlIExheWVyIENvbmZpZ3VyYXRpb25cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBET0xMSE9VU0VfU0NBTl9DT09MRE9XTl9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgxMDAwKSxcbiAgRE9MTEhPVVNFX0lOREVYX0RFQk9VTkNFX01TOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDIwMDApLFxuICBET0xMSE9VU0VfRUxFTUVOVF9DQUNIRV9UVExfTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMzYwMDAwMCksXG4gIERPTExIT1VTRV9QQVRIX0NBQ0hFX1RUTF9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgzNjAwMDAwKSxcbiAgRE9MTEhPVVNFX1RPT0xfQ0FDSEVfVFRMX01TOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDYwMDAwKSxcbiAgRE9MTEhPVVNFX0dMT0JBTF9DQUNIRV9NRU1PUllfTUI6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTUwKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBlcm1pc3Npb24gUHJvbXB0IENvbmZpZ3VyYXRpb24gKElzc3VlICM2MjUpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKiogTWF4aW11bSBDTEkgYXBwcm92YWwgcmVjb3JkcyBiZWZvcmUgTFJVIGV2aWN0aW9uIChkZWZhdWx0OiA1MCkgKi9cbiAgRE9MTEhPVVNFX0NMSV9BUFBST1ZBTF9NQVg6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNTApLFxuXG4gIC8qKiBEZWZhdWx0IFRUTCBmb3IgQ0xJIGFwcHJvdmFsIHJlY29yZHMgaW4gbXMgKGRlZmF1bHQ6IDMwMDAwMCA9IDUgbWluKSAqL1xuICBET0xMSE9VU0VfQ0xJX0FQUFJPVkFMX1RUTF9NUzogei5jb2VyY2UubnVtYmVyKCkuZGVmYXVsdCgzMDBfMDAwKSxcblxuICAvKiogUGVybWlzc2lvbiBwcm9tcHQgcmF0ZSBsaW1pdDogbWF4IHJlcXVlc3RzIHBlciB3aW5kb3cgKGRlZmF1bHQ6IDEwMCkgKi9cbiAgRE9MTEhPVVNFX1BFUk1JU1NJT05fUFJPTVBUX1JBVEVfTElNSVQ6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTAwKSxcblxuICAvKiogQ0xJIGFwcHJvdmFsIGNyZWF0aW9uIHJhdGUgbGltaXQ6IG1heCByZXF1ZXN0cyBwZXIgd2luZG93IChkZWZhdWx0OiAyMCkgKi9cbiAgRE9MTEhPVVNFX0NMSV9BUFBST1ZBTF9SQVRFX0xJTUlUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDIwKSxcblxuICAvKiogUmF0ZSBsaW1pdCB3aW5kb3cgaW4gbXMgZm9yIHBlcm1pc3Npb24gcHJvbXB0IGFuZCBDTEkgYXBwcm92YWxzIChkZWZhdWx0OiA2MDAwMCA9IDYwcykgKi9cbiAgRE9MTEhPVVNFX1BFUk1JU1NJT05fUkFURV9XSU5ET1dfTVM6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoNjBfMDAwKSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIE1ldHJpY3MgQ29sbGVjdGlvbiBDb25maWd1cmF0aW9uXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgRE9MTEhPVVNFX01FVFJJQ1NfRU5BQkxFRDogei5jb2VyY2UuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gIERPTExIT1VTRV9NRVRSSUNTX0NPTExFQ1RJT05fSU5URVJWQUxfTVM6IHouY29lcmNlLm51bWJlcigpLm1pbigxMDAwKS5tYXgoMzAwMDAwKS5kZWZhdWx0KDE1MDAwKSxcbiAgRE9MTEhPVVNFX01FVFJJQ1NfTUFYX1NOQVBTSE9UX1NJWkU6IHouY29lcmNlLm51bWJlcigpLmRlZmF1bHQoMTAyNDAwKSxcbiAgRE9MTEhPVVNFX01FVFJJQ1NfQ09MTEVDVE9SX0ZBSUxVUkVfVEhSRVNIT0xEOiB6LmNvZXJjZS5udW1iZXIoKS5taW4oMSkubWF4KDEwMCkuZGVmYXVsdCgxMCksXG4gIERPTExIT1VTRV9NRVRSSUNTX0NPTExFQ1RJT05fRFVSQVRJT05fV0FSTl9NUzogei5jb2VyY2UubnVtYmVyKCkubWluKDEwMCkubWF4KDYwMDAwKS5kZWZhdWx0KDUwMDApLFxuICBET0xMSE9VU0VfTUVUUklDU19NRU1PUllfU05BUFNIT1RfQ0FQQUNJVFk6IHouY29lcmNlLm51bWJlcigpLm1pbigxMCkubWF4KDEwMDAwKS5kZWZhdWx0KDI0MCksXG5cbiAgLy8gUGF0dGVybiBlbmNyeXB0aW9uIHNldHRpbmdzIGZvciBNZW1vcnkgU2VjdXJpdHkgKElzc3VlICMxMzIxKVxuICBET0xMSE9VU0VfRElTQUJMRV9FTkNSWVBUSU9OOiB6LmNvZXJjZS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIERPTExIT1VTRV9FTkNSWVBUSU9OX1NFQ1JFVDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBET0xMSE9VU0VfRU5DUllQVElPTl9TQUxUOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG5cbiAgLy8gVG9rZW4gZW5jcnlwdGlvbiBzZWNyZXQgKFNFQy0wMSwgIzE3MzUpXG4gIC8vIFdoZW4gc2V0LCByZXBsYWNlcyB0aGUgcHJlZGljdGFibGUgbWFjaGluZS1kZXJpdmVkIHBhc3NwaHJhc2UgZm9yIHRva2VuIGVuY3J5cHRpb24uXG4gIC8vIFN0cm9uZ2x5IHJlY29tbWVuZGVkIGZvciBhbnkgc2hhcmVkIG9yIG11bHRpLXVzZXIgZW52aXJvbm1lbnQuXG4gIC8vIE1pbmltdW0gMzIgY2hhcmFjdGVycyBlbmZvcmNlZCB0byBwcmV2ZW50IHdlYWsgcGFzc3BocmFzZXMuXG4gIERPTExIT1VTRV9UT0tFTl9TRUNSRVQ6IHouc3RyaW5nKCkubWluKDMyKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogVmFsaWRhdGVkIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICogVHlwZSBpcyBhdXRvbWF0aWNhbGx5IGluZmVycmVkIGZyb20gdGhlIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgZW52ID0gZW52U2NoZW1hLnBhcnNlKHByb2Nlc3MuZW52KTtcblxuLyoqXG4gKiBFbnZpcm9ubWVudCB0eXBlIChpbmZlcnJlZCBmcm9tIHNjaGVtYSlcbiAqL1xuZXhwb3J0IHR5cGUgRW52ID0gei5pbmZlcjx0eXBlb2YgZW52U2NoZW1hPjtcblxuLyoqXG4gKiBDb252ZW5pZW5jZSBoZWxwZXJzIGZvciBlbnZpcm9ubWVudCBkZXRlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGlzVGVzdCA9IGVudi5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xuZXhwb3J0IGNvbnN0IGlzRGV2ZWxvcG1lbnQgPSBlbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCc7XG5leHBvcnQgY29uc3QgaXNQcm9kdWN0aW9uID0gZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbic7XG5cbi8qKlxuICogTG9nIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gKHdpdGhvdXQgc2VjcmV0cylcbiAqL1xuaWYgKGlzRGV2ZWxvcG1lbnQgfHwgaXNUZXN0KSB7XG4gIGxvZ2dlci5kZWJ1ZygnRW52aXJvbm1lbnQgY29uZmlndXJhdGlvbiBsb2FkZWQ6Jywge1xuICAgIE5PREVfRU5WOiBlbnYuTk9ERV9FTlYsXG4gICAgUE9SVDogZW52LlBPUlQsXG4gICAgTE9HX0xFVkVMOiBlbnYuTE9HX0xFVkVMLFxuICAgIEhBU19HSVRIVUJfVE9LRU46ICEhZW52LkdJVEhVQl9UT0tFTixcbiAgICBIQVNfR0lUSFVCX1RFU1RfVE9LRU46ICEhZW52LkdJVEhVQl9URVNUX1RPS0VOLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -38,14 +38,6 @@ export declare const resolveEnsembleElementTypes: typeof resolveElementTypes;
|
|
|
38
38
|
* - Ensemble creation and validation
|
|
39
39
|
* - Element reference management
|
|
40
40
|
* - Import/export in multiple formats
|
|
41
|
-
*
|
|
42
|
-
* MEMORY BEHAVIOR:
|
|
43
|
-
* - Tracks warned legacy element-field fingerprints in memory so repeated parses
|
|
44
|
-
* of the same ensemble/element/field combination do not keep spamming logs.
|
|
45
|
-
* - Fingerprints are scoped to the manager lifetime and grow with the number of
|
|
46
|
-
* unique legacy field sightings.
|
|
47
|
-
* - Long-running servers can clear this history explicitly with
|
|
48
|
-
* clearLegacyElementWarningHistory(), and dispose() also clears it.
|
|
49
41
|
*/
|
|
50
42
|
export declare class EnsembleManager extends BaseElementManager<Ensemble> {
|
|
51
43
|
private metadataService;
|
|
@@ -53,18 +45,8 @@ export declare class EnsembleManager extends BaseElementManager<Ensemble> {
|
|
|
53
45
|
private validationService;
|
|
54
46
|
private serializationService;
|
|
55
47
|
private activeEnsembleNames;
|
|
56
|
-
private readonly legacyElementFieldWarnings;
|
|
57
48
|
constructor(portfolioManager: PortfolioManager, fileLockManager: FileLockManager, fileOperationsService: FileOperationsService, validationRegistry: ValidationRegistry, serializationService: SerializationService, metadataService: MetadataService, fileWatchService?: FileWatchService, memoryBudget?: import('../../cache/CacheMemoryBudget.js').CacheMemoryBudget, backupService?: import('../../services/BackupService.js').BackupService);
|
|
58
49
|
protected getElementLabel(): string;
|
|
59
|
-
/**
|
|
60
|
-
* Clear warn-once state for legacy ensemble element fields.
|
|
61
|
-
*
|
|
62
|
-
* Useful for long-lived processes that want to cap in-memory warning history
|
|
63
|
-
* or intentionally re-emit migration guidance after a maintenance boundary.
|
|
64
|
-
*/
|
|
65
|
-
clearLegacyElementWarningHistory(): void;
|
|
66
|
-
dispose(): void;
|
|
67
|
-
private warnOnceForLegacyElementField;
|
|
68
50
|
/**
|
|
69
51
|
* Parse metadata from YAML frontmatter
|
|
70
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnsembleManager.d.ts","sourceRoot":"","sources":["../../../src/elements/ensembles/EnsembleManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAcpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAStE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,KAAK,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAE5G,oFAAoF;AACpF,eAAO,MAAM,2BAA2B,4BAAsB,CAAC;AAE/D
|
|
1
|
+
{"version":3,"file":"EnsembleManager.d.ts","sourceRoot":"","sources":["../../../src/elements/ensembles/EnsembleManager.ts"],"names":[],"mappings":"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"}
|