contable 0.0.6 → 0.0.7

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 (118) hide show
  1. package/dist/client/client/client.js +240 -0
  2. package/dist/client/{menu.js → client/menu.js} +1 -1
  3. package/dist/client/client/redux-formulario.js +379 -0
  4. package/dist/client/client/render-components.js +750 -0
  5. package/dist/client/client/render-formulario.js +56 -0
  6. package/dist/client/client/render-general.js +197 -0
  7. package/dist/client/client/render-handlers.js +69 -0
  8. package/dist/client/client/tipos.js +13 -0
  9. package/dist/client/{tsconfig.json → client/tsconfig.json} +3 -4
  10. package/dist/{unlogged → client/unlogged}/tsconfig.json +1 -3
  11. package/dist/server/client/tipos.d.ts +119 -0
  12. package/dist/server/client/tipos.js +13 -0
  13. package/dist/server/{app-contable.d.ts → server/app-contable.d.ts} +63 -3
  14. package/dist/server/server/app-contable.js +192 -0
  15. package/dist/server/server/def-config.d.ts +1 -0
  16. package/dist/server/server/def-config.js +101 -0
  17. package/dist/server/server/procedures-contable.js +508 -0
  18. package/dist/server/{server-contable.js → server/server-contable.js} +1 -1
  19. package/dist/server/server/table-categorias_producto.js +29 -0
  20. package/dist/server/server/table-clientes.js +56 -0
  21. package/dist/server/server/table-condicion_iva.js +29 -0
  22. package/dist/server/server/table-estados_pedido.js +33 -0
  23. package/dist/server/server/table-estados_presupuesto.js +34 -0
  24. package/dist/server/server/table-insumos.js +44 -0
  25. package/dist/server/server/table-items_pedido.js +48 -0
  26. package/dist/server/server/table-items_presupuesto.js +48 -0
  27. package/dist/server/server/table-iva_productos.js +29 -0
  28. package/dist/server/server/table-parametros.js +38 -0
  29. package/dist/server/server/table-pedidos.js +48 -0
  30. package/dist/server/server/table-pedidos_pendientes.js +28 -0
  31. package/dist/server/server/table-pedidos_vencidos.js +28 -0
  32. package/dist/server/server/table-presupuestos.js +56 -0
  33. package/dist/server/server/table-productos.js +70 -0
  34. package/dist/server/server/table-productos_clientes.js +22 -0
  35. package/dist/server/server/table-productos_generales.js +22 -0
  36. package/dist/server/server/table-productos_insumos.js +47 -0
  37. package/dist/server/server/table-usuarios.js +44 -0
  38. package/dist/server/{types-contable.d.ts → server/types-contable.d.ts} +14 -3
  39. package/dist/server/server/types-contable.js +28 -0
  40. package/dist/unlogged/unlogged/adapt.js +8 -0
  41. package/dist/unlogged/unlogged/css/styles.styl +88 -0
  42. package/dist/unlogged/unlogged/img/login-logo-icon.png +0 -0
  43. package/dist/unlogged/unlogged/img/logo.png +0 -0
  44. package/dist/unlogged/unlogged/tsconfig.json +13 -0
  45. package/dist/unlogged/unlogged/unlogged.js +13 -0
  46. package/package.json +22 -5
  47. package/dist/client/client.js +0 -182
  48. package/dist/client/redux-formulario.js +0 -326
  49. package/dist/client/render-components.js +0 -617
  50. package/dist/client/render-formulario.js +0 -56
  51. package/dist/client/render-general.js +0 -172
  52. package/dist/client/render-handlers.js +0 -29
  53. package/dist/client/tipos.js +0 -13
  54. package/dist/server/app-contable.js +0 -192
  55. package/dist/server/def-config.d.ts +0 -1
  56. package/dist/server/def-config.js +0 -100
  57. package/dist/server/procedures-contable.js +0 -508
  58. package/dist/server/table-categorias_producto.js +0 -29
  59. package/dist/server/table-clientes.js +0 -56
  60. package/dist/server/table-condicion_iva.js +0 -29
  61. package/dist/server/table-estados_pedido.js +0 -33
  62. package/dist/server/table-estados_presupuesto.js +0 -34
  63. package/dist/server/table-insumos.js +0 -44
  64. package/dist/server/table-items_pedido.js +0 -48
  65. package/dist/server/table-items_presupuesto.js +0 -48
  66. package/dist/server/table-iva_productos.js +0 -29
  67. package/dist/server/table-parametros.js +0 -38
  68. package/dist/server/table-pedidos.js +0 -48
  69. package/dist/server/table-pedidos_pendientes.js +0 -28
  70. package/dist/server/table-pedidos_vencidos.js +0 -28
  71. package/dist/server/table-presupuestos.js +0 -56
  72. package/dist/server/table-productos.js +0 -70
  73. package/dist/server/table-productos_clientes.js +0 -22
  74. package/dist/server/table-productos_generales.js +0 -22
  75. package/dist/server/table-productos_insumos.js +0 -47
  76. package/dist/server/table-usuarios.js +0 -44
  77. package/dist/server/tsconfig.json +0 -10
  78. package/dist/server/types-contable.js +0 -28
  79. package/dist/unlogged/adapt.js +0 -8
  80. package/dist/unlogged/unlogged.js +0 -118
  81. /package/dist/client/{client.d.ts → client/client.d.ts} +0 -0
  82. /package/dist/client/{img → client/img}/bannersuperior.png +0 -0
  83. /package/dist/client/{menu.d.ts → client/menu.d.ts} +0 -0
  84. /package/dist/client/{redux-formulario.d.ts → client/redux-formulario.d.ts} +0 -0
  85. /package/dist/client/{render-components.d.ts → client/render-components.d.ts} +0 -0
  86. /package/dist/client/{render-components.tsx → client/render-components.tsx} +0 -0
  87. /package/dist/client/{render-formulario.d.ts → client/render-formulario.d.ts} +0 -0
  88. /package/dist/client/{render-formulario.tsx → client/render-formulario.tsx} +0 -0
  89. /package/dist/client/{render-general.d.ts → client/render-general.d.ts} +0 -0
  90. /package/dist/client/{render-general.tsx → client/render-general.tsx} +0 -0
  91. /package/dist/client/{render-handlers.d.ts → client/render-handlers.d.ts} +0 -0
  92. /package/dist/client/{tipos.d.ts → client/tipos.d.ts} +0 -0
  93. /package/dist/{unlogged → client/unlogged}/css/styles.styl +0 -0
  94. /package/dist/{unlogged/img/login-logo-icon.png.png → client/unlogged/img/login-logo-icon.png} +0 -0
  95. /package/dist/{unlogged → client/unlogged}/img/logo.png +0 -0
  96. /package/dist/server/{procedures-contable.d.ts → server/procedures-contable.d.ts} +0 -0
  97. /package/dist/server/{server-contable.d.ts → server/server-contable.d.ts} +0 -0
  98. /package/dist/server/{table-categorias_producto.d.ts → server/table-categorias_producto.d.ts} +0 -0
  99. /package/dist/server/{table-clientes.d.ts → server/table-clientes.d.ts} +0 -0
  100. /package/dist/server/{table-condicion_iva.d.ts → server/table-condicion_iva.d.ts} +0 -0
  101. /package/dist/server/{table-estados_pedido.d.ts → server/table-estados_pedido.d.ts} +0 -0
  102. /package/dist/server/{table-estados_presupuesto.d.ts → server/table-estados_presupuesto.d.ts} +0 -0
  103. /package/dist/server/{table-insumos.d.ts → server/table-insumos.d.ts} +0 -0
  104. /package/dist/server/{table-items_pedido.d.ts → server/table-items_pedido.d.ts} +0 -0
  105. /package/dist/server/{table-items_presupuesto.d.ts → server/table-items_presupuesto.d.ts} +0 -0
  106. /package/dist/server/{table-iva_productos.d.ts → server/table-iva_productos.d.ts} +0 -0
  107. /package/dist/server/{table-parametros.d.ts → server/table-parametros.d.ts} +0 -0
  108. /package/dist/server/{table-pedidos.d.ts → server/table-pedidos.d.ts} +0 -0
  109. /package/dist/server/{table-pedidos_pendientes.d.ts → server/table-pedidos_pendientes.d.ts} +0 -0
  110. /package/dist/server/{table-pedidos_vencidos.d.ts → server/table-pedidos_vencidos.d.ts} +0 -0
  111. /package/dist/server/{table-presupuestos.d.ts → server/table-presupuestos.d.ts} +0 -0
  112. /package/dist/server/{table-productos.d.ts → server/table-productos.d.ts} +0 -0
  113. /package/dist/server/{table-productos_clientes.d.ts → server/table-productos_clientes.d.ts} +0 -0
  114. /package/dist/server/{table-productos_generales.d.ts → server/table-productos_generales.d.ts} +0 -0
  115. /package/dist/server/{table-productos_insumos.d.ts → server/table-productos_insumos.d.ts} +0 -0
  116. /package/dist/server/{table-usuarios.d.ts → server/table-usuarios.d.ts} +0 -0
  117. /package/dist/unlogged/{adapt.d.ts → unlogged/adapt.d.ts} +0 -0
  118. /package/dist/unlogged/{unlogged.d.ts → unlogged/unlogged.d.ts} +0 -0
@@ -0,0 +1,240 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ (function (factory) {
38
+ if (typeof module === "object" && typeof module.exports === "object") {
39
+ var v = factory(require, exports);
40
+ if (v !== undefined) module.exports = v;
41
+ }
42
+ else if (typeof define === "function" && define.amd) {
43
+ define(["require", "exports", "js-to-html", "typed-controls", "./redux-formulario"], factory);
44
+ }
45
+ })(function (require, exports) {
46
+ "use strict";
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ var js_to_html_1 = require("js-to-html");
49
+ var TypedControls = require("typed-controls");
50
+ var redux_formulario_1 = require("./redux-formulario");
51
+ myOwn.autoSetupFunctions.push(function () { return __awaiter(void 0, void 0, void 0, function () {
52
+ function colorearEstado(depot, pedidoOpresupuestoString) {
53
+ depot.rowControls['estado'].style.backgroundColor = depot.rowControls["estados_".concat(pedidoOpresupuestoString, "__color")].getTypedValue();
54
+ }
55
+ var my, validateHexaColor;
56
+ return __generator(this, function (_a) {
57
+ my = myOwn;
58
+ myOwn.wScreens.tablero = function (_addrParams) {
59
+ var mainLayout = document.getElementById('main_layout');
60
+ mainLayout.appendChild(js_to_html_1.html.h1("Tablero de control").create());
61
+ ['vencidos', 'pendientes'].forEach(function (element) {
62
+ mainLayout.appendChild(js_to_html_1.html.h2("Pedidos ".concat(element)).create());
63
+ var myDiv = js_to_html_1.html.div().create();
64
+ mainLayout.appendChild(myDiv);
65
+ my.tableGrid("pedidos_".concat(element), myDiv, {});
66
+ });
67
+ };
68
+ my.clientSides.verCliente = {
69
+ update: false,
70
+ prepare: function (depot, fieldName) {
71
+ var td = depot.rowControls[fieldName];
72
+ var boton = js_to_html_1.html.button({}, 'ver').create();
73
+ td.appendChild(boton);
74
+ td.onclick = function () {
75
+ return __awaiter(this, void 0, void 0, function () {
76
+ return __generator(this, function (_a) {
77
+ desplegarCliente(depot);
78
+ return [2 /*return*/];
79
+ });
80
+ });
81
+ };
82
+ },
83
+ };
84
+ my.clientSides.accionesPresupuesto = {
85
+ prepare: function () { return null; },
86
+ update: function (depot, fieldName) {
87
+ var _this = this;
88
+ var td = depot.rowControls[fieldName];
89
+ td.innerHTML = '';
90
+ colorearEstado(depot, 'presupuesto');
91
+ var td = depot.rowControls[fieldName];
92
+ var boton = my.createForkeableButton({ menuType: 'presupuesto', name: "gestionar,presupuesto", label: "abrir" }, {});
93
+ boton.href = boton.href + '&' + 'presupuesto' + '=' + depot.row.presupuesto.toString();
94
+ td.appendChild(boton);
95
+ var puedeEditarPresupuesto = depot.rowControls['estados_presupuesto__permite_editar'].getTypedValue();
96
+ if (puedeEditarPresupuesto) {
97
+ var boton_1 = my.createForkeableButton({ menuType: 'pedido', name: 'gestionar,pedido', label: "aceptar" }, {});
98
+ boton_1.href = boton_1.href + '&presupuesto=' + depot.row['presupuesto'].toString();
99
+ td.appendChild(boton_1);
100
+ }
101
+ var presupuesto = depot.rowControls['presupuesto'].getTypedValue();
102
+ ['anular', 'rechazar'].forEach(function (accion) {
103
+ if (puedeEditarPresupuesto) {
104
+ var boton_2 = js_to_html_1.html.button({}, accion).create();
105
+ boton_2.onclick = function () { return __awaiter(_this, void 0, void 0, function () {
106
+ var err_1, grid;
107
+ return __generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0: return [4 /*yield*/, confirmPromise("\u00BFest\u00E1 por ".concat(accion, " el presupuesto? Esta acci\u00F3n no se podr\u00E1 deshacer"))];
110
+ case 1:
111
+ _a.sent();
112
+ _a.label = 2;
113
+ case 2:
114
+ _a.trys.push([2, 4, 5, 7]);
115
+ return [4 /*yield*/, my.ajax["presupuesto_".concat(accion)]({
116
+ presupuesto: presupuesto
117
+ })];
118
+ case 3:
119
+ _a.sent();
120
+ return [3 /*break*/, 7];
121
+ case 4:
122
+ err_1 = _a.sent();
123
+ alertPromise(err_1.message);
124
+ return [3 /*break*/, 7];
125
+ case 5:
126
+ grid = depot.manager;
127
+ return [4 /*yield*/, grid.retrieveRowAndRefresh(depot)];
128
+ case 6:
129
+ _a.sent();
130
+ return [7 /*endfinally*/];
131
+ case 7: return [2 /*return*/];
132
+ }
133
+ });
134
+ }); };
135
+ td.appendChild(boton_2);
136
+ }
137
+ });
138
+ },
139
+ };
140
+ my.clientSides.accionesPedido = {
141
+ prepare: function () { return null; },
142
+ update: function (depot, fieldName) {
143
+ var td = depot.rowControls[fieldName];
144
+ td.innerHTML = '';
145
+ colorearEstado(depot, 'pedido');
146
+ var td = depot.rowControls[fieldName];
147
+ var boton = my.createForkeableButton({ menuType: 'pedido', name: "gestionar,pedido", label: "abrir" }, {});
148
+ boton.href = boton.href + '&' + 'pedido' + '=' + depot.row.pedido.toString();
149
+ td.appendChild(boton);
150
+ }
151
+ };
152
+ myOwn.wScreens.presupuestos = function (_addrParams) {
153
+ var mainLayout = document.getElementById('main_layout');
154
+ var myDiv = js_to_html_1.html.div().create();
155
+ var boton = my.createForkeableButton({ menuType: 'presupuesto', name: 'gestionar,presupuesto', label: 'nuevo' }, {});
156
+ mainLayout.appendChild(boton);
157
+ mainLayout.appendChild(myDiv);
158
+ boton.onclick = function () {
159
+ return __awaiter(this, void 0, void 0, function () {
160
+ return __generator(this, function (_a) {
161
+ my.removeSessionVar(redux_formulario_1.STORAGE_STATE_NAME);
162
+ return [2 /*return*/];
163
+ });
164
+ });
165
+ };
166
+ my.tableGrid('presupuestos', myDiv, {});
167
+ };
168
+ myOwn.wScreens.pedidos = function (_addrParams) {
169
+ var mainLayout = document.getElementById('main_layout');
170
+ var myDiv = js_to_html_1.html.div().create();
171
+ var boton = my.createForkeableButton({ menuType: 'pedido', name: 'gestionar,pedido', label: 'nuevo' }, {});
172
+ //var boton = html.button({},'nuevo').create();
173
+ mainLayout.appendChild(boton);
174
+ mainLayout.appendChild(myDiv);
175
+ boton.onclick = function () {
176
+ return __awaiter(this, void 0, void 0, function () {
177
+ return __generator(this, function (_a) {
178
+ my.removeSessionVar(redux_formulario_1.STORAGE_STATE_NAME);
179
+ return [2 /*return*/];
180
+ });
181
+ });
182
+ };
183
+ my.tableGrid('pedidos', myDiv, {});
184
+ };
185
+ validateHexaColor = function (string) { return /^#[0-9A-F]{6}$/i.test(string); };
186
+ myOwn.clientSides.parsearColor = {
187
+ update: function (depot, fieldName) {
188
+ var myColor = depot.rowControls['color'].getTypedValue();
189
+ var isValidColor = validateHexaColor(myColor);
190
+ if (myColor && !isValidColor) {
191
+ alertPromise("color inválido!");
192
+ depot.rowControls['color'].setTypedValue(null, true);
193
+ }
194
+ var colorInput = js_to_html_1.html.input({ type: "color", value: isValidColor ? myColor : '#ffffff' }).create();
195
+ colorInput.onchange = function () {
196
+ depot.rowControls['color'].setTypedValue(colorInput.value, true);
197
+ };
198
+ depot.rowControls[fieldName].innerHTML = '';
199
+ depot.rowControls[fieldName].appendChild(colorInput);
200
+ },
201
+ prepare: function (depot, fieldName) { }
202
+ };
203
+ my.clientSides.clonarProducto = {
204
+ update: false,
205
+ prepare: function (depot, fieldName) {
206
+ var _a = depot.row, producto = _a.producto, nombre = _a.nombre;
207
+ var td = depot.rowControls[fieldName];
208
+ var boton = js_to_html_1.html.button({}, 'clonar').create();
209
+ td.appendChild(boton);
210
+ td.onclick = function () {
211
+ return __awaiter(this, void 0, void 0, function () {
212
+ var result, newDepot;
213
+ return __generator(this, function (_a) {
214
+ switch (_a.label) {
215
+ case 0: return [4 /*yield*/, confirmPromise("confirma clonado de producto (".concat(producto, ") \"").concat(nombre, "\"?"))];
216
+ case 1:
217
+ _a.sent();
218
+ return [4 /*yield*/, my.ajax.producto_clonar({
219
+ producto: producto,
220
+ })];
221
+ case 2:
222
+ result = _a.sent();
223
+ newDepot = depot.manager.createRowInsertElements(depot);
224
+ newDepot.manager.depotRefresh(newDepot, { updatedRow: result.productoNuevo, sendedForUpdate: {} });
225
+ newDepot.manager.retrieveRowAndRefresh(newDepot);
226
+ return [2 /*return*/];
227
+ }
228
+ });
229
+ });
230
+ };
231
+ },
232
+ };
233
+ myOwn.autoSetupFunctions.push(function autoSetupMyTables() {
234
+ TypedControls.showLupa = false;
235
+ });
236
+ return [2 /*return*/];
237
+ });
238
+ }); });
239
+ });
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFBQSx5Q0FBeUM7SUFDekMsOENBQWdEO0lBRWhELHVEQUF3RDtJQUd4RCxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBMEIxQixTQUFTLGNBQWMsQ0FBQyxLQUFLLEVBQUMsd0JBQStDO1lBQ3pFLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGtCQUFXLHdCQUF3QixZQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0SSxDQUFDOzs7WUEzQkcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUVmLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFDLFVBQVMsV0FBVztnQkFDdkMsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUUsQ0FBQztnQkFDekQsVUFBVSxDQUFDLFdBQVcsQ0FBQyxpQkFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQy9ELENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQWM7b0JBQzlDLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQUksQ0FBQyxFQUFFLENBQUMsa0JBQVcsT0FBTyxDQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLEtBQUssR0FBRyxpQkFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNoQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM5QixFQUFFLENBQUMs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WDt3Q0FDRSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3Q0FDNUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFDLEVBQUMsVUFBVSxFQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsZUFBZSxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7d0NBQzlGLFFBQVEsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLENBQUE7Ozs7O3FCQUNuRCxDQUFDO2dCQUNOLENBQUM7YUFDSixDQUFBO1lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLGlCQUFpQjtnQkFDcEQsYUFBYSxDQUFDLFFBQVEsR0FBQyxLQUFLLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7OztTQTBCTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2h0bWwsIEh0bWxUYWd9IGZyb20gXCJqcy10by1odG1sXCI7XHJcbmltcG9ydCAqIGFzIFR5cGVkQ29udHJvbHMgZnJvbSBcInR5cGVkLWNvbnRyb2xzXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQgeyBTVE9SQUdFX1NUQVRFX05BTUUgfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCI7XHJcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gXCJAbWF0ZXJpYWwtdWkvY29yZVwiO1xyXG5cclxubXlPd24uYXV0b1NldHVwRnVuY3Rpb25zLnB1c2goYXN5bmMgKCk9PntcclxuICAgIHZhciBteSA9IG15T3duO1xyXG5cclxuICAgIG15T3duLndTY3JlZW5zLnRhYmxlcm89ZnVuY3Rpb24oX2FkZHJQYXJhbXMpe1xyXG4gICAgICAgIHZhciBtYWluTGF5b3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5fbGF5b3V0JykhO1xyXG4gICAgICAgIG1haW5MYXlvdXQuYXBwZW5kQ2hpbGQoaHRtbC5oMShgVGFibGVybyBkZSBjb250cm9sYCkuY3JlYXRlKCkpO1xyXG4gICAgICAgIFsndmVuY2lkb3MnLCAncGVuZGllbnRlcyddLmZvckVhY2goKGVsZW1lbnQ6c3RyaW5nKT0+e1xyXG4gICAgICAgICAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGh0bWwuaDIoYFBlZGlkb3MgJHtlbGVtZW50fWApLmNyZWF0ZSgpKTtcclxuICAgICAgICAgICAgdmFyIG15RGl2ID0gaHRtbC5kaXYoKS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChteURpdik7XHJcbiAgICAgICAgICAgIG15LnRhYmxlR3JpZChgcGVkaWRvc18ke2VsZW1lbnR9YCxteURpdix7fSk7XHJcbiAgICAgICAgfSlcclxuICAgIH07XHJcblxyXG4gICAgbXkuY2xpZW50U2lkZXMudmVyQ2xpZW50ZSA9IHtcclxuICAgICAgICB1cGRhdGU6IGZhbHNlLFxyXG4gICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdCwgZmllbGROYW1lKSB7XHJcbiAgICAgICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHZhciBib3RvbiA9IGh0bWwuYnV0dG9uKHt9LCd2ZXInKS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoYm90b24pO1xyXG4gICAgICAgICAgICB0ZC5vbmNsaWNrPWFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICBkZXNwbGVnYXJDbGllbnRlKGRlcG90KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gY29sb3JlYXJFc3RhZG8oZGVwb3QscGVkaWRvT3ByZXN1cHVlc3RvU3RyaW5nOidwZWRpZG8nfCdwcmVzdXB1ZXN0bycgKXtcclxuICAgICAgICBkZXBvdC5yb3dDb250cm9sc1snZXN0YWRvJ10uc3R5bGUuYmFja2dyb3VuZENvbG9yPWRlcG90LnJvd0NvbnRyb2xzW2Blc3RhZG9zXyR7cGVkaWRvT3ByZXN1cHVlc3RvU3RyaW5nfV9fY29sb3JgXS5nZXRUeXBlZFZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbXkuY2xpZW50U2lkZXMuYWNjaW9uZXNQcmVzdXB1ZXN0byA9IHtcclxuICAgICAgICBwcmVwYXJlOiAoKT0+bnVsbCxcclxuICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uIChkZXBvdCwgZmllbGROYW1lKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHRkLmlubmVySFRNTD0nJztcclxuICAgICAgICAgICAgY29sb3JlYXJFc3RhZG8oZGVwb3QsICdwcmVzdXB1ZXN0bycpO1xyXG4gICAgICAgICAgICBsZXQgdGQgPSBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICBsZXQgYm90b24gPSBteS5jcmVhdGVGb3JrZWFibGVCdXR0b24oe21lbnVUeXBlOidwcmVzdXB1ZXN0bycsIG5hbWU6YGdlc3Rpb25hcixwcmVzdXB1ZXN0b2AgLCBsYWJlbDpcImFicmlyXCJ9LCB7fSk7XHJcbiAgICAgICAgICAgIGJvdG9uLmhyZWYgPSBib3Rvbi5ocmVmICsgJyYnKyAncHJlc3VwdWVzdG8nKyc9JytkZXBvdC5yb3cucHJlc3VwdWVzdG8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgICAgIGxldCBwdWVkZUVkaXRhclByZXN1cHVlc3RvID0gZGVwb3Qucm93Q29udHJvbHNbJ2VzdGFkb3NfcHJlc3VwdWVzdG9fX3Blcm1pdGVfZWRpdGFyJ10uZ2V0VHlwZWRWYWx1ZSgpO1xyXG4gICAgICAgICAgICBpZihwdWVkZUVkaXRhclByZXN1cHVlc3RvKXtcclxuICAgICAgICAgICAgICAgIGxldCBib3RvbiA9IG15LmNyZWF0ZUZvcmtlYWJsZUJ1dHRvbih7bWVudVR5cGU6J3BlZGlkbycsIG5hbWU6J2dlc3Rpb25hcixwZWRpZG8nLCBsYWJlbDpcImFjZXB0YXJcIn0sIHt9KTtcclxuICAgICAgICAgICAgICAgIGJvdG9uLmhyZWYgPSBib3Rvbi5ocmVmICsgJyZwcmVzdXB1ZXN0bz0nK2RlcG90LnJvd1sncHJlc3VwdWVzdG8nXS50b1N0cmluZygpXHJcbiAgICAgICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IHByZXN1cHVlc3RvID0gZGVwb3Qucm93Q29udHJvbHNbJ3ByZXN1cHVlc3RvJ10uZ2V0VHlwZWRWYWx1ZSgpO1xyXG4gICAgICAgICAgICBbJ2FudWxhcicsICdyZWNoYXphciddLmZvckVhY2goKGFjY2lvbik9PntcclxuICAgICAgICAgICAgICAgIGlmKHB1ZWRlRWRpdGFyUHJlc3VwdWVzdG8pe1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBib3RvbiA9IGh0bWwuYnV0dG9uKHt9LGFjY2lvbikuY3JlYXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYm90b24ub25jbGljayA9IGFzeW5jICgpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGNvbmZpcm1Qcm9taXNlKGDCv2VzdMOhIHBvciAke2FjY2lvbn0gZWwgcHJlc3VwdWVzdG8/IEVzdGEgYWNjacOzbiBubyBzZSBwb2Ryw6EgZGVzaGFjZXJgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbXkuYWpheFtgcHJlc3VwdWVzdG9fJHthY2Npb259YF0oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN1cHVlc3RvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydFByb21pc2UoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1maW5hbGx5e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGdyaWQ9ZGVwb3QubWFuYWdlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGdyaWQucmV0cmlldmVSb3dBbmRSZWZyZXNoKGRlcG90KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoYm90b24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH0sXHJcbiAgICB9XHJcblxyXG4gICAgbXkuY2xpZW50U2lkZXMuYWNjaW9uZXNQZWRpZG8gPSB7XHJcbiAgICAgICAgcHJlcGFyZTogKCk9Pm51bGwsXHJcbiAgICAgICAgdXBkYXRlOiBmdW5jdGlvbiAoZGVwb3QsIGZpZWxkTmFtZSkge1xyXG4gICAgICAgICAgICBsZXQgdGQgPSBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdO1xyXG4gICAgICAgICAgICB0ZC5pbm5lckhUTUw9Jyc7XHJcbiAgICAgICAgICAgIGNvbG9yZWFyRXN0YWRvKGRlcG90LCAncGVkaWRvJyk7XHJcbiAgICAgICAgICAgIGxldCB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIGxldCBib3RvbiA9IG15LmNyZWF0ZUZvcmtlYWJsZUJ1dHRvbih7bWVudVR5cGU6J3BlZGlkbycsIG5hbWU6YGdlc3Rpb25hcixwZWRpZG9gICwgbGFiZWw6XCJhYnJpclwifSwge30pO1xyXG4gICAgICAgICAgICBib3Rvbi5ocmVmID0gYm90b24uaHJlZiArICcmJysgJ3BlZGlkbycrJz0nK2RlcG90LnJvdy5wZWRpZG8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG15T3duLndTY3JlZW5zLnByZXN1cHVlc3Rvcz1mdW5jdGlvbihfYWRkclBhcmFtcyl7XHJcbiAgICAgICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICAgICAgdmFyIG15RGl2ID0gaHRtbC5kaXYoKS5jcmVhdGUoKTtcclxuICAgICAgICBsZXQgYm90b24gPSBteS5jcmVhdGVGb3JrZWFibGVCdXR0b24oe21lbnVUeXBlOidwcmVzdXB1ZXN0bycsIG5hbWU6J2dlc3Rpb25hcixwcmVzdXB1ZXN0bycsIGxhYmVsOidudWV2byd9LHt9KTtcclxuICAgICAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKGJvdG9uKTtcclxuICAgICAgICBtYWluTGF5b3V0LmFwcGVuZENoaWxkKG15RGl2KTtcclxuICAgICAgICBib3Rvbi5vbmNsaWNrPWFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIG15LnJlbW92ZVNlc3Npb25WYXIoU1RPUkFHRV9TVEFURV9OQU1FKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbXkudGFibGVHcmlkKCdwcmVzdXB1ZXN0b3MnLG15RGl2LHt9KTtcclxuICAgIH07XHJcblxyXG4gICAgbXlPd24ud1NjcmVlbnMucGVkaWRvcz1mdW5jdGlvbihfYWRkclBhcmFtcyl7XHJcbiAgICAgICAgdmFyIG1haW5MYXlvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbl9sYXlvdXQnKSE7XHJcbiAgICAgICAgdmFyIG15RGl2ID0gaHRtbC5kaXYoKS5jcmVhdGUoKTtcclxuICAgICAgICBsZXQgYm90b24gPSBteS5jcmVhdGVGb3JrZWFibGVCdXR0b24oe21lbnVUeXBlOidwZWRpZG8nLCBuYW1lOidnZXN0aW9uYXIscGVkaWRvJywgbGFiZWw6J251ZXZvJ30se30pO1xyXG4gICAgICAgIC8vdmFyIGJvdG9uID0gaHRtbC5idXR0b24oe30sJ251ZXZvJykuY3JlYXRlKCk7XHJcbiAgICAgICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChib3Rvbik7XHJcbiAgICAgICAgbWFpbkxheW91dC5hcHBlbmRDaGlsZChteURpdik7XHJcbiAgICAgICAgYm90b24ub25jbGljaz1hc3luYyBmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICBteS5yZW1vdmVTZXNzaW9uVmFyKFNUT1JBR0VfU1RBVEVfTkFNRSk7XHJcbiAgICAgICAgICAgIC8vaGlzdG9yeS5yZXBsYWNlU3RhdGUobnVsbCwgbnVsbCwgbG9jYXRpb24ub3JpZ2luK2xvY2F0aW9uLnBhdGhuYW1lK215Lm1lbnVTZXBhcmF0b3IrJ2k9Z2VzdGlvbmFyLHBlZGlkbycpO1xyXG4gICAgICAgICAgICAvL215LnNob3dQYWdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG15LnRhYmxlR3JpZCgncGVkaWRvcycsbXlEaXYse30pO1xyXG4gICAgfTtcclxuXHJcbiAgICB2YXIgdmFsaWRhdGVIZXhhQ29sb3I9KHN0cmluZzpzdHJpbmcpPT4gL14jWzAtOUEtRl17Nn0kL2kudGVzdChzdHJpbmcpO1xyXG5cclxuICAgIG15T3duLmNsaWVudFNpZGVzLnBhcnNlYXJDb2xvcj17XHJcbiAgICAgICAgdXBkYXRlOiAoZGVwb3QsIGZpZWxkTmFtZSk9PntcclxuICAgICAgICAgICAgdmFyIG15Q29sb3IgPSBkZXBvdC5yb3dDb250cm9sc1snY29sb3InXS5nZXRUeXBlZFZhbHVlKCk7XHJcbiAgICAgICAgICAgIHZhciBpc1ZhbGlkQ29sb3I9dmFsaWRhdGVIZXhhQ29sb3IobXlDb2xvcik7XHJcbiAgICAgICAgICAgIGlmKG15Q29sb3IgJiYgIWlzVmFsaWRDb2xvcil7XHJcbiAgICAgICAgICAgICAgICBhbGVydFByb21pc2UoXCJjb2xvciBpbnbDoWxpZG8hXCIpO1xyXG4gICAgICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbJ2NvbG9yJ10uc2V0VHlwZWRWYWx1ZShudWxsLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgY29sb3JJbnB1dCA9IGh0bWwuaW5wdXQoe3R5cGU6XCJjb2xvclwiLCB2YWx1ZTppc1ZhbGlkQ29sb3I/bXlDb2xvcjonI2ZmZmZmZid9KS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgY29sb3JJbnB1dC5vbmNoYW5nZT0oKT0+e1xyXG4gICAgICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbJ2NvbG9yJ10uc2V0VHlwZWRWYWx1ZShjb2xvcklucHV0LnZhbHVlLCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBkZXBvdC5yb3dDb250cm9sc1tmaWVsZE5hbWVdLmlubmVySFRNTD0nJztcclxuICAgICAgICAgICAgZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXS5hcHBlbmRDaGlsZChjb2xvcklucHV0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHByZXBhcmU6IChkZXBvdCwgZmllbGROYW1lKT0+e31cclxuICAgIH1cclxuXHJcbiAgICBteS5jbGllbnRTaWRlcy5jbG9uYXJQcm9kdWN0byA9IHtcclxuICAgICAgICB1cGRhdGU6IGZhbHNlLFxyXG4gICAgICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdCwgZmllbGROYW1lKSB7XHJcbiAgICAgICAgICAgIHZhciB7cHJvZHVjdG8sIG5vbWJyZX0gPSBkZXBvdC5yb3c7XHJcbiAgICAgICAgICAgIHZhciB0ZCA9IGRlcG90LnJvd0NvbnRyb2xzW2ZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgIHZhciBib3RvbiA9IGh0bWwuYnV0dG9uKHt9LCdjbG9uYXInKS5jcmVhdGUoKTtcclxuICAgICAgICAgICAgdGQuYXBwZW5kQ2hpbGQoYm90b24pO1xyXG4gICAgICAgICAgICB0ZC5vbmNsaWNrPWFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCBjb25maXJtUHJvbWlzZShgY29uZmlybWEgY2xvbmFkbyBkZSBwcm9kdWN0byAoJHtwcm9kdWN0b30pIFwiJHtub21icmV9XCI/YCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gYXdhaXQgbXkuYWpheC5wcm9kdWN0b19jbG9uYXIoe1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3RvLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGVwb3QgPSBkZXBvdC5tYW5hZ2VyLmNyZWF0ZVJvd0luc2VydEVsZW1lbnRzKGRlcG90KTtcclxuICAgICAgICAgICAgICAgIG5ld0RlcG90Lm1hbmFnZXIuZGVwb3RSZWZyZXNoKG5ld0RlcG90LHt1cGRhdGVkUm93OnJlc3VsdC5wcm9kdWN0b051ZXZvLCBzZW5kZWRGb3JVcGRhdGU6e319KTtcclxuICAgICAgICAgICAgICAgIG5ld0RlcG90Lm1hbmFnZXIucmV0cmlldmVSb3dBbmRSZWZyZXNoKG5ld0RlcG90KSAgICAgICAgXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSxcclxuICAgIH1cclxuXHJcbiAgICBteU93bi5hdXRvU2V0dXBGdW5jdGlvbnMucHVzaChmdW5jdGlvbiBhdXRvU2V0dXBNeVRhYmxlcygpe1xyXG4gICAgICAgIFR5cGVkQ29udHJvbHMuc2hvd0x1cGE9ZmFsc2U7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvL0VKRU1QTE8gR1VBUkRBUlxyXG4gICAgLy9teS5jbGllbnRTaWRlcy5ndWFyZGFyID0ge1xyXG4gICAgLy8gICAgdXBkYXRlOiBmYWxzZSxcclxuICAgIC8vICAgIHByZXBhcmU6IGZ1bmN0aW9uIChkZXBvdCwgZmllbGROYW1lKSB7XHJcbiAgICAvLyAgICAgICAgdmFyIHRkID0gZGVwb3Qucm93Q29udHJvbHNbZmllbGROYW1lXTtcclxuICAgIC8vICAgICAgICB2YXIgYm90b24gPSBodG1sLmJ1dHRvbih7fSwnZ3VhcmRhcicpLmNyZWF0ZSgpO1xyXG4gICAgLy8gICAgICAgIHRkLmFwcGVuZENoaWxkKGJvdG9uKTtcclxuICAgIC8vICAgICAgICB0ZC5vbmNsaWNrPWFzeW5jIGZ1bmN0aW9uKCl7XHJcbiAgICAvLyAgICAgICAgICAgIHZhciBwa1ZhbHVlcyA9IHt9O1xyXG4gICAgLy8gICAgICAgICAgICBwa1ZhbHVlc1snY29kaWdvJ109ZGVwb3Qucm93Q29udHJvbHNbJ2NvZGlnbyddLmdldFR5cGVkVmFsdWUoKTtcclxuICAgIC8vICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGF3YWl0IG15LmFqYXgub2JqZWN0X2dldCh7XHJcbiAgICAvLyAgICAgICAgICAgICAgICB0YWJsZW5hbWU6ICdjbGllbnRlcycsXHJcbiAgICAvLyAgICAgICAgICAgICAgICBwa192YWx1ZXM6IHBrVmFsdWVzLFxyXG4gICAgLy8gICAgICAgICAgICB9KTtcclxuICAgIC8vICAgICAgICAgICAgcmVzdWx0LmN1aXRfZG5pID0gJzEyMzQ1Njc4JztcclxuICAgIC8vICAgICAgICAgICAgcmVzdWx0Lm1haWwgPSAnbWFudWVsQDEyMy5jb20nO1xyXG4gICAgLy8gICAgICAgICAgICB2YXIgcmVzdWx0MiA9IGF3YWl0IG15LmFqYXgub2JqZWN0X3NhdmUoe1xyXG4gICAgLy8gICAgICAgICAgICAgICAgdGFibGVuYW1lOiAnY2xpZW50ZXMnLFxyXG4gICAgLy8gICAgICAgICAgICAgICAgZGF0b3M6IHJlc3VsdCxcclxuICAgIC8vICAgICAgICAgICAgfSk7XHJcbiAgICAvLyAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdDIpO1xyXG4gICAgLy8gICAgICAgIH1cclxuICAgIC8vICAgIH0sXHJcbiAgICAvL31cclxufSk7Il19
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  // ver client.ts
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdmVyIGNsaWVudC50cyJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdmVyIGNsaWVudC50cyJdfQ==