@tricoteuses/assemblee 1.9.13 → 1.10.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 +0 -5
- package/lib/api.js +1 -1
- package/lib/api.mjs +1 -1
- package/lib/bugs/acteur-00010/plugin.test.js +5 -5
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +17 -18
- package/lib/bugs/acteur-00010.mjs +1 -1
- package/lib/bugs/agenda-00002/plugin.test.js +6 -6
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00002.js +31 -32
- package/lib/bugs/agenda-00002.mjs +3 -3
- package/lib/bugs/agenda-00008/plugin.test.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +17 -18
- package/lib/bugs/agenda-00008.mjs +1 -1
- package/lib/bugs/agenda-00011/plugin.test.js +10 -10
- package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00011.js +28 -29
- package/lib/bugs/agenda-00011.mjs +3 -3
- package/lib/bugs.js +27 -29
- package/lib/bugs.mjs +3 -3
- package/lib/cleaners/actes_legislatifs.js +5 -5
- package/lib/cleaners/actes_legislatifs.mjs +1 -1
- package/lib/cleaners/acteurs.js +5 -5
- package/lib/cleaners/acteurs.mjs +1 -1
- package/lib/cleaners/amendements.js +5 -5
- package/lib/cleaners/amendements.mjs +1 -1
- package/lib/cleaners/debats.js +1 -1
- package/lib/cleaners/debats.mjs +1 -1
- package/lib/cleaners/documents.js +5 -5
- package/lib/cleaners/documents.mjs +1 -1
- package/lib/cleaners/dossiers_legislatifs.js +5 -5
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
- package/lib/cleaners/index.d.ts +0 -1
- package/lib/cleaners/index.js +1 -8
- package/lib/cleaners/index.mjs +1 -2
- package/lib/cleaners/organes.js +2 -2
- package/lib/cleaners/organes.mjs +1 -1
- package/lib/cleaners/questions.js +1 -1
- package/lib/cleaners/questions.mjs +1 -1
- package/lib/cleaners/reunions.js +5 -5
- package/lib/cleaners/reunions.mjs +1 -1
- package/lib/cleaners/scrutins.js +8 -8
- package/lib/cleaners/scrutins.mjs +1 -1
- package/lib/cleaners/xml.js +8 -8
- package/lib/cleaners/xml.mjs +1 -1
- package/lib/datasets.d.ts +1 -13
- package/lib/datasets.js +10 -29
- package/lib/datasets.mjs +2 -21
- package/lib/dates.js +3 -4
- package/lib/dates.mjs +1 -1
- package/lib/dossiers_legislatifs.js +8 -8
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +15 -14
- package/lib/file_systems.mjs +3 -3
- package/lib/git.js +5 -5
- package/lib/git.mjs +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +8 -1
- package/lib/index.mjs +2 -1
- package/lib/inserters.js +4 -4
- package/lib/inserters.mjs +1 -1
- package/lib/loaders.d.ts +0 -5
- package/lib/loaders.js +255 -299
- package/lib/loaders.mjs +1 -13
- package/lib/logger.js +1 -1
- package/lib/logger.mjs +1 -1
- package/lib/organes.js +1 -1
- package/lib/organes.mjs +1 -1
- package/lib/parsers/documents.js +11 -11
- package/lib/parsers/documents.mjs +1 -1
- package/lib/parsers/index.d.ts +1 -0
- package/lib/parsers/index.js +8 -1
- package/lib/parsers/index.mjs +2 -1
- package/lib/parsers/recherche_amendements.js +17 -15
- package/lib/parsers/recherche_amendements.mjs +1 -1
- package/lib/parsers/textes_lois.d.ts +22 -15
- package/lib/parsers/textes_lois.js +264 -752
- package/lib/parsers/textes_lois.mjs +249 -597
- package/lib/raw_types/acteurs_et_organes.js +9 -9
- package/lib/raw_types/acteurs_et_organes.mjs +1 -1
- package/lib/raw_types/agendas.d.ts +1 -0
- package/lib/raw_types/agendas.js +11 -10
- package/lib/raw_types/agendas.mjs +3 -2
- package/lib/raw_types/amendements.js +9 -9
- package/lib/raw_types/amendements.mjs +1 -1
- package/lib/raw_types/debats.js +9 -9
- package/lib/raw_types/debats.mjs +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +9 -9
- package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
- package/lib/raw_types/questions.js +9 -9
- package/lib/raw_types/questions.mjs +1 -1
- package/lib/raw_types/scrutins.js +9 -9
- package/lib/raw_types/scrutins.mjs +1 -1
- package/lib/scripts/bugs_helper.js +25 -26
- package/lib/scripts/bugs_helper.mjs +3 -3
- package/lib/scripts/clean_reorganized_data.js +256 -245
- package/lib/scripts/clean_reorganized_data.mjs +18 -29
- package/lib/scripts/diff_amendements.js +9 -8
- package/lib/scripts/diff_amendements.mjs +1 -1
- package/lib/scripts/document_dossiers_legislatifs.js +24 -27
- package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
- package/lib/scripts/get_today_reunions.js +3 -2
- package/lib/scripts/get_today_reunions.mjs +1 -1
- package/lib/scripts/merge_scrutins.js +9 -8
- package/lib/scripts/merge_scrutins.mjs +1 -1
- package/lib/scripts/parse_textes_lois.js +6 -5
- package/lib/scripts/parse_textes_lois.mjs +1 -1
- package/lib/scripts/process_open_dataset.d.ts +0 -2
- package/lib/scripts/process_open_dataset.js +19 -19
- package/lib/scripts/process_open_dataset.mjs +3 -5
- package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
- package/lib/scripts/raw_types_from_amendements.js +122 -198
- package/lib/scripts/raw_types_from_amendements.mjs +105 -60
- package/lib/scripts/reorganize_data.js +14 -15
- package/lib/scripts/reorganize_data.mjs +3 -3
- package/lib/scripts/retrieve_deputes_photos.js +40 -31
- package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
- package/lib/scripts/retrieve_documents.d.ts +1 -1
- package/lib/scripts/retrieve_documents.js +230 -138
- package/lib/scripts/retrieve_documents.mjs +87 -38
- package/lib/scripts/retrieve_open_data.js +27 -30
- package/lib/scripts/retrieve_open_data.mjs +5 -8
- package/lib/scripts/retrieve_pending_amendments.js +14 -14
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
- package/lib/scripts/retrieve_senateurs_photos.js +10 -10
- package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
- package/lib/scripts/retrieve_textes_lois.js +17 -15
- package/lib/scripts/retrieve_textes_lois.mjs +1 -1
- package/lib/scripts/shared/cli_helpers.d.ts +11 -0
- package/lib/scripts/shared/cli_helpers.js +13 -2
- package/lib/scripts/shared/cli_helpers.mjs +12 -1
- package/lib/scripts/test_iter_load.js +5 -19
- package/lib/scripts/test_iter_load.mjs +2 -9
- package/lib/scripts/test_load.js +2 -2
- package/lib/scripts/test_load.mjs +1 -1
- package/lib/scripts/test_load_big_files.js +2 -2
- package/lib/scripts/test_load_big_files.mjs +1 -1
- package/lib/scripts/validate_json.js +17 -18
- package/lib/scripts/validate_json.mjs +3 -3
- package/lib/shared_types/codes_actes.js +1 -1
- package/lib/shared_types/codes_actes.mjs +1 -1
- package/lib/strings.js +1 -1
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +9 -9
- package/lib/types/acteurs_et_organes.mjs +1 -1
- package/lib/types/agendas.d.ts +1 -0
- package/lib/types/agendas.js +11 -10
- package/lib/types/agendas.mjs +3 -2
- package/lib/types/amendements.js +9 -9
- package/lib/types/amendements.mjs +1 -1
- package/lib/types/debats.js +9 -9
- package/lib/types/debats.mjs +1 -1
- package/lib/types/dossiers_legislatifs.d.ts +13 -0
- package/lib/types/dossiers_legislatifs.js +47 -9
- package/lib/types/dossiers_legislatifs.mjs +39 -1
- package/lib/types/legislatures.js +1 -1
- package/lib/types/legislatures.mjs +1 -1
- package/lib/types/questions.js +9 -9
- package/lib/types/questions.mjs +1 -1
- package/lib/types/scrutins.js +9 -9
- package/lib/types/scrutins.mjs +1 -1
- package/lib/urls.js +2 -2
- package/lib/urls.mjs +1 -1
- package/package.json +14 -20
- package/lib/cleaners/textes_loi.d.ts +0 -1
- package/lib/cleaners/textes_loi.js +0 -12
- package/lib/cleaners/textes_loi.mjs +0 -5
- package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
- package/lib/examples/PIONANR5L15B0020/input.js +0 -10
- package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
- package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
- package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
- package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
- package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
- package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
- package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
- package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
- package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
- package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
- package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
- package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
- package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
- package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
- package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
- package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
- package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
- package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
- package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
- package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
- package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
- package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
- package/lib/examples/README.md +0 -3
- package/lib/raw_types/textes_loi.d.ts +0 -93
- package/lib/raw_types/textes_loi.js +0 -429
- package/lib/raw_types/textes_loi.mjs +0 -378
- package/lib/schemas/texte_loi/Alinea.json +0 -36
- package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
- package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
- package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
- package/lib/schemas/texte_loi/Sommaire.json +0 -48
- package/lib/schemas/texte_loi/TexteLoi.json +0 -225
- package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
- package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
- package/lib/scripts/process_textes_loi_dataset.js +0 -373
- package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
- package/lib/types/textes_loi.d.ts +0 -94
- package/lib/types/textes_loi.js +0 -429
- package/lib/types/textes_loi.mjs +0 -378
|
@@ -36,12 +36,12 @@ require("core-js/modules/es.regexp.exec.js");
|
|
|
36
36
|
require("core-js/modules/es.string.ends-with.js");
|
|
37
37
|
require("core-js/modules/es.string.replace.js");
|
|
38
38
|
require("core-js/modules/es.string.trim.js");
|
|
39
|
-
require("core-js/modules/web.url.to-json.js");
|
|
40
39
|
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
|
|
41
40
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
42
41
|
var _path = _interopRequireDefault(require("path"));
|
|
43
42
|
var _cleaners = require("../cleaners");
|
|
44
43
|
var _datasets = require("../datasets");
|
|
44
|
+
var _retrieve_documents = require("./retrieve_documents");
|
|
45
45
|
var _dates = require("../dates");
|
|
46
46
|
var _file_systems = require("../file_systems");
|
|
47
47
|
var git = _interopRequireWildcard(require("../git"));
|
|
@@ -54,20 +54,20 @@ var _questions = require("../types/questions");
|
|
|
54
54
|
var _debats = require("../types/debats");
|
|
55
55
|
var _cli_helpers = require("./shared/cli_helpers");
|
|
56
56
|
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); }
|
|
57
|
-
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 &&
|
|
58
|
-
function _interopRequireDefault(
|
|
59
|
-
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw
|
|
60
|
-
function
|
|
61
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
62
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
57
|
+
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; }
|
|
58
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
59
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
60
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
63
61
|
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."); }
|
|
64
|
-
function _iterableToArray(
|
|
65
|
-
function _arrayWithoutHoles(
|
|
66
|
-
function _createForOfIteratorHelper(
|
|
67
|
-
function _unsupportedIterableToArray(
|
|
68
|
-
function _arrayLikeToArray(
|
|
62
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
63
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
64
|
+
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; } } }; }
|
|
65
|
+
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; } }
|
|
66
|
+
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; }
|
|
67
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
68
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
69
69
|
function parseArgs(argv) {
|
|
70
|
-
var optionsDefinitions = [_cli_helpers.cloneOption, _cli_helpers.commitOption, _cli_helpers.remoteOption, _cli_helpers.legislatureOption, _cli_helpers.categoriesOption, _cli_helpers.silentOption, _cli_helpers.verboseOption, _cli_helpers.dataDirDefaultOption, _cli_helpers.pullOption, _cli_helpers.fetchDocumentsOption, {
|
|
70
|
+
var optionsDefinitions = [_cli_helpers.cloneOption, _cli_helpers.commitOption, _cli_helpers.remoteOption, _cli_helpers.legislatureOption, _cli_helpers.categoriesOption, _cli_helpers.silentOption, _cli_helpers.verboseOption, _cli_helpers.dataDirDefaultOption, _cli_helpers.pullOption, _cli_helpers.fetchDocumentsOption, _cli_helpers.parseDocumentsOption, _cli_helpers.documentFormatOption, {
|
|
71
71
|
alias: "d",
|
|
72
72
|
help: "single dataset to reorganize",
|
|
73
73
|
name: "dataset",
|
|
@@ -112,43 +112,81 @@ function cleanAndValidateData(data, cleaner, fromJson, toJson, noValidate) {
|
|
|
112
112
|
return toJson(validatedData);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
function processFiles(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
115
|
+
function processFiles(_x, _x2, _x3, _x4, _x5, _x6, _x7) {
|
|
116
|
+
return _processFiles.apply(this, arguments);
|
|
117
|
+
}
|
|
118
|
+
function _processFiles() {
|
|
119
|
+
_processFiles = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(datasetRawDir, datasetCleanDir, walkDirParams, cleaner, dataConverter, options, postProcessor) {
|
|
120
|
+
var _iterator3, _step3, filePathArray, filename, rawFilePath, rawJson, data, validateData, cleanJson, cleanFilePath;
|
|
121
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
122
|
+
while (1) switch (_context.prev = _context.next) {
|
|
123
|
+
case 0:
|
|
124
|
+
_iterator3 = _createForOfIteratorHelper((0, _file_systems.walkDir)(datasetRawDir, walkDirParams));
|
|
125
|
+
_context.prev = 1;
|
|
126
|
+
_iterator3.s();
|
|
127
|
+
case 3:
|
|
128
|
+
if ((_step3 = _iterator3.n()).done) {
|
|
129
|
+
_context.next = 22;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
filePathArray = _step3.value;
|
|
133
|
+
filename = filePathArray[filePathArray.length - 1];
|
|
134
|
+
if (filename.endsWith(".json")) {
|
|
135
|
+
_context.next = 8;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
return _context.abrupt("continue", 20);
|
|
139
|
+
case 8:
|
|
140
|
+
rawFilePath = _path["default"].join.apply(_path["default"], [datasetRawDir].concat(_toConsumableArray(filePathArray)));
|
|
141
|
+
rawJson = _fsExtra["default"].readFileSync(rawFilePath, {
|
|
142
|
+
encoding: "utf8"
|
|
143
|
+
});
|
|
144
|
+
if (options.verbose) console.log("Cleaning file: ".concat(rawFilePath, "..."));
|
|
145
|
+
data = JSON.parse(rawJson);
|
|
146
|
+
validateData = !options["no-validate"];
|
|
147
|
+
cleanJson = cleanAndValidateData(data, cleaner, dataConverter.fromJson, dataConverter.toJson, validateData);
|
|
148
|
+
cleanFilePath = _path["default"].join.apply(_path["default"], [datasetCleanDir].concat(_toConsumableArray(filePathArray)));
|
|
149
|
+
_fsExtra["default"].ensureDirSync(_path["default"].dirname(cleanFilePath));
|
|
150
|
+
_fsExtra["default"].writeFileSync(cleanFilePath, cleanJson, {
|
|
151
|
+
encoding: "utf8"
|
|
152
|
+
});
|
|
153
|
+
if (!postProcessor) {
|
|
154
|
+
_context.next = 20;
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
_context.next = 20;
|
|
158
|
+
return postProcessor(data, datasetCleanDir, options);
|
|
159
|
+
case 20:
|
|
160
|
+
_context.next = 3;
|
|
161
|
+
break;
|
|
162
|
+
case 22:
|
|
163
|
+
_context.next = 27;
|
|
164
|
+
break;
|
|
165
|
+
case 24:
|
|
166
|
+
_context.prev = 24;
|
|
167
|
+
_context.t0 = _context["catch"](1);
|
|
168
|
+
_iterator3.e(_context.t0);
|
|
169
|
+
case 27:
|
|
170
|
+
_context.prev = 27;
|
|
171
|
+
_iterator3.f();
|
|
172
|
+
return _context.finish(27);
|
|
173
|
+
case 30:
|
|
174
|
+
case "end":
|
|
175
|
+
return _context.stop();
|
|
176
|
+
}
|
|
177
|
+
}, _callee, null, [[1, 24, 27, 30]]);
|
|
178
|
+
}));
|
|
179
|
+
return _processFiles.apply(this, arguments);
|
|
142
180
|
}
|
|
143
|
-
function cleanReorganizedData(
|
|
181
|
+
function cleanReorganizedData(_x8) {
|
|
144
182
|
return _cleanReorganizedData.apply(this, arguments);
|
|
145
183
|
}
|
|
146
184
|
function _cleanReorganizedData() {
|
|
147
|
-
_cleanReorganizedData = _asyncToGenerator(
|
|
185
|
+
_cleanReorganizedData = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(options) {
|
|
148
186
|
var _options$clone;
|
|
149
|
-
var dataDir, exitCode, gitGroupUrl, enabledDatasets, chosenDatasets, _iterator4, _step4, dataset, datasetName, datasetRawDir, datasetCleanDir, _iterator5, _step5, _dataset, _datasetName, _datasetRawDir, _datasetCleanDir, _iterator6, _step6, _dataset2, _datasetName2, _datasetRawDir2, _datasetCleanDir2, _iterator7, _step7, _dataset3, _datasetName3, _datasetRawDir3, _datasetCleanDir3, _iterator8, _step8, _dataset4, _datasetName4, _datasetRawDir4, _datasetCleanDir4, _iterator9, _step9, _dataset5, _datasetName5, _datasetRawDir5, _datasetCleanDir5, _iterator10, _step10, _dataset6, _datasetName6, _datasetRawDir6, _datasetCleanDir6
|
|
150
|
-
return _regeneratorRuntime().wrap(function
|
|
151
|
-
while (1) switch (
|
|
187
|
+
var dataDir, exitCode, gitGroupUrl, enabledDatasets, chosenDatasets, _iterator4, _step4, dataset, datasetName, datasetRawDir, datasetCleanDir, _iterator5, _step5, _dataset, _datasetName, _datasetRawDir, _datasetCleanDir, _iterator6, _step6, _dataset2, _datasetName2, _datasetRawDir2, _datasetCleanDir2, _iterator7, _step7, _dataset3, _datasetName3, _datasetRawDir3, _datasetCleanDir3, _iterator8, _step8, _dataset4, _datasetName4, _datasetRawDir4, _datasetCleanDir4, _iterator9, _step9, _dataset5, _datasetName5, _datasetRawDir5, _datasetCleanDir5, _iterator10, _step10, _dataset6, _datasetName6, _datasetRawDir6, _datasetCleanDir6;
|
|
188
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
189
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
152
190
|
case 0:
|
|
153
191
|
dataDir = options.dataDir;
|
|
154
192
|
Date.prototype.toJSON = _dates.patchedDateToJson;
|
|
@@ -157,24 +195,24 @@ function _cleanReorganizedData() {
|
|
|
157
195
|
enabledDatasets = (0, _datasets.getEnabledDatasets)(options.categories);
|
|
158
196
|
chosenDatasets = (0, _datasets.filterByLegislature)(_datasets.datasets, options.legislature);
|
|
159
197
|
if (!(enabledDatasets & _datasets.EnabledDatasets.ActeursEtOrganes)) {
|
|
160
|
-
|
|
198
|
+
_context2.next = 35;
|
|
161
199
|
break;
|
|
162
200
|
}
|
|
163
201
|
_iterator4 = _createForOfIteratorHelper(chosenDatasets.acteursEtOrganes);
|
|
164
|
-
|
|
202
|
+
_context2.prev = 8;
|
|
165
203
|
_iterator4.s();
|
|
166
204
|
case 10:
|
|
167
205
|
if ((_step4 = _iterator4.n()).done) {
|
|
168
|
-
|
|
206
|
+
_context2.next = 27;
|
|
169
207
|
break;
|
|
170
208
|
}
|
|
171
209
|
dataset = _step4.value;
|
|
172
210
|
datasetName = _path["default"].basename(dataset.filename, ".json");
|
|
173
211
|
if (!(options.dataset && datasetName !== options.dataset)) {
|
|
174
|
-
|
|
212
|
+
_context2.next = 15;
|
|
175
213
|
break;
|
|
176
214
|
}
|
|
177
|
-
return
|
|
215
|
+
return _context2.abrupt("continue", 25);
|
|
178
216
|
case 15:
|
|
179
217
|
cloneGit(gitGroupUrl, datasetName, dataDir);
|
|
180
218
|
datasetRawDir = _path["default"].join(dataDir, datasetName);
|
|
@@ -183,351 +221,324 @@ function _cleanReorganizedData() {
|
|
|
183
221
|
git.resetAndPull(datasetCleanDir);
|
|
184
222
|
}
|
|
185
223
|
analyzeAndRemove(datasetName, options);
|
|
186
|
-
|
|
224
|
+
_context2.next = 22;
|
|
225
|
+
return processFiles(datasetRawDir, datasetCleanDir, ["acteurs"], _cleaners.cleanActeur, {
|
|
187
226
|
fromJson: _acteurs_et_organes.Convert.toActeur,
|
|
188
227
|
toJson: _acteurs_et_organes.Convert.acteurToJson
|
|
189
228
|
}, options);
|
|
190
|
-
|
|
229
|
+
case 22:
|
|
230
|
+
_context2.next = 24;
|
|
231
|
+
return processFiles(datasetRawDir, datasetCleanDir, ["organes"], _cleaners.cleanOrgane, {
|
|
191
232
|
fromJson: _acteurs_et_organes.Convert.toOrgane,
|
|
192
233
|
toJson: _acteurs_et_organes.Convert.organeToJson
|
|
193
234
|
}, options);
|
|
235
|
+
case 24:
|
|
194
236
|
exitCode = commitGit(datasetCleanDir, options, exitCode, ["acteurs", "organes"]);
|
|
195
|
-
case 23:
|
|
196
|
-
_context.next = 10;
|
|
197
|
-
break;
|
|
198
237
|
case 25:
|
|
199
|
-
|
|
238
|
+
_context2.next = 10;
|
|
200
239
|
break;
|
|
201
240
|
case 27:
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
241
|
+
_context2.next = 32;
|
|
242
|
+
break;
|
|
243
|
+
case 29:
|
|
244
|
+
_context2.prev = 29;
|
|
245
|
+
_context2.t0 = _context2["catch"](8);
|
|
246
|
+
_iterator4.e(_context2.t0);
|
|
247
|
+
case 32:
|
|
248
|
+
_context2.prev = 32;
|
|
207
249
|
_iterator4.f();
|
|
208
|
-
return
|
|
209
|
-
case
|
|
250
|
+
return _context2.finish(32);
|
|
251
|
+
case 35:
|
|
210
252
|
if (!(enabledDatasets & _datasets.EnabledDatasets.Agendas)) {
|
|
211
|
-
|
|
253
|
+
_context2.next = 61;
|
|
212
254
|
break;
|
|
213
255
|
}
|
|
214
256
|
_iterator5 = _createForOfIteratorHelper(chosenDatasets.agendas);
|
|
215
|
-
|
|
257
|
+
_context2.prev = 37;
|
|
216
258
|
_iterator5.s();
|
|
217
|
-
case
|
|
259
|
+
case 39:
|
|
218
260
|
if ((_step5 = _iterator5.n()).done) {
|
|
219
|
-
|
|
261
|
+
_context2.next = 53;
|
|
220
262
|
break;
|
|
221
263
|
}
|
|
222
264
|
_dataset = _step5.value;
|
|
223
265
|
_datasetName = _path["default"].basename(_dataset.filename, ".json");
|
|
224
266
|
if (!(options.dataset && _datasetName !== options.dataset)) {
|
|
225
|
-
|
|
267
|
+
_context2.next = 44;
|
|
226
268
|
break;
|
|
227
269
|
}
|
|
228
|
-
return
|
|
229
|
-
case
|
|
270
|
+
return _context2.abrupt("continue", 51);
|
|
271
|
+
case 44:
|
|
230
272
|
cloneGit(gitGroupUrl, _datasetName, dataDir);
|
|
231
273
|
analyzeAndRemove(_datasetName, options);
|
|
232
274
|
_datasetRawDir = _path["default"].join(dataDir, _datasetName);
|
|
233
275
|
_datasetCleanDir = _datasetRawDir + "_nettoye";
|
|
234
|
-
|
|
276
|
+
_context2.next = 50;
|
|
277
|
+
return processFiles(_datasetRawDir, _datasetCleanDir, [], _cleaners.cleanReunion, {
|
|
235
278
|
fromJson: _agendas.Convert.toReunion,
|
|
236
279
|
toJson: _agendas.Convert.reunionToJson
|
|
237
280
|
}, options);
|
|
281
|
+
case 50:
|
|
238
282
|
exitCode = commitGit(_datasetCleanDir, options, exitCode, ["."]);
|
|
239
|
-
case
|
|
240
|
-
|
|
283
|
+
case 51:
|
|
284
|
+
_context2.next = 39;
|
|
241
285
|
break;
|
|
242
|
-
case
|
|
243
|
-
|
|
286
|
+
case 53:
|
|
287
|
+
_context2.next = 58;
|
|
244
288
|
break;
|
|
245
|
-
case 52:
|
|
246
|
-
_context.prev = 52;
|
|
247
|
-
_context.t1 = _context["catch"](35);
|
|
248
|
-
_iterator5.e(_context.t1);
|
|
249
289
|
case 55:
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
290
|
+
_context2.prev = 55;
|
|
291
|
+
_context2.t1 = _context2["catch"](37);
|
|
292
|
+
_iterator5.e(_context2.t1);
|
|
253
293
|
case 58:
|
|
294
|
+
_context2.prev = 58;
|
|
295
|
+
_iterator5.f();
|
|
296
|
+
return _context2.finish(58);
|
|
297
|
+
case 61:
|
|
254
298
|
if (!(enabledDatasets & _datasets.EnabledDatasets.Amendements)) {
|
|
255
|
-
|
|
299
|
+
_context2.next = 87;
|
|
256
300
|
break;
|
|
257
301
|
}
|
|
258
302
|
_iterator6 = _createForOfIteratorHelper(chosenDatasets.amendements);
|
|
259
|
-
|
|
303
|
+
_context2.prev = 63;
|
|
260
304
|
_iterator6.s();
|
|
261
|
-
case
|
|
305
|
+
case 65:
|
|
262
306
|
if ((_step6 = _iterator6.n()).done) {
|
|
263
|
-
|
|
307
|
+
_context2.next = 79;
|
|
264
308
|
break;
|
|
265
309
|
}
|
|
266
310
|
_dataset2 = _step6.value;
|
|
267
311
|
_datasetName2 = _path["default"].basename(_dataset2.filename, ".json");
|
|
268
312
|
if (!(options.dataset && _datasetName2 !== options.dataset)) {
|
|
269
|
-
|
|
313
|
+
_context2.next = 70;
|
|
270
314
|
break;
|
|
271
315
|
}
|
|
272
|
-
return
|
|
273
|
-
case
|
|
316
|
+
return _context2.abrupt("continue", 77);
|
|
317
|
+
case 70:
|
|
274
318
|
cloneGit(gitGroupUrl, _datasetName2, dataDir);
|
|
275
319
|
analyzeAndRemove(_datasetName2, options);
|
|
276
320
|
_datasetRawDir2 = _path["default"].join(dataDir, _datasetName2);
|
|
277
321
|
_datasetCleanDir2 = _datasetRawDir2 + "_nettoye";
|
|
278
|
-
|
|
322
|
+
_context2.next = 76;
|
|
323
|
+
return processFiles(_datasetRawDir2, _datasetCleanDir2, [], _cleaners.cleanAmendement, {
|
|
279
324
|
fromJson: _amendements.Convert.toAmendement,
|
|
280
325
|
toJson: _amendements.Convert.amendementToJson
|
|
281
326
|
}, options);
|
|
327
|
+
case 76:
|
|
282
328
|
exitCode = commitGit(_datasetCleanDir2, options, exitCode, ["."]);
|
|
283
|
-
case
|
|
284
|
-
|
|
329
|
+
case 77:
|
|
330
|
+
_context2.next = 65;
|
|
285
331
|
break;
|
|
286
|
-
case
|
|
287
|
-
|
|
332
|
+
case 79:
|
|
333
|
+
_context2.next = 84;
|
|
288
334
|
break;
|
|
289
|
-
case
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
_iterator6.e(
|
|
293
|
-
case
|
|
294
|
-
|
|
335
|
+
case 81:
|
|
336
|
+
_context2.prev = 81;
|
|
337
|
+
_context2.t2 = _context2["catch"](63);
|
|
338
|
+
_iterator6.e(_context2.t2);
|
|
339
|
+
case 84:
|
|
340
|
+
_context2.prev = 84;
|
|
295
341
|
_iterator6.f();
|
|
296
|
-
return
|
|
297
|
-
case
|
|
342
|
+
return _context2.finish(84);
|
|
343
|
+
case 87:
|
|
298
344
|
if (!(enabledDatasets & _datasets.EnabledDatasets.DossiersLegislatifs)) {
|
|
299
|
-
|
|
345
|
+
_context2.next = 115;
|
|
300
346
|
break;
|
|
301
347
|
}
|
|
302
348
|
_iterator7 = _createForOfIteratorHelper(chosenDatasets.dossiersLegislatifs);
|
|
303
|
-
|
|
349
|
+
_context2.prev = 89;
|
|
304
350
|
_iterator7.s();
|
|
305
|
-
case
|
|
351
|
+
case 91:
|
|
306
352
|
if ((_step7 = _iterator7.n()).done) {
|
|
307
|
-
|
|
353
|
+
_context2.next = 107;
|
|
308
354
|
break;
|
|
309
355
|
}
|
|
310
356
|
_dataset3 = _step7.value;
|
|
311
357
|
_datasetName3 = _path["default"].basename(_dataset3.filename, ".json");
|
|
312
358
|
if (!(options.dataset && _datasetName3 !== options.dataset)) {
|
|
313
|
-
|
|
359
|
+
_context2.next = 96;
|
|
314
360
|
break;
|
|
315
361
|
}
|
|
316
|
-
return
|
|
317
|
-
case
|
|
362
|
+
return _context2.abrupt("continue", 105);
|
|
363
|
+
case 96:
|
|
318
364
|
cloneGit(gitGroupUrl, _datasetName3, dataDir);
|
|
319
365
|
analyzeAndRemove(_datasetName3, options);
|
|
320
366
|
_datasetRawDir3 = _path["default"].join(dataDir, _datasetName3);
|
|
321
367
|
_datasetCleanDir3 = _datasetRawDir3 + "_nettoye";
|
|
322
|
-
|
|
368
|
+
_context2.next = 102;
|
|
369
|
+
return processFiles(_datasetRawDir3, _datasetCleanDir3, ["documents"], _cleaners.cleanDocumentOrDivision, {
|
|
323
370
|
fromJson: _dossiers_legislatifs.Convert.toDocument,
|
|
324
371
|
toJson: _dossiers_legislatifs.Convert.documentToJson
|
|
325
|
-
}, options);
|
|
326
|
-
|
|
372
|
+
}, options, _retrieve_documents.downloadAndParse);
|
|
373
|
+
case 102:
|
|
374
|
+
_context2.next = 104;
|
|
375
|
+
return processFiles(_datasetRawDir3, _datasetCleanDir3, ["dossiers"], _cleaners.cleanDossierParlementaire, {
|
|
327
376
|
fromJson: _dossiers_legislatifs.Convert.toDossierParlementaire,
|
|
328
377
|
toJson: _dossiers_legislatifs.Convert.dossierParlementaireToJson
|
|
329
378
|
}, options);
|
|
379
|
+
case 104:
|
|
330
380
|
exitCode = commitGit(_datasetCleanDir3, options, exitCode, ["documents", "dossiers"]);
|
|
331
|
-
case
|
|
332
|
-
|
|
381
|
+
case 105:
|
|
382
|
+
_context2.next = 91;
|
|
333
383
|
break;
|
|
334
|
-
case
|
|
335
|
-
|
|
384
|
+
case 107:
|
|
385
|
+
_context2.next = 112;
|
|
336
386
|
break;
|
|
337
|
-
case 103:
|
|
338
|
-
_context.prev = 103;
|
|
339
|
-
_context.t3 = _context["catch"](85);
|
|
340
|
-
_iterator7.e(_context.t3);
|
|
341
|
-
case 106:
|
|
342
|
-
_context.prev = 106;
|
|
343
|
-
_iterator7.f();
|
|
344
|
-
return _context.finish(106);
|
|
345
387
|
case 109:
|
|
388
|
+
_context2.prev = 109;
|
|
389
|
+
_context2.t3 = _context2["catch"](89);
|
|
390
|
+
_iterator7.e(_context2.t3);
|
|
391
|
+
case 112:
|
|
392
|
+
_context2.prev = 112;
|
|
393
|
+
_iterator7.f();
|
|
394
|
+
return _context2.finish(112);
|
|
395
|
+
case 115:
|
|
346
396
|
if (!(enabledDatasets & _datasets.EnabledDatasets.Scrutins)) {
|
|
347
|
-
|
|
397
|
+
_context2.next = 141;
|
|
348
398
|
break;
|
|
349
399
|
}
|
|
350
400
|
_iterator8 = _createForOfIteratorHelper(chosenDatasets.scrutins);
|
|
351
|
-
|
|
401
|
+
_context2.prev = 117;
|
|
352
402
|
_iterator8.s();
|
|
353
|
-
case
|
|
403
|
+
case 119:
|
|
354
404
|
if ((_step8 = _iterator8.n()).done) {
|
|
355
|
-
|
|
405
|
+
_context2.next = 133;
|
|
356
406
|
break;
|
|
357
407
|
}
|
|
358
408
|
_dataset4 = _step8.value;
|
|
359
409
|
_datasetName4 = _path["default"].basename(_dataset4.filename, ".json");
|
|
360
410
|
if (!(options.dataset && _datasetName4 !== options.dataset)) {
|
|
361
|
-
|
|
411
|
+
_context2.next = 124;
|
|
362
412
|
break;
|
|
363
413
|
}
|
|
364
|
-
return
|
|
365
|
-
case
|
|
414
|
+
return _context2.abrupt("continue", 131);
|
|
415
|
+
case 124:
|
|
366
416
|
cloneGit(gitGroupUrl, _datasetName4, dataDir);
|
|
367
417
|
analyzeAndRemove(_datasetName4, options);
|
|
368
418
|
_datasetRawDir4 = _path["default"].join(dataDir, _datasetName4);
|
|
369
419
|
_datasetCleanDir4 = _datasetRawDir4 + "_nettoye";
|
|
370
|
-
|
|
420
|
+
_context2.next = 130;
|
|
421
|
+
return processFiles(_datasetRawDir4, _datasetCleanDir4, [], _cleaners.cleanScrutin, {
|
|
371
422
|
fromJson: _scrutins.Convert.toScrutin,
|
|
372
423
|
toJson: _scrutins.Convert.scrutinToJson
|
|
373
424
|
}, options);
|
|
425
|
+
case 130:
|
|
374
426
|
exitCode = commitGit(_datasetCleanDir4, options, exitCode, ["."]);
|
|
375
|
-
case
|
|
376
|
-
|
|
427
|
+
case 131:
|
|
428
|
+
_context2.next = 119;
|
|
377
429
|
break;
|
|
378
|
-
case
|
|
379
|
-
|
|
430
|
+
case 133:
|
|
431
|
+
_context2.next = 138;
|
|
380
432
|
break;
|
|
381
|
-
case
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
_iterator8.e(
|
|
385
|
-
case
|
|
386
|
-
|
|
433
|
+
case 135:
|
|
434
|
+
_context2.prev = 135;
|
|
435
|
+
_context2.t4 = _context2["catch"](117);
|
|
436
|
+
_iterator8.e(_context2.t4);
|
|
437
|
+
case 138:
|
|
438
|
+
_context2.prev = 138;
|
|
387
439
|
_iterator8.f();
|
|
388
|
-
return
|
|
389
|
-
case
|
|
440
|
+
return _context2.finish(138);
|
|
441
|
+
case 141:
|
|
390
442
|
if (!(enabledDatasets & _datasets.EnabledDatasets.Questions)) {
|
|
391
|
-
|
|
443
|
+
_context2.next = 167;
|
|
392
444
|
break;
|
|
393
445
|
}
|
|
394
446
|
_iterator9 = _createForOfIteratorHelper(_datasets.datasets.questions);
|
|
395
|
-
|
|
447
|
+
_context2.prev = 143;
|
|
396
448
|
_iterator9.s();
|
|
397
|
-
case
|
|
449
|
+
case 145:
|
|
398
450
|
if ((_step9 = _iterator9.n()).done) {
|
|
399
|
-
|
|
451
|
+
_context2.next = 159;
|
|
400
452
|
break;
|
|
401
453
|
}
|
|
402
454
|
_dataset5 = _step9.value;
|
|
403
455
|
_datasetName5 = _path["default"].basename(_dataset5.filename, ".json");
|
|
404
456
|
if (!(options.dataset && _datasetName5 !== options.dataset)) {
|
|
405
|
-
|
|
457
|
+
_context2.next = 150;
|
|
406
458
|
break;
|
|
407
459
|
}
|
|
408
|
-
return
|
|
409
|
-
case
|
|
460
|
+
return _context2.abrupt("continue", 157);
|
|
461
|
+
case 150:
|
|
410
462
|
cloneGit(gitGroupUrl, _datasetName5, dataDir);
|
|
411
463
|
analyzeAndRemove(_datasetName5, options);
|
|
412
464
|
_datasetRawDir5 = _path["default"].join(dataDir, _datasetName5);
|
|
413
465
|
_datasetCleanDir5 = _datasetRawDir5 + "_nettoye";
|
|
414
|
-
|
|
466
|
+
_context2.next = 156;
|
|
467
|
+
return processFiles(_datasetRawDir5, _datasetCleanDir5, [], _cleaners.cleanQuestion, {
|
|
415
468
|
fromJson: _questions.Convert.toQuestion,
|
|
416
469
|
toJson: _questions.Convert.questionToJson
|
|
417
470
|
}, options);
|
|
471
|
+
case 156:
|
|
418
472
|
exitCode = commitGit(_datasetCleanDir5, options, exitCode, ["."]);
|
|
419
|
-
case
|
|
420
|
-
|
|
473
|
+
case 157:
|
|
474
|
+
_context2.next = 145;
|
|
421
475
|
break;
|
|
422
|
-
case
|
|
423
|
-
|
|
476
|
+
case 159:
|
|
477
|
+
_context2.next = 164;
|
|
424
478
|
break;
|
|
425
|
-
case
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
_iterator9.e(
|
|
429
|
-
case
|
|
430
|
-
|
|
479
|
+
case 161:
|
|
480
|
+
_context2.prev = 161;
|
|
481
|
+
_context2.t5 = _context2["catch"](143);
|
|
482
|
+
_iterator9.e(_context2.t5);
|
|
483
|
+
case 164:
|
|
484
|
+
_context2.prev = 164;
|
|
431
485
|
_iterator9.f();
|
|
432
|
-
return
|
|
433
|
-
case
|
|
486
|
+
return _context2.finish(164);
|
|
487
|
+
case 167:
|
|
434
488
|
if (!(enabledDatasets & _datasets.EnabledDatasets.ComptesRendusSeances)) {
|
|
435
|
-
|
|
489
|
+
_context2.next = 193;
|
|
436
490
|
break;
|
|
437
491
|
}
|
|
438
492
|
_iterator10 = _createForOfIteratorHelper(_datasets.datasets.comptesRendusSeances);
|
|
439
|
-
|
|
493
|
+
_context2.prev = 169;
|
|
440
494
|
_iterator10.s();
|
|
441
|
-
case
|
|
495
|
+
case 171:
|
|
442
496
|
if ((_step10 = _iterator10.n()).done) {
|
|
443
|
-
|
|
497
|
+
_context2.next = 185;
|
|
444
498
|
break;
|
|
445
499
|
}
|
|
446
500
|
_dataset6 = _step10.value;
|
|
447
501
|
_datasetName6 = _path["default"].basename(_dataset6.filename, ".xml");
|
|
448
502
|
if (!(options.dataset && _datasetName6 !== options.dataset)) {
|
|
449
|
-
|
|
503
|
+
_context2.next = 176;
|
|
450
504
|
break;
|
|
451
505
|
}
|
|
452
|
-
return
|
|
453
|
-
case
|
|
506
|
+
return _context2.abrupt("continue", 183);
|
|
507
|
+
case 176:
|
|
454
508
|
cloneGit(gitGroupUrl, _datasetName6, dataDir);
|
|
455
509
|
analyzeAndRemove(_datasetName6, options);
|
|
456
510
|
_datasetRawDir6 = _path["default"].join(dataDir, _datasetName6);
|
|
457
511
|
_datasetCleanDir6 = _datasetRawDir6 + "_nettoye";
|
|
458
|
-
|
|
512
|
+
_context2.next = 182;
|
|
513
|
+
return processFiles(_datasetRawDir6, _datasetCleanDir6, [], _cleaners.cleanCompteRendu, {
|
|
459
514
|
fromJson: _debats.Convert.toCompteRendu,
|
|
460
515
|
toJson: _debats.Convert.compteRenduToJson
|
|
461
516
|
}, options);
|
|
517
|
+
case 182:
|
|
462
518
|
exitCode = commitGit(_datasetCleanDir6, options, exitCode, ["."]);
|
|
463
|
-
case
|
|
464
|
-
|
|
519
|
+
case 183:
|
|
520
|
+
_context2.next = 171;
|
|
465
521
|
break;
|
|
466
|
-
case
|
|
467
|
-
|
|
522
|
+
case 185:
|
|
523
|
+
_context2.next = 190;
|
|
468
524
|
break;
|
|
469
|
-
case
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
_iterator10.e(
|
|
473
|
-
case
|
|
474
|
-
|
|
525
|
+
case 187:
|
|
526
|
+
_context2.prev = 187;
|
|
527
|
+
_context2.t6 = _context2["catch"](169);
|
|
528
|
+
_iterator10.e(_context2.t6);
|
|
529
|
+
case 190:
|
|
530
|
+
_context2.prev = 190;
|
|
475
531
|
_iterator10.f();
|
|
476
|
-
return
|
|
477
|
-
case 184:
|
|
478
|
-
if (!(enabledDatasets & _datasets.EnabledDatasets.TextesLoi)) {
|
|
479
|
-
_context.next = 206;
|
|
480
|
-
break;
|
|
481
|
-
}
|
|
482
|
-
_iterator11 = _createForOfIteratorHelper(chosenDatasets.textesLoi);
|
|
483
|
-
_context.prev = 186;
|
|
484
|
-
_iterator11.s();
|
|
485
|
-
case 188:
|
|
486
|
-
if ((_step11 = _iterator11.n()).done) {
|
|
487
|
-
_context.next = 198;
|
|
488
|
-
break;
|
|
489
|
-
}
|
|
490
|
-
_dataset7 = _step11.value;
|
|
491
|
-
_datasetName7 = _path["default"].basename(_dataset7.filename, ".json");
|
|
492
|
-
if (!(options.dataset && _datasetName7 !== options.dataset)) {
|
|
493
|
-
_context.next = 193;
|
|
494
|
-
break;
|
|
495
|
-
}
|
|
496
|
-
return _context.abrupt("continue", 196);
|
|
532
|
+
return _context2.finish(190);
|
|
497
533
|
case 193:
|
|
498
|
-
if (!(typeof _dataset7.clean === "function")) {
|
|
499
|
-
_context.next = 196;
|
|
500
|
-
break;
|
|
501
|
-
}
|
|
502
|
-
_context.next = 196;
|
|
503
|
-
return _dataset7.clean({
|
|
504
|
-
dataDir: dataDir,
|
|
505
|
-
dataset: _dataset7,
|
|
506
|
-
options: options
|
|
507
|
-
});
|
|
508
|
-
case 196:
|
|
509
|
-
_context.next = 188;
|
|
510
|
-
break;
|
|
511
|
-
case 198:
|
|
512
|
-
_context.next = 203;
|
|
513
|
-
break;
|
|
514
|
-
case 200:
|
|
515
|
-
_context.prev = 200;
|
|
516
|
-
_context.t7 = _context["catch"](186);
|
|
517
|
-
_iterator11.e(_context.t7);
|
|
518
|
-
case 203:
|
|
519
|
-
_context.prev = 203;
|
|
520
|
-
_iterator11.f();
|
|
521
|
-
return _context.finish(203);
|
|
522
|
-
case 206:
|
|
523
534
|
// Restore standard conversion of dates to JSON.
|
|
524
535
|
Date.prototype.toJSON = _dates.existingDateToJson;
|
|
525
|
-
return
|
|
526
|
-
case
|
|
536
|
+
return _context2.abrupt("return", exitCode);
|
|
537
|
+
case 195:
|
|
527
538
|
case "end":
|
|
528
|
-
return
|
|
539
|
+
return _context2.stop();
|
|
529
540
|
}
|
|
530
|
-
},
|
|
541
|
+
}, _callee2, null, [[8, 29, 32, 35], [37, 55, 58, 61], [63, 81, 84, 87], [89, 109, 112, 115], [117, 135, 138, 141], [143, 161, 164, 167], [169, 187, 190, 193]]);
|
|
531
542
|
}));
|
|
532
543
|
return _cleanReorganizedData.apply(this, arguments);
|
|
533
544
|
}
|
|
@@ -539,11 +550,11 @@ function analyzeAndRemove(datasetName, options) {
|
|
|
539
550
|
console.log("Cleaning directory: ".concat(datasetCleanDir, "\u2026"));
|
|
540
551
|
}
|
|
541
552
|
_fsExtra["default"].ensureDirSync(datasetCleanDir);
|
|
542
|
-
var
|
|
543
|
-
|
|
553
|
+
var _iterator = _createForOfIteratorHelper(_fsExtra["default"].readdirSync(datasetCleanDir)),
|
|
554
|
+
_step;
|
|
544
555
|
try {
|
|
545
|
-
for (
|
|
546
|
-
var filename =
|
|
556
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
557
|
+
var filename = _step.value;
|
|
547
558
|
if (filename[0] === ".") {
|
|
548
559
|
continue;
|
|
549
560
|
}
|
|
@@ -551,20 +562,20 @@ function analyzeAndRemove(datasetName, options) {
|
|
|
551
562
|
_fsExtra["default"].removeSync(pathname);
|
|
552
563
|
}
|
|
553
564
|
} catch (err) {
|
|
554
|
-
|
|
565
|
+
_iterator.e(err);
|
|
555
566
|
} finally {
|
|
556
|
-
|
|
567
|
+
_iterator.f();
|
|
557
568
|
}
|
|
558
569
|
}
|
|
559
570
|
function commitAndPushUid(repositoryDir, options, subdirectories) {
|
|
560
571
|
var error = false;
|
|
561
572
|
if (options.commit) {
|
|
562
573
|
git.uidBranchUpdate(repositoryDir, subdirectories, options["no-reset-after-commit"]);
|
|
563
|
-
var
|
|
564
|
-
|
|
574
|
+
var _iterator2 = _createForOfIteratorHelper(options.remote || []),
|
|
575
|
+
_step2;
|
|
565
576
|
try {
|
|
566
|
-
for (
|
|
567
|
-
var remote =
|
|
577
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
578
|
+
var remote = _step2.value;
|
|
568
579
|
try {
|
|
569
580
|
git.run(repositoryDir, "push --quiet ".concat(remote, " uid:uid"));
|
|
570
581
|
} catch (childProcess) {
|
|
@@ -572,9 +583,9 @@ function commitAndPushUid(repositoryDir, options, subdirectories) {
|
|
|
572
583
|
}
|
|
573
584
|
}
|
|
574
585
|
} catch (err) {
|
|
575
|
-
|
|
586
|
+
_iterator2.e(err);
|
|
576
587
|
} finally {
|
|
577
|
-
|
|
588
|
+
_iterator2.f();
|
|
578
589
|
}
|
|
579
590
|
}
|
|
580
591
|
return error;
|
|
@@ -588,4 +599,4 @@ function main(argv) {
|
|
|
588
599
|
if (process.argv[1].endsWith("clean_reorganized_data.ts")) {
|
|
589
600
|
main(process.argv).then(process.exit);
|
|
590
601
|
}
|
|
591
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2NsZWFuZXJzIiwiX2RhdGFzZXRzIiwiX2RhdGVzIiwiX2ZpbGVfc3lzdGVtcyIsImdpdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9hZ2VuZGFzIiwiX2FtZW5kZW1lbnRzIiwiX2Rvc3NpZXJzX2xlZ2lzbGF0aWZzIiwiX3NjcnV0aW5zIiwiX3F1ZXN0aW9ucyIsIl9kZWJhdHMiLCJfY2xpX2hlbHBlcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvYmoiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibyIsInZhbHVlIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZWplY3QiLCJfbmV4dCIsIl90aHJvdyIsImtleSIsImluZm8iLCJlcnJvciIsIl9hc3luY1RvR2VuZXJhdG9yIiwiZm4iLCJzZWxmIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiZXJyIiwidW5kZWZpbmVkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwic3RlcCIsIl9lMiIsIm1pbkxlbiIsInRvU3RyaW5nIiwidGVzdCIsImxlbiIsImFycjIiLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY2xvbmVPcHRpb24iLCJjb21taXRPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsImNhdGVnb3JpZXNPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJ2ZXJib3NlT3B0aW9uIiwiZGF0YURpckRlZmF1bHRPcHRpb24iLCJwdWxsT3B0aW9uIiwiZmV0Y2hEb2N1bWVudHNPcHRpb24iLCJhbGlhcyIsImhlbHAiLCJTdHJpbmciLCJCb29sZWFuIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsImNsb25lR2l0IiwiZ2l0R3JvdXBVcmwiLCJkYXRhc2V0TmFtZSIsImRhdGFEaXIiLCJjbG9uZSIsImNvbmNhdCIsImNvbW1pdEdpdCIsImRhdGFzZXRDbGVhbkRpciIsImV4aXRDb2RlIiwic3ViZGlyZWN0b3JpZXMiLCJjb21taXQiLCJlcnJvckNvZGUiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlIiwiY29tbWl0QW5kUHVzaFVpZCIsImNsZWFuQW5kVmFsaWRhdGVEYXRhIiwiZGF0YSIsImNsZWFuZXIiLCJmcm9tSnNvbiIsInRvSnNvbiIsIm5vVmFsaWRhdGUiLCJqc29uRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWxpZGF0ZWREYXRhIiwicHJvY2Vzc0ZpbGVzIiwiZGF0YXNldFJhd0RpciIsIndhbGtEaXJQYXJhbXMiLCJkYXRhQ29udmVydGVyIiwiX2l0ZXJhdG9yIiwid2Fsa0RpciIsIl9zdGVwIiwiZmlsZVBhdGhBcnJheSIsImZpbGVuYW1lIiwiZW5kc1dpdGgiLCJyYXdGaWxlUGF0aCIsInBhdGgiLCJqb2luIiwicmF3SnNvbiIsImZzIiwicmVhZEZpbGVTeW5jIiwiZW5jb2RpbmciLCJ2ZXJib3NlIiwiY29uc29sZSIsImxvZyIsInBhcnNlIiwidmFsaWRhdGVEYXRhIiwiY2xlYW5Kc29uIiwiY2xlYW5GaWxlUGF0aCIsImVuc3VyZURpclN5bmMiLCJkaXJuYW1lIiwid3JpdGVGaWxlU3luYyIsImNsZWFuUmVvcmdhbml6ZWREYXRhIiwiX3giLCJfY2xlYW5SZW9yZ2FuaXplZERhdGEiLCJfY2FsbGVlIiwiX29wdGlvbnMkY2xvbmUiLCJlbmFibGVkRGF0YXNldHMiLCJjaG9zZW5EYXRhc2V0cyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJkYXRhc2V0IiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsIl9kYXRhc2V0IiwiX2RhdGFzZXROYW1lIiwiX2RhdGFzZXRSYXdEaXIiLCJfZGF0YXNldENsZWFuRGlyIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIl9kYXRhc2V0MiIsIl9kYXRhc2V0TmFtZTIiLCJfZGF0YXNldFJhd0RpcjIiLCJfZGF0YXNldENsZWFuRGlyMiIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfZGF0YXNldDMiLCJfZGF0YXNldE5hbWUzIiwiX2RhdGFzZXRSYXdEaXIzIiwiX2RhdGFzZXRDbGVhbkRpcjMiLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiX2RhdGFzZXQ0IiwiX2RhdGFzZXROYW1lNCIsIl9kYXRhc2V0UmF3RGlyNCIsIl9kYXRhc2V0Q2xlYW5EaXI0IiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9kYXRhc2V0NSIsIl9kYXRhc2V0TmFtZTUiLCJfZGF0YXNldFJhd0RpcjUiLCJfZGF0YXNldENsZWFuRGlyNSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIl9kYXRhc2V0NiIsIl9kYXRhc2V0TmFtZTYiLCJfZGF0YXNldFJhd0RpcjYiLCJfZGF0YXNldENsZWFuRGlyNiIsIl9pdGVyYXRvcjExIiwiX3N0ZXAxMSIsIl9kYXRhc2V0NyIsIl9kYXRhc2V0TmFtZTciLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiRGF0ZSIsInRvSlNPTiIsInBhdGNoZWREYXRlVG9Kc29uIiwidHJpbSIsInJlcGxhY2UiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiZmlsdGVyQnlMZWdpc2xhdHVyZSIsImRhdGFzZXRzIiwibGVnaXNsYXR1cmUiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImJhc2VuYW1lIiwicHVsbCIsInJlc2V0QW5kUHVsbCIsImFuYWx5emVBbmRSZW1vdmUiLCJjbGVhbkFjdGV1ciIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwidG9BY3RldXIiLCJhY3RldXJUb0pzb24iLCJjbGVhbk9yZ2FuZSIsInRvT3JnYW5lIiwib3JnYW5lVG9Kc29uIiwidDAiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsImNsZWFuUmV1bmlvbiIsIkFnZW5kYXNDb252ZXJ0IiwidG9SZXVuaW9uIiwicmV1bmlvblRvSnNvbiIsInQxIiwiQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50cyIsImNsZWFuQW1lbmRlbWVudCIsIkFtZW5kZW1lbnRzQ29udmVydCIsInRvQW1lbmRlbWVudCIsImFtZW5kZW1lbnRUb0pzb24iLCJ0MiIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJkb3NzaWVyc0xlZ2lzbGF0aWZzIiwiY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24iLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJkb2N1bWVudFRvSnNvbiIsImNsZWFuRG9zc2llclBhcmxlbWVudGFpcmUiLCJ0b0Rvc3NpZXJQYXJsZW1lbnRhaXJlIiwiZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24iLCJ0MyIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJjbGVhblNjcnV0aW4iLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJzY3J1dGluVG9Kc29uIiwidDQiLCJRdWVzdGlvbnMiLCJxdWVzdGlvbnMiLCJjbGVhblF1ZXN0aW9uIiwiUXVlc3Rpb25zQ29udmVydCIsInRvUXVlc3Rpb24iLCJxdWVzdGlvblRvSnNvbiIsInQ1IiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJjb21wdGVzUmVuZHVzU2VhbmNlcyIsImNsZWFuQ29tcHRlUmVuZHUiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJjb21wdGVSZW5kdVRvSnNvbiIsInQ2IiwiVGV4dGVzTG9pIiwidGV4dGVzTG9pIiwiY2xlYW4iLCJ0NyIsImV4aXN0aW5nRGF0ZVRvSnNvbiIsInNpbGVudCIsIl9pdGVyYXRvcjIiLCJyZWFkZGlyU3luYyIsIl9zdGVwMiIsInBhdGhuYW1lIiwicmVtb3ZlU3luYyIsInJlcG9zaXRvcnlEaXIiLCJ1aWRCcmFuY2hVcGRhdGUiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwicnVuIiwiY2hpbGRQcm9jZXNzIiwibWFpbiIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIGNsZWFuQWN0ZXVyLFxuICBjbGVhbkFtZW5kZW1lbnQsXG4gIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uLFxuICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICBjbGVhbk9yZ2FuZSxcbiAgY2xlYW5SZXVuaW9uLFxuICBjbGVhblNjcnV0aW4sXG4gIGNsZWFuUXVlc3Rpb24sXG4gIGNsZWFuQ29tcHRlUmVuZHUsXG59IGZyb20gXCIuLi9jbGVhbmVyc1wiXG5pbXBvcnQge1xuICBkYXRhc2V0cyxcbiAgRW5hYmxlZERhdGFzZXRzLFxuICBnZXRFbmFibGVkRGF0YXNldHMsXG4gIGZpbHRlckJ5TGVnaXNsYXR1cmUsXG59IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBleGlzdGluZ0RhdGVUb0pzb24sIHBhdGNoZWREYXRlVG9Kc29uIH0gZnJvbSBcIi4uL2RhdGVzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbiAgT3JnYW5lLFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWdlbmRhc0NvbnZlcnQsIFJldW5pb24gfSBmcm9tIFwiLi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zQ29udmVydCwgU2NydXRpbiB9IGZyb20gXCIuLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFF1ZXN0aW9uc0NvbnZlcnQsIFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHtcbiAgY2xvbmVPcHRpb24sXG4gIGNvbW1pdE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgY2F0ZWdvcmllc09wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbiAgZmV0Y2hEb2N1bWVudHNPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICBjbG9uZU9wdGlvbixcbiAgICBjb21taXRPcHRpb24sXG4gICAgcmVtb3RlT3B0aW9uLFxuICAgIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICAgIGNhdGVnb3JpZXNPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICBmZXRjaERvY3VtZW50c09wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJkXCIsXG4gICAgICBoZWxwOiBcInNpbmdsZSBkYXRhc2V0IHRvIHJlb3JnYW5pemVcIixcbiAgICAgIG5hbWU6IFwiZGF0YXNldFwiLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGVscDogXCJkbyBub3QgcmVzZXQgLS1oYXJkIGFmdGVyIGNvbW1pdCB0byBzYXZlIEkvTyBpZiB0aGUgd29ya2luZyB0cmVlIGlzIHRvIGJlIGRpc2NhcmRlZFwiLFxuICAgICAgbmFtZTogXCJuby1yZXNldC1hZnRlci1jb21taXRcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgICB7XG4gICAgICBhbGlhczogXCJWXCIsXG4gICAgICBoZWxwOiBcImRvbid0IHZhbGlkYXRlIGRhdGFcIixcbiAgICAgIG5hbWU6IFwibm8tdmFsaWRhdGVcIixcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgfSxcbiAgXVxuICBjb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucywge1xuICAgIGFyZ3Y6IGFyZ3YsXG4gIH0pXG4gIHJldHVybiBvcHRpb25zXG59XG5cbmZ1bmN0aW9uIGNsb25lR2l0KFxuICBnaXRHcm91cFVybDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBkYXRhc2V0TmFtZTogc3RyaW5nLFxuICBkYXRhRGlyOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgZ2l0LmNsb25lKGdpdEdyb3VwVXJsLCBgJHtkYXRhc2V0TmFtZX1fbmV0dG95ZWAsIGRhdGFEaXIpXG59XG5cbmZ1bmN0aW9uIGNvbW1pdEdpdChcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIG9wdGlvbnM6IGFueSxcbiAgZXhpdENvZGU6IG51bWJlcixcbiAgc3ViZGlyZWN0b3JpZXM6IGFueSxcbik6IG51bWJlciB7XG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGNvbnN0IGVycm9yQ29kZSA9IGdpdC5jb21taXRBbmRQdXNoKFxuICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgXCJOb3V2ZWxsZSBtb2lzc29uXCIsXG4gICAgICBvcHRpb25zLnJlbW90ZSxcbiAgICApXG4gICAgaWYgKFxuICAgICAgKGV4aXRDb2RlID09PSAxMCAmJiBlcnJvckNvZGUgIT09IDEwKSB8fFxuICAgICAgKGV4aXRDb2RlID09PSAwICYmIGVycm9yQ29kZSAhPT0gMCAmJiBlcnJvckNvZGUgIT09IDEwKVxuICAgICkge1xuICAgICAgZXhpdENvZGUgPSBlcnJvckNvZGVcbiAgICB9XG4gIH1cbiAgaWYgKFxuICAgIGNvbW1pdEFuZFB1c2hVaWQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBzdWJkaXJlY3RvcmllcykgJiZcbiAgICAoZXhpdENvZGUgPT09IDAgfHwgZXhpdENvZGUgPT09IDEwKVxuICApIHtcbiAgICBleGl0Q29kZSA9IDFcbiAgfVxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gIGRhdGE6IGFueSxcbiAgY2xlYW5lcjogKGRhdGE6IFQpID0+IHZvaWQsXG4gIGZyb21Kc29uOiAoanNvbjogc3RyaW5nKSA9PiBULFxuICB0b0pzb246IChkYXRhOiBUKSA9PiBzdHJpbmcsXG4gIG5vVmFsaWRhdGU6IEJvb2xlYW4sXG4pOiBzdHJpbmcge1xuICBjbGVhbmVyKGRhdGEpXG4gIGNvbnN0IGpzb25EYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMilcbiAgaWYgKCFub1ZhbGlkYXRlKSB7XG4gICAgcmV0dXJuIGpzb25EYXRhXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdmFsaWRhdGVkRGF0YTogVCA9IGZyb21Kc29uKGpzb25EYXRhKVxuICAgIHJldHVybiB0b0pzb24odmFsaWRhdGVkRGF0YSlcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9jZXNzRmlsZXM8VD4oXG4gIGRhdGFzZXRSYXdEaXI6IHN0cmluZyxcbiAgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcsXG4gIHdhbGtEaXJQYXJhbXM6IGFueVtdLFxuICBjbGVhbmVyOiBhbnksXG4gIGRhdGFDb252ZXJ0ZXI6IHsgZnJvbUpzb246IGFueTsgdG9Kc29uOiBhbnkgfSxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgZmlsZVBhdGhBcnJheSBvZiB3YWxrRGlyKGRhdGFzZXRSYXdEaXIsIHdhbGtEaXJQYXJhbXMpKSB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBmaWxlUGF0aEFycmF5W2ZpbGVQYXRoQXJyYXkubGVuZ3RoIC0gMV1cbiAgICBpZiAoIWZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIGNvbnRpbnVlXG4gICAgY29uc3QgcmF3RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldFJhd0RpciwgLi4uZmlsZVBhdGhBcnJheSlcbiAgICBjb25zdCByYXdKc29uID0gZnMucmVhZEZpbGVTeW5jKHJhd0ZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIGNvbnNvbGUubG9nKGBDbGVhbmluZyBmaWxlOiAke3Jhd0ZpbGVQYXRofS4uLmApXG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmF3SnNvbilcbiAgICBjb25zdCB2YWxpZGF0ZURhdGEgPSAhb3B0aW9uc1tcIm5vLXZhbGlkYXRlXCJdXG4gICAgY29uc3QgY2xlYW5Kc29uID0gY2xlYW5BbmRWYWxpZGF0ZURhdGE8VD4oXG4gICAgICBkYXRhLFxuICAgICAgY2xlYW5lcixcbiAgICAgIGRhdGFDb252ZXJ0ZXIuZnJvbUpzb24sXG4gICAgICBkYXRhQ29udmVydGVyLnRvSnNvbixcbiAgICAgIHZhbGlkYXRlRGF0YSxcbiAgICApXG4gICAgY29uc3QgY2xlYW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0Q2xlYW5EaXIsIC4uLmZpbGVQYXRoQXJyYXkpXG4gICAgZnMuZW5zdXJlRGlyU3luYyhwYXRoLmRpcm5hbWUoY2xlYW5GaWxlUGF0aCkpXG4gICAgZnMud3JpdGVGaWxlU3luYyhjbGVhbkZpbGVQYXRoLCBjbGVhbkpzb24sIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9uczogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcbiAgICAgIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICAgICAgZ2l0LnJlc2V0QW5kUHVsbChkYXRhc2V0Q2xlYW5EaXIpXG4gICAgICB9XG5cbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBwcm9jZXNzRmlsZXM8QWN0ZXVyPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJhY3RldXJzXCJdLFxuICAgICAgICBjbGVhbkFjdGV1cixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cixcbiAgICAgICAgICB0b0pzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LmFjdGV1clRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICAgIHByb2Nlc3NGaWxlczxPcmdhbmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcIm9yZ2FuZXNcIl0sXG4gICAgICAgIGNsZWFuT3JnYW5lLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvT3JnYW5lLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQub3JnYW5lVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXG4gICAgICAgIFwiYWN0ZXVyc1wiLFxuICAgICAgICBcIm9yZ2FuZXNcIixcbiAgICAgIF0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BZ2VuZGFzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFnZW5kYXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8UmV1bmlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUmV1bmlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBZ2VuZGFzQ29udmVydC50b1JldW5pb24sXG4gICAgICAgICAgdG9Kc29uOiBBZ2VuZGFzQ29udmVydC5yZXVuaW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQW1lbmRlbWVudHMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYW1lbmRlbWVudHMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8QW1lbmRlbWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQW1lbmRlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50LFxuICAgICAgICAgIHRvSnNvbjogQW1lbmRlbWVudHNDb252ZXJ0LmFtZW5kZW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8RG9jdW1lbnQ+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvY3VtZW50c1wiXSxcbiAgICAgICAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb2N1bWVudCxcbiAgICAgICAgICB0b0pzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LmRvY3VtZW50VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgcHJvY2Vzc0ZpbGVzPERvc3NpZXJQYXJsZW1lbnRhaXJlPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXCJkb3NzaWVyc1wiXSxcbiAgICAgICAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9zc2llclBhcmxlbWVudGFpcmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJkb2N1bWVudHNcIixcbiAgICAgICAgXCJkb3NzaWVyc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgcHJvY2Vzc0ZpbGVzPFNjcnV0aW4+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhblNjcnV0aW4sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbixcbiAgICAgICAgICB0b0pzb246IFNjcnV0aW5zQ29udmVydC5zY3J1dGluVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIHByb2Nlc3NGaWxlczxRdWVzdGlvbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuUXVlc3Rpb24sXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uLFxuICAgICAgICAgIHRvSnNvbjogUXVlc3Rpb25zQ29udmVydC5xdWVzdGlvblRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIueG1sXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBwcm9jZXNzRmlsZXM8Q29tcHRlUmVuZHU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtdLFxuICAgICAgICBjbGVhbkNvbXB0ZVJlbmR1LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LnRvQ29tcHRlUmVuZHUsXG4gICAgICAgICAgdG9Kc29uOiBDb21wdGVzUmVuZHVzQ29udmVydC5jb21wdGVSZW5kdVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlRleHRlc0xvaSkge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy50ZXh0ZXNMb2kpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBkYXRhc2V0LmNsZWFuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgYXdhaXQgZGF0YXNldC5jbGVhbih7IGRhdGFEaXIsIGRhdGFzZXQsIG9wdGlvbnMgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZXN0b3JlIHN0YW5kYXJkIGNvbnZlcnNpb24gb2YgZGF0ZXMgdG8gSlNPTi5cbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZXhpc3RpbmdEYXRlVG9Kc29uXG5cbiAgcmV0dXJuIGV4aXRDb2RlXG59XG5cbmZ1bmN0aW9uIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWU6IHN0cmluZywgb3B0aW9uczogYW55KTogYW55IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coYENsZWFuaW5nIGRpcmVjdG9yeTogJHtkYXRhc2V0Q2xlYW5EaXJ94oCmYClcbiAgfVxuICBmcy5lbnN1cmVEaXJTeW5jKGRhdGFzZXRDbGVhbkRpcilcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkYXRhc2V0Q2xlYW5EaXIpKSB7XG4gICAgaWYgKGZpbGVuYW1lWzBdID09PSBcIi5cIikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgcGF0aG5hbWUgPSBwYXRoLmpvaW4oZGF0YXNldENsZWFuRGlyLCBmaWxlbmFtZSlcbiAgICBmcy5yZW1vdmVTeW5jKHBhdGhuYW1lKVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2hVaWQoXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogYm9vbGVhbiB7XG4gIGxldCBlcnJvciA9IGZhbHNlXG4gIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgIGdpdC51aWRCcmFuY2hVcGRhdGUoXG4gICAgICByZXBvc2l0b3J5RGlyLFxuICAgICAgc3ViZGlyZWN0b3JpZXMsXG4gICAgICBvcHRpb25zW1wibm8tcmVzZXQtYWZ0ZXItY29tbWl0XCJdLFxuICAgIClcbiAgICBmb3IgKGNvbnN0IHJlbW90ZSBvZiBvcHRpb25zLnJlbW90ZSB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZ2l0LnJ1bihyZXBvc2l0b3J5RGlyLCBgcHVzaCAtLXF1aWV0ICR7cmVtb3RlfSB1aWQ6dWlkYClcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gY2xlYW5SZW9yZ2FuaXplZERhdGEob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwiY2xlYW5fcmVvcmdhbml6ZWRfZGF0YS50c1wiKSkge1xuICBtYWluKHByb2Nlc3MuYXJndikudGhlbihwcm9jZXNzLmV4aXQpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFGLHNCQUFBLENB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
|
|
602
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2NsZWFuZXJzIiwiX2RhdGFzZXRzIiwiX3JldHJpZXZlX2RvY3VtZW50cyIsIl9kYXRlcyIsIl9maWxlX3N5c3RlbXMiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9zY3J1dGlucyIsIl9xdWVzdGlvbnMiLCJfZGViYXRzIiwiX2NsaV9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInByb3RvdHlwZSIsIm8iLCJ2YWx1ZSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwidG9TdHJpbmciLCJ0ZXN0IiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93IiwicGFyc2VBcmdzIiwiYXJndiIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImNsb25lT3B0aW9uIiwiY29tbWl0T3B0aW9uIiwicmVtb3RlT3B0aW9uIiwibGVnaXNsYXR1cmVPcHRpb24iLCJjYXRlZ29yaWVzT3B0aW9uIiwic2lsZW50T3B0aW9uIiwidmVyYm9zZU9wdGlvbiIsImRhdGFEaXJEZWZhdWx0T3B0aW9uIiwicHVsbE9wdGlvbiIsImZldGNoRG9jdW1lbnRzT3B0aW9uIiwicGFyc2VEb2N1bWVudHNPcHRpb24iLCJkb2N1bWVudEZvcm1hdE9wdGlvbiIsImFsaWFzIiwiaGVscCIsIlN0cmluZyIsIkJvb2xlYW4iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwiY29uY2F0IiwiY29tbWl0R2l0IiwiZGF0YXNldENsZWFuRGlyIiwiZXhpdENvZGUiLCJzdWJkaXJlY3RvcmllcyIsImNvbW1pdCIsImVycm9yQ29kZSIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJjb21taXRBbmRQdXNoVWlkIiwiY2xlYW5BbmRWYWxpZGF0ZURhdGEiLCJkYXRhIiwiY2xlYW5lciIsImZyb21Kc29uIiwidG9Kc29uIiwibm9WYWxpZGF0ZSIsImpzb25EYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInZhbGlkYXRlZERhdGEiLCJwcm9jZXNzRmlsZXMiLCJfeCIsIl94MiIsIl94MyIsIl94NCIsIl94NSIsIl94NiIsIl94NyIsIl9wcm9jZXNzRmlsZXMiLCJfY2FsbGVlIiwiZGF0YXNldFJhd0RpciIsIndhbGtEaXJQYXJhbXMiLCJkYXRhQ29udmVydGVyIiwicG9zdFByb2Nlc3NvciIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJmaWxlUGF0aEFycmF5IiwiZmlsZW5hbWUiLCJyYXdGaWxlUGF0aCIsInJhd0pzb24iLCJ2YWxpZGF0ZURhdGEiLCJjbGVhbkpzb24iLCJjbGVhbkZpbGVQYXRoIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIndhbGtEaXIiLCJlbmRzV2l0aCIsInBhdGgiLCJqb2luIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJlbmNvZGluZyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwicGFyc2UiLCJlbnN1cmVEaXJTeW5jIiwiZGlybmFtZSIsIndyaXRlRmlsZVN5bmMiLCJ0MCIsImNsZWFuUmVvcmdhbml6ZWREYXRhIiwiX3g4IiwiX2NsZWFuUmVvcmdhbml6ZWREYXRhIiwiX2NhbGxlZTIiLCJfb3B0aW9ucyRjbG9uZSIsImVuYWJsZWREYXRhc2V0cyIsImNob3NlbkRhdGFzZXRzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImRhdGFzZXQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX2RhdGFzZXQiLCJfZGF0YXNldE5hbWUiLCJfZGF0YXNldFJhd0RpciIsIl9kYXRhc2V0Q2xlYW5EaXIiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2IiwiX2RhdGFzZXQyIiwiX2RhdGFzZXROYW1lMiIsIl9kYXRhc2V0UmF3RGlyMiIsIl9kYXRhc2V0Q2xlYW5EaXIyIiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsIl9kYXRhc2V0MyIsIl9kYXRhc2V0TmFtZTMiLCJfZGF0YXNldFJhd0RpcjMiLCJfZGF0YXNldENsZWFuRGlyMyIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJfZGF0YXNldDQiLCJfZGF0YXNldE5hbWU0IiwiX2RhdGFzZXRSYXdEaXI0IiwiX2RhdGFzZXRDbGVhbkRpcjQiLCJfaXRlcmF0b3I5IiwiX3N0ZXA5IiwiX2RhdGFzZXQ1IiwiX2RhdGFzZXROYW1lNSIsIl9kYXRhc2V0UmF3RGlyNSIsIl9kYXRhc2V0Q2xlYW5EaXI1IiwiX2l0ZXJhdG9yMTAiLCJfc3RlcDEwIiwiX2RhdGFzZXQ2IiwiX2RhdGFzZXROYW1lNiIsIl9kYXRhc2V0UmF3RGlyNiIsIl9kYXRhc2V0Q2xlYW5EaXI2IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiRGF0ZSIsInRvSlNPTiIsInBhdGNoZWREYXRlVG9Kc29uIiwidHJpbSIsInJlcGxhY2UiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiZmlsdGVyQnlMZWdpc2xhdHVyZSIsImRhdGFzZXRzIiwibGVnaXNsYXR1cmUiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImJhc2VuYW1lIiwicHVsbCIsInJlc2V0QW5kUHVsbCIsImFuYWx5emVBbmRSZW1vdmUiLCJjbGVhbkFjdGV1ciIsIkFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0IiwidG9BY3RldXIiLCJhY3RldXJUb0pzb24iLCJjbGVhbk9yZ2FuZSIsInRvT3JnYW5lIiwib3JnYW5lVG9Kc29uIiwiQWdlbmRhcyIsImFnZW5kYXMiLCJjbGVhblJldW5pb24iLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsInJldW5pb25Ub0pzb24iLCJ0MSIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJjbGVhbkFtZW5kZW1lbnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJhbWVuZGVtZW50VG9Kc29uIiwidDIiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwiZG9zc2llcnNMZWdpc2xhdGlmcyIsImNsZWFuRG9jdW1lbnRPckRpdmlzaW9uIiwiRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQiLCJ0b0RvY3VtZW50IiwiZG9jdW1lbnRUb0pzb24iLCJkb3dubG9hZEFuZFBhcnNlIiwiY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSIsInRvRG9zc2llclBhcmxlbWVudGFpcmUiLCJkb3NzaWVyUGFybGVtZW50YWlyZVRvSnNvbiIsInQzIiwiU2NydXRpbnMiLCJzY3J1dGlucyIsImNsZWFuU2NydXRpbiIsIlNjcnV0aW5zQ29udmVydCIsInRvU2NydXRpbiIsInNjcnV0aW5Ub0pzb24iLCJ0NCIsIlF1ZXN0aW9ucyIsInF1ZXN0aW9ucyIsImNsZWFuUXVlc3Rpb24iLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsInF1ZXN0aW9uVG9Kc29uIiwidDUiLCJDb21wdGVzUmVuZHVzU2VhbmNlcyIsImNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiY2xlYW5Db21wdGVSZW5kdSIsIkNvbXB0ZXNSZW5kdXNDb252ZXJ0IiwidG9Db21wdGVSZW5kdSIsImNvbXB0ZVJlbmR1VG9Kc29uIiwidDYiLCJleGlzdGluZ0RhdGVUb0pzb24iLCJzaWxlbnQiLCJfaXRlcmF0b3IiLCJyZWFkZGlyU3luYyIsIl9zdGVwIiwicGF0aG5hbWUiLCJyZW1vdmVTeW5jIiwiZXJyIiwicmVwb3NpdG9yeURpciIsImVycm9yIiwidWlkQnJhbmNoVXBkYXRlIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInJ1biIsImNoaWxkUHJvY2VzcyIsIm1haW4iLCJwcm9jZXNzIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NsZWFuX3Jlb3JnYW5pemVkX2RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5pbXBvcnQge1xuICBjbGVhbkFjdGV1cixcbiAgY2xlYW5BbWVuZGVtZW50LFxuICBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbixcbiAgY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgY2xlYW5PcmdhbmUsXG4gIGNsZWFuUmV1bmlvbixcbiAgY2xlYW5TY3J1dGluLFxuICBjbGVhblF1ZXN0aW9uLFxuICBjbGVhbkNvbXB0ZVJlbmR1LFxufSBmcm9tIFwiLi4vY2xlYW5lcnNcIlxuaW1wb3J0IHtcbiAgZGF0YXNldHMsXG4gIEVuYWJsZWREYXRhc2V0cyxcbiAgZ2V0RW5hYmxlZERhdGFzZXRzLFxuICBmaWx0ZXJCeUxlZ2lzbGF0dXJlLFxufSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgZG93bmxvYWRBbmRQYXJzZSB9IGZyb20gXCIuL3JldHJpZXZlX2RvY3VtZW50c1wiXG5pbXBvcnQgeyBleGlzdGluZ0RhdGVUb0pzb24sIHBhdGNoZWREYXRlVG9Kc29uIH0gZnJvbSBcIi4uL2RhdGVzXCJcbmltcG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbiAgT3JnYW5lLFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWdlbmRhc0NvbnZlcnQsIFJldW5pb24gfSBmcm9tIFwiLi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuLi90eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQge1xuICBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LFxuICBEb2N1bWVudCxcbiAgRG9zc2llclBhcmxlbWVudGFpcmUsXG59IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zQ29udmVydCwgU2NydXRpbiB9IGZyb20gXCIuLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFF1ZXN0aW9uc0NvbnZlcnQsIFF1ZXN0aW9uIH0gZnJvbSBcIi4uL3R5cGVzL3F1ZXN0aW9uc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIENvbXB0ZXNSZW5kdXNDb252ZXJ0LCBDb21wdGVSZW5kdSB9IGZyb20gXCIuLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHtcbiAgY2xvbmVPcHRpb24sXG4gIGNvbW1pdE9wdGlvbixcbiAgcmVtb3RlT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgY2F0ZWdvcmllc09wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgcHVsbE9wdGlvbixcbiAgZmV0Y2hEb2N1bWVudHNPcHRpb24sXG4gIHBhcnNlRG9jdW1lbnRzT3B0aW9uLFxuICBkb2N1bWVudEZvcm1hdE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuZnVuY3Rpb24gcGFyc2VBcmdzKGFyZ3Y6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICAgIGNsb25lT3B0aW9uLFxuICAgIGNvbW1pdE9wdGlvbixcbiAgICByZW1vdGVPcHRpb24sXG4gICAgbGVnaXNsYXR1cmVPcHRpb24sXG4gICAgY2F0ZWdvcmllc09wdGlvbixcbiAgICBzaWxlbnRPcHRpb24sXG4gICAgdmVyYm9zZU9wdGlvbixcbiAgICBkYXRhRGlyRGVmYXVsdE9wdGlvbixcbiAgICBwdWxsT3B0aW9uLFxuICAgIGZldGNoRG9jdW1lbnRzT3B0aW9uLFxuICAgIHBhcnNlRG9jdW1lbnRzT3B0aW9uLFxuICAgIGRvY3VtZW50Rm9ybWF0T3B0aW9uLFxuICAgIHtcbiAgICAgIGFsaWFzOiBcImRcIixcbiAgICAgIGhlbHA6IFwic2luZ2xlIGRhdGFzZXQgdG8gcmVvcmdhbml6ZVwiLFxuICAgICAgbmFtZTogXCJkYXRhc2V0XCIsXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoZWxwOiBcImRvIG5vdCByZXNldCAtLWhhcmQgYWZ0ZXIgY29tbWl0IHRvIHNhdmUgSS9PIGlmIHRoZSB3b3JraW5nIHRyZWUgaXMgdG8gYmUgZGlzY2FyZGVkXCIsXG4gICAgICBuYW1lOiBcIm5vLXJlc2V0LWFmdGVyLWNvbW1pdFwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICAgIHtcbiAgICAgIGFsaWFzOiBcIlZcIixcbiAgICAgIGhlbHA6IFwiZG9uJ3QgdmFsaWRhdGUgZGF0YVwiLFxuICAgICAgbmFtZTogXCJuby12YWxpZGF0ZVwiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gY2xvbmVHaXQoXG4gIGdpdEdyb3VwVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGRhdGFzZXROYW1lOiBzdHJpbmcsXG4gIGRhdGFEaXI6IHN0cmluZyxcbik6IHZvaWQge1xuICBnaXQuY2xvbmUoZ2l0R3JvdXBVcmwsIGAke2RhdGFzZXROYW1lfV9uZXR0b3llYCwgZGF0YURpcilcbn1cblxuZnVuY3Rpb24gY29tbWl0R2l0KFxuICBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuICBleGl0Q29kZTogbnVtYmVyLFxuICBzdWJkaXJlY3RvcmllczogYW55LFxuKTogbnVtYmVyIHtcbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgY29uc3QgZXJyb3JDb2RlID0gZ2l0LmNvbW1pdEFuZFB1c2goXG4gICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICBcIk5vdXZlbGxlIG1vaXNzb25cIixcbiAgICAgIG9wdGlvbnMucmVtb3RlLFxuICAgIClcbiAgICBpZiAoXG4gICAgICAoZXhpdENvZGUgPT09IDEwICYmIGVycm9yQ29kZSAhPT0gMTApIHx8XG4gICAgICAoZXhpdENvZGUgPT09IDAgJiYgZXJyb3JDb2RlICE9PSAwICYmIGVycm9yQ29kZSAhPT0gMTApXG4gICAgKSB7XG4gICAgICBleGl0Q29kZSA9IGVycm9yQ29kZVxuICAgIH1cbiAgfVxuICBpZiAoXG4gICAgY29tbWl0QW5kUHVzaFVpZChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIHN1YmRpcmVjdG9yaWVzKSAmJlxuICAgIChleGl0Q29kZSA9PT0gMCB8fCBleGl0Q29kZSA9PT0gMTApXG4gICkge1xuICAgIGV4aXRDb2RlID0gMVxuICB9XG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5mdW5jdGlvbiBjbGVhbkFuZFZhbGlkYXRlRGF0YTxUPihcbiAgZGF0YTogYW55LFxuICBjbGVhbmVyOiAoZGF0YTogVCkgPT4gdm9pZCxcbiAgZnJvbUpzb246IChqc29uOiBzdHJpbmcpID0+IFQsXG4gIHRvSnNvbjogKGRhdGE6IFQpID0+IHN0cmluZyxcbiAgbm9WYWxpZGF0ZTogQm9vbGVhbixcbik6IHN0cmluZyB7XG4gIGNsZWFuZXIoZGF0YSlcbiAgY29uc3QganNvbkRhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKVxuICBpZiAoIW5vVmFsaWRhdGUpIHtcbiAgICByZXR1cm4ganNvbkRhdGFcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB2YWxpZGF0ZWREYXRhOiBUID0gZnJvbUpzb24oanNvbkRhdGEpXG4gICAgcmV0dXJuIHRvSnNvbih2YWxpZGF0ZWREYXRhKVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGaWxlczxUPihcbiAgZGF0YXNldFJhd0Rpcjogc3RyaW5nLFxuICBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyxcbiAgd2Fsa0RpclBhcmFtczogYW55W10sXG4gIGNsZWFuZXI6IGFueSxcbiAgZGF0YUNvbnZlcnRlcjogeyBmcm9tSnNvbjogYW55OyB0b0pzb246IGFueSB9LFxuICBvcHRpb25zOiBhbnksXG4gIHBvc3RQcm9jZXNzb3I/OiBhbnksXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBmaWxlUGF0aEFycmF5IG9mIHdhbGtEaXIoZGF0YXNldFJhd0Rpciwgd2Fsa0RpclBhcmFtcykpIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IGZpbGVQYXRoQXJyYXlbZmlsZVBhdGhBcnJheS5sZW5ndGggLSAxXVxuICAgIGlmICghZmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkgY29udGludWVcbiAgICBjb25zdCByYXdGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0UmF3RGlyLCAuLi5maWxlUGF0aEFycmF5KVxuICAgIGNvbnN0IHJhd0pzb24gPSBmcy5yZWFkRmlsZVN5bmMocmF3RmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkgY29uc29sZS5sb2coYENsZWFuaW5nIGZpbGU6ICR7cmF3RmlsZVBhdGh9Li4uYClcbiAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyYXdKc29uKVxuICAgIGNvbnN0IHZhbGlkYXRlRGF0YSA9ICFvcHRpb25zW1wibm8tdmFsaWRhdGVcIl1cbiAgICBjb25zdCBjbGVhbkpzb24gPSBjbGVhbkFuZFZhbGlkYXRlRGF0YTxUPihcbiAgICAgIGRhdGEsXG4gICAgICBjbGVhbmVyLFxuICAgICAgZGF0YUNvbnZlcnRlci5mcm9tSnNvbixcbiAgICAgIGRhdGFDb252ZXJ0ZXIudG9Kc29uLFxuICAgICAgdmFsaWRhdGVEYXRhLFxuICAgIClcblxuICAgIGNvbnN0IGNsZWFuRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldENsZWFuRGlyLCAuLi5maWxlUGF0aEFycmF5KVxuICAgIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGNsZWFuRmlsZVBhdGgpKVxuICAgIGZzLndyaXRlRmlsZVN5bmMoY2xlYW5GaWxlUGF0aCwgY2xlYW5Kc29uLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuXG4gICAgaWYgKHBvc3RQcm9jZXNzb3IpIHtcbiAgICAgIGF3YWl0IHBvc3RQcm9jZXNzb3IoZGF0YSwgZGF0YXNldENsZWFuRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjbGVhblJlb3JnYW5pemVkRGF0YShvcHRpb25zOiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBkYXRhRGlyOiBzdHJpbmcgPSBvcHRpb25zLmRhdGFEaXJcbiAgRGF0ZS5wcm90b3R5cGUudG9KU09OID0gcGF0Y2hlZERhdGVUb0pzb25cbiAgbGV0IGV4aXRDb2RlID0gb3B0aW9ucy5jb21taXQgPyAxMCA6IDBcbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lPy50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICBjb25zdCBlbmFibGVkRGF0YXNldHMgPSBnZXRFbmFibGVkRGF0YXNldHMob3B0aW9ucy5jYXRlZ29yaWVzKVxuICBsZXQgY2hvc2VuRGF0YXNldHMgPSBmaWx0ZXJCeUxlZ2lzbGF0dXJlKGRhdGFzZXRzLCBvcHRpb25zLmxlZ2lzbGF0dXJlKVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG5cbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuICAgICAgaWYgKG9wdGlvbnMucHVsbCkge1xuICAgICAgICBnaXQucmVzZXRBbmRQdWxsKGRhdGFzZXRDbGVhbkRpcilcbiAgICAgIH1cblxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxBY3RldXI+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImFjdGV1cnNcIl0sXG4gICAgICAgIGNsZWFuQWN0ZXVyLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyLFxuICAgICAgICAgIHRvSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQuYWN0ZXVyVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPE9yZ2FuZT4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW1wib3JnYW5lc1wiXSxcbiAgICAgICAgY2xlYW5PcmdhbmUsXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9PcmdhbmUsXG4gICAgICAgICAgdG9Kc29uOiBBY3RldXJzRXRPcmdhbmVzQ29udmVydC5vcmdhbmVUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcbiAgICAgICAgXCJhY3RldXJzXCIsXG4gICAgICAgIFwib3JnYW5lc1wiLFxuICAgICAgXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxSZXVuaW9uPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5SZXVuaW9uLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFnZW5kYXNDb252ZXJ0LnRvUmV1bmlvbixcbiAgICAgICAgICB0b0pzb246IEFnZW5kYXNDb252ZXJ0LnJldW5pb25Ub0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxBbWVuZGVtZW50PihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5BbWVuZGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQsXG4gICAgICAgICAgdG9Kc29uOiBBbWVuZGVtZW50c0NvbnZlcnQuYW1lbmRlbWVudFRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1wiLlwiXSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKGRhdGFzZXQuZmlsZW5hbWUsIFwiLmpzb25cIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxEb2N1bWVudD4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW1wiZG9jdW1lbnRzXCJdLFxuICAgICAgICBjbGVhbkRvY3VtZW50T3JEaXZpc2lvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50LFxuICAgICAgICAgIHRvSnNvbjogRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQuZG9jdW1lbnRUb0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICAgIGRvd25sb2FkQW5kUGFyc2UsXG4gICAgICApXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8RG9zc2llclBhcmxlbWVudGFpcmU+KFxuICAgICAgICBkYXRhc2V0UmF3RGlyLFxuICAgICAgICBkYXRhc2V0Q2xlYW5EaXIsXG4gICAgICAgIFtcImRvc3NpZXJzXCJdLFxuICAgICAgICBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlLFxuICAgICAgICB7XG4gICAgICAgICAgZnJvbUpzb246IERvc3NpZXJzTGVnaXNsYXRpZnNDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgICAgICAgdG9Kc29uOiBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC5kb3NzaWVyUGFybGVtZW50YWlyZVRvSnNvbixcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcblxuICAgICAgZXhpdENvZGUgPSBjb21taXRHaXQoZGF0YXNldENsZWFuRGlyLCBvcHRpb25zLCBleGl0Q29kZSwgW1xuICAgICAgICBcImRvY3VtZW50c1wiLFxuICAgICAgICBcImRvc3NpZXJzXCIsXG4gICAgICBdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi5qc29uXCIpXG4gICAgICBpZiAob3B0aW9ucy5kYXRhc2V0ICYmIGRhdGFzZXROYW1lICE9PSBvcHRpb25zLmRhdGFzZXQpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuICAgICAgYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZSwgb3B0aW9ucylcbiAgICAgIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNvbnN0IGRhdGFzZXRDbGVhbkRpcjogc3RyaW5nID0gZGF0YXNldFJhd0RpciArIFwiX25ldHRveWVcIlxuXG4gICAgICBhd2FpdCBwcm9jZXNzRmlsZXM8U2NydXRpbj4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuU2NydXRpbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBTY3J1dGluc0NvbnZlcnQudG9TY3J1dGluLFxuICAgICAgICAgIHRvSnNvbjogU2NydXRpbnNDb252ZXJ0LnNjcnV0aW5Ub0pzb24sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApXG5cbiAgICAgIGV4aXRDb2RlID0gY29tbWl0R2l0KGRhdGFzZXRDbGVhbkRpciwgb3B0aW9ucywgZXhpdENvZGUsIFtcIi5cIl0pXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoZGF0YXNldC5maWxlbmFtZSwgXCIuanNvblwiKVxuICAgICAgaWYgKG9wdGlvbnMuZGF0YXNldCAmJiBkYXRhc2V0TmFtZSAhPT0gb3B0aW9ucy5kYXRhc2V0KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcbiAgICAgIGFuYWx5emVBbmRSZW1vdmUoZGF0YXNldE5hbWUsIG9wdGlvbnMpXG4gICAgICBjb25zdCBkYXRhc2V0UmF3RGlyOiBzdHJpbmcgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjb25zdCBkYXRhc2V0Q2xlYW5EaXI6IHN0cmluZyA9IGRhdGFzZXRSYXdEaXIgKyBcIl9uZXR0b3llXCJcblxuICAgICAgYXdhaXQgcHJvY2Vzc0ZpbGVzPFF1ZXN0aW9uPihcbiAgICAgICAgZGF0YXNldFJhd0RpcixcbiAgICAgICAgZGF0YXNldENsZWFuRGlyLFxuICAgICAgICBbXSxcbiAgICAgICAgY2xlYW5RdWVzdGlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZyb21Kc29uOiBRdWVzdGlvbnNDb252ZXJ0LnRvUXVlc3Rpb24sXG4gICAgICAgICAgdG9Kc29uOiBRdWVzdGlvbnNDb252ZXJ0LnF1ZXN0aW9uVG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShkYXRhc2V0LmZpbGVuYW1lLCBcIi54bWxcIilcbiAgICAgIGlmIChvcHRpb25zLmRhdGFzZXQgJiYgZGF0YXNldE5hbWUgIT09IG9wdGlvbnMuZGF0YXNldCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG4gICAgICBhbmFseXplQW5kUmVtb3ZlKGRhdGFzZXROYW1lLCBvcHRpb25zKVxuICAgICAgY29uc3QgZGF0YXNldFJhd0Rpcjogc3RyaW5nID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG5cbiAgICAgIGF3YWl0IHByb2Nlc3NGaWxlczxDb21wdGVSZW5kdT4oXG4gICAgICAgIGRhdGFzZXRSYXdEaXIsXG4gICAgICAgIGRhdGFzZXRDbGVhbkRpcixcbiAgICAgICAgW10sXG4gICAgICAgIGNsZWFuQ29tcHRlUmVuZHUsXG4gICAgICAgIHtcbiAgICAgICAgICBmcm9tSnNvbjogQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdSxcbiAgICAgICAgICB0b0pzb246IENvbXB0ZXNSZW5kdXNDb252ZXJ0LmNvbXB0ZVJlbmR1VG9Kc29uLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuXG4gICAgICBleGl0Q29kZSA9IGNvbW1pdEdpdChkYXRhc2V0Q2xlYW5EaXIsIG9wdGlvbnMsIGV4aXRDb2RlLCBbXCIuXCJdKVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RvcmUgc3RhbmRhcmQgY29udmVyc2lvbiBvZiBkYXRlcyB0byBKU09OLlxuICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cblxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gYW5hbHl6ZUFuZFJlbW92ZShkYXRhc2V0TmFtZTogc3RyaW5nLCBvcHRpb25zOiBhbnkpOiBhbnkge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IGRhdGFzZXRSYXdEaXI6IHN0cmluZyA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgY29uc3QgZGF0YXNldENsZWFuRGlyOiBzdHJpbmcgPSBkYXRhc2V0UmF3RGlyICsgXCJfbmV0dG95ZVwiXG4gIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgQ2xlYW5pbmcgZGlyZWN0b3J5OiAke2RhdGFzZXRDbGVhbkRpcn3igKZgKVxuICB9XG4gIGZzLmVuc3VyZURpclN5bmMoZGF0YXNldENsZWFuRGlyKVxuICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKGRhdGFzZXRDbGVhbkRpcikpIHtcbiAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBwYXRobmFtZSA9IHBhdGguam9pbihkYXRhc2V0Q2xlYW5EaXIsIGZpbGVuYW1lKVxuICAgIGZzLnJlbW92ZVN5bmMocGF0aG5hbWUpXG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaFVpZChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBvcHRpb25zOiBhbnksXG4gIHN1YmRpcmVjdG9yaWVzOiBhbnksXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgZ2l0LnVpZEJyYW5jaFVwZGF0ZShcbiAgICAgIHJlcG9zaXRvcnlEaXIsXG4gICAgICBzdWJkaXJlY3RvcmllcyxcbiAgICAgIG9wdGlvbnNbXCJuby1yZXNldC1hZnRlci1jb21taXRcIl0sXG4gICAgKVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIG9wdGlvbnMucmVtb3RlIHx8IFtdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBnaXQucnVuKHJlcG9zaXRvcnlEaXIsIGBwdXNoIC0tcXVpZXQgJHtyZW1vdGV9IHVpZDp1aWRgKVxuICAgICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIGVycm9yID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIHJldHVybiBjbGVhblJlb3JnYW5pemVkRGF0YShvcHRpb25zKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJjbGVhbl9yZW9yZ2FuaXplZF9kYXRhLnRzXCIpKSB7XG4gIG1haW4ocHJvY2Vzcy5hcmd2KS50aGVuKHByb2Nlc3MuZXhpdClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBV0EsSUFBQUks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
|