@tricoteuses/assemblee 1.2.1 → 1.2.3

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 (58) hide show
  1. package/lib/api.d.ts +1 -0
  2. package/lib/api.js +2 -1
  3. package/lib/api.mjs +2 -1
  4. package/lib/bugs/acteur-00010/plugin.test.js +3 -3
  5. package/lib/bugs/acteur-00010.js +12 -20
  6. package/lib/bugs/agenda-00002/plugin.test.js +3 -3
  7. package/lib/bugs/agenda-00002.js +20 -36
  8. package/lib/bugs/agenda-00008/plugin.test.js +3 -3
  9. package/lib/bugs/agenda-00008.js +12 -20
  10. package/lib/bugs/agenda-00011/plugin.test.js +3 -3
  11. package/lib/bugs/agenda-00011.js +32 -60
  12. package/lib/bugs.js +45 -85
  13. package/lib/cleaners/acteurs.js +2 -2
  14. package/lib/cleaners/organes.js +2 -2
  15. package/lib/cleaners/reunions.js +2 -2
  16. package/lib/cleaners/xml.js +2 -2
  17. package/lib/datasets.js +3 -3
  18. package/lib/dossiers_legislatifs.js +3 -3
  19. package/lib/file_systems.js +3 -3
  20. package/lib/inserters.js +8 -1
  21. package/lib/inserters.mjs +8 -1
  22. package/lib/loaders.js +3 -3
  23. package/lib/parsers/documents.js +6 -9
  24. package/lib/parsers/recherche_amendements.js +16 -23
  25. package/lib/raw_types/acteurs_et_organes.d.ts +1 -0
  26. package/lib/raw_types/acteurs_et_organes.js +6 -2
  27. package/lib/raw_types/acteurs_et_organes.mjs +5 -1
  28. package/lib/raw_types/agendas.js +1 -1
  29. package/lib/raw_types/amendements.js +1 -1
  30. package/lib/raw_types/debats.js +1 -1
  31. package/lib/raw_types/dossiers_legislatifs.js +2 -2
  32. package/lib/raw_types/questions.js +1 -1
  33. package/lib/raw_types/scrutins.js +1 -1
  34. package/lib/scripts/bugs_helper.js +35 -66
  35. package/lib/scripts/clean_reorganized_data.js +4 -4
  36. package/lib/scripts/document_dossiers_legislatifs.js +7 -5
  37. package/lib/scripts/document_dossiers_legislatifs.mjs +4 -2
  38. package/lib/scripts/raw_types_from_amendements.js +8 -11
  39. package/lib/scripts/reorganize_data.js +4 -4
  40. package/lib/scripts/retrieve_deputes_photos.js +13 -16
  41. package/lib/scripts/retrieve_documents.js +11 -14
  42. package/lib/scripts/retrieve_open_data.js +6 -9
  43. package/lib/scripts/retrieve_pending_amendments.js +9 -12
  44. package/lib/scripts/retrieve_senateurs_photos.js +42 -45
  45. package/lib/scripts/retrieve_textes_lois.js +10 -13
  46. package/lib/scripts/validate_json.js +12 -19
  47. package/lib/shared_types/codes_actes.js +3 -3
  48. package/lib/types/acteurs_et_organes.d.ts +2 -0
  49. package/lib/types/acteurs_et_organes.js +6 -2
  50. package/lib/types/acteurs_et_organes.mjs +5 -1
  51. package/lib/types/agendas.js +1 -1
  52. package/lib/types/amendements.js +1 -1
  53. package/lib/types/debats.js +1 -1
  54. package/lib/types/dossiers_legislatifs.js +2 -2
  55. package/lib/types/questions.js +1 -1
  56. package/lib/types/scrutins.js +1 -1
  57. package/lib/urls.js +3 -3
  58. package/package.json +13 -6
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- 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); }
3
+ 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); }
4
4
  require("core-js/modules/es.date.to-string.js");
5
5
  require("core-js/modules/es.regexp.to-string.js");
6
6
  require("core-js/modules/es.function.name.js");
@@ -23,13 +23,11 @@ require("core-js/modules/es.object.set-prototype-of.js");
23
23
  require("core-js/modules/es.array.reverse.js");
24
24
  require("core-js/modules/es.weak-map.js");
25
25
  require("core-js/modules/es.object.get-own-property-descriptor.js");
26
- require("core-js/modules/es.regexp.exec.js");
27
- require("core-js/modules/es.string.match.js");
28
- require("core-js/modules/es.object.to-string.js");
29
- require("core-js/modules/es.promise.js");
30
26
  require("core-js/modules/es.array.sort.js");
31
27
  require("core-js/modules/es.array.filter.js");
28
+ require("core-js/modules/es.object.to-string.js");
32
29
  require("core-js/modules/es.object.values.js");
30
+ require("core-js/modules/es.regexp.exec.js");
33
31
  require("core-js/modules/es.string.replace.js");
34
32
  require("core-js/modules/es.string.trim.js");
35
33
  require("core-js/modules/es.array.concat.js");
@@ -37,6 +35,8 @@ require("core-js/modules/es.array.join.js");
37
35
  require("core-js/modules/es.array.slice.js");
38
36
  require("core-js/modules/es.array.iterator.js");
39
37
  require("core-js/modules/web.dom-collections.iterator.js");
38
+ require("core-js/modules/es.string.match.js");
39
+ require("core-js/modules/es.promise.js");
40
40
  var _child_process = require("child_process");
41
41
  var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
42
42
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
@@ -45,15 +45,16 @@ var _datasets = require("../datasets");
45
45
  var git = _interopRequireWildcard(require("../git"));
46
46
  var _loaders = require("../loaders");
47
47
  var _acteurs_et_organes = require("../types/acteurs_et_organes");
48
+ var _retrievePhotosSenateurs;
48
49
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
50
51
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
51
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
52
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
52
53
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
53
54
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
54
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
55
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
55
56
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
56
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
57
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
57
58
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
58
59
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
59
60
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
@@ -99,11 +100,8 @@ var optionsDefinitions = [{
99
100
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
100
101
  // const pipeline = util.promisify(stream.pipeline)
101
102
  function retrievePhotosSenateurs() {
102
- return _retrievePhotosSenateurs.apply(this, arguments);
103
- }
104
- function _retrievePhotosSenateurs() {
105
- _retrievePhotosSenateurs = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
106
- var dataDir, _loadAssembleeData, acteurByUid, senateurs, gitGroupUrl, photosDirName, photosDir, missingPhotoFilePath, _iterator3, _step3, senateur, ident, senateurStem, photoFilename, photoFilePath, photoTempFilename, photoTempFilePath, urlPhoto, _iterator4, _step4, _senateur2, _ident, _senateurStem2, photoByIdSenateur, rowsFilenames, senateurIndex, rowIndex, row, photosFilenames, _iterator5, _step5, _step5$value, columnIndex, _senateur, _senateurStem, _photoFilename, rowFilename, _i2, _rowsFilenames, _rowFilename, jsonFilePath;
103
+ return (_retrievePhotosSenateurs = _retrievePhotosSenateurs || _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
104
+ var dataDir, _loadAssembleeData, acteurByUid, senateurs, gitGroupUrl, photosDirName, photosDir, missingPhotoFilePath, _iterator2, _step2, senateur, ident, senateurStem, photoFilename, photoFilePath, photoTempFilename, photoTempFilePath, urlPhoto, _iterator3, _step3, _senateur2, _ident, _senateurStem2, photoByIdSenateur, rowsFilenames, senateurIndex, rowIndex, row, photosFilenames, _iterator4, _step4, _step4$value, columnIndex, _senateur, _senateurStem, _photoFilename, rowFilename, _i, _rowsFilenames, _rowFilename, jsonFilePath;
107
105
  return _regeneratorRuntime().wrap(function _callee$(_context) {
108
106
  while (1) switch (_context.prev = _context.next) {
109
107
  case 0:
@@ -127,19 +125,19 @@ function _retrievePhotosSenateurs() {
127
125
  return false;
128
126
  }
129
127
  var url = null;
130
- var _iterator2 = _createForOfIteratorHelper(adresses),
131
- _step2;
128
+ var _iterator = _createForOfIteratorHelper(adresses),
129
+ _step;
132
130
  try {
133
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
134
- var adresse = _step2.value;
131
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
132
+ var adresse = _step.value;
135
133
  if (adresse.xsiType === "AdresseSiteWeb_Type" && adresse.typeLibelle === "Url sénateur") {
136
134
  url = adresse.valElec;
137
135
  }
138
136
  }
139
137
  } catch (err) {
140
- _iterator2.e(err);
138
+ _iterator.e(err);
141
139
  } finally {
142
- _iterator2.f();
140
+ _iterator.f();
143
141
  }
144
142
  return Boolean(url);
145
143
  }).sort(function (a, b) {
@@ -175,10 +173,10 @@ function _retrievePhotosSenateurs() {
175
173
  _fsExtra["default"].ensureDirSync(photosDir);
176
174
  if (options.fetch) {
177
175
  missingPhotoFilePath = "images/transparent_155x225.jpg";
178
- _iterator3 = _createForOfIteratorHelper(senateurs);
176
+ _iterator2 = _createForOfIteratorHelper(senateurs);
179
177
  try {
180
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
181
- senateur = _step3.value;
178
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
179
+ senateur = _step2.value;
182
180
  ident = senateur.etatCivil.ident;
183
181
  senateurStem = stemFromSenateur(senateur);
184
182
  photoFilename = "".concat(senateurStem, ".jpg");
@@ -229,17 +227,17 @@ function _retrievePhotosSenateurs() {
229
227
  }
230
228
  }
231
229
  } catch (err) {
232
- _iterator3.e(err);
230
+ _iterator2.e(err);
233
231
  } finally {
234
- _iterator3.f();
232
+ _iterator2.f();
235
233
  }
236
234
  }
237
235
 
238
236
  // Resize photos to 155x225, because some haven't exactly this size.
239
- _iterator4 = _createForOfIteratorHelper(senateurs);
237
+ _iterator3 = _createForOfIteratorHelper(senateurs);
240
238
  try {
241
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
242
- _senateur2 = _step4.value;
239
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
240
+ _senateur2 = _step3.value;
243
241
  _ident = _senateur2.etatCivil.ident;
244
242
  _senateurStem2 = stemFromSenateur(_senateur2);
245
243
  if (!options.silent) {
@@ -252,19 +250,19 @@ function _retrievePhotosSenateurs() {
252
250
 
253
251
  // Create a mosaic of photos.
254
252
  } catch (err) {
255
- _iterator4.e(err);
253
+ _iterator3.e(err);
256
254
  } finally {
257
- _iterator4.f();
255
+ _iterator3.f();
258
256
  }
259
257
  photoByIdSenateur = {};
260
258
  rowsFilenames = [];
261
259
  for (senateurIndex = 0, rowIndex = 0; senateurIndex < senateurs.length; senateurIndex += 25, rowIndex++) {
262
260
  row = senateurs.slice(senateurIndex, senateurIndex + 25);
263
261
  photosFilenames = [];
264
- _iterator5 = _createForOfIteratorHelper(row.entries());
262
+ _iterator4 = _createForOfIteratorHelper(row.entries());
265
263
  try {
266
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
267
- _step5$value = _slicedToArray(_step5.value, 2), columnIndex = _step5$value[0], _senateur = _step5$value[1];
264
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
265
+ _step4$value = _slicedToArray(_step4.value, 2), columnIndex = _step4$value[0], _senateur = _step4$value[1];
268
266
  _senateurStem = stemFromSenateur(_senateur);
269
267
  _photoFilename = "".concat(_senateurStem, "_155x225.jpg");
270
268
  photosFilenames.push(_photoFilename);
@@ -278,9 +276,9 @@ function _retrievePhotosSenateurs() {
278
276
  };
279
277
  }
280
278
  } catch (err) {
281
- _iterator5.e(err);
279
+ _iterator4.e(err);
282
280
  } finally {
283
- _iterator5.f();
281
+ _iterator4.f();
284
282
  }
285
283
  rowFilename = "row-".concat(rowIndex, ".jpg");
286
284
  (0, _child_process.execSync)("gm convert ".concat(photosFilenames.join(" "), " +append ").concat(rowFilename), {
@@ -291,8 +289,8 @@ function _retrievePhotosSenateurs() {
291
289
  (0, _child_process.execSync)("gm convert ".concat(rowsFilenames.join(" "), " -append senateurs.jpg"), {
292
290
  cwd: photosDir
293
291
  });
294
- for (_i2 = 0, _rowsFilenames = rowsFilenames; _i2 < _rowsFilenames.length; _i2++) {
295
- _rowFilename = _rowsFilenames[_i2];
292
+ for (_i = 0, _rowsFilenames = rowsFilenames; _i < _rowsFilenames.length; _i++) {
293
+ _rowFilename = _rowsFilenames[_i];
296
294
  _fsExtra["default"].unlinkSync(_path["default"].join(photosDir, _rowFilename));
297
295
  }
298
296
  jsonFilePath = _path["default"].join(photosDir, "senateurs.json");
@@ -309,25 +307,24 @@ function _retrievePhotosSenateurs() {
309
307
  return _context.stop();
310
308
  }
311
309
  }, _callee);
312
- }));
313
- return _retrievePhotosSenateurs.apply(this, arguments);
310
+ }))).apply(this, arguments);
314
311
  }
315
312
  function stemFromSenateur(senateur) {
316
313
  var adresses = senateur.adresses;
317
314
  var url = null;
318
- var _iterator = _createForOfIteratorHelper(adresses),
319
- _step;
315
+ var _iterator5 = _createForOfIteratorHelper(adresses),
316
+ _step5;
320
317
  try {
321
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
322
- var adresse = _step.value;
318
+ for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
319
+ var adresse = _step5.value;
323
320
  if (adresse.xsiType === "AdresseSiteWeb_Type" && adresse.typeLibelle === "Url sénateur") {
324
321
  url = adresse.valElec;
325
322
  }
326
323
  }
327
324
  } catch (err) {
328
- _iterator.e(err);
325
+ _iterator5.e(err);
329
326
  } finally {
330
- _iterator.f();
327
+ _iterator5.f();
331
328
  }
332
329
  var match = url.match(/^https:\/\/www\.senat\.fr\/senateur\/(.*)\.html$/);
333
330
  var senateurStem = match[1];
@@ -339,4 +336,4 @@ retrievePhotosSenateurs().then(function (exitCode) {
339
336
  console.log(error);
340
337
  process.exit(1);
341
338
  });
342
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfZGF0YXNldHMiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sb2FkZXJzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiaGFzT3duIiwidmFsdWUiLCIkU3ltYm9sIiwiU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJpdGVyYXRvciIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJDb250aW51ZVNlbnRpbmVsIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiZ2V0UHJvdG8iLCJnZXRQcm90b3R5cGVPZiIsIk5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlIiwidmFsdWVzIiwiR3AiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwibWV0aG9kIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJQcm9taXNlSW1wbCIsImludm9rZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWNvcmQiLCJyZXN1bHQiLCJfX2F3YWl0IiwidGhlbiIsInVud3JhcHBlZCIsImVycm9yIiwicHJldmlvdXNQcm9taXNlIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJzdGF0ZSIsIkVycm9yIiwiZG9uZVJlc3VsdCIsImRlbGVnYXRlIiwiZGVsZWdhdGVSZXN1bHQiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJkb25lIiwibWV0aG9kTmFtZSIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsImluZm8iLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJsb2NzIiwiZW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsIml0ZXJhYmxlIiwiaXRlcmF0b3JNZXRob2QiLCJpc05hTiIsImxlbmd0aCIsImkiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJnZW5GdW4iLCJjdG9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2kiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJvIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkYiLCJzIiwibiIsImUiLCJfZTIiLCJmIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTMiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIlN0cmluZyIsIkJvb2xlYW4iLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicmV0cmlldmVQaG90b3NTZW5hdGV1cnMiLCJfcmV0cmlldmVQaG90b3NTZW5hdGV1cnMiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9sb2FkQXNzZW1ibGVlRGF0YSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiZ2l0R3JvdXBVcmwiLCJwaG90b3NEaXJOYW1lIiwicGhvdG9zRGlyIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwic2VuYXRldXIiLCJpZGVudCIsInNlbmF0ZXVyU3RlbSIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsIl9zZW5hdGV1cjIiLCJfaWRlbnQiLCJfc2VuYXRldXJTdGVtMiIsInBob3RvQnlJZFNlbmF0ZXVyIiwicm93c0ZpbGVuYW1lcyIsInNlbmF0ZXVySW5kZXgiLCJyb3dJbmRleCIsInJvdyIsInBob3Rvc0ZpbGVuYW1lcyIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJfc3RlcDUkdmFsdWUiLCJjb2x1bW5JbmRleCIsIl9zZW5hdGV1ciIsIl9zZW5hdGV1clN0ZW0iLCJfcGhvdG9GaWxlbmFtZSIsInJvd0ZpbGVuYW1lIiwiX2kyIiwiX3Jvd3NGaWxlbmFtZXMiLCJfcm93RmlsZW5hbWUiLCJqc29uRmlsZVBhdGgiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwibG9hZEFzc2VtYmxlZURhdGEiLCJFbmFibGVkRGF0YXNldHMiLCJBY3RldXJzRXRPcmdhbmVzIiwibGVnaXNsYXR1cmUiLCJmaWx0ZXIiLCJhY3RldXIiLCJtYW5kYXRzIiwibWFuZGF0U2VuYXRldXIiLCJtYW5kYXQiLCJ4c2lUeXBlIiwiVHlwZU1hbmRhdCIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIkNvZGVUeXBlT3JnYW5lIiwiU2VuYXQiLCJhZHJlc3NlcyIsInVybCIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibG9jYWxlQ29tcGFyZSIsImNsb25lIiwidHJpbSIsInJlcGxhY2UiLCJleGVjU3luYyIsImNvbmNhdCIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwicGF0aCIsImpvaW4iLCJwdWxsIiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwiZmV0Y2giLCJldGF0Q2l2aWwiLCJzdGVtRnJvbVNlbmF0ZXVyIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInByZW5vbSIsIm5vbSIsInJlbmFtZVN5bmMiLCJleGlzdHNTeW5jIiwid2FybiIsImNvcHlGaWxlU3luYyIsImVudHJpZXMiLCJjaGVtaW4iLCJjaGVtaW5Nb3NhaXF1ZSIsImhhdXRldXIiLCJsYXJnZXVyIiwieE1vc2FpcXVlIiwieU1vc2FpcXVlIiwidW5saW5rU3luYyIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiY29tbWl0IiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwibWF0Y2giLCJleGl0Q29kZSIsImV4aXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9zZW5hdGV1cnNfcGhvdG9zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG4vLyBpbXBvcnQgc3RyZWFtIGZyb20gXCJzdHJlYW1cIlxuLy8gaW1wb3J0IHV0aWwgZnJvbSBcInV0aWxcIlxuXG5pbXBvcnQgeyBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi4vZGF0YXNldHNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHsgbG9hZEFzc2VtYmxlZURhdGEgfSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQge1xuICBBY3RldXIsXG4gIENvZGVUeXBlT3JnYW5lLFxuICBNYW5kYXQsXG4gIFBob3RvLFxuICBUeXBlTWFuZGF0LFxufSBmcm9tIFwiLi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiQ1wiLFxuICAgIGhlbHA6IFwiY2xvbmUgcmVwb3NpdG9yaWVzIGZyb20gZ2l2ZW4gZ3JvdXAgKG9yIG9yZ2FuaXphdGlvbikgZ2l0IFVSTFwiLFxuICAgIG5hbWU6IFwiY2xvbmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgcGhvdG9zXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiZlwiLFxuICAgIGhlbHA6IFwiZmV0Y2ggc8OpbmF0ZXVycycgcGljdHVyZXMgaW5zdGVhZCBvZiByZXRyaWV2aW5nIHRoZW0gZnJvbSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZmV0Y2hcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwicFwiLFxuICAgIGhlbHA6IFwicHVsbCByZXBvc2l0b3JpZXMgYmVmb3JlIHByb2NlZWRpbmdcIixcbiAgICBuYW1lOiBcInB1bGxcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcbi8vIGNvbnN0IHBpcGVsaW5lID0gdXRpbC5wcm9taXNpZnkoc3RyZWFtLnBpcGVsaW5lKVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpOiBQcm9taXNlPG51bWJlcj4ge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IHsgYWN0ZXVyQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuICBjb25zdCBzZW5hdGV1cnMgPSBPYmplY3QudmFsdWVzKGFjdGV1ckJ5VWlkKVxuICAgIC5maWx0ZXIoKGFjdGV1cikgPT4ge1xuICAgICAgY29uc3QgeyBtYW5kYXRzIH0gPSBhY3RldXJcbiAgICAgIGlmICghbWFuZGF0cykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1hbmRhdFNlbmF0ZXVyID0gbWFuZGF0cy5maWx0ZXIoXG4gICAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgICBtYW5kYXQueHNpVHlwZSA9PT0gVHlwZU1hbmRhdC5NYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSAmJlxuICAgICAgICAgIC8vIG1hbmRhdC5sZWdpc2xhdHVyZSA9PT0gb3B0aW9ucy5sZWdpc2xhdHVyZSAmJlxuICAgICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5TZW5hdCxcbiAgICAgIClbMF1cbiAgICAgIGlmIChtYW5kYXRTZW5hdGV1ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgeyBhZHJlc3NlcyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoYWRyZXNzZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCB1cmwgPSBudWxsXG4gICAgICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgICAgICBhZHJlc3NlLnR5cGVMaWJlbGxlID09PSBcIlVybCBzw6luYXRldXJcIlxuICAgICAgICApIHtcbiAgICAgICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIEJvb2xlYW4odXJsKVxuICAgIH0pXG4gICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgIClcblxuICBjb25zdCBnaXRHcm91cFVybCA9IG9wdGlvbnMuY2xvbmVcbiAgICA/IG9wdGlvbnMuY2xvbmUudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBwaG90b3NEaXJOYW1lID0gXCJwaG90b3Nfc2VuYXRldXJzXCJcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9LyR7cGhvdG9zRGlyTmFtZX0uZ2l0YCwge1xuICAgICAgY3dkOiBkYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBwaG90b3NEaXJOYW1lKVxuICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgZXhlY1N5bmMoYGdpdCByZXNldCAtLWhhcmQgb3JpZ2luL21hc3RlcmAsIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIGV4ZWNTeW5jKGBnaXQgcHVsbCAtLXJlYmFzZWAsIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG5cbiAgLy8gRG93bmxvYWQgcGhvdG9zLlxuICBmcy5lbnN1cmVEaXJTeW5jKHBob3Rvc0RpcilcbiAgaWYgKG9wdGlvbnMuZmV0Y2gpIHtcbiAgICBjb25zdCBtaXNzaW5nUGhvdG9GaWxlUGF0aCA9IFwiaW1hZ2VzL3RyYW5zcGFyZW50XzE1NXgyMjUuanBnXCJcbiAgICBmb3IgKGNvbnN0IHNlbmF0ZXVyIG9mIHNlbmF0ZXVycykge1xuICAgICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfS5qcGdgXG4gICAgICBjb25zdCBwaG90b0ZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9GaWxlbmFtZSlcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVuYW1lID0gYCR7c2VuYXRldXJTdGVtfV90ZW1wLmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9UZW1wRmlsZW5hbWUpXG4gICAgICBjb25zdCB1cmxQaG90byA9IGBodHRwczovL3d3dy5zZW5hdC5mci9zZW5pbWcvJHtwaG90b0ZpbGVuYW1lfWBcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYExvYWRpbmcgcGhvdG8gJHt1cmxQaG90b30gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICAvLyBmb3IgKGxldCByZXRyaWVzID0gMDsgcmV0cmllcyA8IDM7IHJldHJpZXMrKykge1xuICAgICAgLy8gICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybFBob3RvKVxuICAgICAgLy8gICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgIC8vICAgICBhd2FpdCBwaXBlbGluZShyZXNwb25zZS5ib2R5IGFzIHVua25vd24gYXMgTm9kZUpTLlJlYWRhYmxlU3RyZWFtLCBmcy5jcmVhdGVXcml0ZVN0cmVhbShwaG90b1RlbXBGaWxlUGF0aCkpXG4gICAgICAvLyAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyAgIGlmIChyZXRyaWVzID49IDIpIHtcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYEZldGNoIGZhaWxlZDogJHt1cmxQaG90b30gKCR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX0pYClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4ocmVzcG9uc2Uuc3RhdHVzLCByZXNwb25zZS5zdGF0dXNUZXh0KVxuICAgICAgLy8gICAgIGNvbnNvbGUud2Fybihhd2FpdCByZXNwb25zZS50ZXh0KCkpXG4gICAgICAvLyAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGhvdG9GaWxlUGF0aCkpIHtcbiAgICAgIC8vICAgICAgIGNvbnNvbGUud2FybihcIiAgPT4gUmV1c2luZyBleGlzdGluZyBpbWFnZVwiKVxuICAgICAgLy8gICAgIH0gZWxzZSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFVzaW5nIGJsYW5rIGltYWdlXCIpXG4gICAgICAvLyAgICAgICBmcy5jb3B5RmlsZVN5bmMobWlzc2luZ1Bob3RvRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICAgIGJyZWFrXG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGB3Z2V0IC0tcXVpZXQgLU8gJHtwaG90b1RlbXBGaWxlbmFtZX0gJHt1cmxQaG90b31gLCB7XG4gICAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgICAgIC8vIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgICAgICB9KVxuICAgICAgICBmcy5yZW5hbWVTeW5jKHBob3RvVGVtcEZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocGhvdG9GaWxlUGF0aCkpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFVzaW5nIGJsYW5rIGltYWdlXCIpXG4gICAgICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzaXplIHBob3RvcyB0byAxNTV4MjI1LCBiZWNhdXNlIHNvbWUgaGF2ZW4ndCBleGFjdGx5IHRoaXMgc2l6ZS5cbiAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICBjb25zdCBpZGVudCA9IHNlbmF0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICAgIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXIpXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZXNpemluZyBwaG90byAke3NlbmF0ZXVyU3RlbX0gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgKVxuICAgIH1cbiAgICBleGVjU3luYyhcbiAgICAgIGBnbSBjb252ZXJ0IC1yZXNpemUgMTU1eDIyNSEgJHtzZW5hdGV1clN0ZW19LmpwZyAke3NlbmF0ZXVyU3RlbX1fMTU1eDIyNS5qcGdgLFxuICAgICAge1xuICAgICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLy8gQ3JlYXRlIGEgbW9zYWljIG9mIHBob3Rvcy5cbiAgY29uc3QgcGhvdG9CeUlkU2VuYXRldXI6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGNvbnN0IHJvd3NGaWxlbmFtZXM6IHN0cmluZ1tdID0gW11cbiAgZm9yIChcbiAgICBsZXQgc2VuYXRldXJJbmRleCA9IDAsIHJvd0luZGV4ID0gMDtcbiAgICBzZW5hdGV1ckluZGV4IDwgc2VuYXRldXJzLmxlbmd0aDtcbiAgICBzZW5hdGV1ckluZGV4ICs9IDI1LCByb3dJbmRleCsrXG4gICkge1xuICAgIGNvbnN0IHJvdyA9IHNlbmF0ZXVycy5zbGljZShzZW5hdGV1ckluZGV4LCBzZW5hdGV1ckluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gICAgZm9yIChjb25zdCBbY29sdW1uSW5kZXgsIHNlbmF0ZXVyXSBvZiByb3cuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fMTU1eDIyNS5qcGdgXG4gICAgICBwaG90b3NGaWxlbmFtZXMucHVzaChwaG90b0ZpbGVuYW1lKVxuICAgICAgcGhvdG9CeUlkU2VuYXRldXJbc2VuYXRldXIudWlkXSA9IHtcbiAgICAgICAgY2hlbWluOiBgcGhvdG9zX3NlbmF0ZXVycy8ke3Bob3RvRmlsZW5hbWV9YCxcbiAgICAgICAgY2hlbWluTW9zYWlxdWU6IGBwaG90b3Nfc2VuYXRldXJzL3NlbmF0ZXVycy5qcGdgLFxuICAgICAgICBoYXV0ZXVyOiAyMjUsXG4gICAgICAgIGxhcmdldXI6IDE1NSxcbiAgICAgICAgeE1vc2FpcXVlOiBjb2x1bW5JbmRleCAqIDE1NSxcbiAgICAgICAgeU1vc2FpcXVlOiByb3dJbmRleCAqIDIyNSxcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgcm93RmlsZW5hbWUgPSBgcm93LSR7cm93SW5kZXh9LmpwZ2BcbiAgICBleGVjU3luYyhgZ20gY29udmVydCAke3Bob3Rvc0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gK2FwcGVuZCAke3Jvd0ZpbGVuYW1lfWAsIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgIH0pXG4gICAgcm93c0ZpbGVuYW1lcy5wdXNoKHJvd0ZpbGVuYW1lKVxuICB9XG4gIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cm93c0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gLWFwcGVuZCBzZW5hdGV1cnMuanBnYCwge1xuICAgIGN3ZDogcGhvdG9zRGlyLFxuICB9KVxuICBmb3IgKGNvbnN0IHJvd0ZpbGVuYW1lIG9mIHJvd3NGaWxlbmFtZXMpIHtcbiAgICBmcy51bmxpbmtTeW5jKHBhdGguam9pbihwaG90b3NEaXIsIHJvd0ZpbGVuYW1lKSlcbiAgfVxuXG4gIGNvbnN0IGpzb25GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIFwic2VuYXRldXJzLmpzb25cIilcbiAgZnMud3JpdGVGaWxlU3luYyhqc29uRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHBob3RvQnlJZFNlbmF0ZXVyLCBudWxsLCAyKSlcblxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICByZXR1cm4gZ2l0LmNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBcIk5vdXZlbGxlIG1vaXNzb25cIiwgb3B0aW9ucy5yZW1vdGUpXG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuZnVuY3Rpb24gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cjogQWN0ZXVyKSB7XG4gIGNvbnN0IHsgYWRyZXNzZXMgfSA9IHNlbmF0ZXVyXG4gIGxldCB1cmwgPSBudWxsXG4gIGZvciAoY29uc3QgYWRyZXNzZSBvZiBhZHJlc3NlcyEpIHtcbiAgICBpZiAoXG4gICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICBhZHJlc3NlLnR5cGVMaWJlbGxlID09PSBcIlVybCBzw6luYXRldXJcIlxuICAgICkge1xuICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgfVxuICB9XG4gIGNvbnN0IG1hdGNoID0gdXJsIS5tYXRjaCgvXmh0dHBzOlxcL1xcL3d3d1xcLnNlbmF0XFwuZnJcXC9zZW5hdGV1clxcLyguKilcXC5odG1sJC8pXG4gIGNvbnN0IHNlbmF0ZXVyU3RlbSA9IG1hdGNoIVsxXVxuICByZXR1cm4gc2VuYXRldXJTdGVtXG59XG5cbnJldHJpZXZlUGhvdG9zU2VuYXRldXJzKClcbiAgLnRoZW4oKGV4aXRDb2RlKSA9PiBwcm9jZXNzLmV4aXQoZXhpdENvZGUpKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFJQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxHQUFBLEdBQUFDLHVCQUFBLENBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBTW9DLFNBQUFVLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLGFBQUFFLE9BQUEsQ0FBQUYsR0FBQSx5QkFBQUEsR0FBQSx1Q0FBQUEsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxR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
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfZGF0YXNldHMiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sb2FkZXJzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwibiIsIm8iLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiQXJyYXkiLCJpc0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiRiIsIl9lIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsImVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJsZW4iLCJhcnIyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsInVuZGVmaW5lZCIsIm9wdGlvbnNEZWZpbml0aW9ucyIsImFsaWFzIiwiaGVscCIsIlN0cmluZyIsIkJvb2xlYW4iLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwicmV0cmlldmVQaG90b3NTZW5hdGV1cnMiLCJfY2FsbGVlIiwiZGF0YURpciIsIl9sb2FkQXNzZW1ibGVlRGF0YSIsImFjdGV1ckJ5VWlkIiwic2VuYXRldXJzIiwiZ2l0R3JvdXBVcmwiLCJwaG90b3NEaXJOYW1lIiwicGhvdG9zRGlyIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwic2VuYXRldXIiLCJpZGVudCIsInNlbmF0ZXVyU3RlbSIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zZW5hdGV1cjIiLCJfaWRlbnQiLCJfc2VuYXRldXJTdGVtMiIsInBob3RvQnlJZFNlbmF0ZXVyIiwicm93c0ZpbGVuYW1lcyIsInNlbmF0ZXVySW5kZXgiLCJyb3dJbmRleCIsInJvdyIsInBob3Rvc0ZpbGVuYW1lcyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJfc3RlcDQkdmFsdWUiLCJjb2x1bW5JbmRleCIsIl9zZW5hdGV1ciIsIl9zZW5hdGV1clN0ZW0iLCJfcGhvdG9GaWxlbmFtZSIsInJvd0ZpbGVuYW1lIiwiX2kiLCJfcm93c0ZpbGVuYW1lcyIsIl9yb3dGaWxlbmFtZSIsImpzb25GaWxlUGF0aCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJsZWdpc2xhdHVyZSIsImZpbHRlciIsImFjdGV1ciIsIm1hbmRhdHMiLCJtYW5kYXRTZW5hdGV1ciIsIm1hbmRhdCIsInhzaVR5cGUiLCJUeXBlTWFuZGF0IiwiTWFuZGF0UGFybGVtZW50YWlyZVR5cGUiLCJ0eXBlT3JnYW5lIiwiQ29kZVR5cGVPcmdhbmUiLCJTZW5hdCIsImFkcmVzc2VzIiwidXJsIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImIiLCJ1aWQiLCJsb2NhbGVDb21wYXJlIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsImV4ZWNTeW5jIiwiY29uY2F0IiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJwYXRoIiwiam9pbiIsInB1bGwiLCJmcyIsImVuc3VyZURpclN5bmMiLCJmZXRjaCIsImV0YXRDaXZpbCIsInN0ZW1Gcm9tU2VuYXRldXIiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwiZW50cmllcyIsImNoZW1pbiIsImNoZW1pbk1vc2FpcXVlIiwiaGF1dGV1ciIsImxhcmdldXIiLCJ4TW9zYWlxdWUiLCJ5TW9zYWlxdWUiLCJ1bmxpbmtTeW5jIiwid3JpdGVGaWxlU3luYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb21taXQiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlIiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsIm1hdGNoIiwiZXhpdENvZGUiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfc2VuYXRldXJzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuLy8gaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbi8vIGltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IHBob3Rvc1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIHPDqW5hdGV1cnMnIHBpY3R1cmVzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInBcIixcbiAgICBoZWxwOiBcInB1bGwgcmVwb3NpdG9yaWVzIGJlZm9yZSBwcm9jZWVkaW5nXCIsXG4gICAgbmFtZTogXCJwdWxsXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG4vLyBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVQaG90b3NTZW5hdGV1cnMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCB7IGFjdGV1ckJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcbiAgY29uc3Qgc2VuYXRldXJzID0gT2JqZWN0LnZhbHVlcyhhY3RldXJCeVVpZClcbiAgICAuZmlsdGVyKChhY3RldXIpID0+IHtcbiAgICAgIGNvbnN0IHsgbWFuZGF0cyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoIW1hbmRhdHMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCBtYW5kYXRTZW5hdGV1ciA9IG1hbmRhdHMuZmlsdGVyKFxuICAgICAgICAobWFuZGF0OiBNYW5kYXQpID0+XG4gICAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgICAvLyBtYW5kYXQubGVnaXNsYXR1cmUgPT09IG9wdGlvbnMubGVnaXNsYXR1cmUgJiZcbiAgICAgICAgICBtYW5kYXQudHlwZU9yZ2FuZSA9PT0gQ29kZVR5cGVPcmdhbmUuU2VuYXQsXG4gICAgICApWzBdXG4gICAgICBpZiAobWFuZGF0U2VuYXRldXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgYWRyZXNzZXMgfSA9IGFjdGV1clxuICAgICAgaWYgKGFkcmVzc2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBsZXQgdXJsID0gbnVsbFxuICAgICAgZm9yIChjb25zdCBhZHJlc3NlIG9mIGFkcmVzc2VzKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhZHJlc3NlLnhzaVR5cGUgPT09IFwiQWRyZXNzZVNpdGVXZWJfVHlwZVwiICYmXG4gICAgICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICAgICAgKSB7XG4gICAgICAgICAgdXJsID0gYWRyZXNzZS52YWxFbGVjXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBCb29sZWFuKHVybClcbiAgICB9KVxuICAgIC5zb3J0KChhLCBiKSA9PlxuICAgICAgYS51aWQubGVuZ3RoID09PSBiLnVpZC5sZW5ndGhcbiAgICAgICAgPyBhLnVpZC5sb2NhbGVDb21wYXJlKGIudWlkKVxuICAgICAgICA6IGEudWlkLmxlbmd0aCAtIGIudWlkLmxlbmd0aCxcbiAgICApXG5cbiAgY29uc3QgZ2l0R3JvdXBVcmwgPSBvcHRpb25zLmNsb25lXG4gICAgPyBvcHRpb25zLmNsb25lLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpXG4gICAgOiB1bmRlZmluZWRcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IFwicGhvdG9zX3NlbmF0ZXVyc1wiXG4gIGlmIChnaXRHcm91cFVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZXhlY1N5bmMoYGdpdCBjbG9uZSAke2dpdEdyb3VwVXJsfS8ke3Bob3Rvc0Rpck5hbWV9LmdpdGAsIHtcbiAgICAgIGN3ZDogZGF0YURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuICBjb25zdCBwaG90b3NEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgcGhvdG9zRGlyTmFtZSlcbiAgaWYgKG9wdGlvbnMucHVsbCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgcmVzZXQgLS1oYXJkIG9yaWdpbi9tYXN0ZXJgLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG4gIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBcImltYWdlcy90cmFuc3BhcmVudF8xNTV4MjI1LmpwZ1wiXG4gICAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX0uanBnYFxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fdGVtcC5qcGdgXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gZm9yIChsZXQgcmV0cmllcyA9IDA7IHJldHJpZXMgPCAzOyByZXRyaWVzKyspIHtcbiAgICAgIC8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAvLyAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSBhcyB1bmtub3duIGFzIE5vZGVKUy5SZWFkYWJsZVN0cmVhbSwgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpKVxuICAgICAgLy8gICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBpZiAocmV0cmllcyA+PSAyKSB7XG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtzZW5hdGV1clN0ZW19IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgIClcbiAgICB9XG4gICAgZXhlY1N5bmMoXG4gICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7c2VuYXRldXJTdGVtfS5qcGcgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIG1vc2FpYyBvZiBwaG90b3MuXG4gIGNvbnN0IHBob3RvQnlJZFNlbmF0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IHNlbmF0ZXVySW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuYXRldXJJbmRleCA8IHNlbmF0ZXVycy5sZW5ndGg7XG4gICAgc2VuYXRldXJJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5hdGV1cnMuc2xpY2Uoc2VuYXRldXJJbmRleCwgc2VuYXRldXJJbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5hdGV1cl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZFNlbmF0ZXVyW3NlbmF0ZXVyLnVpZF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBgcGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMjI1LFxuICAgICAgICBsYXJnZXVyOiAxNTUsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTUsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAyMjUsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgc2VuYXRldXJzLmpwZ2AsIHtcbiAgICBjd2Q6IHBob3Rvc0RpcixcbiAgfSlcbiAgZm9yIChjb25zdCByb3dGaWxlbmFtZSBvZiByb3dzRmlsZW5hbWVzKSB7XG4gICAgZnMudW5saW5rU3luYyhwYXRoLmpvaW4ocGhvdG9zRGlyLCByb3dGaWxlbmFtZSkpXG4gIH1cblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRTZW5hdGV1ciwgbnVsbCwgMikpXG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKHBob3Rvc0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXI6IEFjdGV1cikge1xuICBjb25zdCB7IGFkcmVzc2VzIH0gPSBzZW5hdGV1clxuICBsZXQgdXJsID0gbnVsbFxuICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMhKSB7XG4gICAgaWYgKFxuICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICApIHtcbiAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgIH1cbiAgfVxuICBjb25zdCBtYXRjaCA9IHVybCEubWF0Y2goL15odHRwczpcXC9cXC93d3dcXC5zZW5hdFxcLmZyXFwvc2VuYXRldXJcXC8oLiopXFwuaHRtbCQvKVxuICBjb25zdCBzZW5hdGV1clN0ZW0gPSBtYXRjaCFbMV1cbiAgcmV0dXJuIHNlbmF0ZXVyU3RlbVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sR0FBQSxHQUFBQyx1QkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsbUJBQUEsR0FBQVQsT0FBQTtBQU1vQyxJQUFBVSx3QkFBQTtBQUFBLFNBQUFDLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFB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