@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
805 lines (802 loc) • 136 kB
JavaScript
"use strict";
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.array.from.js");
require("core-js/modules/es.array.is-array.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.array.slice.js");
require("core-js/modules/es.function.name.js");
require("core-js/modules/es.object.define-property.js");
require("core-js/modules/es.object.get-own-property-descriptor.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/es.regexp.to-string.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/es.weak-map.js");
require("core-js/modules/web.dom-collections.iterator.js");
require("core-js/modules/es.array.concat.js");
require("core-js/modules/es.array.join.js");
require("core-js/modules/es.array.sort.js");
require("core-js/modules/es.date.to-json.js");
require("core-js/modules/es.date.to-string.js");
require("core-js/modules/es.object.keys.js");
require("core-js/modules/es.object.values.js");
require("core-js/modules/es.regexp.exec.js");
require("core-js/modules/es.string.ends-with.js");
require("core-js/modules/es.string.replace.js");
require("core-js/modules/es.string.starts-with.js");
require("core-js/modules/es.string.trim.js");
var _assert = _interopRequireDefault(require("assert"));
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _path = _interopRequireDefault(require("path"));
var _datasets = require("../datasets");
var _dates = require("../dates");
var git = _interopRequireWildcard(require("../git"));
var _file_systems = require("../file_systems");
var _loaders = require("../loaders");
var _acteurs_et_organes = require("../raw_types/acteurs_et_organes");
var _agendas = require("../raw_types/agendas");
var _amendements = require("../raw_types/amendements");
var _dossiers_legislatifs = require("../raw_types/dossiers_legislatifs");
var _scrutins = require("../raw_types/scrutins");
var _questions = require("../raw_types/questions");
var _debats = require("../raw_types/debats");
var _cli_helpers = require("./shared/cli_helpers");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
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."); }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
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; } } }; }
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; } }
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; }
function parseArgs(argv) {
var optionsDefinitions = [_cli_helpers.cloneOption, _cli_helpers.commitOption, _cli_helpers.categoriesOption, _cli_helpers.legislatureOption, _cli_helpers.remoteOption, _cli_helpers.silentOption, _cli_helpers.verboseOption, _cli_helpers.dataDirDefaultOption, _cli_helpers.fetchDocumentsOption, _cli_helpers.parseDocumentsOption, _cli_helpers.documentFormatOption, _cli_helpers.pullOption, {
alias: "V",
help: "don't validate raw data",
name: "no-validate-raw",
type: Boolean
}];
var options = (0, _commandLineArgs["default"])(optionsDefinitions, {
argv: argv
});
return options;
}
function clearDirectory(dirPath) {
_fsExtra["default"].ensureDirSync(dirPath);
var _iterator = _createForOfIteratorHelper(_fsExtra["default"].readdirSync(dirPath)),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var filename = _step.value;
if (!filename.startsWith(".")) {
_fsExtra["default"].removeSync(_path["default"].join(dirPath, filename));
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
}
function cloneGit(gitGroupUrl, datasetName, dataDir) {
git.clone(gitGroupUrl, datasetName, dataDir);
}
function reorganizeData(options) {
var _options$clone;
var dataDir = options.dataDir;
Date.prototype.toJSON = _dates.patchedDateToJson;
var exitCode = options.commit ? 10 : 0;
var gitGroupUrl = (_options$clone = options.clone) === null || _options$clone === void 0 ? void 0 : _options$clone.trim().replace(/\/+$/, "");
var validateRawData = !options["no-validate-raw"];
var enabledDatasets = (0, _datasets.getEnabledDatasets)(options.categories);
var chosenDatasets = (0, _datasets.filterByLegislature)(_datasets.datasets, options.legislature);
function commitGit(datasetReorganizedDir, options) {
if (options.commit) {
var errorCode = git.commitAndPush(datasetReorganizedDir, "Nouvelle moisson", options.remote);
if (exitCode === 10 && errorCode !== 10 || exitCode === 0 && errorCode !== 0 && errorCode !== 10) {
exitCode = errorCode;
}
}
}
if (enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes) {
var _iterator2 = _createForOfIteratorHelper(chosenDatasets.acteursEtOrganes),
_step2;
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var dataset = _step2.value;
var originalJsonDirectoryOrFilePath = _path["default"].join(dataDir, dataset.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(originalJsonDirectoryOrFilePath));
}
var datasetName = _path["default"].basename(originalJsonDirectoryOrFilePath, ".json");
cloneGit(gitGroupUrl, datasetName, dataDir);
var datasetReorganizedDir = _path["default"].join(dataDir, datasetName);
if (options.pull) {
git.resetAndPull(datasetReorganizedDir);
}
clearDirectory(datasetReorganizedDir);
var acteursReorganizedDir = _path["default"].join(datasetReorganizedDir, "acteurs");
_fsExtra["default"].mkdirSync(acteursReorganizedDir);
var organesReorganizedDir = _path["default"].join(datasetReorganizedDir, "organes");
_fsExtra["default"].mkdirSync(organesReorganizedDir);
switch (dataset.structure) {
case _datasets.DatasetStructure.SingleFile:
{
var originalJson = _fsExtra["default"].readFileSync(originalJsonDirectoryOrFilePath, {
encoding: "utf8"
});
var originalData = validateRawData ? _acteurs_et_organes.Convert.toActeursEtOrganes(originalJson) : JSON.parse(originalJson);
var _iterator3 = _createForOfIteratorHelper(originalData["export"].acteurs.acteur),
_step3;
try {
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
var acteur = _step3.value;
var reorganizedJsonFilePath = _path["default"].join(acteursReorganizedDir, acteur.uid["#text"] + ".json");
_fsExtra["default"].writeFileSync(reorganizedJsonFilePath, JSON.stringify(acteur, null, 2), {
encoding: "utf8"
});
}
} catch (err) {
_iterator3.e(err);
} finally {
_iterator3.f();
}
var _iterator4 = _createForOfIteratorHelper(originalData["export"].organes.organe),
_step4;
try {
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
var organe = _step4.value;
var _reorganizedJsonFilePath = _path["default"].join(organesReorganizedDir, organe.uid + ".json");
_fsExtra["default"].writeFileSync(_reorganizedJsonFilePath, JSON.stringify(organe, null, 2), {
encoding: "utf8"
});
}
} catch (err) {
_iterator4.e(err);
} finally {
_iterator4.f();
}
}
break;
case _datasets.DatasetStructure.SegmentedFiles:
{
var deportsByActeurUid = {};
if (_fsExtra["default"].existsSync(_path["default"].join(originalJsonDirectoryOrFilePath, "deport"))) {
var _iterator5 = _createForOfIteratorHelper((0, _file_systems.walkDir)(originalJsonDirectoryOrFilePath, ["deport"])),
_step5;
try {
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
var deportSplitPath = _step5.value;
var deportFilename = deportSplitPath[deportSplitPath.length - 1];
if (!deportFilename.endsWith(".json")) {
continue;
}
var deportOriginalFilePath = _path["default"].join.apply(_path["default"], [originalJsonDirectoryOrFilePath].concat(_toConsumableArray(deportSplitPath)));
if (options.verbose) {
console.log(" Loading \"deport\" file: ".concat(deportOriginalFilePath, "\u2026"));
}
var deportOriginalJson = _fsExtra["default"].readFileSync(deportOriginalFilePath, {
encoding: "utf8"
});
var deportOriginal = validateRawData ? _acteurs_et_organes.Convert.toDeport(deportOriginalJson) : JSON.parse(deportOriginalJson);
var deport = deportOriginal.deport;
var _deports = deportsByActeurUid[deport.acteurRef];
if (_deports === undefined) {
_deports = deportsByActeurUid[deport.acteurRef] = [];
}
_deports.push(deport);
}
} catch (err) {
_iterator5.e(err);
} finally {
_iterator5.f();
}
for (var _i = 0, _Object$values = Object.values(deportsByActeurUid); _i < _Object$values.length; _i++) {
var deports = _Object$values[_i];
deports.sort(function (a, b) {
return a.uid.length === b.uid.length ? a.uid.localeCompare(b.uid) : a.uid.length - b.uid.length;
});
}
}
var mandatsByActeurUid = {};
if (_fsExtra["default"].existsSync(_path["default"].join(originalJsonDirectoryOrFilePath, "mandat"))) {
var _iterator6 = _createForOfIteratorHelper((0, _file_systems.walkDir)(originalJsonDirectoryOrFilePath, ["mandat"])),
_step6;
try {
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
var mandatSplitPath = _step6.value;
var mandatFilename = mandatSplitPath[mandatSplitPath.length - 1];
if (!mandatFilename.endsWith(".json")) {
continue;
}
var mandatOriginalFilePath = _path["default"].join.apply(_path["default"], [originalJsonDirectoryOrFilePath].concat(_toConsumableArray(mandatSplitPath)));
if (options.verbose) {
console.log(" Loading \"mandat\" file: ".concat(mandatOriginalFilePath, "\u2026"));
}
var mandatOriginalJson = _fsExtra["default"].readFileSync(mandatOriginalFilePath, {
encoding: "utf8"
});
var mandatOriginal = validateRawData ? _acteurs_et_organes.Convert.toMandatWrapper(mandatOriginalJson) : JSON.parse(mandatOriginalJson);
var mandat = mandatOriginal.mandat;
var _mandats = mandatsByActeurUid[mandat.acteurRef];
if (_mandats === undefined) {
_mandats = mandatsByActeurUid[mandat.acteurRef] = [];
}
_mandats.push(mandat);
}
} catch (err) {
_iterator6.e(err);
} finally {
_iterator6.f();
}
for (var _i2 = 0, _Object$values2 = Object.values(mandatsByActeurUid); _i2 < _Object$values2.length; _i2++) {
var mandats = _Object$values2[_i2];
mandats.sort(function (a, b) {
return a.uid.length === b.uid.length ? a.uid.localeCompare(b.uid) : a.uid.length - b.uid.length;
});
}
}
var _iterator7 = _createForOfIteratorHelper((0, _file_systems.walkDir)(originalJsonDirectoryOrFilePath, ["acteur"])),
_step7;
try {
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
var acteurSplitPath = _step7.value;
var acteurFilename = acteurSplitPath[acteurSplitPath.length - 1];
if (!acteurFilename.endsWith(".json")) {
continue;
}
var acteurOriginalFilePath = _path["default"].join.apply(_path["default"], [originalJsonDirectoryOrFilePath].concat(_toConsumableArray(acteurSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"acteur\" file: ".concat(acteurOriginalFilePath, "\u2026"));
}
var acteurOriginalJson = _fsExtra["default"].readFileSync(acteurOriginalFilePath, {
encoding: "utf8"
});
var acteurOriginal = validateRawData ? _acteurs_et_organes.Convert.toActeur(acteurOriginalJson) : JSON.parse(acteurOriginalJson);
var _acteur = acteurOriginal.acteur;
var acteurUid = _acteur.uid["#text"];
var _deports2 = deportsByActeurUid[acteurUid];
if (_deports2 !== undefined) {
_assert["default"].strictEqual(_acteur.deports, undefined);
_acteur.deports = {
deport: _deports2
};
}
var _mandats2 = mandatsByActeurUid[acteurUid];
if (_mandats2 !== undefined) {
_assert["default"].strictEqual(_acteur.mandats, undefined);
_acteur.mandats = {
mandat: _mandats2
};
}
var acteurReorganizedJsonFilePath = _path["default"].join(acteursReorganizedDir, acteurUid + ".json");
_fsExtra["default"].writeFileSync(acteurReorganizedJsonFilePath, JSON.stringify(_acteur, null, 2), {
encoding: "utf8"
});
}
} catch (err) {
_iterator7.e(err);
} finally {
_iterator7.f();
}
var _iterator8 = _createForOfIteratorHelper((0, _file_systems.walkDir)(originalJsonDirectoryOrFilePath, ["organe"])),
_step8;
try {
for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
var organeSplitPath = _step8.value;
var organeFilename = organeSplitPath[organeSplitPath.length - 1];
if (!organeFilename.endsWith(".json")) {
continue;
}
var organeOriginalFilePath = _path["default"].join.apply(_path["default"], [originalJsonDirectoryOrFilePath].concat(_toConsumableArray(organeSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"organe\" file: ".concat(organeOriginalFilePath, "\u2026"));
}
var organeOriginalJson = _fsExtra["default"].readFileSync(organeOriginalFilePath, {
encoding: "utf8"
});
var organeOriginal = validateRawData ? _acteurs_et_organes.Convert.toOrgane(organeOriginalJson) : JSON.parse(organeOriginalJson);
var _organe = organeOriginal.organe;
var organeReorganizedJsonFilePath = _path["default"].join(organesReorganizedDir, _organe.uid + ".json");
_fsExtra["default"].writeFileSync(organeReorganizedJsonFilePath, JSON.stringify(_organe, null, 2), {
encoding: "utf8"
});
}
} catch (err) {
_iterator8.e(err);
} finally {
_iterator8.f();
}
}
break;
}
commitGit(datasetReorganizedDir, options);
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.Agendas) {
var _iterator9 = _createForOfIteratorHelper(chosenDatasets.agendas),
_step9;
try {
for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
var _dataset = _step9.value;
var _originalJsonDirectoryOrFilePath = _path["default"].join(dataDir, _dataset.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath));
}
var _datasetName = _path["default"].basename(_originalJsonDirectoryOrFilePath, ".json");
cloneGit(gitGroupUrl, _datasetName, dataDir);
var _datasetReorganizedDir = _path["default"].join(dataDir, _datasetName);
clearDirectory(_datasetReorganizedDir);
switch (_dataset.structure) {
case _datasets.DatasetStructure.SingleFile:
{
var _originalJson = _fsExtra["default"].readFileSync(_originalJsonDirectoryOrFilePath, {
encoding: "utf8"
});
var _originalData = validateRawData ? _agendas.Convert.toAgendas(_originalJson) : JSON.parse(_originalJson);
var _iterator10 = _createForOfIteratorHelper(_originalData.reunions.reunion),
_step10;
try {
for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {
var reunion = _step10.value;
writeReorganizedJson(_datasetReorganizedDir, reunion, _loaders.pathFromReunionUid);
}
} catch (err) {
_iterator10.e(err);
} finally {
_iterator10.f();
}
}
break;
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator11 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath, ["reunion"])),
_step11;
try {
for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {
var reunionSplitPath = _step11.value;
var reunionFilename = reunionSplitPath[reunionSplitPath.length - 1];
if (!reunionFilename.endsWith(".json")) {
continue;
}
var reunionOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath].concat(_toConsumableArray(reunionSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"reunion\" file: ".concat(reunionOriginalFilePath, "\u2026"));
}
var reunionOriginalJson = _fsExtra["default"].readFileSync(reunionOriginalFilePath, {
encoding: "utf8"
});
var reunionOriginal = validateRawData ? _agendas.Convert.toReunion(reunionOriginalJson) : JSON.parse(reunionOriginalJson);
var _reunion = reunionOriginal.reunion;
writeReorganizedJson(_datasetReorganizedDir, _reunion, _loaders.pathFromReunionUid);
}
} catch (err) {
_iterator11.e(err);
} finally {
_iterator11.f();
}
}
break;
}
commitGit(_datasetReorganizedDir, options);
}
} catch (err) {
_iterator9.e(err);
} finally {
_iterator9.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.Amendements) {
var _iterator12 = _createForOfIteratorHelper(chosenDatasets.amendements),
_step12;
try {
for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {
var _dataset2 = _step12.value;
var _originalJsonDirectoryOrFilePath2 = _path["default"].join(dataDir, _dataset2.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath2));
}
var _datasetName2 = _path["default"].basename(_originalJsonDirectoryOrFilePath2, ".json");
cloneGit(gitGroupUrl, _datasetName2, dataDir);
var _datasetReorganizedDir2 = _path["default"].join(dataDir, _datasetName2);
clearDirectory(_datasetReorganizedDir2);
switch (_dataset2.structure) {
case _datasets.DatasetStructure.SingleFile:
{
var _originalJson2 = _fsExtra["default"].readFileSync(_originalJsonDirectoryOrFilePath2, {
encoding: "utf8"
});
var _originalData2 = validateRawData ? _amendements.Convert.toAmendements(_originalJson2) : JSON.parse(_originalJson2);
var _iterator13 = _createForOfIteratorHelper(_originalData2.textesEtAmendements.texteleg),
_step13;
try {
for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {
var texteLegislatif = _step13.value;
var _iterator14 = _createForOfIteratorHelper(texteLegislatif.amendements),
_step14;
try {
for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {
var amendement = _step14.value;
writeAmendementReorganizedJson(_datasetReorganizedDir2, amendement);
}
} catch (err) {
_iterator14.e(err);
} finally {
_iterator14.f();
}
}
} catch (err) {
_iterator13.e(err);
} finally {
_iterator13.f();
}
}
break;
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator15 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath2)),
_step15;
try {
for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
var amendementSplitPath = _step15.value;
var amendementFilename = amendementSplitPath[amendementSplitPath.length - 1];
if (!amendementFilename.endsWith(".json")) {
continue;
}
var amendementOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath2].concat(_toConsumableArray(amendementSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"amendement\" file: ".concat(amendementOriginalFilePath, "\u2026"));
}
var amendementOriginalJson = _fsExtra["default"].readFileSync(amendementOriginalFilePath, {
encoding: "utf8"
});
var amendementOriginal = validateRawData ? _amendements.Convert.toAmendementWrapper(amendementOriginalJson) : JSON.parse(amendementOriginalJson);
var _amendement = amendementOriginal.amendement;
writeAmendementReorganizedJson(_datasetReorganizedDir2, _amendement);
}
} catch (err) {
_iterator15.e(err);
} finally {
_iterator15.f();
}
}
break;
}
commitGit(_datasetReorganizedDir2, options);
}
} catch (err) {
_iterator12.e(err);
} finally {
_iterator12.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs) {
var _iterator16 = _createForOfIteratorHelper(chosenDatasets.dossiersLegislatifs),
_step16;
try {
for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
var _dataset3 = _step16.value;
var _originalJsonDirectoryOrFilePath3 = _path["default"].join(dataDir, _dataset3.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath3));
}
var _datasetName3 = _path["default"].basename(_originalJsonDirectoryOrFilePath3, ".json");
cloneGit(gitGroupUrl, _datasetName3, dataDir);
var _datasetReorganizedDir3 = _path["default"].join(dataDir, _datasetName3);
clearDirectory(_datasetReorganizedDir3);
var documentsDir = _path["default"].join(_datasetReorganizedDir3, "documents");
_fsExtra["default"].mkdirSync(documentsDir);
var dossiersDir = _path["default"].join(_datasetReorganizedDir3, "dossiers");
_fsExtra["default"].mkdirSync(dossiersDir);
switch (_dataset3.structure) {
case _datasets.DatasetStructure.SingleFile:
{
var _originalJson3 = _fsExtra["default"].readFileSync(_originalJsonDirectoryOrFilePath3, {
encoding: "utf8"
});
var _originalData3 = validateRawData ? _dossiers_legislatifs.Convert.toDossiersLegislatifs(_originalJson3) : JSON.parse(_originalJson3);
var _iterator17 = _createForOfIteratorHelper(_originalData3["export"].textesLegislatifs.document),
_step17;
try {
for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
var document = _step17.value;
writeReorganizedJson(documentsDir, document, _loaders.pathFromDocumentUid);
}
} catch (err) {
_iterator17.e(err);
} finally {
_iterator17.f();
}
var _iterator18 = _createForOfIteratorHelper(_originalData3["export"].dossiersLegislatifs.dossier),
_step18;
try {
for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
var dossierParlementaire = _step18.value.dossierParlementaire;
writeReorganizedJson(dossiersDir, dossierParlementaire, _loaders.pathFromDossierParlementaireUid);
}
} catch (err) {
_iterator18.e(err);
} finally {
_iterator18.f();
}
}
break;
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator19 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath3, ["document"])),
_step19;
try {
for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
var documentSplitPath = _step19.value;
var documentFilename = documentSplitPath[documentSplitPath.length - 1];
if (!documentFilename.endsWith(".json")) {
continue;
}
var documentOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath3].concat(_toConsumableArray(documentSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"document\" file: ".concat(documentOriginalFilePath, "\u2026"));
}
var documentOriginalJson = _fsExtra["default"].readFileSync(documentOriginalFilePath, {
encoding: "utf8"
});
var documentOriginal = validateRawData ? _dossiers_legislatifs.Convert.toDocument(documentOriginalJson) : JSON.parse(documentOriginalJson);
var _document = documentOriginal.document;
writeReorganizedJson(documentsDir, _document, _loaders.pathFromDocumentUid);
}
} catch (err) {
_iterator19.e(err);
} finally {
_iterator19.f();
}
var _iterator20 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath3, ["dossierParlementaire"])),
_step20;
try {
for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
var dossierParlementaireSplitPath = _step20.value;
var dossierParlementaireFilename = dossierParlementaireSplitPath[dossierParlementaireSplitPath.length - 1];
if (!dossierParlementaireFilename.endsWith(".json")) {
continue;
}
var dossierParlementaireOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath3].concat(_toConsumableArray(dossierParlementaireSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"dossierParlementaire\" file: ".concat(dossierParlementaireOriginalFilePath, "\u2026"));
}
var dossierParlementaireOriginalJson = _fsExtra["default"].readFileSync(dossierParlementaireOriginalFilePath, {
encoding: "utf8"
});
var dossierParlementaireOriginal = validateRawData ? _dossiers_legislatifs.Convert.toDossierParlementaire(dossierParlementaireOriginalJson) : JSON.parse(dossierParlementaireOriginalJson);
var _dossierParlementaire = dossierParlementaireOriginal.dossierParlementaire;
writeReorganizedJson(dossiersDir, _dossierParlementaire, _loaders.pathFromDossierParlementaireUid);
}
} catch (err) {
_iterator20.e(err);
} finally {
_iterator20.f();
}
}
break;
}
commitGit(_datasetReorganizedDir3, options);
}
} catch (err) {
_iterator16.e(err);
} finally {
_iterator16.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.Scrutins) {
var _iterator21 = _createForOfIteratorHelper(chosenDatasets.scrutins),
_step21;
try {
for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
var _dataset4 = _step21.value;
var _originalJsonDirectoryOrFilePath4 = _path["default"].join(dataDir, _dataset4.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath4));
}
var _datasetName4 = _path["default"].basename(_originalJsonDirectoryOrFilePath4, ".json");
cloneGit(gitGroupUrl, _datasetName4, dataDir);
var _datasetReorganizedDir4 = _path["default"].join(dataDir, _datasetName4);
clearDirectory(_datasetReorganizedDir4);
switch (_dataset4.structure) {
case _datasets.DatasetStructure.SingleFile:
{
var _originalJson4 = _fsExtra["default"].readFileSync(_originalJsonDirectoryOrFilePath4, {
encoding: "utf8"
});
var _originalData4 = validateRawData ? _scrutins.Convert.toScrutins(_originalJson4) : JSON.parse(_originalJson4);
var _iterator22 = _createForOfIteratorHelper(_originalData4.scrutins.scrutin),
_step22;
try {
for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
var scrutin = _step22.value;
writeReorganizedJson(_datasetReorganizedDir4, scrutin, _loaders.pathFromScrutinUid);
}
} catch (err) {
_iterator22.e(err);
} finally {
_iterator22.f();
}
}
break;
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator23 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath4)),
_step23;
try {
for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
var scrutinSplitPath = _step23.value;
var scrutinFilename = scrutinSplitPath[scrutinSplitPath.length - 1];
if (!scrutinFilename.endsWith(".json")) {
continue;
}
var scrutinOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath4].concat(_toConsumableArray(scrutinSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"scrutin\" file: ".concat(scrutinOriginalFilePath, "\u2026"));
}
var scrutinOriginalJson = _fsExtra["default"].readFileSync(scrutinOriginalFilePath, {
encoding: "utf8"
});
var scrutinOriginal = validateRawData ? _scrutins.Convert.toScrutinWrapper(scrutinOriginalJson) : JSON.parse(scrutinOriginalJson);
var _scrutin = scrutinOriginal.scrutin;
writeReorganizedJson(_datasetReorganizedDir4, _scrutin, _loaders.pathFromScrutinUid);
}
} catch (err) {
_iterator23.e(err);
} finally {
_iterator23.f();
}
}
break;
}
commitGit(_datasetReorganizedDir4, options);
}
} catch (err) {
_iterator21.e(err);
} finally {
_iterator21.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.Questions) {
var _iterator24 = _createForOfIteratorHelper(_datasets.datasets.questions),
_step24;
try {
for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
var _dataset5 = _step24.value;
var _originalJsonDirectoryOrFilePath5 = _path["default"].join(dataDir, _dataset5.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath5));
}
var _datasetName5 = _path["default"].basename(_originalJsonDirectoryOrFilePath5, ".json");
cloneGit(gitGroupUrl, _datasetName5, dataDir);
var _datasetReorganizedDir5 = _path["default"].join(dataDir, _datasetName5);
clearDirectory(_datasetReorganizedDir5);
switch (_dataset5.structure) {
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator25 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath5)),
_step25;
try {
for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {
var questionSplitPath = _step25.value;
var questionFilename = questionSplitPath[questionSplitPath.length - 1];
if (!questionFilename.endsWith(".json")) {
continue;
}
var questionOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath5].concat(_toConsumableArray(questionSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"question\" file: ".concat(questionOriginalFilePath, "\u2026"));
}
var questionOriginalJson = _fsExtra["default"].readFileSync(questionOriginalFilePath, {
encoding: "utf8"
});
var questionOriginal = validateRawData ? _questions.Convert.toQuestionWrapper(questionOriginalJson) : JSON.parse(questionOriginalJson);
var question = questionOriginal.question;
writeReorganizedJson(_datasetReorganizedDir5, question, _loaders.pathFromQuestionUid);
}
} catch (err) {
_iterator25.e(err);
} finally {
_iterator25.f();
}
}
break;
}
commitGit(_datasetReorganizedDir5, options);
}
} catch (err) {
_iterator24.e(err);
} finally {
_iterator24.f();
}
}
if (enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances) {
var _iterator26 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances),
_step26;
try {
for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) {
var _dataset6 = _step26.value;
var _originalJsonDirectoryOrFilePath6 = _path["default"].join(dataDir, _dataset6.filename);
if (!options.silent) {
console.log("Reorganizing ".concat(_originalJsonDirectoryOrFilePath6));
}
var _datasetName6 = _path["default"].basename(_originalJsonDirectoryOrFilePath6, ".xml");
cloneGit(gitGroupUrl, _datasetName6, dataDir);
var _datasetReorganizedDir6 = _path["default"].join(dataDir, _datasetName6);
clearDirectory(_datasetReorganizedDir6);
switch (_dataset6.structure) {
case _datasets.DatasetStructure.SegmentedFiles:
{
var _iterator27 = _createForOfIteratorHelper((0, _file_systems.walkDir)(_originalJsonDirectoryOrFilePath6)),
_step27;
try {
for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) {
var compteRenduSeanceSplitPath = _step27.value;
var compteRenduSeanceFilename = compteRenduSeanceSplitPath[compteRenduSeanceSplitPath.length - 1];
if (!compteRenduSeanceFilename.endsWith(".json")) {
continue;
}
var compteRenduSeanceOriginalFilePath = _path["default"].join.apply(_path["default"], [_originalJsonDirectoryOrFilePath6].concat(_toConsumableArray(compteRenduSeanceSplitPath)));
if (options.verbose) {
console.log(" Reorganizing \"compteRenduSeance\" file: ".concat(compteRenduSeanceOriginalFilePath, "\u2026"));
}
var compteRenduSeanceOriginalJson = _fsExtra["default"].readFileSync(compteRenduSeanceOriginalFilePath, {
encoding: "utf8"
});
var compteRenduSeanceOriginal = validateRawData ? _debats.Convert.toCompteRenduWrapper(compteRenduSeanceOriginalJson) : JSON.parse(compteRenduSeanceOriginalJson);
var compteRenduSeance = compteRenduSeanceOriginal.compteRendu;
writeReorganizedJson(_datasetReorganizedDir6, compteRenduSeance, _loaders.pathFromCompteRenduUid);
}
} catch (err) {
_iterator27.e(err);
} finally {
_iterator27.f();
}
}
break;
}
commitGit(_datasetReorganizedDir6, options);
}
} catch (err) {
_iterator26.e(err);
} finally {
_iterator26.f();
}
}
// Restore standard conversion of dates to JSON.
Date.prototype.toJSON = _dates.existingDateToJson;
return exitCode;
}
function writeAmendementReorganizedJson(datasetReorganizedDir, amendement) {
var uidTexteLegislatif = amendement.texteLegislatifRef;
_assert["default"].notStrictEqual(uidTexteLegislatif, undefined);
var texteLegislatifDir = _path["default"].join(datasetReorganizedDir, uidTexteLegislatif);
_fsExtra["default"].ensureDirSync(texteLegislatifDir);
var reorganizedJsonFilePath = _path["default"].join(texteLegislatifDir, amendement.uid + ".json");
_fsExtra["default"].writeFileSync(reorganizedJsonFilePath, JSON.stringify(amendement, null, 2), {
encoding: "utf8"
});
}
function writeReorganizedJson(dir, obj, pathFromUid) {
var basename = pathFromUid(dir, obj.uid);
_fsExtra["default"].writeFileSync("".concat(basename, ".json"), JSON.stringify(obj, null, 2), {
encoding: "utf8"
});
}
function main(argv) {
var options = parseArgs(argv);
return reorganizeData(options);
}
/* istanbul ignore if */
if (process.argv[1].endsWith("reorganize_data.ts")) process.exit(main(process.argv));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kYXRhc2V0cyIsIl9kYXRlcyIsImdpdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2ZpbGVfc3lzdGVtcyIsIl9sb2FkZXJzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9hZ2VuZGFzIiwiX2FtZW5kZW1lbnRzIiwiX2Rvc3NpZXJzX2xlZ2lzbGF0aWZzIiwiX3NjcnV0aW5zIiwiX3F1ZXN0aW9ucyIsIl9kZWJhdHMiLCJfY2xpX2hlbHBlcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJkb25lIiwidmFsdWUiLCJmIiwibyIsIm5leHQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsInBhcnNlQXJncyIsImFyZ3YiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJjbG9uZU9wdGlvbiIsImNvbW1pdE9wdGlvbiIsImNhdGVnb3JpZXNPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsInJlbW90ZU9wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsImZldGNoRG9jdW1lbnRzT3B0aW9uIiwicGFyc2VEb2N1bWVudHNPcHRpb24iLCJkb2N1bWVudEZvcm1hdE9wdGlvbiIsInB1bGxPcHRpb24iLCJhbGlhcyIsImhlbHAiLCJ0eXBlIiwiQm9vbGVhbiIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJjbGVhckRpcmVjdG9yeSIsImRpclBhdGgiLCJmcyIsImVuc3VyZURpclN5bmMiLCJfaXRlcmF0b3IiLCJyZWFkZGlyU3luYyIsIl9zdGVwIiwiZmlsZW5hbWUiLCJzdGFydHNXaXRoIiwicmVtb3ZlU3luYyIsInBhdGgiLCJqb2luIiwiZXJyIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwicmVvcmdhbml6ZURhdGEiLCJfb3B0aW9ucyRjbG9uZSIsIkRhdGUiLCJwcm90b3R5cGUiLCJ0b0pTT04iLCJwYXRjaGVkRGF0ZVRvSnNvbiIsImV4aXRDb2RlIiwiY29tbWl0IiwidHJpbSIsInJlcGxhY2UiLCJ2YWxpZGF0ZVJhd0RhdGEiLCJlbmFibGVkRGF0YXNldHMiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiY2hvc2VuRGF0YXNldHMiLCJmaWx0ZXJCeUxlZ2lzbGF0dXJlIiwiZGF0YXNldHMiLCJsZWdpc2xhdHVyZSIsImNvbW1pdEdpdCIsImRhdGFzZXRSZW9yZ2FuaXplZERpciIsImVycm9yQ29kZSIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiX2l0ZXJhdG9yMiIsImFjdGV1cnNFdE9yZ2FuZXMiLCJfc3RlcDIiLCJkYXRhc2V0Iiwib3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJiYXNlbmFtZSIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJhY3RldXJzUmVvcmdhbml6ZWREaXIiLCJta2RpclN5bmMiLCJvcmdhbmVzUmVvcmdhbml6ZWREaXIiLCJzdHJ1Y3R1cmUiLCJEYXRhc2V0U3RydWN0dXJlIiwiU2luZ2xlRmlsZSIsIm9yaWdpbmFsSnNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwib3JpZ2luYWxEYXRhIiwiQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQiLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJKU09OIiwicGFyc2UiLCJfaXRlcmF0b3IzIiwiYWN0ZXVycyIsImFjdGV1ciIsIl9zdGVwMyIsInJlb3JnYW5pemVkSnNvbkZpbGVQYXRoIiwidWlkIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsIl9pdGVyYXRvcjQiLCJvcmdhbmVzIiwib3JnYW5lIiwiX3N0ZXA0IiwiU2VnbWVudGVkRmlsZXMiLCJkZXBvcnRzQnlBY3RldXJVaWQiLCJleGlzdHNTeW5jIiwiX2l0ZXJhdG9yNSIsIndhbGtEaXIiLCJfc3RlcDUiLCJkZXBvcnRTcGxpdFBhdGgiLCJkZXBvcnRGaWxlbmFtZSIsImVuZHNXaXRoIiwiZGVwb3J0T3JpZ2luYWxGaWxlUGF0aCIsImFwcGx5IiwidmVyYm9zZSIsImRlcG9ydE9yaWdpbmFsSnNvbiIsImRlcG9ydE9yaWdpbmFsIiwidG9EZXBvcnQiLCJkZXBvcnQiLCJkZXBvcnRzIiwiYWN0ZXVyUmVmIiwidW5kZWZpbmVkIiwicHVzaCIsIl9pIiwiX09iamVjdCR2YWx1ZXMiLCJ2YWx1ZXMiLCJzb3J0IiwiYiIsImxvY2FsZUNvbXBhcmUiLCJtYW5kYXRzQnlBY3RldXJVaWQiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2IiwibWFuZGF0U3BsaXRQYXRoIiwibWFuZGF0RmlsZW5hbWUiLCJtYW5kYXRPcmlnaW5hbEZpbGVQYXRoIiwibWFuZGF0T3JpZ2luYWxKc29uIiwibWFuZGF0T3JpZ2luYWwiLCJ0b01hbmRhdFdyYXBwZXIiLCJtYW5kYXQiLCJtYW5kYXRzIiwiX2kyIiwiX09iamVjdCR2YWx1ZXMyIiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsImFjdGV1clNwbGl0UGF0aCIsImFjdGV1ckZpbGVuYW1lIiwiYWN0ZXVyT3JpZ2luYWxGaWxlUGF0aCIsImFjdGV1ck9yaWdpbmFsSnNvbiIsImFjdGV1ck9yaWdpbmFsIiwidG9BY3RldXIiLCJhY3RldXJVaWQiLCJhc3NlcnQiLCJzdHJpY3RFcXVhbCIsImFjdGV1clJlb3JnYW5pemVkSnNvbkZpbGVQYXRoIiwiX2l0ZXJhdG9yOCIsIl9zdGVwOCIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lT3JpZ2luYWxGaWxlUGF0aCIsIm9yZ2FuZU9yaWdpbmFsSnNvbiIsIm9yZ2FuZU9yaWdpbmFsIiwidG9PcmdhbmUiLCJvcmdhbmVSZW9yZ2FuaXplZEpzb25GaWxlUGF0aCIsIkFnZW5kYXMiLCJfaXRlcmF0b3I5IiwiYWdlbmRhcyIsIl9zdGVwOSIsIkFnZW5kYXNSYXdDb252ZXJ0IiwidG9BZ2VuZGFzIiwiX2l0ZXJhdG9yMTAiLCJyZXVuaW9ucyIsInJldW5pb24iLCJfc3RlcDEwIiwid3JpdGVSZW9yZ2FuaXplZEpzb24iLCJwYXRoRnJvbVJldW5pb25VaWQiLCJfaXRlcmF0b3IxMSIsIl9zdGVwMTEiLCJyZXVuaW9uU3BsaXRQYXRoIiwicmV1bmlvbkZpbGVuYW1lIiwicmV1bmlvbk9yaWdpbmFsRmlsZVBhdGgiLCJyZXVuaW9uT3JpZ2luYWxKc29uIiwicmV1bmlvbk9yaWdpbmFsIiwidG9SZXVuaW9uIiwiQW1lbmRlbWVudHMiLCJfaXRlcmF0b3IxMiIsImFtZW5kZW1lbnRzIiwiX3N0ZXAxMiIsIkFtZW5kZW1lbnRzUmF3Q29udmVydCIsInRvQW1lbmRlbWVudHMiLCJfaXRlcmF0b3IxMyIsInRleHRlc0V0QW1lbmRlbWVudHMiLCJ0ZXh0ZWxlZyIsIl9zdGVwMTMiLCJ0ZXh0ZUxlZ2lzbGF0aWYiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJhbWVuZGVtZW50Iiwid3JpdGVBbWVuZGVtZW50UmVvcmdhbml6ZWRKc29uIiwiX2l0ZXJhdG9yMTUiLCJfc3RlcDE1IiwiYW1lbmRlbWVudFNwbGl0UGF0aCIsImFtZW5kZW1lbnRGaWxlbmFtZSIsImFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoIiwiYW1lbmRlbWVudE9yaWdpbmFsSnNvbiIsImFtZW5kZW1lbnRPcmlnaW5hbCIsInRvQW1lbmRlbWVudFdyYXBwZXIiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yMTYiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX3N0ZXAxNiIsImRvY3VtZW50c0RpciIsImRvc3NpZXJzRGlyIiwiRG9zc2llcnNMZWdpc2xhdGlmc1Jhd0NvbnZlcnQiLCJ0b0Rvc3NpZXJzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3IxNyIsInRleHRlc0xlZ2lzbGF0aWZzIiwiZG9jdW1lbnQiLCJfc3RlcDE3IiwicGF0aEZyb21Eb2N1bWVudFVpZCIsIl9pdGVyYXRvcjE4IiwiZG9zc2llciIsIl9zdGVwMTgiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsInBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQiLCJfaXRlcmF0b3IxOSIsIl9zdGVwMTkiLCJkb2N1bWVudFNwbGl0UGF0aCIsImRvY3VtZW50RmlsZW5hbWUiLCJkb2N1bWVudE9yaWdpbmFsRmlsZVBhdGgiLCJkb2N1bWVudE9yaWdpbmFsSnNvbiIsImRvY3VtZW50T3JpZ2luYWwiLCJ0b0RvY3VtZW50IiwiX2l0ZXJhdG9yMjAiLCJfc3RlcDIwIiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEZpbGVQYXRoIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEpzb24iLCJkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsIiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIlNjcnV0aW5zIiwiX2l0ZXJhdG9yMjEiLCJzY3J1dGlucyIsIl9zdGVwMjEiLCJTY3J1dGluc1Jhd0NvbnZlcnQiLCJ0b1NjcnV0aW5zIiwiX2l0ZXJhdG9yMjIiLCJzY3J1dGluIiwiX3N0ZXAyMiIsInBhdGhGcm9tU2NydXRpblVpZCIsIl9pdGVyYXRvcjIzIiwiX3N0ZXAyMyIsInNjcnV0aW5TcGxpdFBhdGgiLCJzY3J1dGluRmlsZW5hbWUiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJzY3J1dGluT3JpZ2luYWwiLCJ0b1NjcnV0aW5XcmFwcGVyIiwiUXVlc3Rpb25zIiwiX2l0ZXJhdG9yMjQiLCJxdWVzdGlvbnMiLCJfc3RlcDI0IiwiX2l0ZXJhdG9yMjUiLCJfc3RlcDI1IiwicXVlc3Rpb25TcGxpdFBhdGgiLCJxdWVzdGlvbkZpbGVuYW1lIiwicXVlc3Rpb25PcmlnaW5hbEZpbGVQYXRoIiwicXVlc3Rpb25PcmlnaW5hbEpzb24iLCJxdWVzdGlvbk9yaWdpbmFsIiwiUXVlc3Rpb25zUmF3Q29udmVydCIsInRvUXVlc3Rpb25XcmFwcGVyIiwicXVlc3Rpb24iLCJwYXRoRnJvbVF1ZXN0aW9uVWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IyNiIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiX3N0ZXAyNiIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsImNvbXB0ZVJlbmR1U2VhbmNlU3BsaXRQYXRoIiwiY29tcHRlUmVuZHVTZWFuY2VGaWxlbmFtZSIsImNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWxGaWxlUGF0aCIsImNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWx