dmencu 2.0.20 → 2.0.21

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.
Files changed (59) hide show
  1. package/dist/client/server/table-tem.d.ts +3 -0
  2. package/dist/client/server/table-tem.js +239 -0
  3. package/dist/client/server/types-dmencu.d.ts +48 -0
  4. package/dist/client/server/types-dmencu.js +33 -0
  5. package/dist/client/unlogged/css/bootstrap.min.css +6 -6
  6. package/dist/client/unlogged/tsconfig.json +14 -14
  7. package/dist/server/server/table-barrios.js +1 -1
  8. package/dist/server/server/table-comunas copy.d.ts +2 -0
  9. package/dist/server/server/table-comunas copy.js +28 -0
  10. package/dist/server/server/table-comunas.js +2 -2
  11. package/dist/server/server/table-encuestadores.js +7 -7
  12. package/dist/server/server/table-fracciones.js +1 -1
  13. package/dist/server/server/table-hogares.js +1 -1
  14. package/dist/server/server/table-hogares_sup.js +1 -1
  15. package/dist/server/server/table-manzanas.js +1 -1
  16. package/dist/server/server/table-parametros.js +1 -1
  17. package/dist/server/server/table-personal.js +7 -7
  18. package/dist/server/server/table-personal_rol.js +7 -7
  19. package/dist/server/server/table-personas.js +1 -1
  20. package/dist/server/server/table-personas_sup.js +1 -1
  21. package/dist/server/server/table-radios.js +3 -3
  22. package/dist/server/server/table-recepcionistas.js +1 -1
  23. package/dist/server/server/table-visitas.js +1 -1
  24. package/dist/server/server/table-visitas_sup.js +1 -1
  25. package/dist/server/server/table-viviendas.js +1 -1
  26. package/dist/unlogged/unlogged/css/bootstrap.min.css +6 -6
  27. package/dist/unlogged/unlogged/server/table-tem.d.ts +3 -0
  28. package/dist/unlogged/unlogged/server/table-tem.js +239 -0
  29. package/dist/unlogged/unlogged/server/types-dmencu.d.ts +48 -0
  30. package/dist/unlogged/unlogged/server/types-dmencu.js +33 -0
  31. package/dist/unlogged/unlogged/tsconfig.json +14 -14
  32. package/dist/unlogged/unlogged/unlogged/abrir-formulario.d.ts +13 -0
  33. package/dist/unlogged/unlogged/unlogged/abrir-formulario.js +109 -0
  34. package/dist/unlogged/unlogged/unlogged/adapt.d.ts +0 -0
  35. package/dist/unlogged/unlogged/unlogged/adapt.js +8 -0
  36. package/dist/unlogged/unlogged/unlogged/bypass-formulario.d.ts +202 -0
  37. package/dist/unlogged/unlogged/unlogged/bypass-formulario.js +1100 -0
  38. package/dist/unlogged/unlogged/unlogged/redux-formulario.d.ts +349 -0
  39. package/dist/unlogged/unlogged/unlogged/redux-formulario.js +318 -0
  40. package/dist/unlogged/unlogged/unlogged/render-formulario.d.ts +86 -0
  41. package/dist/unlogged/unlogged/unlogged/render-formulario.js +1692 -0
  42. package/dist/unlogged/unlogged/unlogged/render-general.d.ts +127 -0
  43. package/dist/unlogged/unlogged/unlogged/render-general.js +176 -0
  44. package/dist/unlogged/unlogged/unlogged/tipos.d.ts +486 -0
  45. package/dist/unlogged/unlogged/unlogged/tipos.js +22 -0
  46. package/dist/unlogged/unlogged/unlogged/unlogged.d.ts +1 -0
  47. package/dist/unlogged/unlogged/unlogged/unlogged.js +180 -0
  48. package/install/actualizar-2023-05-14.sql +38 -38
  49. package/install/actualizar_inconvar.sql +28 -28
  50. package/install/agregados_tem.sql +4 -4
  51. package/install/asignar_desasignar_tareas_tem_trg.sql +43 -43
  52. package/install/metadatos/permisos.tab +11 -11
  53. package/install/metadatos/roles.tab +10 -10
  54. package/install/metadatos/roles_permisos.tab +94 -94
  55. package/install/metadatos/tipovar.tab +9 -9
  56. package/install/sincro_tareas_areas_tareas_tem_trg.sql +29 -29
  57. package/install/usuarios_trg.sql +41 -41
  58. package/install/validar_tareas_tem_trg.sql +67 -67
  59. package/package.json +91 -91
@@ -0,0 +1,3 @@
1
+ import { TableDefinition, ContextForDump, FieldDefinition } from "./types-dmencu";
2
+ export declare var getDomicilioFields: () => FieldDefinition[];
3
+ export declare function tem(context: ContextForDump, opts?: any): TableDefinition;
@@ -0,0 +1,239 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "procesamiento", "sql-tools"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getDomicilioFields = void 0;
13
+ exports.tem = tem;
14
+ const procesamiento_1 = require("procesamiento");
15
+ const sqlTools = require("sql-tools");
16
+ var getDomicilioFields = () => [
17
+ { name: 'codcalle', typeName: 'integer', editable: false },
18
+ { name: 'nomcalle', typeName: 'text', editable: false },
19
+ { name: 'nrocatastral', typeName: 'integer', editable: false },
20
+ { name: 'piso', typeName: 'text', editable: false },
21
+ { name: 'departamento', typeName: 'text', editable: false },
22
+ { name: 'habitacion', typeName: 'text', editable: false },
23
+ { name: 'sector', typeName: 'text', editable: false },
24
+ { name: 'edificio', typeName: 'text', editable: false },
25
+ { name: 'entrada', typeName: 'text', editable: false },
26
+ { name: 'barrio', typeName: 'text', editable: false },
27
+ ];
28
+ exports.getDomicilioFields = getDomicilioFields;
29
+ function tem(context, opts) {
30
+ var _a, _b, _c, _d, _e, _f;
31
+ var opts = opts || {};
32
+ var recepcion = opts.recepcion ? '_recepcion' : '';
33
+ var be = context.be;
34
+ var puedeEditarCampo = context.forDump || ((_b = (_a = context.puede) === null || _a === void 0 ? void 0 : _a.campo) === null || _b === void 0 ? void 0 : _b.administrar) || context.user.rol === 'recepcionista';
35
+ var puedeEditarProc = context.forDump || ((_d = (_c = context.puede) === null || _c === void 0 ? void 0 : _c.encuestas) === null || _d === void 0 ? void 0 : _d.procesar);
36
+ var columnasAreasParaLaTem = ['obs_recepcionista', 'verificado_rec', 'recepcionista'];
37
+ var columnasNoRea = [
38
+ { name: 'gru_no_rea', expr: 'grupo' }
39
+ ];
40
+ var columnasSoloTem = [
41
+ 'enc_original', 'json_encuesta', 'json_backup', 'fecha_modif_encuesta', 'fecha_backup',
42
+ 'h4', 'x', 'y', 'fexp'
43
+ ];
44
+ var def = {
45
+ name: `tem${recepcion}`,
46
+ tableName: 'tem',
47
+ muestraAbrirEnTodasLasTareas: true,
48
+ allow: {
49
+ insert: false,
50
+ delete: context.forDump,
51
+ },
52
+ editable: puedeEditarCampo || puedeEditarProc,
53
+ hiddenColumns: [
54
+ 'seleccionado_ant', 'cita', 'notas', 'cluster',
55
+ 'codviviendaparticular', 'casa', 'obsdatosdomicilio', 'obsconjunto', 'reserva', 'rotacion_etoi', 'rotacion_eah',
56
+ 'trimestre', 'procedencia', 'sel_etoi_villa', 'marco', 'semana', 'periodicidad',
57
+ 'cargado_dm', 'estados__permite_editar_encuesta'
58
+ ],
59
+ "fields": [
60
+ { name: 'operativo', typeName: 'text', editable: false, nullable: false, defaultValue: 'etoi211' },
61
+ { name: 'enc', typeName: 'text', editable: false, nullable: false },
62
+ { name: "abrir", typeName: 'text', editable: false, inTable: false, clientSide: 'abrir' },
63
+ { name: "consistir", typeName: 'text', editable: false, inTable: false, clientSide: 'consistir' },
64
+ { name: "cluster", typeName: 'integer', editable: false, isName: true },
65
+ { name: 'tarea_actual', typeName: 'text', editable: false },
66
+ { name: "habilitar", typeName: "text", editable: false, inTable: false, clientSide: 'habilitar' },
67
+ { name: "habilitada", typeName: 'boolean', editable: puedeEditarCampo, nullable: false },
68
+ { name: 'area', typeName: 'integer', editable: false },
69
+ { name: 'zona', typeName: 'text', editable: false },
70
+ { name: 'enc_ant', typeName: 'text', editable: false },
71
+ { name: 'area_ant', typeName: 'integer', editable: false },
72
+ { name: 'seleccionado_ant', typeName: 'text', editable: false },
73
+ { name: 'cita', typeName: 'text', editable: true },
74
+ { name: 'rea', typeName: 'integer', editable: false },
75
+ { name: 'norea', typeName: 'integer', editable: false },
76
+ { name: 'cant_h', typeName: 'integer', editable: false },
77
+ { name: 'cant_p', typeName: 'integer', editable: false },
78
+ { name: 'seleccionado', typeName: 'text', editable: false },
79
+ // {name:'sexo_sel' , typeName:'integer' , editable: false },
80
+ // {name:'edad_sel' , typeName:'integer' , editable: false },
81
+ { name: 'resultado', typeName: 'text', editable: false },
82
+ { name: 'gru_no_rea', typeName: 'text', editable: false, inTable: false },
83
+ { name: 'resumen_estado', typeName: 'text', editable: false },
84
+ { name: 'cargado', typeName: 'boolean', editable: false, inTable: false },
85
+ //{name:'encu_habilitada' , typeName:'boolean' , editable: false , inTable: false },
86
+ //{name:'encu_cargado' , typeName:'boolean' , editable: false , inTable: false },
87
+ { name: 'encuestador', typeName: 'text', editable: false, inTable: false },
88
+ { name: 'nombre_enc', typeName: 'text', inTable: false },
89
+ { name: 'apellido_enc', typeName: 'text', inTable: false },
90
+ //{name:'recu_habilitada' , typeName:'boolean' , editable: false , inTable: false },
91
+ //{name:'recu_cargado' , typeName:'boolean' , editable: false , inTable: false },
92
+ { name: 'recuperador', typeName: 'text', editable: false, inTable: false },
93
+ { name: 'nombre_rec', typeName: 'text', inTable: false },
94
+ { name: 'apellido_rec', typeName: 'text', inTable: false },
95
+ //{name:'supe_habilitada' , typeName:'boolean' , editable: false , inTable: false },
96
+ //{name:'supe_cargado' , typeName:'boolean' , editable: false , inTable: false },
97
+ { name: 'supervisor', typeName: 'text', editable: false, inTable: false },
98
+ { name: 'nombre_sup', typeName: 'text', inTable: false },
99
+ { name: 'apellido_sup', typeName: 'text', inTable: false },
100
+ { name: 'rea_sup', typeName: 'integer', editable: false },
101
+ { name: 'norea_sup', typeName: 'integer', editable: false },
102
+ { name: 'resumen_estado_sup', typeName: 'text', editable: false },
103
+ { name: 'pre_sorteo', typeName: 'integer', editable: false, visible: false },
104
+ { name: 'supervision_aleatoria', typeName: 'integer', editable: false },
105
+ { name: 'supervision_dirigida', typeName: 'integer', editable: false },
106
+ { name: 'supervision', typeName: 'integer', editable: false },
107
+ { name: 'result_sup', typeName: 'integer', editable: puedeEditarCampo },
108
+ { name: 'fin_campo', typeName: 'text', editable: puedeEditarCampo },
109
+ { name: 'proie', typeName: 'text', editable: puedeEditarCampo || puedeEditarProc },
110
+ { name: 'pase_tabla', typeName: 'text', editable: false },
111
+ ...(0, exports.getDomicilioFields)(),
112
+ //{name: "verificar" , typeName:'boolean', editable:true, inTable:false, clientSide:'verificarCaso'},
113
+ //{name: "finalizar_campo" , typeName:'boolean', editable:true, inTable:false, clientSide:'finalizarCampo'}, //fin_de_campo
114
+ //{name: "procesamiento" , typeName:'boolean', editable:true, inTable:false, clientSide:'pasarAProcesamiento', label: 'pasar a procesamiento'}, //procesamiento
115
+ { name: 'fexp', typeName: 'integer', editable: false },
116
+ { name: 'areaup', typeName: 'text', editable: false },
117
+ { name: 'codpos', typeName: 'integer', editable: false },
118
+ { name: 'dominio', typeName: 'integer', editable: false },
119
+ { name: 'estrato_ing', typeName: 'integer', editable: false },
120
+ { name: 'id_marco', typeName: 'bigint', editable: false },
121
+ { name: 'obs', typeName: 'text', editable: false },
122
+ { name: 'nrocomuna', typeName: 'integer', editable: false },
123
+ { name: 'nrofraccion', typeName: 'integer', editable: false },
124
+ { name: 'nroradio', typeName: 'integer', editable: false },
125
+ { name: 'nromanzana', typeName: 'integer', editable: false },
126
+ { name: 'nrolado', typeName: 'integer', editable: false },
127
+ { name: 'usodomicilio', typeName: 'integer', editable: false },
128
+ { name: 'orden_relevamiento', typeName: 'integer', editable: false },
129
+ { name: 'mapa', typeName: 'integer', editable: false },
130
+ { name: "consistido", typeName: 'timestamp', editable: false, inTable: false },
131
+ { name: 'cargado_dm', typeName: 'text', editable: false, inTable: false },
132
+ { name: 'participacion', typeName: 'integer', editable: false, visible: true },
133
+ { name: 'rotacion', typeName: 'integer', editable: false, visible: true },
134
+ { name: 'clase', typeName: 'text', editable: false, visible: true },
135
+ { name: 'panel', typeName: 'integer', editable: false, visible: true },
136
+ //vacios o poco interesantes
137
+ { name: 'codviviendaparticular', typeName: 'text', editable: false },
138
+ { name: 'casa', typeName: 'text', editable: false },
139
+ { name: 'obsdatosdomicilio', typeName: 'text', editable: false },
140
+ { name: 'obsconjunto', typeName: 'text', editable: false },
141
+ { name: 'reserva', typeName: 'integer', editable: false },
142
+ { name: 'rotacion_etoi', typeName: 'integer', editable: false, visible: false },
143
+ { name: 'rotacion_eah', typeName: 'integer', editable: false, visible: false },
144
+ { name: 'trimestre', typeName: 'integer', editable: false, visible: false },
145
+ { name: 'procedencia', typeName: 'text', editable: false, visible: false },
146
+ { name: 'sel_etoi_villa', typeName: 'integer', editable: false, visible: false },
147
+ { name: 'marco', typeName: 'integer', editable: false, visible: false },
148
+ { name: 'semana', typeName: 'integer', editable: false, visible: false },
149
+ { name: 'periodicidad', typeName: 'text', editable: false, visible: false },
150
+ //solo tem
151
+ { name: 'fecha_modif_encuesta', typeName: "timestamp", editable: false },
152
+ { name: 'json_encuesta', typeName: 'jsonb', editable: false },
153
+ { name: 'fecha_backup', typeName: "timestamp", editable: false },
154
+ { name: "json_backup", typeName: 'jsonb', editable: false, visible: false },
155
+ { name: "token_autogenerado_dm", typeName: 'text', editable: false, visible: false },
156
+ { name: "enc_autogenerado_dm", typeName: 'text', editable: false },
157
+ { name: "enc_autogenerado_dm_capa", typeName: 'text', editable: false },
158
+ { name: "h4", typeName: 'text', editable: false },
159
+ { name: "x", typeName: 'decimal', editable: false },
160
+ { name: "y", typeName: 'decimal', editable: false },
161
+ { name: 'notas', typeName: 'text', editable: false, inTable: false },
162
+ { name: "modificado", typeName: 'timestamp', editable: false },
163
+ { name: "libre", typeName: "boolean", defaultDbValue: "true", visible: false, editable: false },
164
+ { name: "fecha_bloqueo", typeName: "timestamp", visible: false, editable: false }
165
+ //{name:'obs_sup' , typeName:'text' , editable: isSupervisor },
166
+ //{name:'obs_coor' , typeName:'text' , editable: isCoordinador || isSubCoordinador },
167
+ ],
168
+ "primaryKey": ["operativo", "enc"],
169
+ foreignKeys: [
170
+ { references: 'areas', fields: ['operativo', 'area'] },
171
+ {
172
+ references: 'tareas',
173
+ fields: [
174
+ { source: 'operativo', target: 'operativo' },
175
+ { source: 'tarea_actual', target: 'tarea' }
176
+ ],
177
+ alias: 'taract'
178
+ },
179
+ // {references:'usuarios', fields:[{source:'carga_persona', target:'idper'}], displayFields:['apellido','nombre']},
180
+ ],
181
+ softForeignKeys: [
182
+ { references: 'tokens', fields: [{ source: 'cargado_dm', target: 'token' }], displayFields: ['username'], displayAfterFieldName: 'cargado' }
183
+ ],
184
+ "detailTables": [
185
+ { table: "inconsistencias", abr: "I", fields: [{ source: 'operativo', target: 'operativo' }, { source: 'enc', target: 'vivienda' }] },
186
+ { table: "historial_tem", abr: "H", fields: ['operativo', 'enc'] }
187
+ ],
188
+ constraints: [
189
+ { constraintType: 'check', consName: "vresult_sup_ck", expr: "(result_sup between 1 and 9 or result_sup in (11,12,21,22 ) or result_sup between 60 and 68)" },
190
+ { constraintType: 'unique', consName: "autogenerado_dm_uk", fields: ['token_autogenerado_dm', 'enc_autogenerado_dm'] }
191
+ ]
192
+ };
193
+ if (opts.recepcion) {
194
+ def.fields = def.fields.filter(f => !columnasSoloTem.includes(f.name));
195
+ def.hiddenColumns = [...def.hiddenColumns, ...columnasAreasParaLaTem.map(x => `areas__${x}`)];
196
+ def.foreignKeys = (_e = def.foreignKeys) === null || _e === void 0 ? void 0 : _e.map(function (f) { if (f.references == 'areas') {
197
+ f.displayFields = columnasAreasParaLaTem;
198
+ } ; return f; });
199
+ }
200
+ else {
201
+ (_f = def.detailTables) === null || _f === void 0 ? void 0 : _f.unshift({ table: "tareas_tem", abr: "T", fields: ['operativo', 'enc'], label: 'tareas' });
202
+ def.fields = def.fields.filter(f => !columnasNoRea.map(fn => fn.name).includes(f.name));
203
+ }
204
+ ;
205
+ const q = context.be.db.quoteIdent;
206
+ def.sql = {
207
+ isTable: !opts.recepcion, //TODO: resolver como sacarlo del dump
208
+ isReferable: true,
209
+ from: `
210
+ (select
211
+ ${def.fields.filter(f => f.inTable == undefined && !f.clientSide).map(f => 't.' + q(f.name)).join(',')}
212
+ , tt.cargado, tt.cargado_dm
213
+ , tt.etareas->'encu'->>'asignado' as encuestador
214
+ , tt.etareas->'recu'->>'asignado' as recuperador
215
+ , tt.etareas->'supe'->>'asignado' as supervisor
216
+ , null notas
217
+ , aux.consistido
218
+ , usu_enc.nombre as nombre_enc
219
+ , usu_enc.apellido as apellido_enc
220
+ , usu_rec.nombre as nombre_rec
221
+ , usu_rec.apellido as apellido_rec
222
+ , usu_sup.nombre as nombre_sup
223
+ , usu_sup.apellido as apellido_sup
224
+ ${opts.recepcion ? columnasNoRea.map(v => '\n , ' + v.expr + ' as ' + v.name).join('') : ''}
225
+ from tem t left join (
226
+ select tt.operativo, tt.enc, bool_or(cargado) cargado, string_agg(cargado_dm,',') cargado_dm,jsonb_object_agg(tarea,jsonb_build_object('asignado',asignado,'cargado',cargado,'cargado_dm',cargado_dm))etareas
227
+ from tareas_tem tt group by tt.operativo, tt.enc )tt on t.operativo=tt.operativo and t.enc=tt.enc
228
+ left join no_rea y on y.no_rea::integer=t.norea
229
+ left join ${sqlTools.quoteIdent(procesamiento_1.OperativoGenerator.mainTD)} aux on aux.operativo=t.operativo and aux.${sqlTools.quoteIdent(procesamiento_1.OperativoGenerator.mainTDPK)}=t.enc
230
+ left join usuarios usu_enc on usu_enc.idper = tt.etareas->'encu'->>'asignado'
231
+ left join usuarios usu_rec on usu_rec.idper = tt.etareas->'recu'->>'asignado'
232
+ left join usuarios usu_sup on usu_sup.idper = tt.etareas->'supe'->>'asignado'
233
+ )
234
+ `
235
+ };
236
+ return def;
237
+ }
238
+ });
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci90YWJsZS10ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFvQmIsa0JBNk1LO0lBOU5MLGlEQUFrRDtJQUNsRCxzQ0FBc0M7SUFHL0IsSUFBSSxrQkFBa0IsR0FBRyxHQUFxQixFQUFFLENBQUM7UUFDcEQsRUFBQyxJQUFJLEVBQUMsVUFBVSxFQUFlLFFBQVEsRUFBQyxTQUFTLEVBQUcsUUFBUSxFQUFFLEtBQUssRUFBRztRQUN0RSxFQUFDLElBQUksRUFBQyxVQUFVLEVBQWUsUUFBUSxFQUFDLE1BQU0sRUFBTSxRQUFRLEVBQUUsS0FBSyxFQUFHO1FBQ3RFLEVBQUMsSUFBSSxFQUFDLGNBQWMsRUFBVyxRQUFRLEVBQUMsU0FBUyxFQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUc7UUFDdEUsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFtQixRQUFRLEVBQUMsTUFBTSxFQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUc7UUFDdEUsRUFBQyxJQUFJLEVBQUMsY0FBYyxFQUFXLFFBQVEsRUFBQyxNQUFNLEVBQU0sUUFBUSxFQUFFLEtBQUssRUFBRztRQUN0RSxFQUFDLElBQUksRUFBQyxZQUFZLEVBQWEsUUFBUSxFQUFDLE1BQU0sRUFBTSxRQUFRLEVBQUUsS0FBSyxFQUFHO1FBQ3RFLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBaUIsUUFBUSxFQUFDLE1BQU0sRUFBTSxRQUFRLEVBQUUsS0FBSyxFQUFHO1FBQ3RFLEVBQUMsSUFBSSxFQUFDLFVBQVUsRUFBZSxRQUFRLEVBQUMsTUFBTSxFQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUc7UUFDdEUsRUFBQyxJQUFJLEVBQUMsU0FBUyxFQUFnQixRQUFRLEVBQUMsTUFBTSxFQUFNLFFBQVEsRUFBRSxLQUFLLEVBQUc7UUFDdEUsRUFBQyxJQUFJLEVBQUMsUUFBUSxFQUFpQixR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LENBQUMsR0FBRyxHQUFFO1lBQ0QsT0FBTyxFQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQ0FBc0M7WUFDL0QsV0FBVyxFQUFDLElBQUk7WUFDaEIsSUFBSSxFQUFDOztzQkFFSyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsQ0FBQyxPQUFPLElBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLElBQUksR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzs7Ozs7Ozs7Ozs7OztzQkFhNUYsSUFBSSxDQUFDLFNBQVMsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLFdBQVcsR0FBRSxDQUFDLENBQUMsSUFBSSxHQUFFLE1BQU0sR0FBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQSxFQUFFOzs7Ozt3Q0FLcEUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxrQ0FBa0IsQ0FBQyxNQUFNLENBQUMsNkNBQTZDLFFBQVEsQ0FBQyxVQUFVLENBQUMsa0NBQWtCLENBQUMsUUFBUSxDQUFDOzs7OzthQUt0SztTQUNKLENBQUM7UUFDRixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7VGFibGVEZWZpbml0aW9uLCBDb250ZXh0Rm9yRHVtcCwgRmllbGREZWZpbml0aW9ufSBmcm9tIFwiLi90eXBlcy1kbWVuY3VcIjtcclxuaW1wb3J0IHtPcGVyYXRpdm9HZW5lcmF0b3IgfSBmcm9tIFwicHJvY2VzYW1pZW50b1wiO1xyXG5pbXBvcnQgKiBhcyBzcWxUb29scyBmcm9tICdzcWwtdG9vbHMnO1xyXG5cclxuXHJcbmV4cG9ydCB2YXIgZ2V0RG9taWNpbGlvRmllbGRzID0gKCk6RmllbGREZWZpbml0aW9uW10gPT4gW1xyXG4gICAge25hbWU6J2NvZGNhbGxlJyAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgIHtuYW1lOidub21jYWxsZScgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICB7bmFtZTonbnJvY2F0YXN0cmFsJyAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAge25hbWU6J3Bpc28nICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgIHtuYW1lOidkZXBhcnRhbWVudG8nICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICB7bmFtZTonaGFiaXRhY2lvbicgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAge25hbWU6J3NlY3RvcicgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgIHtuYW1lOidlZGlmaWNpbycgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICB7bmFtZTonZW50cmFkYScgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAge25hbWU6J2JhcnJpbycgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuXVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRlbShjb250ZXh0OkNvbnRleHRGb3JEdW1wLCBvcHRzPzphbnkpOlRhYmxlRGVmaW5pdGlvbiB7XHJcbiAgICB2YXIgb3B0cz1vcHRzfHx7fTtcclxuICAgIHZhciByZWNlcGNpb249b3B0cy5yZWNlcGNpb24/J19yZWNlcGNpb24nOicnO1xyXG4gICAgdmFyIGJlPWNvbnRleHQuYmU7XHJcbiAgICB2YXIgcHVlZGVFZGl0YXJDYW1wbyA9IGNvbnRleHQuZm9yRHVtcCB8fCBjb250ZXh0LnB1ZWRlPy5jYW1wbz8uYWRtaW5pc3RyYXJ8fGNvbnRleHQudXNlci5yb2w9PT0ncmVjZXBjaW9uaXN0YSc7XHJcbiAgICB2YXIgcHVlZGVFZGl0YXJQcm9jID0gY29udGV4dC5mb3JEdW1wIHx8IGNvbnRleHQucHVlZGU/LmVuY3Vlc3Rhcz8ucHJvY2VzYXI7XHJcblxyXG4gICAgdmFyIGNvbHVtbmFzQXJlYXNQYXJhTGFUZW09WydvYnNfcmVjZXBjaW9uaXN0YScsJ3ZlcmlmaWNhZG9fcmVjJywncmVjZXBjaW9uaXN0YSddO1xyXG5cclxuICAgIHZhciBjb2x1bW5hc05vUmVhPVtcclxuICAgICAgICB7bmFtZTonZ3J1X25vX3JlYScsIGV4cHI6ICdncnVwbycgfVxyXG4gICAgXTtcclxuICAgIHZhciBjb2x1bW5hc1NvbG9UZW09W1xyXG4gICAgICAgICAgJ2VuY19vcmlnaW5hbCcgICAsICdqc29uX2VuY3Vlc3RhJyAgICAgICwgJ2pzb25fYmFja3VwJywgJ2ZlY2hhX21vZGlmX2VuY3Vlc3RhJywgJ2ZlY2hhX2JhY2t1cCdcclxuICAgICAgICAsICdoNCcgICAgICAgICAgICAgLCAneCcgICAgICAgLCAneScgICAgICAsICdmZXhwJ1xyXG4gICAgXTtcclxuICAgIHZhciBkZWY6IFRhYmxlRGVmaW5pdGlvbj0ge1xyXG4gICAgICAgIG5hbWU6YHRlbSR7cmVjZXBjaW9ufWAsXHJcbiAgICAgICAgdGFibGVOYW1lOid0ZW0nLFxyXG4gICAgICAgIG11ZXN0cmFBYnJpckVuVG9kYXNMYXNUYXJlYXM6dHJ1ZSxcclxuICAgICAgICBhbGxvdzp7XHJcbiAgICAgICAgICAgIGluc2VydDpmYWxzZSxcclxuICAgICAgICAgICAgZGVsZXRlOmNvbnRleHQuZm9yRHVtcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVkaXRhYmxlOiBwdWVkZUVkaXRhckNhbXBvfHxwdWVkZUVkaXRhclByb2MsXHJcbiAgICAgICAgaGlkZGVuQ29sdW1uczpbXHJcbiAgICAgICAgICAgICdzZWxlY2Npb25hZG9fYW50JywnY2l0YScsJ25vdGFzJywgJ2NsdXN0ZXInLFxyXG4gICAgICAgICAgICAnY29kdml2aWVuZGFwYXJ0aWN1bGFyJywgJ2Nhc2EnLCAnb2JzZGF0b3Nkb21pY2lsaW8nLCAnb2JzY29uanVudG8nLCAncmVzZXJ2YScsICdyb3RhY2lvbl9ldG9pJywgJ3JvdGFjaW9uX2VhaCdcclxuICAgICAgICAgICAgLCAndHJpbWVzdHJlJyAgICwgJ3Byb2NlZGVuY2lhJywgJ3NlbF9ldG9pX3ZpbGxhJyAgICwgJ21hcmNvJyAgICAgICwgJ3NlbWFuYScgLCAncGVyaW9kaWNpZGFkJyBcclxuICAgICAgICAgICAgLCAnY2FyZ2Fkb19kbScsICdlc3RhZG9zX19wZXJtaXRlX2VkaXRhcl9lbmN1ZXN0YSdcclxuICAgICAgICBdLFxyXG4gICAgICAgIFwiZmllbGRzXCI6IFtcclxuICAgICAgICAgICAge25hbWU6J29wZXJhdGl2bycgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgLCBudWxsYWJsZTogZmFsc2UsIGRlZmF1bHRWYWx1ZTogJ2V0b2kyMTEnfSxcclxuICAgICAgICAgICAge25hbWU6J2VuYycgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgLCBudWxsYWJsZTogZmFsc2UgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiBcImFicmlyXCIgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidhYnJpcid9LFxyXG4gICAgICAgICAgICB7bmFtZTpcImNvbnNpc3RpclwiICAgICAgICAgICAgLCB0eXBlTmFtZTogJ3RleHQnICAgLCBlZGl0YWJsZTogZmFsc2UgICwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTonY29uc2lzdGlyJ30sXHJcbiAgICAgICAgICAgIHtuYW1lOiBcImNsdXN0ZXJcIiAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSwgaXNOYW1lOnRydWV9LFxyXG4gICAgICAgICAgICB7bmFtZTondGFyZWFfYWN0dWFsJyAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTpcImhhYmlsaXRhclwiICAgICAgICAgICAgLCB0eXBlTmFtZTogXCJ0ZXh0XCIgICAsIGVkaXRhYmxlOmZhbHNlICAgLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidoYWJpbGl0YXInfSxcclxuICAgICAgICAgICAge25hbWU6XCJoYWJpbGl0YWRhXCIgICAgICAgICAgICwgdHlwZU5hbWU6ICdib29sZWFuJywgZWRpdGFibGU6cHVlZGVFZGl0YXJDYW1wbywgbnVsbGFibGU6IGZhbHNlfSxcclxuICAgICAgICAgICAge25hbWU6J2FyZWEnICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J3pvbmEnICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2VuY19hbnQnICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2FyZWFfYW50JyAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J3NlbGVjY2lvbmFkb19hbnQnICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2NpdGEnICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiB0cnVlICAgfSxcclxuICAgICAgICAgICAge25hbWU6J3JlYScgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J25vcmVhJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2NhbnRfaCcgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2NhbnRfcCcgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J3NlbGVjY2lvbmFkbycgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuLy8gICAgICAgICAgICB7bmFtZTonc2V4b19zZWwnICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4vLyAgICAgICAgICAgIHtuYW1lOidlZGFkX3NlbCcgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidyZXN1bHRhZG8nICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidncnVfbm9fcmVhJyAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgLCBpblRhYmxlOmZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncmVzdW1lbl9lc3RhZG8nICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FyZ2FkbycgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2Jvb2xlYW4nICwgZWRpdGFibGU6IGZhbHNlICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIC8ve25hbWU6J2VuY3VfaGFiaWxpdGFkYScgICAgICAsIHR5cGVOYW1lOidib29sZWFuJyAsIGVkaXRhYmxlOiBmYWxzZSAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICAvL3tuYW1lOidlbmN1X2NhcmdhZG8nICAgICAgICAgLCB0eXBlTmFtZTonYm9vbGVhbicgLCBlZGl0YWJsZTogZmFsc2UgLCBpblRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2VuY3Vlc3RhZG9yJyAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonbm9tYnJlX2VuYycgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidhcGVsbGlkb19lbmMnICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBpblRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAgLy97bmFtZToncmVjdV9oYWJpbGl0YWRhJyAgICAgICwgdHlwZU5hbWU6J2Jvb2xlYW4nICwgZWRpdGFibGU6IGZhbHNlICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIC8ve25hbWU6J3JlY3VfY2FyZ2FkbycgICAgICAgICAsIHR5cGVOYW1lOidib29sZWFuJyAsIGVkaXRhYmxlOiBmYWxzZSAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncmVjdXBlcmFkb3InICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidub21icmVfcmVjJyAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBpblRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2FwZWxsaWRvX3JlYycgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICAvL3tuYW1lOidzdXBlX2hhYmlsaXRhZGEnICAgICAgLCB0eXBlTmFtZTonYm9vbGVhbicgLCBlZGl0YWJsZTogZmFsc2UgLCBpblRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAgLy97bmFtZTonc3VwZV9jYXJnYWRvJyAgICAgICAgICwgdHlwZU5hbWU6J2Jvb2xlYW4nICwgZWRpdGFibGU6IGZhbHNlICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidzdXBlcnZpc29yJyAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgLCBpblRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J25vbWJyZV9zdXAnICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonYXBlbGxpZG9fc3VwJyAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgaW5UYWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidyZWFfc3VwJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlfSxcclxuICAgICAgICAgICAge25hbWU6J25vcmVhX3N1cCcgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZToncmVzdW1lbl9lc3RhZG9fc3VwJyAgICwgdHlwZU5hbWU6J3RleHQnICAgICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHtuYW1lOidwcmVfc29ydGVvJyAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlLCB2aXNpYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHtuYW1lOidzdXBlcnZpc2lvbl9hbGVhdG9yaWEnLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IGZhbHNlfSxcclxuICAgICAgICAgICAge25hbWU6J3N1cGVydmlzaW9uX2RpcmlnaWRhJyAsIHR5cGVOYW1lOidpbnRlZ2VyJyAgICAgLCBlZGl0YWJsZTogZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZTonc3VwZXJ2aXNpb24nICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICAgICAsIGVkaXRhYmxlOiBmYWxzZX0sXHJcbiAgICAgICAgICAgIHtuYW1lOidyZXN1bHRfc3VwJyAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyQ2FtcG99LFxyXG4gICAgICAgICAgICB7bmFtZTonZmluX2NhbXBvJyAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IHB1ZWRlRWRpdGFyQ2FtcG8gIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidwcm9pZScgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogcHVlZGVFZGl0YXJDYW1wb3x8cHVlZGVFZGl0YXJQcm9jICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncGFzZV90YWJsYScgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICAuLi5nZXREb21pY2lsaW9GaWVsZHMoKSxcclxuICAgICAgICAgICAgLy97bmFtZTogXCJ2ZXJpZmljYXJcIiAgICAgICAsIHR5cGVOYW1lOidib29sZWFuJywgZWRpdGFibGU6dHJ1ZSwgaW5UYWJsZTpmYWxzZSwgY2xpZW50U2lkZTondmVyaWZpY2FyQ2Fzbyd9LFxyXG4gICAgICAgICAgICAvL3tuYW1lOiBcImZpbmFsaXphcl9jYW1wb1wiICwgdHlwZU5hbWU6J2Jvb2xlYW4nLCBlZGl0YWJsZTp0cnVlLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidmaW5hbGl6YXJDYW1wbyd9LCAvL2Zpbl9kZV9jYW1wb1xyXG4gICAgICAgICAgICAvL3tuYW1lOiBcInByb2Nlc2FtaWVudG9cIiAgICwgdHlwZU5hbWU6J2Jvb2xlYW4nLCBlZGl0YWJsZTp0cnVlLCBpblRhYmxlOmZhbHNlLCBjbGllbnRTaWRlOidwYXNhckFQcm9jZXNhbWllbnRvJywgbGFiZWw6ICdwYXNhciBhIHByb2Nlc2FtaWVudG8nfSwgLy9wcm9jZXNhbWllbnRvXHJcbiAgICAgICAgICAgIHtuYW1lOidmZXhwJyAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidhcmVhdXAnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidjb2Rwb3MnICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidkb21pbmlvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidlc3RyYXRvX2luZycgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidpZF9tYXJjbycgICAgICAgICAgICAgLCB0eXBlTmFtZTonYmlnaW50JyAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidvYnMnICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiducm9jb211bmEnICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiducm9mcmFjY2lvbicgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiducm9yYWRpbycgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiducm9tYW56YW5hJyAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiducm9sYWRvJyAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOid1c29kb21pY2lsaW8nICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidvcmRlbl9yZWxldmFtaWVudG8nICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidtYXBhJyAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOiBcImNvbnNpc3RpZG9cIiAgICAgICAgICAsIHR5cGVOYW1lOiAndGltZXN0YW1wJywgZWRpdGFibGU6IGZhbHNlICwgaW5UYWJsZTpmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2NhcmdhZG9fZG0nICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAsIGluVGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncGFydGljaXBhY2lvbicgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICAsdmlzaWJsZTogdHJ1ZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J3JvdGFjaW9uJyAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgLHZpc2libGU6IHRydWUgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidjbGFzZScgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgICx2aXNpYmxlOiB0cnVlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncGFuZWwnICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICAsdmlzaWJsZTogdHJ1ZSAgfSxcclxuICAgICAgICAgICAgLy92YWNpb3MgbyBwb2NvIGludGVyZXNhbnRlc1xyXG4gICAgICAgICAgICB7bmFtZTonY29kdml2aWVuZGFwYXJ0aWN1bGFyJywgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonY2FzYScgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonb2JzZGF0b3Nkb21pY2lsaW8nICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonb2JzY29uanVudG8nICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncmVzZXJ2YScgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncm90YWNpb25fZXRvaScgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICAsdmlzaWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidyb3RhY2lvbl9lYWgnICAgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgICx2aXNpYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J3RyaW1lc3RyZScgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgLHZpc2libGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZToncHJvY2VkZW5jaWEnICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICAsdmlzaWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidzZWxfZXRvaV92aWxsYScgICAgICAgLCB0eXBlTmFtZTonaW50ZWdlcicgLCBlZGl0YWJsZTogZmFsc2UgICx2aXNpYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J21hcmNvJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidpbnRlZ2VyJyAsIGVkaXRhYmxlOiBmYWxzZSAgLHZpc2libGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTonc2VtYW5hJyAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J2ludGVnZXInICwgZWRpdGFibGU6IGZhbHNlICAsdmlzaWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidwZXJpb2RpY2lkYWQnICAgICAgICAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgICx2aXNpYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAgLy9zb2xvIHRlbSBcclxuICAgICAgICAgICAge25hbWU6J2ZlY2hhX21vZGlmX2VuY3Vlc3RhJyAsIHR5cGVOYW1lOiBcInRpbWVzdGFtcFwiLCBlZGl0YWJsZTpmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J2pzb25fZW5jdWVzdGEnICAgICAgICAsIHR5cGVOYW1lOidqc29uYicgICAgICwgZWRpdGFibGU6ZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOidmZWNoYV9iYWNrdXAnICAgICAgICAgLCB0eXBlTmFtZTogXCJ0aW1lc3RhbXBcIiwgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZTpcImpzb25fYmFja3VwXCIgICAgICAgICAgLCB0eXBlTmFtZTonanNvbmInICAgLCBlZGl0YWJsZTogZmFsc2UsIHZpc2libGU6ZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZTpcInRva2VuX2F1dG9nZW5lcmFkb19kbVwiLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UsIHZpc2libGU6ZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZTpcImVuY19hdXRvZ2VuZXJhZG9fZG1cIiAgLCB0eXBlTmFtZTondGV4dCcgICAgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOlwiZW5jX2F1dG9nZW5lcmFkb19kbV9jYXBhXCIsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6XCJoNFwiICAgICAgICAgICAgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICAgICwgZWRpdGFibGU6IGZhbHNlICB9LFxyXG4gICAgICAgICAgICB7bmFtZTpcInhcIiAgICAgICAgICAgICAgICAgICAgLCB0eXBlTmFtZTonZGVjaW1hbCcgLCBlZGl0YWJsZTogZmFsc2UgIH0sXHJcbiAgICAgICAgICAgIHtuYW1lOlwieVwiICAgICAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOidkZWNpbWFsJyAsIGVkaXRhYmxlOiBmYWxzZSAgfSxcclxuICAgICAgICAgICAge25hbWU6J25vdGFzJyAgICAgICAgICAgICAgICAsIHR5cGVOYW1lOid0ZXh0JyAgICAsIGVkaXRhYmxlOiBmYWxzZSwgaW5UYWJsZTpmYWxzZX0sXHJcbiAgICAgICAgICAgIHtuYW1lOlwibW9kaWZpY2Fkb1wiICAgICAgICAgICAsIHR5cGVOYW1lOiAndGltZXN0YW1wJywgZWRpdGFibGU6IGZhbHNlfSxcclxuICAgICAgICAgICAge25hbWU6IFwibGlicmVcIiAsIHR5cGVOYW1lOiBcImJvb2xlYW5cIiwgZGVmYXVsdERiVmFsdWU6XCJ0cnVlXCIgICwgdmlzaWJsZTpmYWxzZSwgZWRpdGFibGU6ZmFsc2V9LFxyXG4gICAgICAgICAgICB7bmFtZTogXCJmZWNoYV9ibG9xdWVvXCIsIHR5cGVOYW1lOiBcInRpbWVzdGFtcFwiLCB2aXNpYmxlOmZhbHNlLCBlZGl0YWJsZTpmYWxzZX1cclxuICAgICAgICAgICAgLy97bmFtZTonb2JzX3N1cCcgICAgICAgICwgdHlwZU5hbWU6J3RleHQnICwgZWRpdGFibGU6IGlzU3VwZXJ2aXNvciAgICAgfSxcclxuICAgICAgICAgICAgLy97bmFtZTonb2JzX2Nvb3InICAgICAgICwgdHlwZU5hbWU6J3RleHQnICwgZWRpdGFibGU6IGlzQ29vcmRpbmFkb3IgfHwgaXNTdWJDb29yZGluYWRvciB9LCAgXHJcbiAgICAgICAgXSxcclxuICAgICAgICBcInByaW1hcnlLZXlcIjogWyBcIm9wZXJhdGl2b1wiLCBcImVuY1wiIF0sXHJcbiAgICAgICAgZm9yZWlnbktleXM6W1xyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczonYXJlYXMnICAgLCBmaWVsZHM6WydvcGVyYXRpdm8nLCAnYXJlYSddfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczondGFyZWFzJyAsIFxyXG4gICAgICAgICAgICAgICAgZmllbGRzOltcclxuICAgICAgICAgICAgICAgICAgICB7c291cmNlOidvcGVyYXRpdm8nLCB0YXJnZXQ6J29wZXJhdGl2byd9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtzb3VyY2U6J3RhcmVhX2FjdHVhbCcsIHRhcmdldDondGFyZWEnfVxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIGFsaWFzOid0YXJhY3QnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgLy8gICAge3JlZmVyZW5jZXM6J3VzdWFyaW9zJywgZmllbGRzOlt7c291cmNlOidjYXJnYV9wZXJzb25hJywgdGFyZ2V0OidpZHBlcid9XSwgZGlzcGxheUZpZWxkczpbJ2FwZWxsaWRvJywnbm9tYnJlJ119LFxyXG4gICAgICAgIF0sICAgICAgICBcclxuICAgICAgICBzb2Z0Rm9yZWlnbktleXM6W1xyXG4gICAgICAgICAgICB7cmVmZXJlbmNlczondG9rZW5zJywgZmllbGRzOlt7c291cmNlOidjYXJnYWRvX2RtJywgdGFyZ2V0Oid0b2tlbid9XSwgZGlzcGxheUZpZWxkczpbJ3VzZXJuYW1lJ10sIGRpc3BsYXlBZnRlckZpZWxkTmFtZTonY2FyZ2Fkbyd9XHJcbiAgICAgICAgXSxcclxuICAgICAgICBcImRldGFpbFRhYmxlc1wiOiBbXHJcbiAgICAgICAgICAgIHt0YWJsZTogXCJpbmNvbnNpc3RlbmNpYXNcIiwgYWJyOiBcIklcIiwgZmllbGRzOiBbe3NvdXJjZTonb3BlcmF0aXZvJywgdGFyZ2V0OidvcGVyYXRpdm8nfSx7c291cmNlOidlbmMnLCB0YXJnZXQ6J3ZpdmllbmRhJ31dfSxcclxuICAgICAgICAgICAge3RhYmxlOiBcImhpc3RvcmlhbF90ZW1cIiwgYWJyOiBcIkhcIiwgZmllbGRzOiBbJ29wZXJhdGl2bycsJ2VuYyddfVxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgY29uc3RyYWludHM6W1xyXG4gICAgICAgICAgICB7Y29uc3RyYWludFR5cGU6J2NoZWNrJywgY29uc05hbWU6XCJ2cmVzdWx0X3N1cF9ja1wiLCBleHByOlwiKHJlc3VsdF9zdXAgYmV0d2VlbiAxIGFuZCA5IG9yIHJlc3VsdF9zdXAgaW4gKDExLDEyLDIxLDIyICkgb3IgcmVzdWx0X3N1cCBiZXR3ZWVuIDYwIGFuZCA2OClcIn0sXHJcbiAgICAgICAgICAgIHtjb25zdHJhaW50VHlwZTondW5pcXVlJywgY29uc05hbWU6XCJhdXRvZ2VuZXJhZG9fZG1fdWtcIiwgZmllbGRzOlsndG9rZW5fYXV0b2dlbmVyYWRvX2RtJywnZW5jX2F1dG9nZW5lcmFkb19kbSddfVxyXG4gICAgICAgIF1cclxuICAgIH07XHJcbiAgICBpZiAob3B0cy5yZWNlcGNpb24pIHtcclxuICAgICAgICBkZWYuZmllbGRzPWRlZi5maWVsZHMuZmlsdGVyKGY9PiFjb2x1bW5hc1NvbG9UZW0uaW5jbHVkZXMoZi5uYW1lKSApXHJcbiAgICAgICAgZGVmLmhpZGRlbkNvbHVtbnM9Wy4uLmRlZi5oaWRkZW5Db2x1bW5zLCAuLi5jb2x1bW5hc0FyZWFzUGFyYUxhVGVtLm1hcCh4PT5gYXJlYXNfXyR7eH1gKV1cclxuICAgICAgICBkZWYuZm9yZWlnbktleXM9ZGVmLmZvcmVpZ25LZXlzPy5tYXAoZnVuY3Rpb24gKGYpIHtpZiAoZi5yZWZlcmVuY2VzPT0nYXJlYXMnKXtmLmRpc3BsYXlGaWVsZHM9Y29sdW1uYXNBcmVhc1BhcmFMYVRlbX07IHJldHVybiBmfSkgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlZi5kZXRhaWxUYWJsZXM/LnVuc2hpZnQoe3RhYmxlOiBcInRhcmVhc190ZW1cIiwgYWJyOiBcIlRcIiwgZmllbGRzOiBbJ29wZXJhdGl2bycsICdlbmMnXSwgbGFiZWw6J3RhcmVhcyd9KVxyXG4gICAgICAgIGRlZi5maWVsZHM9ZGVmLmZpZWxkcy5maWx0ZXIoZj0+IWNvbHVtbmFzTm9SZWEubWFwKGZuPT5mbi5uYW1lKS5pbmNsdWRlcyhmLm5hbWUpIClcclxuICAgIH07XHJcbiAgICBjb25zdCBxPWNvbnRleHQuYmUuZGIucXVvdGVJZGVudDtcclxuICAgIGRlZi5zcWw9IHtcclxuICAgICAgICAgICAgaXNUYWJsZTohb3B0cy5yZWNlcGNpb24sIC8vVE9ETzogcmVzb2x2ZXIgY29tbyBzYWNhcmxvIGRlbCBkdW1wXHJcbiAgICAgICAgICAgIGlzUmVmZXJhYmxlOnRydWUsXHJcbiAgICAgICAgICAgIGZyb206YFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICR7ZGVmLmZpZWxkcy5maWx0ZXIoZj0+Zi5pblRhYmxlPT11bmRlZmluZWQgJiYgIWYuY2xpZW50U2lkZSkubWFwKGY9Pid0LicrcShmLm5hbWUpKS5qb2luKCcsJyl9XHJcbiAgICAgICAgICAgICAgICAgICAgLCB0dC5jYXJnYWRvLCB0dC5jYXJnYWRvX2RtXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0dC5ldGFyZWFzLT4nZW5jdSctPj4nYXNpZ25hZG8nIGFzIGVuY3Vlc3RhZG9yXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0dC5ldGFyZWFzLT4ncmVjdSctPj4nYXNpZ25hZG8nIGFzIHJlY3VwZXJhZG9yXHJcbiAgICAgICAgICAgICAgICAgICAgLCB0dC5ldGFyZWFzLT4nc3VwZSctPj4nYXNpZ25hZG8nIGFzIHN1cGVydmlzb3JcclxuICAgICAgICAgICAgICAgICAgICAsIG51bGwgbm90YXNcclxuICAgICAgICAgICAgICAgICAgICAsIGF1eC5jb25zaXN0aWRvXHJcbiAgICAgICAgICAgICAgICAgICAgLCB1c3VfZW5jLm5vbWJyZSBhcyBub21icmVfZW5jXHJcbiAgICAgICAgICAgICAgICAgICAgLCB1c3VfZW5jLmFwZWxsaWRvIGFzIGFwZWxsaWRvX2VuY1xyXG4gICAgICAgICAgICAgICAgICAgICwgdXN1X3JlYy5ub21icmUgYXMgbm9tYnJlX3JlY1xyXG4gICAgICAgICAgICAgICAgICAgICwgdXN1X3JlYy5hcGVsbGlkbyBhcyBhcGVsbGlkb19yZWNcclxuICAgICAgICAgICAgICAgICAgICAsIHVzdV9zdXAubm9tYnJlIGFzIG5vbWJyZV9zdXBcclxuICAgICAgICAgICAgICAgICAgICAsIHVzdV9zdXAuYXBlbGxpZG8gYXMgYXBlbGxpZG9fc3VwXHJcbiAgICAgICAgICAgICAgICAgICAgJHtvcHRzLnJlY2VwY2lvbj8gY29sdW1uYXNOb1JlYS5tYXAodj0+J1xcbiAgICAgLCAnKyB2LmV4cHIgKycgYXMgJysgdi5uYW1lKS5qb2luKCcnKSA6Jyd9XHJcbiAgICAgICAgICAgICAgICAgICAgZnJvbSB0ZW0gdCBsZWZ0IGpvaW4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgdHQub3BlcmF0aXZvLCB0dC5lbmMsIGJvb2xfb3IoY2FyZ2FkbykgY2FyZ2Fkbywgc3RyaW5nX2FnZyhjYXJnYWRvX2RtLCcsJykgY2FyZ2Fkb19kbSxqc29uYl9vYmplY3RfYWdnKHRhcmVhLGpzb25iX2J1aWxkX29iamVjdCgnYXNpZ25hZG8nLGFzaWduYWRvLCdjYXJnYWRvJyxjYXJnYWRvLCdjYXJnYWRvX2RtJyxjYXJnYWRvX2RtKSlldGFyZWFzIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0YXJlYXNfdGVtIHR0IGdyb3VwIGJ5IHR0Lm9wZXJhdGl2bywgdHQuZW5jICApdHQgb24gdC5vcGVyYXRpdm89dHQub3BlcmF0aXZvIGFuZCB0LmVuYz10dC5lbmNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiBub19yZWEgeSBvbiB5Lm5vX3JlYTo6aW50ZWdlcj10Lm5vcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gJHtzcWxUb29scy5xdW90ZUlkZW50KE9wZXJhdGl2b0dlbmVyYXRvci5tYWluVEQpfSBhdXggb24gYXV4Lm9wZXJhdGl2bz10Lm9wZXJhdGl2byBhbmQgYXV4LiR7c3FsVG9vbHMucXVvdGVJZGVudChPcGVyYXRpdm9HZW5lcmF0b3IubWFpblREUEspfT10LmVuYyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgam9pbiB1c3VhcmlvcyB1c3VfZW5jIG9uIHVzdV9lbmMuaWRwZXIgPSB0dC5ldGFyZWFzLT4nZW5jdSctPj4nYXNpZ25hZG8nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IGpvaW4gdXN1YXJpb3MgdXN1X3JlYyBvbiB1c3VfcmVjLmlkcGVyID0gdHQuZXRhcmVhcy0+J3JlY3UnLT4+J2FzaWduYWRvJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCBqb2luIHVzdWFyaW9zIHVzdV9zdXAgb24gdXN1X3N1cC5pZHBlciA9IHR0LmV0YXJlYXMtPidzdXBlJy0+Pidhc2lnbmFkbydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYCAgICAgXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gZGVmO1xyXG4gICAgfVxyXG4gICAgIl19
@@ -0,0 +1,48 @@
1
+ import * as bePlus from "backend-plus";
2
+ export * from 'procesamiento';
3
+ export { emergeAppMetaEnc, emergeAppRelEnc } from 'meta-enc';
4
+ export * from './table-tem';
5
+ export type Puede = {
6
+ encuestas: {
7
+ relevar: boolean;
8
+ justificar: boolean;
9
+ procesar: boolean;
10
+ };
11
+ casilleros_texto: {
12
+ editar: boolean;
13
+ };
14
+ campo: {
15
+ editar: boolean;
16
+ administrar: boolean;
17
+ };
18
+ };
19
+ export type Permisos = {
20
+ puede?: Puede;
21
+ superuser?: boolean;
22
+ };
23
+ declare module "backend-plus" {
24
+ interface ProcedureDef {
25
+ definedIn?: string;
26
+ }
27
+ interface Caches {
28
+ tableContent: Record<string, any>;
29
+ metaEncIncluirCasillerosSaltoREL: boolean;
30
+ timestampEstructura: number;
31
+ permisosRol: Permisos;
32
+ permisosRolSoloTrue: Permisos;
33
+ permisosSuperuser: Puede;
34
+ permisosParaNadie: Puede;
35
+ }
36
+ interface Context {
37
+ puede?: Puede;
38
+ superuser?: true;
39
+ }
40
+ interface OptsClientPage {
41
+ offlineFile: boolean;
42
+ }
43
+ interface ClientSetup {
44
+ idper: string | undefined;
45
+ }
46
+ }
47
+ export type MenuInfoBase = bePlus.MenuInfoBase;
48
+ export type SufijosAmbiente = '_test' | '_capa' | '';
@@ -0,0 +1,33 @@
1
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
+ if (k2 === undefined) k2 = k;
3
+ var desc = Object.getOwnPropertyDescriptor(m, k);
4
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
5
+ desc = { enumerable: true, get: function() { return m[k]; } };
6
+ }
7
+ Object.defineProperty(o, k2, desc);
8
+ }) : (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ o[k2] = m[k];
11
+ }));
12
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
13
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
14
+ };
15
+ (function (factory) {
16
+ if (typeof module === "object" && typeof module.exports === "object") {
17
+ var v = factory(require, exports);
18
+ if (v !== undefined) module.exports = v;
19
+ }
20
+ else if (typeof define === "function" && define.amd) {
21
+ define(["require", "exports", "procesamiento", "meta-enc", "./table-tem"], factory);
22
+ }
23
+ })(function (require, exports) {
24
+ "use strict";
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.emergeAppRelEnc = exports.emergeAppMetaEnc = void 0;
27
+ __exportStar(require("procesamiento"), exports); //expose Procesamiento types
28
+ var meta_enc_1 = require("meta-enc"); //expose types only in meta-enc stack
29
+ Object.defineProperty(exports, "emergeAppMetaEnc", { enumerable: true, get: function () { return meta_enc_1.emergeAppMetaEnc; } });
30
+ Object.defineProperty(exports, "emergeAppRelEnc", { enumerable: true, get: function () { return meta_enc_1.emergeAppRelEnc; } });
31
+ __exportStar(require("./table-tem"), exports);
32
+ });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMtZG1lbmN1LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZlci90eXBlcy1kbWVuY3UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSxZQUFZLENBQUM7OztJQUliLGdEQUE4QixDQUFDLDRCQUE0QjtJQUMzRCxxQ0FBMkQsQ0FBQyxxQ0FBcUM7SUFBekYsNEdBQUEsZ0JBQWdCLE9BQUE7SUFBRSwyR0FBQSxlQUFlLE9BQUE7SUFDekMsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgKiBhcyBiZVBsdXMgZnJvbSBcImJhY2tlbmQtcGx1c1wiO1xyXG5cclxuZXhwb3J0ICogZnJvbSAncHJvY2VzYW1pZW50byc7IC8vZXhwb3NlIFByb2Nlc2FtaWVudG8gdHlwZXNcclxuZXhwb3J0IHtlbWVyZ2VBcHBNZXRhRW5jLCBlbWVyZ2VBcHBSZWxFbmN9IGZyb20gJ21ldGEtZW5jJzsgLy9leHBvc2UgdHlwZXMgb25seSBpbiBtZXRhLWVuYyBzdGFja1xyXG5leHBvcnQgKiBmcm9tICcuL3RhYmxlLXRlbSc7XHJcblxyXG5leHBvcnQgdHlwZSBQdWVkZSA9IHtcclxuICAgIGVuY3Vlc3Rhczp7XHJcbiAgICAgICAgcmVsZXZhcjpib29sZWFuLFxyXG4gICAgICAgIGp1c3RpZmljYXI6IGJvb2xlYW4sXHJcbiAgICAgICAgcHJvY2VzYXI6IGJvb2xlYW5cclxuICAgIH0sXHJcbiAgICBjYXNpbGxlcm9zX3RleHRvOntcclxuICAgICAgICBlZGl0YXI6Ym9vbGVhblxyXG4gICAgfVxyXG4gICAgY2FtcG86e1xyXG4gICAgICAgIGVkaXRhcjpib29sZWFuXHJcbiAgICAgICAgYWRtaW5pc3RyYXI6Ym9vbGVhblxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQZXJtaXNvcyA9IHtcclxuICAgIHB1ZWRlPzogUHVlZGVcclxuICAgIHN1cGVydXNlcj86IGJvb2xlYW5cclxufVxyXG5cclxuZGVjbGFyZSBtb2R1bGUgXCJiYWNrZW5kLXBsdXNcIntcclxuICAgIGV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlRGVme1xyXG4gICAgICAgIGRlZmluZWRJbj86c3RyaW5nXHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGludGVyZmFjZSBDYWNoZXN7XHJcbiAgICAgICAgdGFibGVDb250ZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgICAgICAgbWV0YUVuY0luY2x1aXJDYXNpbGxlcm9zU2FsdG9SRUw6IGJvb2xlYW5cclxuICAgICAgICB0aW1lc3RhbXBFc3RydWN0dXJhOiBudW1iZXJcclxuICAgICAgICBwZXJtaXNvc1JvbDogUGVybWlzb3NcclxuICAgICAgICBwZXJtaXNvc1JvbFNvbG9UcnVlOiBQZXJtaXNvc1xyXG4gICAgICAgIHBlcm1pc29zU3VwZXJ1c2VyOiBQdWVkZVxyXG4gICAgICAgIHBlcm1pc29zUGFyYU5hZGllOiBQdWVkZVxyXG5cclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIENvbnRleHR7XHJcbiAgICAgICAgcHVlZGU/OiBQdWVkZVxyXG4gICAgICAgIHN1cGVydXNlcj86IHRydWVcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIE9wdHNDbGllbnRQYWdlIHtcclxuICAgICAgICBvZmZsaW5lRmlsZTogYm9vbGVhbiBcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIENsaWVudFNldHVwIHtcclxuICAgICAgICBpZHBlcjogc3RyaW5nfHVuZGVmaW5lZFxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBNZW51SW5mb0Jhc2UgPSBiZVBsdXMuTWVudUluZm9CYXNlO1xyXG5cclxuZXhwb3J0IHR5cGUgU3VmaWpvc0FtYmllbnRlID0gJ190ZXN0J3wnX2NhcGEnfCcnIl19