sf-reglanegociom3 1.0.12-beta9 → 1.0.12-beta91
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/bundles/sf-reglanegociom3.umd.js +491 -54
- package/bundles/sf-reglanegociom3.umd.js.map +1 -1
- package/bundles/sf-reglanegociom3.umd.min.js +1 -1
- package/bundles/sf-reglanegociom3.umd.min.js.map +1 -1
- package/esm2015/lib/ConexionSQL/posts.service.js +4 -1
- package/esm2015/lib/rnm3/Miscelanea/MathTF.class.js +19 -1
- package/esm2015/lib/rnm3/Offline/service-m3-proceso-offline.js +9 -4
- package/esm2015/lib/rnm3/Promociones/promociones.service.js +96 -20
- package/esm2015/lib/rnm3/Registro/m3-procesos.js +5 -1
- package/esm2015/lib/rnm3/Services/M3Maestro.service.js +117 -2
- package/esm2015/lib/rnm3/Services/m3-fe.service.js +37 -1
- package/esm2015/lib/rnm3/Services/m3-load-l-precio.service.js +3 -4
- package/esm2015/lib/rnm3/Services/m3-reg-masivo.service.js +58 -10
- package/esm2015/lib/rnm3/Services/m3-reg-service.js +39 -16
- package/esm5/lib/ConexionSQL/posts.service.js +4 -1
- package/esm5/lib/rnm3/Miscelanea/MathTF.class.js +29 -1
- package/esm5/lib/rnm3/Offline/service-m3-proceso-offline.js +9 -4
- package/esm5/lib/rnm3/Promociones/promociones.service.js +110 -21
- package/esm5/lib/rnm3/Registro/m3-procesos.js +5 -1
- package/esm5/lib/rnm3/Services/M3Maestro.service.js +165 -2
- package/esm5/lib/rnm3/Services/m3-fe.service.js +53 -1
- package/esm5/lib/rnm3/Services/m3-load-l-precio.service.js +3 -4
- package/esm5/lib/rnm3/Services/m3-reg-masivo.service.js +75 -11
- package/esm5/lib/rnm3/Services/m3-reg-service.js +40 -17
- package/fesm2015/sf-reglanegociom3.js +369 -51
- package/fesm2015/sf-reglanegociom3.js.map +1 -1
- package/fesm5/sf-reglanegociom3.js +478 -55
- package/fesm5/sf-reglanegociom3.js.map +1 -1
- package/lib/rnm3/Miscelanea/MathTF.class.d.ts +2 -0
- package/lib/rnm3/Offline/service-m3-proceso-offline.d.ts +1 -1
- package/lib/rnm3/Promociones/promociones.service.d.ts +5 -4
- package/lib/rnm3/Registro/m3-procesos.d.ts +2 -0
- package/lib/rnm3/Services/M3Maestro.service.d.ts +6 -0
- package/lib/rnm3/Services/m3-fe.service.d.ts +2 -0
- package/lib/rnm3/Services/m3-reg-masivo.service.d.ts +5 -3
- package/lib/rnm3/Services/m3-reg-service.d.ts +2 -2
- package/package.json +1 -1
- package/sf-reglanegociom3.metadata.json +1 -1
|
@@ -114,6 +114,58 @@ var ServiceM3FE = /** @class */ (function () {
|
|
|
114
114
|
funcionError(err.json().Message);
|
|
115
115
|
});
|
|
116
116
|
};
|
|
117
|
+
/**
|
|
118
|
+
* @param {?} PostServiceM3
|
|
119
|
+
* @param {?} sIDKatios
|
|
120
|
+
* @param {?} jData
|
|
121
|
+
* @param {?} funcionOK
|
|
122
|
+
* @param {?} funcionError
|
|
123
|
+
* @return {?}
|
|
124
|
+
*/
|
|
125
|
+
ServiceM3FE.prototype.generarFEAnticipos = /**
|
|
126
|
+
* @param {?} PostServiceM3
|
|
127
|
+
* @param {?} sIDKatios
|
|
128
|
+
* @param {?} jData
|
|
129
|
+
* @param {?} funcionOK
|
|
130
|
+
* @param {?} funcionError
|
|
131
|
+
* @return {?}
|
|
132
|
+
*/
|
|
133
|
+
function (PostServiceM3, sIDKatios, jData, funcionOK, funcionError) {
|
|
134
|
+
PostServiceM3.postServiceHttpResFullFEMX("FEMX/generarFEAnticipos/" + sIDKatios, jData).subscribe(function (resp) {
|
|
135
|
+
//var oJson = JSON.parse(resp.json());
|
|
136
|
+
funcionOK(resp);
|
|
137
|
+
}, function (err) {
|
|
138
|
+
//this.enProceso = false;
|
|
139
|
+
console.error(err.json().Message);
|
|
140
|
+
funcionError(err.json().Message);
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* @param {?} PostServiceM3
|
|
145
|
+
* @param {?} sIDKatios
|
|
146
|
+
* @param {?} jData
|
|
147
|
+
* @param {?} funcionOK
|
|
148
|
+
* @param {?} funcionError
|
|
149
|
+
* @return {?}
|
|
150
|
+
*/
|
|
151
|
+
ServiceM3FE.prototype.generarNCAnticipos = /**
|
|
152
|
+
* @param {?} PostServiceM3
|
|
153
|
+
* @param {?} sIDKatios
|
|
154
|
+
* @param {?} jData
|
|
155
|
+
* @param {?} funcionOK
|
|
156
|
+
* @param {?} funcionError
|
|
157
|
+
* @return {?}
|
|
158
|
+
*/
|
|
159
|
+
function (PostServiceM3, sIDKatios, jData, funcionOK, funcionError) {
|
|
160
|
+
PostServiceM3.postServiceHttpResFullFEMX("FEMX/generarNCAnticipos/" + sIDKatios, jData).subscribe(function (resp) {
|
|
161
|
+
//var oJson = JSON.parse(resp.json());
|
|
162
|
+
funcionOK(resp);
|
|
163
|
+
}, function (err) {
|
|
164
|
+
//this.enProceso = false;
|
|
165
|
+
console.error(err.json().Message);
|
|
166
|
+
funcionError(err.json().Message);
|
|
167
|
+
});
|
|
168
|
+
};
|
|
117
169
|
/**
|
|
118
170
|
* @param {?} PostServiceM3
|
|
119
171
|
* @param {?} id_katios
|
|
@@ -226,4 +278,4 @@ var ServiceM3FE = /** @class */ (function () {
|
|
|
226
278
|
}());
|
|
227
279
|
export { ServiceM3FE };
|
|
228
280
|
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtZmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NmLXJlZ2xhbmVnb2Npb20zLyIsInNvdXJjZXMiOlsibGliL3JubTMvU2VydmljZXMvbTMtZmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQUE7Ozs7Ozs7Ozs7O0lBRVcsMkNBQXFCOzs7Ozs7OztjQUFDLGFBQTRCLEVBQUUsU0FBaUIsRUFDeEUsS0FBVSxFQUFFLFNBQW1CLEVBQUUsWUFBc0I7UUFDdkQsYUFBYSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBQSxJQUFJOztZQUduRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkIsRUFDRyxVQUFBLEdBQUc7O1lBRUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7SUFHSiwyQ0FBcUI7Ozs7Ozs7O2NBQUMsYUFBNEIsRUFBRSxTQUFpQixFQUN4RSxLQUFVLEVBQUUsU0FBbUIsRUFBRSxZQUFzQjtRQUN2RCxhQUFhLENBQUMsd0JBQXdCLENBQUMsNkJBQTZCLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7O1lBR25HLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQixFQUNHLFVBQUEsR0FBRzs7WUFFQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDLENBQUMsQ0FBQzs7Ozs7Ozs7SUFHRSw4Q0FB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QUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0UsQ0FBQyxDQUFDOztzQkEzRmY7SUE2RkMsQ0FBQTtBQTNGRCx1QkEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3N0U2VydmljZU0zIH0gZnJvbSBcIi4uLy4uL0NvbmV4aW9uU1FML3Bvc3RzLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlTTNGRSB7XHJcblxyXG4gICAgcHVibGljIGFkZF9wcm9jZXNvX2dlbmVyYXJGRShQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBzSURLYXRpb3M6IHN0cmluZyxcclxuICAgICAgICBqRGF0YTogYW55LCBmdW5jaW9uT0s6IEZ1bmN0aW9uLCBmdW5jaW9uRXJyb3I6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsTTMoXCJNM0ZFL2FkZF9wcm9jZXNvX2dlbmVyYXJGRS9cIiArIHNJREthdGlvcywgakRhdGEpLnN1YnNjcmliZShyZXNwID0+IHtcclxuICAgICAgICAgICAgLy92YXIgb0pzb24gPSBKU09OLnBhcnNlKHJlc3AuanNvbigpKTtcclxuXHJcbiAgICAgICAgICAgIGZ1bmNpb25PSyhyZXNwKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLmVuUHJvY2VzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgZnVuY2lvbkVycm9yKGVyci5qc29uKCkuTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRfcHJvY2Vzb19nZW5lcmFyTkMoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgc0lES2F0aW9zOiBzdHJpbmcsXHJcbiAgICAgICAgakRhdGE6IGFueSwgZnVuY2lvbk9LOiBGdW5jdGlvbiwgZnVuY2lvbkVycm9yOiBGdW5jdGlvbikge1xyXG4gICAgICAgIFBvc3RTZXJ2aWNlTTMucG9zdFNlcnZpY2VIdHRwUmVzRnVsbE0zKFwiTTNGRS9hZGRfcHJvY2Vzb19nZW5lcmFyTkMvXCIgKyBzSURLYXRpb3MsIGpEYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XHJcbiAgICAgICAgICAgIC8vdmFyIG9Kc29uID0gSlNPTi5wYXJzZShyZXNwLmpzb24oKSk7XHJcblxyXG4gICAgICAgICAgICBmdW5jaW9uT0socmVzcCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGZ1bmNpb25FcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgYWRkUHJvY2Vzb0dlbmVyYXJGRUFzeW5jKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIHNJREthdGlvczogc3RyaW5nLCBqRGF0YTogYW55KSB7XHJcbiAgICAgICAgbGV0IGpzb247XHJcbiAgICAgICAgbGV0IHJlc3A7XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc3AgPSBQb3N0U2VydmljZU0zLnBvc3RTZXJ2aWNlSHR0cFJlc0Z1bGxNMyhcIk0zRkUvYWRkX3Byb2Nlc29fZ2VuZXJhckZFL1wiICsgc0lES2F0aW9zLCBqRGF0YSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKHJlc3ApXHJcbiAgICAgICAgICAgIHJldHVybiBqc29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZW5lcmFyQ2FydGFQb3J0ZShQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBzSURLYXRpb3M6IHN0cmluZywgaWRtMzogc3RyaW5nLFxyXG4gICAgICAgIGpEYXRhOiBhbnksIGZ1bmNpb25PSzogRnVuY3Rpb24sIGZ1bmNpb25FcnJvcjogRnVuY3Rpb24pIHtcclxuICAgICAgICBQb3N0U2VydmljZU0zLnBvc3RTZXJ2aWNlSHR0cFJlc0Z1bGxGRU1YKFwiRkVNWC9nZW5lcmFyQ2FydGFQb3J0ZS9cIiArIHNJREthdGlvcyArIFwiL1wiICsgaWRtMywgakRhdGEpLnN1YnNjcmliZShyZXNwID0+IHtcclxuICAgICAgICAgICAgLy92YXIgb0pzb24gPSBKU09OLnBhcnNlKHJlc3AuanNvbigpKTtcclxuXHJcbiAgICAgICAgICAgIGZ1bmNpb25PSyhyZXNwKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLmVuUHJvY2VzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgZnVuY2lvbkVycm9yKGVyci5qc29uKCkuTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEluZm9GYWN0dXJhRWxlY3Ryb25pY2EoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgaWRfa2F0aW9zOiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgSW5mbztcclxuICAgICAgICB2YXIgZGF0YSA9IHsgJ2lkS2F0aW9zJzogaWRfa2F0aW9zLnRyaW0oKSB9O1xyXG4gICAgICAgIEluZm8gPSBhd2FpdCBQb3N0U2VydmljZU0zLmdldFdpdGhCb2R5TTMoJ00zRkUvZ2V0SW5mb0ZhY3R1cmFFbGVjdHJvbmljYScsIGRhdGEpLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSW5mbylcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRIdG1sRnJvbUZFKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIGlkS2F0aW9zOiBzdHJpbmcsIGlkTTM6IHN0cmluZykge1xyXG4gICAgICAgIGxldCByZXNwO1xyXG4gICAgICAgIGxldCBkYXRhID0geyAnaWRNMyc6IGlkTTMgfTtcclxuICAgICAgICByZXNwID0gYXdhaXQgUG9zdFNlcnZpY2VNMy5nZXRXaXRoQm9keU0zKCdNM0ZFL2dldEh0bWxGcm9tRkUvJyArIGlkS2F0aW9zLCBkYXRhKS50b1Byb21pc2UoKVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzcDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBJVV9JbmZvRmFjdHVyYUVsZWN0cm9uaWNhKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIGlkX2thdGlvczogc3RyaW5nLCBvRmFjdHVyYTogYW55LCB1VEFjdGl2bzogc3RyaW5nLCB1TkFjdGl2bzogc3RyaW5nKSB7XHJcbiAgICAgICAgdmFyIEluZm87XHJcbiAgICAgICAgdmFyIGRhdGEgPSB7ICdpZEthdGlvcyc6IGlkX2thdGlvcy50cmltKCksICdvRmFjdHVyYSc6IG9GYWN0dXJhLCAndVRBY3Rpdm8nOiB1VEFjdGl2bywgJ3VOQWN0aXZvJzogdU5BY3Rpdm8gfTtcclxuICAgICAgICBJbmZvID0gYXdhaXQgUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsTTMoJ00zRkUvSVVfSW5mb0ZhY3R1cmFFbGVjdHJvbmljYScsIGRhdGEpLnRvUHJvbWlzZSgpXHJcbiAgICAgICAgcmV0dXJuIEluZm9cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGVsSW5zU2VyaWVzeFViaWMoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgc0lES2F0aW9zOiBzdHJpbmcsXHJcbiAgICAgICAgakRhdGE6IGFueSwgZnVuY2lvbk9LOiBGdW5jdGlvbiwgZnVuY2lvbkVycm9yOiBGdW5jdGlvbikge1xyXG4gICAgICAgIFBvc3RTZXJ2aWNlTTMucG9zdFNlcnZpY2VIdHRwUmVzRnVsbE0zKFwiTTNGRS9kZWxJbnNTZXJpZXN4VWJpYy9cIiArIHNJREthdGlvcywgakRhdGEpLnN1YnNjcmliZShyZXNwID0+IHtcclxuICAgICAgICAgICAgLy92YXIgb0pzb24gPSBKU09OLnBhcnNlKHJlc3AuanNvbigpKTsgICAgICAgIFxyXG4gICAgICAgICAgICBmdW5jaW9uT0socmVzcCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGZ1bmNpb25FcnJvcihKU09OLnBhcnNlKEpTT04ucGFyc2UoZXJyW1wiX2JvZHlcIl0pLk1lc3NhZ2UpLlJFU1BVRVNUQVtcIjBcIl0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtZmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NmLXJlZ2xhbmVnb2Npb20zLyIsInNvdXJjZXMiOlsibGliL3JubTMvU2VydmljZXMvbTMtZmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLElBQUE7Ozs7Ozs7Ozs7O0lBRVcsMkNBQXFCOzs7Ozs7OztjQUFDLGFBQTRCLEVBQUUsU0FBaUIsRUFDeEUsS0FBVSxFQUFFLFNBQW1CLEVBQUUsWUFBc0I7UUFDdkQsYUFBYSxDQUFDLHdCQUF3QixDQUFDLDZCQUE2QixHQUFHLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBQSxJQUFJOztZQUduRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkIsRUFDRyxVQUFBLEdBQUc7O1lBRUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7SUFHSiwyQ0FBcUI7Ozs7Ozs7O2NBQUMsYUFBNEIsRUFBRSxTQUFpQixFQUN4RSxLQUFVLEVBQUUsU0FBbUIsRUFBRSxZQUFzQjtRQUN2RCxhQUFhLENBQUMsd0JBQXdCLENBQUMsNkJBQTZCLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFBLElBQUk7O1lBR25HLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQixFQUNHLFVBQUEsR0FBRzs7WUFFQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDLENBQUMsQ0FBQzs7Ozs7Ozs7SUFHRSw4Q0FB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cnZpY2VNMyB9IGZyb20gXCIuLi8uLi9Db25leGlvblNRTC9wb3N0cy5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VydmljZU0zRkUge1xyXG5cclxuICAgIHB1YmxpYyBhZGRfcHJvY2Vzb19nZW5lcmFyRkUoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgc0lES2F0aW9zOiBzdHJpbmcsXHJcbiAgICAgICAgakRhdGE6IGFueSwgZnVuY2lvbk9LOiBGdW5jdGlvbiwgZnVuY2lvbkVycm9yOiBGdW5jdGlvbikge1xyXG4gICAgICAgIFBvc3RTZXJ2aWNlTTMucG9zdFNlcnZpY2VIdHRwUmVzRnVsbE0zKFwiTTNGRS9hZGRfcHJvY2Vzb19nZW5lcmFyRkUvXCIgKyBzSURLYXRpb3MsIGpEYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XHJcbiAgICAgICAgICAgIC8vdmFyIG9Kc29uID0gSlNPTi5wYXJzZShyZXNwLmpzb24oKSk7XHJcblxyXG4gICAgICAgICAgICBmdW5jaW9uT0socmVzcCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGZ1bmNpb25FcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkX3Byb2Nlc29fZ2VuZXJhck5DKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIHNJREthdGlvczogc3RyaW5nLFxyXG4gICAgICAgIGpEYXRhOiBhbnksIGZ1bmNpb25PSzogRnVuY3Rpb24sIGZ1bmNpb25FcnJvcjogRnVuY3Rpb24pIHtcclxuICAgICAgICBQb3N0U2VydmljZU0zLnBvc3RTZXJ2aWNlSHR0cFJlc0Z1bGxNMyhcIk0zRkUvYWRkX3Byb2Nlc29fZ2VuZXJhck5DL1wiICsgc0lES2F0aW9zLCBqRGF0YSkuc3Vic2NyaWJlKHJlc3AgPT4ge1xyXG4gICAgICAgICAgICAvL3ZhciBvSnNvbiA9IEpTT04ucGFyc2UocmVzcC5qc29uKCkpO1xyXG5cclxuICAgICAgICAgICAgZnVuY2lvbk9LKHJlc3ApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVyci5qc29uKCkuTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jaW9uRXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGFkZFByb2Nlc29HZW5lcmFyRkVBc3luYyhQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBzSURLYXRpb3M6IHN0cmluZywgakRhdGE6IGFueSkge1xyXG4gICAgICAgIGxldCBqc29uO1xyXG4gICAgICAgIGxldCByZXNwO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXNwID0gUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsTTMoXCJNM0ZFL2FkZF9wcm9jZXNvX2dlbmVyYXJGRS9cIiArIHNJREthdGlvcywgakRhdGEpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBqc29uID0gSlNPTi5wYXJzZShyZXNwKVxyXG4gICAgICAgICAgICByZXR1cm4ganNvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2h7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2VuZXJhckNhcnRhUG9ydGUoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgc0lES2F0aW9zOiBzdHJpbmcsIGlkbTM6IHN0cmluZyxcclxuICAgICAgICBqRGF0YTogYW55LCBmdW5jaW9uT0s6IEZ1bmN0aW9uLCBmdW5jaW9uRXJyb3I6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsRkVNWChcIkZFTVgvZ2VuZXJhckNhcnRhUG9ydGUvXCIgKyBzSURLYXRpb3MgKyBcIi9cIiArIGlkbTMsIGpEYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XHJcbiAgICAgICAgICAgIC8vdmFyIG9Kc29uID0gSlNPTi5wYXJzZShyZXNwLmpzb24oKSk7XHJcblxyXG4gICAgICAgICAgICBmdW5jaW9uT0socmVzcCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGZ1bmNpb25FcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2VuZXJhckZFQW50aWNpcG9zKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIHNJREthdGlvczogc3RyaW5nLFxyXG4gICAgICAgIGpEYXRhOiBhbnksIGZ1bmNpb25PSzogRnVuY3Rpb24sIGZ1bmNpb25FcnJvcjogRnVuY3Rpb24pIHtcclxuICAgICAgICBQb3N0U2VydmljZU0zLnBvc3RTZXJ2aWNlSHR0cFJlc0Z1bGxGRU1YKFwiRkVNWC9nZW5lcmFyRkVBbnRpY2lwb3MvXCIgKyBzSURLYXRpb3MsIGpEYXRhKS5zdWJzY3JpYmUocmVzcCA9PiB7XHJcbiAgICAgICAgICAgIC8vdmFyIG9Kc29uID0gSlNPTi5wYXJzZShyZXNwLmpzb24oKSk7XHJcblxyXG4gICAgICAgICAgICBmdW5jaW9uT0socmVzcCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIC8vdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIGZ1bmNpb25FcnJvcihlcnIuanNvbigpLk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2VuZXJhck5DQW50aWNpcG9zKFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIHNJREthdGlvczogc3RyaW5nLCBcclxuICAgICAgICBqRGF0YTogYW55LCBmdW5jaW9uT0s6IEZ1bmN0aW9uLCBmdW5jaW9uRXJyb3I6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsRkVNWChcIkZFTVgvZ2VuZXJhck5DQW50aWNpcG9zL1wiICsgc0lES2F0aW9zLCBqRGF0YSkuc3Vic2NyaWJlKHJlc3AgPT4ge1xyXG4gICAgICAgICAgICAvL3ZhciBvSnNvbiA9IEpTT04ucGFyc2UocmVzcC5qc29uKCkpO1xyXG5cclxuICAgICAgICAgICAgZnVuY2lvbk9LKHJlc3ApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVyci5qc29uKCkuTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICBmdW5jaW9uRXJyb3IoZXJyLmpzb24oKS5NZXNzYWdlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0SW5mb0ZhY3R1cmFFbGVjdHJvbmljYShQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBpZF9rYXRpb3M6IHN0cmluZykge1xyXG4gICAgICAgIHZhciBJbmZvO1xyXG4gICAgICAgIHZhciBkYXRhID0geyAnaWRLYXRpb3MnOiBpZF9rYXRpb3MudHJpbSgpIH07XHJcbiAgICAgICAgSW5mbyA9IGF3YWl0IFBvc3RTZXJ2aWNlTTMuZ2V0V2l0aEJvZHlNMygnTTNGRS9nZXRJbmZvRmFjdHVyYUVsZWN0cm9uaWNhJywgZGF0YSkudG9Qcm9taXNlKClcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShJbmZvKVxyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGdldEh0bWxGcm9tRkUoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgaWRLYXRpb3M6IHN0cmluZywgaWRNMzogc3RyaW5nKSB7XHJcbiAgICAgICAgbGV0IHJlc3A7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7ICdpZE0zJzogaWRNMyB9O1xyXG4gICAgICAgIHJlc3AgPSBhd2FpdCBQb3N0U2VydmljZU0zLmdldFdpdGhCb2R5TTMoJ00zRkUvZ2V0SHRtbEZyb21GRS8nICsgaWRLYXRpb3MsIGRhdGEpLnRvUHJvbWlzZSgpXHJcblxyXG4gICAgICAgIHJldHVybiByZXNwO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIElVX0luZm9GYWN0dXJhRWxlY3Ryb25pY2EoUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgaWRfa2F0aW9zOiBzdHJpbmcsIG9GYWN0dXJhOiBhbnksIHVUQWN0aXZvOiBzdHJpbmcsIHVOQWN0aXZvOiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgSW5mbztcclxuICAgICAgICB2YXIgZGF0YSA9IHsgJ2lkS2F0aW9zJzogaWRfa2F0aW9zLnRyaW0oKSwgJ29GYWN0dXJhJzogb0ZhY3R1cmEsICd1VEFjdGl2byc6IHVUQWN0aXZvLCAndU5BY3Rpdm8nOiB1TkFjdGl2byB9O1xyXG4gICAgICAgIEluZm8gPSBhd2FpdCBQb3N0U2VydmljZU0zLnBvc3RTZXJ2aWNlSHR0cFJlc0Z1bGxNMygnTTNGRS9JVV9JbmZvRmFjdHVyYUVsZWN0cm9uaWNhJywgZGF0YSkudG9Qcm9taXNlKClcclxuICAgICAgICByZXR1cm4gSW5mb1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxJbnNTZXJpZXN4VWJpYyhQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBzSURLYXRpb3M6IHN0cmluZyxcclxuICAgICAgICBqRGF0YTogYW55LCBmdW5jaW9uT0s6IEZ1bmN0aW9uLCBmdW5jaW9uRXJyb3I6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgUG9zdFNlcnZpY2VNMy5wb3N0U2VydmljZUh0dHBSZXNGdWxsTTMoXCJNM0ZFL2RlbEluc1Nlcmllc3hVYmljL1wiICsgc0lES2F0aW9zLCBqRGF0YSkuc3Vic2NyaWJlKHJlc3AgPT4ge1xyXG4gICAgICAgICAgICAvL3ZhciBvSnNvbiA9IEpTT04ucGFyc2UocmVzcC5qc29uKCkpOyAgICAgICAgXHJcbiAgICAgICAgICAgIGZ1bmNpb25PSyhyZXNwKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLmVuUHJvY2VzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgZnVuY2lvbkVycm9yKEpTT04ucGFyc2UoSlNPTi5wYXJzZShlcnJbXCJfYm9keVwiXSkuTWVzc2FnZSkuUkVTUFVFU1RBW1wiMFwiXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -150,8 +150,7 @@ var ServiceLoadListaPrecio = /** @class */ (function () {
|
|
|
150
150
|
switch (_a.label) {
|
|
151
151
|
case 0:
|
|
152
152
|
this.GetKatiosM3FromSession();
|
|
153
|
-
if (!(oDataUser != null && oDataUser.UsuarioSistema && oDataUser.UsuarioSistema.IDLPrecio !== undefined && oDataUser.UsuarioSistema.IDLPrecio != -1)) return [3 /*break*/, 5];
|
|
154
|
-
console.debug(ProductoMaestro); //BORRAR
|
|
153
|
+
if (!(oDataUser != null && oDataUser.UsuarioSistema && oDataUser.UsuarioSistema.IDLPrecio !== undefined && oDataUser.UsuarioSistema.IDLPrecio != -1 && ProductoMaestro)) return [3 /*break*/, 5];
|
|
155
154
|
_loop_1 = function () {
|
|
156
155
|
var splitPrecio, oCouchConfigLPService, listaCouch, jConfigLP, factor_1, Ex_1;
|
|
157
156
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -160,7 +159,7 @@ var ServiceLoadListaPrecio = /** @class */ (function () {
|
|
|
160
159
|
prdGrl = ProductoMaestro.LoM3PrdGeneral[i];
|
|
161
160
|
splitPrecio = oDataUser.UsuarioSistema.IDLPrecio.split("-");
|
|
162
161
|
oListaFinded = prdGrl.LoM3ListaPrecio.find(function (lPre) { return lPre.IDLISTA == splitPrecio[0]; });
|
|
163
|
-
if (!(splitPrecio && splitPrecio.length > 1)) return [3 /*break*/, 4];
|
|
162
|
+
if (!(oListaFinded && splitPrecio && splitPrecio.length > 1)) return [3 /*break*/, 4];
|
|
164
163
|
if (!!this_1.aplPreciosDinamicos) return [3 /*break*/, 1];
|
|
165
164
|
switch (splitPrecio[1]) {
|
|
166
165
|
case "LB":
|
|
@@ -318,4 +317,4 @@ function ServiceLoadListaPrecio_tsickle_Closure_declarations() {
|
|
|
318
317
|
ServiceLoadListaPrecio.prototype.aplPreciosDinamicos;
|
|
319
318
|
}
|
|
320
319
|
|
|
321
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtbG9hZC1sLXByZWNpby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2YtcmVnbGFuZWdvY2lvbTMvIiwic291cmNlcyI6WyJsaWIvcm5tMy9TZXJ2aWNlcy9tMy1sb2FkLWwtcHJlY2lvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxJQUFBO0lBS0ksZ0NBQVksUUFBUTt1QkFKRixJQUFJLE1BQU0sRUFBRTttQ0FFUyxLQUFLO1FBR3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0tBQ2pDOzs7O0lBR00sdURBQXNCOzs7OztRQUN6QixJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7O1lBQ3hDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTs7Z0JBQzVELElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFB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TUFBTSxHQUFXLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO3dCQUNwRCxhQUFhLEdBQWlCLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7NkJBRWpFLENBQUEsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUEsRUFBN0Isd0JBQTZCO3dCQUN6QixLQUFLLEdBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDbEkscUJBQU0sYUFBYSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFBOzt3QkFBOUYsTUFBTSxHQUFHLFNBQXFGO3dCQUNsRyxJQUFJLE1BQU0sSUFBSSxNQUFNLElBQUksQ0FBQyxFQUFFOzRCQUNuQixXQUFXLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQzs0QkFDbkMsV0FBVyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQzs0QkFDekQsV0FBVyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDOzRCQUMvQixXQUFXLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQzs0QkFDNUIsV0FBVyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUM3QixNQUFNLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQzt5QkFDckM7Ozs7Ozs7aUNBdkliO0lBNElDLENBQUE7QUFuSUQsa0NBbUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZU0zUHJkR3JwIH0gZnJvbSBcIi4uL01hZXN0cm8vTTNQcmRHcnAudHlwZVwiO1xyXG5pbXBvcnQgeyBNM1JlZ1NlcnZpY2UgfSBmcm9tIFwiLi9tMy1yZWctc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQb3N0U2VydmljZU0zIH0gZnJvbSBcIi4uLy4uL0NvbmV4aW9uU1FML3Bvc3RzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTTNQcmRMaXN0YSB9IGZyb20gXCIuLi9NYWVzdHJvL00zUHJkTGlzdGEudHlwZVwiO1xyXG5pbXBvcnQgeyBNM1ByZEdlbmVyYWwgfSBmcm9tIFwiLi4vTWFlc3Ryby9NM1ByZEdlbmVyYWwudHlwZVwiO1xyXG5pbXBvcnQgeyBDb3VjaENvbmZpZ0xQU2VydmljZSB9IGZyb20gXCIuLi9PZmZsaW5lL2NvdWNoLWNvbmZpZ2xwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWF0aFRGIH0gZnJvbSBcIi4uL01pc2NlbGFuZWEvTWF0aFRGLmNsYXNzXCI7XHJcbmltcG9ydCB7IE0zUHJkQWRpY2lvbmFsZXMgfSBmcm9tIFwiLi4vTWFlc3Ryby9NM1ByZEFkaWNpb25hbGVzLnR5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlTG9hZExpc3RhUHJlY2lvIHtcclxuICAgIHByaXZhdGUgb01hdGhURiA9IG5ldyBNYXRoVEYoKTtcclxuICAgIHByaXZhdGUgZ3NpZGthdGlvczogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBhcGxQcmVjaW9zRGluYW1pY29zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWRrYXRpb3MpIHtcclxuICAgICAgICB0aGlzLmdzaWRrYXRpb3MgPSBpZGthdGlvcztcclxuICAgICAgICB0aGlzLkdldEthdGlvc00zRnJvbVNlc3Npb24oKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0lka2F0aW9zIHF1ZSBzZSBjYXJnYSwgY3VhbmRvIHNlIGluaWNpYSBlbCByZWRpcmVjY2lvbmFtaWVudG8gaGFjaWEgZWwgV0U4XHJcbiAgICBwdWJsaWMgR2V0S2F0aW9zTTNGcm9tU2Vzc2lvbigpIHtcclxuICAgICAgICBsZXQgS2F0aW9zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJDb25maWdLYXRpb3NcIiArIHRoaXMuZ3NpZGthdGlvcy50b1VwcGVyQ2FzZSgpKTtcclxuICAgICAgICBpZiAoS2F0aW9zICE9PSB1bmRlZmluZWQgJiYgS2F0aW9zICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdmFyIGpLYXRpb3NNMyA9IEpTT04ucGFyc2UoS2F0aW9zKTtcclxuICAgICAgICAgICAgaWYgKGpLYXRpb3NNMyAmJiBqS2F0aW9zTTMuS2F0aW9zICYmIGpLYXRpb3NNMy5LYXRpb3MuS2F0aW9zTTMpIHtcclxuICAgICAgICAgICAgICAgIGxldCBhcGwgPSBqS2F0aW9zTTMuS2F0aW9zLkthdGlvc00zLmZpbmQoeCA9PiB4LkxsYXZlLnRvVXBwZXJDYXNlKCkgPT0gXCJBUExMUERJTkFNSUNPU1wiKTtcclxuICAgICAgICAgICAgICAgIGlmIChhcGwgJiYgYXBsLlZhbG9yID09IFwiMVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcGxQcmVjaW9zRGluYW1pY29zID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLy9Bc2lnbmFyIGxpc3RhIGRlIHByZWNpb3MsIHNlZ3VuIGxpc3RhIGRlIHByZWNpb3MgYXNvY2lhZG8gYSB1c3VhcmlvIHBvciBjYWRhIHVqbm8gZGUgIGxvcyBwcm9kdWN0b3MgaGlqb3NcclxuICAgIHB1YmxpYyBhc3luYyBBc2lnbmFyTGlzdGFQcmVjaW9NM1BhY2soUHJvZHVjdG9NYWVzdHJvOiBUeXBlTTNQcmRHcnAsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IG9NM1ByZEdycEFzb2NpYWRvIG9mIFByb2R1Y3RvTWFlc3Ryby5NM1ByZEdycEFzb2NpYWRvKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuQXNpZ25hckxpc3RhUHJlY2lvKG9NM1ByZEdycEFzb2NpYWRvLk0zR1JQLCBvRGF0YVVzZXIsIG9Qb3N0U2VydmljZU0zKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBwcmRHZW5lcmFsIG9mIFByb2R1Y3RvTWFlc3Ryby5Mb00zUHJkR2VuZXJhbCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0zUGFjayBvZiBwcmRHZW5lcmFsLk0zUEFDSykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5Bc2lnbmFyTGlzdGFQcmVjaW8obTNQYWNrLk0zR1JQLCBvRGF0YVVzZXIsIG9Qb3N0U2VydmljZU0zKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8vL0FzaWduYXIgbGlzdGEgZGUgcHJlY2lvcywgc2VndW4gbGlzdGEgZGUgcHJlY2lvcyBhc29jaWFkbyBhIHVzdWFyaW8uXHJcbiAgICBwdWJsaWMgYXN5bmMgQXNpZ25hckxpc3RhUHJlY2lvKFByb2R1Y3RvTWFlc3RybzogVHlwZU0zUHJkR3JwLCBvRGF0YVVzZXI6IGFueSwgb1Bvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMpIHtcclxuICAgICAgICB0aGlzLkdldEthdGlvc00zRnJvbVNlc3Npb24oKTtcclxuICAgICAgICBpZiAob0RhdGFVc2VyICE9IG51bGwgJiYgb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hICYmIG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW8gIT09IHVuZGVmaW5lZCAmJiBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEuSURMUHJlY2lvICE9IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoUHJvZHVjdG9NYWVzdHJvKTsvL0JPUlJBUlxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IFByb2R1Y3RvTWFlc3Ryby5Mb00zUHJkR2VuZXJhbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIHByZEdybCA9IFByb2R1Y3RvTWFlc3Ryby5Mb00zUHJkR2VuZXJhbFtpXTtcclxuICAgICAgICAgICAgICAgIGxldCBzcGxpdFByZWNpbyA9IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW8uc3BsaXQoXCItXCIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIG9MaXN0YUZpbmRlZCA9IHByZEdybC5Mb00zTGlzdGFQcmVjaW8uZmluZChsUHJlID0+IGxQcmUuSURMSVNUQSA9PSBzcGxpdFByZWNpb1swXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3BsaXRQcmVjaW8gJiYgc3BsaXRQcmVjaW8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5hcGxQcmVjaW9zRGluYW1pY29zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3BsaXRQcmVjaW9bMV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJMQlwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9MaXN0YUZpbmRlZC5QUkVDSU8gPSBvTGlzdGFGaW5kZWQuTEI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTENcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvTGlzdGFGaW5kZWQuUFJFQ0lPID0gb0xpc3RhRmluZGVkLkxDO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkxEXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0xpc3RhRmluZGVkLlBSRUNJTyA9IG9MaXN0YUZpbmRlZC5MRDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb0NvdWNoQ29uZmlnTFBTZXJ2aWNlID0gbmV3IENvdWNoQ29uZmlnTFBTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGlzdGFDb3VjaCA9IGF3YWl0IG9Db3VjaENvbmZpZ0xQU2VydmljZS5nZXQoc3BsaXRQcmVjaW9bMF0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgakNvbmZpZ0xQID0gSlNPTi5wYXJzZShsaXN0YUNvdWNoLkpDb25maWd1cmFjaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqQ29uZmlnTFAgJiYgakNvbmZpZ0xQLkZhY3RvcmVzICYmIGpDb25maWdMUC5GYWN0b3Jlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZhY3RvciA9IHBhcnNlRmxvYXQoakNvbmZpZ0xQLkZhY3RvcmVzLmZpbmQoeCA9PiB4Lk5vbWJyZSA9PSBzcGxpdFByZWNpb1sxXSkuRmFjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvTGlzdGFGaW5kZWQuUFJFQ0lPID0gdGhpcy5vTWF0aFRGLnJvdW5kKG9MaXN0YUZpbmRlZC5QUkVDSU8gKiBmYWN0b3IsIDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9MaXN0YUZpbmRlZC5NM1ByZXNlbnRhY2lvbmVzLmZvckVhY2gocHJlc2VudGFjaW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudGFjaW9uLlZBTE9SID0gdGhpcy5vTWF0aFRGLnJvdW5kKHByZXNlbnRhY2lvbi5WQUxPUiAqIGZhY3RvciwgMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3IgZW4gYXNpZ25hcmxpc3RhcHJlY2lvOiBcIiArIEV4Lm1lc3NhZ2UgKyBcIiAtIFwiICsgc3BsaXRQcmVjaW9bMF0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9MaXN0YUZpbmRlZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJkR3JsLkxvTTNQcmRMaXN0YSA9IG9MaXN0YUZpbmRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5WYWxpZGFyRGF0YUZyb21JbnZlbnRhcmlvKHByZEdybCwgb0RhdGFVc2VyLCBvUG9zdFNlcnZpY2VNMyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IG9NM1ByZEFkaWNpb25hbGVzID0gbmV3IE0zUHJkQWRpY2lvbmFsZXMoKTtcclxuICAgICAgICAgICAgb00zUHJkQWRpY2lvbmFsZXMuQVRSSUJVVE8gPSBcIkxJU1RBUFJFQ0lPXCI7XHJcbiAgICAgICAgICAgIG9NM1ByZEFkaWNpb25hbGVzLlZBTE9SID0gb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpbztcclxuICAgICAgICAgICAgUHJvZHVjdG9NYWVzdHJvLkxvTTNQcmRBZGljaW9uYWxlcy5wdXNoKG9NM1ByZEFkaWNpb25hbGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFByb2R1Y3RvTWFlc3Rybykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLkFzaWduYXJMaXN0YVByZWNpb00zUGFjayhQcm9kdWN0b01hZXN0cm8sIG9EYXRhVXNlciwgb1Bvc3RTZXJ2aWNlTTMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgQXNpZ25hckxpc3RhUHJlY2lvQUdlbmVyYWwocHJkR3JsOiBNM1ByZEdlbmVyYWwsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG4gICAgICAgIGlmIChvRGF0YVVzZXIgIT0gbnVsbCAmJiBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEuSURMUHJlY2lvICE9PSB1bmRlZmluZWQgJiYgb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpbyAhPSAtMSkge1xyXG4gICAgICAgICAgICB2YXIgb0xpc3RhRmluZGVkID0gcHJkR3JsLkxvTTNMaXN0YVByZWNpby5maW5kKGxQcmUgPT4gbFByZS5JRExJU1RBID09IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW8pO1xyXG4gICAgICAgICAgICBpZiAob0xpc3RhRmluZGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHByZEdybC5Mb00zUHJkTGlzdGEgPSBvTGlzdGFGaW5kZWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLlZhbGlkYXJEYXRhRnJvbUludmVudGFyaW8ocHJkR3JsLCBvRGF0YVVzZXIsIG9Qb3N0U2VydmljZU0zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIFZhbGlkYXJEYXRhRnJvbUludmVudGFyaW8ocHJkR3JsOiBNM1ByZEdlbmVyYWwsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG4gICAgICAgIHZhciBzTGlzdGE6IHN0cmluZyA9IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW87XHJcbiAgICAgICAgdmFyIG9NM1JlZ1NlcnZpY2U6IE0zUmVnU2VydmljZSA9IG5ldyBNM1JlZ1NlcnZpY2UobnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgLy9WYWxpZGFyIHNpIGVzIHVuIHZhbG9yIGRlIGludmVudGFyaW8uXHJcbiAgICAgICAgaWYgKHNMaXN0YS5zcGxpdCgnXycpWzBdID09IFwiSU5WXCIpIHtcclxuICAgICAgICAgICAgdmFyIGpEYXRhOiBhbnkgPSB7IFwidWJpY2FjaW9uXCI6IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5VQklDQUNJT04sIFwic2t1XCI6IHByZEdybC5TS1UsIFwibG90ZVwiOiBwcmRHcmwuTE9URSwgXCJjb25jZXB0b1wiOiBzTGlzdGEuc3BsaXQoJ18nKVsxXSB9O1xyXG4gICAgICAgICAgICB2YXIgcHJlY2lvID0gYXdhaXQgb00zUmVnU2VydmljZS5HZXRDb25jZXB0b00zU2FsZG9zSXRlbVViKG9Qb3N0U2VydmljZU0zLCB0aGlzLmdzaWRrYXRpb3MsIGpEYXRhKTtcclxuICAgICAgICAgICAgaWYgKHByZWNpbyAmJiBwcmVjaW8gIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9NM1ByZExpc3RhID0gbmV3IE0zUHJkTGlzdGEoKTtcclxuICAgICAgICAgICAgICAgIG9NM1ByZExpc3RhLklETElTVEEgPSBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEuSURMUHJlY2lvO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuTE9URSA9IHByZEdybC5MT1RFO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuUFJFQ0lPID0gcHJlY2lvO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuU0tVID0gcHJkR3JsLlNLVTtcclxuICAgICAgICAgICAgICAgIHByZEdybC5Mb00zUHJkTGlzdGEgPSBvTTNQcmRMaXN0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG59Il19
|
|
320
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtbG9hZC1sLXByZWNpby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2YtcmVnbGFuZWdvY2lvbTMvIiwic291cmNlcyI6WyJsaWIvcm5tMy9TZXJ2aWNlcy9tMy1sb2FkLWwtcHJlY2lvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxJQUFBO0lBS0ksZ0NBQVksUUFBUTt1QkFKRixJQUFJLE1BQU0sRUFBRTttQ0FFUyxLQUFLO1FBR3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0tBQ2pDOzs7O0lBR00sdURBQXNCOzs7OztRQUN6QixJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEYsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7O1lBQ3hDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTs7Z0JBQzVELElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFB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QWMsQ0FBQyxTQUFTLENBQUM7d0JBQ3BELGFBQWEsR0FBaUIsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs2QkFFakUsQ0FBQSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQSxFQUE3Qix3QkFBNkI7d0JBQ3pCLEtBQUssR0FBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNsSSxxQkFBTSxhQUFhLENBQUMseUJBQXlCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUE7O3dCQUE5RixNQUFNLEdBQUcsU0FBcUY7d0JBQ2xHLElBQUksTUFBTSxJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUU7NEJBQ25CLFdBQVcsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDOzRCQUNuQyxXQUFXLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDOzRCQUN6RCxXQUFXLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQy9CLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOzRCQUM1QixXQUFXLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzdCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO3lCQUNyQzs7Ozs7OztpQ0F0SWI7SUEySUMsQ0FBQTtBQWxJRCxrQ0FrSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlTTNQcmRHcnAgfSBmcm9tIFwiLi4vTWFlc3Ryby9NM1ByZEdycC50eXBlXCI7XHJcbmltcG9ydCB7IE0zUmVnU2VydmljZSB9IGZyb20gXCIuL20zLXJlZy1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBvc3RTZXJ2aWNlTTMgfSBmcm9tIFwiLi4vLi4vQ29uZXhpb25TUUwvcG9zdHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNM1ByZExpc3RhIH0gZnJvbSBcIi4uL01hZXN0cm8vTTNQcmRMaXN0YS50eXBlXCI7XHJcbmltcG9ydCB7IE0zUHJkR2VuZXJhbCB9IGZyb20gXCIuLi9NYWVzdHJvL00zUHJkR2VuZXJhbC50eXBlXCI7XHJcbmltcG9ydCB7IENvdWNoQ29uZmlnTFBTZXJ2aWNlIH0gZnJvbSBcIi4uL09mZmxpbmUvY291Y2gtY29uZmlnbHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNYXRoVEYgfSBmcm9tIFwiLi4vTWlzY2VsYW5lYS9NYXRoVEYuY2xhc3NcIjtcclxuaW1wb3J0IHsgTTNQcmRBZGljaW9uYWxlcyB9IGZyb20gXCIuLi9NYWVzdHJvL00zUHJkQWRpY2lvbmFsZXMudHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlcnZpY2VMb2FkTGlzdGFQcmVjaW8ge1xyXG4gICAgcHJpdmF0ZSBvTWF0aFRGID0gbmV3IE1hdGhURigpO1xyXG4gICAgcHJpdmF0ZSBnc2lka2F0aW9zOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGFwbFByZWNpb3NEaW5hbWljb3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZGthdGlvcykge1xyXG4gICAgICAgIHRoaXMuZ3NpZGthdGlvcyA9IGlka2F0aW9zO1xyXG4gICAgICAgIHRoaXMuR2V0S2F0aW9zTTNGcm9tU2Vzc2lvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vSWRrYXRpb3MgcXVlIHNlIGNhcmdhLCBjdWFuZG8gc2UgaW5pY2lhIGVsIHJlZGlyZWNjaW9uYW1pZW50byBoYWNpYSBlbCBXRThcclxuICAgIHB1YmxpYyBHZXRLYXRpb3NNM0Zyb21TZXNzaW9uKCkge1xyXG4gICAgICAgIGxldCBLYXRpb3MgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIkNvbmZpZ0thdGlvc1wiICsgdGhpcy5nc2lka2F0aW9zLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgICAgIGlmIChLYXRpb3MgIT09IHVuZGVmaW5lZCAmJiBLYXRpb3MgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB2YXIgakthdGlvc00zID0gSlNPTi5wYXJzZShLYXRpb3MpO1xyXG4gICAgICAgICAgICBpZiAoakthdGlvc00zICYmIGpLYXRpb3NNMy5LYXRpb3MgJiYgakthdGlvc00zLkthdGlvcy5LYXRpb3NNMykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGFwbCA9IGpLYXRpb3NNMy5LYXRpb3MuS2F0aW9zTTMuZmluZCh4ID0+IHguTGxhdmUudG9VcHBlckNhc2UoKSA9PSBcIkFQTExQRElOQU1JQ09TXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGFwbCAmJiBhcGwuVmFsb3IgPT0gXCIxXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwbFByZWNpb3NEaW5hbWljb3MgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vL0FzaWduYXIgbGlzdGEgZGUgcHJlY2lvcywgc2VndW4gbGlzdGEgZGUgcHJlY2lvcyBhc29jaWFkbyBhIHVzdWFyaW8gcG9yIGNhZGEgdWpubyBkZSAgbG9zIHByb2R1Y3RvcyBoaWpvc1xyXG4gICAgcHVibGljIGFzeW5jIEFzaWduYXJMaXN0YVByZWNpb00zUGFjayhQcm9kdWN0b01hZXN0cm86IFR5cGVNM1ByZEdycCwgb0RhdGFVc2VyOiBhbnksIG9Qb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zKSB7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qgb00zUHJkR3JwQXNvY2lhZG8gb2YgUHJvZHVjdG9NYWVzdHJvLk0zUHJkR3JwQXNvY2lhZG8pIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5Bc2lnbmFyTGlzdGFQcmVjaW8ob00zUHJkR3JwQXNvY2lhZG8uTTNHUlAsIG9EYXRhVXNlciwgb1Bvc3RTZXJ2aWNlTTMpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHByZEdlbmVyYWwgb2YgUHJvZHVjdG9NYWVzdHJvLkxvTTNQcmRHZW5lcmFsKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbTNQYWNrIG9mIHByZEdlbmVyYWwuTTNQQUNLKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLkFzaWduYXJMaXN0YVByZWNpbyhtM1BhY2suTTNHUlAsIG9EYXRhVXNlciwgb1Bvc3RTZXJ2aWNlTTMpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8vQXNpZ25hciBsaXN0YSBkZSBwcmVjaW9zLCBzZWd1biBsaXN0YSBkZSBwcmVjaW9zIGFzb2NpYWRvIGEgdXN1YXJpby5cclxuICAgIHB1YmxpYyBhc3luYyBBc2lnbmFyTGlzdGFQcmVjaW8oUHJvZHVjdG9NYWVzdHJvOiBUeXBlTTNQcmRHcnAsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG4gICAgICAgIHRoaXMuR2V0S2F0aW9zTTNGcm9tU2Vzc2lvbigpO1xyXG4gICAgICAgIGlmIChvRGF0YVVzZXIgIT0gbnVsbCAmJiBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEgJiYgb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpbyAhPT0gdW5kZWZpbmVkICYmIG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW8gIT0gLTEgJiYgUHJvZHVjdG9NYWVzdHJvKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgUHJvZHVjdG9NYWVzdHJvLkxvTTNQcmRHZW5lcmFsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcHJkR3JsID0gUHJvZHVjdG9NYWVzdHJvLkxvTTNQcmRHZW5lcmFsW2ldO1xyXG4gICAgICAgICAgICAgICAgbGV0IHNwbGl0UHJlY2lvID0gb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpby5zcGxpdChcIi1cIik7XHJcbiAgICAgICAgICAgICAgICB2YXIgb0xpc3RhRmluZGVkID0gcHJkR3JsLkxvTTNMaXN0YVByZWNpby5maW5kKGxQcmUgPT4gbFByZS5JRExJU1RBID09IHNwbGl0UHJlY2lvWzBdKTtcclxuICAgICAgICAgICAgICAgIGlmIChvTGlzdGFGaW5kZWQgJiYgc3BsaXRQcmVjaW8gJiYgc3BsaXRQcmVjaW8ubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5hcGxQcmVjaW9zRGluYW1pY29zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3BsaXRQcmVjaW9bMV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJMQlwiOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9MaXN0YUZpbmRlZC5QUkVDSU8gPSBvTGlzdGFGaW5kZWQuTEI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTENcIjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvTGlzdGFGaW5kZWQuUFJFQ0lPID0gb0xpc3RhRmluZGVkLkxDO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkxEXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0xpc3RhRmluZGVkLlBSRUNJTyA9IG9MaXN0YUZpbmRlZC5MRDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb0NvdWNoQ29uZmlnTFBTZXJ2aWNlID0gbmV3IENvdWNoQ29uZmlnTFBTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGlzdGFDb3VjaCA9IGF3YWl0IG9Db3VjaENvbmZpZ0xQU2VydmljZS5nZXQoc3BsaXRQcmVjaW9bMF0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgakNvbmZpZ0xQID0gSlNPTi5wYXJzZShsaXN0YUNvdWNoLkpDb25maWd1cmFjaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqQ29uZmlnTFAgJiYgakNvbmZpZ0xQLkZhY3RvcmVzICYmIGpDb25maWdMUC5GYWN0b3Jlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZhY3RvciA9IHBhcnNlRmxvYXQoakNvbmZpZ0xQLkZhY3RvcmVzLmZpbmQoeCA9PiB4Lk5vbWJyZSA9PSBzcGxpdFByZWNpb1sxXSkuRmFjdG9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvTGlzdGFGaW5kZWQuUFJFQ0lPID0gdGhpcy5vTWF0aFRGLnJvdW5kKG9MaXN0YUZpbmRlZC5QUkVDSU8gKiBmYWN0b3IsIDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9MaXN0YUZpbmRlZC5NM1ByZXNlbnRhY2lvbmVzLmZvckVhY2gocHJlc2VudGFjaW9uID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudGFjaW9uLlZBTE9SID0gdGhpcy5vTWF0aFRGLnJvdW5kKHByZXNlbnRhY2lvbi5WQUxPUiAqIGZhY3RvciwgMilcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoRXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3IgZW4gYXNpZ25hcmxpc3RhcHJlY2lvOiBcIiArIEV4Lm1lc3NhZ2UgKyBcIiAtIFwiICsgc3BsaXRQcmVjaW9bMF0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9MaXN0YUZpbmRlZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJkR3JsLkxvTTNQcmRMaXN0YSA9IG9MaXN0YUZpbmRlZDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5WYWxpZGFyRGF0YUZyb21JbnZlbnRhcmlvKHByZEdybCwgb0RhdGFVc2VyLCBvUG9zdFNlcnZpY2VNMyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IG9NM1ByZEFkaWNpb25hbGVzID0gbmV3IE0zUHJkQWRpY2lvbmFsZXMoKTtcclxuICAgICAgICAgICAgb00zUHJkQWRpY2lvbmFsZXMuQVRSSUJVVE8gPSBcIkxJU1RBUFJFQ0lPXCI7XHJcbiAgICAgICAgICAgIG9NM1ByZEFkaWNpb25hbGVzLlZBTE9SID0gb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpbztcclxuICAgICAgICAgICAgUHJvZHVjdG9NYWVzdHJvLkxvTTNQcmRBZGljaW9uYWxlcy5wdXNoKG9NM1ByZEFkaWNpb25hbGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFByb2R1Y3RvTWFlc3Rybykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLkFzaWduYXJMaXN0YVByZWNpb00zUGFjayhQcm9kdWN0b01hZXN0cm8sIG9EYXRhVXNlciwgb1Bvc3RTZXJ2aWNlTTMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgQXNpZ25hckxpc3RhUHJlY2lvQUdlbmVyYWwocHJkR3JsOiBNM1ByZEdlbmVyYWwsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG4gICAgICAgIGlmIChvRGF0YVVzZXIgIT0gbnVsbCAmJiBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEuSURMUHJlY2lvICE9PSB1bmRlZmluZWQgJiYgb0RhdGFVc2VyLlVzdWFyaW9TaXN0ZW1hLklETFByZWNpbyAhPSAtMSkge1xyXG4gICAgICAgICAgICB2YXIgb0xpc3RhRmluZGVkID0gcHJkR3JsLkxvTTNMaXN0YVByZWNpby5maW5kKGxQcmUgPT4gbFByZS5JRExJU1RBID09IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW8pO1xyXG4gICAgICAgICAgICBpZiAob0xpc3RhRmluZGVkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHByZEdybC5Mb00zUHJkTGlzdGEgPSBvTGlzdGFGaW5kZWQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLlZhbGlkYXJEYXRhRnJvbUludmVudGFyaW8ocHJkR3JsLCBvRGF0YVVzZXIsIG9Qb3N0U2VydmljZU0zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIFZhbGlkYXJEYXRhRnJvbUludmVudGFyaW8ocHJkR3JsOiBNM1ByZEdlbmVyYWwsIG9EYXRhVXNlcjogYW55LCBvUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMykge1xyXG4gICAgICAgIHZhciBzTGlzdGE6IHN0cmluZyA9IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5JRExQcmVjaW87XHJcbiAgICAgICAgdmFyIG9NM1JlZ1NlcnZpY2U6IE0zUmVnU2VydmljZSA9IG5ldyBNM1JlZ1NlcnZpY2UobnVsbCwgbnVsbCwgbnVsbCk7XHJcbiAgICAgICAgLy9WYWxpZGFyIHNpIGVzIHVuIHZhbG9yIGRlIGludmVudGFyaW8uXHJcbiAgICAgICAgaWYgKHNMaXN0YS5zcGxpdCgnXycpWzBdID09IFwiSU5WXCIpIHtcclxuICAgICAgICAgICAgdmFyIGpEYXRhOiBhbnkgPSB7IFwidWJpY2FjaW9uXCI6IG9EYXRhVXNlci5Vc3VhcmlvU2lzdGVtYS5VQklDQUNJT04sIFwic2t1XCI6IHByZEdybC5TS1UsIFwibG90ZVwiOiBwcmRHcmwuTE9URSwgXCJjb25jZXB0b1wiOiBzTGlzdGEuc3BsaXQoJ18nKVsxXSB9O1xyXG4gICAgICAgICAgICB2YXIgcHJlY2lvID0gYXdhaXQgb00zUmVnU2VydmljZS5HZXRDb25jZXB0b00zU2FsZG9zSXRlbVViKG9Qb3N0U2VydmljZU0zLCB0aGlzLmdzaWRrYXRpb3MsIGpEYXRhKTtcclxuICAgICAgICAgICAgaWYgKHByZWNpbyAmJiBwcmVjaW8gIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9NM1ByZExpc3RhID0gbmV3IE0zUHJkTGlzdGEoKTtcclxuICAgICAgICAgICAgICAgIG9NM1ByZExpc3RhLklETElTVEEgPSBvRGF0YVVzZXIuVXN1YXJpb1Npc3RlbWEuSURMUHJlY2lvO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuTE9URSA9IHByZEdybC5MT1RFO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuUFJFQ0lPID0gcHJlY2lvO1xyXG4gICAgICAgICAgICAgICAgb00zUHJkTGlzdGEuU0tVID0gcHJkR3JsLlNLVTtcclxuICAgICAgICAgICAgICAgIHByZEdybC5Mb00zUHJkTGlzdGEgPSBvTTNQcmRMaXN0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG59Il19
|
|
@@ -9,8 +9,10 @@ import { ServiceM3Maestro } from "./M3Maestro.service";
|
|
|
9
9
|
import { M3Procesos } from "../Registro/m3-procesos";
|
|
10
10
|
import { M3PDinamicas } from "../Registro/m3-pdinamicas";
|
|
11
11
|
import { M3PerXProceso } from "../Registro/m3-per-x-proceso";
|
|
12
|
+
import { ServiceLoadListaPrecio } from "./m3-load-l-precio.service";
|
|
12
13
|
var M3RegMasivo = /** @class */ (function () {
|
|
13
|
-
function M3RegMasivo(isIdKatios, ioM3Proceso, iConfMasiva, ibBarcode) {
|
|
14
|
+
function M3RegMasivo(isIdKatios, ioM3Proceso, iConfMasiva, ibBarcode, oCouchPRDSService) {
|
|
15
|
+
this.oCouchPRDSService = oCouchPRDSService;
|
|
14
16
|
this.separador = ",";
|
|
15
17
|
this.oM3Proceso = new M3Procesos();
|
|
16
18
|
this.gbBarCode = false;
|
|
@@ -33,6 +35,7 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
33
35
|
* @param {?} PostServiceM3
|
|
34
36
|
* @param {?} oDatUser
|
|
35
37
|
* @param {?} oDataProc
|
|
38
|
+
* @param {?=} oM3Ubicacion
|
|
36
39
|
* @return {?}
|
|
37
40
|
*/
|
|
38
41
|
M3RegMasivo.prototype.AdicionarMasivo = /**
|
|
@@ -40,9 +43,11 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
40
43
|
* @param {?} PostServiceM3
|
|
41
44
|
* @param {?} oDatUser
|
|
42
45
|
* @param {?} oDataProc
|
|
46
|
+
* @param {?=} oM3Ubicacion
|
|
43
47
|
* @return {?}
|
|
44
48
|
*/
|
|
45
|
-
function (oM3CouchMaestro, PostServiceM3, oDatUser, oDataProc) {
|
|
49
|
+
function (oM3CouchMaestro, PostServiceM3, oDatUser, oDataProc, oM3Ubicacion) {
|
|
50
|
+
if (oM3Ubicacion === void 0) { oM3Ubicacion = null; }
|
|
46
51
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
47
52
|
var csv, arrCSV, proceso;
|
|
48
53
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -56,7 +61,7 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
56
61
|
csv = this.reader.result.toString();
|
|
57
62
|
}
|
|
58
63
|
arrCSV = csv.split("\n");
|
|
59
|
-
return [4 /*yield*/, this.adicionar_masivo_from_array(oM3CouchMaestro, PostServiceM3, oDatUser, arrCSV)];
|
|
64
|
+
return [4 /*yield*/, this.adicionar_masivo_from_array(oM3CouchMaestro, PostServiceM3, oDatUser, arrCSV, oM3Ubicacion)];
|
|
60
65
|
case 1:
|
|
61
66
|
proceso = _a.sent();
|
|
62
67
|
return [2 /*return*/, proceso];
|
|
@@ -88,7 +93,8 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
88
93
|
if (oM3Ubicacion === void 0) { oM3Ubicacion = null; }
|
|
89
94
|
if (aplExc === void 0) { aplExc = "0"; }
|
|
90
95
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
91
|
-
var total, count, product, oServiceM3Maestro, oM3RegService, i, line, oestructCSV
|
|
96
|
+
var total, count, product, oServiceM3Maestro, oM3RegService, prdsFails, prdfailactual, result, arrayResp, i, line, oestructCSV;
|
|
97
|
+
var _this = this;
|
|
92
98
|
return tslib_1.__generator(this, function (_a) {
|
|
93
99
|
switch (_a.label) {
|
|
94
100
|
case 0:
|
|
@@ -96,19 +102,66 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
96
102
|
count = 0;
|
|
97
103
|
oServiceM3Maestro = new ServiceM3Maestro();
|
|
98
104
|
oM3RegService = new M3RegService(oM3CouchMaestro, PostServiceM3, this.gsIdKatios);
|
|
105
|
+
prdsFails = "";
|
|
106
|
+
prdfailactual = false;
|
|
99
107
|
this.progress = 0;
|
|
108
|
+
arrayResp = [this.oM3Proceso, ""];
|
|
100
109
|
i = 0;
|
|
101
110
|
_a.label = 1;
|
|
102
111
|
case 1:
|
|
103
112
|
if (!(i < total)) return [3 /*break*/, 10];
|
|
113
|
+
prdfailactual = false;
|
|
104
114
|
line = arrCSV[i];
|
|
105
115
|
if (!line) return [3 /*break*/, 8];
|
|
106
116
|
oestructCSV = this.SetEstructCSV(line);
|
|
107
117
|
if (!this.gbBarCode) return [3 /*break*/, 3];
|
|
108
|
-
|
|
109
|
-
return [4 /*yield*/,
|
|
118
|
+
console.debug("fue local: " + oestructCSV.sku);
|
|
119
|
+
return [4 /*yield*/, this.oCouchPRDSService.get(oestructCSV.sku).then(function (prd) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
120
|
+
var oServiceLoadListaPrecio;
|
|
121
|
+
return tslib_1.__generator(this, function (_a) {
|
|
122
|
+
switch (_a.label) {
|
|
123
|
+
case 0:
|
|
124
|
+
console.debug("obtuvo local");
|
|
125
|
+
console.debug(prd);
|
|
126
|
+
oServiceLoadListaPrecio = new ServiceLoadListaPrecio(this.gsIdKatios);
|
|
127
|
+
return [4 /*yield*/, oServiceLoadListaPrecio.AsignarListaPrecio(prd.ListCods, oDatUser, PostServiceM3).then(function (x) {
|
|
128
|
+
console.debug("asigno lp local");
|
|
129
|
+
console.debug(prd.ListCods);
|
|
130
|
+
product = prd.ListCods;
|
|
131
|
+
})];
|
|
132
|
+
case 1:
|
|
133
|
+
_a.sent();
|
|
134
|
+
return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
}); }, function (error) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
138
|
+
var data, err_1, errMsg, prdFail;
|
|
139
|
+
return tslib_1.__generator(this, function (_a) {
|
|
140
|
+
switch (_a.label) {
|
|
141
|
+
case 0:
|
|
142
|
+
console.error("error lp - intento server: " + oestructCSV.sku + ": " + error);
|
|
143
|
+
data = { "id_ubicacion": oDatUser.UsuarioSistema.UBICACION, "Codigo": oestructCSV.sku };
|
|
144
|
+
_a.label = 1;
|
|
145
|
+
case 1:
|
|
146
|
+
_a.trys.push([1, 3, , 4]);
|
|
147
|
+
return [4 /*yield*/, oServiceM3Maestro.Get_M3ProductoEspecByCodeAsync(PostServiceM3, this.gsIdKatios, data, oDatUser)];
|
|
148
|
+
case 2:
|
|
149
|
+
product = _a.sent();
|
|
150
|
+
return [3 /*break*/, 4];
|
|
151
|
+
case 3:
|
|
152
|
+
err_1 = _a.sent();
|
|
153
|
+
console.error("error catch lp: " + oestructCSV.sku + ": " + err_1);
|
|
154
|
+
errMsg = err_1.url;
|
|
155
|
+
prdFail = errMsg.substring(errMsg.indexOf("Codigo") + 7);
|
|
156
|
+
prdsFails += prdFail + ",";
|
|
157
|
+
prdfailactual = true;
|
|
158
|
+
return [3 /*break*/, 4];
|
|
159
|
+
case 4: return [2 /*return*/];
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}); })];
|
|
110
163
|
case 2:
|
|
111
|
-
|
|
164
|
+
_a.sent();
|
|
112
165
|
return [3 /*break*/, 7];
|
|
113
166
|
case 3:
|
|
114
167
|
console.debug(oM3Ubicacion);
|
|
@@ -123,8 +176,14 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
123
176
|
product = _a.sent();
|
|
124
177
|
_a.label = 7;
|
|
125
178
|
case 7:
|
|
126
|
-
|
|
127
|
-
|
|
179
|
+
console.debug(product);
|
|
180
|
+
if (!prdfailactual && product) {
|
|
181
|
+
this.setPrecioSiAPlica(product, oestructCSV);
|
|
182
|
+
this.AddPrdToM3Proceso(product, oestructCSV, oM3RegService, oDatUser, oM3Ubicacion);
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
console.error("error product no se lleno: " + oestructCSV.sku);
|
|
186
|
+
}
|
|
128
187
|
_a.label = 8;
|
|
129
188
|
case 8:
|
|
130
189
|
count++;
|
|
@@ -134,7 +193,10 @@ var M3RegMasivo = /** @class */ (function () {
|
|
|
134
193
|
case 9:
|
|
135
194
|
i++;
|
|
136
195
|
return [3 /*break*/, 1];
|
|
137
|
-
case 10:
|
|
196
|
+
case 10:
|
|
197
|
+
arrayResp[0] = this.oM3Proceso;
|
|
198
|
+
arrayResp[1] = prdsFails;
|
|
199
|
+
return [2 /*return*/, arrayResp];
|
|
138
200
|
}
|
|
139
201
|
});
|
|
140
202
|
});
|
|
@@ -430,6 +492,8 @@ function M3RegMasivo_tsickle_Closure_declarations() {
|
|
|
430
492
|
M3RegMasivo.prototype.rounded_progress;
|
|
431
493
|
/** @type {?} */
|
|
432
494
|
M3RegMasivo.prototype.gbBarCode;
|
|
495
|
+
/** @type {?} */
|
|
496
|
+
M3RegMasivo.prototype.oCouchPRDSService;
|
|
433
497
|
}
|
|
434
498
|
/**
|
|
435
499
|
* @record
|
|
@@ -452,4 +516,4 @@ function estructCSV_tsickle_Closure_declarations() {
|
|
|
452
516
|
estructCSV.prototype.M3Det;
|
|
453
517
|
}
|
|
454
518
|
|
|
455
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtcmVnLW1hc2l2by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2YtcmVnbGFuZWdvY2lvbTMvIiwic291cmNlcyI6WyJsaWIvcm5tMy9TZXJ2aWNlcy9tMy1yZWctbWFzaXZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc3RCxJQUFBO0lBVUkscUJBQVksVUFBa0IsRUFBRSxXQUF1QixFQUFFLFdBQWdCLEVBQUUsU0FBa0I7eUJBTmpFLEdBQUc7MEJBQ1YsSUFBSSxVQUFVLEVBQUU7eUJBSVQsS0FBSztRQUU3QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztLQUM5Qjs7OztJQUVNLDBDQUFvQjs7OztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lBSXBCLHFDQUFlOzs7Ozs7O2NBQUMsZUFBK0IsRUFBRSxhQUE0QixFQUFFLFFBQWEsRUFBRSxTQUFjOzs7Ozs7d0JBQ3JILElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBRTFCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFOzRC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O0FBOVJELHVCQThSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE0zUEl0ZW1zV0VCLCBNM1BEZXRhbGxlSXRlbXMgfSBmcm9tIFwiLi4vUmVnaXN0cm8vbTMtcGRldGFsbGUtaXRlbXNcIjtcclxuaW1wb3J0IHsgVHlwZU0zUHJkR3JwIH0gZnJvbSBcIi4uL01hZXN0cm8vTTNQcmRHcnAudHlwZVwiO1xyXG5pbXBvcnQgeyBNM1JlZ1NlcnZpY2UgfSBmcm9tIFwiLi9tMy1yZWctc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNM0NvdWNoTWFlc3RybyB9IGZyb20gXCIuLi9EYXRhL20zLWNvdWNoLW1hZXN0cm9cIjtcclxuaW1wb3J0IHsgUG9zdFNlcnZpY2VNMyB9IGZyb20gXCIuLi8uLi9Db25leGlvblNRTC9wb3N0cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNlcnZpY2VNM01hZXN0cm8gfSBmcm9tIFwiLi9NM01hZXN0cm8uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBNM1Byb2Nlc29zIH0gZnJvbSBcIi4uL1JlZ2lzdHJvL20zLXByb2Nlc29zXCI7XHJcbmltcG9ydCB7IE0zUERpbmFtaWNhcyB9IGZyb20gXCIuLi9SZWdpc3Ryby9tMy1wZGluYW1pY2FzXCI7XHJcbmltcG9ydCB7IE0zUGVyWFByb2Nlc28gfSBmcm9tIFwiLi4vUmVnaXN0cm8vbTMtcGVyLXgtcHJvY2Vzb1wiO1xyXG5pbXBvcnQgeyBNM1ViaWNhY2lvbiB9IGZyb20gXCIuLi9NYWVzdHJvL1ViaWNhY2lvbi9NM1ViaWNhY2lvbi50eXBlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTTNSZWdNYXNpdm8ge1xyXG5cclxuICAgIHByaXZhdGUgZ3NJZEthdGlvczogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSByZWFkZXI6IEZpbGVSZWFkZXI7XHJcbiAgICBwcml2YXRlIHNlcGFyYWRvcjogc3RyaW5nID0gXCIsXCI7XHJcbiAgICBwcml2YXRlIG9NM1Byb2Nlc28gPSBuZXcgTTNQcm9jZXNvcygpO1xyXG4gICAgcHJpdmF0ZSBwcm9ncmVzczogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBDb25mTWFzaXZhOiBhbnk7XHJcbiAgICBwdWJsaWMgcm91bmRlZF9wcm9ncmVzczogbnVtYmVyO1xyXG4gICAgcHVibGljIGdiQmFyQ29kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29uc3RydWN0b3IoaXNJZEthdGlvczogc3RyaW5nLCBpb00zUHJvY2VzbzogTTNQcm9jZXNvcywgaUNvbmZNYXNpdmE6IGFueSwgaWJCYXJjb2RlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5vTTNQcm9jZXNvID0gaW9NM1Byb2Nlc287XHJcbiAgICAgICAgdGhpcy5nc0lkS2F0aW9zID0gaXNJZEthdGlvcztcclxuICAgICAgICB0aGlzLkNvbmZNYXNpdmEgPSBpQ29uZk1hc2l2YTtcclxuICAgICAgICB0aGlzLmdiQmFyQ29kZSA9IGliQmFyY29kZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0X3JvdW5kZWRfcHJvZ3Jlc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucm91bmRlZF9wcm9ncmVzcztcclxuICAgIH1cclxuXHJcbiAgICAvLy9BZGljaW9uYXIgcHJvZHVjdG9zIGVuIG1hc2l2b1xyXG4gICAgcHVibGljIGFzeW5jIEFkaWNpb25hck1hc2l2byhvTTNDb3VjaE1hZXN0cm86IE0zQ291Y2hNYWVzdHJvLCBQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBvRGF0VXNlcjogYW55LCBvRGF0YVByb2M6IGFueSkge1xyXG4gICAgICAgIHRoaXMuR2V0UmVhZGVyKG9EYXRhUHJvYyk7XHJcbiAgICAgICAgbGV0IGNzdjogc3RyaW5nO1xyXG4gICAgICAgIGlmICghdGhpcy5yZWFkZXIpIHtcclxuICAgICAgICAgICAgY3N2ID0gb0RhdGFQcm9jLlRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBjc3YgPSB0aGlzLnJlYWRlci5yZXN1bHQudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGFyckNTVjogQXJyYXk8c3RyaW5nPiA9IGNzdi5zcGxpdChcIlxcblwiKTtcclxuXHJcbiAgICAgICAgdmFyIHByb2Nlc28gPSBhd2FpdCB0aGlzLmFkaWNpb25hcl9tYXNpdm9fZnJvbV9hcnJheShvTTNDb3VjaE1hZXN0cm8sIFBvc3RTZXJ2aWNlTTMsIG9EYXRVc2VyLCBhcnJDU1YpO1xyXG5cclxuICAgICAgICByZXR1cm4gcHJvY2VzbztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY29ycmUgeSBhZGljaW9uYSBsb3MgcHJvZHVjdG9zIGVuIHVuIGFycmF5IGEgdW4gcHJvY2Vzb1xyXG4gICAgICogQHBhcmFtIG9NM0NvdWNoTWFlc3RybyBcclxuICAgICAqIEBwYXJhbSBQb3N0U2VydmljZU0zIFxyXG4gICAgICogQHBhcmFtIG9EYXRVc2VyIFxyXG4gICAgICogQHBhcmFtIGFyckNTViBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFzeW5jIGFkaWNpb25hcl9tYXNpdm9fZnJvbV9hcnJheShvTTNDb3VjaE1hZXN0cm86IE0zQ291Y2hNYWVzdHJvLCBQb3N0U2VydmljZU0zOiBQb3N0U2VydmljZU0zLCBvRGF0VXNlcjogYW55LCBhcnJDU1Y6IEFycmF5PHN0cmluZz4sIG9NM1ViaWNhY2lvbjogTTNVYmljYWNpb24gPSBudWxsLCBhcGxFeGM6IHN0cmluZyA9IFwiMFwiKSB7XHJcblxyXG4gICAgICAgIGxldCB0b3RhbCA9IGFyckNTVi5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICB2YXIgcHJvZHVjdDogVHlwZU0zUHJkR3JwXHJcbiAgICAgICAgdmFyIG9TZXJ2aWNlTTNNYWVzdHJvID0gbmV3IFNlcnZpY2VNM01hZXN0cm8oKTtcclxuICAgICAgICB2YXIgb00zUmVnU2VydmljZSA9IG5ldyBNM1JlZ1NlcnZpY2Uob00zQ291Y2hNYWVzdHJvLCBQb3N0U2VydmljZU0zLCB0aGlzLmdzSWRLYXRpb3MpO1xyXG5cclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3RhbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHZhciBsaW5lOiBzdHJpbmcgPSBhcnJDU1ZbaV07XHJcbiAgICAgICAgICAgIGlmIChsaW5lKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1Y7XHJcbiAgICAgICAgICAgICAgICBvZXN0cnVjdENTViA9IHRoaXMuU2V0RXN0cnVjdENTVihsaW5lKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdiQmFyQ29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID0geyBcImlkX3ViaWNhY2lvblwiOiBvRGF0VXNlci5Vc3VhcmlvU2lzdGVtYS5VQklDQUNJT04sIFwiQ29kaWdvXCI6IG9lc3RydWN0Q1NWLnNrdSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSBhd2FpdCBvU2VydmljZU0zTWFlc3Ryby5HZXRfTTNQcm9kdWN0b0VzcGVjQnlDb2RlQXN5bmMoUG9zdFNlcnZpY2VNMywgdGhpcy5nc0lkS2F0aW9zLCBkYXRhLCBvRGF0VXNlcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcob00zVWJpY2FjaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKG9NM1ViaWNhY2lvbiAmJiBvTTNVYmljYWNpb24uSURVYmljYWNpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChvTTNVYmljYWNpb24gJiYgb00zVWJpY2FjaW9uLklEVWJpY2FjaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSBhd2FpdCBvU2VydmljZU0zTWFlc3Ryby5NM0dldFByb2R1Y3RvQnlTS1VBc3luYyhQb3N0U2VydmljZU0zLCB0aGlzLmdzSWRLYXRpb3MsIG9lc3RydWN0Q1NWLnNrdSwgb0RhdFVzZXIsIG9NM1ViaWNhY2lvbi5JRFViaWNhY2lvbiwgYXBsRXhjKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSBhd2FpdCBvU2VydmljZU0zTWFlc3Ryby5NM0dldFByb2R1Y3RvQnlTS1VBc3luYyhQb3N0U2VydmljZU0zLCB0aGlzLmdzSWRLYXRpb3MsIG9lc3RydWN0Q1NWLnNrdSwgb0RhdFVzZXIsIFwiLTFcIiwgYXBsRXhjKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcmVjaW9TaUFQbGljYShwcm9kdWN0LCBvZXN0cnVjdENTVik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkFkZFByZFRvTTNQcm9jZXNvKHByb2R1Y3QsIG9lc3RydWN0Q1NWLCBvTTNSZWdTZXJ2aWNlLCBvRGF0VXNlciwgb00zVWJpY2FjaW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gY291bnQgKiAxMDAgLyB0b3RhbDtcclxuICAgICAgICAgICAgdGhpcy5yb3VuZGVkX3Byb2dyZXNzID0gTWF0aC5yb3VuZCh0aGlzLnByb2dyZXNzICogMTAwKSAvIDEwMFxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5vTTNQcm9jZXNvO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2FtYmlhciBwcmVjaW8gZGUgcHJvZHVjdG8uXHJcbiAgICBwdWJsaWMgc2V0UHJlY2lvU2lBUGxpY2EocHJvZHVjdDogVHlwZU0zUHJkR3JwLCBvZXN0cnVjdENTVjogZXN0cnVjdENTVikge1xyXG4gICAgICAgIGlmIChvZXN0cnVjdENTVi5wcmVjaW8gIT09IE5hTiAmJiBvZXN0cnVjdENTVi5wcmVjaW8gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBwcm9kdWN0LkxvTTNQcmRHZW5lcmFsWzBdLkxvTTNQcmRMaXN0YS5QUkVDSU8gPSBvZXN0cnVjdENTVi5wcmVjaW87XHJcbiAgICAgICAgICAgIHByb2R1Y3QuTG9NM1ByZEdlbmVyYWxbMF0uTG9NM1ByZExpc3RhLk0zUHJlc2VudGFjaW9uZXMuZm9yRWFjaChvTTNQcmVzZW50YWNpb25lcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBvTTNQcmVzZW50YWNpb25lcy5WQUxPUiA9IG9lc3RydWN0Q1NWLnByZWNpbztcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vQWRpY2lvbmFyIGEgbTNwcm9jZXNvLCBwcm9kdWN0byBlc3BlY2lmaWNvLCBzZSBlbnZpYSBjYW50aWRhZC5cclxuICAgIHB1YmxpYyBBZGRQcmRUb00zUHJvY2Vzbyhwcm9kdWN0OiBUeXBlTTNQcmRHcnAsIG9lc3RydWN0Q1NWOiBlc3RydWN0Q1NWLCBvTTNSZWdTZXJ2aWNlOiBNM1JlZ1NlcnZpY2UsIG9EYXRVc2VyOiBhbnksIG9NM1ViaWNhY2lvbjogTTNVYmljYWNpb24gPSBudWxsKSB7XHJcbiAgICAgICAgdmFyIG9NM1BJdGVtc1dFQiA9IG5ldyBNM1BJdGVtc1dFQigpO1xyXG4gICAgICAgIG9NM1BJdGVtc1dFQi5kQ2FudGlkYWQgPSBvZXN0cnVjdENTVi5jYW50aWRhZDtcclxuICAgICAgICBpZiAob2VzdHJ1Y3RDU1YuUGF0aEltYWdlbikge1xyXG4gICAgICAgICAgICBvTTNQSXRlbXNXRUIuUGF0aEltYWdlbiA9IG9lc3RydWN0Q1NWLlBhdGhJbWFnZW47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG9NM1BJdGVtc1dFQiA9IG9NM1JlZ1NlcnZpY2UuTG9hZEFkaWNpb25hbGVzKG9NM1BJdGVtc1dFQiwgcHJvZHVjdCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9NM1Byb2Nlc28uTTNFTkMubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgLy8vUHJpbWVyYSB2ZXogXHJcbiAgICAgICAgICAgIC8vL05PIFNFIEVTVEEgRU5WSUFORE8gSU5GT1JNQUNJT04gREUgUFJPTU9DSU9ORVNcclxuICAgICAgICAgICAgdGhpcy5vTTNQcm9jZXNvID0gb00zUmVnU2VydmljZS5Mb2FkTTNQcm9jZXNvRW1wdHlQREIocHJvZHVjdCwgb00zUEl0ZW1zV0VCLCBvRGF0VXNlciwgb00zVWJpY2FjaW9uLCBudWxsLCB0aGlzLm9NM1Byb2Nlc28pO1xyXG4gICAgICAgICAgICAvL0FncmVnYXIgZGluYW1pY2FzXHJcbiAgICAgICAgICAgIHRoaXMuQWRpY2lvbmFyRGluYW1pY2Eob2VzdHJ1Y3RDU1YpO1xyXG4gICAgICAgICAgICB0aGlzLkFkaWNpb25hclBlcnNvbmFzQVByb2Nlc28ob2VzdHJ1Y3RDU1YpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvTTNSZWdTZXJ2aWNlLkxvYWRNM1Byb2Nlc29Gcm9tRGF0YSh0aGlzLm9NM1Byb2Nlc28sIHByb2R1Y3QsIG9NM1BJdGVtc1dFQiwgb00zVWJpY2FjaW9uLCBudWxsLCBvRGF0VXNlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuQWRpY2lvbmFyRGV0YWxsZShvZXN0cnVjdENTVik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGljaW9uYXIgY2FwdHVyYXMgZGluYW1pY2FzXHJcbiAgICAgKiBAcGFyYW0gb2VzdHJ1Y3RDU1YgRXN0cnVjdHVyYSBjb24gaW5mb3JtYWNpb24gZGUgbGluZWEgYSBhZ3JlZ2FyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBBZGljaW9uYXJEaW5hbWljYShvZXN0cnVjdENTVjogZXN0cnVjdENTVikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBkaW5hbWljYXMgPSBvZXN0cnVjdENTVi5EaW5hbWljYXNcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaW5hbWljYXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciBvTTNQRGluYW1pY2FzID0gbmV3IE0zUERpbmFtaWNhcygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9NM1Byb2Nlc28ubE0zUERpbmFtaWNhcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub00zUHJvY2Vzby5sTTNQRGluYW1pY2FzID0gbmV3IEFycmF5PE0zUERpbmFtaWNhcz4oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG9NM1BEaW5hbWljYXMuTm9tYnJlID0gZGluYW1pY2FzW2ldLkF0cmlidXRvO1xyXG4gICAgICAgICAgICAgICAgb00zUERpbmFtaWNhcy5WYWxvciA9IGRpbmFtaWNhc1tpXS5WYWxvcjtcclxuICAgICAgICAgICAgICAgIHRoaXMub00zUHJvY2Vzby5sTTNQRGluYW1pY2FzLnB1c2gob00zUERpbmFtaWNhcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGFkaWNpb25hciBkaW5hbWljYVwiKVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhleClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGljaW9uYXIgcGVyc29uYXMgYSBwcm9jZXNvXHJcbiAgICAgKiBAcGFyYW0gb2VzdHJ1Y3RDU1YgRXN0cnVjdHVyYSBjb24gaW5mb3JtYWNpb24gYSBhZ3JlZ2FyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBBZGljaW9uYXJQZXJzb25hc0FQcm9jZXNvKG9lc3RydWN0Q1NWOiBlc3RydWN0Q1NWKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIHBlcnNvbmFzID0gb2VzdHJ1Y3RDU1YuUGVyc29uYXM7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGVyc29uYXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHZhciBvTTNQZXJYUHJvY2VzbyA9IG5ldyBNM1BlclhQcm9jZXNvKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMub00zUHJvY2Vzby5NM1BlclhQcm9jZXNvKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vTTNQcm9jZXNvLk0zUGVyWFByb2Nlc28gPSBuZXcgQXJyYXk8TTNQZXJYUHJvY2Vzbz4oKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIG9NM1BlclhQcm9jZXNvLlRkb2MgPSBwZXJzb25hc1tpXS5UZG9jO1xyXG4gICAgICAgICAgICAgICAgb00zUGVyWFByb2Nlc28uTmRvYyA9IHBlcnNvbmFzW2ldLk5kb2M7XHJcbiAgICAgICAgICAgICAgICBvTTNQZXJYUHJvY2Vzby5UaXBvUGVyc29uYSA9IHBlcnNvbmFzW2ldLkF0cmlidXRvO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vTTNQcm9jZXNvLk0zUGVyWFByb2Nlc28ucHVzaChvTTNQZXJYUHJvY2Vzbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGFkaWNpb25hciBwZXJzb25hc1wiKVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhleClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGljaW9uYXIgZGV0YWxsZSBhbCB1bHRpbW8gZW5jYWJlemFkbyBhZ3JlZ2Fkby5cclxuICAgICAqIEBwYXJhbSBvZXN0cnVjdENTViBFc3RydWN0dXJhIGNvbiBpbmZvcm1hY2lvbiBkZSBsaW5lYSBhIGFncmVnYXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIEFkaWNpb25hckRldGFsbGUob2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1YpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgZGV0YWxsZXMgPSBvZXN0cnVjdENTVi5NM0RldFxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRldGFsbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb00zUERldGFsbGVJdGVtcyA9IG5ldyBNM1BEZXRhbGxlSXRlbXMoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBvTTNQRGV0YWxsZUl0ZW1zLk5vbWJyZUNvbmNlcHRvID0gZGV0YWxsZXNbaV0uQXRyaWJ1dG87XHJcbiAgICAgICAgICAgICAgICBvTTNQRGV0YWxsZUl0ZW1zLlZhbG9yID0gZGV0YWxsZXNbaV0uVmFsb3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9NM1Byb2Nlc28uTTNFTkNbdGhpcy5vTTNQcm9jZXNvLk0zRU5DLmxlbmd0aCAtIDFdLk0zREVULnB1c2gob00zUERldGFsbGVJdGVtcyk7XHJcbiAgICAgICAgICAgICAgICAvL3RoaXMub00zUHJvY2Vzby5NM0VOQy5maW5kKHggPT4geC5JZFByb2R1Y3RvID09IG9lc3RydWN0Q1NWLilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgYWRpY2lvbmFyIGRldGFsbGVcIilcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLy9PYnRlbmVyIHkgc2V0ZWFyIGxhIGluZm9ybWFjaW9uIGRlIGFyY2hpdm8gQ1NWIHkgc2VwYXJhZG9yLlxyXG4gICAgcHVibGljIEdldFJlYWRlcihvRGF0YVByb2M6IGFueSkge1xyXG4gICAgICAgIHRoaXMucmVhZGVyID0gb0RhdGFQcm9jLkNTVjtcclxuICAgICAgICB0aGlzLnNlcGFyYWRvciA9IG9EYXRhUHJvYy5TZXBhcmFkb3I7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLy9TZXRlYXIgZXN0cnVjdXRhciBkZSBDU1ZcclxuICAgIHB1YmxpYyBTZXRFc3RydWN0Q1NWKGxpbmU6IHN0cmluZykge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBvZXN0cnVjdENTVjogZXN0cnVjdENTViA9IHsgXCJjYW50aWRhZFwiOiBudWxsLCBcInByZWNpb1wiOiBudWxsLCBcInNrdVwiOiBudWxsLCBcIlBhdGhJbWFnZW5cIjogbnVsbCwgXCJEaW5hbWljYXNcIjogW10sIFwiUGVyc29uYXNcIjogW10sIFwiTTNEZXRcIjogW10gfTtcclxuICAgICAgICAgICAgdmFyIG9BcnJDU1Y6IEFycmF5PHN0cmluZz4gPSBsaW5lLnNwbGl0KHRoaXMuc2VwYXJhZG9yKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLkNvbmZNYXNpdmEgJiYgdGhpcy5Db25mTWFzaXZhLkNvbHVtbmFzKSB7XHJcbiAgICAgICAgICAgICAgICBvZXN0cnVjdENTViA9IHRoaXMuRXN0cnVjdER5bmFtaWMob0FyckNTVik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBvZXN0cnVjdENTViA9IHRoaXMuRXN0cnVjdERlZmF1bHQob0FyckNTVik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBvZXN0cnVjdENTVjtcclxuICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGNyZWFuZG8gZXN0cnVjdHVyYS4gUmV2aXNhciBsaW5lYXNcIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXN0cnVjdHVyYSBkaW5hbWljYSBkZSBjYXJndWUgbWFzaXZhXHJcbiAgICAgKiBAcGFyYW0gb0FyckNTViBhcnJlZ2xvIGNvbiBpbmZvcm1hY2lvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIEVzdHJ1Y3REeW5hbWljKG9BcnJDU1Y6IEFycmF5PHN0cmluZz4pIHtcclxuICAgICAgICB2YXIgY29sdW1uYXM6IEFycmF5PGFueT4gPSB0aGlzLkNvbmZNYXNpdmEuQ29sdW1uYXM7XHJcbiAgICAgICAgdmFyIG9lc3RydWN0Q1NWOiBlc3RydWN0Q1NWID0geyBcImNhbnRpZGFkXCI6IG51bGwsIFwicHJlY2lvXCI6IG51bGwsIFwic2t1XCI6IG51bGwsIFwiUGF0aEltYWdlblwiOiBudWxsLCBcIkRpbmFtaWNhc1wiOiBbXSwgXCJQZXJzb25hc1wiOiBbXSwgXCJNM0RldFwiOiBbXSB9O1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbHVtbmFzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uYXNbaV0uRXN0cnVjdHVyYSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkNhbnRpZGFkXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgb2VzdHJ1Y3RDU1YuY2FudGlkYWQgPSArb0FyckNTVltjb2x1bW5hc1tpXS5Qb3NpY2lvbl07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiUHJlY2lvXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgb2VzdHJ1Y3RDU1YucHJlY2lvID0gK29BcnJDU1ZbY29sdW1uYXNbaV0uUG9zaWNpb25dO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlNLVVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIG9lc3RydWN0Q1NWLnNrdSA9IG9BcnJDU1ZbY29sdW1uYXNbaV0uUG9zaWNpb25dO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkRJTkFNSUNBXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpbiA9IHsgXCJBdHJpYnV0b1wiOiBjb2x1bW5hc1tpXS5BdHJpYnV0bywgXCJWYWxvclwiOiBvQXJyQ1NWW2NvbHVtbmFzW2ldLlBvc2ljaW9uXSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIG9lc3RydWN0Q1NWLkRpbmFtaWNhcy5wdXNoKGRpbik7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiTTNERVRcIjpcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbTNEZXQgPSB7IFwiQXRyaWJ1dG9cIjogY29sdW1uYXNbaV0uQXRyaWJ1dG8sIFwiVmFsb3JcIjogb0FyckNTVltjb2x1bW5hc1tpXS5Qb3NpY2lvbl0gfTtcclxuICAgICAgICAgICAgICAgICAgICBvZXN0cnVjdENTVi5NM0RldC5wdXNoKG0zRGV0KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJUSVBPUEVSU09OQVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWxvciA9IG9BcnJDU1ZbY29sdW1uYXNbaV0uUG9zaWNpb25dO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZG9jOiBzdHJpbmcgPSBcIjVcIjtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbmRvYzogc3RyaW5nO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsb3Iuc3BsaXQoXCItXCIpLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRkb2MgPSB2YWxvci5zcGxpdChcIi1cIilbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5kb2MgPSB2YWxvci5zcGxpdChcIi1cIilbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmRvYyA9IHZhbG9yO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcnNvbmEgPSB7IFwiQXRyaWJ1dG9cIjogY29sdW1uYXNbaV0uQXRyaWJ1dG8sIFwiVGRvY1wiOiB0ZG9jLCBcIk5kb2NcIjogbmRvYyB9O1xyXG4gICAgICAgICAgICAgICAgICAgIG9lc3RydWN0Q1NWLlBlcnNvbmFzLnB1c2gocGVyc29uYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZXN0cnVjdENTVjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVzdHJ1Y3R1cmEgZGVmYXVsdC5cclxuICAgICAqIEBwYXJhbSBvQXJyQ1NWIEFycmVnbG8gY29uIGluZm9ybWFjaW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBFc3RydWN0RGVmYXVsdChvQXJyQ1NWOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgdmFyIG9lc3RydWN0Q1NWOiBlc3RydWN0Q1NWID0geyBcImNhbnRpZGFkXCI6IG51bGwsIFwicHJlY2lvXCI6IG51bGwsIFwic2t1XCI6IG51bGwsIFwiUGF0aEltYWdlblwiOiBudWxsLCBcIkRpbmFtaWNhc1wiOiBbXSwgXCJQZXJzb25hc1wiOiBbXSwgXCJNM0RldFwiOiBbXSB9O1xyXG4gICAgICAgIC8vdmFyIG9BcnJDU1Y6IEFycmF5PHN0cmluZz4gPSBsaW5lLnNwbGl0KHRoaXMuc2VwYXJhZG9yKTtcclxuXHJcbiAgICAgICAgaWYgKG9BcnJDU1YubGVuZ3RoID49IDEpIHtcclxuICAgICAgICAgICAgb2VzdHJ1Y3RDU1Yuc2t1ID0gb0FyckNTVlswXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9BcnJDU1YubGVuZ3RoID49IDIpIHtcclxuICAgICAgICAgICAgb2VzdHJ1Y3RDU1YuY2FudGlkYWQgPSArb0FyckNTVlsxXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvQXJyQ1NWLmxlbmd0aCA+PSAzKSB7XHJcbiAgICAgICAgICAgIG9lc3RydWN0Q1NWLnByZWNpbyA9ICtvQXJyQ1NWWzJdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob0FyckNTVi5sZW5ndGggPj0gNCkge1xyXG4gICAgICAgICAgICBvZXN0cnVjdENTVi5QYXRoSW1hZ2VuID0gb0FyckNTVlszXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9lc3RydWN0Q1NWO1xyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGVzdHJ1Y3RDU1Yge1xyXG4gICAgc2t1OiBzdHJpbmc7XHJcbiAgICBjYW50aWRhZDogbnVtYmVyO1xyXG4gICAgcHJlY2lvOiBudW1iZXI7XHJcbiAgICBQYXRoSW1hZ2VuOiBzdHJpbmc7XHJcbiAgICBEaW5hbWljYXM6IEFycmF5PGFueT47XHJcbiAgICBQZXJzb25hczogQXJyYXk8YW55PjtcclxuICAgIE0zRGV0OiBBcnJheTxhbnk+O1xyXG59Il19
|
|
519
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTMtcmVnLW1hc2l2by5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vc2YtcmVnbGFuZWdvY2lvbTMvIiwic291cmNlcyI6WyJsaWIvcm5tMy9TZXJ2aWNlcy9tMy1yZWctbWFzaXZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdwRSxJQUFBO0lBVUkscUJBQVksVUFBa0IsRUFBRSxXQUF1QixFQUFFLFdBQWdCLEVBQUUsU0FBa0IsRUFDakY7UUFBQSxzQkFBaUIsR0FBakIsaUJBQWlCO3lCQVBELEdBQUc7MEJBQ1YsSUFBSSxVQUFVLEVBQUU7eUJBSVQsS0FBSztRQUc3QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztLQUM5Qjs7OztJQUVNLDBDQUFvQjs7OztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztJQUlwQixxQ0FBZTs7Ozs7Ozs7Y0FBQyxlQUErQixFQUFFLGFBQTRCLEVBQUUsUUFBYSxFQUFFLFNBQWMsRUFBRSxZQUFnQztRQUFoQyw2QkFBQSxFQUFBLG1CQUFnQzs7Ozs7O3dCQUN2SixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUUxQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTs0QkFDZCxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQzt5QkFDeEI7NkJBQ0k7NEJBQ0QsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO3lCQUN2Qzt3QkFDRyxNQUFNLEdBQWtCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBRVIscUJBQU0sSUFBSSxDQUFDLDJCQUEyQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBQTs7d0JBQXRJLE9BQU8sR0FBeUIsU0FBc0c7d0JBRTFJLHNCQUFPLE9BQU8sRUFBQzs7Ozs7Ozs7Ozs7Ozs7O0lBVU4saURBQTJCOzs7Ozs7Ozs7O2NBQUMsZUFBK0IsRUFBRSxhQUE0QixFQUFFLFFBQWEsRUFBRSxNQUFxQixFQUFFLFlBQWdDLEVBQUUsTUFBb0I7UUFBdEQsNkJBQUEsRUFBQSxtQkFBZ0M7UUFBRSx1QkFBQSxFQUFBLFlBQW9COzs7Ozs7O3dCQUU1TCxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQzt3QkFDdEIsS0FBSyxHQUFHLENBQUMsQ0FBQzt3QkFFVixpQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7d0JBQzNDLGFBQWEsR0FBRyxJQUFJLFlBQVksQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDbEYsU0FBUyxHQUFXLEVBQUUsQ0FBQzt3QkFDdkIsYUFBYSxHQUFHLEtBQUssQ0FBQzt3QkFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7d0JBRWQsU0FBUyxHQUF5QixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ25ELENBQUMsR0FBRyxDQUFDOzs7NkJBQUUsQ0FBQSxDQUFDLEdBQUcsS0FBSyxDQUFBO3dCQUNyQixhQUFhLEdBQUcsS0FBSyxDQUFDO3dCQUNsQixJQUFJLEdBQVcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDOzZCQUN6QixJQUFJLEVBQUosd0JBQUk7d0JBRUosV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7NkJBQ25DLElBQUksQ0FBQyxTQUFTLEVBQWQsd0JBQWM7d0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMzQyxxQkFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBTSxHQUFHOzs7Ozs0Q0FDNUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQzs0Q0FDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzs0Q0FFZix1QkFBdUIsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzs0Q0FDMUUscUJBQU0sdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUEsQ0FBQztvREFDMUYsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29EQUNqQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvREFDNUIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7aURBQzFCLENBQUMsRUFBQTs7NENBSkYsU0FJRSxDQUFDOzs7O2lDQUVOLEVBQUUsVUFBTSxLQUFLOzs7Ozs0Q0FDVixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDOzRDQUMxRSxJQUFJLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQzs7Ozs0Q0FFOUUscUJBQU0saUJBQWlCLENBQUMsOEJBQThCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFBOzs0Q0FBaEgsT0FBTyxHQUFHLFNBQXNHLENBQUM7Ozs7NENBRWpILE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsS0FBRyxDQUFDLENBQUM7NENBQzdELE1BQU0sR0FBVyxLQUFHLENBQUMsR0FBRyxDQUFDOzRDQUN6QixPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRDQUM3RCxTQUFTLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQzs0Q0FDM0IsYUFBYSxHQUFHLElBQUksQ0FBQzs7Ozs7aUNBRTVCLENBQUMsRUFBQTs7d0JBdkJGLFNBdUJFLENBQUM7Ozt3QkFHUCxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7NkJBQ3BELENBQUEsWUFBWSxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUEsRUFBeEMsd0JBQXdDO3dCQUM5QixxQkFBTSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxFQUFBOzt3QkFBdEosT0FBTyxHQUFHLFNBQTRJLENBQUM7OzRCQUc3SSxxQkFBTSxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUE7O3dCQUFsSSxPQUFPLEdBQUcsU0FBd0gsQ0FBQzs7O3dCQUkzSSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN2QixJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sRUFBRTs0QkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQzs0QkFDN0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQzt5QkFDdkY7NkJBQU07NEJBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQ2xFOzs7d0JBRUwsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQzt3QkFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7Ozt3QkF0RHRDLENBQUMsRUFBRSxDQUFBOzs7d0JBd0Q5QixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDL0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQzt3QkFDekIsc0JBQU8sU0FBUyxFQUFDOzs7Ozs7Ozs7O0lBSWQsdUNBQWlCOzs7OztjQUFDLE9BQXFCLEVBQUUsV0FBdUI7UUFDbkUsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUMxRCxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUNuRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBQSxpQkFBaUI7Z0JBQzdFLGlCQUFpQixDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO2FBQ2hELENBQUMsQ0FBQztTQUNOOzs7Ozs7Ozs7O0lBSUUsdUNBQWlCOzs7Ozs7OztjQUFDLE9BQXFCLEVBQUUsV0FBdUIsRUFBRSxhQUEyQixFQUFFLFFBQWEsRUFBRSxZQUFnQztRQUFoQyw2QkFBQSxFQUFBLG1CQUFnQzs7UUFDakosSUFBSSxZQUFZLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNyQyxZQUFZLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFDOUMsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFO1lBQ3hCLFlBQVksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztTQUNwRDtRQUNELFlBQVksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFHbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7O1lBRTVILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7U0FFL0M7YUFBTTtZQUNILGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUM3RztRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQzs7Ozs7OztJQU9oQyx1Q0FBaUI7Ozs7O2NBQUMsV0FBdUI7UUFDNUMsSUFBSTs7WUFDQSxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFBO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDdkMsSUFBSSxhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO29CQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLEtBQUssRUFBZ0IsQ0FBQztpQkFDN0Q7Z0JBQ0QsYUFBYSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUM3QyxhQUFhLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyRDtTQUNKO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUE7WUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUNsQjs7Ozs7OztJQU9FLCtDQUF5Qjs7Ozs7Y0FBQyxXQUF1QjtRQUNwRCxJQUFJOztZQUNBLElBQUksUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O2dCQUN0QyxJQUFJLGNBQWMsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxHQUFHLElBQUksS0FBSyxFQUFpQixDQUFDO2lCQUM5RDtnQkFDRCxjQUFjLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDdkMsY0FBYyxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDdEQ7U0FDSjtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1lBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7U0FDbEI7Ozs7Ozs7SUFPRSxzQ0FBZ0I7Ozs7O2NBQUMsV0FBdUI7UUFDM0MsSUFBSTs7WUFDQSxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFBO1lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOztnQkFDdEMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUU3QyxnQkFBZ0IsQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDdkQsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7O2FBRXhGO1NBQ0o7UUFBQyxPQUFPLEVBQUUsRUFBRTtZQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQ2xCOzs7Ozs7SUFLRSwrQkFBUzs7OztjQUFDLFNBQWM7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQzs7Ozs7O0lBTWxDLG1DQUFhOzs7O2NBQUMsSUFBWTtRQUM3QixJQUFJOztZQUNBLElBQUksV0FBVyxHQUFlLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDOztZQUNsSixJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFeEQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUM3QyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QztpQkFBTTtnQkFDSCxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM5QztZQUVELE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztTQUNmOzs7Ozs7O0lBT0Usb0NBQWM7Ozs7O2NBQUMsT0FBc0I7O1FBQ3hDLElBQUksUUFBUSxHQUFlLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDOztRQUNwRCxJQUFJLFdBQVcsR0FBZSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVsSixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxRQUFRLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVCLEtBQUssVUFBVTtvQkFDWCxXQUFXLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdEQsTUFBTTtnQkFDVixLQUFLLFFBQVE7b0JBQ1QsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BELE1BQU07Z0JBQ1YsS0FBSyxLQUFLO29CQUNOLFdBQVcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDaEQsTUFBTTtnQkFDVixLQUFLLFVBQVU7O29CQUNYLElBQUksR0FBRyxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdkYsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2hDLE1BQU07Z0JBQ1YsS0FBSyxPQUFPOztvQkFDUixJQUFJLEtBQUssR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3pGLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM5QixNQUFNO2dCQUNWLEtBQUssYUFBYTs7b0JBQ2QsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7b0JBQzFDLElBQUksSUFBSSxHQUFXLEdBQUcsQ0FBQzs7b0JBQ3ZCLElBQUksSUFBSSxDQUFTO29CQUVqQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTt3QkFDOUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzNCLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUM5Qjt5QkFBTTt3QkFDSCxJQUFJLEdBQUcsS0FBSyxDQUFDO3FCQUNoQjs7b0JBRUQsSUFBSSxPQUFPLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztvQkFDL0UsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1Y7b0JBQ0ksTUFBTTthQUNiO1NBQ0o7UUFDRCxPQUFPLFdBQVcsQ0FBQzs7Ozs7OztJQU9oQixvQ0FBYzs7Ozs7Y0FBQyxPQUFzQjs7UUFDeEMsSUFBSSxXQUFXLEdBQWUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7O1FBR2xKLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDckIsV0FBVyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3JCLFdBQVcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxXQUFXLENBQUM7O3NCQTFVM0I7SUE4VUMsQ0FBQTtBQWpVRCx1QkFpVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNM1BJdGVtc1dFQiwgTTNQRGV0YWxsZUl0ZW1zIH0gZnJvbSBcIi4uL1JlZ2lzdHJvL20zLXBkZXRhbGxlLWl0ZW1zXCI7XHJcbmltcG9ydCB7IFR5cGVNM1ByZEdycCB9IGZyb20gXCIuLi9NYWVzdHJvL00zUHJkR3JwLnR5cGVcIjtcclxuaW1wb3J0IHsgTTNSZWdTZXJ2aWNlIH0gZnJvbSBcIi4vbTMtcmVnLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTTNDb3VjaE1hZXN0cm8gfSBmcm9tIFwiLi4vRGF0YS9tMy1jb3VjaC1tYWVzdHJvXCI7XHJcbmltcG9ydCB7IFBvc3RTZXJ2aWNlTTMgfSBmcm9tIFwiLi4vLi4vQ29uZXhpb25TUUwvcG9zdHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTTNNYWVzdHJvIH0gZnJvbSBcIi4vTTNNYWVzdHJvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTTNQcm9jZXNvcyB9IGZyb20gXCIuLi9SZWdpc3Ryby9tMy1wcm9jZXNvc1wiO1xyXG5pbXBvcnQgeyBNM1BEaW5hbWljYXMgfSBmcm9tIFwiLi4vUmVnaXN0cm8vbTMtcGRpbmFtaWNhc1wiO1xyXG5pbXBvcnQgeyBNM1BlclhQcm9jZXNvIH0gZnJvbSBcIi4uL1JlZ2lzdHJvL20zLXBlci14LXByb2Nlc29cIjtcclxuaW1wb3J0IHsgTTNVYmljYWNpb24gfSBmcm9tIFwiLi4vTWFlc3Ryby9VYmljYWNpb24vTTNVYmljYWNpb24udHlwZVwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTG9hZExpc3RhUHJlY2lvIH0gZnJvbSBcIi4vbTMtbG9hZC1sLXByZWNpby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvdWNoUFJEU1NlcnZpY2UgfSBmcm9tIFwiLi4vT2ZmbGluZS9jb3VjaC1wcmRzLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNM1JlZ01hc2l2byB7XHJcblxyXG4gICAgcHJpdmF0ZSBnc0lkS2F0aW9zOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIHJlYWRlcjogRmlsZVJlYWRlcjtcclxuICAgIHByaXZhdGUgc2VwYXJhZG9yOiBzdHJpbmcgPSBcIixcIjtcclxuICAgIHByaXZhdGUgb00zUHJvY2VzbyA9IG5ldyBNM1Byb2Nlc29zKCk7XHJcbiAgICBwcml2YXRlIHByb2dyZXNzOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIENvbmZNYXNpdmE6IGFueTtcclxuICAgIHB1YmxpYyByb3VuZGVkX3Byb2dyZXNzOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgZ2JCYXJDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb25zdHJ1Y3Rvcihpc0lkS2F0aW9zOiBzdHJpbmcsIGlvTTNQcm9jZXNvOiBNM1Byb2Nlc29zLCBpQ29uZk1hc2l2YTogYW55LCBpYkJhcmNvZGU6IGJvb2xlYW4sXHJcbiAgICAgICAgcHJpdmF0ZSBvQ291Y2hQUkRTU2VydmljZTogQ291Y2hQUkRTU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMub00zUHJvY2VzbyA9IGlvTTNQcm9jZXNvO1xyXG4gICAgICAgIHRoaXMuZ3NJZEthdGlvcyA9IGlzSWRLYXRpb3M7XHJcbiAgICAgICAgdGhpcy5Db25mTWFzaXZhID0gaUNvbmZNYXNpdmE7XHJcbiAgICAgICAgdGhpcy5nYkJhckNvZGUgPSBpYkJhcmNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldF9yb3VuZGVkX3Byb2dyZXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJvdW5kZWRfcHJvZ3Jlc3M7XHJcbiAgICB9XHJcblxyXG4gICAgLy8vQWRpY2lvbmFyIHByb2R1Y3RvcyBlbiBtYXNpdm9cclxuICAgIHB1YmxpYyBhc3luYyBBZGljaW9uYXJNYXNpdm8ob00zQ291Y2hNYWVzdHJvOiBNM0NvdWNoTWFlc3RybywgUG9zdFNlcnZpY2VNMzogUG9zdFNlcnZpY2VNMywgb0RhdFVzZXI6IGFueSwgb0RhdGFQcm9jOiBhbnksIG9NM1ViaWNhY2lvbjogTTNVYmljYWNpb24gPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5HZXRSZWFkZXIob0RhdGFQcm9jKTtcclxuICAgICAgICBsZXQgY3N2OiBzdHJpbmc7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlYWRlcikge1xyXG4gICAgICAgICAgICBjc3YgPSBvRGF0YVByb2MuVGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNzdiA9IHRoaXMucmVhZGVyLnJlc3VsdC50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB2YXIgYXJyQ1NWOiBBcnJheTxzdHJpbmc+ID0gY3N2LnNwbGl0KFwiXFxuXCIpO1xyXG5cclxuICAgICAgICB2YXIgcHJvY2VzbzogW00zUHJvY2Vzb3MsIHN0cmluZ10gPSBhd2FpdCB0aGlzLmFkaWNpb25hcl9tYXNpdm9fZnJvbV9hcnJheShvTTNDb3VjaE1hZXN0cm8sIFBvc3RTZXJ2aWNlTTMsIG9EYXRVc2VyLCBhcnJDU1YsIG9NM1ViaWNhY2lvbik7XHJcblxyXG4gICAgICAgIHJldHVybiBwcm9jZXNvO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjb3JyZSB5IGFkaWNpb25hIGxvcyBwcm9kdWN0b3MgZW4gdW4gYXJyYXkgYSB1biBwcm9jZXNvXHJcbiAgICAgKiBAcGFyYW0gb00zQ291Y2hNYWVzdHJvIFxyXG4gICAgICogQHBhcmFtIFBvc3RTZXJ2aWNlTTMgXHJcbiAgICAgKiBAcGFyYW0gb0RhdFVzZXIgXHJcbiAgICAgKiBAcGFyYW0gYXJyQ1NWIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgYWRpY2lvbmFyX21hc2l2b19mcm9tX2FycmF5KG9NM0NvdWNoTWFlc3RybzogTTNDb3VjaE1hZXN0cm8sIFBvc3RTZXJ2aWNlTTM6IFBvc3RTZXJ2aWNlTTMsIG9EYXRVc2VyOiBhbnksIGFyckNTVjogQXJyYXk8c3RyaW5nPiwgb00zVWJpY2FjaW9uOiBNM1ViaWNhY2lvbiA9IG51bGwsIGFwbEV4Yzogc3RyaW5nID0gXCIwXCIpIHtcclxuXHJcbiAgICAgICAgbGV0IHRvdGFsID0gYXJyQ1NWLmxlbmd0aDtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIHZhciBwcm9kdWN0OiBUeXBlTTNQcmRHcnBcclxuICAgICAgICB2YXIgb1NlcnZpY2VNM01hZXN0cm8gPSBuZXcgU2VydmljZU0zTWFlc3RybygpO1xyXG4gICAgICAgIHZhciBvTTNSZWdTZXJ2aWNlID0gbmV3IE0zUmVnU2VydmljZShvTTNDb3VjaE1hZXN0cm8sIFBvc3RTZXJ2aWNlTTMsIHRoaXMuZ3NJZEthdGlvcyk7XHJcbiAgICAgICAgdmFyIHByZHNGYWlsczogc3RyaW5nID0gXCJcIjtcclxuICAgICAgICBsZXQgcHJkZmFpbGFjdHVhbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG4gICAgICAgIHZhciByZXN1bHQ6IGFueTtcclxuICAgICAgICBsZXQgYXJyYXlSZXNwOiBbTTNQcm9jZXNvcywgc3RyaW5nXSA9IFt0aGlzLm9NM1Byb2Nlc28sIFwiXCJdO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG90YWw7IGkrKykge1xyXG4gICAgICAgICAgICBwcmRmYWlsYWN0dWFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHZhciBsaW5lOiBzdHJpbmcgPSBhcnJDU1ZbaV07XHJcbiAgICAgICAgICAgIGlmIChsaW5lKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1Y7XHJcbiAgICAgICAgICAgICAgICBvZXN0cnVjdENTViA9IHRoaXMuU2V0RXN0cnVjdENTVihsaW5lKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdiQmFyQ29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoXCJmdWUgbG9jYWw6IFwiICsgb2VzdHJ1Y3RDU1Yuc2t1KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5vQ291Y2hQUkRTU2VydmljZS5nZXQob2VzdHJ1Y3RDU1Yuc2t1KS50aGVuKGFzeW5jIHByZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwib2J0dXZvIGxvY2FsXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhwcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvU2VydmljZUxvYWRMaXN0YVByZWNpbyA9IG5ldyBTZXJ2aWNlTG9hZExpc3RhUHJlY2lvKHRoaXMuZ3NJZEthdGlvcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBvU2VydmljZUxvYWRMaXN0YVByZWNpby5Bc2lnbmFyTGlzdGFQcmVjaW8ocHJkLkxpc3RDb2RzLCBvRGF0VXNlciwgUG9zdFNlcnZpY2VNMykudGhlbih4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKFwiYXNpZ25vIGxwIGxvY2FsXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcocHJkLkxpc3RDb2RzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ID0gcHJkLkxpc3RDb2RzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBhc3luYyBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3IgbHAgLSBpbnRlbnRvIHNlcnZlcjogXCIgKyBvZXN0cnVjdENTVi5za3UgKyBcIjogXCIgKyBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IHsgXCJpZF91YmljYWNpb25cIjogb0RhdFVzZXIuVXN1YXJpb1Npc3RlbWEuVUJJQ0FDSU9OLCBcIkNvZGlnb1wiOiBvZXN0cnVjdENTVi5za3UgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCA9IGF3YWl0IG9TZXJ2aWNlTTNNYWVzdHJvLkdldF9NM1Byb2R1Y3RvRXNwZWNCeUNvZGVBc3luYyhQb3N0U2VydmljZU0zLCB0aGlzLmdzSWRLYXRpb3MsIGRhdGEsIG9EYXRVc2VyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvciBjYXRjaCBscDogXCIgKyBvZXN0cnVjdENTVi5za3UgKyBcIjogXCIgKyBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnJNc2c6IHN0cmluZyA9IGVyci51cmw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHByZEZhaWwgPSBlcnJNc2cuc3Vic3RyaW5nKGVyck1zZy5pbmRleE9mKFwiQ29kaWdvXCIpICsgNyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJkc0ZhaWxzICs9IHByZEZhaWwgKyBcIixcIjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmRmYWlsYWN0dWFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKG9NM1ViaWNhY2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhvTTNVYmljYWNpb24gJiYgb00zVWJpY2FjaW9uLklEVWJpY2FjaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAob00zVWJpY2FjaW9uICYmIG9NM1ViaWNhY2lvbi5JRFViaWNhY2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ID0gYXdhaXQgb1NlcnZpY2VNM01hZXN0cm8uTTNHZXRQcm9kdWN0b0J5U0tVQXN5bmMoUG9zdFNlcnZpY2VNMywgdGhpcy5nc0lkS2F0aW9zLCBvZXN0cnVjdENTVi5za3UsIG9EYXRVc2VyLCBvTTNVYmljYWNpb24uSURVYmljYWNpb24sIGFwbEV4Yyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0ID0gYXdhaXQgb1NlcnZpY2VNM01hZXN0cm8uTTNHZXRQcm9kdWN0b0J5U0tVQXN5bmMoUG9zdFNlcnZpY2VNMywgdGhpcy5nc0lkS2F0aW9zLCBvZXN0cnVjdENTVi5za3UsIG9EYXRVc2VyLCBcIi0xXCIsIGFwbEV4Yyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXByZGZhaWxhY3R1YWwgJiYgcHJvZHVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJlY2lvU2lBUGxpY2EocHJvZHVjdCwgb2VzdHJ1Y3RDU1YpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQWRkUHJkVG9NM1Byb2Nlc28ocHJvZHVjdCwgb2VzdHJ1Y3RDU1YsIG9NM1JlZ1NlcnZpY2UsIG9EYXRVc2VyLCBvTTNVYmljYWNpb24pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiZXJyb3IgcHJvZHVjdCBubyBzZSBsbGVubzogXCIgKyBvZXN0cnVjdENTVi5za3UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBjb3VudCAqIDEwMCAvIHRvdGFsO1xyXG4gICAgICAgICAgICB0aGlzLnJvdW5kZWRfcHJvZ3Jlc3MgPSBNYXRoLnJvdW5kKHRoaXMucHJvZ3Jlc3MgKiAxMDApIC8gMTAwXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFycmF5UmVzcFswXSA9IHRoaXMub00zUHJvY2VzbztcclxuICAgICAgICBhcnJheVJlc3BbMV0gPSBwcmRzRmFpbHM7XHJcbiAgICAgICAgcmV0dXJuIGFycmF5UmVzcDtcclxuICAgIH1cclxuXHJcbiAgICAvL0NhbWJpYXIgcHJlY2lvIGRlIHByb2R1Y3RvLlxyXG4gICAgcHVibGljIHNldFByZWNpb1NpQVBsaWNhKHByb2R1Y3Q6IFR5cGVNM1ByZEdycCwgb2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1YpIHtcclxuICAgICAgICBpZiAob2VzdHJ1Y3RDU1YucHJlY2lvICE9PSBOYU4gJiYgb2VzdHJ1Y3RDU1YucHJlY2lvICE9IG51bGwpIHtcclxuICAgICAgICAgICAgcHJvZHVjdC5Mb00zUHJkR2VuZXJhbFswXS5Mb00zUHJkTGlzdGEuUFJFQ0lPID0gb2VzdHJ1Y3RDU1YucHJlY2lvO1xyXG4gICAgICAgICAgICBwcm9kdWN0LkxvTTNQcmRHZW5lcmFsWzBdLkxvTTNQcmRMaXN0YS5NM1ByZXNlbnRhY2lvbmVzLmZvckVhY2gob00zUHJlc2VudGFjaW9uZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgb00zUHJlc2VudGFjaW9uZXMuVkFMT1IgPSBvZXN0cnVjdENTVi5wcmVjaW87XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL0FkaWNpb25hciBhIG0zcHJvY2VzbywgcHJvZHVjdG8gZXNwZWNpZmljbywgc2UgZW52aWEgY2FudGlkYWQuXHJcbiAgICBwdWJsaWMgQWRkUHJkVG9NM1Byb2Nlc28ocHJvZHVjdDogVHlwZU0zUHJkR3JwLCBvZXN0cnVjdENTVjogZXN0cnVjdENTViwgb00zUmVnU2VydmljZTogTTNSZWdTZXJ2aWNlLCBvRGF0VXNlcjogYW55LCBvTTNVYmljYWNpb246IE0zVWJpY2FjaW9uID0gbnVsbCkge1xyXG4gICAgICAgIHZhciBvTTNQSXRlbXNXRUIgPSBuZXcgTTNQSXRlbXNXRUIoKTtcclxuICAgICAgICBvTTNQSXRlbXNXRUIuZENhbnRpZGFkID0gb2VzdHJ1Y3RDU1YuY2FudGlkYWQ7XHJcbiAgICAgICAgaWYgKG9lc3RydWN0Q1NWLlBhdGhJbWFnZW4pIHtcclxuICAgICAgICAgICAgb00zUEl0ZW1zV0VCLlBhdGhJbWFnZW4gPSBvZXN0cnVjdENTVi5QYXRoSW1hZ2VuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBvTTNQSXRlbXNXRUIgPSBvTTNSZWdTZXJ2aWNlLkxvYWRBZGljaW9uYWxlcyhvTTNQSXRlbXNXRUIsIHByb2R1Y3QpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5vTTNQcm9jZXNvLk0zRU5DLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIC8vL1ByaW1lcmEgdmV6IFxyXG4gICAgICAgICAgICAvLy9OTyBTRSBFU1RBIEVOVklBTkRPIElORk9STUFDSU9OIERFIFBST01PQ0lPTkVTXHJcbiAgICAgICAgICAgIHRoaXMub00zUHJvY2VzbyA9IG9NM1JlZ1NlcnZpY2UuTG9hZE0zUHJvY2Vzb0VtcHR5UERCKHByb2R1Y3QsIG9NM1BJdGVtc1dFQiwgb0RhdFVzZXIsIG9NM1ViaWNhY2lvbiwgbnVsbCwgdGhpcy5vTTNQcm9jZXNvKTtcclxuICAgICAgICAgICAgLy9BZ3JlZ2FyIGRpbmFtaWNhc1xyXG4gICAgICAgICAgICB0aGlzLkFkaWNpb25hckRpbmFtaWNhKG9lc3RydWN0Q1NWKTtcclxuICAgICAgICAgICAgdGhpcy5BZGljaW9uYXJQZXJzb25hc0FQcm9jZXNvKG9lc3RydWN0Q1NWKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgb00zUmVnU2VydmljZS5Mb2FkTTNQcm9jZXNvRnJvbURhdGEodGhpcy5vTTNQcm9jZXNvLCBwcm9kdWN0LCBvTTNQSXRlbXNXRUIsIG9NM1ViaWNhY2lvbiwgbnVsbCwgb0RhdFVzZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLkFkaWNpb25hckRldGFsbGUob2VzdHJ1Y3RDU1YpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRpY2lvbmFyIGNhcHR1cmFzIGRpbmFtaWNhc1xyXG4gICAgICogQHBhcmFtIG9lc3RydWN0Q1NWIEVzdHJ1Y3R1cmEgY29uIGluZm9ybWFjaW9uIGRlIGxpbmVhIGEgYWdyZWdhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgQWRpY2lvbmFyRGluYW1pY2Eob2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1YpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgZGluYW1pY2FzID0gb2VzdHJ1Y3RDU1YuRGluYW1pY2FzXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGluYW1pY2FzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb00zUERpbmFtaWNhcyA9IG5ldyBNM1BEaW5hbWljYXMoKTtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vTTNQcm9jZXNvLmxNM1BEaW5hbWljYXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9NM1Byb2Nlc28ubE0zUERpbmFtaWNhcyA9IG5ldyBBcnJheTxNM1BEaW5hbWljYXM+KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBvTTNQRGluYW1pY2FzLk5vbWJyZSA9IGRpbmFtaWNhc1tpXS5BdHJpYnV0bztcclxuICAgICAgICAgICAgICAgIG9NM1BEaW5hbWljYXMuVmFsb3IgPSBkaW5hbWljYXNbaV0uVmFsb3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9NM1Byb2Nlc28ubE0zUERpbmFtaWNhcy5wdXNoKG9NM1BEaW5hbWljYXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciBhZGljaW9uYXIgZGluYW1pY2FcIilcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRpY2lvbmFyIHBlcnNvbmFzIGEgcHJvY2Vzb1xyXG4gICAgICogQHBhcmFtIG9lc3RydWN0Q1NWIEVzdHJ1Y3R1cmEgY29uIGluZm9ybWFjaW9uIGEgYWdyZWdhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgQWRpY2lvbmFyUGVyc29uYXNBUHJvY2VzbyhvZXN0cnVjdENTVjogZXN0cnVjdENTVikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHZhciBwZXJzb25hcyA9IG9lc3RydWN0Q1NWLlBlcnNvbmFzO1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBlcnNvbmFzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb00zUGVyWFByb2Nlc28gPSBuZXcgTTNQZXJYUHJvY2VzbygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm9NM1Byb2Nlc28uTTNQZXJYUHJvY2Vzbykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub00zUHJvY2Vzby5NM1BlclhQcm9jZXNvID0gbmV3IEFycmF5PE0zUGVyWFByb2Nlc28+KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBvTTNQZXJYUHJvY2Vzby5UZG9jID0gcGVyc29uYXNbaV0uVGRvYztcclxuICAgICAgICAgICAgICAgIG9NM1BlclhQcm9jZXNvLk5kb2MgPSBwZXJzb25hc1tpXS5OZG9jO1xyXG4gICAgICAgICAgICAgICAgb00zUGVyWFByb2Nlc28uVGlwb1BlcnNvbmEgPSBwZXJzb25hc1tpXS5BdHJpYnV0bztcclxuICAgICAgICAgICAgICAgIHRoaXMub00zUHJvY2Vzby5NM1BlclhQcm9jZXNvLnB1c2gob00zUGVyWFByb2Nlc28pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciBhZGljaW9uYXIgcGVyc29uYXNcIilcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXgpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRpY2lvbmFyIGRldGFsbGUgYWwgdWx0aW1vIGVuY2FiZXphZG8gYWdyZWdhZG8uXHJcbiAgICAgKiBAcGFyYW0gb2VzdHJ1Y3RDU1YgRXN0cnVjdHVyYSBjb24gaW5mb3JtYWNpb24gZGUgbGluZWEgYSBhZ3JlZ2FyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBBZGljaW9uYXJEZXRhbGxlKG9lc3RydWN0Q1NWOiBlc3RydWN0Q1NWKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdmFyIGRldGFsbGVzID0gb2VzdHJ1Y3RDU1YuTTNEZXRcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXRhbGxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgdmFyIG9NM1BEZXRhbGxlSXRlbXMgPSBuZXcgTTNQRGV0YWxsZUl0ZW1zKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgb00zUERldGFsbGVJdGVtcy5Ob21icmVDb25jZXB0byA9IGRldGFsbGVzW2ldLkF0cmlidXRvO1xyXG4gICAgICAgICAgICAgICAgb00zUERldGFsbGVJdGVtcy5WYWxvciA9IGRldGFsbGVzW2ldLlZhbG9yO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vTTNQcm9jZXNvLk0zRU5DW3RoaXMub00zUHJvY2Vzby5NM0VOQy5sZW5ndGggLSAxXS5NM0RFVC5wdXNoKG9NM1BEZXRhbGxlSXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgLy90aGlzLm9NM1Byb2Nlc28uTTNFTkMuZmluZCh4ID0+IHguSWRQcm9kdWN0byA9PSBvZXN0cnVjdENTVi4pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIGFkaWNpb25hciBkZXRhbGxlXCIpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGV4KVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8vT2J0ZW5lciB5IHNldGVhciBsYSBpbmZvcm1hY2lvbiBkZSBhcmNoaXZvIENTViB5IHNlcGFyYWRvci5cclxuICAgIHB1YmxpYyBHZXRSZWFkZXIob0RhdGFQcm9jOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnJlYWRlciA9IG9EYXRhUHJvYy5DU1Y7XHJcbiAgICAgICAgdGhpcy5zZXBhcmFkb3IgPSBvRGF0YVByb2MuU2VwYXJhZG9yO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8vU2V0ZWFyIGVzdHJ1Y3V0YXIgZGUgQ1NWXHJcbiAgICBwdWJsaWMgU2V0RXN0cnVjdENTVihsaW5lOiBzdHJpbmcpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB2YXIgb2VzdHJ1Y3RDU1Y6IGVzdHJ1Y3RDU1YgPSB7IFwiY2FudGlkYWRcIjogbnVsbCwgXCJwcmVjaW9cIjogbnVsbCwgXCJza3VcIjogbnVsbCwgXCJQYXRoSW1hZ2VuXCI6IG51bGwsIFwiRGluYW1pY2FzXCI6IFtdLCBcIlBlcnNvbmFzXCI6IFtdLCBcIk0zRGV0XCI6IFtdIH07XHJcbiAgICAgICAgICAgIHZhciBvQXJyQ1NWOiBBcnJheTxzdHJpbmc+ID0gbGluZS5zcGxpdCh0aGlzLnNlcGFyYWRvcik7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5Db25mTWFzaXZhICYmIHRoaXMuQ29uZk1hc2l2YS5Db2x1bW5hcykge1xyXG4gICAgICAgICAgICAgICAgb2VzdHJ1Y3RDU1YgPSB0aGlzLkVzdHJ1Y3REeW5hbWljKG9BcnJDU1YpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgb2VzdHJ1Y3RDU1YgPSB0aGlzLkVzdHJ1Y3REZWZhdWx0KG9BcnJDU1YpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gb2VzdHJ1Y3RDU1Y7XHJcbiAgICAgICAgfSBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciBjcmVhbmRvIGVzdHJ1Y3R1cmEuIFJldmlzYXIgbGluZWFzXCIpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhleCk7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVzdHJ1Y3R1cmEgZGluYW1pY2EgZGUgY2FyZ3VlIG1hc2l2YVxyXG4gICAgICogQHBhcmFtIG9BcnJDU1YgYXJyZWdsbyBjb24gaW5mb3JtYWNpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBFc3RydWN0RHluYW1pYyhvQXJyQ1NWOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgdmFyIGNvbHVtbmFzOiBBcnJheTxhbnk+ID0gdGhpcy5Db25mTWFzaXZhLkNvbHVtbmFzO1xyXG4gICAgICAgIHZhciBvZXN0cnVjdENTVjogZXN0cnVjdENTViA9IHsgXCJjYW50aWRhZFwiOiBudWxsLCBcInByZWNpb1wiOiBudWxsLCBcInNrdVwiOiBudWxsLCBcIlBhdGhJbWFnZW5cIjogbnVsbCwgXCJEaW5hbWljYXNcIjogW10sIFwiUGVyc29uYXNcIjogW10sIFwiTTNEZXRcIjogW10gfTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5hcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbmFzW2ldLkVzdHJ1Y3R1cmEpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJDYW50aWRhZFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIG9lc3RydWN0Q1NWLmNhbnRpZGFkID0gK29BcnJDU1ZbY29sdW1uYXNbaV0uUG9zaWNpb25dO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIlByZWNpb1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIG9lc3RydWN0Q1NWLnByZWNpbyA9ICtvQXJyQ1NWW2NvbHVtbmFzW2ldLlBvc2ljaW9uXTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJTS1VcIjpcclxuICAgICAgICAgICAgICAgICAgICBvZXN0cnVjdENTVi5za3UgPSBvQXJyQ1NWW2NvbHVtbmFzW2ldLlBvc2ljaW9uXTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJESU5BTUlDQVwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBkaW4gPSB7IFwiQXRyaWJ1dG9cIjogY29sdW1uYXNbaV0uQXRyaWJ1dG8sIFwiVmFsb3JcIjogb0FyckNTVltjb2x1bW5hc1tpXS5Qb3NpY2lvbl0gfTtcclxuICAgICAgICAgICAgICAgICAgICBvZXN0cnVjdENTVi5EaW5hbWljYXMucHVzaChkaW4pO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcIk0zREVUXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG0zRGV0ID0geyBcIkF0cmlidXRvXCI6IGNvbHVtbmFzW2ldLkF0cmlidXRvLCBcIlZhbG9yXCI6IG9BcnJDU1ZbY29sdW1uYXNbaV0uUG9zaWNpb25dIH07XHJcbiAgICAgICAgICAgICAgICAgICAgb2VzdHJ1Y3RDU1YuTTNEZXQucHVzaChtM0RldCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwiVElQT1BFUlNPTkFcIjpcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsb3IgPSBvQXJyQ1NWW2NvbHVtbmFzW2ldLlBvc2ljaW9uXTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgdGRvYzogc3RyaW5nID0gXCI1XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5kb2M6IHN0cmluZztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbG9yLnNwbGl0KFwiLVwiKS5sZW5ndGggPj0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZG9jID0gdmFsb3Iuc3BsaXQoXCItXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZG9jID0gdmFsb3Iuc3BsaXQoXCItXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5kb2MgPSB2YWxvcjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHZhciBwZXJzb25hID0geyBcIkF0cmlidXRvXCI6IGNvbHVtbmFzW2ldLkF0cmlidXRvLCBcIlRkb2NcIjogdGRvYywgXCJOZG9jXCI6IG5kb2MgfTtcclxuICAgICAgICAgICAgICAgICAgICBvZXN0cnVjdENTVi5QZXJzb25hcy5wdXNoKHBlcnNvbmEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2VzdHJ1Y3RDU1Y7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFc3RydWN0dXJhIGRlZmF1bHQuXHJcbiAgICAgKiBAcGFyYW0gb0FyckNTViBBcnJlZ2xvIGNvbiBpbmZvcm1hY2lvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgRXN0cnVjdERlZmF1bHQob0FyckNTVjogQXJyYXk8c3RyaW5nPikge1xyXG4gICAgICAgIHZhciBvZXN0cnVjdENTVjogZXN0cnVjdENTViA9IHsgXCJjYW50aWRhZFwiOiBudWxsLCBcInByZWNpb1wiOiBudWxsLCBcInNrdVwiOiBudWxsLCBcIlBhdGhJbWFnZW5cIjogbnVsbCwgXCJEaW5hbWljYXNcIjogW10sIFwiUGVyc29uYXNcIjogW10sIFwiTTNEZXRcIjogW10gfTtcclxuICAgICAgICAvL3ZhciBvQXJyQ1NWOiBBcnJheTxzdHJpbmc+ID0gbGluZS5zcGxpdCh0aGlzLnNlcGFyYWRvcik7XHJcblxyXG4gICAgICAgIGlmIChvQXJyQ1NWLmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgICAgICAgIG9lc3RydWN0Q1NWLnNrdSA9IG9BcnJDU1ZbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvQXJyQ1NWLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgICAgICAgIG9lc3RydWN0Q1NWLmNhbnRpZGFkID0gK29BcnJDU1ZbMV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob0FyckNTVi5sZW5ndGggPj0gMykge1xyXG4gICAgICAgICAgICBvZXN0cnVjdENTVi5wcmVjaW8gPSArb0FyckNTVlsyXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9BcnJDU1YubGVuZ3RoID49IDQpIHtcclxuICAgICAgICAgICAgb2VzdHJ1Y3RDU1YuUGF0aEltYWdlbiA9IG9BcnJDU1ZbM107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZXN0cnVjdENTVjtcclxuICAgIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBlc3RydWN0Q1NWIHtcclxuICAgIHNrdTogc3RyaW5nO1xyXG4gICAgY2FudGlkYWQ6IG51bWJlcjtcclxuICAgIHByZWNpbzogbnVtYmVyO1xyXG4gICAgUGF0aEltYWdlbjogc3RyaW5nO1xyXG4gICAgRGluYW1pY2FzOiBBcnJheTxhbnk+O1xyXG4gICAgUGVyc29uYXM6IEFycmF5PGFueT47XHJcbiAgICBNM0RldDogQXJyYXk8YW55PjtcclxufSJdfQ==
|