dmencu 0.4.30 → 0.4.32
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/server/server/app-dmencu.js +3 -5
- package/dist/server/server/table-encuestadores.d.ts +0 -2
- package/dist/server/server/table-encuestadores.js +8 -13
- package/dist/server/server/table-tareas_tem.js +2 -2
- package/dist/server/server/table-tareas_tem_recepcion.js +6 -2
- package/package.json +1 -1
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
if (v !== undefined) module.exports = v;
|
|
19
19
|
}
|
|
20
20
|
else if (typeof define === "function" && define.amd) {
|
|
21
|
-
define(["require", "exports", "procesamiento", "./procedures-dmencu", "pg-promise-strict", "mini-tools", "cast-error", "yazl", "like-ar", "express", "fs", "./table-roles", "./table-personal", "./table-recepcionistas", "./table-encuestadores", "./table-encuestadores", "./table-encuestadores", "./table-encuestadores", "./table-
|
|
21
|
+
define(["require", "exports", "procesamiento", "./procedures-dmencu", "pg-promise-strict", "mini-tools", "cast-error", "yazl", "like-ar", "express", "fs", "./table-roles", "./table-personal", "./table-recepcionistas", "./table-encuestadores", "./table-encuestadores", "./table-encuestadores", "./table-encuestadores", "./table-mis_encuestadores", "./table-recuperadores", "./table-supervisores", "./table-personal_rol", "./table-permisos", "./table-roles_permisos", "./table-parametros", "./table-roles_subordinados", "./table-no_rea", "./table-no_rea_sup", "./table-tem", "./table-tem_recepcion", "./table-semanas", "./table-usuarios", "./table-operaciones", "./table-comunas", "./table-areas", "./table-sincronizaciones", "./table-tareas", "./table-tareas_tem", "./table-tareas_areas", "./table-areas_asignacion_general", "./table-grilla_hoja_ruta", "./table-tareas_areas", "./table-tareas_areas", "./table-tareas_areas", "./table-mis_tareas", "./table-tem_asignacion", "./table-tareas_tem_recepcion", "./table-tareas_tem_recepcion", "./table-mis_tareas_areas", "./table-control_campo", "./table-control_resumen", "./table-viviendas", "./table-visitas", "./table-hogares", "./table-personas", "./table-visitas_sup", "./table-hogares_sup", "./table-personas_sup", "./table-estados", "./table-acciones", "./table-estados_acciones", "./types-dmencu", "./def-config"], factory);
|
|
22
22
|
}
|
|
23
23
|
})(function (require, exports) {
|
|
24
24
|
"use strict";
|
|
@@ -40,7 +40,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
40
40
|
const table_encuestadores_2 = require("./table-encuestadores");
|
|
41
41
|
const table_encuestadores_3 = require("./table-encuestadores");
|
|
42
42
|
const table_encuestadores_4 = require("./table-encuestadores");
|
|
43
|
-
const table_encuestadores_5 = require("./table-encuestadores");
|
|
44
43
|
const table_mis_encuestadores_1 = require("./table-mis_encuestadores");
|
|
45
44
|
const table_recuperadores_1 = require("./table-recuperadores");
|
|
46
45
|
const table_supervisores_1 = require("./table-supervisores");
|
|
@@ -546,7 +545,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
546
545
|
}
|
|
547
546
|
else {
|
|
548
547
|
menu.push({ menuType: 'menu', name: 'supervision', label: 'supervisión', menuContent: [
|
|
549
|
-
{ menuType: 'table', name: '
|
|
548
|
+
{ menuType: 'table', name: 'supervisar', table: 'tareas_tem_ingreso', ff: { tarea: 'supe', asignado: context.user.idper } }
|
|
550
549
|
] });
|
|
551
550
|
}
|
|
552
551
|
menu.push({ menuType: 'menu', name: 'varios', menuContent: [
|
|
@@ -623,7 +622,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
623
622
|
recuperadores_asignados: table_encuestadores_2.recuperadores_asignados,
|
|
624
623
|
supervisores_asignados: table_encuestadores_3.supervisores_asignados,
|
|
625
624
|
mis_supervisores_asignados: table_encuestadores_4.mis_supervisores_asignados,
|
|
626
|
-
ingreso_supervisores_asignados: table_encuestadores_5.ingreso_supervisores_asignados,
|
|
627
625
|
mis_encuestadores: table_mis_encuestadores_1.mis_encuestadores,
|
|
628
626
|
recuperadores: table_recuperadores_1.recuperadores,
|
|
629
627
|
supervisores: table_supervisores_1.supervisores,
|
|
@@ -735,4 +733,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
735
733
|
exports.emergeAppDmEncu = emergeAppDmEncu;
|
|
736
734
|
exports.AppDmEncu = emergeAppDmEncu((0, procesamiento_1.emergeAppProcesamiento)((0, procesamiento_1.emergeAppConsistencias)((0, procesamiento_1.emergeAppVarCal)((0, procesamiento_1.emergeAppDatosExt)((0, procesamiento_1.emergeAppOperativos)(procesamiento_1.AppBackend))))));
|
|
737
735
|
});
|
|
738
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBUXhDLDJDQUF3QztJQUV4Qyw2QkFBNkI7SUFFN0Isa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUVuQywyQkFBbUM7SUFFbkMsK0NBQW9EO0lBQ3BELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QsK0RBQWdFO0lBQ2hFLCtEQUFnRTtJQUNoRSwrREFBZ0U7SUFDaEUsK0RBQW9FO0lBQ3BFLCtEQUF1RTtJQUN2RSx1RUFBZ0U7SUFDaEUsK0RBQTREO0lBQzVELDZEQUEyRDtJQUMzRCw2REFBMkQ7SUFDM0QscURBQXVEO0lBQ3ZELGlFQUE2RDtJQUM3RCx5REFBeUQ7SUFDekQseUVBQWlFO0lBRWpFLGlEQUFxRDtJQUNyRCx5REFBeUQ7SUFDekQsMkNBQWtEO0lBQ2xELCtEQUE0RDtJQUM1RCxtREFBc0Q7SUFDdEQscURBQXVEO0lBQ3ZELDJEQUEwRDtJQUMxRCxtREFBc0Q7SUFDdEQsK0NBQW9EO0lBQ3BELHFFQUErRDtJQUMvRCxpREFBcUQ7SUFDckQseURBR3lEO0lBQ3pELDZEQUEyRDtJQUMzRCxxRkFBNEU7SUFDNUUscUVBQStEO0lBQy9ELDZEQUEyRDtJQUMzRCw2REFBMkQ7SUFDM0QsNkRBQTJEO0lBQzNELHlEQUF5RDtJQUN6RCxpRUFBNkQ7SUFDN0QsNkVBQW1FO0lBQ25FLDZFQUFpRTtJQUNqRSxxRUFBK0Q7SUFDL0QsK0RBQTREO0lBQzVELG1FQUE4RDtJQUM5RCx1REFBd0Q7SUFDeEQsbURBQXNEO0lBQ3RELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQsMkRBQTBEO0lBQzFELDJEQUEwRDtJQUMxRCw2REFB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SSxDQUFDLEdBQUcsQ0FBQztxQkFBQyxDQUNwRixDQUFDO2dCQUNOLENBQUMsQ0FBQyxDQUFBO2dCQUNGLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUMsVUFBUyxRQUFRLEVBQUUsT0FBTztvQkFDNUQsSUFBSSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUMsRUFBRSxDQUFBLEtBQUssQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFFLENBQUM7b0JBQ2xGLElBQUksV0FBVyxHQUFHLENBQUMsT0FBTyxFQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNwRSxlQUFlLENBQUMsS0FBSyxHQUFHLEVBQUMsTUFBTSxFQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBQyxLQUFLLEVBQUMsQ0FBQztnQkFDNUUsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsdUVBQXVFO2dCQUN2RSxnR0FBZ0c7Z0JBQ2hHLEtBQUs7WUFDVCxDQUFDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUEvcUJELDBDQStxQkM7SUFFVSxRQUFBLFNBQVMsR0FBRyxlQUFlLENBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLHNDQUFzQixFQUFDLElBQUEsK0JBQWUsRUFBQyxJQUFBLGlDQUFpQixFQUFDLElBQUEsbUNBQW1CLEVBQUMsMEJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0ICogYXMgcHJvY2VzYW1pZW50byBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2VtZXJnZUFwcFByb2Nlc2FtaWVudG8sIGVtZXJnZUFwcENvbnNpc3RlbmNpYXMsIGVtZXJnZUFwcFZhckNhbCwgZW1lcmdlQXBwRGF0b3NFeHQsIGVtZXJnZUFwcE9wZXJhdGl2b3MsIEFwcEJhY2tlbmQsIENsaWVudE1vZHVsZURlZmluaXRpb24sIE9wdHNDbGllbnRQYWdlfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQge2dldE9wZXJhdGl2b0FjdHVhbCwgUHJvY2VkdXJlc0RtRW5jdX0gZnJvbSBcIi4vcHJvY2VkdXJlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCAqIGFzIHBnIGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQge2pzb259IGZyb20gXCJwZy1wcm9taXNlLXN0cmljdFwiO1xyXG5pbXBvcnQgKiBhcyBtaW5pVG9vbHMgZnJvbSBcIm1pbmktdG9vbHNcIjtcclxuaW1wb3J0IHtcclxuICAgIENsaWVudCwgQ29udGV4dCwgQ29yZUZ1bmN0aW9uUGFyYW1ldGVycywgXHJcbiAgICBNZW51SW5mb0Jhc2UsIFxyXG4gICAgUmVxdWVzdCwgUmVzcG9uc2UsXHJcbiAgICBTdWZpam9zQW1iaWVudGUsXHJcbn0gZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XHJcblxyXG5pbXBvcnQgeyB1bmV4cGVjdGVkIH0gZnJvbSBcImNhc3QtZXJyb3JcIjtcclxuXHJcbmltcG9ydCAqIGFzIHlhemwgZnJvbSBcInlhemxcIjtcclxuaW1wb3J0IHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSBcImV4cHJlc3Mtc2VydmUtc3RhdGljLWNvcmVcIjtcclxuaW1wb3J0ICogYXMgbGlrZUFyIGZyb20gXCJsaWtlLWFyXCI7XHJcbmltcG9ydCAqIGFzIGV4cHJlc3MgZnJvbSBcImV4cHJlc3NcIjtcclxuXHJcbmltcG9ydCB7cHJvbWlzZXMgYXMgZnMgfSBmcm9tIFwiZnNcIjtcclxuXHJcbmltcG9ydCB7IHJvbGVzICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc1wiO1xyXG5pbXBvcnQgeyBwZXJzb25hbCAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVyc29uYWxcIjtcclxuaW1wb3J0IHsgcmVjZXBjaW9uaXN0YXMgICAgICB9IGZyb20gXCIuL3RhYmxlLXJlY2VwY2lvbmlzdGFzXCI7XHJcbmltcG9ydCB7IGVuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zIH0gZnJvbSBcIi4vdGFibGUtZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzX2FzaWduYWRvcyB9IGZyb20gXCIuL3RhYmxlLWVuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgc3VwZXJ2aXNvcmVzX2FzaWduYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19zdXBlcnZpc29yZXNfYXNpZ25hZG9zICB9IGZyb20gXCIuL3RhYmxlLWVuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgaW5ncmVzb19zdXBlcnZpc29yZXNfYXNpZ25hZG9zIH0gZnJvbSBcIi4vdGFibGUtZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyBtaXNfZW5jdWVzdGFkb3JlcyAgIH0gZnJvbSBcIi4vdGFibGUtbWlzX2VuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgcmVjdXBlcmFkb3JlcyAgICAgICB9IGZyb20gXCIuL3RhYmxlLXJlY3VwZXJhZG9yZXNcIjtcclxuaW1wb3J0IHsgc3VwZXJ2aXNvcmVzICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXN1cGVydmlzb3Jlc1wiO1xyXG5pbXBvcnQgeyBwZXJzb25hbF9yb2wgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGVyc29uYWxfcm9sXCI7XHJcbmltcG9ydCB7IHBlcm1pc29zICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wZXJtaXNvc1wiO1xyXG5pbXBvcnQgeyByb2xlc19wZXJtaXNvcyAgICAgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNfcGVybWlzb3NcIjtcclxuaW1wb3J0IHsgcGFyYW1ldHJvcyAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBhcmFtZXRyb3NcIjtcclxuaW1wb3J0IHsgcm9sZXNfc3Vib3JkaW5hZG9zICB9IGZyb20gXCIuL3RhYmxlLXJvbGVzX3N1Ym9yZGluYWRvc1wiO1xyXG5cclxuaW1wb3J0IHtub19yZWEgICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLW5vX3JlYVwiO1xyXG5pbXBvcnQge25vX3JlYV9zdXAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtbm9fcmVhX3N1cFwiO1xyXG5pbXBvcnQge3RlbSAgICAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtdGVtXCI7XHJcbmltcG9ydCB7dGVtX3JlY2VwY2lvbiAgICAgICAgfSBmcm9tIFwiLi90YWJsZS10ZW1fcmVjZXBjaW9uXCI7XHJcbmltcG9ydCB7c2VtYW5hcyAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1zZW1hbmFzXCI7XHJcbmltcG9ydCB7IHVzdWFyaW9zICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXVzdWFyaW9zJztcclxuaW1wb3J0IHsgb3BlcmFjaW9uZXMgICAgICAgICB9IGZyb20gJy4vdGFibGUtb3BlcmFjaW9uZXMnO1xyXG5pbXBvcnQgeyBjb211bmFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1jb211bmFzJztcclxuaW1wb3J0IHsgYXJlYXMgICAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYXJlYXMnO1xyXG5pbXBvcnQgeyBzaW5jcm9uaXphY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1zaW5jcm9uaXphY2lvbmVzJztcclxuaW1wb3J0IHsgdGFyZWFzICAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdGFyZWFzJztcclxuaW1wb3J0IHsgdGFyZWFzX3RlbSwgXHJcbiAgICAgICAgIHRhcmVhc190ZW1fZW5jdSwgXHJcbiAgICAgICAgIHRhcmVhc190ZW1fcmVjdSwgXHJcbiAgICAgICAgIHRhcmVhc190ZW1fc3VwZSAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW0nO1xyXG5pbXBvcnQgeyB0YXJlYXNfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyBhcmVhc19hc2lnbmFjaW9uX2dlbmVyYWwgfSBmcm9tICcuL3RhYmxlLWFyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCc7XHJcbmltcG9ydCB7IGdyaWxsYV9ob2phX3J1dGEgICAgfSBmcm9tICcuL3RhYmxlLWdyaWxsYV9ob2phX3J1dGEnO1xyXG5pbXBvcnQgeyB0X2VuY3VfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyB0X3JlY3VfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyB0X3N1cGVfYXJlYXMgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyBtaXNfdGFyZWFzICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1taXNfdGFyZWFzJztcclxuaW1wb3J0IHsgdGVtX2FzaWduYWNpb24gICAgICB9IGZyb20gJy4vdGFibGUtdGVtX2FzaWduYWNpb24nO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtX3JlY2VwY2lvbn0gZnJvbSAnLi90YWJsZS10YXJlYXNfdGVtX3JlY2VwY2lvbic7XHJcbmltcG9ydCB7IHRhcmVhc190ZW1faW5ncmVzb30gZnJvbSAnLi90YWJsZS10YXJlYXNfdGVtX3JlY2VwY2lvbic7XHJcbmltcG9ydCB7IG1pc190YXJlYXNfYXJlYXMgICAgfSBmcm9tICcuL3RhYmxlLW1pc190YXJlYXNfYXJlYXMnO1xyXG5pbXBvcnQgeyBjb250cm9sX2NhbXBvICAgICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX2NhbXBvJztcclxuaW1wb3J0IHsgY29udHJvbF9yZXN1bWVuICAgICB9IGZyb20gJy4vdGFibGUtY29udHJvbF9yZXN1bWVuJztcclxuaW1wb3J0IHsgdml2aWVuZGFzICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdml2aWVuZGFzJztcclxuaW1wb3J0IHsgdmlzaXRhcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhcyc7XHJcbmltcG9ydCB7IGhvZ2FyZXMgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWhvZ2FyZXMnO1xyXG5pbXBvcnQgeyBwZXJzb25hcyAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1wZXJzb25hcyc7XHJcbmltcG9ydCB7IHZpc2l0YXNfc3VwICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXZpc2l0YXNfc3VwJztcclxuaW1wb3J0IHsgaG9nYXJlc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlc19zdXAnO1xyXG5pbXBvcnQgeyBwZXJzb25hc19zdXAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1wZXJzb25hc19zdXAnO1xyXG5cclxuaW1wb3J0IHsgZXN0YWRvcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtZXN0YWRvcyc7XHJcbmltcG9ydCB7IGFjY2lvbmVzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWFjY2lvbmVzJztcclxuaW1wb3J0IHsgZXN0YWRvc19hY2Npb25lcyAgICB9IGZyb20gJy4vdGFibGUtZXN0YWRvc19hY2Npb25lcyc7XHJcblxyXG5cclxuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XHJcbmltcG9ydCB7ZGVmQ29uZmlnfSBmcm9tIFwiLi9kZWYtY29uZmlnXCJcclxuXHJcbmNvbnN0IEFQUF9ETV9WRVJTSU9OPVwiIzIyLTEyLTE1XCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZW1lcmdlQXBwRG1FbmN1PFQgZXh0ZW5kcyBwcm9jZXNhbWllbnRvLkNvbnN0cnVjdG9yPHByb2Nlc2FtaWVudG8uQXBwUHJvY2VzYW1pZW50b1R5cGU+PihCYXNlOlQpe1xyXG4gIHJldHVybiBjbGFzcyBBcHBEbUVuY3UgZXh0ZW5kcyBCYXNle1xyXG4gICAgY29uc3RydWN0b3IoLi4uYXJnczphbnlbXSl7IFxyXG4gICAgICAgIHN1cGVyKGFyZ3MpOyBcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYT1bXVxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfZ3JvdXBzPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMubWV0YUVuY0luY2x1aXJDYXNpbGxlcm9zU2FsdG9SRUwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhc3luYyBjYW5DaGFuZ2VQYXNzKHJlcU9yQ29udGV4dCwgdXNlclRvQ2hhbmdlUGFzcyl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgYmUuaW5EYkNsaWVudChudWxsLCBhc3luYyAoY2xpZW50KT0+e1xyXG4gICAgICAgICAgICB2YXIgcSA9IGJlLmRiLnF1b3RlTGl0ZXJhbDtcclxuICAgICAgICAgICAgdmFyIHJvbCA9IHJlcU9yQ29udGV4dC51c2VyLnJvbDtcclxuICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ICogXHJcbiAgICAgICAgICAgICAgICAgIGZyb20gdXN1YXJpb3MgXHJcbiAgICAgICAgICAgICAgICAgIHdoZXJlIHJvbCBpbiAoc2VsZWN0IHJvbF9zdWJvcmRpbmFkbyBmcm9tIHJvbGVzX3N1Ym9yZGluYWRvcyB3aGVyZSByb2wgPSAke3Eocm9sKX0pYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIHZhciBwdWVkZSA9ICEhcmVzdWx0LmZpbmQoKHVzZXIpPT51c2VyLnVzdWFyaW8gPT0gdXNlclRvQ2hhbmdlUGFzcyk7XHJcbiAgICAgICAgdmFyIGlzQWRtaW4gPSBiZS5pc0FkbWluKHJlcU9yQ29udGV4dCk7XHJcbiAgICAgICAgcmV0dXJuIGlzQWRtaW4gfHwgcHVlZGVcclxuICAgICAgICBcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldFByb2NlZHVyZXMoKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBwcm9jZWRpbWllbnRvQVJlZW1wbGF6YXI9W1wiY2Fzb19ndWFyZGFyXCIsXCJjYXNvX3RyYWVyXCJdO1xyXG4gICAgICAgIHZhciBwYXJlbnRQcm9jID0gYXdhaXQgc3VwZXIuZ2V0UHJvY2VkdXJlcygpO1xyXG4gICAgICAgIHBhcmVudFByb2MgPSBwYXJlbnRQcm9jLmZpbHRlcigocHJvY2VkdXJlOmFueSkgPT4gIXByb2NlZGltaWVudG9BUmVlbXBsYXphci5pbmNsdWRlcyhwcm9jZWR1cmUuYWN0aW9uKSk7XHJcbiAgICAgICAgcGFyZW50UHJvYyA9IHBhcmVudFByb2MubWFwKHByb2NEZWY9PntcclxuICAgICAgICAgICAgaWYocHJvY0RlZi5hY3Rpb24gPT0gJ3RhYmxlX3JlY29yZF9zYXZlJyB8fCBwcm9jRGVmLmFjdGlvbiA9PSAndGFibGVfcmVjb3JkX2RlbGV0ZScpe1xyXG4gICAgICAgICAgICAgICAgdmFyIGNvcmVGdW5jdGlvbkludGVybm8gPSBwcm9jRGVmLmNvcmVGdW5jdGlvbjtcclxuICAgICAgICAgICAgICAgIHByb2NEZWYuY29yZUZ1bmN0aW9uID0gYXN5bmMgZnVuY3Rpb24oY29udGV4dDpDb250ZXh0LCBwYXJhbWV0ZXJzOkNvcmVGdW5jdGlvblBhcmFtZXRlcnMpe1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBjb3JlRnVuY3Rpb25JbnRlcm5vKGNvbnRleHQsIHBhcmFtZXRlcnMpXHJcbiAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1ldGVycy50YWJsZSA9PSAnY2FzaWxsZXJvcycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBiZS5jYWNoZXMudGltZXN0YW1wRXN0cnVjdHVyYSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2UgdG9jw7MgbGEgZXN0cnVjdHVyYScsIGJlLmNhY2hlcy50aW1lc3RhbXBFc3RydWN0dXJhKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBwcm9jRGVmO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIHBhcmVudFByb2MuY29uY2F0KFByb2NlZHVyZXNEbUVuY3UpO1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgY2hlY2tEYXRhYmFzZVN0cnVjdHVyZShfY2xpZW50OkNsaWVudCl7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhZGRTY2hyw7ZkaW5nZXJTZXJ2aWNlcyhtYWluQXBwOnByb2Nlc2FtaWVudG8uRXhwcmVzcywgYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIGxldCBiZT10aGlzO1xyXG4gICAgICAgIHN1cGVyLmFkZFNjaHLDtmRpbmdlclNlcnZpY2VzKG1haW5BcHAsIGJhc2VVcmwpO1xyXG4gICAgICAgIC8vcGVybWl0byBsZXZhbnRhciBtaXMgaW1hZ2VuZXMgZW4gYXBsaWNhY2lvbmVzIGRlcGVuZGllbnRlc1xyXG4gICAgICAgIGJlLmFwcC51c2UoJy9pbWcnLCBleHByZXNzLnN0YXRpYygnbm9kZV9tb2R1bGVzL2RtZW5jdS9kaXN0L3VubG9nZ2VkL3VubG9nZ2VkL2ltZycpKVxyXG4gICAgICAgIG1haW5BcHAudXNlKGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LF9yZXM6UmVzcG9uc2UsIG5leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgaWYocmVxLnNlc3Npb24gJiYgIXJlcS5zZXNzaW9uLmluc3RhbGwpe1xyXG4gICAgICAgICAgICAgICAgcmVxLnNlc3Npb24uaW5zdGFsbD1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkucmVwbGFjZSgnLicsJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG5leHQoKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrJy9zYWx2YXInLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnR9ID0gcmVxO1xyXG4gICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudH0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgb2ZmbGluZUZpbGU6dHJ1ZX0pLnRvSHRtbERvYygpO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGh0bWxNYWluLCdodG1sJykocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL2NhbXBvJyxhc3luYyBmdW5jdGlvbihyZXEscmVzLF9uZXh0KXtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBzw6kgcXVlIHZveSBhIHJlY2liaXIgdXNlcmFnZW50IHBvciBsb3MgbWlkZGxld2FyZXMgZGUgQmFja2VuZC1wbHVzXHJcbiAgICAgICAgICAgIHZhciB7dXNlcmFnZW50LCB1c2VyfSA9IHJlcTtcclxuICAgICAgICAgICAgaWYodXNlcil7XHJcbiAgICAgICAgICAgICAgICAvKiogQHR5cGUge3t0eXBlOidqcycsIHNyYzpzdHJpbmd9W119ICovXHJcbiAgICAgICAgICAgICAgICB2YXIgd2ViTWFuaWZlc3RQYXRoID0gJ2NhcmdhLWRtL3dlYi1tYW5pZmVzdC53ZWJtYW5pZmVzdCc7XHJcbiAgICAgICAgICAgICAgICB2YXIgaHRtbE1haW49YmUubWFpblBhZ2Uoe3VzZXJhZ2VudCwgdXNlcn0sIGZhbHNlLCB7c2tpcE1lbnU6dHJ1ZSwgd2ViTWFuaWZlc3RQYXRoLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QoNDAxLCBiYXNlVXJsKycvbG9naW4jdz1wYXRoJnBhdGg9L2NhbXBvJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHZhciBjcmVhdGVTZXJ2aWNlV29ya2VyID0gYXN5bmMgZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgdmFyIHN3ID0gYXdhaXQgZnMucmVhZEZpbGUoJ25vZGVfbW9kdWxlcy9zZXJ2aWNlLXdvcmtlci1hZG1pbi9kaXN0L3NlcnZpY2Utd29ya2VyLXdvLW1hbmlmZXN0LmpzJywgJ3V0ZjgnKTtcclxuICAgICAgICAgICAgdmFyIG1hbmlmZXN0ID0gYmUuY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCk7XHJcbiAgICAgICAgICAgIHZhciBzd01hbmlmZXN0ID0gc3dcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qdmVyc2lvbiovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC52ZXJzaW9uKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFwiJy8qYXBwTmFtZSovJ1wiLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5hcHBOYW1lKSlcclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXFtcXHMqXFwvXFwqdXJsc1RvQ2FjaGVcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuY2FjaGUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCpmYWxsYmFja3NcXCpcXC9cXHMqXFxdLywgSlNPTi5zdHJpbmdpZnkobWFuaWZlc3QuZmFsbGJhY2sgfHwgW10pKTtcclxuICAgICAgICAgICAgICAgIC8vLnJlcGxhY2UoXCIvI0NBQ0hFJC9cIiwgXCIvKGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfZXN0cnVjdHVyYS5qcyl8KGFcXFxcZCttXFxcXGQrcFxcXFxkK3RcXFxcZCtfaGRyLmpzb24pL1wiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHN3TWFuaWZlc3RcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCtgL3N3LW1hbmlmZXN0LmpzYCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVUZXh0KGF3YWl0IGNyZWF0ZVNlcnZpY2VXb3JrZXIoKSwnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9Y2F0Y2goZXJyKXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUVycihyZXEscmVzLG5leHQpKHVuZXhwZWN0ZWQoZXJyKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2AvY2FyZ2EtZG0vd2ViLW1hbmlmZXN0LndlYm1hbmlmZXN0YCwgYXN5bmMgZnVuY3Rpb24ocmVxLCByZXMsIG5leHQpe1xyXG4gICAgICAgICAgICBjb25zdCBBUFBfTkFNRSA9IChhd2FpdCBiZS5pblRyYW5zYWN0aW9uKG51bGwsIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3Qgb3BlcmF0aXZvIGZyb20gcGFyYW1ldHJvcyB3aGVyZSB1bmljb19yZWdpc3Ryb1wiKS5mZXRjaFVuaXF1ZVZhbHVlKClcclxuICAgICAgICAgICAgKSkudmFsdWU7XHJcbiAgICAgICAgICAgIHZhciBzdWZpam8gPSBiYXNlVXJsLmluY2x1ZGVzKCd0ZXN0JykgfHwgYmFzZVVybC5pbmNsdWRlcygnL3ByJyk/J190ZXN0JzpcclxuICAgICAgICAgICAgICAgIGJhc2VVcmwuaW5jbHVkZXMoJ2NhcGEnKT8nX2NhcGEnOicnO1xyXG4gICAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0ge1xyXG4gICAgICAgICAgICAgICAgICBcIm5hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFByb2dyZXNzaXZlIFdlYiBBcHBgLFxyXG4gICAgICAgICAgICAgICAgICBcInNob3J0X25hbWVcIjogYCR7QVBQX05BTUV9JHtzdWZpam99IFBXQWAsXHJcbiAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogYFByb2dyZXNzaXZlIFdlYiBBcHAgZm9yICR7QVBQX05BTUV9JHtzdWZpam99LmAsXHJcbiAgICAgICAgICAgICAgICAgIFwiaWNvbnNcIjogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS0zMiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjMyeDMyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTQ4JHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNDh4NDhcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNjQke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI2NHg2NFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS03MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjcyeDcyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTE5MiR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjE5MngxOTJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNTEyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNTEyeDUxMlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmJlLmdldENvbG9yc0pzb24oc3VmaWpvIGFzIFN1Zmlqb3NBbWJpZW50ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoSlNPTi5zdHJpbmdpZnkoY29udGVudCksICdhcHBsaWNhdGlvbi9qc29uJykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSwgcmVzLCBuZXh0KSh1bmV4cGVjdGVkKGVycikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBnZXRDb2xvcnNKc29uKF9zdWZpam86IFN1Zmlqb3NBbWJpZW50ZSl7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgXCJzdGFydF91cmxcIjogXCIuLi9jYW1wb1wiLFxyXG4gICAgICAgICAgICBcImRpc3BsYXlcIjogXCJzdGFuZGFsb25lXCIsXHJcbiAgICAgICAgICAgIFwidGhlbWVfY29sb3JcIjogXCIjM0Y1MUI1XCIsXHJcbiAgICAgICAgICAgIFwiYmFja2dyb3VuZF9jb2xvclwiOiBcIiM2ZDYwZWRcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFkZExvZ2dlZFNlcnZpY2VzKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICBzdXBlci5hZGRMb2dnZWRTZXJ2aWNlcygpO1xyXG4gICAgICAgIGJlLmFwcC5nZXQoJy9tYW5pZmVzdC5tYW5pZmVzdCcsIGFzeW5jIGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LCByZXM6UmVzcG9uc2UsIF9uZXh0Ok5leHRGdW5jdGlvbil7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUoJ3NyYy9jbGllbnQvbWFuaWZlc3QubWFuaWZlc3QnLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9maWxlJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlLmluVHJhbnNhY3Rpb24ocmVxLCBcclxuICAgICAgICAgICAgICAgIChjbGllbnQ6cGcuQ2xpZW50KT0+XHJcbiAgICAgICAgICAgICAgICBjbGllbnQucXVlcnkoXCJzZWxlY3QgcnV0YSBmcm9tIGFkanVudG9zIHdoZXJlIGlkX2FkanVudG8gPSAkMVwiLFtyZXEucXVlcnkuaWRfYWRqdW50b10pXHJcbiAgICAgICAgICAgICAgICAuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHZhciBwYXRoID0gcmVzdWx0LnZhbHVlO1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKHBhdGgse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ltYWdlbmVzJywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QscmVzOlJlc3BvbnNlKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnbG9jYWwtaW1hZ2VzLycrcmVxLnF1ZXJ5LnBkZix7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvZG93bmxvYWQvYWxsJyxhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCwgcmVzOlJlc3BvbnNlLCBuZXh0OigpPT52b2lkKXtcclxuICAgICAgICAgICAgaWYocmVxLnVzZXI9PW51bGwgfHwgcmVxLnVzZXIucm9sIT0nYWRtaW4nKXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBlc3TDoSBhdXRvcml6YWRvIGEgYmFqYXJzZSB0b2RvJyxyZXEudXNlcilcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHppcCA9IG5ldyB5YXpsLlppcEZpbGUoKTtcclxuICAgICAgICAgICAgemlwLm91dHB1dFN0cmVhbS5waXBlKHJlcyk7XHJcbiAgICAgICAgICAgIGxldCBiYXNlID0gJ2xvY2FsLWF0dGFjaG1lbnRzJ1xyXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBhd2FpdCBmcy5yZWFkZGlyKGJhc2UpO1xyXG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChmaWxlcy5tYXAoYXN5bmMgZnVuY3Rpb24oZmlsZU5hbWU6c3RyaW5nKXtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoID0gYmFzZSsnLycrZmlsZU5hbWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3RhdCA9IGF3YWl0IGZzLnN0YXQocGF0aCk7XHJcbiAgICAgICAgICAgICAgICBpZihzdGF0LmlzRmlsZSgpKXtcclxuICAgICAgICAgICAgICAgICAgICB6aXAuYWRkRmlsZShwYXRoLGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB6aXAuZW5kKCk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIHBvc3RDb25maWcoKXtcclxuICAgICAgICBhd2FpdCBzdXBlci5wb3N0Q29uZmlnKCk7XHJcbiAgICAgICAgdmFyIGJlPXRoaXM7XHJcbiAgICAgICAgYmUuY2FjaGVzLm1ldGFFbmNJbmNsdWlyQ2FzaWxsZXJvc1NhbHRvUkVMID0gZmFsc2U7XHJcbiAgICAgICAgYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihudWxsLCBhc3luYyBmdW5jdGlvbihjbGllbnQ6cGcuQ2xpZW50KXtcclxuICAgICAgICAgICAgdmFyIHFQZXJtaXNvcz1gXHJcbiAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHIucm9sLGpzb25iX2J1aWxkX29iamVjdCgnc3VwZXJ1c2VyJyxyLnN1cGVydXNlciwncHVlZGUnLChcclxuICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnAucGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKHJwYS5hY2Npb24scnBhLmhhYmlsaXRhZG8pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBycGEucm9sPXJwLnJvbCBBTkQgcnBhLnBlcm1pc289cnAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICkpXHJcbiAgICAgICAgICAgICAgICAgICAgRlJPTSByb2xlc19wZXJtaXNvcyBycFxyXG4gICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwLnJvbD1yLnJvbCAjY29uZEhhYmlsaXRhZG8jXHJcbiAgICAgICAgICAgICAgKSkpXHJcbiAgICAgICAgICAgICAgRlJPTSByb2xlcyByXHJcbiAgICAgICAgICAgIGA7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHRzID0gW1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJywnJykpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShxUGVybWlzb3MucmVwbGFjZSgnI2NvbmRIYWJpbGl0YWRvIycsYCBhbmQgcnAuJHtwZy5xdW90ZUlkZW50KCdoYWJpbGl0YWRvJyl9YCkpLmZldGNoVW5pcXVlVmFsdWUoKSxcclxuICAgICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocGVybWlzbywoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNFTEVDVCBqc29uYl9vYmplY3RfYWdnKGFjY2lvbix0cnVlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYS5wZXJtaXNvPXAucGVybWlzb1xyXG4gICAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICAgIEZST00gcGVybWlzb3MgcFxyXG4gICAgICAgICAgICAgICAgYCkuZmV0Y2hVbmlxdWVWYWx1ZSgpXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbD1yZXN1bHRzWzBdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NSb2xTb2xvVHJ1ZT1yZXN1bHRzWzFdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXI9cmVzdWx0c1syXS52YWx1ZTtcclxuICAgICAgICAgICAgYmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllPWxpa2VBcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIpLm1hcChwPT5saWtlQXIocCkubWFwKF89PmZhbHNlKS5wbGFpbigpKS5wbGFpbigpXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5kaXIoYmUuY2FjaGVzLnBlcm1pc29zUm9sU29sb1RydWUse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIse2RlcHRoOjl9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NQYXJhTmFkaWUse2RlcHRoOjl9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBhd2FpdCB0aGlzLnJlZnJlc2hDYWNoZXMoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGNvbmZpZ1N0YXRpY0NvbmZpZygpe1xyXG4gICAgICAgIHN1cGVyLmNvbmZpZ1N0YXRpY0NvbmZpZygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGljQ29uZmlnKGRlZkNvbmZpZyk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBjbGllbnRJbmNsdWRlcyhyZXE6UmVxdWVzdCwgb3B0czpPcHRzQ2xpZW50UGFnZSk6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdIHtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciB1bmxvZ2dlZCA9IG9wdHMgJiYgb3B0cy5vZmZsaW5lRmlsZTtcclxuICAgICAgICB2YXIgbWVudWVkUmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXT0gdW5sb2dnZWQ/W1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICd1bmxvZ2dlZC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgXTpbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL2NsaWVudC9jbGllbnQnLCBmaWxlOiAnY2xpZW50LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmKG9wdHMgJiYgb3B0cy5leHRyYUZpbGVzKXtcclxuICAgICAgICAgICAgbWVudWVkUmVzb3VyY2VzID0gbWVudWVkUmVzb3VyY2VzLmNvbmNhdChvcHRzLmV4dHJhRmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZXh0ZXJuYWxSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdID0gW1xyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0JywgbW9kUGF0aDogJ3VtZCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QuZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWFjdC1kb20nLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMnLCBmaWxlOidyZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnQG1hdGVyaWFsLXVpL2NvcmUnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidtYXRlcmlhbC11aS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2Nsc3gnLCBmaWxlOidjbHN4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWR1eCcsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlZHV4LmpzJywgZmlsZToncmVkdXgubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LXJlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVhY3QtcmVkdXguanMnLCBmaWxlOidyZWFjdC1yZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnbWVtb2l6ZS1vbmUnLCAgZmlsZTonbWVtb2l6ZS1vbmUuanMnIH0sXHJcbiAgICAgICAgICAgIC8veyB0eXBlOiAnanMnLCBtb2R1bGU6ICdxcmNvZGUnLCBtb2RQYXRoOiAnLi4vYnVpbGQnLCBmaWxlOiAncXJjb2RlLmpzJ30sXHJcbiAgICAgICAgICAgIC4uLnN1cGVyLmNsaWVudEluY2x1ZGVzKHJlcSwgb3B0cykuZmlsdGVyKG09Pm0uZmlsZSE9J2Zvcm11bGFyaW9zLmNzcycpXHJcbiAgICAgICAgICAgIC5maWx0ZXIobT0+IXVubG9nZ2VkIHx8IHRydWVcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnXHJcbiAgICAgICAgICAgICAgICAmJiBtLmZpbGUhPSd2YXItY2FsLmpzJyAgICAgXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnc2VydmljZS13b3JrZXItYWRtaW4nLCAgZmlsZTonc2VydmljZS13b3JrZXItYWRtaW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVkdXgtdHlwZWQtcmVkdWNlcicsIG1vZFBhdGg6Jy4uL2Rpc3QnLCBmaWxlOidyZWR1eC10eXBlZC1yZWR1Y2VyLmpzJyB9XHJcbiAgICAgICAgXTtcclxuICAgICAgICB2YXIgcmVzb3VyY2VzOkNsaWVudE1vZHVsZURlZmluaXRpb25bXSA9IFtcclxuICAgICAgICAgICAgLi4uZXh0ZXJuYWxSZXNvdXJjZXMsXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2FkYXB0LmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAndGlwb3MuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdieXBhc3MtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlZHV4LWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdyZW5kZXItZ2VuZXJhbC5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWJyaXItZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi9jbGllbnQvY2xpZW50L2NzcycsIGZpbGU6ICdtZW51LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnZm9ybXVsYXJpby1yZWFjdC5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdjc3MnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ2Jvb3RzdHJhcC5taW4uY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAndHRmJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdSb2JvdG8tUmVndWxhci50dGYnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICAuLi4gbWVudWVkUmVzb3VyY2VzLFxyXG4gICAgICAgIF1cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzXHJcbiAgICAgICAgLy8gLm1hcChtPT4oey4uLm0sIGZpbGU6bS5maWxlRGV2ZWxvcG1lbnR8fG0uZmlsZX0pKTtcclxuICAgIH1cclxuICAgIGFzeW5jIHJlZnJlc2hDYWNoZXMoKXtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgPSB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQgfHwge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBzZWxlY3QgKiBmcm9tIG5vX3JlYSBvcmRlciBieSBub19yZWFgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhKVxyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhIHIgZ3JvdXAgYnkgZ3J1cG8gb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgIHNlbGVjdCBncnVwbzAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbzAgb3JkZXIgYnkgMVxyXG4gICAgICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cCA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhX3N1cCBvcmRlciBieSBub19yZWFfc3VwYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcycsdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXApXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwcyA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG9fc3VwLCBqc29uYl9hZ2codG9fanNvbihyLiopKSBhcyBjb2RpZ29zIGZyb20gbm9fcmVhX3N1cCByIGdyb3VwIGJ5IGdydXBvX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwX2dyb3VwczAgPSAoYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgc2VsZWN0IGdydXBvMF9zdXAgYXMgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG8wX3N1cCBvcmRlciBieSAxXHJcbiAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMgb2snKTtcclxuICAgIH1cclxuICAgIC8vc3FsTm9yZWFDYXNlKGNhbXBvTmVjZXNhcmlvOnN0cmluZyl7XHJcbiAgICAvLyAgICB2YXIgYmU9dGhpcztcclxuICAgIC8vICAgIHJldHVybiBgQ0FTRSAke2JlLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhLm1hcCh4PT5cclxuICAgIC8vICAgICAgICBgIFdIRU4gbm9yZWEgID0gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeC5ub19yZWEpfTo6aW50ZWdlciBUSEVOICR7YmUuZGIucXVvdGVMaXRlcmFsKHhbY2FtcG9OZWNlc2FyaW9dKX1gXHJcbiAgICAvLyAgICApLmpvaW4oJycpfSBXSEVOIFRSVUUgVEhFTiBOVUxMIEVORGBcclxuICAgIC8vfSAgICBcclxuICAgIG92ZXJyaWRlIGdldENvbnRleHQocmVxOlJlcXVlc3QpOkNvbnRleHR7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHQocmVxKTtcclxuICAgICAgICBpZihmYXRoZXJDb250ZXh0LnVzZXIpe1xyXG4gICAgICAgICAgICBpZihyZXEudXNlcj8ucm9sICE9bnVsbCAmJiBiZS5jYWNoZXMucGVybWlzb3NSb2xbcmVxLnVzZXIucm9sXT8uc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7c3VwZXJ1c2VyOnRydWUsIHB1ZWRlOiBiZS5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIsIC4uLmZhdGhlckNvbnRleHR9XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtwdWVkZTogYmUuY2FjaGVzLnBlcm1pc29zUm9sW3JlcS51c2VyLnJvbF0/LnB1ZWRlLCAuLi5mYXRoZXJDb250ZXh0fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7cHVlZGU6YmUuY2FjaGVzLnBlcm1pc29zUGFyYU5hZGllLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGdldENvbnRleHRGb3JEdW1wKCk6Q29udGV4dHtcclxuICAgICAgICB2YXIgZmF0aGVyQ29udGV4dCA9IHN1cGVyLmdldENvbnRleHRGb3JEdW1wKCk7XHJcbiAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IHRoaXMuY2FjaGVzLnBlcm1pc29zU3VwZXJ1c2VyLCAuLi5mYXRoZXJDb250ZXh0fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGdldENsaWVudFNldHVwRm9yU2VuZFRvRnJvbnRFbmQocmVxOlJlcXVlc3Qpe1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLihhd2FpdCBzdXBlci5nZXRDbGllbnRTZXR1cEZvclNlbmRUb0Zyb250RW5kKHJlcSkpLFxyXG4gICAgICAgICAgICBpZHBlcjogcmVxLnVzZXI/LmlkcGVyXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY3JlYXRlUmVzb3VyY2VzRm9yQ2FjaGVKc29uKCl7XHJcbiAgICAgICAgdmFyIGJlID0gdGhpcztcclxuICAgICAgICB2YXIganNvblJlc3VsdCA9IHtcclxuICAgICAgICAgICAgdmVyc2lvbjogQVBQX0RNX1ZFUlNJT04sXHJcbiAgICAgICAgICAgIGFwcE5hbWU6ICdkbWVuY3UnLFxyXG4gICAgICAgICAgICBjYWNoZTogW1xyXG4gICAgICAgICAgICAgICAgXCJjYW1wb1wiLFxyXG4gICAgICAgICAgICAgICAgXCJvZmZsaW5lXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtZG9tLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tYXRlcmlhbC11aS5wcm9kdWN0aW9uLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xzeC5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlZHV4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9tZW1vaXplLW9uZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImxpYi9xcmNvZGUuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlcXVpcmUtYnJvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9jYXN0LWVycm9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9saWtlLWFyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9iZXN0LWdsb2JhbHMuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzb240YWxsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9qcy10by1odG1sLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWR1eC10eXBlZC1yZWR1Y2VyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9hZGFwdC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvdW5sb2dnZWQuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzLXlhbWwuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2xhenktc29tZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvc3FsLXRvb2xzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcIm1vbWVudC9taW4vbW9tZW50LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcInBpa2FkYXkvcGlrYWRheS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYmlnLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlLXN0b3JlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvYWpheC1iZXN0LXByb21pc2UuanNcIixcclxuICAgICAgICAgICAgICAgIFwibXktYWpheC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbG9jYWxkYi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktd2Vic3FsZGIuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS13ZWJzcWxkYi5qcy5tYXBcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LXRoaW5ncy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktdGFibGVzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1pbmZvcm0tbmV0LXN0YXR1cy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbWVudS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktc2tpbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvY2xpZW50ZS1lbi1jYXN0ZWxsYW5vLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9zZXJ2aWNlLXdvcmtlci1hZG1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9vcGVyYXRpdm9zLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3ZhcmNhbC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9mb3JtLXN0cnVjdHVyZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9tZXRhLWVuYy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9kYXRvcy1leHQuanNcIixcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvY29uc2lzdGVuY2lhcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9wcm9jZXNhbWllbnRvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS90aXBvcy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYnlwYXNzLWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlZHV4LWZvcm11bGFyaW8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlbmRlci1nZW5lcmFsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9yZW5kZXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvYWJyaXItZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9yb3ctdmFsaWRhdG9yLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudC9tZW51LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9sb2dvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgLy9cImltZy9sb2dvLWRtLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvbG9nby0xMjgucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9tYWluLWxvYWRpbmcuZ2lmXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9ib3JyYXItdmFsb3IucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9mb25kby1zYWx0ZWFkby1lcnJvci5wbmdcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2ZvbmRvLXNhbHRlYWRvLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvYmFja2dyb3VuZC10ZXN0LnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnQtc2V0dXBcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL2Jvb3RzdHJhcC5taW4uY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9mb3JtdWxhcmlvLXJlYWN0LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJwaWthZGF5L3Bpa2FkYXkuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJyZWwtZW5jL2VzdGFkb3MuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS10YWJsZXMuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS1tZW51LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbXktdGhpbmdzLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvbWVudS5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwicmVsLWVuYy9teS10aGluZ3MyLmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL1JvYm90by1SZWd1bGFyLnR0ZlwiXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGZhbGxiYWNrOiBbXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpblwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9LFxyXG4gICAgICAgICAgICAgICAge1wicGF0aFwiOlwibG9nb3V0XCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dpbiNpPXNpbmNyb25pemFyXCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJtZW51I2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ganNvblJlc3VsdFxyXG4gICAgfVxyXG4gICAgZ2V0TWVudShjb250ZXh0OkNvbnRleHQpe1xyXG4gICAgICAgIGxldCBtZW51Ok1lbnVJbmZvQmFzZVtdID0gW107XHJcbiAgICAgICAgbGV0IGZpbHRyb1JlY2VwY2lvbmlzdGEgPSBjb250ZXh0LnVzZXIucm9sPT0ncmVjZXBjaW9uaXN0YScgPyB7cmVjZXBjaW9uaXN0YTogY29udGV4dC51c2VyLmlkcGVyfSA6IHt9O1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnLnNlcnZlci5wb2xpY3k9PSd3ZWInKXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzLnJlbGV2YXIpe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nZGVtbycgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0ndGVzdCcgfHwgdGhpcy5jb25maWdbJ2NsaWVudC1zZXR1cCddLmFtYmllbnRlPT0nY2FwYScpe1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J2RlbW8nLCBuYW1lOidkZW1vJywgc2VsZWN0ZWRCeURlZmF1bHQ6dHJ1ZX0pXHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidwYXRoJywgbmFtZToncmVsZXZhbWllbnRvJywgcGF0aDonL2NhbXBvJ30pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidzaW5jcm9uaXphcl9kbScsIG5hbWU6J3NpbmNyb25pemFyJ30sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5lZGl0YXIpe1xyXG4gICAgICAgICAgICAgICAgbGV0IHN1Ym1lbnVBc2lnbmFjaW9uOk1lbnVJbmZvQmFzZVtdID0gW11cclxuICAgICAgICAgICAgICAgIGxldCBzdWJtZW51UmVjZXBjaW9uOk1lbnVJbmZvQmFzZVtdID0gW11cclxuICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LnB1ZWRlPy5jYW1wbz8uYWRtaW5pc3RyYXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdWJtZW51QXNpZ25hY2lvbi5wdXNoKHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdnZW5lcmFsJywgdGFibGU6ICdhcmVhc19hc2lnbmFjaW9uX2dlbmVyYWwnIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc3VibWVudUFzaWduYWNpb24ucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7IG1lbnVUeXBlOiAndGFibGUnLCBuYW1lOiAnZW5jdWVzdGFkb3InLCB0YWJsZTogJ3RfZW5jdV9hcmVhcycsIGZmOiB7IHRhcmVhOiAnZW5jdScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdyZWN1cGVyYWRvcicsIHRhYmxlOiAndGFyZWFzX3RlbV9yZWN1JywgZmY6IHsgdGFyZWFfYXNpZ25hcjogJ3JlY3UnLCB0YXJlYTogJ3JlY3UnLCAuLi5maWx0cm9SZWNlcGNpb25pc3RhIH0gfSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBpZihjb250ZXh0LnB1ZWRlPy5jYW1wbz8uYWRtaW5pc3RyYXIpe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1lbnVBc2lnbmFjaW9uLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdzdXBlcnZpc29yJyAsIHRhYmxlOiAndGFyZWFzX3RlbV9zdXBlJywgZmY6IHsgdGFyZWFfYXNpZ25hcjogJ3N1cGUnLCB0YXJlYTogJ3N1cGUnLCAuLi5maWx0cm9SZWNlcGNpb25pc3RhIH0gfSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgc3VibWVudVJlY2VwY2lvbi5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidlbmN1ZXN0YWRvcicsIHRhYmxlOidlbmN1ZXN0YWRvcmVzX2FzaWduYWRvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyZWN1cGVyYWRvcicsIHRhYmxlOidyZWN1cGVyYWRvcmVzX2FzaWduYWRvcyd9LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J2FzaWduYWNpb24nLCBsYWJlbDonYXNpZ25hY2nDs24nICxtZW51Q29udGVudDogc3VibWVudUFzaWduYWNpb259LFxyXG4gICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3JlY2VwY2lvbicsIGxhYmVsOidyZWNlcGNpw7NuJyAsbWVudUNvbnRlbnQ6c3VibWVudVJlY2VwY2lvbn0sICBcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBpZihjb250ZXh0LnB1ZWRlPy5jYW1wbz8uYWRtaW5pc3RyYXIpe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1lbnVSZWNlcGNpb24ucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3N1cGVydmlzb3InICwgdGFibGU6J3N1cGVydmlzb3Jlc19hc2lnbmFkb3MnIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOiAnbWlzX3N1cGVydmlzb3JlcycgLCB0YWJsZTogJ21pc19zdXBlcnZpc29yZXNfYXNpZ25hZG9zJ31cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidzdXBlcnZpc2lvbicsIGxhYmVsOidzdXBlcnZpc2nDs24nICxtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonaW5ncmVzbycgLCB0YWJsZTonaW5ncmVzb19zdXBlcnZpc29yZXNfYXNpZ25hZG9zJyB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSAgICBcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaCggICAgICBcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6ICdtZW51JywgbmFtZTogJ3ZhcmlvcycsIG1lbnVDb250ZW50OiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTogJ2FicmlyX2VuY3Vlc3RhJywgbmFtZTogJ2FicmlyX2VuY3Vlc3RhJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ2hvamFfcnV0YScsIHRhYmxlOiAnZ3JpbGxhX2hvamFfcnV0YScsIGxhYmVsOiAnaG9qYSBkZSBydXRhJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidjb250cm9sJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncmVzdW1lbicsIHRhYmxlOidjb250cm9sX3Jlc3VtZW4nLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RvbWluaW8nLCB0YWJsZTonY29udHJvbF9jYW1wb19kb21pbmlvJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid6b25hJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fem9uYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb211bmEnICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOifDoXJlYScgICAsIHRhYmxlOidjb250cm9sX2NhbXBvX2FyZWEnICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFydGljaXBhY2lvbicgICAgICAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbicgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzPy5wcm9jZXNhcil7XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZToncHJvY2VzYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid2YXJpYWJsZXMnICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidpbmNvbnNpc3RlbmNpYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhYmxhX2RhdG9zJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RpY2Npb25hcmlvJyAgLCBsYWJlbDonZGljY2lvbmFyaW9zJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgbWVudUNvbmZpZ3VyYXI6TWVudUluZm9CYXNlW10gPSBbXTtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbXVlc3RyYScsIGxhYmVsOidtdWVzdHJhJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGVtJywgbGFiZWw6ICdURU0nfSAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YXJlYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FzaWxsZXJvc190ZXh0bz8uZWRpdGFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbWV0YWRhdG9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonb3BlcmF0aXZvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZm9ybXVsYXJpb3MnICwgdGFibGU6J2Nhc2lsbGVyb3NfcHJpbmNpcGFsZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BsYW5vJyAgICAgICAsIHRhYmxlOidjYXNpbGxlcm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0aXBvYycgICAgICAgLCBsYWJlbDondGlwb3MgZGUgY2VsZGFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0aXBvY190aXBvYycgLCBsYWJlbDonaW5jbHVzaW9uZXMgZGUgY2VsZGFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonZXN0YWRvc19hY2Npb25lcycsIGxhYmVsOidlc3RhZG9zL2FjY2lvbmVzJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZXN0YWRvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFyYW1ldHJvcyd9LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhciB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXM/LnByb2Nlc2FyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTondXN1YXJpb3MnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid1c3VhcmlvcycsIHNlbGVjdGVkQnlEZWZhdWx0OnRydWV9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncm9sZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3Blcm1pc29zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyb2xlc19wZXJtaXNvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG1lbnVDb25maWd1cmFyLmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidtZW51JywgbmFtZTonY29uZmlndXJhcicsIG1lbnVDb250ZW50Om1lbnVDb25maWd1cmFyfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHttZW51fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIHByZXBhcmVHZXRUYWJsZXMoKXtcclxuICAgICAgICB2YXIgYmU9dGhpcztcclxuICAgICAgICBzdXBlci5wcmVwYXJlR2V0VGFibGVzKCk7XHJcbiAgICAgICAgdGhpcy5nZXRUYWJsZURlZmluaXRpb249e1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldFRhYmxlRGVmaW5pdGlvblxyXG4gICAgICAgICAgICAsIHJvbGVzXHJcbiAgICAgICAgICAgICwgdXN1YXJpb3NcclxuICAgICAgICAgICAgLCBwZXJzb25hbFxyXG4gICAgICAgICAgICAsIHJlY2VwY2lvbmlzdGFzXHJcbiAgICAgICAgICAgICwgZW5jdWVzdGFkb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCByZWN1cGVyYWRvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCBtaXNfc3VwZXJ2aXNvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIGluZ3Jlc29fc3VwZXJ2aXNvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIG1pc19lbmN1ZXN0YWRvcmVzXHJcbiAgICAgICAgICAgICwgcmVjdXBlcmFkb3Jlc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFsX3JvbFxyXG4gICAgICAgICAgICAsIHBlcm1pc29zXHJcbiAgICAgICAgICAgICwgcm9sZXNfcGVybWlzb3NcclxuICAgICAgICAgICAgLCByb2xlc19zdWJvcmRpbmFkb3NcclxuICAgICAgICAgICAgLCBub19yZWFcclxuICAgICAgICAgICAgLCBub19yZWFfc3VwXHJcbiAgICAgICAgICAgICwgc2VtYW5hc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NcclxuICAgICAgICAgICAgLCBhY2Npb25lc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NfYWNjaW9uZXNcclxuICAgICAgICAgICAgLCB0ZW1cclxuICAgICAgICAgICAgLCB0ZW1fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICwgcGFyYW1ldHJvc1xyXG4gICAgICAgICAgICAsIG9wZXJhY2lvbmVzXHJcbiAgICAgICAgICAgICwgY29tdW5hc1xyXG4gICAgICAgICAgICAsIGFyZWFzXHJcbiAgICAgICAgICAgICwgc2luY3Jvbml6YWNpb25lc1xyXG4gICAgICAgICAgICAsIHRhcmVhc1xyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1cclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2VuY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3JlY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3N1cGVcclxuICAgICAgICAgICAgLCB0YXJlYXNfYXJlYXNcclxuICAgICAgICAgICAgLCBhcmVhc19hc2lnbmFjaW9uX2dlbmVyYWxcclxuICAgICAgICAgICAgLCBncmlsbGFfaG9qYV9ydXRhXHJcbiAgICAgICAgICAgICwgdF9lbmN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9yZWN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9zdXBlX2FyZWFzXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc1xyXG4gICAgICAgICAgICAsIHRlbV9hc2lnbmFjaW9uXHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9yZWNlcGNpb25cclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2luZ3Jlc29cclxuICAgICAgICAgICAgLCBtaXNfdGFyZWFzX2FyZWFzXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb1xyXG4gICAgICAgICAgICAsIGNvbnRyb2xfcmVzdW1lblxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fem9uYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCB6b25hIHNvbG8gY2VtZW50bycsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J31dLCBmaWx0cm9XaGVyZTonZG9taW5pbz0zJyB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2NvbXVuYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBjb211bmEgc29sbyBjZW1lbnRvJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfV0sIGZpbHRyb1doZXJlOidkb21pbmlvPTMnIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fYXJlYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBhcmVhJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfSx7bmFtZTonYXJlYScsIHR5cGVOYW1lOidpbnRlZ2VyJ30se25hbWU6J3BhcnRpY2lwYWNpb25fYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J2NsYXNlX2EnLCB0eXBlTmFtZTondGV4dCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbjogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBwYXJ0aWNpcGFjaW9uJywgY2FtcG9zQ29ydGU6W3tuYW1lOidwYXJ0aWNpcGFjaW9uJywgdHlwZU5hbWU6J2JpZ2ludCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fZG9taW5pbzogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBkb21pbmlvJywgY2FtcG9zQ29ydGU6W3tuYW1lOidkb21pbmlvJywgdHlwZU5hbWU6J2ludGVnZXInfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCB2aXZpZW5kYXNcclxuICAgICAgICAgICAgLCB2aXNpdGFzXHJcbiAgICAgICAgICAgICwgaG9nYXJlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFzXHJcbiAgICAgICAgICAgICwgdmlzaXRhc19zdXBcclxuICAgICAgICAgICAgLCBob2dhcmVzX3N1cFxyXG4gICAgICAgICAgICAsIHBlcnNvbmFzX3N1cFxyXG4gICAgICAgIH1cclxuICAgICAgICBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0nZXJyb3JfY29tcGlsYWNpb24nKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihmaWVsZC52aXNpYmxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignKioqKioqKioqKioqIFFVSVRBUiBFU1RPIGVycm9yX2NvbXBpbGFjaW9uIHlhIGVzIHZpc2libGUnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT10cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2luY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWw9ey4uLnRhYmxlRGVmLnNxbCwgaXNUYWJsZTp0cnVlfTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAsXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondml2aWVuZGEnICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTonaG9nYXInICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZToncGVyc29uYScgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondmlzaXRhJyAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmVkaXRhYmxlPXRhYmxlRGVmLmVkaXRhYmxlIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0ncGtfaW50ZWdyYWRhJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT1mYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGZpZWxkLm5hbWU9PSdqdXN0aWZpY2FjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuZWRpdGFibGU9Y29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMucHVzaCh7bmFtZTonZmluX2NhbXBvJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgXHJcbiAgICAgICAgICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWwhLmZyb209YFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdCBpLiosIHQuZmluX2NhbXBvIFxyXG4gICAgICAgICAgICAgICAgICBmcm9tIGluY29uc2lzdGVuY2lhcyBpIGpvaW4gdGVtIHQgb24gaS52aXZpZW5kYT10LmVuYyBhbmQgaS5vcGVyYXRpdm89dC5vcGVyYXRpdm8gXHJcbiAgICAgICAgICAgICAgICApICBcclxuICAgICAgICAgICAgYFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ29wZXJhdGl2b3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonY29uZmlnX3NvcnRlbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2pzb25iJyxcclxuICAgICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgzLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonZGlzZm9ybV9jZXJyYWRvJywgXHJcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTonYm9vbGVhbicsIFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogY29udGV4dC5mb3JEdW1wfHxbJ2FkbWluJywnZGlzX2NvbmNlcHR1YWwnXS5pbmNsdWRlcyhjb250ZXh0LnVzZXIucm9sKX1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCd1c3VhcmlvcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICBsZXQgY2xhdmVOdWV2YUZpZWxkID0gdGFibGVEZWYuZmllbGRzLmZpbmQoKGZpZWxkKT0+ZmllbGQubmFtZSA9PSAnY2xhdmVfbnVldmEnKSE7XHJcbiAgICAgICAgICAgIHZhciBhZG1pbk9Db29yZCA9IFsnYWRtaW4nLCdjb29yX2NhbXBvJ10uaW5jbHVkZXMoY29udGV4dC51c2VyLnJvbCk7XHJcbiAgICAgICAgICAgIGNsYXZlTnVldmFGaWVsZC5hbGxvdyA9IHtzZWxlY3Q6YWRtaW5PQ29vcmQsIHVwZGF0ZTp0cnVlLCBpbnNlcnQ6ZmFsc2V9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLy8gYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2Nhc2lsbGVyb3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAvLyAgICAgdGFibGVEZWYuY29uc3RyYWludHMgPSB0YWJsZURlZi5jb25zdHJhaW50cy5maWx0ZXIoYz0+Yy5jb25zTmFtZSE9J2Nhc2lsbGVyb3Mgc2FsdG8gUkVMJylcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBBcHBEbUVuY3UgPSBlbWVyZ2VBcHBEbUVuY3UoZW1lcmdlQXBwUHJvY2VzYW1pZW50byhlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzKGVtZXJnZUFwcFZhckNhbChlbWVyZ2VBcHBEYXRvc0V4dChlbWVyZ2VBcHBPcGVyYXRpdm9zKEFwcEJhY2tlbmQpKSkpKSk7XHJcbmV4cG9ydCB0eXBlIEFwcEFwcERtRW5jdVR5cGUgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIEFwcERtRW5jdT47Il19
|
|
736
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWRtZW5jdS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvYXBwLWRtZW5jdS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBR2IsaURBQTBMO0lBQzFMLDJEQUF5RTtJQUV6RSx3Q0FBd0M7SUFFeEMsd0NBQXdDO0lBUXhDLDJDQUF3QztJQUV4Qyw2QkFBNkI7SUFFN0Isa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUVuQywyQkFBbUM7SUFFbkMsK0NBQW9EO0lBQ3BELHFEQUF1RDtJQUN2RCxpRUFBNkQ7SUFDN0QsK0RBQWdFO0lBQ2hFLCtEQUFnRTtJQUNoRSwrREFBZ0U7SUFDaEUsK0RBQW9FO0lBQ3BFLHVFQUFnRTtJQUNoRSwrREFBNEQ7SUFDNUQsNkRBQTJEO0lBQzNELDZEQUEyRDtJQUMzRCxxREFBdUQ7SUFDdkQsaUVBQTZEO0lBQzdELHlEQUF5RDtJQUN6RCx5RUFBaUU7SUFFakUsaURBQXFEO0lBQ3JELHlEQUF5RDtJQUN6RCwyQ0FBa0Q7SUFDbEQsK0RBQTREO0lBQzVELG1EQUFzRDtJQUN0RCxxREFBdUQ7SUFDdkQsMkRBQTBEO0lBQzFELG1EQUFzRDtJQUN0RCwrQ0FBb0Q7SUFDcEQscUVBQStEO0lBQy9ELGlEQUFxRDtJQUNyRCx5REFHeUQ7SUFDekQsNkRBQTJEO0lBQzNELHFGQUE0RTtJQUM1RSxxRUFBK0Q7SUFDL0QsNkRBQTJEO0lBQzNELDZEQUEyRDtJQUMzRCw2REFBMkQ7SUFDM0QseURBQXlEO0lBQ3pELGlFQUE2RDtJQUM3RCw2RUFBbUU7SUFDbkUsNkVBQWlFO0lBQ2pFLHFFQUErRDtJQUMvRCwrREFBNEQ7SUFDNUQsbUVBQThEO0lBQzlELHVEQUF3RDtJQUN4RCxtREFBc0Q7SUFDdEQsbURBQXNEO0lBQ3RELHFEQUF1RDtJQUN2RCwyREFBMEQ7SUFDMUQsMkRBQTBEO0lBQzFELDZEQUEyRDtJQUUzRCxtREFB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Z0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQUMsQ0FDcEYsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQTtnQkFDRixFQUFFLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFDLFVBQVMsUUFBUSxFQUFFLE9BQU87b0JBQzVELElBQUksZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDLEVBQUUsQ0FBQSxLQUFLLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBRSxDQUFDO29CQUNsRixJQUFJLFdBQVcsR0FBRyxDQUFDLE9BQU8sRUFBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEUsZUFBZSxDQUFDLEtBQUssR0FBRyxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUMsS0FBSyxFQUFDLENBQUM7Z0JBQzVFLENBQUMsQ0FBQyxDQUFBO2dCQUNGLHVFQUF1RTtnQkFDdkUsZ0dBQWdHO2dCQUNoRyxLQUFLO1lBQ1QsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0lBOXFCRCwwQ0E4cUJDO0lBRVUsUUFBQSxTQUFTLEdBQUcsZUFBZSxDQUFDLElBQUEsc0NBQXNCLEVBQUMsSUFBQSxzQ0FBc0IsRUFBQyxJQUFBLCtCQUFlLEVBQUMsSUFBQSxpQ0FBaUIsRUFBQyxJQUFBLG1DQUFtQixFQUFDLDBCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCAqIGFzIHByb2Nlc2FtaWVudG8gZnJvbSBcInByb2Nlc2FtaWVudG9cIjtcclxuaW1wb3J0IHtlbWVyZ2VBcHBQcm9jZXNhbWllbnRvLCBlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzLCBlbWVyZ2VBcHBWYXJDYWwsIGVtZXJnZUFwcERhdG9zRXh0LCBlbWVyZ2VBcHBPcGVyYXRpdm9zLCBBcHBCYWNrZW5kLCBDbGllbnRNb2R1bGVEZWZpbml0aW9uLCBPcHRzQ2xpZW50UGFnZX0gZnJvbSBcInByb2Nlc2FtaWVudG9cIjtcclxuaW1wb3J0IHtnZXRPcGVyYXRpdm9BY3R1YWwsIFByb2NlZHVyZXNEbUVuY3V9IGZyb20gXCIuL3Byb2NlZHVyZXMtZG1lbmN1XCI7XHJcblxyXG5pbXBvcnQgKiBhcyBwZyBmcm9tIFwicGctcHJvbWlzZS1zdHJpY3RcIjtcclxuaW1wb3J0IHtqc29ufSBmcm9tIFwicGctcHJvbWlzZS1zdHJpY3RcIjtcclxuaW1wb3J0ICogYXMgbWluaVRvb2xzIGZyb20gXCJtaW5pLXRvb2xzXCI7XHJcbmltcG9ydCB7XHJcbiAgICBDbGllbnQsIENvbnRleHQsIENvcmVGdW5jdGlvblBhcmFtZXRlcnMsIFxyXG4gICAgTWVudUluZm9CYXNlLCBcclxuICAgIFJlcXVlc3QsIFJlc3BvbnNlLFxyXG4gICAgU3VmaWpvc0FtYmllbnRlLFxyXG59IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5cclxuaW1wb3J0IHsgdW5leHBlY3RlZCB9IGZyb20gXCJjYXN0LWVycm9yXCI7XHJcblxyXG5pbXBvcnQgKiBhcyB5YXpsIGZyb20gXCJ5YXpsXCI7XHJcbmltcG9ydCB7IE5leHRGdW5jdGlvbiB9IGZyb20gXCJleHByZXNzLXNlcnZlLXN0YXRpYy1jb3JlXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQgKiBhcyBleHByZXNzIGZyb20gXCJleHByZXNzXCI7XHJcblxyXG5pbXBvcnQge3Byb21pc2VzIGFzIGZzIH0gZnJvbSBcImZzXCI7XHJcblxyXG5pbXBvcnQgeyByb2xlcyAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNcIjtcclxuaW1wb3J0IHsgcGVyc29uYWwgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcnNvbmFsXCI7XHJcbmltcG9ydCB7IHJlY2VwY2lvbmlzdGFzICAgICAgfSBmcm9tIFwiLi90YWJsZS1yZWNlcGNpb25pc3Rhc1wiO1xyXG5pbXBvcnQgeyBlbmN1ZXN0YWRvcmVzX2FzaWduYWRvcyB9IGZyb20gXCIuL3RhYmxlLWVuY3Vlc3RhZG9yZXNcIjtcclxuaW1wb3J0IHsgcmVjdXBlcmFkb3Jlc19hc2lnbmFkb3MgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IHN1cGVydmlzb3Jlc19hc2lnbmFkb3MgIH0gZnJvbSBcIi4vdGFibGUtZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyBtaXNfc3VwZXJ2aXNvcmVzX2FzaWduYWRvcyAgfSBmcm9tIFwiLi90YWJsZS1lbmN1ZXN0YWRvcmVzXCI7XHJcbmltcG9ydCB7IG1pc19lbmN1ZXN0YWRvcmVzICAgfSBmcm9tIFwiLi90YWJsZS1taXNfZW5jdWVzdGFkb3Jlc1wiO1xyXG5pbXBvcnQgeyByZWN1cGVyYWRvcmVzICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcmVjdXBlcmFkb3Jlc1wiO1xyXG5pbXBvcnQgeyBzdXBlcnZpc29yZXMgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtc3VwZXJ2aXNvcmVzXCI7XHJcbmltcG9ydCB7IHBlcnNvbmFsX3JvbCAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1wZXJzb25hbF9yb2xcIjtcclxuaW1wb3J0IHsgcGVybWlzb3MgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXBlcm1pc29zXCI7XHJcbmltcG9ydCB7IHJvbGVzX3Blcm1pc29zICAgICAgfSBmcm9tIFwiLi90YWJsZS1yb2xlc19wZXJtaXNvc1wiO1xyXG5pbXBvcnQgeyBwYXJhbWV0cm9zICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtcGFyYW1ldHJvc1wiO1xyXG5pbXBvcnQgeyByb2xlc19zdWJvcmRpbmFkb3MgIH0gZnJvbSBcIi4vdGFibGUtcm9sZXNfc3Vib3JkaW5hZG9zXCI7XHJcblxyXG5pbXBvcnQge25vX3JlYSAgICAgICAgICAgICAgIH0gZnJvbSBcIi4vdGFibGUtbm9fcmVhXCI7XHJcbmltcG9ydCB7bm9fcmVhX3N1cCAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS1ub19yZWFfc3VwXCI7XHJcbmltcG9ydCB7dGVtICAgICAgICAgICAgICAgICAgfSBmcm9tIFwiLi90YWJsZS10ZW1cIjtcclxuaW1wb3J0IHt0ZW1fcmVjZXBjaW9uICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXRlbV9yZWNlcGNpb25cIjtcclxuaW1wb3J0IHtzZW1hbmFzICAgICAgICAgICAgICB9IGZyb20gXCIuL3RhYmxlLXNlbWFuYXNcIjtcclxuaW1wb3J0IHsgdXN1YXJpb3MgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdXN1YXJpb3MnO1xyXG5pbXBvcnQgeyBvcGVyYWNpb25lcyAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1vcGVyYWNpb25lcyc7XHJcbmltcG9ydCB7IGNvbXVuYXMgICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbXVuYXMnO1xyXG5pbXBvcnQgeyBhcmVhcyAgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1hcmVhcyc7XHJcbmltcG9ydCB7IHNpbmNyb25pemFjaW9uZXMgICAgfSBmcm9tICcuL3RhYmxlLXNpbmNyb25pemFjaW9uZXMnO1xyXG5pbXBvcnQgeyB0YXJlYXMgICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS10YXJlYXMnO1xyXG5pbXBvcnQgeyB0YXJlYXNfdGVtLCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9lbmN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9yZWN1LCBcclxuICAgICAgICAgdGFyZWFzX3RlbV9zdXBlICAgICB9IGZyb20gJy4vdGFibGUtdGFyZWFzX3RlbSc7XHJcbmltcG9ydCB7IHRhcmVhc19hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGFyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCB9IGZyb20gJy4vdGFibGUtYXJlYXNfYXNpZ25hY2lvbl9nZW5lcmFsJztcclxuaW1wb3J0IHsgZ3JpbGxhX2hvamFfcnV0YSAgICB9IGZyb20gJy4vdGFibGUtZ3JpbGxhX2hvamFfcnV0YSc7XHJcbmltcG9ydCB7IHRfZW5jdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfcmVjdV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IHRfc3VwZV9hcmVhcyAgICAgICAgfSBmcm9tICcuL3RhYmxlLXRhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IG1pc190YXJlYXMgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLW1pc190YXJlYXMnO1xyXG5pbXBvcnQgeyB0ZW1fYXNpZ25hY2lvbiAgICAgIH0gZnJvbSAnLi90YWJsZS10ZW1fYXNpZ25hY2lvbic7XHJcbmltcG9ydCB7IHRhcmVhc190ZW1fcmVjZXBjaW9ufSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgdGFyZWFzX3RlbV9pbmdyZXNvfSBmcm9tICcuL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uJztcclxuaW1wb3J0IHsgbWlzX3RhcmVhc19hcmVhcyAgICB9IGZyb20gJy4vdGFibGUtbWlzX3RhcmVhc19hcmVhcyc7XHJcbmltcG9ydCB7IGNvbnRyb2xfY2FtcG8gICAgICAgfSBmcm9tICcuL3RhYmxlLWNvbnRyb2xfY2FtcG8nO1xyXG5pbXBvcnQgeyBjb250cm9sX3Jlc3VtZW4gICAgIH0gZnJvbSAnLi90YWJsZS1jb250cm9sX3Jlc3VtZW4nO1xyXG5pbXBvcnQgeyB2aXZpZW5kYXMgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXZpZW5kYXMnO1xyXG5pbXBvcnQgeyB2aXNpdGFzICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS12aXNpdGFzJztcclxuaW1wb3J0IHsgaG9nYXJlcyAgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtaG9nYXJlcyc7XHJcbmltcG9ydCB7IHBlcnNvbmFzICAgICAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzJztcclxuaW1wb3J0IHsgdmlzaXRhc19zdXAgICAgICAgICB9IGZyb20gJy4vdGFibGUtdmlzaXRhc19zdXAnO1xyXG5pbXBvcnQgeyBob2dhcmVzX3N1cCAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1ob2dhcmVzX3N1cCc7XHJcbmltcG9ydCB7IHBlcnNvbmFzX3N1cCAgICAgICAgfSBmcm9tICcuL3RhYmxlLXBlcnNvbmFzX3N1cCc7XHJcblxyXG5pbXBvcnQgeyBlc3RhZG9zICAgICAgICAgICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zJztcclxuaW1wb3J0IHsgYWNjaW9uZXMgICAgICAgICAgICB9IGZyb20gJy4vdGFibGUtYWNjaW9uZXMnO1xyXG5pbXBvcnQgeyBlc3RhZG9zX2FjY2lvbmVzICAgIH0gZnJvbSAnLi90YWJsZS1lc3RhZG9zX2FjY2lvbmVzJztcclxuXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtkZWZDb25maWd9IGZyb20gXCIuL2RlZi1jb25maWdcIlxyXG5cclxuY29uc3QgQVBQX0RNX1ZFUlNJT049XCIjMjItMTItMTVcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlbWVyZ2VBcHBEbUVuY3U8VCBleHRlbmRzIHByb2Nlc2FtaWVudG8uQ29uc3RydWN0b3I8cHJvY2VzYW1pZW50by5BcHBQcm9jZXNhbWllbnRvVHlwZT4+KEJhc2U6VCl7XHJcbiAgcmV0dXJuIGNsYXNzIEFwcERtRW5jdSBleHRlbmRzIEJhc2V7XHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOmFueVtdKXsgXHJcbiAgICAgICAgc3VwZXIoYXJncyk7IFxyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICB0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhPVtdXHJcbiAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9ncm91cHM9W11cclxuICAgICAgICB0aGlzLmNhY2hlcy5tZXRhRW5jSW5jbHVpckNhc2lsbGVyb3NTYWx0b1JFTCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRpbWVzdGFtcEVzdHJ1Y3R1cmEgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFzeW5jIGNhbkNoYW5nZVBhc3MocmVxT3JDb250ZXh0LCB1c2VyVG9DaGFuZ2VQYXNzKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBhd2FpdCBiZS5pbkRiQ2xpZW50KG51bGwsIGFzeW5jIChjbGllbnQpPT57XHJcbiAgICAgICAgICAgIHZhciBxID0gYmUuZGIucXVvdGVMaXRlcmFsO1xyXG4gICAgICAgICAgICB2YXIgcm9sID0gcmVxT3JDb250ZXh0LnVzZXIucm9sO1xyXG4gICAgICAgICAgICByZXR1cm4gKGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICBzZWxlY3QgKiBcclxuICAgICAgICAgICAgICAgICAgZnJvbSB1c3VhcmlvcyBcclxuICAgICAgICAgICAgICAgICAgd2hlcmUgcm9sIGluIChzZWxlY3Qgcm9sX3N1Ym9yZGluYWRvIGZyb20gcm9sZXNfc3Vib3JkaW5hZG9zIHdoZXJlIHJvbCA9ICR7cShyb2wpfSlgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdmFyIHB1ZWRlID0gISFyZXN1bHQuZmluZCgodXNlcik9PnVzZXIudXN1YXJpbyA9PSB1c2VyVG9DaGFuZ2VQYXNzKTtcclxuICAgICAgICB2YXIgaXNBZG1pbiA9IGJlLmlzQWRtaW4ocmVxT3JDb250ZXh0KTtcclxuICAgICAgICByZXR1cm4gaXNBZG1pbiB8fCBwdWVkZVxyXG4gICAgICAgIFxyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgZ2V0UHJvY2VkdXJlcygpe1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHByb2NlZGltaWVudG9BUmVlbXBsYXphcj1bXCJjYXNvX2d1YXJkYXJcIixcImNhc29fdHJhZXJcIl07XHJcbiAgICAgICAgdmFyIHBhcmVudFByb2MgPSBhd2FpdCBzdXBlci5nZXRQcm9jZWR1cmVzKCk7XHJcbiAgICAgICAgcGFyZW50UHJvYyA9IHBhcmVudFByb2MuZmlsdGVyKChwcm9jZWR1cmU6YW55KSA9PiAhcHJvY2VkaW1pZW50b0FSZWVtcGxhemFyLmluY2x1ZGVzKHByb2NlZHVyZS5hY3Rpb24pKTtcclxuICAgICAgICBwYXJlbnRQcm9jID0gcGFyZW50UHJvYy5tYXAocHJvY0RlZj0+e1xyXG4gICAgICAgICAgICBpZihwcm9jRGVmLmFjdGlvbiA9PSAndGFibGVfcmVjb3JkX3NhdmUnIHx8IHByb2NEZWYuYWN0aW9uID09ICd0YWJsZV9yZWNvcmRfZGVsZXRlJyl7XHJcbiAgICAgICAgICAgICAgICB2YXIgY29yZUZ1bmN0aW9uSW50ZXJubyA9IHByb2NEZWYuY29yZUZ1bmN0aW9uO1xyXG4gICAgICAgICAgICAgICAgcHJvY0RlZi5jb3JlRnVuY3Rpb24gPSBhc3luYyBmdW5jdGlvbihjb250ZXh0OkNvbnRleHQsIHBhcmFtZXRlcnM6Q29yZUZ1bmN0aW9uUGFyYW1ldGVycyl7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IGNvcmVGdW5jdGlvbkludGVybm8oY29udGV4dCwgcGFyYW1ldGVycylcclxuICAgICAgICAgICAgICAgICAgICBpZihwYXJhbWV0ZXJzLnRhYmxlID09ICdjYXNpbGxlcm9zJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlLmNhY2hlcy50aW1lc3RhbXBFc3RydWN0dXJhID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZSB0b2PDsyBsYSBlc3RydWN0dXJhJywgYmUuY2FjaGVzLnRpbWVzdGFtcEVzdHJ1Y3R1cmEpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHByb2NEZWY7XHJcbiAgICAgICAgfSlcclxuICAgICAgICByZXR1cm4gcGFyZW50UHJvYy5jb25jYXQoUHJvY2VkdXJlc0RtRW5jdSk7XHJcbiAgICB9XHJcbiAgICBvdmVycmlkZSBhc3luYyBjaGVja0RhdGFiYXNlU3RydWN0dXJlKF9jbGllbnQ6Q2xpZW50KXtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGFkZFNjaHLDtmRpbmdlclNlcnZpY2VzKG1haW5BcHA6cHJvY2VzYW1pZW50by5FeHByZXNzLCBiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgbGV0IGJlPXRoaXM7XHJcbiAgICAgICAgc3VwZXIuYWRkU2NocsO2ZGluZ2VyU2VydmljZXMobWFpbkFwcCwgYmFzZVVybCk7XHJcbiAgICAgICAgLy9wZXJtaXRvIGxldmFudGFyIG1pcyBpbWFnZW5lcyBlbiBhcGxpY2FjaW9uZXMgZGVwZW5kaWVudGVzXHJcbiAgICAgICAgYmUuYXBwLnVzZSgnL2ltZycsIGV4cHJlc3Muc3RhdGljKCdub2RlX21vZHVsZXMvZG1lbmN1L2Rpc3QvdW5sb2dnZWQvdW5sb2dnZWQvaW1nJykpXHJcbiAgICAgICAgbWFpbkFwcC51c2UoZnVuY3Rpb24ocmVxOlJlcXVlc3QsX3JlczpSZXNwb25zZSwgbmV4dDpOZXh0RnVuY3Rpb24pe1xyXG4gICAgICAgICAgICBpZihyZXEuc2Vzc2lvbiAmJiAhcmVxLnNlc3Npb24uaW5zdGFsbCl7XHJcbiAgICAgICAgICAgICAgICByZXEuc2Vzc2lvbi5pbnN0YWxsPU1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5yZXBsYWNlKCcuJywnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbmV4dCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgbWFpbkFwcC5nZXQoYmFzZVVybCsnL3NhbHZhcicsYXN5bmMgZnVuY3Rpb24ocmVxLHJlcyxfbmV4dCl7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgc8OpIHF1ZSB2b3kgYSByZWNpYmlyIHVzZXJhZ2VudCBwb3IgbG9zIG1pZGRsZXdhcmVzIGRlIEJhY2tlbmQtcGx1c1xyXG4gICAgICAgICAgICB2YXIge3VzZXJhZ2VudH0gPSByZXE7XHJcbiAgICAgICAgICAgIHZhciBodG1sTWFpbj1iZS5tYWluUGFnZSh7dXNlcmFnZW50fSwgZmFsc2UsIHtza2lwTWVudTp0cnVlLCBvZmZsaW5lRmlsZTp0cnVlfSkudG9IdG1sRG9jKCk7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoaHRtbE1haW4sJ2h0bWwnKShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsKycvY2FtcG8nLGFzeW5jIGZ1bmN0aW9uKHJlcSxyZXMsX25leHQpe1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIHPDqSBxdWUgdm95IGEgcmVjaWJpciB1c2VyYWdlbnQgcG9yIGxvcyBtaWRkbGV3YXJlcyBkZSBCYWNrZW5kLXBsdXNcclxuICAgICAgICAgICAgdmFyIHt1c2VyYWdlbnQsIHVzZXJ9ID0gcmVxO1xyXG4gICAgICAgICAgICBpZih1c2VyKXtcclxuICAgICAgICAgICAgICAgIC8qKiBAdHlwZSB7e3R5cGU6J2pzJywgc3JjOnN0cmluZ31bXX0gKi9cclxuICAgICAgICAgICAgICAgIHZhciB3ZWJNYW5pZmVzdFBhdGggPSAnY2FyZ2EtZG0vd2ViLW1hbmlmZXN0LndlYm1hbmlmZXN0JztcclxuICAgICAgICAgICAgICAgIHZhciBodG1sTWFpbj1iZS5tYWluUGFnZSh7dXNlcmFnZW50LCB1c2VyfSwgZmFsc2UsIHtza2lwTWVudTp0cnVlLCB3ZWJNYW5pZmVzdFBhdGgsIG9mZmxpbmVGaWxlOnRydWV9KS50b0h0bWxEb2MoKTtcclxuICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlVGV4dChodG1sTWFpbiwnaHRtbCcpKHJlcSxyZXMpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHJlcy5yZWRpcmVjdCg0MDEsIGJhc2VVcmwrJy9sb2dpbiN3PXBhdGgmcGF0aD0vY2FtcG8nKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIGNyZWF0ZVNlcnZpY2VXb3JrZXIgPSBhc3luYyBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICB2YXIgc3cgPSBhd2FpdCBmcy5yZWFkRmlsZSgnbm9kZV9tb2R1bGVzL3NlcnZpY2Utd29ya2VyLWFkbWluL2Rpc3Qvc2VydmljZS13b3JrZXItd28tbWFuaWZlc3QuanMnLCAndXRmOCcpO1xyXG4gICAgICAgICAgICB2YXIgbWFuaWZlc3QgPSBiZS5jcmVhdGVSZXNvdXJjZXNGb3JDYWNoZUpzb24oKTtcclxuICAgICAgICAgICAgdmFyIHN3TWFuaWZlc3QgPSBzd1xyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyp2ZXJzaW9uKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LnZlcnNpb24pKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXCInLyphcHBOYW1lKi8nXCIsIEpTT04uc3RyaW5naWZ5KG1hbmlmZXN0LmFwcE5hbWUpKVxyXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcW1xccypcXC9cXCp1cmxzVG9DYWNoZVxcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5jYWNoZSkpXHJcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxbXFxzKlxcL1xcKmZhbGxiYWNrc1xcKlxcL1xccypcXF0vLCBKU09OLnN0cmluZ2lmeShtYW5pZmVzdC5mYWxsYmFjayB8fCBbXSkpO1xyXG4gICAgICAgICAgICAgICAgLy8ucmVwbGFjZShcIi8jQ0FDSEUkL1wiLCBcIi8oYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19lc3RydWN0dXJhLmpzKXwoYVxcXFxkK21cXFxcZCtwXFxcXGQrdFxcXFxkK19oZHIuanNvbikvXCIpO1xyXG4gICAgICAgICAgICByZXR1cm4gc3dNYW5pZmVzdFxyXG4gICAgICAgIH1cclxuICAgICAgICBtYWluQXBwLmdldChiYXNlVXJsK2Avc3ctbWFuaWZlc3QuanNgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZVRleHQoYXdhaXQgY3JlYXRlU2VydmljZVdvcmtlcigpLCdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JykocmVxLHJlcyk7XHJcbiAgICAgICAgICAgIH1jYXRjaChlcnIpe1xyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRXJyKHJlcSxyZXMsbmV4dCkodW5leHBlY3RlZChlcnIpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG1haW5BcHAuZ2V0KGJhc2VVcmwrYC9jYXJnYS1kbS93ZWItbWFuaWZlc3Qud2VibWFuaWZlc3RgLCBhc3luYyBmdW5jdGlvbihyZXEsIHJlcywgbmV4dCl7XHJcbiAgICAgICAgICAgIGNvbnN0IEFQUF9OQU1FID0gKGF3YWl0IGJlLmluVHJhbnNhY3Rpb24obnVsbCwgKGNsaWVudDpwZy5DbGllbnQpPT5cclxuICAgICAgICAgICAgICAgIGNsaWVudC5xdWVyeShcInNlbGVjdCBvcGVyYXRpdm8gZnJvbSBwYXJhbWV0cm9zIHdoZXJlIHVuaWNvX3JlZ2lzdHJvXCIpLmZldGNoVW5pcXVlVmFsdWUoKVxyXG4gICAgICAgICAgICApKS52YWx1ZTtcclxuICAgICAgICAgICAgdmFyIHN1ZmlqbyA9IGJhc2VVcmwuaW5jbHVkZXMoJ3Rlc3QnKSB8fCBiYXNlVXJsLmluY2x1ZGVzKCcvcHInKT8nX3Rlc3QnOlxyXG4gICAgICAgICAgICAgICAgYmFzZVVybC5pbmNsdWRlcygnY2FwYScpPydfY2FwYSc6Jyc7XHJcbiAgICAgICAgICAgIHRyeXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBgJHtBUFBfTkFNRX0ke3N1Zmlqb30gUHJvZ3Jlc3NpdmUgV2ViIEFwcGAsXHJcbiAgICAgICAgICAgICAgICAgIFwic2hvcnRfbmFtZVwiOiBgJHtBUFBfTkFNRX0ke3N1Zmlqb30gUFdBYCxcclxuICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBgUHJvZ3Jlc3NpdmUgV2ViIEFwcCBmb3IgJHtBUFBfTkFNRX0ke3N1Zmlqb30uYCxcclxuICAgICAgICAgICAgICAgICAgXCJpY29uc1wiOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTMyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMzJ4MzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tNDgke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI0OHg0OFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS02NCR7c3VmaWpvfS5wbmdgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzaXplc1wiOiBcIjY0eDY0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgXCJzcmNcIjogYC4uL2ltZy8ke0FQUF9OQU1FfS1sb2dvLWRtLTcyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiNzJ4NzJcIixcclxuICAgICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImltYWdlL3BuZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNyY1wiOiBgLi4vaW1nLyR7QVBQX05BTUV9LWxvZ28tZG0tMTkyJHtzdWZpam99LnBuZ2AsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInNpemVzXCI6IFwiMTkyeDE5MlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwiaW1hZ2UvcG5nXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIFwic3JjXCI6IGAuLi9pbWcvJHtBUFBfTkFNRX0tbG9nby1kbS01MTIke3N1Zmlqb30ucG5nYCxcclxuICAgICAgICAgICAgICAgICAgICAgIFwic2l6ZXNcIjogXCI1MTJ4NTEyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbWFnZS9wbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgICAgLi4uYmUuZ2V0Q29sb3JzSnNvbihzdWZpam8gYXMgU3VmaWpvc0FtYmllbnRlKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlVGV4dChKU09OLnN0cmluZ2lmeShjb250ZW50KSwgJ2FwcGxpY2F0aW9uL2pzb24nKShyZXEscmVzKTtcclxuICAgICAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVFcnIocmVxLCByZXMsIG5leHQpKHVuZXhwZWN0ZWQoZXJyKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGdldENvbG9yc0pzb24oX3N1ZmlqbzogU3VmaWpvc0FtYmllbnRlKXtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBcInN0YXJ0X3VybFwiOiBcIi4uL2NhbXBvXCIsXHJcbiAgICAgICAgICAgIFwiZGlzcGxheVwiOiBcInN0YW5kYWxvbmVcIixcclxuICAgICAgICAgICAgXCJ0aGVtZV9jb2xvclwiOiBcIiMzRjUxQjVcIixcclxuICAgICAgICAgICAgXCJiYWNrZ3JvdW5kX2NvbG9yXCI6IFwiIzZkNjBlZFwiXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYWRkTG9nZ2VkU2VydmljZXMoKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHN1cGVyLmFkZExvZ2dlZFNlcnZpY2VzKCk7XHJcbiAgICAgICAgYmUuYXBwLmdldCgnL21hbmlmZXN0Lm1hbmlmZXN0JywgYXN5bmMgZnVuY3Rpb24ocmVxOlJlcXVlc3QsIHJlczpSZXNwb25zZSwgX25leHQ6TmV4dEZ1bmN0aW9uKXtcclxuICAgICAgICAgICAgbWluaVRvb2xzLnNlcnZlRmlsZSgnc3JjL2NsaWVudC9tYW5pZmVzdC5tYW5pZmVzdCcse30pKHJlcSxyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYXBwLmdldCgnL2ZpbGUnLCBhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCxyZXM6UmVzcG9uc2Upe1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYmUuaW5UcmFuc2FjdGlvbihyZXEsIFxyXG4gICAgICAgICAgICAgICAgKGNsaWVudDpwZy5DbGllbnQpPT5cclxuICAgICAgICAgICAgICAgIGNsaWVudC5xdWVyeShcInNlbGVjdCBydXRhIGZyb20gYWRqdW50b3Mgd2hlcmUgaWRfYWRqdW50byA9ICQxXCIsW3JlcS5xdWVyeS5pZF9hZGp1bnRvXSlcclxuICAgICAgICAgICAgICAgIC5mZXRjaFVuaXF1ZVZhbHVlKClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdmFyIHBhdGggPSByZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgIG1pbmlUb29scy5zZXJ2ZUZpbGUocGF0aCx7fSkocmVxLHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHAuZ2V0KCcvaW1hZ2VuZXMnLCBhc3luYyBmdW5jdGlvbihyZXE6UmVxdWVzdCxyZXM6UmVzcG9uc2Upe1xyXG4gICAgICAgICAgICBtaW5pVG9vbHMuc2VydmVGaWxlKCdsb2NhbC1pbWFnZXMvJytyZXEucXVlcnkucGRmLHt9KShyZXEscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmFwcC5nZXQoJy9kb3dubG9hZC9hbGwnLGFzeW5jIGZ1bmN0aW9uKHJlcTpSZXF1ZXN0LCByZXM6UmVzcG9uc2UsIG5leHQ6KCk9PnZvaWQpe1xyXG4gICAgICAgICAgICBpZihyZXEudXNlcj09bnVsbCB8fCByZXEudXNlci5yb2whPSdhZG1pbicpe1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vIGVzdMOhIGF1dG9yaXphZG8gYSBiYWphcnNlIHRvZG8nLHJlcS51c2VyKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgemlwID0gbmV3IHlhemwuWmlwRmlsZSgpO1xyXG4gICAgICAgICAgICB6aXAub3V0cHV0U3RyZWFtLnBpcGUocmVzKTtcclxuICAgICAgICAgICAgbGV0IGJhc2UgPSAnbG9jYWwtYXR0YWNobWVudHMnXHJcbiAgICAgICAgICAgIGxldCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoYmFzZSk7XHJcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGZpbGVzLm1hcChhc3luYyBmdW5jdGlvbihmaWxlTmFtZTpzdHJpbmcpe1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhdGggPSBiYXNlKycvJytmaWxlTmFtZTtcclxuICAgICAgICAgICAgICAgIHZhciBzdGF0ID0gYXdhaXQgZnMuc3RhdChwYXRoKTtcclxuICAgICAgICAgICAgICAgIGlmKHN0YXQuaXNGaWxlKCkpe1xyXG4gICAgICAgICAgICAgICAgICAgIHppcC5hZGRGaWxlKHBhdGgsZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIHppcC5lbmQoKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgcG9zdENvbmZpZygpe1xyXG4gICAgICAgIGF3YWl0IHN1cGVyLnBvc3RDb25maWcoKTtcclxuICAgICAgICB2YXIgYmU9dGhpcztcclxuICAgICAgICBiZS5jYWNoZXMubWV0YUVuY0luY2x1aXJDYXNpbGxlcm9zU2FsdG9SRUwgPSBmYWxzZTtcclxuICAgICAgICBhd2FpdCBiZS5pblRyYW5zYWN0aW9uKG51bGwsIGFzeW5jIGZ1bmN0aW9uKGNsaWVudDpwZy5DbGllbnQpe1xyXG4gICAgICAgICAgICB2YXIgcVBlcm1pc29zPWBcclxuICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2coci5yb2wsanNvbmJfYnVpbGRfb2JqZWN0KCdzdXBlcnVzZXInLHIuc3VwZXJ1c2VyLCdwdWVkZScsKFxyXG4gICAgICAgICAgICAgICAgICBTRUxFQ1QganNvbmJfb2JqZWN0X2FnZyhycC5wZXJtaXNvLChcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2cocnBhLmFjY2lvbixycGEuaGFiaWxpdGFkbylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHJvbGVzX3Blcm1pc29zIHJwYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHJwYS5yb2w9cnAucm9sIEFORCBycGEucGVybWlzbz1ycC5wZXJtaXNvXHJcbiAgICAgICAgICAgICAgICAgICAgKSlcclxuICAgICAgICAgICAgICAgICAgICBGUk9NIHJvbGVzX3Blcm1pc29zIHJwXHJcbiAgICAgICAgICAgICAgICAgICAgV0hFUkUgcnAucm9sPXIucm9sICNjb25kSGFiaWxpdGFkbyNcclxuICAgICAgICAgICAgICApKSlcclxuICAgICAgICAgICAgICBGUk9NIHJvbGVzIHJcclxuICAgICAgICAgICAgYDtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXHJcbiAgICAgICAgICAgICAgICBhd2FpdCBjbGllbnQucXVlcnkocVBlcm1pc29zLnJlcGxhY2UoJyNjb25kSGFiaWxpdGFkbyMnLCcnKSkuZmV0Y2hVbmlxdWVWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KHFQZXJtaXNvcy5yZXBsYWNlKCcjY29uZEhhYmlsaXRhZG8jJyxgIGFuZCBycC4ke3BnLnF1b3RlSWRlbnQoJ2hhYmlsaXRhZG8nKX1gKSkuZmV0Y2hVbmlxdWVWYWx1ZSgpLFxyXG4gICAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnF1ZXJ5KGBcclxuICAgICAgICAgICAgICAgICAgICBTRUxFQ1QganNvbmJfb2JqZWN0X2FnZyhwZXJtaXNvLChcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0VMRUNUIGpzb25iX29iamVjdF9hZ2coYWNjaW9uLHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSBwZXJtaXNvcyBwYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBhLnBlcm1pc289cC5wZXJtaXNvXHJcbiAgICAgICAgICAgICAgICAgICAgICApKVxyXG4gICAgICAgICAgICAgICAgICAgICAgRlJPTSBwZXJtaXNvcyBwXHJcbiAgICAgICAgICAgICAgICBgKS5mZXRjaFVuaXF1ZVZhbHVlKClcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgYmUuY2FjaGVzLnBlcm1pc29zUm9sPXJlc3VsdHNbMF0udmFsdWU7XHJcbiAgICAgICAgICAgIGJlLmNhY2hlcy5wZXJtaXNvc1JvbFNvbG9UcnVlPXJlc3VsdHNbMV0udmFsdWU7XHJcbiAgICAgICAgICAgIGJlLmNhY2hlcy5wZXJtaXNvc1N1cGVydXNlcj1yZXN1bHRzWzJdLnZhbHVlO1xyXG4gICAgICAgICAgICBiZS5jYWNoZXMucGVybWlzb3NQYXJhTmFkaWU9bGlrZUFyKGJlLmNhY2hlcy5wZXJtaXNvc1N1cGVydXNlcikubWFwKHA9Pmxpa2VBcihwKS5tYXAoXz0+ZmFsc2UpLnBsYWluKCkpLnBsYWluKClcclxuICAgICAgICAgICAgLy9jb25zb2xlLmRpcihiZS5jYWNoZXMucGVybWlzb3NSb2xTb2xvVHJ1ZSx7ZGVwdGg6OX0pO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuZGlyKGJlLmNhY2hlcy5wZXJtaXNvc1N1cGVydXNlcix7ZGVwdGg6OX0pO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUuZGlyKGJlLmNhY2hlcy5wZXJtaXNvc1BhcmFOYWRpZSx7ZGVwdGg6OX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaENhY2hlcygpO1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgY29uZmlnU3RhdGljQ29uZmlnKCl7XHJcbiAgICAgICAgc3VwZXIuY29uZmlnU3RhdGljQ29uZmlnKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0aWNDb25maWcoZGVmQ29uZmlnKTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIGNsaWVudEluY2x1ZGVzKHJlcTpSZXF1ZXN0LCBvcHRzOk9wdHNDbGllbnRQYWdlKTpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10ge1xyXG4gICAgICAgIHZhciBiZSA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHVubG9nZ2VkID0gb3B0cyAmJiBvcHRzLm9mZmxpbmVGaWxlO1xyXG4gICAgICAgIHZhciBtZW51ZWRSZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdPSB1bmxvZ2dlZD9bXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3VubG9nZ2VkLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICBdOltcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vY2xpZW50L2NsaWVudCcsIGZpbGU6ICdjbGllbnQuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgICAgaWYob3B0cyAmJiBvcHRzLmV4dHJhRmlsZXMpe1xyXG4gICAgICAgICAgICBtZW51ZWRSZXNvdXJjZXMgPSBtZW51ZWRSZXNvdXJjZXMuY29uY2F0KG9wdHMuZXh0cmFGaWxlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBleHRlcm5hbFJlc291cmNlczpDbGllbnRNb2R1bGVEZWZpbml0aW9uW10gPSBbXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QnLCBtb2RQYXRoOiAndW1kJywgZmlsZURldmVsb3BtZW50OidyZWFjdC5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlYWN0LWRvbScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycsIGZpbGU6J3JlYWN0LWRvbS5wcm9kdWN0aW9uLm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdAbWF0ZXJpYWwtdWkvY29yZScsIG1vZFBhdGg6ICd1bWQnLCBmaWxlRGV2ZWxvcG1lbnQ6J21hdGVyaWFsLXVpLmRldmVsb3BtZW50LmpzJywgZmlsZTonbWF0ZXJpYWwtdWkucHJvZHVjdGlvbi5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnY2xzeCcsIGZpbGU6J2Nsc3gubWluLmpzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ3JlZHV4JywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGVEZXZlbG9wbWVudDoncmVkdXguanMnLCBmaWxlOidyZWR1eC5taW4uanMnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAncmVhY3QtcmVkdXgnLCBtb2RQYXRoOicuLi9kaXN0JywgZmlsZURldmVsb3BtZW50OidyZWFjdC1yZWR1eC5qcycsIGZpbGU6J3JlYWN0LXJlZHV4Lm1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdtZW1vaXplLW9uZScsICBmaWxlOidtZW1vaXplLW9uZS5qcycgfSxcclxuICAgICAgICAgICAgLy97IHR5cGU6ICdqcycsIG1vZHVsZTogJ3FyY29kZScsIG1vZFBhdGg6ICcuLi9idWlsZCcsIGZpbGU6ICdxcmNvZGUuanMnfSxcclxuICAgICAgICAgICAgLi4uc3VwZXIuY2xpZW50SW5jbHVkZXMocmVxLCBvcHRzKS5maWx0ZXIobT0+bS5maWxlIT0nZm9ybXVsYXJpb3MuY3NzJylcclxuICAgICAgICAgICAgLmZpbHRlcihtPT4hdW5sb2dnZWQgfHwgdHJ1ZVxyXG4gICAgICAgICAgICAgICAgJiYgbS5maWxlIT0ndmFyLWNhbC5qcydcclxuICAgICAgICAgICAgICAgICYmIG0uZmlsZSE9J3Zhci1jYWwuanMnICAgICBcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdzZXJ2aWNlLXdvcmtlci1hZG1pbicsICBmaWxlOidzZXJ2aWNlLXdvcmtlci1hZG1pbi5qcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdyZWR1eC10eXBlZC1yZWR1Y2VyJywgbW9kUGF0aDonLi4vZGlzdCcsIGZpbGU6J3JlZHV4LXR5cGVkLXJlZHVjZXIuanMnIH1cclxuICAgICAgICBdO1xyXG4gICAgICAgIHZhciByZXNvdXJjZXM6Q2xpZW50TW9kdWxlRGVmaW5pdGlvbltdID0gW1xyXG4gICAgICAgICAgICAuLi5leHRlcm5hbFJlc291cmNlcyxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAnYWRhcHQuanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICd0aXBvcy5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ2J5cGFzcy1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAncmVkdXgtZm9ybXVsYXJpby5qcycsIHBhdGg6ICdkbWVuY3UnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2pzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkJywgZmlsZTogJ3JlbmRlci1nZW5lcmFsLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnanMnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQnLCBmaWxlOiAncmVuZGVyLWZvcm11bGFyaW8uanMnLCBwYXRoOiAnZG1lbmN1JyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICdqcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZCcsIGZpbGU6ICdhYnJpci1mb3JtdWxhcmlvLmpzJywgcGF0aDogJ2RtZW5jdScgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnY3NzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL2NsaWVudC9jbGllbnQvY3NzJywgZmlsZTogJ21lbnUuY3NzJywgcGF0aDogJ2NzcycgfSxcclxuICAgICAgICAgICAgeyB0eXBlOiAnY3NzJywgbW9kdWxlOiAnZG1lbmN1JywgbW9kUGF0aDogJy4uLy4uL3VubG9nZ2VkL3VubG9nZ2VkL2NzcycsIGZpbGU6ICdmb3JtdWxhcmlvLXJlYWN0LmNzcycsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIHsgdHlwZTogJ2NzcycsIG1vZHVsZTogJ2RtZW5jdScsIG1vZFBhdGg6ICcuLi8uLi91bmxvZ2dlZC91bmxvZ2dlZC9jc3MnLCBmaWxlOiAnYm9vdHN0cmFwLm1pbi5jc3MnLCBwYXRoOiAnY3NzJyB9LFxyXG4gICAgICAgICAgICB7IHR5cGU6ICd0dGYnLCBtb2R1bGU6ICdkbWVuY3UnLCBtb2RQYXRoOiAnLi4vLi4vdW5sb2dnZWQvdW5sb2dnZWQvY3NzJywgZmlsZTogJ1JvYm90by1SZWd1bGFyLnR0ZicsIHBhdGg6ICdjc3MnIH0sXHJcbiAgICAgICAgICAgIC4uLiBtZW51ZWRSZXNvdXJjZXMsXHJcbiAgICAgICAgXVxyXG4gICAgICAgIHJldHVybiByZXNvdXJjZXNcclxuICAgICAgICAvLyAubWFwKG09Pih7Li4ubSwgZmlsZTptLmZpbGVEZXZlbG9wbWVudHx8bS5maWxlfSkpO1xyXG4gICAgfVxyXG4gICAgYXN5bmMgcmVmcmVzaENhY2hlcygpe1xyXG4gICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCA9IHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudCB8fCB7fTtcclxuICAgICAgICBhd2FpdCB0aGlzLmluRGJDbGllbnQobnVsbCwgYXN5bmMgKGNsaWVudCk9PntcclxuICAgICAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYSA9IChhd2FpdCBjbGllbnQucXVlcnkoYHNlbGVjdCAqIGZyb20gbm9fcmVhIG9yZGVyIGJ5IG5vX3JlYWApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYWNoZXMnLHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEpXHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfZ3JvdXBzID0gKGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgICAgICBzZWxlY3QgZ3J1cG8sIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWEgciBncm91cCBieSBncnVwbyBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfZ3JvdXBzMCA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IGdydXBvMCBhcyBncnVwbywganNvbmJfYWdnKHRvX2pzb24oci4qKSkgYXMgY29kaWdvcyBmcm9tIG5vX3JlYSByIGdyb3VwIGJ5IGdydXBvMCBvcmRlciBieSAxXHJcbiAgICAgICAgICAgIGApLmZldGNoQWxsKCkpLnJvd3M7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWFfc3VwID0gKGF3YWl0IGNsaWVudC5xdWVyeShgc2VsZWN0ICogZnJvbSBub19yZWFfc3VwIG9yZGVyIGJ5IG5vX3JlYV9zdXBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2FjaGVzJyx0aGlzLmNhY2hlcy50YWJsZUNvbnRlbnQubm9fcmVhX3N1cClcclxuICAgICAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXBfZ3JvdXBzID0gKGF3YWl0IGNsaWVudC5xdWVyeShgXHJcbiAgICAgICAgICAgIHNlbGVjdCBncnVwb19zdXAsIGpzb25iX2FnZyh0b19qc29uKHIuKikpIGFzIGNvZGlnb3MgZnJvbSBub19yZWFfc3VwIHIgZ3JvdXAgYnkgZ3J1cG9fc3VwIG9yZGVyIGJ5IDFcclxuICAgICAgICAgICAgYCkuZmV0Y2hBbGwoKSkucm93cztcclxuICAgICAgICAgICAgdGhpcy5jYWNoZXMudGFibGVDb250ZW50Lm5vX3JlYV9zdXBfZ3JvdXBzMCA9IChhd2FpdCBjbGllbnQucXVlcnkoYFxyXG4gICAgICAgICAgICBzZWxlY3QgZ3J1cG8wX3N1cCBhcyBncnVwbywganNvbmJfYWdnKHRvX2pzb24oci4qKSkgYXMgY29kaWdvcyBmcm9tIG5vX3JlYV9zdXAgciBncm91cCBieSBncnVwbzBfc3VwIG9yZGVyIGJ5IDFcclxuICAgICAgICBgKS5mZXRjaEFsbCgpKS5yb3dzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgY29uc29sZS5sb2coJ2NhY2hlcyBvaycpO1xyXG4gICAgfVxyXG4gICAgLy9zcWxOb3JlYUNhc2UoY2FtcG9OZWNlc2FyaW86c3RyaW5nKXtcclxuICAgIC8vICAgIHZhciBiZT10aGlzO1xyXG4gICAgLy8gICAgcmV0dXJuIGBDQVNFICR7YmUuY2FjaGVzLnRhYmxlQ29udGVudC5ub19yZWEubWFwKHg9PlxyXG4gICAgLy8gICAgICAgIGAgV0hFTiBub3JlYSAgPSAke2JlLmRiLnF1b3RlTGl0ZXJhbCh4Lm5vX3JlYSl9OjppbnRlZ2VyIFRIRU4gJHtiZS5kYi5xdW90ZUxpdGVyYWwoeFtjYW1wb05lY2VzYXJpb10pfWBcclxuICAgIC8vICAgICkuam9pbignJyl9IFdIRU4gVFJVRSBUSEVOIE5VTEwgRU5EYFxyXG4gICAgLy99ICAgIFxyXG4gICAgb3ZlcnJpZGUgZ2V0Q29udGV4dChyZXE6UmVxdWVzdCk6Q29udGV4dHtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBmYXRoZXJDb250ZXh0ID0gc3VwZXIuZ2V0Q29udGV4dChyZXEpO1xyXG4gICAgICAgIGlmKGZhdGhlckNvbnRleHQudXNlcil7XHJcbiAgICAgICAgICAgIGlmKHJlcS51c2VyPy5yb2wgIT1udWxsICYmIGJlLmNhY2hlcy5wZXJtaXNvc1JvbFtyZXEudXNlci5yb2xdPy5zdXBlcnVzZXIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtzdXBlcnVzZXI6dHJ1ZSwgcHVlZGU6IGJlLmNhY2hlcy5wZXJtaXNvc1N1cGVydXNlciwgLi4uZmF0aGVyQ29udGV4dH1cclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge3B1ZWRlOiBiZS5jYWNoZXMucGVybWlzb3NSb2xbcmVxLnVzZXIucm9sXT8ucHVlZGUsIC4uLmZhdGhlckNvbnRleHR9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtwdWVkZTpiZS5jYWNoZXMucGVybWlzb3NQYXJhTmFkaWUsIC4uLmZhdGhlckNvbnRleHR9O1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgZ2V0Q29udGV4dEZvckR1bXAoKTpDb250ZXh0e1xyXG4gICAgICAgIHZhciBmYXRoZXJDb250ZXh0ID0gc3VwZXIuZ2V0Q29udGV4dEZvckR1bXAoKTtcclxuICAgICAgICByZXR1cm4ge3N1cGVydXNlcjp0cnVlLCBwdWVkZTogdGhpcy5jYWNoZXMucGVybWlzb3NTdXBlcnVzZXIsIC4uLmZhdGhlckNvbnRleHR9O1xyXG4gICAgfVxyXG4gICAgb3ZlcnJpZGUgYXN5bmMgZ2V0Q2xpZW50U2V0dXBGb3JTZW5kVG9Gcm9udEVuZChyZXE6UmVxdWVzdCl7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4uKGF3YWl0IHN1cGVyLmdldENsaWVudFNldHVwRm9yU2VuZFRvRnJvbnRFbmQocmVxKSksXHJcbiAgICAgICAgICAgIGlkcGVyOiByZXEudXNlcj8uaWRwZXJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjcmVhdGVSZXNvdXJjZXNGb3JDYWNoZUpzb24oKXtcclxuICAgICAgICB2YXIgYmUgPSB0aGlzO1xyXG4gICAgICAgIHZhciBqc29uUmVzdWx0ID0ge1xyXG4gICAgICAgICAgICB2ZXJzaW9uOiBBUFBfRE1fVkVSU0lPTixcclxuICAgICAgICAgICAgYXBwTmFtZTogJ2RtZW5jdScsXHJcbiAgICAgICAgICAgIGNhY2hlOiBbXHJcbiAgICAgICAgICAgICAgICBcImNhbXBvXCIsXHJcbiAgICAgICAgICAgICAgICBcIm9mZmxpbmVcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9jbHN4Lm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVkdXgubWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWFjdC1yZWR1eC5taW4uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL21lbW9pemUtb25lLmpzXCIsXHJcbiAgICAgICAgICAgICAgICAvL1wibGliL3FyY29kZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvcmVxdWlyZS1icm8uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2Nhc3QtZXJyb3IuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2xpa2UtYXIuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2Jlc3QtZ2xvYmFscy5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvanNvbjRhbGwuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL2pzLXRvLWh0bWwuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3JlZHV4LXR5cGVkLXJlZHVjZXIuanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L2FkYXB0LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS91bmxvZ2dlZC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvanMteWFtbC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIveGxzeC5jb3JlLm1pbi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbGF6eS1zb21lLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9zcWwtdG9vbHMuanNcIixcclxuICAgICAgICAgICAgICAgIFwiZGlhbG9nLXByb21pc2UvZGlhbG9nLXByb21pc2UuanNcIixcclxuICAgICAgICAgICAgICAgIFwibW9tZW50L21pbi9tb21lbnQuanNcIixcclxuICAgICAgICAgICAgICAgIFwicGlrYWRheS9waWthZGF5LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9wb2x5ZmlsbHMtYnJvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9iaWcuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3R5cGUtc3RvcmUuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3R5cGVkLWNvbnRyb2xzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9hamF4LWJlc3QtcHJvbWlzZS5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJteS1hamF4LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcIm15LXN0YXJ0LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1sb2NhbGRiLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS13ZWJzcWxkYi5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktbG9jYWxkYi5qcy5tYXBcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LXdlYnNxbGRiLmpzLm1hcFwiLFxyXG4gICAgICAgICAgICAgICAgXCJsaWIvbXktdGhpbmdzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS10YWJsZXMuanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL215LWluZm9ybS1uZXQtc3RhdHVzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1tZW51LmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9teS1za2luLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9jbGllbnRlLWVuLWNhc3RlbGxhbm8uanNcIixcclxuICAgICAgICAgICAgICAgIFwibGliL3NlcnZpY2Utd29ya2VyLWFkbWluLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImxpYi9yZWR1eC10eXBlZC1yZWR1Y2VyLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL29wZXJhdGl2b3MuanNcIixcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50X21vZHVsZXMvdmFyY2FsLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL2Zvcm0tc3RydWN0dXJlLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL21ldGEtZW5jLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL2RhdG9zLWV4dC5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjbGllbnRfbW9kdWxlcy9jb25zaXN0ZW5jaWFzLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3Byb2Nlc2FtaWVudG8uanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3RpcG9zLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9ieXBhc3MtZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvcmVkdXgtZm9ybXVsYXJpby5qc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJkbWVuY3UvcmVuZGVyLWdlbmVyYWwuanNcIixcclxuICAgICAgICAgICAgICAgIFwiZG1lbmN1L3JlbmRlci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImRtZW5jdS9hYnJpci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudF9tb2R1bGVzL3Jvdy12YWxpZGF0b3IuanNcIixcclxuICAgICAgICAgICAgICAgIFwiY2xpZW50L21lbnUuanNcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2xvZ28ucG5nXCIsXHJcbiAgICAgICAgICAgICAgICAvL1wiaW1nL2xvZ28tZG0ucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9sb2dvLTEyOC5wbmdcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL21haW4tbG9hZGluZy5naWZcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2JvcnJhci12YWxvci5wbmdcIixcclxuICAgICAgICAgICAgICAgIFwiaW1nL2ZvbmRvLXNhbHRlYWRvLWVycm9yLnBuZ1wiLFxyXG4gICAgICAgICAgICAgICAgXCJpbWcvZm9uZG8tc2FsdGVhZG8ucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImltZy9iYWNrZ3JvdW5kLXRlc3QucG5nXCIsXHJcbiAgICAgICAgICAgICAgICBcImNsaWVudC1zZXR1cFwiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvYm9vdHN0cmFwLm1pbi5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL2Zvcm11bGFyaW8tcmVhY3QuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcInBpa2FkYXkvcGlrYWRheS5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiZGlhbG9nLXByb21pc2UvZGlhbG9nLXByb21pc2UuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcInJlbC1lbmMvZXN0YWRvcy5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL215LXRhYmxlcy5jc3NcIixcclxuICAgICAgICAgICAgICAgIFwiY3NzL215LW1lbnUuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9teS10aGluZ3MuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9tZW51LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJyZWwtZW5jL215LXRoaW5nczIuY3NzXCIsXHJcbiAgICAgICAgICAgICAgICBcImNzcy9mb3JtdWxhcmlvLXJlYWN0LmNzc1wiLFxyXG4gICAgICAgICAgICAgICAgXCJjc3MvUm9ib3RvLVJlZ3VsYXIudHRmXCJcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgZmFsbGJhY2s6IFtcclxuICAgICAgICAgICAgICAgIHtcInBhdGhcIjpcImxvZ2luXCIsIFwiZmFsbGJhY2tcIjpcIm9mZmxpbmVcIn0sXHJcbiAgICAgICAgICAgICAgICB7XCJwYXRoXCI6XCJsb2dvdXRcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifSxcclxuICAgICAgICAgICAgICAgIHtcInBhdGhcIjpcImxvZ2luI2k9c2luY3Jvbml6YXJcIiwgXCJmYWxsYmFja1wiOlwib2ZmbGluZVwifSxcclxuICAgICAgICAgICAgICAgIHtcInBhdGhcIjpcIm1lbnUjaT1zaW5jcm9uaXphclwiLCBcImZhbGxiYWNrXCI6XCJvZmZsaW5lXCJ9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBqc29uUmVzdWx0XHJcbiAgICB9XHJcbiAgICBnZXRNZW51KGNvbnRleHQ6Q29udGV4dCl7XHJcbiAgICAgICAgbGV0IG1lbnU6TWVudUluZm9CYXNlW10gPSBbXTtcclxuICAgICAgICBsZXQgZmlsdHJvUmVjZXBjaW9uaXN0YSA9IGNvbnRleHQudXNlci5yb2w9PSdyZWNlcGNpb25pc3RhJyA/IHtyZWNlcGNpb25pc3RhOiBjb250ZXh0LnVzZXIuaWRwZXJ9IDoge307XHJcbiAgICAgICAgaWYodGhpcy5jb25maWcuc2VydmVyLnBvbGljeT09J3dlYicpe1xyXG4gICAgICAgICAgICBpZihjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXMucmVsZXZhcil7XHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLmNvbmZpZ1snY2xpZW50LXNldHVwJ10uYW1iaWVudGU9PSdkZW1vJyB8fCB0aGlzLmNvbmZpZ1snY2xpZW50LXNldHVwJ10uYW1iaWVudGU9PSd0ZXN0JyB8fCB0aGlzLmNvbmZpZ1snY2xpZW50LXNldHVwJ10uYW1iaWVudGU9PSdjYXBhJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbWVudS5wdXNoKHttZW51VHlwZTonZGVtbycsIG5hbWU6J2RlbW8nLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSlcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIG1lbnUucHVzaCh7bWVudVR5cGU6J3BhdGgnLCBuYW1lOidyZWxldmFtaWVudG8nLCBwYXRoOicvY2FtcG8nfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3NpbmNyb25pemFyX2RtJywgbmFtZTonc2luY3Jvbml6YXInfSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FtcG8/LmVkaXRhcil7XHJcbiAgICAgICAgICAgICAgICBsZXQgc3VibWVudUFzaWduYWNpb246TWVudUluZm9CYXNlW10gPSBbXVxyXG4gICAgICAgICAgICAgICAgbGV0IHN1Ym1lbnVSZWNlcGNpb246TWVudUluZm9CYXNlW10gPSBbXVxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1lbnVBc2lnbmFjaW9uLnB1c2goeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ2dlbmVyYWwnLCB0YWJsZTogJ2FyZWFzX2FzaWduYWNpb25fZ2VuZXJhbCcgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzdWJtZW51QXNpZ25hY2lvbi5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbWVudVR5cGU6ICd0YWJsZScsIG5hbWU6ICdlbmN1ZXN0YWRvcicsIHRhYmxlOiAndF9lbmN1X2FyZWFzJywgZmY6IHsgdGFyZWE6ICdlbmN1JywgLi4uZmlsdHJvUmVjZXBjaW9uaXN0YSB9IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3JlY3VwZXJhZG9yJywgdGFibGU6ICd0YXJlYXNfdGVtX3JlY3UnLCBmZjogeyB0YXJlYV9hc2lnbmFyOiAncmVjdScsIHRhcmVhOiAncmVjdScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcil7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VibWVudUFzaWduYWNpb24ucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgeyBtZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ3N1cGVydmlzb3InICwgdGFibGU6ICd0YXJlYXNfdGVtX3N1cGUnLCBmZjogeyB0YXJlYV9hc2lnbmFyOiAnc3VwZScsIHRhcmVhOiAnc3VwZScsIC4uLmZpbHRyb1JlY2VwY2lvbmlzdGEgfSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBzdWJtZW51UmVjZXBjaW9uLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgdGFibGU6J2VuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3JlY3VwZXJhZG9yJywgdGFibGU6J3JlY3VwZXJhZG9yZXNfYXNpZ25hZG9zJ30sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonYXNpZ25hY2lvbicsIGxhYmVsOidhc2lnbmFjacOzbicgLG1lbnVDb250ZW50OiBzdWJtZW51QXNpZ25hY2lvbn0sXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZToncmVjZXBjaW9uJywgbGFiZWw6J3JlY2VwY2nDs24nICxtZW51Q29udGVudDpzdWJtZW51UmVjZXBjaW9ufSwgIFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcil7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VibWVudVJlY2VwY2lvbi5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonc3VwZXJ2aXNvcicgLCB0YWJsZTonc3VwZXJ2aXNvcmVzX2FzaWduYWRvcycgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6ICdtaXNfc3VwZXJ2aXNvcmVzJyAsIHRhYmxlOiAnbWlzX3N1cGVydmlzb3Jlc19hc2lnbmFkb3MnfVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTonbWVudScsIG5hbWU6J3N1cGVydmlzaW9uJywgbGFiZWw6J3N1cGVydmlzacOzbicgLG1lbnVDb250ZW50OltcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidzdXBlcnZpc2FyJyAsIHRhYmxlOid0YXJlYXNfdGVtX2luZ3Jlc28nLCBmZjp7dGFyZWE6J3N1cGUnLCBhc2lnbmFkbzpjb250ZXh0LnVzZXIuaWRwZXIgfSB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgfSAgICBcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaCggICAgICBcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6ICdtZW51JywgbmFtZTogJ3ZhcmlvcycsIG1lbnVDb250ZW50OiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTogJ2FicmlyX2VuY3Vlc3RhJywgbmFtZTogJ2FicmlyX2VuY3Vlc3RhJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTogJ3RhYmxlJywgbmFtZTogJ2hvamFfcnV0YScsIHRhYmxlOiAnZ3JpbGxhX2hvamFfcnV0YScsIGxhYmVsOiAnaG9qYSBkZSBydXRhJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnUucHVzaChcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J21lbnUnLCBuYW1lOidjb250cm9sJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncmVzdW1lbicsIHRhYmxlOidjb250cm9sX3Jlc3VtZW4nLCBzZWxlY3RlZEJ5RGVmYXVsdDp0cnVlfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RvbWluaW8nLCB0YWJsZTonY29udHJvbF9jYW1wb19kb21pbmlvJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid6b25hJyAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fem9uYScgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb211bmEnICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOifDoXJlYScgICAsIHRhYmxlOidjb250cm9sX2NhbXBvX2FyZWEnICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFydGljaXBhY2lvbicgICAgICAgICwgdGFibGU6J2NvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbicgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uZW5jdWVzdGFzPy5wcm9jZXNhcil7XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZToncHJvY2VzYXInLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid2YXJpYWJsZXMnICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidjb25zaXN0ZW5jaWFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidpbmNvbnNpc3RlbmNpYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3RhYmxhX2RhdG9zJyAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2RpY2Npb25hcmlvJyAgLCBsYWJlbDonZGljY2lvbmFyaW9zJyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgbWVudUNvbmZpZ3VyYXI6TWVudUluZm9CYXNlW10gPSBbXTtcclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FtcG8/LmFkbWluaXN0cmFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbXVlc3RyYScsIGxhYmVsOidtdWVzdHJhJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTondGVtJywgbGFiZWw6ICdURU0nfSAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0YXJlYXMnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoY29udGV4dC5wdWVkZT8uY2FzaWxsZXJvc190ZXh0bz8uZWRpdGFyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonbWV0YWRhdG9zJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonb3BlcmF0aXZvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZm9ybXVsYXJpb3MnICwgdGFibGU6J2Nhc2lsbGVyb3NfcHJpbmNpcGFsZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3BsYW5vJyAgICAgICAsIHRhYmxlOidjYXNpbGxlcm9zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0aXBvYycgICAgICAgLCBsYWJlbDondGlwb3MgZGUgY2VsZGFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid0aXBvY190aXBvYycgLCBsYWJlbDonaW5jbHVzaW9uZXMgZGUgY2VsZGFzJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgXX0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQuc3VwZXJ1c2VyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTonZXN0YWRvc19hY2Npb25lcycsIGxhYmVsOidlc3RhZG9zL2FjY2lvbmVzJywgbWVudUNvbnRlbnQ6W1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonZXN0YWRvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZTonYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J2VzdGFkb3NfYWNjaW9uZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICBdfSxcclxuICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncGFyYW1ldHJvcyd9LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhciB8fCBjb250ZXh0LnB1ZWRlPy5lbmN1ZXN0YXM/LnByb2Nlc2FyKXtcclxuICAgICAgICAgICAgICAgIG1lbnVDb25maWd1cmFyLnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOidtZW51JywgbmFtZTondXN1YXJpb3MnLCBtZW51Q29udGVudDpbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOid1c3VhcmlvcycsIHNlbGVjdGVkQnlEZWZhdWx0OnRydWV9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7bWVudVR5cGU6J3RhYmxlJywgbmFtZToncm9sZXMnfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge21lbnVUeXBlOid0YWJsZScsIG5hbWU6J3Blcm1pc29zJ30sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHttZW51VHlwZTondGFibGUnLCBuYW1lOidyb2xlc19wZXJtaXNvcyd9LFxyXG4gICAgICAgICAgICAgICAgICAgIF19LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKG1lbnVDb25maWd1cmFyLmxlbmd0aCl7XHJcbiAgICAgICAgICAgICAgICBtZW51LnB1c2goe21lbnVUeXBlOidtZW51JywgbmFtZTonY29uZmlndXJhcicsIG1lbnVDb250ZW50Om1lbnVDb25maWd1cmFyfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHttZW51fTtcclxuICAgIH1cclxuICAgIG92ZXJyaWRlIHByZXBhcmVHZXRUYWJsZXMoKXtcclxuICAgICAgICB2YXIgYmU9dGhpcztcclxuICAgICAgICBzdXBlci5wcmVwYXJlR2V0VGFibGVzKCk7XHJcbiAgICAgICAgdGhpcy5nZXRUYWJsZURlZmluaXRpb249e1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldFRhYmxlRGVmaW5pdGlvblxyXG4gICAgICAgICAgICAsIHJvbGVzXHJcbiAgICAgICAgICAgICwgdXN1YXJpb3NcclxuICAgICAgICAgICAgLCBwZXJzb25hbFxyXG4gICAgICAgICAgICAsIHJlY2VwY2lvbmlzdGFzXHJcbiAgICAgICAgICAgICwgZW5jdWVzdGFkb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCByZWN1cGVyYWRvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc19hc2lnbmFkb3NcclxuICAgICAgICAgICAgLCBtaXNfc3VwZXJ2aXNvcmVzX2FzaWduYWRvc1xyXG4gICAgICAgICAgICAsIG1pc19lbmN1ZXN0YWRvcmVzXHJcbiAgICAgICAgICAgICwgcmVjdXBlcmFkb3Jlc1xyXG4gICAgICAgICAgICAsIHN1cGVydmlzb3Jlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFsX3JvbFxyXG4gICAgICAgICAgICAsIHBlcm1pc29zXHJcbiAgICAgICAgICAgICwgcm9sZXNfcGVybWlzb3NcclxuICAgICAgICAgICAgLCByb2xlc19zdWJvcmRpbmFkb3NcclxuICAgICAgICAgICAgLCBub19yZWFcclxuICAgICAgICAgICAgLCBub19yZWFfc3VwXHJcbiAgICAgICAgICAgICwgc2VtYW5hc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NcclxuICAgICAgICAgICAgLCBhY2Npb25lc1xyXG4gICAgICAgICAgICAsIGVzdGFkb3NfYWNjaW9uZXNcclxuICAgICAgICAgICAgLCB0ZW1cclxuICAgICAgICAgICAgLCB0ZW1fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICwgcGFyYW1ldHJvc1xyXG4gICAgICAgICAgICAsIG9wZXJhY2lvbmVzXHJcbiAgICAgICAgICAgICwgY29tdW5hc1xyXG4gICAgICAgICAgICAsIGFyZWFzXHJcbiAgICAgICAgICAgICwgc2luY3Jvbml6YWNpb25lc1xyXG4gICAgICAgICAgICAsIHRhcmVhc1xyXG4gICAgICAgICAgICAsIHRhcmVhc190ZW1cclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2VuY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3JlY3VcclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX3N1cGVcclxuICAgICAgICAgICAgLCB0YXJlYXNfYXJlYXNcclxuICAgICAgICAgICAgLCBhcmVhc19hc2lnbmFjaW9uX2dlbmVyYWxcclxuICAgICAgICAgICAgLCBncmlsbGFfaG9qYV9ydXRhXHJcbiAgICAgICAgICAgICwgdF9lbmN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9yZWN1X2FyZWFzXHJcbiAgICAgICAgICAgICwgdF9zdXBlX2FyZWFzXHJcbiAgICAgICAgICAgICwgbWlzX3RhcmVhc1xyXG4gICAgICAgICAgICAsIHRlbV9hc2lnbmFjaW9uXHJcbiAgICAgICAgICAgICwgdGFyZWFzX3RlbV9yZWNlcGNpb25cclxuICAgICAgICAgICAgLCB0YXJlYXNfdGVtX2luZ3Jlc29cclxuICAgICAgICAgICAgLCBtaXNfdGFyZWFzX2FyZWFzXHJcbiAgICAgICAgICAgICwgY29udHJvbF9jYW1wb1xyXG4gICAgICAgICAgICAsIGNvbnRyb2xfcmVzdW1lblxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fem9uYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCB6b25hIHNvbG8gY2VtZW50bycsIGNhbXBvc0NvcnRlOlt7bmFtZTonem9uYScsIHR5cGVOYW1lOid0ZXh0J31dLCBmaWx0cm9XaGVyZTonZG9taW5pbz0zJyB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCBjb250cm9sX2NhbXBvX2NvbXVuYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBjb211bmEgc29sbyBjZW1lbnRvJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfV0sIGZpbHRyb1doZXJlOidkb21pbmlvPTMnIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fYXJlYTogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBhcmVhJywgY2FtcG9zQ29ydGU6W3tuYW1lOid6b25hJywgdHlwZU5hbWU6J3RleHQnfSx7bmFtZTonbnJvY29tdW5hJywgdHlwZU5hbWU6J2ludGVnZXInfSx7bmFtZTonYXJlYScsIHR5cGVOYW1lOidpbnRlZ2VyJ30se25hbWU6J3BhcnRpY2lwYWNpb25fYScsIHR5cGVOYW1lOid0ZXh0J30se25hbWU6J2NsYXNlX2EnLCB0eXBlTmFtZTondGV4dCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fcGFydGljaXBhY2lvbjogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBwYXJ0aWNpcGFjaW9uJywgY2FtcG9zQ29ydGU6W3tuYW1lOidwYXJ0aWNpcGFjaW9uJywgdHlwZU5hbWU6J2JpZ2ludCd9XX1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAsIGNvbnRyb2xfY2FtcG9fZG9taW5pbzogY29udGV4dD0+Y29udHJvbF9jYW1wbyhjb250ZXh0LCBcclxuICAgICAgICAgICAgICAgIHtub21icmU6J2NvbnRyb2xfY2FtcG9fY29tdW5hJywgdGl0bGU6J2NvbnRyb2wgY2FtcG8geCBkb21pbmlvJywgY2FtcG9zQ29ydGU6W3tuYW1lOidkb21pbmlvJywgdHlwZU5hbWU6J2ludGVnZXInfV19XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLCB2aXZpZW5kYXNcclxuICAgICAgICAgICAgLCB2aXNpdGFzXHJcbiAgICAgICAgICAgICwgaG9nYXJlc1xyXG4gICAgICAgICAgICAsIHBlcnNvbmFzXHJcbiAgICAgICAgICAgICwgdmlzaXRhc19zdXBcclxuICAgICAgICAgICAgLCBob2dhcmVzX3N1cFxyXG4gICAgICAgICAgICAsIHBlcnNvbmFzX3N1cFxyXG4gICAgICAgIH1cclxuICAgICAgICBiZS5hcHBlbmRUb1RhYmxlRGVmaW5pdGlvbignY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0nZXJyb3JfY29tcGlsYWNpb24nKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihmaWVsZC52aXNpYmxlKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignKioqKioqKioqKioqIFFVSVRBUiBFU1RPIGVycm9yX2NvbXBpbGFjaW9uIHlhIGVzIHZpc2libGUnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT10cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2luY29uc2lzdGVuY2lhcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWw9ey4uLnRhYmxlRGVmLnNxbCwgaXNUYWJsZTp0cnVlfTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAsXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondml2aWVuZGEnICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTonaG9nYXInICAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZToncGVyc29uYScgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICAgICB7bmFtZTondmlzaXRhJyAgICAgICwgdHlwZU5hbWU6J2JpZ2ludCcgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRhYmxlRGVmLmVkaXRhYmxlPXRhYmxlRGVmLmVkaXRhYmxlIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCl7XHJcbiAgICAgICAgICAgICAgICBpZihmaWVsZC5uYW1lPT0ncGtfaW50ZWdyYWRhJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmlzaWJsZT1mYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmKGZpZWxkLm5hbWU9PSdqdXN0aWZpY2FjaW9uJyl7XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuZWRpdGFibGU9Y29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcy5qdXN0aWZpY2FyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5maWVsZHMucHVzaCh7bmFtZTonZmluX2NhbXBvJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgXHJcbiAgICAgICAgICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0YWJsZURlZi5zcWwhLmZyb209YFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdCBpLiosIHQuZmluX2NhbXBvIFxyXG4gICAgICAgICAgICAgICAgICBmcm9tIGluY29uc2lzdGVuY2lhcyBpIGpvaW4gdGVtIHQgb24gaS52aXZpZW5kYT10LmVuYyBhbmQgaS5vcGVyYXRpdm89dC5vcGVyYXRpdm8gXHJcbiAgICAgICAgICAgICAgICApICBcclxuICAgICAgICAgICAgYFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ29wZXJhdGl2b3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgyLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonY29uZmlnX3NvcnRlbycsIFxyXG4gICAgICAgICAgICAgICAgdHlwZU5hbWU6J2pzb25iJyxcclxuICAgICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGFibGVEZWYuZmllbGRzLnNwbGljZSgzLDAse1xyXG4gICAgICAgICAgICAgICAgbmFtZTonZGlzZm9ybV9jZXJyYWRvJywgXHJcbiAgICAgICAgICAgICAgICB0eXBlTmFtZTonYm9vbGVhbicsIFxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSwgXHJcbiAgICAgICAgICAgICAgICBlZGl0YWJsZTogY29udGV4dC5mb3JEdW1wfHxbJ2FkbWluJywnZGlzX2NvbmNlcHR1YWwnXS5pbmNsdWRlcyhjb250ZXh0LnVzZXIucm9sKX1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGJlLmFwcGVuZFRvVGFibGVEZWZpbml0aW9uKCd1c3VhcmlvcycsZnVuY3Rpb24odGFibGVEZWYsIGNvbnRleHQpe1xyXG4gICAgICAgICAgICBsZXQgY2xhdmVOdWV2YUZpZWxkID0gdGFibGVEZWYuZmllbGRzLmZpbmQoKGZpZWxkKT0+ZmllbGQubmFtZSA9PSAnY2xhdmVfbnVldmEnKSE7XHJcbiAgICAgICAgICAgIHZhciBhZG1pbk9Db29yZCA9IFsnYWRtaW4nLCdjb29yX2NhbXBvJ10uaW5jbHVkZXMoY29udGV4dC51c2VyLnJvbCk7XHJcbiAgICAgICAgICAgIGNsYXZlTnVldmFGaWVsZC5hbGxvdyA9IHtzZWxlY3Q6YWRtaW5PQ29vcmQsIHVwZGF0ZTp0cnVlLCBpbnNlcnQ6ZmFsc2V9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLy8gYmUuYXBwZW5kVG9UYWJsZURlZmluaXRpb24oJ2Nhc2lsbGVyb3MnLGZ1bmN0aW9uKHRhYmxlRGVmLCBjb250ZXh0KXtcclxuICAgICAgICAvLyAgICAgdGFibGVEZWYuY29uc3RyYWludHMgPSB0YWJsZURlZi5jb25zdHJhaW50cy5maWx0ZXIoYz0+Yy5jb25zTmFtZSE9J2Nhc2lsbGVyb3Mgc2FsdG8gUkVMJylcclxuICAgICAgICAvLyB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHZhciBBcHBEbUVuY3UgPSBlbWVyZ2VBcHBEbUVuY3UoZW1lcmdlQXBwUHJvY2VzYW1pZW50byhlbWVyZ2VBcHBDb25zaXN0ZW5jaWFzKGVtZXJnZUFwcFZhckNhbChlbWVyZ2VBcHBEYXRvc0V4dChlbWVyZ2VBcHBPcGVyYXRpdm9zKEFwcEJhY2tlbmQpKSkpKSk7XHJcbmV4cG9ydCB0eXBlIEFwcEFwcERtRW5jdVR5cGUgPSBJbnN0YW5jZVR5cGU8dHlwZW9mIEFwcERtRW5jdT47Il19
|
|
@@ -3,7 +3,6 @@ import { TableDefinition, TableContext } from "./types-dmencu";
|
|
|
3
3
|
export type OptsAsignados = {
|
|
4
4
|
rol: 'encu' | 'recu' | 'supe' | null;
|
|
5
5
|
name: string;
|
|
6
|
-
sincronizaDM: boolean;
|
|
7
6
|
verComoRecepcionista: boolean;
|
|
8
7
|
};
|
|
9
8
|
export declare function asignados(context: TableContext, opts?: OptsAsignados): TableDefinition;
|
|
@@ -11,4 +10,3 @@ export declare function encuestadores_asignados(context: TableContext): TableDef
|
|
|
11
10
|
export declare function recuperadores_asignados(context: TableContext): TableDefinition;
|
|
12
11
|
export declare function supervisores_asignados(context: TableContext): TableDefinition;
|
|
13
12
|
export declare function mis_supervisores_asignados(context: TableContext): TableDefinition;
|
|
14
|
-
export declare function ingreso_supervisores_asignados(context: TableContext): TableDefinition;
|
|
@@ -9,14 +9,13 @@
|
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.mis_supervisores_asignados = exports.supervisores_asignados = exports.recuperadores_asignados = exports.encuestadores_asignados = exports.asignados = void 0;
|
|
13
13
|
const table_areas_1 = require("./table-areas");
|
|
14
14
|
function asignados(context, opts) {
|
|
15
15
|
if (opts == null) {
|
|
16
16
|
opts = {
|
|
17
17
|
name: 'relevador',
|
|
18
18
|
rol: null,
|
|
19
|
-
sincronizaDM: true,
|
|
20
19
|
verComoRecepcionista: false
|
|
21
20
|
};
|
|
22
21
|
}
|
|
@@ -36,12 +35,12 @@
|
|
|
36
35
|
],
|
|
37
36
|
primaryKey: ['asignado'],
|
|
38
37
|
detailTables: [
|
|
39
|
-
{ table:
|
|
38
|
+
{ table: 'tareas_tem_recepcion', fields: ['tarea', 'asignado'], abr: 'T' }
|
|
40
39
|
],
|
|
41
40
|
sql: {
|
|
42
41
|
from: `(select ta.tarea, u.idper as asignado, u.apellido, u.nombre, t.*
|
|
43
42
|
from usuarios u, tareas ta, lateral (
|
|
44
|
-
${(0, table_areas_1.cuentasSql)(be, `tt.asignado = u.idper and tt.tarea = ta.tarea ${esRecepcionista ? `and
|
|
43
|
+
${(0, table_areas_1.cuentasSql)(be, `tt.asignado = u.idper and tt.tarea = ta.tarea ${esRecepcionista ? `and 'tt.recepcionista' = ${q(context.user.idper)}` : ``} `)}
|
|
45
44
|
) t
|
|
46
45
|
where totales > 0
|
|
47
46
|
${opts.rol ? `and ta.tarea = ${q(opts.rol)}` : ``}
|
|
@@ -53,24 +52,20 @@
|
|
|
53
52
|
}
|
|
54
53
|
exports.asignados = asignados;
|
|
55
54
|
function encuestadores_asignados(context) {
|
|
56
|
-
return asignados(context, { rol: 'encu', name: 'encuestador',
|
|
55
|
+
return asignados(context, { rol: 'encu', name: 'encuestador', verComoRecepcionista: false });
|
|
57
56
|
}
|
|
58
57
|
exports.encuestadores_asignados = encuestadores_asignados;
|
|
59
58
|
function recuperadores_asignados(context) {
|
|
60
|
-
return asignados(context, { rol: 'recu', name: 'recuperador',
|
|
59
|
+
return asignados(context, { rol: 'recu', name: 'recuperador', verComoRecepcionista: false });
|
|
61
60
|
}
|
|
62
61
|
exports.recuperadores_asignados = recuperadores_asignados;
|
|
63
62
|
function supervisores_asignados(context) {
|
|
64
|
-
return asignados(context, { rol: 'supe', name: 'supervisor',
|
|
63
|
+
return asignados(context, { rol: 'supe', name: 'supervisor', verComoRecepcionista: false });
|
|
65
64
|
}
|
|
66
65
|
exports.supervisores_asignados = supervisores_asignados;
|
|
67
66
|
function mis_supervisores_asignados(context) {
|
|
68
|
-
return asignados(context, { rol: 'supe', name: 'supervisor',
|
|
67
|
+
return asignados(context, { rol: 'supe', name: 'supervisor', verComoRecepcionista: true });
|
|
69
68
|
}
|
|
70
69
|
exports.mis_supervisores_asignados = mis_supervisores_asignados;
|
|
71
|
-
function ingreso_supervisores_asignados(context) {
|
|
72
|
-
return asignados(context, { rol: 'supe', name: 'supervisor', sincronizaDM: false, verComoRecepcionista: false });
|
|
73
|
-
}
|
|
74
|
-
exports.ingreso_supervisores_asignados = ingreso_supervisores_asignados;
|
|
75
70
|
});
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZW5jdWVzdGFkb3Jlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtZW5jdWVzdGFkb3Jlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQUliLCtDQUEwRDtJQVExRCxTQUFnQixTQUFTLENBQUMsT0FBb0IsRUFBRSxJQUFtQjtRQUMvRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDZCxJQUFJLEdBQUc7Z0JBQ0gsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEdBQUcsRUFBRSxJQUFJO2dCQUNULG9CQUFvQixFQUFFLEtBQUs7YUFDOUIsQ0FBQTtTQUNKO1FBQ0QsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDbkMsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN2RixJQUFJLFFBQVEsR0FBb0I7WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsTUFBTSxFQUFFO2dCQUNKLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBa0IsUUFBUSxFQUFDLE1BQU0sR0FBTztnQkFDckQsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFlLFFBQVEsRUFBQyxNQUFNLEVBQU8sS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUM7Z0JBQ3RFLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBZSxRQUFRLEVBQUMsTUFBTSxHQUFPO2dCQUNyRCxFQUFDLElBQUksRUFBQyxRQUFRLEVBQWlCLFFBQVEsRUFBQyxNQUFNLEdBQU87Z0JBQ3JELEdBQUcsSUFBQSwyQkFBYSxFQUFDLEVBQUUsQ0FBQzthQUN2QjtZQUNELFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUN4QixZQUFZLEVBQUM7Z0JBQ1QsRUFBQyxLQUFLLEVBQUMsc0JBQXNCLEVBQUUsTUFBTSxFQUFDLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBQyxHQUFHLEVBQUM7YUFDeEU7WUFDRCxHQUFHLEVBQUM7Z0JBQ0EsSUFBSSxFQUFDOztzQkFFSyxJQUFBLHdCQUFVLEVBQUMsRUFBRSxFQUFFLGlEQUFpRCxlQUFlLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFHLEdBQUcsQ0FBQzs7O3NCQUcvSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFHO2NBQ3hEO2FBQ0w7WUFDRCxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUMzQyxDQUFBO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQXRDRCw4QkFzQ0M7SUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxPQUFvQjtRQUN4RCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRkQsMERBRUM7SUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxPQUFvQjtRQUN4RCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxhQUFhLEVBQUUsb0JBQW9CLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRkQsMERBRUM7SUFFRCxTQUFnQixzQkFBc0IsQ0FBQyxPQUFvQjtRQUN2RCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQTtJQUMxRixDQUFDO0lBRkQsd0RBRUM7SUFFRCxTQUFnQiwwQkFBMEIsQ0FBQyxPQUFvQjtRQUMzRCxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUN6RixDQUFDO0lBRkQsZ0VBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHtUYWJsZURlZmluaXRpb24sIFRhYmxlQ29udGV4dH0gZnJvbSBcIi4vdHlwZXMtZG1lbmN1XCI7XG5cbmltcG9ydCB7IGN1ZW50YXNTcWwsIGN1ZW50YXNGaWVsZHMgfSBmcm9tIFwiLi90YWJsZS1hcmVhc1wiOyAgXG5cbmV4cG9ydCB0eXBlIE9wdHNBc2lnbmFkb3MgPSB7XG4gICAgcm9sOiAnZW5jdSd8J3JlY3UnfCdzdXBlJ3xudWxsXG4gICAgbmFtZTogc3RyaW5nXG4gICAgdmVyQ29tb1JlY2VwY2lvbmlzdGE6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzaWduYWRvcyhjb250ZXh0OlRhYmxlQ29udGV4dCwgb3B0cz86T3B0c0FzaWduYWRvcyl7XG4gICAgaWYgKG9wdHMgPT0gbnVsbCkge1xuICAgICAgICBvcHRzID0ge1xuICAgICAgICAgICAgbmFtZTogJ3JlbGV2YWRvcicsXG4gICAgICAgICAgICByb2w6IG51bGwsXG4gICAgICAgICAgICB2ZXJDb21vUmVjZXBjaW9uaXN0YTogZmFsc2VcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIgeyBiZSB9ID0gY29udGV4dDtcbiAgICB2YXIgcSA9IGNvbnRleHQuYmUuZGIucXVvdGVMaXRlcmFsO1xuICAgIHZhciBlc1JlY2VwY2lvbmlzdGEgPSBjb250ZXh0LnVzZXIucm9sID09ICdyZWNlcGNpb25pc3RhJyB8fCBvcHRzLnZlckNvbW9SZWNlcGNpb25pc3RhO1xuICAgIHZhciB0YWJsZURlZjogVGFibGVEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiBvcHRzLm5hbWUsXG4gICAgICAgIGVsZW1lbnROYW1lOiBvcHRzLm5hbWUsXG4gICAgICAgIGVkaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICB7bmFtZTondGFyZWEnICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsfSxcbiAgICAgICAgICAgIHtuYW1lOidhc2lnbmFkbycgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICwgdGl0bGU6IG9wdHMubmFtZX0sXG4gICAgICAgICAgICB7bmFtZTonYXBlbGxpZG8nICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAsfSxcbiAgICAgICAgICAgIHtuYW1lOidub21icmUnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICx9LFxuICAgICAgICAgICAgLi4uY3VlbnRhc0ZpZWxkcyhiZSlcbiAgICAgICAgXSxcbiAgICAgICAgcHJpbWFyeUtleTogWydhc2lnbmFkbyddLFxuICAgICAgICBkZXRhaWxUYWJsZXM6W1xuICAgICAgICAgICAge3RhYmxlOid0YXJlYXNfdGVtX3JlY2VwY2lvbicsIGZpZWxkczpbJ3RhcmVhJywgJ2FzaWduYWRvJ10sIGFicjonVCd9XG4gICAgICAgIF0sXG4gICAgICAgIHNxbDp7XG4gICAgICAgICAgICBmcm9tOmAoc2VsZWN0IHRhLnRhcmVhLCB1LmlkcGVyIGFzIGFzaWduYWRvLCB1LmFwZWxsaWRvLCB1Lm5vbWJyZSwgdC4qXG4gICAgICAgICAgICAgICAgZnJvbSB1c3VhcmlvcyB1LCB0YXJlYXMgdGEsIGxhdGVyYWwgKFxuICAgICAgICAgICAgICAgICAgICAke2N1ZW50YXNTcWwoYmUsIGB0dC5hc2lnbmFkbyA9IHUuaWRwZXIgYW5kIHR0LnRhcmVhID0gdGEudGFyZWEgJHtlc1JlY2VwY2lvbmlzdGEgPyBgYW5kICd0dC5yZWNlcGNpb25pc3RhJyA9ICR7cShjb250ZXh0LnVzZXIuaWRwZXIpfWAgOiBgYCB9IGApfVxuICAgICAgICAgICAgICAgICkgdFxuICAgICAgICAgICAgICAgIHdoZXJlIHRvdGFsZXMgPiAwICBcbiAgICAgICAgICAgICAgICAgICAgJHtvcHRzLnJvbCA/IGBhbmQgdGEudGFyZWEgPSAke3Eob3B0cy5yb2wpfWAgOiBgYCB9XG4gICAgICAgICAgICApYFxuICAgICAgICB9LFxuICAgICAgICBoaWRkZW5Db2x1bW5zOiBvcHRzLnJvbCA/IFsndGFyZWEnXSA6IFtdXG4gICAgfVxuICAgIHJldHVybiB0YWJsZURlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3Vlc3RhZG9yZXNfYXNpZ25hZG9zKGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xuICAgIHJldHVybiBhc2lnbmFkb3MoY29udGV4dCwge3JvbDonZW5jdScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgdmVyQ29tb1JlY2VwY2lvbmlzdGE6ZmFsc2V9KSAgICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlY3VwZXJhZG9yZXNfYXNpZ25hZG9zKGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xuICAgIHJldHVybiBhc2lnbmFkb3MoY29udGV4dCwge3JvbDoncmVjdScsIG5hbWU6J3JlY3VwZXJhZG9yJywgdmVyQ29tb1JlY2VwY2lvbmlzdGE6ZmFsc2V9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJ2aXNvcmVzX2FzaWduYWRvcyhjb250ZXh0OlRhYmxlQ29udGV4dCk6VGFibGVEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gYXNpZ25hZG9zKGNvbnRleHQsIHtyb2w6J3N1cGUnLCBuYW1lOidzdXBlcnZpc29yJywgdmVyQ29tb1JlY2VwY2lvbmlzdGE6ZmFsc2V9KSAgICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pc19zdXBlcnZpc29yZXNfYXNpZ25hZG9zKGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xuICAgIHJldHVybiBhc2lnbmFkb3MoY29udGV4dCwge3JvbDonc3VwZScsIG5hbWU6J3N1cGVydmlzb3InLCB2ZXJDb21vUmVjZXBjaW9uaXN0YTp0cnVlfSkgICAgXG59Il19
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
{ name: 'ult_norea', typeName: 'integer', editable: false, inTable: false },
|
|
57
57
|
{ name: 'ult_gru_no_rea', typeName: 'text', editable: false, inTable: false },
|
|
58
58
|
{ name: 'ult_resumen_estado', typeName: 'text', editable: false, inTable: false },
|
|
59
|
-
|
|
59
|
+
{ name: 'result_sup', typeName: 'text', editable: puedeEditar, inTable: false, table: 'tem' },
|
|
60
60
|
//{name:'resultado' , typeName:'text'}, // fk tareas_resultados
|
|
61
61
|
//{name:'fecha_resultado' , typeName:'date'}, // fk tareas_resultados
|
|
62
62
|
{ name: 'supervision_dirigida', typeName: 'integer', editable: true },
|
|
@@ -187,4 +187,4 @@
|
|
|
187
187
|
}
|
|
188
188
|
exports.tareas_tem_supe = tareas_tem_supe;
|
|
189
189
|
});
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGFyZWFzX3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtdGFyZWFzX3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQVliLFNBQWdCLFVBQVUsQ0FBQyxPQUFvQixFQUFDLElBQW1COztRQUMvRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDZCxJQUFJLEdBQUc7Z0JBQ0gsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsSUFBSSxFQUFFLFdBQVc7YUFDcEIsQ0FBQTtTQUNKO1FBQ0QsTUFBQSxJQUFJLENBQUMsSUFBSSxvQ0FBVCxJQUFJLENBQUMsSUFBSSxHQUFLLElBQUksRUFBQztRQUNuQixNQUFBLElBQUksQ0FBQyxRQUFRLG9DQUFiLElBQUksQ0FBQyxRQUFRLEdBQUssSUFBSSxFQUFDO1FBQ3ZCLElBQUksRUFBRSxHQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNiLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEtBQUksTUFBQSxNQUFBLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLEtBQUssMENBQUUsV0FBVyxDQUFBLElBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUcsZUFBZSxDQUFDO1FBQzNHLElBQUksTUFBTSxHQUFtQjtZQUN6QixFQUFDLElBQUksRUFBQyxXQUFXLEVBQXFCLFFBQVEsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBRSxRQUFRLEVBQUMsS0FBSyxFQUFDO1lBQzlFLEVBQUMsSUFBSSxFQUFDLEtBQUssRUFBMkIsUUFBUSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUM7WUFDOUUsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUF5QixRQUFRLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxDQUFDLEVBQUUsUUFBUSxFQUFDLEtBQUssRUFBQztZQUM5RSxFQUFDLElBQUksRUFBQyxRQUFRLEVBQXdCLFFBQVEsRUFBQyxNQUFNLEVBQVUsUUFBUSxFQUFDLEtBQUssRUFBSyxRQUFRLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBQyxNQUFNLEVBQUM7U0FDNUgsQ0FBQztRQUNGLElBQUcsSUFBSSxDQUFDLElBQUksRUFBQztZQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUF5QixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBQyxLQUFLLEVBQUssT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1NBQzlJO1FBQ0QsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDO1lBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBQyxXQUFXLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQVMsUUFBUSxFQUFDLEtBQUssRUFBSyxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxXQUFXLEVBQUMsQ0FBQyxDQUFDO1NBQ3pJO1FBQ0QsTUFBTSxHQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDakIsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUEwQixRQUFRLEVBQUUsU0FBUyxFQUFNLFFBQVEsRUFBQyxLQUFLLEVBQUssT0FBTyxFQUFDLEtBQUssRUFBRTtZQUNqRyxFQUFDLElBQUksRUFBQyxlQUFlLEVBQWlCLFFBQVEsRUFBQyxNQUFNLEVBQVUsT0FBTyxFQUFDLEtBQUssRUFBTSxRQUFRLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxJQUFJLEVBQUM7WUFDbEgsRUFBQyxJQUFJLEVBQUMsZ0JBQWdCLEVBQWdCLFFBQVEsRUFBQyxNQUFNLEVBQVUsUUFBUSxFQUFDLEtBQUssRUFBQztZQUNoRixzR0FBc0c7WUFDcEcsRUFBQyxJQUFJLEVBQUMsZUFBZSxFQUFpQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBQyxJQUFJLEVBQUU7WUFDOUUsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFzQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUM7WUFDL0YsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFxQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBQyxLQUFLLEdBQUU7WUFDL0UsRUFBQyxJQUFJLEVBQUMsa0JBQWtCLEVBQWMsUUFBUSxFQUFDLE1BQU0sRUFBQztZQUN0RCxFQUFDLElBQUksRUFBQyxxQkFBcUIsRUFBVyxRQUFRLEVBQUUsTUFBTSxFQUFTLFFBQVEsRUFBRSxJQUFJLEVBQUM7WUFDOUUsRUFBQyxJQUFJLEVBQUMsWUFBWSxFQUFvQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUM7WUFDL0UsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUF1QixRQUFRLEVBQUUsU0FBUyxFQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUM7WUFDL0UsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUF5QixRQUFRLEVBQUMsTUFBTSxFQUFDO1lBQ3RELEVBQUMsSUFBSSxFQUFDLEtBQUssRUFBMkIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxRQUFRLEVBQUM7WUFDckcsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUF5QixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLFVBQVUsRUFBQztZQUN2RyxvR0FBb0c7WUFDcEcsRUFBQyxJQUFJLEVBQUMsZ0JBQWdCLEVBQWdCLFFBQVEsRUFBQyxNQUFNLEVBQVUsUUFBUSxFQUFFLEtBQUssRUFBSyxLQUFLLEVBQUUsbUJBQW1CLEVBQUM7WUFDOUcsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUF1QixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxLQUFLLEVBQU0sT0FBTyxFQUFDLEtBQUssRUFBQztZQUNsRyxFQUFDLElBQUksRUFBQyxXQUFXLEVBQXFCLFFBQVEsRUFBQyxTQUFTLEVBQU8sUUFBUSxFQUFFLEtBQUssRUFBTSxPQUFPLEVBQUMsS0FBSyxFQUFDO1lBQ2xHLEVBQUMsSUFBSSxFQUFDLGdCQUFnQixFQUFnQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQU0sT0FBTyxFQUFDLEtBQUssRUFBQztZQUNsRyxFQUFDLElBQUksRUFBQyxvQkFBb0IsRUFBWSxRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQU0sT0FBTyxFQUFDLEtBQUssRUFBQztZQUNwRyw0R0FBNEc7WUFDMUcsZ0ZBQWdGO1lBQ2hGLGdGQUFnRjtZQUNoRixFQUFDLElBQUksRUFBQyxzQkFBc0IsRUFBVSxRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxJQUFJLEVBQUM7WUFDOUUsRUFBQyxJQUFJLEVBQUMsdUJBQXVCLEVBQVMsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxLQUFLLEVBQUM7WUFDOUYsRUFBQyxJQUFJLEVBQUMsWUFBWSxFQUFvQixRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBQyxLQUFLLEdBQUU7WUFDL0UsRUFBQyxJQUFJLEVBQUMsZ0JBQWdCLEVBQWdCLFFBQVEsRUFBQyxNQUFNLEVBQVUsUUFBUSxFQUFDLEtBQUssRUFBRyxPQUFPLEVBQUMsS0FBSyxFQUFDO1lBQzlGLEVBQUMsSUFBSSxFQUFDLGdCQUFnQixFQUFnQixRQUFRLEVBQUMsTUFBTSxFQUFDO1lBQ3RELEVBQUMsSUFBSSxFQUFDLFNBQVMsRUFBdUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBQyxZQUFZLEVBQUM7WUFDekcsRUFBQyxJQUFJLEVBQUMsV0FBVyxFQUFxQixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLGNBQWMsRUFBQztZQUMzRyxFQUFDLElBQUksRUFBQyxvQkFBb0IsRUFBWSxRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQVEsS0FBSyxFQUFFLHVCQUF1QixFQUFDO1lBQ3JILEVBQUMsSUFBSSxFQUFDLGFBQWEsRUFBbUIsUUFBUSxFQUFDLFNBQVMsRUFBTyxRQUFRLEVBQUUsS0FBSyxFQUFJLE9BQU8sRUFBQyxLQUFLLEVBQUM7WUFDaEcsRUFBQyxJQUFJLEVBQUMsZUFBZSxFQUFpQixRQUFRLEVBQUMsU0FBUyxFQUFPLFFBQVEsRUFBRSxLQUFLLEVBQUksT0FBTyxFQUFDLEtBQUssRUFBQztZQUNoRyxFQUFDLElBQUksRUFBQyx3QkFBd0IsRUFBUSxRQUFRLEVBQUMsTUFBTSxFQUFVLFFBQVEsRUFBRSxLQUFLLEVBQUksT0FBTyxFQUFDLEtBQUssRUFBQztTQUMvRixDQUFDLENBQUM7UUFDSCxJQUFJLFNBQVMsR0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUNqQixDQUFDLENBQUMsMENBQTBDO1FBQzdDLE9BQU87WUFDSCxJQUFJLEVBQUMsWUFBWTtZQUNqQixTQUFTLEVBQUMsWUFBWTtZQUN0QixLQUFLLEVBQUM7Z0JBQ0YsTUFBTSxFQUFDLEtBQUs7Z0JBQ1osTUFBTSxFQUFDLEtBQUs7YUFDZjtZQUNELFFBQVEsRUFBQyxXQUFXO1lBQ3BCLE1BQU07WUFDTixVQUFVLEVBQUMsQ0FBQyxPQUFPLEVBQUMsV0FBVyxFQUFDLEtBQUssQ0FBQztZQUN0QyxhQUFhLEVBQUMsQ0FBQyxZQUFZLEVBQUMsT0FBTyxFQUFFLGtDQUFrQyxFQUFDLGdCQUFnQixFQUFDLGVBQWUsQ0FBQztZQUN6RyxXQUFXLEVBQUM7Z0JBQ1IsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFHLE1BQU0sRUFBQyxDQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUMsRUFBRSxFQUFDO2dCQUNqRSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUcsTUFBTSxFQUFDLENBQUMsV0FBVyxFQUFDLE9BQU8sQ0FBQyxFQUFDO2dCQUNwRCxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUcsTUFBTSxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBQyxXQUFXLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBRSxLQUFLLEVBQUMsZ0JBQWdCLEVBQUM7Z0JBQzdJLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUcsTUFBTSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUUsS0FBSyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUMsQ0FBQyxRQUFRLEVBQUMsVUFBVSxDQUFDLEVBQUM7Z0JBQzdILEVBQUMsVUFBVSxFQUFDLGFBQWEsRUFBRyxNQUFNLEVBQUMsQ0FBQyxXQUFXLENBQUMsRUFBQztnQkFDakQsRUFBQyxVQUFVLEVBQUMsU0FBUyxFQUFHLE1BQU0sRUFBQyxDQUFDLFdBQVcsRUFBQyxRQUFRLENBQUMsRUFBQztnQkFDdEQsRUFBQyxVQUFVLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBRyxNQUFNLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBRSxLQUFLLEVBQUMsZUFBZSxFQUFDO2FBQ3JHO1lBQ0QsZUFBZSxFQUFDO2dCQUNaLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxlQUFlLEVBQUUsTUFBTSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUUsS0FBSyxFQUFDLElBQUksRUFBQztnQkFDdEYsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFHLE1BQU0sRUFBQyxDQUFDLFdBQVcsRUFBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFDLFNBQVMsRUFBQztnQkFDN0ksRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBRSxhQUFhLEVBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsRUFBQyxTQUFTLEVBQUM7Z0JBQ2xJLEVBQUMsVUFBVSxFQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBRSxLQUFLLEVBQUMsS0FBSyxFQUFDO2FBQ2xHO1lBQ0QsWUFBWSxFQUFFO2dCQUNWLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBQyxXQUFXLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLFVBQVUsRUFBQyxDQUFDLEVBQUUsYUFBYSxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBQyxJQUFJLEVBQUM7YUFDeks7WUFDRCxHQUFHLEVBQUM7Z0JBQ0EsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFDOzs7OztzQkFLSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQSxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBRyxLQUFLLElBQUUsQ0FBQyxDQUFDLElBQUksSUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBb0J6SDthQUNMO1lBQ0QsNENBQTRDO1lBQzVDLDRFQUE0RTtTQUMvRSxDQUFDO0lBQ04sQ0FBQztJQTNKRCxnQ0EySkM7SUFFRCxTQUFnQixlQUFlLENBQUMsT0FBb0I7UUFDaEQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO1FBQ2hHLFFBQVEsQ0FBQyxHQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBSkQsMENBSUM7SUFFRCxTQUFnQixlQUFlLENBQUMsT0FBb0I7UUFDaEQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO1FBQy9GLFFBQVEsQ0FBQyxHQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBSkQsMENBSUM7SUFFRCxTQUFnQixlQUFlLENBQUMsT0FBb0I7UUFDaEQsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFBO1FBQzlGLFFBQVEsQ0FBQyxHQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBSkQsMENBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7VGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHR9IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5pbXBvcnQgeyBGaWVsZERlZmluaXRpb24gfSBmcm9tIFwicmVsLWVuY1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgT3B0c1RhcmVhc1RlbSA9IHtcclxuICAgIHJvbDogJ2VuY3UnfCdyZWN1J3wnc3VwZSd8bnVsbFxyXG4gICAgbmFtZTogc3RyaW5nXHJcbiAgICBhYnJlPzpib29sZWFuXHJcbiAgICBjb25zaXN0ZT86Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbShjb250ZXh0OlRhYmxlQ29udGV4dCxvcHRzPzpPcHRzVGFyZWFzVGVtKTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgaWYgKG9wdHMgPT0gbnVsbCkge1xyXG4gICAgICAgIG9wdHMgPSB7XHJcbiAgICAgICAgICAgIHJvbDogbnVsbCxcclxuICAgICAgICAgICAgbmFtZTogJ3JlbGV2YWRvcidcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvcHRzLmFicmUgPz89IHRydWU7XHJcbiAgICBvcHRzLmNvbnNpc3RlID8/PSB0cnVlO1xyXG4gICAgdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgZGI9YmUuZGI7IFxyXG4gICAgdmFyIHB1ZWRlRWRpdGFyID0gY29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcnx8Y29udGV4dC51c2VyLnJvbD09PSdyZWNlcGNpb25pc3RhJzsgICAgICAgXHJcbiAgICB2YXIgZmllbGRzOkZpZWxkRGVmaW5pdGlvbltdPVtcclxuICAgICAgICB7bmFtZTonb3BlcmF0aXZvJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JywgaXNQazoyLCBlZGl0YWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J2VuYycgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcsIGlzUGs6MywgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYScgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnLCBpc1BrOjEsIGVkaXRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonZXN0YWRvJyAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgbnVsbGFibGU6IGZhbHNlLCBkZWZhdWx0RGJWYWx1ZTpcIicwRCdcIn0sXHJcbiAgICBdO1xyXG4gICAgaWYob3B0cy5hYnJlKXtcclxuICAgICAgICBmaWVsZHMucHVzaCh7bmFtZTonYWJyaXInICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTonYWJyaXJSZWNlcGNpb24nfSk7XHJcbiAgICB9XHJcbiAgICBpZihvcHRzLmNvbnNpc3RlKXtcclxuICAgICAgICBmaWVsZHMucHVzaCh7bmFtZTpcImNvbnNpc3RpclwiICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6ICd0ZXh0JyAgICAgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidjb25zaXN0aXInfSk7XHJcbiAgICB9XHJcbiAgICBmaWVsZHM9ZmllbGRzLmNvbmNhdChbXHJcbiAgICAgICAge25hbWU6J2FyZWEnICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ2ludGVnZXInICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgfSxcclxuICAgICAgICB7bmFtZTondGFyZWFfYXNpZ25hcicgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBpblRhYmxlOmZhbHNlICAgICwgZWRpdGFibGU6ZmFsc2UsIHNlcnZlclNpZGU6dHJ1ZX0sXHJcbiAgICAgICAge25hbWU6J3RhcmVhX2FudGVyaW9yJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAvLyAge25hbWU6J29rJyAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgfSxcclxuICAgICAgICB7bmFtZToncmVjZXBjaW9uaXN0YScgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTp0cnVlIH0sIFxyXG4gICAgICAgIHtuYW1lOidhc2lnbmFkbycgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOnRydWUsIHRpdGxlOiBvcHRzLm5hbWV9LCAvLyB2YSBhIGxhIGhvamEgZGUgcnV0YVxyXG4gICAgICAgIHtuYW1lOidvcGVyYWNpb24nICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOmZhbHNlLH0sIC8vIGNhcmdhci9kZXNjYXJnYXJcclxuICAgICAgICB7bmFtZTonZmVjaGFfYXNpZ25hY2lvbicgICAgICAgICAgICAsIHR5cGVOYW1lOidkYXRlJ30sIC8vIGNhcmdhci9kZXNjYXJnYXJcclxuICAgICAgICB7bmFtZTpcImNhcmdhX29ic2VydmFjaW9uZXNcIiAgICAgICAgICwgdHlwZU5hbWU6IFwidGV4dFwiICAgICAgICwgZWRpdGFibGU6IHRydWV9LCAgICAgICAgXHJcbiAgICAgICAge25hbWU6J2NhcmdhZG9fZG0nICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlfSwgLy9jYXJnYXIvZGVzY2FyZ2FyIFxyXG4gICAgICAgIHtuYW1lOlwiY2FyZ2Fkb1wiICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogXCJib29sZWFuXCIgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidub3RhcycgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSwgLy8gdmllbmUgZGUgbGEgaG9qYSBkZSBydXRhXHJcbiAgICAgICAge25hbWU6J3JlYScgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDoncmVhX2RtJ30sXHJcbiAgICAgICAge25hbWU6J25vcmVhJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDonbm9yZWFfZG0nfSxcclxuICAgICAgICAvL3tuYW1lOidjb2Rfbm9fcmVhJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgIH0sXHJcbiAgICAgICAge25hbWU6J3Jlc3VtZW5fZXN0YWRvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCBsYWJlbDogJ3Jlc3VtZW5fZXN0YWRvX2RtJ30sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZWEnICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ub3JlYScgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ncnVfbm9fcmVhJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZXN1bWVuX2VzdGFkbycgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgIC8vICB7bmFtZToncmVzdWx0X3N1cCcgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXIgICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIC8ve25hbWU6J3Jlc3VsdGFkbycgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSwgLy8gZmsgdGFyZWFzX3Jlc3VsdGFkb3MgXHJcbiAgICAgICAgLy97bmFtZTonZmVjaGFfcmVzdWx0YWRvJyAgICAgICAgICAgLCB0eXBlTmFtZTonZGF0ZSd9LCAvLyBmayB0YXJlYXNfcmVzdWx0YWRvcyBcclxuICAgICAgICB7bmFtZTonc3VwZXJ2aXNpb25fZGlyaWdpZGEnICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogdHJ1ZX0sXHJcbiAgICAgICAge25hbWU6J3N1cGVydmlzaW9uX2FsZWF0b3JpYScgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlLCBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTondmVyaWZpY2FkbycgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSx9LCBcclxuICAgICAgICB7bmFtZTonYV9yZWN1cGVyYWNpb24nICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAsIGluVGFibGU6ZmFsc2V9LCBcclxuICAgICAgICB7bmFtZTonb2JzX3ZlcmlmaWNhZG8nICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0J30sXHJcbiAgICAgICAge25hbWU6J3JlYV9zdXAnICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDoncmVhX3N1cF9kbSd9LFxyXG4gICAgICAgIHtuYW1lOidub3JlYV9zdXAnICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBwdWVkZUVkaXRhciwgbGFiZWw6J25vcmVhX3N1cF9kbSd9LFxyXG4gICAgICAgIHtuYW1lOidyZXN1bWVuX2VzdGFkb19zdXAnICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSwgICAgICAgbGFiZWw6ICdyZXN1bWVuX2VzdGFkb19zdXBfZG0nfSxcclxuICAgICAgICB7bmFtZTondWx0X3JlYV9zdXAnICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ub3JlYV9zdXAnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid1bHRfcmVzdW1lbl9lc3RhZG9fc3VwJyAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZSAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICBdKTtcclxuICAgICAgICB2YXIgb2tfc3RyaW5nPWAgY29hbGVzY2UobnVsbGlmKFxyXG4gICAgICAgICAgICBjYXNlIHdoZW4gdGFyZWFzX3RlbS5hc2lnbmFkbyBpcyBudWxsIGFuZCB0YXJlYXNfdGVtLnZlcmlmaWNhZG8gaXMgbm90IG51bGwgdGhlbiAnVmVyaWZpY2Fkby1hc2lnbmFkbyB2YWNpbydcclxuICAgICAgICAgICAgICAgIC0td2hlbiB0YXJlYXNfdGVtLnZlcmlmaWNhZG8gaXMgbm90IG51bGwgYW5kIHRhcmVhc190ZW0uaGFiaWxpdGFkYSB0aGVuICdGYWx0YSBkZXNoYWJpbGl0YXInXHJcbiAgICAgICAgICAgIGVsc2UgJycgZW5kIFxyXG4gICAgICAgICAgICB8fGNhc2Ugd2hlbiB0YXJlYXNfdGVtLmFzaWduYWRvIGlzIG51bGwgYW5kIHRhcmVhc190ZW0ub3BlcmFjaW9uIGlzIG5vdCBudWxsIHRoZW4gJ09wZXJhY2lvbiBzaW4gYXNpZ25hZG8nXHJcbiAgICAgICAgICAgICAgICB3aGVuIHRhcmVhc190ZW0udmVyaWZpY2FkbyBpcyBub3QgbnVsbCBhbmQgY29hbGVzY2UodGFyZWFzX3RlbS5vcGVyYWNpb24sJ2Rlc2NhcmdhcicpPSdjYXJnYXInIHRoZW4gJ1ZlcmlmaWNhZG8tY2FyZ2FkbydcclxuICAgICAgICAgICAgICAgIHdoZW4gdGFyZWFzX3RlbS5kb21pbmlvPTMgYW5kIHRhcmVhc190ZW0udmVyaWZpY2FkbyBpcyBub3QgbnVsbCBhbmQgdGFyZWFzX3RlbS5vcGVyYWNpb24gaXMgbnVsbCB0aGVuICdWZXJpZmljYWRvIHNpbiBvcGVyYWNpb24gJ1xyXG4gICAgICAgICAgICBlbHNlICcnIGVuZFxyXG4gICAgICAgICAgICB8fChzZWxlY3QgY2FzZVxyXG4gICAgICAgICAgICAgICAgICAgIHdoZW4gdGFyZWFzX3RlbS5oYWJpbGl0YWRhIGFuZCB0YXJlYXNfdGVtLnRhcmVhPSdyZWN1JyBhbmQgY291bnQoKikgZmlsdGVyKHdoZXJlIGgudmVyaWZpY2FkbyBpcyBub3QgbnVsbCBhbmQgaC50YXJlYT0nZW5jdScpID0wICB0aGVuICdUYXJlYSBwcmV2aWEgYSByZWN1IHNpbiB2ZXJpZmljYXInXHJcbiAgICAgICAgICAgICAgICAgICAgd2hlbiB0YXJlYXNfdGVtLmhhYmlsaXRhZGEgYW5kIHRhcmVhc190ZW0udGFyZWE9J3N1cGUnIGFuZCAoY291bnQoKikgZmlsdGVyICh3aGVyZSBoLnZlcmlmaWNhZG8gaXMgbm90IG51bGwgYW5kIGgudGFyZWEgPD4nc3VwZScpICk9MCAgdGhlbiAnVGFyZWEgcHJldmlhIGEgc3VwZSBzaW4gdmVyaWZpY2FyJ1xyXG4gICAgICAgICAgICAgICAgICAgIHdoZW4gdGFyZWFzX3RlbS5oYWJpbGl0YWRhIGFuZCB0YXJlYXNfdGVtLnRhcmVhPSdzdXBlJyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgYW5kIChjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIG5vdCBoLmhhYmlsaXRhZGEgIGFuZCBoLnRhcmVhID0ncmVjdScgYW5kIG5vX3JlYS5ncnVwbzB+KideYXVzZW5jaWF8cmVjaGF6bycgKSk+MCAgdGhlbiAnUkVDVVBFUkFSIGFudGVzIGRlIGhhYmlsLiBTdXBlcnZpc2lvbidcclxuICAgICAgICAgICAgICAgIGVsc2UgJycgZW5kICBcclxuICAgICAgICAgICAgICAgIGZyb20gdGFyZWFzX3RlbSBoIGpvaW4gdGVtIHQyIHVzaW5nIChvcGVyYXRpdm8sIGVuYykgbGVmdCBqb2luIG5vX3JlYSBvbiB0Mi5ub3JlYT0obm9fcmVhLm5vX3JlYSk6OmludGVnZXJcclxuICAgICAgICAgICAgICAgd2hlcmUgaC5lbmM9dGFyZWFzX3RlbS5lbmMgYW5kIGgub3BlcmF0aXZvPXRhcmVhc190ZW0ub3BlcmF0aXZvXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfHwoc2VsZWN0IGNhc2UgXHJcbiAgICAgICAgICAgICAgICB3aGVuIGNvdW50KGNhcmdhZG9fZG0pPjEgIHRoZW4gJytjYXJnYWRvcydcclxuICAgICAgICAgICAgICAgIHdoZW4gY291bnQoKikgZmlsdGVyICh3aGVyZSBoYWJpbGl0YWRhIGlzIHRydWUgYW5kIHZlcmlmaWNhZG8gaXMgbnVsbCk+MSB0aGVuICcraGFiaWxpdGFkYXMgc2luIHZlcmlmaWNhcidcclxuICAgICAgICAgICAgICAgIHdoZW4gY291bnQoKikgZmlsdGVyICh3aGVyZSBvcGVyYWNpb249J2NhcmdhcicpPjEgICB0aGVuICcrb3BlQ2FyZ2FyJ1xyXG4gICAgICAgICAgICAgICAgZWxzZSAnJyBlbmRcclxuICAgICAgICBmcm9tIHRhcmVhc190ZW0gaCBcclxuICAgICAgICB3aGVyZSBoLmVuYz10YXJlYXNfdGVtLmVuYyBhbmQgaC5vcGVyYXRpdm89dGFyZWFzX3RlbS5vcGVyYXRpdm9cclxuICAgICAgICApXHJcbiAgICAgICAgfHwgKHNlbGVjdCBjYXNlXHJcbiAgICAgICAgICAgIHdoZW4gY291bnQoaS5jb25zaXN0ZW5jaWEpPjAgdGhlbiAnUmV2aXNhciBpbmNvbnNpc3QnIFxyXG4gICAgICAgICAgICBlbHNlICcnIGVuZFxyXG4gICAgICAgICAgICBmcm9tIGluY29uc2lzdGVuY2lhcyBpIGpvaW4gY29uc2lzdGVuY2lhcyBjIHVzaW5nKG9wZXJhdGl2bywgY29uc2lzdGVuY2lhKVxyXG4gICAgICAgICAgICB3aGVyZSBpLm9wZXJhdGl2bz10YXJlYXNfdGVtLm9wZXJhdGl2byBhbmQgaS52aXZpZW5kYT10YXJlYXNfdGVtLmVuYyBhbmQgdGFyZWFzX3RlbS50YXJlYT0nZW5jdScgXHJcbiAgICAgICAgICAgICAgIGFuZCBpLmp1c3RpZmljYWNpb24gaXMgbnVsbCBhbmQgYy52YWxpZGEgYW5kIGMuYWN0aXZhXHJcbiAgICAgICAgKVxyXG4gICAgICwnJyksJ+KclCcpXHJcbiAgICBgOyAvLyBhIGRldGVybWluYXIgc2kgZXMgbmVjZXNhcmlvIG1hbnRlbmVybGFcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTpgdGFyZWFzX3RlbWAsXHJcbiAgICAgICAgdGFibGVOYW1lOmB0YXJlYXNfdGVtYCxcclxuICAgICAgICBhbGxvdzp7XHJcbiAgICAgICAgICAgIGluc2VydDpmYWxzZSxcclxuICAgICAgICAgICAgZGVsZXRlOmZhbHNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZWRpdGFibGU6cHVlZGVFZGl0YXIsXHJcbiAgICAgICAgZmllbGRzLFxyXG4gICAgICAgIHByaW1hcnlLZXk6Wyd0YXJlYScsJ29wZXJhdGl2bycsJ2VuYyddLFxyXG4gICAgICAgIGhpZGRlbkNvbHVtbnM6WydjYXJnYWRvX2RtJywnbm90YXMnLCAnZXN0YWRvc19fcGVybWl0ZV9lZGl0YXJfZW5jdWVzdGEnLCd0YXJlYV9hbnRlcmlvcicsJ3RhcmVhX2FzZ2luYXInXSxcclxuICAgICAgICBmb3JlaWduS2V5czpbXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0ZW0nICwgZmllbGRzOlsnb3BlcmF0aXZvJywnZW5jJ10sIGRpc3BsYXlGaWVsZHM6W119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondGFyZWFzJyAsIGZpZWxkczpbJ29wZXJhdGl2bycsJ3RhcmVhJ119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondGFyZWFzJyAsIGZpZWxkczpbe3NvdXJjZTonb3BlcmF0aXZvJywgdGFyZ2V0OidvcGVyYXRpdm8nfSwge3NvdXJjZTogJ3RhcmVhX2FudGVyaW9yJywgdGFyZ2V0Oid0YXJlYSd9XSwgYWxpYXM6J3RhcmVhX2FudGVyaW9yJ30sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid1c3VhcmlvcycsIGZpZWxkczpbe3NvdXJjZTonYXNpZ25hZG8nICwgdGFyZ2V0OidpZHBlcid9XSwgYWxpYXM6J2FzaWduYWRvJywgZGlzcGxheUZpZWxkczpbJ25vbWJyZScsJ2FwZWxsaWRvJ119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonb3BlcmFjaW9uZXMnICwgZmllbGRzOlsnb3BlcmFjaW9uJ119LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonZXN0YWRvcycgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdlc3RhZG8nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid1c3VhcmlvcycsIGZpZWxkczpbe3NvdXJjZToncmVjZXBjaW9uaXN0YScgLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczoncmVjZXBjaW9uaXN0YSd9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgc29mdEZvcmVpZ25LZXlzOltcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidyZWNlcGNpb25pc3RhJywgdGFyZ2V0OidpZHBlcid9XSwgYWxpYXM6J2F0J30sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0ZW1fcmVjZXBjaW9uJyAsIGZpZWxkczpbJ29wZXJhdGl2bycsJ2VuYyddLCBkaXNwbGF5QWxsRmllbGRzOnRydWUsIGRpc3BsYXlBZnRlckZpZWxkTmFtZToncmVzdW1lbl9lc3RhZG9fc3VwJywgYWxpYXM6XCJ0ZW1fcmVjXCJ9LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondG9rZW5zJywgZmllbGRzOlt7c291cmNlOidjYXJnYWRvX2RtJywgdGFyZ2V0Oid0b2tlbid9XSwgZGlzcGxheUZpZWxkczpbJ3VzZXJuYW1lJ10sIGRpc3BsYXlBZnRlckZpZWxkTmFtZTonY2FyZ2Fkbyd9LFxyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczoncmVjZXBjaW9uaXN0YXMnLCBmaWVsZHM6W3tzb3VyY2U6J3JlY2VwY2lvbmlzdGEnLCB0YXJnZXQ6J3BlcnNvbmEnfV0sIGFsaWFzOidyZWMnfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIGRldGFpbFRhYmxlczogW1xyXG4gICAgICAgICAgICB7dGFibGU6IFwiaW5jb25zaXN0ZW5jaWFzXCIsIGFicjogXCJJXCIsIGZpZWxkczogW3tzb3VyY2U6J29wZXJhdGl2bycsIHRhcmdldDonb3BlcmF0aXZvJ30se3NvdXJjZTonZW5jJywgdGFyZ2V0Oid2aXZpZW5kYSd9XSwgcmVmcmVzaFBhcmVudDp0cnVlLCByZWZyZXNoRnJvbVBhcmVudDp0cnVlfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgc3FsOntcclxuICAgICAgICAgICAgaXNUYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgZnJvbTpgKFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ICpcclxuICAgICAgICAgICAgICAgICAgICBmcm9tIChcclxuICAgICAgICAgICAgICAgIHNlbGVjdCB0dC50YXJlYSwgdC5vcGVyYXRpdm8sIHQuZW5jLCB0LmFyZWEsIFxyXG4gICAgICAgICAgICAgICAgICAgIGNhc2Ugd2hlbiB0YXJlYV9wcm94aW1hIGlzIG5vdCBudWxsIHRoZW4gdGFyZWFfcHJveGltYSB3aGVuIHR0LmVzdGFkbz0nQScgdGhlbiB0dC50YXJlYSBlbHNlIG51bGwgZW5kIGFzIHRhcmVhX2FzaWduYXJcclxuICAgICAgICAgICAgICAgICAgICAke2ZpZWxkcy5maWx0ZXIoeD0+ISh4LmlzUGsgfHwgeC5pblRhYmxlPT09ZmFsc2V8fHgubmFtZT09J2FyZWEnKSkubWFwKHg9PmAsIHR0LiR7ZGIucXVvdGVJZGVudCh4Lm5hbWUpfWApLmpvaW4oJycpfVxyXG4gICAgICAgICAgICAgICAgICAgICwgeS5ncnVwbyBhcyB1bHRfZ3J1X25vX3JlYVxyXG4gICAgICAgICAgICAgICAgICAgICwgY2FzZSB3aGVuIHR0LnRhcmVhPSdyZWN1JyBhbmQgeS5ncnVwbzAgaW4gKCdhdXNlbnRlcycsJ3JlY2hhem9zJykgdGhlbiAncmVjdXBlcmFjaW9uJyBlbHNlIG51bGwgZW5kIGFfcmVjdXBlcmFjaW9uICAgXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnN1cGVydmlzaW9uX2FsZWF0b3JpYVxyXG4gICAgICAgICAgICAgICAgICAgICwgdC5yZWEgdWx0X3JlYSwgdC5ub3JlYSBhcyB1bHRfbm9yZWEsIHQucmVzdW1lbl9lc3RhZG8gdWx0X3Jlc3VtZW5fZXN0YWRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnJlYV9zdXAgdWx0X3JlYV9zdXAsIHQubm9yZWFfc3VwIGFzIHVsdF9ub3JlYV9zdXAsIHQucmVzdW1lbl9lc3RhZG9fc3VwIHVsdF9yZXN1bWVuX2VzdGFkb19zdXBcclxuICAgICAgICAgICAgICAgICAgICAsIGRvbWluaW9cclxuICAgICAgICAgICAgICAgICAgICAsIHYuY29uc2lzdGlkb1xyXG4gICAgICAgICAgICAgICAgICAgICwgZS52aXNpYmxlX2VuX3JlY2VwY2lvblxyXG4gICAgICAgICAgICAgICAgICAgICwgZS52aXNpYmxlX2VuX2luZ3Jlc29cclxuICAgICAgICAgICAgICAgICAgICAsIHQucmVzdWx0X3N1cFxyXG4gICAgICAgICAgICAgICAgICAgIGZyb20gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlbSB0IGxlZnQgam9pbiB0YXJlYXNfdGVtIHR0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiB0Lm9wZXJhdGl2byA9IHR0Lm9wZXJhdGl2byBhbmQgdC5lbmMgPSB0dC5lbmNcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBqb2luIHRhcmVhcyB0YSBvbiB0dC5vcGVyYXRpdm8gPSB0YS5vcGVyYXRpdm8gYW5kIHR0LnRhcmVhID0gdGEudGFyZWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBqb2luIGFyZWFzIGEgb24gdHQub3BlcmF0aXZvID0gYS5vcGVyYXRpdm8gYW5kIHQuYXJlYSA9IGEuYXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gbm9fcmVhIHkgb24gdC5ub3JlYT15Lm5vX3JlYTo6aW50ZWdlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gdml2aWVuZGFzIHYgb24gdi5vcGVyYXRpdm89dC5vcGVyYXRpdm8gYW5kIHYudml2aWVuZGE9dC5lbmMgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGpvaW4gZXN0YWRvcyBlIG9uIHQub3BlcmF0aXZvID0gZS5vcGVyYXRpdm8gYW5kIHR0LmVzdGFkbyA9IGUuZXN0YWRvXHJcbiAgICAgICAgICAgICAgICAgICAgKSB4XHJcbiAgICAgICAgICAgIClgLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLy9yZWZyZXNjYWJsZTogdHJ1ZSwgLy9ubyBlc3TDoSBwZXJtaXRpZG8gYcO6blxyXG4gICAgICAgIC8vY2xpZW50U2lkZTondGFyZWFzVGVtUm93JyAvL2Rlc2FjdGl2byBwYXJhIGJvcnJhciBsb3Mgw61jb25vcyBkZSBsYXMgY2VsZGFzXHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbV9lbmN1KGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDonZW5jdScsIG5hbWU6J2VuY3Vlc3RhZG9yJywgYWJyZTpmYWxzZSwgY29uc2lzdGU6ZmFsc2V9KSBcclxuICAgIHRhYmxlRGVmLnNxbCEuaXNUYWJsZSA9IGZhbHNlO1xyXG4gICAgcmV0dXJuIHRhYmxlRGVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbV9yZWN1KGNvbnRleHQ6VGFibGVDb250ZXh0KXtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwge3JvbDoncmVjdScsIG5hbWU6J3JlY3VwZXJhZG9yJywgYWJyZTp0cnVlLCBjb25zaXN0ZTpmYWxzZX0pIFxyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX3N1cGUoY29udGV4dDpUYWJsZUNvbnRleHQpe1xyXG4gICAgdmFyIHRhYmxlRGVmID0gdGFyZWFzX3RlbShjb250ZXh0LCB7cm9sOidzdXBlJywgbmFtZTonc3VwZXJ2aXNvcicsIGFicmU6dHJ1ZSwgY29uc2lzdGU6ZmFsc2V9KSBcclxuICAgIHRhYmxlRGVmLnNxbCEuaXNUYWJsZSA9IGZhbHNlO1xyXG4gICAgcmV0dXJuIHRhYmxlRGVmO1xyXG59XHJcbiJdfQ==
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGFyZWFzX3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2ZXIvdGFibGUtdGFyZWFzX3RlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQVliLFNBQWdCLFVBQVUsQ0FBQyxPQUFvQixFQUFDLElBQW1COztRQUMvRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDZCxJQUFJLEdBQUc7Z0JBQ0gsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsSUFBSSxFQUFFLFdBQVc7YUFDcEIsQ0FBQTtTQUNKO1FBQ0QsTUFBQSxJQUFJLENBQUMsSUFBSSxvQ0FBVCxJQUFJLENBQUMsSUFBSSxHQUFLLElBQUksRUFBQztRQUNuQixNQUFBLElBQUksQ0FBQyxRQUFRLG9DQUFiLElBQUksQ0FBQyxRQUFRLEdBQUssSUFBSSxFQUFDO1FBQ3ZCLElBQUksRUFBRSxHQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxFQUFFLEdBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNiLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEtBQUksTUFBQSxNQUFBLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLEtBQUssMENBQUUsV0FBVyxDQUFBLElBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUcsZUFBZSxDQUFDO1FBQzNHLElBQUksTUFBTSxHQUFtQjtZQUN6QixFQUFDLElBQUksRUFBQyxXQUFXLEVBQXFCLFFBQVEsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsRUFBRSxRQUFRLEVBQUMsS0FBSyxFQUFDO1lBQzlFLEVBQUMsSUFBSSxFQUFDLEtBQUssRUFBMkIsUUFBUSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBQyxLQUFLLEVBQUM7WUFDOUUsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUF5QixRQUFRLEVBQUMsTUFBTSxF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cG9ydCB7VGFibGVEZWZpbml0aW9uLCBUYWJsZUNvbnRleHR9IGZyb20gXCIuL3R5cGVzLWRtZW5jdVwiO1xyXG5pbXBvcnQgeyBGaWVsZERlZmluaXRpb24gfSBmcm9tIFwicmVsLWVuY1wiO1xyXG5cclxuZXhwb3J0IHR5cGUgT3B0c1RhcmVhc1RlbSA9IHtcclxuICAgIHJvbDogJ2VuY3UnfCdyZWN1J3wnc3VwZSd8bnVsbFxyXG4gICAgbmFtZTogc3RyaW5nXHJcbiAgICBhYnJlPzpib29sZWFuXHJcbiAgICBjb25zaXN0ZT86Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbShjb250ZXh0OlRhYmxlQ29udGV4dCxvcHRzPzpPcHRzVGFyZWFzVGVtKTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgaWYgKG9wdHMgPT0gbnVsbCkge1xyXG4gICAgICAgIG9wdHMgPSB7XHJcbiAgICAgICAgICAgIHJvbDogbnVsbCxcclxuICAgICAgICAgICAgbmFtZTogJ3JlbGV2YWRvcidcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvcHRzLmFicmUgPz89IHRydWU7XHJcbiAgICBvcHRzLmNvbnNpc3RlID8/PSB0cnVlO1xyXG4gICAgdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgZGI9YmUuZGI7IFxyXG4gICAgdmFyIHB1ZWRlRWRpdGFyID0gY29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmNhbXBvPy5hZG1pbmlzdHJhcnx8Y29udGV4dC51c2VyLnJvbD09PSdyZWNlcGNpb25pc3RhJzsgICAgICAgXHJcbiAgICB2YXIgZmllbGRzOkZpZWxkRGVmaW5pdGlvbltdPVtcclxuICAgICAgICB7bmFtZTonb3BlcmF0aXZvJyAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JywgaXNQazoyLCBlZGl0YWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J2VuYycgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcsIGlzUGs6MywgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid0YXJlYScgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnLCBpc1BrOjEsIGVkaXRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTonZXN0YWRvJyAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgbnVsbGFibGU6IGZhbHNlLCBkZWZhdWx0RGJWYWx1ZTpcIicwRCdcIn0sXHJcbiAgICBdO1xyXG4gICAgaWYob3B0cy5hYnJlKXtcclxuICAgICAgICBmaWVsZHMucHVzaCh7bmFtZTonYWJyaXInICAgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTonYWJyaXJSZWNlcGNpb24nfSk7XHJcbiAgICB9XHJcbiAgICBpZihvcHRzLmNvbnNpc3RlKXtcclxuICAgICAgICBmaWVsZHMucHVzaCh7bmFtZTpcImNvbnNpc3RpclwiICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6ICd0ZXh0JyAgICAgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidjb25zaXN0aXInfSk7XHJcbiAgICB9XHJcbiAgICBmaWVsZHM9ZmllbGRzLmNvbmNhdChbXHJcbiAgICAgICAge25hbWU6J2FyZWEnICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ2ludGVnZXInICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgfSxcclxuICAgICAgICB7bmFtZTondGFyZWFfYXNpZ25hcicgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBpblRhYmxlOmZhbHNlICAgICwgZWRpdGFibGU6ZmFsc2UsIHNlcnZlclNpZGU6dHJ1ZX0sXHJcbiAgICAgICAge25hbWU6J3RhcmVhX2FudGVyaW9yJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAvLyAge25hbWU6J29rJyAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgfSxcclxuICAgICAgICB7bmFtZToncmVjZXBjaW9uaXN0YScgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTp0cnVlIH0sIFxyXG4gICAgICAgIHtuYW1lOidhc2lnbmFkbycgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOnRydWUsIHRpdGxlOiBvcHRzLm5hbWV9LCAvLyB2YSBhIGxhIGhvamEgZGUgcnV0YVxyXG4gICAgICAgIHtuYW1lOidvcGVyYWNpb24nICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOmZhbHNlLH0sIC8vIGNhcmdhci9kZXNjYXJnYXJcclxuICAgICAgICB7bmFtZTonZmVjaGFfYXNpZ25hY2lvbicgICAgICAgICAgICAsIHR5cGVOYW1lOidkYXRlJ30sIC8vIGNhcmdhci9kZXNjYXJnYXJcclxuICAgICAgICB7bmFtZTpcImNhcmdhX29ic2VydmFjaW9uZXNcIiAgICAgICAgICwgdHlwZU5hbWU6IFwidGV4dFwiICAgICAgICwgZWRpdGFibGU6IHRydWV9LCAgICAgICAgXHJcbiAgICAgICAge25hbWU6J2NhcmdhZG9fZG0nICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlfSwgLy9jYXJnYXIvZGVzY2FyZ2FyIFxyXG4gICAgICAgIHtuYW1lOlwiY2FyZ2Fkb1wiICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogXCJib29sZWFuXCIgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOidub3RhcycgICAgICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSwgLy8gdmllbmUgZGUgbGEgaG9qYSBkZSBydXRhXHJcbiAgICAgICAge25hbWU6J3JlYScgICAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDoncmVhX2RtJ30sXHJcbiAgICAgICAge25hbWU6J25vcmVhJyAgICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDonbm9yZWFfZG0nfSxcclxuICAgICAgICAvL3tuYW1lOidjb2Rfbm9fcmVhJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAgICAgLCBlZGl0YWJsZTogZmFsc2UgICAsIGluVGFibGU6ZmFsc2UgIH0sXHJcbiAgICAgICAge25hbWU6J3Jlc3VtZW5fZXN0YWRvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCBsYWJlbDogJ3Jlc3VtZW5fZXN0YWRvX2RtJ30sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZWEnICAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ub3JlYScgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9ncnVfbm9fcmVhJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZXN1bWVuX2VzdGFkbycgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICAgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3Jlc3VsdF9zdXAnICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyICAsICBpblRhYmxlOmZhbHNlLCB0YWJsZTondGVtJ30sXHJcbiAgICAgICAgLy97bmFtZToncmVzdWx0YWRvJyAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCd9LCAvLyBmayB0YXJlYXNfcmVzdWx0YWRvcyBcclxuICAgICAgICAvL3tuYW1lOidmZWNoYV9yZXN1bHRhZG8nICAgICAgICAgICAsIHR5cGVOYW1lOidkYXRlJ30sIC8vIGZrIHRhcmVhc19yZXN1bHRhZG9zIFxyXG4gICAgICAgIHtuYW1lOidzdXBlcnZpc2lvbl9kaXJpZ2lkYScgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiB0cnVlfSxcclxuICAgICAgICB7bmFtZTonc3VwZXJ2aXNpb25fYWxlYXRvcmlhJyAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UsIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOid2ZXJpZmljYWRvJyAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOmZhbHNlLH0sIFxyXG4gICAgICAgIHtuYW1lOidhX3JlY3VwZXJhY2lvbicgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOmZhbHNlICwgaW5UYWJsZTpmYWxzZX0sIFxyXG4gICAgICAgIHtuYW1lOidvYnNfdmVyaWZpY2FkbycgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnfSxcclxuICAgICAgICB7bmFtZToncmVhX3N1cCcgICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXIsIGxhYmVsOidyZWFfc3VwX2RtJ30sXHJcbiAgICAgICAge25hbWU6J25vcmVhX3N1cCcgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyLCBsYWJlbDonbm9yZWFfc3VwX2RtJ30sXHJcbiAgICAgICAge25hbWU6J3Jlc3VtZW5fZXN0YWRvX3N1cCcgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlLCAgICAgICBsYWJlbDogJ3Jlc3VtZW5fZXN0YWRvX3N1cF9kbSd9LFxyXG4gICAgICAgIHtuYW1lOid1bHRfcmVhX3N1cCcgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZSAsICBpblRhYmxlOmZhbHNlfSxcclxuICAgICAgICB7bmFtZTondWx0X25vcmVhX3N1cCcgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2UgLCAgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAge25hbWU6J3VsdF9yZXN1bWVuX2VzdGFkb19zdXAnICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgICAgICwgZWRpdGFibGU6IGZhbHNlICwgIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIHZhciBva19zdHJpbmc9YCBjb2FsZXNjZShudWxsaWYoXHJcbiAgICAgICAgICAgIGNhc2Ugd2hlbiB0YXJlYXNfdGVtLmFzaWduYWRvIGlzIG51bGwgYW5kIHRhcmVhc190ZW0udmVyaWZpY2FkbyBpcyBub3QgbnVsbCB0aGVuICdWZXJpZmljYWRvLWFzaWduYWRvIHZhY2lvJ1xyXG4gICAgICAgICAgICAgICAgLS13aGVuIHRhcmVhc190ZW0udmVyaWZpY2FkbyBpcyBub3QgbnVsbCBhbmQgdGFyZWFzX3RlbS5oYWJpbGl0YWRhIHRoZW4gJ0ZhbHRhIGRlc2hhYmlsaXRhcidcclxuICAgICAgICAgICAgZWxzZSAnJyBlbmQgXHJcbiAgICAgICAgICAgIHx8Y2FzZSB3aGVuIHRhcmVhc190ZW0uYXNpZ25hZG8gaXMgbnVsbCBhbmQgdGFyZWFzX3RlbS5vcGVyYWNpb24gaXMgbm90IG51bGwgdGhlbiAnT3BlcmFjaW9uIHNpbiBhc2lnbmFkbydcclxuICAgICAgICAgICAgICAgIHdoZW4gdGFyZWFzX3RlbS52ZXJpZmljYWRvIGlzIG5vdCBudWxsIGFuZCBjb2FsZXNjZSh0YXJlYXNfdGVtLm9wZXJhY2lvbiwnZGVzY2FyZ2FyJyk9J2NhcmdhcicgdGhlbiAnVmVyaWZpY2Fkby1jYXJnYWRvJ1xyXG4gICAgICAgICAgICAgICAgd2hlbiB0YXJlYXNfdGVtLmRvbWluaW89MyBhbmQgdGFyZWFzX3RlbS52ZXJpZmljYWRvIGlzIG5vdCBudWxsIGFuZCB0YXJlYXNfdGVtLm9wZXJhY2lvbiBpcyBudWxsIHRoZW4gJ1ZlcmlmaWNhZG8gc2luIG9wZXJhY2lvbiAnXHJcbiAgICAgICAgICAgIGVsc2UgJycgZW5kXHJcbiAgICAgICAgICAgIHx8KHNlbGVjdCBjYXNlXHJcbiAgICAgICAgICAgICAgICAgICAgd2hlbiB0YXJlYXNfdGVtLmhhYmlsaXRhZGEgYW5kIHRhcmVhc190ZW0udGFyZWE9J3JlY3UnIGFuZCBjb3VudCgqKSBmaWx0ZXIod2hlcmUgaC52ZXJpZmljYWRvIGlzIG5vdCBudWxsIGFuZCBoLnRhcmVhPSdlbmN1JykgPTAgIHRoZW4gJ1RhcmVhIHByZXZpYSBhIHJlY3Ugc2luIHZlcmlmaWNhcidcclxuICAgICAgICAgICAgICAgICAgICB3aGVuIHRhcmVhc190ZW0uaGFiaWxpdGFkYSBhbmQgdGFyZWFzX3RlbS50YXJlYT0nc3VwZScgYW5kIChjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIGgudmVyaWZpY2FkbyBpcyBub3QgbnVsbCBhbmQgaC50YXJlYSA8PidzdXBlJykgKT0wICB0aGVuICdUYXJlYSBwcmV2aWEgYSBzdXBlIHNpbiB2ZXJpZmljYXInXHJcbiAgICAgICAgICAgICAgICAgICAgd2hlbiB0YXJlYXNfdGVtLmhhYmlsaXRhZGEgYW5kIHRhcmVhc190ZW0udGFyZWE9J3N1cGUnIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgKGNvdW50KCopIGZpbHRlciAod2hlcmUgbm90IGguaGFiaWxpdGFkYSAgYW5kIGgudGFyZWEgPSdyZWN1JyBhbmQgbm9fcmVhLmdydXBvMH4qJ15hdXNlbmNpYXxyZWNoYXpvJyApKT4wICB0aGVuICdSRUNVUEVSQVIgYW50ZXMgZGUgaGFiaWwuIFN1cGVydmlzaW9uJ1xyXG4gICAgICAgICAgICAgICAgZWxzZSAnJyBlbmQgIFxyXG4gICAgICAgICAgICAgICAgZnJvbSB0YXJlYXNfdGVtIGggam9pbiB0ZW0gdDIgdXNpbmcgKG9wZXJhdGl2bywgZW5jKSBsZWZ0IGpvaW4gbm9fcmVhIG9uIHQyLm5vcmVhPShub19yZWEubm9fcmVhKTo6aW50ZWdlclxyXG4gICAgICAgICAgICAgICB3aGVyZSBoLmVuYz10YXJlYXNfdGVtLmVuYyBhbmQgaC5vcGVyYXRpdm89dGFyZWFzX3RlbS5vcGVyYXRpdm9cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB8fChzZWxlY3QgY2FzZSBcclxuICAgICAgICAgICAgICAgIHdoZW4gY291bnQoY2FyZ2Fkb19kbSk+MSAgdGhlbiAnK2NhcmdhZG9zJ1xyXG4gICAgICAgICAgICAgICAgd2hlbiBjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIGhhYmlsaXRhZGEgaXMgdHJ1ZSBhbmQgdmVyaWZpY2FkbyBpcyBudWxsKT4xIHRoZW4gJytoYWJpbGl0YWRhcyBzaW4gdmVyaWZpY2FyJ1xyXG4gICAgICAgICAgICAgICAgd2hlbiBjb3VudCgqKSBmaWx0ZXIgKHdoZXJlIG9wZXJhY2lvbj0nY2FyZ2FyJyk+MSAgIHRoZW4gJytvcGVDYXJnYXInXHJcbiAgICAgICAgICAgICAgICBlbHNlICcnIGVuZFxyXG4gICAgICAgIGZyb20gdGFyZWFzX3RlbSBoIFxyXG4gICAgICAgIHdoZXJlIGguZW5jPXRhcmVhc190ZW0uZW5jIGFuZCBoLm9wZXJhdGl2bz10YXJlYXNfdGVtLm9wZXJhdGl2b1xyXG4gICAgICAgIClcclxuICAgICAgICB8fCAoc2VsZWN0IGNhc2VcclxuICAgICAgICAgICAgd2hlbiBjb3VudChpLmNvbnNpc3RlbmNpYSk+MCB0aGVuICdSZXZpc2FyIGluY29uc2lzdCcgXHJcbiAgICAgICAgICAgIGVsc2UgJycgZW5kXHJcbiAgICAgICAgICAgIGZyb20gaW5jb25zaXN0ZW5jaWFzIGkgam9pbiBjb25zaXN0ZW5jaWFzIGMgdXNpbmcob3BlcmF0aXZvLCBjb25zaXN0ZW5jaWEpXHJcbiAgICAgICAgICAgIHdoZXJlIGkub3BlcmF0aXZvPXRhcmVhc190ZW0ub3BlcmF0aXZvIGFuZCBpLnZpdmllbmRhPXRhcmVhc190ZW0uZW5jIGFuZCB0YXJlYXNfdGVtLnRhcmVhPSdlbmN1JyBcclxuICAgICAgICAgICAgICAgYW5kIGkuanVzdGlmaWNhY2lvbiBpcyBudWxsIGFuZCBjLnZhbGlkYSBhbmQgYy5hY3RpdmFcclxuICAgICAgICApXHJcbiAgICAgLCcnKSwn4pyUJylcclxuICAgIGA7IC8vIGEgZGV0ZXJtaW5hciBzaSBlcyBuZWNlc2FyaW8gbWFudGVuZXJsYVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOmB0YXJlYXNfdGVtYCxcclxuICAgICAgICB0YWJsZU5hbWU6YHRhcmVhc190ZW1gLFxyXG4gICAgICAgIGFsbG93OntcclxuICAgICAgICAgICAgaW5zZXJ0OmZhbHNlLFxyXG4gICAgICAgICAgICBkZWxldGU6ZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBlZGl0YWJsZTpwdWVkZUVkaXRhcixcclxuICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgcHJpbWFyeUtleTpbJ3RhcmVhJywnb3BlcmF0aXZvJywnZW5jJ10sXHJcbiAgICAgICAgaGlkZGVuQ29sdW1uczpbJ2NhcmdhZG9fZG0nLCdub3RhcycsICdlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YScsJ3RhcmVhX2FudGVyaW9yJywndGFyZWFfYXNnaW5hciddLFxyXG4gICAgICAgIGZvcmVpZ25LZXlzOltcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3RlbScgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCdlbmMnXSwgZGlzcGxheUZpZWxkczpbXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0YXJlYXMnICwgZmllbGRzOlsnb3BlcmF0aXZvJywndGFyZWEnXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0YXJlYXMnICwgZmllbGRzOlt7c291cmNlOidvcGVyYXRpdm8nLCB0YXJnZXQ6J29wZXJhdGl2byd9LCB7c291cmNlOiAndGFyZWFfYW50ZXJpb3InLCB0YXJnZXQ6J3RhcmVhJ31dLCBhbGlhczondGFyZWFfYW50ZXJpb3InfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidhc2lnbmFkbycgLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczonYXNpZ25hZG8nLCBkaXNwbGF5RmllbGRzOlsnbm9tYnJlJywnYXBlbGxpZG8nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidvcGVyYWNpb25lcycgLCBmaWVsZHM6WydvcGVyYWNpb24nXX0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidlc3RhZG9zJyAsIGZpZWxkczpbJ29wZXJhdGl2bycsJ2VzdGFkbyddfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidyZWNlcGNpb25pc3RhJyAsIHRhcmdldDonaWRwZXInfV0sIGFsaWFzOidyZWNlcGNpb25pc3RhJ30sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBzb2Z0Rm9yZWlnbktleXM6W1xyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondXN1YXJpb3MnLCBmaWVsZHM6W3tzb3VyY2U6J3JlY2VwY2lvbmlzdGEnLCB0YXJnZXQ6J2lkcGVyJ31dLCBhbGlhczonYXQnfSxcclxuICAgICAgICAgICAge3JlZmVyZW5jZXM6J3RlbV9yZWNlcGNpb24nICwgZmllbGRzOlsnb3BlcmF0aXZvJywnZW5jJ10sIGRpc3BsYXlBbGxGaWVsZHM6dHJ1ZSwgZGlzcGxheUFmdGVyRmllbGROYW1lOidyZXN1bWVuX2VzdGFkb19zdXAnLCBhbGlhczpcInRlbV9yZWNcIn0sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOid0b2tlbnMnLCBmaWVsZHM6W3tzb3VyY2U6J2NhcmdhZG9fZG0nLCB0YXJnZXQ6J3Rva2VuJ31dLCBkaXNwbGF5RmllbGRzOlsndXNlcm5hbWUnXSwgZGlzcGxheUFmdGVyRmllbGROYW1lOidjYXJnYWRvJ30sXHJcbiAgICAgICAgICAgIHtyZWZlcmVuY2VzOidyZWNlcGNpb25pc3RhcycsIGZpZWxkczpbe3NvdXJjZToncmVjZXBjaW9uaXN0YScsIHRhcmdldDoncGVyc29uYSd9XSwgYWxpYXM6J3JlYyd9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGV0YWlsVGFibGVzOiBbXHJcbiAgICAgICAgICAgIHt0YWJsZTogXCJpbmNvbnNpc3RlbmNpYXNcIiwgYWJyOiBcIklcIiwgZmllbGRzOiBbe3NvdXJjZTonb3BlcmF0aXZvJywgdGFyZ2V0OidvcGVyYXRpdm8nfSx7c291cmNlOidlbmMnLCB0YXJnZXQ6J3ZpdmllbmRhJ31dLCByZWZyZXNoUGFyZW50OnRydWUsIHJlZnJlc2hGcm9tUGFyZW50OnRydWV9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBzcWw6e1xyXG4gICAgICAgICAgICBpc1RhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBmcm9tOmAoXHJcbiAgICAgICAgICAgICAgICBzZWxlY3QgKlxyXG4gICAgICAgICAgICAgICAgICAgIGZyb20gKFxyXG4gICAgICAgICAgICAgICAgc2VsZWN0IHR0LnRhcmVhLCB0Lm9wZXJhdGl2bywgdC5lbmMsIHQuYXJlYSwgXHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSB3aGVuIHRhcmVhX3Byb3hpbWEgaXMgbm90IG51bGwgdGhlbiB0YXJlYV9wcm94aW1hIHdoZW4gdHQuZXN0YWRvPSdBJyB0aGVuIHR0LnRhcmVhIGVsc2UgbnVsbCBlbmQgYXMgdGFyZWFfYXNpZ25hclxyXG4gICAgICAgICAgICAgICAgICAgICR7ZmllbGRzLmZpbHRlcih4PT4hKHguaXNQayB8fCB4LmluVGFibGU9PT1mYWxzZXx8eC5uYW1lPT0nYXJlYScpKS5tYXAoeD0+YCwgdHQuJHtkYi5xdW90ZUlkZW50KHgubmFtZSl9YCkuam9pbignJyl9XHJcbiAgICAgICAgICAgICAgICAgICAgLCB5LmdydXBvIGFzIHVsdF9ncnVfbm9fcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgLCBjYXNlIHdoZW4gdHQudGFyZWE9J3JlY3UnIGFuZCB5LmdydXBvMCBpbiAoJ2F1c2VudGVzJywncmVjaGF6b3MnKSB0aGVuICdyZWN1cGVyYWNpb24nIGVsc2UgbnVsbCBlbmQgYV9yZWN1cGVyYWNpb24gICBcclxuICAgICAgICAgICAgICAgICAgICAsIHQuc3VwZXJ2aXNpb25fYWxlYXRvcmlhXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0LnJlYSB1bHRfcmVhLCB0Lm5vcmVhIGFzIHVsdF9ub3JlYSwgdC5yZXN1bWVuX2VzdGFkbyB1bHRfcmVzdW1lbl9lc3RhZG9cclxuICAgICAgICAgICAgICAgICAgICAsIHQucmVhX3N1cCB1bHRfcmVhX3N1cCwgdC5ub3JlYV9zdXAgYXMgdWx0X25vcmVhX3N1cCwgdC5yZXN1bWVuX2VzdGFkb19zdXAgdWx0X3Jlc3VtZW5fZXN0YWRvX3N1cFxyXG4gICAgICAgICAgICAgICAgICAgICwgZG9taW5pb1xyXG4gICAgICAgICAgICAgICAgICAgICwgdi5jb25zaXN0aWRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5fcmVjZXBjaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgLCBlLnZpc2libGVfZW5faW5ncmVzb1xyXG4gICAgICAgICAgICAgICAgICAgICwgdC5yZXN1bHRfc3VwXHJcbiAgICAgICAgICAgICAgICAgICAgZnJvbSBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGVtIHQgbGVmdCBqb2luIHRhcmVhc190ZW0gdHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIHQub3BlcmF0aXZvID0gdHQub3BlcmF0aXZvIGFuZCB0LmVuYyA9IHR0LmVuY1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gdGFyZWFzIHRhIG9uIHR0Lm9wZXJhdGl2byA9IHRhLm9wZXJhdGl2byBhbmQgdHQudGFyZWEgPSB0YS50YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gYXJlYXMgYSBvbiB0dC5vcGVyYXRpdm8gPSBhLm9wZXJhdGl2byBhbmQgdC5hcmVhID0gYS5hcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiBub19yZWEgeSBvbiB0Lm5vcmVhPXkubm9fcmVhOjppbnRlZ2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiB2aXZpZW5kYXMgdiBvbiB2Lm9wZXJhdGl2bz10Lm9wZXJhdGl2byBhbmQgdi52aXZpZW5kYT10LmVuYyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgam9pbiBlc3RhZG9zIGUgb24gdC5vcGVyYXRpdm8gPSBlLm9wZXJhdGl2byBhbmQgdHQuZXN0YWRvID0gZS5lc3RhZG9cclxuICAgICAgICAgICAgICAgICAgICApIHhcclxuICAgICAgICAgICAgKWAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAvL3JlZnJlc2NhYmxlOiB0cnVlLCAvL25vIGVzdMOhIHBlcm1pdGlkbyBhw7puXHJcbiAgICAgICAgLy9jbGllbnRTaWRlOid0YXJlYXNUZW1Sb3cnIC8vZGVzYWN0aXZvIHBhcmEgYm9ycmFyIGxvcyDDrWNvbm9zIGRlIGxhcyBjZWxkYXNcclxuICAgIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX2VuY3UoY29udGV4dDpUYWJsZUNvbnRleHQpe1xyXG4gICAgdmFyIHRhYmxlRGVmID0gdGFyZWFzX3RlbShjb250ZXh0LCB7cm9sOidlbmN1JywgbmFtZTonZW5jdWVzdGFkb3InLCBhYnJlOmZhbHNlLCBjb25zaXN0ZTpmYWxzZX0pIFxyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX3JlY3UoY29udGV4dDpUYWJsZUNvbnRleHQpe1xyXG4gICAgdmFyIHRhYmxlRGVmID0gdGFyZWFzX3RlbShjb250ZXh0LCB7cm9sOidyZWN1JywgbmFtZToncmVjdXBlcmFkb3InLCBhYnJlOnRydWUsIGNvbnNpc3RlOmZhbHNlfSkgXHJcbiAgICB0YWJsZURlZi5zcWwhLmlzVGFibGUgPSBmYWxzZTtcclxuICAgIHJldHVybiB0YWJsZURlZjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fc3VwZShjb250ZXh0OlRhYmxlQ29udGV4dCl7XHJcbiAgICB2YXIgdGFibGVEZWYgPSB0YXJlYXNfdGVtKGNvbnRleHQsIHtyb2w6J3N1cGUnLCBuYW1lOidzdXBlcnZpc29yJywgYWJyZTp0cnVlLCBjb25zaXN0ZTpmYWxzZX0pIFxyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn1cclxuIl19
|
|
@@ -29,7 +29,11 @@
|
|
|
29
29
|
tableDef.fields.splice(4, 0, { name: "acciones", typeName: 'jsonb', editable: false, inTable: false }, { name: "acciones_avance", typeName: 'text', editable: false, inTable: false, clientSide: 'accionesAvance' }, { name: "acciones_retroceso", typeName: 'text', editable: false, inTable: false, clientSide: 'accionesRetroceso' },
|
|
30
30
|
//{name:"acciones_blanqueo" , typeName: 'text' , editable:false , inTable:false, clientSide:'accionesBlanqueo'},
|
|
31
31
|
{ name: "visible_en_recepcion", typeName: "boolean", editable: false, inTable: false, visible: false }, { name: "visible_en_ingreso", typeName: "boolean", editable: false, inTable: false, visible: false });
|
|
32
|
-
tableDef.fields.forEach((field) =>
|
|
32
|
+
tableDef.fields.forEach((field) => {
|
|
33
|
+
if (!field.table) {
|
|
34
|
+
field.table = 'tareas_tem';
|
|
35
|
+
}
|
|
36
|
+
});
|
|
33
37
|
//tableDef.fields.forEach((field:FieldDefinition)=>field.editable=false);
|
|
34
38
|
var campoRea = tableDef.fields.find((field) => field.name == 'rea');
|
|
35
39
|
var campoNorea = tableDef.fields.find((field) => field.name == 'norea');
|
|
@@ -73,4 +77,4 @@
|
|
|
73
77
|
}
|
|
74
78
|
exports.tareas_tem_recepcion_supe = tareas_tem_recepcion_supe;
|
|
75
79
|
});
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGFyZWFzX3RlbV9yZWNlcGNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmVyL3RhYmxlLXRhcmVhc190ZW1fcmVjZXBjaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztJQUFBLFlBQVksQ0FBQzs7O0lBSWIseURBQTZEO0lBRTdELElBQUksVUFBVSxHQUFHLENBQUMsUUFBd0IsRUFBRSxJQUFtQyxFQUFDLEVBQUUsQ0FBQyxtQkFBbUIsUUFBUSxDQUFDLEdBQUksQ0FBQyxJQUFJOzs7Ozs7dUZBTWpDLElBQUksQ0FBQyxLQUFLOzs7OztFQUsvRixDQUFBO0lBRUYsU0FBZ0Isb0JBQW9CLENBQUMsT0FBb0IsRUFBRSxJQUFtQjtRQUMxRSxJQUFJLFFBQVEsR0FBRyxJQUFBLDZCQUFVLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDdkMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFDdEIsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFzQixRQUFRLEVBQUUsT0FBTyxFQUFRLFFBQVEsRUFBQyxLQUFLLEVBQUssT0FBTyxFQUFDLEtBQUssRUFBQyxFQUNoRyxFQUFDLElBQUksRUFBQyxpQkFBaUIsRUFBZSxRQUFRLEVBQUUsTUFBTSxFQUFTLFFBQVEsRUFBQyxLQUFLLEVBQUssT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUMsZ0JBQWdCLEVBQUMsRUFDN0gsRUFBQyxJQUFJLEVBQUMsb0JBQW9CLEVBQVksUUFBUSxFQUFFLE1BQU0sRUFBUyxRQUFRLEVBQUMsS0FBSyxFQUFLLE9BQU8sRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLG1CQUFtQixFQUFDO1FBQ2hJLGtJQUFrSTtRQUNsSSxFQUFDLElBQUksRUFBQyxzQkFBc0IsRUFBVSxRQUFRLEVBQUUsU0FBUyxF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QUMsT0FBTyxDQUFDLENBQUM7UUFDckMsUUFBUSxDQUFDLEdBQUksQ0FBQyxJQUFJLEdBQUMsVUFBVSxDQUFDLFVBQVUsRUFBQyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFWRCxnREFVQztJQUVELFNBQWdCLHlCQUF5QixDQUFDLE9BQW9CO1FBQzFELE9BQU8sb0JBQW9CLENBQUMsT0FBTyxFQUFFLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRkQsOERBRUM7SUFFRCxTQUFnQix5QkFBeUIsQ0FBQyxPQUFvQjtRQUMxRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLGFBQWEsRUFBQyxDQUFDLENBQUE7SUFDMUUsQ0FBQztJQUZELDhEQUVDO0lBRUQsU0FBZ0IseUJBQXlCLENBQUMsT0FBb0I7UUFDMUQsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxZQUFZLEVBQUMsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFGRCw4REFFQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IHtUYWJsZURlZmluaXRpb24sIFRhYmxlQ29udGV4dCwgRmllbGREZWZpbml0aW9ufSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuXHJcbmltcG9ydCB7dGFyZWFzX3RlbSwgT3B0c1RhcmVhc1RlbX0gZnJvbSBcIi4vdGFibGUtdGFyZWFzX3RlbVwiO1xyXG5cclxudmFyIGdldFNxbEZyb20gPSAodGFibGVEZWY6VGFibGVEZWZpbml0aW9uLCBvcHRzOntkZXNkZTonaW5ncmVzYSd8J3JlY2VwY2lvbmEnfSk9PiBgKHNlbGVjdCAqIGZyb20gKCR7dGFibGVEZWYuc3FsIS5mcm9tfSkgYXV4XHJcbiwgbGF0ZXJhbCAoXHJcbiAgICBzZWxlY3QganNvbmJfYWdnKHouKikgYXMgYWNjaW9uZXNcclxuICAgICAgICBmcm9tIChcclxuICAgICAgICAgICAgc2VsZWN0IGVhLiosIGFjLnBhdGhfaWNvbm9fc3ZnLCBhYy5kZXNhY3RpdmFfYm90b24sIGFjLmNvbmZpcm1hXHJcbiAgICAgICAgICAgICAgICBmcm9tIGVzdGFkb3NfYWNjaW9uZXMgZWEgam9pbiBhY2Npb25lcyBhYyB1c2luZyAob3BlcmF0aXZvLCBlYWNjaW9uKVxyXG4gICAgICAgICAgICAgICAgd2hlcmUgZWEub3BlcmF0aXZvID0gYXV4Lm9wZXJhdGl2byBhbmQgZWEuZXN0YWRvID0gYXV4LmVzdGFkbyBhbmQgYWMuJHtvcHRzLmRlc2RlfVxyXG4gICAgICAgICAgICAgICAgYW5kIGFjY2lvbl9jdW1wbGVfY29uZGljaW9uKGF1eC5vcGVyYXRpdm8sIGVhLmVzdGFkbywgYXV4LmVuYywgZWEuZWFjY2lvbiwgZWEuY29uZGljaW9uKVxyXG4gICAgICAgICAgICBvcmRlciBieSBhYy5lYWNjaW9uXHJcbiAgICAgICAgKSB6XHJcbiAgICApIHlcclxuKWBcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX3JlY2VwY2lvbihjb250ZXh0OlRhYmxlQ29udGV4dCwgb3B0cz86T3B0c1RhcmVhc1RlbSk6VGFibGVEZWZpbml0aW9uIHtcclxuICAgIHZhciB0YWJsZURlZiA9IHRhcmVhc190ZW0oY29udGV4dCwgb3B0cyk7XHJcbiAgICB0YWJsZURlZi5uYW1lID0gYHRhcmVhc190ZW1fcmVjZXBjaW9uYDtcclxuICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoNCwwLFxyXG4gICAgICAgIHtuYW1lOlwiYWNjaW9uZXNcIiAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ2pzb25iJyAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOlwiYWNjaW9uZXNfYXZhbmNlXCIgICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UsIGNsaWVudFNpZGU6J2FjY2lvbmVzQXZhbmNlJ30sXHJcbiAgICAgICAge25hbWU6XCJhY2Npb25lc19yZXRyb2Nlc29cIiAgICAgICAgICAsIHR5cGVOYW1lOiAndGV4dCcgICAgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTonYWNjaW9uZXNSZXRyb2Nlc28nfSxcclxuICAgICAgICAvL3tuYW1lOlwiYWNjaW9uZXNfYmxhbnF1ZW9cIiAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UsIGNsaWVudFNpZGU6J2FjY2lvbmVzQmxhbnF1ZW8nfSxcclxuICAgICAgICB7bmFtZTpcInZpc2libGVfZW5fcmVjZXBjaW9uXCIgICAgICAgICwgdHlwZU5hbWU6IFwiYm9vbGVhblwiICAgICwgZWRpdGFibGU6ZmFsc2UgICAsIGluVGFibGU6ZmFsc2UsIHZpc2libGU6ZmFsc2V9LFxyXG4gICAgICAgIHtuYW1lOlwidmlzaWJsZV9lbl9pbmdyZXNvXCIgICAgICAgICAgLCB0eXBlTmFtZTogXCJib29sZWFuXCIgICAgLCBlZGl0YWJsZTpmYWxzZSAgICwgaW5UYWJsZTpmYWxzZSwgdmlzaWJsZTpmYWxzZX0sXHJcbiAgICApO1xyXG4gICAgdGFibGVEZWYuZmllbGRzLmZvckVhY2goKGZpZWxkOkZpZWxkRGVmaW5pdGlvbik9PntcclxuICAgICAgICBpZighZmllbGQudGFibGUpe1xyXG4gICAgICAgICAgICBmaWVsZC50YWJsZT0ndGFyZWFzX3RlbSdcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vdGFibGVEZWYuZmllbGRzLmZvckVhY2goKGZpZWxkOkZpZWxkRGVmaW5pdGlvbik9PmZpZWxkLmVkaXRhYmxlPWZhbHNlKTtcclxuICAgIHZhciBjYW1wb1JlYT10YWJsZURlZi5maWVsZHMuZmluZCgoZmllbGQ6RmllbGREZWZpbml0aW9uKT0+ZmllbGQubmFtZT09J3JlYScpITtcclxuICAgIHZhciBjYW1wb05vcmVhPXRhYmxlRGVmLmZpZWxkcy5maW5kKChmaWVsZDpGaWVsZERlZmluaXRpb24pPT5maWVsZC5uYW1lPT0nbm9yZWEnKSE7XHJcbiAgICB2YXIgY2FtcG9SZXM9dGFibGVEZWYuZmllbGRzLmZpbmQoKGZpZWxkOkZpZWxkRGVmaW5pdGlvbik9PmZpZWxkLm5hbWU9PSdyZXN1bWVuX2VzdGFkbycpITtcclxuICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoOSwwLCBjYW1wb1JlYSxjYW1wb05vcmVhLGNhbXBvUmVzKTtcclxuICAgIHRhYmxlRGVmLmZpZWxkcy5zcGxpY2UoMjQsMyk7XHJcbiAgICB0YWJsZURlZi5wcmltYXJ5S2V5ID0gWydvcGVyYXRpdm8nLCdlbmMnLCd0YXJlYSddO1xyXG4gICAgdGFibGVEZWYuZmlsdGVyQ29sdW1ucz1bXHJcbiAgICAgICAge2NvbHVtbjondmlzaWJsZV9lbl9yZWNlcGNpb24nLCBvcGVyYXRvcjonPScsIHZhbHVlOnRydWV9XHJcbiAgICBdO1xyXG4gICAgdGFibGVEZWYuaGlkZGVuQ29sdW1ucz1bJ3RhcmVhJywnY2FyZ2Fkb19kbScsJ25vdGFzJywgJ2FjY2lvbmVzJywnZmVjaGFfYXNpZ25hY2lvbicsICdlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YSddO1xyXG4gICAgdGFibGVEZWYucmVmcmVzY2FibGUgPSB0cnVlO1xyXG4gICAgdGFibGVEZWYuc3FsIS5pc1RhYmxlID0gZmFsc2U7XHJcbiAgICB0YWJsZURlZi5zcWwhLmZyb209Z2V0U3FsRnJvbSh0YWJsZURlZix7ZGVzZGU6XCJyZWNlcGNpb25hXCJ9KTtcclxuICAgIHRhYmxlRGVmLnNxbCEud2hlcmUgPSBgXCJ0ZW1cIi50YXJlYV9hY3R1YWw9XCJ0YXJlYXNfdGVtXCIudGFyZWFgO1xyXG4gICAgcmV0dXJuIHRhYmxlRGVmXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX2luZ3Jlc28oY29udGV4dDpUYWJsZUNvbnRleHQpOlRhYmxlRGVmaW5pdGlvbiB7XHJcbiAgICBsZXQgdGFibGVEZWYgPSB0YXJlYXNfdGVtX3JlY2VwY2lvbihjb250ZXh0KVxyXG4gICAgdGFibGVEZWYubmFtZSA9IGB0YXJlYXNfdGVtX2luZ3Jlc29gO1xyXG4gICAgdGFibGVEZWYuZmlsdGVyQ29sdW1ucz1bXHJcbiAgICAgICAge2NvbHVtbjondmlzaWJsZV9lbl9pbmdyZXNvJywgb3BlcmF0b3I6Jz0nLCB2YWx1ZTp0cnVlfVxyXG4gICAgXTtcclxuICAgIHRhYmxlRGVmLmZpZWxkcyA9IHRhYmxlRGVmLmZpZWxkcy5maWx0ZXIoKGZpZWxkOkZpZWxkRGVmaW5pdGlvbik9PiFbJ2FicmlyJywgJ2NvbnNpc3RpciddLmluY2x1ZGVzKGZpZWxkLm5hbWUpKTtcclxuICAgIHZhciB0YWJsZURlZlRUID0gdGFyZWFzX3RlbShjb250ZXh0KTtcclxuICAgIHRhYmxlRGVmLnNxbCEuZnJvbT1nZXRTcWxGcm9tKHRhYmxlRGVmVFQse2Rlc2RlOlwiaW5ncmVzYVwifSk7XHJcbiAgICByZXR1cm4gdGFibGVEZWY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0YXJlYXNfdGVtX3JlY2VwY2lvbl9lbmN1KGNvbnRleHQ6VGFibGVDb250ZXh0KTpUYWJsZURlZmluaXRpb24ge1xyXG4gICAgcmV0dXJuIHRhcmVhc190ZW1fcmVjZXBjaW9uKGNvbnRleHQsIHtyb2w6J2VuY3UnLCBuYW1lOidlbmN1ZXN0YWRvcid9KVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdGFyZWFzX3RlbV9yZWNlcGNpb25fcmVjdShjb250ZXh0OlRhYmxlQ29udGV4dCk6VGFibGVEZWZpbml0aW9uIHtcclxuICAgIHJldHVybiB0YXJlYXNfdGVtX3JlY2VwY2lvbihjb250ZXh0LCB7cm9sOidyZWN1JywgbmFtZToncmVjdXBlcmFkb3InfSlcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRhcmVhc190ZW1fcmVjZXBjaW9uX3N1cGUoY29udGV4dDpUYWJsZUNvbnRleHQpOlRhYmxlRGVmaW5pdGlvbiB7XHJcbiAgICByZXR1cm4gdGFyZWFzX3RlbV9yZWNlcGNpb24oY29udGV4dCwge3JvbDonc3VwZScsIG5hbWU6J3N1cGVydmlzb3InfSlcclxufVxyXG4iXX0=
|
package/package.json
CHANGED