@tricoteuses/assemblee 1.10.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +340 -0
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +32 -94
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -74
- package/lib/cleaners/xml.mjs +0 -59
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1215
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -613
- package/lib/scripts/clean_reorganized_data.mjs +0 -276
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -965
- package/lib/types/acteurs_et_organes.mjs +0 -906
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
|
@@ -1,469 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
6
|
-
require("core-js/modules/es.array.iterator.js");
|
|
7
|
-
require("core-js/modules/es.object.define-property.js");
|
|
8
|
-
require("core-js/modules/es.string.iterator.js");
|
|
9
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
|
-
Object.defineProperty(exports, "__esModule", {
|
|
11
|
-
value: true
|
|
12
|
-
});
|
|
13
|
-
exports.TypeJo = exports.Type = exports.QuestionXsiType = exports.Convert = void 0;
|
|
14
|
-
require("core-js/modules/es.symbol.to-primitive.js");
|
|
15
|
-
require("core-js/modules/es.array.concat.js");
|
|
16
|
-
require("core-js/modules/es.array.for-each.js");
|
|
17
|
-
require("core-js/modules/es.array.index-of.js");
|
|
18
|
-
require("core-js/modules/es.array.is-array.js");
|
|
19
|
-
require("core-js/modules/es.array.map.js");
|
|
20
|
-
require("core-js/modules/es.date.to-json.js");
|
|
21
|
-
require("core-js/modules/es.date.to-primitive.js");
|
|
22
|
-
require("core-js/modules/es.date.to-string.js");
|
|
23
|
-
require("core-js/modules/es.number.constructor.js");
|
|
24
|
-
require("core-js/modules/es.object.get-own-property-names.js");
|
|
25
|
-
require("core-js/modules/es.object.keys.js");
|
|
26
|
-
require("core-js/modules/es.object.to-string.js");
|
|
27
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
28
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
29
|
-
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
30
|
-
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
31
|
-
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
32
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
33
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
34
|
-
// To parse this data:
|
|
35
|
-
//
|
|
36
|
-
// import { Convert, Questions, QuestionWrapper } from "./file";
|
|
37
|
-
//
|
|
38
|
-
// const questions = Convert.toQuestionsjson);
|
|
39
|
-
// const questionWrapper = Convert.toQuestionWrapper(json);
|
|
40
|
-
//
|
|
41
|
-
// These functions will throw an error if the JSON doesn't
|
|
42
|
-
// match the expected interface, even if the JSON is valid.
|
|
43
|
-
var QuestionXsiType = exports.QuestionXsiType = /*#__PURE__*/function (QuestionXsiType) {
|
|
44
|
-
QuestionXsiType["QuestionEcrite"] = "QuestionEcrite_Type";
|
|
45
|
-
QuestionXsiType["QuestionGouvernement"] = "QuestionGouvernement_Type";
|
|
46
|
-
QuestionXsiType["QuestionOrale"] = "QuestionOrale_Type";
|
|
47
|
-
return QuestionXsiType;
|
|
48
|
-
}({});
|
|
49
|
-
var TypeJo = exports.TypeJo = /*#__PURE__*/function (TypeJo) {
|
|
50
|
-
TypeJo["JoQuestion"] = "JO_QUESTION";
|
|
51
|
-
TypeJo["JoLoiDecret"] = "JO_LOI_DECRET";
|
|
52
|
-
TypeJo["JoDebate"] = "JO_DEBAT";
|
|
53
|
-
return TypeJo;
|
|
54
|
-
}({});
|
|
55
|
-
var Type = exports.Type = /*#__PURE__*/function (Type) {
|
|
56
|
-
Type["Qe"] = "QE";
|
|
57
|
-
Type["Qg"] = "QG";
|
|
58
|
-
Type["Qosd"] = "QOSD";
|
|
59
|
-
return Type;
|
|
60
|
-
}({}); // Converts JSON strings to/from your types
|
|
61
|
-
// and asserts the results of JSON.parse at runtime
|
|
62
|
-
var Convert = exports.Convert = /*#__PURE__*/function () {
|
|
63
|
-
function Convert() {
|
|
64
|
-
_classCallCheck(this, Convert);
|
|
65
|
-
}
|
|
66
|
-
return _createClass(Convert, null, [{
|
|
67
|
-
key: "toQuestions",
|
|
68
|
-
value: function toQuestions(json) {
|
|
69
|
-
return cast(JSON.parse(json), r("Questions"));
|
|
70
|
-
}
|
|
71
|
-
}, {
|
|
72
|
-
key: "questionsToJson",
|
|
73
|
-
value: function questionsToJson(value) {
|
|
74
|
-
return JSON.stringify(uncast(value, r("Questions")), null, 2);
|
|
75
|
-
}
|
|
76
|
-
}, {
|
|
77
|
-
key: "toQuestionWrapper",
|
|
78
|
-
value: function toQuestionWrapper(json) {
|
|
79
|
-
return cast(JSON.parse(json), r("QuestionWrapper"));
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
key: "questionWrapperToJson",
|
|
83
|
-
value: function questionWrapperToJson(value) {
|
|
84
|
-
return JSON.stringify(uncast(value, r("QuestionWrapper")), null, 2);
|
|
85
|
-
}
|
|
86
|
-
}]);
|
|
87
|
-
}();
|
|
88
|
-
function invalidValue(typ, val) {
|
|
89
|
-
var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
90
|
-
if (key) {
|
|
91
|
-
throw Error("Invalid value for key \"".concat(key, "\". Expected type ").concat(JSON.stringify(typ), " but got ").concat(JSON.stringify(val)));
|
|
92
|
-
}
|
|
93
|
-
throw Error("Invalid value ".concat(JSON.stringify(val), " for type ").concat(JSON.stringify(typ)));
|
|
94
|
-
}
|
|
95
|
-
function jsonToJSProps(typ) {
|
|
96
|
-
if (typ.jsonToJS === undefined) {
|
|
97
|
-
var map = {};
|
|
98
|
-
typ.props.forEach(function (p) {
|
|
99
|
-
return map[p.json] = {
|
|
100
|
-
key: p.js,
|
|
101
|
-
typ: p.typ
|
|
102
|
-
};
|
|
103
|
-
});
|
|
104
|
-
typ.jsonToJS = map;
|
|
105
|
-
}
|
|
106
|
-
return typ.jsonToJS;
|
|
107
|
-
}
|
|
108
|
-
function jsToJSONProps(typ) {
|
|
109
|
-
if (typ.jsToJSON === undefined) {
|
|
110
|
-
var map = {};
|
|
111
|
-
typ.props.forEach(function (p) {
|
|
112
|
-
return map[p.js] = {
|
|
113
|
-
key: p.json,
|
|
114
|
-
typ: p.typ
|
|
115
|
-
};
|
|
116
|
-
});
|
|
117
|
-
typ.jsToJSON = map;
|
|
118
|
-
}
|
|
119
|
-
return typ.jsToJSON;
|
|
120
|
-
}
|
|
121
|
-
function transform(val, typ, getProps) {
|
|
122
|
-
var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
123
|
-
function transformPrimitive(typ, val) {
|
|
124
|
-
if (_typeof(typ) === _typeof(val)) return val;
|
|
125
|
-
return invalidValue(typ, val, key);
|
|
126
|
-
}
|
|
127
|
-
function transformUnion(typs, val) {
|
|
128
|
-
// val must validate against one typ in typs
|
|
129
|
-
var l = typs.length;
|
|
130
|
-
for (var i = 0; i < l; i++) {
|
|
131
|
-
var _typ = typs[i];
|
|
132
|
-
try {
|
|
133
|
-
return transform(val, _typ, getProps);
|
|
134
|
-
} catch (_) {}
|
|
135
|
-
}
|
|
136
|
-
return invalidValue(typs, val);
|
|
137
|
-
}
|
|
138
|
-
function transformEnum(cases, val) {
|
|
139
|
-
if (cases.indexOf(val) !== -1) return val;
|
|
140
|
-
return invalidValue(cases, val);
|
|
141
|
-
}
|
|
142
|
-
function transformArray(typ, val) {
|
|
143
|
-
// val must be an array with no invalid elements
|
|
144
|
-
if (!Array.isArray(val)) return invalidValue("array", val);
|
|
145
|
-
return val.map(function (el) {
|
|
146
|
-
return transform(el, typ, getProps);
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
function transformDate(val) {
|
|
150
|
-
if (val === null) {
|
|
151
|
-
return null;
|
|
152
|
-
}
|
|
153
|
-
var d = new Date(val);
|
|
154
|
-
if (isNaN(d.valueOf())) {
|
|
155
|
-
return invalidValue("Date", val);
|
|
156
|
-
}
|
|
157
|
-
return d;
|
|
158
|
-
}
|
|
159
|
-
function transformObject(props, additional, val) {
|
|
160
|
-
if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
|
|
161
|
-
return invalidValue("object", val);
|
|
162
|
-
}
|
|
163
|
-
var result = {};
|
|
164
|
-
Object.getOwnPropertyNames(props).forEach(function (key) {
|
|
165
|
-
var prop = props[key];
|
|
166
|
-
var v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
167
|
-
result[prop.key] = transform(v, prop.typ, getProps, prop.key);
|
|
168
|
-
});
|
|
169
|
-
Object.getOwnPropertyNames(val).forEach(function (key) {
|
|
170
|
-
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
171
|
-
result[key] = transform(val[key], additional, getProps, key);
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
return result;
|
|
175
|
-
}
|
|
176
|
-
if (typ === "any") return val;
|
|
177
|
-
if (typ === null) {
|
|
178
|
-
if (val === null) return val;
|
|
179
|
-
return invalidValue(typ, val);
|
|
180
|
-
}
|
|
181
|
-
if (typ === false) return invalidValue(typ, val);
|
|
182
|
-
while (_typeof(typ) === "object" && typ.ref !== undefined) {
|
|
183
|
-
typ = typeMap[typ.ref];
|
|
184
|
-
}
|
|
185
|
-
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
186
|
-
if (_typeof(typ) === "object") {
|
|
187
|
-
return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val);
|
|
188
|
-
}
|
|
189
|
-
// Numbers can be parsed by Date but shouldn't be.
|
|
190
|
-
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
191
|
-
return transformPrimitive(typ, val);
|
|
192
|
-
}
|
|
193
|
-
function cast(val, typ) {
|
|
194
|
-
return transform(val, typ, jsonToJSProps);
|
|
195
|
-
}
|
|
196
|
-
function uncast(val, typ) {
|
|
197
|
-
return transform(val, typ, jsToJSONProps);
|
|
198
|
-
}
|
|
199
|
-
function a(typ) {
|
|
200
|
-
return {
|
|
201
|
-
arrayItems: typ
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
function u() {
|
|
205
|
-
for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
206
|
-
typs[_key] = arguments[_key];
|
|
207
|
-
}
|
|
208
|
-
return {
|
|
209
|
-
unionMembers: typs
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
function o(props, additional) {
|
|
213
|
-
return {
|
|
214
|
-
props: props,
|
|
215
|
-
additional: additional
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// function m(additional: any) {
|
|
220
|
-
// return { props: [], additional };
|
|
221
|
-
// }
|
|
222
|
-
|
|
223
|
-
function r(name) {
|
|
224
|
-
return {
|
|
225
|
-
ref: name
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
var typeMap = {
|
|
229
|
-
"Questions": o([{
|
|
230
|
-
json: "questions",
|
|
231
|
-
js: "questions",
|
|
232
|
-
typ: r("QuestionsClass")
|
|
233
|
-
}], false),
|
|
234
|
-
"QuestionsClass": o([{
|
|
235
|
-
json: "question",
|
|
236
|
-
js: "question",
|
|
237
|
-
typ: a(r("Question"))
|
|
238
|
-
}], false),
|
|
239
|
-
"QuestionWrapper": o([{
|
|
240
|
-
json: "question",
|
|
241
|
-
js: "question",
|
|
242
|
-
typ: r("Question")
|
|
243
|
-
}], false),
|
|
244
|
-
"Question": o([{
|
|
245
|
-
json: "@xmlns",
|
|
246
|
-
js: "@xmlns",
|
|
247
|
-
typ: ""
|
|
248
|
-
}, {
|
|
249
|
-
json: "@xmlns:xsi",
|
|
250
|
-
js: "@xmlns:xsi",
|
|
251
|
-
typ: ""
|
|
252
|
-
}, {
|
|
253
|
-
json: "@xsi:type",
|
|
254
|
-
js: "@xsi:type",
|
|
255
|
-
typ: r("QuestionXsiType")
|
|
256
|
-
}, {
|
|
257
|
-
json: "uid",
|
|
258
|
-
js: "uid",
|
|
259
|
-
typ: ""
|
|
260
|
-
}, {
|
|
261
|
-
json: "identifiant",
|
|
262
|
-
js: "identifiant",
|
|
263
|
-
typ: r("Identifiant")
|
|
264
|
-
}, {
|
|
265
|
-
json: "type",
|
|
266
|
-
js: "type",
|
|
267
|
-
typ: r("Type")
|
|
268
|
-
}, {
|
|
269
|
-
json: "indexationAN",
|
|
270
|
-
js: "indexationAN",
|
|
271
|
-
typ: r("IndexationAn")
|
|
272
|
-
}, {
|
|
273
|
-
json: "auteur",
|
|
274
|
-
js: "auteur",
|
|
275
|
-
typ: r("Auteur")
|
|
276
|
-
}, {
|
|
277
|
-
json: "minInt",
|
|
278
|
-
js: "minInt",
|
|
279
|
-
typ: r("Groupe")
|
|
280
|
-
}, {
|
|
281
|
-
json: "minAttribs",
|
|
282
|
-
js: "minAttribs",
|
|
283
|
-
typ: r("MinAttribs")
|
|
284
|
-
}, {
|
|
285
|
-
json: "textesQuestion",
|
|
286
|
-
js: "textesQuestion",
|
|
287
|
-
typ: u(r("TextesQuestion"), null, undefined)
|
|
288
|
-
}, {
|
|
289
|
-
json: "textesReponse",
|
|
290
|
-
js: "textesReponse",
|
|
291
|
-
typ: u(r("TextesReponse"), null, undefined)
|
|
292
|
-
}, {
|
|
293
|
-
json: "cloture",
|
|
294
|
-
js: "cloture",
|
|
295
|
-
typ: u(r("Cloture"), null, undefined)
|
|
296
|
-
}, {
|
|
297
|
-
json: "signalement",
|
|
298
|
-
js: "signalement",
|
|
299
|
-
typ: u(r("Signalement"), null, undefined)
|
|
300
|
-
}, {
|
|
301
|
-
json: "renouvellements",
|
|
302
|
-
js: "renouvellements",
|
|
303
|
-
typ: u(r("Renouvellements"), null, undefined)
|
|
304
|
-
}], false),
|
|
305
|
-
"Auteur": o([{
|
|
306
|
-
json: "identite",
|
|
307
|
-
js: "identite",
|
|
308
|
-
typ: r("Identite")
|
|
309
|
-
}, {
|
|
310
|
-
json: "groupe",
|
|
311
|
-
js: "groupe",
|
|
312
|
-
typ: r("Groupe")
|
|
313
|
-
}], false),
|
|
314
|
-
"Groupe": o([{
|
|
315
|
-
json: "organeRef",
|
|
316
|
-
js: "organeRef",
|
|
317
|
-
typ: ""
|
|
318
|
-
}, {
|
|
319
|
-
json: "abrege",
|
|
320
|
-
js: "abrege",
|
|
321
|
-
typ: ""
|
|
322
|
-
}, {
|
|
323
|
-
json: "developpe",
|
|
324
|
-
js: "developpe",
|
|
325
|
-
typ: ""
|
|
326
|
-
}], false),
|
|
327
|
-
"Identite": o([{
|
|
328
|
-
json: "acteurRef",
|
|
329
|
-
js: "acteurRef",
|
|
330
|
-
typ: ""
|
|
331
|
-
}, {
|
|
332
|
-
json: "mandatRef",
|
|
333
|
-
js: "mandatRef",
|
|
334
|
-
typ: ""
|
|
335
|
-
}], false),
|
|
336
|
-
"Cloture": o([{
|
|
337
|
-
json: "codeCloture",
|
|
338
|
-
js: "codeCloture",
|
|
339
|
-
typ: ""
|
|
340
|
-
}, {
|
|
341
|
-
json: "libelleCloture",
|
|
342
|
-
js: "libelleCloture",
|
|
343
|
-
typ: ""
|
|
344
|
-
}, {
|
|
345
|
-
json: "dateCloture",
|
|
346
|
-
js: "dateCloture",
|
|
347
|
-
typ: ""
|
|
348
|
-
}, {
|
|
349
|
-
json: "infoJO",
|
|
350
|
-
js: "infoJO",
|
|
351
|
-
typ: u(r("InfoJo"), null)
|
|
352
|
-
}], false),
|
|
353
|
-
"Identifiant": o([{
|
|
354
|
-
json: "numero",
|
|
355
|
-
js: "numero",
|
|
356
|
-
typ: ""
|
|
357
|
-
}, {
|
|
358
|
-
json: "regime",
|
|
359
|
-
js: "regime",
|
|
360
|
-
typ: ""
|
|
361
|
-
}, {
|
|
362
|
-
json: "legislature",
|
|
363
|
-
js: "legislature",
|
|
364
|
-
typ: ""
|
|
365
|
-
}], false),
|
|
366
|
-
"IndexationAn": o([{
|
|
367
|
-
json: "rubrique",
|
|
368
|
-
js: "rubrique",
|
|
369
|
-
typ: u("", null)
|
|
370
|
-
}, {
|
|
371
|
-
json: "teteAnalyse",
|
|
372
|
-
js: "teteAnalyse",
|
|
373
|
-
typ: null
|
|
374
|
-
}, {
|
|
375
|
-
json: "analyses",
|
|
376
|
-
js: "analyses",
|
|
377
|
-
typ: r("Analyse")
|
|
378
|
-
}], false),
|
|
379
|
-
"Analyse": o([{
|
|
380
|
-
json: "analyse",
|
|
381
|
-
js: "analyse",
|
|
382
|
-
typ: u("", null)
|
|
383
|
-
}], false),
|
|
384
|
-
"MinAttribs": o([{
|
|
385
|
-
json: "minAttrib",
|
|
386
|
-
js: "minAttrib",
|
|
387
|
-
typ: u(a(r("MinAttribElement")), r("MinAttribElement"))
|
|
388
|
-
}], false),
|
|
389
|
-
"MinAttribElement": o([{
|
|
390
|
-
json: "infoJO",
|
|
391
|
-
js: "infoJO",
|
|
392
|
-
typ: r("InfoJo")
|
|
393
|
-
}, {
|
|
394
|
-
json: "denomination",
|
|
395
|
-
js: "denomination",
|
|
396
|
-
typ: r("Groupe")
|
|
397
|
-
}], false),
|
|
398
|
-
"InfoJo": o([{
|
|
399
|
-
json: "typeJO",
|
|
400
|
-
js: "typeJO",
|
|
401
|
-
typ: u(r("TypeJo"), null)
|
|
402
|
-
}, {
|
|
403
|
-
json: "dateJO",
|
|
404
|
-
js: "dateJO",
|
|
405
|
-
typ: ""
|
|
406
|
-
}, {
|
|
407
|
-
json: "pageJO",
|
|
408
|
-
js: "pageJO",
|
|
409
|
-
typ: u("", null)
|
|
410
|
-
}, {
|
|
411
|
-
json: "numJO",
|
|
412
|
-
js: "numJO",
|
|
413
|
-
typ: u("", null)
|
|
414
|
-
}, {
|
|
415
|
-
json: "urlLegifrance",
|
|
416
|
-
js: "urlLegifrance",
|
|
417
|
-
typ: u("", null)
|
|
418
|
-
}, {
|
|
419
|
-
json: "referenceNOR",
|
|
420
|
-
js: "referenceNOR",
|
|
421
|
-
typ: u("", null)
|
|
422
|
-
}], false),
|
|
423
|
-
"TextesQuestion": o([{
|
|
424
|
-
json: "texteQuestion",
|
|
425
|
-
js: "texteQuestion",
|
|
426
|
-
typ: u(a(r("Texte")), r("Texte"))
|
|
427
|
-
}], false),
|
|
428
|
-
"Texte": o([{
|
|
429
|
-
json: "infoJO",
|
|
430
|
-
js: "infoJO",
|
|
431
|
-
typ: r("InfoJo")
|
|
432
|
-
}, {
|
|
433
|
-
json: "texte",
|
|
434
|
-
js: "texte",
|
|
435
|
-
typ: u("", null)
|
|
436
|
-
}, {
|
|
437
|
-
json: "erratum",
|
|
438
|
-
js: "erratum",
|
|
439
|
-
typ: u(undefined, "")
|
|
440
|
-
}], false),
|
|
441
|
-
"TextesReponse": o([{
|
|
442
|
-
json: "texteReponse",
|
|
443
|
-
js: "texteReponse",
|
|
444
|
-
typ: u(a(r("Texte")), r("Texte"))
|
|
445
|
-
}], false),
|
|
446
|
-
"Signalement": o([{
|
|
447
|
-
json: "infoJO",
|
|
448
|
-
js: "infoJO",
|
|
449
|
-
typ: r("InfoJo")
|
|
450
|
-
}, {
|
|
451
|
-
json: "dateDepotSignal",
|
|
452
|
-
js: "dateDepotSignal",
|
|
453
|
-
typ: ""
|
|
454
|
-
}], false),
|
|
455
|
-
"Renouvellements": o([{
|
|
456
|
-
json: "renouvellement",
|
|
457
|
-
js: "renouvellement",
|
|
458
|
-
typ: u(a(r("Renouvellement")), r("Renouvellement"))
|
|
459
|
-
}], false),
|
|
460
|
-
"Renouvellement": o([{
|
|
461
|
-
json: "infoJO",
|
|
462
|
-
js: "infoJO",
|
|
463
|
-
typ: r("InfoJo")
|
|
464
|
-
}], false),
|
|
465
|
-
"QuestionXsiType": ["QuestionEcrite_Type", "QuestionGouvernement_Type", "QuestionOrale_Type"],
|
|
466
|
-
"TypeJo": ["JO_QUESTION", "JO_LOI_DECRET", "JO_DEBAT"],
|
|
467
|
-
"Type": ["QE", "QG", "QOSD"]
|
|
468
|
-
};
|
|
469
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJRdWVzdGlvblhzaVR5cGUiLCJleHBvcnRzIiwiVHlwZUpvIiwiVHlwZSIsIkNvbnZlcnQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsInRvUXVlc3Rpb25zIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwicXVlc3Rpb25zVG9Kc29uIiwic3RyaW5naWZ5IiwidW5jYXN0IiwidG9RdWVzdGlvbldyYXBwZXIiLCJxdWVzdGlvbldyYXBwZXJUb0pzb24iLCJpbnZhbGlkVmFsdWUiLCJ0eXAiLCJ2YWwiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmNhdCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsIm1hcCIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJfbGVuIiwiX2tleSIsIm8iLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhd190eXBlcy9xdWVzdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gcGFyc2UgdGhpcyBkYXRhOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29udmVydCwgUXVlc3Rpb25zLCBRdWVzdGlvbldyYXBwZXIgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBxdWVzdGlvbnMgPSBDb252ZXJ0LnRvUXVlc3Rpb25zanNvbik7XG4vLyAgIGNvbnN0IHF1ZXN0aW9uV3JhcHBlciA9IENvbnZlcnQudG9RdWVzdGlvbldyYXBwZXIoanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuZXhwb3J0IGludGVyZmFjZSBRdWVzdGlvbnMge1xuICAgIHF1ZXN0aW9uczogUXVlc3Rpb25zQ2xhc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb25zQ2xhc3Mge1xuICAgIHF1ZXN0aW9uOiBRdWVzdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXN0aW9uV3JhcHBlciB7XG4gICAgcXVlc3Rpb246IFF1ZXN0aW9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlc3Rpb24ge1xuICAgIFwiQHhtbG5zXCI/OiAgICAgICAgc3RyaW5nO1xuICAgIFwiQHhtbG5zOnhzaVwiOiAgICAgc3RyaW5nO1xuICAgIFwiQHhzaTp0eXBlXCI6ICAgICAgUXVlc3Rpb25Yc2lUeXBlO1xuICAgIHVpZDogICAgICAgICAgICAgIHN0cmluZztcbiAgICBpZGVudGlmaWFudDogICAgICBJZGVudGlmaWFudDtcbiAgICB0eXBlOiAgICAgICAgICAgICBUeXBlO1xuICAgIGluZGV4YXRpb25BTjogICAgIEluZGV4YXRpb25BbjtcbiAgICBhdXRldXI6ICAgICAgICAgICBBdXRldXI7XG4gICAgbWluSW50OiAgICAgICAgICAgR3JvdXBlO1xuICAgIG1pbkF0dHJpYnM6ICAgICAgIE1pbkF0dHJpYnM7XG4gICAgdGV4dGVzUXVlc3Rpb24/OiAgVGV4dGVzUXVlc3Rpb24gfCBudWxsO1xuICAgIHRleHRlc1JlcG9uc2U/OiAgIFRleHRlc1JlcG9uc2UgfCBudWxsO1xuICAgIGNsb3R1cmU/OiAgICAgICAgIENsb3R1cmUgfCBudWxsO1xuICAgIHNpZ25hbGVtZW50PzogICAgIFNpZ25hbGVtZW50IHwgbnVsbDtcbiAgICByZW5vdXZlbGxlbWVudHM/OiBSZW5vdXZlbGxlbWVudHMgfCBudWxsO1xufVxuXG5leHBvcnQgZW51bSBRdWVzdGlvblhzaVR5cGUge1xuICAgIFF1ZXN0aW9uRWNyaXRlID0gXCJRdWVzdGlvbkVjcml0ZV9UeXBlXCIsXG4gICAgUXVlc3Rpb25Hb3V2ZXJuZW1lbnQgPSBcIlF1ZXN0aW9uR291dmVybmVtZW50X1R5cGVcIixcbiAgICBRdWVzdGlvbk9yYWxlID0gXCJRdWVzdGlvbk9yYWxlX1R5cGVcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGV1ciB7XG4gICAgaWRlbnRpdGU6IElkZW50aXRlO1xuICAgIGdyb3VwZTogICBHcm91cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlIHtcbiAgICBvcmdhbmVSZWY6IHN0cmluZztcbiAgICBhYnJlZ2U6ICAgIHN0cmluZztcbiAgICBkZXZlbG9wcGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGl0ZSB7XG4gICAgYWN0ZXVyUmVmOiBzdHJpbmc7XG4gICAgbWFuZGF0UmVmOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdHVyZSB7XG4gICAgY29kZUNsb3R1cmU6ICAgIHN0cmluZztcbiAgICBsaWJlbGxlQ2xvdHVyZTogc3RyaW5nO1xuICAgIGRhdGVDbG90dXJlOiAgICBzdHJpbmc7XG4gICAgaW5mb0pPOiAgICAgICAgIEluZm9KbyB8IG51bGw7XG59XG5cbmV4cG9ydCBlbnVtIFR5cGVKbyB7XG4gICAgSm9RdWVzdGlvbiA9IFwiSk9fUVVFU1RJT05cIixcbiAgICBKb0xvaURlY3JldCA9IFwiSk9fTE9JX0RFQ1JFVFwiLFxuICAgIEpvRGViYXRlID0gXCJKT19ERUJBVFwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpYW50IHtcbiAgICBudW1lcm86ICAgICAgc3RyaW5nO1xuICAgIHJlZ2ltZTogICAgICBzdHJpbmc7XG4gICAgbGVnaXNsYXR1cmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRleGF0aW9uQW4ge1xuICAgIHJ1YnJpcXVlOiAgICBzdHJpbmcgfCBudWxsO1xuICAgIHRldGVBbmFseXNlOiBudWxsO1xuICAgIGFuYWx5c2VzOiAgICAgQW5hbHlzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXNlIHtcbiAgICBhbmFseXNlOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbkF0dHJpYnMge1xuICAgIG1pbkF0dHJpYjogTWluQXR0cmliRWxlbWVudFtdIHwgTWluQXR0cmliRWxlbWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW5BdHRyaWJFbGVtZW50IHtcbiAgICBpbmZvSk86IEluZm9KbztcbiAgICBkZW5vbWluYXRpb246IEdyb3VwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNRdWVzdGlvbiB7XG4gICAgdGV4dGVRdWVzdGlvbjogVGV4dGVbXSB8IFRleHRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRlIHtcbiAgICBpbmZvSk86IEluZm9KbztcbiAgICB0ZXh0ZTogIHN0cmluZyB8IG51bGw7XG4gICAgZXJyYXR1bT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvSm8ge1xuICAgIHR5cGVKTzogICAgICAgICAgVHlwZUpvIHwgbnVsbDtcbiAgICBkYXRlSk86ICAgICAgICAgIHN0cmluZztcbiAgICBwYWdlSk86ICAgICAgICAgIHN0cmluZyB8IG51bGw7XG4gICAgbnVtSk86ICAgICAgICAgICBzdHJpbmcgfCBudWxsO1xuICAgIHVybExlZ2lmcmFuY2U6ICAgc3RyaW5nIHwgbnVsbDtcbiAgICByZWZlcmVuY2VOT1I6ICAgIHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dGVzUmVwb25zZSB7XG4gICAgdGV4dGVSZXBvbnNlOiBUZXh0ZVtdIHwgVGV4dGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmFsZW1lbnQge1xuICAgIGRhdGVEZXBvdFNpZ25hbDogIHN0cmluZztcbiAgICBpbmZvSk86ICAgICAgICAgICBJbmZvSm87XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVub3V2ZWxsZW1lbnRzIHtcbiAgICByZW5vdXZlbGxlbWVudDogUmVub3V2ZWxsZW1lbnRbXSB8IFJlbm91dmVsbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbm91dmVsbGVtZW50IHtcbiAgICBpbmZvSk86IEluZm9Kbztcbn1cblxuZXhwb3J0IGVudW0gVHlwZSB7XG4gICAgUWUgPSBcIlFFXCIsXG4gICAgUWcgPSBcIlFHXCIsXG4gICAgUW9zZCA9IFwiUU9TRFwiXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9RdWVzdGlvbnMoanNvbjogc3RyaW5nKTogUXVlc3Rpb25zIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlF1ZXN0aW9uc1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBxdWVzdGlvbnNUb0pzb24odmFsdWU6IFF1ZXN0aW9ucyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJRdWVzdGlvbnNcIikpLCBudWxsLCAyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvUXVlc3Rpb25XcmFwcGVyKGpzb246IHN0cmluZyk6IFF1ZXN0aW9uV3JhcHBlciB7XG4gICAgICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJRdWVzdGlvbldyYXBwZXJcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcXVlc3Rpb25XcmFwcGVyVG9Kc29uKHZhbHVlOiBRdWVzdGlvbldyYXBwZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiUXVlc3Rpb25XcmFwcGVyXCIpKSwgbnVsbCwgMik7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkVmFsdWUodHlwOiBhbnksIHZhbDogYW55LCBrZXk6IGFueSA9ICcnKTogbmV2ZXIge1xuICAgIGlmIChrZXkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEludmFsaWQgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiLiBFeHBlY3RlZCB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCk7XG4gICAgfVxuICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHZhbHVlICR7SlNPTi5zdHJpbmdpZnkodmFsKX0gZm9yIHR5cGUgJHtKU09OLnN0cmluZ2lmeSh0eXApfWAsICk7XG59XG5cbmZ1bmN0aW9uIGpzb25Ub0pTUHJvcHModHlwOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXAuanNvblRvSlMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBtYXA6IGFueSA9IHt9O1xuICAgICAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiBtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pO1xuICAgICAgICB0eXAuanNvblRvSlMgPSBtYXA7XG4gICAgfVxuICAgIHJldHVybiB0eXAuanNvblRvSlM7XG59XG5cbmZ1bmN0aW9uIGpzVG9KU09OUHJvcHModHlwOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBtYXA6IGFueSA9IHt9O1xuICAgICAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiBtYXBbcC5qc10gPSB7IGtleTogcC5qc29uLCB0eXA6IHAudHlwIH0pO1xuICAgICAgICB0eXAuanNUb0pTT04gPSBtYXA7XG4gICAgfVxuICAgIHJldHVybiB0eXAuanNUb0pTT047XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gJycpOiBhbnkge1xuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodHlwZW9mIHR5cCA9PT0gdHlwZW9mIHZhbCkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgICAgICBjb25zdCBsID0gdHlwcy5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0eXAgPSB0eXBzW2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbDtcbiAgICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShjYXNlcywgdmFsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1BcnJheSh0eXA6IGFueSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyB2YWwgbXVzdCBiZSBhbiBhcnJheSB3aXRoIG5vIGludmFsaWQgZWxlbWVudHNcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpO1xuICAgICAgICByZXR1cm4gdmFsLm1hcChlbCA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbCk7XG4gICAgICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJEYXRlXCIsIHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0KHByb3BzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSwgYWRkaXRpb25hbDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJvYmplY3RcIiwgdmFsKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV07XG4gICAgICAgICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KSA/IHZhbFtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0W3Byb3Aua2V5XSA9IHRyYW5zZm9ybSh2LCBwcm9wLnR5cCwgZ2V0UHJvcHMsIHByb3Aua2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGlmICh0eXAgPT09IFwiYW55XCIpIHJldHVybiB2YWw7XG4gICAgaWYgKHR5cCA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsO1xuICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKTtcbiAgICB9XG4gICAgaWYgKHR5cCA9PT0gZmFsc2UpIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpO1xuICAgIHdoaWxlICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiICYmIHR5cC5yZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0eXAgPSB0eXBlTWFwW3R5cC5yZWZdO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXApKSByZXR1cm4gdHJhbnNmb3JtRW51bSh0eXAsIHZhbCk7XG4gICAgaWYgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgcmV0dXJuIHR5cC5oYXNPd25Qcm9wZXJ0eShcInVuaW9uTWVtYmVyc1wiKSA/IHRyYW5zZm9ybVVuaW9uKHR5cC51bmlvbk1lbWJlcnMsIHZhbClcbiAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwiYXJyYXlJdGVtc1wiKSAgICA/IHRyYW5zZm9ybUFycmF5KHR5cC5hcnJheUl0ZW1zLCB2YWwpXG4gICAgICAgICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcInByb3BzXCIpICAgICAgICAgPyB0cmFuc2Zvcm1PYmplY3QoZ2V0UHJvcHModHlwKSwgdHlwLmFkZGl0aW9uYWwsIHZhbClcbiAgICAgICAgICAgIDogaW52YWxpZFZhbHVlKHR5cCwgdmFsKTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGFycmF5SXRlbXM6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gICAgcmV0dXJuIHsgdW5pb25NZW1iZXJzOiB0eXBzIH07XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgICByZXR1cm4geyBwcm9wcywgYWRkaXRpb25hbCB9O1xufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICAgIHJldHVybiB7IHByb3BzOiBbXSwgYWRkaXRpb25hbCB9O1xuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB7IHJlZjogbmFtZSB9O1xufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gICAgXCJRdWVzdGlvbnNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJxdWVzdGlvbnNcIiwganM6IFwicXVlc3Rpb25zXCIsIHR5cDogcihcIlF1ZXN0aW9uc0NsYXNzXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUXVlc3Rpb25zQ2xhc3NcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJxdWVzdGlvblwiLCBqczogXCJxdWVzdGlvblwiLCB0eXA6IGEocihcIlF1ZXN0aW9uXCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlF1ZXN0aW9uV3JhcHBlclwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInF1ZXN0aW9uXCIsIGpzOiBcInF1ZXN0aW9uXCIsIHR5cDogcihcIlF1ZXN0aW9uXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUXVlc3Rpb25cIjogbyhbXG4gICAgICAgIHsganNvbjogXCJAeG1sbnNcIiwganM6IFwiQHhtbG5zXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiQHhtbG5zOnhzaVwiLCBqczogXCJAeG1sbnM6eHNpXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiQHhzaTp0eXBlXCIsIGpzOiBcIkB4c2k6dHlwZVwiLCB0eXA6IHIoXCJRdWVzdGlvblhzaVR5cGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInVpZFwiLCBqczogXCJ1aWRcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJpZGVudGlmaWFudFwiLCBqczogXCJpZGVudGlmaWFudFwiLCB0eXA6IHIoXCJJZGVudGlmaWFudFwiKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZVwiLCBqczogXCJ0eXBlXCIsIHR5cDogcihcIlR5cGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImluZGV4YXRpb25BTlwiLCBqczogXCJpbmRleGF0aW9uQU5cIiwgdHlwOiByKFwiSW5kZXhhdGlvbkFuXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJhdXRldXJcIiwganM6IFwiYXV0ZXVyXCIsIHR5cDogcihcIkF1dGV1clwiKSB9LFxuICAgICAgICB7IGpzb246IFwibWluSW50XCIsIGpzOiBcIm1pbkludFwiLCB0eXA6IHIoXCJHcm91cGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcIm1pbkF0dHJpYnNcIiwganM6IFwibWluQXR0cmlic1wiLCB0eXA6IHIoXCJNaW5BdHRyaWJzXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZXNRdWVzdGlvblwiLCBqczogXCJ0ZXh0ZXNRdWVzdGlvblwiLCB0eXA6IHUocihcIlRleHRlc1F1ZXN0aW9uXCIpLCBudWxsLCB1bmRlZmluZWQpIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZXNSZXBvbnNlXCIsIGpzOiBcInRleHRlc1JlcG9uc2VcIiwgdHlwOiB1KHIoXCJUZXh0ZXNSZXBvbnNlXCIpLCBudWxsLCB1bmRlZmluZWQpIH0sXG4gICAgICAgIHsganNvbjogXCJjbG90dXJlXCIsIGpzOiBcImNsb3R1cmVcIiwgdHlwOiB1KHIoXCJDbG90dXJlXCIpLCBudWxsLCB1bmRlZmluZWQpIH0sXG4gICAgICAgIHsganNvbjogXCJzaWduYWxlbWVudFwiLCBqczogXCJzaWduYWxlbWVudFwiLCB0eXA6IHUocihcIlNpZ25hbGVtZW50XCIpLCBudWxsLCB1bmRlZmluZWQpIH0sXG4gICAgICAgIHsganNvbjogXCJyZW5vdXZlbGxlbWVudHNcIiwganM6IFwicmVub3V2ZWxsZW1lbnRzXCIsIHR5cDogdShyKFwiUmVub3V2ZWxsZW1lbnRzXCIpLCBudWxsLCB1bmRlZmluZWQpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQXV0ZXVyXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiaWRlbnRpdGVcIiwganM6IFwiaWRlbnRpdGVcIiwgdHlwOiByKFwiSWRlbnRpdGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImdyb3VwZVwiLCBqczogXCJncm91cGVcIiwgdHlwOiByKFwiR3JvdXBlXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiR3JvdXBlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImFicmVnZVwiLCBqczogXCJhYnJlZ2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkZXZlbG9wcGVcIiwganM6IFwiZGV2ZWxvcHBlXCIsIHR5cDogXCJcIiB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIklkZW50aXRlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiYWN0ZXVyUmVmXCIsIGpzOiBcImFjdGV1clJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcIm1hbmRhdFJlZlwiLCBqczogXCJtYW5kYXRSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQ2xvdHVyZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImNvZGVDbG90dXJlXCIsIGpzOiBcImNvZGVDbG90dXJlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibGliZWxsZUNsb3R1cmVcIiwganM6IFwibGliZWxsZUNsb3R1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkYXRlQ2xvdHVyZVwiLCBqczogXCJkYXRlQ2xvdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImluZm9KT1wiLCBqczogXCJpbmZvSk9cIiwgdHlwOiB1KHIoXCJJbmZvSm9cIiksIG51bGwpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiSWRlbnRpZmlhbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJudW1lcm9cIiwganM6IFwibnVtZXJvXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwicmVnaW1lXCIsIGpzOiBcInJlZ2ltZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcImxlZ2lzbGF0dXJlXCIsIGpzOiBcImxlZ2lzbGF0dXJlXCIsIHR5cDogXCJcIiB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkluZGV4YXRpb25BblwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInJ1YnJpcXVlXCIsIGpzOiBcInJ1YnJpcXVlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwidGV0ZUFuYWx5c2VcIiwganM6IFwidGV0ZUFuYWx5c2VcIiwgdHlwOiBudWxsIH0sXG4gICAgICAgIHsganNvbjogXCJhbmFseXNlc1wiLCBqczogXCJhbmFseXNlc1wiLCB0eXA6IHIoXCJBbmFseXNlXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiQW5hbHlzZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImFuYWx5c2VcIiwganM6IFwiYW5hbHlzZVwiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJNaW5BdHRyaWJzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwibWluQXR0cmliXCIsIGpzOiBcIm1pbkF0dHJpYlwiLCB0eXA6IHUoYShyKFwiTWluQXR0cmliRWxlbWVudFwiKSksIHIoXCJNaW5BdHRyaWJFbGVtZW50XCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIk1pbkF0dHJpYkVsZW1lbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9LFxuICAgICAgICB7IGpzb246IFwiZGVub21pbmF0aW9uXCIsIGpzOiBcImRlbm9taW5hdGlvblwiLCB0eXA6IHIoXCJHcm91cGVcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJJbmZvSm9cIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ0eXBlSk9cIiwganM6IFwidHlwZUpPXCIsIHR5cDogdShyKFwiVHlwZUpvXCIpLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZUpPXCIsIGpzOiBcImRhdGVKT1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInBhZ2VKT1wiLCBqczogXCJwYWdlSk9cIiwgdHlwOiB1KFwiXCIsIG51bGwpIH0sXG4gICAgICAgIHsganNvbjogXCJudW1KT1wiLCBqczogXCJudW1KT1wiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICAgICAgeyBqc29uOiBcInVybExlZ2lmcmFuY2VcIiwganM6IFwidXJsTGVnaWZyYW5jZVwiLCB0eXA6IHUoXCJcIiwgbnVsbCkgfSxcbiAgICAgICAgeyBqc29uOiBcInJlZmVyZW5jZU5PUlwiLCBqczogXCJyZWZlcmVuY2VOT1JcIiwgdHlwOiB1KFwiXCIsIG51bGwpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiVGV4dGVzUXVlc3Rpb25cIjogbyhbXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZVF1ZXN0aW9uXCIsIGpzOiBcInRleHRlUXVlc3Rpb25cIiwgdHlwOiB1KGEocihcIlRleHRlXCIpKSwgcihcIlRleHRlXCIpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlRleHRlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwiaW5mb0pPXCIsIGpzOiBcImluZm9KT1wiLCB0eXA6IHIoXCJJbmZvSm9cIikgfSxcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdShcIlwiLCBudWxsKSB9LFxuICAgICAgICB7IGpzb246IFwiZXJyYXR1bVwiLCBqczogXCJlcnJhdHVtXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJUZXh0ZXNSZXBvbnNlXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwidGV4dGVSZXBvbnNlXCIsIGpzOiBcInRleHRlUmVwb25zZVwiLCB0eXA6IHUoYShyKFwiVGV4dGVcIikpLCByKFwiVGV4dGVcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU2lnbmFsZW1lbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZURlcG90U2lnbmFsXCIsIGpzOiBcImRhdGVEZXBvdFNpZ25hbFwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJSZW5vdXZlbGxlbWVudHNcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJyZW5vdXZlbGxlbWVudFwiLCBqczogXCJyZW5vdXZlbGxlbWVudFwiLCB0eXA6IHUoYShyKFwiUmVub3V2ZWxsZW1lbnRcIikpLCByKFwiUmVub3V2ZWxsZW1lbnRcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUmVub3V2ZWxsZW1lbnRcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJpbmZvSk9cIiwganM6IFwiaW5mb0pPXCIsIHR5cDogcihcIkluZm9Kb1wiKSB9XG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUXVlc3Rpb25Yc2lUeXBlXCI6IFtcbiAgICAgICAgXCJRdWVzdGlvbkVjcml0ZV9UeXBlXCIsXG4gICAgICAgIFwiUXVlc3Rpb25Hb3V2ZXJuZW1lbnRfVHlwZVwiLFxuICAgICAgICBcIlF1ZXN0aW9uT3JhbGVfVHlwZVwiXG4gICAgXSxcbiAgICBcIlR5cGVKb1wiOiBbXG4gICAgICAgIFwiSk9fUVVFU1RJT05cIixcbiAgICAgICAgXCJKT19MT0lfREVDUkVUXCIsXG4gICAgICAgIFwiSk9fREVCQVRcIlxuICAgIF0sXG4gICAgXCJUeXBlXCI6IFtcbiAgICAgICAgXCJRRVwiLFxuICAgICAgICBcIlFHXCIsXG4gICAgICAgIFwiUU9TRFwiXG4gICAgXSxcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBZ0NZQSxlQUFlLEdBQUFDLE9BQUEsQ0FBQUQsZUFBQSwwQkFBZkEsZUFBZTtFQUFmQSxlQUFlO0VBQWZBLGVBQWU7RUFBZkEsZUFBZTtFQUFBLE9BQWZBLGVBQWU7QUFBQTtBQUFBLElBNkJmRSxNQUFNLEdBQUFELE9BQUEsQ0FBQUMsTUFBQSwwQkFBTkEsTUFBTTtFQUFOQSxNQUFNO0VBQU5BLE1BQU07RUFBTkEsTUFBTTtFQUFBLE9BQU5BLE1BQU07QUFBQTtBQUFBLElBbUVOQyxJQUFJLEdBQUFGLE9BQUEsQ0FBQUUsSUFBQSwwQkFBSkEsSUFBSTtFQUFKQSxJQUFJO0VBQUpBLElBQUk7RUFBSkEsSUFBSTtFQUFBLE9BQUpBLElBQUk7QUFBQSxPQU1oQjtBQUNBO0FBQUEsSUFDYUMsT0FBTyxHQUFBSCxPQUFBLENBQUFHLE9BQUE7RUFBQSxTQUFBQSxRQUFBO0lBQUFDLGVBQUEsT0FBQUQsT0FBQTtFQUFBO0VBQUEsT0FBQUUsWUFBQSxDQUFBRixPQUFBO0lBQUFHLEdBQUE7SUFBQUMsS0FBQSxFQUNoQixTQUFjQyxXQUFXQSxDQUFDQyxJQUFZLEVBQWE7TUFDL0MsT0FBT0MsSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0gsSUFBSSxDQUFDLEVBQUVJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRDtFQUFDO0lBQUFQLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQWNPLGVBQWVBLENBQUNQLEtBQWdCLEVBQVU7TUFDcEQsT0FBT0ksSUFBSSxDQUFDSSxTQUFTLENBQUNDLE1BQU0sQ0FBQ1QsS0FBSyxFQUFFTSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFO0VBQUM7SUFBQVAsR0FBQTtJQUFBQyxLQUFBLEVBRUQsU0FBY1UsaUJBQWlCQSxDQUFDUixJQUFZLEVBQW1CO01BQzNELE9BQU9DLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBQUNILElBQUksQ0FBQyxFQUFFSSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN2RDtFQUFDO0lBQUFQLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQWNXLHFCQUFxQkEsQ0FBQ1gsS0FBc0IsRUFBVTtNQUNoRSxPQUFPSSxJQUFJLENBQUNJLFNBQVMsQ0FBQ0MsTUFBTSxDQUFDVCxLQUFLLEVBQUVNLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RTtFQUFDO0FBQUE7QUFHTCxTQUFTTSxZQUFZQSxDQUFDQyxHQUFRLEVBQUVDLEdBQVEsRUFBd0I7RUFBQSxJQUF0QmYsR0FBUSxHQUFBZ0IsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsRUFBRTtFQUNuRCxJQUFJaEIsR0FBRyxFQUFFO0lBQ0wsTUFBTW1CLEtBQUssNEJBQUFDLE1BQUEsQ0FBMkJwQixHQUFHLHdCQUFBb0IsTUFBQSxDQUFvQmYsSUFBSSxDQUFDSSxTQUFTLENBQUNLLEdBQUcsQ0FBQyxlQUFBTSxNQUFBLENBQVlmLElBQUksQ0FBQ0ksU0FBUyxDQUFDTSxHQUFHLENBQUMsQ0FBRSxDQUFDO0VBQ3RIO0VBQ0EsTUFBTUksS0FBSyxrQkFBQUMsTUFBQSxDQUFrQmYsSUFBSSxDQUFDSSxTQUFTLENBQUNNLEdBQUcsQ0FBQyxnQkFBQUssTUFBQSxDQUFhZixJQUFJLENBQUNJLFNBQVMsQ0FBQ0ssR0FBRyxDQUFDLENBQUksQ0FBQztBQUN6RjtBQUVBLFNBQVNPLGFBQWFBLENBQUNQLEdBQVEsRUFBTztFQUNsQyxJQUFJQSxHQUFHLENBQUNRLFFBQVEsS0FBS0osU0FBUyxFQUFFO0lBQzVCLElBQU1LLEdBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkJULEdBQUcsQ0FBQ1UsS0FBSyxDQUFDQyxPQUFPLENBQUMsVUFBQ0MsQ0FBTTtNQUFBLE9BQUtILEdBQUcsQ0FBQ0csQ0FBQyxDQUFDdkIsSUFBSSxDQUFDLEdBQUc7UUFBRUgsR0FBRyxFQUFFMEIsQ0FBQyxDQUFDQyxFQUFFO1FBQUViLEdBQUcsRUFBRVksQ0FBQyxDQUFDWjtNQUFJLENBQUM7SUFBQSxFQUFDO0lBQ3RFQSxHQUFHLENBQUNRLFFBQVEsR0FBR0MsR0FBRztFQUN0QjtFQUNBLE9BQU9ULEdBQUcsQ0FBQ1EsUUFBUTtBQUN2QjtBQUVBLFNBQVNNLGFBQWFBLENBQUNkLEdBQVEsRUFBTztFQUNsQyxJQUFJQSxHQUFHLENBQUNlLFFBQVEsS0FBS1gsU0FBUyxFQUFFO0lBQzVCLElBQU1LLEdBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkJULEdBQUcsQ0FBQ1UsS0FBSyxDQUFDQyxPQUFPLENBQUMsVUFBQ0MsQ0FBTTtNQUFBLE9BQUtILEdBQUcsQ0FBQ0csQ0FBQyxDQUFDQyxFQUFFLENBQUMsR0FBRztRQUFFM0IsR0FBRyxFQUFFMEIsQ0FBQyxDQUFDdkIsSUFBSTtRQUFFVyxHQUFHLEVBQUVZLENBQUMsQ0FBQ1o7TUFBSSxDQUFDO0lBQUEsRUFBQztJQUN0RUEsR0FBRyxDQUFDZSxRQUFRLEdBQUdOLEdBQUc7RUFDdEI7RUFDQSxPQUFPVCxHQUFHLENBQUNlLFFBQVE7QUFDdkI7QUFFQSxTQUFTQyxTQUFTQSxDQUFDZixHQUFRLEVBQUVELEdBQVEsRUFBRWlCLFFBQWEsRUFBc0I7RUFBQSxJQUFwQi9CLEdBQVEsR0FBQWdCLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEVBQUU7RUFDL0QsU0FBU2dCLGtCQUFrQkEsQ0FBQ2xCLEdBQVcsRUFBRUMsR0FBUSxFQUFPO0lBQ3BELElBQUlrQixPQUFBLENBQU9uQixHQUFHLE1BQUFtQixPQUFBLENBQVlsQixHQUFHLEdBQUUsT0FBT0EsR0FBRztJQUN6QyxPQUFPRixZQUFZLENBQUNDLEdBQUcsRUFBRUMsR0FBRyxFQUFFZixHQUFHLENBQUM7RUFDdEM7RUFFQSxTQUFTa0MsY0FBY0EsQ0FBQ0MsSUFBVyxFQUFFcEIsR0FBUSxFQUFPO0lBQ2hEO0lBQ0EsSUFBTXFCLENBQUMsR0FBR0QsSUFBSSxDQUFDbEIsTUFBTTtJQUNyQixLQUFLLElBQUlvQixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdELENBQUMsRUFBRUMsQ0FBQyxFQUFFLEVBQUU7TUFDeEIsSUFBTXZCLElBQUcsR0FBR3FCLElBQUksQ0FBQ0UsQ0FBQyxDQUFDO01BQ25CLElBQUk7UUFDQSxPQUFPUCxTQUFTLENBQUNmLEdBQUcsRUFBRUQsSUFBRyxFQUFFaUIsUUFBUSxDQUFDO01BQ3hDLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUUsQ0FBQztJQUNqQjtJQUNBLE9BQU96QixZQUFZLENBQUNzQixJQUFJLEVBQUVwQixHQUFHLENBQUM7RUFDbEM7RUFFQSxTQUFTd0IsYUFBYUEsQ0FBQ0MsS0FBZSxFQUFFekIsR0FBUSxFQUFPO0lBQ25ELElBQUl5QixLQUFLLENBQUNDLE9BQU8sQ0FBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU9BLEdBQUc7SUFDekMsT0FBT0YsWUFBWSxDQUFDMkIsS0FBSyxFQUFFekIsR0FBRyxDQUFDO0VBQ25DO0VBRUEsU0FBUzJCLGNBQWNBLENBQUM1QixHQUFRLEVBQUVDLEdBQVEsRUFBTztJQUM3QztJQUNBLElBQUksQ0FBQzRCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDN0IsR0FBRyxDQUFDLEVBQUUsT0FBT0YsWUFBWSxDQUFDLE9BQU8sRUFBRUUsR0FBRyxDQUFDO0lBQzFELE9BQU9BLEdBQUcsQ0FBQ1EsR0FBRyxDQUFDLFVBQUFzQixFQUFFO01BQUEsT0FBSWYsU0FBUyxDQUFDZSxFQUFFLEVBQUUvQixHQUFHLEVBQUVpQixRQUFRLENBQUM7SUFBQSxFQUFDO0VBQ3REO0VBRUEsU0FBU2UsYUFBYUEsQ0FBQy9CLEdBQVEsRUFBTztJQUNsQyxJQUFJQSxHQUFHLEtBQUssSUFBSSxFQUFFO01BQ2QsT0FBTyxJQUFJO0lBQ2Y7SUFDQSxJQUFNZ0MsQ0FBQyxHQUFHLElBQUlDLElBQUksQ0FBQ2pDLEdBQUcsQ0FBQztJQUN2QixJQUFJa0MsS0FBSyxDQUFDRixDQUFDLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtNQUNwQixPQUFPckMsWUFBWSxDQUFDLE1BQU0sRUFBRUUsR0FBRyxDQUFDO0lBQ3BDO0lBQ0EsT0FBT2dDLENBQUM7RUFDWjtFQUVBLFNBQVNJLGVBQWVBLENBQUMzQixLQUEyQixFQUFFNEIsVUFBZSxFQUFFckMsR0FBUSxFQUFPO0lBQ2xGLElBQUlBLEdBQUcsS0FBSyxJQUFJLElBQUlrQixPQUFBLENBQU9sQixHQUFHLE1BQUssUUFBUSxJQUFJNEIsS0FBSyxDQUFDQyxPQUFPLENBQUM3QixHQUFHLENBQUMsRUFBRTtNQUMvRCxPQUFPRixZQUFZLENBQUMsUUFBUSxFQUFFRSxHQUFHLENBQUM7SUFDdEM7SUFDQSxJQUFNc0MsTUFBVyxHQUFHLENBQUMsQ0FBQztJQUN0QkMsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQy9CLEtBQUssQ0FBQyxDQUFDQyxPQUFPLENBQUMsVUFBQXpCLEdBQUcsRUFBSTtNQUM3QyxJQUFNd0QsSUFBSSxHQUFHaEMsS0FBSyxDQUFDeEIsR0FBRyxDQUFDO01BQ3ZCLElBQU15RCxDQUFDLEdBQUdILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQzdDLEdBQUcsRUFBRWYsR0FBRyxDQUFDLEdBQUdlLEdBQUcsQ0FBQ2YsR0FBRyxDQUFDLEdBQUdrQixTQUFTO01BQy9FbUMsTUFBTSxDQUFDRyxJQUFJLENBQUN4RCxHQUFHLENBQUMsR0FBRzhCLFNBQVMsQ0FBQzJCLENBQUMsRUFBRUQsSUFBSSxDQUFDMUMsR0FBRyxFQUFFaUIsUUFBUSxFQUFFeUIsSUFBSSxDQUFDeEQsR0FBRyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUNGc0QsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQ3hDLEdBQUcsQ0FBQyxDQUFDVSxPQUFPLENBQUMsVUFBQXpCLEdBQUcsRUFBSTtNQUMzQyxJQUFJLENBQUNzRCxNQUFNLENBQUNJLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNwQyxLQUFLLEVBQUV4QixHQUFHLENBQUMsRUFBRTtRQUNuRHFELE1BQU0sQ0FBQ3JELEdBQUcsQ0FBQyxHQUFHOEIsU0FBUyxDQUFDZixHQUFHLENBQUNmLEdBQUcsQ0FBQyxFQUFFb0QsVUFBVSxFQUFFckIsUUFBUSxFQUFFL0IsR0FBRyxDQUFDO01BQ2hFO0lBQ0osQ0FBQyxDQUFDO0lBQ0YsT0FBT3FELE1BQU07RUFDakI7RUFFQSxJQUFJdkMsR0FBRyxLQUFLLEtBQUssRUFBRSxPQUFPQyxHQUFHO0VBQzdCLElBQUlELEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDZCxJQUFJQyxHQUFHLEtBQUssSUFBSSxFQUFFLE9BQU9BLEdBQUc7SUFDNUIsT0FBT0YsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUNqQztFQUNBLElBQUlELEdBQUcsS0FBSyxLQUFLLEVBQUUsT0FBT0QsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUNoRCxPQUFPa0IsT0FBQSxDQUFPbkIsR0FBRyxNQUFLLFFBQVEsSUFBSUEsR0FBRyxDQUFDK0MsR0FBRyxLQUFLM0MsU0FBUyxFQUFFO0lBQ3JESixHQUFHLEdBQUdnRCxPQUFPLENBQUNoRCxHQUFHLENBQUMrQyxHQUFHLENBQUM7RUFDMUI7RUFDQSxJQUFJbEIsS0FBSyxDQUFDQyxPQUFPLENBQUM5QixHQUFHLENBQUMsRUFBRSxPQUFPeUIsYUFBYSxDQUFDekIsR0FBRyxFQUFFQyxHQUFHLENBQUM7RUFDdEQsSUFBSWtCLE9BQUEsQ0FBT25CLEdBQUcsTUFBSyxRQUFRLEVBQUU7SUFDekIsT0FBT0EsR0FBRyxDQUFDNkMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxHQUFHekIsY0FBYyxDQUFDcEIsR0FBRyxDQUFDaUQsWUFBWSxFQUFFaEQsR0FBRyxDQUFDLEdBQzNFRCxHQUFHLENBQUM2QyxjQUFjLENBQUMsWUFBWSxDQUFDLEdBQU1qQixjQUFjLENBQUM1QixHQUFHLENBQUNrRCxVQUFVLEVBQUVqRCxHQUFHLENBQUMsR0FDekVELEdBQUcsQ0FBQzZDLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBV1IsZUFBZSxDQUFDcEIsUUFBUSxDQUFDakIsR0FBRyxDQUFDLEVBQUVBLEdBQUcsQ0FBQ3NDLFVBQVUsRUFBRXJDLEdBQUcsQ0FBQyxHQUN6RkYsWUFBWSxDQUFDQyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztFQUNoQztFQUNBO0VBQ0EsSUFBSUQsR0FBRyxLQUFLa0MsSUFBSSxJQUFJLE9BQU9qQyxHQUFHLEtBQUssUUFBUSxFQUFFLE9BQU8rQixhQUFhLENBQUMvQixHQUFHLENBQUM7RUFDdEUsT0FBT2lCLGtCQUFrQixDQUFDbEIsR0FBRyxFQUFFQyxHQUFHLENBQUM7QUFDdkM7QUFFQSxTQUFTWCxJQUFJQSxDQUFJVyxHQUFRLEVBQUVELEdBQVEsRUFBSztFQUNwQyxPQUFPZ0IsU0FBUyxDQUFDZixHQUFHLEVBQUVELEdBQUcsRUFBRU8sYUFBYSxDQUFDO0FBQzdDO0FBRUEsU0FBU1gsTUFBTUEsQ0FBSUssR0FBTSxFQUFFRCxHQUFRLEVBQU87RUFDdEMsT0FBT2dCLFNBQVMsQ0FBQ2YsR0FBRyxFQUFFRCxHQUFHLEVBQUVjLGFBQWEsQ0FBQztBQUM3QztBQUVBLFNBQVNxQyxDQUFDQSxDQUFDbkQsR0FBUSxFQUFFO0VBQ2pCLE9BQU87SUFBRWtELFVBQVUsRUFBRWxEO0VBQUksQ0FBQztBQUM5QjtBQUVBLFNBQVNvRCxDQUFDQSxDQUFBLEVBQWlCO0VBQUEsU0FBQUMsSUFBQSxHQUFBbkQsU0FBQSxDQUFBQyxNQUFBLEVBQWJrQixJQUFJLE9BQUFRLEtBQUEsQ0FBQXdCLElBQUEsR0FBQUMsSUFBQSxNQUFBQSxJQUFBLEdBQUFELElBQUEsRUFBQUMsSUFBQTtJQUFKakMsSUFBSSxDQUFBaUMsSUFBQSxJQUFBcEQsU0FBQSxDQUFBb0QsSUFBQTtFQUFBO0VBQ2QsT0FBTztJQUFFTCxZQUFZLEVBQUU1QjtFQUFLLENBQUM7QUFDakM7QUFFQSxTQUFTa0MsQ0FBQ0EsQ0FBQzdDLEtBQVksRUFBRTRCLFVBQWUsRUFBRTtFQUN0QyxPQUFPO0lBQUU1QixLQUFLLEVBQUxBLEtBQUs7SUFBRTRCLFVBQVUsRUFBVkE7RUFBVyxDQUFDO0FBQ2hDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTN0MsQ0FBQ0EsQ0FBQytELElBQVksRUFBRTtFQUNyQixPQUFPO0lBQUVULEdBQUcsRUFBRVM7RUFBSyxDQUFDO0FBQ3hCO0FBRUEsSUFBTVIsT0FBWSxHQUFHO0VBQ2pCLFdBQVcsRUFBRU8sQ0FBQyxDQUFDLENBQ1g7SUFBRWxFLElBQUksRUFBRSxXQUFXO0lBQUV3QixFQUFFLEVBQUUsV0FBVztJQUFFYixHQUFHLEVBQUVQLENBQUMsQ0FBQyxnQkFBZ0I7RUFBRSxDQUFDLENBQ25FLEVBQUUsS0FBSyxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUU4RCxDQUFDLENBQUMsQ0FDaEI7SUFBRWxFLElBQUksRUFBRSxVQUFVO0lBQUV3QixFQUFFLEVBQUUsVUFBVTtJQUFFYixHQUFHLEVBQUVtRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsVUFBVSxDQUFDO0VBQUUsQ0FBQyxDQUM5RCxFQUFFLEtBQUssQ0FBQztFQUNULGlCQUFpQixFQUFFOEQsQ0FBQyxDQUFDLENBQ2pCO0lBQUVsRSxJQUFJLEVBQUUsVUFBVTtJQUFFd0IsRUFBRSxFQUFFLFVBQVU7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsVUFBVTtFQUFFLENBQUMsQ0FDM0QsRUFBRSxLQUFLLENBQUM7RUFDVCxVQUFVLEVBQUU4RCxDQUFDLENBQUMsQ0FDVjtJQUFFbEUsSUFBSSxFQUFFLFFBQVE7SUFBRXdCLEVBQUUsRUFBRSxRQUFRO0lBQUViLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDekM7SUFBRVgsSUFBSSxFQUFFLFlBQVk7SUFBRXdCLEVBQUUsRUFBRSxZQUFZO0lBQUViLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDakQ7SUFBRVgsSUFBSSxFQUFFLFdBQVc7SUFBRXdCLEVBQUUsRUFBRSxXQUFXO0lBQUViLEdBQUcsRUFBRVAsQ0FBQyxDQUFDLGlCQUFpQjtFQUFFLENBQUMsRUFDakU7SUFBRUosSUFBSSxFQUFFLEtBQUs7SUFBRXdCLEVBQUUsRUFBRSxLQUFLO0lBQUViLEdBQUcsRUFBRTtFQUFHLENBQUMsRUFDbkM7SUFBRVgsSUFBSSxFQUFFLGFBQWE7SUFBRXdCLEVBQUUsRUFBRSxhQUFhO0lBQUViLEdBQUcsRUFBRVAsQ0FBQyxDQUFDLGFBQWE7RUFBRSxDQUFDLEVBQ2pFO0lBQUVKLElBQUksRUFBRSxNQUFNO0lBQUV3QixFQUFFLEVBQUUsTUFBTTtJQUFFYixHQUFHLEVBQUVQLENBQUMsQ0FBQyxNQUFNO0VBQUUsQ0FBQyxFQUM1QztJQUFFSixJQUFJLEVBQUUsY0FBYztJQUFFd0IsRUFBRSxFQUFFLGNBQWM7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsY0FBYztFQUFFLENBQUMsRUFDcEU7SUFBRUosSUFBSSxFQUFFLFFBQVE7SUFBRXdCLEVBQUUsRUFBRSxRQUFRO0lBQUViLEdBQUcsRUFBRVAsQ0FBQyxDQUFDLFFBQVE7RUFBRSxDQUFDLEVBQ2xEO0lBQUVKLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUVQLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxFQUNsRDtJQUFFSixJQUFJLEVBQUUsWUFBWTtJQUFFd0IsRUFBRSxFQUFFLFlBQVk7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsWUFBWTtFQUFFLENBQUMsRUFDOUQ7SUFBRUosSUFBSSxFQUFFLGdCQUFnQjtJQUFFd0IsRUFBRSxFQUFFLGdCQUFnQjtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUMzRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUVXLFNBQVM7RUFBRSxDQUFDLEVBQzlGO0lBQUVmLElBQUksRUFBRSxlQUFlO0lBQUV3QixFQUFFLEVBQUUsZUFBZTtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUMzRCxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFVyxTQUFTO0VBQUUsQ0FBQyxFQUMzRjtJQUFFZixJQUFJLEVBQUUsU0FBUztJQUFFd0IsRUFBRSxFQUFFLFNBQVM7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDM0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRVcsU0FBUztFQUFFLENBQUMsRUFDekU7SUFBRWYsSUFBSSxFQUFFLGFBQWE7SUFBRXdCLEVBQUUsRUFBRSxhQUFhO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQzNELENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUVXLFNBQVM7RUFBRSxDQUFDLEVBQ3JGO0lBQUVmLElBQUksRUFBRSxpQkFBaUI7SUFBRXdCLEVBQUUsRUFBRSxpQkFBaUI7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDM0QsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxFQUFFVyxTQUFTO0VBQUUsQ0FBQyxDQUNwRyxFQUFFLEtBQUssQ0FBQztFQUNULFFBQVEsRUFBRW1ELENBQUMsQ0FBQyxDQUNSO0lBQUVsRSxJQUFJLEVBQUUsVUFBVTtJQUFFd0IsRUFBRSxFQUFFLFVBQVU7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsVUFBVTtFQUFFLENBQUMsRUFDeEQ7SUFBRUosSUFBSSxFQUFFLFFBQVE7SUFBRXdCLEVBQUUsRUFBRSxRQUFRO0lBQUViLEdBQUcsRUFBRVAsQ0FBQyxDQUFDLFFBQVE7RUFBRSxDQUFDLENBQ3JELEVBQUUsS0FBSyxDQUFDO0VBQ1QsUUFBUSxFQUFFOEQsQ0FBQyxDQUFDLENBQ1I7SUFBRWxFLElBQUksRUFBRSxXQUFXO0lBQUV3QixFQUFFLEVBQUUsV0FBVztJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQy9DO0lBQUVYLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pDO0lBQUVYLElBQUksRUFBRSxXQUFXO0lBQUV3QixFQUFFLEVBQUUsV0FBVztJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLENBQ2xELEVBQUUsS0FBSyxDQUFDO0VBQ1QsVUFBVSxFQUFFdUQsQ0FBQyxDQUFDLENBQ1Y7SUFBRWxFLElBQUksRUFBRSxXQUFXO0lBQUV3QixFQUFFLEVBQUUsV0FBVztJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQy9DO0lBQUVYLElBQUksRUFBRSxXQUFXO0lBQUV3QixFQUFFLEVBQUUsV0FBVztJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLENBQ2xELEVBQUUsS0FBSyxDQUFDO0VBQ1QsU0FBUyxFQUFFdUQsQ0FBQyxDQUFDLENBQ1Q7SUFBRWxFLElBQUksRUFBRSxhQUFhO0lBQUV3QixFQUFFLEVBQUUsYUFBYTtJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ25EO0lBQUVYLElBQUksRUFBRSxnQkFBZ0I7SUFBRXdCLEVBQUUsRUFBRSxnQkFBZ0I7SUFBRWIsR0FBRyxFQUFFO0VBQUcsQ0FBQyxFQUN6RDtJQUFFWCxJQUFJLEVBQUUsYUFBYTtJQUFFd0IsRUFBRSxFQUFFLGFBQWE7SUFBRWIsR0FBRyxFQUFFO0VBQUcsQ0FBQyxFQUNuRDtJQUFFWCxJQUFJLEVBQUUsUUFBUTtJQUFFd0IsRUFBRSxFQUFFLFFBQVE7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDM0QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUk7RUFBRSxDQUFDLENBQzlELEVBQUUsS0FBSyxDQUFDO0VBQ1QsYUFBYSxFQUFFOEQsQ0FBQyxDQUFDLENBQ2I7SUFBRWxFLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pDO0lBQUVYLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLEVBQ3pDO0lBQUVYLElBQUksRUFBRSxhQUFhO0lBQUV3QixFQUFFLEVBQUUsYUFBYTtJQUFFYixHQUFHLEVBQUU7RUFBRyxDQUFDLENBQ3RELEVBQUUsS0FBSyxDQUFDO0VBQ1QsY0FBYyxFQUFFdUQsQ0FBQyxDQUFDLENBQ2Q7SUFBRWxFLElBQUksRUFBRSxVQUFVO0lBQUV3QixFQUFFLEVBQUUsVUFBVTtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUk7RUFBRSxDQUFDLEVBQ3REO0lBQUUvRCxJQUFJLEVBQUUsYUFBYTtJQUFFd0IsRUFBRSxFQUFFLGFBQWE7SUFBRWIsR0FBRyxFQUFFO0VBQUssQ0FBQyxFQUNyRDtJQUFFWCxJQUFJLEVBQUUsVUFBVTtJQUFFd0IsRUFBRSxFQUFFLFVBQVU7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsU0FBUztFQUFFLENBQUMsQ0FDMUQsRUFBRSxLQUFLLENBQUM7RUFDVCxTQUFTLEVBQUU4RCxDQUFDLENBQUMsQ0FDVDtJQUFFbEUsSUFBSSxFQUFFLFNBQVM7SUFBRXdCLEVBQUUsRUFBRSxTQUFTO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSTtFQUFFLENBQUMsQ0FDdkQsRUFBRSxLQUFLLENBQUM7RUFDVCxZQUFZLEVBQUVHLENBQUMsQ0FBQyxDQUNaO0lBQUVsRSxJQUFJLEVBQUUsV0FBVztJQUFFd0IsRUFBRSxFQUFFLFdBQVc7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDRCxDQUFDLENBQUMxRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFQSxDQUFDLENBQUMsa0JBQWtCLENBQUM7RUFBRSxDQUFDLENBQ2xHLEVBQUUsS0FBSyxDQUFDO0VBQ1Qsa0JBQWtCLEVBQUU4RCxDQUFDLENBQUMsQ0FDbEI7SUFBRWxFLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUVQLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxFQUNsRDtJQUFFSixJQUFJLEVBQUUsY0FBYztJQUFFd0IsRUFBRSxFQUFFLGNBQWM7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsUUFBUTtFQUFFLENBQUMsQ0FDakUsRUFBRSxLQUFLLENBQUM7RUFDVCxRQUFRLEVBQUU4RCxDQUFDLENBQUMsQ0FDUjtJQUFFbEUsSUFBSSxFQUFFLFFBQVE7SUFBRXdCLEVBQUUsRUFBRSxRQUFRO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQzNELENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJO0VBQUUsQ0FBQyxFQUMzRDtJQUFFSixJQUFJLEVBQUUsUUFBUTtJQUFFd0IsRUFBRSxFQUFFLFFBQVE7SUFBRWIsR0FBRyxFQUFFO0VBQUcsQ0FBQyxFQUN6QztJQUFFWCxJQUFJLEVBQUUsUUFBUTtJQUFFd0IsRUFBRSxFQUFFLFFBQVE7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJO0VBQUUsQ0FBQyxFQUNsRDtJQUFFL0QsSUFBSSxFQUFFLE9BQU87SUFBRXdCLEVBQUUsRUFBRSxPQUFPO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSTtFQUFFLENBQUMsRUFDaEQ7SUFBRS9ELElBQUksRUFBRSxlQUFlO0lBQUV3QixFQUFFLEVBQUUsZUFBZTtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUk7RUFBRSxDQUFDLEVBQ2hFO0lBQUUvRCxJQUFJLEVBQUUsY0FBYztJQUFFd0IsRUFBRSxFQUFFLGNBQWM7SUFBRWIsR0FBRyxFQUFFb0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJO0VBQUUsQ0FBQyxDQUNqRSxFQUFFLEtBQUssQ0FBQztFQUNULGdCQUFnQixFQUFFRyxDQUFDLENBQUMsQ0FDaEI7SUFBRWxFLElBQUksRUFBRSxlQUFlO0lBQUV3QixFQUFFLEVBQUUsZUFBZTtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUNELENBQUMsQ0FBQzFELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFQSxDQUFDLENBQUMsT0FBTyxDQUFDO0VBQUUsQ0FBQyxDQUNwRixFQUFFLEtBQUssQ0FBQztFQUNULE9BQU8sRUFBRThELENBQUMsQ0FBQyxDQUNQO0lBQUVsRSxJQUFJLEVBQUUsUUFBUTtJQUFFd0IsRUFBRSxFQUFFLFFBQVE7SUFBRWIsR0FBRyxFQUFFUCxDQUFDLENBQUMsUUFBUTtFQUFFLENBQUMsRUFDbEQ7SUFBRUosSUFBSSxFQUFFLE9BQU87SUFBRXdCLEVBQUUsRUFBRSxPQUFPO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSTtFQUFFLENBQUMsRUFDaEQ7SUFBRS9ELElBQUksRUFBRSxTQUFTO0lBQUV3QixFQUFFLEVBQUUsU0FBUztJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUNoRCxTQUFTLEVBQUUsRUFBRTtFQUFDLENBQUMsQ0FDM0QsRUFBRSxLQUFLLENBQUM7RUFDVCxlQUFlLEVBQUVtRCxDQUFDLENBQUMsQ0FDZjtJQUFFbEUsSUFBSSxFQUFFLGNBQWM7SUFBRXdCLEVBQUUsRUFBRSxjQUFjO0lBQUViLEdBQUcsRUFBRW9ELENBQUMsQ0FBQ0QsQ0FBQyxDQUFDMUQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUVBLENBQUMsQ0FBQyxPQUFPLENBQUM7RUFBRSxDQUFDLENBQ2xGLEVBQUUsS0FBSyxDQUFDO0VBQ1QsYUFBYSxFQUFFOEQsQ0FBQyxDQUFDLENBQ2I7SUFBRWxFLElBQUksRUFBRSxRQUFRO0lBQUV3QixFQUFFLEVBQUUsUUFBUTtJQUFFYixHQUFHLEVBQUVQLENBQUMsQ0FBQyxRQUFRO0VBQUUsQ0FBQyxFQUNsRDtJQUFFSixJQUFJLEVBQUUsaUJBQWlCO0lBQUV3QixFQUFFLEVBQUUsaUJBQWlCO0lBQUViLEdBQUcsRUFBRTtFQUFHLENBQUMsQ0FDOUQsRUFBRSxLQUFLLENBQUM7RUFDVCxpQkFBaUIsRUFBRXVELENBQUMsQ0FBQyxDQUNqQjtJQUFFbEUsSUFBSSxFQUFFLGdCQUFnQjtJQUFFd0IsRUFBRSxFQUFFLGdCQUFnQjtJQUFFYixHQUFHLEVBQUVvRCxDQUFDLENBQUNELENBQUMsQ0FBQzFELENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUVBLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztFQUFFLENBQUMsQ0FDeEcsRUFBRSxLQUFLLENBQUM7RUFDVCxnQkFBZ0IsRUFBRThELENBQUMsQ0FBQyxDQUNoQjtJQUFFbEUsSUFBSSxFQUFFLFFBQVE7SUFBRXdCLEVBQUUsRUFBRSxRQUFRO0lBQUViLEdBQUcsRUFBRVAsQ0FBQyxDQUFDLFFBQVE7RUFBRSxDQUFDLENBQ3JELEVBQUUsS0FBSyxDQUFDO0VBQ1QsaUJBQWlCLEVBQUUsQ0FDZixxQkFBcUIsRUFDckIsMkJBQTJCLEVBQzNCLG9CQUFvQixDQUN2QjtFQUNELFFBQVEsRUFBRSxDQUNOLGFBQWEsRUFDYixlQUFlLEVBQ2YsVUFBVSxDQUNiO0VBQ0QsTUFBTSxFQUFFLENBQ0osSUFBSSxFQUNKLElBQUksRUFDSixNQUFNO0FBRWQsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|