dmencu 3.2.11 → 3.2.13
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/client/unlogged/render-formulario.js +206 -164
- package/dist/client/unlogged/render-formulario.tsx +250 -185
- package/dist/client/unlogged/tipos.d.ts +2 -2
- package/dist/client/unlogged/tipos.js +1 -1
- package/dist/server/unlogged/tipos.d.ts +2 -2
- package/dist/server/unlogged/tipos.js +1 -1
- package/dist/unlogged/unlogged/render-formulario.js +206 -164
- package/dist/unlogged/unlogged/render-formulario.tsx +250 -185
- package/dist/unlogged/unlogged/tipos.d.ts +2 -2
- package/dist/unlogged/unlogged/tipos.js +1 -1
- package/package.json +1 -1
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
ModoDM,
|
|
31
31
|
IdComodin,
|
|
32
32
|
IdSemana,
|
|
33
|
+
UnidadAnalisis,
|
|
33
34
|
} from "./tipos";
|
|
34
35
|
import {
|
|
35
36
|
accion_abrir_formulario,
|
|
@@ -109,176 +110,205 @@ registrarCargarMotor(async function cargarEstructuraYDatosEnMemoria() {
|
|
|
109
110
|
|
|
110
111
|
const DELAY_SCROLL_3 = 50;
|
|
111
112
|
|
|
113
|
+
function obtenerPorPath<T = unknown>(objeto: Record<string, any>, path: string): T | null {
|
|
114
|
+
if (!objeto || typeof path !== 'string') return null;
|
|
115
|
+
|
|
116
|
+
const resultado = path.split('.').reduce<any>((acc, clave) => {
|
|
117
|
+
return acc !== null && acc !== undefined ? acc[clave] : null;
|
|
118
|
+
}, objeto);
|
|
119
|
+
|
|
120
|
+
return (resultado ?? null) as T | null;
|
|
121
|
+
}
|
|
122
|
+
|
|
112
123
|
function breakeableText(text: string | null): string | null;
|
|
113
124
|
function breakeableText(text: string | null, diccionario?: { [clave: string]: React.ReactNode }) {
|
|
114
125
|
if (typeof text != "string") return null;
|
|
115
126
|
text = text.replace(/\//g, "/\u2063").replace(/\/\u2063(\w)\b/g, '/$1');
|
|
116
|
-
text = text.replace(/___*/g, (todo) => `[${todo}]`).replace(
|
|
127
|
+
text = text.replace(/___*/g, (todo) => `[${todo}]`).replace(/@(?:#?[\w-]+|\$[tT][eE][mM][^@]*)@/g, (todo) => `[${todo}]`);
|
|
117
128
|
if (!diccionario || true) return text;
|
|
118
129
|
/*
|
|
119
130
|
return <span>{partes.map((parte:string, i:number) => <span style={i%2==1?{textDecoration:"underline"}:{}}> {parte+" "} </span>)}</span>
|
|
120
131
|
*/
|
|
121
132
|
}
|
|
122
133
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
style?: React.CSSProperties,
|
|
127
|
-
forPk?: ForPk,
|
|
128
|
-
}) {
|
|
129
|
-
const { text, className, style } = props;
|
|
134
|
+
// ==========================================
|
|
135
|
+
// 1. HELPERS PUROS Y EXPRESIONES REGULARES
|
|
136
|
+
// ==========================================
|
|
130
137
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (typeof text !== "string" || !text.includes('@')) return [];
|
|
134
|
-
const matches = text.match(/@([a-zA-Z0-9_-]+)@/g);
|
|
135
|
-
if (!matches) return [];
|
|
136
|
-
const ids: IdComodin[] = [];
|
|
137
|
-
for (let i = 0; i < matches.length; i++) {
|
|
138
|
-
const m = matches[i];
|
|
139
|
-
if (!m.startsWith('@#')) {
|
|
140
|
-
const id = m.slice(1, -1) as IdComodin;
|
|
141
|
-
if (ids.indexOf(id) === -1) {
|
|
142
|
-
ids.push(id);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return ids;
|
|
147
|
-
}, [text]);
|
|
138
|
+
// RegEx principal para dividir el texto conservando los tokens delimitados por @...@
|
|
139
|
+
const REGEX_SPLIT_COMODINES = /(@(?:#?[\w-]+|\$[tT][eE][mM][^@]*)@)/g;
|
|
148
140
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
const resultado: { [id: string]: string } = {};
|
|
154
|
-
for (let i = 0; i < comodinesInteres.length; i++) {
|
|
155
|
-
const id = comodinesInteres[i];
|
|
156
|
-
resultado[id] = storeComodines[id] ?? comodinesIniciales[id] ?? '';
|
|
157
|
-
}
|
|
158
|
-
return resultado;
|
|
159
|
-
}, shallowEqual);
|
|
141
|
+
// Sub-RegExs para identificar el tipo de comodín
|
|
142
|
+
const IS_TEM_PATTERN = /^@\$(tem[^@]*)@$/i;
|
|
143
|
+
const IS_VARIABLE_HASH_PATTERN = /^@#([\w-]+)@$/;
|
|
144
|
+
const IS_COMODIN_REDUX_PATTERN = /^@([\w-]+)@$/;
|
|
160
145
|
|
|
161
|
-
|
|
162
|
-
|
|
146
|
+
/** Extrae nombres de comodines estándar (@comodin@) */
|
|
147
|
+
function extraerComodinesRedux(text: string): IdComodin[] {
|
|
148
|
+
if (!text || !text.includes('@')) return [];
|
|
149
|
+
const matches = text.match(/@([a-zA-Z0-9_-]+)@/g);
|
|
150
|
+
if (!matches) return [];
|
|
163
151
|
|
|
164
|
-
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (typeof text !== "string") return [];
|
|
170
|
-
const matches = text.match(/@#([^@]+)@/g);
|
|
171
|
-
if (!matches) return [];
|
|
172
|
-
const vars: string[] = [];
|
|
173
|
-
for (let i = 0; i < matches.length; i++) {
|
|
174
|
-
const m = matches[i];
|
|
175
|
-
const match = m.match(/^@#([\w-]+)@$/);
|
|
176
|
-
if (match) {
|
|
177
|
-
const varName = match[1];
|
|
178
|
-
if (vars.indexOf(varName) === -1) {
|
|
179
|
-
vars.push(varName);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
152
|
+
const ids: IdComodin[] = [];
|
|
153
|
+
for (const m of matches) {
|
|
154
|
+
if (!m.startsWith('@#') && !m.startsWith('@$')) {
|
|
155
|
+
const id = m.slice(1, -1) as IdComodin;
|
|
156
|
+
if (!ids.includes(id)) ids.push(id);
|
|
182
157
|
}
|
|
183
|
-
|
|
184
|
-
|
|
158
|
+
}
|
|
159
|
+
return ids;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** Extrae nombres de variables dinámicas (@#variable@) */
|
|
163
|
+
function extraerVariablesInteres(text: string): string[] {
|
|
164
|
+
if (!text) return [];
|
|
165
|
+
const matches = text.match(/@#([\w-]+)@/g);
|
|
166
|
+
if (!matches) return [];
|
|
185
167
|
|
|
168
|
+
const vars: string[] = [];
|
|
169
|
+
for (const m of matches) {
|
|
170
|
+
const varName = m.slice(2, -1); // Remueve '@#' y '@'
|
|
171
|
+
if (!vars.includes(varName)) vars.push(varName);
|
|
172
|
+
}
|
|
173
|
+
return vars;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// ==========================================
|
|
177
|
+
// 2. HOOK PERSONALIZADO PARA BINDING DINÁMICO
|
|
178
|
+
// ==========================================
|
|
179
|
+
|
|
180
|
+
function useVariablesEscuchadas(text: string, forPk: ForPk) {
|
|
181
|
+
const variablesInteres = useMemo(() => extraerVariablesInteres(text), [text]);
|
|
182
|
+
|
|
183
|
+
// Estado local con los valores reales para que React solo re-renderice si el string CAMBIA
|
|
184
|
+
const [mapaVariables, setMapaVariables] = useState<Record<string, string>>(() =>
|
|
185
|
+
obtenerValoresActuales(variablesInteres, forPk)
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
// Sincronizamos cuando cambian variablesInteres o forPk
|
|
186
189
|
useEffect(() => {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const listener: ListenerCambioVariable = (varModificada, nuevoValor, _forPk, respuestasAumentadas) => {
|
|
190
|
-
let huboCambio = false;
|
|
191
|
-
const nuevosValores: { [k: string]: any } = {};
|
|
192
|
-
|
|
193
|
-
if (respuestasAumentadas) {
|
|
194
|
-
for (let i = 0; i < variablesInteres.length; i++) {
|
|
195
|
-
const varName = variablesInteres[i];
|
|
196
|
-
if (varName in respuestasAumentadas) {
|
|
197
|
-
const val = respuestasAumentadas[varName as IdVariable];
|
|
198
|
-
nuevosValores[varName] = (val != null && val !== '') ? String(val) : '........';
|
|
199
|
-
huboCambio = true;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
if (!huboCambio && variablesInteres.indexOf(varModificada) !== -1) {
|
|
204
|
-
nuevosValores[varModificada] = (nuevoValor != null && nuevoValor !== '') ? String(nuevoValor) : '........';
|
|
205
|
-
huboCambio = true;
|
|
206
|
-
}
|
|
190
|
+
setMapaVariables(obtenerValoresActuales(variablesInteres, forPk));
|
|
191
|
+
}, [variablesInteres, forPk]);
|
|
207
192
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
193
|
+
useEffect(() => {
|
|
194
|
+
if (variablesInteres.length === 0 || !forPk) return;
|
|
195
|
+
|
|
196
|
+
const listener: ListenerCambioVariable = (varModificada, _nuevoValor, _forPk, respuestasAumentadas) => {
|
|
197
|
+
const impactaVariable = variablesInteres.includes(varModificada);
|
|
198
|
+
const impactaRespuestas = respuestasAumentadas && variablesInteres.some(v => v in respuestasAumentadas);
|
|
199
|
+
|
|
200
|
+
if (!impactaVariable && !impactaRespuestas) return;
|
|
201
|
+
|
|
202
|
+
// Leemos el nuevo estado de la fuente de verdad
|
|
203
|
+
const nuevosValores = obtenerValoresActuales(variablesInteres, forPk);
|
|
204
|
+
|
|
205
|
+
setMapaVariables(prev => {
|
|
206
|
+
// Comparamos valor por valor si realmente cambió algo visible
|
|
207
|
+
const huboCambio = variablesInteres.some(v => prev[v] !== nuevosValores[v]);
|
|
208
|
+
// Si NO hubo cambio real, devolvemos 'prev' (misma referencia) y React CANCELA el re-render
|
|
209
|
+
return huboCambio ? nuevosValores : prev;
|
|
210
|
+
});
|
|
220
211
|
};
|
|
221
212
|
|
|
222
213
|
const desuscribir = suscribirCambioVariable(listener, variablesInteres);
|
|
223
|
-
return () =>
|
|
224
|
-
|
|
225
|
-
};
|
|
226
|
-
}, [text, variablesInteres]);
|
|
214
|
+
return () => desuscribir();
|
|
215
|
+
}, [variablesInteres, forPk]);
|
|
227
216
|
|
|
228
|
-
|
|
217
|
+
// Getter expuesto para mantener tu sintaxis
|
|
218
|
+
return (nombreVar: string): string => {
|
|
219
|
+
return mapaVariables[nombreVar] ?? '........';
|
|
220
|
+
};
|
|
221
|
+
}
|
|
229
222
|
|
|
230
|
-
|
|
231
|
-
|
|
223
|
+
function obtenerValoresActuales(variables: string[], forPk: ForPk): Record<string, string> {
|
|
224
|
+
const mapa: Record<string, string> = {};
|
|
225
|
+
if (variables.length === 0) return mapa;
|
|
226
|
+
const { respuestasAumentadas } = respuestasForPk(forPk, true);
|
|
227
|
+
for (const v of variables) {
|
|
228
|
+
const val = respuestasAumentadas?.[v as IdVariable];
|
|
229
|
+
mapa[v] = String(val ?? '........');
|
|
230
|
+
}
|
|
231
|
+
return mapa;
|
|
232
|
+
}
|
|
232
233
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
234
|
+
export const BreakeableText = React.memo(function BreakeableText(props: {
|
|
235
|
+
text: string | null | undefined;
|
|
236
|
+
className?: string;
|
|
237
|
+
style?: React.CSSProperties;
|
|
238
|
+
forPk?: ForPk;
|
|
239
|
+
}) {
|
|
240
|
+
const { text, className, style } = props;
|
|
239
241
|
|
|
240
|
-
|
|
242
|
+
// 1. Early Return
|
|
243
|
+
if (typeof text !== 'string') return null;
|
|
241
244
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
valor = valoresVariables[id];
|
|
246
|
-
}
|
|
247
|
-
}
|
|
245
|
+
// 2. Extracción de dependencias Redux (después de la guarda)
|
|
246
|
+
const reduxForPk = useSelector((state: CasoState) => state?.opciones?.forPk);
|
|
247
|
+
const forPk = props.forPk || reduxForPk;
|
|
248
248
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
try {
|
|
252
|
-
const { respuestasAumentadas } = respuestasForPk(forPk, true);
|
|
253
|
-
const val = respuestasAumentadas?.[id as IdVariable];
|
|
254
|
-
if (val != null && val !== '') {
|
|
255
|
-
valor = String(val);
|
|
256
|
-
}
|
|
257
|
-
} catch {
|
|
258
|
-
// Ignorar error si no se pudo acceder a respuestas
|
|
259
|
-
}
|
|
260
|
-
}
|
|
249
|
+
// --- A. Suscripción Redux (Comodines) ---
|
|
250
|
+
const comodinesInteres = useMemo(() => extraerComodinesRedux(text), [text]);
|
|
261
251
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
252
|
+
const comodinesValores = useSelector((state: CasoState) => {
|
|
253
|
+
if (comodinesInteres.length === 0) return null;
|
|
254
|
+
const storeComodines = state?.opciones?.comodines || comodinesIniciales;
|
|
255
|
+
const resultado: Record<string, string> = {};
|
|
256
|
+
for (const id of comodinesInteres) {
|
|
257
|
+
resultado[id] = storeComodines[id] ?? comodinesIniciales[id] ?? '';
|
|
258
|
+
}
|
|
259
|
+
return resultado;
|
|
260
|
+
}, shallowEqual);
|
|
266
261
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
262
|
+
// --- B. Suscripción a variables con # (Le pasamos forPk seguro, opcional) ---
|
|
263
|
+
const obtenerValorVariable = useVariablesEscuchadas(text, forPk!);
|
|
264
|
+
|
|
265
|
+
// --- C. Preprocesamiento sintáctico ---
|
|
266
|
+
const procesado = text
|
|
267
|
+
.replace(/\//g, '/\u2063')
|
|
268
|
+
.replace(/\/\u2063(\w)\b/g, '/$1')
|
|
269
|
+
.replace(/___*/g, todo => `[${todo}]`);
|
|
270
|
+
|
|
271
|
+
// --- D. Tokenizado y Resolución ---
|
|
272
|
+
const partes = procesado.split(REGEX_SPLIT_COMODINES);
|
|
273
|
+
|
|
274
|
+
const contenido = partes.map((parte, index) => {
|
|
275
|
+
// CASO 1: Comodín tipo TEM (@$tem.path.al.campo@)
|
|
276
|
+
const matchTem = parte.match(IS_TEM_PATTERN);
|
|
277
|
+
if (matchTem) {
|
|
278
|
+
const infoHdr = getDatosByPass().informacionHdr;
|
|
279
|
+
const estructura = getEstructura();
|
|
280
|
+
const idEnc = forPk?.[estructura.pkAgregadaUaPpal];
|
|
281
|
+
const path = matchTem[1];
|
|
282
|
+
const valor = idEnc ? obtenerPorPath(infoHdr[idEnc], path) : null;
|
|
283
|
+
|
|
284
|
+
return valor ?? (
|
|
277
285
|
<span key={index} style={{ color: 'red' }}>
|
|
278
286
|
{`No se encontró ${parte}`}
|
|
279
287
|
</span>
|
|
280
288
|
);
|
|
281
289
|
}
|
|
290
|
+
|
|
291
|
+
// CASO 2: Variable dinámica con Hash (@#variable@)
|
|
292
|
+
const matchVarHash = parte.match(IS_VARIABLE_HASH_PATTERN);
|
|
293
|
+
if (matchVarHash) {
|
|
294
|
+
return obtenerValorVariable(matchVarHash[1]);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// CASO 3: Comodín global de Redux (@comodin@)
|
|
298
|
+
const matchComodin = parte.match(IS_COMODIN_REDUX_PATTERN);
|
|
299
|
+
if (matchComodin) {
|
|
300
|
+
const nombreComodin = matchComodin[1];
|
|
301
|
+
const valor = comodinesValores
|
|
302
|
+
? comodinesValores[nombreComodin]
|
|
303
|
+
: comodinesIniciales[nombreComodin as IdComodin];
|
|
304
|
+
|
|
305
|
+
return valor ??
|
|
306
|
+
<span key={index} style={{ color: 'red' }}>
|
|
307
|
+
{`No se encontró ${parte}`}
|
|
308
|
+
</span>
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
// CASO 4: Texto plano
|
|
282
312
|
return parte;
|
|
283
313
|
});
|
|
284
314
|
|
|
@@ -1194,55 +1224,90 @@ function botonesDelFormulario(r: Respuestas, unidad_analisis: IdUnidadAnalisis,
|
|
|
1194
1224
|
var formsVivienda = getFormulariosForValuePkRaiz(forPkPadre[estructura.pkAgregadaUaPpal]);
|
|
1195
1225
|
var uaDef = estructura.unidades_analisis[unidad_analisis];
|
|
1196
1226
|
var arrayEstructuraFormularios = (likeAr(estructura.formularios)).array();
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1227
|
+
|
|
1228
|
+
var casillerosPadre = estructura.formularios[forPkPadre.formulario]?.casilleros?.casilleros || [];
|
|
1229
|
+
var ordenFormulariosBfPadre: IdFormulario[] = [];
|
|
1230
|
+
for (var casillero of casillerosPadre) {
|
|
1231
|
+
if (casillero.tipoc == 'BF' && casillero.salto) {
|
|
1232
|
+
var formHijo = (casillero.salto.startsWith('F:') ? casillero.salto : 'F:' + casillero.salto) as IdFormulario;
|
|
1233
|
+
if (!ordenFormulariosBfPadre.includes(formHijo)) {
|
|
1234
|
+
ordenFormulariosBfPadre.push(formHijo);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
var obtenerPosicionFormulario = (formulario: IdFormulario): number => {
|
|
1240
|
+
var idxBf = ordenFormulariosBfPadre.indexOf(formulario);
|
|
1241
|
+
if (idxBf >= 0) {
|
|
1242
|
+
return idxBf;
|
|
1243
|
+
}
|
|
1244
|
+
var idxEstructura = arrayEstructuraFormularios.findIndex((infoFormulario) => infoFormulario.casilleros.id_casillero == formulario);
|
|
1245
|
+
return idxEstructura >= 0 ? 1000 + idxEstructura : 9999;
|
|
1246
|
+
};
|
|
1247
|
+
|
|
1248
|
+
var obtenerPosicionFormularioUa = (ua: UnidadAnalisis): number => {
|
|
1249
|
+
var posiciones = arrayEstructuraFormularios
|
|
1250
|
+
.filter((infoFormulario) => infoFormulario.casilleros.unidad_analisis == ua.unidad_analisis)
|
|
1251
|
+
.map((infoFormulario) => obtenerPosicionFormulario(infoFormulario.casilleros.id_casillero as IdFormulario));
|
|
1252
|
+
return posiciones.length > 0 ? Math.min(...posiciones) : 9999;
|
|
1253
|
+
};
|
|
1254
|
+
|
|
1255
|
+
var hijasFiltradasYOrdenadas = (likeAr(uaDef.hijas))
|
|
1256
|
+
.array()
|
|
1257
|
+
.filter((uaHija): uaHija is UnidadAnalisis =>
|
|
1258
|
+
uaHija != null &&
|
|
1259
|
+
arrayEstructuraFormularios.some((infoFormulario) =>
|
|
1260
|
+
infoFormulario.casilleros.unidad_analisis == uaHija.unidad_analisis && formsVivienda.includes(infoFormulario.casilleros.id_casillero as IdFormulario)
|
|
1261
|
+
)
|
|
1262
|
+
)
|
|
1263
|
+
.sort((a, b) => obtenerPosicionFormularioUa(a) - obtenerPosicionFormularioUa(b));
|
|
1264
|
+
|
|
1265
|
+
var x = hijasFiltradasYOrdenadas.map(uaHija => (
|
|
1266
|
+
html.div({ class: 'ua-hijas' }, [
|
|
1267
|
+
html.div(uaHija.unidad_analisis),
|
|
1268
|
+
html.div(
|
|
1269
|
+
likeAr(r[uaHija.unidad_analisis] || []).map((respuestasHija, i) => {
|
|
1270
|
+
var num = Number(i) + 1
|
|
1271
|
+
var forPkHijaParcial = { ...forPkPadre, [uaHija.pk_agregada]: num };
|
|
1272
|
+
var configSorteoFormulario = estructura.configSorteo ? estructura.configSorteo[getMainFormForVivienda(forPkPadre[estructura.pkAgregadaUaPpal])] : null
|
|
1273
|
+
var habilitacionBotonFormulario = estructura.habilitacionBotonFormulario;
|
|
1274
|
+
return html.div({ class: 'numerador-ua' }, [
|
|
1275
|
+
html.div({ class: 'botones-ua' }, [
|
|
1276
|
+
html.div({ class: 'numero-ua' }, num.toString()),
|
|
1277
|
+
...likeAr(estructura.formularios)
|
|
1278
|
+
.filter(formDef => formDef.casilleros.unidad_analisis == uaHija.unidad_analisis && formsVivienda.includes(formDef.casilleros.id_casillero as IdFormulario))
|
|
1279
|
+
.array()
|
|
1280
|
+
.sort((a, b) => obtenerPosicionFormulario(a.casilleros.id_casillero as IdFormulario) - obtenerPosicionFormulario(b.casilleros.id_casillero as IdFormulario))
|
|
1281
|
+
.map((infoFormulario) => {
|
|
1282
|
+
var formulario = infoFormulario.casilleros.id_casillero as IdFormulario;
|
|
1283
|
+
var forPk = { ...forPkHijaParcial, formulario };
|
|
1284
|
+
var feedbackForm = feedbackAll[toPlainForPk(forPk)];
|
|
1285
|
+
return feedbackForm ? html.div({}, [
|
|
1286
|
+
// html.button((uaHija!).pk_agregada+" ok: "+(Number(i)+1)),
|
|
1287
|
+
botonFormularioConResumen(
|
|
1288
|
+
{
|
|
1289
|
+
forPk,
|
|
1290
|
+
num,
|
|
1291
|
+
actual: calcularActualBF(configSorteoFormulario, num, null, formulario, r),
|
|
1292
|
+
previo: false,
|
|
1293
|
+
disabled: calcularDisabledBF(configSorteoFormulario, habilitacionBotonFormulario, num, formulario, r)
|
|
1294
|
+
},
|
|
1295
|
+
feedbackForm,
|
|
1296
|
+
r,
|
|
1297
|
+
{ despliegueOculta: false, expresion_habilitar_js: '', nombre: formulario, aclaracion: null, salto: formulario },
|
|
1298
|
+
forPkPadre,
|
|
1299
|
+
"boton-ir-resumen-formulario",
|
|
1300
|
+
estructura.formularios[formulario].casilleros
|
|
1301
|
+
)
|
|
1302
|
+
]) : null
|
|
1303
|
+
}),
|
|
1241
1304
|
])
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1305
|
+
, botonesDelFormulario(respuestasHija, uaHija.unidad_analisis, estructura, forPkHijaParcial, feedbackAll)
|
|
1306
|
+
])
|
|
1307
|
+
}).array().map(x => x == null ? null : x)
|
|
1308
|
+
)
|
|
1309
|
+
])
|
|
1310
|
+
));
|
|
1246
1311
|
return html.div(/*{style:'display:flex; flex-direction:row'},*/x);
|
|
1247
1312
|
}
|
|
1248
1313
|
|
|
@@ -3202,7 +3267,7 @@ function calcularComodines(forPk: ForPk) {
|
|
|
3202
3267
|
const rangoFecha = (desde?: string | null, hasta?: string | null) =>
|
|
3203
3268
|
(desde && hasta) ? `${fechaReferencia(desde)} a ${fechaReferencia(hasta)}` : null;
|
|
3204
3269
|
const semRef = rangoFecha(semanaObj?.semana_referencia_desde, semanaObj?.semana_referencia_hasta);
|
|
3205
|
-
const d30Ref = rangoFecha(semanaObj?.
|
|
3270
|
+
const d30Ref = rangoFecha(semanaObj?.['30dias_referencia_desde'], semanaObj?.['30dias_referencia_hasta']);
|
|
3206
3271
|
const personasArray = Array.isArray(respuestasAumentadas?.['personas' as IdUnidadAnalisis])
|
|
3207
3272
|
? respuestasAumentadas['personas' as IdUnidadAnalisis] as any[] : [];
|
|
3208
3273
|
const buscarPersona = (num?: any) =>
|
|
@@ -307,8 +307,8 @@ export type Semana = {
|
|
|
307
307
|
semana: number;
|
|
308
308
|
semana_referencia_desde?: string | null;
|
|
309
309
|
semana_referencia_hasta?: string | null;
|
|
310
|
-
|
|
311
|
-
|
|
310
|
+
'30dias_referencia_desde'?: string | null;
|
|
311
|
+
'30dias_referencia_hasta'?: string | null;
|
|
312
312
|
mes_referencia?: string | null;
|
|
313
313
|
carga_enc_desde?: string | null;
|
|
314
314
|
carga_enc_hasta?: string | null;
|
|
@@ -18,4 +18,4 @@
|
|
|
18
18
|
exports.iterator = LikeAr.iterator;
|
|
19
19
|
exports.empty = LikeAr.empty;
|
|
20
20
|
});
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUE0aEJiLG9DQUVDO0lBNWhCRCxrQ0FBa0M7SUEwaEJsQyxTQUFnQixZQUFZLENBQUMsS0FBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVVLFFBQUEsUUFBUSxHQUFtRCxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQzFFLFFBQUEsS0FBSyxHQUFrRSxNQUFNLENBQUMsS0FBSyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyZSwgRmVlZGJhY2sgfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJyB8IC8vIGN1YW5kbyBzZWEgcGFyYSB1bmEgc29sYSBwZXN0YcOxYSwgc2UgdXNhIGVuIG1vZG8gZGlyZWN0byxcclxuICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJyB8ICdlYWgyMDIyJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnIHwgJ3YyJyB8ICd2MycgfCAnZXRjLi4uJyB8ICd2ZG9taW5pbycgfCAnJHAwJ1xyXG5leHBvcnQgdHlwZSBJZFByZWd1bnRhID0gJ1AxJyB8ICdQMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMScgfCAnQjInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJyB8ICdGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFVuaWRhZEFuYWxpc2lzID0gJ3ZpdmllbmRhcycgfCAnaG9nYXJlcycgfCAncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJyB8ICdCRjpGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMScgfCAnQ09OUzInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRUZXh0byA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29tb2RpbiA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdTRU1fTlVNJyB8ICdyZXNwczEnIHwgJ3BhcmVudHMxJyB8ICdyZXNwaTEnIHwgJ3BhcmVudGkxJyB8ICduamVmZScgfCAnZnJlYWxpeicgfCAnY2FudGlfaG9nYXJlcydcclxuZXhwb3J0IHR5cGUgSWRGaWx0cm8gPSAnRklMVFJPMScgfCAnRklMVFJPMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENhc2lsbGVybyA9IElkVmFyaWFibGUgfCBJZFByZWd1bnRhIHwgSWRCbG9xdWUgfCBJZEZvcm11bGFyaW8gfCBJZEZpbHRybyB8IElkT3BjaW9uXHJcbmV4cG9ydCB0eXBlIElkRmluID0gJ2Zpbic7IC8vIG5ldmVyIC8vIFRPRE86IHBvZGVyIHBvbmVyICdGSU4nXHJcbmV4cG9ydCB0eXBlIElkRGVzdGlubyA9IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRmluIHwgSWRGaWx0cm9cclxuZXhwb3J0IHR5cGUgVmFsb3IgPSBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xyXG5leHBvcnQgdHlwZSBUaXBvY0Rlc3Rpbm9zID0gJ1AnIHwgJ0NQJyB8ICdCJyB8ICdGSUxUUk8nIHwgJ0JGJ1xyXG5leHBvcnQgdHlwZSBUaXBvYyA9IFRpcG9jRGVzdGlub3MgfCAnRicgfCAnTycgfCAnT00nIHwgJ0NPTlMnIHwgJ1RFWFRPJyB8ICdMSUJSRScgfCAnUE1BVFJJWidcclxuXHJcbmV4cG9ydCB0eXBlIEVzcGVjaWFsID0ge1xyXG4gICAgZ3BzPzogYm9vbGVhblxyXG4gICAgbm9TY3JvbGw/OiBib29sZWFuXHJcbiAgICBzY3JvbGxUbz86IElkVmFyaWFibGUgfCBJZEZpblxyXG4gICAgYXV0b2luZz86IHN0cmluZ1xyXG4gICAgZmxleERpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbicgfCAncm93LXJldmVyc2UnIHwgJ2NvbHVtbi1yZXZlcnNlJ1xyXG4gICAgY2FtcG9zUmVzdW1lbj86IHN0cmluZ1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkVGFyZWEgPSAnZW5jdScgfCAncmVjdScgfCAnc3VwZScgfCAnaW5ncic7XHJcblxyXG5leHBvcnQgdHlwZSBGZWVkYmFja1ZhcmlhYmxlID0gRmVlZGJhY2s8SWRWYXJpYWJsZSwgSWRGaW4+XHJcblxyXG5leHBvcnQgdHlwZSBUaXBvVmFyaWFibGVzID0gJ3RleHRvJyB8ICdudW1lcm8nIHwgJ2ZlY2hhJyB8ICdob3JhcycgfCAnaG9yYSdcclxuXHJcbmV4cG9ydCB0eXBlIERlc3BsaWVndWUgPSAnaG9yaXpvbnRhbCcgfCAnb2N1bHRhJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvQmFzZSA9IHtcclxuICAgIGlkX2Nhc2lsbGVybz86IHN0cmluZ1xyXG4gICAgdGlwb2M6IFRpcG9jXHJcbiAgICBjYXNpbGxlcm86IElkQ2FzaWxsZXJvXHJcbiAgICBub21icmU6IHN0cmluZ1xyXG4gICAgc2FsdG86IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBJZERlc3Rpbm8gfCBJZEZpbiB8IG51bGxcclxuICAgIHZlcl9pZDogc3RyaW5nIHwgbnVsbFxyXG4gICAgZGVzcGxpZWd1ZUVuY2FiZXphZG86ICdsYXRlcmFsJyB8ICdzdXBlcmlvcicgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlQ29udGVuaWRvOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnIHwgbnVsbFxyXG4gICAgZGVzcGxpZWd1ZVRpcG9JbnB1dDogJ3RlbCcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlT2N1bHRhOiBib29sZWFuIHwgbnVsbFxyXG4gICAgbGVlcjogYm9vbGVhbiB8IG51bGxcclxuICAgIGFjbGFyYWNpb246IHN0cmluZyB8IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWVfZXNwZWNpYWw/OiBzdHJpbmcgfCBudWxsXHJcbiAgICB0aXBvdmFyPzogVGlwb1ZhcmlhYmxlcyB8ICdvcGNpb25lcycgfCAnc2lfbm8nIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvcz86IENhc2lsbGVyb3NJbXBsZW1lbnRhZG9zW10gfCBudWxsXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyX2pzPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyX2pzPzogc3RyaW5nXHJcbiAgICBlc3BlY2lhbD86IEVzcGVjaWFsXHJcbiAgICBjYWxjdWxhZGE/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgb3B0YXRpdm8/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgbGlicmU/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgdmFsb3JfbnNfbmM/OiBhbnlcclxuICAgIGRlc3BsaWVndWU/OiBzdHJpbmdcclxuICAgIGxvbmdpdHVkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ08nXHJcbiAgICBjYXNpbGxlcm86IElkT3BjaW9uXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvblNpID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAxXHJcbiAgICBub21icmU6ICdTw60nXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk5vID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAyXHJcbiAgICBub21icmU6ICdObydcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTXVsdGlwbGUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdPTSdcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG4gICAgY2FsY3VsYWRhPzogYm9vbGVhblxyXG4gICAgbGlicmU/OiBib29sZWFuXHJcbiAgICB2YWxvcl9uc19uYzogYW55XHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFCYXNlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnUCdcclxuICAgIG9wdGF0aXZvOiBib29sZWFuIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvOiBJZFByZWd1bnRhXHJcbiAgICBjYWxjdWxhZGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZTogYm9vbGVhbiB8IG51bGxcclxuICAgIHZhbG9yX25zX25jOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFTaW1wbGUgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiBUaXBvVmFyaWFibGVzXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgbG9uZ2l0dWQ6IHN0cmluZ1xyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvblNpTm8gPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiAnc2lfbm8nXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogW09wY2lvblNpLCBPcGNpb25Ob11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25PcGNpb25lcyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uTXVsdGlwbGVbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhID0gUHJlZ3VudGFTaW1wbGUgfCBQcmVndW50YUNvblNpTm8gfCBQcmVndW50YUNvbk9wY2lvbmVzIHwgUHJlZ3VudGFDb25PcGNpb25lc011bHRpcGxlc1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uanVudG9QcmVndW50YXMgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDUCdcclxuICAgIGNhc2lsbGVybzogSWRQcmVndW50YVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbi8qXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbmlkbyBleHRlbmRzIENhc2lsbGVyb0Jhc2Uge1xyXG4gICAgY2FzaWxsZXJvczpJQ29udGVuaWRvW11cclxufVxyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdHJvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRklMVFJPJ1xyXG4gICAgY2FzaWxsZXJvOiBJZEZpbHRyb1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIGNhbGN1bGFkYT86IG51bGxcclxuICAgIGxpYnJlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRlbmlkb0Zvcm11bGFyaW8gPSBCbG9xdWUgfCBQcmVndW50YSB8IENvbmp1bnRvUHJlZ3VudGFzIHwgRmlsdHJvIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG9cclxuXHJcbmV4cG9ydCB0eXBlIEJsb3F1ZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0InXHJcbiAgICBjYXNpbGxlcm86IElkQmxvcXVlXHJcbiAgICBjYXNpbGxlcm9zOiBDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25zaXN0ZW5jaWEgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDT05TJ1xyXG4gICAgY2FzaWxsZXJvOiBJZENvbnNpc3RlbmNpYVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIFRleHRvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnVEVYVE8nXHJcbiAgICBjYXNpbGxlcm86IElkVGV4dG9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5leHBvcnQgdHlwZSBMaWJyZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0xJQlJFJ1xyXG4gICAgY2FzaWxsZXJvOiBJZFRleHRvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgQm90b25Gb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnQkYnXHJcbiAgICBjYXNpbGxlcm86IElkQm90b25Gb3JtdWxhcmlvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogSWRWYXJpYWJsZSB8IG51bGxcclxuICAgIHZhcl9uYW1lc19CRj86IElkVmFyaWFibGVbXVxyXG4gICAgbG9uZ2l0dWQ/OiBzdHJpbmdcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRidcclxuICAgIGNhc2lsbGVybzogSWRGb3JtdWxhcmlvXHJcbiAgICBmb3JtdWxhcmlvX3ByaW5jaXBhbDogYm9vbGVhblxyXG4gICAgY2FzaWxsZXJvczogQ29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBoZXJtYW5vPzogdHJ1ZVxyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUE1hdHJpeiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ1BNQVRSSVonXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3MgPSBGb3JtdWxhcmlvIHwgQmxvcXVlIHwgRmlsdHJvIHwgQ29uanVudG9QcmVndW50YXMgfCBQcmVndW50YSB8IE9wY2lvbk11bHRpcGxlIHwgT3BjaW9uIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG8gfCBMaWJyZSB8IFBNYXRyaXpcclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGtSYWl6ID0gJ3ZpdmllbmRhJyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgVmFsdWVQa1JhaXogPSBJZEVuY1xyXG5cclxuZXhwb3J0IHR5cGUgRm9yUGtSYWl6ID0ge1xyXG4gICAgZm9ybXVsYXJpbzogSWRGb3JtdWxhcmlvXHJcbn0gJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa1JhaXpdOiBWYWx1ZVBrUmFpelxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW1wb1BrID0gJ3ZpdmllbmRhJyB8ICdob2dhcicgfCAncGVyc29uYScgfCAnZXRjLi4uJztcclxuZXhwb3J0IHR5cGUgRm9yUGsgPSBGb3JQa1JhaXogJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa10/OiBudW1iZXJcclxufVxyXG5leHBvcnQgdHlwZSBQbGFpbkZvclBrID0gJ3tcImZvcm11bGFyaW9cIjpcIkY6RjFcIixcInZpdmllbmRhXCI6XCIxMDIwMlwiLFwicGVyc29uYVwiOm51bGx9JyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7IFtuIGluIG51bWJlcl06IFQgfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1VuYVVBID0ge1xyXG4gICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOiBWYWxvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFMYXNVQSA9IHtcclxuICAgIFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogT2JqZXRvTnVtZXJhZG9PQXJyYXk8UmVzcHVlc3Rhcz5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3RhcyA9IFJlc3B1ZXN0YXNVbmFVQSAmIFJlc3B1ZXN0YUxhc1VBXHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzUmFpeiA9IFJlc3B1ZXN0YXMgJiB7XHJcbiAgICByZXN1bWVuRXN0YWRvOiBSZXN1bWVuRXN0YWRvXHJcbiAgICByZXN1bWVuRXN0YWRvU3VwOiBSZXN1bWVuRXN0YWRvXHJcbiAgICAkZGlydHk6IGJvb2xlYW5cclxuICAgIGNvZE5vUmVhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb2RSZWE6IG51bWJlciB8IG51bGxcclxuICAgIGNvZE5vUmVhU3VwOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb2RSZWFTdXA6IG51bWJlciB8IG51bGxcclxufVxyXG5cclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBVbmlkYWRBbmFsaXNpcyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBhZHJlPzogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBrX2FncmVnYWRhOiBDYW1wb1BrLFxyXG4gICAgcHJpbmNpcGFsPzogYm9vbGVhbixcclxuICAgIGhpamFzOiB7IFtrIGluIElkVW5pZGFkQW5hbGlzaXNdPzogVW5pZGFkQW5hbGlzaXMgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBURU0gPSB7XHJcbiAgICBub21jYWxsZTogc3RyaW5nXHJcbiAgICBkb21pbmlvOiBudW1iZXJcclxuICAgIHNlY3Rvcjogc3RyaW5nXHJcbiAgICBlZGlmaWNpbzogc3RyaW5nXHJcbiAgICBlbnRyYWRhOiBzdHJpbmdcclxuICAgIG5yb2NhdGFzdHJhbDogc3RyaW5nXHJcbiAgICBwaXNvOiBzdHJpbmdcclxuICAgIGRlcGFydGFtZW50bzogc3RyaW5nXHJcbiAgICBoYWJpdGFjaW9uOiBzdHJpbmdcclxuICAgIGNhc2E6IHN0cmluZ1xyXG4gICAgcHJpb3JpZGFkOiAxIHwgMiB8IDNcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZ1xyXG4gICAgc2VsZWNjaW9uYWRvOiBudW1iZXIsXHJcbiAgICBjaXRhPzogc3RyaW5nLFxyXG4gICAgY2FyZ2E6IHN0cmluZyxcclxuICAgIHNlbWFuYT86IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXN1bWVuRXN0YWRvID0gJ3ZhY2lvJyB8ICdjb24gcHJvYmxlbWFzJyB8ICdpbmNvbXBsZXRvJyB8ICdvaycgfCAnbm8gcmVhJyB8ICdjaXRhIHBhY3RhZGEnO1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb1RhcmVhID0ge1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIG5vdGFzPzogc3RyaW5nXHJcbiAgICBmZWNoYV9hc2lnbmFjaW9uPzogRGF0ZVxyXG4gICAgYXNpZ25hZG8/OiBzdHJpbmdcclxuICAgIG1haW5fZm9ybTogSWRGb3JtdWxhcmlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFZpc2l0YSA9IHtcclxuICAgIGZlY2hhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBob3JhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZHBlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0hkclVhUHBhbCA9IHtcclxuICAgIHRhcmVhOiBJbmZvVGFyZWFcclxuICAgIHRlbTogVEVNXHJcblxyXG4gICAgLypcclxuICAgICAgICBhY2xhcmFjacOzbjpcclxuICAgICAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgICAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiAgICAqL1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZENhcmdhID0gXCIxXCIgfCBcIjJcIiB8IFwiZXRjXCJcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0NhcmdhID0gJ3Jlc3VtZW4nIHwgJ3JlbGV2YW1pZW50bycgfCAncmVjaWJvJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2EgPSB7XHJcbiAgICBmZWNoYTogRGF0ZVxyXG4gICAgZXN0YWRvX2NhcmdhOiBFc3RhZG9DYXJnYVxyXG4gICAgbmVjZXNhcmlhczogbnVtYmVyXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmdcclxuICAgIHJlY2VwY2lvbmlzdGE6IHN0cmluZ1xyXG4gICAgcHVlZGVfYXV0b2dlbmVyYXI6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2FzID0ge1xyXG4gICAgW2lkQ2FyZ2EgaW4gSWRDYXJnYV06IENhcmdhXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgPSBTdHJ1Y3R1cmU8SWRWYXJpYWJsZSwgVmFsb3IsIElkRmluPjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9EZXNwbGllZ3VlID0gJ21ldGFkYXRvcycgfCAncmVsZXZhbWllbnRvJyB8ICdQREYnXHJcblxyXG5leHBvcnQgdHlwZSBQYW50YWxsYU5hdmVnYWNpb24gPSAnaGRyJyB8ICdzaW5jcm9uaXphY2lvbicgfCAnc2luY3Jvbml6YWNpb25fcmVxdWVyaWRhJyB8ICdtb2RvJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9Gb3JtdWxhcmlvID0ge1xyXG4gICAgY2FzaWxsZXJvczogRm9ybXVsYXJpbywgLy8gY2FzaWxsZXJvcyBhcGxhbmFkb3NcclxuICAgIGVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3I6IEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgLy8gZXN0cnVjdHVyYSBkZSB2YXJpYWJsZXMgcGFyYSBlbCBSb3dWYWxpZGF0b3JcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRSZXN1bHRhZG8gPSAnQVZFUklHVUFSJyB8ICdUT0RPJztcclxuZXhwb3J0IHR5cGUgSWRTZW1hbmEgPSAxIHwgMiB8ICdldGMnXHJcblxyXG5leHBvcnQgdHlwZSBTZW1hbmEgPSB7XHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvO1xyXG4gICAgc2VtYW5hOiBudW1iZXI7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBkMzBfcmVmZXJlbmNpYV9kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBkMzBfcmVmZXJlbmNpYV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBtZXNfcmVmZXJlbmNpYT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9lbmNfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfZW5jX2hhc3RhPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX3JlY3VfZGVzZGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfcmVjdV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBUYXJlYXNFc3RydWN0dXJhID0ge1xyXG4gICAgW2lkVGFyZWEgaW4gSWRUYXJlYV06IHtcclxuICAgICAgICByZXN1bHRhZG9zOiB7XHJcbiAgICAgICAgICAgIFtpZFJlc3VsdGFkbyBpbiBJZFJlc3VsdGFkb106IHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYSA9IHtcclxuICAgIGZvcm11bGFyaW9zOiB7XHJcbiAgICAgICAgW25vbWJyZUZvcm11bGFyaW8gaW4gSWRGb3JtdWxhcmlvXTogSW5mb0Zvcm11bGFyaW9cclxuICAgIH1cclxuICAgIHVuaWRhZGVzX2FuYWxpc2lzOiB7XHJcbiAgICAgICAgW2lkVW5pZGFkQW5hbGlzaXMgaW4gSWRVbmlkYWRBbmFsaXNpc106IFVuaWRhZEFuYWxpc2lzXHJcbiAgICB9XHJcbiAgICB0YXJlYXM6IFRhcmVhc0VzdHJ1Y3R1cmFcclxuICAgIHVhUHBhbDogSWRVbmlkYWRBbmFsaXNpc1xyXG4gICAgcGtBZ3JlZ2FkYVVhUHBhbDogQ2FtcG9Qa1JhaXpcclxuICAgIHRpbWVzdGFtcDogbnVtYmVyXHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvXHJcbiAgICBjb25maWdTb3J0ZW86IENvbmZpZ3VyYWNpb25Tb3J0ZW9cclxuICAgIGhhYmlsaXRhY2lvbkJvdG9uRm9ybXVsYXJpbzogQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb1xyXG4gICAgY29uUmVhSG9nYXI6IGJvb2xlYW5cclxuICAgIG5vUmVhczoge1xyXG4gICAgICAgIG5vX3JlYTogc3RyaW5nXHJcbiAgICAgICAgZGVzY3JpcGNpb246IHN0cmluZ1xyXG4gICAgICAgIGdydXBvOiBzdHJpbmdcclxuICAgICAgICB2YXJpYWJsZTogc3RyaW5nXHJcbiAgICAgICAgdmFsb3I6IHN0cmluZ1xyXG4gICAgICAgIGdydXBvMDogc3RyaW5nXHJcbiAgICB9W11cclxuICAgIG5vUmVhc1N1cDoge1xyXG4gICAgICAgIG5vX3JlYV9zdXA6IHN0cmluZ1xyXG4gICAgICAgIGRlc2Nfbm9yZWFfc3VwOiBzdHJpbmdcclxuICAgICAgICBncnVwb19zdXA6IHN0cmluZ1xyXG4gICAgICAgIHZhcmlhYmxlX3N1cDogc3RyaW5nXHJcbiAgICAgICAgdmFsb3Jfc3VwOiBzdHJpbmdcclxuICAgICAgICBncnVwbzBfc3VwOiBzdHJpbmdcclxuICAgIH1bXSxcclxuICAgIHNlbWFuYXM6IHsgW2lkU2VtYW5hIGluIElkU2VtYW5hXTogU2VtYW5hIH1cclxuICAgIGRlZmF1bHRJbmZvcm1hY2lvbkhkcjogRGF0b3NIZHJVYVBwYWxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRFbmMgPSAxMzAwMzEgfCAxMzAwMzI7XHJcbmV4cG9ydCB0eXBlIEluZm9ybWFjaW9uSGRyID0geyBbZW5jIGluIElkRW5jXTogRGF0b3NIZHJVYVBwYWwgfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlID0ge1xyXG4gICAgb3BjaW9uZXM6IHsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazogRm9yUGsgfCBudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6IEZvclBrW11cclxuICAgICAgICBtb2RvRGVzcGxpZWd1ZTogTW9kb0Rlc3BsaWVndWVcclxuICAgICAgICBtb2RvRGlyZWN0bzogYm9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6IElkVmFyaWFibGUgfCBudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczogYm9vbGVhblxyXG4gICAgICAgIHNhbHRvQXV0b21hdGljbzogYm9vbGVhblxyXG4gICAgICAgIHBhbnRhbGxhQWN0dWFsOiBQYW50YWxsYU5hdmVnYWNpb25cclxuICAgICAgICBhdmlzb1BlcnNpc3RlbnRlOiB7IHRpcG86ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicsIG1lbnNhamU6IHN0cmluZ30gfCBudWxsXHJcbiAgICAgICAgY29tb2RpbmVzOiB7W2lkQ29tb2RpbiBpbiBJZENvbW9kaW5dPzogc3RyaW5nfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEZWZPcGVyYXRpdm8gPSB7XHJcbiAgICBlc05vUmVhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcykgPT4geyBjb2ROb1JlYTogc3RyaW5nIHwgbnVsbCwgZXNOb1JlYTogYm9vbGVhbiB9LFxyXG4gICAgZXNOb1JlYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kTm9SZWFTdXA6IHN0cmluZyB8IG51bGwsIGVzTm9SZWFTdXA6IGJvb2xlYW4gfSxcclxuICAgIGVzUmVhbGl6YWRhOiAocmVzcHVlc3RhczogUmVzcHVlc3RhcykgPT4geyBjb2RSZWE6IG51bWJlciB8IG51bGwsIGVzUmVhOiBib29sZWFuIH0sXHJcbiAgICBlc1JlYWxpemFkYVN1cDogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kUmVhU3VwOiBudW1iZXIgfCBudWxsLCBlc1JlYVN1cDogYm9vbGVhbiB9LFxyXG4gICAgVUFwcmluY2lwYWw6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBkZWZVQTogeyBbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogeyBwazogSWRWYXJpYWJsZSwgaW5jbHVpZGFzOiBJZFVuaWRhZEFuYWxpc2lzW10sIGlkc0ZvcjogSWRGb3JtdWxhcmlvW10gfSB9LFxyXG4gICAgZGVmRm9yOiB7IFtmIGluIElkRm9ybXVsYXJpb106IHsvKmFyYm9sVUE6SWRVbmlkYWRBbmFsaXNpc1tdLCAqLyBoZXJtYW5vPzogdHJ1ZSB9IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGF0b3NCeVBhc3NQZXJzaXN0aWJsZXMgPSB7XHJcbiAgICByZXNwdWVzdGFzOiB7IFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogUmVzcHVlc3Rhc1JhaXpbXSB9XHJcbiAgICBtb2RvQWxtYWNlbmFtaWVudG86IE1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTogc3RyaW5nXHJcbiAgICB0YXJlYTogSWRUYXJlYVxyXG4gICAgaWRwZXI6IHN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzogc3RyaW5nXHJcbiAgICBudW1fc2luY3JvPzogbnVtYmVyXHJcbiAgICB0aW1lc3RhbXBFc3RydWN0dXJhPzogbnVtYmVyXHJcbiAgICBwZXJtaXRlQm9ycmFyRWxlbWVudG9zVUE/OiBib29sZWFuXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTogc3RyaW5nW10sXHJcbiAgICAgICAgdmFyX2xldHJhOiBJZFZhcmlhYmxlLFxyXG4gICAgfVxyXG59XHJcblxyXG50eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoID0ge1xyXG4gICAgbWV0b2RvOiBcImhhc2hcIixcclxuICAgIHBhcmFtX21ldG9kbzoge1xyXG4gICAgICAgIHZhcl9jb2VmOiBbXHJcbiAgICAgICAgICAgIHsgdmFyOiBJZFZhcmlhYmxlLCBjb2VmOiBudW1iZXIgfSxcclxuICAgICAgICAgICAgeyB2YXI6IElkVmFyaWFibGUsIGNvZWY6IG51bWJlciB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW8gPSB7IFtrZXkgaW4gSWRGb3JtdWxhcmlvXTogQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpbyA9IHsgW2tleSBpbiBJZEZvcm11bGFyaW9dOiBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSB9XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpbyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHVuaWRhZF9hbmFsaXNpc19wYWRyZTogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIC8vZXhwcl9pbmNvbXBsZXRpdHVkOiBzdHJpbmcgLy9cIm5vdCAocDEpIG9yIG5vIHQgKHAyKSBvciBub3QocDMpXCJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZDoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZF9qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgLy9maWx0cm9fanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGZpbHRyb19qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICBvcmRlbjoge1xyXG4gICAgICAgIHZhcmlhYmxlOiBJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDEgfCAtMVxyXG4gICAgfVtdIC8vW1wicDNcIiwgXCJwMlwiLCBcInAxXCIsIFwicDBcIl0sIC8vIHAwIGVzIGNvbnN0cnVpZGEsIG5vIHZhIGVuIHBhcsOhbWV0cm9zLCBzZSBwb25lIHBhcmEgcXVlIGVsIG9yZGVuIHNlYSBkZXRlcm1pbsOtc3RpY29cclxuICAgIHBhcmFtZXRyb3M6IElkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHsgc291cmNlOiBJZFZhcmlhYmxlLCB0YXJnZXQ6IElkVmFyaWFibGUgfVtdLFxyXG4gICAgaW5jb21wbGV0YXM6IElkVmFyaWFibGVcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUE6IElkVmFyaWFibGUvLyckQi5GOlMxX1AnXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBSW5kaXZpZHVhbD86IElkVmFyaWFibGUgLy8nJEIuRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9faW5kaXZpZHVhbD86IElkRm9ybXVsYXJpbyAvLyAnRjpJMSdcclxuICAgIGlkX2Zvcm11bGFyaW9fcGFkcmU/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6UzEnXHJcbn0gJiAoQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggfCBDb25maWd1cmFjaW9uU29ydGVvVGFibGEpXHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uSGFiaWxpdGFyQm90b25Gb3JtdWxhcmlvRm9ybSA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGV4cHJfaGFiaWxpdGFyX2JvdG9uOiBzdHJpbmcsXHJcbiAgICBleHByX2hhYmlsaXRhcl9ib3Rvbl9qczogc3RyaW5nLFxyXG4gICAgaGFiaWxpdGFyX2FncmVnYXJfbGlzdG86IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5Gb3JQayhmb3JQazogRm9yUGspOiBQbGFpbkZvclBrIHtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQayk7XHJcbn1cclxuXHJcbmV4cG9ydCB2YXIgaXRlcmF0b3I6IDxUPihvOiBPYmpldG9OdW1lcmFkb09BcnJheTxUPikgPT4gSXRlcmFibGU8VD4gPSBMaWtlQXIuaXRlcmF0b3JcclxuZXhwb3J0IHZhciBlbXB0eTogPFQ+KG86IE9iamV0b051bWVyYWRvT0FycmF5PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbiA9IExpa2VBci5lbXB0eVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgbmFtZXNwYWNlIG15T3duIHtcclxuICAgICAgICBpbnRlcmZhY2UgQWRkclBhcmFtcyB7XHJcbiAgICAgICAgICAgIHN0YXRlX2ZvclBrOiBzdHJpbmdcclxuICAgICAgICAgICAgc3RhdGVfcGlsYUZvclBrOiBzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERpcmVjY2lvbkFjY2lvbiA9ICdhdmFuY2UnIHwgJ3JldHJvY2VzbycgfCAnYmxhbnF1ZW8nXHJcblxyXG5leHBvcnQgdHlwZSBFc3RhZG9BY2Npb24gPSB7XHJcbiAgICBvcGVyYXRpdm86IHN0cmluZ1xyXG4gICAgZXN0YWRvOiBzdHJpbmdcclxuICAgIGVhY2Npb246IHN0cmluZ1xyXG4gICAgY29uZGljaW9uOiBzdHJpbmdcclxuICAgIGVzdGFkb19kZXN0aW5vOiBzdHJpbmdcclxuICAgIGVhY2Npb25fZGlyZWNjaW9uOiBEaXJlY2Npb25BY2Npb25cclxuICAgIHBhdGhfaWNvbm9fc3ZnOiBzdHJpbmdcclxuICAgIG5vbWJyZV9wcm9jZWR1cmU6IHN0cmluZ1xyXG4gICAgbm9tYnJlX3dzY3JlZW46IHN0cmluZ1xyXG4gICAgZGVzYWN0aXZhX2JvdG9uOiBib29sZWFuXHJcbiAgICBjb25maXJtYTogYm9vbGVhblxyXG59XHJcbmV4cG9ydCB0eXBlIE1vZG9ETSA9ICdwcm9kdWMnIHwgJ2NhcGEnOyJdfQ==
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUE0aEJiLG9DQUVDO0lBNWhCRCxrQ0FBa0M7SUEwaEJsQyxTQUFnQixZQUFZLENBQUMsS0FBWTtRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVVLFFBQUEsUUFBUSxHQUFtRCxNQUFNLENBQUMsUUFBUSxDQUFBO0lBQzFFLFFBQUEsS0FBSyxHQUFrRSxNQUFNLENBQUMsS0FBSyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbmltcG9ydCB7IFN0cnVjdHVyZSwgRmVlZGJhY2sgfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgKiBhcyBMaWtlQXIgZnJvbSBcImxpa2UtYXJcIjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9BbG1hY2VuYW1pZW50byA9ICdzZXNzaW9uJyB8IC8vIGN1YW5kbyBzZWEgcGFyYSB1bmEgc29sYSBwZXN0YcOxYSwgc2UgdXNhIGVuIG1vZG8gZGlyZWN0byxcclxuICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJyB8ICdlYWgyMDIyJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVmFyaWFibGUgPSAndjEnIHwgJ3YyJyB8ICd2MycgfCAnZXRjLi4uJyB8ICd2ZG9taW5pbycgfCAnJHAwJ1xyXG5leHBvcnQgdHlwZSBJZFByZWd1bnRhID0gJ1AxJyB8ICdQMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMScgfCAnQjInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRGb3JtdWxhcmlvID0gJ0YxJyB8ICdGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZFVuaWRhZEFuYWxpc2lzID0gJ3ZpdmllbmRhcycgfCAnaG9nYXJlcycgfCAncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJyB8ICdCRjpGMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENvbnNpc3RlbmNpYSA9ICdDT05TMScgfCAnQ09OUzInIHwgJ2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRUZXh0byA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29tb2RpbiA9ICdEMzBfUkVGJyB8ICdNRVNfUkVGJyB8ICdTRU1fUkVGJyB8ICdTRU1fTlVNJyB8ICdyZXNwczEnIHwgJ3BhcmVudHMxJyB8ICdyZXNwaTEnIHwgJ3BhcmVudGkxJyB8ICduamVmZScgfCAnZnJlYWxpeicgfCAnY2FudGlfaG9nYXJlcydcclxuZXhwb3J0IHR5cGUgSWRGaWx0cm8gPSAnRklMVFJPMScgfCAnRklMVFJPMicgfCAnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZENhc2lsbGVybyA9IElkVmFyaWFibGUgfCBJZFByZWd1bnRhIHwgSWRCbG9xdWUgfCBJZEZvcm11bGFyaW8gfCBJZEZpbHRybyB8IElkT3BjaW9uXHJcbmV4cG9ydCB0eXBlIElkRmluID0gJ2Zpbic7IC8vIG5ldmVyIC8vIFRPRE86IHBvZGVyIHBvbmVyICdGSU4nXHJcbmV4cG9ydCB0eXBlIElkRGVzdGlubyA9IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRmluIHwgSWRGaWx0cm9cclxuZXhwb3J0IHR5cGUgVmFsb3IgPSBzdHJpbmcgfCBudW1iZXIgfCBudWxsO1xyXG5leHBvcnQgdHlwZSBUaXBvY0Rlc3Rpbm9zID0gJ1AnIHwgJ0NQJyB8ICdCJyB8ICdGSUxUUk8nIHwgJ0JGJ1xyXG5leHBvcnQgdHlwZSBUaXBvYyA9IFRpcG9jRGVzdGlub3MgfCAnRicgfCAnTycgfCAnT00nIHwgJ0NPTlMnIHwgJ1RFWFRPJyB8ICdMSUJSRScgfCAnUE1BVFJJWidcclxuXHJcbmV4cG9ydCB0eXBlIEVzcGVjaWFsID0ge1xyXG4gICAgZ3BzPzogYm9vbGVhblxyXG4gICAgbm9TY3JvbGw/OiBib29sZWFuXHJcbiAgICBzY3JvbGxUbz86IElkVmFyaWFibGUgfCBJZEZpblxyXG4gICAgYXV0b2luZz86IHN0cmluZ1xyXG4gICAgZmxleERpcmVjdGlvbj86ICdyb3cnIHwgJ2NvbHVtbicgfCAncm93LXJldmVyc2UnIHwgJ2NvbHVtbi1yZXZlcnNlJ1xyXG4gICAgY2FtcG9zUmVzdW1lbj86IHN0cmluZ1tdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkVGFyZWEgPSAnZW5jdScgfCAncmVjdScgfCAnc3VwZScgfCAnaW5ncic7XHJcblxyXG5leHBvcnQgdHlwZSBGZWVkYmFja1ZhcmlhYmxlID0gRmVlZGJhY2s8SWRWYXJpYWJsZSwgSWRGaW4+XHJcblxyXG5leHBvcnQgdHlwZSBUaXBvVmFyaWFibGVzID0gJ3RleHRvJyB8ICdudW1lcm8nIHwgJ2ZlY2hhJyB8ICdob3JhcycgfCAnaG9yYSdcclxuXHJcbmV4cG9ydCB0eXBlIERlc3BsaWVndWUgPSAnaG9yaXpvbnRhbCcgfCAnb2N1bHRhJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvQmFzZSA9IHtcclxuICAgIGlkX2Nhc2lsbGVybz86IHN0cmluZ1xyXG4gICAgdGlwb2M6IFRpcG9jXHJcbiAgICBjYXNpbGxlcm86IElkQ2FzaWxsZXJvXHJcbiAgICBub21icmU6IHN0cmluZ1xyXG4gICAgc2FsdG86IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBJZERlc3Rpbm8gfCBJZEZpbiB8IG51bGxcclxuICAgIHZlcl9pZDogc3RyaW5nIHwgbnVsbFxyXG4gICAgZGVzcGxpZWd1ZUVuY2FiZXphZG86ICdsYXRlcmFsJyB8ICdzdXBlcmlvcicgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlQ29udGVuaWRvOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnIHwgbnVsbFxyXG4gICAgZGVzcGxpZWd1ZVRpcG9JbnB1dDogJ3RlbCcgfCBudWxsXHJcbiAgICBkZXNwbGllZ3VlT2N1bHRhOiBib29sZWFuIHwgbnVsbFxyXG4gICAgbGVlcjogYm9vbGVhbiB8IG51bGxcclxuICAgIGFjbGFyYWNpb246IHN0cmluZyB8IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWU/OiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgdmFyX25hbWVfZXNwZWNpYWw/OiBzdHJpbmcgfCBudWxsXHJcbiAgICB0aXBvdmFyPzogVGlwb1ZhcmlhYmxlcyB8ICdvcGNpb25lcycgfCAnc2lfbm8nIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvcz86IENhc2lsbGVyb3NJbXBsZW1lbnRhZG9zW10gfCBudWxsXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyX2pzPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyPzogc3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyX2pzPzogc3RyaW5nXHJcbiAgICBlc3BlY2lhbD86IEVzcGVjaWFsXHJcbiAgICBjYWxjdWxhZGE/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgb3B0YXRpdm8/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgbGlicmU/OiBib29sZWFuIHwgbnVsbFxyXG4gICAgdmFsb3JfbnNfbmM/OiBhbnlcclxuICAgIGRlc3BsaWVndWU/OiBzdHJpbmdcclxuICAgIGxvbmdpdHVkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ08nXHJcbiAgICBjYXNpbGxlcm86IElkT3BjaW9uXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvblNpID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAxXHJcbiAgICBub21icmU6ICdTw60nXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk5vID0gT3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOiAyXHJcbiAgICBub21icmU6ICdObydcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTXVsdGlwbGUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdPTSdcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG4gICAgY2FsY3VsYWRhPzogYm9vbGVhblxyXG4gICAgbGlicmU/OiBib29sZWFuXHJcbiAgICB2YWxvcl9uc19uYzogYW55XHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFCYXNlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnUCdcclxuICAgIG9wdGF0aXZvOiBib29sZWFuIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvOiBJZFByZWd1bnRhXHJcbiAgICBjYWxjdWxhZGE6IGJvb2xlYW4gfCBudWxsXHJcbiAgICBsaWJyZTogYm9vbGVhbiB8IG51bGxcclxuICAgIHZhbG9yX25zX25jOiBhbnlcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFTaW1wbGUgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiBUaXBvVmFyaWFibGVzXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgbG9uZ2l0dWQ6IHN0cmluZ1xyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFTaW1wbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvblNpTm8gPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOiAnc2lfbm8nXHJcbiAgICB2YXJfbmFtZTogSWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6IElkRGVzdGlubyB8IElkRmluIHwgbnVsbFxyXG4gICAgY2FzaWxsZXJvczogW09wY2lvblNpLCBPcGNpb25Ob11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25PcGNpb25lcyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6ICdvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOiBJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzogSWREZXN0aW5vIHwgSWRGaW4gfCBudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uTXVsdGlwbGVbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhID0gUHJlZ3VudGFTaW1wbGUgfCBQcmVndW50YUNvblNpTm8gfCBQcmVndW50YUNvbk9wY2lvbmVzIHwgUHJlZ3VudGFDb25PcGNpb25lc011bHRpcGxlc1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uanVudG9QcmVndW50YXMgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDUCdcclxuICAgIGNhc2lsbGVybzogSWRQcmVndW50YVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgY2FzaWxsZXJvczogUHJlZ3VudGFbXVxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbi8qXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbmlkbyBleHRlbmRzIENhc2lsbGVyb0Jhc2Uge1xyXG4gICAgY2FzaWxsZXJvczpJQ29udGVuaWRvW11cclxufVxyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdHJvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRklMVFJPJ1xyXG4gICAgY2FzaWxsZXJvOiBJZEZpbHRyb1xyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIGNhbGN1bGFkYT86IG51bGxcclxuICAgIGxpYnJlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRlbmlkb0Zvcm11bGFyaW8gPSBCbG9xdWUgfCBQcmVndW50YSB8IENvbmp1bnRvUHJlZ3VudGFzIHwgRmlsdHJvIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG9cclxuXHJcbmV4cG9ydCB0eXBlIEJsb3F1ZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0InXHJcbiAgICBjYXNpbGxlcm86IElkQmxvcXVlXHJcbiAgICBjYXNpbGxlcm9zOiBDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25zaXN0ZW5jaWEgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6ICdDT05TJ1xyXG4gICAgY2FzaWxsZXJvOiBJZENvbnNpc3RlbmNpYVxyXG4gICAgdmFyX25hbWU/OiBudWxsXHJcbiAgICB0aXBvdmFyPzogbnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86IG51bGxcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIFRleHRvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnVEVYVE8nXHJcbiAgICBjYXNpbGxlcm86IElkVGV4dG9cclxuICAgIHZhcl9uYW1lPzogbnVsbFxyXG4gICAgdGlwb3Zhcj86IG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OiBudWxsXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5leHBvcnQgdHlwZSBMaWJyZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ0xJQlJFJ1xyXG4gICAgY2FzaWxsZXJvOiBJZFRleHRvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogbnVsbFxyXG4gICAgc2FsdG9fbnNfbmM/OiBudWxsXHJcbn1cclxuZXhwb3J0IHR5cGUgQm90b25Gb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnQkYnXHJcbiAgICBjYXNpbGxlcm86IElkQm90b25Gb3JtdWxhcmlvXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzogSWRWYXJpYWJsZSB8IG51bGxcclxuICAgIHZhcl9uYW1lc19CRj86IElkVmFyaWFibGVbXVxyXG4gICAgbG9uZ2l0dWQ/OiBzdHJpbmdcclxuICAgIHVuaWRhZF9hbmFsaXNpcz86IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHNhbHRvX25zX25jPzogbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOiAnRidcclxuICAgIGNhc2lsbGVybzogSWRGb3JtdWxhcmlvXHJcbiAgICBmb3JtdWxhcmlvX3ByaW5jaXBhbDogYm9vbGVhblxyXG4gICAgY2FzaWxsZXJvczogQ29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86IG51bGxcclxuICAgIHRpcG92YXI/OiBudWxsXHJcbiAgICBoZXJtYW5vPzogdHJ1ZVxyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUE1hdHJpeiA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzogJ1BNQVRSSVonXHJcbiAgICBzYWx0b19uc19uYz86IG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3MgPSBGb3JtdWxhcmlvIHwgQmxvcXVlIHwgRmlsdHJvIHwgQ29uanVudG9QcmVndW50YXMgfCBQcmVndW50YSB8IE9wY2lvbk11bHRpcGxlIHwgT3BjaW9uIHwgQm90b25Gb3JtdWxhcmlvIHwgQ29uc2lzdGVuY2lhIHwgVGV4dG8gfCBMaWJyZSB8IFBNYXRyaXpcclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGtSYWl6ID0gJ3ZpdmllbmRhJyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgVmFsdWVQa1JhaXogPSBJZEVuY1xyXG5cclxuZXhwb3J0IHR5cGUgRm9yUGtSYWl6ID0ge1xyXG4gICAgZm9ybXVsYXJpbzogSWRGb3JtdWxhcmlvXHJcbn0gJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa1JhaXpdOiBWYWx1ZVBrUmFpelxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYW1wb1BrID0gJ3ZpdmllbmRhJyB8ICdob2dhcicgfCAncGVyc29uYScgfCAnZXRjLi4uJztcclxuZXhwb3J0IHR5cGUgRm9yUGsgPSBGb3JQa1JhaXogJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa10/OiBudW1iZXJcclxufVxyXG5leHBvcnQgdHlwZSBQbGFpbkZvclBrID0gJ3tcImZvcm11bGFyaW9cIjpcIkY6RjFcIixcInZpdmllbmRhXCI6XCIxMDIwMlwiLFwicGVyc29uYVwiOm51bGx9JyB8ICdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7IFtuIGluIG51bWJlcl06IFQgfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1VuYVVBID0ge1xyXG4gICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOiBWYWxvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFMYXNVQSA9IHtcclxuICAgIFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTogT2JqZXRvTnVtZXJhZG9PQXJyYXk8UmVzcHVlc3Rhcz5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3RhcyA9IFJlc3B1ZXN0YXNVbmFVQSAmIFJlc3B1ZXN0YUxhc1VBXHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzUmFpeiA9IFJlc3B1ZXN0YXMgJiB7XHJcbiAgICByZXN1bWVuRXN0YWRvOiBSZXN1bWVuRXN0YWRvXHJcbiAgICByZXN1bWVuRXN0YWRvU3VwOiBSZXN1bWVuRXN0YWRvXHJcbiAgICAkZGlydHk6IGJvb2xlYW5cclxuICAgIGNvZE5vUmVhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb2RSZWE6IG51bWJlciB8IG51bGxcclxuICAgIGNvZE5vUmVhU3VwOiBzdHJpbmcgfCBudWxsXHJcbiAgICBjb2RSZWFTdXA6IG51bWJlciB8IG51bGxcclxufVxyXG5cclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBVbmlkYWRBbmFsaXNpcyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBhZHJlPzogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIHBrX2FncmVnYWRhOiBDYW1wb1BrLFxyXG4gICAgcHJpbmNpcGFsPzogYm9vbGVhbixcclxuICAgIGhpamFzOiB7IFtrIGluIElkVW5pZGFkQW5hbGlzaXNdPzogVW5pZGFkQW5hbGlzaXMgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBURU0gPSB7XHJcbiAgICBub21jYWxsZTogc3RyaW5nXHJcbiAgICBkb21pbmlvOiBudW1iZXJcclxuICAgIHNlY3Rvcjogc3RyaW5nXHJcbiAgICBlZGlmaWNpbzogc3RyaW5nXHJcbiAgICBlbnRyYWRhOiBzdHJpbmdcclxuICAgIG5yb2NhdGFzdHJhbDogc3RyaW5nXHJcbiAgICBwaXNvOiBzdHJpbmdcclxuICAgIGRlcGFydGFtZW50bzogc3RyaW5nXHJcbiAgICBoYWJpdGFjaW9uOiBzdHJpbmdcclxuICAgIGNhc2E6IHN0cmluZ1xyXG4gICAgcHJpb3JpZGFkOiAxIHwgMiB8IDNcclxuICAgIG9ic2VydmFjaW9uZXM6IHN0cmluZ1xyXG4gICAgc2VsZWNjaW9uYWRvOiBudW1iZXIsXHJcbiAgICBjaXRhPzogc3RyaW5nLFxyXG4gICAgY2FyZ2E6IHN0cmluZyxcclxuICAgIHNlbWFuYT86IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSZXN1bWVuRXN0YWRvID0gJ3ZhY2lvJyB8ICdjb24gcHJvYmxlbWFzJyB8ICdpbmNvbXBsZXRvJyB8ICdvaycgfCAnbm8gcmVhJyB8ICdjaXRhIHBhY3RhZGEnO1xyXG5cclxuZXhwb3J0IHR5cGUgSW5mb1RhcmVhID0ge1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIG5vdGFzPzogc3RyaW5nXHJcbiAgICBmZWNoYV9hc2lnbmFjaW9uPzogRGF0ZVxyXG4gICAgYXNpZ25hZG8/OiBzdHJpbmdcclxuICAgIG1haW5fZm9ybTogSWRGb3JtdWxhcmlvXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFZpc2l0YSA9IHtcclxuICAgIGZlY2hhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBob3JhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZHBlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0hkclVhUHBhbCA9IHtcclxuICAgIHRhcmVhOiBJbmZvVGFyZWFcclxuICAgIHRlbTogVEVNXHJcblxyXG4gICAgLypcclxuICAgICAgICBhY2xhcmFjacOzbjpcclxuICAgICAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgICAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiAgICAqL1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZENhcmdhID0gXCIxXCIgfCBcIjJcIiB8IFwiZXRjXCJcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0NhcmdhID0gJ3Jlc3VtZW4nIHwgJ3JlbGV2YW1pZW50bycgfCAncmVjaWJvJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2EgPSB7XHJcbiAgICBmZWNoYTogRGF0ZVxyXG4gICAgZXN0YWRvX2NhcmdhOiBFc3RhZG9DYXJnYVxyXG4gICAgbmVjZXNhcmlhczogbnVtYmVyXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmdcclxuICAgIHJlY2VwY2lvbmlzdGE6IHN0cmluZ1xyXG4gICAgcHVlZGVfYXV0b2dlbmVyYXI6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2FzID0ge1xyXG4gICAgW2lkQ2FyZ2EgaW4gSWRDYXJnYV06IENhcmdhXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgPSBTdHJ1Y3R1cmU8SWRWYXJpYWJsZSwgVmFsb3IsIElkRmluPjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9EZXNwbGllZ3VlID0gJ21ldGFkYXRvcycgfCAncmVsZXZhbWllbnRvJyB8ICdQREYnXHJcblxyXG5leHBvcnQgdHlwZSBQYW50YWxsYU5hdmVnYWNpb24gPSAnaGRyJyB8ICdzaW5jcm9uaXphY2lvbicgfCAnc2luY3Jvbml6YWNpb25fcmVxdWVyaWRhJyB8ICdtb2RvJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9Gb3JtdWxhcmlvID0ge1xyXG4gICAgY2FzaWxsZXJvczogRm9ybXVsYXJpbywgLy8gY2FzaWxsZXJvcyBhcGxhbmFkb3NcclxuICAgIGVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3I6IEVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgLy8gZXN0cnVjdHVyYSBkZSB2YXJpYWJsZXMgcGFyYSBlbCBSb3dWYWxpZGF0b3JcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRSZXN1bHRhZG8gPSAnQVZFUklHVUFSJyB8ICdUT0RPJztcclxuZXhwb3J0IHR5cGUgSWRTZW1hbmEgPSAxIHwgMiB8ICdldGMnXHJcblxyXG5leHBvcnQgdHlwZSBTZW1hbmEgPSB7XHJcbiAgICBvcGVyYXRpdm86IElkT3BlcmF0aXZvO1xyXG4gICAgc2VtYW5hOiBudW1iZXI7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9kZXNkZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBzZW1hbmFfcmVmZXJlbmNpYV9oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICAnMzBkaWFzX3JlZmVyZW5jaWFfZGVzZGUnPzogc3RyaW5nIHwgbnVsbDtcclxuICAgICczMGRpYXNfcmVmZXJlbmNpYV9oYXN0YSc/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgbWVzX3JlZmVyZW5jaWE/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgY2FyZ2FfZW5jX2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX2VuY19oYXN0YT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjYXJnYV9yZWN1X2Rlc2RlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhcmdhX3JlY3VfaGFzdGE/OiBzdHJpbmcgfCBudWxsO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgVGFyZWFzRXN0cnVjdHVyYSA9IHtcclxuICAgIFtpZFRhcmVhIGluIElkVGFyZWFdOiB7XHJcbiAgICAgICAgcmVzdWx0YWRvczoge1xyXG4gICAgICAgICAgICBbaWRSZXN1bHRhZG8gaW4gSWRSZXN1bHRhZG9dOiB7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwY2lvbjogc3RyaW5nXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEVzdHJ1Y3R1cmEgPSB7XHJcbiAgICBmb3JtdWxhcmlvczoge1xyXG4gICAgICAgIFtub21icmVGb3JtdWxhcmlvIGluIElkRm9ybXVsYXJpb106IEluZm9Gb3JtdWxhcmlvXHJcbiAgICB9XHJcbiAgICB1bmlkYWRlc19hbmFsaXNpczoge1xyXG4gICAgICAgIFtpZFVuaWRhZEFuYWxpc2lzIGluIElkVW5pZGFkQW5hbGlzaXNdOiBVbmlkYWRBbmFsaXNpc1xyXG4gICAgfVxyXG4gICAgdGFyZWFzOiBUYXJlYXNFc3RydWN0dXJhXHJcbiAgICB1YVBwYWw6IElkVW5pZGFkQW5hbGlzaXNcclxuICAgIHBrQWdyZWdhZGFVYVBwYWw6IENhbXBvUGtSYWl6XHJcbiAgICB0aW1lc3RhbXA6IG51bWJlclxyXG4gICAgb3BlcmF0aXZvOiBJZE9wZXJhdGl2b1xyXG4gICAgY29uZmlnU29ydGVvOiBDb25maWd1cmFjaW9uU29ydGVvXHJcbiAgICBoYWJpbGl0YWNpb25Cb3RvbkZvcm11bGFyaW86IENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW9cclxuICAgIGNvblJlYUhvZ2FyOiBib29sZWFuXHJcbiAgICBub1JlYXM6IHtcclxuICAgICAgICBub19yZWE6IHN0cmluZ1xyXG4gICAgICAgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuICAgICAgICBncnVwbzogc3RyaW5nXHJcbiAgICAgICAgdmFyaWFibGU6IHN0cmluZ1xyXG4gICAgICAgIHZhbG9yOiBzdHJpbmdcclxuICAgICAgICBncnVwbzA6IHN0cmluZ1xyXG4gICAgfVtdXHJcbiAgICBub1JlYXNTdXA6IHtcclxuICAgICAgICBub19yZWFfc3VwOiBzdHJpbmdcclxuICAgICAgICBkZXNjX25vcmVhX3N1cDogc3RyaW5nXHJcbiAgICAgICAgZ3J1cG9fc3VwOiBzdHJpbmdcclxuICAgICAgICB2YXJpYWJsZV9zdXA6IHN0cmluZ1xyXG4gICAgICAgIHZhbG9yX3N1cDogc3RyaW5nXHJcbiAgICAgICAgZ3J1cG8wX3N1cDogc3RyaW5nXHJcbiAgICB9W10sXHJcbiAgICBzZW1hbmFzOiB7IFtpZFNlbWFuYSBpbiBJZFNlbWFuYV06IFNlbWFuYSB9XHJcbiAgICBkZWZhdWx0SW5mb3JtYWNpb25IZHI6IERhdG9zSGRyVWFQcGFsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkRW5jID0gMTMwMDMxIHwgMTMwMDMyO1xyXG5leHBvcnQgdHlwZSBJbmZvcm1hY2lvbkhkciA9IHsgW2VuYyBpbiBJZEVuY106IERhdG9zSGRyVWFQcGFsIH1cclxuXHJcbmV4cG9ydCB0eXBlIENhc29TdGF0ZSA9IHtcclxuICAgIG9wY2lvbmVzOiB7IC8vIGRhdG9zIGRlIG5hdmVnYWNpw7NuIHF1ZSBlbGlqZSBlbCB1c3VhcmlvXHJcbiAgICAgICAgZm9yUGs6IEZvclBrIHwgbnVsbCAvLyDDrW5kaWNlIGRlbnRybyBkZSBsYXMgdW5pZGFkZXMgZGUgYW7DoWxpc2lzLiBOdWxsID0gZW4gaG9qYSBkZSBydXRhXHJcbiAgICAgICAgcGlsYUZvclBrOiBGb3JQa1tdXHJcbiAgICAgICAgbW9kb0Rlc3BsaWVndWU6IE1vZG9EZXNwbGllZ3VlXHJcbiAgICAgICAgbW9kb0RpcmVjdG86IGJvb2xlYW5cclxuICAgICAgICBtb2RvQm9ycmFyUmVzcHVlc3RhOiBJZFZhcmlhYmxlIHwgbnVsbFxyXG4gICAgICAgIGNvbkNhbXBvT3BjaW9uZXM6IGJvb2xlYW5cclxuICAgICAgICBzYWx0b0F1dG9tYXRpY286IGJvb2xlYW5cclxuICAgICAgICBwYW50YWxsYUFjdHVhbDogUGFudGFsbGFOYXZlZ2FjaW9uXHJcbiAgICAgICAgYXZpc29QZXJzaXN0ZW50ZTogeyB0aXBvOiAnaW5mbycgfCAnc3VjY2VzcycgfCAnZXJyb3InLCBtZW5zYWplOiBzdHJpbmd9IHwgbnVsbFxyXG4gICAgICAgIGNvbW9kaW5lczoge1tpZENvbW9kaW4gaW4gSWRDb21vZGluXT86IHN0cmluZ31cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGVmT3BlcmF0aXZvID0ge1xyXG4gICAgZXNOb1JlYTogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kTm9SZWE6IHN0cmluZyB8IG51bGwsIGVzTm9SZWE6IGJvb2xlYW4gfSxcclxuICAgIGVzTm9SZWFTdXA6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzKSA9PiB7IGNvZE5vUmVhU3VwOiBzdHJpbmcgfCBudWxsLCBlc05vUmVhU3VwOiBib29sZWFuIH0sXHJcbiAgICBlc1JlYWxpemFkYTogKHJlc3B1ZXN0YXM6IFJlc3B1ZXN0YXMpID0+IHsgY29kUmVhOiBudW1iZXIgfCBudWxsLCBlc1JlYTogYm9vbGVhbiB9LFxyXG4gICAgZXNSZWFsaXphZGFTdXA6IChyZXNwdWVzdGFzOiBSZXNwdWVzdGFzKSA9PiB7IGNvZFJlYVN1cDogbnVtYmVyIHwgbnVsbCwgZXNSZWFTdXA6IGJvb2xlYW4gfSxcclxuICAgIFVBcHJpbmNpcGFsOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgZGVmVUE6IHsgW2kgaW4gSWRVbmlkYWRBbmFsaXNpc106IHsgcGs6IElkVmFyaWFibGUsIGluY2x1aWRhczogSWRVbmlkYWRBbmFsaXNpc1tdLCBpZHNGb3I6IElkRm9ybXVsYXJpb1tdIH0gfSxcclxuICAgIGRlZkZvcjogeyBbZiBpbiBJZEZvcm11bGFyaW9dOiB7LyphcmJvbFVBOklkVW5pZGFkQW5hbGlzaXNbXSwgKi8gaGVybWFubz86IHRydWUgfSB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzID0ge1xyXG4gICAgcmVzcHVlc3RhczogeyBbdWEgaW4gSWRVbmlkYWRBbmFsaXNpc106IFJlc3B1ZXN0YXNSYWl6W10gfVxyXG4gICAgbW9kb0FsbWFjZW5hbWllbnRvOiBNb2RvQWxtYWNlbmFtaWVudG9cclxuICAgIHBlcnNvbmE6IHN0cmluZ1xyXG4gICAgdGFyZWE6IElkVGFyZWFcclxuICAgIGlkcGVyOiBzdHJpbmdcclxuICAgIGNhcmdhczogQ2FyZ2FzXHJcbiAgICBpbmZvcm1hY2lvbkhkcjogSW5mb3JtYWNpb25IZHJcclxuICAgIHNvbG9MZWN0dXJhOiBib29sZWFuXHJcbiAgICB0b2tlbj86IHN0cmluZ1xyXG4gICAgbnVtX3NpbmNybz86IG51bWJlclxyXG4gICAgdGltZXN0YW1wRXN0cnVjdHVyYT86IG51bWJlclxyXG4gICAgcGVybWl0ZUJvcnJhckVsZW1lbnRvc1VBPzogYm9vbGVhblxyXG59XHJcblxyXG50eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSA9IHtcclxuICAgIG1ldG9kbzogXCJ0YWJsYVwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdGFibGE6IHN0cmluZ1tdLFxyXG4gICAgICAgIHZhcl9sZXRyYTogSWRWYXJpYWJsZSxcclxuICAgIH1cclxufVxyXG5cclxudHlwZSBDb25maWd1cmFjaW9uU29ydGVvSGFzaCA9IHtcclxuICAgIG1ldG9kbzogXCJoYXNoXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB2YXJfY29lZjogW1xyXG4gICAgICAgICAgICB7IHZhcjogSWRWYXJpYWJsZSwgY29lZjogbnVtYmVyIH0sXHJcbiAgICAgICAgICAgIHsgdmFyOiBJZFZhcmlhYmxlLCBjb2VmOiBudW1iZXIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICAgIGRpdmlzb3I6IG51bWJlclxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvID0geyBba2V5IGluIElkRm9ybXVsYXJpb106IENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvIH1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25IYWJpbGl0YXJCb3RvbkZvcm11bGFyaW8gPSB7IFtrZXkgaW4gSWRGb3JtdWxhcmlvXTogQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb0Zvcm0gfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICB1bmlkYWRfYW5hbGlzaXNfcGFkcmU6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZDogc3RyaW5nIC8vXCJub3QgKHAxKSBvciBubyB0IChwMikgb3Igbm90KHAzKVwiXHJcbiAgICBleHByX2luY29tcGxldGl0dWQ6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWRfanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZF9qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTogeyBkb21pbmlvOiBudW1iZXIsIGV4cHI6IHN0cmluZyB9XHJcbiAgICB9XHJcbiAgICBkaXNwYXJhZG9yOiBJZFZhcmlhYmxlIC8vXCJwOVwiXHJcbiAgICAvL2ZpbHRybzogc3RyaW5nIC8vXCJwMz49MThcIlxyXG4gICAgZmlsdHJvOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOiB7IGRvbWluaW86IG51bWJlciwgZXhwcjogc3RyaW5nIH1cclxuICAgIH1cclxuICAgIC8vZmlsdHJvX2pzOiBzdHJpbmcgLy9zZSBjcmVhIGFsIGNvbXBpbGFyXHJcbiAgICBmaWx0cm9fanM6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06IHsgZG9taW5pbzogbnVtYmVyLCBleHByOiBzdHJpbmcgfVxyXG4gICAgfVxyXG4gICAgb3JkZW46IHtcclxuICAgICAgICB2YXJpYWJsZTogSWRWYXJpYWJsZVxyXG4gICAgICAgIG9yZGVuOiAxIHwgLTFcclxuICAgIH1bXSAvL1tcInAzXCIsIFwicDJcIiwgXCJwMVwiLCBcInAwXCJdLCAvLyBwMCBlcyBjb25zdHJ1aWRhLCBubyB2YSBlbiBwYXLDoW1ldHJvcywgc2UgcG9uZSBwYXJhIHF1ZSBlbCBvcmRlbiBzZWEgZGV0ZXJtaW7DrXN0aWNvXHJcbiAgICBwYXJhbWV0cm9zOiBJZFZhcmlhYmxlW10vLyBbXCJwMVwiLFwicDJcIixcInAzXCIsIFwicDRcIiwgXCJwNVwiLCBcInA2XCJdLCAvLyB2YXJpYWJsZXMgcXVlIGFudWxhbiBhbCBkaXNwYXJhZG9yXHJcbiAgICBjYW50aWRhZF9zb3J0ZWFibGVzOiBJZFZhcmlhYmxlXHJcbiAgICBjYW50aWRhZF90b3RhbDogSWRWYXJpYWJsZVxyXG4gICAgcmVzdWx0YWRvOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgcmVzdWx0YWRvX21hbnVhbDogSWRWYXJpYWJsZSAvL1wicDExXCJcclxuICAgIHNvcnRlYWRvX21vc3RyYXI/OiB7IHNvdXJjZTogSWRWYXJpYWJsZSwgdGFyZ2V0OiBJZFZhcmlhYmxlIH1bXSxcclxuICAgIGluY29tcGxldGFzOiBJZFZhcmlhYmxlXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBOiBJZFZhcmlhYmxlLy8nJEIuRjpTMV9QJ1xyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQUluZGl2aWR1YWw/OiBJZFZhcmlhYmxlIC8vJyRCLkY6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX2luZGl2aWR1YWw/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX3BhZHJlPzogSWRGb3JtdWxhcmlvIC8vICdGOlMxJ1xyXG59ICYgKENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoIHwgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhKVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvbkhhYmlsaXRhckJvdG9uRm9ybXVsYXJpb0Zvcm0gPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICBleHByX2hhYmlsaXRhcl9ib3Rvbjogc3RyaW5nLFxyXG4gICAgZXhwcl9oYWJpbGl0YXJfYm90b25fanM6IHN0cmluZyxcclxuICAgIGhhYmlsaXRhcl9hZ3JlZ2FyX2xpc3RvOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluRm9yUGsoZm9yUGs6IEZvclBrKTogUGxhaW5Gb3JQayB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZm9yUGspO1xyXG59XHJcblxyXG5leHBvcnQgdmFyIGl0ZXJhdG9yOiA8VD4obzogT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4pID0+IEl0ZXJhYmxlPFQ+ID0gTGlrZUFyLml0ZXJhdG9yXHJcbmV4cG9ydCB2YXIgZW1wdHk6IDxUPihvOiBPYmpldG9OdW1lcmFkb09BcnJheTxUPiB8IG51bGwgfCB1bmRlZmluZWQpID0+IGJvb2xlYW4gPSBMaWtlQXIuZW1wdHlcclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIG5hbWVzcGFjZSBteU93biB7XHJcbiAgICAgICAgaW50ZXJmYWNlIEFkZHJQYXJhbXMge1xyXG4gICAgICAgICAgICBzdGF0ZV9mb3JQazogc3RyaW5nXHJcbiAgICAgICAgICAgIHN0YXRlX3BpbGFGb3JQazogc3RyaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEaXJlY2Npb25BY2Npb24gPSAnYXZhbmNlJyB8ICdyZXRyb2Nlc28nIHwgJ2JsYW5xdWVvJ1xyXG5cclxuZXhwb3J0IHR5cGUgRXN0YWRvQWNjaW9uID0ge1xyXG4gICAgb3BlcmF0aXZvOiBzdHJpbmdcclxuICAgIGVzdGFkbzogc3RyaW5nXHJcbiAgICBlYWNjaW9uOiBzdHJpbmdcclxuICAgIGNvbmRpY2lvbjogc3RyaW5nXHJcbiAgICBlc3RhZG9fZGVzdGlubzogc3RyaW5nXHJcbiAgICBlYWNjaW9uX2RpcmVjY2lvbjogRGlyZWNjaW9uQWNjaW9uXHJcbiAgICBwYXRoX2ljb25vX3N2Zzogc3RyaW5nXHJcbiAgICBub21icmVfcHJvY2VkdXJlOiBzdHJpbmdcclxuICAgIG5vbWJyZV93c2NyZWVuOiBzdHJpbmdcclxuICAgIGRlc2FjdGl2YV9ib3RvbjogYm9vbGVhblxyXG4gICAgY29uZmlybWE6IGJvb2xlYW5cclxufVxyXG5leHBvcnQgdHlwZSBNb2RvRE0gPSAncHJvZHVjJyB8ICdjYXBhJzsiXX0=
|