@tricoteuses/assemblee 1.0.6 → 1.1.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.
Files changed (135) hide show
  1. package/lib/api.js +3 -9
  2. package/lib/api.mjs +4 -5
  3. package/lib/bugs/acteur-00010/plugin.test.js +3 -50
  4. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  5. package/lib/bugs/acteur-00010.js +2 -57
  6. package/lib/bugs/acteur-00010.mjs +1 -6
  7. package/lib/bugs/agenda-00002/plugin.test.js +3 -53
  8. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -3
  9. package/lib/bugs/agenda-00002.js +3 -148
  10. package/lib/bugs/agenda-00002.mjs +1 -28
  11. package/lib/bugs/agenda-00008/plugin.test.js +3 -52
  12. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00008.js +2 -61
  14. package/lib/bugs/agenda-00008.mjs +1 -5
  15. package/lib/bugs/agenda-00011/plugin.test.js +5 -99
  16. package/lib/bugs/agenda-00011/plugin.test.mjs +3 -3
  17. package/lib/bugs/agenda-00011.js +4 -105
  18. package/lib/bugs/agenda-00011.mjs +3 -29
  19. package/lib/bugs.js +3 -164
  20. package/lib/bugs.mjs +1 -26
  21. package/lib/cleaners/actes_legislatifs.js +11 -115
  22. package/lib/cleaners/actes_legislatifs.mjs +7 -82
  23. package/lib/cleaners/acteurs.js +12 -92
  24. package/lib/cleaners/acteurs.mjs +7 -38
  25. package/lib/cleaners/amendements.js +10 -103
  26. package/lib/cleaners/amendements.mjs +4 -58
  27. package/lib/cleaners/documents.js +5 -67
  28. package/lib/cleaners/documents.mjs +1 -37
  29. package/lib/cleaners/dossiers_legislatifs.js +5 -61
  30. package/lib/cleaners/dossiers_legislatifs.mjs +1 -29
  31. package/lib/cleaners/index.js +1 -9
  32. package/lib/cleaners/index.mjs +1 -1
  33. package/lib/cleaners/organes.js +1 -33
  34. package/lib/cleaners/organes.mjs +1 -17
  35. package/lib/cleaners/reunions.js +4 -119
  36. package/lib/cleaners/reunions.mjs +1 -64
  37. package/lib/cleaners/scrutins.js +10 -102
  38. package/lib/cleaners/scrutins.mjs +1 -48
  39. package/lib/cleaners/xml.js +8 -42
  40. package/lib/cleaners/xml.mjs +6 -8
  41. package/lib/datasets.js +14 -113
  42. package/lib/datasets.mjs +6 -46
  43. package/lib/dates.js +7 -37
  44. package/lib/dates.mjs +9 -14
  45. package/lib/dossiers_legislatifs.js +6 -68
  46. package/lib/dossiers_legislatifs.mjs +5 -36
  47. package/lib/file_systems.js +56 -139
  48. package/lib/file_systems.mjs +1 -9
  49. package/lib/git.js +4 -53
  50. package/lib/git.mjs +1 -12
  51. package/lib/index.js +1 -15
  52. package/lib/index.mjs +1 -1
  53. package/lib/inserters.js +23 -146
  54. package/lib/inserters.mjs +6 -87
  55. package/lib/loaders.js +44 -316
  56. package/lib/loaders.mjs +12 -135
  57. package/lib/organes.js +1 -7
  58. package/lib/organes.mjs +1 -4
  59. package/lib/parsers/documents.js +22 -151
  60. package/lib/parsers/documents.mjs +19 -81
  61. package/lib/parsers/index.js +1 -4
  62. package/lib/parsers/index.mjs +1 -1
  63. package/lib/parsers/recherche_amendements.js +302 -527
  64. package/lib/parsers/recherche_amendements.mjs +8 -31
  65. package/lib/raw_types/acteurs_et_organes.d.ts +1 -30
  66. package/lib/raw_types/acteurs_et_organes.js +5 -124
  67. package/lib/raw_types/acteurs_et_organes.mjs +5 -105
  68. package/lib/raw_types/agendas.js +6 -89
  69. package/lib/raw_types/agendas.mjs +9 -65
  70. package/lib/raw_types/amendements.d.ts +2 -0
  71. package/lib/raw_types/amendements.js +10 -90
  72. package/lib/raw_types/amendements.mjs +11 -69
  73. package/lib/raw_types/dossiers_legislatifs.d.ts +16 -115
  74. package/lib/raw_types/dossiers_legislatifs.js +26 -435
  75. package/lib/raw_types/dossiers_legislatifs.mjs +26 -412
  76. package/lib/raw_types/scrutins.js +6 -81
  77. package/lib/raw_types/scrutins.mjs +9 -57
  78. package/lib/scripts/bugs_helper.js +2 -181
  79. package/lib/scripts/bugs_helper.mjs +2 -39
  80. package/lib/scripts/clean_data.js +27 -143
  81. package/lib/scripts/clean_data.mjs +15 -34
  82. package/lib/scripts/clean_reorganized_data.js +76 -240
  83. package/lib/scripts/clean_reorganized_data.mjs +36 -99
  84. package/lib/scripts/diff_amendements.js +19 -79
  85. package/lib/scripts/diff_amendements.mjs +17 -35
  86. package/lib/scripts/document_dossiers_legislatifs.js +17 -142
  87. package/lib/scripts/document_dossiers_legislatifs.mjs +6 -90
  88. package/lib/scripts/get_today_reunions.js +4 -22
  89. package/lib/scripts/get_today_reunions.mjs +1 -7
  90. package/lib/scripts/merge_scrutins.js +3 -47
  91. package/lib/scripts/merge_scrutins.mjs +1 -9
  92. package/lib/scripts/parse_textes_lois.js +15 -44
  93. package/lib/scripts/parse_textes_lois.mjs +18 -19
  94. package/lib/scripts/raw_types_from_amendements.js +3 -95
  95. package/lib/scripts/raw_types_from_amendements.mjs +1 -16
  96. package/lib/scripts/reorganize_data.js +74 -294
  97. package/lib/scripts/reorganize_data.mjs +22 -133
  98. package/lib/scripts/retrieve_deputes_photos.js +6 -119
  99. package/lib/scripts/retrieve_deputes_photos.mjs +7 -33
  100. package/lib/scripts/retrieve_documents.js +4 -192
  101. package/lib/scripts/retrieve_documents.mjs +2 -50
  102. package/lib/scripts/retrieve_open_data.js +44 -116
  103. package/lib/scripts/retrieve_open_data.mjs +14 -19
  104. package/lib/scripts/retrieve_pending_amendments.js +4 -98
  105. package/lib/scripts/retrieve_pending_amendments.mjs +1 -14
  106. package/lib/scripts/retrieve_senateurs_photos.js +18 -114
  107. package/lib/scripts/retrieve_senateurs_photos.mjs +20 -48
  108. package/lib/scripts/retrieve_textes_lois.js +3 -122
  109. package/lib/scripts/retrieve_textes_lois.mjs +3 -21
  110. package/lib/scripts/test_load.js +2 -10
  111. package/lib/scripts/test_load.mjs +2 -1
  112. package/lib/scripts/test_load_big_files.js +2 -10
  113. package/lib/scripts/test_load_big_files.mjs +2 -1
  114. package/lib/scripts/validate_json.js +4 -119
  115. package/lib/scripts/validate_json.mjs +2 -36
  116. package/lib/shared_types/codes_actes.js +1 -24
  117. package/lib/shared_types/codes_actes.mjs +3 -10
  118. package/lib/strings.js +1 -5
  119. package/lib/strings.mjs +1 -1
  120. package/lib/types/acteurs_et_organes.js +9 -84
  121. package/lib/types/acteurs_et_organes.mjs +10 -63
  122. package/lib/types/agendas.js +8 -90
  123. package/lib/types/agendas.mjs +11 -66
  124. package/lib/types/amendements.d.ts +2 -0
  125. package/lib/types/amendements.js +12 -92
  126. package/lib/types/amendements.mjs +15 -70
  127. package/lib/types/dossiers_legislatifs.js +8 -96
  128. package/lib/types/dossiers_legislatifs.mjs +10 -72
  129. package/lib/types/legislatures.js +1 -3
  130. package/lib/types/legislatures.mjs +1 -2
  131. package/lib/types/scrutins.js +8 -82
  132. package/lib/types/scrutins.mjs +11 -58
  133. package/lib/urls.js +3 -27
  134. package/lib/urls.mjs +3 -21
  135. package/package.json +1 -1
@@ -1,18 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.Legislature = void 0;
9
8
  var Legislature;
10
9
  exports.Legislature = Legislature;
11
-
12
10
  (function (Legislature) {
13
11
  Legislature["Quatorze"] = "14";
14
12
  Legislature["Quinze"] = "15";
15
13
  Legislature["Seize"] = "16";
16
14
  Legislature["All"] = "*";
17
15
  })(Legislature || (exports.Legislature = Legislature = {}));
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9sZWdpc2xhdHVyZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTGVnaXNsYXR1cmUge1xuICBRdWF0b3J6ZSA9IFwiMTRcIixcbiAgUXVpbnplID0gXCIxNVwiLFxuICBTZWl6ZSA9IFwiMTZcIixcbiAgQWxsID0gXCIqXCIsXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0lBQVlBLFc7OztXQUFBQSxXO0VBQUFBLFc7RUFBQUEsVztFQUFBQSxXO0VBQUFBLFc7R0FBQUEsVywyQkFBQUEsVyJ9
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9sZWdpc2xhdHVyZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTGVnaXNsYXR1cmUge1xuICBRdWF0b3J6ZSA9IFwiMTRcIixcbiAgUXVpbnplID0gXCIxNVwiLFxuICBTZWl6ZSA9IFwiMTZcIixcbiAgQWxsID0gXCIqXCIsXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7SUFBWUEsV0FBVztBQUFBO0FBQUEsV0FBWEEsV0FBVztFQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0FBQUEsR0FBWEEsV0FBVywyQkFBWEEsV0FBVyJ9
@@ -1,9 +1,8 @@
1
1
  export let Legislature;
2
-
3
2
  (function (Legislature) {
4
3
  Legislature["Quatorze"] = "14";
5
4
  Legislature["Quinze"] = "15";
6
5
  Legislature["Seize"] = "16";
7
6
  Legislature["All"] = "*";
8
7
  })(Legislature || (Legislature = {}));
9
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9sZWdpc2xhdHVyZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTGVnaXNsYXR1cmUge1xuICBRdWF0b3J6ZSA9IFwiMTRcIixcbiAgUXVpbnplID0gXCIxNVwiLFxuICBTZWl6ZSA9IFwiMTZcIixcbiAgQWxsID0gXCIqXCIsXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFdBQVlBLFdBQVo7O1dBQVlBLFc7RUFBQUEsVztFQUFBQSxXO0VBQUFBLFc7RUFBQUEsVztHQUFBQSxXLEtBQUFBLFcifQ==
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMZWdpc2xhdHVyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9sZWdpc2xhdHVyZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTGVnaXNsYXR1cmUge1xuICBRdWF0b3J6ZSA9IFwiMTRcIixcbiAgUXVpbnplID0gXCIxNVwiLFxuICBTZWl6ZSA9IFwiMTZcIixcbiAgQWxsID0gXCIqXCIsXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFdBQVlBLFdBQVc7QUFLdEIsV0FMV0EsV0FBVztFQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFYQSxXQUFXO0FBQUEsR0FBWEEsV0FBVyxLQUFYQSxXQUFXIn0=
@@ -1,50 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.symbol.js");
4
-
5
4
  require("core-js/modules/es.symbol.description.js");
6
-
7
5
  require("core-js/modules/es.symbol.iterator.js");
8
-
9
6
  require("core-js/modules/es.array.iterator.js");
10
-
11
7
  require("core-js/modules/es.string.iterator.js");
12
-
13
8
  require("core-js/modules/web.dom-collections.iterator.js");
14
-
15
9
  Object.defineProperty(exports, "__esModule", {
16
10
  value: true
17
11
  });
18
12
  exports.TypeMajorite = exports.PositionMajoritaire = exports.ModePublicationDesVotes = exports.LibelleTypeVote = exports.Libelle = exports.Convert = exports.CodeTypeVote = exports.Code = exports.CausePositionVote = void 0;
19
-
20
13
  require("core-js/modules/es.array.concat.js");
21
-
22
14
  require("core-js/modules/es.array.for-each.js");
23
-
24
15
  require("core-js/modules/es.object.to-string.js");
25
-
26
16
  require("core-js/modules/web.dom-collections.for-each.js");
27
-
28
17
  require("core-js/modules/es.array.index-of.js");
29
-
30
18
  require("core-js/modules/es.array.is-array.js");
31
-
32
19
  require("core-js/modules/es.array.map.js");
33
-
34
20
  require("core-js/modules/es.date.to-string.js");
35
-
36
21
  require("core-js/modules/es.object.get-own-property-names.js");
37
-
38
22
  require("core-js/modules/es.object.define-property.js");
39
-
40
23
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
41
-
42
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
43
-
44
25
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
45
-
46
26
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
47
-
48
27
  // To parse this data:
49
28
  //
50
29
  // import { Convert, Scrutins } from "./file";
@@ -55,83 +34,65 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
55
34
  // match the expected interface, even if the JSON is valid.
56
35
  var ModePublicationDesVotes;
57
36
  exports.ModePublicationDesVotes = ModePublicationDesVotes;
58
-
59
37
  (function (ModePublicationDesVotes) {
60
38
  ModePublicationDesVotes["DecompteDissidentsPositionGroupe"] = "DecompteDissidentsPositionGroupe";
61
39
  ModePublicationDesVotes["DecompteNominatif"] = "DecompteNominatif";
62
40
  })(ModePublicationDesVotes || (exports.ModePublicationDesVotes = ModePublicationDesVotes = {}));
63
-
64
41
  var Code;
65
42
  exports.Code = Code;
66
-
67
43
  (function (Code) {
68
44
  Code["Adopt\xE9"] = "adopt\xE9";
69
45
  Code["Rejet\xE9"] = "rejet\xE9";
70
46
  })(Code || (exports.Code = Code = {}));
71
-
72
47
  var Libelle;
73
48
  exports.Libelle = Libelle;
74
-
75
49
  (function (Libelle) {
76
50
  Libelle["LAssembl\xE9eNationaleAAdopt\xE9"] = "l'Assembl\xE9e nationale a adopt\xE9";
77
51
  Libelle["LAssembl\xE9eNationaleNAPasAdopt\xE9"] = "L'Assembl\xE9e nationale n'a pas adopt\xE9";
78
52
  })(Libelle || (exports.Libelle = Libelle = {}));
79
-
80
53
  var CodeTypeVote;
81
54
  exports.CodeTypeVote = CodeTypeVote;
82
-
83
55
  (function (CodeTypeVote) {
84
56
  CodeTypeVote["Moc"] = "MOC";
85
57
  CodeTypeVote["Sat"] = "SAT";
86
58
  CodeTypeVote["Spo"] = "SPO";
87
59
  CodeTypeVote["Sps"] = "SPS";
88
60
  })(CodeTypeVote || (exports.CodeTypeVote = CodeTypeVote = {}));
89
-
90
61
  var LibelleTypeVote;
91
62
  exports.LibelleTypeVote = LibelleTypeVote;
92
-
93
63
  (function (LibelleTypeVote) {
94
64
  LibelleTypeVote["MotionDeCensure"] = "motion de censure";
95
65
  LibelleTypeVote["ScrutinPublicOrdinaire"] = "scrutin public ordinaire";
96
66
  LibelleTypeVote["ScrutinPublicSolennel"] = "scrutin public solennel";
97
67
  LibelleTypeVote["Scrutin\xC0LaTribune"] = "scrutin \xE0 la tribune";
98
68
  })(LibelleTypeVote || (exports.LibelleTypeVote = LibelleTypeVote = {}));
99
-
100
69
  var TypeMajorite;
101
70
  exports.TypeMajorite = TypeMajorite;
102
-
103
71
  (function (TypeMajorite) {
104
72
  TypeMajorite["Majorit\xE9AbsolueDesSuffragesExprim\xE9s"] = "majorit\xE9 absolue des suffrages exprim\xE9s";
105
73
  TypeMajorite["Majorit\xE9DesMembresComposantLAssembl\xE9eNationale"] = "majorit\xE9 des membres composant l'Assembl\xE9e nationale";
106
74
  TypeMajorite["Majorit\xE9DesMembresComposantsComposantLAssembl\xE9e"] = "majorit\xE9 des membres composants composant l'Assembl\xE9e";
107
75
  TypeMajorite["Majorit\xE9DesMembresComposantsComposantLAssembl\xE9eNationale"] = "majorit\xE9 des membres composants composant l'Assembl\xE9e nationale";
108
76
  })(TypeMajorite || (exports.TypeMajorite = TypeMajorite = {}));
109
-
110
77
  var CausePositionVote;
111
78
  exports.CausePositionVote = CausePositionVote;
112
-
113
79
  (function (CausePositionVote) {
114
80
  CausePositionVote["Mg"] = "MG";
115
81
  CausePositionVote["Pan"] = "PAN";
116
82
  CausePositionVote["Pse"] = "PSE";
117
83
  })(CausePositionVote || (exports.CausePositionVote = CausePositionVote = {}));
118
-
119
84
  var PositionMajoritaire; // Converts JSON strings to/from your types
120
85
  // and asserts the results of JSON.parse at runtime
121
-
122
86
  exports.PositionMajoritaire = PositionMajoritaire;
123
-
124
87
  (function (PositionMajoritaire) {
125
88
  PositionMajoritaire["Abstention"] = "abstention";
126
89
  PositionMajoritaire["Contre"] = "contre";
127
90
  PositionMajoritaire["Pour"] = "pour";
128
91
  })(PositionMajoritaire || (exports.PositionMajoritaire = PositionMajoritaire = {}));
129
-
130
92
  var Convert = /*#__PURE__*/function () {
131
93
  function Convert() {
132
94
  _classCallCheck(this, Convert);
133
95
  }
134
-
135
96
  _createClass(Convert, null, [{
136
97
  key: "toScrutins",
137
98
  value: function toScrutins(json) {
@@ -153,22 +114,16 @@ var Convert = /*#__PURE__*/function () {
153
114
  return JSON.stringify(uncast(value, r("Scrutin")), null, 2);
154
115
  }
155
116
  }]);
156
-
157
117
  return Convert;
158
118
  }();
159
-
160
119
  exports.Convert = Convert;
161
-
162
120
  function invalidValue(typ, val) {
163
121
  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
164
-
165
122
  if (key) {
166
123
  throw Error("Invalid value for key \"".concat(key, "\". Expected type ").concat(JSON.stringify(typ), " but got ").concat(JSON.stringify(val)));
167
124
  }
168
-
169
125
  throw Error("Invalid value ".concat(JSON.stringify(val), " for type ").concat(JSON.stringify(typ)));
170
126
  }
171
-
172
127
  function jsonToJSProps(typ) {
173
128
  if (typ.jsonToJS === undefined) {
174
129
  var map = {};
@@ -180,10 +135,8 @@ function jsonToJSProps(typ) {
180
135
  });
181
136
  typ.jsonToJS = map;
182
137
  }
183
-
184
138
  return typ.jsonToJS;
185
139
  }
186
-
187
140
  function jsToJSONProps(typ) {
188
141
  if (typ.jsToJSON === undefined) {
189
142
  var map = {};
@@ -195,38 +148,29 @@ function jsToJSONProps(typ) {
195
148
  });
196
149
  typ.jsToJSON = map;
197
150
  }
198
-
199
151
  return typ.jsToJSON;
200
152
  }
201
-
202
153
  function transform(val, typ, getProps) {
203
154
  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
204
-
205
155
  function transformPrimitive(typ, val) {
206
156
  if (_typeof(typ) === _typeof(val)) return val;
207
157
  return invalidValue(typ, val, key);
208
158
  }
209
-
210
159
  function transformUnion(typs, val) {
211
160
  // val must validate against one typ in typs
212
161
  var l = typs.length;
213
-
214
162
  for (var i = 0; i < l; i++) {
215
163
  var _typ = typs[i];
216
-
217
164
  try {
218
165
  return transform(val, _typ, getProps);
219
166
  } catch (_) {}
220
167
  }
221
-
222
168
  return invalidValue(typs, val);
223
169
  }
224
-
225
170
  function transformEnum(cases, val) {
226
171
  if (cases.indexOf(val) !== -1) return val;
227
172
  return invalidValue(cases, val);
228
173
  }
229
-
230
174
  function transformArray(typ, val) {
231
175
  // val must be an array with no invalid elements
232
176
  if (!Array.isArray(val)) return invalidValue("array", val);
@@ -234,26 +178,20 @@ function transform(val, typ, getProps) {
234
178
  return transform(el, typ, getProps);
235
179
  });
236
180
  }
237
-
238
181
  function transformDate(val) {
239
182
  if (val === null) {
240
183
  return null;
241
184
  }
242
-
243
185
  var d = new Date(val);
244
-
245
186
  if (isNaN(d.valueOf())) {
246
187
  return invalidValue("Date", val);
247
188
  }
248
-
249
189
  return d;
250
190
  }
251
-
252
191
  function transformObject(props, additional, val) {
253
192
  if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
254
193
  return invalidValue("object", val);
255
194
  }
256
-
257
195
  var result = {};
258
196
  Object.getOwnPropertyNames(props).forEach(function (key) {
259
197
  var prop = props[key];
@@ -267,70 +205,58 @@ function transform(val, typ, getProps) {
267
205
  });
268
206
  return result;
269
207
  }
270
-
271
208
  if (typ === "any") return val;
272
-
273
209
  if (typ === null) {
274
210
  if (val === null) return val;
275
211
  return invalidValue(typ, val);
276
- } // if (typ === false) return invalidValue(typ, val)
277
-
278
-
212
+ }
213
+ // if (typ === false) return invalidValue(typ, val)
279
214
  while (_typeof(typ) === "object" && typ.ref !== undefined) {
280
215
  typ = typeMap[typ.ref];
281
216
  }
282
-
283
217
  if (Array.isArray(typ)) return transformEnum(typ, val);
284
-
285
218
  if (_typeof(typ) === "object") {
286
219
  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);
287
- } // Numbers can be parsed by Date but shouldn't be.
288
-
289
-
220
+ }
221
+ // Numbers can be parsed by Date but shouldn't be.
290
222
  if (typ === Date && typeof val !== "number") return transformDate(val);
291
223
  return transformPrimitive(typ, val);
292
224
  }
293
-
294
225
  function cast(val, typ) {
295
226
  return transform(val, typ, jsonToJSProps);
296
227
  }
297
-
298
228
  function uncast(val, typ) {
299
229
  return transform(val, typ, jsToJSONProps);
300
230
  }
301
-
302
231
  function a(typ) {
303
232
  return {
304
233
  arrayItems: typ
305
234
  };
306
235
  }
307
-
308
236
  function u() {
309
237
  for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
310
238
  typs[_key] = arguments[_key];
311
239
  }
312
-
313
240
  return {
314
241
  unionMembers: typs
315
242
  };
316
243
  }
317
-
318
244
  function o(props, additional) {
319
245
  return {
320
246
  props: props,
321
247
  additional: additional
322
248
  };
323
- } // function m(additional: any) {
249
+ }
250
+
251
+ // function m(additional: any) {
324
252
  // return { props: [], additional }
325
253
  // }
326
254
 
327
-
328
255
  function r(name) {
329
256
  return {
330
257
  ref: name
331
258
  };
332
259
  }
333
-
334
260
  var typeMap = {
335
261
  Scrutins: o([{
336
262
  json: "scrutins",
@@ -608,4 +534,4 @@ var typeMap = {
608
534
  CausePositionVote: ["MG", "PAN", "PSE"],
609
535
  PositionMajoritaire: ["abstention", "contre", "pour"]
610
536
  };
611
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlUHVibGljYXRpb25EZXNWb3RlcyIsIkNvZGUiLCJMaWJlbGxlIiwiQ29kZVR5cGVWb3RlIiwiTGliZWxsZVR5cGVWb3RlIiwiVHlwZU1ham9yaXRlIiwiQ2F1c2VQb3NpdGlvblZvdGUiLCJQb3NpdGlvbk1ham9yaXRhaXJlIiwiQ29udmVydCIsImpzb24iLCJjYXN0IiwiSlNPTiIsInBhcnNlIiwiciIsInZhbHVlIiwic3RyaW5naWZ5IiwidW5jYXN0IiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwia2V5IiwiRXJyb3IiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJ1bmRlZmluZWQiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJsZW5ndGgiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJvIiwibmFtZSIsIlNjcnV0aW5zIiwiU2NydXRpbiIsIkRlbWFuZGV1ciIsIk1pc2VBdVBvaW50IiwiRHlzZm9uY3Rpb25uZW1lbnQiLCJPYmpldCIsIlNvcnRTY3J1dGluIiwiU3ludGhlc2VWb3RlIiwiVHlwZVZvdGUiLCJPcmdhbmUiLCJHcm91cGUiLCJWb3RlIiwiRGVjb21wdGVOb21pbmF0aWYiLCJWb3RhbnQiLCJEZWNvbXB0ZVZvaXgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gcGFyc2UgdGhpcyBkYXRhOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29udmVydCwgU2NydXRpbnMgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBzY3J1dGlucyA9IENvbnZlcnQudG9TY3J1dGlucyhqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcnV0aW5zIHtcbiAgc2NydXRpbnM6IFNjcnV0aW5bXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcnV0aW4ge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nXG4gIHVpZDogc3RyaW5nXG4gIG51bWVybzogc3RyaW5nXG4gIG9yZ2FuZVJlZjogc3RyaW5nXG4gIGxlZ2lzbGF0dXJlOiBzdHJpbmdcbiAgc2Vzc2lvblJlZjogc3RyaW5nXG4gIHNlYW5jZVJlZjogc3RyaW5nXG4gIGRhdGVTY3J1dGluOiBEYXRlXG4gIHF1YW50aWVtZUpvdXJTZWFuY2U6IHN0cmluZ1xuICB0eXBlVm90ZTogVHlwZVZvdGVcbiAgc29ydDogU29ydFNjcnV0aW5cbiAgdGl0cmU6IHN0cmluZ1xuICBkZW1hbmRldXI6IERlbWFuZGV1clxuICBvYmpldDogT2JqZXRcbiAgbW9kZVB1YmxpY2F0aW9uRGVzVm90ZXM6IE1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXG4gIHN5bnRoZXNlVm90ZTogU3ludGhlc2VWb3RlXG4gIHZlbnRpbGF0aW9uVm90ZXM6IE9yZ2FuZVxuICBtaXNlQXVQb2ludD86IE1pc2VBdVBvaW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVtYW5kZXVyIHtcbiAgdGV4dGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXNlQXVQb2ludCB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBWb3RhbnRbXVxuICBkeXNmb25jdGlvbm5lbWVudD86IER5c2ZvbmN0aW9ubmVtZW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHlzZm9uY3Rpb25uZW1lbnQge1xuICBub25Wb3RhbnRzPzogVm90YW50W11cbiAgcG91cj86IFZvdGFudFtdXG4gIGNvbnRyZT86IFZvdGFudFtdXG4gIGFic3RlbnRpb25zPzogVm90YW50W11cbiAgbm9uVm90YW50c1ZvbG9udGFpcmVzPzogVm90YW50W11cbn1cblxuZXhwb3J0IGVudW0gTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXMge1xuICBEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZSA9IFwiRGVjb21wdGVEaXNzaWRlbnRzUG9zaXRpb25Hcm91cGVcIixcbiAgRGVjb21wdGVOb21pbmF0aWYgPSBcIkRlY29tcHRlTm9taW5hdGlmXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZXQge1xuICBsaWJlbGxlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U2NydXRpbiB7XG4gIGNvZGU6IENvZGVcbiAgbGliZWxsZTogTGliZWxsZVxufVxuXG5leHBvcnQgZW51bSBDb2RlIHtcbiAgQWRvcHTDqSA9IFwiYWRvcHTDqVwiLFxuICBSZWpldMOpID0gXCJyZWpldMOpXCIsXG59XG5cbmV4cG9ydCBlbnVtIExpYmVsbGUge1xuICBMQXNzZW1ibMOpZU5hdGlvbmFsZUFBZG9wdMOpID0gXCJsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIGEgYWRvcHTDqVwiLFxuICBMQXNzZW1ibMOpZU5hdGlvbmFsZU5BUGFzQWRvcHTDqSA9IFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTeW50aGVzZVZvdGUge1xuICBub21icmVWb3RhbnRzOiBzdHJpbmdcbiAgc3VmZnJhZ2VzRXhwcmltZXM6IHN0cmluZ1xuICBuYnJTdWZmcmFnZXNSZXF1aXM6IHN0cmluZ1xuICBhbm5vbmNlOiBMaWJlbGxlXG4gIGRlY29tcHRlOiBEZWNvbXB0ZVZvaXhcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlVm90ZSB7XG4gIGNvZGVUeXBlVm90ZTogQ29kZVR5cGVWb3RlXG4gIGxpYmVsbGVUeXBlVm90ZTogTGliZWxsZVR5cGVWb3RlXG4gIHR5cGVNYWpvcml0ZTogVHlwZU1ham9yaXRlXG59XG5cbmV4cG9ydCBlbnVtIENvZGVUeXBlVm90ZSB7XG4gIE1vYyA9IFwiTU9DXCIsXG4gIFNhdCA9IFwiU0FUXCIsXG4gIFNwbyA9IFwiU1BPXCIsXG4gIFNwcyA9IFwiU1BTXCIsXG59XG5cbmV4cG9ydCBlbnVtIExpYmVsbGVUeXBlVm90ZSB7XG4gIE1vdGlvbkRlQ2Vuc3VyZSA9IFwibW90aW9uIGRlIGNlbnN1cmVcIixcbiAgU2NydXRpblB1YmxpY09yZGluYWlyZSA9IFwic2NydXRpbiBwdWJsaWMgb3JkaW5haXJlXCIsXG4gIFNjcnV0aW5QdWJsaWNTb2xlbm5lbCA9IFwic2NydXRpbiBwdWJsaWMgc29sZW5uZWxcIixcbiAgU2NydXRpbsOATGFUcmlidW5lID0gXCJzY3J1dGluIMOgIGxhIHRyaWJ1bmVcIixcbn1cblxuZXhwb3J0IGVudW0gVHlwZU1ham9yaXRlIHtcbiAgTWFqb3JpdMOpQWJzb2x1ZURlc1N1ZmZyYWdlc0V4cHJpbcOpcyA9IFwibWFqb3JpdMOpIGFic29sdWUgZGVzIHN1ZmZyYWdlcyBleHByaW3DqXNcIixcbiAgTWFqb3JpdMOpRGVzTWVtYnJlc0NvbXBvc2FudExBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgTWFqb3JpdMOpRGVzTWVtYnJlc0NvbXBvc2FudHNDb21wb3NhbnRMQXNzZW1ibMOpZSA9IFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZVwiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50c0NvbXBvc2FudExBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50cyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ2FuZSB7XG4gIG9yZ2FuZVJlZjogc3RyaW5nXG4gIGdyb3VwZXM6IEdyb3VwZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlIHtcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgbm9tYnJlTWVtYnJlc0dyb3VwZTogc3RyaW5nXG4gIHZvdGU6IFZvdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWb3RlIHtcbiAgcG9zaXRpb25NYWpvcml0YWlyZTogUG9zaXRpb25NYWpvcml0YWlyZVxuICBkZWNvbXB0ZVZvaXg6IERlY29tcHRlVm9peFxuICBkZWNvbXB0ZU5vbWluYXRpZjogRGVjb21wdGVOb21pbmF0aWZcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZU5vbWluYXRpZiB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZvdGFudCB7XG4gIGFjdGV1clJlZjogc3RyaW5nXG4gIG1hbmRhdFJlZjogc3RyaW5nXG4gIGNhdXNlUG9zaXRpb25Wb3RlPzogQ2F1c2VQb3NpdGlvblZvdGVcbiAgcGFyRGVsZWdhdGlvbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gQ2F1c2VQb3NpdGlvblZvdGUge1xuICBNZyA9IFwiTUdcIixcbiAgUGFuID0gXCJQQU5cIixcbiAgUHNlID0gXCJQU0VcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZVZvaXgge1xuICBwb3VyOiBzdHJpbmdcbiAgY29udHJlOiBzdHJpbmdcbiAgbm9uVm90YW50cz86IHN0cmluZ1xuICBhYnN0ZW50aW9ucz86IHN0cmluZ1xuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gUG9zaXRpb25NYWpvcml0YWlyZSB7XG4gIEFic3RlbnRpb24gPSBcImFic3RlbnRpb25cIixcbiAgQ29udHJlID0gXCJjb250cmVcIixcbiAgUG91ciA9IFwicG91clwiLFxufVxuXG4vLyBDb252ZXJ0cyBKU09OIHN0cmluZ3MgdG8vZnJvbSB5b3VyIHR5cGVzXG4vLyBhbmQgYXNzZXJ0cyB0aGUgcmVzdWx0cyBvZiBKU09OLnBhcnNlIGF0IHJ1bnRpbWVcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcbiAgcHVibGljIHN0YXRpYyB0b1NjcnV0aW5zKGpzb246IHN0cmluZyk6IFNjcnV0aW5zIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiU2NydXRpbnNcIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcnV0aW5zVG9Kc29uKHZhbHVlOiBTY3J1dGlucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlNjcnV0aW5zXCIpKSwgbnVsbCwgMilcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9TY3J1dGluKGpzb246IHN0cmluZyk6IFNjcnV0aW4ge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJTY3J1dGluXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzY3J1dGluVG9Kc29uKHZhbHVlOiBTY3J1dGluKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiU2NydXRpblwiKSksIG51bGwsIDIpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogbmV2ZXIge1xuICBpZiAoa2V5KSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdHlwLFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCxcbiAgKVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc29uVG9KUyA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNvblRvSlNcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICA/IHRyYW5zZm9ybUFycmF5KHR5cC5hcnJheUl0ZW1zLCB2YWwpXG4gICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcInByb3BzXCIpXG4gICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfVxuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIFNjcnV0aW5zOiBvKFxuICAgIFt7IGpzb246IFwic2NydXRpbnNcIiwganM6IFwic2NydXRpbnNcIiwgdHlwOiBhKHIoXCJTY3J1dGluXCIpKSB9XSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU2NydXRpbjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwic2NoZW1hVmVyc2lvblwiLCBqczogXCJzY2hlbWFWZXJzaW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJudW1lcm9cIiwganM6IFwibnVtZXJvXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm9yZ2FuZVJlZlwiLCBqczogXCJvcmdhbmVSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic2Vzc2lvblJlZlwiLCBqczogXCJzZXNzaW9uUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInNlYW5jZVJlZlwiLCBqczogXCJzZWFuY2VSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZVNjcnV0aW5cIiwganM6IFwiZGF0ZVNjcnV0aW5cIiwgdHlwOiBEYXRlIH0sXG4gICAgICB7IGpzb246IFwicXVhbnRpZW1lSm91clNlYW5jZVwiLCBqczogXCJxdWFudGllbWVKb3VyU2VhbmNlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInR5cGVWb3RlXCIsIGpzOiBcInR5cGVWb3RlXCIsIHR5cDogcihcIlR5cGVWb3RlXCIpIH0sXG4gICAgICB7IGpzb246IFwic29ydFwiLCBqczogXCJzb3J0XCIsIHR5cDogcihcIlNvcnRTY3J1dGluXCIpIH0sXG4gICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZGVtYW5kZXVyXCIsIGpzOiBcImRlbWFuZGV1clwiLCB0eXA6IHIoXCJEZW1hbmRldXJcIikgfSxcbiAgICAgIHsganNvbjogXCJvYmpldFwiLCBqczogXCJvYmpldFwiLCB0eXA6IHIoXCJPYmpldFwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsXG4gICAgICAgIGpzOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsXG4gICAgICAgIHR5cDogcihcIk1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJzeW50aGVzZVZvdGVcIiwganM6IFwic3ludGhlc2VWb3RlXCIsIHR5cDogcihcIlN5bnRoZXNlVm90ZVwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInZlbnRpbGF0aW9uVm90ZXNcIixcbiAgICAgICAganM6IFwidmVudGlsYXRpb25Wb3Rlc1wiLFxuICAgICAgICB0eXA6IHIoXCJPcmdhbmVcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm1pc2VBdVBvaW50XCIsXG4gICAgICAgIGpzOiBcIm1pc2VBdVBvaW50XCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJNaXNlQXVQb2ludFwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIERlbWFuZGV1cjogbyhbeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH1dLCBmYWxzZSksXG4gIE1pc2VBdVBvaW50OiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvdXJcIixcbiAgICAgICAganM6IFwicG91clwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29udHJlXCIsXG4gICAgICAgIGpzOiBcImNvbnRyZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAganM6IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImR5c2ZvbmN0aW9ubmVtZW50XCIsXG4gICAgICAgIGpzOiBcImR5c2ZvbmN0aW9ubmVtZW50XCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEeXNmb25jdGlvbm5lbWVudFwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIER5c2ZvbmN0aW9ubmVtZW50OiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvdXJcIixcbiAgICAgICAganM6IFwicG91clwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29udHJlXCIsXG4gICAgICAgIGpzOiBcImNvbnRyZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAganM6IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE9iamV0OiBvKFt7IGpzb246IFwibGliZWxsZVwiLCBqczogXCJsaWJlbGxlXCIsIHR5cDogXCJcIiB9XSwgZmFsc2UpLFxuICBTb3J0U2NydXRpbjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVwiLCBqczogXCJjb2RlXCIsIHR5cDogcihcIkNvZGVcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiByKFwiTGliZWxsZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFN5bnRoZXNlVm90ZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwibm9tYnJlVm90YW50c1wiLCBqczogXCJub21icmVWb3RhbnRzXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInN1ZmZyYWdlc0V4cHJpbWVzXCIsIGpzOiBcInN1ZmZyYWdlc0V4cHJpbWVzXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm5iclN1ZmZyYWdlc1JlcXVpc1wiLCBqczogXCJuYnJTdWZmcmFnZXNSZXF1aXNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiYW5ub25jZVwiLCBqczogXCJhbm5vbmNlXCIsIHR5cDogcihcIkxpYmVsbGVcIikgfSxcbiAgICAgIHsganNvbjogXCJkZWNvbXB0ZVwiLCBqczogXCJkZWNvbXB0ZVwiLCB0eXA6IHIoXCJEZWNvbXB0ZVZvaXhcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBUeXBlVm90ZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVR5cGVWb3RlXCIsIGpzOiBcImNvZGVUeXBlVm90ZVwiLCB0eXA6IHIoXCJDb2RlVHlwZVZvdGVcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJsaWJlbGxlVHlwZVZvdGVcIixcbiAgICAgICAganM6IFwibGliZWxsZVR5cGVWb3RlXCIsXG4gICAgICAgIHR5cDogcihcIkxpYmVsbGVUeXBlVm90ZVwiKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwidHlwZU1ham9yaXRlXCIsIGpzOiBcInR5cGVNYWpvcml0ZVwiLCB0eXA6IHIoXCJUeXBlTWFqb3JpdGVcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBPcmdhbmU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm9yZ2FuZVJlZlwiLCBqczogXCJvcmdhbmVSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZ3JvdXBlc1wiLCBqczogXCJncm91cGVzXCIsIHR5cDogYShyKFwiR3JvdXBlXCIpKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEdyb3VwZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub21icmVNZW1icmVzR3JvdXBlXCIsIGpzOiBcIm5vbWJyZU1lbWJyZXNHcm91cGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidm90ZVwiLCBqczogXCJ2b3RlXCIsIHR5cDogcihcIlZvdGVcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBWb3RlOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwb3NpdGlvbk1ham9yaXRhaXJlXCIsXG4gICAgICAgIGpzOiBcInBvc2l0aW9uTWFqb3JpdGFpcmVcIixcbiAgICAgICAgdHlwOiByKFwiUG9zaXRpb25NYWpvcml0YWlyZVwiKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwiZGVjb21wdGVWb2l4XCIsIGpzOiBcImRlY29tcHRlVm9peFwiLCB0eXA6IHIoXCJEZWNvbXB0ZVZvaXhcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLFxuICAgICAgICBqczogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLFxuICAgICAgICB0eXA6IHIoXCJEZWNvbXB0ZU5vbWluYXRpZlwiKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVjb21wdGVOb21pbmF0aWY6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgVm90YW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm1hbmRhdFJlZlwiLCBqczogXCJtYW5kYXRSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY2F1c2VQb3NpdGlvblZvdGVcIixcbiAgICAgICAganM6IFwiY2F1c2VQb3NpdGlvblZvdGVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkNhdXNlUG9zaXRpb25Wb3RlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwicGFyRGVsZWdhdGlvblwiLCBqczogXCJwYXJEZWxlZ2F0aW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIGZhbHNlKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIERlY29tcHRlVm9peDogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImNvbnRyZVwiLCBqczogXCJjb250cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibm9uVm90YW50c1wiLCBqczogXCJub25Wb3RhbnRzXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiYWJzdGVudGlvbnNcIiwganM6IFwiYWJzdGVudGlvbnNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBNb2RlUHVibGljYXRpb25EZXNWb3RlczogW1xuICAgIFwiRGVjb21wdGVEaXNzaWRlbnRzUG9zaXRpb25Hcm91cGVcIixcbiAgICBcIkRlY29tcHRlTm9taW5hdGlmXCIsXG4gIF0sXG4gIENvZGU6IFtcImFkb3B0w6lcIiwgXCJyZWpldMOpXCJdLFxuICBMaWJlbGxlOiBbXG4gICAgXCJsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIGEgYWRvcHTDqVwiLFxuICAgIFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbiAgXSxcbiAgQ29kZVR5cGVWb3RlOiBbXCJNT0NcIiwgXCJTQVRcIiwgXCJTUE9cIiwgXCJTUFNcIl0sXG4gIExpYmVsbGVUeXBlVm90ZTogW1xuICAgIFwibW90aW9uIGRlIGNlbnN1cmVcIixcbiAgICBcInNjcnV0aW4gcHVibGljIG9yZGluYWlyZVwiLFxuICAgIFwic2NydXRpbiBwdWJsaWMgc29sZW5uZWxcIixcbiAgICBcInNjcnV0aW4gw6AgbGEgdHJpYnVuZVwiLFxuICBdLFxuICBUeXBlTWFqb3JpdGU6IFtcbiAgICBcIm1ham9yaXTDqSBhYnNvbHVlIGRlcyBzdWZmcmFnZXMgZXhwcmltw6lzXCIsXG4gICAgXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWVcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG4gIF0sXG4gIENhdXNlUG9zaXRpb25Wb3RlOiBbXCJNR1wiLCBcIlBBTlwiLCBcIlBTRVwiXSxcbiAgUG9zaXRpb25NYWpvcml0YWlyZTogW1wiYWJzdGVudGlvblwiLCBcImNvbnRyZVwiLCBcInBvdXJcIl0sXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQWdEWUEsdUI7OztXQUFBQSx1QjtFQUFBQSx1QjtFQUFBQSx1QjtHQUFBQSx1Qix1Q0FBQUEsdUI7O0lB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
537
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlUHVibGljYXRpb25EZXNWb3RlcyIsIkNvZGUiLCJMaWJlbGxlIiwiQ29kZVR5cGVWb3RlIiwiTGliZWxsZVR5cGVWb3RlIiwiVHlwZU1ham9yaXRlIiwiQ2F1c2VQb3NpdGlvblZvdGUiLCJQb3NpdGlvbk1ham9yaXRhaXJlIiwiQ29udmVydCIsImpzb24iLCJjYXN0IiwiSlNPTiIsInBhcnNlIiwiciIsInZhbHVlIiwic3RyaW5naWZ5IiwidW5jYXN0IiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwia2V5IiwiRXJyb3IiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJ1bmRlZmluZWQiLCJtYXAiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJsZW5ndGgiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJvIiwibmFtZSIsIlNjcnV0aW5zIiwiU2NydXRpbiIsIkRlbWFuZGV1ciIsIk1pc2VBdVBvaW50IiwiRHlzZm9uY3Rpb25uZW1lbnQiLCJPYmpldCIsIlNvcnRTY3J1dGluIiwiU3ludGhlc2VWb3RlIiwiVHlwZVZvdGUiLCJPcmdhbmUiLCJHcm91cGUiLCJWb3RlIiwiRGVjb21wdGVOb21pbmF0aWYiLCJWb3RhbnQiLCJEZWNvbXB0ZVZvaXgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gcGFyc2UgdGhpcyBkYXRhOlxuLy9cbi8vICAgaW1wb3J0IHsgQ29udmVydCwgU2NydXRpbnMgfSBmcm9tIFwiLi9maWxlXCI7XG4vL1xuLy8gICBjb25zdCBzY3J1dGlucyA9IENvbnZlcnQudG9TY3J1dGlucyhqc29uKTtcbi8vXG4vLyBUaGVzZSBmdW5jdGlvbnMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgSlNPTiBkb2Vzbid0XG4vLyBtYXRjaCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBldmVuIGlmIHRoZSBKU09OIGlzIHZhbGlkLlxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcnV0aW5zIHtcbiAgc2NydXRpbnM6IFNjcnV0aW5bXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcnV0aW4ge1xuICBzY2hlbWFWZXJzaW9uPzogc3RyaW5nXG4gIHVpZDogc3RyaW5nXG4gIG51bWVybzogc3RyaW5nXG4gIG9yZ2FuZVJlZjogc3RyaW5nXG4gIGxlZ2lzbGF0dXJlOiBzdHJpbmdcbiAgc2Vzc2lvblJlZjogc3RyaW5nXG4gIHNlYW5jZVJlZjogc3RyaW5nXG4gIGRhdGVTY3J1dGluOiBEYXRlXG4gIHF1YW50aWVtZUpvdXJTZWFuY2U6IHN0cmluZ1xuICB0eXBlVm90ZTogVHlwZVZvdGVcbiAgc29ydDogU29ydFNjcnV0aW5cbiAgdGl0cmU6IHN0cmluZ1xuICBkZW1hbmRldXI6IERlbWFuZGV1clxuICBvYmpldDogT2JqZXRcbiAgbW9kZVB1YmxpY2F0aW9uRGVzVm90ZXM6IE1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXG4gIHN5bnRoZXNlVm90ZTogU3ludGhlc2VWb3RlXG4gIHZlbnRpbGF0aW9uVm90ZXM6IE9yZ2FuZVxuICBtaXNlQXVQb2ludD86IE1pc2VBdVBvaW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVtYW5kZXVyIHtcbiAgdGV4dGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaXNlQXVQb2ludCB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBWb3RhbnRbXVxuICBkeXNmb25jdGlvbm5lbWVudD86IER5c2ZvbmN0aW9ubmVtZW50XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHlzZm9uY3Rpb25uZW1lbnQge1xuICBub25Wb3RhbnRzPzogVm90YW50W11cbiAgcG91cj86IFZvdGFudFtdXG4gIGNvbnRyZT86IFZvdGFudFtdXG4gIGFic3RlbnRpb25zPzogVm90YW50W11cbiAgbm9uVm90YW50c1ZvbG9udGFpcmVzPzogVm90YW50W11cbn1cblxuZXhwb3J0IGVudW0gTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXMge1xuICBEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZSA9IFwiRGVjb21wdGVEaXNzaWRlbnRzUG9zaXRpb25Hcm91cGVcIixcbiAgRGVjb21wdGVOb21pbmF0aWYgPSBcIkRlY29tcHRlTm9taW5hdGlmXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT2JqZXQge1xuICBsaWJlbGxlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3J0U2NydXRpbiB7XG4gIGNvZGU6IENvZGVcbiAgbGliZWxsZTogTGliZWxsZVxufVxuXG5leHBvcnQgZW51bSBDb2RlIHtcbiAgQWRvcHTDqSA9IFwiYWRvcHTDqVwiLFxuICBSZWpldMOpID0gXCJyZWpldMOpXCIsXG59XG5cbmV4cG9ydCBlbnVtIExpYmVsbGUge1xuICBMQXNzZW1ibMOpZU5hdGlvbmFsZUFBZG9wdMOpID0gXCJsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIGEgYWRvcHTDqVwiLFxuICBMQXNzZW1ibMOpZU5hdGlvbmFsZU5BUGFzQWRvcHTDqSA9IFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTeW50aGVzZVZvdGUge1xuICBub21icmVWb3RhbnRzOiBzdHJpbmdcbiAgc3VmZnJhZ2VzRXhwcmltZXM6IHN0cmluZ1xuICBuYnJTdWZmcmFnZXNSZXF1aXM6IHN0cmluZ1xuICBhbm5vbmNlOiBMaWJlbGxlXG4gIGRlY29tcHRlOiBEZWNvbXB0ZVZvaXhcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlVm90ZSB7XG4gIGNvZGVUeXBlVm90ZTogQ29kZVR5cGVWb3RlXG4gIGxpYmVsbGVUeXBlVm90ZTogTGliZWxsZVR5cGVWb3RlXG4gIHR5cGVNYWpvcml0ZTogVHlwZU1ham9yaXRlXG59XG5cbmV4cG9ydCBlbnVtIENvZGVUeXBlVm90ZSB7XG4gIE1vYyA9IFwiTU9DXCIsXG4gIFNhdCA9IFwiU0FUXCIsXG4gIFNwbyA9IFwiU1BPXCIsXG4gIFNwcyA9IFwiU1BTXCIsXG59XG5cbmV4cG9ydCBlbnVtIExpYmVsbGVUeXBlVm90ZSB7XG4gIE1vdGlvbkRlQ2Vuc3VyZSA9IFwibW90aW9uIGRlIGNlbnN1cmVcIixcbiAgU2NydXRpblB1YmxpY09yZGluYWlyZSA9IFwic2NydXRpbiBwdWJsaWMgb3JkaW5haXJlXCIsXG4gIFNjcnV0aW5QdWJsaWNTb2xlbm5lbCA9IFwic2NydXRpbiBwdWJsaWMgc29sZW5uZWxcIixcbiAgU2NydXRpbsOATGFUcmlidW5lID0gXCJzY3J1dGluIMOgIGxhIHRyaWJ1bmVcIixcbn1cblxuZXhwb3J0IGVudW0gVHlwZU1ham9yaXRlIHtcbiAgTWFqb3JpdMOpQWJzb2x1ZURlc1N1ZmZyYWdlc0V4cHJpbcOpcyA9IFwibWFqb3JpdMOpIGFic29sdWUgZGVzIHN1ZmZyYWdlcyBleHByaW3DqXNcIixcbiAgTWFqb3JpdMOpRGVzTWVtYnJlc0NvbXBvc2FudExBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgTWFqb3JpdMOpRGVzTWVtYnJlc0NvbXBvc2FudHNDb21wb3NhbnRMQXNzZW1ibMOpZSA9IFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZVwiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50c0NvbXBvc2FudExBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50cyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ2FuZSB7XG4gIG9yZ2FuZVJlZjogc3RyaW5nXG4gIGdyb3VwZXM6IEdyb3VwZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBlIHtcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgbm9tYnJlTWVtYnJlc0dyb3VwZTogc3RyaW5nXG4gIHZvdGU6IFZvdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWb3RlIHtcbiAgcG9zaXRpb25NYWpvcml0YWlyZTogUG9zaXRpb25NYWpvcml0YWlyZVxuICBkZWNvbXB0ZVZvaXg6IERlY29tcHRlVm9peFxuICBkZWNvbXB0ZU5vbWluYXRpZjogRGVjb21wdGVOb21pbmF0aWZcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZU5vbWluYXRpZiB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZvdGFudCB7XG4gIGFjdGV1clJlZjogc3RyaW5nXG4gIG1hbmRhdFJlZjogc3RyaW5nXG4gIGNhdXNlUG9zaXRpb25Wb3RlPzogQ2F1c2VQb3NpdGlvblZvdGVcbiAgcGFyRGVsZWdhdGlvbj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGVudW0gQ2F1c2VQb3NpdGlvblZvdGUge1xuICBNZyA9IFwiTUdcIixcbiAgUGFuID0gXCJQQU5cIixcbiAgUHNlID0gXCJQU0VcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWNvbXB0ZVZvaXgge1xuICBwb3VyOiBzdHJpbmdcbiAgY29udHJlOiBzdHJpbmdcbiAgbm9uVm90YW50cz86IHN0cmluZ1xuICBhYnN0ZW50aW9ucz86IHN0cmluZ1xuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gUG9zaXRpb25NYWpvcml0YWlyZSB7XG4gIEFic3RlbnRpb24gPSBcImFic3RlbnRpb25cIixcbiAgQ29udHJlID0gXCJjb250cmVcIixcbiAgUG91ciA9IFwicG91clwiLFxufVxuXG4vLyBDb252ZXJ0cyBKU09OIHN0cmluZ3MgdG8vZnJvbSB5b3VyIHR5cGVzXG4vLyBhbmQgYXNzZXJ0cyB0aGUgcmVzdWx0cyBvZiBKU09OLnBhcnNlIGF0IHJ1bnRpbWVcbmV4cG9ydCBjbGFzcyBDb252ZXJ0IHtcbiAgcHVibGljIHN0YXRpYyB0b1NjcnV0aW5zKGpzb246IHN0cmluZyk6IFNjcnV0aW5zIHtcbiAgICByZXR1cm4gY2FzdChKU09OLnBhcnNlKGpzb24pLCByKFwiU2NydXRpbnNcIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcnV0aW5zVG9Kc29uKHZhbHVlOiBTY3J1dGlucyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHVuY2FzdCh2YWx1ZSwgcihcIlNjcnV0aW5zXCIpKSwgbnVsbCwgMilcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdG9TY3J1dGluKGpzb246IHN0cmluZyk6IFNjcnV0aW4ge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJTY3J1dGluXCIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBzY3J1dGluVG9Kc29uKHZhbHVlOiBTY3J1dGluKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiU2NydXRpblwiKSksIG51bGwsIDIpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogbmV2ZXIge1xuICBpZiAoa2V5KSB7XG4gICAgdGhyb3cgRXJyb3IoXG4gICAgICBgSW52YWxpZCB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCIuIEV4cGVjdGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgdHlwLFxuICAgICAgKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCxcbiAgICApXG4gIH1cbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfSBmb3IgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9YCxcbiAgKVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc29uVG9KUyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc29uXSA9IHsga2V5OiBwLmpzLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc29uVG9KUyA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNvblRvSlNcbn1cblxuZnVuY3Rpb24ganNUb0pTT05Qcm9wcyh0eXA6IGFueSk6IGFueSB7XG4gIGlmICh0eXAuanNUb0pTT04gPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IG1hcDogYW55ID0ge31cbiAgICB0eXAucHJvcHMuZm9yRWFjaCgocDogYW55KSA9PiAobWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KSlcbiAgICB0eXAuanNUb0pTT04gPSBtYXBcbiAgfVxuICByZXR1cm4gdHlwLmpzVG9KU09OXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybSh2YWw6IGFueSwgdHlwOiBhbnksIGdldFByb3BzOiBhbnksIGtleTogYW55ID0gXCJcIik6IGFueSB7XG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXA6IHN0cmluZywgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmICh0eXBlb2YgdHlwID09PSB0eXBlb2YgdmFsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5KVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtVW5pb24odHlwczogYW55W10sIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgIGNvbnN0IGwgPSB0eXBzLmxlbmd0aFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB0eXAgPSB0eXBzW2ldXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcylcbiAgICAgIH0gY2F0Y2ggKF8pIHt9XG4gICAgfVxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICBpZiAoY2FzZXMuaW5kZXhPZih2YWwpICE9PSAtMSkgcmV0dXJuIHZhbFxuICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMsIHZhbClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgYmUgYW4gYXJyYXkgd2l0aCBubyBpbnZhbGlkIGVsZW1lbnRzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBpbnZhbGlkVmFsdWUoXCJhcnJheVwiLCB2YWwpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwiRGF0ZVwiLCB2YWwpXG4gICAgfVxuICAgIHJldHVybiBkXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1PYmplY3QoXG4gICAgcHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAgIGFkZGl0aW9uYWw6IGFueSxcbiAgICB2YWw6IGFueSxcbiAgKTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKFwib2JqZWN0XCIsIHZhbClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywgcHJvcC5rZXkpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBpZiAodHlwID09PSBcImFueVwiKSByZXR1cm4gdmFsXG4gIGlmICh0eXAgPT09IG51bGwpIHtcbiAgICBpZiAodmFsID09PSBudWxsKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICA/IHRyYW5zZm9ybUFycmF5KHR5cC5hcnJheUl0ZW1zLCB2YWwpXG4gICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcInByb3BzXCIpXG4gICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwpXG4gIH1cbiAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgaWYgKHR5cCA9PT0gRGF0ZSAmJiB0eXBlb2YgdmFsICE9PSBcIm51bWJlclwiKSByZXR1cm4gdHJhbnNmb3JtRGF0ZSh2YWwpXG4gIHJldHVybiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwLCB2YWwpXG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzb25Ub0pTUHJvcHMpXG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNUb0pTT05Qcm9wcylcbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG4vLyBmdW5jdGlvbiBtKGFkZGl0aW9uYWw6IGFueSkge1xuLy8gICByZXR1cm4geyBwcm9wczogW10sIGFkZGl0aW9uYWwgfVxuLy8gfVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIFNjcnV0aW5zOiBvKFxuICAgIFt7IGpzb246IFwic2NydXRpbnNcIiwganM6IFwic2NydXRpbnNcIiwgdHlwOiBhKHIoXCJTY3J1dGluXCIpKSB9XSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU2NydXRpbjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwic2NoZW1hVmVyc2lvblwiLCBqczogXCJzY2hlbWFWZXJzaW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwidWlkXCIsIGpzOiBcInVpZFwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJudW1lcm9cIiwganM6IFwibnVtZXJvXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm9yZ2FuZVJlZlwiLCBqczogXCJvcmdhbmVSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibGVnaXNsYXR1cmVcIiwganM6IFwibGVnaXNsYXR1cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic2Vzc2lvblJlZlwiLCBqczogXCJzZXNzaW9uUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInNlYW5jZVJlZlwiLCBqczogXCJzZWFuY2VSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZVNjcnV0aW5cIiwganM6IFwiZGF0ZVNjcnV0aW5cIiwgdHlwOiBEYXRlIH0sXG4gICAgICB7IGpzb246IFwicXVhbnRpZW1lSm91clNlYW5jZVwiLCBqczogXCJxdWFudGllbWVKb3VyU2VhbmNlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInR5cGVWb3RlXCIsIGpzOiBcInR5cGVWb3RlXCIsIHR5cDogcihcIlR5cGVWb3RlXCIpIH0sXG4gICAgICB7IGpzb246IFwic29ydFwiLCBqczogXCJzb3J0XCIsIHR5cDogcihcIlNvcnRTY3J1dGluXCIpIH0sXG4gICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZGVtYW5kZXVyXCIsIGpzOiBcImRlbWFuZGV1clwiLCB0eXA6IHIoXCJEZW1hbmRldXJcIikgfSxcbiAgICAgIHsganNvbjogXCJvYmpldFwiLCBqczogXCJvYmpldFwiLCB0eXA6IHIoXCJPYmpldFwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsXG4gICAgICAgIGpzOiBcIm1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIsXG4gICAgICAgIHR5cDogcihcIk1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJzeW50aGVzZVZvdGVcIiwganM6IFwic3ludGhlc2VWb3RlXCIsIHR5cDogcihcIlN5bnRoZXNlVm90ZVwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInZlbnRpbGF0aW9uVm90ZXNcIixcbiAgICAgICAganM6IFwidmVudGlsYXRpb25Wb3Rlc1wiLFxuICAgICAgICB0eXA6IHIoXCJPcmdhbmVcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm1pc2VBdVBvaW50XCIsXG4gICAgICAgIGpzOiBcIm1pc2VBdVBvaW50XCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJNaXNlQXVQb2ludFwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIERlbWFuZGV1cjogbyhbeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH1dLCBmYWxzZSksXG4gIE1pc2VBdVBvaW50OiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvdXJcIixcbiAgICAgICAganM6IFwicG91clwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29udHJlXCIsXG4gICAgICAgIGpzOiBcImNvbnRyZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAganM6IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImR5c2ZvbmN0aW9ubmVtZW50XCIsXG4gICAgICAgIGpzOiBcImR5c2ZvbmN0aW9ubmVtZW50XCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIHIoXCJEeXNmb25jdGlvbm5lbWVudFwiKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIER5c2ZvbmN0aW9ubmVtZW50OiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcInBvdXJcIixcbiAgICAgICAganM6IFwicG91clwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY29udHJlXCIsXG4gICAgICAgIGpzOiBcImNvbnRyZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAganM6IFwiYWJzdGVudGlvbnNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE9iamV0OiBvKFt7IGpzb246IFwibGliZWxsZVwiLCBqczogXCJsaWJlbGxlXCIsIHR5cDogXCJcIiB9XSwgZmFsc2UpLFxuICBTb3J0U2NydXRpbjogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVwiLCBqczogXCJjb2RlXCIsIHR5cDogcihcIkNvZGVcIikgfSxcbiAgICAgIHsganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiByKFwiTGliZWxsZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFN5bnRoZXNlVm90ZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwibm9tYnJlVm90YW50c1wiLCBqczogXCJub21icmVWb3RhbnRzXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInN1ZmZyYWdlc0V4cHJpbWVzXCIsIGpzOiBcInN1ZmZyYWdlc0V4cHJpbWVzXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm5iclN1ZmZyYWdlc1JlcXVpc1wiLCBqczogXCJuYnJTdWZmcmFnZXNSZXF1aXNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiYW5ub25jZVwiLCBqczogXCJhbm5vbmNlXCIsIHR5cDogcihcIkxpYmVsbGVcIikgfSxcbiAgICAgIHsganNvbjogXCJkZWNvbXB0ZVwiLCBqczogXCJkZWNvbXB0ZVwiLCB0eXA6IHIoXCJEZWNvbXB0ZVZvaXhcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBUeXBlVm90ZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiY29kZVR5cGVWb3RlXCIsIGpzOiBcImNvZGVUeXBlVm90ZVwiLCB0eXA6IHIoXCJDb2RlVHlwZVZvdGVcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJsaWJlbGxlVHlwZVZvdGVcIixcbiAgICAgICAganM6IFwibGliZWxsZVR5cGVWb3RlXCIsXG4gICAgICAgIHR5cDogcihcIkxpYmVsbGVUeXBlVm90ZVwiKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwidHlwZU1ham9yaXRlXCIsIGpzOiBcInR5cGVNYWpvcml0ZVwiLCB0eXA6IHIoXCJUeXBlTWFqb3JpdGVcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBPcmdhbmU6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcIm9yZ2FuZVJlZlwiLCBqczogXCJvcmdhbmVSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiZ3JvdXBlc1wiLCBqczogXCJncm91cGVzXCIsIHR5cDogYShyKFwiR3JvdXBlXCIpKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEdyb3VwZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub21icmVNZW1icmVzR3JvdXBlXCIsIGpzOiBcIm5vbWJyZU1lbWJyZXNHcm91cGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidm90ZVwiLCBqczogXCJ2b3RlXCIsIHR5cDogcihcIlZvdGVcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBWb3RlOiBvKFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwb3NpdGlvbk1ham9yaXRhaXJlXCIsXG4gICAgICAgIGpzOiBcInBvc2l0aW9uTWFqb3JpdGFpcmVcIixcbiAgICAgICAgdHlwOiByKFwiUG9zaXRpb25NYWpvcml0YWlyZVwiKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwiZGVjb21wdGVWb2l4XCIsIGpzOiBcImRlY29tcHRlVm9peFwiLCB0eXA6IHIoXCJEZWNvbXB0ZVZvaXhcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLFxuICAgICAgICBqczogXCJkZWNvbXB0ZU5vbWluYXRpZlwiLFxuICAgICAgICB0eXA6IHIoXCJEZWNvbXB0ZU5vbWluYXRpZlwiKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVjb21wdGVOb21pbmF0aWY6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgVm90YW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJhY3RldXJSZWZcIiwganM6IFwiYWN0ZXVyUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm1hbmRhdFJlZlwiLCBqczogXCJtYW5kYXRSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiY2F1c2VQb3NpdGlvblZvdGVcIixcbiAgICAgICAganM6IFwiY2F1c2VQb3NpdGlvblZvdGVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkNhdXNlUG9zaXRpb25Wb3RlXCIpKSxcbiAgICAgIH0sXG4gICAgICB7IGpzb246IFwicGFyRGVsZWdhdGlvblwiLCBqczogXCJwYXJEZWxlZ2F0aW9uXCIsIHR5cDogdSh1bmRlZmluZWQsIGZhbHNlKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIERlY29tcHRlVm9peDogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwicG91clwiLCBqczogXCJwb3VyXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImNvbnRyZVwiLCBqczogXCJjb250cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibm9uVm90YW50c1wiLCBqczogXCJub25Wb3RhbnRzXCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiYWJzdGVudGlvbnNcIiwganM6IFwiYWJzdGVudGlvbnNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBNb2RlUHVibGljYXRpb25EZXNWb3RlczogW1xuICAgIFwiRGVjb21wdGVEaXNzaWRlbnRzUG9zaXRpb25Hcm91cGVcIixcbiAgICBcIkRlY29tcHRlTm9taW5hdGlmXCIsXG4gIF0sXG4gIENvZGU6IFtcImFkb3B0w6lcIiwgXCJyZWpldMOpXCJdLFxuICBMaWJlbGxlOiBbXG4gICAgXCJsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIGEgYWRvcHTDqVwiLFxuICAgIFwiTCdBc3NlbWJsw6llIG5hdGlvbmFsZSBuJ2EgcGFzIGFkb3B0w6lcIixcbiAgXSxcbiAgQ29kZVR5cGVWb3RlOiBbXCJNT0NcIiwgXCJTQVRcIiwgXCJTUE9cIiwgXCJTUFNcIl0sXG4gIExpYmVsbGVUeXBlVm90ZTogW1xuICAgIFwibW90aW9uIGRlIGNlbnN1cmVcIixcbiAgICBcInNjcnV0aW4gcHVibGljIG9yZGluYWlyZVwiLFxuICAgIFwic2NydXRpbiBwdWJsaWMgc29sZW5uZWxcIixcbiAgICBcInNjcnV0aW4gw6AgbGEgdHJpYnVuZVwiLFxuICBdLFxuICBUeXBlTWFqb3JpdGU6IFtcbiAgICBcIm1ham9yaXTDqSBhYnNvbHVlIGRlcyBzdWZmcmFnZXMgZXhwcmltw6lzXCIsXG4gICAgXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWVcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG4gIF0sXG4gIENhdXNlUG9zaXRpb25Wb3RlOiBbXCJNR1wiLCBcIlBBTlwiLCBcIlBTRVwiXSxcbiAgUG9zaXRpb25NYWpvcml0YWlyZTogW1wiYWJzdGVudGlvblwiLCBcImNvbnRyZVwiLCBcInBvdXJcIl0sXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLElBZ0RZQSx1QkFBdUI7QUFBQTtBQUFBLFdBQXZCQSx1QkFBdUI7RUFBdkJBLHVCQUF1QjtFQUF2QkEsdUJBQXVCO0FBQUEsR0FBdkJB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