@thinkhive/sdk 4.2.3 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/calibration.js +2 -2
- package/dist/api/claims.d.ts +3 -3
- package/dist/api/claims.js +8 -3
- package/dist/api/signals.js +14 -3
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.js +2 -2
- package/dist/core/types.d.ts +3 -3
- package/dist/core/types.js +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +2 -2
- package/package.json +12 -12
package/dist/api/calibration.js
CHANGED
|
@@ -27,7 +27,7 @@ exports.calibration = {
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
async status(agentId, predictionType) {
|
|
30
|
-
return (0, client_1.
|
|
30
|
+
return (0, client_1.apiRequest)(`/calibration/${agentId}/status?predictionType=${predictionType}`, { apiVersion: 'v3' });
|
|
31
31
|
},
|
|
32
32
|
/**
|
|
33
33
|
* Get all calibration metrics for an agent
|
|
@@ -168,4 +168,4 @@ function getCalibrationQuality(brierScore) {
|
|
|
168
168
|
function formatBrierScore(score) {
|
|
169
169
|
return score.toFixed(4);
|
|
170
170
|
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsaWJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NhbGlicmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUEwSEgsa0RBb0JDO0FBVUQsb0NBdURDO0FBTUQsNENBS0M7QUFLRCxzREFPQztBQUtELDRDQUVDO0FBM09ELDJDQUFnRTtBQWtDaEU7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6Qjs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLE9BQWUsRUFDZixjQUE4QjtRQUU5QixPQUFPLElBQUEsMkJBQWtCLEVBQ3ZCLGdCQUFnQixPQUFPLDBCQUEwQixjQUFjLEVBQUUsRUFDakUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBZTtRQUM5QixPQUFPLElBQUEsMkJBQWtCLEVBQ3ZCLGdCQUFnQixPQUFPLFVBQVUsRUFDakMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQ1gsT0FBZSxFQUNmLFVBR0ksRUFBRTtRQU9OLE9BQU8sSUFBQSwyQkFBa0IsRUFBQyxnQkFBZ0IsT0FBTyxVQUFVLEVBQUU7WUFDM0QsTUFBTSxFQUFFLE1BQU07WUFDZCxJQUFJLEVBQUUsT0FBTztZQUNiLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRixDQUFDO0FBRUYsK0VBQStFO0FBQy9FLG1CQUFtQjtBQUNuQiwrRUFBK0U7QUFFL0U7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyx3QkFBK0UsRUFDL0UsT0FBMEI7SUFFMUIsZ0VBQWdFO0lBQ2hFLElBQUksT0FBTyx3QkFBd0Is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QUNwQixDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQ2xDLE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsVUFBa0I7SUFFbEIsSUFBSSxVQUFVLEdBQUcsSUFBSTtRQUFFLE9BQU8sV0FBVyxDQUFDO0lBQzFDLElBQUksVUFBVSxHQUFHLEdBQUc7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNwQyxJQUFJLFVBQVUsR0FBRyxHQUFHO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDcEMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBYTtJQUM1QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gQ2FsaWJyYXRpb24gQVBJXG4gKlxuICogUHJlZGljdGlvbiBhY2N1cmFjeSB0cmFja2luZyB3aXRoIEJyaWVyIHNjb3JlcyBhbmQgY2FsaWJyYXRpb24gbWV0cmljc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ2FsaWJyYXRpb25TdGF0dXMsXG4gIENhbGlicmF0aW9uQnVja2V0LFxuICBQcmVkaWN0aW9uVHlwZSxcbiAgQXBpUmVzcG9uc2UsXG59IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDQUxJQlJBVElPTiBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2FsaWJyYXRpb24gbWV0cmljc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbGlicmF0aW9uTWV0cmljcyB7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlO1xuICAvKiogQnJpZXIgc2NvcmUgKGxvd2VyIGlzIGJldHRlciwgPDAuMSBpcyBnb29kKSAqL1xuICBicmllclNjb3JlOiBudW1iZXI7XG4gIC8qKiBFeHBlY3RlZCBDYWxpYnJhdGlvbiBFcnJvciAqL1xuICBlY2U6IG51bWJlcjtcbiAgLyoqIE1heGltdW0gQ2FsaWJyYXRpb24gRXJyb3IgKi9cbiAgbWNlOiBudW1iZXI7XG4gIC8qKiBTYW1wbGUgY291bnQgKi9cbiAgc2FtcGxlQ291bnQ6IG51bWJlcjtcbiAgLyoqIElzIHRoZSBtb2RlbCB3ZWxsLWNhbGlicmF0ZWQgKi9cbiAgaXNDYWxpYnJhdGVkOiBib29sZWFuO1xuICAvKiogUmVsaWFiaWxpdHkgZGlhZ3JhbSBkYXRhICovXG4gIHJlbGlhYmlsaXR5RGlhZ3JhbTogQ2FsaWJyYXRpb25CdWNrZXRbXTtcbiAgLyoqIExhc3QgdXBkYXRlZCAqL1xuICBsYXN0VXBkYXRlZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIENhbGlicmF0aW9uIEFQSSBjbGllbnQgZm9yIHByZWRpY3Rpb24gYWNjdXJhY3kgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGNhbGlicmF0aW9uID0ge1xuICAvKipcbiAgICogR2V0IGNhbGlicmF0aW9uIHN0YXR1cyBmb3IgYW4gYWdlbnRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzdGF0dXMgPSBhd2FpdCBjYWxpYnJhdGlvbi5zdGF0dXMoJ2FnZW50XzEyMycsICdjaHVybl9yaXNrJyk7XG4gICAqIGNvbnNvbGUubG9nKGBCcmllciBzY29yZTogJHtzdGF0dXMuYnJpZXJTY29yZX1gKTtcbiAgICogY29uc29sZS5sb2coYElzIGNhbGlicmF0ZWQ6ICR7c3RhdHVzLmlzQ2FsaWJyYXRlZH1gKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdGF0dXMoXG4gICAgYWdlbnRJZDogc3RyaW5nLFxuICAgIHByZWRpY3Rpb25UeXBlOiBQcmVkaWN0aW9uVHlwZVxuICApOiBQcm9taXNlPENhbGlicmF0aW9uU3RhdHVzPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxDYWxpYnJhdGlvblN0YXR1cz4oXG4gICAgICBgL2NhbGlicmF0aW9uLyR7YWdlbnRJZH0vc3RhdHVzP3ByZWRpY3Rpb25UeXBlPSR7cHJlZGljdGlvblR5cGV9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ3YzJyB9XG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFsbCBjYWxpYnJhdGlvbiBtZXRyaWNzIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG1ldHJpY3MgPSBhd2FpdCBjYWxpYnJhdGlvbi5hbGxNZXRyaWNzKCdhZ2VudF8xMjMnKTtcbiAgICogZm9yIChjb25zdCBtIG9mIG1ldHJpY3MpIHtcbiAgICogICBjb25zb2xlLmxvZyhgJHttLnByZWRpY3Rpb25UeXBlfTogQnJpZXI9JHttLmJyaWVyU2NvcmV9YCk7XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBhbGxNZXRyaWNzKGFnZW50SWQ6IHN0cmluZyk6IFByb21pc2U8Q2FsaWJyYXRpb25NZXRyaWNzW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENhbGlicmF0aW9uTWV0cmljc1tdPihcbiAgICAgIGAvY2FsaWJyYXRpb24vJHthZ2VudElkfS9tZXRyaWNzYCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ3YzJyB9XG4gICAgKTtcbiAgfSxcblxuICAvKipcbiAgICogVHJpZ2dlciByZWNhbGlicmF0aW9uIGZvciBhbiBhZ2VudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhbGlicmF0aW9uLnJldHJhaW4oJ2FnZW50XzEyMycsIHtcbiAgICogICBwcmVkaWN0aW9uVHlwZXM6IFsnY2h1cm5fcmlzaycsICdlc2NhbGF0aW9uX3Jpc2snXSxcbiAgICogfSk7XG4gICAqIGNvbnNvbGUubG9nKGBSZXRyYWluZWQ6ICR7cmVzdWx0LnN1Y2Nlc3N9YCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgcmV0cmFpbihcbiAgICBhZ2VudElkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcHJlZGljdGlvblR5cGVzPzogUHJlZGljdGlvblR5cGVbXTtcbiAgICAgIG1pblNhbXBsZXM/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IFByb21pc2U8e1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgcmV0cmFpbmVkVHlwZXM6IFByZWRpY3Rpb25UeXBlW107XG4gICAgc2tpcHBlZFR5cGVzOiBBcnJheTx7IHR5cGU6IFByZWRpY3Rpb25UeXBlOyByZWFzb246IHN0cmluZyB9PjtcbiAgICBuZXdNZXRyaWNzOiBDYWxpYnJhdGlvbk1ldHJpY3NbXTtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9jYWxpYnJhdGlvbi8ke2FnZW50SWR9L3JldHJhaW5gLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2FsY3VsYXRlIEJyaWVyIHNjb3JlIGZyb20gcHJlZGljdGlvbnMgYW5kIG91dGNvbWVzXG4gKiBMb3dlciBpcyBiZXR0ZXIsIDwwLjEgaXMgY29uc2lkZXJlZCBnb29kXG4gKlxuICogU3VwcG9ydHMgdHdvIGNhbGxpbmcgY29udmVudGlvbnM6XG4gKiAtIGNhbGN1bGF0ZUJyaWVyU2NvcmUoMC44LCB0cnVlKSAg4oCUIHNpbmdsZSBwcmVkaWN0aW9uIChyZXR1cm5zIHNxdWFyZWQgZXJyb3IpXG4gKiAtIGNhbGN1bGF0ZUJyaWVyU2NvcmUoW3twcmVkaWN0ZWQ6IDAuOCwgYWN0dWFsOiAxfSwgLi4uXSkg4oCUIGJhdGNoIChyZXR1cm5zIG1lYW4gc3F1YXJlZCBlcnJvcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJyaWVyU2NvcmUoXG4gIHByZWRpY3Rpb25zT3JQcm9iYWJpbGl0eTogQXJyYXk8eyBwcmVkaWN0ZWQ6IG51bWJlcjsgYWN0dWFsOiBudW1iZXIgfT4gfCBudW1iZXIsXG4gIG91dGNvbWU/OiBib29sZWFuIHwgbnVtYmVyXG4pOiBudW1iZXIge1xuICAvLyBTaW5nbGUgcHJlZGljdGlvbiBjb252ZW5pZW5jZTogY2FsY3VsYXRlQnJpZXJTY29yZSgwLjgsIHRydWUpXG4gIGlmICh0eXBlb2YgcHJlZGljdGlvbnNPclByb2JhYmlsaXR5ID09PSAnbnVtYmVyJykge1xuICAgIGNvbnN0IHByZWRpY3RlZCA9IHByZWRpY3Rpb25zT3JQcm9iYWJpbGl0eTtcbiAgICBjb25zdCBhY3R1YWwgPSBvdXRjb21lID09PSB0cnVlID8gMSA6IG91dGNvbWUgPT09IGZhbHNlID8gMCA6IChvdXRjb21lID8/IDApO1xuICAgIHJldHVybiBNYXRoLnBvdyhwcmVkaWN0ZWQgLSBhY3R1YWwsIDIpO1xuICB9XG5cbiAgLy8gQmF0Y2ggbW9kZTogY2FsY3VsYXRlQnJpZXJTY29yZShbe3ByZWRpY3RlZCwgYWN0dWFsfSwgLi4uXSlcbiAgY29uc3QgcHJlZGljdGlvbnMgPSBwcmVkaWN0aW9uc09yUHJvYmFiaWxpdHk7XG4gIGlmIChwcmVkaWN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuXG4gIGNvbnN0IHN1bSA9IHByZWRpY3Rpb25zLnJlZHVjZSgoYWNjLCB7IHByZWRpY3RlZCwgYWN0dWFsIH0pID0+IHtcbiAgICByZXR1cm4gYWNjICsgTWF0aC5wb3cocHJlZGljdGVkIC0gYWN0dWFsLCAyKTtcbiAgfSwgMCk7XG5cbiAgcmV0dXJuIHN1bSAvIHByZWRpY3Rpb25zLmxlbmd0aDtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgRXhwZWN0ZWQgQ2FsaWJyYXRpb24gRXJyb3IgKEVDRSlcbiAqIE1lYXN1cmVzIGhvdyB3ZWxsLWNhbGlicmF0ZWQgcHJlZGljdGlvbnMgYXJlIGFjcm9zcyBjb25maWRlbmNlIGJ1Y2tldHNcbiAqXG4gKiBTdXBwb3J0cyB0d28gY2FsbGluZyBjb252ZW50aW9uczpcbiAqIC0gY2FsY3VsYXRlRUNFKFt7cHJlZGljdGVkLCBhY3R1YWx9LCAuLi5dKSAg4oCUIHJhdyBwcmVkaWN0aW9ucywgYXV0by1idWNrZXRlZFxuICogLSBjYWxjdWxhdGVFQ0UoW3thdmVyYWdlQ29uZmlkZW5jZSwgYWNjdXJhY3ksIGNvdW50fSwgLi4uXSkg4oCUIHByZS1jb21wdXRlZCBidWNrZXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVFQ0UoXG4gIHByZWRpY3Rpb25zT3JCdWNrZXRzOiBBcnJheTx7IHByZWRpY3RlZDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9PiB8IEFycmF5PHsgYXZlcmFnZUNvbmZpZGVuY2U6IG51bWJlcjsgYWNjdXJhY3k6IG51bWJlcjsgY291bnQ6IG51bWJlciB9PixcbiAgbnVtQnVja2V0czogbnVtYmVyID0gMTBcbik6IG51bWJlciB7XG4gIGlmIChwcmVkaWN0aW9uc09yQnVja2V0cy5sZW5ndGggPT09IDApIHJldHVybiAwO1xuXG4gIC8vIENoZWNrIGlmIHByZS1jb21wdXRlZCBidWNrZXRzIHdlcmUgcGFzc2VkXG4gIGNvbnN0IGZpcnN0ID0gcHJlZGljdGlvbnNPckJ1Y2tldHNbMF07XG4gIGlmICgnYXZlcmFnZUNvbmZpZGVuY2UnIGluIGZpcnN0ICYmICdhY2N1cmFjeScgaW4gZmlyc3QgJiYgJ2NvdW50JyBpbiBmaXJzdCkge1xuICAgIGNvbnN0IGJ1Y2tldHMgPSBwcmVkaWN0aW9uc09yQnVja2V0cyBhcyBBcnJheTx7IGF2ZXJhZ2VDb25maWRlbmNlOiBudW1iZXI7IGFjY3VyYWN5OiBudW1iZXI7IGNvdW50OiBudW1iZXIgfT47XG4gICAgY29uc3QgdG90YWxDb3VudCA9IGJ1Y2tldHMucmVkdWNlKChzdW0sIGIpID0+IHN1bSArIGIuY291bnQsIDApO1xuICAgIGlmICh0b3RhbENvdW50ID09PSAwKSByZXR1cm4gMDtcblxuICAgIGxldCBlY2UgPSAwO1xuICAgIGZvciAoY29uc3QgYnVja2V0IG9mIGJ1Y2tldHMpIHtcbiAgICAgIGlmIChidWNrZXQuY291bnQgPT09IDApIGNvbnRpbnVlO1xuICAgICAgY29uc3Qgd2VpZ2h0ID0gYnVja2V0LmNvdW50IC8gdG90YWxDb3VudDtcbiAgICAgIGVjZSArPSB3ZWlnaHQgKiBNYXRoLmFicyhidWNrZXQuYXZlcmFnZUNvbmZpZGVuY2UgLSBidWNrZXQuYWNjdXJhY3kpO1xuICAgIH1cbiAgICByZXR1cm4gZWNlO1xuICB9XG5cbiAgLy8gUmF3IHByZWRpY3Rpb25zIG1vZGVcbiAgY29uc3QgcHJlZGljdGlvbnMgPSBwcmVkaWN0aW9uc09yQnVja2V0cyBhcyBBcnJheTx7IHByZWRpY3RlZDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9PjtcblxuICBjb25zdCBidWNrZXRzOiBBcnJheTx7IHByZWRpY3Rpb25zOiBudW1iZXJbXTsgYWN0dWFsczogbnVtYmVyW10gfT4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1CdWNrZXRzOyBpKyspIHtcbiAgICBidWNrZXRzLnB1c2goeyBwcmVkaWN0aW9uczogW10sIGFjdHVhbHM6IFtdIH0pO1xuICB9XG5cbiAgLy8gQXNzaWduIHByZWRpY3Rpb25zIHRvIGJ1Y2tldHNcbiAgZm9yIChjb25zdCB7IHByZWRpY3RlZCwgYWN0dWFsIH0gb2YgcHJlZGljdGlvbnMpIHtcbiAgICBjb25zdCBidWNrZXRJbmRleCA9IE1hdGgubWluKFxuICAgICAgTWF0aC5mbG9vcihwcmVkaWN0ZWQgKiBudW1CdWNrZXRzKSxcbiAgICAgIG51bUJ1Y2tldHMgLSAxXG4gICAgKTtcbiAgICBidWNrZXRzW2J1Y2tldEluZGV4XS5wcmVkaWN0aW9ucy5wdXNoKHByZWRpY3RlZCk7XG4gICAgYnVja2V0c1tidWNrZXRJbmRleF0uYWN0dWFscy5wdXNoKGFjdHVhbCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgRUNFXG4gIGxldCBlY2UgPSAwO1xuICBmb3IgKGNvbnN0IGJ1Y2tldCBvZiBidWNrZXRzKSB7XG4gICAgaWYgKGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGggPT09IDApIGNvbnRpbnVlO1xuXG4gICAgY29uc3QgYXZnUHJlZGljdGVkID1cbiAgICAgIGJ1Y2tldC5wcmVkaWN0aW9ucy5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSAvIGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGg7XG4gICAgY29uc3QgYXZnQWN0dWFsID1cbiAgICAgIGJ1Y2tldC5hY3R1YWxzLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gYnVja2V0LmFjdHVhbHMubGVuZ3RoO1xuICAgIGNvbnN0IHdlaWdodCA9IGJ1Y2tldC5wcmVkaWN0aW9ucy5sZW5ndGggLyBwcmVkaWN0aW9ucy5sZW5ndGg7XG5cbiAgICBlY2UgKz0gd2VpZ2h0ICogTWF0aC5hYnMoYXZnUHJlZGljdGVkIC0gYXZnQWN0dWFsKTtcbiAgfVxuXG4gIHJldHVybiBlY2U7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBtb2RlbCBpcyB3ZWxsLWNhbGlicmF0ZWQgYmFzZWQgb24gQnJpZXIgc2NvcmVcbiAqIEFjY2VwdHMgYSBudW1iZXIgb3IgYW4gb2JqZWN0IHdpdGggYnJpZXJTY29yZSBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXZWxsQ2FsaWJyYXRlZChicmllclNjb3JlT3JTdGF0dXM6IG51bWJlciB8IHsgYnJpZXJTY29yZTogbnVtYmVyIH0pOiBib29sZWFuIHtcbiAgY29uc3Qgc2NvcmUgPSB0eXBlb2YgYnJpZXJTY29yZU9yU3RhdHVzID09PSAnbnVtYmVyJ1xuICAgID8gYnJpZXJTY29yZU9yU3RhdHVzXG4gICAgOiBicmllclNjb3JlT3JTdGF0dXMuYnJpZXJTY29yZTtcbiAgcmV0dXJuIHNjb3JlIDwgMC4xO1xufVxuXG4vKipcbiAqIEdldCBjYWxpYnJhdGlvbiBxdWFsaXR5IGxhYmVsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWxpYnJhdGlvblF1YWxpdHkoXG4gIGJyaWVyU2NvcmU6IG51bWJlclxuKTogJ2V4Y2VsbGVudCcgfCAnZ29vZCcgfCAnZmFpcicgfCAncG9vcicge1xuICBpZiAoYnJpZXJTY29yZSA8IDAuMDUpIHJldHVybiAnZXhjZWxsZW50JztcbiAgaWYgKGJyaWVyU2NvcmUgPCAwLjEpIHJldHVybiAnZ29vZCc7XG4gIGlmIChicmllclNjb3JlIDwgMC4yKSByZXR1cm4gJ2ZhaXInO1xuICByZXR1cm4gJ3Bvb3InO1xufVxuXG4vKipcbiAqIEZvcm1hdCBCcmllciBzY29yZSBmb3IgZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QnJpZXJTY29yZShzY29yZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNjb3JlLnRvRml4ZWQoNCk7XG59XG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsaWJyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2NhbGlicmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUEwSEgsa0RBb0JDO0FBVUQsb0NBdURDO0FBTUQsNENBS0M7QUFLRCxzREFPQztBQUtELDRDQUVDO0FBM09ELDJDQUFnRTtBQWtDaEU7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRztJQUN6Qjs7Ozs7Ozs7O09BU0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLE9BQWUsRUFDZixjQUE4QjtRQUU5QixPQUFPLElBQUEsbUJBQVUsRUFDZixnQkFBZ0IsT0FBTywwQkFBMEIsY0FBYyxFQUFFLEVBQ2pFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDOUIsT0FBTyxJQUFBLDJCQUFrQixFQUN2QixnQkFBZ0IsT0FBTyxVQUFVLEVBQ2pDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUNYLE9BQWUsRUFDZixVQUdJLEVBQUU7UUFPTixPQUFPLElBQUEsMkJBQWtCLEVBQUMsZ0JBQWdCLE9BQU8sVUFBVSxFQUFFO1lBQzNELE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLE9BQU87WUFDYixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBRUYsQ0FBQztBQUVGLCtFQUErRTtBQUMvRSxtQkFBbUI7QUFDbkIsK0VBQStFO0FBRS9FOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsd0JBQStFLEVBQy9FLE9BQTBCO0lBRTFCLGdFQUFnRTtJQUNoRSxJQUFJLE9BQU8sd0JBQXdCLEtB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cEIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQztJQUNsQyxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDckIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQ25DLFVBQWtCO0lBRWxCLElBQUksVUFBVSxHQUFHLElBQUk7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUMxQyxJQUFJLFVBQVUsR0FBRyxHQUFHO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDcEMsSUFBSSxVQUFVLEdBQUcsR0FBRztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3BDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgdjMuMCAtIENhbGlicmF0aW9uIEFQSVxuICpcbiAqIFByZWRpY3Rpb24gYWNjdXJhY3kgdHJhY2tpbmcgd2l0aCBCcmllciBzY29yZXMgYW5kIGNhbGlicmF0aW9uIG1ldHJpY3NcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIENhbGlicmF0aW9uU3RhdHVzLFxuICBDYWxpYnJhdGlvbkJ1Y2tldCxcbiAgUHJlZGljdGlvblR5cGUsXG4gIEFwaVJlc3BvbnNlLFxufSBmcm9tICcuLi9jb3JlL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ0FMSUJSQVRJT04gQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENhbGlicmF0aW9uIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxpYnJhdGlvbk1ldHJpY3Mge1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHByZWRpY3Rpb25UeXBlOiBQcmVkaWN0aW9uVHlwZTtcbiAgLyoqIEJyaWVyIHNjb3JlIChsb3dlciBpcyBiZXR0ZXIsIDwwLjEgaXMgZ29vZCkgKi9cbiAgYnJpZXJTY29yZTogbnVtYmVyO1xuICAvKiogRXhwZWN0ZWQgQ2FsaWJyYXRpb24gRXJyb3IgKi9cbiAgZWNlOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIENhbGlicmF0aW9uIEVycm9yICovXG4gIG1jZTogbnVtYmVyO1xuICAvKiogU2FtcGxlIGNvdW50ICovXG4gIHNhbXBsZUNvdW50OiBudW1iZXI7XG4gIC8qKiBJcyB0aGUgbW9kZWwgd2VsbC1jYWxpYnJhdGVkICovXG4gIGlzQ2FsaWJyYXRlZDogYm9vbGVhbjtcbiAgLyoqIFJlbGlhYmlsaXR5IGRpYWdyYW0gZGF0YSAqL1xuICByZWxpYWJpbGl0eURpYWdyYW06IENhbGlicmF0aW9uQnVja2V0W107XG4gIC8qKiBMYXN0IHVwZGF0ZWQgKi9cbiAgbGFzdFVwZGF0ZWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDYWxpYnJhdGlvbiBBUEkgY2xpZW50IGZvciBwcmVkaWN0aW9uIGFjY3VyYWN5IHRyYWNraW5nXG4gKi9cbmV4cG9ydCBjb25zdCBjYWxpYnJhdGlvbiA9IHtcbiAgLyoqXG4gICAqIEdldCBjYWxpYnJhdGlvbiBzdGF0dXMgZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qgc3RhdHVzID0gYXdhaXQgY2FsaWJyYXRpb24uc3RhdHVzKCdhZ2VudF8xMjMnLCAnY2h1cm5fcmlzaycpO1xuICAgKiBjb25zb2xlLmxvZyhgQnJpZXIgc2NvcmU6ICR7c3RhdHVzLmJyaWVyU2NvcmV9YCk7XG4gICAqIGNvbnNvbGUubG9nKGBJcyBjYWxpYnJhdGVkOiAke3N0YXR1cy5pc0NhbGlicmF0ZWR9YCk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgc3RhdHVzKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBwcmVkaWN0aW9uVHlwZTogUHJlZGljdGlvblR5cGVcbiAgKTogUHJvbWlzZTxDYWxpYnJhdGlvblN0YXR1cz4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0PENhbGlicmF0aW9uU3RhdHVzPihcbiAgICAgIGAvY2FsaWJyYXRpb24vJHthZ2VudElkfS9zdGF0dXM/cHJlZGljdGlvblR5cGU9JHtwcmVkaWN0aW9uVHlwZX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNhbGlicmF0aW9uIG1ldHJpY3MgZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbWV0cmljcyA9IGF3YWl0IGNhbGlicmF0aW9uLmFsbE1ldHJpY3MoJ2FnZW50XzEyMycpO1xuICAgKiBmb3IgKGNvbnN0IG0gb2YgbWV0cmljcykge1xuICAgKiAgIGNvbnNvbGUubG9nKGAke20ucHJlZGljdGlvblR5cGV9OiBCcmllcj0ke20uYnJpZXJTY29yZX1gKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGFsbE1ldHJpY3MoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxDYWxpYnJhdGlvbk1ldHJpY3NbXT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8Q2FsaWJyYXRpb25NZXRyaWNzW10+KFxuICAgICAgYC9jYWxpYnJhdGlvbi8ke2FnZW50SWR9L21ldHJpY3NgLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIHJlY2FsaWJyYXRpb24gZm9yIGFuIGFnZW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsaWJyYXRpb24ucmV0cmFpbignYWdlbnRfMTIzJywge1xuICAgKiAgIHByZWRpY3Rpb25UeXBlczogWydjaHVybl9yaXNrJywgJ2VzY2FsYXRpb25fcmlzayddLFxuICAgKiB9KTtcbiAgICogY29uc29sZS5sb2coYFJldHJhaW5lZDogJHtyZXN1bHQuc3VjY2Vzc31gKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyByZXRyYWluKFxuICAgIGFnZW50SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBwcmVkaWN0aW9uVHlwZXM/OiBQcmVkaWN0aW9uVHlwZVtdO1xuICAgICAgbWluU2FtcGxlcz86IG51bWJlcjtcbiAgICB9ID0ge31cbiAgKTogUHJvbWlzZTx7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICByZXRyYWluZWRUeXBlczogUHJlZGljdGlvblR5cGVbXTtcbiAgICBza2lwcGVkVHlwZXM6IEFycmF5PHsgdHlwZTogUHJlZGljdGlvblR5cGU7IHJlYXNvbjogc3RyaW5nIH0+O1xuICAgIG5ld01ldHJpY3M6IENhbGlicmF0aW9uTWV0cmljc1tdO1xuICB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2NhbGlicmF0aW9uLyR7YWdlbnRJZH0vcmV0cmFpbmAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogb3B0aW9ucyxcbiAgICAgIGFwaVZlcnNpb246ICd2MycsXG4gICAgfSk7XG4gIH0sXG5cbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDYWxjdWxhdGUgQnJpZXIgc2NvcmUgZnJvbSBwcmVkaWN0aW9ucyBhbmQgb3V0Y29tZXNcbiAqIExvd2VyIGlzIGJldHRlciwgPDAuMSBpcyBjb25zaWRlcmVkIGdvb2RcbiAqXG4gKiBTdXBwb3J0cyB0d28gY2FsbGluZyBjb252ZW50aW9uczpcbiAqIC0gY2FsY3VsYXRlQnJpZXJTY29yZSgwLjgsIHRydWUpICDigJQgc2luZ2xlIHByZWRpY3Rpb24gKHJldHVybnMgc3F1YXJlZCBlcnJvcilcbiAqIC0gY2FsY3VsYXRlQnJpZXJTY29yZShbe3ByZWRpY3RlZDogMC44LCBhY3R1YWw6IDF9LCAuLi5dKSDigJQgYmF0Y2ggKHJldHVybnMgbWVhbiBzcXVhcmVkIGVycm9yKVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQnJpZXJTY29yZShcbiAgcHJlZGljdGlvbnNPclByb2JhYmlsaXR5OiBBcnJheTx7IHByZWRpY3RlZDogbnVtYmVyOyBhY3R1YWw6IG51bWJlciB9PiB8IG51bWJlcixcbiAgb3V0Y29tZT86IGJvb2xlYW4gfCBudW1iZXJcbik6IG51bWJlciB7XG4gIC8vIFNpbmdsZSBwcmVkaWN0aW9uIGNvbnZlbmllbmNlOiBjYWxjdWxhdGVCcmllclNjb3JlKDAuOCwgdHJ1ZSlcbiAgaWYgKHR5cGVvZiBwcmVkaWN0aW9uc09yUHJvYmFiaWxpdHkgPT09ICdudW1iZXInKSB7XG4gICAgY29uc3QgcHJlZGljdGVkID0gcHJlZGljdGlvbnNPclByb2JhYmlsaXR5O1xuICAgIGNvbnN0IGFjdHVhbCA9IG91dGNvbWUgPT09IHRydWUgPyAxIDogb3V0Y29tZSA9PT0gZmFsc2UgPyAwIDogKG91dGNvbWUgPz8gMCk7XG4gICAgcmV0dXJuIE1hdGgucG93KHByZWRpY3RlZCAtIGFjdHVhbCwgMik7XG4gIH1cblxuICAvLyBCYXRjaCBtb2RlOiBjYWxjdWxhdGVCcmllclNjb3JlKFt7cHJlZGljdGVkLCBhY3R1YWx9LCAuLi5dKVxuICBjb25zdCBwcmVkaWN0aW9ucyA9IHByZWRpY3Rpb25zT3JQcm9iYWJpbGl0eTtcbiAgaWYgKHByZWRpY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgY29uc3Qgc3VtID0gcHJlZGljdGlvbnMucmVkdWNlKChhY2MsIHsgcHJlZGljdGVkLCBhY3R1YWwgfSkgPT4ge1xuICAgIHJldHVybiBhY2MgKyBNYXRoLnBvdyhwcmVkaWN0ZWQgLSBhY3R1YWwsIDIpO1xuICB9LCAwKTtcblxuICByZXR1cm4gc3VtIC8gcHJlZGljdGlvbnMubGVuZ3RoO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBFeHBlY3RlZCBDYWxpYnJhdGlvbiBFcnJvciAoRUNFKVxuICogTWVhc3VyZXMgaG93IHdlbGwtY2FsaWJyYXRlZCBwcmVkaWN0aW9ucyBhcmUgYWNyb3NzIGNvbmZpZGVuY2UgYnVja2V0c1xuICpcbiAqIFN1cHBvcnRzIHR3byBjYWxsaW5nIGNvbnZlbnRpb25zOlxuICogLSBjYWxjdWxhdGVFQ0UoW3twcmVkaWN0ZWQsIGFjdHVhbH0sIC4uLl0pICDigJQgcmF3IHByZWRpY3Rpb25zLCBhdXRvLWJ1Y2tldGVkXG4gKiAtIGNhbGN1bGF0ZUVDRShbe2F2ZXJhZ2VDb25maWRlbmNlLCBhY2N1cmFjeSwgY291bnR9LCAuLi5dKSDigJQgcHJlLWNvbXB1dGVkIGJ1Y2tldHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUVDRShcbiAgcHJlZGljdGlvbnNPckJ1Y2tldHM6IEFycmF5PHsgcHJlZGljdGVkOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0+IHwgQXJyYXk8eyBhdmVyYWdlQ29uZmlkZW5jZTogbnVtYmVyOyBhY2N1cmFjeTogbnVtYmVyOyBjb3VudDogbnVtYmVyIH0+LFxuICBudW1CdWNrZXRzOiBudW1iZXIgPSAxMFxuKTogbnVtYmVyIHtcbiAgaWYgKHByZWRpY3Rpb25zT3JCdWNrZXRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgLy8gQ2hlY2sgaWYgcHJlLWNvbXB1dGVkIGJ1Y2tldHMgd2VyZSBwYXNzZWRcbiAgY29uc3QgZmlyc3QgPSBwcmVkaWN0aW9uc09yQnVja2V0c1swXTtcbiAgaWYgKCdhdmVyYWdlQ29uZmlkZW5jZScgaW4gZmlyc3QgJiYgJ2FjY3VyYWN5JyBpbiBmaXJzdCAmJiAnY291bnQnIGluIGZpcnN0KSB7XG4gICAgY29uc3QgYnVja2V0cyA9IHByZWRpY3Rpb25zT3JCdWNrZXRzIGFzIEFycmF5PHsgYXZlcmFnZUNvbmZpZGVuY2U6IG51bWJlcjsgYWNjdXJhY3k6IG51bWJlcjsgY291bnQ6IG51bWJlciB9PjtcbiAgICBjb25zdCB0b3RhbENvdW50ID0gYnVja2V0cy5yZWR1Y2UoKHN1bSwgYikgPT4gc3VtICsgYi5jb3VudCwgMCk7XG4gICAgaWYgKHRvdGFsQ291bnQgPT09IDApIHJldHVybiAwO1xuXG4gICAgbGV0IGVjZSA9IDA7XG4gICAgZm9yIChjb25zdCBidWNrZXQgb2YgYnVja2V0cykge1xuICAgICAgaWYgKGJ1Y2tldC5jb3VudCA9PT0gMCkgY29udGludWU7XG4gICAgICBjb25zdCB3ZWlnaHQgPSBidWNrZXQuY291bnQgLyB0b3RhbENvdW50O1xuICAgICAgZWNlICs9IHdlaWdodCAqIE1hdGguYWJzKGJ1Y2tldC5hdmVyYWdlQ29uZmlkZW5jZSAtIGJ1Y2tldC5hY2N1cmFjeSk7XG4gICAgfVxuICAgIHJldHVybiBlY2U7XG4gIH1cblxuICAvLyBSYXcgcHJlZGljdGlvbnMgbW9kZVxuICBjb25zdCBwcmVkaWN0aW9ucyA9IHByZWRpY3Rpb25zT3JCdWNrZXRzIGFzIEFycmF5PHsgcHJlZGljdGVkOiBudW1iZXI7IGFjdHVhbDogbnVtYmVyIH0+O1xuXG4gIGNvbnN0IGJ1Y2tldHM6IEFycmF5PHsgcHJlZGljdGlvbnM6IG51bWJlcltdOyBhY3R1YWxzOiBudW1iZXJbXSB9PiA9IFtdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUJ1Y2tldHM7IGkrKykge1xuICAgIGJ1Y2tldHMucHVzaCh7IHByZWRpY3Rpb25zOiBbXSwgYWN0dWFsczogW10gfSk7XG4gIH1cblxuICAvLyBBc3NpZ24gcHJlZGljdGlvbnMgdG8gYnVja2V0c1xuICBmb3IgKGNvbnN0IHsgcHJlZGljdGVkLCBhY3R1YWwgfSBvZiBwcmVkaWN0aW9ucykge1xuICAgIGNvbnN0IGJ1Y2tldEluZGV4ID0gTWF0aC5taW4oXG4gICAgICBNYXRoLmZsb29yKHByZWRpY3RlZCAqIG51bUJ1Y2tldHMpLFxuICAgICAgbnVtQnVja2V0cyAtIDFcbiAgICApO1xuICAgIGJ1Y2tldHNbYnVja2V0SW5kZXhdLnByZWRpY3Rpb25zLnB1c2gocHJlZGljdGVkKTtcbiAgICBidWNrZXRzW2J1Y2tldEluZGV4XS5hY3R1YWxzLnB1c2goYWN0dWFsKTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSBFQ0VcbiAgbGV0IGVjZSA9IDA7XG4gIGZvciAoY29uc3QgYnVja2V0IG9mIGJ1Y2tldHMpIHtcbiAgICBpZiAoYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cbiAgICBjb25zdCBhdmdQcmVkaWN0ZWQgPVxuICAgICAgYnVja2V0LnByZWRpY3Rpb25zLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApIC8gYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aDtcbiAgICBjb25zdCBhdmdBY3R1YWwgPVxuICAgICAgYnVja2V0LmFjdHVhbHMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCkgLyBidWNrZXQuYWN0dWFscy5sZW5ndGg7XG4gICAgY29uc3Qgd2VpZ2h0ID0gYnVja2V0LnByZWRpY3Rpb25zLmxlbmd0aCAvIHByZWRpY3Rpb25zLmxlbmd0aDtcblxuICAgIGVjZSArPSB3ZWlnaHQgKiBNYXRoLmFicyhhdmdQcmVkaWN0ZWQgLSBhdmdBY3R1YWwpO1xuICB9XG5cbiAgcmV0dXJuIGVjZTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIG1vZGVsIGlzIHdlbGwtY2FsaWJyYXRlZCBiYXNlZCBvbiBCcmllciBzY29yZVxuICogQWNjZXB0cyBhIG51bWJlciBvciBhbiBvYmplY3Qgd2l0aCBicmllclNjb3JlIHByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dlbGxDYWxpYnJhdGVkKGJyaWVyU2NvcmVPclN0YXR1czogbnVtYmVyIHwgeyBicmllclNjb3JlOiBudW1iZXIgfSk6IGJvb2xlYW4ge1xuICBjb25zdCBzY29yZSA9IHR5cGVvZiBicmllclNjb3JlT3JTdGF0dXMgPT09ICdudW1iZXInXG4gICAgPyBicmllclNjb3JlT3JTdGF0dXNcbiAgICA6IGJyaWVyU2NvcmVPclN0YXR1cy5icmllclNjb3JlO1xuICByZXR1cm4gc2NvcmUgPCAwLjE7XG59XG5cbi8qKlxuICogR2V0IGNhbGlicmF0aW9uIHF1YWxpdHkgbGFiZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbGlicmF0aW9uUXVhbGl0eShcbiAgYnJpZXJTY29yZTogbnVtYmVyXG4pOiAnZXhjZWxsZW50JyB8ICdnb29kJyB8ICdmYWlyJyB8ICdwb29yJyB7XG4gIGlmIChicmllclNjb3JlIDwgMC4wNSkgcmV0dXJuICdleGNlbGxlbnQnO1xuICBpZiAoYnJpZXJTY29yZSA8IDAuMSkgcmV0dXJuICdnb29kJztcbiAgaWYgKGJyaWVyU2NvcmUgPCAwLjIpIHJldHVybiAnZmFpcic7XG4gIHJldHVybiAncG9vcic7XG59XG5cbi8qKlxuICogRm9ybWF0IEJyaWVyIHNjb3JlIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCcmllclNjb3JlKHNjb3JlOiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gc2NvcmUudG9GaXhlZCg0KTtcbn1cbiJdfQ==
|
package/dist/api/claims.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface ListClaimsOptions {
|
|
|
22
22
|
*/
|
|
23
23
|
export interface CreateAnalysisOptions {
|
|
24
24
|
runId: string;
|
|
25
|
-
modelUsed
|
|
25
|
+
modelUsed: string;
|
|
26
26
|
outcomeVerdict: 'success' | 'partial_success' | 'failure';
|
|
27
27
|
outcomeConfidence?: number;
|
|
28
28
|
rootCauseCategory?: string;
|
|
@@ -34,8 +34,8 @@ export interface CreateClaimInput {
|
|
|
34
34
|
claimCategory: ClaimCategory;
|
|
35
35
|
claimText: string;
|
|
36
36
|
confidence: number;
|
|
37
|
-
confidenceCalibration
|
|
38
|
-
evidence
|
|
37
|
+
confidenceCalibration: 'calibrated' | 'uncalibrated' | 'rule_based';
|
|
38
|
+
evidence: EvidenceReference[];
|
|
39
39
|
isExplainable?: boolean;
|
|
40
40
|
probabilityValue?: number;
|
|
41
41
|
}
|
package/dist/api/claims.js
CHANGED
|
@@ -259,10 +259,15 @@ function groupClaimsByCategory(claimsList) {
|
|
|
259
259
|
const groups = {
|
|
260
260
|
outcome: [],
|
|
261
261
|
root_cause: [],
|
|
262
|
-
|
|
262
|
+
sentiment: [],
|
|
263
263
|
churn_risk: [],
|
|
264
|
-
|
|
264
|
+
escalation_risk: [],
|
|
265
|
+
satisfaction: [],
|
|
266
|
+
recontact: [],
|
|
267
|
+
resolution_time: [],
|
|
268
|
+
cost: [],
|
|
265
269
|
quality: [],
|
|
270
|
+
compliance: [],
|
|
266
271
|
other: [],
|
|
267
272
|
};
|
|
268
273
|
for (const claim of claimsList) {
|
|
@@ -270,4 +275,4 @@ function groupClaimsByCategory(claimsList) {
|
|
|
270
275
|
}
|
|
271
276
|
return groups;
|
|
272
277
|
}
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGFpbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQStUSCx3QkFFQztBQU1ELGtDQUVDO0FBTUQsZ0NBRUM7QUFLRCwwREFLQztBQU9ELDhDQWFDO0FBS0Qsc0RBa0JDO0FBcFlELDJDQUFnRTtBQThFaEU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkJHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxPQUFPLElBQUEsMkJBQWtCLEVBQWlCLFdBQVcsRUFBRTtZQUNyRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsYUFBYSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsU0FBUyxLQUFLLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFhcEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsaUJB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QUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxVQUFVLElBQUssQ0FBUyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN6RyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFVBQVUsSUFBSyxDQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBRXhHLE9BQU87UUFDTCxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVE7UUFDNUIsb0JBQW9CO1FBQ3BCLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLFFBQVE7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxVQUFtQjtJQUVuQixNQUFNLE1BQU0sR0FBbUM7UUFDN0MsT0FBTyxFQUFFLEVBQUU7UUFDWCxVQUFVLEVBQUUsRUFBRTtRQUNkLGVBQWUsRUFBRSxFQUFFO1FBQ25CLFVBQVUsRUFBRSxFQUFFO1FBQ2QsY0FBYyxFQUFFLEVBQUU7UUFDbEIsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsRUFBRTtLQUNWLENBQUM7SUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHYzLjAgLSBDbGFpbXMgQVBJXG4gKlxuICogRmFjdHMgdnMgSW5mZXJlbmNlcyBBUEkgZm9yIGFjY2Vzc2luZyBhbmFseXNpcyBjbGFpbXNcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIENsYWltLFxuICBDbGFpbVR5cGUsXG4gIENsYWltQ2F0ZWdvcnksXG4gIEFuYWx5c2lzUmVzdWx0LFxuICBBcGlSZXNwb25zZSxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIEV2aWRlbmNlUmVmZXJlbmNlLFxufSBmcm9tICcuLi9jb3JlL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ0xBSU1TIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBMaXN0IGNsYWltcyBxdWVyeSBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdENsYWltc09wdGlvbnMge1xuICBydW5JZD86IHN0cmluZztcbiAgYW5hbHlzaXNJZD86IHN0cmluZztcbiAgY2xhaW1UeXBlPzogQ2xhaW1UeXBlO1xuICBjbGFpbUNhdGVnb3J5PzogQ2xhaW1DYXRlZ29yeTtcbiAgbWluQ29uZmlkZW5jZT86IG51bWJlcjtcbiAgaHVtYW5WZXJpZmllZD86IGJvb2xlYW47XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuYWx5c2lzIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVBbmFseXNpc09wdGlvbnMge1xuICBydW5JZDogc3RyaW5nO1xuICBtb2RlbFVzZWQ/OiBzdHJpbmc7XG4gIG91dGNvbWVWZXJkaWN0OiAnc3VjY2VzcycgfCAncGFydGlhbF9zdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgb3V0Y29tZUNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIHJvb3RDYXVzZUNhdGVnb3J5Pzogc3RyaW5nO1xuICByb290Q2F1c2VDb25maWRlbmNlPzogbnVtYmVyO1xuICBjbGFpbXM/OiBDcmVhdGVDbGFpbUlucHV0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xhaW1JbnB1dCB7XG4gIGNsYWltVHlwZTogQ2xhaW1UeXBlO1xuICBjbGFpbUNhdGVnb3J5OiBDbGFpbUNhdGVnb3J5O1xuICBjbGFpbVRleHQ6IHN0cmluZztcbiAgY29uZmlkZW5jZTogbnVtYmVyO1xuICBjb25maWRlbmNlQ2FsaWJyYXRpb24/OiAnY2FsaWJyYXRlZCcgfCAndW5jYWxpYnJhdGVkJyB8ICduZWVkc19tb3JlX2RhdGEnO1xuICBldmlkZW5jZT86IEV2aWRlbmNlUmVmZXJlbmNlW107XG4gIGlzRXhwbGFpbmFibGU/OiBib29sZWFuO1xuICBwcm9iYWJpbGl0eVZhbHVlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZhY3RzIHZzIGluZmVyZW5jZXMgc3VtbWFyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeSB7XG4gIGFuYWx5c2lzSWRzOiBzdHJpbmdbXTtcbiAgdG90YWxDbGFpbXM6IG51bWJlcjtcbiAgb2JzZXJ2ZWQ6IHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGF2Z0NvbmZpZGVuY2U6IG51bWJlcjtcbiAgICBjYXRlZ29yaWVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICB9O1xuICBpbmZlcnJlZDoge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgYXZnQ29uZmlkZW5jZTogbnVtYmVyO1xuICAgIGNhdGVnb3JpZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIH07XG4gIGNvbXB1dGVkOiB7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBhdmdDb25maWRlbmNlOiBudW1iZXI7XG4gICAgY2F0ZWdvcmllczogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgfTtcbiAgaHVtYW5WZXJpZmllZENvdW50OiBudW1iZXI7XG4gIGh1bWFuUmVqZWN0ZWRDb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENsYWltcyBBUEkgY2xpZW50IGZvciBmYWN0cyB2cyBpbmZlcmVuY2VzIG1hbmFnZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGNsYWltcyA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBhbmFseXNpcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5jcmVhdGVBbmFseXNpcyh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICBvdXRjb21lVmVyZGljdDogJ2ZhaWx1cmUnLFxuICAgKiAgIG91dGNvbWVDb25maWRlbmNlOiAwLjg1LFxuICAgKiAgIHJvb3RDYXVzZUNhdGVnb3J5OiAncmV0cmlldmFsX2ZhaWx1cmUnLFxuICAgKiAgIGNsYWltczogW1xuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdvYnNlcnZlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdyb290X2NhdXNlJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnVmVjdG9yIHNlYXJjaCByZXR1cm5lZCAwIHJlc3VsdHMnLFxuICAgKiAgICAgICBjb25maWRlbmNlOiAxLjAsXG4gICAqICAgICAgIGV2aWRlbmNlOiBbeyB0eXBlOiAnc3BhbicsIHJlZmVyZW5jZUlkOiAnc3Bhbl8xMjMnLCByZWxldmFuY2U6ICdkaXJlY3QnLCBjb25maWRlbmNlOiAxLjAgfV0sXG4gICAqICAgICB9LFxuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnSGlnaCBjaHVybiByaXNrIGR1ZSB0byByZXBlYXRlZCBmYWlsdXJlcycsXG4gICAqICAgICAgIGNvbmZpZGVuY2U6IDAuNyxcbiAgICogICAgIH0sXG4gICAqICAgXSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlQW5hbHlzaXMob3B0aW9uczogQ3JlYXRlQW5hbHlzaXNPcHRpb25zKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KCcvYW5hbHlzZXMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYW4gYW5hbHlzaXMgYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpcygnYW5hbHlzaXNfYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0QW5hbHlzaXMoYW5hbHlzaXNJZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvYW5hbHlzZXMvJHthbmFseXNpc0lkfWAsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgYW5hbHlzaXMgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYW5hbHlzaXMgPSBhd2FpdCBjbGFpbXMuZ2V0UnVuQW5hbHlzaXMoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRSdW5BbmFseXNpcyhydW5JZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvcnVucy8ke3J1bklkfS9hbmFseXNpc2AsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFuYWx5c2lzIGhpc3RvcnkgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaGlzdG9yeSA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpc0hpc3RvcnkoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRBbmFseXNpc0hpc3RvcnkocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIHJ1bklkOiBzdHJpbmc7XG4gICAgYW5hbHlzZXM6IEFycmF5PHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBhbmFseXNpc1ZlcnNpb246IHN0cmluZztcbiAgICAgIG1vZGVsVXNlZDogc3RyaW5nO1xuICAgICAgb3V0Y29tZVZlcmRpY3Q6IHN0cmluZztcbiAgICAgIGlzQ3VycmVudDogYm9vbGVhbjtcbiAgICAgIHN1cGVyc2VkZWRCeT86IHN0cmluZztcbiAgICAgIHN1cGVyc2Vzc2lvblJlYXNvbj86IHN0cmluZztcbiAgICAgIGFuYWx5emVkQXQ6IHN0cmluZztcbiAgICB9PjtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9ydW5zLyR7cnVuSWR9L2FuYWx5c2VzYCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTdXBlcnNlZGUgYW4gYW5hbHlzaXMgd2l0aCBhIG5ldyBvbmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBuZXdBbmFseXNpcyA9IGF3YWl0IGNsYWltcy5zdXBlcnNlZGVBbmFseXNpcygnYW5hbHlzaXNfb2xkJywge1xuICAgKiAgIHJlYXNvbjogJ0ltcHJvdmVkIG1vZGVsIGFjY3VyYWN5JyxcbiAgICogICBuZXdBbmFseXNpczoge1xuICAgKiAgICAgb3V0Y29tZVZlcmRpY3Q6ICdzdWNjZXNzJyxcbiAgICogICAgIG91dGNvbWVDb25maWRlbmNlOiAwLjk1LFxuICAgKiAgICAgY2xhaW1zOiBbLi4uXSxcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdXBlcnNlZGVBbmFseXNpcyhcbiAgICBhbmFseXNpc0lkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICBuZXdBbmFseXNpczogT21pdDxDcmVhdGVBbmFseXNpc09wdGlvbnMsICdydW5JZCc+O1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IHN1cGVyc2VkZWRBbmFseXNpc0lkOiBzdHJpbmc7IG5ld0FuYWx5c2lzOiBBbmFseXNpc1Jlc3VsdCB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2FuYWx5c2VzLyR7YW5hbHlzaXNJZH0vc3VwZXJzZWRlYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ3YzJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdCBjbGFpbXMgd2l0aCBmaWx0ZXJzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gR2V0IGFsbCBpbmZlcnJlZCBjbGFpbXMgd2l0aCBoaWdoIGNvbmZpZGVuY2VcbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgbWluQ29uZmlkZW5jZTogMC44LFxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gR2V0IGFsbCBjaHVybiByaXNrIGNsYWltcyBmb3IgYSBydW5cbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBydW5JZDogJ3J1bl9hYmMxMjMnLFxuICAgKiAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0Q2xhaW1zT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8eyBjbGFpbXM6IENsYWltW107IGxpbWl0OiBudW1iZXI7IG9mZnNldDogbnVtYmVyOyBoYXNNb3JlOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdGlvbnMucnVuSWQpIHBhcmFtcy5zZXQoJ3J1bklkJywgb3B0aW9ucy5ydW5JZCk7XG4gICAgaWYgKG9wdGlvbnMuYW5hbHlzaXNJZCkgcGFyYW1zLnNldCgnYW5hbHlzaXNJZCcsIG9wdGlvbnMuYW5hbHlzaXNJZCk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1UeXBlKSBwYXJhbXMuc2V0KCdjbGFpbVR5cGUnLCBvcHRpb25zLmNsYWltVHlwZSk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1DYXRlZ29yeSkgcGFyYW1zLnNldCgnY2xhaW1DYXRlZ29yeScsIG9wdGlvbnMuY2xhaW1DYXRlZ29yeSk7XG4gICAgaWYgKG9wdGlvbnMubWluQ29uZmlkZW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc2V0KCdtaW5Db25maWRlbmNlJywgU3RyaW5nKG9wdGlvbnMubWluQ29uZmlkZW5jZSkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5odW1hblZlcmlmaWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5zZXQoJ2h1bWFuVmVyaWZpZWQnLCBTdHJpbmcob3B0aW9ucy5odW1hblZlcmlmaWVkKSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxpbWl0KSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRpb25zLmxpbWl0KSk7XG4gICAgaWYgKG9wdGlvbnMub2Zmc2V0KSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0aW9ucy5vZmZzZXQpKTtcblxuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8eyBjbGFpbXM6IENsYWltW107IGxpbWl0OiBudW1iZXI7IG9mZnNldDogbnVtYmVyOyBoYXNNb3JlOiBib29sZWFuIH0+KFxuICAgICAgYC9jbGFpbXM/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYSBjbGFpbSBieSBJRFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGNsYWltID0gYXdhaXQgY2xhaW1zLmdldCgnY2xhaW1fYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0KGNsYWltSWQ6IHN0cmluZyk6IFByb21pc2U8Q2xhaW0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENsYWltPihgL2NsYWltcy8ke2NsYWltSWR9YCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBWZXJpZnkgb3IgcmVqZWN0IGEgY2xhaW0gKGh1bWFuIGZlZWRiYWNrKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIENvbmZpcm0gYSBjbGFpbVxuICAgKiBhd2FpdCBjbGFpbXMudmVyaWZ5KCdjbGFpbV9hYmMxMjMnLCB7XG4gICAqICAgdmVyZGljdDogJ2NvbmZpcm1lZCcsXG4gICAqICAgbm90ZXM6ICdWZXJpZmllZCBhZ2FpbnN0IHRpY2tldCBoaXN0b3J5JyxcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIFJlamVjdCBhIGNsYWltXG4gICAqIGF3YWl0IGNsYWltcy52ZXJpZnkoJ2NsYWltX2FiYzEyMycsIHtcbiAgICogICB2ZXJkaWN0OiAncmVqZWN0ZWQnLFxuICAgKiAgIG5vdGVzOiAnQ3VzdG9tZXIgY29udGV4dCB3YXMgbWlzc2luZycsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHZlcmlmeShcbiAgICBjbGFpbUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgdmVyZGljdDogJ2NvbmZpcm1lZCcgfCAncmVqZWN0ZWQnIHwgJ21vZGlmaWVkJztcbiAgICAgIG5vdGVzPzogc3RyaW5nO1xuICAgICAgbW9kaWZpZWRUZXh0Pzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IGNsYWltSWQ6IHN0cmluZzsgdmVyZGljdDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9jbGFpbXMvJHtjbGFpbUlkfS92ZXJpZnlgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgZmFjdHMgdnMgaW5mZXJlbmNlcyBzdW1tYXJ5XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gU3VtbWFyeSBmb3IgYSBzcGVjaWZpYyBydW5cbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IGNsYWltcy5zdW1tYXJ5KHsgcnVuSWQ6ICdydW5fYWJjMTIzJyB9KTtcbiAgICpcbiAgICogLy8gU3VtbWFyeSBmb3IgbXVsdGlwbGUgYW5hbHlzZXNcbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IGNsYWltcy5zdW1tYXJ5KHtcbiAgICogICBhbmFseXNpc0lkczogWydhbmFseXNpc18xJywgJ2FuYWx5c2lzXzInXSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgc3VtbWFyeShcbiAgICBvcHRpb25zOiB7IHJ1bklkPzogc3RyaW5nOyBhbmFseXNpc0lkcz86IHN0cmluZ1tdIH0gPSB7fVxuICApOiBQcm9taXNlPEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0aW9ucy5ydW5JZCkgcGFyYW1zLnNldCgncnVuSWQnLCBvcHRpb25zLnJ1bklkKTtcbiAgICBpZiAob3B0aW9ucy5hbmFseXNpc0lkcykgcGFyYW1zLnNldCgnYW5hbHlzaXNJZHMnLCBvcHRpb25zLmFuYWx5c2lzSWRzLmpvaW4oJywnKSk7XG5cbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeT4oXG4gICAgICBgL2NsYWltcy9zdW1tYXJ5PyR7cGFyYW1zLnRvU3RyaW5nKCl9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ3YzJyB9XG4gICAgKTtcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNsYWltIGlzIGEgZmFjdCAob2JzZXJ2ZWQpXG4gKiBBY2NlcHRzIGJvdGggeyBjbGFpbVR5cGU6ICdvYnNlcnZlZCcgfSAoQVBJIGZvcm1hdCkgYW5kIHsgdHlwZTogJ2ZhY3QnIH0gKHNob3J0aGFuZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmFjdChjbGFpbTogQ2xhaW0gfCB7IHR5cGU/OiBzdHJpbmc7IGNsYWltVHlwZT86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBjbGFpbS5jbGFpbVR5cGUgPT09ICdvYnNlcnZlZCcgfHwgKGNsYWltIGFzIGFueSkudHlwZSA9PT0gJ2ZhY3QnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgYW4gaW5mZXJlbmNlXG4gKiBBY2NlcHRzIGJvdGggeyBjbGFpbVR5cGU6ICdpbmZlcnJlZCcgfSAoQVBJIGZvcm1hdCkgYW5kIHsgdHlwZTogJ2luZmVyZW5jZScgfSAoc2hvcnRoYW5kKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbmZlcmVuY2UoY2xhaW06IENsYWltIHwgeyB0eXBlPzogc3RyaW5nOyBjbGFpbVR5cGU/OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnaW5mZXJyZWQnIHx8IChjbGFpbSBhcyBhbnkpLnR5cGUgPT09ICdpbmZlcmVuY2UnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgY29tcHV0ZWRcbiAqIEFjY2VwdHMgYm90aCB7IGNsYWltVHlwZTogJ2NvbXB1dGVkJyB9IChBUEkgZm9ybWF0KSBhbmQgeyB0eXBlOiAnY29tcHV0ZWQnIH0gKHNob3J0aGFuZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcHV0ZWQoY2xhaW06IENsYWltIHwgeyB0eXBlPzogc3RyaW5nOyBjbGFpbVR5cGU/OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnY29tcHV0ZWQnIHx8IChjbGFpbSBhcyBhbnkpLnR5cGUgPT09ICdjb21wdXRlZCc7XG59XG5cbi8qKlxuICogR2V0IGhpZ2ggY29uZmlkZW5jZSBjbGFpbXMgKD49IHRocmVzaG9sZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhpZ2hDb25maWRlbmNlQ2xhaW1zKFxuICBjbGFpbXNMaXN0OiBDbGFpbVtdLFxuICB0aHJlc2hvbGQ6IG51bWJlciA9IDAuOFxuKTogQ2xhaW1bXSB7XG4gIHJldHVybiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jb25maWRlbmNlID49IHRocmVzaG9sZCk7XG59XG5cbi8qKlxuICogR3JvdXAgY2xhaW1zIGJ5IHR5cGVcbiAqIFJldHVybnMgZ3JvdXBzIGtleWVkIGJ5IGJvdGggQVBJIG5hbWVzIChvYnNlcnZlZC9pbmZlcnJlZC9jb21wdXRlZClcbiAqIGFuZCBzaG9ydGhhbmQgbmFtZXMgKGZhY3QvaW5mZXJlbmNlL2NvbXB1dGVkKSBmb3IgY29udmVuaWVuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQ2xhaW1zQnlUeXBlKFxuICBjbGFpbXNMaXN0OiBBcnJheTxDbGFpbSB8IHsgdHlwZT86IHN0cmluZzsgY2xhaW1UeXBlPzogc3RyaW5nIH0+XG4pOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTxDbGFpbSB8IHsgdHlwZT86IHN0cmluZzsgY2xhaW1UeXBlPzogc3RyaW5nIH0+PiB7XG4gIGNvbnN0IG9ic2VydmVkID0gY2xhaW1zTGlzdC5maWx0ZXIoKGMpID0+IGMuY2xhaW1UeXBlID09PSAnb2JzZXJ2ZWQnIHx8IChjIGFzIGFueSkudHlwZSA9PT0gJ2ZhY3QnKTtcbiAgY29uc3QgaW5mZXJyZWQgPSBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jbGFpbVR5cGUgPT09ICdpbmZlcnJlZCcgfHwgKGMgYXMgYW55KS50eXBlID09PSAnaW5mZXJlbmNlJyk7XG4gIGNvbnN0IGNvbXB1dGVkID0gY2xhaW1zTGlzdC5maWx0ZXIoKGMpID0+IGMuY2xhaW1UeXBlID09PSAnY29tcHV0ZWQnIHx8IChjIGFzIGFueSkudHlwZSA9PT0gJ2NvbXB1dGVkJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlZCwgaW5mZXJyZWQsIGNvbXB1dGVkLFxuICAgIC8vIFNob3J0aGFuZCBhbGlhc2VzXG4gICAgZmFjdDogb2JzZXJ2ZWQsXG4gICAgaW5mZXJlbmNlOiBpbmZlcnJlZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBHcm91cCBjbGFpbXMgYnkgY2F0ZWdvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQ2xhaW1zQnlDYXRlZ29yeShcbiAgY2xhaW1zTGlzdDogQ2xhaW1bXVxuKTogUmVjb3JkPENsYWltQ2F0ZWdvcnksIENsYWltW10+IHtcbiAgY29uc3QgZ3JvdXBzOiBSZWNvcmQ8Q2xhaW1DYXRlZ29yeSwgQ2xhaW1bXT4gPSB7XG4gICAgb3V0Y29tZTogW10sXG4gICAgcm9vdF9jYXVzZTogW10sXG4gICAgY3VzdG9tZXJfaW1wYWN0OiBbXSxcbiAgICBjaHVybl9yaXNrOiBbXSxcbiAgICByZXZlbnVlX2ltcGFjdDogW10sXG4gICAgcXVhbGl0eTogW10sXG4gICAgb3RoZXI6IFtdLFxuICB9O1xuXG4gIGZvciAoY29uc3QgY2xhaW0gb2YgY2xhaW1zTGlzdCkge1xuICAgIGdyb3Vwc1tjbGFpbS5jbGFpbUNhdGVnb3J5XS5wdXNoKGNsYWltKTtcbiAgfVxuXG4gIHJldHVybiBncm91cHM7XG59XG4iXX0=
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhaW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9jbGFpbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQStUSCx3QkFFQztBQU1ELGtDQUVDO0FBTUQsZ0NBRUM7QUFLRCwwREFLQztBQU9ELDhDQWFDO0FBS0Qsc0RBdUJDO0FBellELDJDQUFnRTtBQThFaEU7O0dBRUc7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMkJHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUE4QjtRQUNqRCxPQUFPLElBQUEsMkJBQWtCLEVBQWlCLFdBQVcsRUFBRTtZQUNyRCxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsYUFBYSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFhO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBaUIsU0FBUyxLQUFLLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFhcEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxLQUFLLENBQUMsaUJB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QUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxVQUFVLElBQUssQ0FBUyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQztJQUN6RyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFVBQVUsSUFBSyxDQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBRXhHLE9BQU87UUFDTCxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVE7UUFDNUIsb0JBQW9CO1FBQ3BCLElBQUksRUFBRSxRQUFRO1FBQ2QsU0FBUyxFQUFFLFFBQVE7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxVQUFtQjtJQUVuQixNQUFNLE1BQU0sR0FBbUM7UUFDN0MsT0FBTyxFQUFFLEVBQUU7UUFDWCxVQUFVLEVBQUUsRUFBRTtRQUNkLFNBQVMsRUFBRSxFQUFFO1FBQ2IsVUFBVSxFQUFFLEVBQUU7UUFDZCxlQUFlLEVBQUUsRUFBRTtRQUNuQixZQUFZLEVBQUUsRUFBRTtRQUNoQixTQUFTLEVBQUUsRUFBRTtRQUNiLGVBQWUsRUFBRSxFQUFFO1FBQ25CLElBQUksRUFBRSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEVBQUU7UUFDWCxVQUFVLEVBQUUsRUFBRTtRQUNkLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztJQUVGLEtBQUssTUFBTSxLQUFLLElBQUksVUFBVSxFQUFFLENBQUM7UUFDL0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgdjMuMCAtIENsYWltcyBBUElcbiAqXG4gKiBGYWN0cyB2cyBJbmZlcmVuY2VzIEFQSSBmb3IgYWNjZXNzaW5nIGFuYWx5c2lzIGNsYWltc1xuICovXG5cbmltcG9ydCB7IGFwaVJlcXVlc3QsIGFwaVJlcXVlc3RXaXRoRGF0YSB9IGZyb20gJy4uL2NvcmUvY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ2xhaW0sXG4gIENsYWltVHlwZSxcbiAgQ2xhaW1DYXRlZ29yeSxcbiAgQW5hbHlzaXNSZXN1bHQsXG4gIEFwaVJlc3BvbnNlLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbiAgRXZpZGVuY2VSZWZlcmVuY2UsXG59IGZyb20gJy4uL2NvcmUvdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDTEFJTVMgQVBJIENMSUVOVFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIExpc3QgY2xhaW1zIHF1ZXJ5IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0Q2xhaW1zT3B0aW9ucyB7XG4gIHJ1bklkPzogc3RyaW5nO1xuICBhbmFseXNpc0lkPzogc3RyaW5nO1xuICBjbGFpbVR5cGU/OiBDbGFpbVR5cGU7XG4gIGNsYWltQ2F0ZWdvcnk/OiBDbGFpbUNhdGVnb3J5O1xuICBtaW5Db25maWRlbmNlPzogbnVtYmVyO1xuICBodW1hblZlcmlmaWVkPzogYm9vbGVhbjtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW5hbHlzaXMgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUFuYWx5c2lzT3B0aW9ucyB7XG4gIHJ1bklkOiBzdHJpbmc7XG4gIG1vZGVsVXNlZDogc3RyaW5nO1xuICBvdXRjb21lVmVyZGljdDogJ3N1Y2Nlc3MnIHwgJ3BhcnRpYWxfc3VjY2VzcycgfCAnZmFpbHVyZSc7XG4gIG91dGNvbWVDb25maWRlbmNlPzogbnVtYmVyO1xuICByb290Q2F1c2VDYXRlZ29yeT86IHN0cmluZztcbiAgcm9vdENhdXNlQ29uZmlkZW5jZT86IG51bWJlcjtcbiAgY2xhaW1zPzogQ3JlYXRlQ2xhaW1JbnB1dFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsYWltSW5wdXQge1xuICBjbGFpbVR5cGU6IENsYWltVHlwZTtcbiAgY2xhaW1DYXRlZ29yeTogQ2xhaW1DYXRlZ29yeTtcbiAgY2xhaW1UZXh0OiBzdHJpbmc7XG4gIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgY29uZmlkZW5jZUNhbGlicmF0aW9uOiAnY2FsaWJyYXRlZCcgfCAndW5jYWxpYnJhdGVkJyB8ICdydWxlX2Jhc2VkJztcbiAgZXZpZGVuY2U6IEV2aWRlbmNlUmVmZXJlbmNlW107XG4gIGlzRXhwbGFpbmFibGU/OiBib29sZWFuO1xuICBwcm9iYWJpbGl0eVZhbHVlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZhY3RzIHZzIGluZmVyZW5jZXMgc3VtbWFyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeSB7XG4gIGFuYWx5c2lzSWRzOiBzdHJpbmdbXTtcbiAgdG90YWxDbGFpbXM6IG51bWJlcjtcbiAgb2JzZXJ2ZWQ6IHtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGF2Z0NvbmZpZGVuY2U6IG51bWJlcjtcbiAgICBjYXRlZ29yaWVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICB9O1xuICBpbmZlcnJlZDoge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgYXZnQ29uZmlkZW5jZTogbnVtYmVyO1xuICAgIGNhdGVnb3JpZXM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj47XG4gIH07XG4gIGNvbXB1dGVkOiB7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBhdmdDb25maWRlbmNlOiBudW1iZXI7XG4gICAgY2F0ZWdvcmllczogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgfTtcbiAgaHVtYW5WZXJpZmllZENvdW50OiBudW1iZXI7XG4gIGh1bWFuUmVqZWN0ZWRDb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENsYWltcyBBUEkgY2xpZW50IGZvciBmYWN0cyB2cyBpbmZlcmVuY2VzIG1hbmFnZW1lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGNsYWltcyA9IHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBhbmFseXNpcyBmb3IgYSBydW5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5jcmVhdGVBbmFseXNpcyh7XG4gICAqICAgcnVuSWQ6ICdydW5fYWJjMTIzJyxcbiAgICogICBvdXRjb21lVmVyZGljdDogJ2ZhaWx1cmUnLFxuICAgKiAgIG91dGNvbWVDb25maWRlbmNlOiAwLjg1LFxuICAgKiAgIHJvb3RDYXVzZUNhdGVnb3J5OiAncmV0cmlldmFsX2ZhaWx1cmUnLFxuICAgKiAgIGNsYWltczogW1xuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdvYnNlcnZlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdyb290X2NhdXNlJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnVmVjdG9yIHNlYXJjaCByZXR1cm5lZCAwIHJlc3VsdHMnLFxuICAgKiAgICAgICBjb25maWRlbmNlOiAxLjAsXG4gICAqICAgICAgIGV2aWRlbmNlOiBbeyB0eXBlOiAnc3BhbicsIHJlZmVyZW5jZUlkOiAnc3Bhbl8xMjMnLCByZWxldmFuY2U6ICdkaXJlY3QnLCBjb25maWRlbmNlOiAxLjAgfV0sXG4gICAqICAgICB9LFxuICAgKiAgICAge1xuICAgKiAgICAgICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgICAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogICAgICAgY2xhaW1UZXh0OiAnSGlnaCBjaHVybiByaXNrIGR1ZSB0byByZXBlYXRlZCBmYWlsdXJlcycsXG4gICAqICAgICAgIGNvbmZpZGVuY2U6IDAuNyxcbiAgICogICAgIH0sXG4gICAqICAgXSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgY3JlYXRlQW5hbHlzaXMob3B0aW9uczogQ3JlYXRlQW5hbHlzaXNPcHRpb25zKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KCcvYW5hbHlzZXMnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYW4gYW5hbHlzaXMgYnkgSURcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhbmFseXNpcyA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpcygnYW5hbHlzaXNfYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0QW5hbHlzaXMoYW5hbHlzaXNJZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvYW5hbHlzZXMvJHthbmFseXNpc0lkfWAsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgYW5hbHlzaXMgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgYW5hbHlzaXMgPSBhd2FpdCBjbGFpbXMuZ2V0UnVuQW5hbHlzaXMoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRSdW5BbmFseXNpcyhydW5JZDogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3VsdD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8QW5hbHlzaXNSZXN1bHQ+KGAvcnVucy8ke3J1bklkfS9hbmFseXNpc2AsIHsgYXBpVmVyc2lvbjogJ3YzJyB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFuYWx5c2lzIGhpc3RvcnkgZm9yIGEgcnVuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgaGlzdG9yeSA9IGF3YWl0IGNsYWltcy5nZXRBbmFseXNpc0hpc3RvcnkoJ3J1bl9hYmMxMjMnKTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBnZXRBbmFseXNpc0hpc3RvcnkocnVuSWQ6IHN0cmluZyk6IFByb21pc2U8e1xuICAgIHJ1bklkOiBzdHJpbmc7XG4gICAgYW5hbHlzZXM6IEFycmF5PHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBhbmFseXNpc1ZlcnNpb246IHN0cmluZztcbiAgICAgIG1vZGVsVXNlZDogc3RyaW5nO1xuICAgICAgb3V0Y29tZVZlcmRpY3Q6IHN0cmluZztcbiAgICAgIGlzQ3VycmVudDogYm9vbGVhbjtcbiAgICAgIHN1cGVyc2VkZWRCeT86IHN0cmluZztcbiAgICAgIHN1cGVyc2Vzc2lvblJlYXNvbj86IHN0cmluZztcbiAgICAgIGFuYWx5emVkQXQ6IHN0cmluZztcbiAgICB9PjtcbiAgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9ydW5zLyR7cnVuSWR9L2FuYWx5c2VzYCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTdXBlcnNlZGUgYW4gYW5hbHlzaXMgd2l0aCBhIG5ldyBvbmVcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBuZXdBbmFseXNpcyA9IGF3YWl0IGNsYWltcy5zdXBlcnNlZGVBbmFseXNpcygnYW5hbHlzaXNfb2xkJywge1xuICAgKiAgIHJlYXNvbjogJ0ltcHJvdmVkIG1vZGVsIGFjY3VyYWN5JyxcbiAgICogICBuZXdBbmFseXNpczoge1xuICAgKiAgICAgb3V0Y29tZVZlcmRpY3Q6ICdzdWNjZXNzJyxcbiAgICogICAgIG91dGNvbWVDb25maWRlbmNlOiAwLjk1LFxuICAgKiAgICAgY2xhaW1zOiBbLi4uXSxcbiAgICogICB9LFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBzdXBlcnNlZGVBbmFseXNpcyhcbiAgICBhbmFseXNpc0lkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgcmVhc29uOiBzdHJpbmc7XG4gICAgICBuZXdBbmFseXNpczogT21pdDxDcmVhdGVBbmFseXNpc09wdGlvbnMsICdydW5JZCc+O1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IHN1cGVyc2VkZWRBbmFseXNpc0lkOiBzdHJpbmc7IG5ld0FuYWx5c2lzOiBBbmFseXNpc1Jlc3VsdCB9PiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL2FuYWx5c2VzLyR7YW5hbHlzaXNJZH0vc3VwZXJzZWRlYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBvcHRpb25zLFxuICAgICAgYXBpVmVyc2lvbjogJ3YzJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogTGlzdCBjbGFpbXMgd2l0aCBmaWx0ZXJzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gR2V0IGFsbCBpbmZlcnJlZCBjbGFpbXMgd2l0aCBoaWdoIGNvbmZpZGVuY2VcbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBjbGFpbVR5cGU6ICdpbmZlcnJlZCcsXG4gICAqICAgbWluQ29uZmlkZW5jZTogMC44LFxuICAgKiB9KTtcbiAgICpcbiAgICogLy8gR2V0IGFsbCBjaHVybiByaXNrIGNsYWltcyBmb3IgYSBydW5cbiAgICogY29uc3QgeyBjbGFpbXMgfSA9IGF3YWl0IGNsYWltcy5saXN0KHtcbiAgICogICBydW5JZDogJ3J1bl9hYmMxMjMnLFxuICAgKiAgIGNsYWltQ2F0ZWdvcnk6ICdjaHVybl9yaXNrJyxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgbGlzdChcbiAgICBvcHRpb25zOiBMaXN0Q2xhaW1zT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8eyBjbGFpbXM6IENsYWltW107IGxpbWl0OiBudW1iZXI7IG9mZnNldDogbnVtYmVyOyBoYXNNb3JlOiBib29sZWFuIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdGlvbnMucnVuSWQpIHBhcmFtcy5zZXQoJ3J1bklkJywgb3B0aW9ucy5ydW5JZCk7XG4gICAgaWYgKG9wdGlvbnMuYW5hbHlzaXNJZCkgcGFyYW1zLnNldCgnYW5hbHlzaXNJZCcsIG9wdGlvbnMuYW5hbHlzaXNJZCk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1UeXBlKSBwYXJhbXMuc2V0KCdjbGFpbVR5cGUnLCBvcHRpb25zLmNsYWltVHlwZSk7XG4gICAgaWYgKG9wdGlvbnMuY2xhaW1DYXRlZ29yeSkgcGFyYW1zLnNldCgnY2xhaW1DYXRlZ29yeScsIG9wdGlvbnMuY2xhaW1DYXRlZ29yeSk7XG4gICAgaWYgKG9wdGlvbnMubWluQ29uZmlkZW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBwYXJhbXMuc2V0KCdtaW5Db25maWRlbmNlJywgU3RyaW5nKG9wdGlvbnMubWluQ29uZmlkZW5jZSkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5odW1hblZlcmlmaWVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHBhcmFtcy5zZXQoJ2h1bWFuVmVyaWZpZWQnLCBTdHJpbmcob3B0aW9ucy5odW1hblZlcmlmaWVkKSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmxpbWl0KSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRpb25zLmxpbWl0KSk7XG4gICAgaWYgKG9wdGlvbnMub2Zmc2V0KSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0aW9ucy5vZmZzZXQpKTtcblxuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8eyBjbGFpbXM6IENsYWltW107IGxpbWl0OiBudW1iZXI7IG9mZnNldDogbnVtYmVyOyBoYXNNb3JlOiBib29sZWFuIH0+KFxuICAgICAgYC9jbGFpbXM/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgeyBhcGlWZXJzaW9uOiAndjMnIH1cbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYSBjbGFpbSBieSBJRFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGNsYWltID0gYXdhaXQgY2xhaW1zLmdldCgnY2xhaW1fYWJjMTIzJyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgZ2V0KGNsYWltSWQ6IHN0cmluZyk6IFByb21pc2U8Q2xhaW0+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPENsYWltPihgL2NsYWltcy8ke2NsYWltSWR9YCwgeyBhcGlWZXJzaW9uOiAndjMnIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBWZXJpZnkgb3IgcmVqZWN0IGEgY2xhaW0gKGh1bWFuIGZlZWRiYWNrKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIENvbmZpcm0gYSBjbGFpbVxuICAgKiBhd2FpdCBjbGFpbXMudmVyaWZ5KCdjbGFpbV9hYmMxMjMnLCB7XG4gICAqICAgdmVyZGljdDogJ2NvbmZpcm1lZCcsXG4gICAqICAgbm90ZXM6ICdWZXJpZmllZCBhZ2FpbnN0IHRpY2tldCBoaXN0b3J5JyxcbiAgICogfSk7XG4gICAqXG4gICAqIC8vIFJlamVjdCBhIGNsYWltXG4gICAqIGF3YWl0IGNsYWltcy52ZXJpZnkoJ2NsYWltX2FiYzEyMycsIHtcbiAgICogICB2ZXJkaWN0OiAncmVqZWN0ZWQnLFxuICAgKiAgIG5vdGVzOiAnQ3VzdG9tZXIgY29udGV4dCB3YXMgbWlzc2luZycsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHZlcmlmeShcbiAgICBjbGFpbUlkOiBzdHJpbmcsXG4gICAgb3B0aW9uczoge1xuICAgICAgdmVyZGljdDogJ2NvbmZpcm1lZCcgfCAncmVqZWN0ZWQnIHwgJ21vZGlmaWVkJztcbiAgICAgIG5vdGVzPzogc3RyaW5nO1xuICAgICAgbW9kaWZpZWRUZXh0Pzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTx7IGNsYWltSWQ6IHN0cmluZzsgdmVyZGljdDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9jbGFpbXMvJHtjbGFpbUlkfS92ZXJpZnlgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IG9wdGlvbnMsXG4gICAgICBhcGlWZXJzaW9uOiAndjMnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgZmFjdHMgdnMgaW5mZXJlbmNlcyBzdW1tYXJ5XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gU3VtbWFyeSBmb3IgYSBzcGVjaWZpYyBydW5cbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IGNsYWltcy5zdW1tYXJ5KHsgcnVuSWQ6ICdydW5fYWJjMTIzJyB9KTtcbiAgICpcbiAgICogLy8gU3VtbWFyeSBmb3IgbXVsdGlwbGUgYW5hbHlzZXNcbiAgICogY29uc3Qgc3VtbWFyeSA9IGF3YWl0IGNsYWltcy5zdW1tYXJ5KHtcbiAgICogICBhbmFseXNpc0lkczogWydhbmFseXNpc18xJywgJ2FuYWx5c2lzXzInXSxcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgc3VtbWFyeShcbiAgICBvcHRpb25zOiB7IHJ1bklkPzogc3RyaW5nOyBhbmFseXNpc0lkcz86IHN0cmluZ1tdIH0gPSB7fVxuICApOiBQcm9taXNlPEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0aW9ucy5ydW5JZCkgcGFyYW1zLnNldCgncnVuSWQnLCBvcHRpb25zLnJ1bklkKTtcbiAgICBpZiAob3B0aW9ucy5hbmFseXNpc0lkcykgcGFyYW1zLnNldCgnYW5hbHlzaXNJZHMnLCBvcHRpb25zLmFuYWx5c2lzSWRzLmpvaW4oJywnKSk7XG5cbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPEZhY3RzVnNJbmZlcmVuY2VzU3VtbWFyeT4oXG4gICAgICBgL2NsYWltcy9zdW1tYXJ5PyR7cGFyYW1zLnRvU3RyaW5nKCl9YCxcbiAgICAgIHsgYXBpVmVyc2lvbjogJ3YzJyB9XG4gICAgKTtcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGNsYWltIGlzIGEgZmFjdCAob2JzZXJ2ZWQpXG4gKiBBY2NlcHRzIGJvdGggeyBjbGFpbVR5cGU6ICdvYnNlcnZlZCcgfSAoQVBJIGZvcm1hdCkgYW5kIHsgdHlwZTogJ2ZhY3QnIH0gKHNob3J0aGFuZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmFjdChjbGFpbTogQ2xhaW0gfCB7IHR5cGU/OiBzdHJpbmc7IGNsYWltVHlwZT86IHN0cmluZyB9KTogYm9vbGVhbiB7XG4gIHJldHVybiBjbGFpbS5jbGFpbVR5cGUgPT09ICdvYnNlcnZlZCcgfHwgKGNsYWltIGFzIGFueSkudHlwZSA9PT0gJ2ZhY3QnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgYW4gaW5mZXJlbmNlXG4gKiBBY2NlcHRzIGJvdGggeyBjbGFpbVR5cGU6ICdpbmZlcnJlZCcgfSAoQVBJIGZvcm1hdCkgYW5kIHsgdHlwZTogJ2luZmVyZW5jZScgfSAoc2hvcnRoYW5kKVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbmZlcmVuY2UoY2xhaW06IENsYWltIHwgeyB0eXBlPzogc3RyaW5nOyBjbGFpbVR5cGU/OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnaW5mZXJyZWQnIHx8IChjbGFpbSBhcyBhbnkpLnR5cGUgPT09ICdpbmZlcmVuY2UnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgY2xhaW0gaXMgY29tcHV0ZWRcbiAqIEFjY2VwdHMgYm90aCB7IGNsYWltVHlwZTogJ2NvbXB1dGVkJyB9IChBUEkgZm9ybWF0KSBhbmQgeyB0eXBlOiAnY29tcHV0ZWQnIH0gKHNob3J0aGFuZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcHV0ZWQoY2xhaW06IENsYWltIHwgeyB0eXBlPzogc3RyaW5nOyBjbGFpbVR5cGU/OiBzdHJpbmcgfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gY2xhaW0uY2xhaW1UeXBlID09PSAnY29tcHV0ZWQnIHx8IChjbGFpbSBhcyBhbnkpLnR5cGUgPT09ICdjb21wdXRlZCc7XG59XG5cbi8qKlxuICogR2V0IGhpZ2ggY29uZmlkZW5jZSBjbGFpbXMgKD49IHRocmVzaG9sZClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEhpZ2hDb25maWRlbmNlQ2xhaW1zKFxuICBjbGFpbXNMaXN0OiBDbGFpbVtdLFxuICB0aHJlc2hvbGQ6IG51bWJlciA9IDAuOFxuKTogQ2xhaW1bXSB7XG4gIHJldHVybiBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jb25maWRlbmNlID49IHRocmVzaG9sZCk7XG59XG5cbi8qKlxuICogR3JvdXAgY2xhaW1zIGJ5IHR5cGVcbiAqIFJldHVybnMgZ3JvdXBzIGtleWVkIGJ5IGJvdGggQVBJIG5hbWVzIChvYnNlcnZlZC9pbmZlcnJlZC9jb21wdXRlZClcbiAqIGFuZCBzaG9ydGhhbmQgbmFtZXMgKGZhY3QvaW5mZXJlbmNlL2NvbXB1dGVkKSBmb3IgY29udmVuaWVuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQ2xhaW1zQnlUeXBlKFxuICBjbGFpbXNMaXN0OiBBcnJheTxDbGFpbSB8IHsgdHlwZT86IHN0cmluZzsgY2xhaW1UeXBlPzogc3RyaW5nIH0+XG4pOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTxDbGFpbSB8IHsgdHlwZT86IHN0cmluZzsgY2xhaW1UeXBlPzogc3RyaW5nIH0+PiB7XG4gIGNvbnN0IG9ic2VydmVkID0gY2xhaW1zTGlzdC5maWx0ZXIoKGMpID0+IGMuY2xhaW1UeXBlID09PSAnb2JzZXJ2ZWQnIHx8IChjIGFzIGFueSkudHlwZSA9PT0gJ2ZhY3QnKTtcbiAgY29uc3QgaW5mZXJyZWQgPSBjbGFpbXNMaXN0LmZpbHRlcigoYykgPT4gYy5jbGFpbVR5cGUgPT09ICdpbmZlcnJlZCcgfHwgKGMgYXMgYW55KS50eXBlID09PSAnaW5mZXJlbmNlJyk7XG4gIGNvbnN0IGNvbXB1dGVkID0gY2xhaW1zTGlzdC5maWx0ZXIoKGMpID0+IGMuY2xhaW1UeXBlID09PSAnY29tcHV0ZWQnIHx8IChjIGFzIGFueSkudHlwZSA9PT0gJ2NvbXB1dGVkJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBvYnNlcnZlZCwgaW5mZXJyZWQsIGNvbXB1dGVkLFxuICAgIC8vIFNob3J0aGFuZCBhbGlhc2VzXG4gICAgZmFjdDogb2JzZXJ2ZWQsXG4gICAgaW5mZXJlbmNlOiBpbmZlcnJlZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBHcm91cCBjbGFpbXMgYnkgY2F0ZWdvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQ2xhaW1zQnlDYXRlZ29yeShcbiAgY2xhaW1zTGlzdDogQ2xhaW1bXVxuKTogUmVjb3JkPENsYWltQ2F0ZWdvcnksIENsYWltW10+IHtcbiAgY29uc3QgZ3JvdXBzOiBSZWNvcmQ8Q2xhaW1DYXRlZ29yeSwgQ2xhaW1bXT4gPSB7XG4gICAgb3V0Y29tZTogW10sXG4gICAgcm9vdF9jYXVzZTogW10sXG4gICAgc2VudGltZW50OiBbXSxcbiAgICBjaHVybl9yaXNrOiBbXSxcbiAgICBlc2NhbGF0aW9uX3Jpc2s6IFtdLFxuICAgIHNhdGlzZmFjdGlvbjogW10sXG4gICAgcmVjb250YWN0OiBbXSxcbiAgICByZXNvbHV0aW9uX3RpbWU6IFtdLFxuICAgIGNvc3Q6IFtdLFxuICAgIHF1YWxpdHk6IFtdLFxuICAgIGNvbXBsaWFuY2U6IFtdLFxuICAgIG90aGVyOiBbXSxcbiAgfTtcblxuICBmb3IgKGNvbnN0IGNsYWltIG9mIGNsYWltc0xpc3QpIHtcbiAgICBncm91cHNbY2xhaW0uY2xhaW1DYXRlZ29yeV0ucHVzaChjbGFpbSk7XG4gIH1cblxuICByZXR1cm4gZ3JvdXBzO1xufVxuIl19
|
package/dist/api/signals.js
CHANGED
|
@@ -29,9 +29,15 @@ exports.signals = {
|
|
|
29
29
|
if (opts?.isEnabled !== undefined)
|
|
30
30
|
params.set('isEnabled', String(opts.isEnabled));
|
|
31
31
|
const query = params.toString();
|
|
32
|
-
|
|
32
|
+
const response = await (0, client_1.apiRequest)(`/signals/${query ? `?${query}` : ''}`, {
|
|
33
33
|
apiVersion: 'v1',
|
|
34
34
|
});
|
|
35
|
+
// Handle both response formats: { signals: [...] } and { success: true, data: [...] }
|
|
36
|
+
if ('signals' in response)
|
|
37
|
+
return response.signals;
|
|
38
|
+
if ('data' in response)
|
|
39
|
+
return response.data;
|
|
40
|
+
return response;
|
|
35
41
|
},
|
|
36
42
|
/**
|
|
37
43
|
* Create a new behavioral signal
|
|
@@ -104,9 +110,14 @@ exports.signals = {
|
|
|
104
110
|
if (opts?.agentId)
|
|
105
111
|
params.set('agentId', opts.agentId);
|
|
106
112
|
const query = params.toString();
|
|
107
|
-
|
|
113
|
+
const response = await (0, client_1.apiRequest)(`/signals/stats${query ? `?${query}` : ''}`, {
|
|
108
114
|
apiVersion: 'v1',
|
|
109
115
|
});
|
|
116
|
+
if ('stats' in response)
|
|
117
|
+
return response.stats;
|
|
118
|
+
if ('data' in response)
|
|
119
|
+
return response.data;
|
|
120
|
+
return response;
|
|
110
121
|
},
|
|
111
122
|
/**
|
|
112
123
|
* Get signal trend data over time
|
|
@@ -173,4 +184,4 @@ exports.signals = {
|
|
|
173
184
|
},
|
|
174
185
|
};
|
|
175
186
|
exports.default = exports.signals;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvc2lnbmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBMkdoRSwrRUFBK0U7QUFDL0UscUJBQXFCO0FBQ3JCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsT0FBTyxHQUFHO0lBQ3JCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUUsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksRUFBRSxTQUFTLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVuRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFXLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUMxRSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUNWLElBQVksRUFDWixLQUFhLEVBQ2IsZUFBZ0MsRUFDaEMsSUFBMEI7UUFFMUIsT0FBTyxJQUFBLDJCQUFrQixFQUFTLFdBQVcsRUFBRTtZQUM3QyxNQUFN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SUFBMEI7UUFNcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksRUFBRSxLQUFLLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLElBQUksRUFBRSxNQUFNLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUxRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFlBQVksRUFBRSxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUUsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUM7QUFFa0Isa0JBNUtQLGVBQU8sQ0E0S08iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaW5rSGl2ZSBTREsgLSBTaWduYWxzIEFQSVxuICpcbiAqIEJlaGF2aW9yYWwgc2lnbmFsIG1hbmFnZW1lbnQgZm9yIGRldGVjdGluZyBwYXR0ZXJucyBpbiBhZ2VudCBpbnRlcmFjdGlvbnNcbiAqL1xuXG5pbXBvcnQgeyBhcGlSZXF1ZXN0LCBhcGlSZXF1ZXN0V2l0aERhdGEgfSBmcm9tICcuLi9jb3JlL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBTaWduYWwgZGV0ZWN0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV0ZWN0aW9uQ29uZmlnIHtcbiAgdHlwZTogc3RyaW5nO1xuICB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gIHBhdHRlcm4/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbi8qKiBPcHRpb25zIGZvciBjcmVhdGluZyBhIHNpZ25hbCAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTaWduYWxPcHRpb25zIHtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlzRW5hYmxlZD86IGJvb2xlYW47XG4gIHNldmVyaXR5Pzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdXBkYXRpbmcgYSBzaWduYWwgKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2lnbmFsT3B0aW9ucyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGdyb3VwPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGV0ZWN0aW9uQ29uZmlnPzogRGV0ZWN0aW9uQ29uZmlnO1xuICBpc0VuYWJsZWQ/OiBib29sZWFuO1xuICBzZXZlcml0eT86IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGxpc3Rpbmcgc2lnbmFscyAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0U2lnbmFsc09wdGlvbnMge1xuICBncm91cD86IHN0cmluZztcbiAgc291cmNlPzogc3RyaW5nO1xuICBpc0VuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgc3RhdHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsU3RhdHNPcHRpb25zIHtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgdHJlbmRzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFRyZW5kc09wdGlvbnMge1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG4gIGdyYW51bGFyaXR5PzogJ2hvdXInIHwgJ2RheScgfCAnd2VlaycgfCAnbW9udGgnO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgdHJhY2VzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFRyYWNlc09wdGlvbnMge1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBzdGFydERhdGU/OiBzdHJpbmc7XG4gIGVuZERhdGU/OiBzdHJpbmc7XG4gIGFnZW50SWQ/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBnZXR0aW5nIHNpZ25hbCBldmVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsRXZlbnRzT3B0aW9ucyB7XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbi8qKiBBIGJlaGF2aW9yYWwgc2lnbmFsIGRlZmluaXRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBncm91cDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZGV0ZWN0aW9uQ29uZmlnOiBEZXRlY3Rpb25Db25maWc7XG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcbiAgc2V2ZXJpdHk/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKiogU2lnbmFsIHN0YXRpc3RpY3MgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsU3RhdHMge1xuICBzaWduYWxJZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xuICBsYXN0VHJpZ2dlcmVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKiBTaWduYWwgdHJlbmQgZGF0YSBwb2ludCAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxUcmVuZFBvaW50IHtcbiAgcGVyaW9kOiBzdHJpbmc7XG4gIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgdHJhY2VDb3VudDogbnVtYmVyO1xufVxuXG4vKiogQSBzaWduYWwgZXZlbnQgb2NjdXJyZW5jZSAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxFdmVudCB7XG4gIGlkOiBzdHJpbmc7XG4gIHNpZ25hbElkOiBzdHJpbmc7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgZGV0ZWN0ZWRBdDogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTSUdOQUxTIEFQSSBDTElFTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTaWduYWxzIEFQSSBjbGllbnQgZm9yIG1hbmFnaW5nIGJlaGF2aW9yYWwgc2lnbmFsIGRldGVjdGlvblxuICovXG5leHBvcnQgY29uc3Qgc2lnbmFscyA9IHtcbiAgLyoqXG4gICAqIExpc3QgYWxsIHNpZ25hbHMgd2l0aCBvcHRpb25hbCBmaWx0ZXJzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRmlsdGVyIG9wdGlvbnMgZm9yIGdyb3VwLCBzb3VyY2UsIG9yIGVuYWJsZWQgc3RhdHVzXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc2lnbmFsc1xuICAgKi9cbiAgYXN5bmMgbGlzdChvcHRzPzogTGlzdFNpZ25hbHNPcHRpb25zKTogUHJvbWlzZTxTaWduYWxbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uZ3JvdXApIHBhcmFtcy5zZXQoJ2dyb3VwJywgb3B0cy5ncm91cCk7XG4gICAgaWYgKG9wdHM/LnNvdXJjZSkgcGFyYW1zLnNldCgnc291cmNlJywgb3B0cy5zb3VyY2UpO1xuICAgIGlmIChvcHRzPy5pc0VuYWJsZWQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnaXNFbmFibGVkJywgU3RyaW5nKG9wdHMuaXNFbmFibGVkKSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsW10+KGAvc2lnbmFscy8ke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYmVoYXZpb3JhbCBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBTaWduYWwgbmFtZVxuICAgKiBAcGFyYW0gZ3JvdXAgLSBTaWduYWwgZ3JvdXAvY2F0ZWdvcnlcbiAgICogQHBhcmFtIGRldGVjdGlvbkNvbmZpZyAtIERldGVjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBvcHRzIC0gQWRkaXRpb25hbCBzaWduYWwgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBzaWduYWxcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZ3JvdXA6IHN0cmluZyxcbiAgICBkZXRlY3Rpb25Db25maWc6IERldGVjdGlvbkNvbmZpZyxcbiAgICBvcHRzPzogQ3JlYXRlU2lnbmFsT3B0aW9uc1xuICApOiBQcm9taXNlPFNpZ25hbD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsPignL3NpZ25hbHMvJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IG5hbWUsIGdyb3VwLCBkZXRlY3Rpb25Db25maWcsIC4uLm9wdHMgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gb3B0cyAtIEZpZWxkcyB0byB1cGRhdGVcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgc2lnbmFsXG4gICAqL1xuICBhc3luYyB1cGRhdGUoaWQ6IHN0cmluZywgb3B0czogVXBkYXRlU2lnbmFsT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWw+KGAvc2lnbmFscy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBib2R5OiBvcHRzLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlIGEgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRCB0byBkZWxldGVcbiAgICovXG4gIGFzeW5jIHJlbW92ZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3Q8dm9pZD4oYC9zaWduYWxzLyR7aWR9YCwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqIEFsaWFzIGZvciByZW1vdmUoKSAqL1xuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZShpZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlZWQgZGVmYXVsdCBzaWduYWwgZGVmaW5pdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMgTGlzdCBvZiBzZWVkZWQgc2lnbmFsc1xuICAgKi9cbiAgYXN5bmMgc2VlZERlZmF1bHRzKCk6IFByb21pc2U8U2lnbmFsW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNpZ25hbFtdPignL3NpZ25hbHMvc2VlZCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNpZ25hbCBzdGF0aXN0aWNzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRGF0ZSByYW5nZSBhbmQgYWdlbnQgZmlsdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIHN0YXRpc3RpY3NcbiAgICovXG4gIGFzeW5jIGdldFN0YXRzKG9wdHM/OiBTaWduYWxTdGF0c09wdGlvbnMpOiBQcm9taXNlPFNpZ25hbFN0YXRzW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0cy5zdGFydERhdGUpO1xuICAgIGlmIChvcHRzPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0cy5lbmREYXRlKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsU3RhdHNbXT4oYC9zaWduYWxzL3N0YXRzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNpZ25hbCB0cmVuZCBkYXRhIG92ZXIgdGltZVxuICAgKlxuICAgKiBAcGFyYW0gb3B0cyAtIERhdGUgcmFuZ2UsIGFnZW50LCBhbmQgZ3JhbnVsYXJpdHkgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBTaWduYWwgdHJlbmQgZGF0YSBwb2ludHNcbiAgICovXG4gIGFzeW5jIGdldFRyZW5kcyhvcHRzPzogU2lnbmFsVHJlbmRzT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsVHJlbmRQb2ludFtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5zdGFydERhdGUpIHBhcmFtcy5zZXQoJ3N0YXJ0RGF0ZScsIG9wdHMuc3RhcnREYXRlKTtcbiAgICBpZiAob3B0cz8uZW5kRGF0ZSkgcGFyYW1zLnNldCgnZW5kRGF0ZScsIG9wdHMuZW5kRGF0ZSk7XG4gICAgaWYgKG9wdHM/LmFnZW50SWQpIHBhcmFtcy5zZXQoJ2FnZW50SWQnLCBvcHRzLmFnZW50SWQpO1xuICAgIGlmIChvcHRzPy5ncmFudWxhcml0eSkgcGFyYW1zLnNldCgnZ3JhbnVsYXJpdHknLCBvcHRzLmdyYW51bGFyaXR5KTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWxUcmVuZFBvaW50W10+KGAvc2lnbmFscy90cmVuZHMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgdHJhY2VzIHRoYXQgdHJpZ2dlcmVkIGEgc3BlY2lmaWMgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRFxuICAgKiBAcGFyYW0gb3B0cyAtIFBhZ2luYXRpb24gYW5kIGZpbHRlciBvcHRpb25zXG4gICAqIEByZXR1cm5zIFRyYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNpZ25hbFxuICAgKi9cbiAgYXN5bmMgZ2V0VHJhY2VzKGlkOiBzdHJpbmcsIG9wdHM/OiBTaWduYWxUcmFjZXNPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgdHJhY2VzOiBhbnlbXTtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG4gIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LmxpbWl0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcbiAgICBpZiAob3B0cz8ub2Zmc2V0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIFN0cmluZyhvcHRzLm9mZnNldCkpO1xuICAgIGlmIChvcHRzPy5zdGFydERhdGUpIHBhcmFtcy5zZXQoJ3N0YXJ0RGF0ZScsIG9wdHMuc3RhcnREYXRlKTtcbiAgICBpZiAob3B0cz8uZW5kRGF0ZSkgcGFyYW1zLnNldCgnZW5kRGF0ZScsIG9wdHMuZW5kRGF0ZSk7XG4gICAgaWYgKG9wdHM/LmFnZW50SWQpIHBhcmFtcy5zZXQoJ2FnZW50SWQnLCBvcHRzLmFnZW50SWQpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvc2lnbmFscy8ke2lkfS90cmFjZXMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgZXZlbnRzIGZvciBhIHNwZWNpZmljIHNpZ25hbFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBTaWduYWwgSURcbiAgICogQHBhcmFtIG9wdHMgLSBQYWdpbmF0aW9uIG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIGV2ZW50c1xuICAgKi9cbiAgYXN5bmMgZ2V0RXZlbnRzKGlkOiBzdHJpbmcsIG9wdHM/OiBTaWduYWxFdmVudHNPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgZXZlbnRzOiBTaWduYWxFdmVudFtdO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gICAgaGFzTW9yZTogYm9vbGVhbjtcbiAgfT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8ubGltaXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpO1xuICAgIGlmIChvcHRzPy5vZmZzZXQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnb2Zmc2V0JywgU3RyaW5nKG9wdHMub2Zmc2V0KSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGEoYC9zaWduYWxzLyR7aWR9L2V2ZW50cyR7cXVlcnkgPyBgPyR7cXVlcnl9YCA6ICcnfWAsIHtcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG59O1xuXG5leHBvcnQgeyBzaWduYWxzIGFzIGRlZmF1bHQgfTtcbiJdfQ==
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvc2lnbmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBRUgsMkNBQWdFO0FBMkdoRSwrRUFBK0U7QUFDL0UscUJBQXFCO0FBQ3JCLCtFQUErRTtBQUUvRTs7R0FFRztBQUNVLFFBQUEsT0FBTyxHQUFHO0lBQ3JCOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLElBQUksSUFBSSxFQUFFLEtBQUs7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUUsTUFBTTtZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLElBQUksRUFBRSxTQUFTLEtBQUssU0FBUztZQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVuRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLG1CQUFVLEVBQStELFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUN0SSxVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFDSCxzRkFBc0Y7UUFDdEYsSUFBSSxTQUFTLElBQUksUUFBUTtZQUFFLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuRCxJQUFJLE1BQU0sSUFBSSxRQUFRO1lBQUUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFD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QUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV2RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFBLDJCQUFrQixFQUFDLFlBQVksRUFBRSxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDNUUsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBVSxFQUFFLElBQTBCO1FBTXBELE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsSUFBSSxJQUFJLEVBQUUsS0FBSyxLQUFLLFNBQVM7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxJQUFJLEVBQUUsTUFBTSxLQUFLLFNBQVM7WUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFMUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sSUFBQSwyQkFBa0IsRUFBQyxZQUFZLEVBQUUsVUFBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzVFLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDO0FBRWtCLGtCQW5MUCxlQUFPLENBbUxPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIC0gU2lnbmFscyBBUElcbiAqXG4gKiBCZWhhdmlvcmFsIHNpZ25hbCBtYW5hZ2VtZW50IGZvciBkZXRlY3RpbmcgcGF0dGVybnMgaW4gYWdlbnQgaW50ZXJhY3Rpb25zXG4gKi9cblxuaW1wb3J0IHsgYXBpUmVxdWVzdCwgYXBpUmVxdWVzdFdpdGhEYXRhIH0gZnJvbSAnLi4vY29yZS9jbGllbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKiogU2lnbmFsIGRldGVjdGlvbiBjb25maWd1cmF0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIERldGVjdGlvbkNvbmZpZyB7XG4gIHR5cGU6IHN0cmluZztcbiAgdGhyZXNob2xkPzogbnVtYmVyO1xuICBwYXR0ZXJuPzogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBzaWduYWwgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU2lnbmFsT3B0aW9ucyB7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc0VuYWJsZWQ/OiBib29sZWFuO1xuICBzZXZlcml0eT86IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHVwZGF0aW5nIGEgc2lnbmFsICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNpZ25hbE9wdGlvbnMge1xuICBuYW1lPzogc3RyaW5nO1xuICBncm91cD86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRldGVjdGlvbkNvbmZpZz86IERldGVjdGlvbkNvbmZpZztcbiAgaXNFbmFibGVkPzogYm9vbGVhbjtcbiAgc2V2ZXJpdHk/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBsaXN0aW5nIHNpZ25hbHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNpZ25hbHNPcHRpb25zIHtcbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbiAgaXNFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGdldHRpbmcgc2lnbmFsIHN0YXRzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFN0YXRzT3B0aW9ucyB7XG4gIHN0YXJ0RGF0ZT86IHN0cmluZztcbiAgZW5kRGF0ZT86IHN0cmluZztcbiAgYWdlbnRJZD86IHN0cmluZztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGdldHRpbmcgc2lnbmFsIHRyZW5kcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxUcmVuZHNPcHRpb25zIHtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xuICBhZ2VudElkPzogc3RyaW5nO1xuICBncmFudWxhcml0eT86ICdob3VyJyB8ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJztcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGdldHRpbmcgc2lnbmFsIHRyYWNlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYWxUcmFjZXNPcHRpb25zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbiAgc3RhcnREYXRlPzogc3RyaW5nO1xuICBlbmREYXRlPzogc3RyaW5nO1xuICBhZ2VudElkPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgZ2V0dGluZyBzaWduYWwgZXZlbnRzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbEV2ZW50c09wdGlvbnMge1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xufVxuXG4vKiogQSBiZWhhdmlvcmFsIHNpZ25hbCBkZWZpbml0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbCB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZ3JvdXA6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRldGVjdGlvbkNvbmZpZzogRGV0ZWN0aW9uQ29uZmlnO1xuICBpc0VuYWJsZWQ6IGJvb2xlYW47XG4gIHNldmVyaXR5Pzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuLyoqIFNpZ25hbCBzdGF0aXN0aWNzICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25hbFN0YXRzIHtcbiAgc2lnbmFsSWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBldmVudENvdW50OiBudW1iZXI7XG4gIHRyYWNlQ291bnQ6IG51bWJlcjtcbiAgbGFzdFRyaWdnZXJlZEF0Pzogc3RyaW5nO1xufVxuXG4vKiogU2lnbmFsIHRyZW5kIGRhdGEgcG9pbnQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsVHJlbmRQb2ludCB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBldmVudENvdW50OiBudW1iZXI7XG4gIHRyYWNlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqIEEgc2lnbmFsIGV2ZW50IG9jY3VycmVuY2UgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsRXZlbnQge1xuICBpZDogc3RyaW5nO1xuICBzaWduYWxJZDogc3RyaW5nO1xuICB0cmFjZUlkOiBzdHJpbmc7XG4gIGRldGVjdGVkQXQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0lHTkFMUyBBUEkgQ0xJRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2lnbmFscyBBUEkgY2xpZW50IGZvciBtYW5hZ2luZyBiZWhhdmlvcmFsIHNpZ25hbCBkZXRlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHNpZ25hbHMgPSB7XG4gIC8qKlxuICAgKiBMaXN0IGFsbCBzaWduYWxzIHdpdGggb3B0aW9uYWwgZmlsdGVyc1xuICAgKlxuICAgKiBAcGFyYW0gb3B0cyAtIEZpbHRlciBvcHRpb25zIGZvciBncm91cCwgc291cmNlLCBvciBlbmFibGVkIHN0YXR1c1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIHNpZ25hbHNcbiAgICovXG4gIGFzeW5jIGxpc3Qob3B0cz86IExpc3RTaWduYWxzT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/Lmdyb3VwKSBwYXJhbXMuc2V0KCdncm91cCcsIG9wdHMuZ3JvdXApO1xuICAgIGlmIChvcHRzPy5zb3VyY2UpIHBhcmFtcy5zZXQoJ3NvdXJjZScsIG9wdHMuc291cmNlKTtcbiAgICBpZiAob3B0cz8uaXNFbmFibGVkICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2lzRW5hYmxlZCcsIFN0cmluZyhvcHRzLmlzRW5hYmxlZCkpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3Q8eyBzaWduYWxzOiBTaWduYWxbXSB9IHwgeyBzdWNjZXNzOiBib29sZWFuOyBkYXRhOiBTaWduYWxbXSB9PihgL3NpZ25hbHMvJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgICAvLyBIYW5kbGUgYm90aCByZXNwb25zZSBmb3JtYXRzOiB7IHNpZ25hbHM6IFsuLi5dIH0gYW5kIHsgc3VjY2VzczogdHJ1ZSwgZGF0YTogWy4uLl0gfVxuICAgIGlmICgnc2lnbmFscycgaW4gcmVzcG9uc2UpIHJldHVybiByZXNwb25zZS5zaWduYWxzO1xuICAgIGlmICgnZGF0YScgaW4gcmVzcG9uc2UpIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIHJldHVybiByZXNwb25zZSBhcyB1bmtub3duIGFzIFNpZ25hbFtdO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgYmVoYXZpb3JhbCBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBTaWduYWwgbmFtZVxuICAgKiBAcGFyYW0gZ3JvdXAgLSBTaWduYWwgZ3JvdXAvY2F0ZWdvcnlcbiAgICogQHBhcmFtIGRldGVjdGlvbkNvbmZpZyAtIERldGVjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBvcHRzIC0gQWRkaXRpb25hbCBzaWduYWwgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBzaWduYWxcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgZ3JvdXA6IHN0cmluZyxcbiAgICBkZXRlY3Rpb25Db25maWc6IERldGVjdGlvbkNvbmZpZyxcbiAgICBvcHRzPzogQ3JlYXRlU2lnbmFsT3B0aW9uc1xuICApOiBQcm9taXNlPFNpZ25hbD4ge1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsPignL3NpZ25hbHMvJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7IG5hbWUsIGdyb3VwLCBkZXRlY3Rpb25Db25maWcsIC4uLm9wdHMgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gb3B0cyAtIEZpZWxkcyB0byB1cGRhdGVcbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgc2lnbmFsXG4gICAqL1xuICBhc3luYyB1cGRhdGUoaWQ6IHN0cmluZywgb3B0czogVXBkYXRlU2lnbmFsT3B0aW9ucyk6IFByb21pc2U8U2lnbmFsPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YTxTaWduYWw+KGAvc2lnbmFscy8ke2lkfWAsIHtcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBib2R5OiBvcHRzLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogRGVsZXRlIGEgc2lnbmFsXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIFNpZ25hbCBJRCB0byBkZWxldGVcbiAgICovXG4gIGFzeW5jIHJlbW92ZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3Q8dm9pZD4oYC9zaWduYWxzLyR7aWR9YCwge1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGFwaVZlcnNpb246ICd2MScsXG4gICAgfSk7XG4gIH0sXG5cbiAgLyoqIEFsaWFzIGZvciByZW1vdmUoKSAqL1xuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlbW92ZShpZCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFNlZWQgZGVmYXVsdCBzaWduYWwgZGVmaW5pdGlvbnNcbiAgICpcbiAgICogQHJldHVybnMgTGlzdCBvZiBzZWVkZWQgc2lnbmFsc1xuICAgKi9cbiAgYXN5bmMgc2VlZERlZmF1bHRzKCk6IFByb21pc2U8U2lnbmFsW10+IHtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhPFNpZ25hbFtdPignL3NpZ25hbHMvc2VlZCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHNpZ25hbCBzdGF0aXN0aWNzXG4gICAqXG4gICAqIEBwYXJhbSBvcHRzIC0gRGF0ZSByYW5nZSBhbmQgYWdlbnQgZmlsdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIHN0YXRpc3RpY3NcbiAgICovXG4gIGFzeW5jIGdldFN0YXRzKG9wdHM/OiBTaWduYWxTdGF0c09wdGlvbnMpOiBQcm9taXNlPFNpZ25hbFN0YXRzW10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0cy5zdGFydERhdGUpO1xuICAgIGlmIChvcHRzPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0cy5lbmREYXRlKTtcbiAgICBpZiAob3B0cz8uYWdlbnRJZCkgcGFyYW1zLnNldCgnYWdlbnRJZCcsIG9wdHMuYWdlbnRJZCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdDx7IHN0YXRzOiBTaWduYWxTdGF0c1tdIH0gfCB7IHN1Y2Nlc3M6IGJvb2xlYW47IGRhdGE6IFNpZ25hbFN0YXRzW10gfT4oYC9zaWduYWxzL3N0YXRzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgICBpZiAoJ3N0YXRzJyBpbiByZXNwb25zZSkgcmV0dXJuIHJlc3BvbnNlLnN0YXRzO1xuICAgIGlmICgnZGF0YScgaW4gcmVzcG9uc2UpIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIHJldHVybiByZXNwb25zZSBhcyB1bmtub3duIGFzIFNpZ25hbFN0YXRzW107XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBzaWduYWwgdHJlbmQgZGF0YSBvdmVyIHRpbWVcbiAgICpcbiAgICogQHBhcmFtIG9wdHMgLSBEYXRlIHJhbmdlLCBhZ2VudCwgYW5kIGdyYW51bGFyaXR5IG9wdGlvbnNcbiAgICogQHJldHVybnMgU2lnbmFsIHRyZW5kIGRhdGEgcG9pbnRzXG4gICAqL1xuICBhc3luYyBnZXRUcmVuZHMob3B0cz86IFNpZ25hbFRyZW5kc09wdGlvbnMpOiBQcm9taXNlPFNpZ25hbFRyZW5kUG9pbnRbXT4ge1xuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBpZiAob3B0cz8uc3RhcnREYXRlKSBwYXJhbXMuc2V0KCdzdGFydERhdGUnLCBvcHRzLnN0YXJ0RGF0ZSk7XG4gICAgaWYgKG9wdHM/LmVuZERhdGUpIHBhcmFtcy5zZXQoJ2VuZERhdGUnLCBvcHRzLmVuZERhdGUpO1xuICAgIGlmIChvcHRzPy5hZ2VudElkKSBwYXJhbXMuc2V0KCdhZ2VudElkJywgb3B0cy5hZ2VudElkKTtcbiAgICBpZiAob3B0cz8uZ3JhbnVsYXJpdHkpIHBhcmFtcy5zZXQoJ2dyYW51bGFyaXR5Jywgb3B0cy5ncmFudWxhcml0eSk7XG5cbiAgICBjb25zdCBxdWVyeSA9IHBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiBhcGlSZXF1ZXN0V2l0aERhdGE8U2lnbmFsVHJlbmRQb2ludFtdPihgL3NpZ25hbHMvdHJlbmRzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IHRyYWNlcyB0aGF0IHRyaWdnZXJlZCBhIHNwZWNpZmljIHNpZ25hbFxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBTaWduYWwgSURcbiAgICogQHBhcmFtIG9wdHMgLSBQYWdpbmF0aW9uIGFuZCBmaWx0ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyBUcmFjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzaWduYWxcbiAgICovXG4gIGFzeW5jIGdldFRyYWNlcyhpZDogc3RyaW5nLCBvcHRzPzogU2lnbmFsVHJhY2VzT3B0aW9ucyk6IFByb21pc2U8e1xuICAgIHRyYWNlczogYW55W107XG4gICAgbGltaXQ6IG51bWJlcjtcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBoYXNNb3JlOiBib29sZWFuO1xuICB9PiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIGlmIChvcHRzPy5saW1pdCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhvcHRzLmxpbWl0KSk7XG4gICAgaWYgKG9wdHM/Lm9mZnNldCAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcob3B0cy5vZmZzZXQpKTtcbiAgICBpZiAob3B0cz8uc3RhcnREYXRlKSBwYXJhbXMuc2V0KCdzdGFydERhdGUnLCBvcHRzLnN0YXJ0RGF0ZSk7XG4gICAgaWYgKG9wdHM/LmVuZERhdGUpIHBhcmFtcy5zZXQoJ2VuZERhdGUnLCBvcHRzLmVuZERhdGUpO1xuICAgIGlmIChvcHRzPy5hZ2VudElkKSBwYXJhbXMuc2V0KCdhZ2VudElkJywgb3B0cy5hZ2VudElkKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIGFwaVJlcXVlc3RXaXRoRGF0YShgL3NpZ25hbHMvJHtpZH0vdHJhY2VzJHtxdWVyeSA/IGA/JHtxdWVyeX1gIDogJyd9YCwge1xuICAgICAgYXBpVmVyc2lvbjogJ3YxJyxcbiAgICB9KTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGV2ZW50cyBmb3IgYSBzcGVjaWZpYyBzaWduYWxcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gU2lnbmFsIElEXG4gICAqIEBwYXJhbSBvcHRzIC0gUGFnaW5hdGlvbiBvcHRpb25zXG4gICAqIEByZXR1cm5zIFNpZ25hbCBldmVudHNcbiAgICovXG4gIGFzeW5jIGdldEV2ZW50cyhpZDogc3RyaW5nLCBvcHRzPzogU2lnbmFsRXZlbnRzT3B0aW9ucyk6IFByb21pc2U8e1xuICAgIGV2ZW50czogU2lnbmFsRXZlbnRbXTtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG4gIH0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgaWYgKG9wdHM/LmxpbWl0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcbiAgICBpZiAob3B0cz8ub2Zmc2V0ICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIFN0cmluZyhvcHRzLm9mZnNldCkpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gYXBpUmVxdWVzdFdpdGhEYXRhKGAvc2lnbmFscy8ke2lkfS9ldmVudHMke3F1ZXJ5ID8gYD8ke3F1ZXJ5fWAgOiAnJ31gLCB7XG4gICAgICBhcGlWZXJzaW9uOiAndjEnLFxuICAgIH0pO1xuICB9LFxufTtcblxuZXhwb3J0IHsgc2lnbmFscyBhcyBkZWZhdWx0IH07XG4iXX0=
|
package/dist/core/config.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ThinkHive SDK v3.0 - Configuration
|
|
3
3
|
*/
|
|
4
4
|
import type { InitOptions, Framework } from './types';
|
|
5
|
-
export declare const SDK_VERSION = "4.2.
|
|
5
|
+
export declare const SDK_VERSION = "4.2.5";
|
|
6
6
|
export declare const DEFAULT_ENDPOINT = "https://app.thinkhive.ai";
|
|
7
7
|
export declare const DEFAULT_SERVICE_NAME = "my-ai-agent";
|
|
8
8
|
export interface ResolvedConfig {
|
package/dist/core/config.js
CHANGED
|
@@ -12,7 +12,7 @@ exports.debugLog = debugLog;
|
|
|
12
12
|
// ============================================================================
|
|
13
13
|
// CONSTANTS
|
|
14
14
|
// ============================================================================
|
|
15
|
-
exports.SDK_VERSION = '4.2.
|
|
15
|
+
exports.SDK_VERSION = '4.2.5';
|
|
16
16
|
exports.DEFAULT_ENDPOINT = 'https://app.thinkhive.ai';
|
|
17
17
|
exports.DEFAULT_SERVICE_NAME = 'my-ai-agent';
|
|
18
18
|
let config = null;
|
|
@@ -72,4 +72,4 @@ function debugLog(...args) {
|
|
|
72
72
|
console.log('[ThinkHive]', ...args);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBb0NILGdDQXNCQztBQU1ELDhCQUtDO0FBS0Qsc0NBRUM7QUFLRCxrQ0FHQztBQUtELDRCQUlDO0FBekZELCtFQUErRTtBQUMvRSxZQUFZO0FBQ1osK0VBQStFO0FBRWxFLFFBQUEsV0FBVyxHQUFHLE9BQU8sQ0FBQztBQUN0QixRQUFBLGdCQUFnQixHQUFHLDBCQUEwQixDQUFDO0FBQzlDLFFBQUEsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO0FBZ0JsRCxJQUFJLE1BQU0sR0FBMEIsSUFBSSxDQUFDO0FBQ3pDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztBQUV4QiwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxVQUF1QixFQUFFO0lBQ2xELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7SUFDckUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQztJQUV4RSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FDYiw4RUFBOEUsQ0FDL0UsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLEdBQUc7UUFDUCxNQUFNO1FBQ04sT0FBTztRQUNQLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksd0JBQWdCO1FBQ2hGLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLElBQUksNEJBQW9CO1FBQzlGLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxJQUFJLEtBQUs7UUFDL0MsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDO1FBQ3pELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUs7S0FDOUIsQ0FBQztJQUVGLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFNBQVM7SUFDdkIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsYUFBYTtJQUMzQixPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixXQUFXO0lBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDZCxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3RCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLElBQWU7SUFDekMsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gQ29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCB0eXBlIHsgSW5pdE9wdGlvbnMsIEZyYW1ld29yayB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT05TVEFOVFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IFNES19WRVJTSU9OID0gJzQuMi41JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0VORFBPSU5UID0gJ2h0dHBzOi8vYXBwLnRoaW5raGl2ZS5haSc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJWSUNFX05BTUUgPSAnbXktYWktYWdlbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHTE9CQUwgQ09ORklHIFNUQVRFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRDb25maWcge1xuICBhcGlLZXk6IHN0cmluZztcbiAgYWdlbnRJZDogc3RyaW5nO1xuICBlbmRwb2ludDogc3RyaW5nO1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBhdXRvSW5zdHJ1bWVudDogYm9vbGVhbjtcbiAgZnJhbWV3b3JrczogRnJhbWV3b3JrW107XG4gIGRlYnVnOiBib29sZWFuO1xufVxuXG5sZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZyB8IG51bGwgPSBudWxsO1xubGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJRyBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJbml0aWFsaXplIGNvbmZpZ3VyYXRpb24gZnJvbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0Q29uZmlnKG9wdGlvbnM6IEluaXRPcHRpb25zID0ge30pOiBSZXNvbHZlZENvbmZpZyB7XG4gIGNvbnN0IGFwaUtleSA9IG9wdGlvbnMuYXBpS2V5IHx8IHByb2Nlc3MuZW52LlRISU5LSElWRV9BUElfS0VZIHx8ICcnO1xuICBjb25zdCBhZ2VudElkID0gb3B0aW9ucy5hZ2VudElkIHx8IHByb2Nlc3MuZW52LlRISU5LSElWRV9BR0VOVF9JRCB8fCAnJztcblxuICBpZiAoIWFwaUtleSAmJiAhYWdlbnRJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdFaXRoZXIgYXBpS2V5IG9yIGFnZW50SWQgbXVzdCBiZSBwcm92aWRlZCAob3Igc2V0IFRISU5LSElWRV9BUElfS0VZIGVudiB2YXIpJ1xuICAgICk7XG4gIH1cblxuICBjb25maWcgPSB7XG4gICAgYXBpS2V5LFxuICAgIGFnZW50SWQsXG4gICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQgfHwgcHJvY2Vzcy5lbnYuVEhJTktISVZFX0VORFBPSU5UIHx8IERFRkFVTFRfRU5EUE9JTlQsXG4gICAgc2VydmljZU5hbWU6IG9wdGlvbnMuc2VydmljZU5hbWUgfHwgcHJvY2Vzcy5lbnYuVEhJTktISVZFX1NFUlZJQ0VfTkFNRSB8fCBERUZBVUxUX1NFUlZJQ0VfTkFNRSxcbiAgICBhdXRvSW5zdHJ1bWVudDogb3B0aW9ucy5hdXRvSW5zdHJ1bWVudCA/PyBmYWxzZSxcbiAgICBmcmFtZXdvcmtzOiBvcHRpb25zLmZyYW1ld29ya3MgfHwgWydsYW5nY2hhaW4nLCAnb3BlbmFpJ10sXG4gICAgZGVidWc6IG9wdGlvbnMuZGVidWcgPz8gZmFsc2UsXG4gIH07XG5cbiAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICByZXR1cm4gY29uZmlnO1xufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IGNvbmZpZ3VyYXRpb25cbiAqIEB0aHJvd3MgaWYgbm90IGluaXRpYWxpemVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWcoKTogUmVzb2x2ZWRDb25maWcge1xuICBpZiAoIWNvbmZpZyB8fCAhaW5pdGlhbGl6ZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaW5rSGl2ZSBTREsgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4nKTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIFNESyBpcyBpbml0aWFsaXplZFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJbml0aWFsaXplZCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGluaXRpYWxpemVkO1xufVxuXG4vKipcbiAqIFJlc2V0IGNvbmZpZ3VyYXRpb24gKGZvciB0ZXN0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRDb25maWcoKTogdm9pZCB7XG4gIGNvbmZpZyA9IG51bGw7XG4gIGluaXRpYWxpemVkID0gZmFsc2U7XG59XG5cbi8qKlxuICogRGVidWcgbG9nIGhlbHBlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVidWdMb2coLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gIGlmIChjb25maWc/LmRlYnVnKSB7XG4gICAgY29uc29sZS5sb2coJ1tUaGlua0hpdmVdJywgLi4uYXJncyk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/core/types.d.ts
CHANGED
|
@@ -244,11 +244,11 @@ export interface Claim {
|
|
|
244
244
|
createdAt?: string;
|
|
245
245
|
}
|
|
246
246
|
export type ClaimType = 'observed' | 'inferred' | 'computed';
|
|
247
|
-
export type ClaimCategory = 'outcome' | 'root_cause' | '
|
|
248
|
-
export type ConfidenceCalibration = 'calibrated' | 'uncalibrated' | '
|
|
247
|
+
export type ClaimCategory = 'outcome' | 'root_cause' | 'sentiment' | 'churn_risk' | 'escalation_risk' | 'satisfaction' | 'recontact' | 'resolution_time' | 'cost' | 'quality' | 'compliance' | 'other';
|
|
248
|
+
export type ConfidenceCalibration = 'calibrated' | 'uncalibrated' | 'rule_based';
|
|
249
249
|
export interface EvidenceReference {
|
|
250
250
|
/** Type of evidence */
|
|
251
|
-
type: 'span' | 'message' | 'tool_call' | '
|
|
251
|
+
type: 'span' | 'message' | 'tool_call' | 'retrieval' | 'pattern' | 'metric' | 'external';
|
|
252
252
|
/** ID of the referenced item */
|
|
253
253
|
referenceId: string;
|
|
254
254
|
/** How relevant is this evidence */
|
package/dist/core/types.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Run-centric types with facts vs inferences and customer context snapshots
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gQ29yZSBUeXBlc1xuICpcbiAqIFJ1bi1jZW50cmljIHR5cGVzIHdpdGggZmFjdHMgdnMgaW5mZXJlbmNlcyBhbmQgY3VzdG9tZXIgY29udGV4dCBzbmFwc2hvdHNcbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJTklUIE9QVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbml0T3B0aW9ucyB7XG4gIC8qKiBUaGlua0hpdmUgQVBJIGtleSAoc3RhcnRzIHdpdGggdGhfKSAqL1xuICBhcGlLZXk/OiBzdHJpbmc7XG4gIC8qKiBBZ2VudCBJRCAqL1xuICBhZ2VudElkPzogc3RyaW5nO1xuICAvKiogVGhpbmtIaXZlIEFQSSBlbmRwb2ludCAqL1xuICBlbmRwb2ludD86IHN0cmluZztcbiAgLyoqIFNlcnZpY2UgbmFtZSBmb3IgdHJhY2VzICovXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICAvKiogRW5hYmxlIGF1dG8taW5zdHJ1bWVudGF0aW9uICovXG4gIGF1dG9JbnN0cnVtZW50PzogYm9vbGVhbjtcbiAgLyoqIEZyYW1ld29ya3MgdG8gYXV0by1pbnN0cnVtZW50ICovXG4gIGZyYW1ld29ya3M/OiBGcmFtZXdvcmtbXTtcbiAgLyoqIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nICovXG4gIGRlYnVnPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnJhbWV3b3JrID1cbiAgfCAnbGFuZ2NoYWluJ1xuICB8ICdsYW5nZ3JhcGgnXG4gIHwgJ29wZW5haSdcbiAgfCAnb3BlbmFpLWFzc2lzdGFudHMnXG4gIHwgJ2FudGhyb3BpYydcbiAgfCAnbGxhbWFpbmRleCdcbiAgfCAnbjhuJ1xuICB8ICd2b2ljZWZsb3cnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSVU4gT1BUSU9OUyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBydW4gKHYzIGF0b21pYyB1bml0KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMge1xuICAvKiogQWdlbnQgSUQgKi9cbiAgYWdlbnRJZDogc3RyaW5nO1xuICAvKiogV2hlbiB0aGUgcnVuIHN0YXJ0ZWQgKi9cbiAgc3RhcnRlZEF0Pzogc3RyaW5nIHwgRGF0ZTtcbiAgLyoqIFdoZW4gdGhlIHJ1biBlbmRlZCAqL1xuICBlbmRlZEF0Pzogc3RyaW5nIHwgRGF0ZTtcbiAgLyoqIFJ1biBvdXRjb21lICovXG4gIG91dGNvbWU/OiBSdW5PdXRjb21lO1xuICAvKiogUmVhc29uIGZvciB0aGUgb3V0Y29tZSAqL1xuICBvdXRjb21lUmVhc29uPzogc3RyaW5nO1xuICAvKiogQ29udmVyc2F0aW9uIG1lc3NhZ2VzICovXG4gIGNvbnZlcnNhdGlvbk1lc3NhZ2VzOiBDb252ZXJzYXRpb25NZXNzYWdlW107XG4gIC8qKiBNb2RlbCBJRCB1c2VkICovXG4gIG1vZGVsSWQ/OiBzdHJpbmc7XG4gIC8qKiBQcm9tcHQgdmVyc2lvbiAqL1xuICBwcm9tcHRWZXJzaW9uPzogc3RyaW5nO1xuICAvKiogU2Vzc2lvbiBJRCBmb3IgY29udmVyc2F0aW9uIHRyYWNraW5nICovXG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgLyoqIEN1c3RvbWVyIGNvbnRleHQgc25hcHNob3QgKEFSUiwgaGVhbHRoIEFTIE9GIHRoaXMgcnVuKSAqL1xuICBjdXN0b21lckNvbnRleHQ/OiBDdXN0b21lckNvbnRleHRTbmFwc2hvdDtcbiAgLyoqIFRpY2tldCBsaW5raW5nIG9wdGlvbnMgKi9cbiAgdGlja2V0TGlua2luZz86IFRpY2tldExpbmtpbmdPcHRpb25zO1xuICAvKiogQ3VzdG9tIG1ldGFkYXRhICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKlxuICAgKiBDdXN0b20gYnVzaW5lc3MgbWV0cmljcyB0byByZWNvcmQgd2l0aCB0aGlzIHJ1bi5cbiAgICogS2V5cyBzaG91bGQgbWF0Y2ggbWV0cmljcyBkZWNsYXJlZCBkdXJpbmcgYWdlbnQgc2V0dXAgKG9uYm9hcmRpbmcpLlxuICAgKiBWYWx1ZXMgY2FuIGJlIG51bWJlcnMsIGJvb2xlYW5zLCBvciBzaG9ydCBzdHJpbmdzIChtYXggMTAwIGNoYXJzKS5cbiAgICpcbiAgICogTWV0cmljcyBhcmUgYWdncmVnYXRlZCBvdmVyIHRpbWUgZm9yIGRhc2hib2FyZCBkaXNwbGF5IGFuZCB0cmVuZCBhbmFseXNpcy5cbiAgICogVW5kZWNsYXJlZCBtZXRyaWNzIHdpbGwgYmUgdHJhY2tlZCBidXQgZmxhZ2dlZCBhcyBcImRpc2NvdmVyZWRcIiBtZXRyaWNzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBtZXRyaWNzOiB7XG4gICAqICAgY3VzdG9tZXJfc2F0aXNmYWN0aW9uOiA0LjUsXG4gICAqICAgcmVzb2x1dGlvbl90aW1lX21zOiAyNDUwLFxuICAgKiAgIGVzY2FsYXRlZDogZmFsc2UsXG4gICAqICAgdGlja2V0X3ByaW9yaXR5OiAnaGlnaCdcbiAgICogfVxuICAgKi9cbiAgbWV0cmljcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmc+O1xuICAvKipcbiAgICogUmVxdWVzdCBldmFsdWF0aW9uIHdoZW4gcnVuIGlzIGluZ2VzdGVkLlxuICAgKiBPdmVycmlkZXMgYWdlbnQncyBhdXRvX2V2YWx1YXRlIHNldHRpbmcgZm9yIHRoaXMgcnVuLlxuICAgKlxuICAgKiAtIHRydWU6IEZvcmNlIGV2YWx1YXRpb24gb24gdGhpcyBydW5cbiAgICogLSBmYWxzZTogU2tpcCBldmFsdWF0aW9uIGV2ZW4gaWYgYWdlbnQgaGFzIGF1dG9fZXZhbHVhdGUgZW5hYmxlZFxuICAgKiAtIHVuZGVmaW5lZDogVXNlIGFnZW50J3MgYXV0b19ldmFsdWF0ZSBzZXR0aW5nIChkZWZhdWx0KVxuICAgKi9cbiAgcnVuRXZhbHVhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFJ1bk91dGNvbWUgPVxuICB8ICdyZXNvbHZlZCdcbiAgfCAnZXNjYWxhdGVkJ1xuICB8ICdhYmFuZG9uZWQnXG4gIHwgJ2ZhaWxlZCdcbiAgfCAndHJhbnNmZXJyZWQnXG4gIHwgJ3BlbmRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbk1lc3NhZ2Uge1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JyB8ICdzeXN0ZW0nIHwgJ3Rvb2wnO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ1VTVE9NRVIgQ09OVEVYVCBTTkFQU0hPVCAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3VzdG9tZXIgY29udGV4dCBjYXB0dXJlZCBBUyBPRiB0aGUgcnVuIHRpbWUgKG5vdCBjdXJyZW50IHZhbHVlcylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckNvbnRleHRTbmFwc2hvdCB7XG4gIC8qKiBDdXN0b21lciBhY2NvdW50IElEICovXG4gIGN1c3RvbWVySWQ/OiBzdHJpbmc7XG4gIC8qKiBBUlIgYXQgdGhlIHRpbWUgb2YgdGhlIHJ1biAobm90IGN1cnJlbnQgQVJSKSAqL1xuICBhcnI/OiBudW1iZXI7XG4gIC8qKiBIZWFsdGggc2NvcmUgYXQgdGhlIHRpbWUgb2YgdGhlIHJ1biAoMC0xMDApICovXG4gIGhlYWx0aFNjb3JlPzogbnVtYmVyO1xuICAvKiogQ3VzdG9tZXIgc2VnbWVudCAoZS5nLiwgJ2VudGVycHJpc2UnLCAnbWlkLW1hcmtldCcsICdzbWInKSAqL1xuICBzZWdtZW50Pzogc3RyaW5nO1xuICAvKiogV2hlbiB0aGlzIHNuYXBzaG90IHdhcyBjYXB0dXJlZCAqL1xuICBjYXB0dXJlZEF0Pzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkcyAod2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBzY2hlbWEpICovXG4gIGN1c3RvbUZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUSUNLRVQgTElOS0lORyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGV0ZXJtaW5pc3RpYyB0aWNrZXQgbGlua2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpY2tldExpbmtpbmdPcHRpb25zIHtcbiAgLyoqIExpbmsgbWV0aG9kIHRvIHVzZSAqL1xuICBtZXRob2Q6IExpbmtNZXRob2Q7XG4gIC8qKiBUaWNrZXQgSUQgKGZvciBzZGtfZXhwbGljaXQgbWV0aG9kKSAqL1xuICB0aWNrZXRJZD86IHN0cmluZztcbiAgLyoqIEV4dGVybmFsIHRpY2tldCBJRCAoZS5nLiwgWmVuZGVzayB0aWNrZXQgSUQpICovXG4gIGV4dGVybmFsVGlja2V0SWQ/OiBzdHJpbmc7XG4gIC8qKiBQbGF0Zm9ybSBmb3IgZXh0ZXJuYWwgdGlja2V0ICovXG4gIHBsYXRmb3JtPzogJ3plbmRlc2snIHwgJ2ludGVyY29tJyB8ICdzYWxlc2ZvcmNlJyB8ICdmcmVzaGRlc2snO1xuICAvKiogQ3VzdG9tIGZpZWxkIG5hbWUgZm9yIGxpbmtpbmcgKi9cbiAgY3VzdG9tRmllbGROYW1lPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkIHZhbHVlICovXG4gIGN1c3RvbUZpZWxkVmFsdWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIExpbmtNZXRob2QgPVxuICB8ICdzZGtfZXhwbGljaXQnICAgICAgLy8gRGlyZWN0IFNESyBjYWxsIHdpdGggdGlja2V0IElEIChjb25maWRlbmNlOiAxLjApXG4gIHwgJ3plbmRlc2tfbWFya2VyJyAgICAvLyBFbWJlZGRlZCBUSElEIG1hcmtlciBpbiByZXNwb25zZSAoY29uZmlkZW5jZTogMS4wKVxuICB8ICdjdXN0b21fZmllbGQnICAgICAgLy8gWmVuZGVzayBjdXN0b20gZmllbGQgKGNvbmZpZGVuY2U6IDEuMClcbiAgfCAnbWlkZGxld2FyZV9zdGFtcCcgIC8vIE1pZGRsZXdhcmUtaW5qZWN0ZWQgdHJhY2UgSUQgKGNvbmZpZGVuY2U6IDAuOTgpXG4gIHwgJ3Nlc3Npb25fbWF0Y2gnICAgICAvLyBTZXNzaW9uIElEIGNvcnJlbGF0aW9uIChjb25maWRlbmNlOiAwLjk1KVxuICB8ICdlbWFpbF90aW1lX3dpbmRvdycgLy8gRW1haWwgKyAxNW1pbiB3aW5kb3cgKGNvbmZpZGVuY2U6IDAuNilcbiAgfCAnbWFudWFsJzsgICAgICAgICAgIC8vIEh1bWFuLWFzc2lnbmVkIChjb25maWRlbmNlOiAxLjApXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRSQUNFIE9QVElPTlMgKHYyIGNvbXBhdGliaWxpdHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gZmxhZ3MgZm9yIGNhdGVnb3JpemluZyB0cmFjZSBpc3N1ZXNcbiAqIFNlcGFyYXRlIGZyb20gYmluYXJ5IG91dGNvbWUgKHN1Y2Nlc3MvZmFpbHVyZSlcbiAqL1xuZXhwb3J0IHR5cGUgVHJhY2VDdXN0b21GbGFnID1cbiAgfCAnaGFsbHVjaW5hdGlvbidcbiAgfCAncG9saWN5X3Zpb2xhdGlvbidcbiAgfCAndG9uZV9pc3N1ZSdcbiAgfCAncmV0cmlldmFsX21pc3MnXG4gIHwgJ2Vycm9yJztcblxuLyoqXG4gKiBUcmFjZSBvcHRpb25zICh2MiBmb3JtYXQsIGNvbnZlcnRlZCB0byBydW5zIGludGVybmFsbHkpXG4gKiBAZGVwcmVjYXRlZCBVc2UgUnVuT3B0aW9ucyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VPcHRpb25zIHtcbiAgLyoqIFVzZXIncyBtZXNzYWdlL3F1ZXJ5ICovXG4gIHVzZXJNZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBBZ2VudCdzIHJlc3BvbnNlICovXG4gIGFnZW50UmVzcG9uc2U6IHN0cmluZztcbiAgLyoqIFVzZXIncyBkZXRlY3RlZCBpbnRlbnQgKi9cbiAgdXNlckludGVudD86IHN0cmluZztcbiAgLyoqIEJpbmFyeSBvdXRjb21lOiBzdWNjZXNzIG9yIGZhaWx1cmUgKi9cbiAgb3V0Y29tZT86ICdzdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgLyoqIENsYXNzaWZpY2F0aW9uIGZsYWdzIGZvciBjYXRlZ29yaXppbmcgdGhlIGlzc3VlIHR5cGUgKGhhbGx1Y2luYXRpb24sIHBvbGljeV92aW9sYXRpb24sIGV0Yy4pICovXG4gIGN1c3RvbUZsYWdzPzogVHJhY2VDdXN0b21GbGFnW107XG4gIC8qKiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgKi9cbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIC8qKiBTZXNzaW9uIElEIGZvciBjb252ZXJzYXRpb24gdHJhY2tpbmcgKi9cbiAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICAvKiogQ29udmVyc2F0aW9uIGhpc3RvcnkgKi9cbiAgY29udmVyc2F0aW9uSGlzdG9yeT86IEFycmF5PHsgcm9sZTogc3RyaW5nOyBjb250ZW50OiBzdHJpbmcgfT47XG4gIC8qKiBTcGFuIGRhdGEgZm9yIGRldGFpbGVkIGFuYWx5c2lzICovXG4gIHNwYW5zPzogU3BhbkRhdGFbXTtcbiAgLyoqIEJ1c2luZXNzIGNvbnRleHQgZm9yIFJPSSBjYWxjdWxhdGlvbiAqL1xuICBidXNpbmVzc0NvbnRleHQ/OiBCdXNpbmVzc0NvbnRleHQ7XG4gIC8qKiBDdXN0b20gbWV0YWRhdGEgKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIEN1c3RvbSBidXNpbmVzcyBtZXRyaWNzIHRvIHJlY29yZCB3aXRoIHRoaXMgdHJhY2UuXG4gICAqIEtleXMgc2hvdWxkIG1hdGNoIG1ldHJpY3MgZGVjbGFyZWQgZHVyaW5nIGFnZW50IHNldHVwLlxuICAgKiBWYWx1ZXMgY2FuIGJlIG51bWJlcnMsIGJvb2xlYW5zLCBvciBzaG9ydCBzdHJpbmdzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBtZXRyaWNzOiB7XG4gICAqICAgY3VzdG9tZXJfc2F0aXNmYWN0aW9uOiA0LjUsXG4gICAqICAgcmVzb2x1dGlvbl90aW1lX21zOiAyNDUwLFxuICAgKiAgIGVzY2FsYXRlZDogZmFsc2VcbiAgICogfVxuICAgKi9cbiAgbWV0cmljcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmc+O1xuICAvKipcbiAgICogUmVxdWVzdCBldmFsdWF0aW9uIHdoZW4gdHJhY2UgaXMgaW5nZXN0ZWQuXG4gICAqIE92ZXJyaWRlcyBhZ2VudCdzIGF1dG9fZXZhbHVhdGUgc2V0dGluZyBmb3IgdGhpcyB0cmFjZS5cbiAgICpcbiAgICogLSB0cnVlOiBGb3JjZSBldmFsdWF0aW9uIG9uIHRoaXMgdHJhY2VcbiAgICogLSBmYWxzZTogU2tpcCBldmFsdWF0aW9uIGV2ZW4gaWYgYWdlbnQgaGFzIGF1dG9fZXZhbHVhdGUgZW5hYmxlZFxuICAgKiAtIHVuZGVmaW5lZDogVXNlIGFnZW50J3MgYXV0b19ldmFsdWF0ZSBzZXR0aW5nIChkZWZhdWx0KVxuICAgKi9cbiAgcnVuRXZhbHVhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkRhdGEge1xuICBpZD86IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiAnbGxtJyB8ICd0b29sJyB8ICdyZXRyaWV2YWwnIHwgJ2VtYmVkZGluZycgfCAnY2hhaW4nIHwgJ2N1c3RvbSc7XG4gIHN0YXJ0VGltZT86IERhdGU7XG4gIGVuZFRpbWU/OiBEYXRlO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICBzdGF0dXM/OiAnb2snIHwgJ2Vycm9yJyB8ICd0aW1lb3V0JztcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGlucHV0PzogdW5rbm93bjtcbiAgb3V0cHV0PzogdW5rbm93bjtcbiAgLy8gTExNLXNwZWNpZmljXG4gIG1vZGVsPzogc3RyaW5nO1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgcHJvbXB0VG9rZW5zPzogbnVtYmVyO1xuICBjb21wbGV0aW9uVG9rZW5zPzogbnVtYmVyO1xuICAvLyBUb29sLXNwZWNpZmljXG4gIHRvb2xOYW1lPzogc3RyaW5nO1xuICB0b29sUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvLyBSZXRyaWV2YWwtc3BlY2lmaWNcbiAgcXVlcnk/OiBzdHJpbmc7XG4gIGRvY3VtZW50Q291bnQ/OiBudW1iZXI7XG4gIHRvcFNjb3JlPzogbnVtYmVyO1xuICBzb3VyY2VzPzogc3RyaW5nW107XG4gIC8vIENoaWxkcmVuXG4gIGNoaWxkcmVuPzogU3BhbkRhdGFbXTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ3VzdG9tZXJDb250ZXh0U25hcHNob3QgaW5zdGVhZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzQ29udGV4dCB7XG4gIC8qKiBDdXN0b21lciBJRCAqL1xuICBjdXN0b21lcklkPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gdmFsdWUgaW4gZG9sbGFycyAqL1xuICB0cmFuc2FjdGlvblZhbHVlPzogbnVtYmVyO1xuICAvKiogUHJpb3JpdHkgbGV2ZWwgKi9cbiAgcHJpb3JpdHk/OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbiAgLyoqIERlcGFydG1lbnQgKi9cbiAgZGVwYXJ0bWVudD86IHN0cmluZztcbiAgLyoqIEluZHVzdHJ5IHZlcnRpY2FsICovXG4gIGluZHVzdHJ5Pzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkcyAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ0xBSU0gVFlQRVMgKHYzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEEgY2xhaW0gYWJvdXQgYSBydW4gKGZhY3QgdnMgaW5mZXJlbmNlKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYWltIHtcbiAgaWQ6IHN0cmluZztcbiAgYW5hbHlzaXNJZDogc3RyaW5nO1xuICAvKiogVHlwZSBvZiBjbGFpbSAqL1xuICBjbGFpbVR5cGU6IENsYWltVHlwZTtcbiAgLyoqIENhdGVnb3J5IG9mIHRoZSBjbGFpbSAqL1xuICBjbGFpbUNhdGVnb3J5OiBDbGFpbUNhdGVnb3J5O1xuICAvKiogVGhlIGNsYWltIHRleHQgKi9cbiAgY2xhaW1UZXh0OiBzdHJpbmc7XG4gIC8qKiBDb25maWRlbmNlIGluIHRoaXMgY2xhaW0gKDAtMSkgKi9cbiAgY29uZmlkZW5jZTogbnVtYmVyO1xuICAvKiogSG93IHdlbGwgY2FsaWJyYXRlZCBpcyB0aGlzIGNvbmZpZGVuY2UgKi9cbiAgY29uZmlkZW5jZUNhbGlicmF0aW9uOiBDb25maWRlbmNlQ2FsaWJyYXRpb247XG4gIC8qKiBFdmlkZW5jZSBzdXBwb3J0aW5nIHRoaXMgY2xhaW0gKi9cbiAgZXZpZGVuY2U6IEV2aWRlbmNlUmVmZXJlbmNlW107XG4gIC8qKiBJcyB0aGlzIGNsYWltIGV4cGxhaW5hYmxlIHRvIGVuZCB1c2VycyAqL1xuICBpc0V4cGxhaW5hYmxlOiBib29sZWFuO1xuICAvKiogUHJvYmFiaWxpdHkgdmFsdWUgZm9yIHByb2JhYmlsaXR5IGNsYWltcyAqL1xuICBwcm9iYWJpbGl0eVZhbHVlPzogbnVtYmVyO1xuICAvKiogSHVtYW4tYXNzaWduZWQgdmVyaWZpY2F0aW9uIHN0YXR1cyAqL1xuICBodW1hblZlcmlmaWVkPzogYm9vbGVhbjtcbiAgLyoqIEh1bWFuIHZlcmlmaWNhdGlvbiB2ZXJkaWN0ICovXG4gIGh1bWFuVmVyZGljdD86ICdjb25maXJtZWQnIHwgJ3JlamVjdGVkJyB8ICdtb2RpZmllZCc7XG4gIGNyZWF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ2xhaW1UeXBlID0gJ29ic2VydmVkJyB8ICdpbmZlcnJlZCcgfCAnY29tcHV0ZWQnO1xuZXhwb3J0IHR5cGUgQ2xhaW1DYXRlZ29yeSA9XG4gIHwgJ291dGNvbWUnXG4gIHwgJ3Jvb3RfY2F1c2UnXG4gIHwgJ2N1c3RvbWVyX2ltcGFjdCdcbiAgfCAnY2h1cm5fcmlzaydcbiAgfCAncmV2ZW51ZV9pbXBhY3QnXG4gIHwgJ3F1YWxpdHknXG4gIHwgJ290aGVyJztcbmV4cG9ydCB0eXBlIENvbmZpZGVuY2VDYWxpYnJhdGlvbiA9ICdjYWxpYnJhdGVkJyB8ICd1bmNhbGlicmF0ZWQnIHwgJ25lZWRzX21vcmVfZGF0YSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZpZGVuY2VSZWZlcmVuY2Uge1xuICAvKiogVHlwZSBvZiBldmlkZW5jZSAqL1xuICB0eXBlOiAnc3BhbicgfCAnbWVzc2FnZScgfCAndG9vbF9jYWxsJyB8ICdleHRlcm5hbCcgfCAnY29tcHV0ZWQnO1xuICAvKiogSUQgb2YgdGhlIHJlZmVyZW5jZWQgaXRlbSAqL1xuICByZWZlcmVuY2VJZDogc3RyaW5nO1xuICAvKiogSG93IHJlbGV2YW50IGlzIHRoaXMgZXZpZGVuY2UgKi9cbiAgcmVsZXZhbmNlOiBzdHJpbmc7XG4gIC8qKiBDb25maWRlbmNlIGluIHRoaXMgZXZpZGVuY2UgKi9cbiAgY29uZmlkZW5jZTogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBTkFMWVNJUyBSRVNVTFQgKHYzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5c2lzUmVzdWx0IHtcbiAgaWQ6IHN0cmluZztcbiAgcnVuSWQ6IHN0cmluZztcbiAgYW5hbHlzaXNWZXJzaW9uOiBzdHJpbmc7XG4gIG1vZGVsVXNlZDogc3RyaW5nO1xuICAvKiogT3ZlcmFsbCBvdXRjb21lIHZlcmRpY3QgKi9cbiAgb3V0Y29tZVZlcmRpY3Q6ICdzdWNjZXNzJyB8ICdwYXJ0aWFsX3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnO1xuICAvKiogQ29uZmlkZW5jZSBpbiB0aGUgdmVyZGljdCAoMC0xKSAqL1xuICBvdXRjb21lQ29uZmlkZW5jZTogbnVtYmVyO1xuICAvKiogUm9vdCBjYXVzZSBjYXRlZ29yeSBpZiBmYWlsdXJlICovXG4gIHJvb3RDYXVzZUNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKiogQ29uZmlkZW5jZSBpbiByb290IGNhdXNlICgwLTEpICovXG4gIHJvb3RDYXVzZUNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIC8qKiBJcyB0aGlzIHRoZSBjdXJyZW50IGFuYWx5c2lzICovXG4gIGlzQ3VycmVudDogYm9vbGVhbjtcbiAgLyoqIElEIG9mIGFuYWx5c2lzIHRoYXQgc3VwZXJzZWRlZCB0aGlzIG9uZSAqL1xuICBzdXBlcnNlZGVkQnk/OiBzdHJpbmc7XG4gIC8qKiBDbGFpbXMgZnJvbSB0aGlzIGFuYWx5c2lzICovXG4gIGNsYWltczogQ2xhaW1bXTtcbiAgYW5hbHl6ZWRBdD86IHN0cmluZztcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDQUxJQlJBVElPTiBUWVBFUyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsaWJyYXRpb25TdGF0dXMge1xuICBhZ2VudElkOiBzdHJpbmc7XG4gIHByZWRpY3Rpb25UeXBlOiBQcmVkaWN0aW9uVHlwZTtcbiAgLyoqIEJyaWVyIHNjb3JlIChsb3dlciBpcyBiZXR0ZXIsIDwwLjEgaXMgZ29vZCkgKi9cbiAgYnJpZXJTY29yZTogbnVtYmVyO1xuICAvKiogRXhwZWN0ZWQgQ2FsaWJyYXRpb24gRXJyb3IgKi9cbiAgZWNlOiBudW1iZXI7XG4gIC8qKiBTYW1wbGUgY291bnQgKi9cbiAgc2FtcGxlQ291bnQ6IG51bWJlcjtcbiAgLyoqIElzIHRoZSBtb2RlbCB3ZWxsLWNhbGlicmF0ZWQgKi9cbiAgaXNDYWxpYnJhdGVkOiBib29sZWFuO1xuICAvKiogQ2FsaWJyYXRpb24gYnkgY29uZmlkZW5jZSBidWNrZXQgKi9cbiAgYnVja2V0czogQ2FsaWJyYXRpb25CdWNrZXRbXTtcbiAgbGFzdFVwZGF0ZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFByZWRpY3Rpb25UeXBlID1cbiAgfCAnb3V0Y29tZSdcbiAgfCAnY2h1cm5fcmlzaydcbiAgfCAnZXNjYWxhdGlvbl9yaXNrJ1xuICB8ICdyZXNvbHV0aW9uX3RpbWUnXG4gIHwgJ2N1c3RvbWVyX3NhdGlzZmFjdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsaWJyYXRpb25CdWNrZXQge1xuICBidWNrZXRTdGFydDogbnVtYmVyO1xuICBidWNrZXRFbmQ6IG51bWJlcjtcbiAgcHJlZGljdGVkUHJvYmFiaWxpdHk6IG51bWJlcjtcbiAgYWN0dWFsRnJlcXVlbmN5OiBudW1iZXI7XG4gIHNhbXBsZUNvdW50OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJPSSBUWVBFUyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9pQ29uZmlnIHtcbiAgLyoqIENvc3QgcGVyIHN1cHBvcnQgdGlja2V0IGRlZmxlY3RlZCAqL1xuICB0aWNrZXREZWZsZWN0aW9uVmFsdWU6IG51bWJlcjtcbiAgLyoqIENvc3QgcGVyIGVzY2FsYXRpb24gKi9cbiAgZXNjYWxhdGlvbkNvc3Q6IG51bWJlcjtcbiAgLyoqIENvc3QgcGVyIGhvdXIgb2YgYWdlbnQgdGltZSAqL1xuICBhZ2VudEhvdXJseUNvc3Q6IG51bWJlcjtcbiAgLyoqIEF2ZXJhZ2UgcmVzb2x1dGlvbiB0aW1lIChtaW51dGVzKSAqL1xuICBhdmdSZXNvbHV0aW9uTWludXRlczogbnVtYmVyO1xuICAvKiogQ1NBVCBpbXBhY3QgbXVsdGlwbGllciAqL1xuICBjc2F0SW1wYWN0TXVsdGlwbGllcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvaVN1bW1hcnkge1xuICBwZXJpb2Q6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIC8qKiBUb3RhbCBlc3RpbWF0ZWQgc2F2aW5ncyAqL1xuICB0b3RhbFNhdmluZ3M6IG51bWJlcjtcbiAgLyoqIEJyZWFrZG93biBieSBjYXRlZ29yeSAqL1xuICBicmVha2Rvd246IHtcbiAgICB0aWNrZXREZWZsZWN0aW9uOiBudW1iZXI7XG4gICAgZXNjYWxhdGlvblByZXZlbnRpb246IG51bWJlcjtcbiAgICB0aW1lVG9SZXNvbHV0aW9uOiBudW1iZXI7XG4gICAgY2h1cm5QcmV2ZW50aW9uOiBudW1iZXI7XG4gIH07XG4gIC8qKiBDb25maWRlbmNlIGluIHRoZXNlIGVzdGltYXRlcyAqL1xuICBjb25maWRlbmNlOiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnO1xuICAvKiogTWV0aG9kb2xvZ3kgdXNlZCAqL1xuICBtZXRob2RvbG9neTogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFWFBMQUlOQUJJTElUWSBSRVNVTFQgKHYyIGNvbXBhdGliaWxpdHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIEFuYWx5c2lzUmVzdWx0IGluc3RlYWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluYWJpbGl0eVJlc3VsdCB7XG4gIHRyYWNlSWQ6IHN0cmluZztcbiAgZXhwbGFpbmFiaWxpdHlJZDogc3RyaW5nO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIG91dGNvbWU6IHtcbiAgICB2ZXJkaWN0OiAnc3VjY2VzcycgfCAncGFydGlhbF9zdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgICBjb25maWRlbmNlOiBudW1iZXI7XG4gICAgcmVhc29uaW5nOiBzdHJpbmc7XG4gIH07XG4gIGJ1c2luZXNzSW1wYWN0OiB7XG4gICAgaW1wYWN0U2NvcmU6IG51bWJlcjtcbiAgICBjdXN0b21lclNhdGlzZmFjdGlvbjogbnVtYmVyO1xuICAgIHJldmVudWVSaXNrOiBzdHJpbmc7XG4gIH07XG4gIHJlY29tbWVuZGF0aW9uczogQXJyYXk8e1xuICAgIHByaW9yaXR5OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk6IHN0cmluZztcbiAgICBhY3Rpb246IHN0cmluZztcbiAgICBleHBlY3RlZEltcGFjdDogc3RyaW5nO1xuICB9PjtcbiAgcmFnRXZhbHVhdGlvbj86IHtcbiAgICBncm91bmRlZG5lc3M6IG51bWJlcjtcbiAgICBmYWl0aGZ1bG5lc3M6IG51bWJlcjtcbiAgICBhbnN3ZXJSZWxldmFuY2U6IG51bWJlcjtcbiAgfTtcbiAgaGFsbHVjaW5hdGlvblJlcG9ydD86IHtcbiAgICBkZXRlY3RlZDogYm9vbGVhbjtcbiAgICB0eXBlczogc3RyaW5nW107XG4gICAgc2V2ZXJpdHk6IHN0cmluZztcbiAgfTtcbiAgcHJvY2Vzc2luZ1RpbWVNczogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBUEkgUkVTUE9OU0UgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZTxUPiB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGRhdGE/OiBUO1xuICBlcnJvcj86IHtcbiAgICBjb2RlOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRldGFpbHM/OiB1bmtub3duO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlZFJlc3BvbnNlPFQ+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZGF0YToge1xuICAgIGl0ZW1zOiBUW107XG4gICAgbGltaXQ6IG51bWJlcjtcbiAgICBvZmZzZXQ6IG51bWJlcjtcbiAgICBoYXNNb3JlOiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1blJlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgY29tcGFueUlkOiBzdHJpbmc7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgdGlja2V0SWQ/OiBzdHJpbmc7XG4gIGN1c3RvbWVyQWNjb3VudElkPzogc3RyaW5nO1xuICBzZXNzaW9uSWQ/OiBzdHJpbmc7XG4gIHN0YXJ0ZWRBdDogc3RyaW5nO1xuICBlbmRlZEF0Pzogc3RyaW5nO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICBvdXRjb21lPzogUnVuT3V0Y29tZTtcbiAgb3V0Y29tZVJlYXNvbj86IHN0cmluZztcbiAgY29udmVyc2F0aW9uTWVzc2FnZXM6IENvbnZlcnNhdGlvbk1lc3NhZ2VbXTtcbiAgbW9kZWxJZD86IHN0cmluZztcbiAgcHJvbXB0VmVyc2lvbj86IHN0cmluZztcbiAgY3VzdG9tZXJDb250ZXh0U25hcHNob3Q/OiBDdXN0b21lckNvbnRleHRTbmFwc2hvdDtcbiAgemVuZGVza01hcmtlcj86IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuIl19
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpbmtIaXZlIFNESyB2My4wIC0gQ29yZSBUeXBlc1xuICpcbiAqIFJ1bi1jZW50cmljIHR5cGVzIHdpdGggZmFjdHMgdnMgaW5mZXJlbmNlcyBhbmQgY3VzdG9tZXIgY29udGV4dCBzbmFwc2hvdHNcbiAqL1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJTklUIE9QVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbml0T3B0aW9ucyB7XG4gIC8qKiBUaGlua0hpdmUgQVBJIGtleSAoc3RhcnRzIHdpdGggdGhfKSAqL1xuICBhcGlLZXk/OiBzdHJpbmc7XG4gIC8qKiBBZ2VudCBJRCAqL1xuICBhZ2VudElkPzogc3RyaW5nO1xuICAvKiogVGhpbmtIaXZlIEFQSSBlbmRwb2ludCAqL1xuICBlbmRwb2ludD86IHN0cmluZztcbiAgLyoqIFNlcnZpY2UgbmFtZSBmb3IgdHJhY2VzICovXG4gIHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuICAvKiogRW5hYmxlIGF1dG8taW5zdHJ1bWVudGF0aW9uICovXG4gIGF1dG9JbnN0cnVtZW50PzogYm9vbGVhbjtcbiAgLyoqIEZyYW1ld29ya3MgdG8gYXV0by1pbnN0cnVtZW50ICovXG4gIGZyYW1ld29ya3M/OiBGcmFtZXdvcmtbXTtcbiAgLyoqIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nICovXG4gIGRlYnVnPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRnJhbWV3b3JrID1cbiAgfCAnbGFuZ2NoYWluJ1xuICB8ICdsYW5nZ3JhcGgnXG4gIHwgJ29wZW5haSdcbiAgfCAnb3BlbmFpLWFzc2lzdGFudHMnXG4gIHwgJ2FudGhyb3BpYydcbiAgfCAnbGxhbWFpbmRleCdcbiAgfCAnbjhuJ1xuICB8ICd2b2ljZWZsb3cnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSVU4gT1BUSU9OUyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBydW4gKHYzIGF0b21pYyB1bml0KVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bk9wdGlvbnMge1xuICAvKiogQWdlbnQgSUQgKi9cbiAgYWdlbnRJZDogc3RyaW5nO1xuICAvKiogV2hlbiB0aGUgcnVuIHN0YXJ0ZWQgKi9cbiAgc3RhcnRlZEF0Pzogc3RyaW5nIHwgRGF0ZTtcbiAgLyoqIFdoZW4gdGhlIHJ1biBlbmRlZCAqL1xuICBlbmRlZEF0Pzogc3RyaW5nIHwgRGF0ZTtcbiAgLyoqIFJ1biBvdXRjb21lICovXG4gIG91dGNvbWU/OiBSdW5PdXRjb21lO1xuICAvKiogUmVhc29uIGZvciB0aGUgb3V0Y29tZSAqL1xuICBvdXRjb21lUmVhc29uPzogc3RyaW5nO1xuICAvKiogQ29udmVyc2F0aW9uIG1lc3NhZ2VzICovXG4gIGNvbnZlcnNhdGlvbk1lc3NhZ2VzOiBDb252ZXJzYXRpb25NZXNzYWdlW107XG4gIC8qKiBNb2RlbCBJRCB1c2VkICovXG4gIG1vZGVsSWQ/OiBzdHJpbmc7XG4gIC8qKiBQcm9tcHQgdmVyc2lvbiAqL1xuICBwcm9tcHRWZXJzaW9uPzogc3RyaW5nO1xuICAvKiogU2Vzc2lvbiBJRCBmb3IgY29udmVyc2F0aW9uIHRyYWNraW5nICovXG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgLyoqIEN1c3RvbWVyIGNvbnRleHQgc25hcHNob3QgKEFSUiwgaGVhbHRoIEFTIE9GIHRoaXMgcnVuKSAqL1xuICBjdXN0b21lckNvbnRleHQ/OiBDdXN0b21lckNvbnRleHRTbmFwc2hvdDtcbiAgLyoqIFRpY2tldCBsaW5raW5nIG9wdGlvbnMgKi9cbiAgdGlja2V0TGlua2luZz86IFRpY2tldExpbmtpbmdPcHRpb25zO1xuICAvKiogQ3VzdG9tIG1ldGFkYXRhICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKlxuICAgKiBDdXN0b20gYnVzaW5lc3MgbWV0cmljcyB0byByZWNvcmQgd2l0aCB0aGlzIHJ1bi5cbiAgICogS2V5cyBzaG91bGQgbWF0Y2ggbWV0cmljcyBkZWNsYXJlZCBkdXJpbmcgYWdlbnQgc2V0dXAgKG9uYm9hcmRpbmcpLlxuICAgKiBWYWx1ZXMgY2FuIGJlIG51bWJlcnMsIGJvb2xlYW5zLCBvciBzaG9ydCBzdHJpbmdzIChtYXggMTAwIGNoYXJzKS5cbiAgICpcbiAgICogTWV0cmljcyBhcmUgYWdncmVnYXRlZCBvdmVyIHRpbWUgZm9yIGRhc2hib2FyZCBkaXNwbGF5IGFuZCB0cmVuZCBhbmFseXNpcy5cbiAgICogVW5kZWNsYXJlZCBtZXRyaWNzIHdpbGwgYmUgdHJhY2tlZCBidXQgZmxhZ2dlZCBhcyBcImRpc2NvdmVyZWRcIiBtZXRyaWNzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBtZXRyaWNzOiB7XG4gICAqICAgY3VzdG9tZXJfc2F0aXNmYWN0aW9uOiA0LjUsXG4gICAqICAgcmVzb2x1dGlvbl90aW1lX21zOiAyNDUwLFxuICAgKiAgIGVzY2FsYXRlZDogZmFsc2UsXG4gICAqICAgdGlja2V0X3ByaW9yaXR5OiAnaGlnaCdcbiAgICogfVxuICAgKi9cbiAgbWV0cmljcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmc+O1xuICAvKipcbiAgICogUmVxdWVzdCBldmFsdWF0aW9uIHdoZW4gcnVuIGlzIGluZ2VzdGVkLlxuICAgKiBPdmVycmlkZXMgYWdlbnQncyBhdXRvX2V2YWx1YXRlIHNldHRpbmcgZm9yIHRoaXMgcnVuLlxuICAgKlxuICAgKiAtIHRydWU6IEZvcmNlIGV2YWx1YXRpb24gb24gdGhpcyBydW5cbiAgICogLSBmYWxzZTogU2tpcCBldmFsdWF0aW9uIGV2ZW4gaWYgYWdlbnQgaGFzIGF1dG9fZXZhbHVhdGUgZW5hYmxlZFxuICAgKiAtIHVuZGVmaW5lZDogVXNlIGFnZW50J3MgYXV0b19ldmFsdWF0ZSBzZXR0aW5nIChkZWZhdWx0KVxuICAgKi9cbiAgcnVuRXZhbHVhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFJ1bk91dGNvbWUgPVxuICB8ICdyZXNvbHZlZCdcbiAgfCAnZXNjYWxhdGVkJ1xuICB8ICdhYmFuZG9uZWQnXG4gIHwgJ2ZhaWxlZCdcbiAgfCAndHJhbnNmZXJyZWQnXG4gIHwgJ3BlbmRpbmcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbk1lc3NhZ2Uge1xuICByb2xlOiAndXNlcicgfCAnYXNzaXN0YW50JyB8ICdzeXN0ZW0nIHwgJ3Rvb2wnO1xuICBjb250ZW50OiBzdHJpbmc7XG4gIHRpbWVzdGFtcD86IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ1VTVE9NRVIgQ09OVEVYVCBTTkFQU0hPVCAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3VzdG9tZXIgY29udGV4dCBjYXB0dXJlZCBBUyBPRiB0aGUgcnVuIHRpbWUgKG5vdCBjdXJyZW50IHZhbHVlcylcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckNvbnRleHRTbmFwc2hvdCB7XG4gIC8qKiBDdXN0b21lciBhY2NvdW50IElEICovXG4gIGN1c3RvbWVySWQ/OiBzdHJpbmc7XG4gIC8qKiBBUlIgYXQgdGhlIHRpbWUgb2YgdGhlIHJ1biAobm90IGN1cnJlbnQgQVJSKSAqL1xuICBhcnI/OiBudW1iZXI7XG4gIC8qKiBIZWFsdGggc2NvcmUgYXQgdGhlIHRpbWUgb2YgdGhlIHJ1biAoMC0xMDApICovXG4gIGhlYWx0aFNjb3JlPzogbnVtYmVyO1xuICAvKiogQ3VzdG9tZXIgc2VnbWVudCAoZS5nLiwgJ2VudGVycHJpc2UnLCAnbWlkLW1hcmtldCcsICdzbWInKSAqL1xuICBzZWdtZW50Pzogc3RyaW5nO1xuICAvKiogV2hlbiB0aGlzIHNuYXBzaG90IHdhcyBjYXB0dXJlZCAqL1xuICBjYXB0dXJlZEF0Pzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkcyAod2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBzY2hlbWEpICovXG4gIGN1c3RvbUZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUSUNLRVQgTElOS0lORyAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZGV0ZXJtaW5pc3RpYyB0aWNrZXQgbGlua2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpY2tldExpbmtpbmdPcHRpb25zIHtcbiAgLyoqIExpbmsgbWV0aG9kIHRvIHVzZSAqL1xuICBtZXRob2Q6IExpbmtNZXRob2Q7XG4gIC8qKiBUaWNrZXQgSUQgKGZvciBzZGtfZXhwbGljaXQgbWV0aG9kKSAqL1xuICB0aWNrZXRJZD86IHN0cmluZztcbiAgLyoqIEV4dGVybmFsIHRpY2tldCBJRCAoZS5nLiwgWmVuZGVzayB0aWNrZXQgSUQpICovXG4gIGV4dGVybmFsVGlja2V0SWQ/OiBzdHJpbmc7XG4gIC8qKiBQbGF0Zm9ybSBmb3IgZXh0ZXJuYWwgdGlja2V0ICovXG4gIHBsYXRmb3JtPzogJ3plbmRlc2snIHwgJ2ludGVyY29tJyB8ICdzYWxlc2ZvcmNlJyB8ICdmcmVzaGRlc2snO1xuICAvKiogQ3VzdG9tIGZpZWxkIG5hbWUgZm9yIGxpbmtpbmcgKi9cbiAgY3VzdG9tRmllbGROYW1lPzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkIHZhbHVlICovXG4gIGN1c3RvbUZpZWxkVmFsdWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIExpbmtNZXRob2QgPVxuICB8ICdzZGtfZXhwbGljaXQnICAgICAgLy8gRGlyZWN0IFNESyBjYWxsIHdpdGggdGlja2V0IElEIChjb25maWRlbmNlOiAxLjApXG4gIHwgJ3plbmRlc2tfbWFya2VyJyAgICAvLyBFbWJlZGRlZCBUSElEIG1hcmtlciBpbiByZXNwb25zZSAoY29uZmlkZW5jZTogMS4wKVxuICB8ICdjdXN0b21fZmllbGQnICAgICAgLy8gWmVuZGVzayBjdXN0b20gZmllbGQgKGNvbmZpZGVuY2U6IDEuMClcbiAgfCAnbWlkZGxld2FyZV9zdGFtcCcgIC8vIE1pZGRsZXdhcmUtaW5qZWN0ZWQgdHJhY2UgSUQgKGNvbmZpZGVuY2U6IDAuOTgpXG4gIHwgJ3Nlc3Npb25fbWF0Y2gnICAgICAvLyBTZXNzaW9uIElEIGNvcnJlbGF0aW9uIChjb25maWRlbmNlOiAwLjk1KVxuICB8ICdlbWFpbF90aW1lX3dpbmRvdycgLy8gRW1haWwgKyAxNW1pbiB3aW5kb3cgKGNvbmZpZGVuY2U6IDAuNilcbiAgfCAnbWFudWFsJzsgICAgICAgICAgIC8vIEh1bWFuLWFzc2lnbmVkIChjb25maWRlbmNlOiAxLjApXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRSQUNFIE9QVElPTlMgKHYyIGNvbXBhdGliaWxpdHkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gZmxhZ3MgZm9yIGNhdGVnb3JpemluZyB0cmFjZSBpc3N1ZXNcbiAqIFNlcGFyYXRlIGZyb20gYmluYXJ5IG91dGNvbWUgKHN1Y2Nlc3MvZmFpbHVyZSlcbiAqL1xuZXhwb3J0IHR5cGUgVHJhY2VDdXN0b21GbGFnID1cbiAgfCAnaGFsbHVjaW5hdGlvbidcbiAgfCAncG9saWN5X3Zpb2xhdGlvbidcbiAgfCAndG9uZV9pc3N1ZSdcbiAgfCAncmV0cmlldmFsX21pc3MnXG4gIHwgJ2Vycm9yJztcblxuLyoqXG4gKiBUcmFjZSBvcHRpb25zICh2MiBmb3JtYXQsIGNvbnZlcnRlZCB0byBydW5zIGludGVybmFsbHkpXG4gKiBAZGVwcmVjYXRlZCBVc2UgUnVuT3B0aW9ucyBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2VPcHRpb25zIHtcbiAgLyoqIFVzZXIncyBtZXNzYWdlL3F1ZXJ5ICovXG4gIHVzZXJNZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBBZ2VudCdzIHJlc3BvbnNlICovXG4gIGFnZW50UmVzcG9uc2U6IHN0cmluZztcbiAgLyoqIFVzZXIncyBkZXRlY3RlZCBpbnRlbnQgKi9cbiAgdXNlckludGVudD86IHN0cmluZztcbiAgLyoqIEJpbmFyeSBvdXRjb21lOiBzdWNjZXNzIG9yIGZhaWx1cmUgKi9cbiAgb3V0Y29tZT86ICdzdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgLyoqIENsYXNzaWZpY2F0aW9uIGZsYWdzIGZvciBjYXRlZ29yaXppbmcgdGhlIGlzc3VlIHR5cGUgKGhhbGx1Y2luYXRpb24sIHBvbGljeV92aW9sYXRpb24sIGV0Yy4pICovXG4gIGN1c3RvbUZsYWdzPzogVHJhY2VDdXN0b21GbGFnW107XG4gIC8qKiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMgKi9cbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIC8qKiBTZXNzaW9uIElEIGZvciBjb252ZXJzYXRpb24gdHJhY2tpbmcgKi9cbiAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICAvKiogQ29udmVyc2F0aW9uIGhpc3RvcnkgKi9cbiAgY29udmVyc2F0aW9uSGlzdG9yeT86IEFycmF5PHsgcm9sZTogc3RyaW5nOyBjb250ZW50OiBzdHJpbmcgfT47XG4gIC8qKiBTcGFuIGRhdGEgZm9yIGRldGFpbGVkIGFuYWx5c2lzICovXG4gIHNwYW5zPzogU3BhbkRhdGFbXTtcbiAgLyoqIEJ1c2luZXNzIGNvbnRleHQgZm9yIFJPSSBjYWxjdWxhdGlvbiAqL1xuICBidXNpbmVzc0NvbnRleHQ/OiBCdXNpbmVzc0NvbnRleHQ7XG4gIC8qKiBDdXN0b20gbWV0YWRhdGEgKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIEN1c3RvbSBidXNpbmVzcyBtZXRyaWNzIHRvIHJlY29yZCB3aXRoIHRoaXMgdHJhY2UuXG4gICAqIEtleXMgc2hvdWxkIG1hdGNoIG1ldHJpY3MgZGVjbGFyZWQgZHVyaW5nIGFnZW50IHNldHVwLlxuICAgKiBWYWx1ZXMgY2FuIGJlIG51bWJlcnMsIGJvb2xlYW5zLCBvciBzaG9ydCBzdHJpbmdzLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBtZXRyaWNzOiB7XG4gICAqICAgY3VzdG9tZXJfc2F0aXNmYWN0aW9uOiA0LjUsXG4gICAqICAgcmVzb2x1dGlvbl90aW1lX21zOiAyNDUwLFxuICAgKiAgIGVzY2FsYXRlZDogZmFsc2VcbiAgICogfVxuICAgKi9cbiAgbWV0cmljcz86IFJlY29yZDxzdHJpbmcsIG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmc+O1xuICAvKipcbiAgICogUmVxdWVzdCBldmFsdWF0aW9uIHdoZW4gdHJhY2UgaXMgaW5nZXN0ZWQuXG4gICAqIE92ZXJyaWRlcyBhZ2VudCdzIGF1dG9fZXZhbHVhdGUgc2V0dGluZyBmb3IgdGhpcyB0cmFjZS5cbiAgICpcbiAgICogLSB0cnVlOiBGb3JjZSBldmFsdWF0aW9uIG9uIHRoaXMgdHJhY2VcbiAgICogLSBmYWxzZTogU2tpcCBldmFsdWF0aW9uIGV2ZW4gaWYgYWdlbnQgaGFzIGF1dG9fZXZhbHVhdGUgZW5hYmxlZFxuICAgKiAtIHVuZGVmaW5lZDogVXNlIGFnZW50J3MgYXV0b19ldmFsdWF0ZSBzZXR0aW5nIChkZWZhdWx0KVxuICAgKi9cbiAgcnVuRXZhbHVhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkRhdGEge1xuICBpZD86IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiAnbGxtJyB8ICd0b29sJyB8ICdyZXRyaWV2YWwnIHwgJ2VtYmVkZGluZycgfCAnY2hhaW4nIHwgJ2N1c3RvbSc7XG4gIHN0YXJ0VGltZT86IERhdGU7XG4gIGVuZFRpbWU/OiBEYXRlO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICBzdGF0dXM/OiAnb2snIHwgJ2Vycm9yJyB8ICd0aW1lb3V0JztcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGlucHV0PzogdW5rbm93bjtcbiAgb3V0cHV0PzogdW5rbm93bjtcbiAgLy8gTExNLXNwZWNpZmljXG4gIG1vZGVsPzogc3RyaW5nO1xuICBwcm92aWRlcj86IHN0cmluZztcbiAgcHJvbXB0VG9rZW5zPzogbnVtYmVyO1xuICBjb21wbGV0aW9uVG9rZW5zPzogbnVtYmVyO1xuICAvLyBUb29sLXNwZWNpZmljXG4gIHRvb2xOYW1lPzogc3RyaW5nO1xuICB0b29sUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvLyBSZXRyaWV2YWwtc3BlY2lmaWNcbiAgcXVlcnk/OiBzdHJpbmc7XG4gIGRvY3VtZW50Q291bnQ/OiBudW1iZXI7XG4gIHRvcFNjb3JlPzogbnVtYmVyO1xuICBzb3VyY2VzPzogc3RyaW5nW107XG4gIC8vIENoaWxkcmVuXG4gIGNoaWxkcmVuPzogU3BhbkRhdGFbXTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQ3VzdG9tZXJDb250ZXh0U25hcHNob3QgaW5zdGVhZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzQ29udGV4dCB7XG4gIC8qKiBDdXN0b21lciBJRCAqL1xuICBjdXN0b21lcklkPzogc3RyaW5nO1xuICAvKiogVHJhbnNhY3Rpb24gdmFsdWUgaW4gZG9sbGFycyAqL1xuICB0cmFuc2FjdGlvblZhbHVlPzogbnVtYmVyO1xuICAvKiogUHJpb3JpdHkgbGV2ZWwgKi9cbiAgcHJpb3JpdHk/OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbiAgLyoqIERlcGFydG1lbnQgKi9cbiAgZGVwYXJ0bWVudD86IHN0cmluZztcbiAgLyoqIEluZHVzdHJ5IHZlcnRpY2FsICovXG4gIGluZHVzdHJ5Pzogc3RyaW5nO1xuICAvKiogQ3VzdG9tIGZpZWxkcyAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ0xBSU0gVFlQRVMgKHYzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEEgY2xhaW0gYWJvdXQgYSBydW4gKGZhY3QgdnMgaW5mZXJlbmNlKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYWltIHtcbiAgaWQ6IHN0cmluZztcbiAgYW5hbHlzaXNJZDogc3RyaW5nO1xuICAvKiogVHlwZSBvZiBjbGFpbSAqL1xuICBjbGFpbVR5cGU6IENsYWltVHlwZTtcbiAgLyoqIENhdGVnb3J5IG9mIHRoZSBjbGFpbSAqL1xuICBjbGFpbUNhdGVnb3J5OiBDbGFpbUNhdGVnb3J5O1xuICAvKiogVGhlIGNsYWltIHRleHQgKi9cbiAgY2xhaW1UZXh0OiBzdHJpbmc7XG4gIC8qKiBDb25maWRlbmNlIGluIHRoaXMgY2xhaW0gKDAtMSkgKi9cbiAgY29uZmlkZW5jZTogbnVtYmVyO1xuICAvKiogSG93IHdlbGwgY2FsaWJyYXRlZCBpcyB0aGlzIGNvbmZpZGVuY2UgKi9cbiAgY29uZmlkZW5jZUNhbGlicmF0aW9uOiBDb25maWRlbmNlQ2FsaWJyYXRpb247XG4gIC8qKiBFdmlkZW5jZSBzdXBwb3J0aW5nIHRoaXMgY2xhaW0gKi9cbiAgZXZpZGVuY2U6IEV2aWRlbmNlUmVmZXJlbmNlW107XG4gIC8qKiBJcyB0aGlzIGNsYWltIGV4cGxhaW5hYmxlIHRvIGVuZCB1c2VycyAqL1xuICBpc0V4cGxhaW5hYmxlOiBib29sZWFuO1xuICAvKiogUHJvYmFiaWxpdHkgdmFsdWUgZm9yIHByb2JhYmlsaXR5IGNsYWltcyAqL1xuICBwcm9iYWJpbGl0eVZhbHVlPzogbnVtYmVyO1xuICAvKiogSHVtYW4tYXNzaWduZWQgdmVyaWZpY2F0aW9uIHN0YXR1cyAqL1xuICBodW1hblZlcmlmaWVkPzogYm9vbGVhbjtcbiAgLyoqIEh1bWFuIHZlcmlmaWNhdGlvbiB2ZXJkaWN0ICovXG4gIGh1bWFuVmVyZGljdD86ICdjb25maXJtZWQnIHwgJ3JlamVjdGVkJyB8ICdtb2RpZmllZCc7XG4gIGNyZWF0ZWRBdD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ2xhaW1UeXBlID0gJ29ic2VydmVkJyB8ICdpbmZlcnJlZCcgfCAnY29tcHV0ZWQnO1xuZXhwb3J0IHR5cGUgQ2xhaW1DYXRlZ29yeSA9XG4gIHwgJ291dGNvbWUnXG4gIHwgJ3Jvb3RfY2F1c2UnXG4gIHwgJ3NlbnRpbWVudCdcbiAgfCAnY2h1cm5fcmlzaydcbiAgfCAnZXNjYWxhdGlvbl9yaXNrJ1xuICB8ICdzYXRpc2ZhY3Rpb24nXG4gIHwgJ3JlY29udGFjdCdcbiAgfCAncmVzb2x1dGlvbl90aW1lJ1xuICB8ICdjb3N0J1xuICB8ICdxdWFsaXR5J1xuICB8ICdjb21wbGlhbmNlJ1xuICB8ICdvdGhlcic7XG5leHBvcnQgdHlwZSBDb25maWRlbmNlQ2FsaWJyYXRpb24gPSAnY2FsaWJyYXRlZCcgfCAndW5jYWxpYnJhdGVkJyB8ICdydWxlX2Jhc2VkJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmlkZW5jZVJlZmVyZW5jZSB7XG4gIC8qKiBUeXBlIG9mIGV2aWRlbmNlICovXG4gIHR5cGU6ICdzcGFuJyB8ICdtZXNzYWdlJyB8ICd0b29sX2NhbGwnIHwgJ3JldHJpZXZhbCcgfCAncGF0dGVybicgfCAnbWV0cmljJyB8ICdleHRlcm5hbCc7XG4gIC8qKiBJRCBvZiB0aGUgcmVmZXJlbmNlZCBpdGVtICovXG4gIHJlZmVyZW5jZUlkOiBzdHJpbmc7XG4gIC8qKiBIb3cgcmVsZXZhbnQgaXMgdGhpcyBldmlkZW5jZSAqL1xuICByZWxldmFuY2U6IHN0cmluZztcbiAgLyoqIENvbmZpZGVuY2UgaW4gdGhpcyBldmlkZW5jZSAqL1xuICBjb25maWRlbmNlOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFOQUxZU0lTIFJFU1VMVCAodjMpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHlzaXNSZXN1bHQge1xuICBpZDogc3RyaW5nO1xuICBydW5JZDogc3RyaW5nO1xuICBhbmFseXNpc1ZlcnNpb246IHN0cmluZztcbiAgbW9kZWxVc2VkOiBzdHJpbmc7XG4gIC8qKiBPdmVyYWxsIG91dGNvbWUgdmVyZGljdCAqL1xuICBvdXRjb21lVmVyZGljdDogJ3N1Y2Nlc3MnIHwgJ3BhcnRpYWxfc3VjY2VzcycgfCAnZmFpbHVyZSc7XG4gIC8qKiBDb25maWRlbmNlIGluIHRoZSB2ZXJkaWN0ICgwLTEpICovXG4gIG91dGNvbWVDb25maWRlbmNlOiBudW1iZXI7XG4gIC8qKiBSb290IGNhdXNlIGNhdGVnb3J5IGlmIGZhaWx1cmUgKi9cbiAgcm9vdENhdXNlQ2F0ZWdvcnk/OiBzdHJpbmc7XG4gIC8qKiBDb25maWRlbmNlIGluIHJvb3QgY2F1c2UgKDAtMSkgKi9cbiAgcm9vdENhdXNlQ29uZmlkZW5jZT86IG51bWJlcjtcbiAgLyoqIElzIHRoaXMgdGhlIGN1cnJlbnQgYW5hbHlzaXMgKi9cbiAgaXNDdXJyZW50OiBib29sZWFuO1xuICAvKiogSUQgb2YgYW5hbHlzaXMgdGhhdCBzdXBlcnNlZGVkIHRoaXMgb25lICovXG4gIHN1cGVyc2VkZWRCeT86IHN0cmluZztcbiAgLyoqIENsYWltcyBmcm9tIHRoaXMgYW5hbHlzaXMgKi9cbiAgY2xhaW1zOiBDbGFpbVtdO1xuICBhbmFseXplZEF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENBTElCUkFUSU9OIFRZUEVTICh2Mylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBDYWxpYnJhdGlvblN0YXR1cyB7XG4gIGFnZW50SWQ6IHN0cmluZztcbiAgcHJlZGljdGlvblR5cGU6IFByZWRpY3Rpb25UeXBlO1xuICAvKiogQnJpZXIgc2NvcmUgKGxvd2VyIGlzIGJldHRlciwgPDAuMSBpcyBnb29kKSAqL1xuICBicmllclNjb3JlOiBudW1iZXI7XG4gIC8qKiBFeHBlY3RlZCBDYWxpYnJhdGlvbiBFcnJvciAqL1xuICBlY2U6IG51bWJlcjtcbiAgLyoqIFNhbXBsZSBjb3VudCAqL1xuICBzYW1wbGVDb3VudDogbnVtYmVyO1xuICAvKiogSXMgdGhlIG1vZGVsIHdlbGwtY2FsaWJyYXRlZCAqL1xuICBpc0NhbGlicmF0ZWQ6IGJvb2xlYW47XG4gIC8qKiBDYWxpYnJhdGlvbiBieSBjb25maWRlbmNlIGJ1Y2tldCAqL1xuICBidWNrZXRzOiBDYWxpYnJhdGlvbkJ1Y2tldFtdO1xuICBsYXN0VXBkYXRlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUHJlZGljdGlvblR5cGUgPVxuICB8ICdvdXRjb21lJ1xuICB8ICdjaHVybl9yaXNrJ1xuICB8ICdlc2NhbGF0aW9uX3Jpc2snXG4gIHwgJ3Jlc29sdXRpb25fdGltZSdcbiAgfCAnY3VzdG9tZXJfc2F0aXNmYWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDYWxpYnJhdGlvbkJ1Y2tldCB7XG4gIGJ1Y2tldFN0YXJ0OiBudW1iZXI7XG4gIGJ1Y2tldEVuZDogbnVtYmVyO1xuICBwcmVkaWN0ZWRQcm9iYWJpbGl0eTogbnVtYmVyO1xuICBhY3R1YWxGcmVxdWVuY3k6IG51bWJlcjtcbiAgc2FtcGxlQ291bnQ6IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUk9JIFRZUEVTICh2Mylcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBSb2lDb25maWcge1xuICAvKiogQ29zdCBwZXIgc3VwcG9ydCB0aWNrZXQgZGVmbGVjdGVkICovXG4gIHRpY2tldERlZmxlY3Rpb25WYWx1ZTogbnVtYmVyO1xuICAvKiogQ29zdCBwZXIgZXNjYWxhdGlvbiAqL1xuICBlc2NhbGF0aW9uQ29zdDogbnVtYmVyO1xuICAvKiogQ29zdCBwZXIgaG91ciBvZiBhZ2VudCB0aW1lICovXG4gIGFnZW50SG91cmx5Q29zdDogbnVtYmVyO1xuICAvKiogQXZlcmFnZSByZXNvbHV0aW9uIHRpbWUgKG1pbnV0ZXMpICovXG4gIGF2Z1Jlc29sdXRpb25NaW51dGVzOiBudW1iZXI7XG4gIC8qKiBDU0FUIGltcGFjdCBtdWx0aXBsaWVyICovXG4gIGNzYXRJbXBhY3RNdWx0aXBsaWVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm9pU3VtbWFyeSB7XG4gIHBlcmlvZDogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfTtcbiAgLyoqIFRvdGFsIGVzdGltYXRlZCBzYXZpbmdzICovXG4gIHRvdGFsU2F2aW5nczogbnVtYmVyO1xuICAvKiogQnJlYWtkb3duIGJ5IGNhdGVnb3J5ICovXG4gIGJyZWFrZG93bjoge1xuICAgIHRpY2tldERlZmxlY3Rpb246IG51bWJlcjtcbiAgICBlc2NhbGF0aW9uUHJldmVudGlvbjogbnVtYmVyO1xuICAgIHRpbWVUb1Jlc29sdXRpb246IG51bWJlcjtcbiAgICBjaHVyblByZXZlbnRpb246IG51bWJlcjtcbiAgfTtcbiAgLyoqIENvbmZpZGVuY2UgaW4gdGhlc2UgZXN0aW1hdGVzICovXG4gIGNvbmZpZGVuY2U6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCc7XG4gIC8qKiBNZXRob2RvbG9neSB1c2VkICovXG4gIG1ldGhvZG9sb2d5OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVYUExBSU5BQklMSVRZIFJFU1VMVCAodjIgY29tcGF0aWJpbGl0eSlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgQW5hbHlzaXNSZXN1bHQgaW5zdGVhZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5hYmlsaXR5UmVzdWx0IHtcbiAgdHJhY2VJZDogc3RyaW5nO1xuICBleHBsYWluYWJpbGl0eUlkOiBzdHJpbmc7XG4gIHN1bW1hcnk6IHN0cmluZztcbiAgb3V0Y29tZToge1xuICAgIHZlcmRpY3Q6ICdzdWNjZXNzJyB8ICdwYXJ0aWFsX3N1Y2Nlc3MnIHwgJ2ZhaWx1cmUnO1xuICAgIGNvbmZpZGVuY2U6IG51bWJlcjtcbiAgICByZWFzb25pbmc6IHN0cmluZztcbiAgfTtcbiAgYnVzaW5lc3NJbXBhY3Q6IHtcbiAgICBpbXBhY3RTY29yZTogbnVtYmVyO1xuICAgIGN1c3RvbWVyU2F0aXNmYWN0aW9uOiBudW1iZXI7XG4gICAgcmV2ZW51ZVJpc2s6IHN0cmluZztcbiAgfTtcbiAgcmVjb21tZW5kYXRpb25zOiBBcnJheTx7XG4gICAgcHJpb3JpdHk6IHN0cmluZztcbiAgICBjYXRlZ29yeTogc3RyaW5nO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIGV4cGVjdGVkSW1wYWN0OiBzdHJpbmc7XG4gIH0+O1xuICByYWdFdmFsdWF0aW9uPzoge1xuICAgIGdyb3VuZGVkbmVzczogbnVtYmVyO1xuICAgIGZhaXRoZnVsbmVzczogbnVtYmVyO1xuICAgIGFuc3dlclJlbGV2YW5jZTogbnVtYmVyO1xuICB9O1xuICBoYWxsdWNpbmF0aW9uUmVwb3J0Pzoge1xuICAgIGRldGVjdGVkOiBib29sZWFuO1xuICAgIHR5cGVzOiBzdHJpbmdbXTtcbiAgICBzZXZlcml0eTogc3RyaW5nO1xuICB9O1xuICBwcm9jZXNzaW5nVGltZU1zOiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFQSSBSRVNQT05TRSBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlPFQ+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZGF0YT86IFQ7XG4gIGVycm9yPzoge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgZGV0YWlscz86IHVua25vd247XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGVkUmVzcG9uc2U8VD4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBkYXRhOiB7XG4gICAgaXRlbXM6IFRbXTtcbiAgICBsaW1pdDogbnVtYmVyO1xuICAgIG9mZnNldDogbnVtYmVyO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBjb21wYW55SWQ6IHN0cmluZztcbiAgYWdlbnRJZDogc3RyaW5nO1xuICB0aWNrZXRJZD86IHN0cmluZztcbiAgY3VzdG9tZXJBY2NvdW50SWQ/OiBzdHJpbmc7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmc7XG4gIGVuZGVkQXQ/OiBzdHJpbmc7XG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIG91dGNvbWU/OiBSdW5PdXRjb21lO1xuICBvdXRjb21lUmVhc29uPzogc3RyaW5nO1xuICBjb252ZXJzYXRpb25NZXNzYWdlczogQ29udmVyc2F0aW9uTWVzc2FnZVtdO1xuICBtb2RlbElkPzogc3RyaW5nO1xuICBwcm9tcHRWZXJzaW9uPzogc3RyaW5nO1xuICBjdXN0b21lckNvbnRleHRTbmFwc2hvdD86IEN1c3RvbWVyQ29udGV4dFNuYXBzaG90O1xuICB6ZW5kZXNrTWFya2VyPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG4iXX0=
|
package/dist/index.d.ts
CHANGED
|
@@ -692,7 +692,11 @@ declare const _default: {
|
|
|
692
692
|
};
|
|
693
693
|
}>;
|
|
694
694
|
calculateV3(options: {
|
|
695
|
-
agentId
|
|
695
|
+
agentId
|
|
696
|
+
/**
|
|
697
|
+
* Trace an LLM call
|
|
698
|
+
*/
|
|
699
|
+
?: string;
|
|
696
700
|
startDate: string | Date;
|
|
697
701
|
endDate: string | Date;
|
|
698
702
|
configurationVersion?: number;
|
package/dist/index.js
CHANGED
|
@@ -237,7 +237,7 @@ function init(options = {}) {
|
|
|
237
237
|
headers: exporterHeaders,
|
|
238
238
|
});
|
|
239
239
|
// Create OpenTelemetry resource
|
|
240
|
-
const resource = resources_1.
|
|
240
|
+
const resource = (0, resources_1.defaultResource)().merge((0, resources_1.resourceFromAttributes)({
|
|
241
241
|
'service.name': config.serviceName,
|
|
242
242
|
'thinkhive.sdk.version': config_1.SDK_VERSION,
|
|
243
243
|
'thinkhive.sdk.language': 'typescript',
|
|
@@ -679,4 +679,4 @@ exports.default = {
|
|
|
679
679
|
// LLM Costs helpers
|
|
680
680
|
formatLLMCost: llm_costs_1.formatCost,
|
|
681
681
|
};
|
|
682
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRzs7Ozs7QUE4Ykgsb0JBeURDO0FBS0QsOEJBS0M7QUFLRCw0QkFRQztBQVNELDRCQXVDQztBQUtELHdDQXVDQztBQUtELDhCQXFDQztBQUtELGdDQW1DQztBQTFyQkQsNENBQW9FO0FBQ3BFLHdGQUE2RTtBQUM3RSx3REFBb0Q7QUFDcEQsa0VBQW1FO0FBQ25FLGtFQUFtRTtBQUVuRSxPQUFPO0FBQ1AsMENBUXVCO0FBdTdCZCw4RkE1N0JQLHNCQUFhLE9BNDdCTztBQUFFLDRGQXo3QnRCLG9CQUFXLE9BeTdCc0I7QUFBRSxpR0F4N0JuQyx5QkFBZ0IsT0F3N0JtQztBQXQ3QnJELDBDQVN1QjtBQWtrQ3JCLCtGQXprQ0EsdUJBQWMsT0F5a0NBO0FBQ2Qsa0dBemtDQSwwQkFBaUIsT0F5a0NBO0FBQ2pCLHlHQXprQ0EsaUNBQXdCLE9BeWtDQTtBQUN4QixzR0F6a0NBLDhCQUFxQixPQXlrQ0E7QUFDckIsZ0dBemtDQSx3QkFBZSxPQXlrQ0E7QUFDZiwrRkF6a0NBLHVCQUFjLE9BeWtDQTtBQUNkLGlHQXprQ0EseUJBQWdCLE9BeWtDQTtBQXRrQ2xCLGNBQWM7QUFDZCxxQ0FBOEY7QUE4NkI1RixxRkE5NkJPLFdBQUksT0E4NkJQO0FBc0NKLHFHQXA5QmEsMkJBQW9CLE9BbzlCYjtBQUNwQixpR0FyOUJtQyx1QkFBZ0IsT0FxOUJuQztBQUNoQixtR0F0OUJxRCx5QkFBa0IsT0FzOUJyRDtBQXI5QnBCLHlDQVFzQjtBQXM2QnBCLHVGQTc2QkEsZUFBTSxPQTY2QkE7QUF5Q04sdUZBcjlCQSxlQUFNLE9BcTlCQTtBQUNOLDRGQXI5QkEsb0JBQVcsT0FxOUJBO0FBQ1gsMkZBcjlCQSxtQkFBVSxPQXE5QkE7QUFDVix3R0FyOUJBLGdDQUF1QixPQXE5QkE7QUFDdkIsa0dBcjlCQSwwQkFBaUIs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QVIsZ0JBQVE7SUFDUixnQkFBZ0IsRUFBaEIsd0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixhQUFhLEVBQWIsc0JBQWE7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHY0LjEuMFxuICpcbiAqIFJ1bi1jZW50cmljIEFJIGFnZW50IG9ic2VydmFiaWxpdHkgcGxhdGZvcm0gd2l0aDpcbiAqIC0gRmFjdHMgdnMgSW5mZXJlbmNlcyAoY2xhaW1zIEFQSSlcbiAqIC0gRGV0ZXJtaW5pc3RpYyB0aWNrZXQgbGlua2luZyAoNyBtZXRob2RzKVxuICogLSBDdXN0b21lciBjb250ZXh0IHNuYXBzaG90cyAodGltZS1zZXJpZXMpXG4gKiAtIENhbGlicmF0ZWQgcHJlZGljdGlvbnMgKEJyaWVyIHNjb3JlcylcbiAqIC0gQ29uZmlndXJhYmxlIFJPSSBjYWxjdWxhdGlvbiBlbmdpbmVcbiAqXG4gKiBAdmVyc2lvbiA0LjEuMFxuICogQGxpY2Vuc2UgTUlUXG4gKi9cblxuaW1wb3J0IHsgdHJhY2UsIGNvbnRleHQsIFNwYW5TdGF0dXNDb2RlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1wcm90byc7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Jlc291cmNlcyc7XG5pbXBvcnQgeyBOb2RlVHJhY2VyUHJvdmlkZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstdHJhY2Utbm9kZSc7XG5pbXBvcnQgeyBCYXRjaFNwYW5Qcm9jZXNzb3IgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9zZGstdHJhY2UtYmFzZSc7XG5cbi8vIENvcmVcbmltcG9ydCB7XG4gIGluaXRDb25maWcsXG4gIGdldENvbmZpZyxcbiAgaXNJbml0aWFsaXplZCxcbiAgcmVzZXRDb25maWcsXG4gIGRlYnVnTG9nLFxuICBTREtfVkVSU0lPTixcbiAgREVGQVVMVF9FTkRQT0lOVCxcbn0gZnJvbSAnLi9jb3JlL2NvbmZpZyc7XG5pbXBvcnQge1xuICBhcGlSZXF1ZXN0V2l0aERhdGEsXG4gIFRoaW5rSGl2ZUVycm9yLFxuICBUaGlua0hpdmVBcGlFcnJvcixcbiAgVGhpbmtIaXZlVmFsaWRhdGlvbkVycm9yLFxuICBQZXJtaXNzaW9uRGVuaWVkRXJyb3IsXG4gIEFnZW50U2NvcGVFcnJvcixcbiAgUmF0ZUxpbWl0RXJyb3IsXG4gIElwV2hpdGVsaXN0RXJyb3IsXG59IGZyb20gJy4vY29yZS9jbGllbnQnO1xuXG4vLyBBUEkgY2xpZW50c1xuaW1wb3J0IHsgcnVucywgY3JlYXRlUnVuV2l0aENvbnRleHQsIHRvT3BlbkFJTWVzc2FnZXMsIGZyb21PcGVuQUlNZXNzYWdlcyB9IGZyb20gJy4vYXBpL3J1bnMnO1xuaW1wb3J0IHtcbiAgY2xhaW1zLFxuICBpc0ZhY3QsXG4gIGlzSW5mZXJlbmNlLFxuICBpc0NvbXB1dGVkLFxuICBnZXRIaWdoQ29uZmlkZW5jZUNsYWltcyxcbiAgZ3JvdXBDbGFpbXNCeVR5cGUsXG4gIGdyb3VwQ2xhaW1zQnlDYXRlZ29yeSxcbn0gZnJvbSAnLi9hcGkvY2xhaW1zJztcbmltcG9ydCB7XG4gIGNhbGlicmF0aW9uLFxuICBjYWxjdWxhdGVCcmllclNjb3JlLFxuICBjYWxjdWxhdGVFQ0UsXG4gIGlzV2VsbENhbGlicmF0ZWQsXG4gIGdldENhbGlicmF0aW9uUXVhbGl0eSxcbn0gZnJvbSAnLi9hcGkvY2FsaWJyYXRpb24nO1xuXG4vLyBOZXcgRXZhbHVhdGlvbiBBUElzXG5pbXBvcnQgeyBodW1hblJldmlldyB9IGZyb20gJy4vYXBpL2h1bWFuLXJldmlldyc7XG5pbXBvcnQge1xuICBub25kZXRlcm1pbmlzbSxcbiAgY2FsY3VsYXRlUGFzc0F0SyxcbiAgY2FsY3VsYXRlUGFzc1RvSyxcbiAgcmVxdWlyZWRQYXNzUmF0ZUZvclBhc3NBdEssXG4gIGlzUmVsaWFibGVFdmFsdWF0aW9uLFxuICBnZXRSZWxpYWJpbGl0eVJlY29tbWVuZGF0aW9uLFxufSBmcm9tICcuL2FwaS9ub25kZXRlcm1pbmlzbSc7XG5pbXBvcnQge1xuICBldmFsSGVhbHRoLFxuICBoYXNIZWFsdGhJc3N1ZSxcbiAgZ2V0U2V2ZXJpdHlMZXZlbCBhcyBnZXRIZWFsdGhTZXZlcml0eUxldmVsLFxuICBpc1NhdHVyYXRlZCxcbiAgZ2V0U2F0dXJhdGlvblJlY29tbWVuZGF0aW9uLFxufSBmcm9tICcuL2FwaS9ldmFsLWhlYWx0aCc7XG5pbXBvcnQge1xuICBkZXRlcm1pbmlzdGljR3JhZGVycyxcbiAgY3JlYXRlUmVnZXhSdWxlLFxuICBjcmVhdGVDb250YWluc1J1bGUsXG4gIGNyZWF0ZUxlbmd0aFJ1bGUsXG4gIGNyZWF0ZUpzb25TY2hlbWFSdWxlLFxuICBhbGxSdWxlc1Bhc3NlZCxcbiAgZ2V0RmFpbGVkUnVsZXMsXG4gIGNhbGN1bGF0ZUF2ZXJhZ2VTY29yZSxcbn0gZnJvbSAnLi9hcGkvZGV0ZXJtaW5pc3RpYy1ncmFkZXJzJztcbmltcG9ydCB7XG4gIGNvbnZlcnNhdGlvbkV2YWwsXG4gIGFnZ3JlZ2F0ZVdvcnN0LFxuICBhZ2dyZWdhdGVBdmVyYWdlLFxuICBhZ2dyZWdhdGVXZWlnaHRlZCxcbiAgYWdncmVnYXRlRmluYWxUdXJuLFxuICBhZ2dyZWdhdGVNYWpvcml0eSxcbiAgZ2V0QWdncmVnYXRvcixcbiAgZ2V0UHJvYmxlbWF0aWNUdXJucyxcbiAgYW5hbHl6ZUNvbnZlcnNhdGlvblRyZW5kLFxufSBmcm9tICcuL2FwaS9jb252ZXJzYXRpb24tZXZhbCc7XG5pbXBvcnQge1xuICB0cmFuc2NyaXB0UGF0dGVybnMsXG4gIGlzSGlnaFJpc2ssXG4gIGdldE1hdGNoZXNCeUNhdGVnb3J5LFxuICBnZXRDcml0aWNhbEluc2lnaHRzLFxuICBoYXNQaWlFeHBvc3VyZSxcbiAgaGFzRnJ1c3RyYXRpb25TaWduYWxzLFxuICBoYXNFc2NhbGF0aW9uUmVxdWVzdCxcbiAgZ2V0Q2F0ZWdvcnlEaXN0cmlidXRpb24sXG4gIGdldFJlY29tbWVuZGF0aW9ucyxcbiAgbmVlZHNBdHRlbnRpb24sXG4gIHNvcnRNYXRjaGVzQnlTZXZlcml0eSxcbn0gZnJvbSAnLi9hcGkvdHJhbnNjcmlwdC1wYXR0ZXJucyc7XG5cbi8vIEFnZW50cyBNYW5hZ2VtZW50XG5pbXBvcnQge1xuICBhZ2VudHMsXG59IGZyb20gJy4vYXBpL2FnZW50cyc7XG5cbi8vIEV2YWwgUnVuc1xuaW1wb3J0IHsgZXZhbFJ1bnMgfSBmcm9tICcuL2FwaS9ldmFsLXJ1bnMnO1xuXG4vLyBTaWduYWxzXG5pbXBvcnQgeyBzaWduYWxzIH0gZnJvbSAnLi9hcGkvc2lnbmFscyc7XG5cbi8vIE5vdGlmaWNhdGlvbnNcbmltcG9ydCB7IG5vdGlmaWNhdGlvbnMgfSBmcm9tICcuL2FwaS9ub3RpZmljYXRpb25zJztcblxuLy8gRG9jdW1lbnRzXG5pbXBvcnQgeyBkb2N1bWVudHMgfSBmcm9tICcuL2FwaS9kb2N1bWVudHMnO1xuXG4vLyBTaGFkb3cgVGVzdHNcbmltcG9ydCB7IHNoYWRvd1Rlc3RzIH0gZnJvbSAnLi9hcGkvc2hhZG93LXRlc3RzJztcblxuLy8gU2Vzc2lvbnNcbmltcG9ydCB7IHNlc3Npb25zIH0gZnJvbSAnLi9hcGkvc2Vzc2lvbnMnO1xuXG4vLyBEcmlmdFxuaW1wb3J0IHsgZHJpZnQsIGhhc0RyaWZ0LCBnZXREcmlmdFNldmVyaXR5IH0gZnJvbSAnLi9hcGkvZHJpZnQnO1xuXG4vLyBMTE0gQ29zdHNcbmltcG9ydCB7IGxsbUNvc3RzLCBmb3JtYXRDb3N0IGFzIGZvcm1hdExMTUNvc3QgfSBmcm9tICcuL2FwaS9sbG0tY29zdHMnO1xuXG4vLyBHdWFyZHJhaWxzXG5pbXBvcnQgeyBndWFyZHJhaWxzIH0gZnJvbSAnLi9ndWFyZHJhaWxzJztcblxuLy8gQVBJIEtleSBNYW5hZ2VtZW50IChQaGFzZSAyIFNlY3VyaXR5KVxuaW1wb3J0IHtcbiAgYXBpS2V5cyxcbiAgaGFzUGVybWlzc2lvbixcbiAgaXNFeHBpcmVkIGFzIGlzQXBpS2V5RXhwaXJlZCxcbiAgaXNWYWxpZCBhcyBpc0FwaUtleVZhbGlkLFxuICBnZXRUaW1lVW50aWxFeHBpcnksXG4gIGNhbkFjY2Vzc0FnZW50LFxufSBmcm9tICcuL2FwaS9hcGlLZXlzJztcblxuLy8gUk9JIEFuYWx5dGljcyBBUElcbmltcG9ydCB7XG4gIHJvaUFuYWx5dGljcyxcbiAgY2FsY3VsYXRlUmV2ZW51ZUF0UmlzayxcbiAgY2FsY3VsYXRlQXV0b21hdGlvblNhdmluZ3MsXG4gIGZvcm1hdEN1cnJlbmN5LFxuICBnZXRST0lRdWFsaXR5LFxufSBmcm9tICcuL2FwaS9yb2ktYW5hbHl0aWNzJztcblxuLy8gQnVzaW5lc3MgTWV0cmljcyBBUElcbmltcG9ydCB7XG4gIGJ1c2luZXNzTWV0cmljcyxcbiAgaXNNZXRyaWNSZWFkeSxcbiAgbmVlZHNNb3JlVHJhY2VzLFxuICBhd2FpdGluZ0V4dGVybmFsRGF0YSxcbiAgaXNNZXRyaWNTdGFsZSxcbiAgZ2V0U3RhdHVzTWVzc2FnZSxcbiAgZ2V0VHJhY2VQcm9ncmVzcyxcbiAgZm9ybWF0TWV0cmljVmFsdWUsXG4gIGdldFRyZW5kRW1vamksXG59IGZyb20gJy4vYXBpL2J1c2luZXNzLW1ldHJpY3MnO1xuXG4vLyBRdWFsaXR5IE1ldHJpY3MgQVBJXG5pbXBvcnQge1xuICBxdWFsaXR5TWV0cmljcyxcbiAgcGFzc2VzUXVhbGl0eVRocmVzaG9sZCxcbiAgaXNIYWxsdWNpbmF0aW9uUmlza0FjY2VwdGFibGUsXG4gIGdldFF1YWxpdHlSZWNvbW1lbmRhdGlvbnMsXG4gIGZvcm1hdFF1YWxpdHlTY29yZSxcbiAgZ2V0R3JhZGVDb2xvcixcbn0gZnJvbSAnLi9hcGkvcXVhbGl0eS1tZXRyaWNzJztcblxuLy8gSW50ZWdyYXRpb25zXG5pbXBvcnQge1xuICBsaW5raW5nLFxuICBnZW5lcmF0ZVplbmRlc2tNYXJrZXIsXG4gIHBhcnNlWmVuZGVza01hcmtlcixcbiAgaGFzWmVuZGVza01hcmtlcixcbiAgcmVtb3ZlWmVuZGVza01hcmtlcixcbiAgbGlua1J1blRvVGlja2V0LFxuICBsaW5rUnVuVG9aZW5kZXNrVGlja2V0LFxuICBnZXRCZXN0TGlua01ldGhvZCxcbiAgTElOS19NRVRIT0RfQ09ORklERU5DRSxcbn0gZnJvbSAnLi9pbnRlZ3JhdGlvbnMvdGlja2V0LWxpbmtpbmcnO1xuaW1wb3J0IHtcbiAgY3VzdG9tZXJDb250ZXh0LFxuICBjYXB0dXJlQ3VzdG9tZXJDb250ZXh0LFxuICBnZXRDb250ZXh0QXNPZixcbiAgdG9Db250ZXh0U25hcHNob3QsXG4gIGNhbGN1bGF0ZUFyckNoYW5nZSxcbiAgY2FsY3VsYXRlSGVhbHRoVHJlbmQsXG59IGZyb20gJy4vaW50ZWdyYXRpb25zL2N1c3RvbWVyLWNvbnRleHQnO1xuXG4vLyBSZS1leHBvcnQgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgSW5pdE9wdGlvbnMsXG4gIEZyYW1ld29yayxcbiAgUnVuT3B0aW9ucyxcbiAgUnVuT3V0Y29tZSxcbiAgQ29udmVyc2F0aW9uTWVzc2FnZSxcbiAgQ3VzdG9tZXJDb250ZXh0U25hcHNob3QsXG4gIFRpY2tldExpbmtpbmdPcHRpb25zLFxuICBMaW5rTWV0aG9kLFxuICBUcmFjZU9wdGlvbnMsXG4gIFRyYWNlQ3VzdG9tRmxhZyxcbiAgU3BhbkRhdGEsXG4gIEJ1c2luZXNzQ29udGV4dCxcbiAgQ2xhaW0sXG4gIENsYWltVHlwZSxcbiAgQ2xhaW1DYXRlZ29yeSxcbiAgQ29uZmlkZW5jZUNhbGlicmF0aW9uLFxuICBFdmlkZW5jZVJlZmVyZW5jZSxcbiAgQW5hbHlzaXNSZXN1bHQsXG4gIENhbGlicmF0aW9uU3RhdHVzLFxuICBDYWxpYnJhdGlvbkJ1Y2tldCxcbiAgUHJlZGljdGlvblR5cGUsXG4gIFJvaUNvbmZpZyxcbiAgUm9pU3VtbWFyeSxcbiAgRXhwbGFpbmFiaWxpdHlSZXN1bHQsXG4gIEFwaVJlc3BvbnNlLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbiAgUnVuUmVzcG9uc2UsXG59IGZyb20gJy4vY29yZS90eXBlcyc7XG5cbi8vIFJlLWV4cG9ydCBldmFsdWF0aW9uIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEh1bWFuUmV2aWV3U3RhdHVzLFxuICBIdW1hblJldmlld1R5cGUsXG4gIEh1bWFuUmV2aWV3UXVldWVJdGVtLFxuICBDYWxpYnJhdGlvblNldCxcbiAgUmV2aWV3ZXJDYWxpYnJhdGlvbixcbiAgUXVldWVTdGF0cyxcbn0gZnJvbSAnLi9hcGkvaHVtYW4tcmV2aWV3JztcblxuZXhwb3J0IHR5cGUge1xuICBOb25kZXRlcm1pbmlzbVJ1blR5cGUsXG4gIE5vbmRldGVybWluaXNtUnVuU3RhdHVzLFxuICBOb25kZXRlcm1pbmlzbVJ1bixcbiAgTm9uZGV0ZXJtaW5pc21TYW1wbGUsXG4gIFRyYWNlQW5hbHlzaXMsXG4gIENyaXRlcmlvbkFuYWx5c2lzLFxuICBSdW5TdW1tYXJ5LFxufSBmcm9tICcuL2FwaS9ub25kZXRlcm1pbmlzbSc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgU2F0dXJhdGlvblR5cGUsXG4gIEhlYWx0aFN0YXR1cyxcbiAgUmVncmVzc2lvblNldmVyaXR5LFxuICBFdmFsSGVhbHRoU25hcHNob3QsXG4gIEV2YWxSZWdyZXNzaW9uLFxuICBIZWFsdGhSZXBvcnQsXG59IGZyb20gJy4vYXBpL2V2YWwtaGVhbHRoJztcblxuZXhwb3J0IHR5cGUge1xuICBSdWxlVHlwZSxcbiAgRGV0ZXJtaW5pc3RpY0V2YWxSZXN1bHQsXG4gIFJ1bGVSZXN1bHQsXG4gIFJ1bGVUeXBlSW5mbyxcbiAgUnVsZVRlbXBsYXRlLFxufSBmcm9tICcuL2FwaS9kZXRlcm1pbmlzdGljLWdyYWRlcnMnO1xuXG5leHBvcnQgdHlwZSB7XG4gIEFnZ3JlZ2F0ZU1ldGhvZCxcbiAgU2Vzc2lvblRyYWNlLFxuICBUdXJuRXZhbHVhdGlvbixcbiAgQ29udmVyc2F0aW9uRXZhbFJlc3VsdCxcbiAgQWdncmVnYXRpb25NZXRob2RJbmZvLFxufSBmcm9tICcuL2FwaS9jb252ZXJzYXRpb24tZXZhbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUGF0dGVybkNhdGVnb3J5LFxuICBQYXR0ZXJuT3V0Y29tZSxcbiAgUGF0dGVyblNldmVyaXR5LFxuICBQYXR0ZXJuTWF0Y2gsXG4gIFBhdHRlcm5JbnNpZ2h0LFxuICBBbmFseXNpc1Jlc3VsdCBhcyBQYXR0ZXJuQW5hbHlzaXNSZXN1bHQsXG4gIFBhdHRlcm5DYXRlZ29yeUluZm8sXG4gIEJ1aWx0SW5QYXR0ZXJuLFxufSBmcm9tICcuL2FwaS90cmFuc2NyaXB0LXBhdHRlcm5zJztcblxuLy8gUmUtZXhwb3J0IEFQSSBLZXkgdHlwZXMgKFBoYXNlIDIgU2VjdXJpdHkpXG5leHBvcnQgdHlwZSB7XG4gIEFwaUtleVBlcm1pc3Npb25zLFxuICBTY29wZVR5cGUsXG4gIEVudmlyb25tZW50LFxuICBDcmVhdGVBcGlLZXlPcHRpb25zLFxuICBBcGlLZXksXG4gIENyZWF0ZUFwaUtleVJlc3VsdCxcbn0gZnJvbSAnLi9hcGkvYXBpS2V5cyc7XG5cbi8vIFJlLWV4cG9ydCBST0kgQW5hbHl0aWNzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEluZHVzdHJ5Q29uZmlnLFxuICBDdXN0b21JbmR1c3RyeUNvbmZpZyxcbiAgUk9JTWV0cmljcyxcbiAgQnVzaW5lc3NJbXBhY3QsXG4gIFJPSVN1bW1hcnksXG4gIFRyZW5kRGF0YVBvaW50LFxuICBDb3JyZWxhdGlvbixcbiAgUGF0dGVybkNsdXN0ZXIsXG4gIENvcnJlbGF0aW9uQW5hbHlzaXMsXG59IGZyb20gJy4vYXBpL3JvaS1hbmFseXRpY3MnO1xuXG4vLyBSZS1leHBvcnQgUXVhbGl0eSBNZXRyaWNzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIFJldHJpZXZlZENvbnRleHQsXG4gIEdyb3VuZFRydXRoQ29udGV4dCxcbiAgR3JvdW5kZWRTcGFuLFxuICBVbmdyb3VuZGVkU3BhbixcbiAgQ2l0YXRpb25NYXAsXG4gIFJBR0V2YWx1YXRpb24sXG4gIFJBR0V2aWRlbmNlLFxuICBIYWxsdWNpbmF0aW9uSW5zdGFuY2UsXG4gIEhhbGx1Y2luYXRpb25SZXBvcnQsXG4gIEdyb3VuZGVkbmVzc1Jlc3VsdCxcbiAgQmF0Y2hFdmFsdWF0aW9uUmVzdWx0LFxuICBCYXRjaEV2YWx1YXRpb25TdW1tYXJ5LFxufSBmcm9tICcuL2FwaS9xdWFsaXR5LW1ldHJpY3MnO1xuXG4vLyBSZS1leHBvcnQgQnVzaW5lc3MgTWV0cmljcyB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBNZXRyaWNUcmVuZCxcbiAgTWV0cmljU3RhdHVzLFxuICBDdXJyZW50TWV0cmljUmVzcG9uc2UsXG4gIE1ldHJpY0hpc3RvcnlQb2ludCxcbiAgTWV0cmljSGlzdG9yeVN1bW1hcnksXG4gIE1ldHJpY0hpc3RvcnlSZXNwb25zZSxcbiAgUmVjb3JkTWV0cmljT3B0aW9ucyxcbiAgUmVjb3JkTWV0cmljUmVzcG9uc2UsXG59IGZyb20gJy4vYXBpL2J1c2luZXNzLW1ldHJpY3MnO1xuXG4vLyBSZS1leHBvcnQgQWdlbnQgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQWdlbnQsXG4gIENyZWF0ZUFnZW50T3B0aW9ucyxcbiAgVXBkYXRlQWdlbnRPcHRpb25zLFxuICBBZ2VudENvbmZpZyxcbiAgVXBkYXRlQWdlbnRDb25maWdPcHRpb25zLFxuICBEZWxldGVBZ2VudE9wdGlvbnMsXG4gIENhc2NhZGVJbXBhY3QsXG59IGZyb20gJy4vYXBpL2FnZW50cyc7XG5cbi8vIFJlLWV4cG9ydCBFdmFsIFJ1bnMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQ3JlYXRlRXZhbFJ1bk9wdGlvbnMsXG4gIEdldEV2YWxSdW5SZXN1bHRzT3B0aW9ucyxcbiAgTGlzdEV2YWxSdW5zT3B0aW9ucyxcbiAgRXN0aW1hdGVDb3N0T3B0aW9ucyxcbiAgR2V0VHJhY2VSZXN1bHRzT3B0aW9ucyxcbiAgRXZhbFJ1bixcbiAgRXZhbFJlc3VsdCxcbiAgRXZhbENvc3RFc3RpbWF0ZSxcbn0gZnJvbSAnLi9hcGkvZXZhbC1ydW5zJztcblxuLy8gUmUtZXhwb3J0IFNpZ25hbHMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgRGV0ZWN0aW9uQ29uZmlnLFxuICBDcmVhdGVTaWduYWxPcHRpb25zLFxuICBVcGRhdGVTaWduYWxPcHRpb25zLFxuICBMaXN0U2lnbmFsc09wdGlvbnMsXG4gIFNpZ25hbFN0YXRzT3B0aW9ucyxcbiAgU2lnbmFsVHJlbmRzT3B0aW9ucyxcbiAgU2lnbmFsVHJhY2VzT3B0aW9ucyxcbiAgU2lnbmFsRXZlbnRzT3B0aW9ucyxcbiAgU2lnbmFsLFxuICBTaWduYWxTdGF0cyxcbiAgU2lnbmFsVHJlbmRQb2ludCxcbiAgU2lnbmFsRXZlbnQsXG59IGZyb20gJy4vYXBpL3NpZ25hbHMnO1xuXG4vLyBSZS1leHBvcnQgTm90aWZpY2F0aW9ucyB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBOb3RpZmljYXRpb25SdWxlLFxuICBDcmVhdGVOb3RpZmljYXRpb25SdWxlRGF0YSxcbiAgVXBkYXRlTm90aWZpY2F0aW9uUnVsZURhdGEsXG4gIE5vdGlmaWNhdGlvbixcbn0gZnJvbSAnLi9hcGkvbm90aWZpY2F0aW9ucyc7XG5cbi8vIFJlLWV4cG9ydCBEb2N1bWVudHMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgRG9jdW1lbnQsXG4gIERvY3VtZW50VXBsb2FkUmVzcG9uc2UsXG59IGZyb20gJy4vYXBpL2RvY3VtZW50cyc7XG5cbi8vIFJlLWV4cG9ydCBTaGFkb3cgVGVzdHMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgQ3JlYXRlU2hhZG93VGVzdERhdGEsXG4gIFVwZGF0ZVNoYWRvd1Rlc3REYXRhLFxuICBTaGFkb3dUZXN0LFxufSBmcm9tICcuL2FwaS9zaGFkb3ctdGVzdHMnO1xuXG4vLyBSZS1leHBvcnQgU2Vzc2lvbnMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgTGlzdFNlc3Npb25zT3B0aW9ucyxcbiAgU2Vzc2lvbixcbiAgU2Vzc2lvblRyYWNlIGFzIFNlc3Npb25UcmFjZVJlY29yZCxcbn0gZnJvbSAnLi9hcGkvc2Vzc2lvbnMnO1xuXG4vLyBSZS1leHBvcnQgRHJpZnQgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgRGV0ZWN0RHJpZnRPcHRpb25zLFxuICBEcmlmdFJlcG9ydCxcbiAgRHJpZnREaW1lbnNpb24sXG4gIERldGVjdEFsbFJlc3VsdCxcbn0gZnJvbSAnLi9hcGkvZHJpZnQnO1xuXG4vLyBSZS1leHBvcnQgTExNIENvc3RzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIENvc3RRdWVyeU9wdGlvbnMsXG4gIENvc3RTdW1tYXJ5LFxuICBDb3N0QnJlYWtkb3duSXRlbSxcbiAgQWdlbnRDb3N0QnJlYWtkb3duLFxuICBDb3N0U2F2aW5ncyxcbiAgT3B0aW1pemF0aW9uRW50cnksXG4gIE9wdGltaXphdGlvblN0YXRzLFxuICBPcHRpbWl6YXRpb25SZWNvbW1lbmRhdGlvbixcbn0gZnJvbSAnLi9hcGkvbGxtLWNvc3RzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR0xPQkFMIFNUQVRFXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmxldCB0cmFjZXI6IFJldHVyblR5cGU8dHlwZW9mIHRyYWNlLmdldFRyYWNlcj4gfCBudWxsID0gbnVsbDtcbmxldCBwcm92aWRlcjogTm9kZVRyYWNlclByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIElOSVRJQUxJWkFUSU9OXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBUaGlua0hpdmUgU0RLIHYzXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGluaXQgfSBmcm9tICdAdGhpbmtoaXZlL3Nkayc7XG4gKlxuICogaW5pdCh7XG4gKiAgIGFwaUtleTogJ3RoX3lvdXJfYXBpX2tleScsXG4gKiAgIHNlcnZpY2VOYW1lOiAnbXktYWktYWdlbnQnLFxuICogICBhdXRvSW5zdHJ1bWVudDogdHJ1ZSxcbiAqICAgZnJhbWV3b3JrczogWydsYW5nY2hhaW4nLCAnb3BlbmFpJ10sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdChvcHRpb25zOiBpbXBvcnQoJy4vY29yZS90eXBlcycpLkluaXRPcHRpb25zID0ge30pOiB2b2lkIHtcbiAgaWYgKGlzSW5pdGlhbGl6ZWQoKSkge1xuICAgIGRlYnVnTG9nKCdUaGlua0hpdmUgU0RLIGFscmVhZHkgaW5pdGlhbGl6ZWQnKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjb25maWcgPSBpbml0Q29uZmlnKG9wdGlvbnMpO1xuXG4gIC8vIENvbmZpZ3VyZSBPVExQIGV4cG9ydGVyXG4gIGNvbnN0IGV4cG9ydGVySGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBpZiAoY29uZmlnLmFwaUtleSkge1xuICAgIGV4cG9ydGVySGVhZGVyc1snQXV0aG9yaXphdGlvbiddID0gYEJlYXJlciAke2NvbmZpZy5hcGlLZXl9YDtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnT1RMUCB0cmFjaW5nIHJlcXVpcmVzIGFuIEFQSSBrZXkuIEFnZW50IElEIGFsb25lIGlzIG5vdCBzdWZmaWNpZW50IGZvciBPVExQIGluZ2VzdGlvbi4gJyArXG4gICAgICAnUHJvdmlkZSBhcGlLZXkgaW4gaW5pdCgpIG9yIHNldCB0aGUgVEhJTktISVZFX0FQSV9LRVkgZW52aXJvbm1lbnQgdmFyaWFibGUuJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCBvdGxwVXJsID0gY29uZmlnLmVuZHBvaW50LnJlcGxhY2UoL1xcLyskLywgJycpICsgJy92MS90cmFjZXMnO1xuICBjb25zdCBleHBvcnRlciA9IG5ldyBPVExQVHJhY2VFeHBvcnRlcih7XG4gICAgdXJsOiBvdGxwVXJsLFxuICAgIGhlYWRlcnM6IGV4cG9ydGVySGVhZGVycyxcbiAgfSk7XG5cbiAgLy8gQ3JlYXRlIE9wZW5UZWxlbWV0cnkgcmVzb3VyY2VcbiAgY29uc3QgcmVzb3VyY2UgPSBSZXNvdXJjZS5kZWZhdWx0KCkubWVyZ2UoXG4gICAgbmV3IFJlc291cmNlKHtcbiAgICAgICdzZXJ2aWNlLm5hbWUnOiBjb25maWcuc2VydmljZU5hbWUsXG4gICAgICAndGhpbmtoaXZlLnNkay52ZXJzaW9uJzogU0RLX1ZFUlNJT04sXG4gICAgICAndGhpbmtoaXZlLnNkay5sYW5ndWFnZSc6ICd0eXBlc2NyaXB0JyxcbiAgICB9KVxuICApO1xuXG4gIC8vIENyZWF0ZSBwcm92aWRlciB3aXRoIHNwYW4gcHJvY2Vzc29yXG4gIHByb3ZpZGVyID0gbmV3IE5vZGVUcmFjZXJQcm92aWRlcih7XG4gICAgcmVzb3VyY2UsXG4gICAgc3BhblByb2Nlc3NvcnM6IFtuZXcgQmF0Y2hTcGFuUHJvY2Vzc29yKGV4cG9ydGVyKV0sXG4gIH0pO1xuXG4gIC8vIFJlZ2lzdGVyIHByb3ZpZGVyXG4gIHByb3ZpZGVyLnJlZ2lzdGVyKCk7XG5cbiAgLy8gR2V0IHRyYWNlclxuICB0cmFjZXIgPSB0cmFjZS5nZXRUcmFjZXIoJ3RoaW5raGl2ZScsIFNES19WRVJTSU9OKTtcblxuICBpZiAoY29uZmlnLmRlYnVnKSB7XG4gICAgY29uc29sZS5sb2coYOKchSBUaGlua0hpdmUgU0RLIHYke1NES19WRVJTSU9OfSBpbml0aWFsaXplZGApO1xuICAgIGNvbnNvbGUubG9nKGAgICBFbmRwb2ludDogJHtjb25maWcuZW5kcG9pbnR9YCk7XG4gICAgY29uc29sZS5sb2coYCAgIFNlcnZpY2U6ICR7Y29uZmlnLnNlcnZpY2VOYW1lfWApO1xuICAgIGNvbnNvbGUubG9nKGAgICBBdXRvLWluc3RydW1lbnQ6ICR7Y29uZmlnLmF1dG9JbnN0cnVtZW50fWApO1xuICB9XG5cbiAgLy8gU2V0dXAgYXV0by1pbnN0cnVtZW50YXRpb24gaWYgZW5hYmxlZFxuICBpZiAoY29uZmlnLmF1dG9JbnN0cnVtZW50KSB7XG4gICAgc2V0dXBBdXRvSW5zdHJ1bWVudGF0aW9uKGNvbmZpZy5mcmFtZXdvcmtzKTtcbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgZ2xvYmFsIHRyYWNlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhY2VyKCkge1xuICBpZiAoIXRyYWNlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignVGhpbmtIaXZlIFNESyBub3QgaW5pdGlhbGl6ZWQuIENhbGwgaW5pdCgpIGZpcnN0LicpO1xuICB9XG4gIHJldHVybiB0cmFjZXI7XG59XG5cbi8qKlxuICogU2h1dGRvd24gdGhlIFNESyBhbmQgZmx1c2ggcGVuZGluZyBzcGFuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChwcm92aWRlcikge1xuICAgIGF3YWl0IHByb3ZpZGVyLnNodXRkb3duKCk7XG4gICAgcHJvdmlkZXIgPSBudWxsO1xuICB9XG4gIHRyYWNlciA9IG51bGw7XG4gIHJlc2V0Q29uZmlnKCk7XG4gIGRlYnVnTG9nKCdUaGlua0hpdmUgU0RLIHNodXRkb3duIGNvbXBsZXRlJyk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRSQUNJTkcgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVHJhY2UgYW4gTExNIGNhbGxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlTExNPFQ+KFxuICBvcHRpb25zOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIG1vZGVsTmFtZT86IHN0cmluZztcbiAgICBwcm92aWRlcj86IHN0cmluZztcbiAgICBpbnB1dD86IHVua25vd247XG4gIH0sXG4gIGZuOiAoKSA9PiBQcm9taXNlPFQ+XG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgdCA9IGdldFRyYWNlcigpO1xuXG4gIHJldHVybiB0LnN0YXJ0QWN0aXZlU3BhbihcbiAgICBvcHRpb25zLm5hbWUsXG4gICAge1xuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAnb3BlbmluZmVyZW5jZS5zcGFuLmtpbmQnOiAnTExNJyxcbiAgICAgICAgJ2xsbS5tb2RlbF9uYW1lJzogb3B0aW9ucy5tb2RlbE5hbWUsXG4gICAgICAgICdsbG0ucHJvdmlkZXInOiBvcHRpb25zLnByb3ZpZGVyLFxuICAgICAgICAnaW5wdXQudmFsdWUnOiBvcHRpb25zLmlucHV0ID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5pbnB1dCkuc3Vic3RyaW5nKDAsIDEwMDAwKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhc3luYyAoc3BhbikgPT4ge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKCk7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdvdXRwdXQudmFsdWUnLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpLnN1YnN0cmluZygwLCAxMDAwMCkpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLk9LIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZSB9KTtcbiAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdkdXJhdGlvbl9tcycsIERhdGUubm93KCkgLSBzdGFydFRpbWUpO1xuICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cblxuLyoqXG4gKiBUcmFjZSBhIHJldHJpZXZhbCBvcGVyYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYWNlUmV0cmlldmFsPFQ+KFxuICBvcHRpb25zOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHF1ZXJ5Pzogc3RyaW5nO1xuICAgIHRvcEs/OiBudW1iZXI7XG4gIH0sXG4gIGZuOiAoKSA9PiBQcm9taXNlPFQ+XG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgdCA9IGdldFRyYWNlcigpO1xuXG4gIHJldHVybiB0LnN0YXJ0QWN0aXZlU3BhbihcbiAgICBvcHRpb25zLm5hbWUsXG4gICAge1xuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAnb3BlbmluZmVyZW5jZS5zcGFuLmtpbmQnOiAnUkVUUklFVkVSJyxcbiAgICAgICAgJ3JldHJpZXZhbC5xdWVyeSc6IG9wdGlvbnMucXVlcnksXG4gICAgICAgICdyZXRyaWV2YWwudG9wX2snOiBvcHRpb25zLnRvcEssXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXN5bmMgKHNwYW4pID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ3JldHJpZXZhbC5kb2N1bWVudF9jb3VudCcsIHJlc3VsdC5sZW5ndGgpO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHsgY29kZTogU3BhblN0YXR1c0NvZGUuT0sgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLCBtZXNzYWdlIH0pO1xuICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnJvciBhcyBFcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2R1cmF0aW9uX21zJywgRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSk7XG4gICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICB9XG4gICAgfVxuICApO1xufVxuXG4vKipcbiAqIFRyYWNlIGEgdG9vbCBjYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVRvb2w8VD4oXG4gIG9wdGlvbnM6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdG9vbE5hbWU/OiBzdHJpbmc7XG4gICAgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9LFxuICBmbjogKCkgPT4gUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHQgPSBnZXRUcmFjZXIoKTtcblxuICByZXR1cm4gdC5zdGFydEFjdGl2ZVNwYW4oXG4gICAgb3B0aW9ucy50b29sTmFtZSB8fCBvcHRpb25zLm5hbWUsXG4gICAge1xuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAnb3BlbmluZmVyZW5jZS5zcGFuLmtpbmQnOiAnVE9PTCcsXG4gICAgICAgICd0b29sLm5hbWUnOiBvcHRpb25zLnRvb2xOYW1lIHx8IG9wdGlvbnMubmFtZSxcbiAgICAgICAgJ3Rvb2wucGFyYW1ldGVycyc6IG9wdGlvbnMucGFyYW1ldGVycyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMucGFyYW1ldGVycykgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXN5bmMgKHNwYW4pID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgndG9vbC5vdXRwdXQnLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpLnN1YnN0cmluZygwLCAxMDAwMCkpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLk9LIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZSB9KTtcbiAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdkdXJhdGlvbl9tcycsIERhdGUubm93KCkgLSBzdGFydFRpbWUpO1xuICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cblxuLyoqXG4gKiBUcmFjZSBhIGNoYWluL3dvcmtmbG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZUNoYWluPFQ+KFxuICBvcHRpb25zOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0PzogdW5rbm93bjtcbiAgfSxcbiAgZm46ICgpID0+IFByb21pc2U8VD5cbik6IFByb21pc2U8VD4ge1xuICBjb25zdCB0ID0gZ2V0VHJhY2VyKCk7XG5cbiAgcmV0dXJuIHQuc3RhcnRBY3RpdmVTcGFuKFxuICAgIG9wdGlvbnMubmFtZSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICdvcGVuaW5mZXJlbmNlLnNwYW4ua2luZCc6ICdDSEFJTicsXG4gICAgICAgICdpbnB1dC52YWx1ZSc6IG9wdGlvbnMuaW5wdXQgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zLmlucHV0KS5zdWJzdHJpbmcoMCwgMTAwMDApIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFzeW5jIChzcGFuKSA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ291dHB1dC52YWx1ZScsIEpTT04uc3RyaW5naWZ5KHJlc3VsdCkuc3Vic3RyaW5nKDAsIDEwMDAwKSk7XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHsgY29kZTogU3BhblN0YXR1c0NvZGUuT0sgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLCBtZXNzYWdlIH0pO1xuICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnJvciBhcyBFcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ2R1cmF0aW9uX21zJywgRGF0ZS5ub3coKSAtIHN0YXJ0VGltZSk7XG4gICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICB9XG4gICAgfVxuICApO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWMiBURVJNSU5PTE9HWSAtIElTU1VFUyBBUEkgKHJlcGxhY2VzIENhc2VzKVxuLy8gUGVyIElUSUwgYmVzdCBwcmFjdGljZXMsIFwiSXNzdWVzXCIgaXMgbW9yZSBjdXN0b21lci1mcmllbmRseSB0aGFuIFwiQ2FzZXNcIlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElzc3VlcyBBUEkgY2xpZW50XG4gKiBUaGlzIGlzIHRoZSByZWNvbW1lbmRlZCBBUEkgZm9yIG1hbmFnaW5nIGNsdXN0ZXJlZCBmYWlsdXJlIHBhdHRlcm5zXG4gKlxuICogQHNpbmNlIDMuMS4wXG4gKi9cbmV4cG9ydCBjb25zdCBpc3N1ZXMgPSB7XG4gIC8qKlxuICAgKiBMaXN0IGlzc3VlcyBmb3IgYW4gYWdlbnRcbiAgICovXG4gIGFzeW5jIGxpc3QoYWdlbnRJZDogc3RyaW5nLCBvcHRpb25zPzoge1xuICAgIHN0YXR1cz86IHN0cmluZztcbiAgICBzdGFydERhdGU/OiBEYXRlO1xuICAgIGVuZERhdGU/OiBEYXRlO1xuICAgIGxpbWl0PzogbnVtYmVyO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgfSk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgYWdlbnRJZCB9KTtcbiAgICBpZiAob3B0aW9ucz8uc3RhdHVzKSBwYXJhbXMuc2V0KCdzdGF0dXMnLCBvcHRpb25zLnN0YXR1cyk7XG4gICAgaWYgKG9wdGlvbnM/LnN0YXJ0RGF0ZSkgcGFyYW1zLnNldCgnc3RhcnREYXRlJywgb3B0aW9ucy5zdGFydERhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgaWYgKG9wdGlvbnM/LmVuZERhdGUpIHBhcmFtcy5zZXQoJ2VuZERhdGUnLCBvcHRpb25zLmVuZERhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgaWYgKG9wdGlvbnM/LmxpbWl0KSBwYXJhbXMuc2V0KCdsaW1pdCcsIG9wdGlvbnMubGltaXQudG9TdHJpbmcoKSk7XG4gICAgaWYgKG9wdGlvbnM/Lm9mZnNldCkgcGFyYW1zLnNldCgnb2Zmc2V0Jywgb3B0aW9ucy5vZmZzZXQudG9TdHJpbmcoKSk7XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YShgL2lzc3Vlcz8ke3BhcmFtc31gLCB7IGFwaVZlcnNpb246ICd2MicgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhIHNpbmdsZSBpc3N1ZSBieSBJRFxuICAgKi9cbiAgYXN5bmMgZ2V0KGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKGAvaXNzdWVzLyR7aWR9YCwgeyBhcGlWZXJzaW9uOiAndjInIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgYW55KS5kYXRhIHx8IHJlc3BvbnNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaXNzdWVcbiAgICovXG4gIGFzeW5jIGNyZWF0ZShkYXRhOiB7XG4gICAgYWdlbnRJZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIHNldmVyaXR5Pzogc3RyaW5nO1xuICAgIHBhdHRlcm4/OiBzdHJpbmc7XG4gICAgZXhhbXBsZVRyYWNlSWRzPzogc3RyaW5nW107XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKCcvaXNzdWVzJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgYXBpVmVyc2lvbjogJ3YyJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogVXBkYXRlIGFuIGlzc3VlXG4gICAqL1xuICBhc3luYyB1cGRhdGUoaWQ6IHN0cmluZywgZGF0YToge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHN0YXR1cz86IHN0cmluZztcbiAgICBzZXZlcml0eT86IHN0cmluZztcbiAgICBhc3NpZ25lZFRvPzogc3RyaW5nO1xuICAgIHJlc29sdXRpb25Ob3Rlcz86IHN0cmluZztcbiAgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlSZXF1ZXN0V2l0aERhdGEoYC9pc3N1ZXMvJHtpZH1gLCB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBib2R5OiBkYXRhLFxuICAgICAgYXBpVmVyc2lvbjogJ3YyJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGZpeGVzIGZvciBhbiBpc3N1ZVxuICAgKi9cbiAgYXN5bmMgZ2V0Rml4ZXMoaXNzdWVJZDogc3RyaW5nKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKGAvaXNzdWVzLyR7aXNzdWVJZH0vZml4ZXNgLCB7IGFwaVZlcnNpb246ICd2MicgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG59O1xuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFYyIFRFUk1JTk9MT0dZIC0gQU5BTFlaRVIgQVBJIChyZXBsYWNlcyBFeHBsYWluZXIgdXNlci1mYWNpbmcpXG4vLyBQZXIgaW5kdXN0cnkgZGlzdGluY3Rpb246IEFuYWx5emVyID0gcGF0dGVybiBkZXRlY3Rpb24vb2JzZXJ2YXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBbmFseXplciBBUEkgY2xpZW50XG4gKiBVc2VyLXNlbGVjdGVkIHRyYWNlIGFuYWx5c2lzIHdpdGggY29zdCBlc3RpbWF0aW9uIGFuZCBzbWFydCBzYW1wbGluZ1xuICpcbiAqIEtleSBpbXByb3ZlbWVudHMgb3ZlciB2MSBFeHBsYWluZXI6XG4gKiAtIFVzZXItc2VsZWN0ZWQgdHJhY2UgYW5hbHlzaXMgKG5vdCBhdXRvbWF0aWMpXG4gKiAtIENvc3QgZXN0aW1hdGlvbiBiZWZvcmUgZXhlY3V0aW9uXG4gKiAtIFNtYXJ0IHNhbXBsaW5nIHN0cmF0ZWdpZXNcbiAqIC0gUm9vdCBjYXVzZSBhbmFseXNpcyBieSBsYXllclxuICogLSBQYXR0ZXJuIGFnZ3JlZ2F0aW9uIGFjcm9zcyB0cmFjZXNcbiAqXG4gKiBAc2luY2UgMy4xLjBcbiAqL1xuZXhwb3J0IGNvbnN0IGFuYWx5emVyID0ge1xuICAvKipcbiAgICogQW5hbHl6ZSBzcGVjaWZpYyB0cmFjZXMgKHVzZXItc2VsZWN0ZWQpXG4gICAqL1xuICBhc3luYyBhbmFseXplKG9wdGlvbnM6IHtcbiAgICB0cmFjZUlkczogc3RyaW5nW107XG4gICAgdGllcj86ICdmYXN0JyB8ICdzdGFuZGFyZCcgfCAnZGVlcCc7XG4gICAgaW5jbHVkZVJvb3RDYXVzZT86IGJvb2xlYW47XG4gICAgaW5jbHVkZUxheWVycz86IGJvb2xlYW47XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgdHJhY2VJZHMsIHRpZXIsIGluY2x1ZGVSb290Q2F1c2UsIGluY2x1ZGVMYXllcnMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlSZXF1ZXN0V2l0aERhdGEoJy9hbmFseXplci9hbmFseXplJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHRyYWNlSWRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgdGllcixcbiAgICAgICAgICBpbmNsdWRlUm9vdENhdXNlLFxuICAgICAgICAgIGluY2x1ZGVMYXllcnMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogJ3YyJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogQW5hbHl6ZSB0cmFjZXMgYnkgdGltZSB3aW5kb3dcbiAgICovXG4gIGFzeW5jIGFuYWx5emVXaW5kb3cob3B0aW9uczoge1xuICAgIGFnZW50SWQ6IHN0cmluZztcbiAgICBzdGFydERhdGU6IERhdGU7XG4gICAgZW5kRGF0ZTogRGF0ZTtcbiAgICBmaWx0ZXJzPzoge1xuICAgICAgb3V0Y29tZXM/OiAoJ2ZhaWx1cmUnIHwgJ2Vycm9yJyB8ICdzdWNjZXNzJylbXTtcbiAgICAgIG1pblNldmVyaXR5PzogJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJyB8ICdjcml0aWNhbCc7XG4gICAgfTtcbiAgICBzYW1wbGluZz86IHtcbiAgICAgIHN0cmF0ZWd5OiAnYWxsJyB8ICdmYWlsdXJlc19vbmx5JyB8ICdzbWFydCcgfCAncmFuZG9tJztcbiAgICAgIHNhbXBsZVBlcmNlbnQ/OiBudW1iZXI7XG4gICAgfTtcbiAgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlSZXF1ZXN0V2l0aERhdGEoJy9hbmFseXplci9hbmFseXplLXdpbmRvdycsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzdGFydERhdGU6IG9wdGlvbnMuc3RhcnREYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGVuZERhdGU6IG9wdGlvbnMuZW5kRGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MicsXG4gICAgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEVzdGltYXRlIGNvc3QgYmVmb3JlIHJ1bm5pbmcgYW5hbHlzaXNcbiAgICovXG4gIGFzeW5jIGVzdGltYXRlQ29zdChvcHRpb25zOiB7XG4gICAgdHJhY2VJZHM/OiBzdHJpbmdbXTtcbiAgICBhZ2VudElkPzogc3RyaW5nO1xuICAgIHN0YXJ0RGF0ZT86IERhdGU7XG4gICAgZW5kRGF0ZT86IERhdGU7XG4gICAgdGllcjogJ2Zhc3QnIHwgJ3N0YW5kYXJkJyB8ICdkZWVwJztcbiAgfSk6IFByb21pc2U8e1xuICAgIGVzdGltYXRlZFRyYWNlczogbnVtYmVyO1xuICAgIGVzdGltYXRlZFRva2VuczogbnVtYmVyO1xuICAgIGVzdGltYXRlZENvc3Q6IG51bWJlcjtcbiAgICBlc3RpbWF0ZWRDcmVkaXRzOiBudW1iZXI7XG4gICAgdGllcjogc3RyaW5nO1xuICAgIG5vdGU6IHN0cmluZztcbiAgfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKCcvYW5hbHl6ZXIvZXN0aW1hdGUtY29zdCcsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzdGFydERhdGU6IG9wdGlvbnMuc3RhcnREYXRlPy50b0lTT1N0cmluZygpLFxuICAgICAgICBlbmREYXRlOiBvcHRpb25zLmVuZERhdGU/LnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogJ3YyJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogR2V0IGFuYWx5c2lzIHJlc3VsdHMgZm9yIGEgc3BlY2lmaWMgdHJhY2VcbiAgICovXG4gIGFzeW5jIGdldCh0cmFjZUlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKGAvYW5hbHl6ZXIvJHt0cmFjZUlkfWAsIHsgYXBpVmVyc2lvbjogJ3YyJyB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogQWdncmVnYXRlIGluc2lnaHRzIGFjcm9zcyBtdWx0aXBsZSBhbmFseXplZCB0cmFjZXNcbiAgICovXG4gIGFzeW5jIHN1bW1hcml6ZShvcHRpb25zOiB7XG4gICAgYW5hbHlzaXNJZHM/OiBzdHJpbmdbXTtcbiAgICBhZ2VudElkPzogc3RyaW5nO1xuICAgIHN0YXJ0RGF0ZT86IERhdGU7XG4gICAgZW5kRGF0ZT86IERhdGU7XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKCcvYW5hbHl6ZXIvc3VtbWFyaXplJywge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHN0YXJ0RGF0ZTogb3B0aW9ucy5zdGFydERhdGU/LnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGVuZERhdGU6IG9wdGlvbnMuZW5kRGF0ZT8udG9JU09TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uOiAndjInLFxuICAgIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgYW55KS5kYXRhIHx8IHJlc3BvbnNlO1xuICB9LFxufTtcblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUlOU1RSVU1FTlRBVElPTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBzZXR1cEF1dG9JbnN0cnVtZW50YXRpb24oXG4gIGZyYW1ld29ya3M6IGltcG9ydCgnLi9jb3JlL3R5cGVzJykuRnJhbWV3b3JrW11cbik6IHZvaWQge1xuICBkZWJ1Z0xvZyhgU2V0dGluZyB1cCBhdXRvLWluc3RydW1lbnRhdGlvbiBmb3I6ICR7ZnJhbWV3b3Jrcy5qb2luKCcsICcpfWApO1xuXG4gIGZvciAoY29uc3QgZnJhbWV3b3JrIG9mIGZyYW1ld29ya3MpIHtcbiAgICB0cnkge1xuICAgICAgc3dpdGNoIChmcmFtZXdvcmspIHtcbiAgICAgICAgY2FzZSAnb3BlbmFpJzpcbiAgICAgICAgY2FzZSAnb3BlbmFpLWFzc2lzdGFudHMnOlxuICAgICAgICAgIGRlYnVnTG9nKCdPcGVuQUkgaW5zdHJ1bWVudGF0aW9uIHJlYWR5ICh1c2UgaW5zdHJ1bWVudE9wZW5BSUNsaWVudCknKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGFuZ2NoYWluJzpcbiAgICAgICAgY2FzZSAnbGFuZ2dyYXBoJzpcbiAgICAgICAgICBkZWJ1Z0xvZygnTGFuZ0NoYWluL0xhbmdHcmFwaCBpbnN0cnVtZW50YXRpb24gcmVhZHkgKHVzZSBUaGlua0hpdmVDYWxsYmFja0hhbmRsZXIpJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2FudGhyb3BpYyc6XG4gICAgICAgICAgZGVidWdMb2coJ0FudGhyb3BpYyBpbnN0cnVtZW50YXRpb24gcmVhZHknKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGxhbWFpbmRleCc6XG4gICAgICAgICAgZGVidWdMb2coJ0xsYW1hSW5kZXggaW5zdHJ1bWVudGF0aW9uIHJlYWR5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ244bic6XG4gICAgICAgICAgZGVidWdMb2coJ244biBpbnN0cnVtZW50YXRpb24gcmVhZHknKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndm9pY2VmbG93JzpcbiAgICAgICAgICBkZWJ1Z0xvZygnVm9pY2VmbG93IGluc3RydW1lbnRhdGlvbiByZWFkeScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBkZWJ1Z0xvZyhgRmFpbGVkIHRvIHNldHVwICR7ZnJhbWV3b3JrfSBpbnN0cnVtZW50YXRpb246YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSRS1FWFBPUlRTIChub24tZHVwbGljYXRlZClcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmUtZXhwb3J0IGZyb20gY29uZmlnIChub3QgeWV0IGV4cG9ydGVkKVxuZXhwb3J0IHsgaXNJbml0aWFsaXplZCwgU0RLX1ZFUlNJT04sIERFRkFVTFRfRU5EUE9JTlQgfTtcblxuLy8gUmUtZXhwb3J0IEFQSSBjbGllbnRzICh2MylcbmV4cG9ydCB7XG4gIHJ1bnMsXG4gIGNsYWltcyxcbiAgY2FsaWJyYXRpb24sXG4gIGxpbmtpbmcsXG4gIGN1c3RvbWVyQ29udGV4dCxcbiAgLy8gTmV3IGV2YWx1YXRpb24gQVBJc1xuICBodW1hblJldmlldyxcbiAgbm9uZGV0ZXJtaW5pc20sXG4gIGV2YWxIZWFsdGgsXG4gIGRldGVybWluaXN0aWNHcmFkZXJzLFxuICBjb252ZXJzYXRpb25FdmFsLFxuICB0cmFuc2NyaXB0UGF0dGVybnMsXG4gIC8vIEFQSSBLZXkgTWFuYWdlbWVudCAoUGhhc2UgMiBTZWN1cml0eSlcbiAgYXBpS2V5cyxcbiAgLy8gQWdlbnRzIE1hbmFnZW1lbnRcbiAgYWdlbnRzLFxuICAvLyBST0kgQW5hbHl0aWNzLCBRdWFsaXR5IE1ldHJpY3MsIGFuZCBCdXNpbmVzcyBNZXRyaWNzXG4gIHJvaUFuYWx5dGljcyxcbiAgcXVhbGl0eU1ldHJpY3MsXG4gIGJ1c2luZXNzTWV0cmljcyxcbiAgLy8gRXZhbCBSdW5zLCBTaWduYWxzLCBOb3RpZmljYXRpb25zLCBEb2N1bWVudHMsIFNoYWRvdyBUZXN0cywgU2Vzc2lvbnMsIERyaWZ0LCBMTE0gQ29zdHNcbiAgZXZhbFJ1bnMsXG4gIHNpZ25hbHMsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIGRvY3VtZW50cyxcbiAgc2hhZG93VGVzdHMsXG4gIHNlc3Npb25zLFxuICBkcmlmdCxcbiAgbGxtQ29zdHMsXG4gIC8vIEd1YXJkcmFpbHNcbiAgZ3VhcmRyYWlscyxcbn07XG5cbi8vIE5vdGU6IGlzc3VlcywgYW5hbHl6ZXIsIGFuZCBndWFyZHJhaWxzIGFyZSBhbHJlYWR5IGV4cG9ydGVkIHZpYSAnZXhwb3J0IGNvbnN0JyBhYm92ZVxuXG4vLyBSZS1leHBvcnQgaGVscGVyIGZ1bmN0aW9uc1xuZXhwb3J0IHtcbiAgLy8gUnVucyBoZWxwZXJzXG4gIGNyZWF0ZVJ1bldpdGhDb250ZXh0LFxuICB0b09wZW5BSU1lc3NhZ2VzLFxuICBmcm9tT3BlbkFJTWVzc2FnZXMsXG4gIC8vIENsYWltcyBoZWxwZXJzXG4gIGlzRmFjdCxcbiAgaXNJbmZlcmVuY2UsXG4gIGlzQ29tcHV0ZWQsXG4gIGdldEhpZ2hDb25maWRlbmNlQ2xhaW1zLFxuICBncm91cENsYWltc0J5VHlwZSxcbiAgZ3JvdXBDbGFpbXNCeUNhdGVnb3J5LFxuICAvLyBDYWxpYnJhdGlvbiBoZWxwZXJzXG4gIGNhbGN1bGF0ZUJyaWVyU2NvcmUsXG4gIGNhbGN1bGF0ZUVDRSxcbiAgaXNXZWxsQ2FsaWJyYXRlZCxcbiAgZ2V0Q2FsaWJyYXRpb25RdWFsaXR5LFxuICAvLyBMaW5raW5nIGhlbHBlcnNcbiAgZ2VuZXJhdGVaZW5kZXNrTWFya2VyLFxuICBwYXJzZVplbmRlc2tNYXJrZXIsXG4gIGhhc1plbmRlc2tNYXJrZXIsXG4gIHJlbW92ZVplbmRlc2tNYXJrZXIsXG4gIGxpbmtSdW5Ub1RpY2tldCxcbiAgbGlua1J1blRvWmVuZGVza1RpY2tldCxcbiAgZ2V0QmVzdExpbmtNZXRob2QsXG4gIExJTktfTUVUSE9EX0NPTkZJREVOQ0UsXG4gIC8vIEN1c3RvbWVyIGNvbnRleHQgaGVscGVyc1xuICBjYXB0dXJlQ3VzdG9tZXJDb250ZXh0LFxuICBnZXRDb250ZXh0QXNPZixcbiAgdG9Db250ZXh0U25hcHNob3QsXG4gIGNhbGN1bGF0ZUFyckNoYW5nZSxcbiAgY2FsY3VsYXRlSGVhbHRoVHJlbmQsXG4gIC8vIE5vbi1kZXRlcm1pbmlzbSBoZWxwZXJzXG4gIGNhbGN1bGF0ZVBhc3NBdEssXG4gIGNhbGN1bGF0ZVBhc3NUb0ssXG4gIHJlcXVpcmVkUGFzc1JhdGVGb3JQYXNzQXRLLFxuICBpc1JlbGlhYmxlRXZhbHVhdGlvbixcbiAgZ2V0UmVsaWFiaWxpdHlSZWNvbW1lbmRhdGlvbixcbiAgLy8gRXZhbCBoZWFsdGggaGVscGVyc1xuICBoYXNIZWFsdGhJc3N1ZSxcbiAgZ2V0SGVhbHRoU2V2ZXJpdHlMZXZlbCxcbiAgaXNTYXR1cmF0ZWQsXG4gIGdldFNhdHVyYXRpb25SZWNvbW1lbmRhdGlvbixcbiAgLy8gRGV0ZXJtaW5pc3RpYyBncmFkZXJzIGhlbHBlcnNcbiAgY3JlYXRlUmVnZXhSdWxlLFxuICBjcmVhdGVDb250YWluc1J1bGUsXG4gIGNyZWF0ZUxlbmd0aFJ1bGUsXG4gIGNyZWF0ZUpzb25TY2hlbWFSdWxlLFxuICBhbGxSdWxlc1Bhc3NlZCxcbiAgZ2V0RmFpbGVkUnVsZXMsXG4gIGNhbGN1bGF0ZUF2ZXJhZ2VTY29yZSxcbiAgLy8gQ29udmVyc2F0aW9uIGV2YWwgaGVscGVyc1xuICBhZ2dyZWdhdGVXb3JzdCxcbiAgYWdncmVnYXRlQXZlcmFnZSxcbiAgYWdncmVnYXRlV2VpZ2h0ZWQsXG4gIGFnZ3JlZ2F0ZUZpbmFsVHVybixcbiAgYWdncmVnYXRlTWFqb3JpdHksXG4gIGdldEFnZ3JlZ2F0b3IsXG4gIGdldFByb2JsZW1hdGljVHVybnMsXG4gIGFuYWx5emVDb252ZXJzYXRpb25UcmVuZCxcbiAgLy8gVHJhbnNjcmlwdCBwYXR0ZXJucyBoZWxwZXJzXG4gIGlzSGlnaFJpc2ssXG4gIGdldE1hdGNoZXNCeUNhdGVnb3J5LFxuICBnZXRDcml0aWNhbEluc2lnaHRzLFxuICBoYXNQaWlFeHBvc3VyZSxcbiAgaGFzRnJ1c3RyYXRpb25TaWduYWxzLFxuICBoYXNFc2NhbGF0aW9uUmVxdWVzdCxcbiAgZ2V0Q2F0ZWdvcnlEaXN0cmlidXRpb24sXG4gIGdldFJlY29tbWVuZGF0aW9ucyxcbiAgbmVlZHNBdHRlbnRpb24sXG4gIHNvcnRNYXRjaGVzQnlTZXZlcml0eSxcbiAgLy8gQVBJIEtleSBoZWxwZXJzXG4gIGhhc1Blcm1pc3Npb24sXG4gIGlzQXBpS2V5RXhwaXJlZCxcbiAgaXNBcGlLZXlWYWxpZCxcbiAgZ2V0VGltZVVudGlsRXhwaXJ5LFxuICBjYW5BY2Nlc3NBZ2VudCxcbiAgLy8gUk9JIEFuYWx5dGljcyBoZWxwZXJzXG4gIGNhbGN1bGF0ZVJldmVudWVBdFJpc2ssXG4gIGNhbGN1bGF0ZUF1dG9tYXRpb25TYXZpbmdzLFxuICBmb3JtYXRDdXJyZW5jeSxcbiAgZ2V0Uk9JUXVhbGl0eSxcbiAgLy8gUXVhbGl0eSBNZXRyaWNzIGhlbHBlcnNcbiAgcGFzc2VzUXVhbGl0eVRocmVzaG9sZCxcbiAgaXNIYWxsdWNpbmF0aW9uUmlza0FjY2VwdGFibGUsXG4gIGdldFF1YWxpdHlSZWNvbW1lbmRhdGlvbnMsXG4gIGZvcm1hdFF1YWxpdHlTY29yZSxcbiAgZ2V0R3JhZGVDb2xvcixcbiAgLy8gQnVzaW5lc3MgTWV0cmljcyBoZWxwZXJzXG4gIGlzTWV0cmljUmVhZHksXG4gIG5lZWRzTW9yZVRyYWNlcyxcbiAgYXdhaXRpbmdFeHRlcm5hbERhdGEsXG4gIGlzTWV0cmljU3RhbGUsXG4gIGdldFN0YXR1c01lc3NhZ2UsXG4gIGdldFRyYWNlUHJvZ3Jlc3MsXG4gIGZvcm1hdE1ldHJpY1ZhbHVlLFxuICBnZXRUcmVuZEVtb2ppLFxuICAvLyBEcmlmdCBoZWxwZXJzXG4gIGhhc0RyaWZ0LFxuICBnZXREcmlmdFNldmVyaXR5LFxuICAvLyBMTE0gQ29zdHMgaGVscGVyc1xuICBmb3JtYXRMTE1Db3N0LFxufTtcblxuLy8gUmUtZXhwb3J0IEd1YXJkcmFpbHNcbmV4cG9ydCB7IHR5cGUgU2NhblJlcXVlc3QsIHR5cGUgU2NhblJlc3BvbnNlLCB0eXBlIEZpbmRpbmcsIHR5cGUgU2Nhbm5lclJlc3VsdCB9IGZyb20gJy4vZ3VhcmRyYWlscyc7XG5cbi8vIFJlLWV4cG9ydCBlcnJvcnMgKGluY2x1ZGluZyBuZXcgc2VjdXJpdHkgZXJyb3JzKVxuZXhwb3J0IHtcbiAgVGhpbmtIaXZlRXJyb3IsXG4gIFRoaW5rSGl2ZUFwaUVycm9yLFxuICBUaGlua0hpdmVWYWxpZGF0aW9uRXJyb3IsXG4gIFBlcm1pc3Npb25EZW5pZWRFcnJvcixcbiAgQWdlbnRTY29wZUVycm9yLFxuICBSYXRlTGltaXRFcnJvcixcbiAgSXBXaGl0ZWxpc3RFcnJvcixcbn07XG5cbi8vIERlZmF1bHQgZXhwb3J0IGZvciBjb252ZW5pZW5jZVxuZXhwb3J0IGRlZmF1bHQge1xuICBpbml0LFxuICBnZXRUcmFjZXIsXG4gIHNodXRkb3duLFxuICBpc0luaXRpYWxpemVkLFxuICAvLyBUcmFjaW5nXG4gIHRyYWNlTExNLFxuICB0cmFjZVJldHJpZXZhbCxcbiAgdHJhY2VUb29sLFxuICB0cmFjZUNoYWluLFxuICAvLyBBUEkgY2xpZW50c1xuICBydW5zLFxuICBjbGFpbXMsXG4gIGNhbGlicmF0aW9uLFxuICBsaW5raW5nLFxuICBjdXN0b21lckNvbnRleHQsXG4gIC8vIEV2YWx1YXRpb24gQVBJc1xuICBodW1hblJldmlldyxcbiAgbm9uZGV0ZXJtaW5pc20sXG4gIGV2YWxIZWFsdGgsXG4gIGRldGVybWluaXN0aWNHcmFkZXJzLFxuICBjb252ZXJzYXRpb25FdmFsLFxuICB0cmFuc2NyaXB0UGF0dGVybnMsXG4gIC8vIEFQSSBLZXkgTWFuYWdlbWVudCAoUGhhc2UgMiBTZWN1cml0eSlcbiAgYXBpS2V5cyxcbiAgLy8gQWdlbnRzIE1hbmFnZW1lbnRcbiAgYWdlbnRzLFxuICAvLyBJc3N1ZXMgYW5kIEFuYWx5emVyIEFQSXNcbiAgaXNzdWVzLFxuICBhbmFseXplcixcbiAgLy8gUk9JIEFuYWx5dGljcywgUXVhbGl0eSBNZXRyaWNzLCBhbmQgQnVzaW5lc3MgTWV0cmljc1xuICByb2lBbmFseXRpY3MsXG4gIHF1YWxpdHlNZXRyaWNzLFxuICBidXNpbmVzc01ldHJpY3MsXG4gIC8vIEV2YWwgUnVucywgU2lnbmFscywgTm90aWZpY2F0aW9ucywgRG9jdW1lbnRzLCBTaGFkb3cgVGVzdHMsIFNlc3Npb25zLCBEcmlmdCwgTExNIENvc3RzXG4gIGV2YWxSdW5zLFxuICBzaWduYWxzLFxuICBub3RpZmljYXRpb25zLFxuICBkb2N1bWVudHMsXG4gIHNoYWRvd1Rlc3RzLFxuICBzZXNzaW9ucyxcbiAgZHJpZnQsXG4gIGxsbUNvc3RzLFxuICAvLyBHdWFyZHJhaWxzXG4gIGd1YXJkcmFpbHMsXG4gIC8vIEhlbHBlcnNcbiAgZ2VuZXJhdGVaZW5kZXNrTWFya2VyLFxuICBwYXJzZVplbmRlc2tNYXJrZXIsXG4gIGxpbmtSdW5Ub1RpY2tldCxcbiAgY3JlYXRlUnVuV2l0aENvbnRleHQsXG4gIC8vIFV0aWxpdGllc1xuICBpc0ZhY3QsXG4gIGlzSW5mZXJlbmNlLFxuICBjYWxjdWxhdGVCcmllclNjb3JlLFxuICBpc1dlbGxDYWxpYnJhdGVkLFxuICBjYWxjdWxhdGVQYXNzQXRLLFxuICBpc1JlbGlhYmxlRXZhbHVhdGlvbixcbiAgaXNIaWdoUmlzayxcbiAgbmVlZHNBdHRlbnRpb24sXG4gIC8vIFJPSSBoZWxwZXJzXG4gIGNhbGN1bGF0ZVJldmVudWVBdFJpc2ssXG4gIGZvcm1hdEN1cnJlbmN5LFxuICAvLyBRdWFsaXR5IGhlbHBlcnNcbiAgcGFzc2VzUXVhbGl0eVRocmVzaG9sZCxcbiAgaXNIYWxsdWNpbmF0aW9uUmlza0FjY2VwdGFibGUsXG4gIC8vIEJ1c2luZXNzIE1ldHJpY3MgaGVscGVyc1xuICBpc01ldHJpY1JlYWR5LFxuICBuZWVkc01vcmVUcmFjZXMsXG4gIGdldFN0YXR1c01lc3NhZ2UsXG4gIC8vIERyaWZ0IGhlbHBlcnNcbiAgaGFzRHJpZnQsXG4gIGdldERyaWZ0U2V2ZXJpdHksXG4gIC8vIExMTSBDb3N0cyBoZWxwZXJzXG4gIGZvcm1hdExMTUNvc3QsXG59O1xuIl19
|
|
682
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRzs7Ozs7QUE4Ykgsb0JBeURDO0FBS0QsOEJBS0M7QUFLRCw0QkFRQztBQVNELDRCQXVDQztBQUtELHdDQXVDQztBQUtELDhCQXFDQztBQUtELGdDQW1DQztBQTFyQkQsNENBQW9FO0FBQ3BFLHdGQUE2RTtBQUM3RSx3REFBbUY7QUFDbkYsa0VBQW1FO0FBQ25FLGtFQUFtRTtBQUVuRSxPQUFPO0FBQ1AsMENBUXVCO0FBdTdCZCw4RkE1N0JQLHNCQUFhLE9BNDdCTztBQUFFLDRGQXo3QnRCLG9CQUFXLE9BeTdCc0I7QUFBRSxpR0F4N0JuQyx5QkFBZ0IsT0F3N0JtQztBQXQ3QnJELDBDQVN1QjtBQWtrQ3JCLCtGQXprQ0EsdUJBQWMsT0F5a0NBO0FBQ2Qsa0dBemtDQSwwQkFBaUIsT0F5a0NBO0FBQ2pCLHlHQXprQ0EsaUNBQXdCLE9BeWtDQTtBQUN4QixzR0F6a0NBLDhCQUFxQixPQXlrQ0E7QUFDckIsZ0dBemtDQSx3QkFBZSxPQXlrQ0E7QUFDZiwrRkF6a0NBLHVCQUFjLE9BeWtDQTtBQUNkLGlHQXprQ0EseUJBQWdCLE9BeWtDQTtBQXRrQ2xCLGNBQWM7QUFDZCxxQ0FBOEY7QUE4NkI1RixxRkE5NkJPLFdBQUksT0E4NkJQO0FBc0NKLHFHQXA5QmEsMkJBQW9CLE9BbzlCYjtBQUNwQixpR0FyOUJtQyx1QkFBZ0IsT0FxOUJuQztBQUNoQixtR0F0OUJxRCx5QkFBa0IsT0FzOUJyRDtBQXI5QnBCLHlDQVFzQjtBQXM2QnBCLHVGQTc2QkEsZUFBTSxPQTY2QkE7QUF5Q04sdUZBcjlCQSxlQUFNLE9BcTlCQTtBQUNOLDRGQXI5QkEsb0JBQVcsT0FxOUJBO0FBQ1gsMkZBcjlCQSxtQkFBVSxPQXE5QkE7QUFDVix3R0FyOUJBLGdDQUF1QixPQXE5QkE7QUFDdkIsa0dBcjlCQSwwQkFBaUIs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Z0JBQVE7SUFDUixnQkFBZ0IsRUFBaEIsd0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixhQUFhLEVBQWIsc0JBQWE7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlua0hpdmUgU0RLIHY0LjEuMFxuICpcbiAqIFJ1bi1jZW50cmljIEFJIGFnZW50IG9ic2VydmFiaWxpdHkgcGxhdGZvcm0gd2l0aDpcbiAqIC0gRmFjdHMgdnMgSW5mZXJlbmNlcyAoY2xhaW1zIEFQSSlcbiAqIC0gRGV0ZXJtaW5pc3RpYyB0aWNrZXQgbGlua2luZyAoNyBtZXRob2RzKVxuICogLSBDdXN0b21lciBjb250ZXh0IHNuYXBzaG90cyAodGltZS1zZXJpZXMpXG4gKiAtIENhbGlicmF0ZWQgcHJlZGljdGlvbnMgKEJyaWVyIHNjb3JlcylcbiAqIC0gQ29uZmlndXJhYmxlIFJPSSBjYWxjdWxhdGlvbiBlbmdpbmVcbiAqXG4gKiBAdmVyc2lvbiA0LjEuMFxuICogQGxpY2Vuc2UgTUlUXG4gKi9cblxuaW1wb3J0IHsgdHJhY2UsIGNvbnRleHQsIFNwYW5TdGF0dXNDb2RlIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1wcm90byc7XG5pbXBvcnQgeyByZXNvdXJjZUZyb21BdHRyaWJ1dGVzLCBkZWZhdWx0UmVzb3VyY2UgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgTm9kZVRyYWNlclByb3ZpZGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLXRyYWNlLW5vZGUnO1xuaW1wb3J0IHsgQmF0Y2hTcGFuUHJvY2Vzc29yIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLXRyYWNlLWJhc2UnO1xuXG4vLyBDb3JlXG5pbXBvcnQge1xuICBpbml0Q29uZmlnLFxuICBnZXRDb25maWcsXG4gIGlzSW5pdGlhbGl6ZWQsXG4gIHJlc2V0Q29uZmlnLFxuICBkZWJ1Z0xvZyxcbiAgU0RLX1ZFUlNJT04sXG4gIERFRkFVTFRfRU5EUE9JTlQsXG59IGZyb20gJy4vY29yZS9jb25maWcnO1xuaW1wb3J0IHtcbiAgYXBpUmVxdWVzdFdpdGhEYXRhLFxuICBUaGlua0hpdmVFcnJvcixcbiAgVGhpbmtIaXZlQXBpRXJyb3IsXG4gIFRoaW5rSGl2ZVZhbGlkYXRpb25FcnJvcixcbiAgUGVybWlzc2lvbkRlbmllZEVycm9yLFxuICBBZ2VudFNjb3BlRXJyb3IsXG4gIFJhdGVMaW1pdEVycm9yLFxuICBJcFdoaXRlbGlzdEVycm9yLFxufSBmcm9tICcuL2NvcmUvY2xpZW50JztcblxuLy8gQVBJIGNsaWVudHNcbmltcG9ydCB7IHJ1bnMsIGNyZWF0ZVJ1bldpdGhDb250ZXh0LCB0b09wZW5BSU1lc3NhZ2VzLCBmcm9tT3BlbkFJTWVzc2FnZXMgfSBmcm9tICcuL2FwaS9ydW5zJztcbmltcG9ydCB7XG4gIGNsYWltcyxcbiAgaXNGYWN0LFxuICBpc0luZmVyZW5jZSxcbiAgaXNDb21wdXRlZCxcbiAgZ2V0SGlnaENvbmZpZGVuY2VDbGFpbXMsXG4gIGdyb3VwQ2xhaW1zQnlUeXBlLFxuICBncm91cENsYWltc0J5Q2F0ZWdvcnksXG59IGZyb20gJy4vYXBpL2NsYWltcyc7XG5pbXBvcnQge1xuICBjYWxpYnJhdGlvbixcbiAgY2FsY3VsYXRlQnJpZXJTY29yZSxcbiAgY2FsY3VsYXRlRUNFLFxuICBpc1dlbGxDYWxpYnJhdGVkLFxuICBnZXRDYWxpYnJhdGlvblF1YWxpdHksXG59IGZyb20gJy4vYXBpL2NhbGlicmF0aW9uJztcblxuLy8gTmV3IEV2YWx1YXRpb24gQVBJc1xuaW1wb3J0IHsgaHVtYW5SZXZpZXcgfSBmcm9tICcuL2FwaS9odW1hbi1yZXZpZXcnO1xuaW1wb3J0IHtcbiAgbm9uZGV0ZXJtaW5pc20sXG4gIGNhbGN1bGF0ZVBhc3NBdEssXG4gIGNhbGN1bGF0ZVBhc3NUb0ssXG4gIHJlcXVpcmVkUGFzc1JhdGVGb3JQYXNzQXRLLFxuICBpc1JlbGlhYmxlRXZhbHVhdGlvbixcbiAgZ2V0UmVsaWFiaWxpdHlSZWNvbW1lbmRhdGlvbixcbn0gZnJvbSAnLi9hcGkvbm9uZGV0ZXJtaW5pc20nO1xuaW1wb3J0IHtcbiAgZXZhbEhlYWx0aCxcbiAgaGFzSGVhbHRoSXNzdWUsXG4gIGdldFNldmVyaXR5TGV2ZWwgYXMgZ2V0SGVhbHRoU2V2ZXJpdHlMZXZlbCxcbiAgaXNTYXR1cmF0ZWQsXG4gIGdldFNhdHVyYXRpb25SZWNvbW1lbmRhdGlvbixcbn0gZnJvbSAnLi9hcGkvZXZhbC1oZWFsdGgnO1xuaW1wb3J0IHtcbiAgZGV0ZXJtaW5pc3RpY0dyYWRlcnMsXG4gIGNyZWF0ZVJlZ2V4UnVsZSxcbiAgY3JlYXRlQ29udGFpbnNSdWxlLFxuICBjcmVhdGVMZW5ndGhSdWxlLFxuICBjcmVhdGVKc29uU2NoZW1hUnVsZSxcbiAgYWxsUnVsZXNQYXNzZWQsXG4gIGdldEZhaWxlZFJ1bGVzLFxuICBjYWxjdWxhdGVBdmVyYWdlU2NvcmUsXG59IGZyb20gJy4vYXBpL2RldGVybWluaXN0aWMtZ3JhZGVycyc7XG5pbXBvcnQge1xuICBjb252ZXJzYXRpb25FdmFsLFxuICBhZ2dyZWdhdGVXb3JzdCxcbiAgYWdncmVnYXRlQXZlcmFnZSxcbiAgYWdncmVnYXRlV2VpZ2h0ZWQsXG4gIGFnZ3JlZ2F0ZUZpbmFsVHVybixcbiAgYWdncmVnYXRlTWFqb3JpdHksXG4gIGdldEFnZ3JlZ2F0b3IsXG4gIGdldFByb2JsZW1hdGljVHVybnMsXG4gIGFuYWx5emVDb252ZXJzYXRpb25UcmVuZCxcbn0gZnJvbSAnLi9hcGkvY29udmVyc2F0aW9uLWV2YWwnO1xuaW1wb3J0IHtcbiAgdHJhbnNjcmlwdFBhdHRlcm5zLFxuICBpc0hpZ2hSaXNrLFxuICBnZXRNYXRjaGVzQnlDYXRlZ29yeSxcbiAgZ2V0Q3JpdGljYWxJbnNpZ2h0cyxcbiAgaGFzUGlpRXhwb3N1cmUsXG4gIGhhc0ZydXN0cmF0aW9uU2lnbmFscyxcbiAgaGFzRXNjYWxhdGlvblJlcXVlc3QsXG4gIGdldENhdGVnb3J5RGlzdHJpYnV0aW9uLFxuICBnZXRSZWNvbW1lbmRhdGlvbnMsXG4gIG5lZWRzQXR0ZW50aW9uLFxuICBzb3J0TWF0Y2hlc0J5U2V2ZXJpdHksXG59IGZyb20gJy4vYXBpL3RyYW5zY3JpcHQtcGF0dGVybnMnO1xuXG4vLyBBZ2VudHMgTWFuYWdlbWVudFxuaW1wb3J0IHtcbiAgYWdlbnRzLFxufSBmcm9tICcuL2FwaS9hZ2VudHMnO1xuXG4vLyBFdmFsIFJ1bnNcbmltcG9ydCB7IGV2YWxSdW5zIH0gZnJvbSAnLi9hcGkvZXZhbC1ydW5zJztcblxuLy8gU2lnbmFsc1xuaW1wb3J0IHsgc2lnbmFscyB9IGZyb20gJy4vYXBpL3NpZ25hbHMnO1xuXG4vLyBOb3RpZmljYXRpb25zXG5pbXBvcnQgeyBub3RpZmljYXRpb25zIH0gZnJvbSAnLi9hcGkvbm90aWZpY2F0aW9ucyc7XG5cbi8vIERvY3VtZW50c1xuaW1wb3J0IHsgZG9jdW1lbnRzIH0gZnJvbSAnLi9hcGkvZG9jdW1lbnRzJztcblxuLy8gU2hhZG93IFRlc3RzXG5pbXBvcnQgeyBzaGFkb3dUZXN0cyB9IGZyb20gJy4vYXBpL3NoYWRvdy10ZXN0cyc7XG5cbi8vIFNlc3Npb25zXG5pbXBvcnQgeyBzZXNzaW9ucyB9IGZyb20gJy4vYXBpL3Nlc3Npb25zJztcblxuLy8gRHJpZnRcbmltcG9ydCB7IGRyaWZ0LCBoYXNEcmlmdCwgZ2V0RHJpZnRTZXZlcml0eSB9IGZyb20gJy4vYXBpL2RyaWZ0JztcblxuLy8gTExNIENvc3RzXG5pbXBvcnQgeyBsbG1Db3N0cywgZm9ybWF0Q29zdCBhcyBmb3JtYXRMTE1Db3N0IH0gZnJvbSAnLi9hcGkvbGxtLWNvc3RzJztcblxuLy8gR3VhcmRyYWlsc1xuaW1wb3J0IHsgZ3VhcmRyYWlscyB9IGZyb20gJy4vZ3VhcmRyYWlscyc7XG5cbi8vIEFQSSBLZXkgTWFuYWdlbWVudCAoUGhhc2UgMiBTZWN1cml0eSlcbmltcG9ydCB7XG4gIGFwaUtleXMsXG4gIGhhc1Blcm1pc3Npb24sXG4gIGlzRXhwaXJlZCBhcyBpc0FwaUtleUV4cGlyZWQsXG4gIGlzVmFsaWQgYXMgaXNBcGlLZXlWYWxpZCxcbiAgZ2V0VGltZVVudGlsRXhwaXJ5LFxuICBjYW5BY2Nlc3NBZ2VudCxcbn0gZnJvbSAnLi9hcGkvYXBpS2V5cyc7XG5cbi8vIFJPSSBBbmFseXRpY3MgQVBJXG5pbXBvcnQge1xuICByb2lBbmFseXRpY3MsXG4gIGNhbGN1bGF0ZVJldmVudWVBdFJpc2ssXG4gIGNhbGN1bGF0ZUF1dG9tYXRpb25TYXZpbmdzLFxuICBmb3JtYXRDdXJyZW5jeSxcbiAgZ2V0Uk9JUXVhbGl0eSxcbn0gZnJvbSAnLi9hcGkvcm9pLWFuYWx5dGljcyc7XG5cbi8vIEJ1c2luZXNzIE1ldHJpY3MgQVBJXG5pbXBvcnQge1xuICBidXNpbmVzc01ldHJpY3MsXG4gIGlzTWV0cmljUmVhZHksXG4gIG5lZWRzTW9yZVRyYWNlcyxcbiAgYXdhaXRpbmdFeHRlcm5hbERhdGEsXG4gIGlzTWV0cmljU3RhbGUsXG4gIGdldFN0YXR1c01lc3NhZ2UsXG4gIGdldFRyYWNlUHJvZ3Jlc3MsXG4gIGZvcm1hdE1ldHJpY1ZhbHVlLFxuICBnZXRUcmVuZEVtb2ppLFxufSBmcm9tICcuL2FwaS9idXNpbmVzcy1tZXRyaWNzJztcblxuLy8gUXVhbGl0eSBNZXRyaWNzIEFQSVxuaW1wb3J0IHtcbiAgcXVhbGl0eU1ldHJpY3MsXG4gIHBhc3Nlc1F1YWxpdHlUaHJlc2hvbGQsXG4gIGlzSGFsbHVjaW5hdGlvblJpc2tBY2NlcHRhYmxlLFxuICBnZXRRdWFsaXR5UmVjb21tZW5kYXRpb25zLFxuICBmb3JtYXRRdWFsaXR5U2NvcmUsXG4gIGdldEdyYWRlQ29sb3IsXG59IGZyb20gJy4vYXBpL3F1YWxpdHktbWV0cmljcyc7XG5cbi8vIEludGVncmF0aW9uc1xuaW1wb3J0IHtcbiAgbGlua2luZyxcbiAgZ2VuZXJhdGVaZW5kZXNrTWFya2VyLFxuICBwYXJzZVplbmRlc2tNYXJrZXIsXG4gIGhhc1plbmRlc2tNYXJrZXIsXG4gIHJlbW92ZVplbmRlc2tNYXJrZXIsXG4gIGxpbmtSdW5Ub1RpY2tldCxcbiAgbGlua1J1blRvWmVuZGVza1RpY2tldCxcbiAgZ2V0QmVzdExpbmtNZXRob2QsXG4gIExJTktfTUVUSE9EX0NPTkZJREVOQ0UsXG59IGZyb20gJy4vaW50ZWdyYXRpb25zL3RpY2tldC1saW5raW5nJztcbmltcG9ydCB7XG4gIGN1c3RvbWVyQ29udGV4dCxcbiAgY2FwdHVyZUN1c3RvbWVyQ29udGV4dCxcbiAgZ2V0Q29udGV4dEFzT2YsXG4gIHRvQ29udGV4dFNuYXBzaG90LFxuICBjYWxjdWxhdGVBcnJDaGFuZ2UsXG4gIGNhbGN1bGF0ZUhlYWx0aFRyZW5kLFxufSBmcm9tICcuL2ludGVncmF0aW9ucy9jdXN0b21lci1jb250ZXh0JztcblxuLy8gUmUtZXhwb3J0IHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEluaXRPcHRpb25zLFxuICBGcmFtZXdvcmssXG4gIFJ1bk9wdGlvbnMsXG4gIFJ1bk91dGNvbWUsXG4gIENvbnZlcnNhdGlvbk1lc3NhZ2UsXG4gIEN1c3RvbWVyQ29udGV4dFNuYXBzaG90LFxuICBUaWNrZXRMaW5raW5nT3B0aW9ucyxcbiAgTGlua01ldGhvZCxcbiAgVHJhY2VPcHRpb25zLFxuICBUcmFjZUN1c3RvbUZsYWcsXG4gIFNwYW5EYXRhLFxuICBCdXNpbmVzc0NvbnRleHQsXG4gIENsYWltLFxuICBDbGFpbVR5cGUsXG4gIENsYWltQ2F0ZWdvcnksXG4gIENvbmZpZGVuY2VDYWxpYnJhdGlvbixcbiAgRXZpZGVuY2VSZWZlcmVuY2UsXG4gIEFuYWx5c2lzUmVzdWx0LFxuICBDYWxpYnJhdGlvblN0YXR1cyxcbiAgQ2FsaWJyYXRpb25CdWNrZXQsXG4gIFByZWRpY3Rpb25UeXBlLFxuICBSb2lDb25maWcsXG4gIFJvaVN1bW1hcnksXG4gIEV4cGxhaW5hYmlsaXR5UmVzdWx0LFxuICBBcGlSZXNwb25zZSxcbiAgUGFnaW5hdGVkUmVzcG9uc2UsXG4gIFJ1blJlc3BvbnNlLFxufSBmcm9tICcuL2NvcmUvdHlwZXMnO1xuXG4vLyBSZS1leHBvcnQgZXZhbHVhdGlvbiB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBIdW1hblJldmlld1N0YXR1cyxcbiAgSHVtYW5SZXZpZXdUeXBlLFxuICBIdW1hblJldmlld1F1ZXVlSXRlbSxcbiAgQ2FsaWJyYXRpb25TZXQsXG4gIFJldmlld2VyQ2FsaWJyYXRpb24sXG4gIFF1ZXVlU3RhdHMsXG59IGZyb20gJy4vYXBpL2h1bWFuLXJldmlldyc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgTm9uZGV0ZXJtaW5pc21SdW5UeXBlLFxuICBOb25kZXRlcm1pbmlzbVJ1blN0YXR1cyxcbiAgTm9uZGV0ZXJtaW5pc21SdW4sXG4gIE5vbmRldGVybWluaXNtU2FtcGxlLFxuICBUcmFjZUFuYWx5c2lzLFxuICBDcml0ZXJpb25BbmFseXNpcyxcbiAgUnVuU3VtbWFyeSxcbn0gZnJvbSAnLi9hcGkvbm9uZGV0ZXJtaW5pc20nO1xuXG5leHBvcnQgdHlwZSB7XG4gIFNhdHVyYXRpb25UeXBlLFxuICBIZWFsdGhTdGF0dXMsXG4gIFJlZ3Jlc3Npb25TZXZlcml0eSxcbiAgRXZhbEhlYWx0aFNuYXBzaG90LFxuICBFdmFsUmVncmVzc2lvbixcbiAgSGVhbHRoUmVwb3J0LFxufSBmcm9tICcuL2FwaS9ldmFsLWhlYWx0aCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUnVsZVR5cGUsXG4gIERldGVybWluaXN0aWNFdmFsUmVzdWx0LFxuICBSdWxlUmVzdWx0LFxuICBSdWxlVHlwZUluZm8sXG4gIFJ1bGVUZW1wbGF0ZSxcbn0gZnJvbSAnLi9hcGkvZGV0ZXJtaW5pc3RpYy1ncmFkZXJzJztcblxuZXhwb3J0IHR5cGUge1xuICBBZ2dyZWdhdGVNZXRob2QsXG4gIFNlc3Npb25UcmFjZSxcbiAgVHVybkV2YWx1YXRpb24sXG4gIENvbnZlcnNhdGlvbkV2YWxSZXN1bHQsXG4gIEFnZ3JlZ2F0aW9uTWV0aG9kSW5mbyxcbn0gZnJvbSAnLi9hcGkvY29udmVyc2F0aW9uLWV2YWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFBhdHRlcm5DYXRlZ29yeSxcbiAgUGF0dGVybk91dGNvbWUsXG4gIFBhdHRlcm5TZXZlcml0eSxcbiAgUGF0dGVybk1hdGNoLFxuICBQYXR0ZXJuSW5zaWdodCxcbiAgQW5hbHlzaXNSZXN1bHQgYXMgUGF0dGVybkFuYWx5c2lzUmVzdWx0LFxuICBQYXR0ZXJuQ2F0ZWdvcnlJbmZvLFxuICBCdWlsdEluUGF0dGVybixcbn0gZnJvbSAnLi9hcGkvdHJhbnNjcmlwdC1wYXR0ZXJucyc7XG5cbi8vIFJlLWV4cG9ydCBBUEkgS2V5IHR5cGVzIChQaGFzZSAyIFNlY3VyaXR5KVxuZXhwb3J0IHR5cGUge1xuICBBcGlLZXlQZXJtaXNzaW9ucyxcbiAgU2NvcGVUeXBlLFxuICBFbnZpcm9ubWVudCxcbiAgQ3JlYXRlQXBpS2V5T3B0aW9ucyxcbiAgQXBpS2V5LFxuICBDcmVhdGVBcGlLZXlSZXN1bHQsXG59IGZyb20gJy4vYXBpL2FwaUtleXMnO1xuXG4vLyBSZS1leHBvcnQgUk9JIEFuYWx5dGljcyB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBJbmR1c3RyeUNvbmZpZyxcbiAgQ3VzdG9tSW5kdXN0cnlDb25maWcsXG4gIFJPSU1ldHJpY3MsXG4gIEJ1c2luZXNzSW1wYWN0LFxuICBST0lTdW1tYXJ5LFxuICBUcmVuZERhdGFQb2ludCxcbiAgQ29ycmVsYXRpb24sXG4gIFBhdHRlcm5DbHVzdGVyLFxuICBDb3JyZWxhdGlvbkFuYWx5c2lzLFxufSBmcm9tICcuL2FwaS9yb2ktYW5hbHl0aWNzJztcblxuLy8gUmUtZXhwb3J0IFF1YWxpdHkgTWV0cmljcyB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBSZXRyaWV2ZWRDb250ZXh0LFxuICBHcm91bmRUcnV0aENvbnRleHQsXG4gIEdyb3VuZGVkU3BhbixcbiAgVW5ncm91bmRlZFNwYW4sXG4gIENpdGF0aW9uTWFwLFxuICBSQUdFdmFsdWF0aW9uLFxuICBSQUdFdmlkZW5jZSxcbiAgSGFsbHVjaW5hdGlvbkluc3RhbmNlLFxuICBIYWxsdWNpbmF0aW9uUmVwb3J0LFxuICBHcm91bmRlZG5lc3NSZXN1bHQsXG4gIEJhdGNoRXZhbHVhdGlvblJlc3VsdCxcbiAgQmF0Y2hFdmFsdWF0aW9uU3VtbWFyeSxcbn0gZnJvbSAnLi9hcGkvcXVhbGl0eS1tZXRyaWNzJztcblxuLy8gUmUtZXhwb3J0IEJ1c2luZXNzIE1ldHJpY3MgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgTWV0cmljVHJlbmQsXG4gIE1ldHJpY1N0YXR1cyxcbiAgQ3VycmVudE1ldHJpY1Jlc3BvbnNlLFxuICBNZXRyaWNIaXN0b3J5UG9pbnQsXG4gIE1ldHJpY0hpc3RvcnlTdW1tYXJ5LFxuICBNZXRyaWNIaXN0b3J5UmVzcG9uc2UsXG4gIFJlY29yZE1ldHJpY09wdGlvbnMsXG4gIFJlY29yZE1ldHJpY1Jlc3BvbnNlLFxufSBmcm9tICcuL2FwaS9idXNpbmVzcy1tZXRyaWNzJztcblxuLy8gUmUtZXhwb3J0IEFnZW50IHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEFnZW50LFxuICBDcmVhdGVBZ2VudE9wdGlvbnMsXG4gIFVwZGF0ZUFnZW50T3B0aW9ucyxcbiAgQWdlbnRDb25maWcsXG4gIFVwZGF0ZUFnZW50Q29uZmlnT3B0aW9ucyxcbiAgRGVsZXRlQWdlbnRPcHRpb25zLFxuICBDYXNjYWRlSW1wYWN0LFxufSBmcm9tICcuL2FwaS9hZ2VudHMnO1xuXG4vLyBSZS1leHBvcnQgRXZhbCBSdW5zIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIENyZWF0ZUV2YWxSdW5PcHRpb25zLFxuICBHZXRFdmFsUnVuUmVzdWx0c09wdGlvbnMsXG4gIExpc3RFdmFsUnVuc09wdGlvbnMsXG4gIEVzdGltYXRlQ29zdE9wdGlvbnMsXG4gIEdldFRyYWNlUmVzdWx0c09wdGlvbnMsXG4gIEV2YWxSdW4sXG4gIEV2YWxSZXN1bHQsXG4gIEV2YWxDb3N0RXN0aW1hdGUsXG59IGZyb20gJy4vYXBpL2V2YWwtcnVucyc7XG5cbi8vIFJlLWV4cG9ydCBTaWduYWxzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIERldGVjdGlvbkNvbmZpZyxcbiAgQ3JlYXRlU2lnbmFsT3B0aW9ucyxcbiAgVXBkYXRlU2lnbmFsT3B0aW9ucyxcbiAgTGlzdFNpZ25hbHNPcHRpb25zLFxuICBTaWduYWxTdGF0c09wdGlvbnMsXG4gIFNpZ25hbFRyZW5kc09wdGlvbnMsXG4gIFNpZ25hbFRyYWNlc09wdGlvbnMsXG4gIFNpZ25hbEV2ZW50c09wdGlvbnMsXG4gIFNpZ25hbCxcbiAgU2lnbmFsU3RhdHMsXG4gIFNpZ25hbFRyZW5kUG9pbnQsXG4gIFNpZ25hbEV2ZW50LFxufSBmcm9tICcuL2FwaS9zaWduYWxzJztcblxuLy8gUmUtZXhwb3J0IE5vdGlmaWNhdGlvbnMgdHlwZXNcbmV4cG9ydCB0eXBlIHtcbiAgTm90aWZpY2F0aW9uUnVsZSxcbiAgQ3JlYXRlTm90aWZpY2F0aW9uUnVsZURhdGEsXG4gIFVwZGF0ZU5vdGlmaWNhdGlvblJ1bGVEYXRhLFxuICBOb3RpZmljYXRpb24sXG59IGZyb20gJy4vYXBpL25vdGlmaWNhdGlvbnMnO1xuXG4vLyBSZS1leHBvcnQgRG9jdW1lbnRzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIERvY3VtZW50LFxuICBEb2N1bWVudFVwbG9hZFJlc3BvbnNlLFxufSBmcm9tICcuL2FwaS9kb2N1bWVudHMnO1xuXG4vLyBSZS1leHBvcnQgU2hhZG93IFRlc3RzIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIENyZWF0ZVNoYWRvd1Rlc3REYXRhLFxuICBVcGRhdGVTaGFkb3dUZXN0RGF0YSxcbiAgU2hhZG93VGVzdCxcbn0gZnJvbSAnLi9hcGkvc2hhZG93LXRlc3RzJztcblxuLy8gUmUtZXhwb3J0IFNlc3Npb25zIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIExpc3RTZXNzaW9uc09wdGlvbnMsXG4gIFNlc3Npb24sXG4gIFNlc3Npb25UcmFjZSBhcyBTZXNzaW9uVHJhY2VSZWNvcmQsXG59IGZyb20gJy4vYXBpL3Nlc3Npb25zJztcblxuLy8gUmUtZXhwb3J0IERyaWZ0IHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIERldGVjdERyaWZ0T3B0aW9ucyxcbiAgRHJpZnRSZXBvcnQsXG4gIERyaWZ0RGltZW5zaW9uLFxuICBEZXRlY3RBbGxSZXN1bHQsXG59IGZyb20gJy4vYXBpL2RyaWZ0JztcblxuLy8gUmUtZXhwb3J0IExMTSBDb3N0cyB0eXBlc1xuZXhwb3J0IHR5cGUge1xuICBDb3N0UXVlcnlPcHRpb25zLFxuICBDb3N0U3VtbWFyeSxcbiAgQ29zdEJyZWFrZG93bkl0ZW0sXG4gIEFnZW50Q29zdEJyZWFrZG93bixcbiAgQ29zdFNhdmluZ3MsXG4gIE9wdGltaXphdGlvbkVudHJ5LFxuICBPcHRpbWl6YXRpb25TdGF0cyxcbiAgT3B0aW1pemF0aW9uUmVjb21tZW5kYXRpb24sXG59IGZyb20gJy4vYXBpL2xsbS1jb3N0cyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEdMT0JBTCBTVEFURVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5sZXQgdHJhY2VyOiBSZXR1cm5UeXBlPHR5cGVvZiB0cmFjZS5nZXRUcmFjZXI+IHwgbnVsbCA9IG51bGw7XG5sZXQgcHJvdmlkZXI6IE5vZGVUcmFjZXJQcm92aWRlciB8IG51bGwgPSBudWxsO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBJTklUSUFMSVpBVElPTlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEluaXRpYWxpemUgVGhpbmtIaXZlIFNESyB2M1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBpbml0IH0gZnJvbSAnQHRoaW5raGl2ZS9zZGsnO1xuICpcbiAqIGluaXQoe1xuICogICBhcGlLZXk6ICd0aF95b3VyX2FwaV9rZXknLFxuICogICBzZXJ2aWNlTmFtZTogJ215LWFpLWFnZW50JyxcbiAqICAgYXV0b0luc3RydW1lbnQ6IHRydWUsXG4gKiAgIGZyYW1ld29ya3M6IFsnbGFuZ2NoYWluJywgJ29wZW5haSddLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXQob3B0aW9uczogaW1wb3J0KCcuL2NvcmUvdHlwZXMnKS5Jbml0T3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gIGlmIChpc0luaXRpYWxpemVkKCkpIHtcbiAgICBkZWJ1Z0xvZygnVGhpbmtIaXZlIFNESyBhbHJlYWR5IGluaXRpYWxpemVkJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29uZmlnID0gaW5pdENvbmZpZyhvcHRpb25zKTtcblxuICAvLyBDb25maWd1cmUgT1RMUCBleHBvcnRlclxuICBjb25zdCBleHBvcnRlckhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgaWYgKGNvbmZpZy5hcGlLZXkpIHtcbiAgICBleHBvcnRlckhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtjb25maWcuYXBpS2V5fWA7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ09UTFAgdHJhY2luZyByZXF1aXJlcyBhbiBBUEkga2V5LiBBZ2VudCBJRCBhbG9uZSBpcyBub3Qgc3VmZmljaWVudCBmb3IgT1RMUCBpbmdlc3Rpb24uICcgK1xuICAgICAgJ1Byb3ZpZGUgYXBpS2V5IGluIGluaXQoKSBvciBzZXQgdGhlIFRISU5LSElWRV9BUElfS0VZIGVudmlyb25tZW50IHZhcmlhYmxlLidcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgb3RscFVybCA9IGNvbmZpZy5lbmRwb2ludC5yZXBsYWNlKC9cXC8rJC8sICcnKSArICcvdjEvdHJhY2VzJztcbiAgY29uc3QgZXhwb3J0ZXIgPSBuZXcgT1RMUFRyYWNlRXhwb3J0ZXIoe1xuICAgIHVybDogb3RscFVybCxcbiAgICBoZWFkZXJzOiBleHBvcnRlckhlYWRlcnMsXG4gIH0pO1xuXG4gIC8vIENyZWF0ZSBPcGVuVGVsZW1ldHJ5IHJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0gZGVmYXVsdFJlc291cmNlKCkubWVyZ2UoXG4gICAgcmVzb3VyY2VGcm9tQXR0cmlidXRlcyh7XG4gICAgICAnc2VydmljZS5uYW1lJzogY29uZmlnLnNlcnZpY2VOYW1lLFxuICAgICAgJ3RoaW5raGl2ZS5zZGsudmVyc2lvbic6IFNES19WRVJTSU9OLFxuICAgICAgJ3RoaW5raGl2ZS5zZGsubGFuZ3VhZ2UnOiAndHlwZXNjcmlwdCcsXG4gICAgfSlcbiAgKTtcblxuICAvLyBDcmVhdGUgcHJvdmlkZXIgd2l0aCBzcGFuIHByb2Nlc3NvclxuICBwcm92aWRlciA9IG5ldyBOb2RlVHJhY2VyUHJvdmlkZXIoe1xuICAgIHJlc291cmNlLFxuICAgIHNwYW5Qcm9jZXNzb3JzOiBbbmV3IEJhdGNoU3BhblByb2Nlc3NvcihleHBvcnRlcildLFxuICB9KTtcblxuICAvLyBSZWdpc3RlciBwcm92aWRlclxuICBwcm92aWRlci5yZWdpc3RlcigpO1xuXG4gIC8vIEdldCB0cmFjZXJcbiAgdHJhY2VyID0gdHJhY2UuZ2V0VHJhY2VyKCd0aGlua2hpdmUnLCBTREtfVkVSU0lPTik7XG5cbiAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgIGNvbnNvbGUubG9nKGDinIUgVGhpbmtIaXZlIFNESyB2JHtTREtfVkVSU0lPTn0gaW5pdGlhbGl6ZWRgKTtcbiAgICBjb25zb2xlLmxvZyhgICAgRW5kcG9pbnQ6ICR7Y29uZmlnLmVuZHBvaW50fWApO1xuICAgIGNvbnNvbGUubG9nKGAgICBTZXJ2aWNlOiAke2NvbmZpZy5zZXJ2aWNlTmFtZX1gKTtcbiAgICBjb25zb2xlLmxvZyhgICAgQXV0by1pbnN0cnVtZW50OiAke2NvbmZpZy5hdXRvSW5zdHJ1bWVudH1gKTtcbiAgfVxuXG4gIC8vIFNldHVwIGF1dG8taW5zdHJ1bWVudGF0aW9uIGlmIGVuYWJsZWRcbiAgaWYgKGNvbmZpZy5hdXRvSW5zdHJ1bWVudCkge1xuICAgIHNldHVwQXV0b0luc3RydW1lbnRhdGlvbihjb25maWcuZnJhbWV3b3Jrcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdGhlIGdsb2JhbCB0cmFjZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYWNlcigpIHtcbiAgaWYgKCF0cmFjZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaW5rSGl2ZSBTREsgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4nKTtcbiAgfVxuICByZXR1cm4gdHJhY2VyO1xufVxuXG4vKipcbiAqIFNodXRkb3duIHRoZSBTREsgYW5kIGZsdXNoIHBlbmRpbmcgc3BhbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNodXRkb3duKCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAocHJvdmlkZXIpIHtcbiAgICBhd2FpdCBwcm92aWRlci5zaHV0ZG93bigpO1xuICAgIHByb3ZpZGVyID0gbnVsbDtcbiAgfVxuICB0cmFjZXIgPSBudWxsO1xuICByZXNldENvbmZpZygpO1xuICBkZWJ1Z0xvZygnVGhpbmtIaXZlIFNESyBzaHV0ZG93biBjb21wbGV0ZScpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUUkFDSU5HIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFRyYWNlIGFuIExMTSBjYWxsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZUxMTTxUPihcbiAgb3B0aW9uczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBtb2RlbE5hbWU/OiBzdHJpbmc7XG4gICAgcHJvdmlkZXI/OiBzdHJpbmc7XG4gICAgaW5wdXQ/OiB1bmtub3duO1xuICB9LFxuICBmbjogKCkgPT4gUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHQgPSBnZXRUcmFjZXIoKTtcblxuICByZXR1cm4gdC5zdGFydEFjdGl2ZVNwYW4oXG4gICAgb3B0aW9ucy5uYW1lLFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgJ29wZW5pbmZlcmVuY2Uuc3Bhbi5raW5kJzogJ0xMTScsXG4gICAgICAgICdsbG0ubW9kZWxfbmFtZSc6IG9wdGlvbnMubW9kZWxOYW1lLFxuICAgICAgICAnbGxtLnByb3ZpZGVyJzogb3B0aW9ucy5wcm92aWRlcixcbiAgICAgICAgJ2lucHV0LnZhbHVlJzogb3B0aW9ucy5pbnB1dCA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuaW5wdXQpLnN1YnN0cmluZygwLCAxMDAwMCkgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXN5bmMgKHNwYW4pID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnb3V0cHV0LnZhbHVlJywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KS5zdWJzdHJpbmcoMCwgMTAwMDApKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5PSyB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHsgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsIG1lc3NhZ2UgfSk7XG4gICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yIGFzIEVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZHVyYXRpb25fbXMnLCBEYXRlLm5vdygpIC0gc3RhcnRUaW1lKTtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogVHJhY2UgYSByZXRyaWV2YWwgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFjZVJldHJpZXZhbDxUPihcbiAgb3B0aW9uczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBxdWVyeT86IHN0cmluZztcbiAgICB0b3BLPzogbnVtYmVyO1xuICB9LFxuICBmbjogKCkgPT4gUHJvbWlzZTxUPlxuKTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHQgPSBnZXRUcmFjZXIoKTtcblxuICByZXR1cm4gdC5zdGFydEFjdGl2ZVNwYW4oXG4gICAgb3B0aW9ucy5uYW1lLFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgJ29wZW5pbmZlcmVuY2Uuc3Bhbi5raW5kJzogJ1JFVFJJRVZFUicsXG4gICAgICAgICdyZXRyaWV2YWwucXVlcnknOiBvcHRpb25zLnF1ZXJ5LFxuICAgICAgICAncmV0cmlldmFsLnRvcF9rJzogb3B0aW9ucy50b3BLLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFzeW5jIChzcGFuKSA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdyZXRyaWV2YWwuZG9jdW1lbnRfY291bnQnLCByZXN1bHQubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLk9LIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZSB9KTtcbiAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdkdXJhdGlvbl9tcycsIERhdGUubm93KCkgLSBzdGFydFRpbWUpO1xuICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cblxuLyoqXG4gKiBUcmFjZSBhIHRvb2wgY2FsbFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VUb29sPFQ+KFxuICBvcHRpb25zOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRvb2xOYW1lPzogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfSxcbiAgZm46ICgpID0+IFByb21pc2U8VD5cbik6IFByb21pc2U8VD4ge1xuICBjb25zdCB0ID0gZ2V0VHJhY2VyKCk7XG5cbiAgcmV0dXJuIHQuc3RhcnRBY3RpdmVTcGFuKFxuICAgIG9wdGlvbnMudG9vbE5hbWUgfHwgb3B0aW9ucy5uYW1lLFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgJ29wZW5pbmZlcmVuY2Uuc3Bhbi5raW5kJzogJ1RPT0wnLFxuICAgICAgICAndG9vbC5uYW1lJzogb3B0aW9ucy50b29sTmFtZSB8fCBvcHRpb25zLm5hbWUsXG4gICAgICAgICd0b29sLnBhcmFtZXRlcnMnOiBvcHRpb25zLnBhcmFtZXRlcnMgPyBKU09OLnN0cmluZ2lmeShvcHRpb25zLnBhcmFtZXRlcnMpIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFzeW5jIChzcGFuKSA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoJ3Rvb2wub3V0cHV0JywgSlNPTi5zdHJpbmdpZnkocmVzdWx0KS5zdWJzdHJpbmcoMCwgMTAwMDApKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5PSyB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHsgY29kZTogU3BhblN0YXR1c0NvZGUuRVJST1IsIG1lc3NhZ2UgfSk7XG4gICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yIGFzIEVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnZHVyYXRpb25fbXMnLCBEYXRlLm5vdygpIC0gc3RhcnRUaW1lKTtcbiAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogVHJhY2UgYSBjaGFpbi93b3JrZmxvd1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2VDaGFpbjxUPihcbiAgb3B0aW9uczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpbnB1dD86IHVua25vd247XG4gIH0sXG4gIGZuOiAoKSA9PiBQcm9taXNlPFQ+XG4pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgdCA9IGdldFRyYWNlcigpO1xuXG4gIHJldHVybiB0LnN0YXJ0QWN0aXZlU3BhbihcbiAgICBvcHRpb25zLm5hbWUsXG4gICAge1xuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAnb3BlbmluZmVyZW5jZS5zcGFuLmtpbmQnOiAnQ0hBSU4nLFxuICAgICAgICAnaW5wdXQudmFsdWUnOiBvcHRpb25zLmlucHV0ID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5pbnB1dCkuc3Vic3RyaW5nKDAsIDEwMDAwKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBhc3luYyAoc3BhbikgPT4ge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKCk7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdvdXRwdXQudmFsdWUnLCBKU09OLnN0cmluZ2lmeShyZXN1bHQpLnN1YnN0cmluZygwLCAxMDAwMCkpO1xuICAgICAgICBzcGFuLnNldFN0YXR1cyh7IGNvZGU6IFNwYW5TdGF0dXNDb2RlLk9LIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbiAgICAgICAgc3Bhbi5zZXRTdGF0dXMoeyBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUiwgbWVzc2FnZSB9KTtcbiAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCdkdXJhdGlvbl9tcycsIERhdGUubm93KCkgLSBzdGFydFRpbWUpO1xuICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVjIgVEVSTUlOT0xPR1kgLSBJU1NVRVMgQVBJIChyZXBsYWNlcyBDYXNlcylcbi8vIFBlciBJVElMIGJlc3QgcHJhY3RpY2VzLCBcIklzc3Vlc1wiIGlzIG1vcmUgY3VzdG9tZXItZnJpZW5kbHkgdGhhbiBcIkNhc2VzXCJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJc3N1ZXMgQVBJIGNsaWVudFxuICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgQVBJIGZvciBtYW5hZ2luZyBjbHVzdGVyZWQgZmFpbHVyZSBwYXR0ZXJuc1xuICpcbiAqIEBzaW5jZSAzLjEuMFxuICovXG5leHBvcnQgY29uc3QgaXNzdWVzID0ge1xuICAvKipcbiAgICogTGlzdCBpc3N1ZXMgZm9yIGFuIGFnZW50XG4gICAqL1xuICBhc3luYyBsaXN0KGFnZW50SWQ6IHN0cmluZywgb3B0aW9ucz86IHtcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgc3RhcnREYXRlPzogRGF0ZTtcbiAgICBlbmREYXRlPzogRGF0ZTtcbiAgICBsaW1pdD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gIH0pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7IGFnZW50SWQgfSk7XG4gICAgaWYgKG9wdGlvbnM/LnN0YXR1cykgcGFyYW1zLnNldCgnc3RhdHVzJywgb3B0aW9ucy5zdGF0dXMpO1xuICAgIGlmIChvcHRpb25zPy5zdGFydERhdGUpIHBhcmFtcy5zZXQoJ3N0YXJ0RGF0ZScsIG9wdGlvbnMuc3RhcnREYXRlLnRvSVNPU3RyaW5nKCkpO1xuICAgIGlmIChvcHRpb25zPy5lbmREYXRlKSBwYXJhbXMuc2V0KCdlbmREYXRlJywgb3B0aW9ucy5lbmREYXRlLnRvSVNPU3RyaW5nKCkpO1xuICAgIGlmIChvcHRpb25zPy5saW1pdCkgcGFyYW1zLnNldCgnbGltaXQnLCBvcHRpb25zLmxpbWl0LnRvU3RyaW5nKCkpO1xuICAgIGlmIChvcHRpb25zPy5vZmZzZXQpIHBhcmFtcy5zZXQoJ29mZnNldCcsIG9wdGlvbnMub2Zmc2V0LnRvU3RyaW5nKCkpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlSZXF1ZXN0V2l0aERhdGEoYC9pc3N1ZXM/JHtwYXJhbXN9YCwgeyBhcGlWZXJzaW9uOiAndjInIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgYW55KS5kYXRhIHx8IHJlc3BvbnNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBHZXQgYSBzaW5nbGUgaXNzdWUgYnkgSURcbiAgICovXG4gIGFzeW5jIGdldChpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YShgL2lzc3Vlcy8ke2lkfWAsIHsgYXBpVmVyc2lvbjogJ3YyJyB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGlzc3VlXG4gICAqL1xuICBhc3luYyBjcmVhdGUoZGF0YToge1xuICAgIGFnZW50SWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBzZXZlcml0eT86IHN0cmluZztcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xuICAgIGV4YW1wbGVUcmFjZUlkcz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YSgnL2lzc3VlcycsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keTogZGF0YSxcbiAgICAgIGFwaVZlcnNpb246ICd2MicsXG4gICAgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBpc3N1ZVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlKGlkOiBzdHJpbmcsIGRhdGE6IHtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBzdGF0dXM/OiBzdHJpbmc7XG4gICAgc2V2ZXJpdHk/OiBzdHJpbmc7XG4gICAgYXNzaWduZWRUbz86IHN0cmluZztcbiAgICByZXNvbHV0aW9uTm90ZXM/OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKGAvaXNzdWVzLyR7aWR9YCwge1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgYm9keTogZGF0YSxcbiAgICAgIGFwaVZlcnNpb246ICd2MicsXG4gICAgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBmaXhlcyBmb3IgYW4gaXNzdWVcbiAgICovXG4gIGFzeW5jIGdldEZpeGVzKGlzc3VlSWQ6IHN0cmluZyk6IFByb21pc2U8YW55W10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YShgL2lzc3Vlcy8ke2lzc3VlSWR9L2ZpeGVzYCwgeyBhcGlWZXJzaW9uOiAndjInIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgYW55KS5kYXRhIHx8IHJlc3BvbnNlO1xuICB9LFxufTtcblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWMiBURVJNSU5PTE9HWSAtIEFOQUxZWkVSIEFQSSAocmVwbGFjZXMgRXhwbGFpbmVyIHVzZXItZmFjaW5nKVxuLy8gUGVyIGluZHVzdHJ5IGRpc3RpbmN0aW9uOiBBbmFseXplciA9IHBhdHRlcm4gZGV0ZWN0aW9uL29ic2VydmF0aW9uXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQW5hbHl6ZXIgQVBJIGNsaWVudFxuICogVXNlci1zZWxlY3RlZCB0cmFjZSBhbmFseXNpcyB3aXRoIGNvc3QgZXN0aW1hdGlvbiBhbmQgc21hcnQgc2FtcGxpbmdcbiAqXG4gKiBLZXkgaW1wcm92ZW1lbnRzIG92ZXIgdjEgRXhwbGFpbmVyOlxuICogLSBVc2VyLXNlbGVjdGVkIHRyYWNlIGFuYWx5c2lzIChub3QgYXV0b21hdGljKVxuICogLSBDb3N0IGVzdGltYXRpb24gYmVmb3JlIGV4ZWN1dGlvblxuICogLSBTbWFydCBzYW1wbGluZyBzdHJhdGVnaWVzXG4gKiAtIFJvb3QgY2F1c2UgYW5hbHlzaXMgYnkgbGF5ZXJcbiAqIC0gUGF0dGVybiBhZ2dyZWdhdGlvbiBhY3Jvc3MgdHJhY2VzXG4gKlxuICogQHNpbmNlIDMuMS4wXG4gKi9cbmV4cG9ydCBjb25zdCBhbmFseXplciA9IHtcbiAgLyoqXG4gICAqIEFuYWx5emUgc3BlY2lmaWMgdHJhY2VzICh1c2VyLXNlbGVjdGVkKVxuICAgKi9cbiAgYXN5bmMgYW5hbHl6ZShvcHRpb25zOiB7XG4gICAgdHJhY2VJZHM6IHN0cmluZ1tdO1xuICAgIHRpZXI/OiAnZmFzdCcgfCAnc3RhbmRhcmQnIHwgJ2RlZXAnO1xuICAgIGluY2x1ZGVSb290Q2F1c2U/OiBib29sZWFuO1xuICAgIGluY2x1ZGVMYXllcnM/OiBib29sZWFuO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IHRyYWNlSWRzLCB0aWVyLCBpbmNsdWRlUm9vdENhdXNlLCBpbmNsdWRlTGF5ZXJzIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKCcvYW5hbHl6ZXIvYW5hbHl6ZScsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICB0cmFjZUlkcyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHRpZXIsXG4gICAgICAgICAgaW5jbHVkZVJvb3RDYXVzZSxcbiAgICAgICAgICBpbmNsdWRlTGF5ZXJzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MicsXG4gICAgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFuYWx5emUgdHJhY2VzIGJ5IHRpbWUgd2luZG93XG4gICAqL1xuICBhc3luYyBhbmFseXplV2luZG93KG9wdGlvbnM6IHtcbiAgICBhZ2VudElkOiBzdHJpbmc7XG4gICAgc3RhcnREYXRlOiBEYXRlO1xuICAgIGVuZERhdGU6IERhdGU7XG4gICAgZmlsdGVycz86IHtcbiAgICAgIG91dGNvbWVzPzogKCdmYWlsdXJlJyB8ICdlcnJvcicgfCAnc3VjY2VzcycpW107XG4gICAgICBtaW5TZXZlcml0eT86ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnO1xuICAgIH07XG4gICAgc2FtcGxpbmc/OiB7XG4gICAgICBzdHJhdGVneTogJ2FsbCcgfCAnZmFpbHVyZXNfb25seScgfCAnc21hcnQnIHwgJ3JhbmRvbSc7XG4gICAgICBzYW1wbGVQZXJjZW50PzogbnVtYmVyO1xuICAgIH07XG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpUmVxdWVzdFdpdGhEYXRhKCcvYW5hbHl6ZXIvYW5hbHl6ZS13aW5kb3cnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc3RhcnREYXRlOiBvcHRpb25zLnN0YXJ0RGF0ZS50b0lTT1N0cmluZygpLFxuICAgICAgICBlbmREYXRlOiBvcHRpb25zLmVuZERhdGUudG9JU09TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uOiAndjInLFxuICAgIH0pO1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgYW55KS5kYXRhIHx8IHJlc3BvbnNlO1xuICB9LFxuXG4gIC8qKlxuICAgKiBFc3RpbWF0ZSBjb3N0IGJlZm9yZSBydW5uaW5nIGFuYWx5c2lzXG4gICAqL1xuICBhc3luYyBlc3RpbWF0ZUNvc3Qob3B0aW9uczoge1xuICAgIHRyYWNlSWRzPzogc3RyaW5nW107XG4gICAgYWdlbnRJZD86IHN0cmluZztcbiAgICBzdGFydERhdGU/OiBEYXRlO1xuICAgIGVuZERhdGU/OiBEYXRlO1xuICAgIHRpZXI6ICdmYXN0JyB8ICdzdGFuZGFyZCcgfCAnZGVlcCc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICBlc3RpbWF0ZWRUcmFjZXM6IG51bWJlcjtcbiAgICBlc3RpbWF0ZWRUb2tlbnM6IG51bWJlcjtcbiAgICBlc3RpbWF0ZWRDb3N0OiBudW1iZXI7XG4gICAgZXN0aW1hdGVkQ3JlZGl0czogbnVtYmVyO1xuICAgIHRpZXI6IHN0cmluZztcbiAgICBub3RlOiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YSgnL2FuYWx5emVyL2VzdGltYXRlLWNvc3QnLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgc3RhcnREYXRlOiBvcHRpb25zLnN0YXJ0RGF0ZT8udG9JU09TdHJpbmcoKSxcbiAgICAgICAgZW5kRGF0ZTogb3B0aW9ucy5lbmREYXRlPy50b0lTT1N0cmluZygpLFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb246ICd2MicsXG4gICAgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEdldCBhbmFseXNpcyByZXN1bHRzIGZvciBhIHNwZWNpZmljIHRyYWNlXG4gICAqL1xuICBhc3luYyBnZXQodHJhY2VJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YShgL2FuYWx5emVyLyR7dHJhY2VJZH1gLCB7IGFwaVZlcnNpb246ICd2MicgfSk7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBhbnkpLmRhdGEgfHwgcmVzcG9uc2U7XG4gIH0sXG5cbiAgLyoqXG4gICAqIEFnZ3JlZ2F0ZSBpbnNpZ2h0cyBhY3Jvc3MgbXVsdGlwbGUgYW5hbHl6ZWQgdHJhY2VzXG4gICAqL1xuICBhc3luYyBzdW1tYXJpemUob3B0aW9uczoge1xuICAgIGFuYWx5c2lzSWRzPzogc3RyaW5nW107XG4gICAgYWdlbnRJZD86IHN0cmluZztcbiAgICBzdGFydERhdGU/OiBEYXRlO1xuICAgIGVuZERhdGU/OiBEYXRlO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaVJlcXVlc3RXaXRoRGF0YSgnL2FuYWx5emVyL3N1bW1hcml6ZScsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keToge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzdGFydERhdGU6IG9wdGlvbnMuc3RhcnREYXRlPy50b0lTT1N0cmluZygpLFxuICAgICAgICBlbmREYXRlOiBvcHRpb25zLmVuZERhdGU/LnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogJ3YyJyxcbiAgICB9KTtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIGFueSkuZGF0YSB8fCByZXNwb25zZTtcbiAgfSxcbn07XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1JTlNUUlVNRU5UQVRJT05cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZnVuY3Rpb24gc2V0dXBBdXRvSW5zdHJ1bWVudGF0aW9uKFxuICBmcmFtZXdvcmtzOiBpbXBvcnQoJy4vY29yZS90eXBlcycpLkZyYW1ld29ya1tdXG4pOiB2b2lkIHtcbiAgZGVidWdMb2coYFNldHRpbmcgdXAgYXV0by1pbnN0cnVtZW50YXRpb24gZm9yOiAke2ZyYW1ld29ya3Muam9pbignLCAnKX1gKTtcblxuICBmb3IgKGNvbnN0IGZyYW1ld29yayBvZiBmcmFtZXdvcmtzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAoZnJhbWV3b3JrKSB7XG4gICAgICAgIGNhc2UgJ29wZW5haSc6XG4gICAgICAgIGNhc2UgJ29wZW5haS1hc3Npc3RhbnRzJzpcbiAgICAgICAgICBkZWJ1Z0xvZygnT3BlbkFJIGluc3RydW1lbnRhdGlvbiByZWFkeSAodXNlIGluc3RydW1lbnRPcGVuQUlDbGllbnQpJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhbmdjaGFpbic6XG4gICAgICAgIGNhc2UgJ2xhbmdncmFwaCc6XG4gICAgICAgICAgZGVidWdMb2coJ0xhbmdDaGFpbi9MYW5nR3JhcGggaW5zdHJ1bWVudGF0aW9uIHJlYWR5ICh1c2UgVGhpbmtIaXZlQ2FsbGJhY2tIYW5kbGVyKScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhbnRocm9waWMnOlxuICAgICAgICAgIGRlYnVnTG9nKCdBbnRocm9waWMgaW5zdHJ1bWVudGF0aW9uIHJlYWR5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xsYW1haW5kZXgnOlxuICAgICAgICAgIGRlYnVnTG9nKCdMbGFtYUluZGV4IGluc3RydW1lbnRhdGlvbiByZWFkeScpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduOG4nOlxuICAgICAgICAgIGRlYnVnTG9nKCduOG4gaW5zdHJ1bWVudGF0aW9uIHJlYWR5Jyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3ZvaWNlZmxvdyc6XG4gICAgICAgICAgZGVidWdMb2coJ1ZvaWNlZmxvdyBpbnN0cnVtZW50YXRpb24gcmVhZHknKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZGVidWdMb2coYEZhaWxlZCB0byBzZXR1cCAke2ZyYW1ld29ya30gaW5zdHJ1bWVudGF0aW9uOmAsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUkUtRVhQT1JUUyAobm9uLWR1cGxpY2F0ZWQpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFJlLWV4cG9ydCBmcm9tIGNvbmZpZyAobm90IHlldCBleHBvcnRlZClcbmV4cG9ydCB7IGlzSW5pdGlhbGl6ZWQsIFNES19WRVJTSU9OLCBERUZBVUxUX0VORFBPSU5UIH07XG5cbi8vIFJlLWV4cG9ydCBBUEkgY2xpZW50cyAodjMpXG5leHBvcnQge1xuICBydW5zLFxuICBjbGFpbXMsXG4gIGNhbGlicmF0aW9uLFxuICBsaW5raW5nLFxuICBjdXN0b21lckNvbnRleHQsXG4gIC8vIE5ldyBldmFsdWF0aW9uIEFQSXNcbiAgaHVtYW5SZXZpZXcsXG4gIG5vbmRldGVybWluaXNtLFxuICBldmFsSGVhbHRoLFxuICBkZXRlcm1pbmlzdGljR3JhZGVycyxcbiAgY29udmVyc2F0aW9uRXZhbCxcbiAgdHJhbnNjcmlwdFBhdHRlcm5zLFxuICAvLyBBUEkgS2V5IE1hbmFnZW1lbnQgKFBoYXNlIDIgU2VjdXJpdHkpXG4gIGFwaUtleXMsXG4gIC8vIEFnZW50cyBNYW5hZ2VtZW50XG4gIGFnZW50cyxcbiAgLy8gUk9JIEFuYWx5dGljcywgUXVhbGl0eSBNZXRyaWNzLCBhbmQgQnVzaW5lc3MgTWV0cmljc1xuICByb2lBbmFseXRpY3MsXG4gIHF1YWxpdHlNZXRyaWNzLFxuICBidXNpbmVzc01ldHJpY3MsXG4gIC8vIEV2YWwgUnVucywgU2lnbmFscywgTm90aWZpY2F0aW9ucywgRG9jdW1lbnRzLCBTaGFkb3cgVGVzdHMsIFNlc3Npb25zLCBEcmlmdCwgTExNIENvc3RzXG4gIGV2YWxSdW5zLFxuICBzaWduYWxzLFxuICBub3RpZmljYXRpb25zLFxuICBkb2N1bWVudHMsXG4gIHNoYWRvd1Rlc3RzLFxuICBzZXNzaW9ucyxcbiAgZHJpZnQsXG4gIGxsbUNvc3RzLFxuICAvLyBHdWFyZHJhaWxzXG4gIGd1YXJkcmFpbHMsXG59O1xuXG4vLyBOb3RlOiBpc3N1ZXMsIGFuYWx5emVyLCBhbmQgZ3VhcmRyYWlscyBhcmUgYWxyZWFkeSBleHBvcnRlZCB2aWEgJ2V4cG9ydCBjb25zdCcgYWJvdmVcblxuLy8gUmUtZXhwb3J0IGhlbHBlciBmdW5jdGlvbnNcbmV4cG9ydCB7XG4gIC8vIFJ1bnMgaGVscGVyc1xuICBjcmVhdGVSdW5XaXRoQ29udGV4dCxcbiAgdG9PcGVuQUlNZXNzYWdlcyxcbiAgZnJvbU9wZW5BSU1lc3NhZ2VzLFxuICAvLyBDbGFpbXMgaGVscGVyc1xuICBpc0ZhY3QsXG4gIGlzSW5mZXJlbmNlLFxuICBpc0NvbXB1dGVkLFxuICBnZXRIaWdoQ29uZmlkZW5jZUNsYWltcyxcbiAgZ3JvdXBDbGFpbXNCeVR5cGUsXG4gIGdyb3VwQ2xhaW1zQnlDYXRlZ29yeSxcbiAgLy8gQ2FsaWJyYXRpb24gaGVscGVyc1xuICBjYWxjdWxhdGVCcmllclNjb3JlLFxuICBjYWxjdWxhdGVFQ0UsXG4gIGlzV2VsbENhbGlicmF0ZWQsXG4gIGdldENhbGlicmF0aW9uUXVhbGl0eSxcbiAgLy8gTGlua2luZyBoZWxwZXJzXG4gIGdlbmVyYXRlWmVuZGVza01hcmtlcixcbiAgcGFyc2VaZW5kZXNrTWFya2VyLFxuICBoYXNaZW5kZXNrTWFya2VyLFxuICByZW1vdmVaZW5kZXNrTWFya2VyLFxuICBsaW5rUnVuVG9UaWNrZXQsXG4gIGxpbmtSdW5Ub1plbmRlc2tUaWNrZXQsXG4gIGdldEJlc3RMaW5rTWV0aG9kLFxuICBMSU5LX01FVEhPRF9DT05GSURFTkNFLFxuICAvLyBDdXN0b21lciBjb250ZXh0IGhlbHBlcnNcbiAgY2FwdHVyZUN1c3RvbWVyQ29udGV4dCxcbiAgZ2V0Q29udGV4dEFzT2YsXG4gIHRvQ29udGV4dFNuYXBzaG90LFxuICBjYWxjdWxhdGVBcnJDaGFuZ2UsXG4gIGNhbGN1bGF0ZUhlYWx0aFRyZW5kLFxuICAvLyBOb24tZGV0ZXJtaW5pc20gaGVscGVyc1xuICBjYWxjdWxhdGVQYXNzQXRLLFxuICBjYWxjdWxhdGVQYXNzVG9LLFxuICByZXF1aXJlZFBhc3NSYXRlRm9yUGFzc0F0SyxcbiAgaXNSZWxpYWJsZUV2YWx1YXRpb24sXG4gIGdldFJlbGlhYmlsaXR5UmVjb21tZW5kYXRpb24sXG4gIC8vIEV2YWwgaGVhbHRoIGhlbHBlcnNcbiAgaGFzSGVhbHRoSXNzdWUsXG4gIGdldEhlYWx0aFNldmVyaXR5TGV2ZWwsXG4gIGlzU2F0dXJhdGVkLFxuICBnZXRTYXR1cmF0aW9uUmVjb21tZW5kYXRpb24sXG4gIC8vIERldGVybWluaXN0aWMgZ3JhZGVycyBoZWxwZXJzXG4gIGNyZWF0ZVJlZ2V4UnVsZSxcbiAgY3JlYXRlQ29udGFpbnNSdWxlLFxuICBjcmVhdGVMZW5ndGhSdWxlLFxuICBjcmVhdGVKc29uU2NoZW1hUnVsZSxcbiAgYWxsUnVsZXNQYXNzZWQsXG4gIGdldEZhaWxlZFJ1bGVzLFxuICBjYWxjdWxhdGVBdmVyYWdlU2NvcmUsXG4gIC8vIENvbnZlcnNhdGlvbiBldmFsIGhlbHBlcnNcbiAgYWdncmVnYXRlV29yc3QsXG4gIGFnZ3JlZ2F0ZUF2ZXJhZ2UsXG4gIGFnZ3JlZ2F0ZVdlaWdodGVkLFxuICBhZ2dyZWdhdGVGaW5hbFR1cm4sXG4gIGFnZ3JlZ2F0ZU1ham9yaXR5LFxuICBnZXRBZ2dyZWdhdG9yLFxuICBnZXRQcm9ibGVtYXRpY1R1cm5zLFxuICBhbmFseXplQ29udmVyc2F0aW9uVHJlbmQsXG4gIC8vIFRyYW5zY3JpcHQgcGF0dGVybnMgaGVscGVyc1xuICBpc0hpZ2hSaXNrLFxuICBnZXRNYXRjaGVzQnlDYXRlZ29yeSxcbiAgZ2V0Q3JpdGljYWxJbnNpZ2h0cyxcbiAgaGFzUGlpRXhwb3N1cmUsXG4gIGhhc0ZydXN0cmF0aW9uU2lnbmFscyxcbiAgaGFzRXNjYWxhdGlvblJlcXVlc3QsXG4gIGdldENhdGVnb3J5RGlzdHJpYnV0aW9uLFxuICBnZXRSZWNvbW1lbmRhdGlvbnMsXG4gIG5lZWRzQXR0ZW50aW9uLFxuICBzb3J0TWF0Y2hlc0J5U2V2ZXJpdHksXG4gIC8vIEFQSSBLZXkgaGVscGVyc1xuICBoYXNQZXJtaXNzaW9uLFxuICBpc0FwaUtleUV4cGlyZWQsXG4gIGlzQXBpS2V5VmFsaWQsXG4gIGdldFRpbWVVbnRpbEV4cGlyeSxcbiAgY2FuQWNjZXNzQWdlbnQsXG4gIC8vIFJPSSBBbmFseXRpY3MgaGVscGVyc1xuICBjYWxjdWxhdGVSZXZlbnVlQXRSaXNrLFxuICBjYWxjdWxhdGVBdXRvbWF0aW9uU2F2aW5ncyxcbiAgZm9ybWF0Q3VycmVuY3ksXG4gIGdldFJPSVF1YWxpdHksXG4gIC8vIFF1YWxpdHkgTWV0cmljcyBoZWxwZXJzXG4gIHBhc3Nlc1F1YWxpdHlUaHJlc2hvbGQsXG4gIGlzSGFsbHVjaW5hdGlvblJpc2tBY2NlcHRhYmxlLFxuICBnZXRRdWFsaXR5UmVjb21tZW5kYXRpb25zLFxuICBmb3JtYXRRdWFsaXR5U2NvcmUsXG4gIGdldEdyYWRlQ29sb3IsXG4gIC8vIEJ1c2luZXNzIE1ldHJpY3MgaGVscGVyc1xuICBpc01ldHJpY1JlYWR5LFxuICBuZWVkc01vcmVUcmFjZXMsXG4gIGF3YWl0aW5nRXh0ZXJuYWxEYXRhLFxuICBpc01ldHJpY1N0YWxlLFxuICBnZXRTdGF0dXNNZXNzYWdlLFxuICBnZXRUcmFjZVByb2dyZXNzLFxuICBmb3JtYXRNZXRyaWNWYWx1ZSxcbiAgZ2V0VHJlbmRFbW9qaSxcbiAgLy8gRHJpZnQgaGVscGVyc1xuICBoYXNEcmlmdCxcbiAgZ2V0RHJpZnRTZXZlcml0eSxcbiAgLy8gTExNIENvc3RzIGhlbHBlcnNcbiAgZm9ybWF0TExNQ29zdCxcbn07XG5cbi8vIFJlLWV4cG9ydCBHdWFyZHJhaWxzXG5leHBvcnQgeyB0eXBlIFNjYW5SZXF1ZXN0LCB0eXBlIFNjYW5SZXNwb25zZSwgdHlwZSBGaW5kaW5nLCB0eXBlIFNjYW5uZXJSZXN1bHQgfSBmcm9tICcuL2d1YXJkcmFpbHMnO1xuXG4vLyBSZS1leHBvcnQgZXJyb3JzIChpbmNsdWRpbmcgbmV3IHNlY3VyaXR5IGVycm9ycylcbmV4cG9ydCB7XG4gIFRoaW5rSGl2ZUVycm9yLFxuICBUaGlua0hpdmVBcGlFcnJvcixcbiAgVGhpbmtIaXZlVmFsaWRhdGlvbkVycm9yLFxuICBQZXJtaXNzaW9uRGVuaWVkRXJyb3IsXG4gIEFnZW50U2NvcGVFcnJvcixcbiAgUmF0ZUxpbWl0RXJyb3IsXG4gIElwV2hpdGVsaXN0RXJyb3IsXG59O1xuXG4vLyBEZWZhdWx0IGV4cG9ydCBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCBkZWZhdWx0IHtcbiAgaW5pdCxcbiAgZ2V0VHJhY2VyLFxuICBzaHV0ZG93bixcbiAgaXNJbml0aWFsaXplZCxcbiAgLy8gVHJhY2luZ1xuICB0cmFjZUxMTSxcbiAgdHJhY2VSZXRyaWV2YWwsXG4gIHRyYWNlVG9vbCxcbiAgdHJhY2VDaGFpbixcbiAgLy8gQVBJIGNsaWVudHNcbiAgcnVucyxcbiAgY2xhaW1zLFxuICBjYWxpYnJhdGlvbixcbiAgbGlua2luZyxcbiAgY3VzdG9tZXJDb250ZXh0LFxuICAvLyBFdmFsdWF0aW9uIEFQSXNcbiAgaHVtYW5SZXZpZXcsXG4gIG5vbmRldGVybWluaXNtLFxuICBldmFsSGVhbHRoLFxuICBkZXRlcm1pbmlzdGljR3JhZGVycyxcbiAgY29udmVyc2F0aW9uRXZhbCxcbiAgdHJhbnNjcmlwdFBhdHRlcm5zLFxuICAvLyBBUEkgS2V5IE1hbmFnZW1lbnQgKFBoYXNlIDIgU2VjdXJpdHkpXG4gIGFwaUtleXMsXG4gIC8vIEFnZW50cyBNYW5hZ2VtZW50XG4gIGFnZW50cyxcbiAgLy8gSXNzdWVzIGFuZCBBbmFseXplciBBUElzXG4gIGlzc3VlcyxcbiAgYW5hbHl6ZXIsXG4gIC8vIFJPSSBBbmFseXRpY3MsIFF1YWxpdHkgTWV0cmljcywgYW5kIEJ1c2luZXNzIE1ldHJpY3NcbiAgcm9pQW5hbHl0aWNzLFxuICBxdWFsaXR5TWV0cmljcyxcbiAgYnVzaW5lc3NNZXRyaWNzLFxuICAvLyBFdmFsIFJ1bnMsIFNpZ25hbHMsIE5vdGlmaWNhdGlvbnMsIERvY3VtZW50cywgU2hhZG93IFRlc3RzLCBTZXNzaW9ucywgRHJpZnQsIExMTSBDb3N0c1xuICBldmFsUnVucyxcbiAgc2lnbmFscyxcbiAgbm90aWZpY2F0aW9ucyxcbiAgZG9jdW1lbnRzLFxuICBzaGFkb3dUZXN0cyxcbiAgc2Vzc2lvbnMsXG4gIGRyaWZ0LFxuICBsbG1Db3N0cyxcbiAgLy8gR3VhcmRyYWlsc1xuICBndWFyZHJhaWxzLFxuICAvLyBIZWxwZXJzXG4gIGdlbmVyYXRlWmVuZGVza01hcmtlcixcbiAgcGFyc2VaZW5kZXNrTWFya2VyLFxuICBsaW5rUnVuVG9UaWNrZXQsXG4gIGNyZWF0ZVJ1bldpdGhDb250ZXh0LFxuICAvLyBVdGlsaXRpZXNcbiAgaXNGYWN0LFxuICBpc0luZmVyZW5jZSxcbiAgY2FsY3VsYXRlQnJpZXJTY29yZSxcbiAgaXNXZWxsQ2FsaWJyYXRlZCxcbiAgY2FsY3VsYXRlUGFzc0F0SyxcbiAgaXNSZWxpYWJsZUV2YWx1YXRpb24sXG4gIGlzSGlnaFJpc2ssXG4gIG5lZWRzQXR0ZW50aW9uLFxuICAvLyBST0kgaGVscGVyc1xuICBjYWxjdWxhdGVSZXZlbnVlQXRSaXNrLFxuICBmb3JtYXRDdXJyZW5jeSxcbiAgLy8gUXVhbGl0eSBoZWxwZXJzXG4gIHBhc3Nlc1F1YWxpdHlUaHJlc2hvbGQsXG4gIGlzSGFsbHVjaW5hdGlvblJpc2tBY2NlcHRhYmxlLFxuICAvLyBCdXNpbmVzcyBNZXRyaWNzIGhlbHBlcnNcbiAgaXNNZXRyaWNSZWFkeSxcbiAgbmVlZHNNb3JlVHJhY2VzLFxuICBnZXRTdGF0dXNNZXNzYWdlLFxuICAvLyBEcmlmdCBoZWxwZXJzXG4gIGhhc0RyaWZ0LFxuICBnZXREcmlmdFNldmVyaXR5LFxuICAvLyBMTE0gQ29zdHMgaGVscGVyc1xuICBmb3JtYXRMTE1Db3N0LFxufTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thinkhive/sdk",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.5",
|
|
4
4
|
"description": "ThinkHive SDK v4.0 - AI agent observability with business metrics, ROI analytics, and 25+ trace format support",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -81,23 +81,23 @@
|
|
|
81
81
|
"node": ">=18.0.0"
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"@opentelemetry/api": "^1.
|
|
85
|
-
"@opentelemetry/exporter-trace-otlp-proto": "^0.
|
|
86
|
-
"@opentelemetry/resources": "^
|
|
87
|
-
"@opentelemetry/sdk-trace-
|
|
88
|
-
"@opentelemetry/sdk-trace-
|
|
84
|
+
"@opentelemetry/api": "^1.9.0",
|
|
85
|
+
"@opentelemetry/exporter-trace-otlp-proto": "^0.213.0",
|
|
86
|
+
"@opentelemetry/resources": "^2.6.0",
|
|
87
|
+
"@opentelemetry/sdk-trace-base": "^2.6.0",
|
|
88
|
+
"@opentelemetry/sdk-trace-node": "^2.6.0"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|
|
91
91
|
"@types/node": "^20.0.0",
|
|
92
|
-
"typescript": "^5.0.0",
|
|
93
|
-
"vitest": "^1.0.0",
|
|
94
|
-
"eslint": "^8.0.0",
|
|
95
92
|
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
96
|
-
"@typescript-eslint/parser": "^6.0.0"
|
|
93
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
94
|
+
"eslint": "^8.0.0",
|
|
95
|
+
"typescript": "^5.0.0",
|
|
96
|
+
"vitest": "^1.0.0"
|
|
97
97
|
},
|
|
98
98
|
"peerDependencies": {
|
|
99
|
-
"
|
|
100
|
-
"
|
|
99
|
+
"@langchain/core": ">=0.1.0",
|
|
100
|
+
"openai": ">=4.0.0"
|
|
101
101
|
},
|
|
102
102
|
"peerDependenciesMeta": {
|
|
103
103
|
"openai": {
|