@jjrawlins/cdk-diff-pr-github-action 0.0.10-beta → 0.0.12-beta
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.
|
@@ -141,11 +141,21 @@ class CdkDriftDetectionWorkflow {
|
|
|
141
141
|
'script': notificationScript(sanitizedStackName, stack.driftDetectionRoleToAssumeRegion, resultsFile),
|
|
142
142
|
},
|
|
143
143
|
},
|
|
144
|
-
...postSteps.map((step) =>
|
|
144
|
+
...postSteps.map((step) => {
|
|
145
|
+
const s = { ...step };
|
|
145
146
|
// By default, only run extra notification steps when drift occurs
|
|
146
|
-
if
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
s.if = s.if ?? "always() && steps.drift.outcome == 'failure'";
|
|
148
|
+
// If this is the Slack GitHub Action and no payload is provided, wire the prepared payload
|
|
149
|
+
const uses = (s.uses ?? '').toString().toLowerCase();
|
|
150
|
+
const isSlackAction = uses.includes('slackapi/slack-github-action');
|
|
151
|
+
if (isSlackAction) {
|
|
152
|
+
s.with = { ...(s.with ?? {}) };
|
|
153
|
+
if (s.with.payload == null) {
|
|
154
|
+
s.with.payload = '${{ steps.notify.outputs.result }}';
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return s;
|
|
158
|
+
}),
|
|
149
159
|
...(createIssues
|
|
150
160
|
? [
|
|
151
161
|
{
|
|
@@ -317,4 +327,4 @@ function toGithubJobId(s) {
|
|
|
317
327
|
}
|
|
318
328
|
return out;
|
|
319
329
|
}
|
|
320
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RrRHJpZnREZXRlY3Rpb25Xb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DZGtEcmlmdERldGVjdGlvbldvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQTJEO0FBQzNELHVFQUFrRTtBQUNsRSxpRkFBMkU7QUFFM0UsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLENBQUM7QUFDaEQsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLENBQUM7QUFDaEQsTUFBTSxvQ0FBb0MsR0FBRyxJQUFJLENBQUM7QUFDbEQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLENBQUM7QUErQzlDLE1BQWEseUJBQXlCO0lBR3BDLFlBQVksS0FBcUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxpQkFBaUIsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1FBQ2hELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxnQkFBZ0IsR0FBRSxLQUFLLENBQUMsZ0JBQWdCLElBQUksMkNBQTJDLENBQUM7UUFFOUYsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxJQUFJLG9EQUF1QixDQUFDO2dCQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFVBQVUsRUFBRSxnQkFBZ0I7YUFDN0IsQ0FBQyxDQUFDO1lBQ0gseUJBQXlCLENBQUMsYUFBYSxH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QztBQUdELFNBQVMsYUFBYSxDQUFDLENBQVM7SUFDOUIsNEZBQTRGO0lBQzVGLDJDQUEyQztJQUMzQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLGlDQUFpQztJQUNqQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUIscUVBQXFFO0lBQ3JFLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxnRkFBZ0Y7SUFDaEYsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxHQUFHLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2l0SHViLCBHaXRodWJXb3JrZmxvdyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViJztcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24gfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHsgQ2RrRHJpZnREZXRlY3Rpb25TY3JpcHQgfSBmcm9tICcuL2Jpbi9jZGstZHJpZnQtZGV0ZWN0aW9uLXNjcmlwdCc7XG5cbmNvbnN0IGdpdGh1YkFjdGlvbnNBd3NDcmVkZW50aWFsc1ZlcnNpb24gPSAndjUnO1xuY29uc3QgZ2l0aHViQWN0aW9uc0NoZWNrb3V0VmVyc2lvbiA9ICd2NSc7XG5jb25zdCBnaXRodWJBY3Rpb25zU2V0dXBOb2RlVmVyc2lvbiA9ICd2NSc7XG5jb25zdCBnaXRodWJBY3Rpb25zVXBsb2FkQXJ0aWZhY3RWZXJzaW9uID0gJ3Y0JztcbmNvbnN0IGdpdGh1YkFjdGlvbnNEb3dubG9hZEFydGlmYWN0VmVyc2lvbiA9ICd2NSc7XG5jb25zdCBnaXRodWJBY3Rpb25zR2l0aHViU2NyaXB0VmVyc2lvbiA9ICd2OCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2sge1xuICByZWFkb25seSBzdGFja05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgZmFpbE9uRHJpZnQ/OiBib29sZWFuOyAvLyBpZiB0cnVlLCBmYWlsIGpvYiB3aGVuIGRyaWZ0IGRldGVjdGVkIChkZWZhdWx0IHRydWUpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRHJpZnREZXRlY3Rpb25Xb3JrZmxvd1Byb3BzIHtcbiAgcmVhZG9ubHkgc2NyaXB0T3V0cHV0UGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdDogYW55OyAvLyBhdm9pZCBleHBvcnRpbmcgcHJvamVuIHR5cGVzIGluIHB1YmxpYyBBUElcbiAgcmVhZG9ubHkgd29ya2Zsb3dOYW1lPzogc3RyaW5nOyAvLyB3b3JrZmxvdyB3b3JrZmxvd05hbWUgKGFsc28gdXNlZCB0byBkZXJpdmUgZmlsZSB3b3JrZmxvd05hbWUpXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nOyAvLyBjcm9uIGV4cHJlc3Npb24sIGUuZy4gJzAgMCAqICogKidcbiAgcmVhZG9ubHkgY3JlYXRlSXNzdWVzPzogYm9vbGVhbjsgLy8gY3JlYXRlL3VwZGF0ZSBpc3N1ZSB3aGVuIGRyaWZ0IGRldGVjdGVkIG9uIHNjaGVkdWxlIChkZWZhdWx0IHRydWUpXG4gIHJlYWRvbmx5IG9pZGNSb2xlQXJuOiBzdHJpbmc7IC8vIGRlZmF1bHQgT0lEQyByb2xlIEFSTiB0byBhc3N1bWUgZm9yIGFsbCBzdGFja3NcbiAgcmVhZG9ubHkgb2lkY1JlZ2lvbjogc3RyaW5nOyAvLyBkZWZhdWx0IE9JREMgcmVnaW9uIHRvIGFzc3VtZSBmb3IgYWxsIHN0YWNrc1xuICByZWFkb25seSBzdGFja3M6IFN0YWNrW107XG4gIHJlYWRvbmx5IG5vZGVWZXJzaW9uPzogc3RyaW5nOyAvLyBlLmcuLCAnMjQueCdcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGhvb2sgdG8gYXBwZW5kIGFkZGl0aW9uYWwgR2l0SHViIEFjdGlvbnMgc3RlcHMgYWZ0ZXIgZHJpZnQgZGV0ZWN0aW9uIHBlciBzdGFjay5cbiAgICogWW91IGNhbiBzdXBwbHkgYSBzdGF0aWMgYXJyYXkgb2Ygc3RlcHMsIG9yIGEgZmFjdG9yeSB0aGF0IHJlY2VpdmVzIGNvbnRleHQgYW5kIHJldHVybnMgc3RlcHMuXG4gICAqL1xuICAvKipcbiAgICogT3B0aW9uYWwgYWRkaXRpb25hbCBHaXRIdWIgQWN0aW9uIHN0ZXBzIHRvIHJ1biBhZnRlciBkcmlmdCBkZXRlY3Rpb24gZm9yIGVhY2ggc3RhY2suXG4gICAqIFRoZXNlIHN0ZXBzIGFyZSBpbnNlcnRlZCBhZnRlciBhICdQcmVwYXJlIG5vdGlmaWNhdGlvbiBwYXlsb2FkJyBzdGVwIHdoaWNoIGV4cG9zZXNcbiAgICogYSBTbGFjay1jb21wYXRpYmxlIEpTT04gcGF5bG9hZCBhdCBgJHt7IHN0ZXBzLm5vdGlmeS5vdXRwdXRzLnJlc3VsdCB9fWAuXG4gICAqL1xuICAvLyBOT1RFOiBqc2lpIGRvZXMgbm90IHN1cHBvcnQgZnVuY3Rpb24gdHlwZXMgaW4gcHVibGljIEFQSXM7IHVzZSAnYW55JyBoZXJlIGFuZCBhY2NlcHQgZWl0aGVyOlxuICAvLyAtIEFuIGFycmF5IG9mIEdpdEh1YiBzdGVwcywgb3JcbiAgLy8gLSBBIGZ1bmN0aW9uIChjdHg6IHsgc3RhY2s6IHN0cmluZyB9KSA9PiBHaXRIdWJTdGVwW11cbiAgLy8gVGhlIGNvbnN0cnVjdG9yIGhhbmRsZXMgYm90aCBhdCBydW50aW1lLlxuICByZWFkb25seSBwb3N0R2l0SHViU3RlcHM/OiBhbnk7XG59XG5cbnR5cGUgR2l0SHViU3RlcCA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGlmPzogc3RyaW5nO1xuICB1c2VzPzogc3RyaW5nO1xuICBydW4/OiBzdHJpbmc7XG4gIHdpdGg/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBjb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xuICBzaGVsbD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjbGFzcyBDZGtEcmlmdERldGVjdGlvbldvcmtmbG93IHtcbiAgcHJpdmF0ZSBzdGF0aWMgc2NyaXB0Q3JlYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDZGtEcmlmdERldGVjdGlvbldvcmtmbG93UHJvcHMpIHtcbiAgICBjb25zdCBuYW1lID0gcHJvcHMud29ya2Zsb3dOYW1lID8/ICdkcmlmdC1kZXRlY3Rpb24nO1xuICAgIGNvbnN0IGZpbGVOYW1lID0gdG9LZWJhYkNhc2UobmFtZSkgKyAnLnltbCc7XG4gICAgY29uc3Qgbm9kZVZlcnNpb24gPSBwcm9wcy5ub2RlVmVyc2lvbiA/PyAnMjQueCc7XG4gICAgY29uc3QgY3JlYXRlSXNzdWVzID0gcHJvcHMuY3JlYXRlSXNzdWVzID8/IHRydWU7XG4gICAgY29uc3QgcHJvamVjdCA9IHByb3BzLnByb2plY3Q7XG4gICAgY29uc3Qgc2NyaXB0T3V0cHV0UGF0aD0gcHJvcHMuc2NyaXB0T3V0cHV0UGF0aCA/PyAnLmdpdGh1Yi93b3JrZmxvd3Mvc2NyaXB0cy9kZXRlY3QtZHJpZnQudHMnO1xuXG4gICAgLy8gT25seSBjcmVhdGUgdGhlIGRyaWZ0IGRldGVjdGlvbiBzY3JpcHQgb25jZSB0byBhdm9pZCBjb2xsaXNpb25zXG4gICAgaWYgKCFDZGtEcmlmdERldGVjdGlvbldvcmtmbG93LnNjcmlwdENyZWF0ZWQpIHtcbiAgICAgIG5ldyBDZGtEcmlmdERldGVjdGlvblNjcmlwdCh7XG4gICAgICAgIHByb2plY3Q6IHByb3BzLnByb2plY3QsXG4gICAgICAgIG91dHB1dFBhdGg6IHNjcmlwdE91dHB1dFBhdGgsXG4gICAgICB9KTtcbiAgICAgIENka0RyaWZ0RGV0ZWN0aW9uV29ya2Zsb3cuc2NyaXB0Q3JlYXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZ2ggPSAocHJvamVjdCBhcyBhbnkpLmdpdGh1YiA/PyBuZXcgR2l0SHViKHByb2plY3QpO1xuICAgIGNvbnN0IHdvcmtmbG93ID0gbmV3IEdpdGh1YldvcmtmbG93KGdoLCBuYW1lLCB7IGZpbGVOYW1lIH0pO1xuXG4gICAgLy8gdHJpZ2dlcnM6IHNjaGVkdWxlICsgbWFudWFsIGRpc3BhdGNoIHdpdGggc3RhY2sgY2hvaWNlXG4gICAgY29uc3Qgc3RhY2tDaG9pY2VzID0gcHJvcHMuc3RhY2tzLm1hcCgocykgPT4gcy5zdGFja05hbWUpO1xuICAgIHdvcmtmbG93Lm9uKHtcbiAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSA/IFt7IGNyb246IHByb3BzLnNjaGVkdWxlIH1dIDogdW5kZWZpbmVkLFxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICBzdGFjazoge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTdGFjayB0byBjaGVjayBmb3IgZHJpZnQgKGxlYXZlIGVtcHR5IGZvciBhbGwpJyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICAgICAgb3B0aW9uczogc3RhY2tDaG9pY2VzLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gT25lIGpvYiBwZXIgc3RhY2tcbiAgICBjb25zdCBqb2JzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHN0YWNrIG9mIHByb3BzLnN0YWNrcykge1xuICAgICAgY29uc3Qgc2FuaXRpemVkU3RhY2tOYW1lID0gdG9LZWJhYkNhc2UodG9HaXRodWJKb2JJZChzdGFjay5zdGFja05hbWUpKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsU3RhY2tOYW1lID0gc3RhY2suc3RhY2tOYW1lO1xuICAgICAgY29uc3Qgam9iSWQgPSBgZHJpZnQtJHtzYW5pdGl6ZWRTdGFja05hbWV9YDtcbiAgICAgIGNvbnN0IHJlc3VsdHNGaWxlID0gYGRyaWZ0LXJlc3VsdHMtJHtzYW5pdGl6ZWRTdGFja05hbWV9Lmpzb25gO1xuICAgICAgY29uc3QgaW5uZXJDb25kID0gXCJnaXRodWIuZXZlbnRfbmFtZSA9PSAnc2NoZWR1bGUnIHx8ICFnaXRodWIuZXZlbnQuaW5wdXRzLnN0YWNrIHx8IGdpdGh1Yi5ldmVudC5pbnB1dHMuc3RhY2sgPT0gJ1wiICsgc2FuaXRpemVkU3RhY2tOYW1lICsgXCInIHx8IGdpdGh1Yi5ldmVudC5pbnB1dHMuc3RhY2sgPT0gJ1wiICsgb3JpZ2luYWxTdGFja05hbWUgKyBcIidcIjtcbiAgICAgIGNvbnN0IGNvbmRFeHByID0gJyR7eyAnICsgaW5uZXJDb25kICsgJyB9fSc7XG4gICAgICBjb25zdCBub3RDb25kRXhwciA9ICcke3sgISgnICsgaW5uZXJDb25kICsgJykgfX0nO1xuXG4gICAgICBjb25zdCByYXdQb3N0ID0gcHJvcHMucG9zdEdpdEh1YlN0ZXBzO1xuICAgICAgY29uc3QgcG9zdFN0ZXBzOiBHaXRIdWJTdGVwW10gPSB0eXBlb2YgcmF3UG9zdCA9PT0gJ2Z1bmN0aW9uJyA/IChyYXdQb3N0IGFzIChjdHg6IHsgc3RhY2s6IHN0cmluZyB9KSA9PiBHaXRIdWJTdGVwW10pKHsgc3RhY2s6IHNhbml0aXplZFN0YWNrTmFtZSB9KSA6IChyYXdQb3N0ID8/IFtdKTtcblxuICAgICAgam9ic1tqb2JJZF0gPSB7XG4gICAgICAgIG5hbWU6IGBEcmlmdCBEZXRlY3Rpb24gLSAke3Nhbml0aXplZFN0YWNrTmFtZX1gLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgICBpc3N1ZXM6IEpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICAgIH0sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIEFXU19ERUZBVUxUX1JFR0lPTjogc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb24sXG4gICAgICAgICAgQVdTX1JFR0lPTjogc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb24sXG4gICAgICAgICAgRFJJRlRfREVURUNUSU9OX09VVFBVVDogcmVzdWx0c0ZpbGUsXG4gICAgICAgICAgU1RBQ0tfSUQ6IHNhbml0aXplZFN0YWNrTmFtZSxcbiAgICAgICAgICBTVEFDS19OQU1FOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIE5vIGpvYi1sZXZlbCBjb25kaXRpb247IHdlIGdhdGUgc3RlcHMgc28gdGhlIGpvYiBhbHdheXMgY29tcGxldGVzIGFuZCBzdW1tYXJ5IGNhbiBydW5cbiAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICB7IG5hbWU6ICdTa2lwIChzdGFjayBub3Qgc2VsZWN0ZWQpJywgaWY6IG5vdENvbmRFeHByLCBydW46ICdlY2hvIFwiU3RhY2sgbm90IHNlbGVjdGVkOyBza2lwcGluZyBkcmlmdCBkZXRlY3Rpb24gZm9yIHRoaXMgam9iLlwiJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ0NoZWNrb3V0JywgaWY6IGNvbmRFeHByLCB1c2VzOiBgYWN0aW9ucy9jaGVja291dEAke2dpdGh1YkFjdGlvbnNDaGVja291dFZlcnNpb259YCB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgICAgIGlmOiBjb25kRXhwcixcbiAgICAgICAgICAgIHVzZXM6IGBhY3Rpb25zL3NldHVwLW5vZGVAJHtnaXRodWJBY3Rpb25zU2V0dXBOb2RlVmVyc2lvbn1gLFxuICAgICAgICAgICAgd2l0aDogeyAnbm9kZS12ZXJzaW9uJzogbm9kZVZlcnNpb24gfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJywgaWY6IGNvbmRFeHByLCBydW46ICd5YXJuIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUgfHwgbnBtIGNpJywgZW52OiB7IEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScgfSB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdBV1MgQ3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgaWY6IGNvbmRFeHByLFxuICAgICAgICAgICAgaWQ6ICdjcmVkcycsXG4gICAgICAgICAgICB1c2VzOiBgYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0Ake2dpdGh1YkFjdGlvbnNBd3NDcmVkZW50aWFsc1ZlcnNpb259YCxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogcHJvcHMub2lkY1JvbGVBcm4sXG4gICAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgICAgICAgICAnYXdzLXJlZ2lvbic6IHByb3BzLm9pZGNSZWdpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0Fzc3VtZSBEcmlmdCBEZXRlY3Rpb24gUm9sZScsXG4gICAgICAgICAgICBpZjogY29uZEV4cHIsXG4gICAgICAgICAgICB1c2VzOiBgYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0Ake2dpdGh1YkFjdGlvbnNBd3NDcmVkZW50aWFsc1ZlcnNpb259YCxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVBcm4sXG4gICAgICAgICAgICAgICdyb2xlLWNoYWluaW5nJzogdHJ1ZSxcbiAgICAgICAgICAgICAgJ3JvbGUtc2tpcC1zZXNzaW9uLXRhZ2dpbmcnOiB0cnVlLFxuICAgICAgICAgICAgICAnYXdzLXJlZ2lvbic6IHN0YWNrLmRyaWZ0RGV0ZWN0aW9uUm9sZVRvQXNzdW1lUmVnaW9uLFxuICAgICAgICAgICAgICAnYXdzLWFjY2Vzcy1rZXktaWQnOiAnJHt7IHN0ZXBzLmNyZWRzLm91dHB1dHMuYXdzLWFjY2Vzcy1rZXktaWQgfX0nLFxuICAgICAgICAgICAgICAnYXdzLXNlY3JldC1hY2Nlc3Mta2V5JzogJyR7eyBzdGVwcy5jcmVkcy5vdXRwdXRzLmF3cy1zZWNyZXQtYWNjZXNzLWtleSB9fScsXG4gICAgICAgICAgICAgICdhd3Mtc2Vzc2lvbi10b2tlbic6ICcke3sgc3RlcHMuY3JlZHMub3V0cHV0cy5hd3Mtc2Vzc2lvbi10b2tlbiB9fScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0RldGVjdCBkcmlmdCcsXG4gICAgICAgICAgICBpZjogY29uZEV4cHIsXG4gICAgICAgICAgICBpZDogJ2RyaWZ0JyxcbiAgICAgICAgICAgIGNvbnRpbnVlT25FcnJvcjogdHJ1ZSwgLy8gYWxsb3cgYXJ0aWZhY3QgdXBsb2FkIGFuZCBpc3N1ZSBjcmVhdGlvbiBldmVuIHdoZW4gZHJpZnQgaXMgZGV0ZWN0ZWRcbiAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAnc2V0IC1lJyxcbiAgICAgICAgICAgICAgLy8gVXNlIHRoZSBidW5kbGVkIHNjcmlwdCBmcm9tIHRoaXMgcGFja2FnZVxuICAgICAgICAgICAgICAnbm9kZSAuL25vZGVfbW9kdWxlcy9AampyYXdsaW5zL2Nkay1kaWZmLXByLWdpdGh1Yi1hY3Rpb24vbGliL2Jpbi9kZXRlY3QtZHJpZnQuanMnLFxuICAgICAgICAgICAgICAnaWYgWyAtZiBcIiREUklGVF9ERVRFQ1RJT05fT1VUUFVUXCIgXTsgdGhlbiBlY2hvIFwiUmVzdWx0cyBmaWxlIGNyZWF0ZWQ6ICREUklGVF9ERVRFQ1RJT05fT1VUUFVUXCI7IGZpJyxcbiAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgU1RBQ0tfTkFNRTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICAgICAgICBBV1NfUkVHSU9OOiBzdGFjay5kcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZVJlZ2lvbixcbiAgICAgICAgICAgICAgRFJJRlRfREVURUNUSU9OX09VVFBVVDogcmVzdWx0c0ZpbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1VwbG9hZCByZXN1bHRzJyxcbiAgICAgICAgICAgIGlmOiBjb25kRXhwcixcbiAgICAgICAgICAgIHVzZXM6IGBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEAke2dpdGh1YkFjdGlvbnNVcGxvYWRBcnRpZmFjdFZlcnNpb259YCxcbiAgICAgICAgICAgIHdpdGg6IHsgbmFtZTogYGRyaWZ0LXJlc3VsdHMtJHtzYW5pdGl6ZWRTdGFja05hbWV9YCwgcGF0aDogcmVzdWx0c0ZpbGUsIGlmTm9GaWxlc0ZvdW5kOiAnaWdub3JlJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1ByZXBhcmUgbm90aWZpY2F0aW9uIHBheWxvYWQnLFxuICAgICAgICAgICAgaWY6IGNvbmRFeHByLFxuICAgICAgICAgICAgaWQ6ICdub3RpZnknLFxuICAgICAgICAgICAgdXNlczogYGFjdGlvbnMvZ2l0aHViLXNjcmlwdEAke2dpdGh1YkFjdGlvbnNHaXRodWJTY3JpcHRWZXJzaW9ufWAsXG4gICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICdyZXN1bHQtZW5jb2RpbmcnOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgJ3NjcmlwdCc6IG5vdGlmaWNhdGlvblNjcmlwdChzYW5pdGl6ZWRTdGFja05hbWUsIHN0YWNrLmRyaWZ0RGV0ZWN0aW9uUm9sZVRvQXNzdW1lUmVnaW9uLCByZXN1bHRzRmlsZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4ucG9zdFN0ZXBzLm1hcCgoc3RlcCkgPT4gKHtcbiAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIG9ubHkgcnVuIGV4dHJhIG5vdGlmaWNhdGlvbiBzdGVwcyB3aGVuIGRyaWZ0IG9jY3Vyc1xuICAgICAgICAgICAgaWY6IChzdGVwIGFzIGFueSkuaWYgPz8gXCJhbHdheXMoKSAmJiBzdGVwcy5kcmlmdC5vdXRjb21lID09ICdmYWlsdXJlJ1wiLFxuICAgICAgICAgICAgLi4uKHN0ZXAgYXMgYW55KSxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgLi4uKFxuICAgICAgICAgICAgY3JlYXRlSXNzdWVzXG4gICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdDcmVhdGUgSXNzdWUgb24gRHJpZnQnLFxuICAgICAgICAgICAgICAgICAgaWY6IFwiYWx3YXlzKCkgJiYgc3RlcHMuZHJpZnQub3V0Y29tZSA9PSAnZmFpbHVyZSdcIixcbiAgICAgICAgICAgICAgICAgIHVzZXM6IGBhY3Rpb25zL2dpdGh1Yi1zY3JpcHRAJHtnaXRodWJBY3Rpb25zR2l0aHViU2NyaXB0VmVyc2lvbn1gLFxuICAgICAgICAgICAgICAgICAgd2l0aDogeyBzY3JpcHQ6IGlzc3VlU2NyaXB0KHNhbml0aXplZFN0YWNrTmFtZSwgc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb24sIHJlc3VsdHNGaWxlKSB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgOiBbXVxuICAgICAgICAgICksXG4gICAgICAgIF0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIHN1bW1hcnkgYWdncmVnYXRvciBqb2JcbiAgICBqb2JzWydkcmlmdC1zdW1tYXJ5J10gPSB7XG4gICAgICBuYW1lOiAnRHJpZnQgRGV0ZWN0aW9uIFN1bW1hcnknLFxuICAgICAgbmVlZHM6IE9iamVjdC5rZXlzKGpvYnMpLmZpbHRlcigoaikgPT4gai5zdGFydHNXaXRoKCdkcmlmdC0nKSAmJiBqICE9PSAnZHJpZnQtc3VtbWFyeScpLFxuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRG93bmxvYWQgYWxsIGFydGlmYWN0cycsXG4gICAgICAgICAgdXNlczogYGFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAJHtnaXRodWJBY3Rpb25zRG93bmxvYWRBcnRpZmFjdFZlcnNpb259YCxcbiAgICAgICAgICB3aXRoOiB7IHBhdGg6ICdkcmlmdC1yZXN1bHRzJyB9LFxuICAgICAgICB9LFxuICAgICAgICB7IG5hbWU6ICdHZW5lcmF0ZSBzdW1tYXJ5Jywgc2hlbGw6ICdiYXNoJywgcnVuOiBzdW1tYXJ5U2NyaXB0KCkgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIHdvcmtmbG93LmFkZEpvYnMoam9icyk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBpc3N1ZVNjcmlwdChzdGFjazogc3RyaW5nLCByZWdpb246IHN0cmluZywgcmVzdWx0c0ZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIENvbnN0cnVjdCBhIHBsYWluIEpTIHNjcmlwdCBzdHJpbmcgKG5vIHRlbXBsYXRlIHN0cmluZyBuZXN0aW5nIG1pc2hhcHMpXG4gIGNvbnN0IGxpbmVzID0gW1xuICAgIFwiY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1wiLFxuICAgIGBjb25zdCByZXN1bHRzRmlsZSA9ICcke3Jlc3VsdHNGaWxlfSc7YCxcbiAgICBcImlmICghZnMuZXhpc3RzU3luYyhyZXN1bHRzRmlsZSkpIHsgY29uc29sZS5sb2coJ05vIHJlc3VsdHMgZmlsZSBmb3VuZCcpOyByZXR1cm47IH1cIixcbiAgICBcImNvbnN0IHJlc3VsdHMgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhyZXN1bHRzRmlsZSwgJ3V0ZjgnKSk7XCIsXG4gICAgXCJjb25zdCBkcmlmdGVkU3RhY2tzID0gcmVzdWx0cy5maWx0ZXIociA9PiByLmRyaWZ0U3RhdHVzID09PSAnRFJJRlRFRCcpO1wiLFxuICAgIFwiaWYgKGRyaWZ0ZWRTdGFja3MubGVuZ3RoID09PSAwKSB7IGNvbnNvbGUubG9nKCdObyBkcmlmdCBkZXRlY3RlZCcpOyByZXR1cm47IH1cIixcbiAgICBgY29uc3QgdGl0bGUgPSAnRHJpZnQgRGV0ZWN0ZWQgaW4gJHtzdGFja30nO2AsXG4gICAgYGxldCBib2R5ID0gJyMjIERyaWZ0IERldGVjdGlvbiBSZXBvcnRcXFxcblxcXFxuJyArICcqKlN0YWNrOioqICR7c3RhY2t9XFxcXG4nICsgJyoqUmVnaW9uOioqICR7cmVnaW9ufVxcXFxuJyArICcqKlRpbWU6KiogJyArIG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSArICdcXFxcblxcXFxuJztgLFxuICAgIFwiYm9keSArPSAnIyMjIFN1bW1hcnlcXFxcbic7XCIsXG4gICAgXCJib2R5ICs9ICctIFRvdGFsIHN0YWNrcyBjaGVja2VkOiAnICsgcmVzdWx0cy5sZW5ndGggKyAnXFxcXG4nO1wiLFxuICAgIFwiYm9keSArPSAnLSBEcmlmdGVkIHN0YWNrczogJyArIGRyaWZ0ZWRTdGFja3MubGVuZ3RoICsgJ1xcXFxuXFxcXG4nO1wiLFxuICAgIFwiYm9keSArPSAnIyMjIERyaWZ0ZWQgU3RhY2tzXFxcXG4nO1wiLFxuICAgICdmb3IgKGNvbnN0IHMgb2YgZHJpZnRlZFN0YWNrcykgeycsXG4gICAgJyAgY29uc3QgcmVzb3VyY2VzID0gcy5kcmlmdGVkUmVzb3VyY2VzIHx8IFtdOycsXG4gICAgXCIgIGJvZHkgKz0gJyMjIyMgJyArIHMuc3RhY2tOYW1lICsgJ1xcXFxuJztcIixcbiAgICBcIiAgYm9keSArPSAnLSBEcmlmdGVkIHJlc291cmNlczogJyArIHJlc291cmNlcy5sZW5ndGggKyAnXFxcXG4nO1wiLFxuICAgIFwiICBmb3IgKGNvbnN0IHIgb2YgcmVzb3VyY2VzKSB7IGJvZHkgKz0gJyAgLSAnICsgci5sb2dpY2FsUmVzb3VyY2VJZCArICcgKCcgKyByLnJlc291cmNlVHlwZSArICcpXFxcXG4nOyB9XCIsXG4gICAgXCIgIGJvZHkgKz0gJ1xcXFxuJztcIixcbiAgICAnfScsXG4gICAgXCJib2R5ICs9ICcjIyMgQWN0aW9uIFJlcXVpcmVkXFxcXG4nICsgJ1BsZWFzZSByZXZpZXcgdGhlIGRyaWZ0ZWQgcmVzb3VyY2VzIGFuZCBlaXRoZXI6XFxcXG4xLiBVcGRhdGUgdGhlIGluZnJhc3RydWN0dXJlIGNvZGUgdG8gbWF0Y2ggdGhlIGFjdHVhbCBzdGF0ZVxcXFxuMi4gUmVzdG9yZSB0aGUgcmVzb3VyY2VzIHRvIG1hdGNoIHRoZSBleHBlY3RlZCBzdGF0ZVxcXFxuXFxcXG4nO1wiLFxuICAgICdib2R5ICs9IGBbVmlldyB3b3JrZmxvdyBydW5dKCR7Y29udGV4dC5zZXJ2ZXJVcmx9LyR7Y29udGV4dC5yZXBvLm93bmVyfS8ke2NvbnRleHQucmVwby5yZXBvfS9hY3Rpb25zL3J1bnMvJHtjb250ZXh0LnJ1bklkfSlgOycsXG4gICAgLy8gTGlzdCBvciB1cGRhdGUgYW4gaXNzdWUgd2l0aCBsYWJlbHNcbiAgICBgY29uc3QgaXNzdWVzID0gYXdhaXQgZ2l0aHViLnJlc3QuaXNzdWVzLmxpc3RGb3JSZXBvKHsgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sIHN0YXRlOiAnb3BlbicsIGxhYmVsczogWydkcmlmdC1kZXRlY3Rpb24nLCAnJHtzdGFja30nXSB9KTtgLFxuICAgICdpZiAoaXNzdWVzLmRhdGEubGVuZ3RoID09PSAwKSB7JyxcbiAgICBgICBhd2FpdCBnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlKHsgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sIHRpdGxlLCBib2R5LCBsYWJlbHM6IFsnZHJpZnQtZGV0ZWN0aW9uJywgJyR7c3RhY2t9J10gfSk7YCxcbiAgICAnfSBlbHNlIHsnLFxuICAgICcgIGNvbnN0IGlzc3VlID0gaXNzdWVzLmRhdGFbMF07JyxcbiAgICAnICBhd2FpdCBnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlQ29tbWVudCh7IG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCBpc3N1ZV9udW1iZXI6IGlzc3VlLm51bWJlciwgYm9keSB9KTsnLFxuICAgICd9JyxcbiAgXTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBub3RpZmljYXRpb25TY3JpcHQoc3RhY2s6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHJlc3VsdHNGaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IFtcbiAgICBcImNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcIixcbiAgICBgY29uc3QgcmVzdWx0c0ZpbGUgPSAnJHtyZXN1bHRzRmlsZX0nO2AsXG4gICAgJ2xldCBwYXlsb2FkOycsXG4gICAgJ2lmICghZnMuZXhpc3RzU3luYyhyZXN1bHRzRmlsZSkpIHsnLFxuICAgIGAgIHBheWxvYWQgPSB7IHRleHQ6ICdEcmlmdCBEZXRlY3Rpb24gKCR7c3RhY2t9KSAtIE5vIHJlc3VsdHMgZm91bmQnLCBibG9ja3M6IFtgLFxuICAgIGAgICAgeyB0eXBlOiAnc2VjdGlvbicsIHRleHQ6IHsgdHlwZTogJ21ya2R3bicsIHRleHQ6ICcqRHJpZnQgRGV0ZWN0aW9uICgke3N0YWNrfSkqJyB9IH0sYCxcbiAgICBcIiAgICB7IHR5cGU6ICdzZWN0aW9uJywgdGV4dDogeyB0eXBlOiAnbXJrZHduJywgdGV4dDogJ05vIHJlc3VsdHMgZmlsZSBmb3VuZC4gVGhlIGRldGVjdGlvbiBzdGVwIG1heSBoYXZlIGJlZW4gc2tpcHBlZC4nIH0gfVwiLFxuICAgICcgIF0gfTsnLFxuICAgICcgIHJldHVybiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTsnLFxuICAgICd9JyxcbiAgICBcImNvbnN0IHJlc3VsdHMgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhyZXN1bHRzRmlsZSwgJ3V0ZjgnKSk7XCIsXG4gICAgXCJjb25zdCBkcmlmdGVkID0gcmVzdWx0cy5maWx0ZXIociA9PiByLmRyaWZ0U3RhdHVzID09PSAnRFJJRlRFRCcpO1wiLFxuICAgICdjb25zdCBlcnJvcnMgPSByZXN1bHRzLmZpbHRlcihyID0+IHIuZXJyb3IpOycsXG4gICAgYGNvbnN0IGhlYWRlciA9ICcqRHJpZnQgRGV0ZWN0aW9uICgke3N0YWNrfSkqIOKAlCBSZWdpb246ICR7cmVnaW9ufSc7YCxcbiAgICAnY29uc3Qgc3VtbWFyeSA9IFwiVG90YWwgc3RhY2tzOiBcIiArIHJlc3VsdHMubGVuZ3RoICsgXCIgfCBEcmlmdGVkOiBcIiArIGRyaWZ0ZWQubGVuZ3RoICsgXCIgfCBFcnJvcnM6IFwiICsgZXJyb3JzLmxlbmd0aDsnLFxuICAgICdjb25zdCBsaW5lc0FyciA9IFtdOycsXG4gICAgJ2ZvciAoY29uc3QgcyBvZiBkcmlmdGVkKSB7JyxcbiAgICAnICBjb25zdCBjb3VudCA9IChzLmRyaWZ0ZWRSZXNvdXJjZXMgfHwgW10pLmxlbmd0aDsnLFxuICAgIFwiICBsaW5lc0Fyci5wdXNoKCfigKIgJyArIHMuc3RhY2tOYW1lICsgJyDigJQgJyArIGNvdW50ICsgJyByZXNvdXJjZShzKSBkcmlmdGVkJyk7XCIsXG4gICAgJ30nLFxuICAgICdwYXlsb2FkID0geycsXG4gICAgYCAgdGV4dDogJ0RyaWZ0IERldGVjdGlvbiAoJHtzdGFja30pJyxgLFxuICAgICcgIGJsb2NrczogWycsXG4gICAgXCIgICAgeyB0eXBlOiAnc2VjdGlvbicsIHRleHQ6IHsgdHlwZTogJ21ya2R3bicsIHRleHQ6IGhlYWRlciB9IH0sXCIsXG4gICAgXCIgICAgeyB0eXBlOiAnY29udGV4dCcsIGVsZW1lbnRzOiBbeyB0eXBlOiAnbXJrZHduJywgdGV4dDogc3VtbWFyeSB9XSB9LFwiLFxuICAgICcgICAgLi4uKGRyaWZ0ZWQubGVuZ3RoID4gMCA/IFsnLFxuICAgIFwiICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcIixcbiAgICBcIiAgICAgIHsgdHlwZTogJ3NlY3Rpb24nLCB0ZXh0OiB7IHR5cGU6ICdtcmtkd24nLCB0ZXh0OiAnKkRyaWZ0ZWQgU3RhY2tzOipcXG4nICsgbGluZXNBcnIuam9pbignXFxuJykgfSB9XCIsXG4gICAgJyAgICBdIDogWycsXG4gICAgXCIgICAgICB7IHR5cGU6ICdkaXZpZGVyJyB9LFwiLFxuICAgIFwiICAgICAgeyB0eXBlOiAnc2VjdGlvbicsIHRleHQ6IHsgdHlwZTogJ21ya2R3bicsIHRleHQ6ICdObyBkcmlmdCBkZXRlY3RlZC4nIH0gfVwiLFxuICAgICcgICAgXSknLFxuICAgICcgIF0nLFxuICAgICd9OycsXG4gICAgJ3JldHVybiBKU09OLnN0cmluZ2lmeShwYXlsb2FkKTsnLFxuICBdO1xuICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIHN1bW1hcnlTY3JpcHQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIFtcbiAgICAnIyEvYmluL2Jhc2gnLFxuICAgICdzZXQgLWUnLFxuICAgICdlY2hvIFwiIyMgRHJpZnQgRGV0ZWN0aW9uIFN1bW1hcnlcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJ2VjaG8gXCJcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJycsXG4gICAgJ3RvdGFsX3N0YWNrcz0wJyxcbiAgICAndG90YWxfZHJpZnRlZD0wJyxcbiAgICAndG90YWxfZXJyb3JzPTAnLFxuICAgICcnLFxuICAgICdzaG9wdCAtcyBudWxsZ2xvYicsXG4gICAgJ2ZvciBmaWxlIGluIGRyaWZ0LXJlc3VsdHMtKi5qc29uIGRyaWZ0LXJlc3VsdHMvKi9kcmlmdC1yZXN1bHRzLSouanNvbjsgZG8nLFxuICAgICcgIGlmIFtbIC1mIFwiJGZpbGVcIiBdXTsgdGhlbicsXG4gICAgJyAgICBzdGFjaz0kKGJhc2VuYW1lIFwiJGZpbGVcIiB8IHNlZCAtRSBcXFwicy9eZHJpZnQtcmVzdWx0cy0oW14uXSspXFxcXC5qc29uJC9cXFxcMS9cXFwiKScsXG4gICAgJyAgICBlY2hvIFwiIyMjIFN0YWNrOiAkc3RhY2tcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJyAgICBqcSAtciBcXCcnICtcbiAgICAgICcuIGFzICRyZXN1bHRzIHxcXG4nICtcbiAgICAgICdcIi0gVG90YWwgc3RhY2tzOiBcIiArICgkcmVzdWx0cyB8IGxlbmd0aCB8IHRvc3RyaW5nKSArIFwiXFxcXG5cIiArXFxuJyArXG4gICAgICAnXCItIERyaWZ0ZWQ6IFwiICsgKFsuW10gfCBzZWxlY3QoLmRyaWZ0U3RhdHVzID09IFwiRFJJRlRFRFwiKV0gfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIlxcXFxuXCIgK1xcbicgK1xuICAgICAgJ1wiLSBFcnJvcnM6IFwiICsgKFsuW10gfCBzZWxlY3QoLmVycm9yKV0gfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIlxcXFxuXCIgK1xcbicgK1xuICAgICAgJyhbLltdIHwgc2VsZWN0KC5kcmlmdFN0YXR1cyA9PSBcIkRSSUZURURcIildIHwgaWYgbGVuZ3RoID4gMCB0aGVuIFwiXFxcXG4qKkRyaWZ0ZWQgc3RhY2tzOioqXFxcXG5cIiArIChtYXAoXCIgIC0gXCIgKyAuc3RhY2tOYW1lICsgXCIgKFwiICsgKCguZHJpZnRlZFJlc291cmNlcyAvLyBbXSkgfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIiByZXNvdXJjZXMpXCIpIHwgam9pbihcIlxcXFxuXCIpKSBlbHNlIFwiXCIgZW5kKVxcbicgK1xuICAgICdcXCcnICtcbiAgICAnIFwiJGZpbGVcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJyAgICBlY2hvIFwiXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICcgICAgdG90YWxfc3RhY2tzPSQoKHRvdGFsX3N0YWNrcyArICQoanEgXFxcImxlbmd0aFxcXCIgXFxcIiRmaWxlXFxcIikpKScsXG4gICAgJyAgICB0b3RhbF9kcmlmdGVkPSQoKHRvdGFsX2RyaWZ0ZWQgKyAkKGpxIFxcXCJbLltdIHwgc2VsZWN0KC5kcmlmdFN0YXR1cyA9PSBcXFxcXFxcIkRSSUZURURcXFxcXFxcIildIHwgbGVuZ3RoXFxcIiBcXFwiJGZpbGVcXFwiKSkpJyxcbiAgICAnICAgIHRvdGFsX2Vycm9ycz0kKCh0b3RhbF9lcnJvcnMgKyAkKGpxIFxcXCJbLltdIHwgc2VsZWN0KC5lcnJvcildIHwgbGVuZ3RoXFxcIiBcXFwiJGZpbGVcXFwiKSkpJyxcbiAgICAnICBmaScsXG4gICAgJ2RvbmUnLFxuICAgICcnLFxuICAgICdlY2hvIFwiIyMjIE92ZXJhbGwgU3VtbWFyeVwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnZWNobyBcIi0gVG90YWwgc3RhY2tzIGNoZWNrZWQ6ICR0b3RhbF9zdGFja3NcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJ2VjaG8gXCItIFRvdGFsIGRyaWZ0ZWQgc3RhY2tzOiAkdG90YWxfZHJpZnRlZFwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnZWNobyBcIi0gVG90YWwgZXJyb3JzOiAkdG90YWxfZXJyb3JzXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICcnLFxuICAgICdpZiBbWyAkdG90YWxfZHJpZnRlZCAtZ3QgMCBdXTsgdGhlbicsXG4gICAgJyAgZWNobyBcIlwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnICBlY2hvIFwi4pqg77iPICoqQWN0aW9uIHJlcXVpcmVkOioqIERyaWZ0IGRldGVjdGVkIGluICR0b3RhbF9kcmlmdGVkIHN0YWNrc1wiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnZmknLFxuICBdLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiB0b0tlYmFiQ2FzZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcy5yZXBsYWNlKC9bXmEtekEtWjAtOV0rL2csICctJykucmVwbGFjZSgvXi0rfC0rJC9nLCAnJykudG9Mb3dlckNhc2UoKTtcbn1cblxuXG5mdW5jdGlvbiB0b0dpdGh1YkpvYklkKHM6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIEdpdEh1YiBqb2JfaWQgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIG9yIHVuZGVyc2NvcmUgYW5kIGNvbnRhaW4gb25seSBBLVphLXowLTksICctJywgJ18nXG4gIC8vIDEpIFJlcGxhY2UgYW55IGRpc2FsbG93ZWQgY2hhcnMgd2l0aCAnLSdcbiAgbGV0IG91dCA9IHMucmVwbGFjZSgvW15BLVphLXowLTlfLV0rL2csICctJyk7XG4gIC8vIDIpIENvbGxhcHNlIGNvbnNlY3V0aXZlIGRhc2hlc1xuICBvdXQgPSBvdXQucmVwbGFjZSgvLSsvZywgJy0nKTtcbiAgLy8gMykgVHJpbSBsZWFkaW5nL3RyYWlsaW5nIGRhc2hlcyAodW5kZXJzY29yZXMgYXJlIGFsbG93ZWQgYXQgc3RhcnQpXG4gIG91dCA9IG91dC5yZXBsYWNlKC9eLSt8LSskL2csICcnKTtcbiAgLy8gNCkgTG93ZXJjYXNlIGZvciBjb25zaXN0ZW5jeSAobm90IHJlcXVpcmVkIGJ5IEdpdEh1YiBidXQga2VlcHMgdGhpbmdzIHN0YWJsZSlcbiAgb3V0ID0gb3V0LnRvTG93ZXJDYXNlKCk7XG4gIC8vIDUpIEVuc3VyZSBpdCBzdGFydHMgd2l0aCBhIGxldHRlciBvciB1bmRlcnNjb3JlXG4gIGlmICghb3V0IHx8ICEvXlthLXpfXS9pLnRlc3Qob3V0KSkge1xuICAgIG91dCA9IGBzLSR7b3V0fWA7XG4gIH1cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RrRHJpZnREZXRlY3Rpb25Xb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DZGtEcmlmdERldGVjdGlvbldvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQTJEO0FBQzNELHVFQUFrRTtBQUNsRSxpRkFBMkU7QUFFM0UsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLENBQUM7QUFDaEQsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxrQ0FBa0MsR0FBRyxJQUFJLENBQUM7QUFDaEQsTUFBTSxvQ0FBb0MsR0FBRyxJQUFJLENBQUM7QUFDbEQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLENBQUM7QUErQzlDLE1BQWEseUJBQXlCO0lBR3BDLFlBQVksS0FBcUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxpQkFBaUIsQ0FBQztRQUNyRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO1FBQ2hELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxnQkFBZ0IsR0FBRSxLQUFLLENBQUMsZ0JBQWdCLElBQUksMkNBQTJDLENBQUM7UUFFOUYsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxJQUFJLG9EQUF1QixDQUFDO2dCQUMxQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ3RCLFVBQVUsRUFBRSxnQkFBZ0I7YUFDN0IsQ0FBQyxDQUFDO1lBQ0gseUJBQXlCLENBQUMsYUFBYSxH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O0lBQ25CLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHaXRIdWIsIEdpdGh1YldvcmtmbG93IH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBDZGtEcmlmdERldGVjdGlvblNjcmlwdCB9IGZyb20gJy4vYmluL2Nkay1kcmlmdC1kZXRlY3Rpb24tc2NyaXB0JztcblxuY29uc3QgZ2l0aHViQWN0aW9uc0F3c0NyZWRlbnRpYWxzVmVyc2lvbiA9ICd2NSc7XG5jb25zdCBnaXRodWJBY3Rpb25zQ2hlY2tvdXRWZXJzaW9uID0gJ3Y1JztcbmNvbnN0IGdpdGh1YkFjdGlvbnNTZXR1cE5vZGVWZXJzaW9uID0gJ3Y1JztcbmNvbnN0IGdpdGh1YkFjdGlvbnNVcGxvYWRBcnRpZmFjdFZlcnNpb24gPSAndjQnO1xuY29uc3QgZ2l0aHViQWN0aW9uc0Rvd25sb2FkQXJ0aWZhY3RWZXJzaW9uID0gJ3Y1JztcbmNvbnN0IGdpdGh1YkFjdGlvbnNHaXRodWJTY3JpcHRWZXJzaW9uID0gJ3Y4JztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFjayB7XG4gIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZVJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBkcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZUFybjogc3RyaW5nO1xuICByZWFkb25seSBmYWlsT25EcmlmdD86IGJvb2xlYW47IC8vIGlmIHRydWUsIGZhaWwgam9iIHdoZW4gZHJpZnQgZGV0ZWN0ZWQgKGRlZmF1bHQgdHJ1ZSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtEcmlmdERldGVjdGlvbldvcmtmbG93UHJvcHMge1xuICByZWFkb25seSBzY3JpcHRPdXRwdXRQYXRoPzogc3RyaW5nO1xuICByZWFkb25seSBwcm9qZWN0OiBhbnk7IC8vIGF2b2lkIGV4cG9ydGluZyBwcm9qZW4gdHlwZXMgaW4gcHVibGljIEFQSVxuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7IC8vIHdvcmtmbG93IHdvcmtmbG93TmFtZSAoYWxzbyB1c2VkIHRvIGRlcml2ZSBmaWxlIHdvcmtmbG93TmFtZSlcbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7IC8vIGNyb24gZXhwcmVzc2lvbiwgZS5nLiAnMCAwICogKiAqJ1xuICByZWFkb25seSBjcmVhdGVJc3N1ZXM/OiBib29sZWFuOyAvLyBjcmVhdGUvdXBkYXRlIGlzc3VlIHdoZW4gZHJpZnQgZGV0ZWN0ZWQgb24gc2NoZWR1bGUgKGRlZmF1bHQgdHJ1ZSlcbiAgcmVhZG9ubHkgb2lkY1JvbGVBcm46IHN0cmluZzsgLy8gZGVmYXVsdCBPSURDIHJvbGUgQVJOIHRvIGFzc3VtZSBmb3IgYWxsIHN0YWNrc1xuICByZWFkb25seSBvaWRjUmVnaW9uOiBzdHJpbmc7IC8vIGRlZmF1bHQgT0lEQyByZWdpb24gdG8gYXNzdW1lIGZvciBhbGwgc3RhY2tzXG4gIHJlYWRvbmx5IHN0YWNrczogU3RhY2tbXTtcbiAgcmVhZG9ubHkgbm9kZVZlcnNpb24/OiBzdHJpbmc7IC8vIGUuZy4sICcyNC54J1xuICAvKipcbiAgICogT3B0aW9uYWwgaG9vayB0byBhcHBlbmQgYWRkaXRpb25hbCBHaXRIdWIgQWN0aW9ucyBzdGVwcyBhZnRlciBkcmlmdCBkZXRlY3Rpb24gcGVyIHN0YWNrLlxuICAgKiBZb3UgY2FuIHN1cHBseSBhIHN0YXRpYyBhcnJheSBvZiBzdGVwcywgb3IgYSBmYWN0b3J5IHRoYXQgcmVjZWl2ZXMgY29udGV4dCBhbmQgcmV0dXJucyBzdGVwcy5cbiAgICovXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhZGRpdGlvbmFsIEdpdEh1YiBBY3Rpb24gc3RlcHMgdG8gcnVuIGFmdGVyIGRyaWZ0IGRldGVjdGlvbiBmb3IgZWFjaCBzdGFjay5cbiAgICogVGhlc2Ugc3RlcHMgYXJlIGluc2VydGVkIGFmdGVyIGEgJ1ByZXBhcmUgbm90aWZpY2F0aW9uIHBheWxvYWQnIHN0ZXAgd2hpY2ggZXhwb3Nlc1xuICAgKiBhIFNsYWNrLWNvbXBhdGlibGUgSlNPTiBwYXlsb2FkIGF0IGAke3sgc3RlcHMubm90aWZ5Lm91dHB1dHMucmVzdWx0IH19YC5cbiAgICovXG4gIC8vIE5PVEU6IGpzaWkgZG9lcyBub3Qgc3VwcG9ydCBmdW5jdGlvbiB0eXBlcyBpbiBwdWJsaWMgQVBJczsgdXNlICdhbnknIGhlcmUgYW5kIGFjY2VwdCBlaXRoZXI6XG4gIC8vIC0gQW4gYXJyYXkgb2YgR2l0SHViIHN0ZXBzLCBvclxuICAvLyAtIEEgZnVuY3Rpb24gKGN0eDogeyBzdGFjazogc3RyaW5nIH0pID0+IEdpdEh1YlN0ZXBbXVxuICAvLyBUaGUgY29uc3RydWN0b3IgaGFuZGxlcyBib3RoIGF0IHJ1bnRpbWUuXG4gIHJlYWRvbmx5IHBvc3RHaXRIdWJTdGVwcz86IGFueTtcbn1cblxudHlwZSBHaXRIdWJTdGVwID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaWY/OiBzdHJpbmc7XG4gIHVzZXM/OiBzdHJpbmc7XG4gIHJ1bj86IHN0cmluZztcbiAgd2l0aD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNvbnRpbnVlT25FcnJvcj86IGJvb2xlYW47XG4gIHNoZWxsPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNsYXNzIENka0RyaWZ0RGV0ZWN0aW9uV29ya2Zsb3cge1xuICBwcml2YXRlIHN0YXRpYyBzY3JpcHRDcmVhdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IENka0RyaWZ0RGV0ZWN0aW9uV29ya2Zsb3dQcm9wcykge1xuICAgIGNvbnN0IG5hbWUgPSBwcm9wcy53b3JrZmxvd05hbWUgPz8gJ2RyaWZ0LWRldGVjdGlvbic7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0b0tlYmFiQ2FzZShuYW1lKSArICcueW1sJztcbiAgICBjb25zdCBub2RlVmVyc2lvbiA9IHByb3BzLm5vZGVWZXJzaW9uID8/ICcyNC54JztcbiAgICBjb25zdCBjcmVhdGVJc3N1ZXMgPSBwcm9wcy5jcmVhdGVJc3N1ZXMgPz8gdHJ1ZTtcbiAgICBjb25zdCBwcm9qZWN0ID0gcHJvcHMucHJvamVjdDtcbiAgICBjb25zdCBzY3JpcHRPdXRwdXRQYXRoPSBwcm9wcy5zY3JpcHRPdXRwdXRQYXRoID8/ICcuZ2l0aHViL3dvcmtmbG93cy9zY3JpcHRzL2RldGVjdC1kcmlmdC50cyc7XG5cbiAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgZHJpZnQgZGV0ZWN0aW9uIHNjcmlwdCBvbmNlIHRvIGF2b2lkIGNvbGxpc2lvbnNcbiAgICBpZiAoIUNka0RyaWZ0RGV0ZWN0aW9uV29ya2Zsb3cuc2NyaXB0Q3JlYXRlZCkge1xuICAgICAgbmV3IENka0RyaWZ0RGV0ZWN0aW9uU2NyaXB0KHtcbiAgICAgICAgcHJvamVjdDogcHJvcHMucHJvamVjdCxcbiAgICAgICAgb3V0cHV0UGF0aDogc2NyaXB0T3V0cHV0UGF0aCxcbiAgICAgIH0pO1xuICAgICAgQ2RrRHJpZnREZXRlY3Rpb25Xb3JrZmxvdy5zY3JpcHRDcmVhdGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IChwcm9qZWN0IGFzIGFueSkuZ2l0aHViID8/IG5ldyBHaXRIdWIocHJvamVjdCk7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSBuZXcgR2l0aHViV29ya2Zsb3coZ2gsIG5hbWUsIHsgZmlsZU5hbWUgfSk7XG5cbiAgICAvLyB0cmlnZ2Vyczogc2NoZWR1bGUgKyBtYW51YWwgZGlzcGF0Y2ggd2l0aCBzdGFjayBjaG9pY2VcbiAgICBjb25zdCBzdGFja0Nob2ljZXMgPSBwcm9wcy5zdGFja3MubWFwKChzKSA9PiBzLnN0YWNrTmFtZSk7XG4gICAgd29ya2Zsb3cub24oe1xuICAgICAgc2NoZWR1bGU6IHByb3BzLnNjaGVkdWxlID8gW3sgY3JvbjogcHJvcHMuc2NoZWR1bGUgfV0gOiB1bmRlZmluZWQsXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7XG4gICAgICAgIGlucHV0czoge1xuICAgICAgICAgIHN0YWNrOiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHRvIGNoZWNrIGZvciBkcmlmdCAobGVhdmUgZW1wdHkgZm9yIGFsbCknLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdHlwZTogJ2Nob2ljZScsXG4gICAgICAgICAgICBvcHRpb25zOiBzdGFja0Nob2ljZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBPbmUgam9iIHBlciBzdGFja1xuICAgIGNvbnN0IGpvYnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgcHJvcHMuc3RhY2tzKSB7XG4gICAgICBjb25zdCBzYW5pdGl6ZWRTdGFja05hbWUgPSB0b0tlYmFiQ2FzZSh0b0dpdGh1YkpvYklkKHN0YWNrLnN0YWNrTmFtZSkpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxTdGFja05hbWUgPSBzdGFjay5zdGFja05hbWU7XG4gICAgICBjb25zdCBqb2JJZCA9IGBkcmlmdC0ke3Nhbml0aXplZFN0YWNrTmFtZX1gO1xuICAgICAgY29uc3QgcmVzdWx0c0ZpbGUgPSBgZHJpZnQtcmVzdWx0cy0ke3Nhbml0aXplZFN0YWNrTmFtZX0uanNvbmA7XG4gICAgICBjb25zdCBpbm5lckNvbmQgPSBcImdpdGh1Yi5ldmVudF9uYW1lID09ICdzY2hlZHVsZScgfHwgIWdpdGh1Yi5ldmVudC5pbnB1dHMuc3RhY2sgfHwgZ2l0aHViLmV2ZW50LmlucHV0cy5zdGFjayA9PSAnXCIgKyBzYW5pdGl6ZWRTdGFja05hbWUgKyBcIicgfHwgZ2l0aHViLmV2ZW50LmlucHV0cy5zdGFjayA9PSAnXCIgKyBvcmlnaW5hbFN0YWNrTmFtZSArIFwiJ1wiO1xuICAgICAgY29uc3QgY29uZEV4cHIgPSAnJHt7ICcgKyBpbm5lckNvbmQgKyAnIH19JztcbiAgICAgIGNvbnN0IG5vdENvbmRFeHByID0gJyR7eyAhKCcgKyBpbm5lckNvbmQgKyAnKSB9fSc7XG5cbiAgICAgIGNvbnN0IHJhd1Bvc3QgPSBwcm9wcy5wb3N0R2l0SHViU3RlcHM7XG4gICAgICBjb25zdCBwb3N0U3RlcHM6IEdpdEh1YlN0ZXBbXSA9IHR5cGVvZiByYXdQb3N0ID09PSAnZnVuY3Rpb24nID8gKHJhd1Bvc3QgYXMgKGN0eDogeyBzdGFjazogc3RyaW5nIH0pID0+IEdpdEh1YlN0ZXBbXSkoeyBzdGFjazogc2FuaXRpemVkU3RhY2tOYW1lIH0pIDogKHJhd1Bvc3QgPz8gW10pO1xuXG4gICAgICBqb2JzW2pvYklkXSA9IHtcbiAgICAgICAgbmFtZTogYERyaWZ0IERldGVjdGlvbiAtICR7c2FuaXRpemVkU3RhY2tOYW1lfWAsXG4gICAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICAgIGlzc3VlczogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgZW52OiB7XG4gICAgICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBzdGFjay5kcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZVJlZ2lvbixcbiAgICAgICAgICBBV1NfUkVHSU9OOiBzdGFjay5kcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZVJlZ2lvbixcbiAgICAgICAgICBEUklGVF9ERVRFQ1RJT05fT1VUUFVUOiByZXN1bHRzRmlsZSxcbiAgICAgICAgICBTVEFDS19JRDogc2FuaXRpemVkU3RhY2tOYW1lLFxuICAgICAgICAgIFNUQUNLX05BTUU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gTm8gam9iLWxldmVsIGNvbmRpdGlvbjsgd2UgZ2F0ZSBzdGVwcyBzbyB0aGUgam9iIGFsd2F5cyBjb21wbGV0ZXMgYW5kIHN1bW1hcnkgY2FuIHJ1blxuICAgICAgICBzdGVwczogW1xuICAgICAgICAgIHsgbmFtZTogJ1NraXAgKHN0YWNrIG5vdCBzZWxlY3RlZCknLCBpZjogbm90Q29uZEV4cHIsIHJ1bjogJ2VjaG8gXCJTdGFjayBub3Qgc2VsZWN0ZWQ7IHNraXBwaW5nIGRyaWZ0IGRldGVjdGlvbiBmb3IgdGhpcyBqb2IuXCInIH0sXG4gICAgICAgICAgeyBuYW1lOiAnQ2hlY2tvdXQnLCBpZjogY29uZEV4cHIsIHVzZXM6IGBhY3Rpb25zL2NoZWNrb3V0QCR7Z2l0aHViQWN0aW9uc0NoZWNrb3V0VmVyc2lvbn1gIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICAgICAgaWY6IGNvbmRFeHByLFxuICAgICAgICAgICAgdXNlczogYGFjdGlvbnMvc2V0dXAtbm9kZUAke2dpdGh1YkFjdGlvbnNTZXR1cE5vZGVWZXJzaW9ufWAsXG4gICAgICAgICAgICB3aXRoOiB7ICdub2RlLXZlcnNpb24nOiBub2RlVmVyc2lvbiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLCBpZjogY29uZEV4cHIsIHJ1bjogJ3lhcm4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSB8fCBucG0gY2knLCBlbnY6IHsgR0lUSFVCX1RPS0VOOiAnJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19JyB9IH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ0FXUyBDcmVkZW50aWFscycsXG4gICAgICAgICAgICBpZjogY29uZEV4cHIsXG4gICAgICAgICAgICBpZDogJ2NyZWRzJyxcbiAgICAgICAgICAgIHVzZXM6IGBhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQCR7Z2l0aHViQWN0aW9uc0F3c0NyZWRlbnRpYWxzVmVyc2lvbn1gLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiBwcm9wcy5vaWRjUm9sZUFybixcbiAgICAgICAgICAgICAgJ3JvbGUtc2Vzc2lvbi1uYW1lJzogJ0dpdEh1YkFjdGlvbicsXG4gICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogcHJvcHMub2lkY1JlZ2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnQXNzdW1lIERyaWZ0IERldGVjdGlvbiBSb2xlJyxcbiAgICAgICAgICAgIGlmOiBjb25kRXhwcixcbiAgICAgICAgICAgIHVzZXM6IGBhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQCR7Z2l0aHViQWN0aW9uc0F3c0NyZWRlbnRpYWxzVmVyc2lvbn1gLFxuICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiBzdGFjay5kcmlmdERldGVjdGlvblJvbGVUb0Fzc3VtZUFybixcbiAgICAgICAgICAgICAgJ3JvbGUtY2hhaW5pbmcnOiB0cnVlLFxuICAgICAgICAgICAgICAncm9sZS1za2lwLXNlc3Npb24tdGFnZ2luZyc6IHRydWUsXG4gICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb24sXG4gICAgICAgICAgICAgICdhd3MtYWNjZXNzLWtleS1pZCc6ICcke3sgc3RlcHMuY3JlZHMub3V0cHV0cy5hd3MtYWNjZXNzLWtleS1pZCB9fScsXG4gICAgICAgICAgICAgICdhd3Mtc2VjcmV0LWFjY2Vzcy1rZXknOiAnJHt7IHN0ZXBzLmNyZWRzLm91dHB1dHMuYXdzLXNlY3JldC1hY2Nlc3Mta2V5IH19JyxcbiAgICAgICAgICAgICAgJ2F3cy1zZXNzaW9uLXRva2VuJzogJyR7eyBzdGVwcy5jcmVkcy5vdXRwdXRzLmF3cy1zZXNzaW9uLXRva2VuIH19JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnRGV0ZWN0IGRyaWZ0JyxcbiAgICAgICAgICAgIGlmOiBjb25kRXhwcixcbiAgICAgICAgICAgIGlkOiAnZHJpZnQnLFxuICAgICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLCAvLyBhbGxvdyBhcnRpZmFjdCB1cGxvYWQgYW5kIGlzc3VlIGNyZWF0aW9uIGV2ZW4gd2hlbiBkcmlmdCBpcyBkZXRlY3RlZFxuICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICdzZXQgLWUnLFxuICAgICAgICAgICAgICAvLyBVc2UgdGhlIGJ1bmRsZWQgc2NyaXB0IGZyb20gdGhpcyBwYWNrYWdlXG4gICAgICAgICAgICAgICdub2RlIC4vbm9kZV9tb2R1bGVzL0BqanJhd2xpbnMvY2RrLWRpZmYtcHItZ2l0aHViLWFjdGlvbi9saWIvYmluL2RldGVjdC1kcmlmdC5qcycsXG4gICAgICAgICAgICAgICdpZiBbIC1mIFwiJERSSUZUX0RFVEVDVElPTl9PVVRQVVRcIiBdOyB0aGVuIGVjaG8gXCJSZXN1bHRzIGZpbGUgY3JlYXRlZDogJERSSUZUX0RFVEVDVElPTl9PVVRQVVRcIjsgZmknLFxuICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICBTVEFDS19OQU1FOiBzdGFjay5zdGFja05hbWUsXG4gICAgICAgICAgICAgIEFXU19SRUdJT046IHN0YWNrLmRyaWZ0RGV0ZWN0aW9uUm9sZVRvQXNzdW1lUmVnaW9uLFxuICAgICAgICAgICAgICBEUklGVF9ERVRFQ1RJT05fT1VUUFVUOiByZXN1bHRzRmlsZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnVXBsb2FkIHJlc3VsdHMnLFxuICAgICAgICAgICAgaWY6IGNvbmRFeHByLFxuICAgICAgICAgICAgdXNlczogYGFjdGlvbnMvdXBsb2FkLWFydGlmYWN0QCR7Z2l0aHViQWN0aW9uc1VwbG9hZEFydGlmYWN0VmVyc2lvbn1gLFxuICAgICAgICAgICAgd2l0aDogeyBuYW1lOiBgZHJpZnQtcmVzdWx0cy0ke3Nhbml0aXplZFN0YWNrTmFtZX1gLCBwYXRoOiByZXN1bHRzRmlsZSwgaWZOb0ZpbGVzRm91bmQ6ICdpZ25vcmUnIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnUHJlcGFyZSBub3RpZmljYXRpb24gcGF5bG9hZCcsXG4gICAgICAgICAgICBpZjogY29uZEV4cHIsXG4gICAgICAgICAgICBpZDogJ25vdGlmeScsXG4gICAgICAgICAgICB1c2VzOiBgYWN0aW9ucy9naXRodWItc2NyaXB0QCR7Z2l0aHViQWN0aW9uc0dpdGh1YlNjcmlwdFZlcnNpb259YCxcbiAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgJ3Jlc3VsdC1lbmNvZGluZyc6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAnc2NyaXB0Jzogbm90aWZpY2F0aW9uU2NyaXB0KHNhbml0aXplZFN0YWNrTmFtZSwgc3RhY2suZHJpZnREZXRlY3Rpb25Sb2xlVG9Bc3N1bWVSZWdpb24sIHJlc3VsdHNGaWxlKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5wb3N0U3RlcHMubWFwKChzdGVwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzOiBhbnkgPSB7IC4uLihzdGVwIGFzIGFueSkgfTtcbiAgICAgICAgICAgIC8vIEJ5IGRlZmF1bHQsIG9ubHkgcnVuIGV4dHJhIG5vdGlmaWNhdGlvbiBzdGVwcyB3aGVuIGRyaWZ0IG9jY3Vyc1xuICAgICAgICAgICAgcy5pZiA9IHMuaWYgPz8gXCJhbHdheXMoKSAmJiBzdGVwcy5kcmlmdC5vdXRjb21lID09ICdmYWlsdXJlJ1wiO1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgU2xhY2sgR2l0SHViIEFjdGlvbiBhbmQgbm8gcGF5bG9hZCBpcyBwcm92aWRlZCwgd2lyZSB0aGUgcHJlcGFyZWQgcGF5bG9hZFxuICAgICAgICAgICAgY29uc3QgdXNlcyA9IChzLnVzZXMgPz8gJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2xhY2tBY3Rpb24gPSB1c2VzLmluY2x1ZGVzKCdzbGFja2FwaS9zbGFjay1naXRodWItYWN0aW9uJyk7XG4gICAgICAgICAgICBpZiAoaXNTbGFja0FjdGlvbikge1xuICAgICAgICAgICAgICBzLndpdGggPSB7IC4uLihzLndpdGggPz8ge30pIH07XG4gICAgICAgICAgICAgIGlmIChzLndpdGgucGF5bG9hZCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcy53aXRoLnBheWxvYWQgPSAnJHt7IHN0ZXBzLm5vdGlmeS5vdXRwdXRzLnJlc3VsdCB9fSc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIC4uLihcbiAgICAgICAgICAgIGNyZWF0ZUlzc3Vlc1xuICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnQ3JlYXRlIElzc3VlIG9uIERyaWZ0JyxcbiAgICAgICAgICAgICAgICAgIGlmOiBcImFsd2F5cygpICYmIHN0ZXBzLmRyaWZ0Lm91dGNvbWUgPT0gJ2ZhaWx1cmUnXCIsXG4gICAgICAgICAgICAgICAgICB1c2VzOiBgYWN0aW9ucy9naXRodWItc2NyaXB0QCR7Z2l0aHViQWN0aW9uc0dpdGh1YlNjcmlwdFZlcnNpb259YCxcbiAgICAgICAgICAgICAgICAgIHdpdGg6IHsgc2NyaXB0OiBpc3N1ZVNjcmlwdChzYW5pdGl6ZWRTdGFja05hbWUsIHN0YWNrLmRyaWZ0RGV0ZWN0aW9uUm9sZVRvQXNzdW1lUmVnaW9uLCByZXN1bHRzRmlsZSkgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIDogW11cbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBzdW1tYXJ5IGFnZ3JlZ2F0b3Igam9iXG4gICAgam9ic1snZHJpZnQtc3VtbWFyeSddID0ge1xuICAgICAgbmFtZTogJ0RyaWZ0IERldGVjdGlvbiBTdW1tYXJ5JyxcbiAgICAgIG5lZWRzOiBPYmplY3Qua2V5cyhqb2JzKS5maWx0ZXIoKGopID0+IGouc3RhcnRzV2l0aCgnZHJpZnQtJykgJiYgaiAhPT0gJ2RyaWZ0LXN1bW1hcnknKSxcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rvd25sb2FkIGFsbCBhcnRpZmFjdHMnLFxuICAgICAgICAgIHVzZXM6IGBhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QCR7Z2l0aHViQWN0aW9uc0Rvd25sb2FkQXJ0aWZhY3RWZXJzaW9ufWAsXG4gICAgICAgICAgd2l0aDogeyBwYXRoOiAnZHJpZnQtcmVzdWx0cycgfSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBuYW1lOiAnR2VuZXJhdGUgc3VtbWFyeScsIHNoZWxsOiAnYmFzaCcsIHJ1bjogc3VtbWFyeVNjcmlwdCgpIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICB3b3JrZmxvdy5hZGRKb2JzKGpvYnMpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gaXNzdWVTY3JpcHQoc3RhY2s6IHN0cmluZywgcmVnaW9uOiBzdHJpbmcsIHJlc3VsdHNGaWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBDb25zdHJ1Y3QgYSBwbGFpbiBKUyBzY3JpcHQgc3RyaW5nIChubyB0ZW1wbGF0ZSBzdHJpbmcgbmVzdGluZyBtaXNoYXBzKVxuICBjb25zdCBsaW5lcyA9IFtcbiAgICBcImNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcIixcbiAgICBgY29uc3QgcmVzdWx0c0ZpbGUgPSAnJHtyZXN1bHRzRmlsZX0nO2AsXG4gICAgXCJpZiAoIWZzLmV4aXN0c1N5bmMocmVzdWx0c0ZpbGUpKSB7IGNvbnNvbGUubG9nKCdObyByZXN1bHRzIGZpbGUgZm91bmQnKTsgcmV0dXJuOyB9XCIsXG4gICAgXCJjb25zdCByZXN1bHRzID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocmVzdWx0c0ZpbGUsICd1dGY4JykpO1wiLFxuICAgIFwiY29uc3QgZHJpZnRlZFN0YWNrcyA9IHJlc3VsdHMuZmlsdGVyKHIgPT4gci5kcmlmdFN0YXR1cyA9PT0gJ0RSSUZURUQnKTtcIixcbiAgICBcImlmIChkcmlmdGVkU3RhY2tzLmxlbmd0aCA9PT0gMCkgeyBjb25zb2xlLmxvZygnTm8gZHJpZnQgZGV0ZWN0ZWQnKTsgcmV0dXJuOyB9XCIsXG4gICAgYGNvbnN0IHRpdGxlID0gJ0RyaWZ0IERldGVjdGVkIGluICR7c3RhY2t9JztgLFxuICAgIGBsZXQgYm9keSA9ICcjIyBEcmlmdCBEZXRlY3Rpb24gUmVwb3J0XFxcXG5cXFxcbicgKyAnKipTdGFjazoqKiAke3N0YWNrfVxcXFxuJyArICcqKlJlZ2lvbjoqKiAke3JlZ2lvbn1cXFxcbicgKyAnKipUaW1lOioqICcgKyBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkgKyAnXFxcXG5cXFxcbic7YCxcbiAgICBcImJvZHkgKz0gJyMjIyBTdW1tYXJ5XFxcXG4nO1wiLFxuICAgIFwiYm9keSArPSAnLSBUb3RhbCBzdGFja3MgY2hlY2tlZDogJyArIHJlc3VsdHMubGVuZ3RoICsgJ1xcXFxuJztcIixcbiAgICBcImJvZHkgKz0gJy0gRHJpZnRlZCBzdGFja3M6ICcgKyBkcmlmdGVkU3RhY2tzLmxlbmd0aCArICdcXFxcblxcXFxuJztcIixcbiAgICBcImJvZHkgKz0gJyMjIyBEcmlmdGVkIFN0YWNrc1xcXFxuJztcIixcbiAgICAnZm9yIChjb25zdCBzIG9mIGRyaWZ0ZWRTdGFja3MpIHsnLFxuICAgICcgIGNvbnN0IHJlc291cmNlcyA9IHMuZHJpZnRlZFJlc291cmNlcyB8fCBbXTsnLFxuICAgIFwiICBib2R5ICs9ICcjIyMjICcgKyBzLnN0YWNrTmFtZSArICdcXFxcbic7XCIsXG4gICAgXCIgIGJvZHkgKz0gJy0gRHJpZnRlZCByZXNvdXJjZXM6ICcgKyByZXNvdXJjZXMubGVuZ3RoICsgJ1xcXFxuJztcIixcbiAgICBcIiAgZm9yIChjb25zdCByIG9mIHJlc291cmNlcykgeyBib2R5ICs9ICcgIC0gJyArIHIubG9naWNhbFJlc291cmNlSWQgKyAnICgnICsgci5yZXNvdXJjZVR5cGUgKyAnKVxcXFxuJzsgfVwiLFxuICAgIFwiICBib2R5ICs9ICdcXFxcbic7XCIsXG4gICAgJ30nLFxuICAgIFwiYm9keSArPSAnIyMjIEFjdGlvbiBSZXF1aXJlZFxcXFxuJyArICdQbGVhc2UgcmV2aWV3IHRoZSBkcmlmdGVkIHJlc291cmNlcyBhbmQgZWl0aGVyOlxcXFxuMS4gVXBkYXRlIHRoZSBpbmZyYXN0cnVjdHVyZSBjb2RlIHRvIG1hdGNoIHRoZSBhY3R1YWwgc3RhdGVcXFxcbjIuIFJlc3RvcmUgdGhlIHJlc291cmNlcyB0byBtYXRjaCB0aGUgZXhwZWN0ZWQgc3RhdGVcXFxcblxcXFxuJztcIixcbiAgICAnYm9keSArPSBgW1ZpZXcgd29ya2Zsb3cgcnVuXSgke2NvbnRleHQuc2VydmVyVXJsfS8ke2NvbnRleHQucmVwby5vd25lcn0vJHtjb250ZXh0LnJlcG8ucmVwb30vYWN0aW9ucy9ydW5zLyR7Y29udGV4dC5ydW5JZH0pYDsnLFxuICAgIC8vIExpc3Qgb3IgdXBkYXRlIGFuIGlzc3VlIHdpdGggbGFiZWxzXG4gICAgYGNvbnN0IGlzc3VlcyA9IGF3YWl0IGdpdGh1Yi5yZXN0Lmlzc3Vlcy5saXN0Rm9yUmVwbyh7IG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCBzdGF0ZTogJ29wZW4nLCBsYWJlbHM6IFsnZHJpZnQtZGV0ZWN0aW9uJywgJyR7c3RhY2t9J10gfSk7YCxcbiAgICAnaWYgKGlzc3Vlcy5kYXRhLmxlbmd0aCA9PT0gMCkgeycsXG4gICAgYCAgYXdhaXQgZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZSh7IG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCB0aXRsZSwgYm9keSwgbGFiZWxzOiBbJ2RyaWZ0LWRldGVjdGlvbicsICcke3N0YWNrfSddIH0pO2AsXG4gICAgJ30gZWxzZSB7JyxcbiAgICAnICBjb25zdCBpc3N1ZSA9IGlzc3Vlcy5kYXRhWzBdOycsXG4gICAgJyAgYXdhaXQgZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoeyBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLCByZXBvOiBjb250ZXh0LnJlcG8ucmVwbywgaXNzdWVfbnVtYmVyOiBpc3N1ZS5udW1iZXIsIGJvZHkgfSk7JyxcbiAgICAnfScsXG4gIF07XG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gbm90aWZpY2F0aW9uU2NyaXB0KHN0YWNrOiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCByZXN1bHRzRmlsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGluZXMgPSBbXG4gICAgXCJjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XCIsXG4gICAgYGNvbnN0IHJlc3VsdHNGaWxlID0gJyR7cmVzdWx0c0ZpbGV9JztgLFxuICAgICdsZXQgcGF5bG9hZDsnLFxuICAgICdpZiAoIWZzLmV4aXN0c1N5bmMocmVzdWx0c0ZpbGUpKSB7JyxcbiAgICBgICBwYXlsb2FkID0geyB0ZXh0OiAnRHJpZnQgRGV0ZWN0aW9uICgke3N0YWNrfSkgLSBObyByZXN1bHRzIGZvdW5kJywgYmxvY2tzOiBbYCxcbiAgICBgICAgIHsgdHlwZTogJ3NlY3Rpb24nLCB0ZXh0OiB7IHR5cGU6ICdtcmtkd24nLCB0ZXh0OiAnKkRyaWZ0IERldGVjdGlvbiAoJHtzdGFja30pKicgfSB9LGAsXG4gICAgXCIgICAgeyB0eXBlOiAnc2VjdGlvbicsIHRleHQ6IHsgdHlwZTogJ21ya2R3bicsIHRleHQ6ICdObyByZXN1bHRzIGZpbGUgZm91bmQuIFRoZSBkZXRlY3Rpb24gc3RlcCBtYXkgaGF2ZSBiZWVuIHNraXBwZWQuJyB9IH1cIixcbiAgICAnICBdIH07JyxcbiAgICAnICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGF5bG9hZCk7JyxcbiAgICAnfScsXG4gICAgXCJjb25zdCByZXN1bHRzID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocmVzdWx0c0ZpbGUsICd1dGY4JykpO1wiLFxuICAgIFwiY29uc3QgZHJpZnRlZCA9IHJlc3VsdHMuZmlsdGVyKHIgPT4gci5kcmlmdFN0YXR1cyA9PT0gJ0RSSUZURUQnKTtcIixcbiAgICAnY29uc3QgZXJyb3JzID0gcmVzdWx0cy5maWx0ZXIociA9PiByLmVycm9yKTsnLFxuICAgIGBjb25zdCBoZWFkZXIgPSAnKkRyaWZ0IERldGVjdGlvbiAoJHtzdGFja30pKiDigJQgUmVnaW9uOiAke3JlZ2lvbn0nO2AsXG4gICAgJ2NvbnN0IHN1bW1hcnkgPSBcIlRvdGFsIHN0YWNrczogXCIgKyByZXN1bHRzLmxlbmd0aCArIFwiIHwgRHJpZnRlZDogXCIgKyBkcmlmdGVkLmxlbmd0aCArIFwiIHwgRXJyb3JzOiBcIiArIGVycm9ycy5sZW5ndGg7JyxcbiAgICAnY29uc3QgbGluZXNBcnIgPSBbXTsnLFxuICAgICdmb3IgKGNvbnN0IHMgb2YgZHJpZnRlZCkgeycsXG4gICAgJyAgY29uc3QgY291bnQgPSAocy5kcmlmdGVkUmVzb3VyY2VzIHx8IFtdKS5sZW5ndGg7JyxcbiAgICBcIiAgbGluZXNBcnIucHVzaCgn4oCiICcgKyBzLnN0YWNrTmFtZSArICcg4oCUICcgKyBjb3VudCArICcgcmVzb3VyY2UocykgZHJpZnRlZCcpO1wiLFxuICAgICd9JyxcbiAgICAncGF5bG9hZCA9IHsnLFxuICAgIGAgIHRleHQ6ICdEcmlmdCBEZXRlY3Rpb24gKCR7c3RhY2t9KScsYCxcbiAgICAnICBibG9ja3M6IFsnLFxuICAgIFwiICAgIHsgdHlwZTogJ3NlY3Rpb24nLCB0ZXh0OiB7IHR5cGU6ICdtcmtkd24nLCB0ZXh0OiBoZWFkZXIgfSB9LFwiLFxuICAgIFwiICAgIHsgdHlwZTogJ2NvbnRleHQnLCBlbGVtZW50czogW3sgdHlwZTogJ21ya2R3bicsIHRleHQ6IHN1bW1hcnkgfV0gfSxcIixcbiAgICAnICAgIC4uLihkcmlmdGVkLmxlbmd0aCA+IDAgPyBbJyxcbiAgICBcIiAgICAgIHsgdHlwZTogJ2RpdmlkZXInIH0sXCIsXG4gICAgXCIgICAgICB7IHR5cGU6ICdzZWN0aW9uJywgdGV4dDogeyB0eXBlOiAnbXJrZHduJywgdGV4dDogJypEcmlmdGVkIFN0YWNrczoqXFxuJyArIGxpbmVzQXJyLmpvaW4oJ1xcbicpIH0gfVwiLFxuICAgICcgICAgXSA6IFsnLFxuICAgIFwiICAgICAgeyB0eXBlOiAnZGl2aWRlcicgfSxcIixcbiAgICBcIiAgICAgIHsgdHlwZTogJ3NlY3Rpb24nLCB0ZXh0OiB7IHR5cGU6ICdtcmtkd24nLCB0ZXh0OiAnTm8gZHJpZnQgZGV0ZWN0ZWQuJyB9IH1cIixcbiAgICAnICAgIF0pJyxcbiAgICAnICBdJyxcbiAgICAnfTsnLFxuICAgICdyZXR1cm4gSlNPTi5zdHJpbmdpZnkocGF5bG9hZCk7JyxcbiAgXTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBzdW1tYXJ5U2NyaXB0KCk6IHN0cmluZyB7XG4gIHJldHVybiBbXG4gICAgJyMhL2Jpbi9iYXNoJyxcbiAgICAnc2V0IC1lJyxcbiAgICAnZWNobyBcIiMjIERyaWZ0IERldGVjdGlvbiBTdW1tYXJ5XCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICdlY2hvIFwiXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICcnLFxuICAgICd0b3RhbF9zdGFja3M9MCcsXG4gICAgJ3RvdGFsX2RyaWZ0ZWQ9MCcsXG4gICAgJ3RvdGFsX2Vycm9ycz0wJyxcbiAgICAnJyxcbiAgICAnc2hvcHQgLXMgbnVsbGdsb2InLFxuICAgICdmb3IgZmlsZSBpbiBkcmlmdC1yZXN1bHRzLSouanNvbiBkcmlmdC1yZXN1bHRzLyovZHJpZnQtcmVzdWx0cy0qLmpzb247IGRvJyxcbiAgICAnICBpZiBbWyAtZiBcIiRmaWxlXCIgXV07IHRoZW4nLFxuICAgICcgICAgc3RhY2s9JChiYXNlbmFtZSBcIiRmaWxlXCIgfCBzZWQgLUUgXFxcInMvXmRyaWZ0LXJlc3VsdHMtKFteLl0rKVxcXFwuanNvbiQvXFxcXDEvXFxcIiknLFxuICAgICcgICAgZWNobyBcIiMjIyBTdGFjazogJHN0YWNrXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICcgICAganEgLXIgXFwnJyArXG4gICAgICAnLiBhcyAkcmVzdWx0cyB8XFxuJyArXG4gICAgICAnXCItIFRvdGFsIHN0YWNrczogXCIgKyAoJHJlc3VsdHMgfCBsZW5ndGggfCB0b3N0cmluZykgKyBcIlxcXFxuXCIgK1xcbicgK1xuICAgICAgJ1wiLSBEcmlmdGVkOiBcIiArIChbLltdIHwgc2VsZWN0KC5kcmlmdFN0YXR1cyA9PSBcIkRSSUZURURcIildIHwgbGVuZ3RoIHwgdG9zdHJpbmcpICsgXCJcXFxcblwiICtcXG4nICtcbiAgICAgICdcIi0gRXJyb3JzOiBcIiArIChbLltdIHwgc2VsZWN0KC5lcnJvcildIHwgbGVuZ3RoIHwgdG9zdHJpbmcpICsgXCJcXFxcblwiICtcXG4nICtcbiAgICAgICcoWy5bXSB8IHNlbGVjdCguZHJpZnRTdGF0dXMgPT0gXCJEUklGVEVEXCIpXSB8IGlmIGxlbmd0aCA+IDAgdGhlbiBcIlxcXFxuKipEcmlmdGVkIHN0YWNrczoqKlxcXFxuXCIgKyAobWFwKFwiICAtIFwiICsgLnN0YWNrTmFtZSArIFwiIChcIiArICgoLmRyaWZ0ZWRSZXNvdXJjZXMgLy8gW10pIHwgbGVuZ3RoIHwgdG9zdHJpbmcpICsgXCIgcmVzb3VyY2VzKVwiKSB8IGpvaW4oXCJcXFxcblwiKSkgZWxzZSBcIlwiIGVuZClcXG4nICtcbiAgICAnXFwnJyArXG4gICAgJyBcIiRmaWxlXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICcgICAgZWNobyBcIlwiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnICAgIHRvdGFsX3N0YWNrcz0kKCh0b3RhbF9zdGFja3MgKyAkKGpxIFxcXCJsZW5ndGhcXFwiIFxcXCIkZmlsZVxcXCIpKSknLFxuICAgICcgICAgdG90YWxfZHJpZnRlZD0kKCh0b3RhbF9kcmlmdGVkICsgJChqcSBcXFwiWy5bXSB8IHNlbGVjdCguZHJpZnRTdGF0dXMgPT0gXFxcXFxcXCJEUklGVEVEXFxcXFxcXCIpXSB8IGxlbmd0aFxcXCIgXFxcIiRmaWxlXFxcIikpKScsXG4gICAgJyAgICB0b3RhbF9lcnJvcnM9JCgodG90YWxfZXJyb3JzICsgJChqcSBcXFwiWy5bXSB8IHNlbGVjdCguZXJyb3IpXSB8IGxlbmd0aFxcXCIgXFxcIiRmaWxlXFxcIikpKScsXG4gICAgJyAgZmknLFxuICAgICdkb25lJyxcbiAgICAnJyxcbiAgICAnZWNobyBcIiMjIyBPdmVyYWxsIFN1bW1hcnlcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJ2VjaG8gXCItIFRvdGFsIHN0YWNrcyBjaGVja2VkOiAkdG90YWxfc3RhY2tzXCIgPj4gJEdJVEhVQl9TVEVQX1NVTU1BUlknLFxuICAgICdlY2hvIFwiLSBUb3RhbCBkcmlmdGVkIHN0YWNrczogJHRvdGFsX2RyaWZ0ZWRcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJ2VjaG8gXCItIFRvdGFsIGVycm9yczogJHRvdGFsX2Vycm9yc1wiID4+ICRHSVRIVUJfU1RFUF9TVU1NQVJZJyxcbiAgICAnJyxcbiAgICAnaWYgW1sgJHRvdGFsX2RyaWZ0ZWQgLWd0IDAgXV07IHRoZW4nLFxuICAgICcgIGVjaG8gXCJcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJyAgZWNobyBcIuKaoO+4jyAqKkFjdGlvbiByZXF1aXJlZDoqKiBEcmlmdCBkZXRlY3RlZCBpbiAkdG90YWxfZHJpZnRlZCBzdGFja3NcIiA+PiAkR0lUSFVCX1NURVBfU1VNTUFSWScsXG4gICAgJ2ZpJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gdG9LZWJhYkNhc2Uoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCAnLScpLnJlcGxhY2UoL14tK3wtKyQvZywgJycpLnRvTG93ZXJDYXNlKCk7XG59XG5cblxuZnVuY3Rpb24gdG9HaXRodWJKb2JJZChzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBHaXRIdWIgam9iX2lkIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBvciB1bmRlcnNjb3JlIGFuZCBjb250YWluIG9ubHkgQS1aYS16MC05LCAnLScsICdfJ1xuICAvLyAxKSBSZXBsYWNlIGFueSBkaXNhbGxvd2VkIGNoYXJzIHdpdGggJy0nXG4gIGxldCBvdXQgPSBzLnJlcGxhY2UoL1teQS1aYS16MC05Xy1dKy9nLCAnLScpO1xuICAvLyAyKSBDb2xsYXBzZSBjb25zZWN1dGl2ZSBkYXNoZXNcbiAgb3V0ID0gb3V0LnJlcGxhY2UoLy0rL2csICctJyk7XG4gIC8vIDMpIFRyaW0gbGVhZGluZy90cmFpbGluZyBkYXNoZXMgKHVuZGVyc2NvcmVzIGFyZSBhbGxvd2VkIGF0IHN0YXJ0KVxuICBvdXQgPSBvdXQucmVwbGFjZSgvXi0rfC0rJC9nLCAnJyk7XG4gIC8vIDQpIExvd2VyY2FzZSBmb3IgY29uc2lzdGVuY3kgKG5vdCByZXF1aXJlZCBieSBHaXRIdWIgYnV0IGtlZXBzIHRoaW5ncyBzdGFibGUpXG4gIG91dCA9IG91dC50b0xvd2VyQ2FzZSgpO1xuICAvLyA1KSBFbnN1cmUgaXQgc3RhcnRzIHdpdGggYSBsZXR0ZXIgb3IgdW5kZXJzY29yZVxuICBpZiAoIW91dCB8fCAhL15bYS16X10vaS50ZXN0KG91dCkpIHtcbiAgICBvdXQgPSBgcy0ke291dH1gO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG4iXX0=
|