@tricoteuses/assemblee 1.10.5 → 2.0.0
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/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +340 -0
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +32 -94
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -74
- package/lib/cleaners/xml.mjs +0 -59
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1215
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -613
- package/lib/scripts/clean_reorganized_data.mjs +0 -276
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -965
- package/lib/types/acteurs_et_organes.mjs +0 -906
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
package/lib/cleaners/scrutins.js
DELETED
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
6
|
-
require("core-js/modules/es.array.from.js");
|
|
7
|
-
require("core-js/modules/es.array.iterator.js");
|
|
8
|
-
require("core-js/modules/es.array.slice.js");
|
|
9
|
-
require("core-js/modules/es.date.to-string.js");
|
|
10
|
-
require("core-js/modules/es.function.name.js");
|
|
11
|
-
require("core-js/modules/es.object.define-property.js");
|
|
12
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
13
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
14
|
-
require("core-js/modules/es.string.iterator.js");
|
|
15
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
16
|
-
Object.defineProperty(exports, "__esModule", {
|
|
17
|
-
value: true
|
|
18
|
-
});
|
|
19
|
-
exports.cleanScrutin = cleanScrutin;
|
|
20
|
-
require("core-js/modules/es.array.filter.js");
|
|
21
|
-
require("core-js/modules/es.array.is-array.js");
|
|
22
|
-
require("core-js/modules/es.object.to-string.js");
|
|
23
|
-
require("core-js/modules/es.object.values.js");
|
|
24
|
-
var _assert = _interopRequireDefault(require("assert"));
|
|
25
|
-
var _xml = require("./xml");
|
|
26
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
27
|
-
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
28
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
29
|
-
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
30
|
-
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
31
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
32
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
33
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
34
|
-
function cleanDecompteNominatif(decompteNominatif) {
|
|
35
|
-
(0, _xml.cleanXmlArtefacts)(decompteNominatif);
|
|
36
|
-
var nonVotants = decompteNominatif.nonVotants;
|
|
37
|
-
if (nonVotants === undefined) {
|
|
38
|
-
nonVotants = decompteNominatif.nonVotant;
|
|
39
|
-
delete decompteNominatif.nonVotant;
|
|
40
|
-
} else {
|
|
41
|
-
_assert["default"].strictEqual(decompteNominatif.nonVotant, undefined);
|
|
42
|
-
}
|
|
43
|
-
if (nonVotants !== undefined) {
|
|
44
|
-
if (typeof nonVotants === "string") {
|
|
45
|
-
_assert["default"].strictEqual(nonVotants, "0");
|
|
46
|
-
nonVotants = [];
|
|
47
|
-
} else if (!Array.isArray(nonVotants)) {
|
|
48
|
-
(0, _assert["default"])(nonVotants);
|
|
49
|
-
nonVotants = [nonVotants];
|
|
50
|
-
}
|
|
51
|
-
var nonVotantsArray = nonVotants;
|
|
52
|
-
nonVotants = [];
|
|
53
|
-
var _iterator = _createForOfIteratorHelper(nonVotantsArray),
|
|
54
|
-
_step;
|
|
55
|
-
try {
|
|
56
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
57
|
-
var nonVotant = _step.value;
|
|
58
|
-
if (nonVotant === null) {
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
nonVotant = nonVotant.votant;
|
|
62
|
-
if (Array.isArray(nonVotant)) {
|
|
63
|
-
var _nonVotants;
|
|
64
|
-
(_nonVotants = nonVotants).push.apply(_nonVotants, _toConsumableArray(nonVotant));
|
|
65
|
-
} else {
|
|
66
|
-
(0, _assert["default"])(nonVotant);
|
|
67
|
-
nonVotants.push(nonVotant);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
} catch (err) {
|
|
71
|
-
_iterator.e(err);
|
|
72
|
-
} finally {
|
|
73
|
-
_iterator.f();
|
|
74
|
-
}
|
|
75
|
-
if (nonVotants.length === 0) {
|
|
76
|
-
delete decompteNominatif.nonVotants;
|
|
77
|
-
} else {
|
|
78
|
-
decompteNominatif.nonVotants = nonVotants;
|
|
79
|
-
var _iterator2 = _createForOfIteratorHelper(nonVotants),
|
|
80
|
-
_step2;
|
|
81
|
-
try {
|
|
82
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
83
|
-
var votant = _step2.value;
|
|
84
|
-
cleanVotant(votant);
|
|
85
|
-
}
|
|
86
|
-
} catch (err) {
|
|
87
|
-
_iterator2.e(err);
|
|
88
|
-
} finally {
|
|
89
|
-
_iterator2.f();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
var pour = decompteNominatif.pour;
|
|
94
|
-
if (pour === undefined) {
|
|
95
|
-
pour = decompteNominatif.pours;
|
|
96
|
-
delete decompteNominatif.pours;
|
|
97
|
-
} else {
|
|
98
|
-
_assert["default"].strictEqual(decompteNominatif.pours, undefined);
|
|
99
|
-
}
|
|
100
|
-
if (pour !== undefined) {
|
|
101
|
-
pour = pour.votant;
|
|
102
|
-
if (!Array.isArray(pour)) {
|
|
103
|
-
(0, _assert["default"])(pour);
|
|
104
|
-
pour = [pour];
|
|
105
|
-
}
|
|
106
|
-
if (pour.length === 0) {
|
|
107
|
-
delete decompteNominatif.pour;
|
|
108
|
-
} else {
|
|
109
|
-
decompteNominatif.pour = pour;
|
|
110
|
-
var _iterator3 = _createForOfIteratorHelper(pour),
|
|
111
|
-
_step3;
|
|
112
|
-
try {
|
|
113
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
114
|
-
var _votant = _step3.value;
|
|
115
|
-
cleanVotant(_votant);
|
|
116
|
-
}
|
|
117
|
-
} catch (err) {
|
|
118
|
-
_iterator3.e(err);
|
|
119
|
-
} finally {
|
|
120
|
-
_iterator3.f();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
var contre = decompteNominatif.contre;
|
|
125
|
-
if (contre === undefined) {
|
|
126
|
-
contre = decompteNominatif.contres;
|
|
127
|
-
delete decompteNominatif.contres;
|
|
128
|
-
} else {
|
|
129
|
-
_assert["default"].strictEqual(decompteNominatif.contres, undefined);
|
|
130
|
-
}
|
|
131
|
-
if (contre !== undefined) {
|
|
132
|
-
contre = contre.votant;
|
|
133
|
-
if (!Array.isArray(contre)) {
|
|
134
|
-
(0, _assert["default"])(contre);
|
|
135
|
-
contre = [contre];
|
|
136
|
-
}
|
|
137
|
-
if (contre.length === 0) {
|
|
138
|
-
delete decompteNominatif.contre;
|
|
139
|
-
} else {
|
|
140
|
-
decompteNominatif.contre = contre;
|
|
141
|
-
var _iterator4 = _createForOfIteratorHelper(contre),
|
|
142
|
-
_step4;
|
|
143
|
-
try {
|
|
144
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
145
|
-
var _votant2 = _step4.value;
|
|
146
|
-
cleanVotant(_votant2);
|
|
147
|
-
}
|
|
148
|
-
} catch (err) {
|
|
149
|
-
_iterator4.e(err);
|
|
150
|
-
} finally {
|
|
151
|
-
_iterator4.f();
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
var abstentions = decompteNominatif.abstentions;
|
|
156
|
-
if (abstentions === undefined) {
|
|
157
|
-
abstentions = decompteNominatif.abstention;
|
|
158
|
-
delete decompteNominatif.abstention;
|
|
159
|
-
} else {
|
|
160
|
-
_assert["default"].strictEqual(decompteNominatif.abstention, undefined);
|
|
161
|
-
}
|
|
162
|
-
if (abstentions !== undefined) {
|
|
163
|
-
if (!Array.isArray(abstentions)) {
|
|
164
|
-
(0, _assert["default"])(abstentions);
|
|
165
|
-
abstentions = [abstentions];
|
|
166
|
-
}
|
|
167
|
-
var abstentionsArray = abstentions;
|
|
168
|
-
abstentions = [];
|
|
169
|
-
var _iterator5 = _createForOfIteratorHelper(abstentionsArray),
|
|
170
|
-
_step5;
|
|
171
|
-
try {
|
|
172
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
173
|
-
var absentionsItem = _step5.value;
|
|
174
|
-
if (absentionsItem === null) {
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
absentionsItem = absentionsItem.votant;
|
|
178
|
-
if (Array.isArray(absentionsItem)) {
|
|
179
|
-
var _abstentions;
|
|
180
|
-
(_abstentions = abstentions).push.apply(_abstentions, _toConsumableArray(absentionsItem));
|
|
181
|
-
} else {
|
|
182
|
-
(0, _assert["default"])(absentionsItem);
|
|
183
|
-
abstentions.push(absentionsItem);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
} catch (err) {
|
|
187
|
-
_iterator5.e(err);
|
|
188
|
-
} finally {
|
|
189
|
-
_iterator5.f();
|
|
190
|
-
}
|
|
191
|
-
if (abstentions.length === 0) {
|
|
192
|
-
delete decompteNominatif.abstentions;
|
|
193
|
-
} else {
|
|
194
|
-
decompteNominatif.abstentions = abstentions;
|
|
195
|
-
var _iterator6 = _createForOfIteratorHelper(abstentions),
|
|
196
|
-
_step6;
|
|
197
|
-
try {
|
|
198
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
199
|
-
var _votant3 = _step6.value;
|
|
200
|
-
cleanVotant(_votant3);
|
|
201
|
-
}
|
|
202
|
-
} catch (err) {
|
|
203
|
-
_iterator6.e(err);
|
|
204
|
-
} finally {
|
|
205
|
-
_iterator6.f();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
var nonVotantsVolontaires = decompteNominatif.nonVotantsVolontaires;
|
|
210
|
-
if (nonVotantsVolontaires !== undefined) {
|
|
211
|
-
if (!Array.isArray(nonVotantsVolontaires)) {
|
|
212
|
-
nonVotantsVolontaires = [nonVotantsVolontaires];
|
|
213
|
-
}
|
|
214
|
-
var nonVotantsVolontairesArray = nonVotantsVolontaires;
|
|
215
|
-
nonVotantsVolontaires = [];
|
|
216
|
-
var _iterator7 = _createForOfIteratorHelper(nonVotantsVolontairesArray),
|
|
217
|
-
_step7;
|
|
218
|
-
try {
|
|
219
|
-
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
220
|
-
var _absentionsItem = _step7.value;
|
|
221
|
-
if (_absentionsItem === null) {
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
_absentionsItem = _absentionsItem.votant;
|
|
225
|
-
if (Array.isArray(_absentionsItem)) {
|
|
226
|
-
var _nonVotantsVolontaire;
|
|
227
|
-
(_nonVotantsVolontaire = nonVotantsVolontaires).push.apply(_nonVotantsVolontaire, _toConsumableArray(_absentionsItem));
|
|
228
|
-
} else {
|
|
229
|
-
(0, _assert["default"])(_absentionsItem);
|
|
230
|
-
nonVotantsVolontaires.push(_absentionsItem);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
} catch (err) {
|
|
234
|
-
_iterator7.e(err);
|
|
235
|
-
} finally {
|
|
236
|
-
_iterator7.f();
|
|
237
|
-
}
|
|
238
|
-
if (nonVotantsVolontaires.length === 0) {
|
|
239
|
-
delete decompteNominatif.nonVotantsVolontaires;
|
|
240
|
-
} else {
|
|
241
|
-
decompteNominatif.nonVotantsVolontaires = nonVotantsVolontaires;
|
|
242
|
-
var _iterator8 = _createForOfIteratorHelper(nonVotantsVolontaires),
|
|
243
|
-
_step8;
|
|
244
|
-
try {
|
|
245
|
-
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
|
|
246
|
-
var _votant4 = _step8.value;
|
|
247
|
-
cleanVotant(_votant4);
|
|
248
|
-
}
|
|
249
|
-
} catch (err) {
|
|
250
|
-
_iterator8.e(err);
|
|
251
|
-
} finally {
|
|
252
|
-
_iterator8.f();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
function cleanScrutin(scrutin) {
|
|
258
|
-
(0, _xml.cleanXmlArtefacts)(scrutin);
|
|
259
|
-
var demandeur = scrutin.demandeur;
|
|
260
|
-
(0, _assert["default"])(demandeur);
|
|
261
|
-
{
|
|
262
|
-
(0, _xml.cleanXmlArtefacts)(demandeur);
|
|
263
|
-
_assert["default"].strictEqual(demandeur.referenceLegislative, undefined);
|
|
264
|
-
}
|
|
265
|
-
var objet = scrutin.objet;
|
|
266
|
-
(0, _assert["default"])(objet);
|
|
267
|
-
{
|
|
268
|
-
(0, _xml.cleanXmlArtefacts)(objet);
|
|
269
|
-
_assert["default"].strictEqual(objet.referenceLegislative, undefined);
|
|
270
|
-
}
|
|
271
|
-
var ventilationVotes = scrutin.ventilationVotes;
|
|
272
|
-
(0, _assert["default"])(ventilationVotes);
|
|
273
|
-
{
|
|
274
|
-
ventilationVotes = ventilationVotes.organe;
|
|
275
|
-
(0, _assert["default"])(ventilationVotes);
|
|
276
|
-
var groupes = ventilationVotes.groupes;
|
|
277
|
-
(0, _assert["default"])(groupes);
|
|
278
|
-
{
|
|
279
|
-
groupes = groupes.groupe;
|
|
280
|
-
(0, _assert["default"])(Array.isArray(groupes));
|
|
281
|
-
var _iterator9 = _createForOfIteratorHelper(groupes),
|
|
282
|
-
_step9;
|
|
283
|
-
try {
|
|
284
|
-
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
|
|
285
|
-
var groupe = _step9.value;
|
|
286
|
-
var vote = groupe.vote;
|
|
287
|
-
(0, _assert["default"])(vote);
|
|
288
|
-
{
|
|
289
|
-
var decompteVoix = vote.decompteVoix;
|
|
290
|
-
(0, _assert["default"])(decompteVoix);
|
|
291
|
-
{
|
|
292
|
-
if (decompteVoix.abstention !== undefined) {
|
|
293
|
-
_assert["default"].strictEqual(decompteVoix.abstentions, undefined);
|
|
294
|
-
decompteVoix.abstentions = decompteVoix.abstention;
|
|
295
|
-
delete decompteVoix.abstention;
|
|
296
|
-
}
|
|
297
|
-
if (decompteVoix.nonVotant !== undefined) {
|
|
298
|
-
_assert["default"].strictEqual(decompteVoix.nonVotants, undefined);
|
|
299
|
-
decompteVoix.nonVotants = decompteVoix.nonVotant;
|
|
300
|
-
delete decompteVoix.nonVotant;
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
var decompteNominatif = vote.decompteNominatif;
|
|
304
|
-
(0, _assert["default"])(decompteNominatif);
|
|
305
|
-
cleanDecompteNominatif(decompteNominatif);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
} catch (err) {
|
|
309
|
-
_iterator9.e(err);
|
|
310
|
-
} finally {
|
|
311
|
-
_iterator9.f();
|
|
312
|
-
}
|
|
313
|
-
ventilationVotes.groupes = groupes;
|
|
314
|
-
}
|
|
315
|
-
scrutin.ventilationVotes = ventilationVotes;
|
|
316
|
-
}
|
|
317
|
-
var miseAuPoint = scrutin.miseAuPoint;
|
|
318
|
-
if (miseAuPoint !== undefined) {
|
|
319
|
-
cleanDecompteNominatif(miseAuPoint);
|
|
320
|
-
var dysfonctionnement = miseAuPoint.dysfonctionnement;
|
|
321
|
-
if (dysfonctionnement !== undefined) {
|
|
322
|
-
cleanDecompteNominatif(dysfonctionnement);
|
|
323
|
-
if (Object.values(dysfonctionnement).filter(function (value) {
|
|
324
|
-
return value !== undefined;
|
|
325
|
-
}).length === 0) {
|
|
326
|
-
delete miseAuPoint.dysfonctionnement;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
if (Object.values(miseAuPoint).filter(function (value) {
|
|
330
|
-
return value !== undefined;
|
|
331
|
-
}).length === 0) {
|
|
332
|
-
delete scrutin.miseAuPoint;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
function cleanVotant(votant) {
|
|
337
|
-
(0, _xml.cleanBooleanAttribute)(votant, "parDelegation");
|
|
338
|
-
(0, _xml.cleanIntegerAttribute)(votant, "numPlace");
|
|
339
|
-
}
|
|
340
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sIiwiZSIsIl9fZXNNb2R1bGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJ0IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsImNsZWFuWG1sQXJ0ZWZhY3RzIiwibm9uVm90YW50cyIsInVuZGVmaW5lZCIsIm5vblZvdGFudCIsImFzc2VydCIsInN0cmljdEVxdWFsIiwibm9uVm90YW50c0FycmF5IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ2b3RhbnQiLCJfbm9uVm90YW50cyIsInB1c2giLCJhcHBseSIsImVyciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJjb250cmUiLCJjb250cmVzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImFic3RlbnRpb25zIiwiYWJzdGVudGlvbiIsImFic3RlbnRpb25zQXJyYXkiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiYWJzZW50aW9uc0l0ZW0iLCJfYWJzdGVudGlvbnMiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2Iiwibm9uVm90YW50c1ZvbG9udGFpcmVzIiwibm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkiLCJfaXRlcmF0b3I3IiwiX3N0ZXA3IiwiX25vblZvdGFudHNWb2xvbnRhaXJlIiwiX2l0ZXJhdG9yOCIsIl9zdGVwOCIsImNsZWFuU2NydXRpbiIsInNjcnV0aW4iLCJkZW1hbmRldXIiLCJyZWZlcmVuY2VMZWdpc2xhdGl2ZSIsIm9iamV0IiwidmVudGlsYXRpb25Wb3RlcyIsIm9yZ2FuZSIsImdyb3VwZXMiLCJncm91cGUiLCJfaXRlcmF0b3I5IiwiX3N0ZXA5Iiwidm90ZSIsImRlY29tcHRlVm9peCIsIm1pc2VBdVBvaW50IiwiZHlzZm9uY3Rpb25uZW1lbnQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhbkludGVnZXJBdHRyaWJ1dGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMvc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHtcbiAgY2xlYW5Cb29sZWFuQXR0cmlidXRlLFxuICBjbGVhbkludGVnZXJBdHRyaWJ1dGUsXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzLFxufSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50XG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnQsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAobm9uVm90YW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBub25Wb3RhbnRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9uVm90YW50cywgXCIwXCIpXG4gICAgICBub25Wb3RhbnRzID0gW11cbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHMpKSB7XG4gICAgICBhc3NlcnQobm9uVm90YW50cylcbiAgICAgIG5vblZvdGFudHMgPSBbbm9uVm90YW50c11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c0FycmF5ID0gbm9uVm90YW50c1xuICAgIG5vblZvdGFudHMgPSBbXVxuICAgIGZvciAobGV0IG5vblZvdGFudCBvZiBub25Wb3RhbnRzQXJyYXkpIHtcbiAgICAgIGlmIChub25Wb3RhbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG5vblZvdGFudCA9IG5vblZvdGFudC52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vblZvdGFudCkpIHtcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKC4uLm5vblZvdGFudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChub25Wb3RhbnQpXG4gICAgICAgIG5vblZvdGFudHMucHVzaChub25Wb3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50cyA9IG5vblZvdGFudHNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91clxuICBpZiAocG91ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLnBvdXJzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKHBvdXIgIT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBwb3VyLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShwb3VyKSkge1xuICAgICAgYXNzZXJ0KHBvdXIpXG4gICAgICBwb3VyID0gW3BvdXJdXG4gICAgfVxuICAgIGlmIChwb3VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYucG91ciA9IHBvdXJcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIHBvdXIpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgaWYgKGNvbnRyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IGFic3RlbnRpb25zID0gZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgaWYgKGFic3RlbnRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvblxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGFic3RlbnRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWJzdGVudGlvbnMpKSB7XG4gICAgICBhc3NlcnQoYWJzdGVudGlvbnMpXG4gICAgICBhYnN0ZW50aW9ucyA9IFthYnN0ZW50aW9uc11cbiAgICB9XG4gICAgY29uc3QgYWJzdGVudGlvbnNBcnJheSA9IGFic3RlbnRpb25zXG4gICAgYWJzdGVudGlvbnMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIGFic3RlbnRpb25zQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWJzdGVudGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnMgPSBhYnN0ZW50aW9uc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgYWJzdGVudGlvbnMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHNWb2xvbnRhaXJlcykpIHtcbiAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtub25Wb3RhbnRzVm9sb250YWlyZXNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5ID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzVm9sb250YWlyZXMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TY3J1dGluKHNjcnV0aW46IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhzY3J1dGluKVxuXG4gIGNvbnN0IGRlbWFuZGV1ciA9IHNjcnV0aW4uZGVtYW5kZXVyXG4gIGFzc2VydChkZW1hbmRldXIpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhkZW1hbmRldXIpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVtYW5kZXVyLnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBvYmpldCA9IHNjcnV0aW4ub2JqZXRcbiAgYXNzZXJ0KG9iamV0KVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMob2JqZXQpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2JqZXQucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGxldCB2ZW50aWxhdGlvblZvdGVzID0gc2NydXRpbi52ZW50aWxhdGlvblZvdGVzXG4gIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuICB7XG4gICAgdmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXMub3JnYW5lXG4gICAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG5cbiAgICBsZXQgZ3JvdXBlcyA9IHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlc1xuICAgIGFzc2VydChncm91cGVzKVxuICAgIHtcbiAgICAgIGdyb3VwZXMgPSBncm91cGVzLmdyb3VwZVxuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZ3JvdXBlcykpXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwZSBvZiBncm91cGVzKSB7XG4gICAgICAgIGNvbnN0IHZvdGUgPSBncm91cGUudm90ZVxuICAgICAgICBhc3NlcnQodm90ZSlcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGRlY29tcHRlVm9peCA9IHZvdGUuZGVjb21wdGVWb2l4XG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlVm9peClcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4LmFic3RlbnRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4LmFic3RlbnRpb25zLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucyA9IGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4Lm5vblZvdGFudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXgubm9uVm90YW50cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXgubm9uVm90YW50cyA9IGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZU5vbWluYXRpZiA9IHZvdGUuZGVjb21wdGVOb21pbmF0aWZcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzID0gZ3JvdXBlc1xuICAgIH1cblxuICAgIHNjcnV0aW4udmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXNcbiAgfVxuXG4gIGNvbnN0IG1pc2VBdVBvaW50ID0gc2NydXRpbi5taXNlQXVQb2ludFxuICBpZiAobWlzZUF1UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYobWlzZUF1UG9pbnQpXG5cbiAgICBsZXQgZHlzZm9uY3Rpb25uZW1lbnQgPSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgIGlmIChkeXNmb25jdGlvbm5lbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGR5c2ZvbmN0aW9ubmVtZW50KVxuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QudmFsdWVzKGR5c2ZvbmN0aW9ubmVtZW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICBkZWxldGUgbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBPYmplY3QudmFsdWVzKG1pc2VBdVBvaW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBkZWxldGUgc2NydXRpbi5taXNlQXVQb2ludFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblZvdGFudCh2b3RhbnQ6IGFueSkge1xuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUodm90YW50LCBcInBhckRlbGVnYXRpb25cIilcbiAgY2xlYW5JbnRlZ2VyQXR0cmlidXRlKHZvdGFudCwgXCJudW1QbGFjZVwiKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLElBQUEsR0FBQUQsT0FBQTtBQUljLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUYsQ0FBQSw4QkFBQU0sTUFBQSxZQUFBTixDQUFBLENBQUFNLE1BQUEsQ0FBQUMsUUFBQSxhQUFBUCxDQUFBLHVCQUFBUSxLQUFBLENBQUFDLElBQUEsQ0FBQVQsQ0FBQTtBQUFBLFNBQUFDLG1CQUFBRCxDQUFBLFFBQUFRLEtBQUEsQ0FBQUUsT0FBQSxDQUFBVixDQUFBLFVBQUFXLGlCQUFBLENBQUFYLENBQUE7QUFBQSxTQUFBWSwyQkFBQVosQ0FBQSxFQUFBSCxDQUFBLFFBQUFnQixDQUFBLHlCQUFBUCxNQUFBLElBQUFOLENBQUEsQ0FBQU0sTUFBQSxDQUFBQyxRQUFBLEtBQUFQLENBQUEscUJBQUFhLENBQUEsUUFBQUwsS0FBQSxDQUFBRSxPQUFBLENBQUFWLENBQUEsTUFBQWEsQ0FBQSxHQUFBViwyQkFBQSxDQUFBSCxDQUFBLE1BQUFILENBQUEsSUFBQUcsQ0FBQSx1QkFBQUEsQ0FBQSxDQUFBYyxNQUFBLElBQUFELENBQUEsS0FBQWIsQ0FBQSxHQUFBYSxDQUFBLE9BQUFFLEVBQUEsTUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsV0FBQUgsRUFBQSxJQUFBZixDQUFBLENBQUFjLE1BQUEsS0FBQUssSUFBQSxXQUFBQSxJQUFBLE1BQUFDLEtBQUEsRUFBQXBCLENBQUEsQ0FBQWUsRUFBQSxVQUFBbEIsQ0FBQSxXQUFBQSxFQUFBRyxDQUFBLFVBQUFBLENBQUEsS0FBQXFCLENBQUEsRUFBQUwsQ0FBQSxnQkFBQVgsU0FBQSxpSkFBQWlCLENBQUEsRUFBQUMsQ0FBQSxPQUFBQyxDQUFBLGdCQUFBUCxDQUFBLFdBQUFBLEVBQUEsSUFBQUosQ0FBQSxHQUFBQSxDQUFBLENBQUFZLElBQUEsQ0FBQXpCLENBQUEsTUFBQWtCLENBQUEsV0FBQUEsRUFBQSxRQUFBbEIsQ0FBQSxHQUFBYSxDQUFBLENBQUFhLElBQUEsV0FBQUgsQ0FBQSxHQUFBdkIsQ0FBQSxDQUFBbUIsSUFBQSxFQUFBbkIsQ0FBQSxLQUFBSCxDQUFBLFdBQUFBLEVBQUFHLENBQUEsSUFBQXdCLENBQUEsT0FBQUYsQ0FBQSxHQUFBdEIsQ0FBQSxLQUFBcUIsQ0FBQSxXQUFBQSxFQUFBLFVBQUFFLENBQUEsWUFBQVYsQ0FBQSxjQUFBQSxDQUFBLDhCQUFBVyxDQUFBLFFBQUFGLENBQUE7QUFBQSxTQUFBbkIsNEJBQUFILENBQUEsRUFBQXVCLENBQUEsUUFBQXZCLENBQUEsMkJBQUFBLENBQUEsU0FBQVcsaUJBQUEsQ0FBQVgsQ0FBQSxFQUFBdUIsQ0FBQSxPQUFBVixDQUFBLE1BQUFjLFFBQUEsQ0FBQUYsSUFBQSxDQUFBekIsQ0FBQSxFQUFBNEIsS0FBQSw2QkFBQWYsQ0FBQSxJQUFBYixDQUFBLENBQUE2QixXQUFBLEtBQUFoQixDQUFBLEdBQUFiLENBQUEsQ0FBQTZCLFdBQUEsQ0FBQUMsSUFBQSxhQUFBakIsQ0FBQSxjQUFBQSxDQUFBLEdBQUFMLEtBQUEsQ0FBQUMsSUFBQSxDQUFBVCxDQUFBLG9CQUFBYSxDQUFBLCtDQUFBa0IsSUFBQSxDQUFBbEIsQ0FBQSxJQUFBRixpQkFBQSxDQUFBWCxDQUFBLEVBQUF1QixDQUFBO0FBQUEsU0FBQVosa0JBQUFYLENBQUEsRUFBQXVCLENBQUEsYUFBQUEsQ0FBQSxJQUFBQSxDQUFBLEdBQUF2QixDQUFBLENBQUFjLE1BQUEsTUFBQVMsQ0FBQSxHQUFBdkIsQ0FBQSxDQUFBYyxNQUFBLFlBQUFqQixDQUFBLE1BQUFxQixDQUFBLEdBQUFWLEtBQUEsQ0FBQWUsQ0FBQSxHQUFBMUIsQ0FBQSxHQUFBMEIsQ0FBQSxFQUFBMUIsQ0FBQSxJQUFBcUIsQ0FBQSxDQUFBckIsQ0FBQSxJQUFBRyxDQUFBLENBQUFILENBQUEsVUFBQXFCLENBQUE7QUFFZCxTQUFTYyxzQkFBc0JBLENBQUNDLGlCQUFzQixFQUFFO0VBQ3RELElBQUFDLHNCQUFpQixFQUFDRCxpQkFBaUIsQ0FBQztFQUVwQyxJQUFJRSxVQUFVLEdBQUdGLGlCQUFpQixDQUFDRSxVQUFVO0VBQzdDLElBQUlBLFVBQVUsS0FBS0MsU0FBUyxFQUFFO0lBQzVCRCxVQUFVLEdBQUdGLGlCQUFpQixDQUFDSSxTQUFTO0lBQ3hDLE9BQU9KLGlCQUFpQixDQUFDSSxTQUFTO0VBQ3BDLENBQUMsTUFBTTtJQUNMQyxrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDSSxTQUFTLEVBQUVELFNBQVMsQ0FBQztFQUM1RDtFQUNBLElBQUlELFVBQVUsS0FBS0MsU0FBUyxFQUFFO0lBQzVCLElBQUksT0FBT0QsVUFBVSxLQUFLLFFBQVEsRUFBRTtNQUNsQ0csa0JBQU0sQ0FBQ0MsV0FBVyxDQUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDO01BQ25DQSxVQUFVLEdBQUcsRUFBRTtJQUNqQixDQUFDLE1BQU0sSUFBSSxDQUFDM0IsS0FBSyxDQUFDRSxPQUFPLENBQUN5QixVQUFVLENBQUMsRUFBRTtNQUNyQyxJQUFBRyxrQkFBTSxFQUFDSCxVQUFVLENBQUM7TUFDbEJBLFVBQVUsR0FBRyxDQUFDQSxVQUFVLENBQUM7SUFDM0I7SUFDQSxJQUFNSyxlQUFlLEdBQUdMLFVBQVU7SUFDbENBLFVBQVUsR0FBRyxFQUFFO0lBQUEsSUFBQU0sU0FBQSxHQUFBN0IsMEJBQUEsQ0FDTzRCLGVBQWU7TUFBQUUsS0FBQTtJQUFBO01BQXJDLEtBQUFELFNBQUEsQ0FBQXhCLENBQUEsTUFBQXlCLEtBQUEsR0FBQUQsU0FBQSxDQUFBdkIsQ0FBQSxJQUFBQyxJQUFBLEdBQXVDO1FBQUEsSUFBOUJrQixTQUFTLEdBQUFLLEtBQUEsQ0FBQXRCLEtBQUE7UUFDaEIsSUFBSWlCLFNBQVMsS0FBSyxJQUFJLEVBQUU7VUFDdEI7UUFDRjtRQUNBQSxTQUFTLEdBQUdBLFNBQVMsQ0FBQ00sTUFBTTtRQUM1QixJQUFJbkMsS0FBSyxDQUFDRSxPQUFPLENBQUMyQixTQUFTLENBQUMsRUFBRTtVQUFBLElBQUFPLFdBQUE7VUFDNUIsQ0FBQUEsV0FBQSxHQUFBVCxVQUFVLEVBQUNVLElBQUksQ0FBQUMsS0FBQSxDQUFBRixXQUFBLEVBQUE3QyxrQkFBQSxDQUFJc0MsU0FBUyxFQUFDO1FBQy9CLENBQUMsTUFBTTtVQUNMLElBQUFDLGtCQUFNLEVBQUNELFNBQVMsQ0FBQztVQUNqQkYsVUFBVSxDQUFDVSxJQUFJLENBQUNSLFNBQVMsQ0FBQztRQUM1QjtNQUNGO0lBQUMsU0FBQVUsR0FBQTtNQUFBTixTQUFBLENBQUE1QyxDQUFBLENBQUFrRCxHQUFBO0lBQUE7TUFBQU4sU0FBQSxDQUFBcEIsQ0FBQTtJQUFBO0lBQ0QsSUFBSWMsVUFBVSxDQUFDckIsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUMzQixPQUFPbUIsaUJBQWlCLENBQUNFLFVBQVU7SUFDckMsQ0FBQyxNQUFNO01BQ0xGLGlCQUFpQixDQUFDRSxVQUFVLEdBQUdBLFVBQVU7TUFBQSxJQUFBYSxVQUFBLEdBQUFwQywwQkFBQSxDQUNwQnVCLFVBQVU7UUFBQWMsTUFBQTtNQUFBO1FBQS9CLEtBQUFELFVBQUEsQ0FBQS9CLENBQUEsTUFBQWdDLE1BQUEsR0FBQUQsVUFBQSxDQUFBOUIsQ0FBQSxJQUFBQyxJQUFBLEdBQWlDO1VBQUEsSUFBdEJ3QixNQUFNLEdBQUFNLE1BQUEsQ0FBQTdCLEtBQUE7VUFDZjhCLFdBQVcsQ0FBQ1AsTUFBTSxDQUFDO1FBQ3JCO01BQUMsU0FBQUksR0FBQTtRQUFBQyxVQUFBLENBQUFuRCxDQUFBLENBQUFrRCxHQUFBO01BQUE7UUFBQUMsVUFBQSxDQUFBM0IsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUk4QixJQUFJLEdBQUdsQixpQkFBaUIsQ0FBQ2tCLElBQUk7RUFDakMsSUFBSUEsSUFBSSxLQUFLZixTQUFTLEVBQUU7SUFDdEJlLElBQUksR0FBR2xCLGlCQUFpQixDQUFDbUIsS0FBSztJQUM5QixPQUFPbkIsaUJBQWlCLENBQUNtQixLQUFLO0VBQ2hDLENBQUMsTUFBTTtJQUNMZCxrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDbUIsS0FBSyxFQUFFaEIsU0FBUyxDQUFDO0VBQ3hEO0VBQ0EsSUFBSWUsSUFBSSxLQUFLZixTQUFTLEVBQUU7SUFDdEJlLElBQUksR0FBR0EsSUFBSSxDQUFDUixNQUFNO0lBQ2xCLElBQUksQ0FBQ25DLEtBQUssQ0FBQ0UsT0FBTyxDQUFDeUMsSUFBSSxDQUFDLEVBQUU7TUFDeEIsSUFBQWIsa0JBQU0sRUFBQ2EsSUFBSSxDQUFDO01BQ1pBLElBQUksR0FBRyxDQUFDQSxJQUFJLENBQUM7SUFDZjtJQUNBLElBQUlBLElBQUksQ0FBQ3JDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDckIsT0FBT21CLGlCQUFpQixDQUFDa0IsSUFBSTtJQUMvQixDQUFDLE1BQU07TUFDTGxCLGlCQUFpQixDQUFDa0IsSUFBSSxHQUFHQSxJQUFJO01BQUEsSUFBQUUsVUFBQSxHQUFBekMsMEJBQUEsQ0FDUnVDLElBQUk7UUFBQUcsTUFBQTtNQUFBO1FBQXpCLEtBQUFELFVBQUEsQ0FBQXBDLENBQUEsTUFBQXFDLE1BQUEsR0FBQUQsVUFBQSxDQUFBbkMsQ0FBQSxJQUFBQyxJQUFBLEdBQTJCO1VBQUEsSUFBaEJ3QixPQUFNLEdBQUFXLE1BQUEsQ0FBQWxDLEtBQUE7VUFDZjhCLFdBQVcsQ0FBQ1AsT0FBTSxDQUFDO1FBQ3JCO01BQUMsU0FBQUksR0FBQTtRQUFBTSxVQUFBLENBQUF4RCxDQUFBLENBQUFrRCxHQUFBO01BQUE7UUFBQU0sVUFBQSxDQUFBaEMsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUlrQyxNQUFNLEdBQUd0QixpQkFBaUIsQ0FBQ3NCLE1BQU07RUFDckMsSUFBSUEsTUFBTSxLQUFLbkIsU0FBUyxFQUFFO0lBQ3hCbUIsTUFBTSxHQUFHdEIsaUJBQWlCLENBQUN1QixPQUFPO0lBQ2xDLE9BQU92QixpQkFBaUIsQ0FBQ3VCLE9BQU87RUFDbEMsQ0FBQyxNQUFNO0lBQ0xsQixrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDdUIsT0FBTyxFQUFFcEIsU0FBUyxDQUFDO0VBQzFEO0VBQ0EsSUFBSW1CLE1BQU0sS0FBS25CLFNBQVMsRUFBRTtJQUN4Qm1CLE1BQU0sR0FBR0EsTUFBTSxDQUFDWixNQUFNO0lBQ3RCLElBQUksQ0FBQ25DLEtBQUssQ0FBQ0UsT0FBTyxDQUFDNkMsTUFBTSxDQUFDLEVBQUU7TUFDMUIsSUFBQWpCLGtCQUFNLEVBQUNpQixNQUFNLENBQUM7TUFDZEEsTUFBTSxHQUFHLENBQUNBLE1BQU0sQ0FBQztJQUNuQjtJQUNBLElBQUlBLE1BQU0sQ0FBQ3pDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdkIsT0FBT21CLGlCQUFpQixDQUFDc0IsTUFBTTtJQUNqQyxDQUFDLE1BQU07TUFDTHRCLGlCQUFpQixDQUFDc0IsTUFBTSxHQUFHQSxNQUFNO01BQUEsSUFBQUUsVUFBQSxHQUFBN0MsMEJBQUEsQ0FDWjJDLE1BQU07UUFBQUcsTUFBQTtNQUFBO1FBQTNCLEtBQUFELFVBQUEsQ0FBQXhDLENBQUEsTUFBQXlDLE1BQUEsR0FBQUQsVUFBQSxDQUFBdkMsQ0FBQSxJQUFBQyxJQUFBLEdBQTZCO1VBQUEsSUFBbEJ3QixRQUFNLEdBQUFlLE1BQUEsQ0FBQXRDLEtBQUE7VUFDZjhCLFdBQVcsQ0FBQ1AsUUFBTSxDQUFDO1FBQ3JCO01BQUMsU0FBQUksR0FBQTtRQUFBVSxVQUFBLENBQUE1RCxDQUFBLENBQUFrRCxHQUFBO01BQUE7UUFBQVUsVUFBQSxDQUFBcEMsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUlzQyxXQUFXLEdBQUcxQixpQkFBaUIsQ0FBQzBCLFdBQVc7RUFDL0MsSUFBSUEsV0FBVyxLQUFLdkIsU0FBUyxFQUFFO0lBQzdCdUIsV0FBVyxHQUFHMUIsaUJBQWlCLENBQUMyQixVQUFVO0lBQzFDLE9BQU8zQixpQkFBaUIsQ0FBQzJCLFVBQVU7RUFDckMsQ0FBQyxNQUFNO0lBQ0x0QixrQkFBTSxDQUFDQyxXQUFXLENBQUNOLGlCQUFpQixDQUFDMkIsVUFBVSxFQUFFeEIsU0FBUyxDQUFDO0VBQzdEO0VBQ0EsSUFBSXVCLFdBQVcsS0FBS3ZCLFNBQVMsRUFBRTtJQUM3QixJQUFJLENBQUM1QixLQUFLLENBQUNFLE9BQU8sQ0FBQ2lELFdBQVcsQ0FBQyxFQUFFO01BQy9CLElBQUFyQixrQkFBTSxFQUFDcUIsV0FBVyxDQUFDO01BQ25CQSxXQUFXLEdBQUcsQ0FBQ0EsV0FBVyxDQUFDO0lBQzdCO0lBQ0EsSUFBTUUsZ0JBQWdCLEdBQUdGLFdBQVc7SUFDcENBLFdBQVcsR0FBRyxFQUFFO0lBQUEsSUFBQUcsVUFBQSxHQUFBbEQsMEJBQUEsQ0FDV2lELGdCQUFnQjtNQUFBRSxNQUFBO0lBQUE7TUFBM0MsS0FBQUQsVUFBQSxDQUFBN0MsQ0FBQSxNQUFBOEMsTUFBQSxHQUFBRCxVQUFBLENBQUE1QyxDQUFBLElBQUFDLElBQUEsR0FBNkM7UUFBQSxJQUFwQzZDLGNBQWMsR0FBQUQsTUFBQSxDQUFBM0MsS0FBQTtRQUNyQixJQUFJNEMsY0FBYyxLQUFLLElBQUksRUFBRTtVQUMzQjtRQUNGO1FBQ0FBLGNBQWMsR0FBR0EsY0FBYyxDQUFDckIsTUFBTTtRQUN0QyxJQUFJbkMsS0FBSyxDQUFDRSxPQUFPLENBQUNzRCxjQUFjLENBQUMsRUFBRTtVQUFBLElBQUFDLFlBQUE7VUFDakMsQ0FBQUEsWUFBQSxHQUFBTixXQUFXLEVBQUNkLElBQUksQ0FBQUMsS0FBQSxDQUFBbUIsWUFBQSxFQUFBbEUsa0JBQUEsQ0FBSWlFLGNBQWMsRUFBQztRQUNyQyxDQUFDLE1BQU07VUFDTCxJQUFBMUIsa0JBQU0sRUFBQzBCLGNBQWMsQ0FBQztVQUN0QkwsV0FBVyxDQUFDZCxJQUFJLENBQUNtQixjQUFjLENBQUM7UUFDbEM7TUFDRjtJQUFDLFNBQUFqQixHQUFBO01BQUFlLFVBQUEsQ0FBQWpFLENBQUEsQ0FBQWtELEdBQUE7SUFBQTtNQUFBZSxVQUFBLENBQUF6QyxDQUFBO0lBQUE7SUFDRCxJQUFJc0MsV0FBVyxDQUFDN0MsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUM1QixPQUFPbUIsaUJBQWlCLENBQUMwQixXQUFXO0lBQ3RDLENBQUMsTUFBTTtNQUNMMUIsaUJBQWlCLENBQUMwQixXQUFXLEdBQUdBLFdBQVc7TUFBQSxJQUFBTyxVQUFBLEdBQUF0RCwwQkFBQSxDQUN0QitDLFdBQVc7UUFBQVEsTUFBQTtNQUFBO1FBQWhDLEtBQUFELFVBQUEsQ0FBQWpELENBQUEsTUFBQWtELE1BQUEsR0FBQUQsVUFBQSxDQUFBaEQsQ0FBQSxJQUFBQyxJQUFBLEdBQWtDO1VBQUEsSUFBdkJ3QixRQUFNLEdBQUF3QixNQUFBLENBQUEvQyxLQUFBO1VBQ2Y4QixXQUFXLENBQUNQLFFBQU0sQ0FBQztRQUNyQjtNQUFDLFNBQUFJLEdBQUE7UUFBQW1CLFVBQUEsQ0FBQXJFLENBQUEsQ0FBQWtELEdBQUE7TUFBQTtRQUFBbUIsVUFBQSxDQUFBN0MsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtFQUVBLElBQUkrQyxxQkFBcUIsR0FBR25DLGlCQUFpQixDQUFDbUMscUJBQXFCO0VBQ25FLElBQUlBLHFCQUFxQixLQUFLaEMsU0FBUyxFQUFFO0lBQ3ZDLElBQUksQ0FBQzVCLEtBQUssQ0FBQ0UsT0FBTyxDQUFDMEQscUJBQXFCLENBQUMsRUFBRTtNQUN6Q0EscUJBQXFCLEdBQUcsQ0FBQ0EscUJBQXFCLENBQUM7SUFDakQ7SUFDQSxJQUFNQywwQkFBMEIsR0FBR0QscUJBQXFCO0lBQ3hEQSxxQkFBcUIsR0FBRyxFQUFFO0lBQUEsSUFBQUUsVUFBQSxHQUFBMUQsMEJBQUEsQ0FDQ3lELDBCQUEwQjtNQUFBRSxNQUFBO0lBQUE7TUFBckQsS0FBQUQsVUFBQSxDQUFBckQsQ0FBQSxNQUFBc0QsTUFBQSxHQUFBRCxVQUFBLENBQUFwRCxDQUFBLElBQUFDLElBQUEsR0FBdUQ7UUFBQSxJQUE5QzZDLGVBQWMsR0FBQU8sTUFBQSxDQUFBbkQsS0FBQTtRQUNyQixJQUFJNEMsZUFBYyxLQUFLLElBQUksRUFBRTtVQUMzQjtRQUNGO1FBQ0FBLGVBQWMsR0FBR0EsZUFBYyxDQUFDckIsTUFBTTtRQUN0QyxJQUFJbkMsS0FBSyxDQUFDRSxPQUFPLENBQUNzRCxlQUFjLENBQUMsRUFBRTtVQUFBLElBQUFRLHFCQUFBO1VBQ2pDLENBQUFBLHFCQUFBLEdBQUFKLHFCQUFxQixFQUFDdkIsSUFBSSxDQUFBQyxLQUFBLENBQUEwQixxQkFBQSxFQUFBekUsa0JBQUEsQ0FBSWlFLGVBQWMsRUFBQztRQUMvQyxDQUFDLE1BQU07VUFDTCxJQUFBMUIsa0JBQU0sRUFBQzBCLGVBQWMsQ0FBQztVQUN0QkkscUJBQXFCLENBQUN2QixJQUFJLENBQUNtQixlQUFjLENBQUM7UUFDNUM7TUFDRjtJQUFDLFNBQUFqQixHQUFBO01BQUF1QixVQUFBLENBQUF6RSxDQUFBLENBQUFrRCxHQUFBO0lBQUE7TUFBQXVCLFVBQUEsQ0FBQWpELENBQUE7SUFBQTtJQUNELElBQUkrQyxxQkFBcUIsQ0FBQ3RELE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdEMsT0FBT21CLGlCQUFpQixDQUFDbUMscUJBQXFCO0lBQ2hELENBQUMsTUFBTTtNQUNMbkMsaUJBQWlCLENBQUNtQyxxQkFBcUIsR0FBR0EscUJBQXFCO01BQUEsSUFBQUssVUFBQSxHQUFBN0QsMEJBQUEsQ0FDMUN3RCxxQkFBcUI7UUFBQU0sTUFBQTtNQUFBO1FBQTFDLEtBQUFELFVBQUEsQ0FBQXhELENBQUEsTUFBQXlELE1BQUEsR0FBQUQsVUFBQSxDQUFBdkQsQ0FBQSxJQUFBQyxJQUFBLEdBQTRDO1VBQUEsSUFBakN3QixRQUFNLEdBQUErQixNQUFBLENBQUF0RCxLQUFBO1VBQ2Y4QixXQUFXLENBQUNQLFFBQU0sQ0FBQztRQUNyQjtNQUFDLFNBQUFJLEdBQUE7UUFBQTBCLFVBQUEsQ0FBQTVFLENBQUEsQ0FBQWtELEdBQUE7TUFBQTtRQUFBMEIsVUFBQSxDQUFBcEQsQ0FBQTtNQUFBO0lBQ0g7RUFDRjtBQUNGO0FBRU8sU0FBU3NELFlBQVlBLENBQUNDLE9BQVksRUFBUTtFQUMvQyxJQUFBMUMsc0JBQWlCLEVBQUMwQyxPQUFPLENBQUM7RUFFMUIsSUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNDLFNBQVM7RUFDbkMsSUFBQXZDLGtCQUFNLEVBQUN1QyxTQUFTLENBQUM7RUFDakI7SUFDRSxJQUFBM0Msc0JBQWlCLEVBQUMyQyxTQUFTLENBQUM7SUFFNUJ2QyxrQkFBTSxDQUFDQyxXQUFXLENBQUNzQyxTQUFTLENBQUNDLG9CQUFvQixFQUFFMUMsU0FBUyxDQUFDO0VBQy9EO0VBRUEsSUFBTTJDLEtBQUssR0FBR0gsT0FBTyxDQUFDRyxLQUFLO0VBQzNCLElBQUF6QyxrQkFBTSxFQUFDeUMsS0FBSyxDQUFDO0VBQ2I7SUFDRSxJQUFBN0Msc0JBQWlCLEVBQUM2QyxLQUFLLENBQUM7SUFFeEJ6QyxrQkFBTSxDQUFDQyxXQUFXLENBQUN3QyxLQUFLLENBQUNELG9CQUFvQixFQUFFMUMsU0FBUyxDQUFDO0VBQzNEO0VBRUEsSUFBSTRDLGdCQUFnQixHQUFHSixPQUFPLENBQUNJLGdCQUFnQjtFQUMvQyxJQUFBMUMsa0JBQU0sRUFBQzBDLGdCQUFnQixDQUFDO0VBQ3hCO0lBQ0VBLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ0MsTUFBTTtJQUMxQyxJQUFBM0Msa0JBQU0sRUFBQzBDLGdCQUFnQixDQUFDO0lBRXhCLElBQUlFLE9BQU8sR0FBR0YsZ0JBQWdCLENBQUNFLE9BQU87SUFDdEMsSUFBQTVDLGtCQUFNLEVBQUM0QyxPQUFPLENBQUM7SUFDZjtNQUNFQSxPQUFPLEdBQUdBLE9BQU8sQ0FBQ0MsTUFBTTtNQUN4QixJQUFBN0Msa0JBQU0sRUFBQzlCLEtBQUssQ0FBQ0UsT0FBTyxDQUFDd0UsT0FBTyxDQUFDLENBQUM7TUFBQSxJQUFBRSxVQUFBLEdBQUF4RSwwQkFBQSxDQUNUc0UsT0FBTztRQUFBRyxNQUFBO01BQUE7UUFBNUIsS0FBQUQsVUFBQSxDQUFBbkUsQ0FBQSxNQUFBb0UsTUFBQSxHQUFBRCxVQUFBLENBQUFsRSxDQUFBLElBQUFDLElBQUEsR0FBOEI7VUFBQSxJQUFuQmdFLE1BQU0sR0FBQUUsTUFBQSxDQUFBakUsS0FBQTtVQUNmLElBQU1rRSxJQUFJLEdBQUdILE1BQU0sQ0FBQ0csSUFBSTtVQUN4QixJQUFBaEQsa0JBQU0sRUFBQ2dELElBQUksQ0FBQztVQUNaO1lBQ0UsSUFBTUMsWUFBWSxHQUFHRCxJQUFJLENBQUNDLFlBQVk7WUFDdEMsSUFBQWpELGtCQUFNLEVBQUNpRCxZQUFZLENBQUM7WUFDcEI7Y0FDRSxJQUFJQSxZQUFZLENBQUMzQixVQUFVLEtBQUt4QixTQUFTLEVBQUU7Z0JBQ3pDRSxrQkFBTSxDQUFDQyxXQUFXLENBQUNnRCxZQUFZLENBQUM1QixXQUFXLEVBQUV2QixTQUFTLENBQUM7Z0JBQ3ZEbUQsWUFBWSxDQUFDNUIsV0FBVyxHQUFHNEIsWUFBWSxDQUFDM0IsVUFBVTtnQkFDbEQsT0FBTzJCLFlBQVksQ0FBQzNCLFVBQVU7Y0FDaEM7Y0FFQSxJQUFJMkIsWUFBWSxDQUFDbEQsU0FBUyxLQUFLRCxTQUFTLEVBQUU7Z0JBQ3hDRSxrQkFBTSxDQUFDQyxXQUFXLENBQUNnRCxZQUFZLENBQUNwRCxVQUFVLEVBQUVDLFNBQVMsQ0FBQztnQkFDdERtRCxZQUFZLENBQUNwRCxVQUFVLEdBQUdvRCxZQUFZLENBQUNsRCxTQUFTO2dCQUNoRCxPQUFPa0QsWUFBWSxDQUFDbEQsU0FBUztjQUMvQjtZQUNGO1lBRUEsSUFBTUosaUJBQWlCLEdBQUdxRCxJQUFJLENBQUNyRCxpQkFBaUI7WUFDaEQsSUFBQUssa0JBQU0sRUFBQ0wsaUJBQWlCLENBQUM7WUFDekJELHNCQUFzQixDQUFDQyxpQkFBaUIsQ0FBQztVQUMzQztRQUNGO01BQUMsU0FBQWMsR0FBQTtRQUFBcUMsVUFBQSxDQUFBdkYsQ0FBQSxDQUFBa0QsR0FBQTtNQUFBO1FBQUFxQyxVQUFBLENBQUEvRCxDQUFBO01BQUE7TUFDRDJELGdCQUFnQixDQUFDRSxPQUFPLEdBQUdBLE9BQU87SUFDcEM7SUFFQU4sT0FBTyxDQUFDSSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0VBQzdDO0VBRUEsSUFBTVEsV0FBVyxHQUFHWixPQUFPLENBQUNZLFdBQVc7RUFDdkMsSUFBSUEsV0FBVyxLQUFLcEQsU0FBUyxFQUFFO0lBQzdCSixzQkFBc0IsQ0FBQ3dELFdBQVcsQ0FBQztJQUVuQyxJQUFJQyxpQkFBaUIsR0FBR0QsV0FBVyxDQUFDQyxpQkFBaUI7SUFDckQsSUFBSUEsaUJBQWlCLEtBQUtyRCxTQUFTLEVBQUU7TUFDbkNKLHNCQUFzQixDQUFDeUQsaUJBQWlCLENBQUM7TUFDekMsSUFDRUMsTUFBTSxDQUFDQyxNQUFNLENBQUNGLGlCQUFpQixDQUFDLENBQUNHLE1BQU0sQ0FBQyxVQUFDeEUsS0FBSztRQUFBLE9BQUtBLEtBQUssS0FBS2dCLFNBQVM7TUFBQSxFQUFDLENBQ3BFdEIsTUFBTSxLQUFLLENBQUMsRUFDZjtRQUNBLE9BQU8wRSxXQUFXLENBQUNDLGlCQUFpQjtNQUN0QztJQUNGO0lBRUEsSUFDRUMsTUFBTSxDQUFDQyxNQUFNLENBQUNILFdBQVcsQ0FBQyxDQUFDSSxNQUFNLENBQUMsVUFBQ3hFLEtBQUs7TUFBQSxPQUFLQSxLQUFLLEtBQUtnQixTQUFTO0lBQUEsRUFBQyxDQUM5RHRCLE1BQU0sS0FBSyxDQUFDLEVBQ2Y7TUFDQSxPQUFPOEQsT0FBTyxDQUFDWSxXQUFXO0lBQzVCO0VBQ0Y7QUFDRjtBQUVBLFNBQVN0QyxXQUFXQSxDQUFDUCxNQUFXLEVBQUU7RUFDaEMsSUFBQWtELDBCQUFxQixFQUFDbEQsTUFBTSxFQUFFLGVBQWUsQ0FBQztFQUM5QyxJQUFBbUQsMEJBQXFCLEVBQUNuRCxNQUFNLEVBQUUsVUFBVSxDQUFDO0FBQzNDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
import { cleanBooleanAttribute, cleanIntegerAttribute, cleanXmlArtefacts } from "./xml.mjs";
|
|
3
|
-
function cleanDecompteNominatif(decompteNominatif) {
|
|
4
|
-
cleanXmlArtefacts(decompteNominatif);
|
|
5
|
-
let nonVotants = decompteNominatif.nonVotants;
|
|
6
|
-
if (nonVotants === undefined) {
|
|
7
|
-
nonVotants = decompteNominatif.nonVotant;
|
|
8
|
-
delete decompteNominatif.nonVotant;
|
|
9
|
-
} else {
|
|
10
|
-
assert.strictEqual(decompteNominatif.nonVotant, undefined);
|
|
11
|
-
}
|
|
12
|
-
if (nonVotants !== undefined) {
|
|
13
|
-
if (typeof nonVotants === "string") {
|
|
14
|
-
assert.strictEqual(nonVotants, "0");
|
|
15
|
-
nonVotants = [];
|
|
16
|
-
} else if (!Array.isArray(nonVotants)) {
|
|
17
|
-
assert(nonVotants);
|
|
18
|
-
nonVotants = [nonVotants];
|
|
19
|
-
}
|
|
20
|
-
const nonVotantsArray = nonVotants;
|
|
21
|
-
nonVotants = [];
|
|
22
|
-
for (let nonVotant of nonVotantsArray) {
|
|
23
|
-
if (nonVotant === null) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
nonVotant = nonVotant.votant;
|
|
27
|
-
if (Array.isArray(nonVotant)) {
|
|
28
|
-
nonVotants.push(...nonVotant);
|
|
29
|
-
} else {
|
|
30
|
-
assert(nonVotant);
|
|
31
|
-
nonVotants.push(nonVotant);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (nonVotants.length === 0) {
|
|
35
|
-
delete decompteNominatif.nonVotants;
|
|
36
|
-
} else {
|
|
37
|
-
decompteNominatif.nonVotants = nonVotants;
|
|
38
|
-
for (const votant of nonVotants) {
|
|
39
|
-
cleanVotant(votant);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
let pour = decompteNominatif.pour;
|
|
44
|
-
if (pour === undefined) {
|
|
45
|
-
pour = decompteNominatif.pours;
|
|
46
|
-
delete decompteNominatif.pours;
|
|
47
|
-
} else {
|
|
48
|
-
assert.strictEqual(decompteNominatif.pours, undefined);
|
|
49
|
-
}
|
|
50
|
-
if (pour !== undefined) {
|
|
51
|
-
pour = pour.votant;
|
|
52
|
-
if (!Array.isArray(pour)) {
|
|
53
|
-
assert(pour);
|
|
54
|
-
pour = [pour];
|
|
55
|
-
}
|
|
56
|
-
if (pour.length === 0) {
|
|
57
|
-
delete decompteNominatif.pour;
|
|
58
|
-
} else {
|
|
59
|
-
decompteNominatif.pour = pour;
|
|
60
|
-
for (const votant of pour) {
|
|
61
|
-
cleanVotant(votant);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
let contre = decompteNominatif.contre;
|
|
66
|
-
if (contre === undefined) {
|
|
67
|
-
contre = decompteNominatif.contres;
|
|
68
|
-
delete decompteNominatif.contres;
|
|
69
|
-
} else {
|
|
70
|
-
assert.strictEqual(decompteNominatif.contres, undefined);
|
|
71
|
-
}
|
|
72
|
-
if (contre !== undefined) {
|
|
73
|
-
contre = contre.votant;
|
|
74
|
-
if (!Array.isArray(contre)) {
|
|
75
|
-
assert(contre);
|
|
76
|
-
contre = [contre];
|
|
77
|
-
}
|
|
78
|
-
if (contre.length === 0) {
|
|
79
|
-
delete decompteNominatif.contre;
|
|
80
|
-
} else {
|
|
81
|
-
decompteNominatif.contre = contre;
|
|
82
|
-
for (const votant of contre) {
|
|
83
|
-
cleanVotant(votant);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
let abstentions = decompteNominatif.abstentions;
|
|
88
|
-
if (abstentions === undefined) {
|
|
89
|
-
abstentions = decompteNominatif.abstention;
|
|
90
|
-
delete decompteNominatif.abstention;
|
|
91
|
-
} else {
|
|
92
|
-
assert.strictEqual(decompteNominatif.abstention, undefined);
|
|
93
|
-
}
|
|
94
|
-
if (abstentions !== undefined) {
|
|
95
|
-
if (!Array.isArray(abstentions)) {
|
|
96
|
-
assert(abstentions);
|
|
97
|
-
abstentions = [abstentions];
|
|
98
|
-
}
|
|
99
|
-
const abstentionsArray = abstentions;
|
|
100
|
-
abstentions = [];
|
|
101
|
-
for (let absentionsItem of abstentionsArray) {
|
|
102
|
-
if (absentionsItem === null) {
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
absentionsItem = absentionsItem.votant;
|
|
106
|
-
if (Array.isArray(absentionsItem)) {
|
|
107
|
-
abstentions.push(...absentionsItem);
|
|
108
|
-
} else {
|
|
109
|
-
assert(absentionsItem);
|
|
110
|
-
abstentions.push(absentionsItem);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
if (abstentions.length === 0) {
|
|
114
|
-
delete decompteNominatif.abstentions;
|
|
115
|
-
} else {
|
|
116
|
-
decompteNominatif.abstentions = abstentions;
|
|
117
|
-
for (const votant of abstentions) {
|
|
118
|
-
cleanVotant(votant);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
let nonVotantsVolontaires = decompteNominatif.nonVotantsVolontaires;
|
|
123
|
-
if (nonVotantsVolontaires !== undefined) {
|
|
124
|
-
if (!Array.isArray(nonVotantsVolontaires)) {
|
|
125
|
-
nonVotantsVolontaires = [nonVotantsVolontaires];
|
|
126
|
-
}
|
|
127
|
-
const nonVotantsVolontairesArray = nonVotantsVolontaires;
|
|
128
|
-
nonVotantsVolontaires = [];
|
|
129
|
-
for (let absentionsItem of nonVotantsVolontairesArray) {
|
|
130
|
-
if (absentionsItem === null) {
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
absentionsItem = absentionsItem.votant;
|
|
134
|
-
if (Array.isArray(absentionsItem)) {
|
|
135
|
-
nonVotantsVolontaires.push(...absentionsItem);
|
|
136
|
-
} else {
|
|
137
|
-
assert(absentionsItem);
|
|
138
|
-
nonVotantsVolontaires.push(absentionsItem);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (nonVotantsVolontaires.length === 0) {
|
|
142
|
-
delete decompteNominatif.nonVotantsVolontaires;
|
|
143
|
-
} else {
|
|
144
|
-
decompteNominatif.nonVotantsVolontaires = nonVotantsVolontaires;
|
|
145
|
-
for (const votant of nonVotantsVolontaires) {
|
|
146
|
-
cleanVotant(votant);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
export function cleanScrutin(scrutin) {
|
|
152
|
-
cleanXmlArtefacts(scrutin);
|
|
153
|
-
const demandeur = scrutin.demandeur;
|
|
154
|
-
assert(demandeur);
|
|
155
|
-
{
|
|
156
|
-
cleanXmlArtefacts(demandeur);
|
|
157
|
-
assert.strictEqual(demandeur.referenceLegislative, undefined);
|
|
158
|
-
}
|
|
159
|
-
const objet = scrutin.objet;
|
|
160
|
-
assert(objet);
|
|
161
|
-
{
|
|
162
|
-
cleanXmlArtefacts(objet);
|
|
163
|
-
assert.strictEqual(objet.referenceLegislative, undefined);
|
|
164
|
-
}
|
|
165
|
-
let ventilationVotes = scrutin.ventilationVotes;
|
|
166
|
-
assert(ventilationVotes);
|
|
167
|
-
{
|
|
168
|
-
ventilationVotes = ventilationVotes.organe;
|
|
169
|
-
assert(ventilationVotes);
|
|
170
|
-
let groupes = ventilationVotes.groupes;
|
|
171
|
-
assert(groupes);
|
|
172
|
-
{
|
|
173
|
-
groupes = groupes.groupe;
|
|
174
|
-
assert(Array.isArray(groupes));
|
|
175
|
-
for (const groupe of groupes) {
|
|
176
|
-
const vote = groupe.vote;
|
|
177
|
-
assert(vote);
|
|
178
|
-
{
|
|
179
|
-
const decompteVoix = vote.decompteVoix;
|
|
180
|
-
assert(decompteVoix);
|
|
181
|
-
{
|
|
182
|
-
if (decompteVoix.abstention !== undefined) {
|
|
183
|
-
assert.strictEqual(decompteVoix.abstentions, undefined);
|
|
184
|
-
decompteVoix.abstentions = decompteVoix.abstention;
|
|
185
|
-
delete decompteVoix.abstention;
|
|
186
|
-
}
|
|
187
|
-
if (decompteVoix.nonVotant !== undefined) {
|
|
188
|
-
assert.strictEqual(decompteVoix.nonVotants, undefined);
|
|
189
|
-
decompteVoix.nonVotants = decompteVoix.nonVotant;
|
|
190
|
-
delete decompteVoix.nonVotant;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
const decompteNominatif = vote.decompteNominatif;
|
|
194
|
-
assert(decompteNominatif);
|
|
195
|
-
cleanDecompteNominatif(decompteNominatif);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
ventilationVotes.groupes = groupes;
|
|
199
|
-
}
|
|
200
|
-
scrutin.ventilationVotes = ventilationVotes;
|
|
201
|
-
}
|
|
202
|
-
const miseAuPoint = scrutin.miseAuPoint;
|
|
203
|
-
if (miseAuPoint !== undefined) {
|
|
204
|
-
cleanDecompteNominatif(miseAuPoint);
|
|
205
|
-
let dysfonctionnement = miseAuPoint.dysfonctionnement;
|
|
206
|
-
if (dysfonctionnement !== undefined) {
|
|
207
|
-
cleanDecompteNominatif(dysfonctionnement);
|
|
208
|
-
if (Object.values(dysfonctionnement).filter(value => value !== undefined).length === 0) {
|
|
209
|
-
delete miseAuPoint.dysfonctionnement;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
if (Object.values(miseAuPoint).filter(value => value !== undefined).length === 0) {
|
|
213
|
-
delete scrutin.miseAuPoint;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
function cleanVotant(votant) {
|
|
218
|
-
cleanBooleanAttribute(votant, "parDelegation");
|
|
219
|
-
cleanIntegerAttribute(votant, "numPlace");
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhbkludGVnZXJBdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJub25Wb3RhbnQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb24iLCJhYnN0ZW50aW9uc0FycmF5IiwiYWJzZW50aW9uc0l0ZW0iLCJub25Wb3RhbnRzVm9sb250YWlyZXMiLCJub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSIsImNsZWFuU2NydXRpbiIsInNjcnV0aW4iLCJkZW1hbmRldXIiLCJyZWZlcmVuY2VMZWdpc2xhdGl2ZSIsIm9iamV0IiwidmVudGlsYXRpb25Wb3RlcyIsIm9yZ2FuZSIsImdyb3VwZXMiLCJncm91cGUiLCJ2b3RlIiwiZGVjb21wdGVWb2l4IiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7XG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSxcbiAgY2xlYW5JbnRlZ2VyQXR0cmlidXRlLFxuICBjbGVhblhtbEFydGVmYWN0cyxcbn0gZnJvbSBcIi4veG1sXCJcblxuZnVuY3Rpb24gY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZjogYW55KSB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlY29tcHRlTm9taW5hdGlmKVxuXG4gIGxldCBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICBpZiAobm9uVm90YW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbm9uVm90YW50cyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50LCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKG5vblZvdGFudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2Ygbm9uVm90YW50cyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vblZvdGFudHMsIFwiMFwiKVxuICAgICAgbm9uVm90YW50cyA9IFtdXG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzKSkge1xuICAgICAgYXNzZXJ0KG5vblZvdGFudHMpXG4gICAgICBub25Wb3RhbnRzID0gW25vblZvdGFudHNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNBcnJheSA9IG5vblZvdGFudHNcbiAgICBub25Wb3RhbnRzID0gW11cbiAgICBmb3IgKGxldCBub25Wb3RhbnQgb2Ygbm9uVm90YW50c0FycmF5KSB7XG4gICAgICBpZiAobm9uVm90YW50ID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBub25Wb3RhbnQgPSBub25Wb3RhbnQudm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub25Wb3RhbnQpKSB7XG4gICAgICAgIG5vblZvdGFudHMucHVzaCguLi5ub25Wb3RhbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQobm9uVm90YW50KVxuICAgICAgICBub25Wb3RhbnRzLnB1c2gobm9uVm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHMgPSBub25Wb3RhbnRzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgaWYgKHBvdXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5wb3VycywgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChwb3VyICE9PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gcG91ci52b3RhbnRcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocG91cikpIHtcbiAgICAgIGFzc2VydChwb3VyKVxuICAgICAgcG91ciA9IFtwb3VyXVxuICAgIH1cbiAgICBpZiAocG91ci5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLnBvdXIgPSBwb3VyXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBwb3VyKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlXG4gIGlmIChjb250cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXNcbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGNvbnRyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gY29udHJlLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb250cmUpKSB7XG4gICAgICBhc3NlcnQoY29udHJlKVxuICAgICAgY29udHJlID0gW2NvbnRyZV1cbiAgICB9XG4gICAgaWYgKGNvbnRyZS5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuY29udHJlID0gY29udHJlXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBjb250cmUpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gIGlmIChhYnN0ZW50aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbiwgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChhYnN0ZW50aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFic3RlbnRpb25zKSkge1xuICAgICAgYXNzZXJ0KGFic3RlbnRpb25zKVxuICAgICAgYWJzdGVudGlvbnMgPSBbYWJzdGVudGlvbnNdXG4gICAgfVxuICAgIGNvbnN0IGFic3RlbnRpb25zQXJyYXkgPSBhYnN0ZW50aW9uc1xuICAgIGFic3RlbnRpb25zID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBhYnN0ZW50aW9uc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFic3RlbnRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zID0gYWJzdGVudGlvbnNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGFic3RlbnRpb25zKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzVm9sb250YWlyZXMpKSB7XG4gICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbbm9uVm90YW50c1ZvbG9udGFpcmVzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlcyA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuU2NydXRpbihzY3J1dGluOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoc2NydXRpbilcblxuICBjb25zdCBkZW1hbmRldXIgPSBzY3J1dGluLmRlbWFuZGV1clxuICBhc3NlcnQoZGVtYW5kZXVyKVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoZGVtYW5kZXVyKVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlbWFuZGV1ci5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgY29uc3Qgb2JqZXQgPSBzY3J1dGluLm9iamV0XG4gIGFzc2VydChvYmpldClcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKG9iamV0KVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9iamV0LnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBsZXQgdmVudGlsYXRpb25Wb3RlcyA9IHNjcnV0aW4udmVudGlsYXRpb25Wb3Rlc1xuICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcbiAge1xuICAgIHZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzLm9yZ2FuZVxuICAgIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuXG4gICAgbGV0IGdyb3VwZXMgPSB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXNcbiAgICBhc3NlcnQoZ3JvdXBlcylcbiAgICB7XG4gICAgICBncm91cGVzID0gZ3JvdXBlcy5ncm91cGVcbiAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGdyb3VwZXMpKVxuICAgICAgZm9yIChjb25zdCBncm91cGUgb2YgZ3JvdXBlcykge1xuICAgICAgICBjb25zdCB2b3RlID0gZ3JvdXBlLnZvdGVcbiAgICAgICAgYXNzZXJ0KHZvdGUpXG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZVZvaXggPSB2b3RlLmRlY29tcHRlVm9peFxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZVZvaXgpXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5hYnN0ZW50aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMgPSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5ub25Wb3RhbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4Lm5vblZvdGFudHMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4Lm5vblZvdGFudHMgPSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVjb21wdGVOb21pbmF0aWYgPSB2b3RlLmRlY29tcHRlTm9taW5hdGlmXG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlcyA9IGdyb3VwZXNcbiAgICB9XG5cbiAgICBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzXG4gIH1cblxuICBjb25zdCBtaXNlQXVQb2ludCA9IHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgaWYgKG1pc2VBdVBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKG1pc2VBdVBvaW50KVxuXG4gICAgbGV0IGR5c2ZvbmN0aW9ubmVtZW50ID0gbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICBpZiAoZHlzZm9uY3Rpb25uZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkeXNmb25jdGlvbm5lbWVudClcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhkeXNmb25jdGlvbm5lbWVudCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgICApIHtcbiAgICAgICAgZGVsZXRlIG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnZhbHVlcyhtaXNlQXVQb2ludCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgZGVsZXRlIHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5Wb3RhbnQodm90YW50OiBhbnkpIHtcbiAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKHZvdGFudCwgXCJwYXJEZWxlZ2F0aW9uXCIpXG4gIGNsZWFuSW50ZWdlckF0dHJpYnV0ZSh2b3RhbnQsIFwibnVtUGxhY2VcIilcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUd6QkMscUJBQXFCLEVBQ3JCQyxxQkFBcUIsRUFDckJDLGlCQUFpQjtBQUduQixTQUFTQyxzQkFBc0JBLENBQUNDLGlCQUFzQixFQUFFO0VBQ3RERixpQkFBaUIsQ0FBQ0UsaUJBQWlCLENBQUM7RUFFcEMsSUFBSUMsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0MsVUFBVTtFQUM3QyxJQUFJQSxVQUFVLEtBQUtDLFNBQVMsRUFBRTtJQUM1QkQsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0csU0FBUztJQUN4QyxPQUFPSCxpQkFBaUIsQ0FBQ0csU0FBUztFQUNwQyxDQUFDLE1BQU07SUFDTFIsTUFBTSxDQUFDUyxXQUFX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
|