@datagrok/bio 2.0.21 → 2.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.js CHANGED
@@ -5091,7 +5091,7 @@ function checkInputColumn(col, name, allowedNotations = [], allowedAlphabets = [
5091
5091
  !allowedNotations.some((n) => notation.toUpperCase() == (n.toUpperCase()))) {
5092
5092
  const notationAdd = allowedNotations.length == 0 ? 'any notation' :
5093
5093
  (`notation${allowedNotations.length > 1 ? 's' : ''} ${allowedNotations.map((n) => `"${n}"`).join(', ')} `);
5094
- msg = `${name} + ' analysis is allowed for Macromolecules with notation ${notationAdd}.`;
5094
+ msg = `${name} analysis is allowed for Macromolecules with ${notationAdd}.`;
5095
5095
  res = false;
5096
5096
  }
5097
5097
  else if (!uh.isHelm()) {
@@ -5468,7 +5468,7 @@ function saveAsFasta() {
5468
5468
  (0,_utils_save_as_fasta__WEBPACK_IMPORTED_MODULE_21__.saveAsFastaUI)();
5469
5469
  }
5470
5470
  //name: BioSubstructureFilter
5471
- //description: Substructure filter for linear macromolecules
5471
+ //description: Substructure filter for macromolecules
5472
5472
  //tags: filter
5473
5473
  //output: filter result
5474
5474
  //meta.semType: Macromolecule
@@ -6001,6 +6001,7 @@ class SequenceAlignment {
6001
6001
  "use strict";
6002
6002
  __webpack_require__.r(__webpack_exports__);
6003
6003
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6004
+ /* harmony export */ "helmSubstructureSearch": () => (/* binding */ helmSubstructureSearch),
6004
6005
  /* harmony export */ "linearSubstructureSearch": () => (/* binding */ linearSubstructureSearch),
6005
6006
  /* harmony export */ "substructureSearchDialog": () => (/* binding */ substructureSearchDialog)
6006
6007
  /* harmony export */ });
@@ -7629,13 +7630,15 @@ __webpack_require__.r(__webpack_exports__);
7629
7630
  /* harmony import */ var datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__);
7630
7631
  /* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! datagrok-api/dg */ "datagrok-api/dg");
7631
7632
  /* harmony import */ var datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__);
7632
- /* harmony import */ var _datagrok_libraries_bio__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @datagrok-libraries/bio */ "./node_modules/@datagrok-libraries/bio/index.ts");
7633
+ /* harmony import */ var datagrok_api_grok__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! datagrok-api/grok */ "datagrok-api/grok");
7634
+ /* harmony import */ var datagrok_api_grok__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_grok__WEBPACK_IMPORTED_MODULE_2__);
7633
7635
  /* harmony import */ var wu__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! wu */ "wu");
7634
7636
  /* harmony import */ var wu__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(wu__WEBPACK_IMPORTED_MODULE_3__);
7635
7637
  /* harmony import */ var _substructure_search_substructure_search__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../substructure-search/substructure-search */ "./src/substructure-search/substructure-search.ts");
7636
7638
  /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "rxjs");
7637
7639
  /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(rxjs__WEBPACK_IMPORTED_MODULE_5__);
7638
7640
  /* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/constants */ "./src/utils/constants.ts");
7641
+ /* harmony import */ var _utils_ui_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/ui-utils */ "./src/utils/ui-utils.ts");
7639
7642
  /**
7640
7643
  * Macromolecules substructure filter that uses Datagrok's collaborative filtering.
7641
7644
  * 1. On onRowsFiltering event, only FILTER OUT rows that do not satisfy this filter's criteria
@@ -7657,12 +7660,14 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
7657
7660
 
7658
7661
 
7659
7662
 
7663
+
7660
7664
  class BioSubstructureFilter extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.Filter {
7661
7665
  constructor() {
7662
7666
  super();
7663
7667
  this.bioFilter = null;
7664
7668
  this.bitset = null;
7665
7669
  this.loader = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.loader();
7670
+ this.notation = '';
7666
7671
  this.root = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.divV([]);
7667
7672
  this.calculating = false;
7668
7673
  }
@@ -7682,9 +7687,10 @@ class BioSubstructureFilter extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__
7682
7687
  super.attach(dataFrame);
7683
7688
  this.column = dataFrame.columns.bySemType(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.SEMTYPE.MACROMOLECULE);
7684
7689
  this.columnName = (_a = this.column) === null || _a === void 0 ? void 0 : _a.name;
7685
- const notation = (_b = this.column) === null || _b === void 0 ? void 0 : _b.getTag(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.TAGS.UNITS);
7686
- this.bioFilter = notation === "fasta" /* bio.NOTATION.FASTA */ ?
7687
- new FastaFilter() : new SeparatorFilter(this.column.getTag(_utils_constants__WEBPACK_IMPORTED_MODULE_6__.TAGS.SEPARATOR));
7690
+ this.notation = (_b = this.column) === null || _b === void 0 ? void 0 : _b.getTag(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.TAGS.UNITS);
7691
+ this.bioFilter = this.notation === "fasta" /* NOTATION.FASTA */ ?
7692
+ new FastaFilter() : this.notation === "separator" /* NOTATION.SEPARATOR */ ?
7693
+ new SeparatorFilter(this.column.getTag(_utils_constants__WEBPACK_IMPORTED_MODULE_6__.TAGS.SEPARATOR)) : new HelmFilter();
7688
7694
  this.root.appendChild(this.bioFilter.filterPanel);
7689
7695
  this.root.appendChild(this.loader);
7690
7696
  (_c = this.onBioFilterChangedSubs) === null || _c === void 0 ? void 0 : _c.unsubscribe();
@@ -7710,7 +7716,7 @@ class BioSubstructureFilter extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__
7710
7716
  applyState(state) {
7711
7717
  super.applyState(state);
7712
7718
  if (state.bioSubstructure)
7713
- this.bioFilter.substructureInput.value = state.bioSubstructure;
7719
+ this.bioFilter.substructure = state.bioSubstructure;
7714
7720
  const that = this;
7715
7721
  if (state.bioSubstructure)
7716
7722
  setTimeout(function () { that._onInputChanged(); }, 1000);
@@ -7734,7 +7740,9 @@ class BioSubstructureFilter extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__
7734
7740
  else {
7735
7741
  this.calculating = true;
7736
7742
  try {
7737
- this.bitset = (0,_substructure_search_substructure_search__WEBPACK_IMPORTED_MODULE_4__.linearSubstructureSearch)(this.bioFilter.substructure, this.column);
7743
+ this.bitset = this.notation === "helm" /* NOTATION.HELM */ ?
7744
+ yield (0,_substructure_search_substructure_search__WEBPACK_IMPORTED_MODULE_4__.helmSubstructureSearch)(this.bioFilter.substructure, this.column) :
7745
+ (0,_substructure_search_substructure_search__WEBPACK_IMPORTED_MODULE_4__.linearSubstructureSearch)(this.bioFilter.substructure, this.column);
7738
7746
  this.calculating = false;
7739
7747
  (_b = this.dataFrame) === null || _b === void 0 ? void 0 : _b.rows.requestFilter();
7740
7748
  }
@@ -7745,9 +7753,22 @@ class BioSubstructureFilter extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__
7745
7753
  });
7746
7754
  }
7747
7755
  }
7748
- class FastaFilter {
7756
+ class BioFilterBase {
7749
7757
  constructor() {
7750
7758
  this.onChanged = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject();
7759
+ }
7760
+ get filterPanel() {
7761
+ return new HTMLElement();
7762
+ }
7763
+ get substructure() {
7764
+ return '';
7765
+ }
7766
+ set substructure(s) {
7767
+ }
7768
+ }
7769
+ class FastaFilter extends BioFilterBase {
7770
+ constructor() {
7771
+ super();
7751
7772
  this.substructureInput = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.stringInput('', '', () => {
7752
7773
  this.onChanged.next();
7753
7774
  }, { placeholder: 'Substructure' });
@@ -7758,6 +7779,9 @@ class FastaFilter {
7758
7779
  get substructure() {
7759
7780
  return this.substructureInput.value;
7760
7781
  }
7782
+ set substructure(s) {
7783
+ this.substructureInput.value = s;
7784
+ }
7761
7785
  }
7762
7786
  class SeparatorFilter extends FastaFilter {
7763
7787
  constructor(separator) {
@@ -7780,6 +7804,53 @@ class SeparatorFilter extends FastaFilter {
7780
7804
  this.substructureInput.value.replaceAll(this.separatorInput.value, this.colSeparator) :
7781
7805
  this.substructureInput.value;
7782
7806
  }
7807
+ set substructure(s) {
7808
+ this.substructureInput.value = s;
7809
+ }
7810
+ }
7811
+ class HelmFilter extends BioFilterBase {
7812
+ constructor() {
7813
+ super();
7814
+ this._filterPanel = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.div('', { style: { width: '100px', height: '100px' } });
7815
+ this.helmSubstructure = '';
7816
+ this.editDiv = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.divText('Click to edit', { style: { cursor: 'pointer' } });
7817
+ this.init();
7818
+ datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.setUpdateIndicator(this._filterPanel, true);
7819
+ }
7820
+ init() {
7821
+ return __awaiter(this, void 0, void 0, function* () {
7822
+ this.helmEditor = yield datagrok_api_grok__WEBPACK_IMPORTED_MODULE_2__.functions.call('HELM:helmWebEditor');
7823
+ (0,_utils_ui_utils__WEBPACK_IMPORTED_MODULE_7__.updateDivInnerHTML)(this._filterPanel, this.editDiv);
7824
+ datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.setUpdateIndicator(this._filterPanel, false);
7825
+ this._filterPanel.addEventListener('click', (event) => {
7826
+ //@ts-ignore
7827
+ datagrok_api_ui__WEBPACK_IMPORTED_MODULE_0__.dialog({ showHeader: false, showFooter: true })
7828
+ .add(this.helmEditor.editorView)
7829
+ .onOK(() => {
7830
+ const helmString = this.helmEditor
7831
+ .webEditor.canvas.getHelm(true).replace(/<\/span>/g, '').replace(/<span style='background:#bbf;'>/g, '');
7832
+ if (helmString) {
7833
+ (0,_utils_ui_utils__WEBPACK_IMPORTED_MODULE_7__.updateDivInnerHTML)(this._filterPanel, this.helmEditor.host);
7834
+ this.helmEditor.editor.setHelm(helmString);
7835
+ }
7836
+ else {
7837
+ (0,_utils_ui_utils__WEBPACK_IMPORTED_MODULE_7__.updateDivInnerHTML)(this._filterPanel, this.editDiv);
7838
+ }
7839
+ this.helmSubstructure = helmString;
7840
+ this.onChanged.next();
7841
+ }).show({ modal: true, fullScreen: true });
7842
+ });
7843
+ });
7844
+ }
7845
+ get filterPanel() {
7846
+ return this._filterPanel;
7847
+ }
7848
+ get substructure() {
7849
+ return this.helmSubstructure;
7850
+ }
7851
+ set substructure(s) {
7852
+ this.helmEditor.editor.setHelm(s);
7853
+ }
7783
7854
  }
7784
7855
 
7785
7856
 
@@ -8392,4 +8463,4 @@ class B {
8392
8463
  /******/
8393
8464
  /******/ })()
8394
8465
  ;
8395
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFvRDtBQUNFO0FBQ1E7QUFDYjtBQUN3QjtBQUNkO0FBZXhCO0FBQzhCO0FBQ047QUFDSjtBQUNDO0FBQ2lCO0FBQ1I7QUFDaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQmxDO0FBQ3pDLGlDQUFpQyx5REFBYztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxPQUFPO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCx5QkFBeUI7QUFDOUUscURBQXFELHlCQUF5QjtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQzdPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7OztBQzVDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQk47QUFDOUI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FB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O0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNkO0FBQ1AsSUFBSSxtR0FBd0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLElBQUksb0VBQWE7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxlQUFlLG9GQUFxQjtBQUNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0U7Ozs7Ozs7VUMxUEY7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOzs7OztXQ3pCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7Ozs7O1dDSkE7V0FDQTtXQUNBO1dBQ0E7V0FDQSxHQUFHO1dBQ0g7V0FDQTtXQUNBLENBQUM7Ozs7O1dDUEQ7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7OztXQ05BO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOzs7OztXQ2ZBOztXQUVBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7Ozs7VUVyQkE7VUFDQTtVQUNBO1VBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvbnVjbGVvdGlkZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbWFjcm9tb2xlY3VsZS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3NwbGl0dGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZkLXJlZ2lvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3BoeWxvY2FudmFzLWdsLXZpZXdlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdmlld2Vycy9hY3Rpdml0eS1jbGlmZnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3dvcmtlcnMvZGltZW5zaW9uYWxpdHktcmVkdWNpbmctd29ya2VyLWNyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvcmFuZG9tLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvZmFzdC1zaGEyNTYvc2hhMjU2LmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9mYXN0ZXN0LWxldmVuc2h0ZWluL2VzbS9tb2QuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2phcm8td2lua2xlci10eXBlc2NyaXB0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvYW5hbHlzaXMvc2VxdWVuY2UtYWN0aXZpdHktY2xpZmZzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1kaXZlcnNpdHktdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1zZWFyY2gtYmFzZS12aWV3ZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL2FuYWx5c2lzL3NlcXVlbmNlLXNpbWlsYXJpdHktdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1zcGFjZS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY2FsY3VsYXRpb25zL21vbm9tZXJMZXZlbE1vbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL2NvbnN0LnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9wYWNrYWdlLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9zZXFfYWxpZ24udHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3N1YnN0cnVjdHVyZS1zZWFyY2gvc3Vic3RydWN0dXJlLXNlYXJjaC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvYXRvbWljLXdvcmtzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnZlcnQudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvc2F2ZS1hcy1mYXN0YS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvdWktdXRpbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL3V0aWxzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy92aWV3ZXJzL3ZkLXJlZ2lvbnMtdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy93aWRnZXRzL2Jpby1zdWJzdHJ1Y3R1cmUtZmlsdGVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy93aWRnZXRzL3JlcHJlc2VudGF0aW9ucy50cyIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwiJFwiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJER1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJncm9rXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcInJ4anNcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwidWlcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwid3VcIiIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGJpb3dhc20vYWlvbGkvZGlzdC9haW9saS5tanMiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9iZWZvcmUtc3RhcnR1cCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9zdGFydHVwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL2FmdGVyLXN0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbWlub2FjaWRzUGFsZXR0ZXN9IGZyb20gJy4vc3JjL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHtOdWNsZW90aWRlc1BhbGV0dGVzfSBmcm9tICcuL3NyYy9udWNsZW90aWRlcyc7XG5pbXBvcnQge1NlcVBhbGV0dGUsIFNlcVBhbGV0dGVCYXNlfSBmcm9tICcuL3NyYy9zZXEtcGFsZXR0ZXMnO1xuaW1wb3J0IHtVbmtub3duU2VxUGFsZXR0ZXN9IGZyb20gJy4vc3JjL3Vua25vd24nO1xuaW1wb3J0IHtEcmF3U3R5bGUsIHByaW50TGVmdE9yQ2VudGVyZWR9IGZyb20gJy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHtGYXN0YUZpbGVIYW5kbGVyfSBmcm9tICcuL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7XG4gIGdldFNwbGl0dGVyLFxuICBzcGxpdHRlckFzRmFzdGEsXG4gIGdldFNwbGl0dGVyRm9yQ29sdW1uLFxuICBTcGxpdHRlckZ1bmMsXG4gIG1vbm9tZXJUb1Nob3J0LFxuICBzcGxpdHRlckFzSGVsbSxcbiAgZ2V0U3RhdHMsXG4gIHBpY2tVcFBhbGV0dGUsXG4gIGdldFBhbGV0dGVCeVR5cGUsXG4gIGdldEFscGhhYmV0U2ltaWxhcml0eSxcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTXG59IGZyb20gJy4vc3JjL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xuaW1wb3J0IHtOb3RhdGlvbkNvbnZlcnRlcn0gZnJvbSAnLi9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyJztcbmltcG9ydCB7c3BsaXRBbGlnbmVkU2VxdWVuY2VzfSBmcm9tICcuL3NyYy91dGlscy9zcGxpdHRlcic7XG5pbXBvcnQge1VuaXRzSGFuZGxlcn0gZnJvbSAnLi9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQge1ZkUmVnaW9uLCBWZFJlZ2lvblR5cGV9IGZyb20gJy4vc3JjL3ZkLXJlZ2lvbnMnO1xuaW1wb3J0IHtJUGh5bG9jYW52YXNHbFZpZXdlcn0gZnJvbSAnLi9zcmMvdmlld2Vycy9waHlsb2NhbnZhcy1nbC12aWV3ZXInO1xuaW1wb3J0IHtJVmRSZWdpb25zVmlld2VyfSBmcm9tICcuL3NyYy92aWV3ZXJzL3ZkLXJlZ2lvbnMtdmlld2VyJztcbmltcG9ydCB7UG9zaXRpb25JbmZvLCBQb3NpdGlvbk1vbm9tZXJJbmZvLCBXZWJMb2dvfSBmcm9tICcuL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcblxuZXhwb3J0IHtcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTLFxuICBOb3RhdGlvbkNvbnZlcnRlcixcbiAgU3BsaXR0ZXJGdW5jLFxuICBnZXRTdGF0cyxcbiAgZ2V0QWxwaGFiZXRTaW1pbGFyaXR5LFxuICBnZXRTcGxpdHRlcixcbiAgc3BsaXR0ZXJBc0Zhc3RhLFxuICBzcGxpdHRlckFzSGVsbSxcbiAgZ2V0U3BsaXR0ZXJGb3JDb2x1bW4sXG4gIG1vbm9tZXJUb1Nob3J0LFxuICBzcGxpdEFsaWduZWRTZXF1ZW5jZXMsXG4gIFNlcVBhbGV0dGUsXG4gIFNlcVBhbGV0dGVCYXNlLFxuICBBbWlub2FjaWRzUGFsZXR0ZXMsXG4gIE51Y2xlb3RpZGVzUGFsZXR0ZXMsXG4gIFVua25vd25TZXFQYWxldHRlcyxcbiAgcGlja1VwUGFsZXR0ZSxcbiAgZ2V0UGFsZXR0ZUJ5VHlwZSxcbiAgUG9zaXRpb25JbmZvLFxuICBQb3NpdGlvbk1vbm9tZXJJbmZvLFxuICBXZWJMb2dvLFxuICBVbml0c0hhbmRsZXIsXG4gIERyYXdTdHlsZSxcbiAgcHJpbnRMZWZ0T3JDZW50ZXJlZCxcbiAgRmFzdGFGaWxlSGFuZGxlcixcbiAgVmRSZWdpb25UeXBlLFxuICBWZFJlZ2lvbixcbiAgSVZkUmVnaW9uc1ZpZXdlcixcbiAgSVBoeWxvY2FudmFzR2xWaWV3ZXIsXG59OyIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IExlc2soKSB7XG4gICAgICAgIGlmICh0aGlzLmxlc2sgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5sZXNrID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snRycsICdBJywgJ1MnLCAnVCddLCAnb3JhbmdlJ10sXG4gICAgICAgICAgICAgICAgW1snQycsICdWJywgJ0knLCAnTCcsICdQJywgJ0YnLCAnWScsICdNJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ04nLCAnUScsICdIJ10sICdtYWdlbnRhJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydLJywgJ1InXSwgJ2FsbF9ibHVlJ10sXG4gICAgICAgICAgICBdLCBmYWxzZSwgQW1pbm9hY2lkc1BhbGV0dGVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sZXNrO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEdyb2tHcm91cHMoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb2tHcm91cHMgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5ncm9rR3JvdXBzID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snQycsICdVJ10sICd5ZWxsb3cnXSxcbiAgICAgICAgICAgICAgICBbWydHJywgJ1AnXSwgJ3JlZCddLFxuICAgICAgICAgICAgICAgIFtbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgICAgICAgICAgW1snUicsICdIJywgJ0snXSwgJ2xpZ2h0X2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydEJywgJ0UnXSwgJ2RhcmtfYmx1ZSddLFxuICAgICAgICAgICAgICAgIFtbJ1MnLCAnVCcsICdOJywgJ1EnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Jva0dyb3VwcztcbiAgICB9XG4gICAgc3RhdGljIGdldCBSYXNNb2woKSB7XG4gICAgICAgIGlmICh0aGlzLnJhc01vbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLnJhc01vbCA9IG5ldyBBbWlub2FjaWRzUGFsZXR0ZXMoe1xuICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9hY2Nlcy5lbnMtbHlvbi5mci9iaW90aWMvcmFzdG9wL2hlbHAvY29sb3VyLmh0bVxuICAgICAgICAgICAgICAgICdEJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdFJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdDJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdNJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdLJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdSJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdTJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdUJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdGJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdZJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdOJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdRJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdHJzogJyNFQkVCRUInLFxuICAgICAgICAgICAgICAgICdMJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdWJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdJJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdBJzogJyNDOEM4QzgnLFxuICAgICAgICAgICAgICAgICdXJzogJyNCNDVBQjQnLFxuICAgICAgICAgICAgICAgICdIJzogJyM4MjgyRDInLFxuICAgICAgICAgICAgICAgICdQJzogJyNEQzk2ODInLFxuICAgICAgICAgICAgICAgICdvdGhlcnMnOiAnI0JFQTA2RScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yYXNNb2w7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIGNvbnN0IHJlc00gPSBtIGluIEFtaW5vYWNpZHNQYWxldHRlcy5hYVN5bm9ueW1zID8gQW1pbm9hY2lkc1BhbGV0dGVzLmFhU3lub255bXNbbV0gOiBtO1xuICAgICAgICBjb25zdCByZXMgPSBzdXBlci5nZXQocmVzTSk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxufVxuLyoqIE9ubHkgc29tZSBvZiB0aGUgc3lub255bXMuIFRoZXNlIHdlcmUgb2J0YWluZWQgZnJvbSB0aGUgY2x1c3RlcmVkIG9saWdvcGVwdGlkZSBkYXRhc2V0LiAqL1xuQW1pbm9hY2lkc1BhbGV0dGVzLmFhU3lub255bXMgPSB7XG4gICAgJ01lTmxlJzogJ0wnLFxuICAgICdNZUEnOiAnQScsXG4gICAgJ01lRyc6ICdHJyxcbiAgICAnTWVGJzogJ0YnLFxufTtcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzIHtcbiAgICBzdGF0aWMgZ2V0UGFsZXR0ZShzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgc3dpdGNoIChzY2hlbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2dyb2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgIGNhc2UgJ2xlc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuTGVzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDaGVtUGFsZXR0ZTogc2NoZW1lIFxcYCR7c2NoZW1lfVxcYCBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGMgcmF3IGFtaW5vXG4gICAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjKSB7XG4gICAgICAgIGxldCBpc0lubmVyID0gMDtcbiAgICAgICAgbGV0IGlubmVyID0gJyc7XG4gICAgICAgIGxldCBvdXRlciA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICAgICAgICAgIGlzSW5uZXIrKztcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyknKVxuICAgICAgICAgICAgICAgIGlzSW5uZXItLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5uZXIpXG4gICAgICAgICAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdXRlciArPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VJbnQoaW5uZXIpKSA/IFtvdXRlciwgJyddIDogW291dGVyLCBpbm5lcl07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lciA9ICcnLCBzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgICAgICBjb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gdGhpcy5nZXRQYWxldHRlKHNjaGVtZSk7XG4gICAgICAgIGxldCBbb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXJdID0gdGhpcy5nZXRJbm5lck91dGVyKG1vbm9tZXIpO1xuICAgICAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgICAgIGlubmVyTW9ub21lciA9IChpbm5lck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke2lubmVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogaW5uZXJNb25vbWVyKTtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9hID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJbMF0gPT0gJ2QnICYmIG1vbm9tZXJbMV0gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDIgfHwgbW9ub21lclsyXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYiA9IG1vbm9tZXJbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAzXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgoX2MgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb3dlckNhc2UoKSkgPT0gbW9ub21lclswXSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gNCB8fCBtb25vbWVyWzRdID09ICcoJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCA0XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAwXTtcbiAgICB9XG59XG5BbWlub2FjaWRzLlNlbVR5cGUgPSAnQW1pbm9hY2lkcyc7XG5BbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuQW1pbm9hY2lkcy51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbkFtaW5vYWNpZHMuTmFtZXMgPSB7XG4gICAgJ0cnOiAnR2x5Y2luZScsXG4gICAgJ0wnOiAnTGV1Y2luZScsXG4gICAgJ1knOiAnVHlyb3NpbmUnLFxuICAgICdTJzogJ1NlcmluZScsXG4gICAgJ0UnOiAnR2x1dGFtaWMgYWNpZCcsXG4gICAgJ1EnOiAnR2x1dGFtaW5lJyxcbiAgICAnRCc6ICdBc3BhcnRpYyBhY2lkJyxcbiAgICAnTic6ICdBc3BhcmFnaW5lJyxcbiAgICAnRic6ICdQaGVueWxhbGFuaW5lJyxcbiAgICAnQSc6ICdBbGFuaW5lJyxcbiAgICAnSyc6ICdMeXNpbmUnLFxuICAgICdSJzogJ0FyZ2luaW5lJyxcbiAgICAnSCc6ICdIaXN0aWRpbmUnLFxuICAgICdDJzogJ0N5c3RlaW5lJyxcbiAgICAnVic6ICdWYWxpbmUnLFxuICAgICdQJzogJ1Byb2xpbmUnLFxuICAgICdXJzogJ1RyeXB0b3BoYW4nLFxuICAgICdJJzogJ0lzb2xldWNpbmUnLFxuICAgICdNJzogJ01ldGhpb25pbmUnLFxuICAgICdUJzogJ1RocmVvbmluZScsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlcyA9IHtcbiAgICAnRyc6ICdOQ0MoPU8pTycsXG4gICAgJ0wnOiAnTltDQEhdKENDKEMpQylDKD1PKU8nLFxuICAgICdZJzogJ05DKENDMT1DQz1DKE8pQz1DMSlDKD1PKU8nLFxuICAgICdTJzogJ05DKENPKUMoPU8pTycsXG4gICAgJ0UnOiAnTltDQEBIXShDQ0MoTyk9TylDKD1PKU8nLFxuICAgICdRJzogJ05bQ0BASF0oQ0NDKE4pPU8pQyg9TylPJyxcbiAgICAnRCc6ICdOW0NAQEhdKENDKE8pPU8pQyg9TylPJyxcbiAgICAnTic6ICdOW0NAQEhdKENDKE4pPU8pQyg9TylPJyxcbiAgICAnRic6ICdOQyhDQzE9Q0M9Q0M9QzEpQyg9TylPJyxcbiAgICAnQSc6ICdOW0NASF0oQylDKD1PKU8nLFxuICAgICdLJzogJ05DKENDQ0NOKUMoPU8pTycsXG4gICAgJ1InOiAnTltDQEhdKENDQ05DKD1OKUMpQyg9TylPJyxcbiAgICAnSCc6ICdOQyhDQzE9Q049Q1tOXTEpQyg9TylPJyxcbiAgICAnQyc6ICdOW0NAQEhdKENTKUMoPU8pTycsXG4gICAgJ1YnOiAnTkMoQyhDKUMpQyg9TylPJyxcbiAgICAnUCc6ICdOKENDQzEpQzFDKD1PKU8nLFxuICAgICdXJzogJ05bQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSlDKD1PKU8nLFxuICAgICdJJzogJ05bQ0BIXShbQ0BIXShDKUNDKUMoPU8pTycsXG4gICAgJ00nOiAnTkMoQ0NTQylDKD1PKU8nLFxuICAgICdUJzogJ05DKEMoTylDKUMoPU8pTycsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlc1RydW5jYXRlZCA9IHtcbiAgICAnRyc6ICcqQyonLFxuICAgICdMJzogJ0NDKEMpQ1tDQEhdKCopKicsXG4gICAgJ1knOiAnQzE9Q0MoPUNDPUMxQ0MoKikqKU8nLFxuICAgICdTJzogJ09DQygqKUMqJyxcbiAgICAnRSc6ICcqW0NAQEhdKENDQyhPKT1PKSonLFxuICAgICdRJzogJypOW0NAQEhdKENDQyhOKT1PKSonLFxuICAgICdEJzogJypbQ0BASF0oQ0MoTyk9TykqJyxcbiAgICAnTic6ICcqW0NAQEhdKENDKE4pPU8pKicsXG4gICAgJ0YnOiAnQzE9Q0M9QyhDPUMxKUNDKCopKicsXG4gICAgJ0EnOiAnQ1tDQEhdKCopKicsXG4gICAgJ0snOiAnQyhDQ04pQ0MoKikqJyxcbiAgICAnUic6ICcqW0NASF0oQ0NDTkMoPU4pQykqJyxcbiAgICAnSCc6ICdDMT1DKE5DPU4xKUNDKCopKicsXG4gICAgJ0MnOiAnQyhbQ0BASF0oKikqKVMnLFxuICAgICdWJzogJ0NDKEMpQygqKSonLFxuICAgICdQJzogJ0MxQ0NOKCopQzEqJyxcbiAgICAnVyc6ICcqW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpKicsXG4gICAgJ0knOiAnQ0NbQ0BIXShDKVtDQEhdKCopKicsXG4gICAgJ00nOiAnQ1NDQ0MoKikqJyxcbiAgICAnVCc6ICdDQyhPKUMoKikqJyxcbn07XG4vKiogVE9ETzogRnVsbD9cbiAqL1xuQW1pbm9hY2lkcy5BQUZ1bGxOYW1lcyA9IHtcbiAgICAnQWxhJzogJ0EnLFxuICAgICdBcmcnOiAnUicsXG4gICAgJ0Fzbic6ICdOJyxcbiAgICAnQXNwJzogJ0QnLFxuICAgICdDeXMnOiAnQycsXG4gICAgJ0dsbic6ICdRJyxcbiAgICAnR2x1JzogJ0UnLFxuICAgICdHbHknOiAnRycsXG4gICAgJ0hpcyc6ICdIJyxcbiAgICAnSWxlJzogJ0knLFxuICAgICdMZXUnOiAnTCcsXG4gICAgJ0x5cyc6ICdLJyxcbiAgICAnTWV0JzogJ00nLFxuICAgICdQaGUnOiAnRicsXG4gICAgJ1Bybyc6ICdQJyxcbiAgICAnU2VyJzogJ1MnLFxuICAgICdUaHInOiAnVCcsXG4gICAgJ1RycCc6ICdXJyxcbiAgICAnVHlyJzogJ1knLFxuICAgICdWYWwnOiAnVicsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVcxcGJtOWhZMmxrY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUZ0YVc1dllXTnBaSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlMwRXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hqUVVGak8wbEJSemRETEUxQlFVMHNTMEZCU3l4SlFVRkpPMUZCUTNCQ0xFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRaUVVONFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZETlVRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8yZENRVU0xUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU03WVVGRGVrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0VFFVTXZRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJTVTBzVFVGQlRTeExRVUZMTEZWQlFWVTdVVUZETVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGRrUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRPMmRDUVVNdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF6dGhRVU5xUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMU5CUXk5Q08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTNwQ0xFTkJRVU03U1VGSlRTeE5RVUZOTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMR3RDUVVGclFpeERRVUZETzJkQ1FVTnVReXg1UkVGQmVVUTdaMEpCUTNwRUxFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEZGQlFWRXNSVUZCUlN4VFFVRlRPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEVOQlFVTTdTVUZGWlN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVNelFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjJSaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRelZDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenM3UVVGRlJDdzRSa0ZCT0VZN1FVRkRMMFVzTmtKQlFWVXNSMEZCSzBJN1NVRkRkRVFzVDBGQlR5eEZRVUZGTEVkQlFVYzdTVUZEV2l4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRE8wRkJSMG9zVFVGQlRTeFBRVUZQTEZWQlFWVTdTVUZ4UjJRc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eFRRVUZwUWl4TlFVRk5PMUZCUXpsRExGRkJRVkVzVFVGQlRTeEZRVUZGTzFsQlEyaENMRXRCUVVzc1RVRkJUVHRuUWtGRFZDeFBRVUZQTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUTBGQlF6dFpRVU4yUXl4TFFVRkxMRTFCUVUwN1owSkJRMVFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGFrTTdaMEpCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMU5CUTNKRk8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGVE8xRkJRMjVETEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOb1FpeEpRVUZKTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRaaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZGWml4TFFVRkxMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU53UWl4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSE8yZENRVU5pTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmxDUVVOUUxFbEJRVWtzU1VGQlNTeEpRVUZKTEVkQlFVYzdaMEpCUTJ4Q0xFOUJRVThzUlVGQlJTeERRVUZETzJsQ1FVTlFMRWxCUVVrc1QwRkJUenRuUWtGRFpDeExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRPenRuUWtGRlpDeExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRPMU5CUTJwQ08xRkJSVVFzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMmhGTEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNSVUZCUlN4VFFVRnBRaXhOUVVGTk96dFJRVU42UlN4elJFRkJjMFE3VVVGRGRFUXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1dVRkJXU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeFpRVUZaTEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU16Uml4WlFVRlpMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXhKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzVFVGQlFTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVGRkxGZEJRVmNzUlVGQlJ5eERRVUZETzFsQlEzcERMRTlCUVU4c1MwRkJTeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1owSkJRMjVETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRNVVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEZUVRN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlJTeEpRVUZKTEcxQ1FVRnRRaXhGUVVGRk8xbEJRek5FTEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETERCRFFVRkZMRmRCUVZjc1JVRkJSeXhEUVVGRE8yZENRVU42UXl4UFFVRlBMRXRCUVVzc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMjlDUVVOdVF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUXpGRUxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzaEVPMU5CUTBZN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVTdXVUZETDBNc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTzJkQ1FVTTFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM2hFTEU5QlFVOHNTMEZCU3l4SlFVRkpMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdiMEpCUTI1RExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZETVVRc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGVFUTdVMEZEUmp0UlFVVkVMRWxCUVVrc1EwRkJRU3hOUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNNRU5CUVVVc1YwRkJWeXhGUVVGRkxFdEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUXpORExFbEJRVWtzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkRMME1zU1VGQlNTeFBRVUZQTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4RlFVRkZPMjlDUVVNMVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEzaEVMRTlCUVU4c1MwRkJTeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN2QwSkJRMjVETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRNVVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUTNoRU8yRkJRMFk3VTBGRFJqdFJRVVZFTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVVFzUTBGQlF6czdRVUZ3VEdVc2EwSkJRVThzUjBGQlZ5eFpRVUZaTEVOQlFVTTdRVUZGTDBJc2JVTkJRWGRDTEVkQlFWY3NOa0pCUVRaQ0xFTkJRVU03UVVGRk1VVXNlVUpCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVTNRaXhuUWtGQlN5eEhRVUZ4UWp0SlFVTjBReXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNVVUZCVVR0SlFVTmlMRWRCUVVjc1JVRkJSU3hsUVVGbE8wbEJRM0JDTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeGxRVUZsTzBsQlEzQkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4bFFVRmxPMGxCUTNCQ0xFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4WFFVRlhPME5CUTJwQ0xFTkJRVU03UVVGRldTeHRRa0ZCVVN4SFFVRnhRanRKUVVONlF5eEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3h6UWtGQmMwSTdTVUZETTBJc1IwRkJSeXhGUVVGRkxESkNRVUV5UWp0SlFVTm9ReXhIUVVGSExFVkJRVVVzWTBGQll6dEpRVU51UWl4SFFVRkhMRVZCUVVVc2VVSkJRWGxDTzBsQlF6bENMRWRCUVVjc1JVRkJSU3g1UWtGQmVVSTdTVUZET1VJc1IwRkJSeXhGUVVGRkxIZENRVUYzUWp0SlFVTTNRaXhIUVVGSExFVkJRVVVzZDBKQlFYZENPMGxCUXpkQ0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN3d1FrRkJNRUk3U1VGREwwSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2JVSkJRVzFDTzBsQlEzaENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYjBOQlFXOURPMGxCUTNwRExFZEJRVWNzUlVGQlJTd3dRa0ZCTUVJN1NVRkRMMElzUjBGQlJ5eEZRVUZGTEdkQ1FVRm5RanRKUVVOeVFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wTkJRM1pDTEVOQlFVTTdRVUZGV1N3MFFrRkJhVUlzUjBGQmNVSTdTVUZEYkVRc1IwRkJSeXhGUVVGRkxFdEJRVXM3U1VGRFZpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4elFrRkJjMEk3U1VGRE0wSXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzYjBKQlFXOUNPMGxCUTNwQ0xFZEJRVWNzUlVGQlJTeHhRa0ZCY1VJN1NVRkRNVUlzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNiVUpCUVcxQ08wbEJRM2hDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRmxCUVZrN1NVRkRha0lzUjBGQlJ5eEZRVUZGTEdOQlFXTTdTVUZEYmtJc1IwRkJSeXhGUVVGRkxIRkNRVUZ4UWp0SlFVTXhRaXhIUVVGSExFVkJRVVVzYlVKQlFXMUNPMGxCUTNoQ0xFZEJRVWNzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRja0lzUjBGQlJ5eEZRVUZGTEZsQlFWazdTVUZEYWtJc1IwRkJSeXhGUVVGRkxHRkJRV0U3U1VGRGJFSXNSMEZCUnl4RlFVRkZMQ3RDUVVFclFqdEpRVU53UXl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3hYUVVGWE8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4WlFVRlpPME5CUTJ4Q0xFTkJRVU03UVVGRlJqdEhRVU5ITzBGQlExY3NjMEpCUVZjc1IwRkJjVUk3U1VGRE5VTXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dERRVU5ZTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMU4wY21sdVowUnBZM1JwYjI1aGNubDlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3VTJWeFVHRnNaWFIwWlN3Z1UyVnhVR0ZzWlhSMFpVSmhjMlY5SUdaeWIyMGdKeTR2YzJWeExYQmhiR1YwZEdWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGN5QmxlSFJsYm1SeklGTmxjVkJoYkdWMGRHVkNZWE5sSUh0Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHVnphem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JNWlhOcktDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbXhsYzJzZ1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1c1pYTnJJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowY25MQ0FuUVNjc0lDZFRKeXdnSjFRblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0oxQW5MQ0FuUmljc0lDZFpKeXdnSjAwbkxDQW5WeWRkTENBbllXeHNYMmR5WldWdUoxMHNYRzRnSUNBZ0lDQWdJRnRiSjA0bkxDQW5VU2NzSUNkSUoxMHNJQ2R0WVdkbGJuUmhKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5jbVZrSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMHNuTENBblVpZGRMQ0FuWVd4c1gySnNkV1VuWFN4Y2JpQWdJQ0FnSUYwc0lHWmhiSE5sTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1c1pYTnJPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdaM0p2YTBkeWIzVndjem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JIY205clIzSnZkWEJ6S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtZHliMnRIY205MWNITWdQVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NW5jbTlyUjNKdmRYQnpJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowTW5MQ0FuVlNkZExDQW5lV1ZzYkc5M0oxMHNYRzRnSUNBZ0lDQWdJRnRiSjBjbkxDQW5VQ2RkTENBbmNtVmtKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowRW5MQ0FuVmljc0lDZEpKeXdnSjB3bkxDQW5UU2NzSUNkR0p5d2dKMWtuTENBblZ5ZGRMQ0FuWVd4c1gyZHlaV1Z1SjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMUluTENBblNDY3NJQ2RMSjEwc0lDZHNhV2RvZEY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5aR0Z5YTE5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkoxTW5MQ0FuVkNjc0lDZE9KeXdnSjFFblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdYU3dnWm1Gc2MyVXNJRUZ0YVc1dllXTnBaSE5RWVd4bGRIUmxjeWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWR5YjJ0SGNtOTFjSE03WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJ5WVhOTmIydzZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdVbUZ6VFc5c0tDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbkpoYzAxdmJDQTlQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSmhjMDF2YkNBOUlHNWxkeUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE1vZTF4dUlDQWdJQ0FnSUNBdkx5Qm9kSFJ3T2k4dllXTmpaWE11Wlc1ekxXeDViMjR1Wm5JdlltbHZkR2xqTDNKaGMzUnZjQzlvWld4d0wyTnZiRzkxY2k1b2RHMWNiaUFnSUNBZ0lDQWdKMFFuT2lBbkkwVTJNRUV3UVNjc0lDOHZJR0Z6Y0N3Z1lYTndZWEowYVdNZ1lXTnBaQ3dnWVhOd1hHNGdJQ0FnSUNBZ0lDZEZKem9nSnlORk5qQkJNRUVuTENBdkx5Qm5iSFVzSUdkc2RYUmhiV2xqSUdGamFXUmNiaUFnSUNBZ0lDQWdKME1uT2lBbkkwVTJSVFl3TUNjc0lDOHZJR041Y3l3Z1kzbHpkR1ZwYm1WY2JpQWdJQ0FnSUNBZ0owMG5PaUFuSTBVMlJUWXdNQ2NzSUM4dklHMWxkQ3dnYldWMGFHbHZibWx1WlZ4dUlDQWdJQ0FnSUNBblN5YzZJQ2NqTVRRMVFVWkdKeXdnTHk4Z2JIbHpMQ0JzZVhOcGJtVmNiaUFnSUNBZ0lDQWdKMUluT2lBbkl6RTBOVUZHUmljc0lDOHZJR0Z5Wnl3Z1lYSm5hVzVwYm1WY2JpQWdJQ0FnSUNBZ0oxTW5PaUFuSTBaQk9UWXdNQ2NzSUM4dklITmxjaXdnYzJWeWFXNWxYRzRnSUNBZ0lDQWdJQ2RVSnpvZ0p5TkdRVGsyTURBbkxDQXZMeUIwYUhJc0lIUm9jbVZ2Ym1sdVpWeHVJQ0FnSUNBZ0lDQW5SaWM2SUNjak16SXpNa0ZCSnl3Z0x5OGdjR2hsTENCd2FHVnVlV3hoYkdGdWFXNWxYRzRnSUNBZ0lDQWdJQ2RaSnpvZ0p5TXpNak15UVVFbkxDQXZMeUIwZVhJc0lIUjVjbTl6YVc1bFhHNGdJQ0FnSUNBZ0lDZE9Kem9nSnlNd01FUkRSRU1uTENBdkx5QmhjMjRzSUdGemNHRnlZV2RwYm1WY2JpQWdJQ0FnSUNBZ0oxRW5PaUFuSXpBd1JFTkVReWNzSUM4dklHZHNiaXdnWjJ4MWRHRnRhVzVsWEc0Z0lDQWdJQ0FnSUNkSEp6b2dKeU5GUWtWQ1JVSW5MQ0F2THlCbmJIa3NJR2RzZVdOcGJtVmNiaUFnSUNBZ0lDQWdKMHduT2lBbkl6QkdPREl3Umljc0lDOHZJR3hsZFN3Z2JHVjFZMmx1WlZ4dUlDQWdJQ0FnSUNBblZpYzZJQ2NqTUVZNE1qQkdKeXdnTHk4Z2RtRnNMQ0IyWVd4cGJtVmNiaUFnSUNBZ0lDQWdKMGtuT2lBbkl6QkdPREl3Umljc0lDOHZJR2xzWlN3Z2FYTnZiR1YxWTJsdVpWeHVJQ0FnSUNBZ0lDQW5RU2M2SUNjalF6aERPRU00Snl3Z0x5OGdZV3hoTENCaGJHRnVhVzVsWEc0Z0lDQWdJQ0FnSUNkWEp6b2dKeU5DTkRWQlFqUW5MQ0F2THlCMGNuQXNJSFJ5ZVhCMGIzQm9ZVzVjYmlBZ0lDQWdJQ0FnSjBnbk9pQW5Jemd5T0RKRU1pY3NJQzh2SUdocGN5d2dhR2x6ZEdsa2FXNWxYRzRnSUNBZ0lDQWdJQ2RRSnpvZ0p5TkVRemsyT0RJbkxDQXZMeUJ3Y204c0lIQnliMnhwYm1WY2JpQWdJQ0FnSUNBZ0oyOTBhR1Z5Y3ljNklDY2pRa1ZCTURaRkp5eGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlZWE5OYjJ3N1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2IzWmxjbkpwWkdVZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpUU0E5SUcwZ2FXNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMbUZoVTNsdWIyNTViWE1nUHlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVlXRlRlVzV2Ym5sdGMxdHRYU0E2SUcwN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ2MzVndaWEl1WjJWMEtISmxjMDBwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lIMWNibHh1SUNBdktpb2dUMjVzZVNCemIyMWxJRzltSUhSb1pTQnplVzV2Ym5sdGN5NGdWR2hsYzJVZ2QyVnlaU0J2WW5SaGFXNWxaQ0JtY205dElIUm9aU0JqYkhWemRHVnlaV1FnYjJ4cFoyOXdaWEIwYVdSbElHUmhkR0Z6WlhRdUlDb3ZYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0ZoVTNsdWIyNTViWE02SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5SUQwZ2UxeHVJQ0FnSUNkTlpVNXNaU2M2SUNkTUp5d2dMeThnVG14bElDMGdibTl5YkdWMVkybHVaVnh1SUNBZ0lDZE5aVUVuT2lBblFTY3NYRzRnSUNBZ0owMWxSeWM2SUNkSEp5eGNiaUFnSUNBblRXVkdKem9nSjBZbkxGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1FXMXBibTloWTJsa2N5QjdYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxPaUJ6ZEhKcGJtY2dQU0FuUVcxcGJtOWhZMmxrY3ljN1hHNWNiaUFnYzNSaGRHbGpJSEpsWVdSdmJteDVJRk5sYlZSNWNHVk5kV3gwYVhCc1pVRnNhV2R1YldWdWREb2djM1J5YVc1bklEMGdKMEZ0YVc1dllXTnBaSE5OZFd4MGFYQnNaVUZzYVdkdWJXVnVkQ2M3WEc1Y2JpQWdjM1JoZEdsaklIVnVaR1ZtYVc1bFpFTnZiRzl5SUQwZ0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdUbUZ0WlhNNklGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdYRzRnSUNBZ0owY25PaUFuUjJ4NVkybHVaU2NzWEc0Z0lDQWdKMHduT2lBblRHVjFZMmx1WlNjc1hHNGdJQ0FnSjFrbk9pQW5WSGx5YjNOcGJtVW5MRnh1SUNBZ0lDZFRKem9nSjFObGNtbHVaU2NzWEc0Z0lDQWdKMFVuT2lBblIyeDFkR0Z0YVdNZ1lXTnBaQ2NzWEc0Z0lDQWdKMUVuT2lBblIyeDFkR0Z0YVc1bEp5eGNiaUFnSUNBblJDYzZJQ2RCYzNCaGNuUnBZeUJoWTJsa0p5eGNiaUFnSUNBblRpYzZJQ2RCYzNCaGNtRm5hVzVsSnl4Y2JpQWdJQ0FuUmljNklDZFFhR1Z1ZVd4aGJHRnVhVzVsSnl4Y2JpQWdJQ0FuUVNjNklDZEJiR0Z1YVc1bEp5eGNiaUFnSUNBblN5YzZJQ2RNZVhOcGJtVW5MRnh1SUNBZ0lDZFNKem9nSjBGeVoybHVhVzVsSnl4Y2JpQWdJQ0FuU0NjNklDZElhWE4wYVdScGJtVW5MRnh1SUNBZ0lDZERKem9nSjBONWMzUmxhVzVsSnl4Y2JpQWdJQ0FuVmljNklDZFdZV3hwYm1VbkxGeHVJQ0FnSUNkUUp6b2dKMUJ5YjJ4cGJtVW5MRnh1SUNBZ0lDZFhKem9nSjFSeWVYQjBiM0JvWVc0bkxGeHVJQ0FnSUNkSkp6b2dKMGx6YjJ4bGRXTnBibVVuTEZ4dUlDQWdJQ2ROSnpvZ0owMWxkR2hwYjI1cGJtVW5MRnh1SUNBZ0lDZFVKem9nSjFSb2NtVnZibWx1WlNjc1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFWTnRhV3hsY3pvZ1UzUnlhVzVuUkdsamRHbHZibUZ5ZVNBOUlIdGNiaUFnSUNBblJ5YzZJQ2RPUTBNb1BVOHBUeWNzWEc0Z0lDQWdKMHduT2lBblRsdERRRWhkS0VOREtFTXBReWxES0QxUEtVOG5MRnh1SUNBZ0lDZFpKem9nSjA1REtFTkRNVDFEUXoxREtFOHBRejFETVNsREtEMVBLVThuTEZ4dUlDQWdJQ2RUSnpvZ0owNURLRU5QS1VNb1BVOHBUeWNzWEc0Z0lDQWdKMFVuT2lBblRsdERRRUJJWFNoRFEwTW9UeWs5VHlsREtEMVBLVThuTEZ4dUlDQWdJQ2RSSnpvZ0owNWJRMEJBU0Ywb1EwTkRLRTRwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUkNjNklDZE9XME5BUUVoZEtFTkRLRThwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVGljNklDZE9XME5BUUVoZEtFTkRLRTRwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUmljNklDZE9ReWhEUXpFOVEwTTlRME05UXpFcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUVNjNklDZE9XME5BU0Ywb1F5bERLRDFQS1U4bkxGeHVJQ0FnSUNkTEp6b2dKMDVES0VORFEwTk9LVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxSW5PaUFuVGx0RFFFaGRLRU5EUTA1REtEMU9LVU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5TQ2M2SUNkT1F5aERRekU5UTA0OVExdE9YVEVwUXlnOVR5bFBKeXhjYmlBZ0lDQW5ReWM2SUNkT1cwTkFRRWhkS0VOVEtVTW9QVThwVHljc1hHNGdJQ0FnSjFZbk9pQW5Ua01vUXloREtVTXBReWc5VHlsUEp5eGNiaUFnSUNBblVDYzZJQ2RPS0VORFF6RXBRekZES0QxUEtVOG5MRnh1SUNBZ0lDZFhKem9nSjA1YlEwQkFTRjBvUTJNeFl6SmpZMk5qWXpKdUtGdElYU2xqTVNsREtEMVBLVThuTEZ4dUlDQWdJQ2RKSnpvZ0owNWJRMEJJWFNoYlEwQklYU2hES1VOREtVTW9QVThwVHljc1hHNGdJQ0FnSjAwbk9pQW5Ua01vUTBOVFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkVUp6b2dKMDVES0VNb1R5bERLVU1vUFU4cFR5Y3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkJRVk50YVd4bGMxUnlkVzVqWVhSbFpEb2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5SeWM2SUNjcVF5b25MRnh1SUNBZ0lDZE1Kem9nSjBOREtFTXBRMXREUUVoZEtDb3BLaWNzWEc0Z0lDQWdKMWtuT2lBblF6RTlRME1vUFVORFBVTXhRME1vS2lrcUtVOG5MRnh1SUNBZ0lDZFRKem9nSjA5RFF5Z3FLVU1xSnl4Y2JpQWdJQ0FuUlNjNklDY3FXME5BUUVoZEtFTkRReWhQS1QxUEtTb25MRnh1SUNBZ0lDZFJKem9nSnlwT1cwTkFRRWhkS0VORFF5aE9LVDFQS1NvbkxGeHVJQ0FnSUNkRUp6b2dKeXBiUTBCQVNGMG9RME1vVHlrOVR5a3FKeXhjYmlBZ0lDQW5UaWM2SUNjcVcwTkFRRWhkS0VOREtFNHBQVThwS2ljc1hHNGdJQ0FnSjBZbk9pQW5RekU5UTBNOVF5aERQVU14S1VOREtDb3BLaWNzWEc0Z0lDQWdKMEVuT2lBblExdERRRWhkS0NvcEtpY3NYRzRnSUNBZ0owc25PaUFuUXloRFEwNHBRME1vS2lrcUp5eGNiaUFnSUNBblVpYzZJQ2NxVzBOQVNGMG9RME5EVGtNb1BVNHBReWtxSnl4Y2JpQWdJQ0FuU0NjNklDZERNVDFES0U1RFBVNHhLVU5ES0NvcEtpY3NYRzRnSUNBZ0owTW5PaUFuUXloYlEwQkFTRjBvS2lrcUtWTW5MRnh1SUNBZ0lDZFdKem9nSjBOREtFTXBReWdxS1NvbkxGeHVJQ0FnSUNkUUp6b2dKME14UTBOT0tDb3BRekVxSnl4Y2JpQWdJQ0FuVnljNklDY3FXME5BUUVoZEtFTmpNV015WTJOalkyTXliaWhiU0YwcFl6RXBLaWNzWEc0Z0lDQWdKMGtuT2lBblEwTmJRMEJJWFNoREtWdERRRWhkS0NvcEtpY3NYRzRnSUNBZ0owMG5PaUFuUTFORFEwTW9LaWtxSnl4Y2JpQWdJQ0FuVkNjNklDZERReWhQS1VNb0tpa3FKeXhjYmlBZ2ZUdGNibHh1SUNBdktpb2dWRTlFVHpvZ1JuVnNiRDljYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdRVUZHZFd4c1RtRnRaWE02SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1hHNGdJQ0FnSjBGc1lTYzZJQ2RCSnl4Y2JpQWdJQ0FuUVhKbkp6b2dKMUluTEZ4dUlDQWdJQ2RCYzI0bk9pQW5UaWNzWEc0Z0lDQWdKMEZ6Y0NjNklDZEVKeXhjYmlBZ0lDQW5RM2x6SnpvZ0owTW5MRnh1SUNBZ0lDZEhiRzRuT2lBblVTY3NYRzRnSUNBZ0owZHNkU2M2SUNkRkp5eGNiaUFnSUNBblIyeDVKem9nSjBjbkxGeHVJQ0FnSUNkSWFYTW5PaUFuU0Njc1hHNGdJQ0FnSjBsc1pTYzZJQ2RKSnl4Y2JpQWdJQ0FuVEdWMUp6b2dKMHduTEZ4dUlDQWdJQ2RNZVhNbk9pQW5TeWNzWEc0Z0lDQWdKMDFsZENjNklDZE5KeXhjYmlBZ0lDQW5VR2hsSnpvZ0owWW5MRnh1SUNBZ0lDZFFjbThuT2lBblVDY3NYRzRnSUNBZ0oxTmxjaWM2SUNkVEp5eGNiaUFnSUNBblZHaHlKem9nSjFRbkxGeHVJQ0FnSUNkVWNuQW5PaUFuVnljc1hHNGdJQ0FnSjFSNWNpYzZJQ2RaSnl4Y2JpQWdJQ0FuVm1Gc0p6b2dKMVluTEZ4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMFVHRnNaWFIwWlNoelkyaGxiV1U2SUhOMGNtbHVaeUE5SUNkbmNtOXJKeWs2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUhOM2FYUmphQ0FvYzJOb1pXMWxLU0I3WEc0Z0lDQWdZMkZ6WlNBblozSnZheWM2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lDQWdZMkZ6WlNBbmJHVnpheWM2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa3hsYzJzN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdRMmhsYlZCaGJHVjBkR1U2SUhOamFHVnRaU0JjWEdBa2UzTmphR1Z0WlgxY1hHQWdaRzlsY3lCdWIzUWdaWGhwYzNSZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmthWFpwWkdWa0lHRnRhVzV2SUdGamFXUWdkMmwwYUNCcGRITWdZMjl1ZEdWdWRDQnBiaUIwYUdVZ1luSmhZMnRsZEN3Z2FXWWdkR2hsSUdOdmJuUmxiblFnYVhNZ2JuVnRZbVZ5TENCMGFHVnVJR2wwY3lCdmJXbDBkR1ZrWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCaklISmhkeUJoYldsdWIxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0YmMzUnlhVzVuTENCemRISnBibWRkZlNCdmRYUmxjaUJoYm1RZ2FXNXVaWElnWTI5dWRHVnVkRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJKYm01bGNrOTFkR1Z5S0dNNklITjBjbWx1WnlrNklGdHpkSEpwYm1jc0lITjBjbWx1WjEwZ2UxeHVJQ0FnSUd4bGRDQnBjMGx1Ym1WeUlEMGdNRHRjYmlBZ0lDQnNaWFFnYVc1dVpYSWdQU0FuSnp0Y2JpQWdJQ0JzWlhRZ2IzVjBaWElnUFNBbkp6dGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdZMmhoY2lCdlppQmpLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyaGhjaUE5UFNBbktDY3BYRzRnSUNBZ0lDQWdJR2x6U1c1dVpYSXJLenRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLR05vWVhJZ1BUMGdKeWtuS1Z4dUlDQWdJQ0FnSUNCcGMwbHVibVZ5TFMwN1hHNGdJQ0FnSUNCbGJITmxJR2xtSUNocGMwbHVibVZ5S1Z4dUlDQWdJQ0FnSUNCcGJtNWxjaUFyUFNCamFHRnlPMXh1SUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNCdmRYUmxjaUFyUFNCamFHRnlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlBaGFYTk9ZVTRvY0dGeWMyVkpiblFvYVc1dVpYSXBLU0EvSUZ0dmRYUmxjaXdnSnlkZElEb2dXMjkxZEdWeUxDQnBibTVsY2wwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRFTnZiRzl5UVVGUWFYWnZkQ2h0YjI1dmJXVnlPaUJ6ZEhKcGJtY2dQU0FuSnl3Z2MyTm9aVzFsT2lBblozSnZheWNnUFNBblozSnZheWNwT2lCYmMzUnlhVzVuTENCemRISnBibWNzSUhOMGNtbHVaeXdnYm5WdFltVnlYU0I3WEc0Z0lDQWdMeTlqYjI1emRDQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDBnUVVGUVlXeGxkSFJsY3k1SGNtOXJSM0p2ZFhCektDazdYRzRnSUNBZ1kyOXVjM1FnWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlNBOUlIUm9hWE11WjJWMFVHRnNaWFIwWlNoelkyaGxiV1VwTzF4dUlDQWdJR3hsZENCYmIzVjBaWEpOYjI1dmJXVnlMQ0JwYm01bGNrMXZibTl0WlhKZElEMGdkR2hwY3k1blpYUkpibTVsY2s5MWRHVnlLRzF2Ym05dFpYSXBPMXh1SUNBZ0lHOTFkR1Z5VFc5dWIyMWxjaUE5SUNodmRYUmxjazF2Ym05dFpYSXViR1Z1WjNSb0lENGdOaUEvSUdBa2UyOTFkR1Z5VFc5dWIyMWxjaTV6YkdsalpTZ3dMQ0F6S1gwdUxpNWdJRG9nYjNWMFpYSk5iMjV2YldWeUtUdGNiaUFnSUNCcGJtNWxjazF2Ym05dFpYSWdQU0FvYVc1dVpYSk5iMjV2YldWeUxteGxibWQwYUNBK0lEWWdQeUJnSkh0cGJtNWxjazF2Ym05dFpYSXVjMnhwWTJVb01Dd2dNeWw5TGk0dVlDQTZJR2x1Ym1WeVRXOXViMjFsY2lrN1hHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNpNXNaVzVuZEdnZ1BUMGdNU0I4ZkNCdGIyNXZiV1Z5V3pGZElEMDlJQ2NvSnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWVcxcGJtOGdQU0J0YjI1dmJXVnlXekJkUHk1MGIxVndjR1Z5UTJGelpTZ3BJVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhiV2x1YnlCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDljYmlBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVdVoyVjBLR0Z0YVc1dktTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTVYwZ09seHVJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURGZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHRiMjV2YldWeVd6QmRJRDA5SUNka0p5QW1KaUJ0YjI1dmJXVnlXekZkSVNCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxLU0I3WEc0Z0lDQWdJQ0JwWmlBb2JXOXViMjFsY2k1c1pXNW5kR2dnUFQwZ01pQjhmQ0J0YjI1dmJXVnlXekpkSUQwOUlDY29KeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoYldsdWJ5QTlJRzF2Ym05dFpYSmJNVjAvTG5SdlZYQndaWEpEWVhObEtDa2hPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUNBZ1cyTm9aVzFRWVd4bGRIUmxTVzV6ZEdGdVkyVXVaMlYwS0dGdGFXNXZLU3dnWVcxcGJtOHNJR2x1Ym1WeVRXOXViMjFsY2l3Z01sMGdPbHh1SUNBZ0lDQWdJQ0FnSUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNbDA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0cxdmJtOXRaWEl1YzNWaWMzUnlhVzVuS0RBc0lETXBJR2x1SUhSb2FYTXVRVUZHZFd4c1RtRnRaWE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxteGxibWQwYUNBOVBTQXpJSHg4SUcxdmJtOXRaWEpiTTEwZ1BUMGdKeWduS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdGdGFXNXZJRDBnZEdocGN5NUJRVVoxYkd4T1lXMWxjMXR0YjI1dmJXVnlMbk4xWW5OMGNtbHVaeWd3TENBektWMDdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhiV2x1YnlCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDljYmlBZ0lDQWdJQ0FnSUNCYlkyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTNW5aWFFvWVcxcGJtOHBMQ0JoYldsdWJ5d2dhVzV1WlhKTmIyNXZiV1Z5TENBelhTQTZYRzRnSUNBZ0lDQWdJQ0FnVzNSb2FYTXVkVzVrWldacGJtVmtRMjlzYjNJc0lHOTFkR1Z5VFc5dWIyMWxjaXdnYVc1dVpYSk5iMjV2YldWeUxDQXpYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYlc5dWIyMWxjbHN3WFQ4dWRHOU1iM2RsY2tOaGMyVW9LU0E5UFNCdGIyNXZiV1Z5V3pCZEtTQjdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaTV6ZFdKemRISnBibWNvTVN3Z015a2dhVzRnZEdocGN5NUJRVVoxYkd4T1lXMWxjeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9iVzl1YjIxbGNpNXNaVzVuZEdnZ1BUMGdOQ0I4ZkNCdGIyNXZiV1Z5V3pSZElEMDlJQ2NvSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2RHaHBjeTVCUVVaMWJHeE9ZVzFsYzF0dGIyNXZiV1Z5TG5OMVluTjBjbWx1WnlneExDQXpLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVdVoyVjBLR0Z0YVc1dktTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTkYwZ09seHVJQ0FnSUNBZ0lDQWdJQ0FnVzNSb2FYTXVkVzVrWldacGJtVmtRMjlzYjNJc0lHOTFkR1Z5VFc5dWIyMWxjaXdnYVc1dVpYSk5iMjV2YldWeUxDQTBYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURCZE8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgU2VxUGFsZXR0ZUJhc2UgfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IENocm9tYXRvZ3JhbSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hyb21hdG9ncmFtID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hyb21hdG9ncmFtID0gbmV3IE51Y2xlb3RpZGVzUGFsZXR0ZXMoe1xuICAgICAgICAgICAgICAgICdBJzogJ2dyZWVuJyxcbiAgICAgICAgICAgICAgICAnQyc6ICdibHVlJyxcbiAgICAgICAgICAgICAgICAnRyc6ICdibGFjaycsXG4gICAgICAgICAgICAgICAgJ1QnOiAncmVkJyxcbiAgICAgICAgICAgICAgICAnVSc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdvdGhlcnMnOiAnZ3JheScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jaHJvbWF0b2dyYW07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE51Y2xlb3RpZGVzIHtcbn1cbk51Y2xlb3RpZGVzLlNlbVR5cGUgPSAnTnVjbGVvdGlkZXMnO1xuTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50ID0gJ051Y2xlb3RpZGVzTXVsdGlwbGVBbGlnbm1lbnQnO1xuTnVjbGVvdGlkZXMuTmFtZXMgPSB7XG4gICAgJ0EnOiAnQWRlbmluZScsXG4gICAgJ0MnOiAnQ3l0b3NpbmUnLFxuICAgICdHJzogJ0d1YW5pbmUnLFxuICAgICdUJzogJ1RoeW1pbmUnLFxuICAgICdVJzogJ1VyYWNpbCcsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYm5WamJHVnZkR2xrWlhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp1ZFdOc1pXOTBhV1JsY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkxRU3hQUVVGUExFVkJRV0VzWTBGQll5eEZRVUZETEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRk1VUXNUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEdOQlFXTTdTVUZIT1VNc1RVRkJUU3hMUVVGTExGbEJRVms3VVVGRE5VSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1dVRkJXU3hMUVVGTExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlEyaERMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJRenRuUWtGRE1VTXNSMEZCUnl4RlFVRkZMRTlCUVU4N1owSkJRMW9zUjBGQlJ5eEZRVUZGTEUxQlFVMDdaMEpCUTFnc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzUjBGQlJ5eEZRVUZGTEV0QlFVczdaMEpCUTFZc1VVRkJVU3hGUVVGRkxFMUJRVTA3WVVGRGFrSXNRMEZCUXl4RFFVRkRPMU5CUTBvN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdTVUZETTBJc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFBRVUZQTEZkQlFWYzdPMEZCUTA0c2JVSkJRVThzUjBGQlZ5eGhRVUZoTEVOQlFVTTdRVUZGYUVNc2IwTkJRWGRDTEVkQlFWY3NPRUpCUVRoQ0xFTkJRVU03UVVGRmNFVXNhVUpCUVVzc1IwRkJjVUk3U1VGRGRFTXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNVVUZCVVR0RFFVTmtMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UxTjBjbWx1WjBScFkzUnBiMjVoY25sOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdVMlZ4VUdGc1pYUjBaU3dnVTJWeFVHRnNaWFIwWlVKaGMyVjlJR1p5YjIwZ0p5NHZjMlZ4TFhCaGJHVjBkR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhNZ1pYaDBaVzVrY3lCVFpYRlFZV3hsZEhSbFFtRnpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdOb2NtOXRZWFJ2WjNKaGJUb2dVMlZ4VUdGc1pYUjBaVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRDQkRhSEp2YldGMGIyZHlZVzBvS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDA5UFNCMmIybGtJREFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0SUQwZ2JtVjNJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1vZTF4dUlDQWdJQ0FnSUNBblFTYzZJQ2RuY21WbGJpY3NYRzRnSUNBZ0lDQWdJQ2RESnpvZ0oySnNkV1VuTEZ4dUlDQWdJQ0FnSUNBblJ5YzZJQ2RpYkdGamF5Y3NJQzh2SUc5eVlXNW5aU0EvWEc0Z0lDQWdJQ0FnSUNkVUp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZFZKem9nSjNKbFpDY3NYRzRnSUNBZ0lDQWdJQ2R2ZEdobGNuTW5PaUFuWjNKaGVTY3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0TzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJPZFdOc1pXOTBhV1JsY3lCN1hHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbE9pQnpkSEpwYm1jZ1BTQW5UblZqYkdWdmRHbGtaWE1uTzF4dVhHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbFRYVnNkR2x3YkdWQmJHbG5ibTFsYm5RNklITjBjbWx1WnlBOUlDZE9kV05zWlc5MGFXUmxjMDExYkhScGNHeGxRV3hwWjI1dFpXNTBKenRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUU1aGJXVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RCSnpvZ0owRmtaVzVwYm1VbkxGeHVJQ0FnSUNkREp6b2dKME41ZEc5emFXNWxKeXhjYmlBZ0lDQW5SeWM2SUNkSGRXRnVhVzVsSnl4Y2JpQWdJQ0FuVkNjNklDZFVhSGx0YVc1bEp5eGNiaUFnSUNBblZTYzZJQ2RWY21GamFXd25MRnh1SUNCOU8xeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgY29uc3RydWN0b3IocGFsZXR0ZSkge1xuICAgICAgICB0aGlzLl9wYWxldHRlID0gcGFsZXR0ZTtcbiAgICB9XG4gICAgc3RhdGljIG1ha2VQYWxldHRlKGR0LCBzaW1wbGlmaWVkID0gZmFsc2UsIFBhbGV0dGVUeXBlID0gU2VxUGFsZXR0ZUJhc2UpIHtcbiAgICAgICAgY29uc3QgcGFsZXR0ZSA9IHt9O1xuICAgICAgICBkdC5mb3JFYWNoKChjcCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqTGlzdCA9IGNwWzBdO1xuICAgICAgICAgICAgY29uc3QgY29sb3VyID0gY3BbMV07XG4gICAgICAgICAgICBvYmpMaXN0LmZvckVhY2goKG9iaiwgaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFsZXR0ZVtvYmpdID0gdGhpcy5jb2xvdXJQYWxldHRlW2NvbG91cl1bc2ltcGxpZmllZCA/IDAgOiBpbmRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFBhbGV0dGVUeXBlKHBhbGV0dGUpO1xuICAgIH1cbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFsZXR0ZVttXTtcbiAgICB9XG59XG5TZXFQYWxldHRlQmFzZS51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbi8qKiBQYWxldHRlIHdpdGggc2hhZGVzIG9mIHByaW1hcnkgY29sb3JzICovXG5TZXFQYWxldHRlQmFzZS5jb2xvdXJQYWxldHRlID0ge1xuICAgICdvcmFuZ2UnOiBbJ3JnYigyNTUsMTg3LDEyMCknLCAncmdiKDI0NSwxNjcsMTAwKScsICdyZ2IoMjM1LDEzNyw3MCknLCAncmdiKDIwNSwgMTExLCA3MSknXSxcbiAgICAnYWxsX2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KScsICdyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsXG4gICAgICAgICdyZ2IoMjQsMTEwLDc5KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigxODIsIDIyMywgMTM4KScsICdyZ2IoMTUyLCAxOTMsIDEzOCknXSxcbiAgICAnYWxsX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDEyMiwgMTAyLCAxODkpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDE0MSwgMTI0LCAyMTcpJyxcbiAgICAgICAgJ3JnYigzMSwgMTIwLCAxNTApJ10sXG4gICAgJ21hZ2VudGEnOiBbJ3JnYigxNjIsMTA2LDE5MiknLCAncmdiKDE5NywxNjUsMjI0KScsICdyZ2IoMjA4LDExMywyMTgpJ10sXG4gICAgJ3JlZCc6IFsncmdiKDIxNCwzOSw0MCknLCAncmdiKDI1NSwxNTIsMTUwKSddLFxuICAgICdzdF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMzEsMTE5LDE4MCknXSxcbiAgICAnZGFya19ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbGlnaHRfYmx1ZSc6IFsncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDEwOCwgMjE4LCAyMjkpJywgJ3JnYigyMywxOTAsMjI3KSddLFxuICAgICdsaWxhY19ibHVlJzogWydyZ2IoMTI0LDEwMiwyMTEpJywgJ3JnYigxNDksMTM0LDIxNyknLCAncmdiKDk3LCA4MSwgMTUwKSddLFxuICAgICdkYXJrX2dyZWVuJzogWydyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsICdyZ2IoMjQsMTEwLDc5KSddLFxuICAgICdncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAnbGlnaHRfZ3JlZW4nOiBbJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdzdF9ncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMzksIDE3NCwgOTYpJywgJ3JnYig3NCwxNjAsNzQpJ10sXG4gICAgJ3BpbmsnOiBbJ3JnYigyNDcsMTgyLDIxMCknXSxcbiAgICAnYnJvd24nOiBbJ3JnYigxNDAsODYsNzUpJywgJ3JnYigxMDIsIDYyLCA1NCknXSxcbiAgICAnZ3JheSc6IFsncmdiKDEyNywxMjcsMTI3KScsICdyZ2IoMTk5LDE5OSwxOTkpJywgJ3JnYigxOTYsMTU2LDE0OCknLCAncmdiKDIyMiwgMjIyLCAxODApJ10sXG4gICAgJ3llbGxvdyc6IFsncmdiKDE4OCwxODksMzQpJ10sXG4gICAgJ3doaXRlJzogWydyZ2IoMjMwLDIzMCwyMzApJ10sXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeExYQmhiR1YwZEdWekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJWeExYQmhiR1YwZEdWekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRV2xDUVN4TlFVRk5MRTlCUVU4c1kwRkJZenRKUVRKRGVrSXNXVUZCV1N4UFFVRm5RenRSUVVNeFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVNeFFpeERRVUZETzBsQmJFSlRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQmQwSXNSVUZEYmtRc1ZVRkJWU3hIUVVGSExFdEJRVXNzUlVGQlJTeGpRVUZ4UXl4alFVRmpPMUZCUlhaRkxFMUJRVTBzVDBGQlR5eEhRVUU0UWl4RlFVRkZMRU5CUVVNN1VVRkRPVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRk8xbEJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRuUWtGRE0wSXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVsQlFVa3NWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRMnhETEVOQlFVTTdTVUZSVFN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVOc1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXpzN1FVRm9SR0VzTmtKQlFXTXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dEJRVVZzUkN3MFEwRkJORU03UVVGRE9VSXNORUpCUVdFc1IwRkJaME03U1VGRGVrUXNVVUZCVVN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTTdTVUZETVVZc1YwRkJWeXhGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTzFGQlEzQkhMR2RDUVVGblFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMRzlDUVVGdlFpeERRVUZETzBsQlEyNUdMRlZCUVZVc1JVRkJSU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRzlDUVVGdlFqdFJRVU12Unl4dFFrRkJiVUlzUTBGQlF6dEpRVU4wUWl4VFFVRlRMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVOMlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNM1F5eFRRVUZUTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXp0SlFVTnlSU3hYUVVGWExFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXp0SlFVTnlSQ3haUVVGWkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRKUVVNNVJpeFpRVUZaTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTXhSU3haUVVGWkxFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVOMFJpeFBRVUZQTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVNM1F5eGhRVUZoTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0SlFVTXZSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVONFJpeE5RVUZOTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dEpRVU0xUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU12UXl4TlFVRk5MRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0SlFVTXhSaXhSUVVGUkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRKUVVNM1FpeFBRVUZQTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dERRVU01UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUWlhGUVlXeGxkSFJsSUh0Y2JpQWdMeThnVkdobGNtVWdZWEpsSUhSdmJ5QnRkV05vSUhCeWIySnNaVzBnZDJsMGFDQnBibVJsZUdWeUlIQnliM0JsY25SNUlHbHVJSFI1Y0dWelkzSnBjSFF1WEc0Z0lDOHZJQzhxS2x4dUlDQXZMeUFnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYlNCTmIyNXZiV1Z5SUdOb1lYSmhZM1JsY2x4dUlDQXZMeUFnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUVOdmJHOXlYRzRnSUM4dklDQXFMMXh1SUNBdkx5QmJiVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5PMXh1SUNBdktpb2dUVzl1YjIxbGNpQmpiMnh2Y2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiU0JOYjI1dmJXVnlYRzRnSUNBcUwxeHVJQ0JuWlhRb2JUb2djM1J5YVc1bktUb2djM1J5YVc1bk8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2FXMXdiR1Z0Wlc1MGN5QlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUIxYm1SbFptbHVaV1JEYjJ4dmNpQTlJQ2R5WjJJb01UQXdMREV3TUN3eE1EQXBKenRjYmx4dUlDQXZLaW9nVUdGc1pYUjBaU0IzYVhSb0lITm9ZV1JsY3lCdlppQndjbWx0WVhKNUlHTnZiRzl5Y3lBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHTnZiRzkxY2xCaGJHVjBkR1U2SUhzZ1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5XMTBnZlNBOUlIdGNiaUFnSUNBbmIzSmhibWRsSnpvZ1d5ZHlaMklvTWpVMUxERTROeXd4TWpBcEp5d2dKM0puWWlneU5EVXNNVFkzTERFd01Da25MQ0FuY21kaUtESXpOU3d4TXpjc056QXBKeXdnSjNKbllpZ3lNRFVzSURFeE1Td2dOekVwSjEwc1hHNGdJQ0FnSjJGc2JGOW5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RjMExERTJNQ3czTkNrbkxDQW5jbWRpS0RJekxERXdNeXcxTnlrbkxDQW5jbWRpS0RNd0xERXhNQ3c1TmlrbkxDQW5jbWRpS0RZd0xERXpNU3c1TlNrbkxGeHVJQ0FnSUNBZ0ozSm5ZaWd5TkN3eE1UQXNOemtwSnl3Z0ozSm5ZaWd4TlRJc01qSXpMREV6T0NrbkxDQW5jbWRpS0RFNE1pd2dNakl6TENBeE16Z3BKeXdnSjNKbllpZ3hOVElzSURFNU15d2dNVE00S1NkZExGeHVJQ0FnSUNkaGJHeGZZbXgxWlNjNklGc25jbWRpS0RNeExERXhPU3d4T0RBcEp5d2dKM0puWWlneU15d3hPVEFzTWpBM0tTY3NJQ2R5WjJJb01USXlMQ0F4TURJc0lERTRPU2tuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTVRReExDQXhNalFzSURJeE55a25MRnh1SUNBZ0lDQWdKM0puWWlnek1Td2dNVEl3TENBeE5UQXBKMTBzWEc0Z0lDQWdKMjFoWjJWdWRHRW5PaUJiSjNKbllpZ3hOaklzTVRBMkxERTVNaWtuTENBbmNtZGlLREU1Tnl3eE5qVXNNakkwS1Njc0lDZHlaMklvTWpBNExERXhNeXd5TVRncEoxMHNYRzRnSUNBZ0ozSmxaQ2M2SUZzbmNtZGlLREl4TkN3ek9TdzBNQ2tuTENBbmNtZGlLREkxTlN3eE5USXNNVFV3S1NkZExGeHVJQ0FnSUNkemRGOWliSFZsSnpvZ1d5ZHlaMklvTWpNc01Ua3dMREl3TnlrbkxDQW5jbWRpS0RFMU9Dd3lNVGdzTWpJNUtTY3NJQ2R5WjJJb016RXNNVEU1TERFNE1Da25YU3hjYmlBZ0lDQW5aR0Z5YTE5aWJIVmxKem9nV3lkeVoySW9NekVzTVRFNUxERTRNQ2tuTENBbmNtZGlLRE14TENBeE1qQXNJREUxTUNrblhTeGNiaUFnSUNBbmJHbG5hSFJmWW14MVpTYzZJRnNuY21kaUtESXpMREU1TUN3eU1EY3BKeXdnSjNKbllpZ3hOVGdzTWpFNExESXlPU2tuTENBbmNtZGlLREV3T0N3Z01qRTRMQ0F5TWprcEp5d2dKM0puWWlneU15d3hPVEFzTWpJM0tTZGRMRnh1SUNBZ0lDZHNhV3hoWTE5aWJIVmxKem9nV3lkeVoySW9NVEkwTERFd01pd3lNVEVwSnl3Z0ozSm5ZaWd4TkRrc01UTTBMREl4TnlrbkxDQW5jbWRpS0RrM0xDQTRNU3dnTVRVd0tTZGRMRnh1SUNBZ0lDZGtZWEpyWDJkeVpXVnVKem9nV3lkeVoySW9Nak1zTVRBekxEVTNLU2NzSUNkeVoySW9NekFzTVRFd0xEazJLU2NzSUNkeVoySW9OakFzTVRNeExEazFLU2NzSUNkeVoySW9NalFzTVRFd0xEYzVLU2RkTEZ4dUlDQWdJQ2RuY21WbGJpYzZJRnNuY21kaUtEUTBMREUyTUN3ME5Da25MQ0FuY21kaUtEYzBMREUyTUN3M05Da25YU3hjYmlBZ0lDQW5iR2xuYUhSZlozSmxaVzRuT2lCYkozSm5ZaWd4TlRJc01qSXpMREV6T0NrbkxDQW5jbWRpS0RFNE1pd2dNakl6TENBeE16Z3BKeXdnSjNKbllpZ3hOVElzSURFNU15d2dNVE00S1NkZExGeHVJQ0FnSUNkemRGOW5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RFMU1pd3lNak1zTVRNNEtTY3NJQ2R5WjJJb016a3NJREUzTkN3Z09UWXBKeXdnSjNKbllpZzNOQ3d4TmpBc056UXBKMTBzWEc0Z0lDQWdKM0JwYm1zbk9pQmJKM0puWWlneU5EY3NNVGd5TERJeE1Da25YU3hjYmlBZ0lDQW5Zbkp2ZDI0bk9pQmJKM0puWWlneE5EQXNPRFlzTnpVcEp5d2dKM0puWWlneE1ESXNJRFl5TENBMU5Da25YU3hjYmlBZ0lDQW5aM0poZVNjNklGc25jbWRpS0RFeU55d3hNamNzTVRJM0tTY3NJQ2R5WjJJb01UazVMREU1T1N3eE9Ua3BKeXdnSjNKbllpZ3hPVFlzTVRVMkxERTBPQ2tuTENBbmNtZGlLREl5TWl3Z01qSXlMQ0F4T0RBcEoxMHNYRzRnSUNBZ0ozbGxiR3h2ZHljNklGc25jbWRpS0RFNE9Dd3hPRGtzTXpRcEoxMHNYRzRnSUNBZ0ozZG9hWFJsSnpvZ1d5ZHlaMklvTWpNd0xESXpNQ3d5TXpBcEoxMHNYRzRnSUgwN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUhOMFlYUnBZeUJ0WVd0bFVHRnNaWFIwWlNoa2REb2dXM04wY21sdVoxdGRMQ0J6ZEhKcGJtZGRXMTBzWEc0Z0lDQWdjMmx0Y0d4cFptbGxaQ0E5SUdaaGJITmxMQ0JRWVd4bGRIUmxWSGx3WlRvZ2RIbHdaVzltSUZObGNWQmhiR1YwZEdWQ1lYTmxJRDBnVTJWeFVHRnNaWFIwWlVKaGMyVmNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdjR0ZzWlhSMFpUb2dleUJiYTJWNU9pQnpkSEpwYm1kZE9pQnpkSEpwYm1jZ2ZTQTlJSHQ5TzF4dUlDQWdJR1IwTG1admNrVmhZMmdvS0dOd0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnZZbXBNYVhOMElEMGdZM0JiTUYwN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJ4dmRYSWdQU0JqY0ZzeFhUdGNiaUFnSUNBZ0lHOWlha3hwYzNRdVptOXlSV0ZqYUNnb2IySnFMQ0JwYm1RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY0dGc1pYUjBaVnR2WW1wZElEMGdkR2hwY3k1amIyeHZkWEpRWVd4bGRIUmxXMk52Ykc5MWNsMWJjMmx0Y0d4cFptbGxaQ0EvSURBZ09pQnBibVJkTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUVlXeGxkSFJsVkhsd1pTaHdZV3hsZEhSbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYM0JoYkdWMGRHVTZJSHNnVzIwNklITjBjbWx1WjEwNklITjBjbWx1WnlCOU8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtIQmhiR1YwZEdVNklIc2dXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5S1NCN1hHNGdJQ0FnZEdocGN5NWZjR0ZzWlhSMFpTQTlJSEJoYkdWMGRHVTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQmhiR1YwZEdWYmJWMDdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmNsYXNzIFNpZGVDaGFpblNjYWxlcyB7XG4gICAgc3RhdGljIGdldEF2YWlsYWJsZVNjYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuc2NhbGVzKS5tYXAoKFtrLCBfXSkgPT4gayk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRTY2FsZShuYW1lKSB7XG4gICAgICAgIGFzc2VydCghKHRoaXMuc2NhbGVzW25hbWVdID09PSB1bmRlZmluZWQpLCBgU2NhbGUgJyR7bmFtZX0nIHdhcyBub3QgZm91bmQuYCk7XG4gICAgICAgIHJldHVybiB0aGlzLnNjYWxlc1tuYW1lXTtcbiAgICB9XG59XG5TaWRlQ2hhaW5TY2FsZXMuc2NhbGVzID0ge1xuICAgIC8vIFdpbWxleS1XaGl0ZSBpbnRlcmZhY2lhbCBoeWRyb3Bob2JpY2l0eSBzY2FsZVxuICAgICdXaW1sZXlXaGl0ZSc6IHtcbiAgICAgICAgJy0nOiAwLFxuICAgICAgICAnQSc6IDAuMTcsXG4gICAgICAgICdDJzogLTAuMjQsXG4gICAgICAgICdEJzogLTAuMDcsXG4gICAgICAgICdFJzogLTAuMDEsXG4gICAgICAgICdGJzogLTEuMTMsXG4gICAgICAgICdHJzogMC4wMSxcbiAgICAgICAgJ0gnOiAwLjE3LFxuICAgICAgICAnSSc6IC0wLjMxLFxuICAgICAgICAnSyc6IDAuOTksXG4gICAgICAgICdMJzogLTAuNTYsXG4gICAgICAgICdNJzogLTAuMjMsXG4gICAgICAgICdOJzogMC40MixcbiAgICAgICAgJ1AnOiAwLjQ1LFxuICAgICAgICAnUSc6IDAuNTgsXG4gICAgICAgICdSJzogMC44MSxcbiAgICAgICAgJ1MnOiAwLjEzLFxuICAgICAgICAnVCc6IDAuMTQsXG4gICAgICAgICdWJzogMC4wNyxcbiAgICAgICAgJ1cnOiAtMS44NSxcbiAgICAgICAgJ1knOiAtMC45NCxcbiAgICB9LFxuICAgICdjYXRlZ29yaWFsJzoge1xuICAgICAgICAnLSc6IDAsXG4gICAgICAgICdBJzogMSxcbiAgICAgICAgJ0MnOiAyLFxuICAgICAgICAnRCc6IDMsXG4gICAgICAgICdFJzogNCxcbiAgICAgICAgJ0YnOiA1LFxuICAgICAgICAnRyc6IDYsXG4gICAgICAgICdIJzogNyxcbiAgICAgICAgJ0knOiA4LFxuICAgICAgICAnSyc6IDksXG4gICAgICAgICdMJzogMTAsXG4gICAgICAgICdNJzogMTEsXG4gICAgICAgICdOJzogMTIsXG4gICAgICAgICdQJzogMTMsXG4gICAgICAgICdRJzogMTQsXG4gICAgICAgICdSJzogMTUsXG4gICAgICAgICdTJzogMTYsXG4gICAgICAgICdUJzogMTcsXG4gICAgICAgICdWJzogMTgsXG4gICAgICAgICdXJzogMTksXG4gICAgICAgICdZJzogMjAsXG4gICAgfSxcbn07XG4vKipcbiAqIENsYXNzIHRvIGNhdGVnb3JpYWwgZW5jb2RlL2RlY29kZSBhbGlnbmVkIGFtaW5vIGFjaWQgcmVzaWR1ZXMgc2VxdWVuY2UuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAqL1xuZXhwb3J0IGNsYXNzIEFsaWduZWRTZXF1ZW5jZUVuY29kZXIge1xuICAgIGNvbnN0cnVjdG9yKHNjYWxlID0gJ2NhdGVnb3JpYWwnKSB7XG4gICAgICAgIHRoaXMuYWEybnVtID0gU2lkZUNoYWluU2NhbGVzLmdldFNjYWxlKHNjYWxlKTtcbiAgICAgICAgdGhpcy5udW0yYWEgPSB7fTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5hYTJudW0pLmZvckVhY2goKFtrLCB2XSkgPT4gKHRoaXMubnVtMmFhW3ZdID0gaykpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIFRydW5jYXRlIE5IMiBhbmQgLUNPT0ggdGVybWluYWxzIG9mIHRoZSBnaXZlbiBzZXF1ZW5jZS5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFRoZSBzZXF1ZW5jZSBwcm92aWRlZC5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gVHJ1bmNhdGVkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIHN0YXRpYyBfdHJ1bmNhdGVTZXF1ZW5jZShzZXEpIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgbGV0IGVuZCA9IHNlcS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRlcm1pbmEgPSBbJ05IMicsICdDT09IJ107XG4gICAgICAgIGlmIChzZXEuc3RhcnRzV2l0aCh0ZXJtaW5hWzBdKSkge1xuICAgICAgICAgICAgY29uc3QgbCA9IHRlcm1pbmFbMF0ubGVuZ3RoOyAvLyBDdXQgb25seSAnTkgyJyB3aXRob3V0IGZvbGxvd2luZyAnLScuXG4gICAgICAgICAgICBhc3NlcnQoc2VxW2xdID09ICctJywgYFdyb25nIHNlcXVlbmNlIGZvcm1hdDogJHt0ZXJtaW5hWzBdfSB3aXRob3V0IGZvbGxvd2luZyAnLScgaW4gJyR7c2VxfScuYCk7XG4gICAgICAgICAgICBzdGFydCA9IGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcS5lbmRzV2l0aCh0ZXJtaW5hWzFdKSkge1xuICAgICAgICAgICAgY29uc3QgbCA9IHRlcm1pbmFbMV0ubGVuZ3RoICsgMTsgLy8gQ3V0IGJvdGggJ0NPT0gnIGFuZCBwcmVjZW5kaW5nICctJy5cbiAgICAgICAgICAgIGFzc2VydChzZXFbZW5kIC0gbF0gPT0gJy0nLCBgV3Jvbmcgc2VxdWVuY2UgZm9ybWF0OiAke3Rlcm1pbmFbMV19IHdpdGhvdXQgJy0nIHByZWNlbmRpbmcgaW4gJyR7c2VxfScuYCk7XG4gICAgICAgICAgICBlbmQgLT0gbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VxLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBDdXRzIGF1eGlsaWFyeSBkZWZpc2VzIGJlZm9yZSBhIHJlc2lkdWUuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBUaGUgc2VxdWVuY2UgdG8gcHJvY2Vzcy5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gUHJvY2Vzc2VkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIHN0YXRpYyBfZHJvcERlZmlzZXMoc2VxKSB7XG4gICAgICAgIHJldHVybiBzZXEucmVwbGFjZSgvKC0pKFteLV0rKS9nLCAnJDInKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBQZXJmb3JtcyB0cnVuY2F0aW9uIGFuZCBjdXR0aW5nIGF1eGlsaWFyeSBkZWZpc2VzLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXF1ZW5jZSBUaGUgc2VxdWVuY2Ugd29yayB1bmRlciBwcm9jZXNzLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBSZXN1bHQgb2YgY2xlYW5pbmcuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIGNsZWFuKHNlcXVlbmNlKSB7XG4gICAgICAgIHJldHVybiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyLl9kcm9wRGVmaXNlcyhBbGlnbmVkU2VxdWVuY2VFbmNvZGVyLl90cnVuY2F0ZVNlcXVlbmNlKHNlcXVlbmNlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogQ2F0ZWdvcmlhbCBlbmNvZGUgb2YgdGhlIHNlcXVlbmNlIHByb3ZpZGVkLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXF1ZW5jZSBUaGUgc2VxdWVuY2UuXG4gICAgICAgKiBAcmV0dXJuIHtudW1iZXJbXX0gRW5jb2RlZCB2ZWN0b3IuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgZW5jb2RlKHNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IG5JdGVtcyA9IHNlcXVlbmNlLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gbmV3IEFycmF5KG5JdGVtcykuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IHNlcXVlbmNlW2ldO1xuICAgICAgICAgICAgYXNzZXJ0KGNoYXIgaW4gdGhpcy5hYTJudW0sIGBVbmtub3duIGNoYXIgJyR7Y2hhcn0nIGZvdW5kIGluIHNlcXVlbmNlICcke3NlcXVlbmNlfSdgKTtcbiAgICAgICAgICAgIHZhbHVlc1tpXSA9IHRoaXMuZW5jb2RlTGV0dHRlcihjaGFyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH1cbiAgICBlbmNvZGVMZXR0dGVyKGxldHRlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hYTJudW1bbGV0dGVyXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBEZWNvZGUgdGhlIGVuY29kZWQgdmVjdG9yIGludG8gdGhlIHNlcXVlbmNlIGJhY2suXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtudW1iZXJbXX0gdmFsdWUgVGhlIHZlY3RvciBlbmNvZGVkLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBEZWNvZGVkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIGRlY29kZSh2YWx1ZSkge1xuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gdmFsdWVbaV07XG4gICAgICAgICAgICBhc3NlcnQoY29kZSBpbiB0aGlzLm51bTJhYSwgYFVua25vd24gY29kZSAnJHtjb2RlfScgZm91bmQgaW4gdmVjdG9yICcke3ZhbHVlfSdgKTtcbiAgICAgICAgICAgIHMgKz0gdGhpcy5udW0yYWFbY29kZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeGRXVnVZMlV0Wlc1amIyUmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluTmxjWFZsYm1ObExXVnVZMjlrWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlMzWkZMRTFCUVUwc1pVRkJaVHRKUVcxRWJrSXNUVUZCVFN4RFFVRkRMR3RDUVVGclFqdFJRVU4yUWl4UFFVRlBMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZaTzFGQlF6RkNMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhUUVVGVExFTkJRVU1zUlVGQlJTeFZRVUZWTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVU0zUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBJc1EwRkJRenM3UVVGNlJFMHNjMEpCUVUwc1IwRkJOa0k3U1VGRGVFTXNaMFJCUVdkRU8wbEJRMmhFTEdGQlFXRXNSVUZCUlR0UlFVTmlMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1R0UlFVTldMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hKUVVGSk8xRkJRMVFzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEpRVUZKTzFGQlExUXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRMUVVOWU8wbEJRMFFzV1VGQldTeEZRVUZGTzFGQlExb3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMHRCUTFJN1EwRkRSaXhEUVVGRE8wRkJXVW83T3pzN08wZEJTMGM3UVVGRFNDeE5RVUZOTEU5QlFVOHNjMEpCUVhOQ08wbEJTV3BETEZsQlFWa3NVVUZCWjBJc1dVRkJXVHRSUVVOMFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZET1VNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEYWtJc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaEZMRU5CUVVNN1NVRkZSRHM3T3pzN096dFRRVTlMTzBsQlEwd3NUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVkQlFWYzdVVUZEYkVNc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyUXNTVUZCU1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU55UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVm9ReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRE9VSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMSGREUVVGM1F6dFpRVU55UlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlN3d1FrRkJNRUlzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl3NFFrRkJPRUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTnFSeXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFOQlExZzdVVUZEUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1dVRkROVUlzVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4elEwRkJjME03V1VGRGNrVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4RlFVRkZMREJDUVVFd1FpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNSSExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEVmp0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRia01zUTBGQlF6dEpRVVZFT3pzN096czdPMU5CVDBzN1NVRkRUQ3hOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFWYzdVVUZETjBJc1QwRkJUeXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFF5eERRVUZETzBsQlJVUTdPenM3T3pzN1UwRlBTenRKUVVOTUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCWjBJN1VVRkRNMElzVDBGQlR5eHpRa0ZCYzBJc1EwRkJReXhaUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJ5eERRVUZETzBsQlJVUTdPenM3T3p0VFFVMUxPMGxCUTBVc1RVRkJUU3hEUVVGRExGRkJRV2RDTzFGQlF6VkNMRTFCUVUwc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETDBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJYcERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGREwwSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJYcENMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4cFFrRkJhVUlzU1VGQlNTeDNRa0ZCZDBJc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVVYwUml4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRUUVVOMFF6dFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlRTeGhRVUZoTEVOQlFVTXNUVUZCWXp0UlFVTnFReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkROMElzUTBGQlF6dEpRVVZFT3pzN096czdVMEZOU3p0SlFVTkZMRTFCUVUwc1EwRkJReXhMUVVGbE8xRkJRek5DTEVsQlFVa3NRMEZCUXl4SFFVRlhMRVZCUVVVc1EwRkJRenRSUVVWdVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOeVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRmRFSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEdsQ1FVRnBRaXhKUVVGSkxITkNRVUZ6UWl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSV3BHTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEzaENPMUZCUTBRc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRFdDeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMkZ6YzJWeWRIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTW5PMXh1WEc1MGVYQmxJRk5wWkdWRGFHRnBibE5qWVd4bElEMGdlMXR1WVcxbE9pQnpkSEpwYm1kZE9pQnVkVzFpWlhKOU8xeHVkSGx3WlNCVGFXUmxRMmhoYVc1VFkyRnNaVU52Ykd4bFkzUnBiMjRnUFNCN1cyNWhiV1U2SUhOMGNtbHVaMTA2SUZOcFpHVkRhR0ZwYmxOallXeGxmVHRjYmx4dVkyeGhjM01nVTJsa1pVTm9ZV2x1VTJOaGJHVnpJSHRjYmlBZ2MzUmhkR2xqSUhOallXeGxjem9nVTJsa1pVTm9ZV2x1VTJOaGJHVkRiMnhzWldOMGFXOXVJRDBnZTF4dUlDQWdJQzh2SUZkcGJXeGxlUzFYYUdsMFpTQnBiblJsY21aaFkybGhiQ0JvZVdSeWIzQm9iMkpwWTJsMGVTQnpZMkZzWlZ4dUlDQWdJQ2RYYVcxc1pYbFhhR2wwWlNjNklIdGNiaUFnSUNBZ0lDY3RKem9nTUN4Y2JpQWdJQ0FnSUNkQkp6b2dNQzR4Tnl4Y2JpQWdJQ0FnSUNkREp6b2dMVEF1TWpRc1hHNGdJQ0FnSUNBblJDYzZJQzB3TGpBM0xDQXZMeUJCYzNBdE9pQXhMakl6WEc0Z0lDQWdJQ0FuUlNjNklDMHdMakF4TENBdkx5QkhiSFV0T2lBeUxqQXlYRzRnSUNBZ0lDQW5SaWM2SUMweExqRXpMQ0F2TDF4dUlDQWdJQ0FnSjBjbk9pQXdMakF4TEZ4dUlDQWdJQ0FnSjBnbk9pQXdMakUzTENBdkx5QklhWE1yT2lBd0xqazJYRzRnSUNBZ0lDQW5TU2M2SUMwd0xqTXhMRnh1SUNBZ0lDQWdKMHNuT2lBd0xqazVMQ0F2THlCTWVYTXJYRzRnSUNBZ0lDQW5UQ2M2SUMwd0xqVTJMRnh1SUNBZ0lDQWdKMDBuT2lBdE1DNHlNeXhjYmlBZ0lDQWdJQ2RPSnpvZ01DNDBNaXhjYmlBZ0lDQWdJQ2RRSnpvZ01DNDBOU3hjYmlBZ0lDQWdJQ2RSSnpvZ01DNDFPQ3hjYmlBZ0lDQWdJQ2RTSnpvZ01DNDRNU3dnTHk4Z1FYSm5LMXh1SUNBZ0lDQWdKMU1uT2lBd0xqRXpMRnh1SUNBZ0lDQWdKMVFuT2lBd0xqRTBMRnh1SUNBZ0lDQWdKMVluT2lBd0xqQTNMRnh1SUNBZ0lDQWdKMWNuT2lBdE1TNDROU3hjYmlBZ0lDQWdJQ2RaSnpvZ0xUQXVPVFFzWEc0Z0lDQWdmU3hjYmlBZ0lDQW5ZMkYwWldkdmNtbGhiQ2M2SUh0Y2JpQWdJQ0FnSUNjdEp6b2dNQ3hjYmlBZ0lDQWdJQ2RCSnpvZ01TeGNiaUFnSUNBZ0lDZERKem9nTWl4Y2JpQWdJQ0FnSUNkRUp6b2dNeXhjYmlBZ0lDQWdJQ2RGSnpvZ05DeGNiaUFnSUNBZ0lDZEdKem9nTlN4Y2JpQWdJQ0FnSUNkSEp6b2dOaXhjYmlBZ0lDQWdJQ2RJSnpvZ055eGNiaUFnSUNBZ0lDZEpKem9nT0N4Y2JpQWdJQ0FnSUNkTEp6b2dPU3hjYmlBZ0lDQWdJQ2RNSnpvZ01UQXNYRzRnSUNBZ0lDQW5UU2M2SURFeExGeHVJQ0FnSUNBZ0owNG5PaUF4TWl4Y2JpQWdJQ0FnSUNkUUp6b2dNVE1zWEc0Z0lDQWdJQ0FuVVNjNklERTBMRnh1SUNBZ0lDQWdKMUluT2lBeE5TeGNiaUFnSUNBZ0lDZFRKem9nTVRZc1hHNGdJQ0FnSUNBblZDYzZJREUzTEZ4dUlDQWdJQ0FnSjFZbk9pQXhPQ3hjYmlBZ0lDQWdJQ2RYSnpvZ01Ua3NYRzRnSUNBZ0lDQW5XU2M2SURJd0xGeHVJQ0FnSUgwc1hHNGdJSDA3WEc1Y2JpQWdjM1JoZEdsaklHZGxkRUYyWVdsc1lXSnNaVk5qWVd4bGN5Z3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1bGJuUnlhV1Z6S0hSb2FYTXVjMk5oYkdWektTNXRZWEFvS0Z0ckxDQmZYU2tnUFQ0Z2F5azdYRzRnSUgxY2JseHVJQ0J6ZEdGMGFXTWdaMlYwVTJOaGJHVW9ibUZ0WlRvZ2MzUnlhVzVuS1RvZ1UybGtaVU5vWVdsdVUyTmhiR1VnZTF4dUlDQWdJR0Z6YzJWeWRDZ2hLSFJvYVhNdWMyTmhiR1Z6VzI1aGJXVmRJRDA5UFNCMWJtUmxabWx1WldRcExDQmdVMk5oYkdVZ0p5UjdibUZ0WlgwbklIZGhjeUJ1YjNRZ1ptOTFibVF1WUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyTmhiR1Z6VzI1aGJXVmRPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nUTJ4aGMzTWdkRzhnWTJGMFpXZHZjbWxoYkNCbGJtTnZaR1V2WkdWamIyUmxJR0ZzYVdkdVpXUWdZVzFwYm04Z1lXTnBaQ0J5WlhOcFpIVmxjeUJ6WlhGMVpXNWpaUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2lCN1hHNGdJSEJ5YjNSbFkzUmxaQ0JoWVRKdWRXMDZJRk5wWkdWRGFHRnBibE5qWVd4bE8xeHVJQ0J3Y205MFpXTjBaV1FnYm5WdE1tRmhPaUI3VzJOdlpHVTZJRzUxYldKbGNsMDZJSE4wY21sdVozMDdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9jMk5oYkdVNklITjBjbWx1WnlBOUlDZGpZWFJsWjI5eWFXRnNKeWtnZTF4dUlDQWdJSFJvYVhNdVlXRXliblZ0SUQwZ1UybGtaVU5vWVdsdVUyTmhiR1Z6TG1kbGRGTmpZV3hsS0hOallXeGxLVHRjYmlBZ0lDQjBhR2x6TG01MWJUSmhZU0E5SUh0OU8xeHVJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdVlXRXliblZ0S1M1bWIzSkZZV05vS0NoYmF5d2dkbDBwSUQwK0lDaDBhR2x6TG01MWJUSmhZVnQyWFNBOUlHc3BLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnSUNBcUlGUnlkVzVqWVhSbElFNUlNaUJoYm1RZ0xVTlBUMGdnZEdWeWJXbHVZV3h6SUc5bUlIUm9aU0JuYVhabGJpQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYzJWeElGUm9aU0J6WlhGMVpXNWpaU0J3Y205MmFXUmxaQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRlJ5ZFc1allYUmxaQ0J6WlhGMVpXNWpaUzVjYmlBZ0lDQWdLaUJBYldWdFltVnliMllnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNseHVJQ0FnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdYM1J5ZFc1allYUmxVMlZ4ZFdWdVkyVW9jMlZ4T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR3hsZENCemRHRnlkQ0E5SURBN1hHNGdJQ0FnYkdWMElHVnVaQ0E5SUhObGNTNXNaVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdkR1Z5YldsdVlTQTlJRnNuVGtneUp5d2dKME5QVDBnblhUdGNibHh1SUNBZ0lHbG1JQ2h6WlhFdWMzUmhjblJ6VjJsMGFDaDBaWEp0YVc1aFd6QmRLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiQ0E5SUhSbGNtMXBibUZiTUYwdWJHVnVaM1JvT3lBdkx5QkRkWFFnYjI1c2VTQW5Ua2d5SnlCM2FYUm9iM1YwSUdadmJHeHZkMmx1WnlBbkxTY3VYRzRnSUNBZ0lDQmhjM05sY25Rb2MyVnhXMnhkSUQwOUlDY3RKeXdnWUZkeWIyNW5JSE5sY1hWbGJtTmxJR1p2Y20xaGREb2dKSHQwWlhKdGFXNWhXekJkZlNCM2FYUm9iM1YwSUdadmJHeHZkMmx1WnlBbkxTY2dhVzRnSnlSN2MyVnhmU2N1WUNrN1hHNGdJQ0FnSUNCemRHRnlkQ0E5SUd3N1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoelpYRXVaVzVrYzFkcGRHZ29kR1Z5YldsdVlWc3hYU2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3dnUFNCMFpYSnRhVzVoV3pGZExteGxibWQwYUNzeE95QXZMeUJEZFhRZ1ltOTBhQ0FuUTA5UFNDY2dZVzVrSUhCeVpXTmxibVJwYm1jZ0p5MG5MbHh1SUNBZ0lDQWdZWE56WlhKMEtITmxjVnRsYm1RdGJGMGdQVDBnSnkwbkxDQmdWM0p2Ym1jZ2MyVnhkV1Z1WTJVZ1ptOXliV0YwT2lBa2UzUmxjbTFwYm1GYk1WMTlJSGRwZEdodmRYUWdKeTBuSUhCeVpXTmxibVJwYm1jZ2FXNGdKeVI3YzJWeGZTY3VZQ2s3WEc0Z0lDQWdJQ0JsYm1RZ0xUMGdiRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhObGNTNXpkV0p6ZEhKcGJtY29jM1JoY25Rc0lHVnVaQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQkRkWFJ6SUdGMWVHbHNhV0Z5ZVNCa1pXWnBjMlZ6SUdKbFptOXlaU0JoSUhKbGMybGtkV1V1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjU0JVYUdVZ2MyVnhkV1Z1WTJVZ2RHOGdjSEp2WTJWemN5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlGQnliMk5sYzNObFpDQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFiV1Z0WW1WeWIyWWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDQWdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1gyUnliM0JFWldacGMyVnpLSE5sY1RvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjMlZ4TG5KbGNHeGhZMlVvTHlndEtTaGJYaTFkS3lrdlp5d2dKeVF5SnlrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJRWlhKbWIzSnRjeUIwY25WdVkyRjBhVzl1SUdGdVpDQmpkWFIwYVc1bklHRjFlR2xzYVdGeWVTQmtaV1pwYzJWekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6WlhGMVpXNWpaU0JVYUdVZ2MyVnhkV1Z1WTJVZ2QyOXlheUIxYm1SbGNpQndjbTlqWlhOekxseHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ1VtVnpkV3gwSUc5bUlHTnNaV0Z1YVc1bkxseHVJQ0FnSUNBcUlFQnRaVzFpWlhKdlppQkJiR2xuYm1Wa1UyVnhkV1Z1WTJWRmJtTnZaR1Z5WEc0Z0lDQWdJQ292WEc0Z0lITjBZWFJwWXlCamJHVmhiaWh6WlhGMVpXNWpaVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaTVmWkhKdmNFUmxabWx6WlhNb1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaTVmZEhKMWJtTmhkR1ZUWlhGMVpXNWpaU2h6WlhGMVpXNWpaU2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBZ0lDb2dRMkYwWldkdmNtbGhiQ0JsYm1OdlpHVWdiMllnZEdobElITmxjWFZsYm1ObElIQnliM1pwWkdWa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNYVmxibU5sSUZSb1pTQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdSVzVqYjJSbFpDQjJaV04wYjNJdVhHNGdJQ0FnSUNvZ1FHMWxiV0psY205bUlFRnNhV2R1WldSVFpYRjFaVzVqWlVWdVkyOWtaWEpjYmlBZ0lDQWdLaTljYmlBZ2NIVmliR2xqSUdWdVkyOWtaU2h6WlhGMVpXNWpaVG9nYzNSeWFXNW5LVG9nYm5WdFltVnlXMTBnZTF4dUlDQWdJR052Ym5OMElHNUpkR1Z0Y3lBOUlITmxjWFZsYm1ObExteGxibWQwYUR0Y2JpQWdJQ0JqYjI1emRDQjJZV3gxWlhNZ1BTQnVaWGNnUVhKeVlYa29ia2wwWlcxektTNW1hV3hzS0RBcE8xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMmhoY2lBOUlITmxjWFZsYm1ObFcybGRPMXh1WEc0Z0lDQWdJQ0JoYzNObGNuUW9ZMmhoY2lCcGJpQjBhR2x6TG1GaE1tNTFiU3dnWUZWdWEyNXZkMjRnWTJoaGNpQW5KSHRqYUdGeWZTY2dabTkxYm1RZ2FXNGdjMlZ4ZFdWdVkyVWdKeVI3YzJWeGRXVnVZMlY5SjJBcE8xeHVYRzRnSUNBZ0lDQjJZV3gxWlhOYmFWMGdQU0IwYUdsekxtVnVZMjlrWlV4bGRIUjBaWElvWTJoaGNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpYTTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaVzVqYjJSbFRHVjBkSFJsY2loc1pYUjBaWEk2SUhOMGNtbHVaeWs2SUc1MWJXSmxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WVdFeWJuVnRXMnhsZEhSbGNsMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCRVpXTnZaR1VnZEdobElHVnVZMjlrWldRZ2RtVmpkRzl5SUdsdWRHOGdkR2hsSUhObGNYVmxibU5sSUdKaFkyc3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY2x0ZGZTQjJZV3gxWlNCVWFHVWdkbVZqZEc5eUlHVnVZMjlrWldRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlNCRVpXTnZaR1ZrSUhObGNYVmxibU5sTGx4dUlDQWdJQ0FxSUVCdFpXMWlaWEp2WmlCQmJHbG5ibVZrVTJWeGRXVnVZMlZGYm1OdlpHVnlYRzRnSUNBZ0lDb3ZYRzRnSUhCMVlteHBZeUJrWldOdlpHVW9kbUZzZFdVNklHNTFiV0psY2x0ZEtUb2djM1J5YVc1bklIdGNiaUFnSUNCc1pYUWdjem9nYzNSeWFXNW5JRDBnSnljN1hHNWNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyUmxJRDBnZG1Gc2RXVmJhVjA3WEc1Y2JpQWdJQ0FnSUdGemMyVnlkQ2hqYjJSbElHbHVJSFJvYVhNdWJuVnRNbUZoTENCZ1ZXNXJibTkzYmlCamIyUmxJQ2NrZTJOdlpHVjlKeUJtYjNWdVpDQnBiaUIyWldOMGIzSWdKeVI3ZG1Gc2RXVjlKMkFwTzF4dVhHNGdJQ0FnSUNCeklDczlJSFJvYVhNdWJuVnRNbUZoVzJOdlpHVmRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY3p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuLyoqIG1ha2VzIHRoZSBjb2xvciBsZXNzIHdoaXRlLCBtYWtlcyB0aGUgdHJhbnNwYXJlbmN5IGVmZmVjdCBhbHdheXMgcGVyY2VwdGlibGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvciB4IGNvb3JkaW5hdGUuXG4gKiAqL1xuZnVuY3Rpb24gY29ycmVjdENvbG9yKGNvbG9yKSB7XG4gICAgaWYgKGNvbG9yID09IG51bGwpXG4gICAgICAgIHJldHVybiAncmdiKDEwMCwxMDAsMTAwKSc7XG4gICAgY29uc3QgZGdDb2xvciA9IERHLkNvbG9yLmZyb21IdG1sKGNvbG9yKTtcbiAgICBjb25zdCBnID0gREcuQ29sb3IuZyhkZ0NvbG9yKTtcbiAgICBjb25zdCByID0gREcuQ29sb3IucihkZ0NvbG9yKTtcbiAgICBjb25zdCBiID0gREcuQ29sb3IuYihkZ0NvbG9yKTtcbiAgICAvLyBjYWxjdWxhdGUgZXVjbGlkZWFuIGRpc3RhbmNlIHRvIHdoaXRlXG4gICAgY29uc3QgZGlzdFRvQmxhY2sgPSBNYXRoLnNxcnQoTWF0aC5wb3coMCAtIHIsIDIpICsgTWF0aC5wb3coMCAtIGcsIDIpICsgTWF0aC5wb3coMCAtIGIsIDIpKTtcbiAgICAvLyBub3JtYWxpemUgdmVjdG9yIHIgZyBiXG4gICAgY29uc3Qgbm9ybVIgPSByIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUcgPSBnIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUIgPSBiIC8gZGlzdFRvQmxhY2s7XG4gICAgaWYgKGRpc3RUb0JsYWNrID4gMjEwKSB7XG4gICAgICAgIHJldHVybiBgcmdiKCR7bm9ybVIgKiAyMTB9LCR7bm9ybUcgKiAyMTB9LCR7bm9ybUIgKiAyMTB9KWA7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2xvci50b1JnYihkZ0NvbG9yKTtcbn1cbmV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gY29ycmVjdENvbG9yKFVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZVtwSV0pO1xuICAgIH1cbn1cblVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZSA9IFVua25vd25Db2xvclBhbGV0dGUuYnVpbGRQYWxldHRlKCk7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgR3JheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JheSA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5ncmF5ID0gbmV3IEdyYXlBbGxQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyYXk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQ29sb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbG9yID09PSB2b2lkIDApXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gbmV3IFVua25vd25Db2xvclBhbGV0dGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3I7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cmJtOTNiaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhMjV2ZDI0dWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXpzN1MwRkZTenRCUVVOTUxGTkJRVk1zV1VGQldTeERRVUZETEV0QlFXOUNPMGxCUTNoRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVsQlFVazdVVUZEWml4UFFVRlBMR3RDUVVGclFpeERRVUZETzBsQlJUVkNMRTFCUVUwc1QwRkJUeXhIUVVGWExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMnBFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRemxDTEhkRFFVRjNRenRKUVVONFF5eE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVVlzZVVKQlFYbENPMGxCUTNwQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJRenRKUVVNNVFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRE8wbEJRemxDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWRCUVVjc1JVRkJSVHRSUVVOeVFpeFBRVUZQTEU5QlFVOHNTMEZCU3l4SFFVRkhMRWRCUVVjc1NVRkJTU3hMUVVGTExFZEJRVWNzUjBGQlJ5eEpRVUZKTEV0QlFVc3NSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJRenRMUVVNMVJEdEpRVU5FTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJRenRCUVVWRUxFMUJRVTBzVDBGQlR5eFhRVUZYTzBsQlEyWXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGVE8xRkJRemxDTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJRenRaUVVOb1FpeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGWExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRjRU1zU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMWxCUTJ4RExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl3eVFrRkJNa0k3VTBGRGRrTTdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03UTBGRFJqdEJRVVZFTEU5QlFVOHNSVUZCWVN4alFVRmpMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVXhSQ3hOUVVGTkxFOUJRV2RDTEdsQ1FVRnBRanREUVVWMFF6dEJRVVZFTEUxQlFVMHNUMEZCVHl4alFVRmxMRk5CUVZFc2FVSkJRV2xDTzBsQlF6VkRMRWRCUVVjc1EwRkJReXhEUVVGVE8xRkJRMnhDTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03UTBGRFJqdEJRVWRFTEUxQlFVMHNUMEZCVHl4dFFrRkJiMElzVTBGQlVTeHBRa0ZCYVVJN1NVRkhhRVFzVFVGQlRTeERRVUZETEZsQlFWazdVVUZEZWtJc1RVRkJUU3hIUVVGSExFZEJRVWtzUlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRVlzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPMGxCUlUwc1IwRkJSeXhEUVVGRExFTkJRVk03VVVGRGJFSXNUVUZCVFN4SlFVRkpMRWRCUVZjc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hQUVVGUExGbEJRVmtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hEUVVGRE96dEJRVmhoTERKQ1FVRlBMRWRCUVdFc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRmpka1VzVFVGQlRTeFBRVUZQTEd0Q1FVRnRRaXhUUVVGUkxHTkJRV003U1VGSE4wTXNUVUZCVFN4TFFVRkxMRWxCUVVrN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJRenRaUVVOMFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VVVGRGJrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZKVFN4TlFVRk5MRXRCUVVzc1MwRkJTenRSUVVOeVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUTNwRExFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTndRaXhEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc0dktpb2diV0ZyWlhNZ2RHaGxJR052Ykc5eUlHeGxjM01nZDJocGRHVXNJRzFoYTJWeklIUm9aU0IwY21GdWMzQmhjbVZ1WTNrZ1pXWm1aV04wSUdGc2QyRjVjeUJ3WlhKalpYQjBhV0pzWlZ4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHTnZiRzl5SUhnZ1kyOXZjbVJwYm1GMFpTNWNiaUFxSUNvdlhHNW1kVzVqZEdsdmJpQmpiM0p5WldOMFEyOXNiM0lvWTI5c2IzSTZJSE4wY21sdVp5QjhJRzUxYkd3cE9pQnpkSEpwYm1jZ2UxeHVJQ0JwWmlBb1kyOXNiM0lnUFQwZ2JuVnNiQ2xjYmlBZ0lDQnlaWFIxY200Z0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVYRzRnSUdOdmJuTjBJR1JuUTI5c2IzSTZJRzUxYldKbGNpQTlJRVJITGtOdmJHOXlMbVp5YjIxSWRHMXNLR052Ykc5eUtUdGNiaUFnWTI5dWMzUWdaeUE5SUVSSExrTnZiRzl5TG1jb1pHZERiMnh2Y2lrN1hHNGdJR052Ym5OMElISWdQU0JFUnk1RGIyeHZjaTV5S0dSblEyOXNiM0lwTzF4dUlDQmpiMjV6ZENCaUlEMGdSRWN1UTI5c2IzSXVZaWhrWjBOdmJHOXlLVHRjYmlBZ0x5OGdZMkZzWTNWc1lYUmxJR1YxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0IwYnlCM2FHbDBaVnh1SUNCamIyNXpkQ0JrYVhOMFZHOUNiR0ZqYXlBOUlFMWhkR2d1YzNGeWRDaE5ZWFJvTG5CdmR5Z3dJQzBnY2l3Z01pa2dLeUJOWVhSb0xuQnZkeWd3SUMwZ1p5d2dNaWtnS3lCTllYUm9MbkJ2ZHlnd0lDMGdZaXdnTWlrcE8xeHVJQ0F2THlCdWIzSnRZV3hwZW1VZ2RtVmpkRzl5SUhJZ1p5QmlYRzRnSUdOdmJuTjBJRzV2Y20xU0lEMGdjaUF2SUdScGMzUlViMEpzWVdOck8xeHVJQ0JqYjI1emRDQnViM0p0UnlBOUlHY2dMeUJrYVhOMFZHOUNiR0ZqYXp0Y2JpQWdZMjl1YzNRZ2JtOXliVUlnUFNCaUlDOGdaR2x6ZEZSdlFteGhZMnM3WEc0Z0lHbG1JQ2hrYVhOMFZHOUNiR0ZqYXlBK0lESXhNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmdjbWRpS0NSN2JtOXliVklnS2lBeU1UQjlMQ1I3Ym05eWJVY2dLaUF5TVRCOUxDUjdibTl5YlVJZ0tpQXlNVEI5S1dBN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUVSSExrTnZiRzl5TG5SdlVtZGlLR1JuUTI5c2IzSXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNSeWFXNW5WWFJwYkhNZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHaGhjMmhEYjJSbEtITTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2JHVjBJR2hoYzJnNklHNTFiV0psY2lBOUlEQTdYRzRnSUNBZ2FXWWdLSE11YkdWdVozUm9JRDA5UFNBd0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FUb2diblZ0WW1WeUlEMGdNRHNnYVNBOElITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vY2pvZ2JuVnRZbVZ5SUQwZ2N5NWphR0Z5UTI5a1pVRjBLR2twTzF4dUlDQWdJQ0FnYUdGemFDQTlJQ2dvYUdGemFDQThQQ0ExS1NBdElHaGhjMmdwSUNzZ1kyaHlPMXh1SUNBZ0lDQWdhR0Z6YUNCOFBTQXdPeUF2THlCRGIyNTJaWEowSUhSdklETXlZbWwwSUdsdWRHVm5aWEpjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUgxY2JuMWNibHh1YVcxd2IzSjBJSHRUWlhGUVlXeGxkSFJsTENCVFpYRlFZV3hsZEhSbFFtRnpaWDBnWm5KdmJTQW5MaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVYRzVsZUhCdmNuUWdZV0p6ZEhKaFkzUWdZMnhoYzNNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2FXMXdiR1Z0Wlc1MGN5QlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUdGaWMzUnlZV04wSUdkbGRDaHRPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJIY21GNVFXeHNVR0ZzWlhSMFpTQmxlSFJsYm1SeklGVnVhMjV2ZDI1VFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJR2RsZENodE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUFuSXpZMk5qWTJOaWM3WEc0Z0lIMWNibjFjYmx4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNia052Ykc5eVVHRnNaWFIwWlNCbGVIUmxibVJ6SUZWdWEyNXZkMjVUWlhGUVlXeGxkSFJsSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCd1lXeGxkSFJsT2lCemRISnBibWRiWFNBOUlGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVZblZwYkdSUVlXeGxkSFJsS0NrN1hHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdZblZwYkdSUVlXeGxkSFJsS0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQW9XMTBnWVhNZ2MzUnlhVzVuVzEwcExtTnZibU5oZENndUxpNVBZbXBsWTNRdWRtRnNkV1Z6S0ZObGNWQmhiR1YwZEdWQ1lYTmxMbU52Ykc5MWNsQmhiR1YwZEdVcEtUdGNiaUFnSUNCeVpYUjFjbTRnY21Wek8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ2h0T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR052Ym5OMElHaGhjMmc2SUc1MWJXSmxjaUE5SUZOMGNtbHVaMVYwYVd4ekxtaGhjMmhEYjJSbEtHMHBPMXh1SUNBZ0lHTnZibk4wSUhCSklEMGdhR0Z6YUNBbElGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVjR0ZzWlhSMFpTNXNaVzVuZEdnN1hHNGdJQ0FnY21WMGRYSnVJR052Y25KbFkzUkRiMnh2Y2loVmJtdHViM2R1UTI5c2IzSlFZV3hsZEhSbExuQmhiR1YwZEdWYmNFbGRLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVnpJR1Y0ZEdWdVpITWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2UxeHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5Qm5jbUY1T2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUVkeVlYa29LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WjNKaGVTQTlQVDBnZG05cFpDQXdLVnh1SUNBZ0lDQWdkR2hwY3k1bmNtRjVJRDBnYm1WM0lFZHlZWGxCYkd4UVlXeGxkSFJsS0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVozSmhlVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR052Ykc5eU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFTnZiRzl5S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZiRzl5SUQwOVBTQjJiMmxrSURBcFhHNGdJQ0FnSUNCMGFHbHpMbU52Ykc5eUlEMGdibVYzSUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVb0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiMnh2Y2p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgeyBtb25vbWVyVG9TaG9ydCB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG5jb25zdCB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbmNvbnN0IGdyYXlDb2xvciA9ICcjODA4MDgwJztcbmNvbnN0IGJsYWNrQ29sb3IgPSAncmdiKDAsMCwwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gbW9ub21lclRvU2hvcnQ7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIHdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwuXG4gKiBAcGFyYW0gcmVmZXJlbmNlU2VxdWVuY2UgSXMgcmVmZXJlbmNlIHNlcXVlbmNlIGZvciBkaWZmIG1vZGUuXG4gKiBAcGFyYW0gbWF4TGVuZ3RoT2ZNb25vbWVyIElzIG1heCBsZW5ndGggb2YgbW9ub21lci5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgd29yZElkeCA9IDAsIGdyaWRDZWxsID0gbnVsbCwgcmVmZXJlbmNlU2VxdWVuY2UgPSBbXSwgbWF4TGVuZ3RoT2ZNb25vbWVyID0gbnVsbCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGxldCBjb2xvclBhcnQgPSBzLnN1YnN0cmluZygwKTtcbiAgICBsZXQgZ3JheVBhcnQgPSBsYXN0ID8gJycgOiBzZXBhcmF0b3I7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBncmF5UGFydCA9ICcnO1xuICAgIH1cbiAgICBsZXQgY29sb3JDb2RlID0gdHJ1ZTtcbiAgICBsZXQgY29tcGFyZVdpdGhDdXJyZW50ID0gdHJ1ZTtcbiAgICBpZiAoZ3JpZENlbGwgIT0gbnVsbCkge1xuICAgICAgICBjb2xvckNvZGUgPSAoKChfYSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGVtcFsnY29sb3ItY29kZSddKSAhPSBudWxsKSA/IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2NvbG9yLWNvZGUnXSA6IHRydWU7XG4gICAgICAgIGNvbXBhcmVXaXRoQ3VycmVudCA9ICgoKF9iID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50ZW1wWydjb21wYXJlLXdpdGgtY3VycmVudCddKSAhPSBudWxsKSA/IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10gOiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50TW9ub21lciA9IHJlZmVyZW5jZVNlcXVlbmNlW3dvcmRJZHhdO1xuICAgIGlmIChjb21wYXJlV2l0aEN1cnJlbnQgJiYgKHJlZmVyZW5jZVNlcXVlbmNlLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIHRyYW5zcGFyZW5jeVJhdGUgPSAoY29sb3JQYXJ0ID09IGN1cnJlbnRNb25vbWVyKSA/IDAuMyA6IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgfVxuICAgIGlmIChtYXhMZW5ndGhPZk1vbm9tZXIgIT0gbnVsbCkge1xuICAgICAgICBjb2xvclBhcnQgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGNvbG9yUGFydCwgbWF4TGVuZ3RoT2ZNb25vbWVyKTtcbiAgICB9XG4gICAgbGV0IHRleHRTaXplID0gZy5tZWFzdXJlVGV4dChjb2xvclBhcnQgKyBncmF5UGFydCk7XG4gICAgY29uc3QgaW5kZW50ID0gNTtcbiAgICBsZXQgbWF4Q29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBsZXQgY29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBjb25zdCBkeSA9ICh0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hBc2NlbnQgKyB0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hEZXNjZW50KSAvIDI7XG4gICAgdGV4dFNpemUgPSB0ZXh0U2l6ZS53aWR0aDtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIG1heENvbG9yVGV4dFNpemUgPSBtYXhXb3JkW3dvcmRJZHhdO1xuICAgICAgICB0ZXh0U2l6ZSA9IG1heFdvcmRbd29yZElkeF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgY29uc3QgZHJhd0NvbG9yID0gY29sb3JDb2RlID8gY29sb3IgOiBibGFja0NvbG9yO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgICAgIGcuZmlsbFRleHQoY29sb3JQYXJ0LCB4ICsgZHgxICsgKChtYXhXb3JkW3dvcmRJZHhdIC0gY29sb3JUZXh0U2l6ZSkgLyAyKSwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVmdCB8fCB0ZXh0U2l6ZSA+IHcpIHtcbiAgICAgICAgZHJhdyhpbmRlbnQsIGluZGVudCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIG1heENvbG9yVGV4dFNpemUgKyBnLm1lYXN1cmVUZXh0KGdyYXlQYXJ0KS53aWR0aDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGR4ID0gKHcgLSB0ZXh0U2l6ZSkgLyAyO1xuICAgICAgICBkcmF3KGR4LCBkeCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMlZzYkMxeVpXNWtaWEpsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbU5sYkd3dGNtVnVaR1Z5WlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eEZRVUZETEdOQlFXTXNSVUZCUXl4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJTOURMRTFCUVUwc1kwRkJZeXhIUVVGSExHdENRVUZyUWl4RFFVRkRPMEZCUXpGRExFMUJRVTBzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0QlFVTTFRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFpRVUZaTEVOQlFVTTdRVUZEYUVNc1RVRkJUU3h6UWtGQmMwSXNSMEZCTUVRc1kwRkJZeXhEUVVGRE8wRkJSWEpITEUxQlFVMHNRMEZCVGl4SlFVRlpMRk5CUjFnN1FVRklSQ3hYUVVGWkxGTkJRVk03U1VGRGJrSXNkMEpCUVZjc1EwRkJRVHRKUVVOWUxHZERRVUZ0UWl4RFFVRkJPMEZCUTNKQ0xFTkJRVU1zUlVGSVZ5eFRRVUZUTEV0QlFWUXNVMEZCVXl4UlFVZHdRanRCUVVWRU96czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCYzBKSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVOcVF5eERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hEUVVGVExFVkJRekZETEVOQlFUSkNMRVZCUVVVc1EwRkJVeXhGUVVGRkxGRkJRV2RDTEdOQlFXTXNSVUZEZEVVc1VVRkJaMElzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4TFFVRkxMRVZCUVVVc2JVSkJRVEpDTEVkQlFVY3NSVUZETDBRc1dVRkJiMElzUlVGQlJTeEZRVUZGTEU5QlFXZENMRXRCUVVzc1JVRkJSU3haUVVGMVFpeFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRlZCUVhWRExFVkJRVVVzUlVGQlJTeFZRVUZyUWl4RFFVRkRMRVZCUVVVc1YwRkJLMElzU1VGQlNTeEZRVUZGTEc5Q1FVRTRRaXhGUVVGRkxFVkJRVVVzY1VKQlFXOURMRWxCUVVrN08wbEJRM2hSTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRE8wbEJRM1JDTEVsQlFVa3NVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETDBJc1NVRkJTU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU55UXl4SlFVRkpMRk5CUVZNc1MwRkJTeXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFGQlF5OUNMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU03UzBGRFpqdEpRVU5FTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOeVFpeEpRVUZKTEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU01UWl4SlFVRkpMRkZCUVZFc1NVRkJTU3hKUVVGSkxFVkJRVVU3VVVGRGNFSXNVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJRU3hOUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN3d1EwRkJSU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTJoSUxHdENRVUZyUWl4SFFVRkhMRU5CUVVNc1EwRkJRU3hOUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN3d1EwRkJSU3hKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1MwRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0TFFVTTVTVHRKUVVORUxFMUJRVTBzWTBGQll5eEhRVUZYTEdsQ1FVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6RkVMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRlRVFzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhUUVVGVExFbEJRVWtzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkRNMFU3U1VGRFJDeEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFbEJRVWtzUlVGQlJUdFJRVU01UWl4VFFVRlRMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNVMEZCVXl4RlFVRkZMR3RDUVVGclFpeERRVUZETEVOQlFVTTdTMEZEYmtVN1NVRkhSQ3hKUVVGSkxGRkJRVkVzUjBGQlVTeERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU40UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRmFrSXNTVUZCU1N4blFrRkJaMElzUjBGQlJ5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU4wUkN4SlFVRkpMR0ZCUVdFc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOdVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4UlFVRlJMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRiRVlzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRNVUlzU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVNdlFpeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTTNRanRKUVVWRUxGTkJRVk1zU1VGQlNTeERRVUZETEVkQlFWY3NSVUZCUlN4SFFVRlhPMUZCUTNCRExFMUJRVTBzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZEYWtRc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdVVUZEZUVJc1EwRkJReXhEUVVGRExGZEJRVmNzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRSUVVOcVF5eEpRVUZKTEZOQlFWTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRMjVETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRM1pETEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM2hDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xTkJRM1pETzFGQlEwUXNTVUZCU1N4VFFVRlRMRXRCUVVzc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU12UWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF6dFpRVU40UWl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMU5CUTI1R08wbEJRMGdzUTBGQlF6dEpRVVZFTEVsQlFVa3NTVUZCU1N4SlFVRkpMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGVFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRSUVVONFF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUjBGQlJ5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dExRVVUzUkR0VFFVRk5PMUZCUTB3c1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemxDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMR2RDUVVGblFpeERRVUZETzB0QlEyeERPMEZCUTBnc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNWNibWx0Y0c5eWRDQjdiVzl1YjIxbGNsUnZVMmh2Y25SOUlHWnliMjBnSnk0dmJXRmpjbTl0YjJ4bFkzVnNaU2M3WEc1Y2JtTnZibk4wSUhWdVpHVm1hVzVsWkVOdmJHOXlJRDBnSjNKbllpZ3hNREFzTVRBd0xERXdNQ2tuTzF4dVkyOXVjM1FnWjNKaGVVTnZiRzl5SUQwZ0p5TTRNRGd3T0RBbk8xeHVZMjl1YzNRZ1lteGhZMnREYjJ4dmNpQTlJQ2R5WjJJb01Dd3dMREFwSnp0Y2JtTnZibk4wSUcxdmJtOXRaWEpVYjFOb2IzSjBSblZ1WTNScGIyNDZJQ2hoYldsdWJ6b2djM1J5YVc1bkxDQnRZWGhNWlc1bmRHaFBaazF2Ym05dFpYSTZJRzUxYldKbGNpa2dQVDRnYzNSeWFXNW5JRDBnYlc5dWIyMWxjbFJ2VTJodmNuUTdYRzVjYm1WNGNHOXlkQ0JsYm5WdElFUnlZWGRUZEhsc1pTQjdYRzRnSUUxVFFTQTlJQ2ROVTBFbkxGeHVJQ0JqYkdGemMybGpJRDBnSjJOc1lYTnphV01uTEZ4dWZWeHVYRzR2S2lwY2JpQXFJRUVnWm5WdVkzUnBiMjRnZEdoaGRDQndjbWx1ZEhNZ1lTQnpkSEpwYm1jZ1lXeHBaMjVsWkNCMGJ5QnNaV1owSUc5eUlHTmxiblJsY21Wa0xseHVJQ3BjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCNElIZ2dZMjl2Y21ScGJtRjBaUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCNUlIa2dZMjl2Y21ScGJtRjBaUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCM0lGZHBaSFJvTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHZ2dTR1ZwWjJoMExseHVJQ29nUUhCaGNtRnRJSHREWVc1MllYTlNaVzVrWlhKcGJtZERiMjUwWlhoME1rUjlJR2NnUTJGdWRtRnpJSEpsYm1SbGNtbHVaeUJqYjI1MFpYaDBMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhNZ1UzUnlhVzVuSUhSdklIQnlhVzUwTGx4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdGpiMnh2Y2oxMWJtUmxabWx1WldSRGIyeHZjbDBnVTNSeWFXNW5JR052Ykc5eUxseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR3YVhadmREMHdYU0JRYVhKMmIzUXVYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0c1pXWjBQV1poYkhObFhTQkpjeUJzWldaMElHRnNhV2R1WldRdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXM1J5WVc1emNHRnlaVzVqZVZKaGRHVTlNQzR3WFNCVWNtRnVjM0JoY21WdVkza2djbUYwWlNCM2FHVnlaU0F4TGpBZ2FYTWdablZzYkhrZ2RISmhibk53WVhKbGJuUmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYzJWd1lYSmhkRzl5UFNjblhTQkpjeUJ6WlhCaGNtRjBiM0lnWm05eUlITmxjWFZsYm1ObExseHVJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYkdGemREMW1ZV3h6WlYwZ1NYTWdZMmhsWTJ0bGNpQnBaaUJsYkdWdFpXNTBJR3hoYzNRZ2IzSWdibTkwTGx4dUlDb2dRSEJoY21GdElHUnlZWGRUZEhsc1pTQkpjeUJrY21GM0lITjBlV3hsTGlCTlUwRWdMU0JtYjNJZ2JYVnNkR2xqYUdGeVUyVnhMQ0JqYkdGemMybGpJQzBnWm05eUlHOTBhR1Z5SUhObGNTNWNiaUFxSUVCd1lYSmhiU0J0WVhoWGIzSmtJRWx6SUdGeWNtRjVJRzltSUcxaGVDQjNiM0prY3lCbWIzSWdaV0ZqYUNCc2FXNWxMbHh1SUNvZ1FIQmhjbUZ0SUhkdmNtUkpaSGdnU1hNZ2FXNWtaWGdnYjJZZ2QyOXlaQ0IzWlNCamRYSnlaVzUwYkhrZ1pISmhkeTVjYmlBcUlFQndZWEpoYlNCbmNtbGtRMlZzYkNCSmN5Qm5jbWxrSUdObGJHd3VYRzRnS2lCQWNHRnlZVzBnY21WbVpYSmxibU5sVTJWeGRXVnVZMlVnU1hNZ2NtVm1aWEpsYm1ObElITmxjWFZsYm1ObElHWnZjaUJrYVdabUlHMXZaR1V1WEc0Z0tpQkFjR0Z5WVcwZ2JXRjRUR1Z1WjNSb1QyWk5iMjV2YldWeUlFbHpJRzFoZUNCc1pXNW5kR2dnYjJZZ2JXOXViMjFsY2k1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdlQ0JqYjI5eVpHbHVZWFJsSUhSdklITjBZWEowSUhCeWFXNTBhVzVuSUdGMExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0hKcGJuUk1aV1owVDNKRFpXNTBaWEpsWkNoY2JpQWdlRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElzSUhjNklHNTFiV0psY2l3Z2FEb2diblZ0WW1WeUxGeHVJQ0JuT2lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1FzSUhNNklITjBjbWx1Wnl3Z1kyOXNiM0k2SUhOMGNtbHVaeUE5SUhWdVpHVm1hVzVsWkVOdmJHOXlMRnh1SUNCd2FYWnZkRG9nYm5WdFltVnlJRDBnTUN3Z2JHVm1kQ0E5SUdaaGJITmxMQ0IwY21GdWMzQmhjbVZ1WTNsU1lYUmxPaUJ1ZFcxaVpYSWdQU0F4TGpBc1hHNGdJSE5sY0dGeVlYUnZjam9nYzNSeWFXNW5JRDBnSnljc0lHeGhjM1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaU3dnWkhKaGQxTjBlV3hsT2lCRWNtRjNVM1I1YkdVZ1BTQkVjbUYzVTNSNWJHVXVZMnhoYzNOcFl5d2diV0Y0VjI5eVpEb2dleUJiYVc1a1pYZzZJSE4wY21sdVoxMDZJRzUxYldKbGNpQjlJRDBnZTMwc0lIZHZjbVJKWkhnNklHNTFiV0psY2lBOUlEQXNJR2R5YVdSRFpXeHNPaUJFUnk1SGNtbGtRMlZzYkNCOElHNTFiR3dnUFNCdWRXeHNMQ0J5WldabGNtVnVZMlZUWlhGMVpXNWpaVG9nYzNSeWFXNW5XMTBnUFNCYlhTd2diV0Y0VEdWdVozUm9UMlpOYjI1dmJXVnlPaUJ1ZFcxaVpYSWdmQ0J1ZFd4c0lEMGdiblZzYkNrNklHNTFiV0psY2lCN1hHNGdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0ozTjBZWEowSnp0Y2JpQWdiR1YwSUdOdmJHOXlVR0Z5ZENBOUlITXVjM1ZpYzNSeWFXNW5LREFwTzF4dUlDQnNaWFFnWjNKaGVWQmhjblFnUFNCc1lYTjBJRDhnSnljZ09pQnpaWEJoY21GMGIzSTdYRzRnSUdsbUlDaGtjbUYzVTNSNWJHVWdQVDA5SUVSeVlYZFRkSGxzWlM1TlUwRXBJSHRjYmlBZ0lDQm5jbUY1VUdGeWRDQTlJQ2NuTzF4dUlDQjlYRzRnSUd4bGRDQmpiMnh2Y2tOdlpHVWdQU0IwY25WbE8xeHVJQ0JzWlhRZ1kyOXRjR0Z5WlZkcGRHaERkWEp5Wlc1MElEMGdkSEoxWlR0Y2JpQWdhV1lnS0dkeWFXUkRaV3hzSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0JqYjJ4dmNrTnZaR1VnUFNBb1ozSnBaRU5sYkd3dVkyVnNiQzVqYjJ4MWJXNC9MblJsYlhCYkoyTnZiRzl5TFdOdlpHVW5YU0FoUFNCdWRXeHNLU0EvSUdkeWFXUkRaV3hzTG1ObGJHd3VZMjlzZFcxdUxuUmxiWEJiSjJOdmJHOXlMV052WkdVblhTQTZJSFJ5ZFdVN1hHNGdJQ0FnWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUQwZ0tHZHlhV1JEWld4c0xtTmxiR3d1WTI5c2RXMXVQeTUwWlcxd1d5ZGpiMjF3WVhKbExYZHBkR2d0WTNWeWNtVnVkQ2RkSUNFOUlHNTFiR3dwSUQ4Z1ozSnBaRU5sYkd3dVkyVnNiQzVqYjJ4MWJXNHVkR1Z0Y0ZzblkyOXRjR0Z5WlMxM2FYUm9MV04xY25KbGJuUW5YU0E2SUhSeWRXVTdYRzRnSUgxY2JpQWdZMjl1YzNRZ1kzVnljbVZ1ZEUxdmJtOXRaWEk2SUhOMGNtbHVaeUE5SUhKbFptVnlaVzVqWlZObGNYVmxibU5sVzNkdmNtUkpaSGhkTzF4dUlDQnBaaUFvWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUNZbUlDaHlaV1psY21WdVkyVlRaWEYxWlc1alpTNXNaVzVuZEdnZ1BpQXdLU2tnZTF4dUlDQWdJSFJ5WVc1emNHRnlaVzVqZVZKaGRHVWdQU0FvWTI5c2IzSlFZWEowSUQwOUlHTjFjbkpsYm5STmIyNXZiV1Z5S1NBL0lEQXVNeUE2SUhSeVlXNXpjR0Z5Wlc1amVWSmhkR1U3WEc0Z0lIMWNiaUFnYVdZZ0tHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ1kyOXNiM0pRWVhKMElEMGdiVzl1YjIxbGNsUnZVMmh2Y25SR2RXNWpkR2x2YmloamIyeHZjbEJoY25Rc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpazdYRzRnSUgxY2JseHVYRzRnSUd4bGRDQjBaWGgwVTJsNlpUb2dZVzU1SUQwZ1p5NXRaV0Z6ZFhKbFZHVjRkQ2hqYjJ4dmNsQmhjblFnS3lCbmNtRjVVR0Z5ZENrN1hHNGdJR052Ym5OMElHbHVaR1Z1ZENBOUlEVTdYRzVjYmlBZ2JHVjBJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdQU0JuTG0xbFlYTjFjbVZVWlhoMEtHTnZiRzl5VUdGeWRDa3VkMmxrZEdnN1hHNGdJR3hsZENCamIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JqYjI1emRDQmtlU0E5SUNoMFpYaDBVMmw2WlM1bWIyNTBRbTkxYm1ScGJtZENiM2hCYzJObGJuUWdLeUIwWlhoMFUybDZaUzVtYjI1MFFtOTFibVJwYm1kQ2IzaEVaWE5qWlc1MEtTQXZJREk3WEc0Z0lIUmxlSFJUYVhwbElEMGdkR1Y0ZEZOcGVtVXVkMmxrZEdnN1hHNGdJR2xtSUNoa2NtRjNVM1I1YkdVZ1BUMDlJRVJ5WVhkVGRIbHNaUzVOVTBFcElIdGNiaUFnSUNCdFlYaERiMnh2Y2xSbGVIUlRhWHBsSUQwZ2JXRjRWMjl5WkZ0M2IzSmtTV1I0WFR0Y2JpQWdJQ0IwWlhoMFUybDZaU0E5SUcxaGVGZHZjbVJiZDI5eVpFbGtlRjA3WEc0Z0lIMWNibHh1SUNCbWRXNWpkR2x2YmlCa2NtRjNLR1I0TVRvZ2JuVnRZbVZ5TENCa2VESTZJRzUxYldKbGNpazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJR1J5WVhkRGIyeHZjaUE5SUdOdmJHOXlRMjlrWlNBL0lHTnZiRzl5SURvZ1lteGhZMnREYjJ4dmNqdGNiaUFnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR1J5WVhkRGIyeHZjanRjYmlBZ0lDQm5MbWRzYjJKaGJFRnNjR2hoSUQwZ2RISmhibk53WVhKbGJtTjVVbUYwWlR0Y2JpQWdJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1WTJ4aGMzTnBZeWtnZTF4dUlDQWdJQ0FnWnk1bWFXeHNWR1Y0ZENoamIyeHZjbEJoY25Rc0lIZ2dLeUJrZURFc0lIa2dLeUJrZVNrN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR2R5WVhsRGIyeHZjanRjYmlBZ0lDQWdJR2N1Wm1sc2JGUmxlSFFvWjNKaGVWQmhjblFzSUhnZ0t5QmtlRElzSUhrZ0t5QmtlU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hrY21GM1UzUjViR1VnUFQwOUlFUnlZWGRUZEhsc1pTNU5VMEVwSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdaSEpoZDBOdmJHOXlPMXh1SUNBZ0lDQWdaeTVtYVd4c1ZHVjRkQ2hqYjJ4dmNsQmhjblFzSUhnZ0t5QmtlREVnS3lBb0tHMWhlRmR2Y21SYmQyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIHBhcnNpbmcgRkFTVEEgZmlsZXMgKi9cbmV4cG9ydCBjbGFzcyBGYXN0YUZpbGVIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWxlQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheSA9IFtdOyAvLyBwYXJzZWQgRkFTVEEgZGVzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBzZXF1ZWNlc1xuICAgICAgICB0aGlzLl9maWxlQ29udGVudCA9IGZpbGVDb250ZW50O1xuICAgICAgICB0aGlzLnBhcnNlQ29sdW1ucygpO1xuICAgIH1cbiAgICAvLyBwcml2YXRlIF9jb2x1bW5zUGFyc2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IGRlc2NyaXB0aW9uc0FycmF5KCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb25zQXJyYXk7IH1cbiAgICBnZXQgc2VxdWVuY2VzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9zZXF1ZW5jZXNBcnJheTsgfVxuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gcGFyc2UgYSBtYWNyb21vbGVjdWxlIGZyb20gYSBGQVNUQSBmaWxlIChzdHJpbmcpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBiZWdpbm5pbmdcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kT2ZTZXF1ZW5jZSAgaW5kZXggb2YgbWFjcm9tb2xlY3VsZSBzdWJzdHJpbmcgZW5kXG4gIFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gcGFyc2VkIG1hY3JvbW9sZWN1bGVcbiAgICAgKi9cbiAgICBwYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuX2ZpbGVDb250ZW50LnNsaWNlKHN0YXJ0T2ZTZXF1ZW5jZSwgZW5kT2ZTZXF1ZW5jZSk7XG4gICAgICAgIGNvbnN0IHNlcUFycmF5ID0gc2VxLnNwbGl0KC9cXHMvKTtcbiAgICAgICAgcmV0dXJuIHNlcUFycmF5LmpvaW4oJycpO1xuICAgIH1cbiAgICAvKiogUGFyc2UgZGVzY3JpcHRpb25zIGFuZCBzZXF1ZW5jZXMgZnJvbSBhIEZBU1RBIHN0cmluZyAqL1xuICAgIHBhcnNlQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXj4oLiopJC9nbTsgLy8gbWF0Y2ggJ2Rlc2NyaXB0aW9uJyBsaW5lcyBzdGFydGluZyB3aXRoID5cbiAgICAgICAgbGV0IHN0YXJ0T2ZTZXF1ZW5jZSA9IDA7XG4gICAgICAgIGxldCBtYXRjaDsgLy8gbWF0Y2guaW5kZXggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWF0Y2hlZCBsaW5lXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModGhpcy5fZmlsZUNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2ZpbGVDb250ZW50LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIDEsIHJlZ2V4Lmxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheS5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mU2VxdWVuY2UgIT09IDApXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgICBzdGFydE9mU2VxdWVuY2UgPSByZWdleC5sYXN0SW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5LnB1c2godGhpcy5wYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCAtMSkpO1xuICAgICAgICAvLyB0aGlzLl9jb2x1bW5zUGFyc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsZS1oYW5kbGVyIG1ldGhvZCBmb3IgaW1wb3J0IGFzIEZBU1RBXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtERy5EYXRhRnJhbWVbXX0gZGF0YWZyYW1lIHdpdGggcGFyc2VkIEZBU1RBIGNvbnRlbnRcbiAgICAgKi9cbiAgICBpbXBvcnRGYXN0YSgpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25zQXJyYXlDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2Rlc2NyaXB0aW9uJywgdGhpcy5kZXNjcmlwdGlvbnNBcnJheSk7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlQ29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdzZXF1ZW5jZScsIHRoaXMuc2VxdWVuY2VzQXJyYXkpO1xuICAgICAgICBzZXF1ZW5jZUNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAvLyBoZXJlIHNob3VsZCBnbyB0aGUgY29kZSBmcm9tIHVuaXRzIGhhbmRsZXJcbiAgICAgICAgVW5pdHNIYW5kbGVyLnNldFVuaXRzVG9GYXN0YUNvbHVtbihzZXF1ZW5jZUNvbCk7XG4gICAgICAgIHJldHVybiBbREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNBcnJheUNvbCxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbCxcbiAgICAgICAgICAgIF0pXTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2labUZ6ZEdFdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVpoYzNSaExXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSMEVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVNc1dVRkJXU3hGUVVGRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZOME1zYjBOQlFXOURPMEZCUTNCRExFMUJRVTBzVDBGQlR5eG5Ra0ZCWjBJN1NVRm5SVE5DTEZsQlFWa3NWMEZCYlVJN1VVRTVSSFpDTEhWQ1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETERSQ1FVRTBRanRSUVVNdlJDeHZRa0ZCWlN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExIZENRVUYzUWp0UlFUaEVPVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VFdlJFUXNNa05CUVRKRE8wbEJSVE5ETEVsQlFWY3NhVUpCUVdsQ0xFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkZMRWxCUVZjc1kwRkJZeXhMUVVGbExFOUJRVThzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRVU3T3pzN096czdUMEZQUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4bFFVRjFRaXhGUVVOMlFpeGhRVUZ4UWp0UlFVVnlRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVVkVMREpFUVVFeVJEdEpRVU51UkN4WlFVRlpPMUZCUTJ4Q0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRMRFJEUVVFMFF6dFJRVVYyUlN4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXh0UkVGQmJVUTdVVUZET1VRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hsUVVGbExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU51Uml4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN3NFFrRkJPRUk3U1VGRGFFTXNRMEZCUXp0SlFVVkVPenM3TzA5QlNVYzdTVUZEU1N4WFFVRlhPMUZCUTJoQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpGR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzVjBGQlZ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVV2UXl3MlEwRkJOa003VVVGRE4wTXNXVUZCV1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUldoRUxFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNiMEpCUVc5Q08yZENRVU53UWl4WFFVRlhPMkZCUTFvc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRpeERRVUZETzBOQlRVWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lCRWJ5QnViM1FnWTJoaGJtZGxJSFJvWlhObElHbHRjRzl5ZENCc2FXNWxjeUIwYnlCdFlYUmphQ0JsZUhSbGNtNWhiQ0J0YjJSMWJHVnpJR2x1SUhkbFluQmhZMnNnWTI5dVptbG5kWEpoZEdsdmJpQXFMMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dmRXNXBkSE10YUdGdVpHeGxjaWM3WEc1Y2JpOHFLaUJEYkdGemN5Qm1iM0lnY0dGeWMybHVaeUJHUVZOVVFTQm1hV3hsY3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaGMzUmhSbWxzWlVoaGJtUnNaWElnZTF4dUlDQndjbWwyWVhSbElGOW1hV3hsUTI5dWRHVnVkRG9nYzNSeWFXNW5PMXh1SUNCd2NtbDJZWFJsSUY5a1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJR1JsYzJOeWFYQjBhVzl1YzF4dUlDQndjbWwyWVhSbElGOXpaWEYxWlc1alpYTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJSE5sY1hWbFkyVnpYRzRnSUM4dklIQnlhWFpoZEdVZ1gyTnZiSFZ0Ym5OUVlYSnpaV1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsYzJOeWFYQjBhVzl1YzBGeWNtRjVLQ2s2SUhOMGNtbHVaMXRkSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMlJsYzJOeWFYQjBhVzl1YzBGeWNtRjVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhGMVpXNWpaWE5CY25KaGVTZ3BPaUJ6ZEhKcGJtZGJYU0I3SUhKbGRIVnliaUIwYUdsekxsOXpaWEYxWlc1alpYTkJjbkpoZVRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSVpXeHdaWElnYldWMGFHOWtJSFJ2SUhCaGNuTmxJR0VnYldGamNtOXRiMnhsWTNWc1pTQm1jbTl0SUdFZ1JrRlRWRUVnWm1sc1pTQW9jM1J5YVc1bktWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1JoY25SUFpsTmxjWFZsYm1ObElDQnBibVJsZUNCdlppQnRZV055YjIxdmJHVmpkV3hsSUhOMVluTjBjbWx1WnlCaVpXZHBibTVwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkU5bVUyVnhkV1Z1WTJVZ0lHbHVaR1Y0SUc5bUlHMWhZM0p2Ylc5c1pXTjFiR1VnYzNWaWMzUnlhVzVuSUdWdVpGeHVYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ2NHRnljMlZrSUcxaFkzSnZiVzlzWldOMWJHVmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWTllXTnliMjF2YkdWamRXeGxLRnh1SUNBZ0lITjBZWEowVDJaVFpYRjFaVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR1Z1WkU5bVUyVnhkV1Z1WTJVNklHNTFiV0psY2x4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNTQTlJSFJvYVhNdVgyWnBiR1ZEYjI1MFpXNTBMbk5zYVdObEtITjBZWEowVDJaVFpYRjFaVzVqWlN3Z1pXNWtUMlpUWlhGMVpXNWpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2MyVnhRWEp5WVhrZ1BTQnpaWEV1YzNCc2FYUW9MMXhjY3k4cE8xeHVJQ0FnSUhKbGRIVnliaUJ6WlhGQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlFZWEp6WlNCa1pYTmpjbWx3ZEdsdmJuTWdZVzVrSUhObGNYVmxibU5sY3lCbWNtOXRJR0VnUmtGVFZFRWdjM1J5YVc1bklDb3ZYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVkRiMngxYlc1ektDa2dlMXh1SUNBZ0lHTnZibk4wSUhKbFoyVjRJRDBnTDE0K0tDNHFLU1F2WjIwN0lDOHZJRzFoZEdOb0lDZGtaWE5qY21sd2RHbHZiaWNnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBK1hHNWNiaUFnSUNCc1pYUWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdNRHRjYmlBZ0lDQnNaWFFnYldGMFkyZzdJQzh2SUcxaGRHTm9MbWx1WkdWNElHbHpJSFJvWlNCaVpXZHBibTVwYm1jZ2IyWWdkR2hsSUcxaGRHTm9aV1FnYkdsdVpWeHVJQ0FnSUhkb2FXeGxJQ2h0WVhSamFDQTlJSEpsWjJWNExtVjRaV01vZEdocGN5NWZabWxzWlVOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2YmlBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTjFZbk4wY21sdVp5aHRZWFJqYUM1cGJtUmxlQ0FySURFc0lISmxaMlY0TG14aGMzUkpibVJsZUNrN1hHNGdJQ0FnSUNCMGFHbHpMbDlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlUzV3ZFhOb0tHUmxjMk55YVhCMGFXOXVLVHRjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRTltVTJWeGRXVnVZMlVnSVQwOUlEQXBYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmxjWFZsYm1ObGMwRnljbUY1TG5CMWMyZ29kR2hwY3k1d1lYSnpaVTFoWTNKdmJXOXNaV04xYkdVb2MzUmhjblJQWmxObGNYVmxibU5sTENCdFlYUmphQzVwYm1SbGVDa3BPMXh1SUNBZ0lDQWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdjbVZuWlhndWJHRnpkRWx1WkdWNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmYzJWeGRXVnVZMlZ6UVhKeVlYa3VjSFZ6YUNoMGFHbHpMbkJoY25ObFRXRmpjbTl0YjJ4bFkzVnNaU2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVXNJQzB4S1NrN1hHNWNiaUFnSUNBdkx5QjBhR2x6TGw5amIyeDFiVzV6VUdGeWMyVmtJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJHYVd4bExXaGhibVJzWlhJZ2JXVjBhRzlrSUdadmNpQnBiWEJ2Y25RZ1lYTWdSa0ZUVkVGY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UkdGMFlVWnlZVzFsVzExOUlHUmhkR0ZtY21GdFpTQjNhWFJvSUhCaGNuTmxaQ0JHUVZOVVFTQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2FXMXdiM0owUm1GemRHRW9LVG9nUkVjdVJHRjBZVVp5WVcxbElGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVVOdmJDQTlJRVJITGtOdmJIVnRiaTVtY205dFUzUnlhVzVuY3lnblpHVnpZM0pwY0hScGIyNG5MQ0IwYUdsekxtUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtUdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduYzJWeGRXVnVZMlVuTENCMGFHbHpMbk5sY1hWbGJtTmxjMEZ5Y21GNUtUdGNiaUFnSUNCelpYRjFaVzVqWlVOdmJDNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVYRzRnSUNBZ0x5OGdhR1Z5WlNCemFHOTFiR1FnWjI4Z2RHaGxJR052WkdVZ1puSnZiU0IxYm1sMGN5Qm9ZVzVrYkdWeVhHNGdJQ0FnVlc1cGRITklZVzVrYkdWeUxuTmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzBSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkN4Y2JpQWdJQ0FnSUhObGNYVmxibU5sUTI5c0xGeHVJQ0FnSUYwcFhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0dacGJHVkRiMjUwWlc1ME9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGFHbHpMbDltYVd4bFEyOXVkR1Z1ZENBOUlHWnBiR1ZEYjI1MFpXNTBPMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVkRiMngxYlc1ektDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyB2ZWN0b3JMZW5ndGgsIHZlY3RvckRvdFByb2R1Y3QgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnLi4vLi4vaW5kZXgnO1xuO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRzKHNlcUNvbCwgbWluTGVuZ3RoLCBzcGxpdHRlcikge1xuICAgIGNvbnN0IGZyZXEgPSB7fTtcbiAgICBsZXQgc2FtZUxlbmd0aCA9IHRydWU7XG4gICAgbGV0IGZpcnN0TGVuZ3RoID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IHNlcSBvZiBzZXFDb2wuY2F0ZWdvcmllcykge1xuICAgICAgICBjb25zdCBtU2VxID0gc3BsaXR0ZXIoc2VxKTtcbiAgICAgICAgaWYgKGZpcnN0TGVuZ3RoID09IG51bGwpXG4gICAgICAgICAgICBmaXJzdExlbmd0aCA9IG1TZXEubGVuZ3RoO1xuICAgICAgICBlbHNlIGlmIChtU2VxLmxlbmd0aCAhPT0gZmlyc3RMZW5ndGgpXG4gICAgICAgICAgICBzYW1lTGVuZ3RoID0gZmFsc2U7XG4gICAgICAgIGlmIChtU2VxLmxlbmd0aCA+IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIG1TZXEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIGZyZXEpKVxuICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICBmcmVxW21dICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZnJlcTogZnJlcSwgc2FtZUxlbmd0aDogc2FtZUxlbmd0aCB9O1xufVxuZXhwb3J0IGNvbnN0IG1vbm9tZXJSZSA9IC9cXFsoXFx3KylcXF18KFxcdyl8KC0pL2c7XG4vKiogU3BsaXQgc2VxdWVuY2UgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgbW9ub21lcnMsIHNxdWFyZSBicmFja2V0cyBtdWx0aWNoYXIgbW9ub21lciBuYW1lcyBvciBnYXAgc3ltYm9sLlxuICogQHBhcmFtIHthbnl9IHNlcSBvYmplY3Qgd2l0aCBzZXF1ZW5jZVxuICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzRmFzdGEoc2VxKSB7XG4gICAgcmV0dXJuIHd1KHNlcS50b1N0cmluZygpLm1hdGNoQWxsKG1vbm9tZXJSZSkpXG4gICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgIGxldCBtUmVzO1xuICAgICAgICBjb25zdCBtID0gbWFbMF07XG4gICAgICAgIGlmIChtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIG1SZXMgPSBtYVsxXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtUmVzO1xuICAgIH0pLnRvQXJyYXkoKTtcbn1cbi8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBsaW1pdFxuICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICByZXR1cm4gc2VxLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG59XG5jb25zdCBoZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuY29uc3QgaGVsbVBwMVJlID0gL1xcWyhbXlxcW1xcXV0rKV0vZztcbi8qKiBTcGxpdHMgSGVsbSBzdHJpbmcgdG8gbW9ub21lcnMsIGJ1dCBkb2VzIG5vdCByZXBsYWNlIG1vbm9tZXIgbmFtZXMgdG8gb3RoZXIgbm90YXRpb24gKGUuZy4gZm9yIFJOQSkuXG4gKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VxIFNvdXJjZSBzdHJpbmcgb2YgSEVMTSBub3RhdGlvblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzSGVsbShzZXEpIHtcbiAgICBoZWxtUmUubGFzdEluZGV4ID0gMDtcbiAgICBjb25zdCBlYSA9IGhlbG1SZS5leGVjKHNlcS50b1N0cmluZygpKTtcbiAgICBjb25zdCBpblNlcSA9IGVhID8gZWFbMl0gOiBudWxsO1xuICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHBwMU0gPSBoZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgIGlmIChwcDFNICYmIHBwMU0ubGVuZ3RoID49IDIpXG4gICAgICAgICAgICByZXR1cm4gcHAxTVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIG1tO1xuICAgIH07XG4gICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgcmV0dXJuIG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG59XG4vKiogR2V0IHNwbGl0dGVyIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZXMgdG8gbW9ub21lcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSB1bml0c1xuICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICogQHBhcmFtIGxpbWl0XG4gKiBAcmV0dXJuIHtTcGxpdHRlckZ1bmN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNGYXN0YTtcbiAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICByZXR1cm4gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNIZWxtO1xuICAgIGVsc2VcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAvLyBUT0RPOiBTcGxpdHRlciBmb3IgSEVMTVxufVxuLyoqIEdlbmVyYXRlIHNwbGl0dGVyIGZ1bmN0aW9uIGZvciBzZXF1ZW5jZSBjb2x1bW5cbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBjb2xcbiAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY30gU3BsaXR0ZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdldCBzcGxpdHRlciBmb3Igc2VtVHlwZSBcIiR7REcuU0VNVFlQRS5NQUNST01PTEVDVUxFfVwiIG9ubHkuYCk7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbC5nZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLyk7XG4gICAgcmV0dXJuIGdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xufVxuY29uc3QgbG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vKiogQ29udmVydCBsb25nIG1vbm9tZXIgbmFtZXMgdG8gc2hvcnQgb25lcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vbm9tZXJUb1Nob3J0KGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHNob3J0QW1pbm9NYXRjaCA9IGFtaW5vLm1hdGNoKGxvbmdNb25vbWVyUGFydFJlKTtcbiAgICBjb25zdCBuZWVkQWRkRG90cyA9IGFtaW5vLmxlbmd0aCA+IG1heExlbmd0aE9mTW9ub21lciB8fCAoKF9hID0gc2hvcnRBbWlub01hdGNoID09PSBudWxsIHx8IHNob3J0QW1pbm9NYXRjaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hvcnRBbWlub01hdGNoLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgPiAxO1xuICAgIGNvbnN0IHNob3J0QW1pbm8gPSAoX2IgPSBzaG9ydEFtaW5vTWF0Y2ggPT09IG51bGwgfHwgc2hvcnRBbWlub01hdGNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzaG9ydEFtaW5vTWF0Y2hbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcgJztcbiAgICByZXR1cm4gIW5lZWRBZGREb3RzID8gc2hvcnRBbWlubyA6IHNob3J0QW1pbm8uc3Vic3RyaW5nKDAsIG1heExlbmd0aE9mTW9ub21lcikgKyAn4oCmJztcbn1cbi8qKiBDYWxjdWxhdGUgc2ltaWxhcml0eSBpbiBjdXJyZW50IHNlcXVlbmNlIGFuZCBhbHBoYWJldC5cbiAqIEBwYXJhbSB7TW9ub21lckZyZXFzfSBmcmVxXG4gKiBAcGFyYW0ge1NldDxzdHJpbmc+fSBhbHBoYWJldFxuICogQHBhcmFtIHtzdHJpbmd9IGdhcFN5bWJvbFxuICogQHJldHVybiB7bnVtYmVyfSBDb3NpbmUgc2ltaWxhcml0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KGZyZXEsIGFscGhhYmV0LCBnYXBTeW1ib2wgPSAnLScpIHtcbiAgICBjb25zdCBrZXlzID0gbmV3IFNldChbLi4ubmV3IFNldChPYmplY3Qua2V5cyhmcmVxKSksIC4uLmFscGhhYmV0XSk7XG4gICAga2V5cy5kZWxldGUoZ2FwU3ltYm9sKTtcbiAgICBjb25zdCBmcmVxQSA9IFtdO1xuICAgIGNvbnN0IGFscGhhYmV0QSA9IFtdO1xuICAgIGZvciAoY29uc3QgbSBvZiBrZXlzKSB7XG4gICAgICAgIGZyZXFBLnB1c2gobSBpbiBmcmVxID8gZnJlcVttXSA6IDApO1xuICAgICAgICBhbHBoYWJldEEucHVzaChhbHBoYWJldC5oYXMobSkgPyAxIDogMCk7XG4gICAgfVxuICAgIC8qIFRoZXJlIHdlcmUgYSBmZXcgaWRlYXM6IGNoaS1zcXVhcmVkLCBwZWFyc29uIGNvcnJlbGF0aW9uICh2YXJpYW5jZT8pLCBzY2FsYXIgcHJvZHVjdCAqL1xuICAgIGNvbnN0IGZyZXFWID0gbmV3IFZlY3RvcihmcmVxQSk7XG4gICAgY29uc3QgYWxwaGFiZXRWID0gbmV3IFZlY3RvcihhbHBoYWJldEEpO1xuICAgIHJldHVybiB2ZWN0b3JEb3RQcm9kdWN0KGZyZXFWLCBhbHBoYWJldFYpIC8gKHZlY3Rvckxlbmd0aChmcmVxVikgKiB2ZWN0b3JMZW5ndGgoYWxwaGFiZXRWKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QWxwaGFiZXQoc3RhdHMpIHtcbiAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgIFtcIlBUXCIgLyogQUxQSEFCRVQuUFQgKi8sIFVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldF0sXG4gICAgICAgIFtcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLywgVW5pdHNIYW5kbGVyLkRuYUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICBbXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi8sIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0XSxcbiAgICBdO1xuICAgIC8vIENhbGN1bGF0ZSBsaWtlbGlob29kcyBmb3IgYWxwaGFiZXRfY2FuZGlkYXRlc1xuICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlcy5tYXAoKGMpID0+IGdldEFscGhhYmV0U2ltaWxhcml0eShzdGF0cy5mcmVxLCBjWzFdKSk7XG4gICAgY29uc3QgbWF4Q29zID0gTWF0aC5tYXgoLi4uYWxwaGFiZXRDYW5kaWRhdGVzU2ltKTtcbiAgICBjb25zdCBhbHBoYWJldCA9IG1heENvcyA+IDAuNjUgPyBhbHBoYWJldENhbmRpZGF0ZXNbYWxwaGFiZXRDYW5kaWRhdGVzU2ltLmluZGV4T2YobWF4Q29zKV1bMF0gOiAnVU4nO1xuICAgIHJldHVybiBhbHBoYWJldDtcbn1cbi8qKiBTZWxlY3RzIGEgc3VpdGFibGUgcGFsZXR0ZSBiYXNlZCBvbiBjb2x1bW4gZGF0YVxuICogQHBhcmFtIHtERy5Db2x1bW59IHNlcUNvbCBDb2x1bW4gdG8gbG9vayBmb3IgYSBwYWxldHRlXG4gKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAqIEByZXR1cm4ge1NlcVBhbGV0dGV9IFBhbGV0dGUgY29ycmVzcG9uZGluZyB0byB0aGUgYWxwaGFiZXQgb2YgdGhlIHNlcXVlbmNlcyBpbiB0aGUgY29sdW1uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaWNrVXBQYWxldHRlKHNlcUNvbCwgbWluTGVuZ3RoID0gNSkge1xuICAgIGxldCBhbHBoYWJldDtcbiAgICBpZiAoc2VxQ29sLnNlbVR5cGUgPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgIGNvbnN0IHVoID0gbmV3IFVuaXRzSGFuZGxlcihzZXFDb2wpO1xuICAgICAgICBhbHBoYWJldCA9IHVoLmFscGhhYmV0O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBnZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgc3BsaXR0ZXJBc0Zhc3RhKTtcbiAgICAgICAgYWxwaGFiZXQgPSBkZXRlY3RBbHBoYWJldChzdGF0cyk7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IGdldFBhbGV0dGVCeVR5cGUoYWxwaGFiZXQpO1xuICAgIHJldHVybiByZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFsZXR0ZUJ5VHlwZShwYWxldHRlVHlwZSkge1xuICAgIHN3aXRjaCAocGFsZXR0ZVR5cGUpIHtcbiAgICAgICAgY2FzZSAnUFQnOlxuICAgICAgICAgICAgcmV0dXJuIGJpby5BbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIGJpby5OdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgLy8gb3RoZXJcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBiaW8uVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBwaWNrVXBTZXFDb2woZGYpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3Qgc2VtVHlwZUNvbExpc3QgPSBkZi5jb2x1bW5zLmJ5U2VtVHlwZUFsbChERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpO1xuICAgIGxldCByZXNDb2wgPSAoX2EgPSBzZW1UeXBlQ29sTGlzdC5maW5kKChjb2wpID0+IHtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICByZXR1cm4gdW5pdHMgPyB1bml0cy5pbmRleE9mKCdNU0EnKSAhPT0gLTEgOiBmYWxzZTtcbiAgICB9KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICBpZiAoIXJlc0NvbCAmJiBzZW1UeXBlQ29sTGlzdC5sZW5ndGggPiAwKVxuICAgICAgICByZXNDb2wgPSBzZW1UeXBlQ29sTGlzdFswXTtcbiAgICByZXR1cm4gcmVzQ29sO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGamNtOXRiMnhsWTNWc1pTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xaFkzSnZiVzlzWldOMWJHVXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlFVTXNUVUZCVFN4RlFVRkRMRTFCUVUwc2FVUkJRV2xFTEVOQlFVTTdRVUZEZGtVc1QwRkJUeXhGUVVGRExGbEJRVmtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCV1M5R0xFOUJRVThzUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXp0QlFVTndRaXhQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZETEUxQlFVMHNkMEpCUVhkQ0xFTkJRVU03UVVGRGNFUXNUMEZCVHl4TFFVRkxMRWRCUVVjc1RVRkJUU3hoUVVGaExFTkJRVU03UVVGelFteERMRU5CUVVNN1FVRk5SaXhOUVVGTkxGVkJRVlVzVVVGQlVTeERRVUZETEUxQlFXbENMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFJRVUZ6UWp0SlFVTnVSaXhOUVVGTkxFbEJRVWtzUjBGQk5FSXNSVUZCUlN4RFFVRkRPMGxCUTNwRExFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjBRaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZGZGtJc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVelFpeEpRVUZKTEZkQlFWY3NTVUZCU1N4SlFVRkpPMWxCUTNKQ0xGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMkZCUTNaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhPMWxCUTJ4RExGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZGY2tJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEZOQlFWTXNSVUZCUlR0WlFVTXpRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRjRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenR2UWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5rTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRFpEdFRRVU5HTzB0QlEwWTdTVUZEUkN4UFFVRlBMRVZCUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFZRVUZWTEVWQlFVVXNWVUZCVlN4RlFVRkRMRU5CUVVNN1FVRkRPVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRk5CUVZNc1IwRkJWeXh4UWtGQmNVSXNRMEZCUXp0QlFVVjJSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExFZEJRVkU3U1VGRGRFTXNUMEZCVHl4RlFVRkZMRU5CUVcxQ0xFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VTBGRE5VUXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJiMElzUlVGQlJTeEZRVUZGTzFGQlF6VkNMRWxCUVVrc1NVRkJXU3hEUVVGRE8xRkJRMnBDTEUxQlFVMHNRMEZCUXl4SFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UWl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEWkR0aFFVRk5PMWxCUTB3c1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU5XTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnFRaXhEUVVGRE8wRkJSVVE3T3pzN1IwRkpSenRCUVVOSUxFMUJRVTBzVlVGQlZTeDNRa0ZCZDBJc1EwRkJReXhUUVVGcFFpeEZRVUZGTEZGQlFUUkNMRk5CUVZNN1NVRkRMMFlzVDBGQlR5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMUZCUTNKQ0xFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZYTEdsRFFVRnBReXhEUVVGRE8wRkJRM3BFTEUxQlFVMHNVMEZCVXl4SFFVRlhMR2RDUVVGblFpeERRVUZETzBGQlJ6TkRPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1kwRkJZeXhEUVVGRExFZEJRVkU3U1VGRGNrTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNrSXNUVUZCVFN4RlFVRkZMRWRCUVRKQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGREwwUXNUVUZCVFN4TFFVRkxMRWRCUVd0Q0xFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZGTDBNc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eEZRVUZWTEVWQlFWVXNSVUZCUlR0UlFVTXpReXhUUVVGVExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRMmhETEVsQlFVa3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF6dFpRVU14UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGWml4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOa0xFTkJRVU1zUTBGQlF6dEpRVVZHTEUxQlFVMHNUVUZCVFN4SFFVRmhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlEzWkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0QlFVTnVReXhEUVVGRE8wRkJSVVE3T3pzN08wZEJTMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNWMEZCVnl4RFFVRkRMRXRCUVdFc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEZGQlFUUkNMRk5CUVZNN1NVRkRha2NzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1ZVRkJWU3c0UWtGQlowSTdVVUZEYUVRc1QwRkJUeXhsUVVGbExFTkJRVU03VTBGRGNFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTeHpRMEZCYjBJN1VVRkRla1FzVDBGQlR5eDNRa0ZCZDBJc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVMEZETDBNc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN3MFFrRkJaVHRSUVVOd1JDeFBRVUZQTEdOQlFXTXNRMEZCUXpzN1VVRkZkRUlzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVVnFSQ3d3UWtGQk1FSTdRVUZETlVJc1EwRkJRenRCUVVWRU96czdSMEZIUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3h2UWtGQmIwSXNRMEZCUXl4SFFVRmpPMGxCUTJwRUxFbEJRVWtzUjBGQlJ5eERRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0U3VVVGRE1VTXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXcyUWtGQk5rSXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlJXeEdMRTFCUVUwc1MwRkJTeXhIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU40UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeHJRMEZCWjBJc1EwRkJRenRKUVVNM1F5eFBRVUZQTEZkQlFWY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRGRrTXNRMEZCUXp0QlFVVkVMRTFCUVUwc2FVSkJRV2xDTEVkQlFWY3NVVUZCVVN4RFFVRkRPMEZCUlRORExDdERRVUVyUXp0QlFVTXZReXhOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEV0QlFXRXNSVUZCUlN4clFrRkJNRUk3TzBsQlEzUkZMRTFCUVUwc1pVRkJaU3hIUVVFMFFpeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYUVZc1RVRkJUU3hYUVVGWExFZEJRVmtzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4clFrRkJhMElzU1VGQlNTeERRVUZETEUxQlFVRXNaVUZCWlN4aFFVRm1MR1ZCUVdVc2RVSkJRV1lzWlVGQlpTeERRVUZGTEUxQlFVMHNiVU5CUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzSkhMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVUVzWlVGQlpTeGhRVUZtTEdWQlFXVXNkVUpCUVdZc1pVRkJaU3hEUVVGSExFTkJRVU1zUTBGQlF5eHRRMEZCU1N4SFFVRkhMRU5CUVVNN1NVRkRMME1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOMlJpeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2NVSkJRWEZDTEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hSUVVGeFFpeEZRVUZGTEZsQlFXOUNMRWRCUVVjN1NVRkRkRWNzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVWMlFpeE5RVUZOTEV0QlFVc3NSMEZCWVN4RlFVRkZMRU5CUVVNN1NVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUXk5Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMUZCUTNCQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53UXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRla003U1VGRFJDd3dSa0ZCTUVZN1NVRkRNVVlzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdTVUZEYUVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZET1VZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNTMEZCYTBJN1NVRkRMME1zVFVGQlRTeHJRa0ZCYTBJc1IwRkJORUk3VVVGRGJFUXNlVUpCUVdNc1dVRkJXU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMUZCUTJoRUxESkNRVUZsTEZsQlFWa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVU0zUXl3eVFrRkJaU3haUVVGWkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkRPVU1zUTBGQlF6dEpRVVZHTEdkRVFVRm5SRHRKUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGaExHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkROVVFzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMGxCUTNKSExFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNN1FVRkZSRHM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eE5RVUZwUWl4RlFVRkZMRmxCUVc5Q0xFTkJRVU03U1VGRGNFVXNTVUZCU1N4UlFVRm5RaXhEUVVGRE8wbEJRM0pDTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNSVUZCUlR0UlFVTTVReXhOUVVGTkxFVkJRVVVzUjBGQmFVSXNTVUZCU1N4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJFUXNVVUZCVVN4SFFVRkhMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU03UzBGRGVFSTdVMEZCVFR0UlFVTk1MRTFCUVUwc1MwRkJTeXhIUVVGblFpeFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU40UlN4UlFVRlJMRWRCUVVjc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzB0QlEyeERPMGxCUlVRc1RVRkJUU3hIUVVGSExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRrTXNUMEZCVHl4SFFVRkhMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExGZEJRVzFDTzBsQlEyeEVMRkZCUVZFc1YwRkJWeXhGUVVGRk8xRkJRM0pDTEV0QlFVc3NTVUZCU1R0WlFVTlFMRTlCUVU4c1IwRkJSeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVNelF5eExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTldMRXRCUVVzc1MwRkJTeXhEUVVGRE8xRkJRMWdzUzBGQlN5eExRVUZMTzFsQlExSXNUMEZCVHl4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpWRExGRkJRVkU3VVVGRFZqdFpRVU5GTEU5QlFVOHNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTnlRenRCUVVOSUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRVZCUVdkQ096dEpRVU16UXl4TlFVRk5MR05CUVdNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlEzcEZMRWxCUVVrc1RVRkJUU3hIUVVGeFFpeE5RVUZCTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU42UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTnlSQ3hEUVVGRExFTkJRVU1zYlVOQlFVa3NTVUZCU1N4RFFVRkRPMGxCUTFnc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeGpRVUZqTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN1VVRkRkRU1zVFVGQlRTeEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1FpeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFdaV04wYjNKOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdkbVZqZEc5eVRHVnVaM1JvTENCMlpXTjBiM0pFYjNSUWNtOWtkV04wZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3ljN1hHNWNiaThxS2lCVGRHRjBjeUJ2WmlCelpYRjFaVzVqWlhNZ2QybDBhQ0J6Y0dWamFXWnBaV1FnYzNCc2FYUjBaWElnWm5WdVl5d2djbVYwZFhKdWN5QjdJR1p5WlhFc0lITmhiV1ZNWlc1bmRHZ2dmUzVjYmlBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQnpaWEZEYjJ4Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnRhVzVNWlc1bmRHaGNiaUFxSUVCd1lYSmhiU0I3VTNCc2FYUjBaWEpHZFc1amZTQnpjR3hwZEhSbGNseHVJQ29nUUhKbGRIVnliaUI3SUZObGNVTnZiRk4wWVhSeklIMHNJSE5oYldWTVpXNW5kR2c2SUdKdmIyeGxZVzRnZlNCemRHRjBjeUJ2WmlCamIyeDFiVzRnYzJWeGRXVnVZMlZ6WEc0Z0tpOWNibWx0Y0c5eWRDQjdVMlZ4VUdGc1pYUjBaWDBnWm5KdmJTQW5MaTR2YzJWeExYQmhiR1YwZEdWekp6dGNibWx0Y0c5eWRDQjdRVzFwYm05aFkybGtjeXdnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6ZlNCbWNtOXRJQ2N1TGk5aGJXbHViMkZqYVdSekp6dGNibWx0Y0c5eWRDQjdUblZqYkdWdmRHbGtaWE1zSUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwyNTFZMnhsYjNScFpHVnpKenRjYm1sdGNHOXlkQ0I3Vlc1cmJtOTNibE5sY1ZCaGJHVjBkR1Z6ZlNCbWNtOXRJQ2N1TGk5MWJtdHViM2R1Snp0Y2JtbHRjRzl5ZENCM2RTQm1jbTl0SUNkM2RTYzdYRzVwYlhCdmNuUWdlMVZ1YVhSelNHRnVaR3hsY24wZ1puSnZiU0FuTGk0dmRYUnBiSE12ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVwYlhCdmNuUWdLaUJoY3lCaWFXOGdabkp2YlNBbkxpNHZMaTR2YVc1a1pYZ25PMXh1WEc0dktpb2daVzUxYlNCMGVYQmxJSFJ2SUhOcGJYQnNhV1o1SUhObGRIUnBibWNnWENKMWMyVnlMV1p5YVdWdVpHeDVYQ0lnYm05MFlYUnBiMjRnYVdZZ2JtVmpaWE56WVhKNUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1pXNTFiU0JPVDFSQlZFbFBUaUI3WEc0Z0lFWkJVMVJCSUQwZ0oyWmhjM1JoSnl4Y2JpQWdVMFZRUVZKQlZFOVNJRDBnSjNObGNHRnlZWFJ2Y2ljc1hHNGdJRWhGVEUwZ1BTQW5hR1ZzYlNjc1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmxiblZ0SUVGTVVFaEJRa1ZVSUh0Y2JpQWdSRTVCSUQwZ0owUk9RU2NzWEc0Z0lGSk9RU0E5SUNkU1RrRW5MRnh1SUNCUVZDQTlJQ2RRVkNjc1hHNGdJRlZPSUQwZ0oxVk9KeXhjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUdWdWRXMGdWRUZIVXlCN1hHNGdJR0ZzYVdkdVpXUWdQU0FuWVd4cFoyNWxaQ2NzWEc0Z0lHRnNjR2hoWW1WMElEMGdKMkZzY0doaFltVjBKeXhjYmlBZ1lXeHdhR0ZpWlhSVGFYcGxJRDBnSnk1aGJIQm9ZV0psZEZOcGVtVW5MRnh1SUNCaGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUlEMGdKeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5Snl4Y2JpQWdjMlZ3WVhKaGRHOXlJRDBnSjNObGNHRnlZWFJ2Y2ljc1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQlRaWEZEYjJ4VGRHRjBjeUE5SUhzZ1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQnpZVzFsVEdWdVozUm9PaUJpYjI5c1pXRnVJSDFjYm1WNGNHOXlkQ0IwZVhCbElGTndiR2wwZEdWeVJuVnVZeUE5SUNoelpYRTZJSE4wY21sdVp5a2dQVDRnYzNSeWFXNW5XMTA3WEc1bGVIQnZjblFnZEhsd1pTQk5iMjV2YldWeVJuSmxjWE1nUFNCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJ1ZFcxaVpYSWdmVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTjBZWFJ6S0hObGNVTnZiRG9nUkVjdVEyOXNkVzF1TENCdGFXNU1aVzVuZEdnNklHNTFiV0psY2l3Z2MzQnNhWFIwWlhJNklGTndiR2wwZEdWeVJuVnVZeWs2SUZObGNVTnZiRk4wWVhSeklIdGNiaUFnWTI5dWMzUWdabkpsY1RvZ2V5QmJiVG9nYzNSeWFXNW5YVG9nYm5WdFltVnlJSDBnUFNCN2ZUdGNiaUFnYkdWMElITmhiV1ZNWlc1bmRHZ2dQU0IwY25WbE8xeHVJQ0JzWlhRZ1ptbHljM1JNWlc1bmRHZ2dQU0J1ZFd4c08xeHVYRzRnSUdadmNpQW9ZMjl1YzNRZ2MyVnhJRzltSUhObGNVTnZiQzVqWVhSbFoyOXlhV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdiVk5sY1NBOUlITndiR2wwZEdWeUtITmxjU2s3WEc1Y2JpQWdJQ0JwWmlBb1ptbHljM1JNWlc1bmRHZ2dQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lHWnBjbk4wVEdWdVozUm9JRDBnYlZObGNTNXNaVzVuZEdnN1hHNGdJQ0FnWld4elpTQnBaaUFvYlZObGNTNXNaVzVuZEdnZ0lUMDlJR1pwY25OMFRHVnVaM1JvS1Z4dUlDQWdJQ0FnYzJGdFpVeGxibWQwYUNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnYVdZZ0tHMVRaWEV1YkdWdVozUm9JRDRnYldsdVRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHMGdiMllnYlZObGNTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHRJR2x1SUdaeVpYRXBLVnh1SUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnUFNBd08xeHVJQ0FnSUNBZ0lDQm1jbVZ4VzIxZElDczlJREU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQjdabkpsY1RvZ1puSmxjU3dnYzJGdFpVeGxibWQwYURvZ2MyRnRaVXhsYm1kMGFIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J0YjI1dmJXVnlVbVU2SUZKbFowVjRjQ0E5SUM5Y1hGc29YRngzS3lsY1hGMThLRnhjZHlsOEtDMHBMMmM3WEc1Y2JpOHFLaUJUY0d4cGRDQnpaWEYxWlc1alpTQm1iM0lnYzJsdVoyeGxJR05vWVhKaFkzUmxjaUJ0YjI1dmJXVnljeXdnYzNGMVlYSmxJR0p5WVdOclpYUnpJRzExYkhScFkyaGhjaUJ0YjI1dmJXVnlJRzVoYldWeklHOXlJR2RoY0NCemVXMWliMnd1WEc0Z0tpQkFjR0Z5WVcwZ2UyRnVlWDBnYzJWeElHOWlhbVZqZENCM2FYUm9JSE5sY1hWbGJtTmxYRzRnS2lCQWNtVjBkWEp1SUh0emRISnBibWRiWFgwZ1lYSnlZWGtnYjJZZ2JXOXViMjFsY25OY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE53YkdsMGRHVnlRWE5HWVhOMFlTaHpaWEU2SUdGdWVTazZJSE4wY21sdVoxdGRJSHRjYmlBZ2NtVjBkWEp1SUhkMVBGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrK0tITmxjUzUwYjFOMGNtbHVaeWdwTG0xaGRHTm9RV3hzS0cxdmJtOXRaWEpTWlNrcFhHNGdJQ0FnTG0xaGNDZ29iV0U2SUZKbFowVjRjRTFoZEdOb1FYSnlZWGtwSUQwK0lIdGNiaUFnSUNBZ0lHeGxkQ0J0VW1Wek9pQnpkSEpwYm1jN1hHNGdJQ0FnSUNCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCdFlWc3dYVHRjYmlBZ0lDQWdJR2xtSUNodExteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnYlZKbGN5QTlJRzFoV3pGZE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2JWSmxjeUE5SUcwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYlZKbGN6dGNiaUFnSUNCOUtTNTBiMEZ5Y21GNUtDazdYRzU5WEc1Y2JpOHFLaUJIWlhSeklHMWxkR2h2WkNCMGJ5QnpjR3hwZENCelpYRjFaVzVqWlNCaWVTQnpaWEJoY21GMGIzSmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6WlhCaGNtRjBiM0pjYmlBcUlFQndZWEpoYlNCc2FXMXBkRnh1SUNvZ1FISmxkSFZ5YmlCN1UzQnNhWFIwWlhKR2RXNWpmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVM0JzYVhSMFpYSlhhWFJvVTJWd1lYSmhkRzl5S0hObGNHRnlZWFJ2Y2pvZ2MzUnlhVzVuTENCc2FXMXBkRG9nYm5WdFltVnlJSHdnZFc1a1pXWnBibVZrSUQwZ2RXNWtaV1pwYm1Wa0tUb2dVM0JzYVhSMFpYSkdkVzVqSUh0Y2JpQWdjbVYwZFhKdUlDaHpaWEU2SUhOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ6WlhFdWMzQnNhWFFvYzJWd1lYSmhkRzl5TENCc2FXMXBkQ2s3WEc0Z0lIMDdYRzU5WEc1Y2JtTnZibk4wSUdobGJHMVNaVG9nVW1WblJYaHdJRDBnTHloUVJWQlVTVVJGTVh4RVRrRXhmRkpPUVRFcFhGeDdLRnRlZlYwcktYMHZaenRjYm1OdmJuTjBJR2hsYkcxUWNERlNaVG9nVW1WblJYaHdJRDBnTDF4Y1d5aGJYbHhjVzF4Y1hWMHJLVjB2Wnp0Y2JseHVYRzR2S2lvZ1UzQnNhWFJ6SUVobGJHMGdjM1J5YVc1bklIUnZJRzF2Ym05dFpYSnpMQ0JpZFhRZ1pHOWxjeUJ1YjNRZ2NtVndiR0ZqWlNCdGIyNXZiV1Z5SUc1aGJXVnpJSFJ2SUc5MGFHVnlJRzV2ZEdGMGFXOXVJQ2hsTG1jdUlHWnZjaUJTVGtFcExseHVJQ29nVDI1c2VTQm1iM0lnYkdsdVpXRnlJSEJ2YkhsdFpYSnpMQ0JrYjJWeklHNXZkQ0J6Y0d4cGRDQlNUa0VnWm05eUlISnBZbTl6WlNCaGJtUWdjR2h2YzNCb1lYUmxJRzF2Ym05dFpYSnpMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlRiM1Z5WTJVZ2MzUnlhVzVuSUc5bUlFaEZURTBnYm05MFlYUnBiMjVjYmlBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjF0ZGZWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzNCc2FYUjBaWEpCYzBobGJHMG9jMlZ4T2lCaGJua3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lHaGxiRzFTWlM1c1lYTjBTVzVrWlhnZ1BTQXdPMXh1SUNCamIyNXpkQ0JsWVRvZ1VtVm5SWGh3UlhobFkwRnljbUY1SUh3Z2JuVnNiQ0E5SUdobGJHMVNaUzVsZUdWaktITmxjUzUwYjFOMGNtbHVaeWdwS1R0Y2JpQWdZMjl1YzNRZ2FXNVRaWEU2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0JsWVNBL0lHVmhXekpkSURvZ2JuVnNiRHRjYmx4dUlDQmpiMjV6ZENCdGJWQnZjM1JRY205alpYTnpJRDBnS0cxdE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ1BUNGdlMXh1SUNBZ0lHaGxiRzFRY0RGU1pTNXNZWE4wU1c1a1pYZ2dQU0F3TzF4dUlDQWdJR052Ym5OMElIQndNVTBnUFNCb1pXeHRVSEF4VW1VdVpYaGxZeWh0YlNrN1hHNGdJQ0FnYVdZZ0tIQndNVTBnSmlZZ2NIQXhUUzVzWlc1bmRHZ2dQajBnTWlsY2JpQWdJQ0FnSUhKbGRIVnliaUJ3Y0RGTld6RmRPMXh1SUNBZ0lHVnNjMlZjYmlBZ0lDQWdJSEpsZEhWeWJpQnRiVHRjYmlBZ2ZUdGNibHh1SUNCamIyNXpkQ0J0YlV4cGMzUTZJSE4wY21sdVoxdGRJRDBnYVc1VFpYRWdQeUJwYmxObGNTNXpjR3hwZENnbkxpY3BJRG9nVzEwN1hHNGdJSEpsZEhWeWJpQnRiVXhwYzNRdWJXRndLRzF0VUc5emRGQnliMk5sYzNNcE8xeHVmVnh1WEc0dktpb2dSMlYwSUhOd2JHbDBkR1Z5SUcxbGRHaHZaQ0IwYnlCemNHeHBkQ0J6WlhGMVpXNWpaWE1nZEc4Z2JXOXViMjFsY25OY2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjFibWwwYzF4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjR0Z5WVhSdmNseHVJQ29nUUhCaGNtRnRJR3hwYldsMFhHNGdLaUJBY21WMGRYSnVJSHRUY0d4cGRIUmxja1oxYm1OOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSVGNHeHBkSFJsY2loMWJtbDBjem9nYzNSeWFXNW5MQ0J6WlhCaGNtRjBiM0k2SUhOMGNtbHVaeXdnYkdsdGFYUTZJRzUxYldKbGNpQjhJSFZ1WkdWbWFXNWxaQ0E5SUhWdVpHVm1hVzVsWkNrNklGTndiR2wwZEdWeVJuVnVZeUI3WEc0Z0lHbG1JQ2gxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTG5OMFlYSjBjMWRwZEdnb1RrOVVRVlJKVDA0dVJrRlRWRUVwS1Z4dUlDQWdJSEpsZEhWeWJpQnpjR3hwZEhSbGNrRnpSbUZ6ZEdFN1hHNGdJR1ZzYzJVZ2FXWWdLSFZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJcEtWeHVJQ0FnSUhKbGRIVnliaUJuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUdWc2MyVWdhV1lnS0hWdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNUlSVXhOS1NsY2JpQWdJQ0J5WlhSMWNtNGdjM0JzYVhSMFpYSkJjMGhsYkcwN1hHNGdJR1ZzYzJWY2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRlZ1Wlhod1pXTjBaV1FnZFc1cGRITWdKSHQxYm1sMGMzMGdMbUFwTzF4dVhHNGdJQzh2SUZSUFJFODZJRk53YkdsMGRHVnlJR1p2Y2lCSVJVeE5YRzU5WEc1Y2JpOHFLaUJIWlc1bGNtRjBaU0J6Y0d4cGRIUmxjaUJtZFc1amRHbHZiaUJtYjNJZ2MyVnhkV1Z1WTJVZ1kyOXNkVzF1WEc0Z0tpQkFjR0Z5WVcwZ2UwUkhMa052YkhWdGJuMGdZMjlzWEc0Z0tpQkFjbVYwZFhKdUlIdFRjR3hwZEhSbGNrWjFibU45SUZOd2JHbDBkR1Z5SUdaMWJtTjBhVzl1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5aWFJUY0d4cGRIUmxja1p2Y2tOdmJIVnRiaWhqYjJ3NklFUkhMa052YkhWdGJpazZJRk53YkdsMGRHVnlSblZ1WXlCN1hHNGdJR2xtSUNoamIyd3VjMlZ0Vkhsd1pTQWhQVDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZLVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1IyVjBJSE53YkdsMGRHVnlJR1p2Y2lCelpXMVVlWEJsSUZ3aUpIdEVSeTVUUlUxVVdWQkZMazFCUTFKUFRVOU1SVU5WVEVWOVhDSWdiMjVzZVM1Z0tUdGNibHh1SUNCamIyNXpkQ0IxYm1sMGN5QTlJR052YkM1blpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5azdYRzRnSUdOdmJuTjBJSE5sY0dGeVlYUnZjaUE5SUdOdmJDNW5aWFJVWVdjb1ZFRkhVeTV6WlhCaGNtRjBiM0lwTzF4dUlDQnlaWFIxY200Z1oyVjBVM0JzYVhSMFpYSW9kVzVwZEhNc0lITmxjR0Z5WVhSdmNpazdYRzU5WEc1Y2JtTnZibk4wSUd4dmJtZE5iMjV2YldWeVVHRnlkRkpsT2lCU1pXZEZlSEFnUFNBdktGeGNkeXNwTDJjN1hHNWNiaThxS2lCRGIyNTJaWEowSUd4dmJtY2diVzl1YjIxbGNpQnVZVzFsY3lCMGJ5QnphRzl5ZENCdmJtVnpJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYlc5dWIyMWxjbFJ2VTJodmNuUW9ZVzFwYm04NklITjBjbWx1Wnl3Z2JXRjRUR1Z1WjNSb1QyWk5iMjV2YldWeU9pQnVkVzFpWlhJcE9pQnpkSEpwYm1jZ2UxeHVJQ0JqYjI1emRDQnphRzl5ZEVGdGFXNXZUV0YwWTJnNklGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrZ2ZDQnVkV3hzSUQwZ1lXMXBibTh1YldGMFkyZ29iRzl1WjAxdmJtOXRaWEpRWVhKMFVtVXBPMXh1SUNCamIyNXpkQ0J1WldWa1FXUmtSRzkwY3pvZ1ltOXZiR1ZoYmlBOUlHRnRhVzV2TG14bGJtZDBhQ0ErSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lCOGZDQW9jMmh2Y25SQmJXbHViMDFoZEdOb1B5NXNaVzVuZEdnZ1B6OGdNQ2tnUGlBeE8xeHVJQ0JqYjI1emRDQnphRzl5ZEVGdGFXNXZJRDBnYzJodmNuUkJiV2x1YjAxaGRHTm9QeTViTUYwZ1B6OGdKeUFuTzF4dUlDQnlaWFIxY200Z0lXNWxaV1JCWkdSRWIzUnpJRDhnYzJodmNuUkJiV2x1YnlBNklITm9iM0owUVcxcGJtOHVjM1ZpYzNSeWFXNW5LREFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrZ0t5QW40b0NtSnp0Y2JuMWNibHh1THlvcUlFTmhiR04xYkdGMFpTQnphVzFwYkdGeWFYUjVJR2x1SUdOMWNuSmxiblFnYzJWeGRXVnVZMlVnWVc1a0lHRnNjR2hoWW1WMExseHVJQ29nUUhCaGNtRnRJSHROYjI1dmJXVnlSbkpsY1hOOUlHWnlaWEZjYmlBcUlFQndZWEpoYlNCN1UyVjBQSE4wY21sdVp6NTlJR0ZzY0doaFltVjBYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWjJGd1UzbHRZbTlzWEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFTnZjMmx1WlNCemFXMXBiR0Z5YVhSNVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSQmJIQm9ZV0psZEZOcGJXbHNZWEpwZEhrb1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQmhiSEJvWVdKbGREb2dVMlYwUEhOMGNtbHVaejRzSUdkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUQwZ0p5MG5LVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYTJWNWN5QTlJRzVsZHlCVFpYUThjM1J5YVc1blBpaGJMaTR1Ym1WM0lGTmxkQ2hQWW1wbFkzUXVhMlY1Y3lobWNtVnhLU2tzSUM0dUxtRnNjR2hoWW1WMFhTazdYRzRnSUd0bGVYTXVaR1ZzWlhSbEtHZGhjRk41YldKdmJDazdYRzVjYmlBZ1kyOXVjM1FnWm5KbGNVRTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR052Ym5OMElHRnNjR2hoWW1WMFFUb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdabTl5SUNoamIyNXpkQ0J0SUc5bUlHdGxlWE1wSUh0Y2JpQWdJQ0JtY21WeFFTNXdkWE5vS0cwZ2FXNGdabkpsY1NBL0lHWnlaWEZiYlYwZ09pQXdLVHRjYmlBZ0lDQmhiSEJvWVdKbGRFRXVjSFZ6YUNoaGJIQm9ZV0psZEM1b1lYTW9iU2tnUHlBeElEb2dNQ2s3WEc0Z0lIMWNiaUFnTHlvZ1ZHaGxjbVVnZDJWeVpTQmhJR1psZHlCcFpHVmhjem9nWTJocExYTnhkV0Z5WldRc0lIQmxZWEp6YjI0Z1kyOXljbVZzWVhScGIyNGdLSFpoY21saGJtTmxQeWtzSUhOallXeGhjaUJ3Y205a2RXTjBJQ292WEc0Z0lHTnZibk4wSUdaeVpYRldPaUJXWldOMGIzSWdQU0J1WlhjZ1ZtVmpkRzl5S0daeVpYRkJLVHRjYmlBZ1kyOXVjM1FnWVd4d2FHRmlaWFJXT2lCV1pXTjBiM0lnUFNCdVpYY2dWbVZqZEc5eUtHRnNjR2hoWW1WMFFTazdYRzRnSUhKbGRIVnliaUIyWldOMGIzSkViM1JRY205a2RXTjBLR1p5WlhGV0xDQmhiSEJvWVdKbGRGWXBJQzhnS0habFkzUnZja3hsYm1kMGFDaG1jbVZ4VmlrZ0tpQjJaV04wYjNKTVpXNW5kR2dvWVd4d2FHRmlaWFJXS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrWlhSbFkzUkJiSEJvWVdKbGRDaHpkR0YwY3pvZ1UyVnhRMjlzVTNSaGRITXBPaUJ6ZEhKcGJtY2dlMXh1SUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE02SUZ0emRISnBibWNzSUZObGREeHpkSEpwYm1jK1hWdGRJRDBnVzF4dUlDQWdJRnRCVEZCSVFVSkZWQzVRVkN3Z1ZXNXBkSE5JWVc1a2JHVnlMbEJsY0hScFpHVkdZWE4wWVVGc2NHaGhZbVYwWFN4Y2JpQWdJQ0JiUVV4UVNFRkNSVlF1UkU1QkxDQlZibWwwYzBoaGJtUnNaWEl1Ukc1aFJtRnpkR0ZCYkhCb1lXSmxkRjBzWEc0Z0lDQWdXMEZNVUVoQlFrVlVMbEpPUVN3Z1ZXNXBkSE5JWVc1a2JHVnlMbEp1WVVaaGMzUmhRV3h3YUdGaVpYUmRMRnh1SUNCZE8xeHVYRzRnSUM4dklFTmhiR04xYkdGMFpTQnNhV3RsYkdsb2IyOWtjeUJtYjNJZ1lXeHdhR0ZpWlhSZlkyRnVaR2xrWVhSbGMxeHVJQ0JqYjI1emRDQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzA2SUc1MWJXSmxjbHRkSUQwZ1lXeHdhR0ZpWlhSRFlXNWthV1JoZEdWekxtMWhjQ2hjYmlBZ0lDQW9ZeWtnUFQ0Z1oyVjBRV3h3YUdGaVpYUlRhVzFwYkdGeWFYUjVLSE4wWVhSekxtWnlaWEVzSUdOYk1WMHBLVHRjYmlBZ1kyOXVjM1FnYldGNFEyOXpJRDBnVFdGMGFDNXRZWGdvTGk0dVlXeHdhR0ZpWlhSRFlXNWthV1JoZEdWelUybHRLVHRjYmlBZ1kyOXVjM1FnWVd4d2FHRmlaWFFnUFNCdFlYaERiM01nUGlBd0xqWTFJRDhnWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VzJGc2NHaGhZbVYwUTJGdVpHbGtZWFJsYzFOcGJTNXBibVJsZUU5bUtHMWhlRU52Y3lsZFd6QmRJRG9nSjFWT0p6dGNiaUFnY21WMGRYSnVJR0ZzY0doaFltVjBPMXh1ZlZ4dVhHNHZLaW9nVTJWc1pXTjBjeUJoSUhOMWFYUmhZbXhsSUhCaGJHVjBkR1VnWW1GelpXUWdiMjRnWTI5c2RXMXVJR1JoZEdGY2JpQXFJRUJ3WVhKaGJTQjdSRWN1UTI5c2RXMXVmU0J6WlhGRGIyd2dRMjlzZFcxdUlIUnZJR3h2YjJzZ1ptOXlJR0VnY0dGc1pYUjBaVnh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUNCdGFXNU1aVzVuZEdnZ2JXbHVhVzExYlNCc1pXNW5kR2dnYjJZZ2MyVnhkV1Z1WTJVZ2RHOGdaR1YwWldOMElIQmhiR1YwZEdVZ0tHVnRjSFI1SUhOMGNtbHVaM01nWVhKbElHRnNiRzkzWldRcFhHNGdLaUJBY21WMGRYSnVJSHRUWlhGUVlXeGxkSFJsZlNCUVlXeGxkSFJsSUdOdmNuSmxjM0J2Ym1ScGJtY2dkRzhnZEdobElHRnNjR2hoWW1WMElHOW1JSFJvWlNCelpYRjFaVzVqWlhNZ2FXNGdkR2hsSUdOdmJIVnRibHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHbGphMVZ3VUdGc1pYUjBaU2h6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnYldsdVRHVnVaM1JvT2lCdWRXMWlaWElnUFNBMUtUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lHeGxkQ0JoYkhCb1lXSmxkRG9nYzNSeWFXNW5PMXh1SUNCcFppQW9jMlZ4UTI5c0xuTmxiVlI1Y0dVZ1BUMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktTQjdYRzRnSUNBZ1kyOXVjM1FnZFdnNklGVnVhWFJ6U0dGdVpHeGxjaUE5SUc1bGR5QlZibWwwYzBoaGJtUnNaWElvYzJWeFEyOXNLVHRjYmlBZ0lDQmhiSEJvWVdKbGRDQTlJSFZvTG1Gc2NHaGhZbVYwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdOdmJuTjBJSE4wWVhSek9pQlRaWEZEYjJ4VGRHRjBjeUE5SUdkbGRGTjBZWFJ6S0hObGNVTnZiQ3dnYldsdVRHVnVaM1JvTENCemNHeHBkSFJsY2tGelJtRnpkR0VwTzF4dUlDQWdJR0ZzY0doaFltVjBJRDBnWkdWMFpXTjBRV3h3YUdGaVpYUW9jM1JoZEhNcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2NtVnpJRDBnWjJWMFVHRnNaWFIwWlVKNVZIbHdaU2hoYkhCb1lXSmxkQ2s3WEc0Z0lISmxkSFZ5YmlCeVpYTTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCblpYUlFZV3hsZEhSbFFubFVlWEJsS0hCaGJHVjBkR1ZVZVhCbE9pQnpkSEpwYm1jcE9pQmlhVzh1VTJWeFVHRnNaWFIwWlNCN1hHNGdJSE4zYVhSamFDQW9jR0ZzWlhSMFpWUjVjR1VwSUh0Y2JpQWdZMkZ6WlNBblVGUW5PbHh1SUNBZ0lISmxkSFZ5YmlCaWFXOHVRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lHTmhjMlVnSjA1VUp6cGNiaUFnWTJGelpTQW5SRTVCSnpwY2JpQWdZMkZ6WlNBblVrNUJKenBjYmlBZ0lDQnlaWFIxY200Z1ltbHZMazUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE11UTJoeWIyMWhkRzluY21GdE8xeHVJQ0FnSUM4dklHOTBhR1Z5WEc0Z0lHUmxabUYxYkhRNlhHNGdJQ0FnY21WMGRYSnVJR0pwYnk1VmJtdHViM2R1VTJWeFVHRnNaWFIwWlhNdVEyOXNiM0k3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCcFkydFZjRk5sY1VOdmJDaGtaam9nUkVjdVJHRjBZVVp5WVcxbEtUb2dSRWN1UTI5c2RXMXVJSHdnYm5Wc2JDQjdYRzRnSUdOdmJuTjBJSE5sYlZSNWNHVkRiMnhNYVhOMElEMGdaR1l1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1ZCYkd3b1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGS1R0Y2JpQWdiR1YwSUhKbGMwTnZiRG9nUkVjdVEyOXNkVzF1SUh3Z2JuVnNiQ0E5SUhObGJWUjVjR1ZEYjJ4TWFYTjBMbVpwYm1Rb0tHTnZiQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSFZ1YVhSeklEMGdZMjlzTG1kbGRGUmhaeWhFUnk1VVFVZFRMbFZPU1ZSVEtUdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRITWdQeUIxYm1sMGN5NXBibVJsZUU5bUtDZE5VMEVuS1NBaFBUMGdMVEVnT2lCbVlXeHpaVHRjYmlBZ2ZTa2dQejhnYm5Wc2JEdGNiaUFnYVdZZ0tDRnlaWE5EYjJ3Z0ppWWdjMlZ0Vkhsd1pVTnZiRXhwYzNRdWJHVnVaM1JvSUQ0Z01DbGNiaUFnSUNCeVpYTkRiMndnUFNCelpXMVVlWEJsUTI5c1RHbHpkRnN3WFR0Y2JpQWdjbVYwZFhKdUlISmxjME52YkR0Y2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBnZXRTcGxpdHRlckZvckNvbHVtbiwgZ2V0U3RhdHMgfSBmcm9tICcuL21hY3JvbW9sZWN1bGUnO1xuLyoqIENsYXNzIGZvciBoYW5kbGluZyBjb252ZXJzaW9uIG9mIG5vdGF0aW9uIHN5c3RlbXMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgTm90YXRpb25Db252ZXJ0ZXIgZXh0ZW5kcyBVbml0c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbCkge1xuICAgICAgICBzdXBlcihjb2wpO1xuICAgICAgICB0aGlzLl9zcGxpdHRlciA9IG51bGw7XG4gICAgfVxuICAgIGdldCBzcGxpdHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NwbGl0dGVyID09PSBudWxsKVxuICAgICAgICAgICAgdGhpcy5fc3BsaXR0ZXIgPSBnZXRTcGxpdHRlckZvckNvbHVtbih0aGlzLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdHRlcjtcbiAgICB9XG4gICAgdG9GYXN0YSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLzsgfVxuICAgIHRvU2VwYXJhdG9yKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi87IH1cbiAgICB0b0hlbG0odGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovOyB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIE1hY3JvbW9sZWN1bGUgY29sdW1uIGZyb20gRkFTVEEgdG8gU0VQQVJBVE9SIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yICBBIHNwZWNpZmljIHNlcGFyYXRvciB0byBiZSB1c2VkXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZhc3RhR2FwU3ltYm9sICBHYXAgc3ltYm9sIGluIEZBU1RBLCAnLScgYnkgZGVmYXVsdFxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gICAgICAgIEEgbmV3IGNvbHVtbiBpbiBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKi9cbiAgICBjb252ZXJ0RmFzdGFUb1NlcGFyYXRvcihzZXBhcmF0b3IsIGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgbmV3bHkgY3JlYXRlZCBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmFzdGFQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICBjb25zdCBmYXN0YU1vbm9tZXJzQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGZhc3RhUG9seW1lcik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZhc3RhTW9ub21lcnNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChmYXN0YU1vbm9tZXJzQXJyYXlbaV0gPT09IGZhc3RhR2FwU3ltYm9sKVxuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXlbaV0gPSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFzdGFNb25vbWVyc0FycmF5LmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLywgc2VwYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB3cmFwcGVyIHN0cmluZ3MgZm9yIEhFTE0sIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiBtYWNyb21vbGVjdWxlIChwZXB0aWRlLCBETkEsIFJOQSlcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBcnJheSBvZiB3cmFwcGVyc1xuICAgICAqL1xuICAgIGdldEhlbG1XcmFwcGVycygpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gKHRoaXMuaXNEbmEoKSkgPyAnRE5BMXsnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1JOQTF7JyA6XG4gICAgICAgICAgICAgICAgKHRoaXMuaXNQZXB0aWRlKCkpID8gJ1BFUFRJREUxeycgOlxuICAgICAgICAgICAgICAgICAgICAnVW5rbm93bic7IC8vIHRoaXMgY2FzZSBzaG91bGQgYmUgaGFuZGxlZCBhcyBleGNlcHRpb25hbFxuICAgICAgICBpZiAocHJlZml4ID09PSAnVW5rbm93bicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05laXRoZXIgcGVwdGlkZSwgbm9yIG51Y2xlb3RpZGUnKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9ICd9JCQkJztcbiAgICAgICAgY29uc3QgbGVmdFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpKSA/ICdEKCcgOlxuICAgICAgICAgICAgKHRoaXMuaXNSbmEoKSkgPyAnUignIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIGNvbnN0IHJpZ2h0V3JhcHBlciA9ICh0aGlzLmlzRG5hKCkgfHwgdGhpcy5pc1JuYSgpKSA/ICcpUCcgOiAnJzsgLy8gbm8gd3JhcHBlciBmb3IgcGVwdGlkZXNcbiAgICAgICAgcmV0dXJuIFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdO1xuICAgIH1cbiAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiBmb3IgY29udmVydGluZyBzdHJpbmdzIHRvIEhFTE1cbiAgICBjb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc291cmNlUG9seW1lcik7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJIZWxtQXJyYXkgPSBtb25vbWVyQXJyYXkubWFwKChtbSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1tID09PSBzb3VyY2VHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE07XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xlZnRXcmFwcGVyfSR7bW19JHtyaWdodFdyYXBwZXJ9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHttb25vbWVySGVsbUFycmF5LmpvaW4oJy4nKX0ke3Bvc3RmaXh9YDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIHN0cmluZyB3aXRoIFNFUEFSQVRPUi9GQVNUQSBub3RhdGlvbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlUG9seW1lciAgQSBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBzb3VyY2VHYXBTeW1ib2wgIEFuIG9wdGlvbmFsIGdhcCBzeW1ib2wsIHNldCB0b1xuICAgICAqIGRlZmF1bHQgdmFsdWVzICgnLScgZm9yIEZBU1RBIGFuZCAnJyBmb3IgU0VQQVJBVE9SKSB1bmxlc3Mgc3BlY2lmaWVkXG4gICAgICogQHJldHVybiB7c3RyaW5nfSAgVGhlIHRhcmdldCBIRUxNIHN0cmluZ1xuICAgICAqL1xuICAgIGNvbnZlcnRTdHJpbmdUb0hlbG0oc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgY29sdW1uIHRvIEhFTE1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIGNvbnZlcnRUb0hlbG0oc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBTRVBBUkFUT1IgY29sdW1uIHRvIEZBU1RBIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGZhc3RhR2FwU3ltYm9sIE9wdGlvbmFsIGdhcCBzeW1ib2wgZm9yIEZBU1RBXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnRTZXBhcmF0b3JUb0Zhc3RhKGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvclBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBzZXBhcmF0b3JzXG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JJdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihzZXBhcmF0b3JQb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXBhcmF0b3JJdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHNlcGFyYXRvckl0ZW1zQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGZhc3RhR2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqICBDb252ZXJ0IEhFTE0gY29sdW1uIHRvIEZBU1RBL1NFUEFSQVRPUlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndE5vdGF0aW9uICAgIFRhcmdldCBub3RhdGlvbjogRkFTVEEgb3IgU0VQQVJBVE9SXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndFNlcGFyYXRvciAgIE9wdGlvbmFsIHRhcmdldCBzZXBhcmF0b3IgKGZvciBIRUxNIC0+XG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RHYXBTeW1ib2wgICBPcHRpb25hbCB0YXJnZXQgZ2FwIHN5bWJvbFxuICAgICAqIFNFUEFSQVRPUilcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59IENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gJycsIHRndEdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBjb250YWluIGNhbGxzIG9mIGlzRG5hKCkgYW5kIGlzUm5hKCksIGZvclxuICAgICAgICAvLyBzb3VyY2UgaGVsbSBjb2x1bW5zIG1heSBjb250YWluIFJOQSwgRE5BIGFuZCBQVCBhY3Jvc3MgZGlmZmVyZW50IHJvd3NcbiAgICAgICAgaWYgKHRndEdhcFN5bWJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGd0R2FwU3ltYm9sID0gKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpID9cbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgPT09ICcnKVxuICAgICAgICAgICAgdGd0U2VwYXJhdG9yID0gdGhpcy5zZXBhcmF0b3I7XG4gICAgICAgIGNvbnN0IGhlbG1XcmFwcGVyc1JlID0gLyhSXFwofERcXCh8XFwpfFApL2c7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKHRndE5vdGF0aW9uKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWxtUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgLy8gd2UgY2Fubm90IHVzZSBpc0RuYSgpIG9yIGlzUm5hKCkgYmVjYXVzZSBzb3VyY2UgaGVsbSBjb2x1bW5zIGNhblxuICAgICAgICAgICAgLy8gY29udGFpbiBETkEsIFJOQSBhbmQgUFQgaW4gZGlmZmVyZW50IGNlbGxzLCBzbyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAgICAgICAgLy8gdGFncyBjYW5ub3QgYmUgc2V0IGZvciB0aGUgd2hvbGUgY29sdW1uXG4gICAgICAgICAgICBjb25zdCBpc051Y2xlb3RpZGUgPSBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdETkEnKSB8fCBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdSTkEnKTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBoZWxtc1xuICAgICAgICAgICAgY29uc3QgaGVsbUl0ZW1zQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGhlbG1Qb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IHRndE1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVsbUl0ZW1zQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IGhlbG1JdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc051Y2xlb3RpZGUpXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoaGVsbVdyYXBwZXJzUmUsICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PT0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSkge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2godGd0R2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSAmJiBpdGVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2Ugb2YgYSBtdWx0aS1jaGFyYWN0ZXIgbW9ub21lciBjb252ZXJ0ZWQgdG8gRkFTVEFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGd0TW9ub21lcnNBcnJheS5qb2luKHRndFNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUQUdTLmFsaWduZWQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBnZXRTcGxpdHRlckZvckNvbHVtbihuZXdDb2x1bW4pO1xuICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKG5ld0NvbHVtbiwgNSwgc3BsaXR0ZXIpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLywgYWxpZ25lZCk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIGNvbnZlcnRIZWxtVG9TZXBhcmF0b3IoKSB7XG4gICAgICAgIC8vIFRPRE86IGltcGxlbWVudGF0aW9yZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmV3Q29sdW1uKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICB9XG4gICAgLyoqIERpc3BhdGNoZXIgbWV0aG9kIGZvciBub3RhdGlvbiBjb252ZXJzaW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0Z3ROb3RhdGlvbiAgIE5vdGF0aW9uIHdlIHdhbnQgdG8gY29udmVydCB0b1xuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0U2VwYXJhdG9yICAgUG9zc2libGUgc2VwYXJhdG9yXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgICAgICAgICBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydCh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gbnVsbCkge1xuICAgICAgICAvLyBwb3NzaWJsZSBleGNlcHRpb25zXG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09PSB0Z3ROb3RhdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IG5vdGF0aW9uIGlzIGludmFsaWQnKTtcbiAgICAgICAgaWYgKHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IHNlcGFyYXRvciBpcyBub3Qgc3BlY2lmaWVkJyk7XG4gICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RmFzdGFUb1NlcGFyYXRvcih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICBlbHNlIGlmICgodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSAmJiB0aGlzLnRvSGVsbSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtKCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNTZXBhcmF0b3IoKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFNlcGFyYXRvclRvRmFzdGEoKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSAvLyB0aGUgY2FzZSBvZiBIRUxNXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbik7XG4gICAgICAgIGVsc2UgLy8gdGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvcik7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYm05MFlYUnBiMjR0WTI5dWRtVnlkR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVV0QkxFOUJRVThzUlVGQlF5eFpRVUZaTEVWQlFVTXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVU0zUXl4UFFVRlBMRVZCUVVNc2IwSkJRVzlDTEVWQlFVVXNVVUZCVVN4RlFVRTBReXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlRGSExHbEdRVUZwUmp0QlFVTnFSaXhOUVVGTkxFOUJRVThzYVVKQlFXdENMRk5CUVZFc1dVRkJXVHRKUVRCUWFrUXNXVUZCYlVJc1IwRkJZenRSUVVNdlFpeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRXhVRXdzWTBGQlV5eEhRVUYzUWl4SlFVRkpMRU5CUVVNN1NVRXlVRGxETEVOQlFVTTdTVUY2VUVRc1NVRkJZeXhSUVVGUk8xRkJRM0JDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhKUVVGSk8xbEJRM3BDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0pFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVMHNUMEZCVHl4RFFVRkRMR05CUVhkQ0xFbEJRV0VzVDBGQlR5eGpRVUZqTEdsRFFVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVY0Uml4WFFVRlhMRU5CUVVNc1kwRkJkMElzU1VGQllTeFBRVUZQTEdOQlFXTXNlVU5CUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJXaEhMRTFCUVUwc1EwRkJReXhqUVVGM1FpeEpRVUZoTEU5QlFVOHNZMEZCWXl3clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTjBZN096czdPenRQUVUxSE8wbEJRMHNzZFVKQlFYVkNMRU5CUVVNc1UwRkJhVUlzUlVGQlJTeHBRa0ZCWjBNc1NVRkJTVHRSUVVOeVJpeEpRVUZKTEdOQlFXTXNTMEZCU3l4SlFVRkpPMWxCUTNwQ0xHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRmVrTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzYzBOQlFXOUNMRU5CUVVNN1VVRkRlRVFzYzBSQlFYTkVPMUZCUTNSRUxGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRlhMRVZCUVVVc1JVRkJSVHRaUVVNM1FpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTXhReXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZEZGtRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGJFUXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4alFVRmpPMjlDUVVNeFF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zVTBGQlV5eERRVUZETzJGQlEzcEZPMWxCUTBRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE5VTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hUUVVGVExFTkJRVU1zVFVGQlRTeHRRMEZCYVVJc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE5VTXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NaVUZCWlR0UlFVTnlRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03YjBKQlEyaERMRk5CUVZNc1EwRkJReXhEUVVGRExEWkRRVUUyUXp0UlFVVTVSQ3hKUVVGSkxFMUJRVTBzUzBGQlN5eFRRVUZUTzFsQlEzUkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRSUVVWeVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRka0lzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRla01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXd3UWtGQk1FSTdVVUZEZUVRc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNNRUpCUVRCQ08xRkJRek5HTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hEUVVGRE8wbEJSVVFzYlVSQlFXMUVPMGxCUXpORExHMUNRVUZ0UWl4RFFVTjZRaXhoUVVGeFFpeEZRVU55UWl4bFFVRjFRaXhGUVVOMlFpeE5RVUZqTEVWQlEyUXNWMEZCYlVJc1JVRkRia0lzV1VGQmIwSXNSVUZEY0VJc1QwRkJaVHRSUVVWbUxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRGJFUXNUVUZCVFN4blFrRkJaMElzUjBGQllTeFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVU3V1VGRGFrVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1pVRkJaVHRuUWtGRGVFSXNUMEZCVHl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RFFVRkRPenRuUWtGRmFFUXNUMEZCVHl4SFFVRkhMRmRCUVZjc1IwRkJSeXhGUVVGRkxFZEJRVWNzV1VGQldTeEZRVUZGTEVOQlFVTTdVVUZEYUVRc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVkQlFVY3NUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU0xUkN4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5KTEcxQ1FVRnRRaXhEUVVONFFpeGhRVUZ4UWl4RlFVTnlRaXhyUWtGQmFVTXNTVUZCU1R0UlFVVnlReXhKUVVGSkxHVkJRV1VzUzBGQlN5eEpRVUZKTzFsQlF6RkNMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRSUVVNMVJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsSExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5MTEdGQlFXRXNRMEZCUXl4clFrRkJhVU1zU1VGQlNUdFJRVU42UkN4SlFVRkpMR1ZCUVdVc1MwRkJTeXhKUVVGSk8xbEJRekZDTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZGTVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0UlFVVTFSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N3MFFrRkJaU3hEUVVGRE8xRkJRMjVFTEhkRFFVRjNRenRSUVVONFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRNME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zWVVGQllTeEZRVUZGTEdWQlFXZENMRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMMGNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4MVFrRkJkVUlzUTBGQlF5eHBRa0ZCWjBNc1NVRkJTVHRSUVVOc1JTeEpRVUZKTEdOQlFXTXNTMEZCU3l4SlFVRkpPMWxCUTNwQ0xHTkJRV01zUjBGQlJ5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUzBGQlN5eERRVUZETzFGQlJUZEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTERoQ1FVRm5RaXhEUVVGRE8xRkJRM0JFTEhkRFFVRjNRenRSUVVONFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU01UXl4elEwRkJjME03V1VGRGRFTXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdXVUZETlVRc1RVRkJUU3hyUWtGQmEwSXNSMEZCWVN4RlFVRkZMRU5CUVVNN1dVRkRlRU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYmtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzQkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdiMEpCUTNKQ0xHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGbExFTkJRVU1zUTBGQlF6dHBRa0ZETVVNN2NVSkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHR2UWtGRE1VSXNkME5CUVhkRE8yOUNRVU40UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFZEJRVWNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXp0dlFrRkRha01zYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJsQ1FVTnNRenR4UWtGQlRUdHZRa0ZEVEN4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN2FVSkJReTlDTzJGQlEwWTdXVUZEUkN4UFFVRlBMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdPenM3VDBGUlJ6dEpRVU5MTEZkQlFWY3NRMEZEYWtJc1YwRkJiVUlzUlVGRGJrSXNaVUZCZFVJc1JVRkJSU3hGUVVONlFpeGxRVUU0UWl4SlFVRkpPMUZCUld4RExHMUZRVUZ0UlR0UlFVTnVSU3gzUlVGQmQwVTdVVUZEZUVVc1NVRkJTU3haUVVGWkxFdEJRVXNzU1VGQlNTeEZRVUZGTzFsQlEzcENMRmxCUVZrc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCZFVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVRc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU16UXl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNVMEZCVXl4RFFVRkRPMU5CUTJwRU8xRkJSVVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVhWQ0xFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NSVUZCUlR0WlFVTnNSU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0UlFVVm9ReXhOUVVGTkxHTkJRV01zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVONlF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3gzUTBGQmQwTTdVVUZEZUVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUXpkQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJYcERMRzFGUVVGdFJUdFpRVU51UlN4dFJVRkJiVVU3V1VGRGJrVXNNRU5CUVRCRE8xbEJRekZETEUxQlFVMHNXVUZCV1N4SFFVRkhMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVZ3Uml4cFEwRkJhVU03V1VGRGFrTXNUVUZCVFN4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTnNSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRaUVVOMFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzWTBGQll5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRE9VTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTTNRaXhKUVVGSkxGbEJRVms3YjBKQlEyUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWTBGQll5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVNeFF5eEpRVUZKTEVsQlFVa3NTMEZCU3l4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RlFVRkZPMjlDUVVOeVJDeG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQllTeERRVUZETEVOQlFVTTdhVUpCUTNSRE8zRkNRVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGMVFpeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlEyNUZMREpFUVVFeVJEdHZRa0ZETTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRMnBETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRhRU03Y1VKQlFVMDdiMEpCUTB3c1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8ybENRVU0zUWp0aFFVTkdPMWxCUTBRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE4wTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hwUmtGQmFVWTdVVUZEYWtZc1RVRkJUU3hSUVVGUkxFZEJRV2xDTEc5Q1FVRnZRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF5OUVMRTFCUVUwc1MwRkJTeXhIUVVGblFpeFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU55UkN4VFFVRlRMRU5CUVVNc1RVRkJUU3dyUWtGQlpTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVjRReXhQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlU4c2MwSkJRWE5DTzFGQlF6VkNMR2xFUVVGcFJEdFJRVU5xUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxITkRRVUZ2UWl4RFFVRkRPMGxCUXk5RExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5KTEU5QlFVOHNRMEZCUXl4WFFVRnhRaXhGUVVGRkxHVkJRVGhDTEVsQlFVazdVVUZEZEVVc2MwSkJRWE5DTzFGQlEzUkNMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eFhRVUZYTzFsQlF5OUNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzV1VGQldTeExRVUZMTEVsQlFVazdXVUZEZUVRc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eG5RMEZCWjBNc1EwRkJReXhEUVVGRE8xRkJSWEJFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hMUVVGTExFbEJRVWs3V1VGRE1VVXNUMEZCVHl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1lVRkRMME1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF6dFpRVU42UlN4UFFVRlBMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVVzUTBGQlF6dGhRVU42UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJRenRaUVVOMFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUlVGQlJTeERRVUZETzJGQlEyNURMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzYlVKQlFXMUNPMWxCUTNSRkxFOUJRVThzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRoUVVOc1F5eHBSRUZCYVVRN1dVRkRjRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1JVRkJSU3haUVVGaExFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPME5CUzBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaUJFYnlCdWIzUWdZMmhoYm1kbElIUm9aWE5sSUdsdGNHOXlkQ0JzYVc1bGN5QjBieUJ0WVhSamFDQmxlSFJsY201aGJDQnRiMlIxYkdWeklHbHVJSGRsWW5CaFkyc2dZMjl1Wm1sbmRYSmhkR2x2YmlBcUwxeHVhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWEo5SUdaeWIyMGdKeTR2ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVwYlhCdmNuUWdlMmRsZEZOd2JHbDBkR1Z5Um05eVEyOXNkVzF1TENCblpYUlRkR0YwY3l3Z1RrOVVRVlJKVDA0c0lGTmxjVU52YkZOMFlYUnpMQ0JUY0d4cGRIUmxja1oxYm1Nc0lGUkJSMU45SUdaeWIyMGdKeTR2YldGamNtOXRiMnhsWTNWc1pTYzdYRzVjYmk4cUtpQkRiR0Z6Y3lCbWIzSWdhR0Z1Wkd4cGJtY2dZMjl1ZG1WeWMybHZiaUJ2WmlCdWIzUmhkR2x2YmlCemVYTjBaVzF6SUdsdUlFMWhZM0p2Ylc5c1pXTjFiR1VnWTI5c2RXMXVjeUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRTV2ZEdGMGFXOXVRMjl1ZG1WeWRHVnlJR1Y0ZEdWdVpITWdWVzVwZEhOSVlXNWtiR1Z5SUh0Y2JpQWdjSEpwZG1GMFpTQmZjM0JzYVhSMFpYSTZJRk53YkdsMGRHVnlSblZ1WXlCOElHNTFiR3dnUFNCdWRXeHNPMXh1WEc0Z0lIQnliM1JsWTNSbFpDQm5aWFFnYzNCc2FYUjBaWElvS1RvZ1UzQnNhWFIwWlhKR2RXNWpJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NWZjM0JzYVhSMFpYSWdQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQjBhR2x6TGw5emNHeHBkSFJsY2lBOUlHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLSFJvYVhNdVkyOXNkVzF1S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmMzQnNhWFIwWlhJN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2RHOUdZWE4wWVNoMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSaGNtZGxkRTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1R1FWTlVRVHNnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMU5sY0dGeVlYUnZjaWgwWVhKblpYUk9iM1JoZEdsdmJqb2dUazlVUVZSSlQwNHBPaUJpYjI5c1pXRnVJSHNnY21WMGRYSnVJSFJoY21kbGRFNXZkR0YwYVc5dUlEMDlQU0JPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUk3SUgxY2JseHVJQ0J3ZFdKc2FXTWdkRzlJWld4dEtIUmhjbWRsZEU1dmRHRjBhVzl1T2lCT1QxUkJWRWxQVGlrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xraEZURTA3SUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5dWRtVnlkQ0JoSUUxaFkzSnZiVzlzWldOMWJHVWdZMjlzZFcxdUlHWnliMjBnUmtGVFZFRWdkRzhnVTBWUVFWSkJWRTlTSUc1dmRHRjBhVzl1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCelpYQmhjbUYwYjNJZ0lFRWdjM0JsWTJsbWFXTWdjMlZ3WVhKaGRHOXlJSFJ2SUdKbElIVnpaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHWmhjM1JoUjJGd1UzbHRZbTlzSUNCSFlYQWdjM2x0WW05c0lHbHVJRVpCVTFSQkxDQW5MU2NnWW5rZ1pHVm1ZWFZzZEZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUNBZ0lDQWdJQ0JCSUc1bGR5QmpiMngxYlc0Z2FXNGdVMFZRUVZKQlZFOVNJRzV2ZEdGMGFXOXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUkdZWE4wWVZSdlUyVndZWEpoZEc5eUtITmxjR0Z5WVhSdmNqb2djM1J5YVc1bkxDQm1ZWE4wWVVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUh3Z2JuVnNiQ0E5SUc1MWJHd3BPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJR2xtSUNobVlYTjBZVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJR1poYzNSaFIyRndVM2x0WW05c0lEMGdkR2hwY3k1a1pXWmhkV3gwUjJGd1UzbHRZbTlzTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnZEdocGN5NW5aWFJPWlhkRGIyeDFiVzRvVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTS1R0Y2JpQWdJQ0F2THlCaGMzTnBaMjRnZEdobElIWmhiSFZsY3lCMGJ5QjBhR1VnYm1WM2JIa2dZM0psWVhSbFpDQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1poYzNSaFVHOXNlVzFsY2lBOUlIUm9hWE11WTI5c2RXMXVMbWRsZENocFpIZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2lobVlYTjBZVkJ2YkhsdFpYSXBPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGt1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0daaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVZ0cFhTQTlQVDBnWm1GemRHRkhZWEJUZVcxaWIyd3BYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1VzJsZElEMGdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVTNXFiMmx1S0hObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExuTmxjR0Z5WVhSdmNpd2djMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdkM0poY0hCbGNpQnpkSEpwYm1keklHWnZjaUJJUlV4TkxDQmtaWEJsYm1ScGJtY2diMjRnZEdobElIUjVjR1VnYjJZZ2RHaGxYRzRnSUNBcUlHMWhZM0p2Ylc5c1pXTjFiR1VnS0hCbGNIUnBaR1VzSUVST1FTd2dVazVCS1Z4dUlDQWdLbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMGdRWEp5WVhrZ2IyWWdkM0poY0hCbGNuTmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdaMlYwU0dWc2JWZHlZWEJ3WlhKektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRVRrRXhleWNnT2x4dUlDQWdJQ0FnS0hSb2FYTXVhWE5TYm1Fb0tTa2dQeUFuVWs1Qk1Yc25JRHBjYmlBZ0lDQWdJQ0FnS0hSb2FYTXVhWE5RWlhCMGFXUmxLQ2twSUQ4Z0oxQkZVRlJKUkVVeGV5Y2dPbHh1SUNBZ0lDQWdJQ0FnSUNkVmJtdHViM2R1SnpzZ0x5OGdkR2hwY3lCallYTmxJSE5vYjNWc1pDQmlaU0JvWVc1a2JHVmtJR0Z6SUdWNFkyVndkR2x2Ym1Gc1hHNWNiaUFnSUNCcFppQW9jSEpsWm1sNElEMDlQU0FuVlc1cmJtOTNiaWNwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDVsYVhSb1pYSWdjR1Z3ZEdsa1pTd2dibTl5SUc1MVkyeGxiM1JwWkdVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhCdmMzUm1hWGdnUFNBbmZTUWtKQ2M3WEc0Z0lDQWdZMjl1YzNRZ2JHVm1kRmR5WVhCd1pYSWdQU0FvZEdocGN5NXBjMFJ1WVNncEtTQS9JQ2RFS0NjZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVpZ25JRG9nSnljN0lDOHZJRzV2SUhkeVlYQndaWElnWm05eUlIQmxjSFJwWkdWelhHNGdJQ0FnWTI5dWMzUWdjbWxuYUhSWGNtRndjR1Z5SUQwZ0tIUm9hWE11YVhORWJtRW9LU0I4ZkNCMGFHbHpMbWx6VW01aEtDa3BJRDhnSnlsUUp5QTZJQ2NuT3lBdkx5QnVieUIzY21Gd2NHVnlJR1p2Y2lCd1pYQjBhV1JsYzF4dUlDQWdJSEpsZEhWeWJpQmJjSEpsWm1sNExDQnNaV1owVjNKaGNIQmxjaXdnY21sbmFIUlhjbUZ3Y0dWeUxDQndiM04wWm1sNFhUdGNiaUFnZlZ4dVhHNGdJQzh2SUVFZ2FHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQmpiMjUyWlhKMGFXNW5JSE4wY21sdVozTWdkRzhnU0VWTVRWeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvWEc0Z0lDQWdjMjkxY21ObFVHOXNlVzFsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSE52ZFhKalpVZGhjRk41YldKdmJEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeVpXWnBlRG9nYzNSeWFXNW5MRnh1SUNBZ0lHeGxablJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtbG5hSFJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHOXpkR1pwZURvZ2MzUnlhVzVuWEc0Z0lDazZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYlc5dWIyMWxja0Z5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2loemIzVnlZMlZRYjJ4NWJXVnlLVHRjYmlBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5U0dWc2JVRnljbUY1T2lCemRISnBibWRiWFNBOUlHMXZibTl0WlhKQmNuSmhlUzV0WVhBb0tHMXRPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiU0E5UFQwZ2MyOTFjbU5sUjJGd1UzbHRZbTlzS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1U0VWTVRUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0FrZTJ4bFpuUlhjbUZ3Y0dWeWZTUjdiVzE5Skh0eWFXZG9kRmR5WVhCd1pYSjlZRHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdjSEpsWm1sNGZTUjdiVzl1YjIxbGNraGxiRzFCY25KaGVTNXFiMmx1S0NjdUp5bDlKSHR3YjNOMFptbDRmV0E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCaElITjBjbWx1WnlCM2FYUm9JRk5GVUVGU1FWUlBVaTlHUVZOVVFTQnViM1JoZEdsdmJpQjBieUJJUlV4TlhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpiM1Z5WTJWUWIyeDViV1Z5SUNCQklITjBjbWx1WnlCMGJ5QmlaU0JqYjI1MlpYSjBaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkV3hzZlNCemIzVnlZMlZIWVhCVGVXMWliMndnSUVGdUlHOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd3NJSE5sZENCMGIxeHVJQ0FnS2lCa1pXWmhkV3gwSUhaaGJIVmxjeUFvSnkwbklHWnZjaUJHUVZOVVFTQmhibVFnSnljZ1ptOXlJRk5GVUVGU1FWUlBVaWtnZFc1c1pYTnpJSE53WldOcFptbGxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlDQlVhR1VnZEdGeVoyVjBJRWhGVEUwZ2MzUnlhVzVuWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWRtVnlkRk4wY21sdVoxUnZTR1ZzYlNoY2JpQWdJQ0J6YjNWeVkyVlFiMng1YldWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkZ4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2h6YjNWeVkyVkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc0Z0lDQWdZMjl1YzNRZ1czQnlaV1pwZUN3Z2JHVm1kRmR5WVhCd1pYSXNJSEpwWjJoMFYzSmhjSEJsY2l3Z2NHOXpkR1pwZUYwZ1BTQjBhR2x6TG1kbGRFaGxiRzFYY21Gd2NHVnljeWdwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNMQ0J3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnWVNCamIyeDFiVzRnZEc4Z1NFVk1UVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJSE52ZFhKalpVZGhjRk41YldKdmJGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SVWIwaGxiRzBvYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLSE52ZFhKalpVZGhjRk41YldKdmJDQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lITnZkWEpqWlVkaGNGTjViV0p2YkNBOUlIUm9hWE11WkdWbVlYVnNkRWRoY0ZONWJXSnZiRHRjYmx4dUlDQWdJR052Ym5OMElGdHdjbVZtYVhnc0lHeGxablJYY21Gd2NHVnlMQ0J5YVdkb2RGZHlZWEJ3WlhJc0lIQnZjM1JtYVhoZElEMGdkR2hwY3k1blpYUklaV3h0VjNKaGNIQmxjbk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUhSb2FYTXVaMlYwVG1WM1EyOXNkVzF1S0U1UFZFRlVTVTlPTGtoRlRFMHBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpWQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNJU3dnY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUWdVMFZRUVZKQlZFOVNJR052YkhWdGJpQjBieUJHUVZOVVFTQnViM1JoZEdsdmJseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlHWmhjM1JoUjJGd1UzbHRZbTlzSUU5d2RHbHZibUZzSUdkaGNDQnplVzFpYjJ3Z1ptOXlJRVpCVTFSQlhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4wZ0lFTnZiblpsY25SbFpDQmpiMngxYlc1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEZObGNHRnlZWFJ2Y2xSdlJtRnpkR0VvWm1GemRHRkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzS1RvZ1JFY3VRMjlzZFcxdUlIdGNiaUFnSUNCcFppQW9abUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCbVlYTjBZVWRoY0ZONWJXSnZiQ0E5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdkR2hwY3k1blpYUk9aWGREYjJ4MWJXNG9UazlVUVZSSlQwNHVSa0ZUVkVFcE8xeHVJQ0FnSUM4dklHRnpjMmxuYmlCMGFHVWdkbUZzZFdWeklIUnZJSFJvWlNCbGJYQjBlU0JqYjJ4MWJXNWNiaUFnSUNCdVpYZERiMngxYlc0dWFXNXBkQ2dvYVdSNE9pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElITmxjR0Z5WVhSdmNsQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJQzh2SUdsMFpXMXpJR05oYmlCaVpTQnRiMjV2YldWeWN5QnZjaUJ6WlhCaGNtRjBiM0p6WEc0Z0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSkpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpaWEJoY21GMGIzSlFiMng1YldWeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdaaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJWd1lYSmhkRzl5U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVWdHBYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzB1YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29abUZ6ZEdGSFlYQlRlVzFpYjJ3aEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hwZEdWdExteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QjBhR1VnWTJGelpTQnZaaUJoSUcxMWJIUnBMV05vWVhKaFkzUmxjaUJ0YjI1dmJXVnlYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiVzl1YjIxbGNpQTlJQ2RiSnlBcklHbDBaVzBnS3lBblhTYzdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29iVzl1YjIxbGNpazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrdWFtOXBiaWduSnlrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZDBOdmJIVnRianRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lBZ1EyOXVkbVZ5ZENCSVJVeE5JR052YkhWdGJpQjBieUJHUVZOVVFTOVRSVkJCVWtGVVQxSmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJuZEU1dmRHRjBhVzl1SUNBZ0lGUmhjbWRsZENCdWIzUmhkR2x2YmpvZ1JrRlRWRUVnYjNJZ1UwVlFRVkpCVkU5U1hHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWjNSVFpYQmhjbUYwYjNJZ0lDQlBjSFJwYjI1aGJDQjBZWEpuWlhRZ2MyVndZWEpoZEc5eUlDaG1iM0lnU0VWTVRTQXRQbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhSbmRFZGhjRk41YldKdmJDQWdJRTl3ZEdsdmJtRnNJSFJoY21kbGRDQm5ZWEFnYzNsdFltOXNYRzRnSUNBcUlGTkZVRUZTUVZSUFVpbGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZTQkRiMjUyWlhKMFpXUWdZMjlzZFcxdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SSVpXeHRLRnh1SUNBZ0lIUm5kRTV2ZEdGMGFXOXVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RHZDBVMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY2dQU0FuSnl4Y2JpQWdJQ0IwWjNSSFlYQlRlVzFpYjJ3NklITjBjbWx1WnlCOElHNTFiR3dnUFNCdWRXeHNYRzRnSUNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ0x5OGdWR2hwY3lCbWRXNWpkR2x2YmlCdGRYTjBJRzV2ZENCamIyNTBZV2x1SUdOaGJHeHpJRzltSUdselJHNWhLQ2tnWVc1a0lHbHpVbTVoS0Nrc0lHWnZjbHh1SUNBZ0lDOHZJSE52ZFhKalpTQm9aV3h0SUdOdmJIVnRibk1nYldGNUlHTnZiblJoYVc0Z1VrNUJMQ0JFVGtFZ1lXNWtJRkJVSUdGamNtOXpjeUJrYVdabVpYSmxiblFnY205M2MxeHVJQ0FnSUdsbUlDaDBaM1JIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhSbmRFZGhjRk41YldKdmJDQTlJQ2gwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNGdZWE1nVGs5VVFWUkpUMDRwS1NBL1hHNGdJQ0FnSUNBZ0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNBZ1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVUwVlFRVkpCVkU5U08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5SdlUyVndZWEpoZEc5eUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQjBaM1JUWlhCaGNtRjBiM0lnUFQwOUlDY25LVnh1SUNBZ0lDQWdkR2QwVTJWd1lYSmhkRzl5SUQwZ2RHaHBjeTV6WlhCaGNtRjBiM0k3WEc1Y2JpQWdJQ0JqYjI1emRDQm9aV3h0VjNKaGNIQmxjbk5TWlNBOUlDOG9VbHhjS0h4RVhGd29mRnhjS1h4UUtTOW5PMXh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1R0Y2JpQWdJQ0F2THlCaGMzTnBaMjRnZEdobElIWmhiSFZsY3lCMGJ5QjBhR1VnWlcxd2RIa2dZMjlzZFcxdVhHNGdJQ0FnYm1WM1EyOXNkVzF1TG1sdWFYUW9LR2xrZURvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCb1pXeHRVRzlzZVcxbGNpQTlJSFJvYVhNdVkyOXNkVzF1TG1kbGRDaHBaSGdwTzF4dVhHNGdJQ0FnSUNBdkx5QjNaU0JqWVc1dWIzUWdkWE5sSUdselJHNWhLQ2tnYjNJZ2FYTlNibUVvS1NCaVpXTmhkWE5sSUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ1kyRnVYRzRnSUNBZ0lDQXZMeUJqYjI1MFlXbHVJRVJPUVN3Z1VrNUJJR0Z1WkNCUVZDQnBiaUJrYVdabVpYSmxiblFnWTJWc2JITXNJSE52SUhSb1pTQmpiM0p5WlhOd2IyNWthVzVuWEc0Z0lDQWdJQ0F2THlCMFlXZHpJR05oYm01dmRDQmlaU0J6WlhRZ1ptOXlJSFJvWlNCM2FHOXNaU0JqYjJ4MWJXNWNiaUFnSUNBZ0lHTnZibk4wSUdselRuVmpiR1Z2ZEdsa1pTQTlJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0owUk9RU2NwSUh4OElHaGxiRzFRYjJ4NWJXVnlMbk4wWVhKMGMxZHBkR2dvSjFKT1FTY3BPMXh1WEc0Z0lDQWdJQ0F2THlCcGRHVnRjeUJqWVc0Z1ltVWdiVzl1YjIxbGNuTWdiM0lnYUdWc2JYTmNiaUFnSUNBZ0lHTnZibk4wSUdobGJHMUpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaG9aV3h0VUc5c2VXMWxjaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCb1pXeHRTWFJsYlhOQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYVhSbGJTQTlJR2hsYkcxSmRHVnRjMEZ5Y21GNVcybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk9kV05zWlc5MGFXUmxLVnh1SUNBZ0lDQWdJQ0FnSUdsMFpXMGdQU0JwZEdWdExuSmxjR3hoWTJVb2FHVnNiVmR5WVhCd1pYSnpVbVVzSUNjbktUdGNiaUFnSUNBZ0lDQWdhV1lnS0dsMFpXMGdQVDA5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29kR2QwUjJGd1UzbHRZbTlzSVNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1MGIwWmhjM1JoS0hSbmRFNXZkR0YwYVc5dUlHRnpJRTVQVkVGVVNVOU9LU0FtSmlCcGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5SUdOdmJuWmxjblJsWkNCMGJ5QkdRVk5VUVZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxdmJtOXRaWElnUFNBbld5Y2dLeUJwZEdWdElDc2dKMTBuTzF4dUlDQWdJQ0FnSUNBZ0lIUm5kRTF2Ym05dFpYSnpRWEp5WVhrdWNIVnphQ2h0YjI1dmJXVnlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMFozUk5iMjV2YldWeWMwRnljbUY1TG1wdmFXNG9kR2QwVTJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklGUkJSMU11WVd4cFoyNWxaQ0JwY3lCdFlXNWtZWFJ2Y25rZ1ptOXlJR052YkhWdGJuTWdiMllnVGs5VVFWUkpUMDR1UmtGVFZFRWdZVzVrSUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWx4dUlDQWdJR052Ym5OMElITndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1nUFNCblpYUlRjR3hwZEhSbGNrWnZja052YkhWdGJpaHVaWGREYjJ4MWJXNHBPMXh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlHZGxkRk4wWVhSektHNWxkME52YkhWdGJpd2dOU3dnYzNCc2FYUjBaWElwTzF4dUlDQWdJR052Ym5OMElHRnNhV2R1WldRZ1BTQnpkR0YwY3k1ellXMWxUR1Z1WjNSb0lEOGdKMU5GVVM1TlUwRW5JRG9nSjFORlVTYzdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloVVFVZFRMbUZzYVdkdVpXUXNJR0ZzYVdkdVpXUXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkME52YkhWdGJqdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRFaGxiRzFVYjFObGNHRnlZWFJ2Y2lncE9pQkVSeTVEYjJ4MWJXNGdlMXh1SUNBZ0lDOHZJRlJQUkU4NklHbHRjR3hsYldWdWRHRjBhVzl5WlhSMWNtNGdkR2hwY3k1blpYUk9aWGREYjJ4MWJXNG9LVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhST1pYZERiMngxYlc0b1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCRWFYTndZWFJqYUdWeUlHMWxkR2h2WkNCbWIzSWdibTkwWVhScGIyNGdZMjl1ZG1WeWMybHZibHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTA1UFZFRlVTVTlPZlNCMFozUk9iM1JoZEdsdmJpQWdJRTV2ZEdGMGFXOXVJSGRsSUhkaGJuUWdkRzhnWTI5dWRtVnlkQ0IwYjF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlIUm5kRk5sY0dGeVlYUnZjaUFnSUZCdmMzTnBZbXhsSUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRU52Ym5abGNuUmxaQ0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiMjUyWlhKMEtIUm5kRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaXdnZEdkMFUyVndZWEpoZEc5eU9pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ2JuVnNiQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z2NHOXpjMmxpYkdVZ1pYaGpaWEIwYVc5dWMxeHVJQ0FnSUdsbUlDaDBhR2x6TG01dmRHRjBhVzl1SUQwOVBTQjBaM1JPYjNSaGRHbHZiaWxjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25kR2QwSUc1dmRHRjBhVzl1SUdseklHbHVkbUZzYVdRbktUdGNiaUFnSUNCcFppQW9kR2hwY3k1MGIxTmxjR0Z5WVhSdmNpaDBaM1JPYjNSaGRHbHZiaWtnSmlZZ2RHZDBVMlZ3WVhKaGRHOXlJRDA5UFNCdWRXeHNLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZDBaM1FnYzJWd1lYSmhkRzl5SUdseklHNXZkQ0J6Y0dWamFXWnBaV1FuS1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1selJtRnpkR0VvS1NBbUppQjBhR2x6TG5SdlUyVndZWEpoZEc5eUtIUm5kRTV2ZEdGMGFXOXVLU0FtSmlCMFozUlRaWEJoY21GMGIzSWdJVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBSbUZ6ZEdGVWIxTmxjR0Z5WVhSdmNpaDBaM1JUWlhCaGNtRjBiM0lwTzF4dUlDQWdJR1ZzYzJVZ2FXWWdLQ2gwYUdsekxtbHpSbUZ6ZEdFb0tTQjhmQ0IwYUdsekxtbHpVMlZ3WVhKaGRHOXlLQ2twSUNZbUlIUm9hWE11ZEc5SVpXeHRLSFJuZEU1dmRHRjBhVzl1S1NsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzBvS1R0Y2JpQWdJQ0JsYkhObElHbG1JQ2gwYUdsekxtbHpVMlZ3WVhKaGRHOXlLQ2tnSmlZZ2RHaHBjeTUwYjBaaGMzUmhLSFJuZEU1dmRHRjBhVzl1S1NsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVFpYQmhjbUYwYjNKVWIwWmhjM1JoS0NrN1hHNGdJQ0FnWld4elpTQnBaaUFvZEdocGN5NXBjMGhsYkcwb0tTQW1KaUIwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNHBLU0F2THlCMGFHVWdZMkZ6WlNCdlppQklSVXhOWEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyNTJaWEowU0dWc2JTaDBaM1JPYjNSaGRHbHZiaWs3WEc0Z0lDQWdaV3h6WlNBdkx5QjBhR2x6TG1selNHVnNiU2dwSUNZbUlIUm9hWE11ZEc5VFpYQmhjbUYwYjNJb2RHZDBUbTkwWVhScGIyNHBYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBTR1ZzYlNoMFozUk9iM1JoZEdsdmJpd2dkR2QwVTJWd1lYSmhkRzl5SVNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9ZMjlzT2lCRVJ5NURiMngxYlc0cElIdGNiaUFnSUNCemRYQmxjaWhqYjJ3cE8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGdldFNwbGl0dGVyRm9yQ29sdW1uIH0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoc2VxdWVuY2VDb2x1bW4pIHtcbiAgICBjb25zdCBzcGxpdHRlciA9IGdldFNwbGl0dGVyRm9yQ29sdW1uKHNlcXVlbmNlQ29sdW1uKTtcbiAgICBjb25zdCBnZXRDb2wgPSAoaW5kZXgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gY29sdW1uTGlzdFtpbmRleF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7IH07XG4gICAgY29uc3QgY3JlYXRlQ29sID0gKGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ29sID0gcmVzdWx0RGYuY29sdW1ucy5hZGROZXdTdHJpbmcoKGluZGV4ICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbHVtbkxpc3QucHVzaChwb3NpdGlvbkNvbCk7XG4gICAgICAgIHJldHVybiBwb3NpdGlvbkNvbDtcbiAgICB9O1xuICAgIGNvbnN0IGNvbHVtbkxpc3QgPSBbXTtcbiAgICBjb25zdCByb3dDb3VudCA9IHNlcXVlbmNlQ29sdW1uLmxlbmd0aDtcbiAgICBjb25zdCByZXN1bHREZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUocm93Q291bnQpO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dDb3VudDsgKytyb3dJbmRleCkge1xuICAgICAgICBjb25zdCBzZXF1ZW5jZSA9IHNlcXVlbmNlQ29sdW1uLmdldChyb3dJbmRleCk7XG4gICAgICAgIGlmIChzZXF1ZW5jZSA9PSBudWxsKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb25vbWVyTGlzdCA9IHNwbGl0dGVyKHNlcXVlbmNlKTtcbiAgICAgICAgY3VycmVudE1vbm9tZXJMaXN0LmZvckVhY2goKG1vbm9tZXIsIHBvc2l0aW9uSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGdldENvbChwb3NpdGlvbkluZGV4KSB8fCBjcmVhdGVDb2wocG9zaXRpb25JbmRleCk7XG4gICAgICAgICAgICBjb2wuc2V0KHJvd0luZGV4LCBtb25vbWVyIHx8ICctJywgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdERmO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCc2FYUjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpjR3hwZEhSbGNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhSRExFOUJRVThzUlVGQlF5eHZRa0ZCYjBJc1JVRkJReXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhKRUxFMUJRVTBzVlVGQlZTeHhRa0ZCY1VJc1EwRkJReXhqUVVGcFF6dEpRVU55UlN4TlFVRk5MRkZCUVZFc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRKUVVOMFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRXRCUVdFc1JVRkJORUlzUlVGQlJTeFhRVUZETEU5QlFVRXNUVUZCUVN4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExHMURRVUZKTEVsQlFVa3NRMEZCUVN4RlFVRkJMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4TFFVRmhMRVZCUVhGQ0xFVkJRVVU3VVVGRGNrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXhSU3hWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFOUJRVThzVjBGQlZ5eERRVUZETzBsQlEzSkNMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVlVGQlZTeEhRVUYzUWl4RlFVRkZMRU5CUVVNN1NVRkRNME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVVXZReXhMUVVGTExFbEJRVWtzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRWRCUVVjc1VVRkJVU3hGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTzFGQlEzUkVMRTFCUVUwc1VVRkJVU3hIUVVGSExHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeFJRVUZSTEVsQlFVa3NTVUZCU1R0WlFVTnNRaXhUUVVGVE8xRkJSVmdzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZET1VNc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeEZRVUZGTzFsQlEzQkVMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03V1VGRE9VUXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eEpRVUZKTEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNelF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUlVRc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGJFSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1sdGNHOXlkQ0I3WjJWMFUzQnNhWFIwWlhKR2IzSkRiMngxYlc1OUlHWnliMjBnSnk0dmJXRmpjbTl0YjJ4bFkzVnNaU2M3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCemNHeHBkRUZzYVdkdVpXUlRaWEYxWlc1alpYTW9jMlZ4ZFdWdVkyVkRiMngxYlc0NklFUkhMa052YkhWdGJqeHpkSEpwYm1jK0tUb2dSRWN1UkdGMFlVWnlZVzFsSUh0Y2JpQWdZMjl1YzNRZ2MzQnNhWFIwWlhJZ1BTQm5aWFJUY0d4cGRIUmxja1p2Y2tOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkhWdGJpazdYRzRnSUdOdmJuTjBJR2RsZEVOdmJDQTlJQ2hwYm1SbGVEb2diblZ0WW1WeUtUb2dSRWN1UTI5c2RXMXVQSE4wY21sdVp6NGdmQ0J1ZFd4c0lEMCtJR052YkhWdGJreHBjM1JiYVc1a1pYaGRJRDgvSUc1MWJHdzdYRzRnSUdOdmJuTjBJR055WldGMFpVTnZiQ0E5SUNocGJtUmxlRG9nYm5WdFltVnlLVG9nUkVjdVEyOXNkVzF1UEhOMGNtbHVaejRnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEJ2YzJsMGFXOXVRMjlzSUQwZ2NtVnpkV3gwUkdZdVkyOXNkVzF1Y3k1aFpHUk9aWGRUZEhKcGJtY29LR2x1WkdWNElDc2dNU2t1ZEc5VGRISnBibWNvS1NrN1hHNGdJQ0FnWTI5c2RXMXVUR2x6ZEM1d2RYTm9LSEJ2YzJsMGFXOXVRMjlzS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjRzl6YVhScGIyNURiMnc3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnWTI5c2RXMXVUR2x6ZERvZ1JFY3VRMjlzZFcxdVBITjBjbWx1Wno1YlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCeWIzZERiM1Z1ZENBOUlITmxjWFZsYm1ObFEyOXNkVzF1TG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnY21WemRXeDBSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtISnZkME52ZFc1MEtUdGNibHh1SUNCbWIzSWdLR3hsZENCeWIzZEpibVJsZUNBOUlEQTdJSEp2ZDBsdVpHVjRJRHdnY205M1EyOTFiblE3SUNzcmNtOTNTVzVrWlhncElIdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaU0E5SUhObGNYVmxibU5sUTI5c2RXMXVMbWRsZENoeWIzZEpibVJsZUNrN1hHNGdJQ0FnYVdZZ0tITmxjWFZsYm1ObElEMDlJRzUxYkd3cFhHNGdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk5iMjV2YldWeVRHbHpkQ0E5SUhOd2JHbDBkR1Z5S0hObGNYVmxibU5sS1R0Y2JpQWdJQ0JqZFhKeVpXNTBUVzl1YjIxbGNreHBjM1F1Wm05eVJXRmphQ2dvYlc5dWIyMWxjaXdnY0c5emFYUnBiMjVKYm1SbGVDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMjlzSUQwZ1oyVjBRMjlzS0hCdmMybDBhVzl1U1c1a1pYZ3BJSHg4SUdOeVpXRjBaVU52YkNod2IzTnBkR2x2YmtsdVpHVjRLVHRjYmlBZ0lDQWdJR052YkM1elpYUW9jbTkzU1c1a1pYZ3NJRzF2Ym05dFpYSWdmSHdnSnkwbkxDQm1ZV3h6WlNrN1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2NtVnpkV3gwUkdZN1hHNTlYRzRpWFgwPSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBnZXRTdGF0cywgc3BsaXR0ZXJBc0Zhc3RhLCBkZXRlY3RBbHBoYWJldCB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIG5vdGF0aW9uIHVuaXRzIGluIE1hY3JvbW9sZWN1bGUgY29sdW1ucyAqL1xuZXhwb3J0IGNsYXNzIFVuaXRzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbiA9IGNvbDtcbiAgICAgICAgY29uc3QgdW5pdHMgPSB0aGlzLl9jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgaWYgKHVuaXRzICE9PSBudWxsKVxuICAgICAgICAgICAgdGhpcy5fdW5pdHMgPSB1bml0cztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbml0cyBhcmUgbm90IHNwZWNpZmllZCBpbiBjb2x1bW4nKTtcbiAgICAgICAgdGhpcy5fbm90YXRpb24gPSB0aGlzLmdldE5vdGF0aW9uKCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2wgPSAodGhpcy5pc0Zhc3RhKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgKHRoaXMuaXNIZWxtKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7XCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoXCIuYWxwaGFiZXRTaXplXCIgLyogVEFHUy5hbHBoYWJldFNpemUgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKFsnVU4nXS5pbmNsdWRlcyh0aGlzLmFscGhhYmV0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1wiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi99JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2wpIHtcbiAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zhc3RhIGNvbHVtbiBtdXN0IGJlIE1BQ1JPTU9MRUNVTEUnKTtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBnZXRTdGF0cyhjb2wsIDUsIHNwbGl0dGVyQXNGYXN0YSk7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBzdGF0cy5zYW1lTGVuZ3RoID8gJ1NFUS5NU0EnIDogJ1NFUSc7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ID0gZGV0ZWN0QWxwaGFiZXQoc3RhdHMpO1xuICAgICAgICBjb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyk7XG4gICAgICAgIGNvbC5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBhbGlnbmVkKTtcbiAgICAgICAgY29sLnNldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLywgYWxwaGFiZXQpO1xuICAgIH1cbiAgICBnZXQgdW5pdHMoKSB7IHJldHVybiB0aGlzLl91bml0czsgfVxuICAgIGdldCBjb2x1bW4oKSB7IHJldHVybiB0aGlzLl9jb2x1bW47IH1cbiAgICBnZXQgbm90YXRpb24oKSB7IHJldHVybiB0aGlzLl9ub3RhdGlvbjsgfVxuICAgIGdldCBkZWZhdWx0R2FwU3ltYm9sKCkgeyByZXR1cm4gdGhpcy5fZGVmYXVsdEdhcFN5bWJvbDsgfVxuICAgIGdldCBzZXBhcmF0b3IoKSB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuY29sdW1uLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKTtcbiAgICAgICAgaWYgKHNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2VwYXJhdG9yIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduZWQoKSB7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovKTtcbiAgICAgICAgLy8gVEFHUy5hbGlnbmVkIGlzIG1hbmRhdG9yeSBmb3IgY29sdW1ucyBvZiBOT1RBVElPTi5GQVNUQSBhbmQgTk9UQVRJT04uU0VQQVJBVE9SXG4gICAgICAgIGlmICghYWxpZ25lZCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFsaWduZWQgbm90IHNldCcpO1xuICAgICAgICByZXR1cm4gYWxpZ25lZDtcbiAgICB9XG4gICAgLyoqIEFscGhhYmV0IG5hbWUgKHVwcGVyIGNhc2UpICovXG4gICAgZ2V0IGFscGhhYmV0KCkge1xuICAgICAgICBjb25zdCBhbHBoYWJldCA9IHRoaXMuY29sdW1uLmdldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLyk7XG4gICAgICAgIC8vIFRBR1MuYWxwaGFiZXQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgaWYgKCFhbHBoYWJldCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgcmV0dXJuIGFscGhhYmV0O1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KHRoaXMuY29sdW1uLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLykpO1xuICAgICAgICAgICAgcmV0dXJuIGFscGhhYmV0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5hbHBoYWJldCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLzpcbiAgICAgICAgICAgICAgICBjYXNlIFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBjYXNlICdOVCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCBhbHBoYWJldCAnTlQnLmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5nZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLykgPT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlzRmFzdGEoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICBpc1NlcGFyYXRvcigpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgaXNIZWxtKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIGlzUm5hKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1JOQSc7IH1cbiAgICBpc0RuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdETkEnOyB9XG4gICAgaXNQZXB0aWRlKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1BUJzsgfVxuICAgIGlzTXNhKCkgeyByZXR1cm4gdGhpcy5hbGlnbmVkID8gdGhpcy5hbGlnbmVkLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ01TQScpIDogZmFsc2U7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0YXJnZXROb3RhdGlvbik7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5DRUxMX1JFTkRFUkVSLCAnTWFjcm9tb2xlY3VsZScpO1xuICAgICAgICBjb25zdCBzcmNBbGlnbmVkID0gY29sLmdldFRhZyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8pO1xuICAgICAgICBpZiAoc3JjQWxpZ25lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBzcmNBbGlnbmVkKTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBjb2wuZ2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBUQUdTLmFscGhhYmV0ICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0KVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLywgc3JjQWxwaGFiZXQpO1xuICAgICAgICBsZXQgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLyk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldFNpemUpXG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICBjb25zdCBzcmNBbHBoYWJldElzTXVsdGljaGFyID0gY29sLmdldFRhZyhcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLywgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSB7XG4gICAgICAgICAgICBzcmNBbHBoYWJldFNpemUgPSB0aGlzLmdldEFscGhhYmV0U2l6ZSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QgPSB7XG4gICAgSEVMTTogJyonLFxuICAgIFNFUEFSQVRPUjogJycsXG4gICAgRkFTVEE6ICctJyxcbn07XG5Vbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFtcbiAgICAnRycsICdMJywgJ1knLCAnUycsICdFJywgJ1EnLCAnRCcsICdOJywgJ0YnLCAnQScsXG4gICAgJ0snLCAnUicsICdIJywgJ0MnLCAnVicsICdQJywgJ1cnLCAnSScsICdNJywgJ1QnLFxuXSk7XG5Vbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdUJ10pO1xuVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVSddKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXBkSE10YUdGdVpHeGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhWFJ6TFdoaGJtUnNaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVbDBReXhQUVVGUExFVkJSVXdzVVVGQlVTeEZRVVZTTEdWQlFXVXNSVUZEWml4alFVRmpMRVZCUTJZc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVVjZRaXhwUlVGQmFVVTdRVUZEYWtVc1RVRkJUU3hQUVVGUExGbEJRVms3U1VFeVRuWkNMRmxCUVcxQ0xFZEJRV003VVVGREwwSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGJrSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU12UXl4SlFVRkpMRXRCUVVzc1MwRkJTeXhKUVVGSk8xbEJRMmhDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRE96dFpRVVZ3UWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNN1VVRkRka1FzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnlSaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzT0VKQlFXTXNSVUZCUlR0WlFVTjJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8yZENRVU4wUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMR3RDUVVGclFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpPMjlDUVVOb1JpeFJRVUZSTERSQ1FVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdVMEZETlVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXg1UTBGQmJVSXNSVUZCUlR0WlFVTTFReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJZc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4MVEwRkJhVUlzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRwUWtGRE0wTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVOeVF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTzI5Q1FVTm9SaXhSUVVGUkxIVkRRVUZwUWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEycEVPMUZCUlVRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc2RVUkJRVEJDTEVWQlFVVTdXVUZEYmtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzJkQ1FVTm1MRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zWlVGQlpTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrN2IwSkJRMmhHTEZGQlFWRXNjVVJCUVhkQ0xHbENRVUZwUWl4RFFVRkRMRU5CUVVNN2FVSkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRja01zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNUdHZRa0ZEYUVZc1VVRkJVU3h4UkVGQmQwSXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFRRVU40UkR0SlFVTklMRU5CUVVNN1NVRTFUMDBzVFVGQlRTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFZEJRV003VVVGRGFFUXNTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVR0WlFVTXhReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03VVVGRmVFUXNUVUZCVFN4TFFVRkxMRWRCUVdkQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNVVUZCVVN4SFFVRkhMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVYyUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l3clFrRkJhVUlzUTBGQlF6dFJRVU14UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3dyUWtGQlpTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhIUVVGSExFTkJRVU1zVFVGQlRTeHBRMEZCWjBJc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVkVMRWxCUVdNc1MwRkJTeXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZja1FzU1VGQll5eE5RVUZOTEV0QlFXZENMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTVVRc1NVRkJWeXhSUVVGUkxFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVeFJDeEpRVUZYTEdkQ1FVRm5RaXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVY0UlN4SlFVRlhMRk5CUVZNN1VVRkRiRUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxHdERRVUZuUWl4RFFVRkRPMUZCUTNKRUxFbEJRVWtzVTBGQlV5eExRVUZMTEVsQlFVazdXVUZEY0VJc1QwRkJUeXhUUVVGVExFTkJRVU03TzFsQlJXcENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRKUVVONlF5eERRVUZETzBsQlJVUXNTVUZCVnl4UFFVRlBPMUZCUTJoQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3c0UWtGQll5eERRVUZETzFGQlJXcEVMR2xHUVVGcFJqdFJRVU5xUml4SlFVRkpMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkZla01zVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVWRUxHbERRVUZwUXp0SlFVTnFReXhKUVVGWExGRkJRVkU3VVVGRGFrSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdkRFFVRmxMRU5CUVVNN1VVRkZia1FzYTBaQlFXdEdPMUZCUTJ4R0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNKRUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVVV4UXl4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVMHNaVUZCWlR0UlFVTndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERoQ1FVRnBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERCQ1FVRmxMRVZCUVVVN1dVRkRiRVVzVFVGQlRTeFpRVUZaTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeDVRMEZCYlVJc1EwRkJReXhEUVVGRE8xbEJRM0pGTEU5QlFVOHNXVUZCV1N4RFFVRkRPMU5CUTNKQ08yRkJRVTA3V1VGRFRDeFJRVUZSTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJRM1pDTzI5Q1FVTkZMRTlCUVU4c1JVRkJSU3hEUVVGRE8yZENRVU5hTERoQ1FVRnJRanRuUWtGRGJFSTdiMEpCUTBVc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZ3NTMEZCU3l4SlFVRkpPMjlDUVVOUUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dHZRa0ZETVVNc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZzdiMEpCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDNRa0ZCZDBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEVOQlFVTTdZVUZETlVRN1UwRkRSanRKUVVOSUxFTkJRVU03U1VGRlRTeHpRa0ZCYzBJN1VVRkRNMElzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaU3hGUVVGRk8xbEJRMnhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxIVkVRVUV3UWl4SlFVRkpMRTFCUVUwc1EwRkJRenRUUVVNdlJEdGhRVUZOTzFsQlEwd3NUMEZCVHl4TFFVRkxMRU5CUVVNN1UwRkRaRHRKUVVOSUxFTkJRVU03U1VGRlRTeFBRVUZQTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hwUTBGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZMMFFzVjBGQlZ5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc2VVTkJRWFZDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhaRkxFMUJRVTBzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMQ3RDUVVGclFpeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVTNSQ3hMUVVGTExFdEJRV01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmNFUXNTMEZCU3l4TFFVRmpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhCRUxGTkJRVk1zUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYyUkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVnlSeXcwUkVGQk5FUTdTVUZETlVRN08wOUJSVWM3U1VGRFR5eFhRVUZYTzFGQlEyNUNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4VlFVRlZMRGhDUVVGblFqdFpRVU55UkN4dlEwRkJjMEk3WVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNjME5CUVc5Q08xbEJRemxFTERSRFFVRXdRanRoUVVOMlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTdzBRa0ZCWlR0WlFVTjZSQ3hyUTBGQmNVSTdPMWxCUlhKQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzT0VKQlFUaENMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6ZEdMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eFpRVUZaTEVOQlFVTXNZMEZCZDBJN1VVRkROME1zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVONFFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNTVUZCU1N4SFFVRkhMR05CUVdNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGFrVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFWXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXp0UlFVTTNReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzFGQlEyaEVMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzT0VKQlFXTXNRMEZCUXp0UlFVTTFReXhKUVVGSkxGVkJRVlU3V1VGRFdpeFRRVUZUTEVOQlFVTXNUVUZCVFN3clFrRkJaU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVVUzUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeG5RMEZCWlN4RFFVRkRPMUZCUXpsRExFbEJRVWtzVjBGQlZ6dFpRVU5pTEZOQlFWTXNRMEZCUXl4TlFVRk5MR2xEUVVGblFpeFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVVXZReXhKUVVGSkxHVkJRV1VzUjBGQlZ5eEhRVUZITEVOQlFVTXNUVUZCVFN4NVEwRkJiVUlzUTBGQlF6dFJRVU0xUkN4SlFVRkpMR1ZCUVdVN1dVRkRha0lzVTBGQlV5eERRVUZETEUxQlFVMHNNRU5CUVc5Q0xHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYWkVMRTFCUVUwc2MwSkJRWE5DTEVkQlFWY3NSMEZCUnl4RFFVRkRMRTFCUVUwc2RVUkJRVEJDTEVOQlFVTTdVVUZETlVVc1NVRkJTU3h6UWtGQmMwSXNTMEZCU3l4VFFVRlRPMWxCUTNSRExGTkJRVk1zUTBGQlF5eE5RVUZOTEhkRVFVRXlRaXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMUZCUlhKRkxFbEJRVWtzWTBGQll5dzRRa0ZCYVVJc1JVRkJSVHRaUVVOdVF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzQkVMRk5CUVZNc1EwRkJReXhOUVVGTkxEQkRRVUZ2UWl4bFFVRmxMRU5CUVVNc1EwRkJRenRUUVVOMFJEdFJRVVZFTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRWE5DTzFGQlF5OURMRTFCUVUwc1IwRkJSeXhIUVVGcFFpeEpRVUZKTEZsQlFWa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEdOQlFXTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRM0JETEU5QlFVOHNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1MwRkJZVHRSUVVNMVF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRelZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMR2RIUVVGdFJDeERRVUZETzFGQlEzSkZMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVWMlF5eE5RVUZOTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRhRVlzVDBGQlR5eGxRVUZsTEVOQlFVTTdTVUZEZWtJc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBrc1RVRkJUU3hEUVVGRExITkNRVUZ6UWl4RFFVTnNReXhIUVVGWExFVkJRMWdzU1VGQldTeEZRVU5hTEV0QlFXRTdVVUZGWWl3MFJVRkJORVU3VVVGRE5VVXNNa0pCUVRKQ08xRkJRek5DTEN0RFFVRXJRenRSUVVNdlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTjZReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhWRFFVRjFReXhEUVVGRExFTkJRVU03VVVGRE0wUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU01UlN4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRPMUZCUXpkRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZGtNc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXpzN1FVRndUbmxDTEcxRFFVRnpRaXhIUVVGSE8wbEJRMnBFTEVsQlFVa3NSVUZCUlN4SFFVRkhPMGxCUTFRc1UwRkJVeXhGUVVGRkxFVkJRVVU3U1VGRFlpeExRVUZMTEVWQlFVVXNSMEZCUnp0RFFVTllMRU5CUVVNN1FVRkZjVUlzYVVOQlFXOUNMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU03U1VGRGNFUXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnp0SlFVTm9SQ3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSE8wTkJRMnBFTEVOQlFVTXNRMEZCUXp0QlFVTnZRaXcyUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGFrUXNOa0pCUVdkQ0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibHh1YVcxd2IzSjBJSHRjYmlBZ1FVeFFTRUZDUlZRc0lFNVBWRUZVU1U5T0xGeHVJQ0JuWlhSVGRHRjBjeXhjYmlBZ1UyVnhRMjlzVTNSaGRITXNYRzRnSUhOd2JHbDBkR1Z5UVhOR1lYTjBZU3hjYmlBZ1pHVjBaV04wUVd4d2FHRmlaWFFzSUZSQlIxTmNibjBnWm5KdmJTQW5MaTl0WVdOeWIyMXZiR1ZqZFd4bEp6dGNibHh1THlvcUlFTnNZWE56SUdadmNpQm9ZVzVrYkdsdVp5QnViM1JoZEdsdmJpQjFibWwwY3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm1sMGMwaGhibVJzWlhJZ2UxeHVJQ0J3Y205MFpXTjBaV1FnY21WaFpHOXViSGtnWDJOdmJIVnRiam9nUkVjdVEyOXNkVzF1T3lBdkx5QjBhR1VnWTI5c2RXMXVJSFJ2SUdKbElHTnZiblpsY25SbFpGeHVJQ0J3Y205MFpXTjBaV1FnWDNWdWFYUnpPaUJ6ZEhKcGJtYzdJQzh2SUhWdWFYUnpMQ0J2WmlCMGFHVWdabTl5YlNCbVlYTjBZU3dnYzJWd1lYSmhkRzl5WEc0Z0lIQnliM1JsWTNSbFpDQmZibTkwWVhScGIyNDZJRTVQVkVGVVNVOU9PeUF2THlCamRYSnlaVzUwSUc1dmRHRjBhVzl1SUNoM2FYUm9iM1YwSURwVFJWRTZUbFFzSUdWMFl5NHBYRzRnSUhCeWIzUmxZM1JsWkNCZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuTzF4dUlDQndjbTkwWldOMFpXUWdjM1JoZEdsaklISmxZV1J2Ym14NUlGOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1FnUFNCN1hHNGdJQ0FnU0VWTVRUb2dKeW9uTEZ4dUlDQWdJRk5GVUVGU1FWUlBVam9nSnljc1hHNGdJQ0FnUmtGVFZFRTZJQ2N0Snl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZCbGNIUnBaR1ZHWVhOMFlVRnNjR2hoWW1WMElEMGdibVYzSUZObGRDaGJYRzRnSUNBZ0owY25MQ0FuVENjc0lDZFpKeXdnSjFNbkxDQW5SU2NzSUNkUkp5d2dKMFFuTENBblRpY3NJQ2RHSnl3Z0owRW5MRnh1SUNBZ0lDZExKeXdnSjFJbkxDQW5TQ2NzSUNkREp5d2dKMVluTENBblVDY3NJQ2RYSnl3Z0owa25MQ0FuVFNjc0lDZFVKeXhjYmlBZ1hTazdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZoWkc5dWJIa2dSRzVoUm1GemRHRkJiSEJvWVdKbGRDQTlJRzVsZHlCVFpYUW9XeWRCSnl3Z0owTW5MQ0FuUnljc0lDZFVKMTBwTzF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZKdVlVWmhjM1JoUVd4d2FHRmlaWFFnUFNCdVpYY2dVMlYwS0ZzblFTY3NJQ2RESnl3Z0owY25MQ0FuVlNkZEtUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSE5sZEZWdWFYUnpWRzlHWVhOMFlVTnZiSFZ0YmloamIydzZJRVJITGtOdmJIVnRiaWtnZTF4dUlDQWdJR2xtSUNoamIyd3VjMlZ0Vkhsd1pTQWhQVDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEdZWE4wWVNCamIyeDFiVzRnYlhWemRDQmlaU0JOUVVOU1QwMVBURVZEVlV4Rkp5azdYRzVjYmlBZ0lDQmpiMjV6ZENCemRHRjBjem9nVTJWeFEyOXNVM1JoZEhNZ1BTQm5aWFJUZEdGMGN5aGpiMndzSURVc0lITndiR2wwZEdWeVFYTkdZWE4wWVNrN1hHNGdJQ0FnWTI5dWMzUWdZV3hwWjI1bFpDQTlJSE4wWVhSekxuTmhiV1ZNWlc1bmRHZ2dQeUFuVTBWUkxrMVRRU2NnT2lBblUwVlJKenRjYmlBZ0lDQmpiMjV6ZENCaGJIQm9ZV0psZENBOUlHUmxkR1ZqZEVGc2NHaGhZbVYwS0hOMFlYUnpLVHRjYmx4dUlDQWdJR052YkM1elpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5d2dUazlVUVZSSlQwNHVSa0ZUVkVFcE8xeHVJQ0FnSUdOdmJDNXpaWFJVWVdjb1ZFRkhVeTVoYkdsbmJtVmtMQ0JoYkdsbmJtVmtLVHRjYmlBZ0lDQmpiMnd1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhRc0lHRnNjR2hoWW1WMEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhRZ2RXNXBkSE1vS1RvZ2MzUnlhVzVuSUhzZ2NtVjBkWEp1SUhSb2FYTXVYM1Z1YVhSek95QjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0JqYjJ4MWJXNG9LVG9nUkVjdVEyOXNkVzF1SUhzZ2NtVjBkWEp1SUhSb2FYTXVYMk52YkhWdGJqc2dmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdibTkwWVhScGIyNG9LVG9nVGs5VVFWUkpUMDRnZXlCeVpYUjFjbTRnZEdocGN5NWZibTkwWVhScGIyNDdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsWm1GMWJIUkhZWEJUZVcxaWIyd29LVG9nYzNSeWFXNW5JSHNnY21WMGRYSnVJSFJvYVhNdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ3N0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElITmxjR0Z5WVhSdmNpZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNHRnlZWFJ2Y2lBOUlIUm9hWE11WTI5c2RXMXVMbWRsZEZSaFp5aFVRVWRUTG5ObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnYVdZZ0tITmxjR0Z5WVhSdmNpQWhQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYQmhjbUYwYjNJN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVFpYQmhjbUYwYjNJZ2JtOTBJSE5sZENjcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0JoYkdsbmJtVmtLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ1lXeHBaMjVsWkNBOUlIUm9hWE11WTI5c2RXMXVMbWRsZEZSaFp5aFVRVWRUTG1Gc2FXZHVaV1FwTzF4dVhHNGdJQ0FnTHk4Z1ZFRkhVeTVoYkdsbmJtVmtJR2x6SUcxaGJtUmhkRzl5ZVNCbWIzSWdZMjlzZFcxdWN5QnZaaUJPVDFSQlZFbFBUaTVHUVZOVVFTQmhibVFnVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTWEc0Z0lDQWdhV1lnS0NGaGJHbG5ibVZrSUNZbUlDaDBhR2x6TG1selJtRnpkR0VvS1NCOGZDQjBhR2x6TG1selUyVndZWEpoZEc5eUtDa3BLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVZV2NnWVd4cFoyNWxaQ0J1YjNRZ2MyVjBKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZV3hwWjI1bFpEdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQmJIQm9ZV0psZENCdVlXMWxJQ2gxY0hCbGNpQmpZWE5sS1NBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwSUdGc2NHaGhZbVYwS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnWTI5dWMzUWdZV3h3YUdGaVpYUWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVkVGSFV5NWhiSEJvWVdKbGRDazdYRzVjYmlBZ0lDQXZMeUJVUVVkVExtRnNjR2hoWW1WMElHbHpJRzFoYm1SaGRHOXllU0JtYjNJZ1kyOXNkVzF1Y3lCdlppQk9UMVJCVkVsUFRpNUdRVk5VUVNCaGJtUWdUazlVUVZSSlQwNHVVMFZRUVZKQlZFOVNYRzRnSUNBZ2FXWWdLQ0ZoYkhCb1lXSmxkQ0FtSmlBb2RHaHBjeTVwYzBaaGMzUmhLQ2tnZkh3Z2RHaHBjeTVwYzFObGNHRnlZWFJ2Y2lncEtTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblZHRm5JR0ZzY0doaFltVjBJRzV2ZENCelpYUW5LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQmhiSEJvWVdKbGREdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRnNjR2hoWW1WMFUybDZaU0E5SUhCaGNuTmxTVzUwS0hSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVVFVZFRMbUZzY0doaFltVjBVMmw2WlNrcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGc2NHaGhZbVYwVTJsNlpUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzNkcGRHTm9JQ2gwYUdsekxtRnNjR2hoWW1WMEtTQjdYRzRnSUNBZ0lDQmpZWE5sSUVGTVVFaEJRa1ZVTGxCVU9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01qQTdYRzRnSUNBZ0lDQmpZWE5sSUVGTVVFaEJRa1ZVTGtST1FUcGNiaUFnSUNBZ0lHTmhjMlVnUVV4UVNFRkNSVlF1VWs1Qk9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z05EdGNiaUFnSUNBZ0lHTmhjMlVnSjA1VUp6cGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0dCVmJtVjRjR1ZqZEdWa0lHRnNjR2hoWW1WMElDZE9WQ2N1WUNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBME8xeHVJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtVjRjR1ZqZEdWa0lHRnNjR2hoWW1WMElDY2tlM1JvYVhNdVlXeHdhR0ZpWlhSOUp5NWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwUVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY2lncE9pQmliMjlzWldGdUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtTQTlQU0FuZEhKMVpTYzdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTkdZWE4wWVNncE9pQmliMjlzWldGdUlIc2djbVYwZFhKdUlIUm9hWE11Ym05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xrWkJVMVJCT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VTJWd1lYSmhkRzl5S0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U095QjlYRzVjYmlBZ2NIVmliR2xqSUdselNHVnNiU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVibTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGtoRlRFMDdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTlNibUVvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbUZzY0doaFltVjBJRDA5UFNBblVrNUJKenNnZlZ4dVhHNGdJSEIxWW14cFl5QnBjMFJ1WVNncE9pQmliMjlzWldGdUlIc2djbVYwZFhKdUlIUm9hWE11WVd4d2FHRmlaWFFnUFQwOUlDZEVUa0VuT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VUdWd2RHbGtaU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUNkUVZDYzdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTk5jMkVvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbUZzYVdkdVpXUWdQeUIwYUdsekxtRnNhV2R1WldRdWRHOVZjSEJsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWduVFZOQkp5a2dPaUJtWVd4elpUc2dmVnh1WEc0Z0lDOHFLaUJCYzNOdlkybGhkR1VnYm05MFlYUnBiMjRnZEhsd1pYTWdkMmwwYUNCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCMWJtbDBjeUFxTDF4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUazlVUVZSSlQwNTlJQ0FnSUNCT2IzUmhkR2x2YmlCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElIVnVhWFJ6SUhSNWNHVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST2IzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1R1FWTlVRVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1SVJVeE5LU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNUlSVXhOTzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCb1lYTWdkVzVsZUhCbFkzUmxaQ0J1YjNSaGRHbHZiaUFuSkh0MGFHbHpMblZ1YVhSemZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJR1Z0Y0hSNUlHTnZiSFZ0YmlCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUc1dmRHRjBhVzl1SUhSNWNHVWdZVzVrSUhSb1pTQnpZVzFsWEc0Z0lDQXFJR3hsYm1kMGFDQmhjeUJqYjJ4MWJXNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRPVDFSQlZFbFBUbjBnZEdGeVoyVjBUbTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlIUm9hWE11WTI5c2RXMXVPMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJR052YkM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2JtRnRaU0E5SUhSaGNtZGxkRTV2ZEdGMGFXOXVMblJ2VEc5M1pYSkRZWE5sS0NrZ0t5QW5LQ2NnS3lCamIyd3VibUZ0WlNBcklDY3BKenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMnhPWVcxbElEMGdZMjlzTG1SaGRHRkdjbUZ0WlM1amIyeDFiVzV6TG1kbGRGVnVkWE5sWkU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0NkemRISnBibWNuTENCdVpYZERiMnhPWVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMFlYSm5aWFJPYjNSaGRHbHZiaWs3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExrTkZURXhmVWtWT1JFVlNSVklzSUNkTllXTnliMjF2YkdWamRXeGxKeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnpjbU5CYkdsbmJtVmtJRDBnWTI5c0xtZGxkRlJoWnloVVFVZFRMbUZzYVdkdVpXUXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJHbG5ibVZrS1Z4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExtRnNhV2R1WldRc0lITnlZMEZzYVdkdVpXUXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MzSmpRV3h3YUdGaVpYUWdQU0JqYjJ3dVoyVjBWR0ZuS0ZSQlIxTXVZV3h3YUdGaVpYUXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJIQm9ZV0psZENsY2JpQWdJQ0FnSUc1bGQwTnZiSFZ0Ymk1elpYUlVZV2NvVkVGSFV5NWhiSEJvWVdKbGRDd2djM0pqUVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnYkdWMElITnlZMEZzY0doaFltVjBVMmw2WlRvZ2MzUnlhVzVuSUQwZ1kyOXNMbWRsZEZSaFp5aFVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTazdYRzRnSUNBZ2FXWWdLSE55WTBGc2NHaGhZbVYwVTJsNlpTbGNiaUFnSUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1Vc0lITnlZMEZzY0doaFltVjBVMmw2WlNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6Y21OQmJIQm9ZV0psZEVselRYVnNkR2xqYUdGeU9pQnpkSEpwYm1jZ1BTQmpiMnd1WjJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpazdYRzRnSUNBZ2FXWWdLSE55WTBGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJZ0lUMDlJSFZ1WkdWbWFXNWxaQ2xjYmlBZ0lDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUxDQnpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1R0Y2JseHVJQ0FnSUdsbUlDaDBZWEpuWlhST2IzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOS1NCN1hHNGdJQ0FnSUNCemNtTkJiSEJvWVdKbGRGTnBlbVVnUFNCMGFHbHpMbWRsZEVGc2NHaGhZbVYwVTJsNlpTZ3BMblJ2VTNSeWFXNW5LQ2s3WEc0Z0lDQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhSVGFYcGxMQ0J6Y21OQmJIQm9ZV0psZEZOcGVtVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdVpYZERiMngxYlc0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUdWdGNIUjVJR052YkhWdGJpQjFjMmx1WnlCMFpXMXdiR0YwWlVOdmJDQmhjeUJoSUhSbGJYQnNZWFJsWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQjBaVzF3YkdGMFpVTnZiQ0FnZEdobElIQnliM0JsY25ScFpYTWdZVzVrSUhWdWFYUnpJRzltSUhSb2FYTWdZMjlzZFcxdUlHRnlaU0IxYzJWa0lHRnpJR0ZjYmlBZ0lDb2dkR1Z0Y0d4aGRHVWdkRzhnWW5WcGJHUWdkR2hsSUc1bGR5QnZibVZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzRvZEdWdGNHeGhkR1ZEYjJ3NklFUkhMa052YkhWdGJpazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNPaUJWYm1sMGMwaGhibVJzWlhJZ1BTQnVaWGNnVlc1cGRITklZVzVrYkdWeUtIUmxiWEJzWVhSbFEyOXNLVHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJPYjNSaGRHbHZiaUE5SUdOdmJDNXViM1JoZEdsdmJqdGNiaUFnSUNCeVpYUjFjbTRnWTI5c0xtZGxkRTVsZDBOdmJIVnRiaWgwWVhKblpYUk9iM1JoZEdsdmJpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCb1pXeHdaWElnWm5WdVkzUnBiMjRnWTJobFkydHBibWNnZEdobElIWmhiR2xrYVhSNUlHOW1JSFJvWlNBbmRXNXBkSE1uSUhOMGNtbHVaMXh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITWdJSFJvWlNCemRISnBibWNnZEc4Z1ltVWdkbUZzYVdSaGRHVmtYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhWdWFYUnpVM1J5YVc1blNYTldZV3hwWkNoMWJtbDBjem9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdkVzVwZEhNZ1BTQjFibWwwY3k1MGIweHZkMlZ5UTJGelpTZ3BPMXh1SUNBZ0lHTnZibk4wSUhCeVpXWnBlR1Z6SUQwZ1cwNVBWRUZVU1U5T0xrWkJVMVJCTENCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJc0lFNVBWRUZVU1U5T0xraEZURTFkTzF4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhobGN5QTlJRnNuY201aEp5d2dKMlJ1WVNjc0lDZHdkQ2RkTzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEpsWm1sNFEzSnBkR1Z5YVc5dUlEMGdjSEpsWm1sNFpYTXVjMjl0WlNnb2NDa2dQVDRnZFc1cGRITXVjM1JoY25SelYybDBhQ2h3TG5SdlRHOTNaWEpEWVhObEtDa3BLVHRjYmlBZ0lDQnlaWFIxY200Z2NISmxabWw0UTNKcGRHVnlhVzl1TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZibk4wY25WamRDQmhJRzVsZHlCamIyeDFiVzRnYjJZZ2MyVnRZVzUwYVdNZ2RIbHdaU0JOUVVOU1QwMVBURVZEVlV4RklHWnliMjBnZEdobElHeHBjM1FnYjJaY2JpQWdJQ29nYzNCbFkybG1hV1ZrSUhCaGNtRnRaWFJsY25OY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlDQWdJR3hsYmlBZ2RHaGxJR3hsYm1kMGFDQnZaaUIwYUdVZ2JtVjNJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnSUNBZ2JtRnRaU0FnZEdobElHNWhiV1VnYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlDQWdJSFZ1YVhSeklDQjBhR1VnZFc1cGRITWdiMllnZEdobElHNWxkeUJqYjJ4MWJXNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUk9aWGREYjJ4MWJXNUdjbTl0VUdGeVlXMXpLRnh1SUNBZ0lHeGxiam9nYm5WdFltVnlMRnh1SUNBZ0lHNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjFibWwwY3pvZ2MzUnlhVzVuWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVjBGU1RrbE9Sem9nYVc0Z2RHaHBjeUJwYlhCc1pXMWxiblJoZEdsdmJpQnBjeUJwY3lCcGJYQnZjM05wWW14bElIUnZJSFpsY21sbWVTQjBhR1VnZFc1cGNYVmxibVZ6YzF4dUlDQWdJQzh2SUc5bUlIUm9aU0J1WlhjZ1kyOXNkVzF1SjNNZ2JtRnRaVnh1SUNBZ0lDOHZJRlJQUkU4NklIWmxjbWxtZVNCMGFHVWdkbUZzYVdScGRIa2diMllnZFc1cGRITWdjR0Z5WVcxbGRHVnlYRzRnSUNBZ2FXWWdLQ0ZWYm1sMGMwaGhibVJzWlhJdWRXNXBkSE5UZEhKcGJtZEpjMVpoYkdsa0tIVnVhWFJ6S1NsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduU1c1MllXeHBaQ0JtYjNKdFlYUWdiMllnWEZ3bmRXNXBkSE5jWENjZ2NHRnlZVzFsZEdWeUp5azdYRzRnSUNBZ1kyOXVjM1FnYm1WM1EyOXNkVzF1SUQwZ1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZHpkSEpwYm1jbkxDQnVZVzFsTENCdVpYY2dRWEp5WVhrb2JHVnVLUzVtYVd4c0tDY25LU2s3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sYlZSNWNHVWdQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVTdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRMQ0IxYm1sMGN5azdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGpiMnc2SUVSSExrTnZiSFZ0YmlrZ2UxeHVJQ0FnSUhSb2FYTXVYMk52YkhWdGJpQTlJR052YkR0Y2JpQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlIUm9hWE11WDJOdmJIVnRiaTUwWVdkelcwUkhMbFJCUjFNdVZVNUpWRk5kTzF4dUlDQWdJR2xtSUNoMWJtbDBjeUFoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSFJvYVhNdVgzVnVhWFJ6SUQwZ2RXNXBkSE03WEc0Z0lDQWdaV3h6WlZ4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RWYm1sMGN5QmhjbVVnYm05MElITndaV05wWm1sbFpDQnBiaUJqYjJ4MWJXNG5LVHRjYmlBZ0lDQjBhR2x6TGw5dWIzUmhkR2x2YmlBOUlIUm9hWE11WjJWMFRtOTBZWFJwYjI0b0tUdGNiaUFnSUNCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNJRDBnS0hSb2FYTXVhWE5HWVhOMFlTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJJRHBjYmlBZ0lDQWdJQ2gwYUdsekxtbHpTR1ZzYlNncEtTQS9JRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa2hGVEUwZ09seHVJQ0FnSUNBZ0lDQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVZMjlzZFcxdUxuUmhaM011YUdGektGUkJSMU11WVd4cFoyNWxaQ2twSUh0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG1selJtRnpkR0VvS1NCOGZDQjBhR2x6TG1selUyVndZWEpoZEc5eUtDa3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSbTl5SUdOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2IyWWdibTkwWVhScGIyNGdKeVI3ZEdocGN5NXViM1JoZEdsdmJuMG5JR0FnSzF4dUlDQWdJQ0FnSUNBZ0lHQjBZV2NnSnlSN1ZFRkhVeTVoYkdsbmJtVmtmU2NnYVhNZ2JXRnVaR0YwYjNKNUxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NWpiMngxYlc0dWRHRm5jeTVvWVhNb1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcEtTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMGhsYkcwb0tTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQnViM1JoZEdsdmJpQW5KSHQwYUdsekxtNXZkR0YwYVc5dWZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBVMmw2WlgwbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0ZzblZVNG5YUzVwYm1Oc2RXUmxjeWgwYUdsekxtRnNjR2hoWW1WMEtTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBVMmw2WlgwbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpa3BJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6U0dWc2JTZ3BLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRVp2Y2lCamIyeDFiVzRnSnlSN2RHaHBjeTVqYjJ4MWJXNHVibUZ0WlgwbklHOW1JRzV2ZEdGMGFXOXVJQ2NrZTNSb2FYTXVibTkwWVhScGIyNTlKeUJnSUN0Y2JpQWdJQ0FnSUNBZ0lDQmdkR0ZuSUNja2UxUkJSMU11WVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY24wbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0ZzblZVNG5YUzVwYm1Oc2RXUmxjeWgwYUdsekxtRnNjR2hoWW1WMEtTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWEo5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpWFgwPSIsIi8vIERhdGEgc3RydWN0dXJlcyBmb3IgVi1Eb21haW4gcmVnaW9ucyBvZiBhbnRpYm9kaWVzXG5leHBvcnQgdmFyIFZkUmVnaW9uVHlwZTtcbihmdW5jdGlvbiAoVmRSZWdpb25UeXBlKSB7XG4gICAgVmRSZWdpb25UeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkZSXCJdID0gXCJmcmFtZXdvcmtcIjtcbiAgICBWZFJlZ2lvblR5cGVbXCJDRFJcIl0gPSBcImNkclwiO1xufSkoVmRSZWdpb25UeXBlIHx8IChWZFJlZ2lvblR5cGUgPSB7fSkpO1xuLyoqIERlc2NyaWJlcyBWLURPTUFJTiAoSUcgYW5kIFRSKSByZWdpb24gKG9mIG11bHRpcGxlIGFsaWdubWVudClcbiAqIGh0dHBzOi8vd3d3LmltZ3Qub3JnL0lNR1RTY2llbnRpZmljQ2hhcnQvTnVtYmVyaW5nL0lNR1RJR1ZMc3VwZXJmYW1pbHkuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb24ge1xuICAgIC8qKlxuICAgICAqIHN0YXJ0IGFuZCBwb3NpdGlvbiBhcmUgc3RyaW5ncyBiZWNhdXNlIHRoZXkgY29ycmVzcG9uZCB0byBwb3NpdGlvbiBuYW1lcyBhcyBjb2x1bW4gbmFtZXMgaW4gQU5BUkNJIG91dHB1dFxuICAgICAqIEBwYXJhbSB7VmRSZWdpb25UeXBlfSB0eXBlICBUeXBlIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgTmFtZSBvZiB0aGUgcmVnaW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYWluXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9yZGVyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvc2l0aW9uU3RhcnROYW1lICBSZWdpb24gc3RhcnQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25FbmROYW1lICBSZWdpb24gZW5kIHBvc2l0aW9uIChpbmNsdXNpdmUpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgbmFtZSwgY2hhaW4sIG9yZGVyLCBwb3NpdGlvblN0YXJ0TmFtZSwgcG9zaXRpb25FbmROYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RhcnROYW1lID0gcG9zaXRpb25TdGFydE5hbWU7XG4gICAgICAgIHRoaXMucG9zaXRpb25FbmROYW1lID0gcG9zaXRpb25FbmROYW1lO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5aa0xYSmxaMmx2Ym5NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzY1VSQlFYRkVPMEZCUlhKRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZsQlNWZzdRVUZLUkN4WFFVRlpMRmxCUVZrN1NVRkRkRUlzYlVOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXZENMRU5CUVVFN1NVRkRhRUlzTWtKQlFWY3NRMEZCUVR0QlFVTmlMRU5CUVVNc1JVRktWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWwyUWp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEZGQlFWRTdTVUZSYmtJN096czdPenM3TzA5QlVVYzdTVUZEU0N4WlFVRlpMRWxCUVd0Q0xFVkJRVVVzU1VGQldTeEZRVUZGTEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUTNoRkxHbENRVUY1UWl4RlFVRkZMR1ZCUVhWQ08xRkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVNelF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCRVlYUmhJSE4wY25WamRIVnlaWE1nWm05eUlGWXRSRzl0WVdsdUlISmxaMmx2Ym5NZ2IyWWdZVzUwYVdKdlpHbGxjMXh1WEc1bGVIQnZjblFnWlc1MWJTQldaRkpsWjJsdmJsUjVjR1VnZTF4dUlDQlZibXR1YjNkdUlEMGdKM1Z1YTI1dmQyNG5MRnh1SUNCR1VpQTlJQ2RtY21GdFpYZHZjbXNuTEZ4dUlDQkRSRklnUFNBblkyUnlKeXhjYm4xY2JseHVMeW9xSUVSbGMyTnlhV0psY3lCV0xVUlBUVUZKVGlBb1NVY2dZVzVrSUZSU0tTQnlaV2RwYjI0Z0tHOW1JRzExYkhScGNHeGxJR0ZzYVdkdWJXVnVkQ2xjYmlBcUlHaDBkSEJ6T2k4dmQzZDNMbWx0WjNRdWIzSm5MMGxOUjFSVFkybGxiblJwWm1salEyaGhjblF2VG5WdFltVnlhVzVuTDBsTlIxUkpSMVpNYzNWd1pYSm1ZVzFwYkhrdWFIUnRiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1SU1pXZHBiMjRnZTF4dUlDQjBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVTdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTJoaGFXNDZJSE4wY21sdVp6dGNiaUFnYjNKa1pYSTZJRzUxYldKbGNqdGNiaUFnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2NHOXphWFJwYjI1RmJtUk9ZVzFsT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSE4wWVhKMElHRnVaQ0J3YjNOcGRHbHZiaUJoY21VZ2MzUnlhVzVuY3lCaVpXTmhkWE5sSUhSb1pYa2dZMjl5Y21WemNHOXVaQ0IwYnlCd2IzTnBkR2x2YmlCdVlXMWxjeUJoY3lCamIyeDFiVzRnYm1GdFpYTWdhVzRnUVU1QlVrTkpJRzkxZEhCMWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFaa1VtVm5hVzl1Vkhsd1pYMGdkSGx3WlNBZ1ZIbHdaU0J2WmlCMGFHVWdjbVZuYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J1WVcxbElDQk9ZVzFsSUc5bUlIUm9aU0J5WldkcGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb1lXbHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNtUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1VGRHRnlkRTVoYldVZ0lGSmxaMmx2YmlCemRHRnlkQ0J3YjNOcGRHbHZiaUFvYVc1amJIVnphWFpsS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjRzl6YVhScGIyNUZibVJPWVcxbElDQlNaV2RwYjI0Z1pXNWtJSEJ2YzJsMGFXOXVJQ2hwYm1Oc2RYTnBkbVVwWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVXNJRzVoYldVNklITjBjbWx1Wnl3Z1kyaGhhVzQ2SUhOMGNtbHVaeXdnYjNKa1pYSTZJRzUxYldKbGNpeGNiaUFnSUNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlRvZ2MzUnlhVzVuTENCd2IzTnBkR2x2YmtWdVpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtTm9ZV2x1SUQwZ1kyaGhhVzQ3WEc0Z0lDQWdkR2hwY3k1dmNtUmxjaUE5SUc5eVpHVnlPMXh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnUFNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlR0Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVJXNWtUbUZ0WlNBOUlIQnZjMmwwYVc5dVJXNWtUbUZ0WlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljR2g1Ykc5allXNTJZWE10WjJ3dGRtbGxkMlZ5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljR2g1Ykc5allXNTJZWE10WjJ3dGRtbGxkMlZ5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UwbFdhV1YzWlhKOUlHWnliMjBnSnk0dmRtbGxkMlZ5Snp0Y2JseHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWxRYUhsc2IyTmhiblpoYzBkc1ZtbGxkMlZ5SUdWNGRHVnVaSE1nU1ZacFpYZGxjaUI3WEc0Z0lHZGxkQ0J1ZDJ0RVppZ3BPaUJFUnk1RVlYUmhSbkpoYldVN1hHNWNiaUFnYzJWMElHNTNhMFJtS0haaGJIVmxPaUJFUnk1RVlYUmhSbkpoYldVcE8xeHVmU0pkZlE9PSIsImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5MTJhV1YzWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWkMxeVpXZHBiMjV6TFhacFpYZGxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUdkeWIyc2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMmR5YjJzbk8xeHVhVzF3YjNKMElDb2dZWE1nUkVjZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyUm5KenRjYmx4dWFXMXdiM0owSUh0V1pGSmxaMmx2Ym4wZ1puSnZiU0FuTGk0dmRtUXRjbVZuYVc5dWN5YzdYRzVwYlhCdmNuUWdlMGxXYVdWM1pYSjlJR1p5YjIwZ0p5NHZkbWxsZDJWeUp6dGNibHh1THlvcUlFbHVkR1Z5Wm1GalpTQm1iM0lnVm1SU1pXZHBiMjV6Vm1sbGQyVnlJR1p5YjIwZ1FHUmhkR0ZuY205ckwySnBieUIwYnlCMWJtSnBibVFnWkdWd1pXNWtaVzVqZVNCMGJ5QkNhVzhnY0dGamEyRm5aU0FxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSlZtUlNaV2RwYjI1elZtbGxkMlZ5SUdWNGRHVnVaSE1nU1ZacFpYZGxjaUI3WEc0Z0lHbHVhWFFvS1RvZ1VISnZiV2x6WlR4MmIybGtQanRjYmx4dUlDQnpaWFJFWmlodGJHSkVaam9nUkVjdVJHRjBZVVp5WVcxbExDQnlaV2RwYjI1ek9pQldaRkpsWjJsdmJsdGRLVG9nVUhKdmJXbHpaVHgyYjJsa1BqdGNibjBpWFgwPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBnZXRTcGxpdHRlciwgbW9ub21lclRvU2hvcnQsIHBpY2tVcFBhbGV0dGUsIHBpY2tVcFNlcUNvbCB9IGZyb20gJy4uL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xudmFyIFBvc2l0aW9uSGVpZ2h0O1xuKGZ1bmN0aW9uIChQb3NpdGlvbkhlaWdodCkge1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiRW50cm9weVwiXSA9IFwiRW50cm9weVwiO1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiZnVsbFwiXSA9IFwiMTAwJVwiO1xufSkoUG9zaXRpb25IZWlnaHQgfHwgKFBvc2l0aW9uSGVpZ2h0ID0ge30pKTtcbi8qKkBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByIGRldmljZVBpeGVsUmF0aW9uXG4gKiBAcmV0dXJuIHtERy5Qb2ludH0gY2FudmFzIHJlbGF0ZWQgY3Vyc29yIHBvc2l0aW9uXG4gKi9cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uIChldmVudCwgcikge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBuZXcgREcuUG9pbnQoKGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQpICogciwgKGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCkgKiByKTtcbn07XG5ERy5SZWN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA8PSB4ICYmIHggPD0gdGhpcy5yaWdodCAmJiB0aGlzLnRvcCA8PSB5ICYmIHkgPD0gdGhpcy5ib3R0b207XG59O1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uTW9ub21lckluZm8ge1xuICAgIGNvbnN0cnVjdG9yKGNvdW50ID0gMCwgYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCkpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUG9zaXRpb25JbmZvIHtcbiAgICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHBvc2l0aW9uICgnMTExQScsICcxMTEuMScsIGV0YylcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VtRm9ySGVpZ2h0Q2FsYyBTdW0gb2YgYWxsIG1vbm9tZXIgY291bnRzIGZvciBoZWlnaHQgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcm93Q291bnQgQ291bnQgb2YgZWxlbWVudHMgaW4gY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gZnJlcSBmcmVxdWVuY3kgb2YgbW9ub21lcnMgaW4gcG9zaXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBmcmVxID0ge30sIHJvd0NvdW50ID0gMCwgc3VtRm9ySGVpZ2h0Q2FsYyA9IDApIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5mcmVxID0gZnJlcTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLnN1bUZvckhlaWdodENhbGMgPSBzdW1Gb3JIZWlnaHRDYWxjO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpZXdlcklkID0gLTE7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSAwO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgdGhpcy52aXNpYmxlU2xpZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxsb3dSZXNpemUgPSB0cnVlO1xuICAgICAgICB0aGlzLnR1cm5PZlJlc2l6ZUZvck9uZVNldFZhbHVlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gMHhGRkZGRkZGRjtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLnZpZXdTdWJzID0gW107XG4gICAgICAgIHRoaXMudmlld2VySWQgPSBXZWJMb2dvLnZpZXdlckNvdW50O1xuICAgICAgICBXZWJMb2dvLnZpZXdlckNvdW50ICs9IDE7XG4gICAgICAgIHRoaXMudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmludCgnYmFja2dyb3VuZENvbG9yJywgMHhGRkZGRkZGRik7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uV2lkdGggPSB0aGlzLnBvc2l0aW9uV2lkdGggPSB0aGlzLmZsb2F0KCdwb3NpdGlvbldpZHRoJywgMTYgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogNCwgbWF4OiA2NCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMubWluSGVpZ2h0ID0gdGhpcy5mbG9hdCgnbWluSGVpZ2h0JywgNTAgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogMjUwLCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmZsb2F0KCdtYXhIZWlnaHQnLCAxMDAgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogNTAwLCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5za2lwRW1wdHlTZXF1ZW5jZXMgPSB0aGlzLmJvb2woJ3NraXBFbXB0eVNlcXVlbmNlcycsIHRydWUpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdzdGFydFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdlbmRQb3NpdGlvbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maXhXaWR0aCA9IHRoaXMuYm9vbCgnZml4V2lkdGgnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJywgeyBjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ10gfSk7XG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCdob3Jpem9udGFsQWxpZ25tZW50JywgJ2NlbnRlcicsIHsgY2hvaWNlczogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCddIH0pO1xuICAgICAgICB0aGlzLmZpdEFyZWEgPSB0aGlzLmJvb2woJ2ZpdEFyZWEnLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zaHJpbmtFbXB0eVRhaWwgPSB0aGlzLmJvb2woJ3Nocmlua0VtcHR5VGFpbCcsIHRydWUpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPSB0aGlzLnN0cmluZygncG9zaXRpb25NYXJnaW5TdGF0ZScsICdhdXRvJywgeyBjaG9pY2VzOiBbJ2F1dG8nLCAnZW5hYmxlJywgJ29mZiddIH0pO1xuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSAwO1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUZvclBvc2l0aW9uTWFyZ2luID0gNDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gdGhpcy5pbnQoJ3Bvc2l0aW9uTWFyZ2luJywgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4sIHsgbWluOiAwLCBtYXg6IDE2IH0pO1xuICAgICAgICB0aGlzLnBvc2l0aW9uSGVpZ2h0ID0gdGhpcy5zdHJpbmcoJ3Bvc2l0aW9uSGVpZ2h0JywgUG9zaXRpb25IZWlnaHQuZnVsbCwgeyBjaG9pY2VzOiBbUG9zaXRpb25IZWlnaHQuZnVsbCwgUG9zaXRpb25IZWlnaHQuRW50cm9weV0gfSk7XG4gICAgICAgIGNvbnN0IHN0eWxlID0geyBzdHlsZTogJ2JhcmJlbGwnIH07XG4gICAgICAgIHRoaXMuc2xpZGVyID0gdWkucmFuZ2VTbGlkZXIoMCwgMTAwLCAwLCAyMCwgZmFsc2UsIHN0eWxlKTtcbiAgICAgICAgdGhpcy5jYW52YXMgPSB1aS5jYW52YXMoKTtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5za2lwRW1wdHlQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbiA8PSB0aGlzLmVuZFBvc2l0aW9uID8gdGhpcy5lbmRQb3NpdGlvbiAtIHRoaXMuc3RhcnRQb3NpdGlvbiArIDEgOiAwO1xuICAgIH1cbiAgICAvKiogQ2FsY3VsYXRlIG5ldyBwb3NpdGlvbiBkYXRhIGJhc2ljIG9uIHtAbGluayBwb3NpdGlvbk1hcmdpblN0YXRlfSBhbmQge0BsaW5rIHBvc2l0aW9uTWFyZ2lufSAqL1xuICAgIGdldCBwb3NpdGlvbldpZHRoV2l0aE1hcmdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uV2lkdGggKyB0aGlzLnBvc2l0aW9uTWFyZ2luVmFsdWU7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbk1hcmdpblZhbHVlKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICgodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpICYmICgoKF9hID0gdGhpcy51bml0c0hhbmRsZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRBbHBoYWJldElzTXVsdGljaGFyKCkpID09PSB0cnVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb25NYXJnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2VuYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uTWFyZ2luO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvKiogQ291bnQgb2YgcG9zaXRpb24gcmVuZGVyZWQgZm9yIGNhbGN1bGF0aW9ucyBjb3VudE9mUmVuZGVyUG9zaXRpb25zICovXG4gICAgZ2V0IGNvdW50T2ZSZW5kZXJQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBpZiAociA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbnZhc1dpZHRoV2l0aFJhdGlvIC8gdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbnZhcy53aWR0aCAvICh0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNhbnZhc1dpZHRoV2l0aFJhdGlvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW52YXMud2lkdGggKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICB9XG4gICAgLyoqIFBvc2l0aW9uIG9mIHN0YXJ0IHJlbmRlcmluZyAqL1xuICAgIGdldCBmaXJzdFZpc2libGVJbmRleCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZpc2libGVTbGlkZXIpID8gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4pIDogMDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYkxvZ28gc2Vjb25kIGluaXRpYWxpemF0aW9uIScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmhlbHBVcmwgPSAnL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvd2ViLWxvZ28ubWQnO1xuICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1aS5kaXYoJ05vIG1lc3NhZ2UnKTtcbiAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuY2FudmFzID0gdWkuY2FudmFzKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAvL3RoaXMuc2xpZGVyLnNldFNob3dIYW5kbGVzKGZhbHNlKTtcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuekluZGV4ID0gJzk5OSc7XG4gICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5oZWlnaHQgPSAnMC43ZW0nO1xuICAgICAgICB0aGlzLnZpc2libGVTbGlkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbGlkZXIub25WYWx1ZXNDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoKHRoaXMuaG9zdCA9PSBudWxsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIFJlc2l6ZSBzbGlkZXIgaWYgd2UgY2FuIHJlc2l6ZSBkbyB0aGF0ICovXG4gICAgICAgICAgICBpZiAoKHRoaXMuYWxsb3dSZXNpemUpICYmICghdGhpcy50dXJuT2ZSZXNpemVGb3JPbmVTZXRWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAodGhpcy52aXNpYmxlU2xpZGVyKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50T2ZQb3NpdGlvbnMgPSBNYXRoLmNlaWwodGhpcy5zbGlkZXIubWF4IC0gdGhpcy5zbGlkZXIubWluKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkV2lkdGggPSAodGhpcy5jYW52YXMud2lkdGggLyBjb3VudE9mUG9zaXRpb25zKSAtIHRoaXMucG9zaXRpb25NYXJnaW5WYWx1ZTtcbiAgICAgICAgICAgICAgICAvLyBzYXZpbmcgcG9zaXRpb25XaWR0aCB2YWx1ZSBnbG9iYWwgKGV2ZW4gaWYgc2xpZGVyIGlzIG5vdCB2aXNpYmxlKVxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IGNhbGN1bGF0ZWRXaWR0aDtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gY2FsY3VsYXRlZFdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50dXJuT2ZSZXNpemVGb3JPbmVTZXRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhvc3QgPSB1aS5kaXYoW3RoaXMubXNnSG9zdCwgdGhpcy5jYW52YXNdKTtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcic7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5hbGlnbkl0ZW1zID0gJ2NlbnRlcic7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cnLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgICBjb25zdCBnZXRNb25vbWVyID0gKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRYID0gcC54ICsgdGhpcy5maXJzdFZpc2libGVJbmRleCAqIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW47XG4gICAgICAgICAgICBjb25zdCBqUG9zID0gTWF0aC5mbG9vcihwLnggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICsgdGhpcy5maXJzdFZpc2libGVJbmRleCk7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgaWYgKHBvc2l0aW9uID09PSB2b2lkIDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtqUG9zLCBudWxsLCBudWxsXTtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAgICAgICAgIC5maW5kKChtKSA9PiBwb3NpdGlvbi5mcmVxW21dLmJvdW5kcy5jb250YWlucyhjYWxjdWxhdGVkWCwgcC55KSk7XG4gICAgICAgICAgICBpZiAobW9ub21lciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbnVsbCwgbnVsbF07XG4gICAgICAgICAgICByZXR1cm4gW2pQb3MsIG1vbm9tZXIsIHBvc2l0aW9uLmZyZXFbbW9ub21lcl1dO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb3JyZWN0TW9ub21lckZpbHRlciA9IChpUm93LCBtb25vbWVyLCBqUG9zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICB9O1xuICAgICAgICByeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJncyA9IGU7XG4gICAgICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICBjb25zdCBjdXJzb3JQID0gdGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcik7XG4gICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKGN1cnNvclApO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NvdW50ID0gd3UuY291bnQoKS50YWtlKHRoaXMuZGF0YUZyYW1lLnJvd0NvdW50KS5maWx0ZXIoZnVuY3Rpb24gKGlSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcnJlY3RNb25vbWVyRmlsdGVyKGlSb3csIG1vbm9tZXIsIGpQb3MpO1xuICAgICAgICAgICAgICAgIH0pLnJlZHVjZSgoY291bnQsIGlSb3cpID0+IGNvdW50ICsgMSwgMCk7XG4gICAgICAgICAgICAgICAgdWkudG9vbHRpcC5zaG93KHVpLmRpdihbdWkuZGl2KGAke21vbm9tZXJ9YCksIHVpLmRpdihgJHtyb3dDb3VudH0gcm93c2ApXSksIGFyZ3MueCArIDE2LCBhcmdzLnkgKyAxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB1aS50b29sdGlwLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIodGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcikpO1xuICAgICAgICAgICAgLy8gcHJldmVudHMgZGVzZWxlY3QgYWxsIHJvd3MgaWYgd2UgbWlzcyBtb25vbWVyIGJvdW5kc1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5pbml0KGZ1bmN0aW9uIChpUm93KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3JyZWN0TW9ub21lckZpbHRlcihpUm93LCBtb25vbWVyLCBqUG9zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnd2hlZWwnKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy52aXNpYmxlU2xpZGVyKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50T2ZTY3JvbGxQb3NpdGlvbnMgPSAoZS5kZWx0YVkgLyAxMDApICogTWF0aC5tYXgoTWF0aC5mbG9vcigodGhpcy5jb3VudE9mUmVuZGVyUG9zaXRpb25zKSAvIDIpLCAxKTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnNjcm9sbEJ5KHRoaXMuc2xpZGVyLm1pbiArIGNvdW50T2ZTY3JvbGxQb3NpdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KS5zdWJzY3JpYmUodGhpcy5yb290T25TaXplQ2hhbmdlZC5iaW5kKHRoaXMpKSk7XG4gICAgICAgIHRoaXMucm9vdC5hcHBlbmQodGhpcy5ob3N0KTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZCh0aGlzLnNsaWRlci5yb290KTtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcbiAgICAgICAgdGhpcy51cGRhdGVTbGlkZXIoKTtcbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgfVxuICAgIC8qKiBIYW5kbGVyIG9mIGNoYW5naW5nIHNpemUgV2ViTG9nbyAqL1xuICAgIHJvb3RPblNpemVDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGUod2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICB9XG4gICAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAgICovXG4gICAgdXBkYXRlU2VxQ29sKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VxQ29sID0gdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPyB0aGlzLmRhdGFGcmFtZS5jb2wodGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSBwaWNrVXBTZXFDb2wodGhpcy5kYXRhRnJhbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zZXFDb2wgPyB0aGlzLnNlcUNvbC5uYW1lIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuc2VxQ29sLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0dGVyID0gZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3AgPSBwaWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICAvKiogVXBkYXRlcyB7QGxpbmsgcG9zaXRpb25OYW1lc30gYW5kIGNhbGN1bGF0ZXMge0BsaW5rIHN0YXJ0UG9zaXRpb259IGFuZCB7QGxpbmsgZW5kUG9zaXRpb259LlxuICAgICAqL1xuICAgIHVwZGF0ZVBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcUNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbGV0IGNhdGVnb3JpZXM7XG4gICAgICAgIGlmICh0aGlzLnNocmlua0VtcHR5VGFpbCkge1xuICAgICAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoQXJyYXkuZnJvbShBcnJheShpbmRpY2VzLmxlbmd0aCkua2V5cygpKS5tYXAoKGkpID0+IHRoaXMuc2VxQ29sLmdldChpbmRpY2VzW2ldKSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSB0aGlzLnNlcUNvbC5jYXRlZ29yaWVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IE1hdGgubWF4KC4uLmNhdGVnb3JpZXMubWFwKChzKSA9PiBzICE9PSBudWxsID8gdGhpcy5zcGxpdHRlcihzKS5sZW5ndGggOiAwKSkgOiAwO1xuICAgICAgICAvLyBHZXQgcG9zaXRpb24gbmFtZXMgZnJvbSBkYXRhIGNvbHVtbiB0YWcgJ3Bvc2l0aW9uTmFtZXMnXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uTmFtZXNUeHQgPSB0aGlzLnNlcUNvbC5nZXRUYWcoJ3Bvc2l0aW9uTmFtZXMnKTtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgJ3Bvc2l0aW9uTmFtZXMnIHRhZyBpcyBub3QgcHJvdmlkZWRcbiAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gcG9zaXRpb25OYW1lc1R4dCA/IHBvc2l0aW9uTmFtZXNUeHQuc3BsaXQoJywgJykubWFwKChuKSA9PiBuLnRyaW0oKSkgOlxuICAgICAgICAgICAgWy4uLkFycmF5KG1heExlbmd0aCkua2V5cygpXS5tYXAoKGpQb3MpID0+IGAke2pQb3MgKyAxfWApO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAodGhpcy5zdGFydFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLnN0YXJ0UG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5zdGFydFBvc2l0aW9uTmFtZSkgOiAwO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uID0gKHRoaXMuZW5kUG9zaXRpb25OYW1lICYmIHRoaXMucG9zaXRpb25OYW1lcyAmJlxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluY2x1ZGVzKHRoaXMuZW5kUG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5lbmRQb3NpdGlvbk5hbWUpIDogKG1heExlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBnZXQgd2lkdGhBcmVhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGggLyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICB9XG4gICAgZ2V0IGhlaWdodEFyZWEoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLm1heEhlaWdodCwgTWF0aC5tYXgodGhpcy5taW5IZWlnaHQsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQpKTtcbiAgICB9XG4gICAgZ2V0IHhTY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJvb3QuY2xpZW50V2lkdGggLSB0aGlzLkxlbmd0aCAqIHRoaXMucG9zaXRpb25NYXJnaW5WYWx1ZSkgLyB0aGlzLndpZHRoQXJlYTtcbiAgICB9XG4gICAgZ2V0IHlTY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLyB0aGlzLmhlaWdodEFyZWE7XG4gICAgfVxuICAgIGNoZWNrSXNIaWRlU2xpZGVyKCkge1xuICAgICAgICBsZXQgc2hvd1NsaWRlcldpdGhGaXRBcmVhID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWluU2NhbGUgPSBNYXRoLm1pbih0aGlzLnhTY2FsZSwgdGhpcy55U2NhbGUpO1xuICAgICAgICBpZiAoKChtaW5TY2FsZSA9PSB0aGlzLnhTY2FsZSkgfHwgKG1pblNjYWxlIDw9IDEpKSAmJiAodGhpcy5maXRBcmVhKSkge1xuICAgICAgICAgICAgc2hvd1NsaWRlcldpdGhGaXRBcmVhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgodGhpcy5maXhXaWR0aCB8fCBNYXRoLmNlaWwodGhpcy5jYW52YXMud2lkdGggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luKSA+PSB0aGlzLkxlbmd0aCkgfHwgKHNob3dTbGlkZXJXaXRoRml0QXJlYSkpO1xuICAgIH1cbiAgICBzZXRTbGlkZXJWaXNpYmlsaXR5KHZpc2libGUpIHtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdpbmhlcml0JztcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZVNsaWRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlci5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVTbGlkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogVXBkYXRlcyB7QGxpbmsgc2xpZGVyfSwgbmVlZGVkIHRvIHNldCBzbGlkZXIgb3B0aW9ucyBhbmQgdG8gdXBkYXRlIHNsaWRlciBwb3NpdGlvbi4gKi9cbiAgICB1cGRhdGVTbGlkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrSXNIaWRlU2xpZGVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2xpZGVyVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFNsaWRlclZpc2liaWxpdHkodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0aGlzLnNsaWRlciAhPSBudWxsKSAmJiAodGhpcy5jYW52YXMgIT0gbnVsbCkpIHtcbiAgICAgICAgICAgIGxldCBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluID0gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4gKyB0aGlzLmNhbnZhcy53aWR0aCAvIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4pIC0gdGhpcy5MZW5ndGg7XG4gICAgICAgICAgICBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluID0gZGlmZkVuZFNjcm9sbEFuZFNsaWRlck1pbiA+IDAgPyBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluIDogMDtcbiAgICAgICAgICAgIGxldCBuZXdNaW4gPSBNYXRoLmZsb29yKHRoaXMuc2xpZGVyLm1pbiAtIGRpZmZFbmRTY3JvbGxBbmRTbGlkZXJNaW4pO1xuICAgICAgICAgICAgbGV0IG5ld01heCA9IE1hdGguZmxvb3IodGhpcy5zbGlkZXIubWluIC0gZGlmZkVuZFNjcm9sbEFuZFNsaWRlck1pbikgKyBNYXRoLmZsb29yKHRoaXMuY2FudmFzLndpZHRoIC8gdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbik7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja0lzSGlkZVNsaWRlcigpKSB7XG4gICAgICAgICAgICAgICAgbmV3TWluID0gMDtcbiAgICAgICAgICAgICAgICBuZXdNYXggPSB0aGlzLkxlbmd0aCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnR1cm5PZlJlc2l6ZUZvck9uZVNldFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnNldFZhbHVlcygwLCB0aGlzLkxlbmd0aCwgbmV3TWluLCBuZXdNYXgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBIYW5kbGVyIG9mIHByb3BlcnR5IGNoYW5nZSBldmVudHMuICovXG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0YXJ0UG9zaXRpb25OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kUG9zaXRpb25OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml4V2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2xpZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXRBcmVhJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hyaW5rRW1wdHlUYWlsJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2xpZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgfVxuICAgIC8qKiBBZGQgZmlsdGVyIGhhbmRsZXJzIHdoZW4gdGFibGUgaXMgYSBhdHRhY2hlZCAgKi9cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHN1cGVyLm9uVGFibGVBdHRhY2hlZCgpO1xuICAgICAgICBjb25zdCBkYXRhRnJhbWVUeHQgPSB0aGlzLmRhdGFGcmFtZSA/ICdkYXRhJyA6ICdudWxsJztcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCggZGF0YUZyYW1lID0gJHtkYXRhRnJhbWVUeHR9ICkgc3RhcnRgKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5vbkNoYW5nZWQuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnJlbmRlcigpKSk7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCgpIGVuZGApO1xuICAgIH1cbiAgICAvKiogUmVtb3ZlIGFsbCBoYW5kbGVycyB3aGVuIHRhYmxlIGlzIGEgZGV0YWNoICAqL1xuICAgIGRldGFjaCgpIHtcbiAgICAgICAgY29uc3QgX3N1cGVyID0gT2JqZWN0LmNyZWF0ZShudWxsLCB7XG4gICAgICAgICAgICBkZXRhY2g6IHsgZ2V0OiAoKSA9PiBzdXBlci5kZXRhY2ggfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFGcmFtZVR4dCA9IGAke3RoaXMuZGF0YUZyYW1lID8gJ2RhdGEnIDogJ251bGwnfWA7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke2RhdGFGcmFtZVR4dH0gKSBzdGFydGApO1xuICAgICAgICAgICAgX3N1cGVyLmRldGFjaC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMubXNnSG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoKSBlbmRgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHJlbmRlcmluZyAqL1xuICAgIF9udWxsU2VxdWVuY2UoZmlsbGVyUmVzaWR1ZSA9ICdYJykge1xuICAgICAgICBpZiAoIXRoaXMuc2tpcEVtcHR5U2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICAvKiogSGVscGVyIGZ1bmN0aW9uIGZvciByZW1vdmUgZW1wdHkgcG9zaXRpb25zICovXG4gICAgLy8gVE9ETzogdXNlIHRoaXMgZnVuY3Rpb24gaW4gZnJvbSBjb3JlXG4gICAgcmVtb3ZlV2hlcmUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICBsZXQgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICBsZXQgdXBkYXRlSXRlcmF0b3IgPSAwO1xuICAgICAgICBmb3IgKGxldCBkZWxldGVJdGVyYXRvciA9IDA7IGRlbGV0ZUl0ZXJhdG9yIDwgbGVuZ3RoOyBkZWxldGVJdGVyYXRvcisrKSB7XG4gICAgICAgICAgICBpZiAoIXByZWRpY2F0ZShhcnJheVtkZWxldGVJdGVyYXRvcl0pKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbdXBkYXRlSXRlcmF0b3JdID0gYXJyYXlbZGVsZXRlSXRlcmF0b3JdO1xuICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZXJhdG9yKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXJyYXkubGVuZ3RoID0gdXBkYXRlSXRlcmF0b3I7XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG4gICAgLyoqIEZ1bmN0aW9uIGZvciByZW1vdmluZyBlbXB0eSBwb3NpdGlvbnMgKi9cbiAgICBfcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXaGVyZSh0aGlzLnBvc2l0aW9ucywgaXRlbSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0uZnJlcVsnLSddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY291bnQpID09PSBpdGVtLnJvd0NvdW50OyB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY2FsY3VsYXRlKHIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhvc3QgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IG5ldyBBcnJheSh0aGlzLnN0YXJ0UG9zaXRpb24gPD0gdGhpcy5lbmRQb3NpdGlvbiA/IHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24gKyAxIDogMCk7XG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zTmFtZSA9IHRoaXMucG9zaXRpb25OYW1lc1t0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXTtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdID0gbmV3IFBvc2l0aW9uSW5mbyhwb3NOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyMDIyLTA1LTA1IGFza2Fsa2luIGluc3RydWN0ZWQgdG8gc2hvdyBXZWJMb2dvIGJhc2VkIG9uIGZpbHRlciAobm90IHNlbGVjdGlvbilcbiAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgLy8gY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi50cnVlQ291bnQgPiAwID8gdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLmdldFNlbGVjdGVkSW5kZXhlcygpIDpcbiAgICAgICAgLy8gICB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IGluZGljZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIGluZGljZXMpIHtcbiAgICAgICAgICAgIGxldCBzID0gKHRoaXMuc2VxQ29sLmdldChpKSk7XG4gICAgICAgICAgICBpZiAoIXMpIHtcbiAgICAgICAgICAgICAgICBzID0gdGhpcy5fbnVsbFNlcXVlbmNlKCk7XG4gICAgICAgICAgICAgICAgKyt0aGlzLnJvd3NOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHRoaXMuc3BsaXR0ZXIocyk7XG4gICAgICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbUluZm8gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBzZXFNW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIHx8ICctJztcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIHBtSW5mbykpXG4gICAgICAgICAgICAgICAgICAgIHBtSW5mb1ttXSA9IG5ldyBQb3NpdGlvbk1vbm9tZXJJbmZvKCk7XG4gICAgICAgICAgICAgICAgcG1JbmZvW21dLmNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8jcmVnaW9uIFBvbGlzaCBmcmVxIGNvdW50c1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxWyctJ107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSlcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCArPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxW21dLmNvdW50O1xuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBpbiB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBuID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudCAvIHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjICs9IC1wbiAqIE1hdGgubG9nMihwbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgICAgICB0aGlzLl9yZW1vdmVFbXB0eVBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZU1heEhlaWdodCA9IHRoaXMuY2FudmFzLmhlaWdodCAtIHRoaXMuYXhpc0hlaWdodCAqIHI7XG4gICAgICAgIC8vI3JlZ2lvbiBDYWxjdWxhdGUgc2NyZWVuXG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgZnJlcSA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXE7XG4gICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRTaXplID0gdGhpcy5nZXRBbHBoYWJldFNpemUoKTtcbiAgICAgICAgICAgIGlmICgodGhpcy5wb3NpdGlvbkhlaWdodCA9PSBQb3NpdGlvbkhlaWdodC5FbnRyb3B5KSAmJiAoYWxwaGFiZXRTaXplID09IG51bGwpKSB7XG4gICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignV2ViTG9nbzogYWxwaGFiZXQgaXMgdW5kZWZpbmVkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgPyAoYWJzb2x1dGVNYXhIZWlnaHQgKiAoTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkgLSAodGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYykpIC8gTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkpIDogYWJzb2x1dGVNYXhIZWlnaHQ7XG4gICAgICAgICAgICBsZXQgeSA9IHRoaXMuYXhpc0hlaWdodCAqIHIgKyAoYWJzb2x1dGVNYXhIZWlnaHQgLSBtYXhIZWlnaHQgLSAxKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhmcmVxKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFbMF0gIT09ICctJyAmJiBiWzBdICE9PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiWzFdLmNvdW50IC0gYVsxXS5jb3VudDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScgJiYgYlswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBlbHNlIC8qIChiWzBdID09PSAnLScpICovXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiArMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbTogc3RyaW5nID0gZW50cnlbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaCA9IG1heEhlaWdodCAqIHBtSW5mby5jb3VudCAvIHJvd0NvdW50O1xuICAgICAgICAgICAgICAgIHBtSW5mby5ib3VuZHMgPSBuZXcgREcuUmVjdChqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiwgeSwgdGhpcy5fcG9zaXRpb25XaWR0aCwgaCk7XG4gICAgICAgICAgICAgICAgeSArPSBoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgIH1cbiAgICAvKiogUmVuZGVyIFdlYkxvZ28gc2Vuc2l0aXZlIHRvIGNoYW5nZXMgaW4gcGFyYW1zIG9mIHJlbmRlcmluZ1xuICAgICAqQHBhcmFtIHtib29sZWFufSByZWNhbGMgLSBpbmRpY2F0ZXMgdGhhdCBuZWVkIHRvIHJlY2FsY3VsYXRlIGRhdGEgZm9yIHJlbmRlcmluZ1xuICAgICAqL1xuICAgIHJlbmRlcihyZWNhbGMgPSB0cnVlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMubXNnSG9zdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sICYmICF0aGlzLmNwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LmlubmVyVGV4dCA9IGBVbmtub3duIHBhbGV0dGUgKGNvbHVtbiBzZW1UeXBlOiAnJHt0aGlzLnNlcUNvbC5zZW1UeXBlfScpLmA7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zZXFDb2wgfHwgIXRoaXMuZGF0YUZyYW1lIHx8ICF0aGlzLmNwIHx8IHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5lbmRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5ob3N0ID09IG51bGwgfHwgdGhpcy5zbGlkZXIgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuaG9zdC5jbGllbnRXaWR0aH1weGA7XG4gICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgaWYgKHJlY2FsYylcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZShyKTtcbiAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IERHLkNvbG9yLnRvSHRtbCh0aGlzLmJhY2tncm91bmRDb2xvcik7XG4gICAgICAgIGcuZmlsbFJlY3QoMCwgMCwgdGhpcy5jYW52YXMud2lkdGgsIHRoaXMuY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gdGhpcy50ZXh0QmFzZWxpbmU7XG4gICAgICAgIGNvbnN0IG1heENvdW50T2ZSb3dzUmVuZGVyZWQgPSB0aGlzLmNvdW50T2ZSZW5kZXJQb3NpdGlvbnMgKyAxO1xuICAgICAgICBjb25zdCBmaXJzdFZpc2libGVJbmRleCA9ICh0aGlzLnZpc2libGVTbGlkZXIpID8gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4pIDogMDtcbiAgICAgICAgY29uc3QgbGFzdFZpc2libGVJbmRleCA9IE1hdGgubWluKHRoaXMuTGVuZ3RoLCBmaXJzdFZpc2libGVJbmRleCArIG1heENvdW50T2ZSb3dzUmVuZGVyZWQpO1xuICAgICAgICAvLyNyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRm9udFNpemUgPSAxMCAqIHI7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBnLmZvbnQgPSBgJHtwb3NpdGlvbkZvbnRTaXplLnRvRml4ZWQoMSl9cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWZgO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMuX3Bvc2l0aW9uV2lkdGggLSAyKSA/IDEgOiAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpIC8gcG9zTmFtZU1heFdpZHRoO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gdGhpcy5maXJzdFZpc2libGVJbmRleDsgalBvcyA8IGxhc3RWaXNpYmxlSW5kZXg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbnNbalBvc107XG4gICAgICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBnLnNldFRyYW5zZm9ybShoU2NhbGUsIDAsIDAsIDEsIGpQb3MgKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICsgdGhpcy5fcG9zaXRpb25XaWR0aCAvIDIgLSB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogZmlyc3RWaXNpYmxlSW5kZXgsIDApO1xuICAgICAgICAgICAgZy5maWxsVGV4dChwb3MubmFtZSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8jZW5kcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgICAgICBjb25zdCBmb250U3R5bGUgPSAnMTZweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZic7XG4gICAgICAgIC8vIEhhY2tzIHRvIHNjYWxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHRvIHRhcmdldCByZWN0YW5nbGVcbiAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVyQXNjZW50ID0gMC4yNTtcbiAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVySGVpZ2h0ID0gMTIuMjtcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IHRoaXMuZmlyc3RWaXNpYmxlSW5kZXg7IGpQb3MgPCBsYXN0VmlzaWJsZUluZGV4OyBqUG9zKyspIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21vbm9tZXIsIHBtSW5mb10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciAhPT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJUeHQgPSBtb25vbWVyVG9TaG9ydChtb25vbWVyLCA1KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYiA9IHBtSW5mby5ib3VuZHM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBiLmxlZnQgLSB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogdGhpcy5maXJzdFZpc2libGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBnLnN0cm9rZVN0eWxlID0gJ2xpZ2h0Z3JheSc7XG4gICAgICAgICAgICAgICAgICAgIGcubGluZVdpZHRoID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZy5yZWN0KGxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gKF9hID0gdGhpcy5jcC5nZXQobW9ub21lcikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuY3AuZ2V0KCdvdGhlcicpO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXJUeHQpO1xuICAgICAgICAgICAgICAgICAgICBnLnNldFRyYW5zZm9ybShiLndpZHRoIC8gbVRtLndpZHRoLCAwLCAwLCBiLmhlaWdodCAvIHVwcGVyY2FzZUxldHRlckhlaWdodCwgbGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXJUeHQsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQ2FsY3VsYXRlIGNhbnZhcyBzaXplIGFuIHBvc2l0aW9uV2lkdGggYW5kIHVwZGF0ZXMgcHJvcGVydGllcyAqL1xuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuaG9zdClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBsZXQgd2lkdGggPSB0aGlzLndpZHRoQXJlYTtcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMuaGVpZ2h0QXJlYTtcbiAgICAgICAgaWYgKCh0aGlzLmZpdEFyZWEpICYmICghdGhpcy52aXNpYmxlU2xpZGVyKSkge1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbih0aGlzLnhTY2FsZSwgdGhpcy55U2NhbGUpKTtcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggKiBzY2FsZTtcbiAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCAqIHNjYWxlO1xuICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aCAqIHNjYWxlO1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoID0gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luIC8gcjtcbiAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB0aGlzLnJvb3QuY2xpZW50V2lkdGggKiByO1xuICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9IGAke3RoaXMucm9vdC5jbGllbnRXaWR0aH1weGA7XG4gICAgICAgIC8vIGNvbnN0IGNhbnZhc0hlaWdodDogbnVtYmVyID0gd2lkdGggPiB0aGlzLnJvb3QuY2xpZW50V2lkdGggPyBoZWlnaHQgLSA4IDogaGVpZ2h0O1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQgKiByO1xuICAgICAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgICAgICBpZiAodGhpcy5maXhXaWR0aCkge1xuICAgICAgICAgICAgLy8gZnVsbCB3aWR0aCBmb3IgY2FudmFzIGhvc3QgYW5kIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gYWxsb3cgc2Nyb2xsIGNhbnZhcyBpbiByb290XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUud2lkdGggPSB0aGlzLmhvc3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUub3ZlcmZsb3dYID0gJ2F1dG8haW1wb3J0YW50JztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgndGV4dC1hbGlnbicsIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCk7XG4gICAgICAgICAgICBjb25zdCBzbGlkZXJIZWlnaHQgPSB0aGlzLnZpc2libGVTbGlkZXIgPyAxMCA6IDA7XG4gICAgICAgICAgICAvLyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAgICAgICAgIGxldCBob3N0VG9wTWFyZ2luID0gMDtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy52ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICAgICAgICAgICAgICBob3N0VG9wTWFyZ2luID0gTWF0aC5tYXgoMCwgKHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpIC8gMik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC0gaGVpZ2h0IC0gc2xpZGVySGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBob3Jpem9udGFsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RMZWZ0TWFyZ2luID0gMDtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RMZWZ0TWFyZ2luID0gMDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdExlZnRNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudFdpZHRoIC0gd2lkdGgpIC8gMik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdExlZnRNYXJnaW4gPSBNYXRoLm1heCgwLCB0aGlzLnJvb3QuY2xpZW50V2lkdGggLSB3aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdtYXJnaW4tdG9wJywgYCR7aG9zdFRvcE1hcmdpbn1weGAsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCBgJHtob3N0TGVmdE1hcmdpbn1weGAsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW4gKyBjYW52YXNIZWlnaHR9cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8PSBoZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke3RoaXMucm9vdC5jbGllbnRIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0QWxwaGFiZXRTaXplKCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy51bml0c0hhbmRsZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRBbHBoYWJldFNpemUoKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICB9XG59XG5XZWJMb2dvLnJlc2lkdWVzU2V0ID0gJ251Y2xlb3RpZGVzJztcbldlYkxvZ28udmlld2VyQ291bnQgPSAtMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWQyVmlMV3h2WjI4dWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUozWldJdGJHOW5ieTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEV0QlFVc3NTVUZCU1N4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQlF6RkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU03UVVGRGNFSXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hOUVVGTkxFTkJRVU03UVVGSk4wSXNUMEZCVHl4RlFVRkRMRmxCUVZrc1JVRkJReXhOUVVGTkxIZENRVUYzUWl4RFFVRkRPMEZCUlhCRUxFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNZMEZCWXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3haUVVGWkxFVkJRWEZDTEUxQlFVMHNkMEpCUVhkQ0xFTkJRVU03UVVGUmNFZ3NTVUZCU3l4alFVZEtPMEZCU0VRc1YwRkJTeXhqUVVGak8wbEJRMnBDTEhGRFFVRnRRaXhEUVVGQk8wbEJRMjVDTEN0Q1FVRmhMRU5CUVVFN1FVRkRaaXhEUVVGRExFVkJTRWtzWTBGQll5eExRVUZrTEdOQlFXTXNVVUZIYkVJN1FVRlJSRHM3TzBkQlIwYzdRVUZEU0N4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVlVGQlV5eExRVUZwUWl4RlFVRkZMRU5CUVZNN1NVRkRia1lzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdTVUZETVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUml4RFFVRkRMRU5CUVVNN1FVRkZSaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJVeXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyaEdMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVDBGQlR5eHRRa0ZCYlVJN1NVRlBPVUlzV1VGQldTeFJRVUZuUWl4RFFVRkRMRVZCUVVVc1UwRkJhMElzU1VGQlNTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTnVRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0SlFVTjJRaXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNXVUZCV1R0SlFVMTJRanM3T3pzN1QwRkxSenRKUVVOSUxGbEJRVmtzU1VGQldTeEZRVUZGTEU5QlFUWkRMRVZCUVVVc1JVRkJSU3hYUVVGdFFpeERRVUZETEVWQlFVVXNiVUpCUVRKQ0xFTkJRVU03VVVGRE0wZ3NTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGFrSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGFrSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhSUVVGUkxFTkJRVU03VVVGRGVrSXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEdkQ1FVRm5RaXhEUVVGRE8wbEJRek5ETEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhQUVVGUkxGTkJRVkVzUlVGQlJTeERRVUZETEZGQlFWRTdTVUY1UjNSRE8xRkJRMFVzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUYwUjA4c1lVRkJVU3hIUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJTOUNMR2RDUVVGWExFZEJRVmtzUzBGQlN5eERRVUZETzFGQlJYSkRMRFJHUVVFMFJqdFJRVU5zUml4UFFVRkZMRWRCUVhOQ0xFbEJRVWtzUTBGQlF6dFJRVkV2UWl4bFFVRlZMRWRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSWGhDTEZkQlFVMHNSMEZCTmtJc1NVRkJTU3hEUVVGRE8xRkJRM2hETEdGQlFWRXNSMEZCZDBJc1NVRkJTU3hEUVVGRE8xRkJRemRETEcxRFFVRnRRenRSUVVNelFpeGpRVUZUTEVkQlFXMUNMRVZCUVVVc1EwRkJRenRSUVVVdlFpeGxRVUZWTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNaQ0xHRkJRVkVzUjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEY2tJc2EwSkJRV0VzUjBGQldTeExRVUZMTEVOQlFVTTdVVUZETDBJc1owSkJRVmNzUjBGQldTeEpRVUZKTEVOQlFVTTdVVUZETlVJc0swSkJRVEJDTEVkQlFWa3NTMEZCU3l4RFFVRkRPMUZCVFRkRExHOUNRVUZsTEVkQlFWY3NWVUZCVlN4RFFVRkRPMUZCUzNKRExHMUNRVUZqTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCVnpGQ0xHdENRVUZoTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUlRkQ0xHdENRVUZoTEVkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZNMElzWjBKQlFWY3NSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVdsRWVrSXNZVUZCVVN4SFFVRnRRaXhGUVVGRkxFTkJRVU03VVVGTGNFTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETzFGQlEzQkRMRTlCUVU4c1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJYcENMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUzBGQlN5eERRVUZETzFGQlF6RkNMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlJYcENMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVXNSVUZCUlN4RFFVRkJPemhFUVVOdVFpeERRVUZETEVOQlFVTTdVVUZEZUVRc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVUU3WjBWQlEyRXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZCTzJkRlFVTlpMRU5CUVVNc1EwRkJRenRSUVVVeFJDeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVZzUlN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOb1JTeEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRk5VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVVM1F5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeFJRVUZSTEVWQlEyaEZMRVZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03VVVGRE1VTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNVVUZCVVN4RlFVTndSU3hGUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzFGQlF6RkRMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6RkVMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnBGTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEUxQlFVMHNSVUZEYkVVc1JVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UXl4SlFVRkpMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjBReXhKUVVGSkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhOUVVGTkxFVkJRVVU3V1VGRGRrTXNOa0pCUVRaQ0xFZEJRVWNzUTBGQlF5eERRVUZETzFOQlEyNURPMUZCUTBRc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTERaQ1FVRTJRaXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51Unl4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWTBGQll5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZ1U1N4TlFVRk5MRXRCUVVzc1IwRkJhMElzUlVGQlF5eExRVUZMTEVWQlFVVXNVMEZCVXl4RlFVRkRMRU5CUVVNN1VVRkRhRVFzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF6dEpRVU51UXl4RFFVRkRPMGxCT1VaRUxEQkVRVUV3UkR0SlFVTXhSQ3hKUVVGWkxFMUJRVTA3VVVGRGFFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVTdXVUZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTTVRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRhRWNzUTBGQlF6dEpRVVZFTEd0SFFVRnJSenRKUVVOc1J5eEpRVUZaTEhWQ1FVRjFRanRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRPMGxCUTNoRUxFTkJRVU03U1VGRlJDeEpRVUZaTEcxQ1FVRnRRanM3VVVGRE4wSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVUVzVFVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N3d1EwRkJSU3h6UWtGQmMwSXNSVUZCUlN4TlFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRk8xbEJRMjVITEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRUUVVNMVFqdFJRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEZGQlFWRXNSVUZCUlR0WlFVTjZReXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTTdVMEZETlVJN1VVRkZSQ3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTTdTVUZGUkN4NVJVRkJlVVU3U1VGRGVrVXNTVUZCV1N4elFrRkJjMEk3VVVGRGFFTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUlVGQlJUdFpRVU55UWl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOV08xRkJRMFFzVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlEyeERMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5VTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF6dFRRVU5xUlR0aFFVRk5PMWxCUTB3c1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJEdEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRlpMRzlDUVVGdlFqdFJRVU01UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF6dEpRVU55UkN4RFFVRkRPMGxCUjBRc2EwTkJRV3RETzBsQlEyeERMRWxCUVZrc2FVSkJRV2xDTzFGQlF6TkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEyaEZMRU5CUVVNN1NVRnRSRThzU1VGQlNUdFJRVU5XTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRaUVVOd1FpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdXVUZEYUVRc1QwRkJUenRUUVVOU08xRkJSVVFzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRlRUlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4eFEwRkJjVU1zUTBGQlF6dFJRVVZ5UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRjRU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVVZ3UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJSV3BETEc5RFFVRnZRenRSUVVOd1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWVXNRMEZCUXp0UlFVTTNReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU4wUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVONFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVVjRReXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVVXpRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRM3BETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTzJkQ1FVTjJRaXhQUVVGUE8yRkJRMUk3V1VGRFJDdzBRMEZCTkVNN1dVRkROVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRE8yZENRVU14UkN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlJUdG5Ra0ZEZEVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNSRkxFMUJRVTBzWlVGQlpTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1owSkJRekZHTEc5RlFVRnZSVHRuUWtGRGNFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhsUVVGbExFTkJRVU03WjBKQlEzSkRMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzWlVGQlpTeERRVUZETzJGQlEzWkRPMWxCUTBRc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVONFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUjBnc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWb1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFZEJRVWNzVVVGQlVTeERRVUZETzFGQlF6RkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzUTBGQlF6dFJRVU4wUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVVV2UkN4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVmNzUlVGQmRVUXNSVUZCUlR0WlFVTjBSaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTTdXVUZEYUVZc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJRenRaUVVOeVJpeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJYUkRMRWxCUVVrc1VVRkJVU3hMUVVGTExFdEJRVXNzUTBGQlF6dG5Ra0ZEY2tJc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkZOVUlzVFVGQlRTeFBRVUZQTEVkQlFYVkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0cFFrRkRNMFFzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMjVGTEVsQlFVa3NUMEZCVHl4TFFVRkxMRk5CUVZNN1owSkJRM1pDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJUVkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUkN4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVVNc1NVRkJXU3hGUVVGRkxFOUJRV1VzUlVGQlJTeEpRVUZaTEVWQlFVVXNSVUZCUlR0WlFVTXpSU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlEzcEZMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWtzUzBGQlN5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhGUVVGRkxFbEJRVWtzVDBGQlR5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0pITEVOQlFVTXNRMEZCUXp0UlFVVkdMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRV0VzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZoTEVWQlFVVXNSVUZCUlR0WlFVTXZSU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZsTEVOQlFVTTdXVUZGTjBJc1RVRkJUU3hEUVVGRExFZEJRVmNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRekZETEUxQlFVMHNUMEZCVHl4SFFVRmhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycEZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRelZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrc1QwRkJUeXhGUVVGRk8yZENRVU0zUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZNc1NVRkJTVHR2UWtGRE5VVXNUMEZCVHl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU51UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOcVJDeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGRkJRVkVzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRGRrYzdhVUpCUVUwN1owSkJRMHdzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRoUVVOdVFqdFJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlVnc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQllTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFXRXNSVUZCUlN4RlFVRkZPMWxCUXk5RkxFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFXVXNRMEZCUXp0WlFVTTNRaXhOUVVGTkxFTkJRVU1zUjBGQlZ5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03V1VGRE1VTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVV6UlN4MVJFRkJkVVE3V1VGRGRrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFVkJRVVU3WjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlRMRWxCUVVrN2IwSkJRM3BETEU5QlFVOHNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRSUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzFsQlF6TkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllUdG5Ra0ZEY2tJc1QwRkJUenRaUVVOVUxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6ZEhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhIUVVGSExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1VVRkZha1VzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRk4wWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGYmtNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU42UXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03VVVGRGNFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU53UWl4RFFVRkRPMGxCUlVRc2RVTkJRWFZETzBsQlF5OUNMR2xDUVVGcFFqdFJRVU4yUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRM3BETEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRSUVVOd1FpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGUkR0UFFVTkhPMGxCUTBzc1dVRkJXVHRSUVVOc1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRiRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRNMFlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMmRDUVVNelF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRoUVVOcVJUdFpRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRFppeE5RVUZOTEV0QlFVc3NSMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU42UkN4TlFVRk5MRk5CUVZNc1IwRkJWeXhKUVVGSkxFTkJRVU1zVFVGQlR5eERRVUZETEUxQlFVMHNhME5CUVdkQ0xFTkJRVU03WjBKQlF6bEVMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE9VTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJSV3hFTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMkZCUTNSRE8ybENRVUZOTzJkQ1FVTk1MRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETzJkQ1FVTnlRaXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEVWQlFVVXNRMEZCUXp0blFrRkRlRUlzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGVFSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVJc1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdZVUZEYUVJN1UwRkRSanRSUVVORUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVVE3VDBGRFJ6dEpRVU5MTEdWQlFXVTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlEyUXNUMEZCVHp0UlFVVlVMRWxCUVVrc1ZVRkJPRUlzUTBGQlF6dFJRVU51UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UFFVRlBMRWRCUVdVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU4yUlN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZETjBJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJqdGhRVUZOTzFsQlEwd3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzSkRPMUZCUTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVOc1JTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3d3UkVGQk1FUTdVVUZETVVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVFZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0U3V1VGRGFFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZETlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlJDeEpRVUZaTEZOQlFWTTdVVUZEYmtJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGRlJDeEpRVUZaTEZWQlFWVTdVVUZEY0VJc1QwRkJUeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTndSaXhEUVVGRE8wbEJSVVFzU1VGQldTeE5RVUZOTzFGQlEyaENMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZETTBZc1EwRkJRenRKUVVWRUxFbEJRVmtzVFVGQlRUdFJRVU5vUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNN1NVRkRiRVFzUTBGQlF6dEpRVVZQTEdsQ1FVRnBRanRSUVVOMlFpeEpRVUZKTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5xUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlJYQkVMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU53UlN4eFFrRkJjVUlzUjBGQlJ5eExRVUZMTEVOQlFVTTdVMEZETDBJN1VVRkRSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzQkpMRU5CUVVNN1NVRkZSQ3h0UWtGQmJVSXNRMEZCUXl4UFFVRm5RanRSUVVOc1F5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTllMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRek5ETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRE8xTkJRek5DTzJGQlFVMDdXVUZEVEN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRaUVVONFF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJRenRUUVVNMVFqdEpRVU5JTEVOQlFVTTdTVUZGUkN3d1JrRkJNRVk3U1VGRGJFWXNXVUZCV1R0UlFVTnNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hGUVVGRk8xbEJRelZDTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0VFFVTnFRenRoUVVGTk8xbEJRMHdzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEyaERPMUZCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZPMWxCUTJ4RUxFbEJRVWtzZVVKQlFYbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRemRJTEhsQ1FVRjVRaXhIUVVGSExIbENRVUY1UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14Uml4SlFVRkpMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhIUVVGSExIbENRVUY1UWl4RFFVRkRMRU5CUVVNN1dVRkRja1VzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSMEZCUnl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTTdXVUZEY0Vrc1NVRkJTU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1JVRkJSVHRuUWtGRE5VSXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRFdDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03WVVGRE1VSTdXVUZEUkN4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTNaRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVU5zUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VTBGRGJrSTdTVUZEU0N4RFFVRkRPMGxCUlVRc2VVTkJRWGxETzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZGQlFYRkNPMUZCUTNKRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVZzUXl4UlFVRlJMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRGRrSXNTMEZCU3l4dlFrRkJiMEk3WjBKQlEzWkNMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYlVKQlFXMUNPMmRDUVVOMFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEUxQlFVMDdXVUZEVWl4TFFVRkxMR2xDUVVGcFFqdG5Ra0ZEY0VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eGxRVUZsTzJkQ1FVTnNRaXhKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNN1owSkJRM3BETEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc1ZVRkJWVHRuUWtGRFlpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEUxQlFVMDdXVUZEVWl4TFFVRkxMRk5CUVZNN1owSkJRMW9zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOd1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4cFFrRkJhVUk3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dG5Ra0ZEZGtJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEUxQlFVMDdXVUZEVWl4TFFVRkxMR2RDUVVGblFqdG5Ra0ZEYmtJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhOUVVGTk8xTkJRMUE3VVVGRlJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGUkN4dlJFRkJiMFE3U1VGRGNFTXNaVUZCWlR0UlFVTTNRaXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdVVUZGZUVJc1RVRkJUU3haUVVGWkxFZEJRVmNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZET1VRc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eG5Ra0ZCWjBJc1NVRkJTU3hEUVVGRExGRkJRVkVzYTBOQlFXdERMRmxCUVZrc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRmNrY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJSWEJDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU0zUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTI1R0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZETjBRc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzJkQ1FVTjJRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYUVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5NTzFGQlJVUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMW9zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dEpRVU40UlN4RFFVRkRPMGxCUlVRc2EwUkJRV3RFTzBsQlF6VkNMRTFCUVUwN096czdPMWxCUXpGQ0xFMUJRVTBzV1VGQldTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVNelJDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4clEwRkJhME1zV1VGQldTeFZRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTnlSeXhQUVVGTkxFMUJRVTBzV1VGQlJ6dFpRVVZtTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU5zUkN4SlFVRkpMRU5CUVVNc1NVRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEzQkNMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVTBGQlV5eERRVUZETzFsQlEzcENMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETzFsQlJYUkNMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETzFsQlEzcENMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhSUVVGUkxIbENRVUY1UWl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzUTBGQlF6dExRVUZCTzBsQlJVUXNiME5CUVc5RE8wbEJRekZDTEdGQlFXRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1IwRkJSenRSUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFqdFpRVU14UWl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRkRUxFOUJRVThzUlVGQlJTeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVkVMR2xFUVVGcFJEdEpRVU5xUkN4MVEwRkJkVU03U1VGRE4wSXNWMEZCVnl4RFFVRkRMRXRCUVdsQ0xFVkJRVVVzVTBGQk9FSTdVVUZEY2tVc1NVRkJTU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXhRaXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZGtJc1MwRkJTeXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVWQlFVVXNZMEZCWXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hqUVVGakxFVkJRVVVzUlVGQlJUdFpRVU4wUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzJkQ1FVTTVReXhqUVVGakxFVkJRVVVzUTBGQlF6dGhRVU5zUWp0VFFVTkdPMUZCUTBRc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTTdVVUZET1VJc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlIwUXNORU5CUVRSRE8wbEJRMnhETEhGQ1FVRnhRanRSUVVNM1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUlVGQlJUdFpRVU16UWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVc1YwRkJReXhQUVVGQkxFTkJRVUVzVFVGQlFTeEpRVUZKTEdGQlFVb3NTVUZCU1N4MVFrRkJTaXhKUVVGSkxFTkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl3d1EwRkJSU3hMUVVGTExFMUJRVXNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUVN4RlFVRkJMRU5CUVVNc1EwRkJRenRUUVVOd1JqdEpRVU5JTEVOQlFVTTdTVUZGVXl4VlFVRlZMRU5CUVVNc1EwRkJVenRSUVVNMVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVenRaUVVNdlF5eFBRVUZQTzFGQlExUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUldoQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVTQ3hMUVVGTExFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlR0WlFVTTNReXhOUVVGTkxFOUJRVThzUjBGQlZ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFRRVU5zUkR0UlFVVkVMR2xHUVVGcFJqdFJRVU5xUml4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6TkVMREpIUVVFeVJ6dFJRVU16Unl4blJFRkJaMFE3VVVGRmFFUXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEycERMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXeENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlEzWkNMRWxCUVVrc1EwRkJReXhIUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGTjBNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEVGl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzJkQ1FVTjZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdZVUZEYWtJN1dVRkZSQ3hOUVVGTkxFbEJRVWtzUjBGQllTeEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM3BETEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRk8yZENRVU0zUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRuUWtGRGVrTXNUVUZCVFN4RFFVRkRMRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRE8yZENRVU42UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETzI5Q1FVTm9RaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUlVGQlJTeERRVUZETzJkQ1FVTjRReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1lVRkRia0k3VTBGRFJqdFJRVVZFTERSQ1FVRTBRanRSUVVNMVFpeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eDVRMEZCZVVNN1dVRkZla01zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeERMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSk8yZENRVU4yUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEZGQlFWRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRGRFVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVWQlFVVTdaMEpCUTJwRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVNeFF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZPMjlDUVVONlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03YjBKQlF6bEZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dHBRa0ZET1VRN1lVRkRSanRUUVVOR08xRkJRMFFzV1VGQldUdFJRVU5hTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeERRVUZETzFGQlJUZENMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZia1VzTUVKQlFUQkNPMUZCUXpGQ0xFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpkRExFMUJRVTBzU1VGQlNTeEhRVUY1UXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTTNSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF6dFpRVU12UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdXVUZETlVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVsQlFVa3NZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZPMmRDUVVNM1JTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhwUTBGQmFVTXNRMEZCUXl4RFFVRkRPMkZCUTNKRU8xbEJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xbEJSVFZOTEVsQlFVa3NRMEZCUXl4SFFVRlhMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlRGRkxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU5xUkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWM3YjBKQlF6bENMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzNGQ1FVTTFRaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVYzdiMEpCUTI1RExFOUJRVThzUTBGQlF5eERRVUZETzNGQ1FVTk9MRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVYzdiMEpCUTI1Q0xFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUTFBc2IwSkJRVzlDTzI5Q1FVTjJRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKTEU5QlFVOHNSVUZCUlR0blFrRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFYZENMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBNc09FSkJRVGhDTzJkQ1FVTTVRaXhOUVVGTkxFTkJRVU1zUjBGQlZ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRXRCUVVzc1IwRkJSeXhSUVVGUkxFTkJRVU03WjBKQlJYUkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRelZHTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1lVRkRVanRUUVVOR08xRkJRMFFzV1VGQldUdEpRVVZrTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1RzN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1EwRkJReXhQUVVGUkxFTkJRVU1zVTBGQlV5eEhRVUZITEhGRFFVRnhReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNTMEZCU3l4RFFVRkRPMmRDUVVONFJpeEpRVUZKTEVOQlFVTXNUMEZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzJGQlEyeERPMmxDUVVGTk8yZENRVU5NTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTTdZVUZEZEVNN1UwRkRSanRSUVVWRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1R0WlFVTnFTaXhQUVVGUE8xRkJSVlFzVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZGtNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGQlJTeFBRVUZQTzFGQlJXWXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTTdVVUZGTlVRc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSV3hETEVsQlFVa3NUVUZCVFR0WlFVTlNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGY2tJc1EwRkJReXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM2hFTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZ1UXl4TlFVRk5MSE5DUVVGelFpeEhRVUZITEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETDBRc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFrWXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzYVVKQlFXbENMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXcwUWtGQk5FSTdVVUZETlVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhETEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJRenRSUVVOMFFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVOMlFpeERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXh4UTBGQmNVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYUVjc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1pVRkJaU3hEUVVGRE8xRkJSVGRITEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRWxCUVVrc1IwRkJSeXhuUWtGQlowSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVOMlJTeE5RVUZOTEVkQlFVY3NSMEZCYVVJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhEUVVGRExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGRFdpeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRMllzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka2dzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTTFRanRSUVVORUxDdENRVUVyUWp0UlFVTXZRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eDFRMEZCZFVNc1EwRkJRenRSUVVNeFJDd3dSRUZCTUVRN1VVRkRNVVFzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGJrTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEYmtNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeEhRVUZITEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzFsQlEzWkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzcEZMRWxCUVVrc1QwRkJUeXhMUVVGTExFZEJRVWNzUlVGQlJUdHZRa0ZEYmtJc1RVRkJUU3hWUVVGVkxFZEJRVWNzWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE9VTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF6dHZRa0ZEZUVJc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzI5Q1FVVTFSU3hEUVVGRExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdiMEpCUTI1Q0xFTkJRVU1zUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMjlDUVVNMVFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGFFSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0dlFrRkRka01zUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TlFVRkJMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenR2UWtGRE0wUXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU03YjBKQlEzSkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETzI5Q1FVTnVRaXdyUTBGQkswTTdiMEpCUXk5RExFMUJRVTBzUjBGQlJ5eEhRVUZuUWl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzI5Q1FVVnVSQ3hEUVVGRExFTkJRVU1zV1VGQldTeERRVU5hTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzY1VKQlFYRkNMRVZCUXpORUxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN2IwSkJRMllzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRwUWtGRGJrUTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWRUxHOUZRVUZ2UlR0SlFVTTFSQ3hSUVVGUk8xRkJRMlFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUTFvc1QwRkJUenRSUVVWVUxFMUJRVTBzUTBGQlF5eEhRVUZYTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVVV4UXl4SlFVRkpMRXRCUVVzc1IwRkJWeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETzFGQlEyNURMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZGTjBJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTzFsQlF6TkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU01UkN4TFFVRkxMRWRCUVVjc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU4wUWl4TlFVRk5MRWRCUVVjc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU40UWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTMEZCU3l4RFFVRkRPMU5CUTJ4RU8xRkJSVVFzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWMlJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJRenRSUVVWMlJDeHZSa0ZCYjBZN1VVRkRjRVlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja1FzVFVGQlRTeFpRVUZaTEVkQlFWY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03VVVGRGNFUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVjBReXcyUWtGQk5rSTdVVUZETjBJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTzFsQlEycENMSE5EUVVGelF6dFpRVU4wUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNN1dVRkROMFFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTTdXVUZEZGtNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zV1VGQldTeEZRVUZGTEZGQlFWRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRUUVVOc1JUdGhRVUZOTzFsQlEwd3NPRUpCUVRoQ08xbEJRemxDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlEzWkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSMEZCUnl4blFrRkJaMElzUTBGQlF6dFpRVU0zUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMWxCUlhCRkxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUldwRUxIRkNRVUZ4UWp0WlFVTnlRaXhKUVVGSkxHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEZEVJc1VVRkJVU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVN1owSkJRMmhETEV0QlFVc3NTMEZCU3p0dlFrRkRVaXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhOUVVGTk8yZENRVU5TTEV0QlFVc3NVVUZCVVR0dlFrRkRXQ3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEYmtVc1RVRkJUVHRuUWtGRFVpeExRVUZMTEZGQlFWRTdiMEpCUTFnc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEUxQlFVMHNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJRenR2UWtGRE5VVXNUVUZCVFR0aFFVTlFPMWxCUTBRc2RVSkJRWFZDTzFsQlEzWkNMRWxCUVVrc1kwRkJZeXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU4yUWl4UlFVRlJMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNSVUZCUlR0blFrRkRiRU1zUzBGQlN5eE5RVUZOTzI5Q1FVTlVMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRTFCUVUwN1owSkJRMUlzUzBGQlN5eFJRVUZSTzI5Q1FVTllMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5zUlN4TlFVRk5PMmRDUVVOU0xFdEJRVXNzVDBGQlR6dHZRa0ZEVml4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTTdiMEpCUXpWRUxFMUJRVTA3WVVGRFVEdFpRVU5FTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4aFFVRmhMRWxCUVVrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFpRVU0zUlN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWRCUVVjc1kwRkJZeXhKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETDBVc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRka0lzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4aFFVRmhMRWRCUVVjc1dVRkJXU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdZVUZEY0VjN1dVRkZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SlFVRkpMRTFCUVUwc1JVRkJSVHRuUWtGRGNFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRja1VzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dGhRVU5zUlR0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWTkxHVkJRV1U3TzFGQlEzQkNMRTlCUVU4c1RVRkJRU3hOUVVGQkxFbEJRVWtzUTBGQlF5eFpRVUZaTERCRFFVRkZMR1ZCUVdVc1JVRkJSU3h0UTBGQlNTeERRVUZETEVOQlFVTTdTVUZEYmtRc1EwRkJRenM3UVVGNGRrSmhMRzFDUVVGWExFZEJRVWNzWVVGQllTeERRVUZETzBGQlF6TkNMRzFDUVVGWExFZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdkM1VnWm5KdmJTQW5kM1VuTzF4dWFXMXdiM0owSUNvZ1lYTWdjbmhxY3lCbWNtOXRJQ2R5ZUdwekp6dGNibHh1YVcxd2IzSjBJSHRUWlhGUVlXeGxkSFJsZlNCbWNtOXRJQ2N1TGk5elpYRXRjR0ZzWlhSMFpYTW5PMXh1YVcxd2IzSjBJSHRUZFdKelkzSnBjSFJwYjI1OUlHWnliMjBnSjNKNGFuTW5PMXh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNWdWFYUnpMV2hoYm1Sc1pYSW5PMXh1YVcxd2IzSjBJSHRUYkdsa1pYSlBjSFJwYjI1emZTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUh0blpYUlRjR3hwZEhSbGNpd2diVzl1YjIxbGNsUnZVMmh2Y25Rc0lIQnBZMnRWY0ZCaGJHVjBkR1VzSUhCcFkydFZjRk5sY1VOdmJDd2dVM0JzYVhSMFpYSkdkVzVqTENCVVFVZFRmU0JtY205dElDY3VMaTkxZEdsc2N5OXRZV055YjIxdmJHVmpkV3hsSnp0Y2JseHVaR1ZqYkdGeVpTQnRiMlIxYkdVZ0oyUmhkR0ZuY205ckxXRndhUzl6Y21NdlozSnBaQ2NnZTF4dUlDQnBiblJsY21aaFkyVWdVbVZqZENCN1hHNGdJQ0FnWTI5dWRHRnBibk1vZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcE9pQmliMjlzWldGdU8xeHVJQ0I5WEc1OVhHNWNibVZ1ZFcwZ1VHOXphWFJwYjI1SVpXbG5hSFFnZTF4dUlDQkZiblJ5YjNCNUlEMGdKMFZ1ZEhKdmNIa25MRnh1SUNCbWRXeHNJRDBnSnpFd01DVW5MRnh1ZlZ4dVhHNWtaV05zWVhKbElHZHNiMkpoYkNCN1hHNGdJR2x1ZEdWeVptRmpaU0JJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ0I3WEc0Z0lDQWdaMlYwUTNWeWMyOXlVRzl6YVhScGIyNG9aWFpsYm5RNklFMXZkWE5sUlhabGJuUXNJSEk2SUc1MWJXSmxjaWs2SUVSSExsQnZhVzUwTzF4dUlDQjlYRzU5WEc1Y2JpOHFLa0J3WVhKaGJTQjdUVzkxYzJWRmRtVnVkSDBnWlhabGJuUmNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J5SUdSbGRtbGpaVkJwZUdWc1VtRjBhVzl1WEc0Z0tpQkFjbVYwZFhKdUlIdEVSeTVRYjJsdWRIMGdZMkZ1ZG1GeklISmxiR0YwWldRZ1kzVnljMjl5SUhCdmMybDBhVzl1WEc0Z0tpOWNia2hVVFV4RFlXNTJZWE5GYkdWdFpXNTBMbkJ5YjNSdmRIbHdaUzVuWlhSRGRYSnpiM0pRYjNOcGRHbHZiaUE5SUdaMWJtTjBhVzl1S0dWMlpXNTBPaUJOYjNWelpVVjJaVzUwTENCeU9pQnVkVzFpWlhJcE9pQkVSeTVRYjJsdWRDQjdYRzRnSUdOdmJuTjBJSEpsWTNRZ1BTQjBhR2x6TG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNCeVpYUjFjbTRnYm1WM0lFUkhMbEJ2YVc1MEtDaGxkbVZ1ZEM1amJHbGxiblJZSUMwZ2NtVmpkQzVzWldaMEtTQXFJSElzSUNobGRtVnVkQzVqYkdsbGJuUlpJQzBnY21WamRDNTBiM0FwSUNvZ2NpazdYRzU5TzF4dVhHNUVSeTVTWldOMExuQnliM1J2ZEhsd1pTNWpiMjUwWVdsdWN5QTlJR1oxYm1OMGFXOXVLSGc2SUc1MWJXSmxjaXdnZVRvZ2JuVnRZbVZ5S1RvZ1ltOXZiR1ZoYmlCN1hHNGdJSEpsZEhWeWJpQjBhR2x6TG14bFpuUWdQRDBnZUNBbUppQjRJRHc5SUhSb2FYTXVjbWxuYUhRZ0ppWWdkR2hwY3k1MGIzQWdQRDBnZVNBbUppQjVJRHc5SUhSb2FYTXVZbTkwZEc5dE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRkJ2YzJsMGFXOXVUVzl1YjIxbGNrbHVabThnZTF4dUlDQXZLaW9nVTJWeGRXVnVZMlZ6SUdOdmRXNTBJSGRwZEdnZ2JXOXViMjFsY2lCcGJpQndiM05wZEdsdmJpQXFMMXh1SUNCamIzVnVkRG9nYm5WdFltVnlPMXh1WEc0Z0lDOHFLaUJTWlcxbGJXSmxjaUJ6WTNKbFpXNGdZMjl2Y21SeklISmxZM1FnS2k5Y2JpQWdZbTkxYm1Sek9pQkVSeTVTWldOME8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHTnZkVzUwT2lCdWRXMWlaWElnUFNBd0xDQmliM1Z1WkhNNklFUkhMbEpsWTNRZ1BTQnVaWGNnUkVjdVVtVmpkQ2d3TENBd0xDQXdMQ0F3S1NrZ2UxeHVJQ0FnSUhSb2FYTXVZMjkxYm5RZ1BTQmpiM1Z1ZER0Y2JpQWdJQ0IwYUdsekxtSnZkVzVrY3lBOUlHSnZkVzVrY3p0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVUc5emFYUnBiMjVKYm1adklIdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdabkpsY1RvZ2V5QmJiVG9nYzNSeWFXNW5YVG9nVUc5emFYUnBiMjVOYjI1dmJXVnlTVzVtYnlCOU8xeHVJQ0J5YjNkRGIzVnVkRG9nYm5WdFltVnlPMXh1SUNCemRXMUdiM0pJWldsbmFIUkRZV3hqT2lCdWRXMWlaWEk3WEc1Y2JpQWdMeW9xSUdaeVpYRWdQU0I3ZlN3Z2NtOTNRMjkxYm5RZ1BTQXdYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdVlXMWxJRTVoYldVZ2IyWWdjRzl6YVhScGIyNGdLQ2N4TVRGQkp5d2dKekV4TVM0eEp5d2daWFJqS1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QlRkVzBnYjJZZ1lXeHNJRzF2Ym05dFpYSWdZMjkxYm5SeklHWnZjaUJvWldsbmFIUWdZMkZzWTNWc1lYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISnZkME52ZFc1MElFTnZkVzUwSUc5bUlHVnNaVzFsYm5SeklHbHVJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkZlNCbWNtVnhJR1p5WlhGMVpXNWplU0J2WmlCdGIyNXZiV1Z5Y3lCcGJpQndiM05wZEdsdmJseHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYm1GdFpUb2djM1J5YVc1bkxDQm1jbVZ4T2lCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUgwZ1BTQjdmU3dnY205M1EyOTFiblE2SUc1MWJXSmxjaUE5SURBc0lITjFiVVp2Y2tobGFXZG9kRU5oYkdNNklHNTFiV0psY2lBOUlEQXBJSHRjYmlBZ0lDQjBhR2x6TG01aGJXVWdQU0J1WVcxbE8xeHVJQ0FnSUhSb2FYTXVabkpsY1NBOUlHWnlaWEU3WEc0Z0lDQWdkR2hwY3k1eWIzZERiM1Z1ZENBOUlISnZkME52ZFc1ME8xeHVJQ0FnSUhSb2FYTXVjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QTlJSE4xYlVadmNraGxhV2RvZEVOaGJHTTdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGZGxZa3h2WjI4Z1pYaDBaVzVrY3lCRVJ5NUtjMVpwWlhkbGNpQjdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZ6YVdSMVpYTlRaWFFnUFNBbmJuVmpiR1Z2ZEdsa1pYTW5PMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUIyYVdWM1pYSkRiM1Z1ZERvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCMmFXVjNaWEpKWkRvZ2JuVnRZbVZ5SUQwZ0xURTdYRzRnSUhCeWFYWmhkR1VnZFc1cGRITklZVzVrYkdWeU9pQlZibWwwYzBoaGJtUnNaWElnZkNCdWRXeHNPMXh1SUNCd2NtbDJZWFJsSUdsdWFYUnBZV3hwZW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVN1hHNWNiaUFnTHk4Z2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCamIyeHZjbE5qYUdWdFpUb2dRMjlzYjNKVFkyaGxiV1VnUFNCRGIyeHZjbE5qYUdWdFpYTmJUblZqYkdWdmRHbGtaWE5YWldKTWIyZHZMbkpsYzJsa2RXVnpVMlYwWFR0Y2JpQWdjSEp2ZEdWamRHVmtJR053T2lCVFpYRlFZV3hsZEhSbElId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdjSEpwZG1GMFpTQm9iM04wUHpvZ1NGUk5URVJwZGtWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2JYTm5TRzl6ZEQ4NklFaFVUVXhGYkdWdFpXNTBPMXh1SUNCd2NtbDJZWFJsSUdOaGJuWmhjem9nU0ZSTlRFTmhiblpoYzBWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2MyeHBaR1Z5T2lCRVJ5NVNZVzVuWlZOc2FXUmxjanRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCMFpYaDBRbUZ6Wld4cGJtVTZJRU5oYm5aaGMxUmxlSFJDWVhObGJHbHVaVHRjYmx4dUlDQndjbWwyWVhSbElHRjRhWE5JWldsbmFIUTZJRzUxYldKbGNpQTlJREV5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNDhjM1J5YVc1blBpQjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQndjbWwyWVhSbElITndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1nZkNCdWRXeHNJRDBnYm5Wc2JEdGNiaUFnTHk4Z2NISnBkbUYwWlNCdFlYaE1aVzVuZEdnNklHNTFiV0psY2lBOUlERXdNRHRjYmlBZ2NISnBkbUYwWlNCd2IzTnBkR2x2Ym5NNklGQnZjMmwwYVc5dVNXNW1iMXRkSUQwZ1cxMDdYRzVjYmlBZ2NISnBkbUYwWlNCeWIzZHpUV0Z6YTJWa09pQnVkVzFpWlhJZ1BTQXdPMXh1SUNCd2NtbDJZWFJsSUhKdmQzTk9kV3hzT2lCdWRXMWlaWElnUFNBd08xeHVJQ0J3Y21sMllYUmxJSFpwYzJsaWJHVlRiR2xrWlhJNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlR0Y2JpQWdjSEpwZG1GMFpTQmhiR3h2ZDFKbGMybDZaVG9nWW05dmJHVmhiaUE5SUhSeWRXVTdYRzRnSUhCeWFYWmhkR1VnZEhWeWJrOW1VbVZ6YVhwbFJtOXlUMjVsVTJWMFZtRnNkV1U2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQXZMeUJXYVdWM1pYSW5jeUJ3Y205d1pYSjBhV1Z6SUNoc2FXdGxiSGtnZEdobGVTQnphRzkxYkdRZ1ltVWdjSFZpYkdsaklITnZJSFJvWVhRZ2RHaGxlU0JqWVc0Z1ltVWdjMlYwSUc5MWRITnBaR1VwWEc0Z0lIQnlhWFpoZEdVZ1gzQnZjMmwwYVc5dVYybGtkR2c2SUc1MWJXSmxjanRjYmlBZ2NIVmliR2xqSUhCdmMybDBhVzl1VjJsa2RHZzZJRzUxYldKbGNqdGNiaUFnY0hWaWJHbGpJRzFwYmtobGFXZG9kRG9nYm5WdFltVnlPMXh1SUNCd2RXSnNhV01nWW1GamEyZHliM1Z1WkVOdmJHOXlPaUJ1ZFcxaVpYSWdQU0F3ZUVaR1JrWkdSa1pHTzF4dUlDQndkV0pzYVdNZ2JXRjRTR1ZwWjJoME9pQnVkVzFpWlhJN1hHNGdJSEIxWW14cFl5QnphMmx3Ulcxd2RIbFRaWEYxWlc1alpYTTZJR0p2YjJ4bFlXNDdYRzRnSUhCMVlteHBZeUJ6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1U2SUhOMGNtbHVaeUI4SUc1MWJHdzdYRzRnSUhCMVlteHBZeUJ3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsT2lCemRISnBibWM3WEc0Z0lIQjFZbXhwWXlCd2IzTnBkR2x2YmsxaGNtZHBiam9nYm5WdFltVnlJRDBnTUR0Y2JpQWdjSFZpYkdsaklITjBZWEowVUc5emFYUnBiMjVPWVcxbE9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1pXNWtVRzl6YVhScGIyNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nWm1sNFYybGtkR2c2SUdKdmIyeGxZVzQ3WEc0Z0lIQjFZbXhwWXlCMlpYSjBhV05oYkVGc2FXZHViV1Z1ZERvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdodmNtbDZiMjUwWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCbWFYUkJjbVZoT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2MyaHlhVzVyUlcxd2RIbFVZV2xzT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2MydHBjRVZ0Y0hSNVVHOXphWFJwYjI1ek9pQmliMjlzWldGdU8xeHVJQ0J3ZFdKc2FXTWdjRzl6YVhScGIyNUlaV2xuYUhRNklITjBjbWx1Wnp0Y2JseHVJQ0J3Y21sMllYUmxJSEJ2YzJsMGFXOXVUbUZ0WlhNNklITjBjbWx1WjF0ZElEMGdXMTA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0Z5ZEZCdmMybDBhVzl1T2lCdWRXMWlaWElnUFNBdE1UdGNibHh1SUNCd2NtbDJZWFJsSUdWdVpGQnZjMmwwYVc5dU9pQnVkVzFpWlhJZ1BTQXRNVHRjYmx4dUlDQXZLaW9nUm05eUlITjBZWEowVUc5emFYUnBiMjRnWlhGMVlXeHpJSFJ2SUdWdVpGQnZjMmwwYVc5dUlFeGxibWQwYUNCcGN5QXhJQ292WEc0Z0lIQnlhWFpoZEdVZ1oyVjBJRXhsYm1kMGFDZ3BPaUJ1ZFcxaVpYSWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y0c5emFYUnBiMjV6TG14bGJtZDBhRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOFBTQjBhR2x6TG1WdVpGQnZjMmwwYVc5dUlEOGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQXRJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUFySURFZ09pQXdPMXh1SUNCOVhHNWNiaUFnTHlvcUlFTmhiR04xYkdGMFpTQnVaWGNnY0c5emFYUnBiMjRnWkdGMFlTQmlZWE5wWXlCdmJpQjdRR3hwYm1zZ2NHOXphWFJwYjI1TllYSm5hVzVUZEdGMFpYMGdZVzVrSUh0QWJHbHVheUJ3YjNOcGRHbHZiazFoY21kcGJuMGdLaTljYmlBZ2NISnBkbUYwWlNCblpYUWdjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0t5QjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVWbUZzZFdVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkQ0J3YjNOcGRHbHZiazFoY21kcGJsWmhiSFZsS0NrZ2UxeHVJQ0FnSUdsbUlDZ29kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWVhWMGJ5Y3BJQ1ltSUNoMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWdwSUQwOVBTQjBjblZsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjRzl6YVhScGIyNU5ZWEpuYVc0N1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VnUFQwOUlDZGxibUZpYkdVbktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnTUR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJEYjNWdWRDQnZaaUJ3YjNOcGRHbHZiaUJ5Wlc1a1pYSmxaQ0JtYjNJZ1kyRnNZM1ZzWVhScGIyNXpJR052ZFc1MFQyWlNaVzVrWlhKUWIzTnBkR2x2Ym5NZ0tpOWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1kyOTFiblJQWmxKbGJtUmxjbEJ2YzJsMGFXOXVjeWdwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVvYjNOMElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ2FXWWdLSElnUGlBeEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqWVc1MllYTlhhV1IwYUZkcGRHaFNZWFJwYnlBdklIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNDdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTmhiblpoY3k1M2FXUjBhQ0F2SUNoMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdUlDb2djaWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1kyRnVkbUZ6VjJsa2RHaFhhWFJvVW1GMGFXOG9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTJGdWRtRnpMbmRwWkhSb0lDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4N1hHNGdJSDFjYmx4dVhHNGdJQzhxS2lCUWIzTnBkR2x2YmlCdlppQnpkR0Z5ZENCeVpXNWtaWEpwYm1jZ0tpOWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1ptbHljM1JXYVhOcFlteGxTVzVrWlhnb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnS0hSb2FYTXVkbWx6YVdKc1pWTnNhV1JsY2lrZ1B5Qk5ZWFJvTG1ac2IyOXlLSFJvYVhNdWMyeHBaR1Z5TG0xcGJpa2dPaUF3TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNVM1ZpY3pvZ1UzVmljMk55YVhCMGFXOXVXMTBnUFNCYlhUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1pYSkpaQ0E5SUZkbFlreHZaMjh1ZG1sbGQyVnlRMjkxYm5RN1hHNGdJQ0FnVjJWaVRHOW5ieTUyYVdWM1pYSkRiM1Z1ZENBclBTQXhPMXh1WEc0Z0lDQWdkR2hwY3k1MFpYaDBRbUZ6Wld4cGJtVWdQU0FuZEc5d0p6dGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNTFiR3c3WEc1Y2JpQWdJQ0IwYUdsekxtSmhZMnRuY205MWJtUkRiMnh2Y2lBOUlIUm9hWE11YVc1MEtDZGlZV05yWjNKdmRXNWtRMjlzYjNJbkxDQXdlRVpHUmtaR1JrWkdLVHRjYmlBZ0lDQjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JRDBnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTVtYkc5aGRDZ25jRzl6YVhScGIyNVhhV1IwYUNjc0lERTJMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQTBMQ0J0WVhnNklEWTBMQ0J3YjNOMFptbDRPaUFuY0hnbmZTb3ZLVHRjYmlBZ0lDQjBhR2x6TG0xcGJraGxhV2RvZENBOUlIUm9hWE11Wm14dllYUW9KMjFwYmtobGFXZG9kQ2NzSURVd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBeU5UQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1SUNBZ0lIUm9hWE11YldGNFNHVnBaMmgwSUQwZ2RHaHBjeTVtYkc5aGRDZ25iV0Y0U0dWcFoyaDBKeXdnTVRBd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBMU1EQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1WEc0Z0lDQWdkR2hwY3k1emEybHdSVzF3ZEhsVFpYRjFaVzVqWlhNZ1BTQjBhR2x6TG1KdmIyd29KM05yYVhCRmJYQjBlVk5sY1hWbGJtTmxjeWNzSUhSeWRXVXBPMXh1SUNBZ0lIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsSUQwZ2RHaHBjeTV6ZEhKcGJtY29KM05sY1hWbGJtTmxRMjlzZFcxdVRtRnRaU2NzSUc1MWJHd3BPMXh1WEc0Z0lDQWdkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVUbUZ0WlNBOUlIUm9hWE11YzNSeWFXNW5LQ2R6ZEdGeWRGQnZjMmwwYVc5dVRtRnRaU2NzSUc1MWJHd3BPMXh1SUNBZ0lIUm9hWE11Wlc1a1VHOXphWFJwYjI1T1lXMWxJRDBnZEdocGN5NXpkSEpwYm1jb0oyVnVaRkJ2YzJsMGFXOXVUbUZ0WlNjc0lHNTFiR3dwTzF4dVhHNGdJQ0FnZEdocGN5NW1hWGhYYVdSMGFDQTlJSFJvYVhNdVltOXZiQ2duWm1sNFYybGtkR2duTENCbVlXeHpaU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWmxjblJwWTJGc1FXeHBaMjV0Wlc1MElEMGdkR2hwY3k1emRISnBibWNvSjNabGNuUnBZMkZzUVd4cFoyNXRaVzUwSnl3Z0oyMXBaR1JzWlNjc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZDBiM0FuTENBbmJXbGtaR3hsSnl3Z0oySnZkSFJ2YlNkZGZTazdYRzRnSUNBZ2RHaHBjeTVvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwSUQwZ2RHaHBjeTV6ZEhKcGJtY29KMmh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFuTENBblkyVnVkR1Z5Snl4Y2JpQWdJQ0FnSUh0amFHOXBZMlZ6T2lCYkoyeGxablFuTENBblkyVnVkR1Z5Snl3Z0ozSnBaMmgwSjExOUtUdGNiaUFnSUNCMGFHbHpMbVpwZEVGeVpXRWdQU0IwYUdsekxtSnZiMndvSjJacGRFRnlaV0VuTENCMGNuVmxLVHRjYmlBZ0lDQjBhR2x6TG5Ob2NtbHVhMFZ0Y0hSNVZHRnBiQ0E5SUhSb2FYTXVZbTl2YkNnbmMyaHlhVzVyUlcxd2RIbFVZV2xzSnl3Z2RISjFaU2s3WEc0Z0lDQWdkR2hwY3k1emEybHdSVzF3ZEhsUWIzTnBkR2x2Ym5NZ1BTQjBhR2x6TG1KdmIyd29KM05yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWNzSUdaaGJITmxLVHRjYmlBZ0lDQjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVVM1JoZEdVZ1BTQjBhR2x6TG5OMGNtbHVaeWduY0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlNjc0lDZGhkWFJ2Snl4Y2JpQWdJQ0FnSUh0amFHOXBZMlZ6T2lCYkoyRjFkRzhuTENBblpXNWhZbXhsSnl3Z0oyOW1aaWRkZlNrN1hHNGdJQ0FnYkdWMElHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsSUQwOVBTQW5ZWFYwYnljcElIdGNiaUFnSUNBZ0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVJRDBnTkR0Y2JpQWdJQ0I5WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBiaUE5SUhSb2FYTXVhVzUwS0Nkd2IzTnBkR2x2YmsxaGNtZHBiaWNzSUdSbFptRjFiSFJXWVd4MVpVWnZjbEJ2YzJsMGFXOXVUV0Z5WjJsdUxDQjdiV2x1T2lBd0xDQnRZWGc2SURFMmZTazdYRzRnSUNBZ2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlJSFJvYVhNdWMzUnlhVzVuS0Nkd2IzTnBkR2x2YmtobGFXZG9kQ2NzSUZCdmMybDBhVzl1U0dWcFoyaDBMbVoxYkd3c0lIdGphRzlwWTJWek9pQmJVRzl6YVhScGIyNUlaV2xuYUhRdVpuVnNiQ3dnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VWMTlLVHRjYmx4dUlDQWdJR052Ym5OMElITjBlV3hsT2lCVGJHbGtaWEpQY0hScGIyNXpJRDBnZTNOMGVXeGxPaUFuWW1GeVltVnNiQ2Q5TzF4dUlDQWdJSFJvYVhNdWMyeHBaR1Z5SUQwZ2RXa3VjbUZ1WjJWVGJHbGtaWElvTUN3Z01UQXdMQ0F3TENBeU1Dd2dabUZzYzJVc0lITjBlV3hsS1R0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3lBOUlIVnBMbU5oYm5aaGN5Z3BPMXh1SUNBZ0lIUm9hWE11WTJGdWRtRnpMbk4wZVd4bExuZHBaSFJvSUQwZ0p6RXdNQ1VuTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtbDBLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtbHVhWFJwWVd4cGVtVmtLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtDZFhaV0pNYjJkdklITmxZMjl1WkNCcGJtbDBhV0ZzYVhwaGRHbHZiaUVuS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG1sdWFYUnBZV3hwZW1Wa0lEMGdkSEoxWlR0Y2JpQWdJQ0IwYUdsekxtaGxiSEJWY213Z1BTQW5MMmhsYkhBdmRtbHpkV0ZzYVhwbEwzWnBaWGRsY25NdmQyVmlMV3h2WjI4dWJXUW5PMXh1WEc0Z0lDQWdkR2hwY3k1dGMyZEliM04wSUQwZ2RXa3VaR2wyS0NkT2J5QnRaWE56WVdkbEp5azdYRzRnSUNBZ2RHaHBjeTV0YzJkSWIzTjBMbk4wZVd4bExtUnBjM0JzWVhrZ1BTQW5ibTl1WlNjN1hHNWNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJSFZwTG1OaGJuWmhjeWdwTzF4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG5OMGVXeGxMbmRwWkhSb0lEMGdKekV3TUNVbk8xeHVYRzRnSUNBZ0x5OTBhR2x6TG5Oc2FXUmxjaTV6WlhSVGFHOTNTR0Z1Wkd4bGN5aG1ZV3h6WlNrN1hHNGdJQ0FnZEdocGN5NXpiR2xrWlhJdWNtOXZkQzV6ZEhsc1pTNXdiM05wZEdsdmJpQTlJQ2RoWW5OdmJIVjBaU2M3WEc0Z0lDQWdkR2hwY3k1emJHbGtaWEl1Y205dmRDNXpkSGxzWlM1NlNXNWtaWGdnUFNBbk9UazVKenRjYmlBZ0lDQjBhR2x6TG5Oc2FXUmxjaTV5YjI5MExuTjBlV3hsTG1ScGMzQnNZWGtnUFNBbmJtOXVaU2M3WEc0Z0lDQWdkR2hwY3k1emJHbGtaWEl1Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNBbk1DNDNaVzBuTzF4dVhHNGdJQ0FnZEdocGN5NTJhWE5wWW14bFUyeHBaR1Z5SUQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0IwYUdsekxuTnNhV1JsY2k1dmJsWmhiSFZsYzBOb1lXNW5aV1F1YzNWaWMyTnlhV0psS0NncElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnb2RHaHBjeTVvYjNOMElEMDlJRzUxYkd3cEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lDOHFJRkpsYzJsNlpTQnpiR2xrWlhJZ2FXWWdkMlVnWTJGdUlISmxjMmw2WlNCa2J5QjBhR0YwSUNvdlhHNGdJQ0FnSUNCcFppQW9LSFJvYVhNdVlXeHNiM2RTWlhOcGVtVXBJQ1ltSUNnaGRHaHBjeTUwZFhKdVQyWlNaWE5wZW1WR2IzSlBibVZUWlhSV1lXeDFaU2tnSmlaY2JpQWdJQ0FnSUNBZ0tIUm9hWE11ZG1semFXSnNaVk5zYVdSbGNpa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMjkxYm5SUFpsQnZjMmwwYVc5dWN5QTlJRTFoZEdndVkyVnBiQ2gwYUdsekxuTnNhV1JsY2k1dFlYZ2dMU0IwYUdsekxuTnNhV1JsY2k1dGFXNHBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpZV3hqZFd4aGRHVmtWMmxrZEdnZ1BTQW9kR2hwY3k1allXNTJZWE11ZDJsa2RHZ2dMeUJqYjNWdWRFOW1VRzl6YVhScGIyNXpLU0F0SUhSb2FYTXVjRzl6YVhScGIyNU5ZWEpuYVc1V1lXeDFaVHRjYmlBZ0lDQWdJQ0FnTHk4Z2MyRjJhVzVuSUhCdmMybDBhVzl1VjJsa2RHZ2dkbUZzZFdVZ1oyeHZZbUZzSUNobGRtVnVJR2xtSUhOc2FXUmxjaUJwY3lCdWIzUWdkbWx6YVdKc1pTbGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9JRDBnWTJGc1kzVnNZWFJsWkZkcFpIUm9PMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvSUQwZ1kyRnNZM1ZzWVhSbFpGZHBaSFJvTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdocGN5NTBkWEp1VDJaU1pYTnBlbVZHYjNKUGJtVlRaWFJXWVd4MVpTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnZlNrN1hHNWNibHh1SUNBZ0lIUm9hWE11YUc5emRDQTlJSFZwTG1ScGRpaGJkR2hwY3k1dGMyZEliM04wTENCMGFHbHpMbU5oYm5aaGMxMHBPMXh1WEc0Z0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExtcDFjM1JwWm5sRGIyNTBaVzUwSUQwZ0oyTmxiblJsY2ljN1hHNGdJQ0FnZEdocGN5NW9iM04wTG5OMGVXeGxMbUZzYVdkdVNYUmxiWE1nUFNBblkyVnVkR1Z5Snp0Y2JpQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjRzl6YVhScGIyNGdQU0FuY21Wc1lYUnBkbVVuTzF4dUlDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYjNabGNtWnNiM2NuTENBbmFHbGtaR1Z1Snl3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1oyVjBUVzl1YjIxbGNpQTlJQ2h3T2lCRVJ5NVFiMmx1ZENrNklGdHVkVzFpWlhJc0lITjBjbWx1WnlCOElHNTFiR3dzSUZCdmMybDBhVzl1VFc5dWIyMWxja2x1Wm04Z2ZDQnVkV3hzWFNBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCallXeGpkV3hoZEdWa1dDQTlJSEF1ZUNBcklIUm9hWE11Wm1seWMzUldhWE5wWW14bFNXNWtaWGdnS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdU8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWxCdmN5QTlJRTFoZEdndVpteHZiM0lvY0M1NElDOGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFySUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHOXphWFJwYjI0Z1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIQnZjMmwwYVc5dUlEMDlQU0IyYjJsa0lEQXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJhbEJ2Y3l3Z2JuVnNiQ3dnYm5Wc2JGMDdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhJNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDQTlJRTlpYW1WamRDNXJaWGx6S0hCdmMybDBhVzl1TG1aeVpYRXBYRzRnSUNBZ0lDQWdJQzVtYVc1a0tDaHRLU0E5UGlCd2IzTnBkR2x2Ymk1bWNtVnhXMjFkTG1KdmRXNWtjeTVqYjI1MFlXbHVjeWhqWVd4amRXeGhkR1ZrV0N3Z2NDNTVLU2s3WEc0Z0lDQWdJQ0JwWmlBb2JXOXViMjFsY2lBOVBUMGdkVzVrWldacGJtVmtLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdXMnBRYjNNc0lHNTFiR3dzSUc1MWJHeGRPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXMnBRYjNNc0lHMXZibTl0WlhJc0lIQnZjMmwwYVc5dUxtWnlaWEZiYlc5dWIyMWxjbDFkTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiM0p5WldOMFRXOXViMjFsY2tacGJIUmxjaUE5SUNocFVtOTNPaUJ1ZFcxaVpYSXNJRzF2Ym05dFpYSTZJSE4wY21sdVp5d2dhbEJ2Y3pvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCelpYRWdQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBLR2xTYjNjcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRTQTlJSE5sY1NBL0lIUm9hWE11YzNCc2FYUjBaWEloS0hObGNTbGJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2NtVjBkWEp1SUNnb2MyVnhUU0E5UFQwZ2JXOXViMjFsY2lrZ2ZId2dLSE5sY1UwZ1BUMDlJQ2NuSUNZbUlHMXZibTl0WlhJZ1BUMDlJQ2N0SnlrcElDWW1JSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1blpYUW9hVkp2ZHlrN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhKNGFuTXVabkp2YlVWMlpXNTBQRTF2ZFhObFJYWmxiblErS0hSb2FYTXVZMkZ1ZG1GekxDQW5iVzkxYzJWdGIzWmxKeWt1YzNWaWMyTnlhV0psS0NobE9pQk5iM1Z6WlVWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoY21keklEMGdaU0JoY3lCTmIzVnpaVVYyWlc1ME8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeU9pQnVkVzFpWlhJZ1BTQjNhVzVrYjNjdVpHVjJhV05sVUdsNFpXeFNZWFJwYnp0Y2JpQWdJQ0FnSUdOdmJuTjBJR04xY25OdmNsQTZJRVJITGxCdmFXNTBJRDBnZEdocGN5NWpZVzUyWVhNdVoyVjBRM1Z5YzI5eVVHOXphWFJwYjI0b1lYSm5jeXdnY2lrN1hHNGdJQ0FnSUNCamIyNXpkQ0JiYWxCdmN5d2diVzl1YjIxbGNsMGdQU0JuWlhSTmIyNXZiV1Z5S0dOMWNuTnZjbEFwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5YjNkRGIzVnVkQ0E5SUhkMUxtTnZkVzUwS0NrdWRHRnJaU2gwYUdsekxtUmhkR0ZHY21GdFpTNXliM2REYjNWdWRDa3VabWxzZEdWeUtHWjFibU4wYVc5dUtHbFNiM2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXljbVZqZEUxdmJtOXRaWEpHYVd4MFpYSW9hVkp2ZHl3Z2JXOXViMjFsY2l3Z2FsQnZjeWs3WEc0Z0lDQWdJQ0FnSUgwcExuSmxaSFZqWlR4dWRXMWlaWEkrS0NoamIzVnVkQ3dnYVZKdmR5a2dQVDRnWTI5MWJuUWdLeUF4TENBd0tUdGNiaUFnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIVnBMbVJwZGloYmRXa3VaR2wyS0dBa2UyMXZibTl0WlhKOVlDa3NJSFZwTG1ScGRpaGdKSHR5YjNkRGIzVnVkSDBnY205M2MyQXBYU2tzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEo0YW5NdVpuSnZiVVYyWlc1MFBFMXZkWE5sUlhabGJuUStLSFJvYVhNdVkyRnVkbUZ6TENBbmJXOTFjMlZrYjNkdUp5a3VjM1ZpYzJOeWFXSmxLQ2hsT2lCTmIzVnpaVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQmhjbWR6SUQwZ1pTQmhjeUJOYjNWelpVVjJaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjam9nYm5WdFltVnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNc0lISXBLVHRjYmx4dUlDQWdJQ0FnTHk4Z2NISmxkbVZ1ZEhNZ1pHVnpaV3hsWTNRZ1lXeHNJSEp2ZDNNZ2FXWWdkMlVnYldsemN5QnRiMjV2YldWeUlHSnZkVzVrYzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YVc1cGRDaG1kVzVqZEdsdmJpaHBVbTkzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnZjbkpsWTNSTmIyNXZiV1Z5Um1sc2RHVnlLR2xTYjNjc0lHMXZibTl0WlhJc0lHcFFiM01wTzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNibHh1SUNBZ0lISjRhbk11Wm5KdmJVVjJaVzUwUEZkb1pXVnNSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuZDJobFpXd25LUzV6ZFdKelkzSnBZbVVvS0dVNklGZG9aV1ZzUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1MmFYTnBZbXhsVTJ4cFpHVnlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQmpiMjV6ZENCamIzVnVkRTltVTJOeWIyeHNVRzl6YVhScGIyNXpJRDBnS0dVdVpHVnNkR0ZaSUM4Z01UQXdLU0FxSUUxaGRHZ3ViV0Y0S0UxaGRHZ3VabXh2YjNJb0tIUm9hWE11WTI5MWJuUlBabEpsYm1SbGNsQnZjMmwwYVc5dWN5a2dMeUF5S1N3Z01TazdYRzRnSUNBZ0lDQjBhR2x6TG5Oc2FXUmxjaTV6WTNKdmJHeENlU2gwYUdsekxuTnNhV1JsY2k1dGFXNGdLeUJqYjNWdWRFOW1VMk55YjJ4c1VHOXphWFJwYjI1ektUdGNibHh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdkR2hwY3k1MmFXVjNVM1ZpY3k1d2RYTm9LSFZwTG05dVUybDZaVU5vWVc1blpXUW9kR2hwY3k1eWIyOTBLUzV6ZFdKelkzSnBZbVVvZEdocGN5NXliMjkwVDI1VGFYcGxRMmhoYm1kbFpDNWlhVzVrS0hSb2FYTXBLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuSnZiM1F1WVhCd1pXNWtLSFJvYVhNdWFHOXpkQ2s3WEc0Z0lDQWdkR2hwY3k1eWIyOTBMbUZ3Y0dWdVpDaDBhR2x6TG5Oc2FXUmxjaTV5YjI5MEtUdGNibHh1SUNBZ0lIUm9hWE11WDJOaGJHTjFiR0YwWlNoM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBieWs3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1ZUYkdsa1pYSW9LVHRjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCSVlXNWtiR1Z5SUc5bUlHTm9ZVzVuYVc1bklITnBlbVVnVjJWaVRHOW5ieUFxTDF4dUlDQndjbWwyWVhSbElISnZiM1JQYmxOcGVtVkRhR0Z1WjJWa0tDazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVYMk5oYkdOMWJHRjBaU2gzYVc1a2IzY3VaR1YyYVdObFVHbDRaV3hTWVhScGJ5azdYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVlRiR2xrWlhJb0tUdGNiaUFnSUNCMGFHbHpMbkpsYm1SbGNpaDBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJCYzNOcFoyNXpJSHRBYkdsdWF5QnpaWEZEYjJ4OUlHRnVaQ0I3UUd4cGJtc2dZM0I5SUdKaGMyVmtJRzl1SUh0QWJHbHVheUJ6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1Y5SUdGdVpDQmpZV3hzY3lCN1FHeHBibXNnY21WdVpHVnlmU2dwTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCMWNHUmhkR1ZUWlhGRGIyd29LVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVpHRjBZVVp5WVcxbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGNVTnZiQ0E5SUhSb2FYTXVjMlZ4ZFdWdVkyVkRiMngxYlc1T1lXMWxJRDhnZEdocGN5NWtZWFJoUm5KaGJXVXVZMjlzS0hSb2FYTXVjMlZ4ZFdWdVkyVkRiMngxYlc1T1lXMWxLU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXpaWEZEYjJ3Z1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGNVTnZiQ0E5SUhCcFkydFZjRk5sY1VOdmJDaDBhR2x6TG1SaGRHRkdjbUZ0WlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsSUQwZ2RHaHBjeTV6WlhGRGIyd2dQeUIwYUdsekxuTmxjVU52YkM1dVlXMWxJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuTmxjVU52YkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMWJtbDBjem9nYzNSeWFXNW5JRDBnZEdocGN5NXpaWEZEYjJ3aExtZGxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBWR0ZuS0ZSQlIxTXVjMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpjR3hwZEhSbGNpQTlJR2RsZEZOd2JHbDBkR1Z5S0hWdWFYUnpMQ0J6WlhCaGNtRjBiM0lwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNWxkeUJWYm1sMGMwaGhibVJzWlhJb2RHaHBjeTV6WlhGRGIyd3BPMXh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFVHOXphWFJwYjI1ektDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVkzQWdQU0J3YVdOclZYQlFZV3hsZEhSbEtIUm9hWE11YzJWeFEyOXNLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzQnNhWFIwWlhJZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkR0Z5ZEZCdmMybDBhVzl1SUQwZ0xURTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdQU0F0TVR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqY0NBOUlHNTFiR3c3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lIUm9hWE11Y21WdVpHVnlLQ2s3WEc0Z0lIMWNibHh1SUNBdktpb2dWWEJrWVhSbGN5QjdRR3hwYm1zZ2NHOXphWFJwYjI1T1lXMWxjMzBnWVc1a0lHTmhiR04xYkdGMFpYTWdlMEJzYVc1cklITjBZWEowVUc5emFYUnBiMjU5SUdGdVpDQjdRR3hwYm1zZ1pXNWtVRzl6YVhScGIyNTlMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0IxY0dSaGRHVlFiM05wZEdsdmJuTW9LVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTmxjVU52YkNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR3hsZENCallYUmxaMjl5YVdWek9pQW9jM1J5YVc1bklId2diblZzYkNrZ1cxMDdYRzRnSUNBZ2FXWWdLSFJvYVhNdWMyaHlhVzVyUlcxd2RIbFVZV2xzS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwYm1ScFkyVnpPaUJKYm5Rek1rRnljbUY1SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dUlDQWdJQ0FnWTJGMFpXZHZjbWxsY3lBOUlFRnljbUY1TG1aeWIyMG9ibVYzSUZObGRDaGNiaUFnSUNBZ0lDQWdRWEp5WVhrdVpuSnZiU2hCY25KaGVTaHBibVJwWTJWekxteGxibWQwYUNrdWEyVjVjeWdwS1M1dFlYQW9LR2s2SUc1MWJXSmxjaWtnUFQ0Z2RHaHBjeTV6WlhGRGIyd2hMbWRsZENocGJtUnBZMlZ6VzJsZEtTa3BLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJSFJvYVhNdWMyVnhRMjlzTG1OaGRHVm5iM0pwWlhNN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHMWhlRXhsYm1kMGFDQTlJR05oZEdWbmIzSnBaWE11YkdWdVozUm9JRDRnTUNBL0lFMWhkR2d1YldGNEtDNHVMbU5oZEdWbmIzSnBaWE11YldGd0tGeHVJQ0FnSUNBZ0tITXBJRDArSUhNZ0lUMDlJRzUxYkd3Z1B5QjBhR2x6TG5Od2JHbDBkR1Z5SVNoektTNXNaVzVuZEdnZ09pQXdLU2tnT2lBd08xeHVYRzRnSUNBZ0x5OGdSMlYwSUhCdmMybDBhVzl1SUc1aGJXVnpJR1p5YjIwZ1pHRjBZU0JqYjJ4MWJXNGdkR0ZuSUNkd2IzTnBkR2x2Yms1aGJXVnpKMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1VG1GdFpYTlVlSFFnUFNCMGFHbHpMbk5sY1VOdmJDNW5aWFJVWVdjb0ozQnZjMmwwYVc5dVRtRnRaWE1uS1R0Y2JpQWdJQ0F2THlCR1lXeHNZbUZqYXlCcFppQW5jRzl6YVhScGIyNU9ZVzFsY3ljZ2RHRm5JR2x6SUc1dmRDQndjbTkyYVdSbFpGeHVJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBOUlIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1B5QndiM05wZEdsdmJrNWhiV1Z6VkhoMExuTndiR2wwS0Njc0lDY3BMbTFoY0Nnb2Jpa2dQVDRnYmk1MGNtbHRLQ2twSURwY2JpQWdJQ0FnSUZzdUxpNUJjbkpoZVNodFlYaE1aVzVuZEdncExtdGxlWE1vS1YwdWJXRndLQ2hxVUc5ektTQTlQaUJnSkh0cVVHOXpJQ3NnTVgxZ0tUdGNibHh1SUNBZ0lIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbElDWW1JSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeUFtSmx4dUlDQWdJQ0FnZEdocGN5NXdiM05wZEdsdmJrNWhiV1Z6TG1sdVkyeDFaR1Z6S0hSb2FYTXVjM1JoY25SUWIzTnBkR2x2Yms1aGJXVXBLU0EvWEc0Z0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE11YVc1a1pYaFBaaWgwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbEtTQTZJREE3WEc0Z0lDQWdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNBbUppQjBhR2x6TG5CdmMybDBhVzl1VG1GdFpYTWdKaVpjYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1Oc2RXUmxjeWgwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNrcElEOWNiaUFnSUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5NXBibVJsZUU5bUtIUm9hWE11Wlc1a1VHOXphWFJwYjI1T1lXMWxLU0E2SUNodFlYaE1aVzVuZEdnZ0xTQXhLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElIZHBaSFJvUVhKbFlTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVNWlc1bmRHZ2dLaUIwYUdsekxuQnZjMmwwYVc5dVYybGtkR2dnTHlCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBienRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElHaGxhV2RvZEVGeVpXRW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1YldsdUtIUm9hWE11YldGNFNHVnBaMmgwTENCTllYUm9MbTFoZUNoMGFHbHpMbTFwYmtobGFXZG9kQ3dnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDa3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhRZ2VGTmpZV3hsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUFvZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDMGdkR2hwY3k1TVpXNW5kR2dnS2lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdVZtRnNkV1VwSUM4Z2RHaHBjeTUzYVdSMGFFRnlaV0U3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdkbGRDQjVVMk5oYkdVb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbTl2ZEM1amJHbGxiblJJWldsbmFIUWdMeUIwYUdsekxtaGxhV2RvZEVGeVpXRTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR05vWldOclNYTklhV1JsVTJ4cFpHVnlLQ2s2SUdKdmIyeGxZVzRnZTF4dUlDQWdJR3hsZENCemFHOTNVMnhwWkdWeVYybDBhRVpwZEVGeVpXRWdQU0IwY25WbE8xeHVJQ0FnSUdOdmJuTjBJRzFwYmxOallXeGxJRDBnVFdGMGFDNXRhVzRvZEdocGN5NTRVMk5oYkdVc0lIUm9hWE11ZVZOallXeGxLVHRjYmx4dUlDQWdJR2xtSUNnb0tHMXBibE5qWVd4bElEMDlJSFJvYVhNdWVGTmpZV3hsS1NCOGZDQW9iV2x1VTJOaGJHVWdQRDBnTVNrcElDWW1JQ2gwYUdsekxtWnBkRUZ5WldFcEtTQjdYRzRnSUNBZ0lDQnphRzkzVTJ4cFpHVnlWMmwwYUVacGRFRnlaV0VnUFNCbVlXeHpaVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUNnb2RHaHBjeTVtYVhoWGFXUjBhQ0I4ZkNCTllYUm9MbU5sYVd3b2RHaHBjeTVqWVc1MllYTXVkMmxrZEdnZ0x5QjBhR2x6TG5CdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVLU0ErUFNCMGFHbHpMa3hsYm1kMGFDa2dmSHdnS0hOb2IzZFRiR2xrWlhKWGFYUm9SbWwwUVhKbFlTa3BPMXh1SUNCOVhHNWNiaUFnYzJWMFUyeHBaR1Z5Vm1semFXSnBiR2wwZVNoMmFYTnBZbXhsT2lCaWIyOXNaV0Z1S1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0hacGMybGliR1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMnhwWkdWeUxuSnZiM1F1YzNSNWJHVXVaR2x6Y0d4aGVTQTlJQ2RwYm1obGNtbDBKenRjYmlBZ0lDQWdJSFJvYVhNdWRtbHphV0pzWlZOc2FXUmxjaUE5SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMnhwWkdWeUxuSnZiM1F1YzNSNWJHVXVaR2x6Y0d4aGVTQTlJQ2R1YjI1bEp6dGNiaUFnSUNBZ0lIUm9hWE11ZG1semFXSnNaVk5zYVdSbGNpQTlJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLaUJWY0dSaGRHVnpJSHRBYkdsdWF5QnpiR2xrWlhKOUxDQnVaV1ZrWldRZ2RHOGdjMlYwSUhOc2FXUmxjaUJ2Y0hScGIyNXpJR0Z1WkNCMGJ5QjFjR1JoZEdVZ2MyeHBaR1Z5SUhCdmMybDBhVzl1TGlBcUwxeHVJQ0J3Y21sMllYUmxJSFZ3WkdGMFpWTnNhV1JsY2lncE9pQjJiMmxrSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVqYUdWamEwbHpTR2xrWlZOc2FXUmxjaWdwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOc2FXUmxjbFpwYzJsaWFXeHBkSGtvWm1Gc2MyVXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOc2FXUmxjbFpwYzJsaWFXeHBkSGtvZEhKMVpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ29kR2hwY3k1emJHbGtaWElnSVQwZ2JuVnNiQ2tnSmlZZ0tIUm9hWE11WTJGdWRtRnpJQ0U5SUc1MWJHd3BLU0I3WEc0Z0lDQWdJQ0JzWlhRZ1pHbG1aa1Z1WkZOamNtOXNiRUZ1WkZOc2FXUmxjazFwYmlBOUlFMWhkR2d1Wm14dmIzSW9kR2hwY3k1emJHbGtaWEl1YldsdUlDc2dkR2hwY3k1allXNTJZWE11ZDJsa2RHZ2dMeUIwYUdsekxuQnZjMmwwYVc5dVYybGtkR2hYYVhSb1RXRnlaMmx1S1NBdElIUm9hWE11VEdWdVozUm9PMXh1SUNBZ0lDQWdaR2xtWmtWdVpGTmpjbTlzYkVGdVpGTnNhV1JsY2sxcGJpQTlJR1JwWm1aRmJtUlRZM0p2Ykd4QmJtUlRiR2xrWlhKTmFXNGdQaUF3SUQ4Z1pHbG1aa1Z1WkZOamNtOXNiRUZ1WkZOc2FXUmxjazFwYmlBNklEQTdYRzRnSUNBZ0lDQnNaWFFnYm1WM1RXbHVJRDBnVFdGMGFDNW1iRzl2Y2loMGFHbHpMbk5zYVdSbGNpNXRhVzRnTFNCa2FXWm1SVzVrVTJOeWIyeHNRVzVrVTJ4cFpHVnlUV2x1S1R0Y2JpQWdJQ0FnSUd4bGRDQnVaWGROWVhnZ1BTQk5ZWFJvTG1ac2IyOXlLSFJvYVhNdWMyeHBaR1Z5TG0xcGJpQXRJR1JwWm1aRmJtUlRZM0p2Ykd4QmJtUlRiR2xrWlhKTmFXNHBJQ3NnVFdGMGFDNW1iRzl2Y2loMGFHbHpMbU5oYm5aaGN5NTNhV1IwYUNBdklIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNHBPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVZMmhsWTJ0SmMwaHBaR1ZUYkdsa1pYSW9LU2tnZTF4dUlDQWdJQ0FnSUNCdVpYZE5hVzRnUFNBd08xeHVJQ0FnSUNBZ0lDQnVaWGROWVhnZ1BTQjBhR2x6TGt4bGJtZDBhQ0F0SURFN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMGFHbHpMblIxY201UFpsSmxjMmw2WlVadmNrOXVaVk5sZEZaaGJIVmxJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIUm9hWE11YzJ4cFpHVnlMbk5sZEZaaGJIVmxjeWd3TENCMGFHbHpMa3hsYm1kMGFDeGNiaUFnSUNBZ0lDQWdibVYzVFdsdUxDQnVaWGROWVhncE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLaUJJWVc1a2JHVnlJRzltSUhCeWIzQmxjblI1SUdOb1lXNW5aU0JsZG1WdWRITXVJQ292WEc0Z0lIQjFZbXhwWXlCdmRtVnljbWxrWlNCdmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVRvZ1JFY3VVSEp2Y0dWeWRIa3BPaUIyYjJsa0lIdGNiaUFnSUNCemRYQmxjaTV2YmxCeWIzQmxjblI1UTJoaGJtZGxaQ2h3Y205d1pYSjBlU2s3WEc1Y2JpQWdJQ0J6ZDJsMFkyZ2dLSEJ5YjNCbGNuUjVMbTVoYldVcElIdGNiaUFnSUNCallYTmxJQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNOMFlYSjBVRzl6YVhScGIyNU9ZVzFsSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyVnhRMjlzS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbGJtUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUR0Y2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyeHBaR1Z5S0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbWFYaFhhV1IwYUNjNlhHNGdJQ0FnSUNCMGFHbHpMblZ3WkdGMFpWTnNhV1JsY2lncE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBblptbDBRWEpsWVNjNlhHNGdJQ0FnSUNCMGFHbHpMblZ3WkdGMFpWTnNhV1JsY2lncE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBbmMyaHlhVzVyUlcxd2RIbFVZV2xzSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFVHOXphWFJwYjI1ektDazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZHphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTW5PbHh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZRYjNOcGRHbHZibk1vS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VFdGeVoybHVKenBjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsVTJ4cFpHVnlLQ2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbkpsYm1SbGNpaDBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJCWkdRZ1ptbHNkR1Z5SUdoaGJtUnNaWEp6SUhkb1pXNGdkR0ZpYkdVZ2FYTWdZU0JoZEhSaFkyaGxaQ0FnS2k5Y2JpQWdjSFZpYkdsaklHOTJaWEp5YVdSbElHOXVWR0ZpYkdWQmRIUmhZMmhsWkNncElIdGNiaUFnSUNCemRYQmxjaTV2YmxSaFlteGxRWFIwWVdOb1pXUW9LVHRjYmx4dUlDQWdJR052Ym5OMElHUmhkR0ZHY21GdFpWUjRkRG9nYzNSeWFXNW5JRDBnZEdocGN5NWtZWFJoUm5KaGJXVWdQeUFuWkdGMFlTY2dPaUFuYm5Wc2JDYzdYRzRnSUNBZ1kyOXVjMjlzWlM1a1pXSjFaeWhnWW1sdk9pQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xtOXVWR0ZpYkdWQmRIUmhZMmhsWkNnZ1pHRjBZVVp5WVcxbElEMGdKSHRrWVhSaFJuSmhiV1ZVZUhSOUlDa2djM1JoY25SZ0tUdGNibHh1SUNBZ0lIUm9hWE11ZFhCa1lYUmxVMlZ4UTI5c0tDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWtZWFJoUm5KaGJXVWdJVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29kR2hwY3k1a1lYUmhSbkpoYldVdWMyVnNaV04wYVc5dUxtOXVRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LRjhwSUQwK0lIUm9hWE11Y21WdVpHVnlLQ2twS1R0Y2JpQWdJQ0FnSUhSb2FYTXVjM1ZpY3k1d2RYTm9LSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1dmJrTm9ZVzVuWldRdWMzVmljMk55YVdKbEtDaGZLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZFhCa1lYUmxVRzl6YVhScGIyNXpLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtDazdYRzRnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1cGJtbDBLQ2s3WEc0Z0lDQWdZMjl1YzI5c1pTNWtaV0oxWnloZ1ltbHZPaUJYWldKTWIyZHZQQ1I3ZEdocGN5NTJhV1YzWlhKSlpIMCtMbTl1VkdGaWJHVkJkSFJoWTJobFpDZ3BJR1Z1WkdBcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUZKbGJXOTJaU0JoYkd3Z2FHRnVaR3hsY25NZ2QyaGxiaUIwWVdKc1pTQnBjeUJoSUdSbGRHRmphQ0FnS2k5Y2JpQWdjSFZpYkdsaklHOTJaWEp5YVdSbElHRnplVzVqSUdSbGRHRmphQ2dwSUh0Y2JpQWdJQ0JqYjI1emRDQmtZWFJoUm5KaGJXVlVlSFFnUFNCZ0pIdDBhR2x6TG1SaGRHRkdjbUZ0WlNBL0lDZGtZWFJoSnlBNklDZHVkV3hzSjMxZ08xeHVJQ0FnSUdOdmJuTnZiR1V1WkdWaWRXY29ZR0pwYnpvZ1YyVmlURzluYnp3a2UzUm9hWE11ZG1sbGQyVnlTV1I5UGk1dmJsUmhZbXhsUVhSMFlXTm9aV1FvSUdSaGRHRkdjbUZ0WlNBOUlDUjdaR0YwWVVaeVlXMWxWSGgwZlNBcElITjBZWEowWUNrN1hHNGdJQ0FnYzNWd1pYSXVaR1YwWVdOb0tDazdYRzVjYmlBZ0lDQjBhR2x6TG5acFpYZFRkV0p6TG1admNrVmhZMmdvS0hOMVlpa2dQVDRnYzNWaUxuVnVjM1ZpYzJOeWFXSmxLQ2twTzF4dUlDQWdJSFJvYVhNdWFHOXpkQ0V1Y21WdGIzWmxLQ2s3WEc0Z0lDQWdkR2hwY3k1dGMyZEliM04wSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUhSb2FYTXVhRzl6ZENBOUlIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lIUm9hWE11YVc1cGRHbGhiR2w2WldRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ2tnWlc1a1lDazdYRzRnSUgxY2JseHVJQ0F2S2lvZ1NHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQnlaVzVrWlhKcGJtY2dLaTljYmlBZ2NISnZkR1ZqZEdWa0lGOXVkV3hzVTJWeGRXVnVZMlVvWm1sc2JHVnlVbVZ6YVdSMVpTQTlJQ2RZSnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5OcmFYQkZiWEIwZVZObGNYVmxibU5sY3lsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1FYSnlZWGtvZEdocGN5NU1aVzVuZEdncExtWnBiR3dvWm1sc2JHVnlVbVZ6YVdSMVpTa3VhbTlwYmlnbkp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z0p5YzdYRzRnSUgxY2JseHVJQ0F2S2lvZ1NHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQnlaVzF2ZG1VZ1pXMXdkSGtnY0c5emFYUnBiMjV6SUNvdlhHNGdJQzh2SUZSUFJFODZJSFZ6WlNCMGFHbHpJR1oxYm1OMGFXOXVJR2x1SUdaeWIyMGdZMjl5WlZ4dUlDQndjbTkwWldOMFpXUWdjbVZ0YjNabFYyaGxjbVVvWVhKeVlYazZJRUZ5Y21GNVBHRnVlVDRzSUhCeVpXUnBZMkYwWlRvZ0tGUTZJR0Z1ZVNrZ1BUNGdZbTl2YkdWaGJpazZJRUZ5Y21GNVBHRnVlVDRnZTF4dUlDQWdJR3hsZENCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJSFZ3WkdGMFpVbDBaWEpoZEc5eUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQmtaV3hsZEdWSmRHVnlZWFJ2Y2lBOUlEQTdJR1JsYkdWMFpVbDBaWEpoZEc5eUlEd2diR1Z1WjNSb095QmtaV3hsZEdWSmRHVnlZWFJ2Y2lzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhCeVpXUnBZMkYwWlNoaGNuSmhlVnRrWld4bGRHVkpkR1Z5WVhSdmNsMHBLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM1Z3WkdGMFpVbDBaWEpoZEc5eVhTQTlJR0Z5Y21GNVcyUmxiR1YwWlVsMFpYSmhkRzl5WFR0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsU1hSbGNtRjBiM0lyS3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2RYQmtZWFJsU1hSbGNtRjBiM0k3WEc0Z0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQjlYRzVjYmx4dUlDQXZLaW9nUm5WdVkzUnBiMjRnWm05eUlISmxiVzkyYVc1bklHVnRjSFI1SUhCdmMybDBhVzl1Y3lBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWDNKbGJXOTJaVVZ0Y0hSNVVHOXphWFJwYjI1ektDa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1eVpXMXZkbVZYYUdWeVpTaDBhR2x6TG5CdmMybDBhVzl1Y3l3Z2FYUmxiU0E5UGlCcGRHVnRQeTVtY21WeFd5Y3RKMTAvTG1OdmRXNTBJRDA5UFNCcGRHVnRMbkp2ZDBOdmRXNTBLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWDJOaGJHTjFiR0YwWlNoeU9pQnVkVzFpWlhJcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFHOXpkQ0I4ZkNBaGRHaHBjeTV6WlhGRGIyd2dmSHdnSVhSb2FYTXVaR0YwWVVaeVlXMWxLVnh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUhSb2FYTXVkVzVwZEhOSVlXNWtiR1Z5SUQwZ2JtVjNJRlZ1YVhSelNHRnVaR3hsY2loMGFHbHpMbk5sY1VOdmJDazdYRzVjYmlBZ0lDQjBhR2x6TG1OaGJHTlRhWHBsS0NrN1hHNWNiaUFnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjeUE5SUc1bGR5QkJjbkpoZVNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BEMGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQS9JSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdMU0IwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lBeElEb2dNQ2s3WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlEQTdJR3BRYjNNZ1BDQjBhR2x6TGt4bGJtZDBhRHNnYWxCdmN5c3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndiM05PWVcxbE9pQnpkSEpwYm1jZ1BTQjBhR2x6TG5CdmMybDBhVzl1VG1GdFpYTmJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMDdYRzRnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYU0E5SUc1bGR5QlFiM05wZEdsdmJrbHVabThvY0c5elRtRnRaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnTWpBeU1pMHdOUzB3TlNCaGMydGhiR3RwYmlCcGJuTjBjblZqZEdWa0lIUnZJSE5vYjNjZ1YyVmlURzluYnlCaVlYTmxaQ0J2YmlCbWFXeDBaWElnS0c1dmRDQnpaV3hsWTNScGIyNHBYRzRnSUNBZ1kyOXVjM1FnYVc1a2FXTmxjeUE5SUhSb2FYTXVaR0YwWVVaeVlXMWxMbVpwYkhSbGNpNW5aWFJUWld4bFkzUmxaRWx1WkdWNFpYTW9LVHRjYmlBZ0lDQXZMeUJqYjI1emRDQnBibVJwWTJWeklEMGdkR2hwY3k1a1lYUmhSbkpoYldVdWMyVnNaV04wYVc5dUxuUnlkV1ZEYjNWdWRDQStJREFnUHlCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1WjJWMFUyVnNaV04wWldSSmJtUmxlR1Z6S0NrZ09seHVJQ0FnSUM4dklDQWdkR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG1kbGRGTmxiR1ZqZEdWa1NXNWtaWGhsY3lncE8xeHVYRzRnSUNBZ2RHaHBjeTV5YjNkelRXRnphMlZrSUQwZ2FXNWthV05sY3k1c1pXNW5kR2c3WEc0Z0lDQWdkR2hwY3k1eWIzZHpUblZzYkNBOUlEQTdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ2FXNWthV05sY3lrZ2UxeHVJQ0FnSUNBZ2JHVjBJSE02SUhOMGNtbHVaeUE5SUR4emRISnBibWMrS0hSb2FYTXVjMlZ4UTI5c0xtZGxkQ2hwS1NrN1hHNWNiaUFnSUNBZ0lHbG1JQ2doY3lrZ2UxeHVJQ0FnSUNBZ0lDQnpJRDBnZEdocGN5NWZiblZzYkZObGNYVmxibU5sS0NrN1hHNGdJQ0FnSUNBZ0lDc3JkR2hwY3k1eWIzZHpUblZzYkR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRUb2djM1J5YVc1blcxMGdQU0IwYUdsekxuTndiR2wwZEdWeUlTaHpLVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR3BRYjNNZ1BTQXdPeUJxVUc5eklEd2dkR2hwY3k1TVpXNW5kR2c3SUdwUWIzTXJLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YlVsdVptOGdQU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRPaUJ6ZEhKcGJtY2dQU0J6WlhGTlczUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQXJJR3BRYjNOZElIeDhJQ2N0Snp0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0VvYlNCcGJpQndiVWx1Wm04cEtWeHVJQ0FnSUNBZ0lDQWdJSEJ0U1c1bWIxdHRYU0E5SUc1bGR5QlFiM05wZEdsdmJrMXZibTl0WlhKSmJtWnZLQ2s3WEc0Z0lDQWdJQ0FnSUhCdFNXNW1iMXR0WFM1amIzVnVkQ3NyTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2STNKbFoybHZiaUJRYjJ4cGMyZ2dabkpsY1NCamIzVnVkSE5jYmlBZ0lDQm1iM0lnS0d4bGRDQnFVRzl6SUQwZ01Ec2dhbEJ2Y3lBOElIUm9hWE11VEdWdVozUm9PeUJxVUc5ekt5c3BJSHRjYmlBZ0lDQWdJQzh2SUdSbGJHVjBaU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhXeWN0SjEwN1hHNWNiaUFnSUNBZ0lIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbkp2ZDBOdmRXNTBJRDBnTUR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JTQnBiaUIwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhLVnh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1eWIzZERiM1Z1ZENBclBTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeFcyMWRMbU52ZFc1ME8xeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXpkVzFHYjNKSVpXbG5hSFJEWVd4aklEMGdNRHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCdElHbHVJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRXBJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3YmlBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhGYmJWMHVZMjkxYm5RZ0x5QjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV5YjNkRGIzVnVkRHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXpkVzFHYjNKSVpXbG5hSFJEWVd4aklDczlJQzF3YmlBcUlFMWhkR2d1Ykc5bk1paHdiaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1WEc0Z0lDQWdkR2hwY3k1ZmNtVnRiM1psUlcxd2RIbFFiM05wZEdsdmJuTW9LVHRjYmx4dUlDQWdJR052Ym5OMElHRmljMjlzZFhSbFRXRjRTR1ZwWjJoMElEMGdkR2hwY3k1allXNTJZWE11YUdWcFoyaDBJQzBnZEdocGN5NWhlR2x6U0dWcFoyaDBJQ29nY2p0Y2JseHVJQ0FnSUM4dkkzSmxaMmx2YmlCRFlXeGpkV3hoZEdVZ2MyTnlaV1Z1WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlEQTdJR3BRYjNNZ1BDQjBhR2x6TGt4bGJtZDBhRHNnYWxCdmN5c3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm1jbVZ4T2lCN0lGdGpPaUJ6ZEhKcGJtZGRPaUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUgwZ1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeE8xeHVJQ0FnSUNBZ1kyOXVjM1FnY205M1EyOTFiblFnUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWREdGNiaUFnSUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwVTJsNlpTQTlJSFJvYVhNdVoyVjBRV3h3YUdGaVpYUlRhWHBsS0NrN1hHNGdJQ0FnSUNCcFppQW9LSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnSmlZZ0tHRnNjR2hoWW1WMFUybDZaU0E5UFNCdWRXeHNLU2tnZTF4dUlDQWdJQ0FnSUNCbmNtOXJMbk5vWld4c0xtVnljbTl5S0NkWFpXSk1iMmR2T2lCaGJIQm9ZV0psZENCcGN5QjFibVJsWm1sdVpXUXVKeWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzFoZUVobGFXZG9kQ0E5SUNoMGFHbHpMbkJ2YzJsMGFXOXVTR1ZwWjJoMElEMDlJRkJ2YzJsMGFXOXVTR1ZwWjJoMExrVnVkSEp2Y0hrcElEOGdLR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJQ29nS0UxaGRHZ3ViRzluTWloaGJIQm9ZV0psZEZOcGVtVXBJQzBnS0hSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExuTjFiVVp2Y2tobGFXZG9kRU5oYkdNcEtTQXZJRTFoZEdndWJHOW5NaWhoYkhCb1lXSmxkRk5wZW1VcEtTQTZJR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBPMXh1WEc0Z0lDQWdJQ0JzWlhRZ2VUb2diblZ0WW1WeUlEMGdkR2hwY3k1aGVHbHpTR1ZwWjJoMElDb2djaUFySUNoaFluTnZiSFYwWlUxaGVFaGxhV2RvZENBdElHMWhlRWhsYVdkb2RDQXRJREVwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JsYm5SeWFXVnpJRDBnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9abkpsY1NrdWMyOXlkQ2dvWVN3Z1lpa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZVnN3WFNBaFBUMGdKeTBuSUNZbUlHSmJNRjBnSVQwOUlDY3RKeWxjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWWxzeFhTNWpiM1Z1ZENBdElHRmJNVjB1WTI5MWJuUTdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR0ZiTUYwZ1BUMDlJQ2N0SnlBbUppQmlXekJkSUQwOVBTQW5MU2NwWEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SURBN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHRmJNRjBnUFQwOUlDY3RKeWxjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTFRFN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnTHlvZ0tHSmJNRjBnUFQwOUlDY3RKeWtnS2k5Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0t6RTdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWlc1MGNua2diMllnWlc1MGNtbGxjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YlVsdVptODZJRkJ2YzJsMGFXOXVUVzl1YjIxbGNrbHVabThnUFNCbGJuUnllVnN4WFR0Y2JpQWdJQ0FnSUNBZ0x5OGdZMjl1YzNRZ2JUb2djM1J5YVc1bklEMGdaVzUwY25sYk1GMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHZzZJRzUxYldKbGNpQTlJRzFoZUVobGFXZG9kQ0FxSUhCdFNXNW1ieTVqYjNWdWRDQXZJSEp2ZDBOdmRXNTBPMXh1WEc0Z0lDQWdJQ0FnSUhCdFNXNW1ieTVpYjNWdVpITWdQU0J1WlhjZ1JFY3VVbVZqZENocVVHOXpJQ29nZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvVjJsMGFFMWhjbWRwYml3Z2VTd2dkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ3dnYUNrN1hHNGdJQ0FnSUNBZ0lIa2dLejBnYUR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1WEc1Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlc1a1pYSWdWMlZpVEc5bmJ5QnpaVzV6YVhScGRtVWdkRzhnWTJoaGJtZGxjeUJwYmlCd1lYSmhiWE1nYjJZZ2NtVnVaR1Z5YVc1blhHNGdJQ0FxUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0J5WldOaGJHTWdMU0JwYm1ScFkyRjBaWE1nZEdoaGRDQnVaV1ZrSUhSdklISmxZMkZzWTNWc1lYUmxJR1JoZEdFZ1ptOXlJSEpsYm1SbGNtbHVaMXh1SUNBZ0tpOWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YzJWeFEyOXNJSHg4SUNGMGFHbHpMbVJoZEdGR2NtRnRaU0I4ZkNBaGRHaHBjeTVqY0NCOGZDQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdQVDA5SUMweElIeDhJSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdQVDA5SUMweElIeDhJSFJvYVhNdWFHOXpkQ0E5UFNCdWRXeHNJSHg4SUhSb2FYTXVjMnhwWkdWeUlEMDlJRzUxYkd3cFhHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdJQ0JqYjI1emRDQm5JRDBnZEdocGN5NWpZVzUyWVhNdVoyVjBRMjl1ZEdWNGRDZ25NbVFuS1R0Y2JpQWdJQ0JwWmlBb0lXY3BJSEpsZEhWeWJqdGNibHh1SUNBZ0lIUm9hWE11YzJ4cFpHVnlMbkp2YjNRdWMzUjViR1V1ZDJsa2RHZ2dQU0JnSkh0MGFHbHpMbWh2YzNRdVkyeHBaVzUwVjJsa2RHaDljSGhnTzF4dVhHNGdJQ0FnWTI5dWMzUWdjaUE5SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1WEc0Z0lDQWdhV1lnS0hKbFkyRnNZeWxjYmlBZ0lDQWdJSFJvYVhNdVgyTmhiR04xYkdGMFpTaHlLVHRjYmx4dUlDQWdJR2N1Y21WelpYUlVjbUZ1YzJadmNtMG9LVHRjYmlBZ0lDQm5MbVpwYkd4VGRIbHNaU0E5SUVSSExrTnZiRzl5TG5SdlNIUnRiQ2gwYUdsekxtSmhZMnRuY205MWJtUkRiMnh2Y2lrN1hHNGdJQ0FnWnk1bWFXeHNVbVZqZENnd0xDQXdMQ0IwYUdsekxtTmhiblpoY3k1M2FXUjBhQ3dnZEdocGN5NWpZVzUyWVhNdWFHVnBaMmgwS1R0Y2JpQWdJQ0JuTG5SbGVIUkNZWE5sYkdsdVpTQTlJSFJvYVhNdWRHVjRkRUpoYzJWc2FXNWxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRjRRMjkxYm5SUFpsSnZkM05TWlc1a1pYSmxaQ0E5SUhSb2FYTXVZMjkxYm5SUFpsSmxibVJsY2xCdmMybDBhVzl1Y3lBcklERTdYRzRnSUNBZ1kyOXVjM1FnWm1seWMzUldhWE5wWW14bFNXNWtaWGdnUFNBb2RHaHBjeTUyYVhOcFlteGxVMnhwWkdWeUtTQS9JRTFoZEdndVpteHZiM0lvZEdocGN5NXpiR2xrWlhJdWJXbHVLU0E2SURBN1hHNGdJQ0FnWTI5dWMzUWdiR0Z6ZEZacGMybGliR1ZKYm1SbGVDQTlJRTFoZEdndWJXbHVLSFJvYVhNdVRHVnVaM1JvTENCbWFYSnpkRlpwYzJsaWJHVkpibVJsZUNBcklHMWhlRU52ZFc1MFQyWlNiM2R6VW1WdVpHVnlaV1FwTzF4dVhHNGdJQ0FnTHk4amNtVm5hVzl1SUZCc2IzUWdjRzl6YVhScGIyNU9ZVzFsYzF4dUlDQWdJR052Ym5OMElIQnZjMmwwYVc5dVJtOXVkRk5wZW1VZ1BTQXhNQ0FxSUhJN1hHNGdJQ0FnWnk1eVpYTmxkRlJ5WVc1elptOXliU2dwTzF4dUlDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ0oySnNZV05ySnp0Y2JpQWdJQ0JuTG5SbGVIUkJiR2xuYmlBOUlDZGpaVzUwWlhJbk8xeHVJQ0FnSUdjdVptOXVkQ0E5SUdBa2UzQnZjMmwwYVc5dVJtOXVkRk5wZW1VdWRHOUdhWGhsWkNneEtYMXdlQ0JTYjJKdmRHOHNJRkp2WW05MGJ5Qk1iMk5oYkN3Z2MyRnVjeTF6WlhKcFptQTdYRzRnSUNBZ1kyOXVjM1FnY0c5elRtRnRaVTFoZUZkcFpIUm9JRDBnVFdGMGFDNXRZWGdvTGk0dWRHaHBjeTV3YjNOcGRHbHZibk11YldGd0tDaHdiM01wSUQwK0lHY3ViV1ZoYzNWeVpWUmxlSFFvY0c5ekxtNWhiV1VwTG5kcFpIUm9LU2s3WEc0Z0lDQWdZMjl1YzNRZ2FGTmpZV3hsSUQwZ2NHOXpUbUZ0WlUxaGVGZHBaSFJvSUR3Z0tIUm9hWE11WDNCdmMybDBhVzl1VjJsa2RHZ2dMU0F5S1NBL0lERWdPaUFvZEdocGN5NWZjRzl6YVhScGIyNVhhV1IwYUNBdElESXBJQzhnY0c5elRtRnRaVTFoZUZkcFpIUm9PMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlIUm9hWE11Wm1seWMzUldhWE5wWW14bFNXNWtaWGc3SUdwUWIzTWdQQ0JzWVhOMFZtbHphV0pzWlVsdVpHVjRPeUJxVUc5ekt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIQnZjem9nVUc5emFYUnBiMjVKYm1adklEMGdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTA3WEc0Z0lDQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdJQ0JuTG5ObGRGUnlZVzV6Wm05eWJTaGNiaUFnSUNBZ0lDQWdhRk5qWVd4bExDQXdMQ0F3TENBeExGeHVJQ0FnSUNBZ0lDQnFVRzl6SUNvZ2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb1YybDBhRTFoY21kcGJpQXJJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnTHlBeUlDMGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFxSUdacGNuTjBWbWx6YVdKc1pVbHVaR1Y0TENBd0tUdGNiaUFnSUNBZ0lHY3VabWxzYkZSbGVIUW9jRzl6TG01aGJXVXNJREFzSURBcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlObGJtUnlaV2RwYjI0Z1VHeHZkQ0J3YjNOcGRHbHZiazVoYldWelhHNGdJQ0FnWTI5dWMzUWdabTl1ZEZOMGVXeGxJRDBnSnpFMmNIZ2dVbTlpYjNSdkxDQlNiMkp2ZEc4Z1RHOWpZV3dzSUhOaGJuTXRjMlZ5YVdZbk8xeHVJQ0FnSUM4dklFaGhZMnR6SUhSdklITmpZV3hsSUhWd2NHVnlZMkZ6WlNCamFHRnlZV04wWlhKeklIUnZJSFJoY21kbGRDQnlaV04wWVc1bmJHVmNiaUFnSUNCamIyNXpkQ0IxY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RZ1BTQXdMakkxTzF4dUlDQWdJR052Ym5OMElIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ0E5SURFeUxqSTdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZzdJR3BRYjNNZ1BDQnNZWE4wVm1semFXSnNaVWx1WkdWNE95QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lHWnZjaUFvWTI5dWMzUWdXMjF2Ym05dFpYSXNJSEJ0U1c1bWIxMGdiMllnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9kR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Wm5KbGNTa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMXZibTl0WlhJZ0lUMDlJQ2N0SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhKVWVIUWdQU0J0YjI1dmJXVnlWRzlUYUc5eWRDaHRiMjV2YldWeUxDQTFLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JpSUQwZ2NHMUpibVp2TG1KdmRXNWtjenRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWldaMElEMGdZaTVzWldaMElDMGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFxSUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZzdYRzVjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxjMlYwVkhKaGJuTm1iM0p0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdaeTV6ZEhKdmEyVlRkSGxzWlNBOUlDZHNhV2RvZEdkeVlYa25PMXh1SUNBZ0lDQWdJQ0FnSUdjdWJHbHVaVmRwWkhSb0lEMGdNVHRjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxZM1FvYkdWbWRDd2dZaTUwYjNBc0lHSXVkMmxrZEdnc0lHSXVhR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdJQ0JuTG1acGJHeFRkSGxzWlNBOUlIUm9hWE11WTNBdVoyVjBLRzF2Ym05dFpYSXBJRDgvSUhSb2FYTXVZM0F1WjJWMEtDZHZkR2hsY2ljcE8xeHVJQ0FnSUNBZ0lDQWdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0oyeGxablFuTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabTl1ZENBOUlHWnZiblJUZEhsc1pUdGNiaUFnSUNBZ0lDQWdJQ0F2TDJjdVptbHNiRkpsWTNRb1lpNXNaV1owTENCaUxuUnZjQ3dnWWk1M2FXUjBhQ3dnWWk1b1pXbG5hSFFwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxVWJUb2dWR1Y0ZEUxbGRISnBZM01nUFNCbkxtMWxZWE4xY21WVVpYaDBLRzF2Ym05dFpYSlVlSFFwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpTG5kcFpIUm9JQzhnYlZSdExuZHBaSFJvTENBd0xDQXdMQ0JpTG1obGFXZG9kQ0F2SUhWd2NHVnlZMkZ6WlV4bGRIUmxja2hsYVdkb2RDeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bFpuUXNJR0l1ZEc5d0tUdGNiaUFnSUNBZ0lDQWdJQ0JuTG1acGJHeFVaWGgwS0cxdmJtOXRaWEpVZUhRc0lEQXNJQzExY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xSUVOaGJHTjFiR0YwWlNCallXNTJZWE1nYzJsNlpTQmhiaUJ3YjNOcGRHbHZibGRwWkhSb0lHRnVaQ0IxY0dSaGRHVnpJSEJ5YjNCbGNuUnBaWE1nS2k5Y2JpQWdjSEpwZG1GMFpTQmpZV3hqVTJsNlpTZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhRzl6ZENsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVYRzRnSUNBZ2JHVjBJSGRwWkhSb09pQnVkVzFpWlhJZ1BTQjBhR2x6TG5kcFpIUm9RWEpsWVR0Y2JpQWdJQ0JzWlhRZ2FHVnBaMmgwSUQwZ2RHaHBjeTVvWldsbmFIUkJjbVZoTzF4dVhHNGdJQ0FnYVdZZ0tDaDBhR2x6TG1acGRFRnlaV0VwSUNZbUlDZ2hkR2hwY3k1MmFYTnBZbXhsVTJ4cFpHVnlLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjMk5oYkdVZ1BTQk5ZWFJvTG0xaGVDZ3hMQ0JOWVhSb0xtMXBiaWgwYUdsekxuaFRZMkZzWlN3Z2RHaHBjeTU1VTJOaGJHVXBLVHRjYmlBZ0lDQWdJSGRwWkhSb0lEMGdkMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0FnSUdobGFXZG9kQ0E5SUdobGFXZG9kQ0FxSUhOallXeGxPMXh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUNBcUlITmpZV3hsTzF4dUlDQWdJSDFjYmx4dUlDQWdJSGRwWkhSb0lEMGdkR2hwY3k1TVpXNW5kR2dnS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdUlDOGdjanRjYmx4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG5kcFpIUm9JRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDb2djanRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlHQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUlhhV1IwYUgxd2VHQTdYRzVjYmlBZ0lDQXZMeUJqYjI1emRDQmpZVzUyWVhOSVpXbG5hSFE2SUc1MWJXSmxjaUE5SUhkcFpIUm9JRDRnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lEOGdhR1ZwWjJoMElDMGdPQ0E2SUdobGFXZG9kRHRjYmlBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMmhsYVdkb2RDY3NJR0FrZTJobGFXZG9kSDF3ZUdBcE8xeHVJQ0FnSUdOdmJuTjBJR05oYm5aaGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ2RHaHBjeTVvYjNOMExtTnNhV1Z1ZEVobGFXZG9kRHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTVvWldsbmFIUWdQU0JqWVc1MllYTklaV2xuYUhRZ0tpQnlPMXh1WEc0Z0lDQWdMeThnUVdScWRYTjBJR2h2YzNRZ1lXNWtJSEp2YjNRZ2QybGtkR2hjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdMeThnWm5Wc2JDQjNhV1IwYUNCbWIzSWdZMkZ1ZG1GeklHaHZjM1FnWVc1a0lISnZiM1JjYmlBZ0lDQWdJSFJvYVhNdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlIUm9hWE11YUc5emRDNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UzZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdG9aV2xuYUhSOWNIaGdPMXh1SUNBZ0lDQWdkR2hwY3k1eWIyOTBMbk4wZVd4bExtOTJaWEptYkc5M0lEMGdKMmhwWkdSbGJpYzdYRzRnSUNBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMjkyWlhKbWJHOTNMWGtuTENBbmFHbGtaR1Z1Snl3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBdkx5QmhiR3h2ZHlCelkzSnZiR3dnWTJGdWRtRnpJR2x1SUhKdmIzUmNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1M2FXUjBhQ0E5SUhSb2FYTXVhRzl6ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1dmRtVnlabXh2ZDFnZ1BTQW5ZWFYwYnlGcGJYQnZjblJoYm5Rbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZDBaWGgwTFdGc2FXZHVKeXdnZEdocGN5NW9iM0pwZW05dWRHRnNRV3hwWjI1dFpXNTBLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMnhwWkdWeVNHVnBaMmgwSUQwZ2RHaHBjeTUyYVhOcFlteGxVMnhwWkdWeUlEOGdNVEFnT2lBd08xeHVYRzRnSUNBZ0lDQXZMeUIyWlhKMGFXTmhiQ0JoYkdsbmJtMWxiblJjYmlBZ0lDQWdJR3hsZENCb2IzTjBWRzl3VFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NTJaWEowYVdOaGJFRnNhV2R1YldWdWRDa2dlMXh1SUNBZ0lDQWdZMkZ6WlNBbmRHOXdKenBjYmlBZ0lDQWdJQ0FnYUc5emRGUnZjRTFoY21kcGJpQTlJREE3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNBbmJXbGtaR3hsSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRlJ2Y0UxaGNtZHBiaUE5SUUxaGRHZ3ViV0Y0S0RBc0lDaDBhR2x6TG5KdmIzUXVZMnhwWlc1MFNHVnBaMmgwSUMwZ2FHVnBaMmgwS1NBdklESXBPMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lHTmhjMlVnSjJKdmRIUnZiU2M2WEc0Z0lDQWdJQ0FnSUdodmMzUlViM0JOWVhKbmFXNGdQU0JOWVhSb0xtMWhlQ2d3TENCMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJQzBnYUdWcFoyaDBJQzBnYzJ4cFpHVnlTR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5Qm9iM0pwZW05dWRHRnNJR0ZzYVdkdWJXVnVkRnh1SUNBZ0lDQWdiR1YwSUdodmMzUk1aV1owVFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NW9iM0pwZW05dWRHRnNRV3hwWjI1dFpXNTBLU0I3WEc0Z0lDQWdJQ0JqWVhObElDZHNaV1owSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRXhsWm5STllYSm5hVzRnUFNBd08xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUdOaGMyVWdKMk5sYm5SbGNpYzZYRzRnSUNBZ0lDQWdJR2h2YzNSTVpXWjBUV0Z5WjJsdUlEMGdUV0YwYUM1dFlYZ29NQ3dnS0hSb2FYTXVjbTl2ZEM1amJHbGxiblJYYVdSMGFDQXRJSGRwWkhSb0tTQXZJRElwTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJR05oYzJVZ0ozSnBaMmgwSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRXhsWm5STllYSm5hVzRnUFNCTllYUm9MbTFoZUNnd0xDQjBhR2x6TG5KdmIzUXVZMnhwWlc1MFYybGtkR2dnTFNCM2FXUjBhQ2s3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExuTmxkRkJ5YjNCbGNuUjVLQ2R0WVhKbmFXNHRkRzl3Snl3Z1lDUjdhRzl6ZEZSdmNFMWhjbWRwYm4xd2VHQXNJQ2RwYlhCdmNuUmhiblFuS1R0Y2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmJXRnlaMmx1TFd4bFpuUW5MQ0JnSkh0b2IzTjBUR1ZtZEUxaGNtZHBibjF3ZUdBc0lDZHBiWEJ2Y25SaGJuUW5LVHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk5zYVdSbGNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyeHBaR1Z5TG5KdmIzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMjFoY21kcGJpMTBiM0FuTENCZ0pIdG9iM04wVkc5d1RXRnlaMmx1SUNzZ1kyRnVkbUZ6U0dWcFoyaDBmWEI0WUN3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kQ0E4UFNCb1pXbG5hSFFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZG9aV2xuYUhRbkxDQmdKSHQwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMGZYQjRZQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmIzWmxjbVpzYjNjdGVTY3NJRzUxYkd3cE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZHZkbVZ5Wm14dmR5MTVKeXdnSjJocFpHUmxiaWNzSUNkcGJYQnZjblJoYm5RbktUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBRV3h3YUdGaVpYUlRhWHBsS0NrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRXNXBkSE5JWVc1a2JHVnlQeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LU0EvUHlBd08xeHVJQ0I5WEc1OVhHNGlYWDA9IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVEaW1lbnNpbmFsaXR5UmVkdWNpbmdXb3JrZXIgfSBmcm9tICcuL3dvcmtlcnMvZGltZW5zaW9uYWxpdHktcmVkdWNpbmctd29ya2VyLWNyZWF0b3InO1xuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihkYXRhQ29sLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMgPSB5aWVsZCBjcmVhdGVEaW1lbnNpbmFsaXR5UmVkdWNpbmdXb3JrZXIoeyBkYXRhOiBkYXRhQ29sLCBtZXRyaWM6IHNpbWlsYXJpdHlNZXRyaWMgfSwgbWV0aG9kTmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzLmVtYmVkZGluZyA9IGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzLmVtYmVkZGluZy5tYXAoaXQgPT4gbm9ybWFsaXplKGl0KSk7XG4gICAgICAgIHJldHVybiBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcztcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnhkV1Z1WTJVdGMzQmhZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpaWEYxWlc1alpTMXpjR0ZqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkZRU3hQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEUxQlFVMHNhVVJCUVdsRUxFTkJRVU03UVVGSE5VVXNUMEZCVHl4RlFVRkZMR2xEUVVGcFF5eEZRVUVyUWl4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlIyeEpMRTFCUVUwc1ZVRkJaMElzYjBOQlFXOURMRU5CUTNSRUxFOUJRWEZETEVWQlEzSkRMRlZCUVd0Q0xFVkJRMnhDTEdkQ1FVRTJSQ3hGUVVNM1JDeFBRVUZoT3p0UlFVVmlMRTFCUVUwc2RVSkJRWFZDTEVkQlEzcENMRTFCUVUwc2FVTkJRV2xETEVOQlEyNURMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNaMEpCUVdkQ0xFVkJRV2RDTEVWQlEzcEVMRlZCUVZVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVUzUWl4MVFrRkJkVUlzUTBGQlF5eFRRVUZUTEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5R0xFOUJRVThzZFVKQlFYVkNMRU5CUVVNN1NVRkRia01zUTBGQlF6dERRVUZCSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUVKcGRFRnljbUY1SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDJKcGRDMWhjbkpoZVNjN1hHNXBiWEJ2Y25RZ2V5Qk5ZWFJ5YVhnc0lGWmxZM1J2Y2lCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJRzV2Y20xaGJHbDZaU0I5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNabFkzUnZjaTF2Y0dWeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVwYlhCdmNuUWdleUJDYVhSQmNuSmhlVTFsZEhKcFkzTXNJRk4wY21sdVowMWxkSEpwWTNNc0lGWmhiR2xrVkhsd1pYTXNJRlpsWTNSdmNrMWxkSEpwWTNNZ2ZTQm1jbTl0SUNjdUwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUhzZ1kzSmxZWFJsUkdsdFpXNXphVzVoYkdsMGVWSmxaSFZqYVc1blYyOXlhMlZ5TENCSlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRZ2ZTQm1jbTl0SUNjdUwzZHZjbXRsY25NdlpHbHRaVzV6YVc5dVlXeHBkSGt0Y21Wa2RXTnBibWN0ZDI5eWEyVnlMV055WldGMGIzSW5PMXh1WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ5WldSMVkyVkVhVzFsYm5OcGJtRnNhWFI1VjJsMGFFNXZjbTFoYkdsNllYUnBiMjRvWEc0Z0lDQWdaR0YwWVVOdmJEb2dRbWwwUVhKeVlYbGJYWHhXWldOMGIzSmJYWHh6ZEhKcGJtZGJYU3dnWEc0Z0lDQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MQ0JjYmlBZ0lDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQkNhWFJCY25KaGVVMWxkSEpwWTNOOFZtVmpkRzl5VFdWMGNtbGpjM3hUZEhKcGJtZE5aWFJ5YVdOekxGeHVJQ0FnSUc5d2RHbHZibk0vT2lCaGJua3BPaUJRY205dGFYTmxQRWxTWldSMVkyVkVhVzFsYm5OcGIyNWhiR2wwZVZKbGMzVnNkRDRnZTF4dVhHNGdJQ0FnWTI5dWMzUWdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNNklFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RDQTlYRzRnSUNBZ0lDQWdJR0YzWVdsMElHTnlaV0YwWlVScGJXVnVjMmx1WVd4cGRIbFNaV1IxWTJsdVoxZHZjbXRsY2loY2JpQWdJQ0FnSUNBZ0lDQWdJSHNnWkdGMFlUb2daR0YwWVVOdmJDd2diV1YwY21sak9pQnphVzFwYkdGeWFYUjVUV1YwY21saklIMGdZWE1nVm1Gc2FXUlVlWEJsY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFsZEdodlpFNWhiV1VzSUc5d2RHbHZibk1wTzF4dVhHNGdJQ0FnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTXVaVzFpWldSa2FXNW5JRDBnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTXVaVzFpWldSa2FXNW5MbTFoY0NocGRDQTlQaUJ1YjNKdFlXeHBlbVVvYVhRcEtUdGNiaUFnSUNCeVpYUjFjbTRnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTTdYRzU5SWwxOSIsImltcG9ydCAqIGFzIGZsIGZyb20gJ2Zhc3Rlc3QtbGV2ZW5zaHRlaW4nO1xuaW1wb3J0IHsgamFyb1dpbmtsZXIgfSBmcm9tICdqYXJvLXdpbmtsZXItdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBkaXN0YW5jZU1ldHJpY3MgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlTWV0cmljcyA9IHtcbiAgICAnVmVjdG9yJzoge1xuICAgICAgICAnRXVjbGlkZWFuRGlzdGFuY2UnOiBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSxcbiAgICB9LFxuICAgICdTdHJpbmcnOiB7XG4gICAgICAgICdMZXZlbnNodGVpbic6IGZsLmRpc3RhbmNlLFxuICAgICAgICAnSmFyby1XaW5rbGVyJzogamFyb1dpbmtsZXIsXG4gICAgfSxcbiAgICAnQml0QXJyYXknOiB7XG4gICAgICAgICdUYW5pbW90byc6IGRpc3RhbmNlTWV0cmljc1snVGFuaW1vdG8nXSxcbiAgICAgICAgJ0RpY2UnOiBkaXN0YW5jZU1ldHJpY3NbJ0RpY2UnXSxcbiAgICAgICAgJ0FzeW1tZXRyaWMnOiBkaXN0YW5jZU1ldHJpY3NbJ0FzeW1tZXRyaWMnXSxcbiAgICAgICAgJ0JyYXVuLUJsYW5xdWV0JzogZGlzdGFuY2VNZXRyaWNzWydCcmF1bi1CbGFucXVldCddLFxuICAgICAgICAnQ29zaW5lJzogZGlzdGFuY2VNZXRyaWNzWydDb3NpbmUnXSxcbiAgICAgICAgJ0t1bGN6eW5za2knOiBkaXN0YW5jZU1ldHJpY3NbJ0t1bGN6eW5za2knXSxcbiAgICAgICAgJ01jLUNvbm5hdWdoZXknOiBkaXN0YW5jZU1ldHJpY3NbJ01jLUNvbm5hdWdoZXknXSxcbiAgICAgICAgJ1JvZ290LUdvbGRiZXJnJzogZGlzdGFuY2VNZXRyaWNzWydSb2dvdC1Hb2xkYmVyZyddLFxuICAgICAgICAnUnVzc2VsJzogZGlzdGFuY2VNZXRyaWNzWydSdXNzZWwnXSxcbiAgICAgICAgJ1Nva2FsJzogZGlzdGFuY2VNZXRyaWNzWydTb2thbCddLFxuICAgIH0sXG59O1xuZXhwb3J0IGNvbnN0IE1ldHJpY1RvRGF0YVR5cGUgPSBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzKVxuICAgIC5yZWR1Y2UoKHJldCwga2V5KSA9PiB7XG4gICAgZm9yIChjb25zdCB2YWwgb2YgT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1trZXldKSkge1xuICAgICAgICByZXRbdmFsXSA9IGtleTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbn0sIHt9KTtcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZ01ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1N0cmluZyc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNCaXRBcnJheU1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ0JpdEFycmF5Jztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlY3Rvck1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1ZlY3Rvcic7XG59XG4vKiogVW5pZmllZCBjbGFzcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IHN0cmluZyBtZWFzdXJlcy4gKi9cbmV4cG9ydCBjbGFzcyBNZWFzdXJlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE1lYXN1cmUgd2l0aCAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCBNZXRob2QgdG8gY2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4gc3RyaW5ncy5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXRob2QpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIHRoaXMuZGF0YVR5cGUgPSBNZXRyaWNUb0RhdGFUeXBlW21ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBmdW5jdGlvbiBzcGVjaWZpZWQuXG4gICAgICogQHJldHVybiB7RGlzdGFuY2VNZXRyaWN9IENhbGxiYWNrIG9mIHRoZSBtZWFzdXJlIGNob3Nlbi5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBnZXRNZWFzdXJlKCkge1xuICAgICAgICBjb25zdCBkaWN0ID0gQXZhaWxhYmxlTWV0cmljcztcbiAgICAgICAgcmV0dXJuIGRpY3RbdGhpcy5kYXRhVHlwZV1bdGhpcy5tZXRob2RdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgYnkgdGhlIGdpdmVuIGRhdGEgdHlwZS5cbiAgICAgKiBAcGFyYW0ge0F2YWlsYWJsZURhdGFUeXBlc30gZGF0YVR5cGUgTWV0cmljJ3MgZGF0YSB0eXBlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IE1ldHJpYyBuYW1lcyB3aGljaCBleHBlY3RzIHRoZSBnaXZlbiBkYXRhIHR5cGVcbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TWV0cmljQnlEYXRhVHlwZShkYXRhVHlwZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1tkYXRhVHlwZV0pO1xuICAgIH1cbiAgICAvKiogUmV0dXJucyBtZXRyaWMgbmFtZXMgYXZhaWxhYmxlLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICovXG4gICAgc3RhdGljIGdldCBhdmFpbGFibGVNZWFzdXJlcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaV1F0YldWMGNtbGpjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluUjVjR1ZrTFcxbGRISnBZM011ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXhReXhQUVVGUExFVkJRVU1zVjBGQlZ5eEZRVUZETEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRmNFUXNUMEZCVHl4RlFVRkRMR1ZCUVdVc1JVRkJReXhOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUTJwR0xFOUJRVThzUlVGQlF5d3dRa0ZCTUVJc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCU1ROR0xFMUJRVTBzUTBGQlF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSE8wbEJRemxDTEZGQlFWRXNSVUZCUlR0UlFVTlNMRzFDUVVGdFFpeEZRVUZGTERCQ1FVRXdRanRMUVVOb1JEdEpRVU5FTEZGQlFWRXNSVUZCUlR0UlFVTlNMR0ZCUVdFc1JVRkJSU3hGUVVGRkxFTkJRVU1zVVVGQlVUdFJRVU14UWl4alFVRmpMRVZCUVVVc1YwRkJWenRMUVVNMVFqdEpRVU5FTEZWQlFWVXNSVUZCUlR0UlFVTldMRlZCUVZVc1JVRkJSU3hsUVVGbExFTkJRVU1zVlVGQlZTeERRVUZETzFGQlEzWkRMRTFCUVUwc1JVRkJSU3hsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF5OUNMRmxCUVZrc1JVRkJSU3hsUVVGbExFTkJRVU1zV1VGQldTeERRVUZETzFGQlF6TkRMR2RDUVVGblFpeEZRVUZGTEdWQlFXVXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVU51UkN4UlFVRlJMRVZCUVVVc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU51UXl4WlFVRlpMRVZCUVVVc1pVRkJaU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVU16UXl4bFFVRmxMRVZCUVVVc1pVRkJaU3hEUVVGRExHVkJRV1VzUTBGQlF6dFJRVU5xUkN4blFrRkJaMElzUlVGQlJTeGxRVUZsTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRGJrUXNVVUZCVVN4RlFVRkZMR1ZCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGJrTXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU03UzBGRGJFTTdRMEZEUml4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVhGQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03UzBGRE5VVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJjVUlzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0SlFVTnlReXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCZVVJc1EwRkJReXhEUVVGRExFVkJRVVU3VVVGRE1VVXNSMEZCUnl4RFFVRkRMRWRCUVhsQ0xFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTMEZEZEVNN1NVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5pTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVZkVUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNTVUZCYTBJN1NVRkRMME1zVDBGQlR5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeFJRVUZSTEVOQlFVTTdRVUZETlVNc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhKUVVGclFqdEpRVU5xUkN4UFFVRlBMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRlZCUVZVc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhKUVVGclFqdEpRVU12UXl4UFFVRlBMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJRenRCUVVNMVF5eERRVUZETzBGQlJVUXNORVJCUVRSRU8wRkJRelZFTEUxQlFVMHNUMEZCVHl4UFFVRlBPMGxCU1d4Q096czdPMDlCU1VjN1NVRkRTQ3haUVVGWkxFMUJRVzlDTzFGQlF6bENMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzSkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGMVFpeERRVUZETzBsQlEycEZMRU5CUVVNN1NVRkZSRHM3T3p0UFFVbEhPMGxCUTBrc1ZVRkJWVHRSUVVObUxFMUJRVTBzU1VGQlNTeEhRVUZ6UkN4blFrRkJaMElzUTBGQlF6dFJRVU5xUml4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkpMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4UlFVRTBRanRSUVVNMVJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJDeERRVUZETzBsQlJVUTdPMDFCUlVVN1NVRkRSaXhOUVVGTkxFdEJRVXNzYVVKQlFXbENPMUZCUXpGQ0xFOUJRVThzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzBsQlEzWkRMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklHWnNJR1p5YjIwZ0oyWmhjM1JsYzNRdGJHVjJaVzV6YUhSbGFXNG5PMXh1YVcxd2IzSjBJSHRxWVhKdlYybHVhMnhsY24wZ1puSnZiU0FuYW1GeWJ5MTNhVzVyYkdWeUxYUjVjR1Z6WTNKcGNIUW5PMXh1YVcxd2IzSjBJSHRFYVhOMFlXNWpaVTFsZEhKcFkzMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRrYVhOMFlXNWpaVTFsZEhKcFkzTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM05wYldsc1lYSnBkSGt0YldWMGNtbGpjeWM3WEc1cGJYQnZjblFnZTJOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3ljN1hHNXBiWEJ2Y25RZ1FtbDBRWEp5WVhrZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdlltbDBMV0Z5Y21GNUp6dGNibWx0Y0c5eWRDQjdWbVZqZEc5eUxDQlRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJkbUZwYkdGaWJHVk5aWFJ5YVdOeklEMGdlMXh1SUNBblZtVmpkRzl5SnpvZ2UxeHVJQ0FnSUNkRmRXTnNhV1JsWVc1RWFYTjBZVzVqWlNjNklHTmhiR04xYkdGMFpVVjFZMnhwWkdWaGJrUnBjM1JoYm1ObExGeHVJQ0I5TEZ4dUlDQW5VM1J5YVc1bkp6b2dlMXh1SUNBZ0lDZE1aWFpsYm5Ob2RHVnBiaWM2SUdac0xtUnBjM1JoYm1ObExGeHVJQ0FnSUNkS1lYSnZMVmRwYm10c1pYSW5PaUJxWVhKdlYybHVhMnhsY2l4Y2JpQWdmU3hjYmlBZ0owSnBkRUZ5Y21GNUp6b2dlMXh1SUNBZ0lDZFVZVzVwYlc5MGJ5YzZJR1JwYzNSaGJtTmxUV1YwY21samMxc25WR0Z1YVcxdmRHOG5YU3hjYmlBZ0lDQW5SR2xqWlNjNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblJHbGpaU2RkTEZ4dUlDQWdJQ2RCYzNsdGJXVjBjbWxqSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkQmMzbHRiV1YwY21sakoxMHNYRzRnSUNBZ0owSnlZWFZ1TFVKc1lXNXhkV1YwSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkQ2NtRjFiaTFDYkdGdWNYVmxkQ2RkTEZ4dUlDQWdJQ2REYjNOcGJtVW5PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKME52YzJsdVpTZGRMRnh1SUNBZ0lDZExkV3hqZW5sdWMydHBKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRMZFd4amVubHVjMnRwSjEwc1hHNGdJQ0FnSjAxakxVTnZibTVoZFdkb1pYa25PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKMDFqTFVOdmJtNWhkV2RvWlhrblhTeGNiaUFnSUNBblVtOW5iM1F0UjI5c1pHSmxjbWNuT2lCa2FYTjBZVzVqWlUxbGRISnBZM05iSjFKdloyOTBMVWR2YkdSaVpYSm5KMTBzWEc0Z0lDQWdKMUoxYzNObGJDYzZJR1JwYzNSaGJtTmxUV1YwY21samMxc25VblZ6YzJWc0oxMHNYRzRnSUNBZ0oxTnZhMkZzSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkVGIydGhiQ2RkTEZ4dUlDQjlMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUUxbGRISnBZMVJ2UkdGMFlWUjVjR1U2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCUFltcGxZM1F1YTJWNWN5aEJkbUZwYkdGaWJHVk5aWFJ5YVdOektWeHVJQ0F1Y21Wa2RXTmxLQ2h5WlhRNklGTjBjbWx1WjBScFkzUnBiMjVoY25rc0lHdGxlU2tnUFQ0Z2UxeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RtRnNJRzltSUU5aWFtVmpkQzVyWlhsektFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYmEyVjVJR0Z6SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzEwcEtTQjdYRzRnSUNBZ0lDQnlaWFJiZG1Gc0lHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBnUFNCclpYazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhRN1hHNGdJSDBzSUh0OUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1FYWmhhV3hoWW14bFJHRjBZVlI1Y0dWeklEMGdhMlY1YjJZZ2RIbHdaVzltSUVGMllXbHNZV0pzWlUxbGRISnBZM003WEc1bGVIQnZjblFnZEhsd1pTQlRkSEpwYm1kTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMU4wY21sdVp5ZGRPMXh1Wlhod2IzSjBJSFI1Y0dVZ1FtbDBRWEp5WVhsTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMEpwZEVGeWNtRjVKMTA3WEc1bGVIQnZjblFnZEhsd1pTQldaV04wYjNKTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMVpsWTNSdmNpZGRPMXh1Wlhod2IzSjBJSFI1Y0dVZ1MyNXZkMjVOWlhSeWFXTnpJRDBnVTNSeWFXNW5UV1YwY21samN5QjhJRUpwZEVGeWNtRjVUV1YwY21samN5QjhJRlpsWTNSdmNrMWxkSEpwWTNNN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaaGJHbGtWSGx3WlhNZ1BTQjdaR0YwWVRvZ2MzUnlhVzVuVzEwc0lHMWxkSEpwWXpvZ1UzUnlhVzVuVFdWMGNtbGpjMzBnZkNCN1pHRjBZVG9nVm1WamRHOXlXMTBzSUcxbGRISnBZem9nVm1WamRHOXlUV1YwY21samMzMGdmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHRrWVhSaE9pQkNhWFJCY25KaGVWdGRMQ0J0WlhSeWFXTTZJRUpwZEVGeWNtRjVUV1YwY21samMzMDdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzFOMGNtbHVaMDFsZEhKcFl5aHVZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXBJSHRjYmlBZ2NtVjBkWEp1SUUxbGRISnBZMVJ2UkdGMFlWUjVjR1ZiYm1GdFpWMGdQVDBnSjFOMGNtbHVaeWM3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMEpwZEVGeWNtRjVUV1YwY21saktHNWhiV1U2SUV0dWIzZHVUV1YwY21samN5a2dlMXh1SUNCeVpYUjFjbTRnVFdWMGNtbGpWRzlFWVhSaFZIbHdaVnR1WVcxbFhTQTlQU0FuUW1sMFFYSnlZWGtuTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5XWldOMGIzSk5aWFJ5YVdNb2JtRnRaVG9nUzI1dmQyNU5aWFJ5YVdOektTQjdYRzRnSUhKbGRIVnliaUJOWlhSeWFXTlViMFJoZEdGVWVYQmxXMjVoYldWZElEMDlJQ2RXWldOMGIzSW5PMXh1ZlZ4dVhHNHZLaW9nVlc1cFptbGxaQ0JqYkdGemN5QnBiWEJzWlcxbGJuUnBibWNnWkdsbVptVnlaVzUwSUhOMGNtbHVaeUJ0WldGemRYSmxjeTRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWldGemRYSmxJSHRjYmlBZ2NISnZkR1ZqZEdWa0lHMWxkR2h2WkRvZ1MyNXZkMjVOWlhSeWFXTnpPMXh1SUNCd2NtOTBaV04wWldRZ1pHRjBZVlI1Y0dVNklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGN6dGNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsY3lCaGJpQnBibk4wWVc1alpTQnZaaUJOWldGemRYSmxJSGRwZEdnZ0xseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYldWMGFHOWtJRTFsZEdodlpDQjBieUJqWVd4amRXeGhkR1VnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUJ6ZEhKcGJtZHpMbHh1SUNBZ0tpQkFiV1Z0WW1WeWIyWWdUV1ZoYzNWeVpYSmNiaUFnSUNvdlhHNGdJR052Ym5OMGNuVmpkRzl5S0cxbGRHaHZaRG9nUzI1dmQyNU5aWFJ5YVdOektTQjdYRzRnSUNBZ2RHaHBjeTV0WlhSb2IyUWdQU0J0WlhSb2IyUTdYRzRnSUNBZ2RHaHBjeTVrWVhSaFZIbHdaU0E5SUUxbGRISnBZMVJ2UkdGMFlWUjVjR1ZiYldWMGFHOWtYU0JoY3lCQmRtRnBiR0ZpYkdWRVlYUmhWSGx3WlhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmpkWE4wYjIwZ2MzUnlhVzVuSUdScGMzUmhibU5sSUdaMWJtTjBhVzl1SUhOd1pXTnBabWxsWkM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UkdsemRHRnVZMlZOWlhSeWFXTjlJRU5oYkd4aVlXTnJJRzltSUhSb1pTQnRaV0Z6ZFhKbElHTm9iM05sYmk1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUUxbFlYTjFjbVZ5WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFRXVmhjM1Z5WlNncE9pQkVhWE4wWVc1alpVMWxkSEpwWXlCN1hHNGdJQ0FnWTI5dWMzUWdaR2xqZERvZ2UxdHJaWGs2SUhOMGNtbHVaMTA2SUh0YmEyVjVNam9nYzNSeWFXNW5YVG9nUkdsemRHRnVZMlZOWlhSeWFXTjlmU0E5SUVGMllXbHNZV0pzWlUxbGRISnBZM003WEc0Z0lDQWdjbVYwZFhKdUlHUnBZM1JiZEdocGN5NWtZWFJoVkhsd1pWMWJkR2hwY3k1dFpYUm9iMlJkTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1kzVnpkRzl0SUhOMGNtbHVaeUJrYVhOMFlXNWpaU0JpZVNCMGFHVWdaMmwyWlc0Z1pHRjBZU0IwZVhCbExseHVJQ0FnS2lCQWNHRnlZVzBnZTBGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzMwZ1pHRjBZVlI1Y0dVZ1RXVjBjbWxqSjNNZ1pHRjBZU0IwZVhCbFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMXRkZlNCTlpYUnlhV01nYm1GdFpYTWdkMmhwWTJnZ1pYaHdaV04wY3lCMGFHVWdaMmwyWlc0Z1pHRjBZU0IwZVhCbFhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSTlpYUnlhV05DZVVSaGRHRlVlWEJsS0dSaGRHRlVlWEJsT2lCQmRtRnBiR0ZpYkdWRVlYUmhWSGx3WlhNcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVyWlhsektFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYlpHRjBZVlI1Y0dWZEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCU1pYUjFjbTV6SUcxbGRISnBZeUJ1WVcxbGN5QmhkbUZwYkdGaWJHVXVYRzRnSUNBcUlFQnRaVzFpWlhKdlppQk5aV0Z6ZFhKbGNseHVJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBJR0YyWVdsc1lXSnNaVTFsWVhOMWNtVnpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtdGxlWE1vUVhaaGFXeGhZbXhsVFdWMGNtbGpjeWs3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgeyBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvc2ltaWxhcml0eS1tZXRyaWNzJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5sZXQgem9vbSA9IGZhbHNlO1xuY29uc3QgbW9sQ29sdW1uTmFtZXMgPSBbJzFfc2VxJywgJzJfc2VxJ107XG5jb25zdCBub25Ob3JtYWxpemVkRGlzdGFuY2VzID0gWydMZXZlbnNodGVpbiddO1xuLy8gU2VhcmNoZXMgZm9yIGFjdGl2aXR5IGNsaWZmcyBpbiBhIGNoZW1pY2FsIGRhdGFzZXQgYnkgc2VsZWN0ZWQgY3V0b2ZmXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZpdHlDbGlmZnMoZGYsIHNlcUNvbCwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCBzY2F0dGVyVGl0bGUsIGFjdGl2aXRpZXMsIHNpbWlsYXJpdHksIHNpbWlsYXJpdHlNZXRyaWMsIG1ldGhvZE5hbWUsIHNlbVR5cGUsIHRhZ3MsIHNlcVNwYWNlRnVuYywgc2ltTWF0cml4RnVuYywgdG9vbHRpcEZ1bmMsIHByb3BlcnR5UGFuZWxGdW5jLCBzZXFTcGFjZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBhdXRvbWF0aWNTaW1pbGFyaXR5TGltaXQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgTUlOX1NJTUlMQVJJVFkgPSA4MDtcbiAgICAgICAgY29uc3QgaW5pdGlhbFNpbWlsYXJpdHlMaW1pdCA9IGF1dG9tYXRpY1NpbWlsYXJpdHlMaW1pdCA/IE1JTl9TSU1JTEFSSVRZIDogc2ltaWxhcml0eSAvIDEwMDtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wgPSBlbmNvZGVkQ29sICE9PSBudWxsICYmIGVuY29kZWRDb2wgIT09IHZvaWQgMCA/IGVuY29kZWRDb2wgOiBzZXFDb2w7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2xdKS5jbG9uZSgpO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgZW1wdHlWYWxzSWR4cyA9IHJlbW92ZUVtcHR5U3RyaW5nUm93cyh3aXRob3V0RW1wdHlWYWx1ZXMsIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sKTtcbiAgICAgICAgY29uc3QgeyBkaXN0YW5jZSwgY29vcmRpbmF0ZXMgfSA9IHlpZWxkIHNlcVNwYWNlRnVuYyh7XG4gICAgICAgICAgICBzZXFDb2w6IHdpdGhvdXRFbXB0eVZhbHVlcy5jb2woZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBheGVzTmFtZXMsXG4gICAgICAgICAgICBvcHRpb25zOiBzZXFTcGFjZU9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgY29sIG9mIGNvb3JkaW5hdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0VmFsdWVzID0gY29sLnRvTGlzdCgpO1xuICAgICAgICAgICAgZW1wdHlWYWxzSWR4cy5mb3JFYWNoKChpbmQpID0+IGxpc3RWYWx1ZXMuc3BsaWNlKGluZCwgMCwgbnVsbCkpO1xuICAgICAgICAgICAgZGYuY29sdW1ucy5hZGQoREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBjb2wubmFtZSwgbGlzdFZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRmU2VxID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtERy5Db2x1bW4uZnJvbUxpc3QoJ3N0cmluZycsICdzZXEnLCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC50b0xpc3QoKSldKTtcbiAgICAgICAgY29uc3QgZGltID0gZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBzaW1BcnIgPSBBcnJheShkaW0gLSAxKTtcbiAgICAgICAgaWYgKCFkaXN0YW5jZSB8fCBlbXB0eVZhbHNJZHhzLmxlbmd0aCAhPT0gMCB8fCBub25Ob3JtYWxpemVkRGlzdGFuY2VzLmluY2x1ZGVzKHNpbWlsYXJpdHlNZXRyaWMpKVxuICAgICAgICAgICAgeWllbGQgc2ltTWF0cml4RnVuYyhkaW0sIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLCBkZlNlcSwgJ3NlcScsIHNpbUFycik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGdldFNpbWlsYXJpdGllc0Zyb21EaXN0YW5jZXMoZGltLCBkaXN0YW5jZSwgc2ltQXJyKTtcbiAgICAgICAgY29uc3Qgb3B0U2ltaWxhcml0eUxpbWl0ID0gaW5pdGlhbFNpbWlsYXJpdHlMaW1pdDtcbiAgICAgICAgY29uc3Qgc2ltVmFscyA9IFtdO1xuICAgICAgICBjb25zdCBzYWxpVmFscyA9IFtdO1xuICAgICAgICBjb25zdCBuMSA9IFtdO1xuICAgICAgICBjb25zdCBuMiA9IFtdO1xuICAgICAgICBjb25zdCBjbGlmZnNNb2xJZHMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IGRpbSAtIDE7ICsraSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogIT0gZGltIC0gMSAtIGk7ICsraikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpbSA9IHNpbUFycltpXSA/IHNpbUFycltpXS5nZXQoaikgOiAwO1xuICAgICAgICAgICAgICAgIGlmIChzaW0gPj0gb3B0U2ltaWxhcml0eUxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG4xLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgIG4yLnB1c2goaSArIGogKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpZmZzTW9sSWRzLmFkZChpKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpZmZzTW9sSWRzLmFkZChpICsgaiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBzaW1WYWxzLnB1c2goc2ltKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKGFjdGl2aXRpZXMuZ2V0KGkpIC0gYWN0aXZpdGllcy5nZXQoaSArIGogKyAxKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaW0gIT0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhbGlWYWxzLnB1c2goZGlmZiAvICgxIC0gc2ltKSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhbGlWYWxzLnB1c2goSW5maW5pdHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYWxpVmFsc1dpdGhvdXRJbmZpbml0eSA9IHNhbGlWYWxzLmZpbHRlcihpdCA9PiBpdCAhPT0gSW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpTWluID0gTWF0aC5taW4oLi4uc2FsaVZhbHNXaXRob3V0SW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpTWF4ID0gTWF0aC5tYXgoLi4uc2FsaVZhbHNXaXRob3V0SW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpT3BhY2l0eUNvZWYgPSAwLjggLyAoc2FsaU1heCAtIHNhbGlNaW4pO1xuICAgICAgICBjb25zdCBuZWlnaGJvdXJzQ291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBjb25zdCBzaW1pbGFyaXR5Q291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBjb25zdCBzYWxpQ291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBuMS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgbmVpZ2hib3Vyc0NvdW50W24xW2ldXSArPSAxO1xuICAgICAgICAgICAgbmVpZ2hib3Vyc0NvdW50W24yW2ldXSArPSAxO1xuICAgICAgICAgICAgc2ltaWxhcml0eUNvdW50W24xW2ldXSArPSBzaW1WYWxzW2ldO1xuICAgICAgICAgICAgc2ltaWxhcml0eUNvdW50W24yW2ldXSArPSBzaW1WYWxzW2ldO1xuICAgICAgICAgICAgaWYgKHNhbGlWYWxzW2ldICE9IEluZmluaXR5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXRpZXMuZ2V0KG4xW2ldKSA+IGFjdGl2aXRpZXMuZ2V0KG4yW2ldKSlcbiAgICAgICAgICAgICAgICAgICAgc2FsaUNvdW50W24xW2ldXSArPSBzYWxpVmFsc1tpXTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHNhbGlDb3VudFtuMltpXV0gKz0gc2FsaVZhbHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2FsaSA9IERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgYHNhbGlfJHtheGVzTmFtZXNbMF0uc3Vic3RyaW5nKGF4ZXNOYW1lc1swXS5sYXN0SW5kZXhPZignXycpKX1gLCBzYWxpQ291bnQpO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChzYWxpKTtcbiAgICAgICAgY29uc3QgY2xpZmZzQ29sTmFtZSA9IGFkZENsaWZmc0Jvb2xlYW5Db2woZGYsIGNsaWZmc01vbElkcyk7XG4gICAgICAgIGNvbnN0IHZpZXcgPSBncm9rLnNoZWxsLmdldFRhYmxlVmlldyhkZi5uYW1lKTtcbiAgICAgICAgdmlldy5ncmlkLmNvbHVtbnMuYnlOYW1lKGNsaWZmc0NvbE5hbWUpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc3AgPSB2aWV3LmFkZFZpZXdlcihERy5WaWV3ZXIuc2NhdHRlclBsb3QoZGYsIHtcbiAgICAgICAgICAgIHhDb2x1bW5OYW1lOiBheGVzTmFtZXNbMF0sXG4gICAgICAgICAgICB5Q29sdW1uTmFtZTogYXhlc05hbWVzWzFdLFxuICAgICAgICAgICAgc2l6ZTogc2FsaS5uYW1lLFxuICAgICAgICAgICAgY29sb3I6IGFjdGl2aXRpZXMubmFtZSxcbiAgICAgICAgICAgIHNob3dYU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1lTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93U2l6ZVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dDb2xvclNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIG1hcmtlck1pblNpemU6IDUsXG4gICAgICAgICAgICBtYXJrZXJNYXhTaXplOiAyNSxcbiAgICAgICAgICAgIHRpdGxlOiBzY2F0dGVyVGl0bGVcbiAgICAgICAgfSkpO1xuICAgICAgICBjb25zdCBjYW52YXMgPSBzcC5nZXRJbmZvKClbJ2NhbnZhcyddO1xuICAgICAgICBjb25zdCBsaW5lc1JlcyA9IGNyZWF0ZUxpbmVzKG4xLCBuMiwgc2VxQ29sLCBhY3Rpdml0aWVzLCBzYWxpVmFscywgc2ltVmFscywgc2VtVHlwZSwgdGFncyk7XG4gICAgICAgIGNvbnN0IGNhc2hlZExpbmVzRGF0YSA9IHt9O1xuICAgICAgICBsZXQgYWNjO1xuICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLm9uQ3VycmVudENlbGxDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TW9sSWR4ID0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Q29sICYmIGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudENvbC5uYW1lID09PSAnMl9zZXEnID8gMSA6IDA7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ICE9PSAtMSA/IGxpbmVzUmVzLmxpbmVzW2xpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeF0gOiBudWxsO1xuICAgICAgICAgICAgc3AuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPSBsaW5lID8gbGluZS5tb2xzW2N1cnJlbnRNb2xJZHhdIDogLTE7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldCgwLCAhbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgc3AuZGF0YUZyYW1lLnNlbGVjdGlvbi5zZXQoMCwgbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgbGluZXNEZkdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKGxpbmUpXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHVwZGF0ZVByb3BlcnR5UGFuZWwoZGYsIGFjYywgY2FzaGVkTGluZXNEYXRhLCBsaW5lLCBzZXFDb2wsIGFjdGl2aXRpZXMsIGxpbmVzUmVzLmxpbmVzRGYuZ2V0KCdzYWxpJywgbGluZS5pZCksIHByb3BlcnR5UGFuZWxGdW5jKTsgfSwgMTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLm9uU2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIGlmIChsaW5lc1Jlcy5saW5lc0RmLm1vdXNlT3ZlclJvd0lkeCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNSZXMubGluZXNbbGluZXNSZXMubGluZXNEZi5tb3VzZU92ZXJSb3dJZHhdO1xuICAgICAgICAgICAgICAgIGxpbmUuc2VsZWN0ZWQgPSAhbGluZS5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmUuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXRBbGwoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluZXNSZXMubGluZXMuZm9yRWFjaCgobCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChsLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICBsLm1vbHMuZm9yRWFjaCgobSkgPT4gZGYuc2VsZWN0aW9uLnNldChtLCB0cnVlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxpbmVzRGZHcmlkLmludmFsaWRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxpbmVzRGZHcmlkID0gbGluZXNSZXMubGluZXNEZi5wbG90LmdyaWQoKS5zb3J0KFsnc2FsaSddLCBbZmFsc2VdKTtcbiAgICAgICAgbGluZXNEZkdyaWQub25DZWxsQ2xpY2suc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHpvb20gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGlzdENsaWZmc0xpbmsgPSB1aS5idXR0b24oYCR7bGluZXNSZXMubGluZXNEZi5yb3dDb3VudH0gY2xpZmZzYCwgKCkgPT4ge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5kb2NrTWFuYWdlci5kb2NrKGxpbmVzRGZHcmlkLnJvb3QsICdkb3duJywgbnVsbCwgJ0FjdGl2aXR5IGNsaWZmcycsIDAuMik7XG4gICAgICAgIH0pO1xuICAgICAgICBlZGl0U3BMaW5rU3R5bGUobGlzdENsaWZmc0xpbmssIHNwLCAxMCk7XG4gICAgICAgIGNvbnN0IGZpbHRlckNsaWZmc0J1dHRvbiA9IHVpLnN3aXRjaElucHV0KGBTaG93IG9ubHkgY2xpZmZzYCwgZmFsc2UpO1xuICAgICAgICBmaWx0ZXJDbGlmZnNCdXR0b24ub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi52YWx1ZSA/IGRmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1tjbGlmZnNDb2xOYW1lXSA9PT0gdHJ1ZSkgOiBkZi5maWx0ZXIuc2V0QWxsKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgZWRpdFNwTGlua1N0eWxlKGZpbHRlckNsaWZmc0J1dHRvbi5yb290LCBzcCwgMzApO1xuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICB0aW1lciA9IGdsb2JhbC5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gY2hlY2tDdXJzb3JPbkxpbmUoZXZlbnQsIGNhbnZhcywgbGluZXNSZXMubGluZXMpO1xuICAgICAgICAgICAgICAgIGlmIChsaW5lICYmIGRmLm1vdXNlT3ZlclJvd0lkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdWkudG9vbHRpcC5zaG93KHRvb2x0aXBGdW5jKHsgY2FzaGVkRGF0YTogY2FzaGVkTGluZXNEYXRhLCBsaW5lOiBsaW5lLCBkZjogZGYsIHNlcUNvbDogc2VxQ29sLCBhY3Rpdml0eUNvbDogYWN0aXZpdGllcyB9KSwgZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lc1Jlcy5saW5lcyk7XG4gICAgICAgICAgICBpZiAobGluZSAmJiBkZi5tb3VzZU92ZXJSb3dJZHggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS5zZWxlY3RlZCA9ICFsaW5lLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLnNlbGVjdGlvbi5zZXQobGluZS5pZCwgbGluZS5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbGluZS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXRBbGwoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lcy5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobC5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLm1vbHMuZm9yRWFjaCgobSkgPT4gZGYuc2VsZWN0aW9uLnNldChtLCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCAhPT0gbGluZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ID0gbGluZS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLmN1cnJlbnRSb3dJZHggPSBsaW5lLm1vbHNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0KDAsICFsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0KDAsIGxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IGxpbmVzUmVzLmxpbmVzRGYuZ2V0U29ydGVkT3JkZXIobGluZXNEZkdyaWQuc29ydEJ5Q29sdW1ucywgbGluZXNEZkdyaWQuc29ydFR5cGVzKTtcbiAgICAgICAgICAgICAgICBsaW5lc0RmR3JpZC5zY3JvbGxUb0NlbGwoJ3NlcV8xJywgb3JkZXIuaW5kZXhPZihsaW5lLmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzcC5vbkV2ZW50KCdkNC1iZWZvcmUtZHJhdy1zY2VuZScpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IHJlbmRlckxpbmVzKHNwLCBheGVzTmFtZXNbMF0sIGF4ZXNOYW1lc1sxXSwgbGluZXNSZXMsIHNhbGlWYWxzLCBzYWxpT3BhY2l0eUNvZWYsIHNhbGlNaW4pO1xuICAgICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TGluZSA9IGxpbmVzW2xpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeF07XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgem9vbUxlZnQsIHpvb21SaWdodCwgem9vbVRvcCwgem9vbUJvdHRvbSB9ID0gZ2V0Wm9vbUNvb3JkaW5hdGVzKHNwLnZpZXdwb3J0LndpZHRoLCBzcC52aWV3cG9ydC5oZWlnaHQsIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzBdLCBjdXJyZW50TGluZS5tb2xzWzBdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMV0sIGN1cnJlbnRMaW5lLm1vbHNbMF0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1swXSwgY3VycmVudExpbmUubW9sc1sxXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzFdLCBjdXJyZW50TGluZS5tb2xzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIHNwLnpvb20oem9vbUxlZnQsIHpvb21Ub3AsIHpvb21SaWdodCwgem9vbUJvdHRvbSk7XG4gICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICB6b29tID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJDbGlmZnNCdXR0b24udmFsdWUgPyBkZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3dbY2xpZmZzQ29sTmFtZV0gPT09IHRydWUpIDogZGYuZmlsdGVyLnNldEFsbCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNwLmFkZFByb3BlcnR5KCdzaW1pbGFyaXR5TGltaXQnLCAnZG91YmxlJywgb3B0U2ltaWxhcml0eUxpbWl0KTtcbiAgICAgICAgYWNjID0gY3JlYXRlUG9wZXJ0eVBhbmVsKCk7XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGVkaXRTcExpbmtTdHlsZShlbCwgc3AsIHRvcE1hcmdpbikge1xuICAgIGVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBlbC5zdHlsZS50b3AgPSBgJHt0b3BNYXJnaW59cHhgO1xuICAgIGVsLnN0eWxlLnJpZ2h0ID0gJzEwcHgnO1xuICAgIHNwLnJvb3QuYXBwZW5kKGVsKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBvcGVydHlQYW5lbCgpIHtcbiAgICBjb25zdCBhY2MgPSB1aS5hY2NvcmRpb24oKTtcbiAgICBjb25zdCBhY2NJY29uID0gdWkuZWxlbWVudCgnaScpO1xuICAgIGFjY0ljb24uY2xhc3NOYW1lID0gJ2dyb2staWNvbiBzdmctaWNvbiBzdmctdmlldy1sYXlvdXQnO1xuICAgIGFjYy5hZGRUaXRsZSh1aS5zcGFuKFthY2NJY29uLCB1aS5sYWJlbChgQWN0aXZpdHkgY2xpZmZzYCldKSk7XG4gICAgYWNjLmFkZFBhbmUoJ0NsaWZmIERldGFpbHMnLCAoKSA9PiB1aS5kaXZUZXh0KCdDbGlmZiBoYXMgbm90IGJlZW4gc2VsZWN0ZWQnKSwgdHJ1ZSk7XG4gICAgZ3Jvay5zaGVsbC5vID0gYWNjLnJvb3Q7XG4gICAgcmV0dXJuIGFjYztcbn1cbmZ1bmN0aW9uIHVwZGF0ZVByb3BlcnR5UGFuZWwoZGYsIGFjYywgY2FzaGVkRGF0YSwgbGluZSwgc2VxQ29sLCBhY3Rpdml0aWVzLCBzYWxpLCBwcm9wUGFuZWxGdW5jKSB7XG4gICAgY29uc3QgcGFuZWwgPSBhY2MuZ2V0UGFuZSgnQ2xpZmYgRGV0YWlscycpO1xuICAgIHVpLmVtcHR5KHBhbmVsLnJvb3QpO1xuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHByb3BQYW5lbEZ1bmMoeyBjYXNoZWREYXRhOiBjYXNoZWREYXRhLCBsaW5lOiBsaW5lLCBkZjogZGYsIHNlcUNvbDogc2VxQ29sLCBhY3Rpdml0eUNvbDogYWN0aXZpdGllcywgc2FsaTogc2FsaSB9KTtcbiAgICBwYW5lbC5yb290LmFwcGVuZChwYW5lbEVsZW1lbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICB9LCA1MDApO1xufVxuZnVuY3Rpb24gZ2V0Wm9vbUNvb3JkaW5hdGVzKFcwLCBIMCwgeDEsIHkxLCB4MiwgeTIpIHtcbiAgICBjb25zdCBXMSA9IE1hdGguYWJzKHgxIC0geDIpO1xuICAgIGNvbnN0IEgxID0gTWF0aC5hYnMoeTEgLSB5Mik7XG4gICAgY29uc3Qgc2NhbGVXID0gVzAgLyBXMTtcbiAgICBjb25zdCBzY2FsZUggPSBIMCAvIEgxO1xuICAgIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oc2NhbGVXLCBzY2FsZUgpO1xuICAgIGNvbnN0IFcyID0gKFcwIC8gc2NhbGUpICogNTtcbiAgICBjb25zdCBIMiA9IChIMCAvIHNjYWxlKSAqIDU7XG4gICAgY29uc3QgbGVmdCA9IHgxIDwgeDIgPyB4MSA6IHgyO1xuICAgIGNvbnN0IHRvcCA9IHkxID4geTIgPyB5MSA6IHkyO1xuICAgIGNvbnN0IHpvb21MZWZ0ID0gKGxlZnQgKyBXMSAvIDIpIC0gVzIgLyAyO1xuICAgIGNvbnN0IHpvb21SaWdodCA9IHpvb21MZWZ0ICsgVzI7XG4gICAgY29uc3Qgem9vbVRvcCA9ICh0b3AgLSBIMSAvIDIpICsgSDIgLyAyO1xuICAgIGNvbnN0IHpvb21Cb3R0b20gPSB6b29tVG9wIC0gSDI7XG4gICAgcmV0dXJuIHsgem9vbUxlZnQ6IHpvb21MZWZ0LCB6b29tUmlnaHQ6IHpvb21SaWdodCwgem9vbVRvcDogem9vbVRvcCwgem9vbUJvdHRvbTogem9vbUJvdHRvbSB9O1xufVxuZnVuY3Rpb24gY2hlY2tDdXJzb3JPbkxpbmUoZXZlbnQsIGNhbnZhcywgbGluZXMpIHtcbiAgICBjb25zdCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xuICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gcmVjdC50b3A7XG4gICAgbGV0IGNsb3Nlc3RMaW5lID0gbnVsbDtcbiAgICBsZXQgbWluRGlzdCA9IDA7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgIGNvbnN0IGRpc3QgPSBNYXRoLmFicyhNYXRoLmh5cG90KGxpbmUuYVswXSAtIHgsIGxpbmUuYVsxXSAtIHkpICtcbiAgICAgICAgICAgIE1hdGguaHlwb3QobGluZS5iWzBdIC0geCwgbGluZS5iWzFdIC0geSkgLSBNYXRoLmh5cG90KGxpbmUuYVswXSAtIGxpbmUuYlswXSwgbGluZS5hWzFdIC0gbGluZS5iWzFdKSk7XG4gICAgICAgIGlmICgoIW1pbkRpc3QgJiYgZGlzdCA8IDIpIHx8IGRpc3QgPCBtaW5EaXN0KSB7XG4gICAgICAgICAgICBtaW5EaXN0ID0gZGlzdDtcbiAgICAgICAgICAgIGNsb3Nlc3RMaW5lID0gbGluZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xvc2VzdExpbmU7XG59XG5mdW5jdGlvbiByZW5kZXJMaW5lcyhzcCwgeEF4aXMsIHlBeGlzLCBsaW5lc1Jlcywgc2FsaVZhbHMsIHNhbGlPcGFjaXR5Q29lZiwgc2FsaU1pbikge1xuICAgIGNvbnN0IGxpbmVzID0gbGluZXNSZXMubGluZXM7XG4gICAgY29uc3QgY2FudmFzID0gc3AuZ2V0SW5mbygpWydjYW52YXMnXTtcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjb25zdCB4ID0gc3AuZGF0YUZyYW1lLmNvbHVtbnMuYnlOYW1lKHhBeGlzKTtcbiAgICBjb25zdCB5ID0gc3AuZGF0YUZyYW1lLmNvbHVtbnMuYnlOYW1lKHlBeGlzKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBvaW50RnJvbSA9IHNwLndvcmxkVG9TY3JlZW4oeC5nZXQobGluZXNbaV0ubW9sc1swXSksIHkuZ2V0KGxpbmVzW2ldLm1vbHNbMF0pKTtcbiAgICAgICAgY29uc3QgcG9pbnRUbyA9IHNwLndvcmxkVG9TY3JlZW4oeC5nZXQobGluZXNbaV0ubW9sc1sxXSksIHkuZ2V0KGxpbmVzW2ldLm1vbHNbMV0pKTtcbiAgICAgICAgbGluZXNbaV0uYSA9IFtwb2ludEZyb20ueCwgcG9pbnRGcm9tLnldO1xuICAgICAgICBsaW5lc1tpXS5iID0gW3BvaW50VG8ueCwgcG9pbnRUby55XTtcbiAgICAgICAgY29uc3QgbGluZSA9IG5ldyBQYXRoMkQoKTtcbiAgICAgICAgbGluZS5tb3ZlVG8obGluZXNbaV0uYVswXSwgbGluZXNbaV0uYVsxXSk7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gbGluZXNbaV0uc2VsZWN0ZWQgPyAnMjU1LDI1NSwwJyA6ICcwLDEyOCwwJztcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHNhbGlWYWxzW2ldID09PSBJbmZpbml0eSA/IDEgOiAwLjIgKyAoc2FsaVZhbHNbaV0gLSBzYWxpTWluKSAqIHNhbGlPcGFjaXR5Q29lZjtcbiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gYHJnYmEoJHtjb2xvcn0sJHtvcGFjaXR5fSlgO1xuICAgICAgICBjdHgubGluZVdpZHRoID0gbGluZXNbaV0uaWQgPT09IGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCA/IDMgOiAxO1xuICAgICAgICBsaW5lLmxpbmVUbyhsaW5lc1tpXS5iWzBdLCBsaW5lc1tpXS5iWzFdKTtcbiAgICAgICAgY3R4LnN0cm9rZShsaW5lKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzO1xufVxuZnVuY3Rpb24gY3JlYXRlTGluZXMobjEsIG4yLCBzZXEsIGFjdGl2aXRpZXMsIHNhbGlWYWxzLCBzaW1WYWxzLCBzZW1UeXBlLCB0YWdzKSB7XG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXkobjEubGVuZ3RoKS5maWxsKG51bGwpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbnVtMSA9IG4xW2ldO1xuICAgICAgICBjb25zdCBudW0yID0gbjJbaV07XG4gICAgICAgIGxpbmVzW2ldID0gKHsgaWQ6IGksIG1vbHM6IFtudW0xLCBudW0yXSwgc2VsZWN0ZWQ6IGZhbHNlLCBhOiBbXSwgYjogW10gfSk7XG4gICAgfVxuICAgIGNvbnN0IGxpbmVzRGYgPSBERy5EYXRhRnJhbWUuY3JlYXRlKGxpbmVzLmxlbmd0aCk7XG4gICAgbW9sQ29sdW1uTmFtZXMuZm9yRWFjaCgoaXQsIGlkeCkgPT4ge1xuICAgICAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3U3RyaW5nKGl0KS5pbml0KChpKSA9PiBzZXEuZ2V0KGxpbmVzW2ldLm1vbHNbaWR4XSkpO1xuICAgICAgICBzZXRUYWdzKGxpbmVzRGYuY29sKGl0KSwgdGFncyk7XG4gICAgICAgIGxpbmVzRGYuY29sKGl0KS5zZW1UeXBlID0gc2VtVHlwZTtcbiAgICB9KTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ2FjdF9kaWZmJylcbiAgICAgICAgLmluaXQoKGkpID0+IE1hdGguYWJzKGFjdGl2aXRpZXMuZ2V0KGxpbmVzW2ldLm1vbHNbMF0pIC0gYWN0aXZpdGllcy5nZXQobGluZXNbaV0ubW9sc1sxXSkpKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3SW50KCdsaW5lX2luZGV4JykuaW5pdCgoaSkgPT4gaSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdzYWxpJykuaW5pdCgoaSkgPT4gc2FsaVZhbHNbaV0pO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnc2ltJykuaW5pdCgoaSkgPT4gc2ltVmFsc1tpXSk7XG4gICAgcmV0dXJuIHsgbGluZXMsIGxpbmVzRGYgfTtcbn1cbmZ1bmN0aW9uIHNldFRhZ3MoY29sLCB0YWdzKSB7XG4gICAgT2JqZWN0LmtleXModGFncykuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgICBjb2wudGFnc1t0YWddID0gdGFnc1t0YWddO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdGllc01hcml4KGRpbSwgc2VxQ29sLCBkZlNlcSwgc2ltQXJyLCBzaW1GdW5jKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBtb2wgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGZTZXEucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBzaW1BcnJbaV0gPSAoeWllbGQgc2ltRnVuYyhkZlNlcS5jb2woJ3NlcScpLCBtb2wpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2ltQXJyO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdGllc0Zyb21EaXN0YW5jZXMoZGltLCBkaXN0YW5jZXMsIHNpbUFycikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGltIC0gMTsgKytpKSB7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlBcnIgPSBuZXcgQXJyYXkoZGltIC0gaSAtIDEpLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IGRpbTsgKytqKSB7XG4gICAgICAgICAgICBzaW1pbGFyaXR5QXJyW2ogLSBpIC0gMV0gPSBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGRpc3RhbmNlc1tpXVtqXSk7XG4gICAgICAgIH1cbiAgICAgICAgc2ltQXJyW2ldID0gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkoJ3NpbWlsYXJpdHknLCBGbG9hdDMyQXJyYXkuZnJvbShzaW1pbGFyaXR5QXJyKSk7XG4gICAgfVxuICAgIHJldHVybiBzaW1BcnI7XG59XG5leHBvcnQgZnVuY3Rpb24gYWRkQ2xpZmZzQm9vbGVhbkNvbChkZiwgaWRzKSB7XG4gICAgY29uc3QgY29sbmFtZSA9ICdjb250YWluc0NsaWZmJztcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGNvbG5hbWUpKS5sZW5ndGggKyAxO1xuICAgIGNvbnN0IG5ld0NvbE5hbWUgPSBgJHtjb2xuYW1lfV8ke2NvbE5hbWVJbmR9YDtcbiAgICBkZi5jb2x1bW5zLmFkZE5ld0Jvb2wobmV3Q29sTmFtZSkuaW5pdCgoaSkgPT4gaWRzLmhhcyhpKSk7XG4gICAgcmV0dXJuIG5ld0NvbE5hbWU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZV04wYVhacGRIa3RZMnhwWm1aekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWVdOMGFYWnBkSGt0WTJ4cFptWnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenRCUVVGQkxFOUJRVThzUzBGQlN5eEpRVUZKTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU03UVVGRE1VTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVTjBReXhQUVVGUExFdEJRVXNzUlVGQlJTeE5RVUZOTEdsQ1FVRnBRaXhEUVVGRE8wRkJSWFJETEU5QlFVOHNSVUZCUlN4NVFrRkJlVUlzUlVGQlJTeE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJRemRHTEU5QlFVOHNSVUZCUXl4eFFrRkJjVUlzUlVGQlF5eE5RVUZOTEN0RFFVRXJReXhEUVVGQk8wRkJjVU51Uml4SlFVRkpMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRmFrSXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdRVUZGTVVNc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJSUzlETEhkRlFVRjNSVHRCUVVONFJTeE5RVUZOTEZWQlFXZENMR2xDUVVGcFFpeERRVU51UXl4RlFVRm5RaXhGUVVOb1FpeE5RVUZwUWl4RlFVTnFRaXhWUVVFMFFpeEZRVU0xUWl4VFFVRnRRaXhGUVVOdVFpeFpRVUZ2UWl4RlFVTndRaXhWUVVGeFFpeEZRVU55UWl4VlFVRnJRaXhGUVVOc1FpeG5Ra0ZCZDBJc1JVRkRlRUlzVlVGQmEwSXNSVUZEYkVJc1QwRkJaU3hGUVVObUxFbEJRU3RDTEVWQlF5OUNMRmxCUVRaRkxFVkJRemRGTEdGQlFTdElMRVZCUXk5SUxGZEJRVFJFTEVWQlF6VkVMR2xDUVVGclJTeEZRVU5zUlN4bFFVRnhRanM3VVVGRmRrSXNUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hqUVVGakxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJURkNMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NkMEpCUVhkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVVUxUml4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEZWQlFWVXNZVUZCVml4VlFVRlZMR05CUVZZc1ZVRkJWU3hIUVVGSkxFMUJRVTBzUTBGQlF6dFJRVU55UkN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEzSkdMRmxCUVZrN1VVRkRaQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eHhRa0ZCY1VJc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eERRVUZETzFGQlJYcEdMRTFCUVUwc1JVRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eEZRVUZETEVkQlFVY3NUVUZCVFN4WlFVRlpMRU5CUVVNN1dVRkRha1FzVFVGQlRTeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhKUVVGSkxFTkJRVVU3V1VGRE4wUXNWVUZCVlN4RlFVRkZMRlZCUVZVN1dVRkRkRUlzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTzFsQlEyeERMR05CUVdNc1JVRkJSU3hUUVVGVE8xbEJRM3BDTEU5QlFVOHNSVUZCUlN4bFFVRmxPMU5CUTNwQ0xFTkJRVU1zUTBGQlF6dFJRVVZJTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRk8xbEJRek5DTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5vUXl4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONFJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNSRk8xRkJSVVFzVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJoSUxFMUJRVTBzUjBGQlJ5eEhRVUZITEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU16UXl4TlFVRk5MRTFCUVUwc1IwRkJaMElzUzBGQlN5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVelF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMR0ZCUVdFc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEhOQ1FVRnpRaXhEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRaUVVNNVJpeE5RVUZOTEdGQlFXRXNRMEZCUXl4SFFVRkhMRVZCUVVVc2RVSkJRWFZDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6czdXVUZGZUVVc05FSkJRVFJDTEVOQlFVTXNSMEZCUnl4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVYwUkN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEhOQ1FVRnpRaXhEUVVGRE8xRkJSV3hFTEUxQlFVMHNUMEZCVHl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVNM1FpeE5RVUZOTEZGQlFWRXNSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCVlN4RFFVRkRPMUZCUlhaRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTJwRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUWtGRGNrTXNUVUZCVFN4SFFVRkhMRWRCUVZjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlJYSkVMRWxCUVVrc1IwRkJSeXhKUVVGSkxHdENRVUZyUWl4RlFVRkZPMjlDUVVNM1FpeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5ZTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRia0lzV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGNFSXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVNMVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5zUWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTNKRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdkMEpCUTFZc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6czdkMEpCUldoRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2FVSkJRek5DTzJGQlEwWTdVMEZEUmp0UlFVVkVMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOMlJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRSUVVOeVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRSUVVOeVJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4SFFVRkhMRWRCUVVNc1EwRkJReXhQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZIYUVRc1RVRkJUU3hsUVVGbExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF5OURMRTFCUVUwc1pVRkJaU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmVrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGJrTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTTFRaXhsUVVGbExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRelZDTEdWQlFXVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja01zWlVGQlpTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnlReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRVZCUVVVN1owSkJRek5DTEVsQlFVa3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRMME1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN2IwSkJSV2hETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRia003VTBGRFJqdFJRVVZFTEUxQlFVMHNTVUZCU1N4SFFVRmpMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRmFra3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEY2tJc1RVRkJUU3hoUVVGaExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJUVkVMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU01UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkZMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU42UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU5zUkN4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWs3V1VGRFppeExRVUZMTEVWQlFVVXNWVUZCVlN4RFFVRkRMRWxCUVVrN1dVRkRkRUlzWVVGQllTeEZRVUZGTEV0QlFVczdXVUZEY0VJc1lVRkJZU3hGUVVGRkxFdEJRVXM3V1VGRGNFSXNaMEpCUVdkQ0xFVkJRVVVzUzBGQlN6dFpRVU4yUWl4cFFrRkJhVUlzUlVGQlJTeExRVUZMTzFsQlEzaENMR0ZCUVdFc1JVRkJSU3hEUVVGRE8xbEJRMmhDTEdGQlFXRXNSVUZCUlN4RlFVRkZPMWxCUTJwQ0xFdEJRVXNzUlVGQlJTeFpRVUZaTzFOQlEzQkNMRU5CUVVNc1EwRkJlVUlzUTBGQlF6dFJRVVUxUWl4TlFVRk5MRTFCUVUwc1IwRkJTU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCVnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNSVUZCUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXhOUVVGTkxHVkJRV1VzUjBGQlVTeEZRVUZGTEVOQlFVTTdVVUZEYUVNc1NVRkJTU3hIUVVGcFFpeERRVUZETzFGQlJYUkNMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU51UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSeXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE0wY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1JTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTXpSQ3hGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03V1VGRE1VUXNWMEZCVnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEVsQlFVa3NTVUZCU1R0blFrRkRUaXhWUVVGVkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVVXNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NSVUZCUlN4bFFVRmxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFZRVUZWTEVWQlFVVXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4RFFVRkJMRU5CUVVFc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyaExMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVWdzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRk5MRVZCUVVVc1JVRkJSVHRaUVVOMlJDeEpRVUZKTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTXpReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdaMEpCUXpsRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU12UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkU3YjBKQlEyaENMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUXpsQ08xbEJRMFFzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBJc1NVRkJTU3hEUVVGRExFTkJRVU1zVVVGQlVUdHZRa0ZEV2l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hYUVVGWExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdVVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEZkQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZla1VzVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRM0pETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRaQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEUxQlFVMHNZMEZCWXl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1UwRkJVeXhGUVVGRkxFZEJRVWNzUlVGQlJUdFpRVU16UlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzUkdMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzWlVGQlpTeERRVUZETEdOQlFXTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRkxHdENRVUZyUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGRkxFVkJRVVU3V1VGREwwSXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNelJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMR1ZCUVdVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJXcEVMRWxCUVVrc1MwRkJjVUlzUTBGQlF6dFJRVU14UWl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJhVUk3V1VGRE9VUXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM0JDTEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRE8yZENRVU40UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRPVVFzU1VGQlNTeEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMR1ZCUVdVc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdHZRa0ZEYmtNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVNc1ZVRkJWU3hGUVVGRkxHVkJRV1VzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1ZVRkJWU3hGUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHBRa0ZETVVvN1dVRkRTQ3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEVml4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhYUVVGWExFVkJRVVVzVlVGQlV5eExRVUZwUWp0WlFVTTNSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVNNVJDeEpRVUZKTEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNc1pVRkJaU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnlReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVTdiMEpCUTJwQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yOUNRVU12UWl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdiMEpCUlhaRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVR0M1FrRkRhRUlzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03YjBKQlJUZENMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVN2QwSkJRek5DTEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFN05FSkJRMW9zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOeVJDeERRVUZETEVOQlFVTXNRMEZCUXp0cFFrRkRTanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeExRVUZMTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN2QwSkJRemxETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdkMEpCUTNwRExFVkJRVVVzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEYUVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenQzUWtGRGFrUXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdjVUpCUTJwRU8ybENRVU5HTzJkQ1FVTkVMRTFCUVUwc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMRmRCUVZjc1EwRkJReXhoUVVGaExFVkJRVVVzVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMmRDUVVOb1J5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRek5FTzFGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhEUVVGRE8yRkJReTlDTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRk8xbEJRM0JDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRmRCUVZjc1EwRkJReXhGUVVGRkxFVkJRekZDTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZETlVVc1NVRkJTU3hKUVVGSkxFVkJRVVU3WjBKQlExSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1owSkJRekZFTEZWQlFWVXNRMEZCUXl4SFFVRkZMRVZCUVVVN2IwSkJRMklzVFVGQlRTeEZRVUZETEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlF5eEhRVUZITEd0Q1FVRnJRaXhEUVVOdVJTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkRha0lzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUTJ4Q0xFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRM0JFTEVOQlFVRTdiMEpCUTBRc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlEyUXNUMEZCVHl4RlFVTlFMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVJc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTlNMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03WVVGRFpEdFpRVU5FTEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNMGNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGVEN4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExHbENRVUZwUWl4RlFVRkZMRkZCUVZFc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUTJoRkxFZEJRVWNzUjBGQlJ5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRek5DTEU5QlFVOHNSVUZCUlN4RFFVRkRPMGxCUTFvc1EwRkJRenREUVVGQk8wRkJSVVFzVTBGQlV5eGxRVUZsTEVOQlFVTXNSVUZCWlN4RlFVRkZMRVZCUVhkQ0xFVkJRVVVzVTBGQmFVSTdTVUZEYmtZc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVkQlFVY3NWVUZCVlN4RFFVRkRPMGxCUXk5Q0xFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1UwRkJVeXhKUVVGSkxFTkJRVU03U1VGRGFFTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEzaENMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKQ0xFTkJRVU03UVVGRlJDeFRRVUZUTEd0Q1FVRnJRanRKUVVONlFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTm9ReXhQUVVGUExFTkJRVU1zVTBGQlV5eEhRVUZITEc5RFFVRnZReXhEUVVGRE8wbEJRM3BFTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE9VUXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JHTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEZUVJc1QwRkJUeXhIUVVGSExFTkJRVU03UVVGRFlpeERRVUZETzBGQlJVUXNVMEZCVXl4dFFrRkJiVUlzUTBGRE1VSXNSVUZCWjBJc1JVRkRhRUlzUjBGQmFVSXNSVUZEYWtJc1ZVRkJaU3hGUVVObUxFbEJRVmNzUlVGRFdDeE5RVUZwUWl4RlFVTnFRaXhWUVVGeFFpeEZRVU55UWl4SlFVRlpMRVZCUTFvc1lVRkJPRVE3U1VGRE9VUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOeVFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4aFFVRmhMRU5CUVVNc1JVRkJReXhWUVVGVkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRGFFTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVOa0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRE1VSXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRMVlzUTBGQlF6dEJRVVZFTEZOQlFWTXNhMEpCUVd0Q0xFTkJRVU1zUlVGQlZTeEZRVUZGTEVWQlFWVXNSVUZCUlN4RlFVRlZMRVZCUVVVc1JVRkJWU3hGUVVGRkxFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEyaEhMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOMlFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTjJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE5VSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpWQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMGxCUXk5Q0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTVUZCU1N4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpGRExFMUJRVTBzVTBGQlV5eEhRVUZITEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRhRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOb1F5eFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETzBGQlF6bEdMRU5CUVVNN1FVRkZSQ3hUUVVGVExHbENRVUZwUWl4RFFVRkRMRXRCUVZVc1JVRkJSU3hOUVVGWExFVkJRVVVzUzBGQll6dEpRVU5vUlN4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRKUVVNMVF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEY0VNc1RVRkJUU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8wbEJRMjVETEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOMlFpeEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRhRUlzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4TFFVRkxMRVZCUVVVN1VVRkRlRUlzVFVGQlRTeEpRVUZKTEVkQlExSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEycEVMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM1pITEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4SFFVRkhMRTlCUVU4c1JVRkJSVHRaUVVNMVF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTJZc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFRRVU53UWp0TFFVTkdPMGxCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03UVVGRGNrSXNRMEZCUXp0QlFVVkVMRk5CUVZNc1YwRkJWeXhEUVVGRExFVkJRWGRDTEVWQlF6TkRMRXRCUVdFc1JVRkJSU3hMUVVGaExFVkJRVVVzVVVGQmQwSXNSVUZCUlN4UlFVRnJRaXhGUVVGRkxHVkJRWFZDTEVWQlFVVXNUMEZCWlR0SlFVTndTQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZKTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVRoQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdTVUZEYmtVc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVRaQ0xFTkJRVU03U1VGRGFFVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExGTkJRVlVzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRemxETEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNNVF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tZc1RVRkJUU3hQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVHTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpGRExFMUJRVTBzUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8xRkJRekZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZETEdWQlFXVXNRMEZCUXp0UlFVTTNSaXhIUVVGSExFTkJRVU1zVjBGQlZ5eEhRVUZITEZGQlFWRXNTMEZCU3l4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRemxETEVkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRrVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEyeENPMGxCUTBRc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUXNVMEZCVXl4WFFVRlhMRU5CUTJ4Q0xFVkJRVmtzUlVGRFdpeEZRVUZaTEVWQlExb3NSMEZCWXl4RlFVTmtMRlZCUVhGQ0xFVkJRM0pDTEZGQlFXdENMRVZCUTJ4Q0xFOUJRV2xDTEVWQlEycENMRTlCUVdVc1JVRkRaaXhKUVVFclFqdEpRVU12UWl4TlFVRk5MRXRCUVVzc1IwRkJXU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzWkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlEyeERMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia0lzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNN1MwRkRla1U3U1VGRFJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRiRVFzWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5xUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJFWXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVVc1EwRkJReXhQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETzBsQlEzSkRMRU5CUVVNc1EwRkJReXhEUVVGQk8wbEJRMFlzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xTkJRM0JETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRFY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXZSQ3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkZMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJrVXNUMEZCVHl4RlFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFVkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRPMEZCUlVRc1UwRkJVeXhQUVVGUExFTkJRVU1zUjBGQll5eEZRVUZGTEVsQlFTdENPMGxCUXpsRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlF6bENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRelZDTEVOQlFVTXNRMEZCUXl4RFFVRkJPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlowSXNiMEpCUVc5Q0xFTkJRM1JETEVkQlFWY3NSVUZEV0N4TlFVRnBRaXhGUVVOcVFpeExRVUZ0UWl4RlFVTnVRaXhOUVVGdFFpeEZRVU51UWl4UFFVRnRSVHM3VVVGSGNrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGFrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEycERMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVVc1EwRkJRenRUUVVOMFJEdFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03UTBGQlFUdEJRVWRFTEUxQlFVMHNWVUZCVlN3MFFrRkJORUlzUTBGQlF5eEhRVUZYTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hOUVVGdFFqdEpRVVU1Uml4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFJRVU5vUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTm9ReXhoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXg1UWtGQmVVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTjJSVHRSUVVORUxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRmxCUVZrc1JVRkJSU3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRlRVk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVGRExFVkJRV2RDTEVWQlFVVXNSMEZCWjBJN1NVRkRjRVVzVFVGQlRTeFBRVUZQTEVkQlFVY3NaVUZCWlN4RFFVRkRPMGxCUTJoRExFMUJRVTBzVlVGQlZTeEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU01Uml4TlFVRk5MRlZCUVZVc1IwRkJSeXhIUVVGSExFOUJRVThzU1VGQlNTeFZRVUZWTEVWQlFVVXNRMEZCUXp0SlFVTTVReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hQUVVGUExGVkJRVlVzUTBGQlF6dEJRVU53UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQjdJRTFoZEhKcGVDQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3SUdkbGRGTnBiV2xzWVhKcGRIbEdjbTl0UkdsemRHRnVZMlVnZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5emFXMXBiR0Z5YVhSNUxXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElIdHlaVzF2ZG1WRmJYQjBlVk4wY21sdVoxSnZkM045SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDJSaGRHRm1jbUZ0WlMxMWRHbHNjeWRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSlRHbHVaU0I3WEc0Z0lHbGtPaUJ1ZFcxaVpYSTdYRzRnSUcxdmJITTZJRzUxYldKbGNsdGRPMXh1SUNCelpXeGxZM1JsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdZVG9nYm5WdFltVnlXMTA3SUM4dklGdDRMQ0I1WFZ4dUlDQmlPaUJ1ZFcxaVpYSmJYVHNnTHk4Z1czZ3NJSGxkWEc1OVhHNWNibWx1ZEdWeVptRmpaU0JKVW1WdVpHVnlaV1JNYVc1bGN5QjdYRzRnSUd4cGJtVnpPaUJKVEdsdVpWdGRPMXh1SUNCc2FXNWxjMFJtT2lCRVJ5NUVZWFJoUm5KaGJXVTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWTmxjWFZsYm1ObFUzQmhZMlZRWVhKaGJYTWdlMXh1SUNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml4Y2JpQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MRnh1SUNCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCemRISnBibWNzWEc0Z0lHVnRZbVZrUVhobGMwNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdiM0IwYVc5dWN6ODZJR0Z1ZVZ4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWxUWlhGMVpXNWpaVk53WVdObFVtVnpkV3gwSUh0Y2JpQWdaR2x6ZEdGdVkyVTZJRTFoZEhKcGVEdGNiaUFnWTI5dmNtUnBibUYwWlhNNklFUkhMa052YkhWdGJreHBjM1E3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTVlJ2YjJ4MGFYQkJibVJRWVc1bGJGQmhjbUZ0Y3lCN1hHNGdJR05oYzJobFpFUmhkR0U2SUdGdWVTeGNiaUFnYkdsdVpUb2dTVXhwYm1Vc1hHNGdJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNYRzRnSUhObGNVTnZiRG9nUkVjdVEyOXNkVzF1TEZ4dUlDQmhZM1JwZG1sMGVVTnZiRG9nUkVjdVEyOXNkVzF1TEZ4dUlDQnpZV3hwUHpvZ2JuVnRZbVZ5WEc1OVhHNWNibXhsZENCNmIyOXRJRDBnWm1Gc2MyVTdYRzVjYm1OdmJuTjBJRzF2YkVOdmJIVnRiazVoYldWeklEMGdXeWN4WDNObGNTY3NJQ2N5WDNObGNTZGRPMXh1WEc1amIyNXpkQ0J1YjI1T2IzSnRZV3hwZW1Wa1JHbHpkR0Z1WTJWeklEMGdXeWRNWlhabGJuTm9kR1ZwYmlkZE8xeHVYRzR2THlCVFpXRnlZMmhsY3lCbWIzSWdZV04wYVhacGRIa2dZMnhwWm1aeklHbHVJR0VnWTJobGJXbGpZV3dnWkdGMFlYTmxkQ0JpZVNCelpXeGxZM1JsWkNCamRYUnZabVpjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQm5aWFJCWTNScGRtbDBlVU5zYVdabWN5aGNiaUFnSUNCa1pqb2dSRWN1UkdGMFlVWnlZVzFsTENCY2JpQWdJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXhjYmlBZ0lDQmxibU52WkdWa1EyOXNPaUJFUnk1RGIyeDFiVzRnZkNCdWRXeHNMRnh1SUNBZ0lHRjRaWE5PWVcxbGN6b2djM1J5YVc1blcxMHNYRzRnSUNBZ2MyTmhkSFJsY2xScGRHeGxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1lXTjBhWFpwZEdsbGN6b2dSRWN1UTI5c2RXMXVMQ0JjYmlBZ0lDQnphVzFwYkdGeWFYUjVPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2MybHRhV3hoY21sMGVVMWxkSEpwWXpvZ2MzUnlhVzVuTENCY2JpQWdJQ0J0WlhSb2IyUk9ZVzFsT2lCemRISnBibWNzSUZ4dUlDQWdJSE5sYlZSNWNHVTZJSE4wY21sdVp5eGNiaUFnSUNCMFlXZHpPaUI3VzJsdVpHVjRPaUJ6ZEhKcGJtZGRPaUJ6ZEhKcGJtZDlMRnh1SUNBZ0lITmxjVk53WVdObFJuVnVZem9nS0hCaGNtRnRjem9nU1ZObGNYVmxibU5sVTNCaFkyVlFZWEpoYlhNcElEMCtJRkJ5YjIxcGMyVThTVk5sY1hWbGJtTmxVM0JoWTJWU1pYTjFiSFErTEZ4dUlDQWdJSE5wYlUxaGRISnBlRVoxYm1NNklDaGthVzA2SUc1MWJXSmxjaXdnYzJWeFEyOXNPaUJFUnk1RGIyeDFiVzRzSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzSUdOdmJFNWhiV1U2SUhOMGNtbHVaeXdnYzJsdFFYSnlPaUJFUnk1RGIyeDFiVzViWFNrZ1BUNGdVSEp2YldselpUeEVSeTVEYjJ4MWJXNWJYVDRzWEc0Z0lDQWdkRzl2YkhScGNFWjFibU02SUNod1lYSmhiWE02SUVsVWIyOXNkR2x3UVc1a1VHRnVaV3hRWVhKaGJYTXBJRDArSUVoVVRVeEZiR1Z0Wlc1MExGeHVJQ0FnSUhCeWIzQmxjblI1VUdGdVpXeEdkVzVqT2lBb2NHRnlZVzF6T2lCSlZHOXZiSFJwY0VGdVpGQmhibVZzVUdGeVlXMXpLU0E5UGlCSVZFMU1SV3hsYldWdWRDeGNiaUFnSUNCelpYRlRjR0ZqWlU5d2RHbHZibk0vT2lCaGJua3BJRG9nVUhKdmJXbHpaVHhFUnk1V2FXVjNaWEkrSUh0Y2JseHVJQ0JqYjI1emRDQmhkWFJ2YldGMGFXTlRhVzFwYkdGeWFYUjVUR2x0YVhRZ1BTQm1ZV3h6WlR0Y2JpQWdZMjl1YzNRZ1RVbE9YMU5KVFVsTVFWSkpWRmtnUFNBNE1EdGNibHh1SUNCamIyNXpkQ0JwYm1sMGFXRnNVMmx0YVd4aGNtbDBlVXhwYldsMElEMGdZWFYwYjIxaGRHbGpVMmx0YVd4aGNtbDBlVXhwYldsMElEOGdUVWxPWDFOSlRVbE1RVkpKVkZrZ09pQnphVzFwYkdGeWFYUjVJQzhnTVRBd08xeHVYRzRnSUdOdmJuTjBJR1JwYldWdWMybHZibUZzYVhSNVVtVmtkV05sUTI5c0lEMGdaVzVqYjJSbFpFTnZiQ0EvUHlCelpYRkRiMnc3WEc0Z0lHTnZibk4wSUhkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3lBOUlFUkhMa1JoZEdGR2NtRnRaUzVtY205dFEyOXNkVzF1Y3loYlpHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMnhkS1M1amJHOXVaU2dwTzF4dUlDQWdJQzh2UUhSekxXbG5ibTl5WlZ4dUlDQmpiMjV6ZENCbGJYQjBlVlpoYkhOSlpIaHpJRDBnY21WdGIzWmxSVzF3ZEhsVGRISnBibWRTYjNkektIZHBkR2h2ZFhSRmJYQjBlVlpoYkhWbGN5d2daR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ3cE8xeHVYRzRnSUdOdmJuTjBJSHRrYVhOMFlXNWpaU3dnWTI5dmNtUnBibUYwWlhOOUlEMGdZWGRoYVhRZ2MyVnhVM0JoWTJWR2RXNWpLSHRjYmlBZ0lDQnpaWEZEYjJ3NklIZHBkR2h2ZFhSRmJYQjBlVlpoYkhWbGN5NWpiMndvWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyd3VibUZ0WlNraExGeHVJQ0FnSUcxbGRHaHZaRTVoYldVNklHMWxkR2h2WkU1aGJXVXNYRzRnSUNBZ2MybHRhV3hoY21sMGVVMWxkSEpwWXpvZ2MybHRhV3hoY21sMGVVMWxkSEpwWXl4Y2JpQWdJQ0JsYldKbFpFRjRaWE5PWVcxbGN6b2dZWGhsYzA1aGJXVnpMRnh1SUNBZ0lHOXdkR2x2Ym5NNklITmxjVk53WVdObFQzQjBhVzl1YzF4dUlDQjlLVHRjYmx4dUlDQm1iM0lnS0dOdmJuTjBJR052YkNCdlppQmpiMjl5WkdsdVlYUmxjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiR2x6ZEZaaGJIVmxjeUE5SUdOdmJDNTBiMHhwYzNRb0tUdGNiaUFnSUNBZ0lHVnRjSFI1Vm1Gc2MwbGtlSE11Wm05eVJXRmphQ2dvYVc1a09pQnVkVzFpWlhJcElEMCtJR3hwYzNSV1lXeDFaWE11YzNCc2FXTmxLR2x1WkN3Z01Dd2diblZzYkNrcE8xeHVJQ0FnSUNBZ1pHWXVZMjlzZFcxdWN5NWhaR1FvUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0Nka2IzVmliR1VuTENCamIyd3VibUZ0WlN3Z2JHbHpkRlpoYkhWbGN5a3BPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdaR1pUWlhFZ1BTQkVSeTVFWVhSaFJuSmhiV1V1Wm5KdmJVTnZiSFZ0Ym5Nb1cwUkhMa052YkhWdGJpNW1jbTl0VEdsemRDZ25jM1J5YVc1bkp5d2dKM05sY1Njc0lHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzTG5SdlRHbHpkQ2dwS1YwcE8xeHVJQ0JqYjI1emRDQmthVzBnUFNCa2FXMWxibk5wYjI1aGJHbDBlVkpsWkhWalpVTnZiQzVzWlc1bmRHZzdYRzRnSUdOdmJuTjBJSE5wYlVGeWNqb2dSRWN1UTI5c2RXMXVXMTBnUFNCQmNuSmhlU2hrYVcwZ0xTQXhLVHRjYmx4dUlDQnBaaUFvSVdScGMzUmhibU5sSUh4OElHVnRjSFI1Vm1Gc2MwbGtlSE11YkdWdVozUm9JQ0U5UFNBd0lIeDhJRzV2Yms1dmNtMWhiR2w2WldSRWFYTjBZVzVqWlhNdWFXNWpiSFZrWlhNb2MybHRhV3hoY21sMGVVMWxkSEpwWXlrcFhHNGdJQ0FnWVhkaGFYUWdjMmx0VFdGMGNtbDRSblZ1WXloa2FXMHNJR1JwYldWdWMybHZibUZzYVhSNVVtVmtkV05sUTI5c0xDQmtabE5sY1N3Z0ozTmxjU2NzSUhOcGJVRnljaWs3WEc0Z0lHVnNjMlZjYmlBZ0lDQm5aWFJUYVcxcGJHRnlhWFJwWlhOR2NtOXRSR2x6ZEdGdVkyVnpLR1JwYlN3Z1pHbHpkR0Z1WTJVc0lITnBiVUZ5Y2lrN1hHNWNiaUFnWTI5dWMzUWdiM0IwVTJsdGFXeGhjbWwwZVV4cGJXbDBJRDBnYVc1cGRHbGhiRk5wYldsc1lYSnBkSGxNYVcxcGREdGNibHh1SUNCamIyNXpkQ0J6YVcxV1lXeHpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQnpZV3hwVm1Gc2N6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2JqRTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR052Ym5OMElHNHlPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQmpiR2xtWm5OTmIyeEpaSE1nUFNCdVpYY2dVMlYwUEc1MWJXSmxjajRvS1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0FoUFNCa2FXMGdMU0F4T3lBcksya3BJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnTURzZ2FpQWhQU0JrYVcwZ0xTQXhJQzBnYVRzZ0t5dHFLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnphVzA2SUc1MWJXSmxjaUE5SUhOcGJVRnljbHRwWFNBL0lITnBiVUZ5Y2x0cFhTNW5aWFFvYWlrZ09pQXdPMXh1WEc0Z0lDQWdJQ0JwWmlBb2MybHRJRDQ5SUc5d2RGTnBiV2xzWVhKcGRIbE1hVzFwZENrZ2UxeHVJQ0FnSUNBZ0lDQnVNUzV3ZFhOb0tHa3BPMXh1SUNBZ0lDQWdJQ0J1TWk1d2RYTm9LR2tnS3lCcUlDc2dNU2s3WEc0Z0lDQWdJQ0FnSUdOc2FXWm1jMDF2YkVsa2N5NWhaR1FvYVNrN1hHNGdJQ0FnSUNBZ0lHTnNhV1ptYzAxdmJFbGtjeTVoWkdRb2FTQXJJR29nS3lBeEtUdGNiaUFnSUNBZ0lDQWdjMmx0Vm1Gc2N5NXdkWE5vS0hOcGJTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUnBabVlnUFNCTllYUm9MbUZpY3loaFkzUnBkbWwwYVdWekxtZGxkQ2hwS1NBdElHRmpkR2wyYVhScFpYTXVaMlYwS0drZ0t5QnFJQ3NnTVNrcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYzJsdElDRTlJREVwWEc0Z0lDQWdJQ0FnSUNBZ2MyRnNhVlpoYkhNdWNIVnphQ2hrYVdabUlDOGdLREVnTFNCemFXMHBLVHRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJSE5oYkdsV1lXeHpMbkIxYzJnb1NXNW1hVzVwZEhrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lHTnZibk4wSUhOaGJHbFdZV3h6VjJsMGFHOTFkRWx1Wm1sdWFYUjVJRDBnYzJGc2FWWmhiSE11Wm1sc2RHVnlLR2wwSUQwK0lHbDBJQ0U5UFNCSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xOYVc0Z1BTQk5ZWFJvTG0xcGJpZ3VMaTV6WVd4cFZtRnNjMWRwZEdodmRYUkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsTllYZ2dQU0JOWVhSb0xtMWhlQ2d1TGk1ellXeHBWbUZzYzFkcGRHaHZkWFJKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbFBjR0ZqYVhSNVEyOWxaaUE5SURBdU9DOG9jMkZzYVUxaGVDQXRJSE5oYkdsTmFXNHBPMXh1WEc1Y2JpQWdZMjl1YzNRZ2JtVnBaMmhpYjNWeWMwTnZkVzUwSUQwZ2JtVjNJRUZ5Y21GNUtHUnBiU2t1Wm1sc2JDZ3dLVHRjYmlBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVVOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNiaUFnWTI5dWMzUWdjMkZzYVVOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBaFBTQnVNUzVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUc1bGFXZG9ZbTkxY25ORGIzVnVkRnR1TVZ0cFhWMGdLejBnTVR0Y2JpQWdJQ0J1WldsbmFHSnZkWEp6UTI5MWJuUmJiakpiYVYxZElDczlJREU3WEc0Z0lDQWdjMmx0YVd4aGNtbDBlVU52ZFc1MFcyNHhXMmxkWFNBclBTQnphVzFXWVd4elcybGRPMXh1SUNBZ0lITnBiV2xzWVhKcGRIbERiM1Z1ZEZ0dU1sdHBYVjBnS3owZ2MybHRWbUZzYzF0cFhUdGNiaUFnSUNCcFppQW9jMkZzYVZaaGJITmJhVjBnSVQwZ1NXNW1hVzVwZEhrcElIdGNiaUFnSUNBZ0lHbG1JQ2hoWTNScGRtbDBhV1Z6TG1kbGRDaHVNVnRwWFNrZ1BpQmhZM1JwZG1sMGFXVnpMbWRsZENodU1sdHBYU2twWEc0Z0lDQWdJQ0FnSUhOaGJHbERiM1Z1ZEZ0dU1WdHBYVjBnS3owZ2MyRnNhVlpoYkhOYmFWMDdYRzRnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUhOaGJHbERiM1Z1ZEZ0dU1sdHBYVjBnS3owZ2MyRnNhVlpoYkhOYmFWMDdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MyRnNhVG9nUkVjdVEyOXNkVzF1SUQwZ1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZGtiM1ZpYkdVbkxDQmdjMkZzYVY4a2UyRjRaWE5PWVcxbGMxc3dYUzV6ZFdKemRISnBibWNvWVhobGMwNWhiV1Z6V3pCZExteGhjM1JKYm1SbGVFOW1LQ2RmSnlrcGZXQXNJSE5oYkdsRGIzVnVkQ2s3WEc1Y2JpQWdaR1l1WTI5c2RXMXVjeTVoWkdRb2MyRnNhU2s3WEc0Z0lHTnZibk4wSUdOc2FXWm1jME52YkU1aGJXVWdQU0JoWkdSRGJHbG1abk5DYjI5c1pXRnVRMjlzS0dSbUxDQmpiR2xtWm5OTmIyeEpaSE1wTzF4dVhHNGdJR052Ym5OMElIWnBaWGNnUFNCbmNtOXJMbk5vWld4c0xtZGxkRlJoWW14bFZtbGxkeWhrWmk1dVlXMWxLVHRjYmlBZ2RtbGxkeTVuY21sa0xtTnZiSFZ0Ym5NdVlubE9ZVzFsS0dOc2FXWm1jME52YkU1aGJXVXBJUzUyYVhOcFlteGxJRDBnWm1Gc2MyVTdYRzRnSUdOdmJuTjBJSE53SUQwZ2RtbGxkeTVoWkdSV2FXVjNaWElvUkVjdVZtbGxkMlZ5TG5OallYUjBaWEpRYkc5MEtHUm1MQ0I3WEc0Z0lDQWdlRU52YkhWdGJrNWhiV1U2SUdGNFpYTk9ZVzFsYzFzd1hTeGNiaUFnSUNCNVEyOXNkVzF1VG1GdFpUb2dZWGhsYzA1aGJXVnpXekZkTEZ4dUlDQWdJSE5wZW1VNklITmhiR2t1Ym1GdFpTeGNiaUFnSUNCamIyeHZjam9nWVdOMGFYWnBkR2xsY3k1dVlXMWxMRnh1SUNBZ0lITm9iM2RZVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2RaVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2RUYVhwbFUyVnNaV04wYjNJNklHWmhiSE5sTEZ4dUlDQWdJSE5vYjNkRGIyeHZjbE5sYkdWamRHOXlPaUJtWVd4elpTeGNiaUFnSUNCdFlYSnJaWEpOYVc1VGFYcGxPaUExTEZ4dUlDQWdJRzFoY210bGNrMWhlRk5wZW1VNklESTFMRnh1SUNBZ0lIUnBkR3hsT2lCelkyRjBkR1Z5VkdsMGJHVmNiaUFnZlNrcElHRnpJRVJITGxOallYUjBaWEpRYkc5MFZtbGxkMlZ5TzF4dVhHNGdJR052Ym5OMElHTmhiblpoY3lBOUlDaHpjQzVuWlhSSmJtWnZLQ2tnWVhNZ1lXNTVLVnNuWTJGdWRtRnpKMTA3WEc0Z0lHTnZibk4wSUd4cGJtVnpVbVZ6SUQwZ1kzSmxZWFJsVEdsdVpYTW9iakVzSUc0eUxDQnpaWEZEYjJ3c0lHRmpkR2wyYVhScFpYTXNJSE5oYkdsV1lXeHpMQ0J6YVcxV1lXeHpMQ0J6WlcxVWVYQmxMQ0IwWVdkektUdGNibHh1SUNCamIyNXpkQ0JqWVhOb1pXUk1hVzVsYzBSaGRHRTZJR0Z1ZVNBOUlIdDlPMXh1SUNCc1pYUWdZV05qT2lCRVJ5NUJZMk52Y21ScGIyNDdYRzVjYmlBZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1dmJrTjFjbkpsYm5SRFpXeHNRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk5iMnhKWkhnZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtTjFjbkpsYm5SRGIyd2dKaVlnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBRMjlzTG01aGJXVWdQVDA5SUNjeVgzTmxjU2NnUHlBeElEb2dNRHRjYmlBZ0lDQmpiMjV6ZENCc2FXNWxJRDBnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElDRTlQU0F0TVNBL0lHeHBibVZ6VW1WekxteHBibVZ6VzJ4cGJtVnpVbVZ6TG14cGJtVnpSR1l1WTNWeWNtVnVkRkp2ZDBsa2VGMGdPaUJ1ZFd4c08xeHVJQ0FnSUhOd0xtUmhkR0ZHY21GdFpTNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaU0EvSUd4cGJtVXViVzlzYzF0amRYSnlaVzUwVFc5c1NXUjRYU0E2SUMweE8xeHVJQ0FnSUhOd0xtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVjMlYwS0RBc0lDRnNhVzVsYzFKbGN5NXNhVzVsYzFzd1hTNXpaV3hsWTNSbFpDazdYRzRnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbk5sYkdWamRHbHZiaTV6WlhRb01Dd2diR2x1WlhOU1pYTXViR2x1WlhOYk1GMHVjMlZzWldOMFpXUXBPMXh1SUNBZ0lHeHBibVZ6UkdaSGNtbGtMbWx1ZG1Gc2FXUmhkR1VvS1R0Y2JpQWdJQ0JwWmlBb2JHbHVaU2xjYmlBZ0lDQWdJSE5sZEZScGJXVnZkWFFvS0NrZ1BUNGdlM1Z3WkdGMFpWQnliM0JsY25SNVVHRnVaV3dvWkdZc0lHRmpZeXdnWTJGemFHVmtUR2x1WlhORVlYUmhMQ0JzYVc1bExDQnpaWEZEYjJ3c0lHRmpkR2wyYVhScFpYTXNJR3hwYm1WelVtVnpMbXhwYm1WelJHWXVaMlYwS0NkellXeHBKeXdnYkdsdVpTNXBaQ2tzSUhCeWIzQmxjblI1VUdGdVpXeEdkVzVqS1gwc0lERXdNREFwT3lBZ0lDQWdJRnh1SUNCOUtUdGNibHh1SUNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG05dVUyVnNaV04wYVc5dVEyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tGODZJR0Z1ZVNrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTF2ZFhObFQzWmxjbEp2ZDBsa2VDQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMxdHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtMXZkWE5sVDNabGNsSnZkMGxrZUYwN1hHNGdJQ0FnSUNCc2FXNWxMbk5sYkdWamRHVmtJRDBnSVd4cGJtVXVjMlZzWldOMFpXUTdYRzRnSUNBZ0lDQnBaaUFvSVd4cGJtVXVjMlZzWldOMFpXUXBYRzRnSUNBZ0lDQWdJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUkJiR3dvWm1Gc2MyVXBPMXh1SUNBZ0lIMWNiaUFnSUNCc2FXNWxjMUpsY3k1c2FXNWxjeTVtYjNKRllXTm9LQ2hzS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvYkM1elpXeGxZM1JsWkNsY2JpQWdJQ0FnSUNBZ2JDNXRiMnh6TG1admNrVmhZMmdvS0cwcElEMCtJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUW9iU3dnZEhKMVpTa3BPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lHeHBibVZ6UkdaSGNtbGtMbWx1ZG1Gc2FXUmhkR1VvS1R0Y2JpQWdmU2s3WEc1Y2JpQWdZMjl1YzNRZ2JHbHVaWE5FWmtkeWFXUWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbkJzYjNRdVozSnBaQ2dwTG5OdmNuUW9XeWR6WVd4cEoxMHNJRnRtWVd4elpWMHBPMXh1WEc0Z0lHeHBibVZ6UkdaSGNtbGtMbTl1UTJWc2JFTnNhV05yTG5OMVluTmpjbWxpWlNnb0tTQTlQaUI3WEc0Z0lDQWdlbTl2YlNBOUlIUnlkV1U3WEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wSUd4cGMzUkRiR2xtWm5OTWFXNXJJRDBnZFdrdVluVjBkRzl1S0dBa2UyeHBibVZ6VW1WekxteHBibVZ6UkdZdWNtOTNRMjkxYm5SOUlHTnNhV1ptYzJBc0lDZ3BJRDArSUh0Y2JpQWdJQ0JuY205ckxuTm9aV3hzTG1SdlkydE5ZVzVoWjJWeUxtUnZZMnNvYkdsdVpYTkVaa2R5YVdRdWNtOXZkQ3dnSjJSdmQyNG5MQ0J1ZFd4c0xDQW5RV04wYVhacGRIa2dZMnhwWm1aekp5d2dNQzR5S1R0Y2JpQWdmU2s3WEc0Z0lHVmthWFJUY0V4cGJtdFRkSGxzWlNoc2FYTjBRMnhwWm1aelRHbHVheXdnYzNBc0lERXdLVHRjYmx4dUlDQmpiMjV6ZENCbWFXeDBaWEpEYkdsbVpuTkNkWFIwYjI0Z1BTQjFhUzV6ZDJsMFkyaEpibkIxZENoZ1UyaHZkeUJ2Ym14NUlHTnNhV1ptYzJBc0lHWmhiSE5sS1R0Y2JpQWdabWxzZEdWeVEyeHBabVp6UW5WMGRHOXVMbTl1UTJoaGJtZGxaQ2dvS1QwK0lIdGNiaUFnSUNCbWFXeDBaWEpEYkdsbVpuTkNkWFIwYjI0dWRtRnNkV1VnUHlCa1ppNXliM2R6TG1acGJIUmxjaWdvY205M0tTQTlQaUJ5YjNkYlkyeHBabVp6UTI5c1RtRnRaVjBnUFQwOUlIUnlkV1VwSURvZ1pHWXVabWxzZEdWeUxuTmxkRUZzYkNoMGNuVmxLVHRjYmlBZ2ZTazdYRzRnSUdWa2FYUlRjRXhwYm10VGRIbHNaU2htYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjR1Y205dmRDd2djM0FzSURNd0tUdGNibHh1SUNCc1pYUWdkR2x0WlhJNklFNXZaR1ZLVXk1VWFXMWxiM1YwTzF4dUlDQmpZVzUyWVhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnbmJXOTFjMlZ0YjNabEp5d2dablZ1WTNScGIyNGdLR1YyWlc1ME9pQk5iM1Z6WlVWMlpXNTBLU0I3WEc0Z0lDQWdZMnhsWVhKVWFXMWxiM1YwS0hScGJXVnlLVHRjYmlBZ0lDQjBhVzFsY2lBOUlHZHNiMkpoYkM1elpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHeHBibVVnUFNCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkQ3dnWTJGdWRtRnpMQ0JzYVc1bGMxSmxjeTVzYVc1bGN5azdYRzRnSUNBZ0lDQnBaaUFvYkdsdVpTQW1KaUJrWmk1dGIzVnpaVTkyWlhKU2IzZEpaSGdnUFQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RXa3VkRzl2YkhScGNDNXphRzkzS0hSdmIyeDBhWEJHZFc1aktIdGpZWE5vWldSRVlYUmhPaUJqWVhOb1pXUk1hVzVsYzBSaGRHRXNJR3hwYm1VNklHeHBibVVzSUdSbU9pQmtaaXdnYzJWeFEyOXNPaUJ6WlhGRGIyd3NJR0ZqZEdsMmFYUjVRMjlzT2lCaFkzUnBkbWwwYVdWemZTa3NJR1YyWlc1MExtTnNhV1Z1ZEZnc0lHVjJaVzUwTG1Oc2FXVnVkRmtwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBzSURVd01DazdYRzRnSUgwcE8xeHVYRzRnSUdOaGJuWmhjeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLQ2R0YjNWelpXUnZkMjRuTENCbWRXNWpkR2x2YmlobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZENrZ2UxeHVJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQmphR1ZqYTBOMWNuTnZjazl1VEdsdVpTaGxkbVZ1ZEN3Z1kyRnVkbUZ6TENCc2FXNWxjMUpsY3k1c2FXNWxjeWs3WEc0Z0lDQWdhV1lnS0d4cGJtVWdKaVlnWkdZdWJXOTFjMlZQZG1WeVVtOTNTV1I0SUQwOVBTQXRNU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHVjJaVzUwTG1OMGNteExaWGtwSUh0Y2JpQWdJQ0FnSUNBZ2JHbHVaUzV6Wld4bFkzUmxaQ0E5SUNGc2FXNWxMbk5sYkdWamRHVmtPMXh1SUNBZ0lDQWdJQ0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1Mbk5sYkdWamRHbHZiaTV6WlhRb2JHbHVaUzVwWkN3Z2JHbHVaUzV6Wld4bFkzUmxaQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZzYVc1bExuTmxiR1ZqZEdWa0tWeHVJQ0FnSUNBZ0lDQWdJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUkJiR3dvWm1Gc2MyVXBPMXh1WEc0Z0lDQWdJQ0FnSUd4cGJtVnpVbVZ6TG14cGJtVnpMbVp2Y2tWaFkyZ29LR3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2JDNXpaV3hsWTNSbFpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUd3dWJXOXNjeTVtYjNKRllXTm9LQ2h0S1NBOVBpQmtaaTV6Wld4bFkzUnBiMjR1YzJWMEtHMHNJSFJ5ZFdVcEtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJQ0U5UFNCc2FXNWxMbWxrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaUzVwWkR0Y2JpQWdJQ0FnSUNBZ0lDQmtaaTVqZFhKeVpXNTBVbTkzU1dSNElEMGdiR2x1WlM1dGIyeHpXekJkTzF4dUlDQWdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhRb01Dd2dJV3hwYm1WelVtVnpMbXhwYm1Weld6QmRMbk5sYkdWamRHVmtLVHRjYmlBZ0lDQWdJQ0FnSUNCa1ppNXpaV3hsWTNScGIyNHVjMlYwS0RBc0lHeHBibVZ6VW1WekxteHBibVZ6V3pCZExuTmxiR1ZqZEdWa0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZMjl1YzNRZ2IzSmtaWElnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1kbGRGTnZjblJsWkU5eVpHVnlLR3hwYm1WelJHWkhjbWxrTG5OdmNuUkNlVU52YkhWdGJuTXNJR3hwYm1WelJHWkhjbWxrTG5OdmNuUlVlWEJsY3lrN1hHNGdJQ0FnSUNCc2FXNWxjMFJtUjNKcFpDNXpZM0p2Ykd4VWIwTmxiR3dvSjNObGNWOHhKeXdnYjNKa1pYSXVhVzVrWlhoUFppaHNhVzVsTG1sa0tTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0J6Y0M1dmJrVjJaVzUwS0Nka05DMWlaV1p2Y21VdFpISmhkeTF6WTJWdVpTY3BYRzRnSUNBZ0xuTjFZbk5qY21saVpTZ29Yem9nWVc1NUtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnNhVzVsY3lBOUlISmxibVJsY2t4cGJtVnpLSE53TEZ4dUlDQWdJQ0FnSUNCaGVHVnpUbUZ0WlhOYk1GMHNJR0Y0WlhOT1lXMWxjMXN4WFN3Z2JHbHVaWE5TWlhNc0lITmhiR2xXWVd4ekxDQnpZV3hwVDNCaFkybDBlVU52WldZc0lITmhiR2xOYVc0cE8xeHVJQ0FnSUNBZ2FXWWdLSHB2YjIwcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEV4cGJtVWdQU0JzYVc1bGMxdHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtTjFjbkpsYm5SU2IzZEpaSGhkTzF4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtDZ3BQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUh0NmIyOXRUR1ZtZEN3Z2VtOXZiVkpwWjJoMExDQjZiMjl0Vkc5d0xDQjZiMjl0UW05MGRHOXRmU0E5SUdkbGRGcHZiMjFEYjI5eVpHbHVZWFJsY3loY2JpQWdJQ0FnSUNBZ0lDQWdJSE53TG5acFpYZHdiM0owTG5kcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVkbWxsZDNCdmNuUXVhR1ZwWjJoMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTUYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1WMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNRjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNRjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTVYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTVYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1WMHBYRzRnSUNBZ0lDQWdJQ0FnS1NBZ0lDQWdJQ0FnWEc0Z0lDQWdJQ0FnSUNBZ2MzQXVlbTl2YlNoNmIyOXRUR1ZtZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSHB2YjIxVWIzQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCNmIyOXRVbWxuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I2YjI5dFFtOTBkRzl0S1R0Y2JpQWdJQ0FnSUNBZ2ZTd2dNekF3S1R0Y2JpQWdJQ0FnSUNBZ2VtOXZiU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdabWxzZEdWeVEyeHBabVp6UW5WMGRHOXVMblpoYkhWbElEOGdaR1l1Y205M2N5NW1hV3gwWlhJb0tISnZkeWtnUFQ0Z2NtOTNXMk5zYVdabWMwTnZiRTVoYldWZElEMDlQU0IwY25WbEtTQTZJR1JtTG1acGJIUmxjaTV6WlhSQmJHd29kSEoxWlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnYzNBdVlXUmtVSEp2Y0dWeWRIa29KM05wYldsc1lYSnBkSGxNYVcxcGRDY3NJQ2RrYjNWaWJHVW5MQ0J2Y0hSVGFXMXBiR0Z5YVhSNVRHbHRhWFFwTzF4dUlDQmhZMk1nUFNCamNtVmhkR1ZRYjNCbGNuUjVVR0Z1Wld3b0tUdGNiaUFnY21WMGRYSnVJSE53TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJsWkdsMFUzQk1hVzVyVTNSNWJHVW9aV3c2SUVoVVRVeEZiR1Z0Wlc1MExDQnpjRG9nUkVjdVUyTmhkSFJsY2xCc2IzUldhV1YzWlhJc0lIUnZjRTFoY21kcGJqb2diblZ0WW1WeUtYdGNiaUFnWld3dWMzUjViR1V1Y0c5emFYUnBiMjRnUFNBbllXSnpiMngxZEdVbk8xeHVJQ0JsYkM1emRIbHNaUzUwYjNBZ1BTQmdKSHQwYjNCTllYSm5hVzU5Y0hoZ08xeHVJQ0JsYkM1emRIbHNaUzV5YVdkb2RDQTlJQ2N4TUhCNEp6dGNiaUFnYzNBdWNtOXZkQzVoY0hCbGJtUW9aV3dwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJqY21WaGRHVlFiM0JsY25SNVVHRnVaV3dvS1RvZ1JFY3VRV05qYjNKa2FXOXVJSHRjYmlBZ1kyOXVjM1FnWVdOaklEMGdkV2t1WVdOamIzSmthVzl1S0NrN1hHNGdJR052Ym5OMElHRmpZMGxqYjI0Z1BTQjFhUzVsYkdWdFpXNTBLQ2RwSnlrN1hHNGdJR0ZqWTBsamIyNHVZMnhoYzNOT1lXMWxJRDBnSjJkeWIyc3RhV052YmlCemRtY3RhV052YmlCemRtY3RkbWxsZHkxc1lYbHZkWFFuTzF4dUlDQmhZMk11WVdSa1ZHbDBiR1VvZFdrdWMzQmhiaWhiWVdOalNXTnZiaXdnZFdrdWJHRmlaV3dvWUVGamRHbDJhWFI1SUdOc2FXWm1jMkFwWFNrcE8xeHVJQ0JoWTJNdVlXUmtVR0Z1WlNnblEyeHBabVlnUkdWMFlXbHNjeWNzSUNncElEMCtJSFZwTG1ScGRsUmxlSFFvSjBOc2FXWm1JR2hoY3lCdWIzUWdZbVZsYmlCelpXeGxZM1JsWkNjcExDQjBjblZsS1R0Y2JpQWdaM0p2YXk1emFHVnNiQzV2SUQwZ1lXTmpMbkp2YjNRN1hHNGdJSEpsZEhWeWJpQmhZMk03WEc1OVhHNWNibVoxYm1OMGFXOXVJSFZ3WkdGMFpWQnliM0JsY25SNVVHRnVaV3dvWEc0Z0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc1hHNGdJR0ZqWXpvZ1JFY3VRV05qYjNKa2FXOXVMRnh1SUNCallYTm9aV1JFWVhSaE9pQmhibmtzWEc0Z0lHeHBibVU2SUVsTWFXNWxMQ0JjYmlBZ2MyVnhRMjlzT2lCRVJ5NURiMngxYlc0c0lGeHVJQ0JoWTNScGRtbDBhV1Z6T2lCRVJ5NURiMngxYlc0c1hHNGdJSE5oYkdrNklHNTFiV0psY2l4Y2JpQWdjSEp2Y0ZCaGJtVnNSblZ1WXpvZ0tIQmhjbUZ0Y3pvZ1NWUnZiMngwYVhCQmJtUlFZVzVsYkZCaGNtRnRjeWtnUFQ0Z1NGUk5URVZzWlcxbGJuUXBlMXh1SUNCamIyNXpkQ0J3WVc1bGJDQTlJR0ZqWXk1blpYUlFZVzVsS0NkRGJHbG1aaUJFWlhSaGFXeHpKeWs3WEc0Z0lIVnBMbVZ0Y0hSNUtIQmhibVZzTG5KdmIzUXBPMXh1SUNCamIyNXpkQ0J3WVc1bGJFVnNaVzFsYm5RZ1BTQndjbTl3VUdGdVpXeEdkVzVqS0h0allYTm9aV1JFWVhSaE9pQmpZWE5vWldSRVlYUmhMQ0JzYVc1bE9pQnNhVzVsTENCa1pqb2daR1lzSUhObGNVTnZiRG9nYzJWeFEyOXNMQ0JoWTNScGRtbDBlVU52YkRvZ1lXTjBhWFpwZEdsbGN5d2djMkZzYVRvZ2MyRnNhWDBwTzF4dUlDQndZVzVsYkM1eWIyOTBMbUZ3Y0dWdVpDaHdZVzVsYkVWc1pXMWxiblFwTzF4dUlDQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lIdGNiaUFnSUNCbmNtOXJMbk5vWld4c0xtOGdQU0JoWTJNdWNtOXZkRHRjYmlBZ2ZTd2dOVEF3S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWjJWMFdtOXZiVU52YjNKa2FXNWhkR1Z6S0Zjd09pQnVkVzFpWlhJc0lFZ3dPaUJ1ZFcxaVpYSXNJSGd4T2lCdWRXMWlaWElzSUhreE9pQnVkVzFpWlhJc0lIZ3lPaUJ1ZFcxaVpYSXNJSGt5T2lCdWRXMWlaWElwSUh0Y2JpQWdZMjl1YzNRZ1Z6RWdQU0JOWVhSb0xtRmljeWg0TVNBdElIZ3lLVHRjYmlBZ1kyOXVjM1FnU0RFZ1BTQk5ZWFJvTG1GaWN5aDVNU0F0SUhreUtUdGNiaUFnWTI5dWMzUWdjMk5oYkdWWElEMGdWekFnTHlCWE1UdGNiaUFnWTI5dWMzUWdjMk5oYkdWSUlEMGdTREFnTHlCSU1UdGNiaUFnWTI5dWMzUWdjMk5oYkdVZ1BTQk5ZWFJvTG0xcGJpaHpZMkZzWlZjc0lITmpZV3hsU0NrN1hHNGdJR052Ym5OMElGY3lJRDBnS0Zjd0lDOGdjMk5oYkdVcElDb2dOVHRjYmlBZ1kyOXVjM1FnU0RJZ1BTQW9TREFnTHlCelkyRnNaU2tnS2lBMU8xeHVJQ0JqYjI1emRDQnNaV1owSUQwZ2VERWdQQ0I0TWlBL0lIZ3hJRG9nZURJN1hHNGdJR052Ym5OMElIUnZjQ0E5SUhreElENGdlVElnUHlCNU1TQTZJSGt5TzF4dUlDQmpiMjV6ZENCNmIyOXRUR1ZtZENBOUlDaHNaV1owSUNzZ1Z6RWdMeUF5S1NBdElGY3lJQzhnTWp0Y2JpQWdZMjl1YzNRZ2VtOXZiVkpwWjJoMElEMGdlbTl2YlV4bFpuUWdLeUJYTWp0Y2JpQWdZMjl1YzNRZ2VtOXZiVlJ2Y0NBOUlDaDBiM0FnTFNCSU1TQXZJRElwSUNzZ1NESWdMeUF5TzF4dUlDQmpiMjV6ZENCNmIyOXRRbTkwZEc5dElEMGdlbTl2YlZSdmNDQXRJRWd5TzF4dUlDQnlaWFIxY200Z2UzcHZiMjFNWldaME9pQjZiMjl0VEdWbWRDd2dlbTl2YlZKcFoyaDBPaUI2YjI5dFVtbG5hSFFzSUhwdmIyMVViM0E2SUhwdmIyMVViM0FzSUhwdmIyMUNiM1IwYjIwNklIcHZiMjFDYjNSMGIyMTlPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmphR1ZqYTBOMWNuTnZjazl1VEdsdVpTaGxkbVZ1ZERvZ1lXNTVMQ0JqWVc1MllYTTZJR0Z1ZVN3Z2JHbHVaWE02SUVsTWFXNWxXMTBwT2lCSlRHbHVaU0I4SUc1MWJHd2dlMXh1SUNCamIyNXpkQ0J5WldOMElEMGdZMkZ1ZG1GekxtZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ2dwTzF4dUlDQmpiMjV6ZENCNElEMGdaWFpsYm5RdVkyeHBaVzUwV0NBdElISmxZM1F1YkdWbWREdGNiaUFnWTI5dWMzUWdlU0E5SUdWMlpXNTBMbU5zYVdWdWRGa2dMU0J5WldOMExuUnZjRHRjYmlBZ2JHVjBJR05zYjNObGMzUk1hVzVsSUQwZ2JuVnNiRHRjYmlBZ2JHVjBJRzFwYmtScGMzUWdQU0F3TzF4dUlDQm1iM0lnS0dOdmJuTjBJR3hwYm1VZ2IyWWdiR2x1WlhNcElIdGNiaUFnSUNCamIyNXpkQ0JrYVhOMElEMWNiaUFnSUNBZ0lFMWhkR2d1WVdKektFMWhkR2d1YUhsd2IzUW9iR2x1WlM1aFd6QmRJQzBnZUN3Z2JHbHVaUzVoV3pGZElDMGdlU2tnSzF4dUlDQWdJQ0FnVFdGMGFDNW9lWEJ2ZENoc2FXNWxMbUpiTUYwZ0xTQjRMQ0JzYVc1bExtSmJNVjBnTFNCNUtTQXRJRTFoZEdndWFIbHdiM1FvYkdsdVpTNWhXekJkSUMwZ2JHbHVaUzVpV3pCZExDQnNhVzVsTG1GYk1WMGdMU0JzYVc1bExtSmJNVjBwS1R0Y2JpQWdJQ0JwWmlBb0tDRnRhVzVFYVhOMElDWW1JR1JwYzNRZ1BDQXlLU0I4ZkNCa2FYTjBJRHdnYldsdVJHbHpkQ2tnZTF4dUlDQWdJQ0FnYldsdVJHbHpkQ0E5SUdScGMzUTdYRzRnSUNBZ0lDQmpiRzl6WlhOMFRHbHVaU0E5SUd4cGJtVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCamJHOXpaWE4wVEdsdVpUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2NtVnVaR1Z5VEdsdVpYTW9jM0E2SUVSSExsTmpZWFIwWlhKUWJHOTBWbWxsZDJWeUxGeHVJQ0I0UVhocGN6b2djM1J5YVc1bkxDQjVRWGhwY3pvZ2MzUnlhVzVuTENCc2FXNWxjMUpsY3pvZ1NWSmxibVJsY21Wa1RHbHVaWE1zSUhOaGJHbFdZV3h6T2lCdWRXMWlaWEpiWFN3Z2MyRnNhVTl3WVdOcGRIbERiMlZtT2lCdWRXMWlaWElzSUhOaGJHbE5hVzQ2SUc1MWJXSmxjaWs2SUVsTWFXNWxJRnRkSUh0Y2JpQWdZMjl1YzNRZ2JHbHVaWE1nUFNCc2FXNWxjMUpsY3k1c2FXNWxjenRjYmlBZ1kyOXVjM1FnWTJGdWRtRnpJRDBnS0hOd0xtZGxkRWx1Wm04b0tTQmhjeUI3VzJsdVpHVjRPaUJ6ZEhKcGJtZGRJRG9nWVc1NWZTbGJKMk5oYm5aaGN5ZGRPMXh1SUNCamIyNXpkQ0JqZEhnZ1BTQmpZVzUyWVhNdVoyVjBRMjl1ZEdWNGRDZ25NbVFuS1NCaGN5QkRZVzUyWVhOU1pXNWtaWEpwYm1kRGIyNTBaWGgwTWtRN1hHNGdJR052Ym5OMElIZ2dQU0J6Y0M1a1lYUmhSbkpoYldVaExtTnZiSFZ0Ym5NdVlubE9ZVzFsS0hoQmVHbHpLVHRjYmlBZ1kyOXVjM1FnZVNBOUlITndMbVJoZEdGR2NtRnRaU0V1WTI5c2RXMXVjeTVpZVU1aGJXVW9lVUY0YVhNcE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUd4cGJtVnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SR2NtOXRJRDBnYzNBdWQyOXliR1JVYjFOamNtVmxiaWg0TG1kbGRDaHNhVzVsYzF0cFhTNXRiMnh6V3pCZEtTd2dlUzVuWlhRb2JHbHVaWE5iYVYwdWJXOXNjMXN3WFNrcE8xeHVJQ0FnSUdOdmJuTjBJSEJ2YVc1MFZHOGdQU0J6Y0M1M2IzSnNaRlJ2VTJOeVpXVnVLSGd1WjJWMEtHeHBibVZ6VzJsZExtMXZiSE5iTVYwcExDQjVMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekZkS1NrN1hHNGdJQ0FnYkdsdVpYTmJhVjB1WVNBOUlGdHdiMmx1ZEVaeWIyMHVlQ3dnY0c5cGJuUkdjbTl0TG5sZE8xeHVJQ0FnSUd4cGJtVnpXMmxkTG1JZ1BTQmJjRzlwYm5SVWJ5NTRMQ0J3YjJsdWRGUnZMbmxkTzF4dUlDQWdJR052Ym5OMElHeHBibVVnUFNCdVpYY2dVR0YwYURKRUtDazdYRzRnSUNBZ2JHbHVaUzV0YjNabFZHOG9iR2x1WlhOYmFWMHVZVnN3WFN3Z2JHbHVaWE5iYVYwdVlWc3hYU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNiM0lnUFNCc2FXNWxjMXRwWFM1elpXeGxZM1JsWkNBL0lDY3lOVFVzTWpVMUxEQW5JRG9nSnpBc01USTRMREFuTzF4dUlDQWdJR052Ym5OMElHOXdZV05wZEhrZ1BTQnpZV3hwVm1Gc2MxdHBYU0E5UFQwZ1NXNW1hVzVwZEhrZ1B5QXhJRG9nTUM0eUlDc2dLSE5oYkdsV1lXeHpXMmxkSUMwZ2MyRnNhVTFwYmlrcWMyRnNhVTl3WVdOcGRIbERiMlZtTzF4dUlDQWdJR04wZUM1emRISnZhMlZUZEhsc1pTQTlJR0J5WjJKaEtDUjdZMjlzYjNKOUxDUjdiM0JoWTJsMGVYMHBZRHRjYmlBZ0lDQmpkSGd1YkdsdVpWZHBaSFJvSUQwZ2JHbHVaWE5iYVYwdWFXUWdQVDA5SUd4cGJtVnpVbVZ6TG14cGJtVnpSR1l1WTNWeWNtVnVkRkp2ZDBsa2VDQS9JRE1nT2lBeE8xeHVJQ0FnSUd4cGJtVXViR2x1WlZSdktHeHBibVZ6VzJsZExtSmJNRjBzSUd4cGJtVnpXMmxkTG1KYk1WMHBPMXh1SUNBZ0lHTjBlQzV6ZEhKdmEyVW9iR2x1WlNrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUd4cGJtVnpPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmpjbVZoZEdWTWFXNWxjeWhjYmlBZ2JqRTZJRzUxYldKbGNsdGRMQ0JjYmlBZ2JqSTZJRzUxYldKbGNsdGRMQ0JjYmlBZ2MyVnhPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQmhZM1JwZG1sMGFXVnpPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQnpZV3hwVm1Gc2N6b2diblZ0WW1WeVcxMHNYRzRnSUhOcGJWWmhiSE02SUc1MWJXSmxjbHRkTEZ4dUlDQnpaVzFVZVhCbE9pQnpkSEpwYm1jc1hHNGdJSFJoWjNNNklIdGJhVzVrWlhnNklITjBjbWx1WjEwNklITjBjbWx1WjMwcElEb2dTVkpsYm1SbGNtVmtUR2x1WlhNZ2UxeHVJQ0JqYjI1emRDQnNhVzVsY3pvZ1NVeHBibVZiWFNBOUlHNWxkeUJCY25KaGVTaHVNUzVzWlc1bmRHZ3BMbVpwYkd3b2JuVnNiQ2s3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2diakV1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0J1ZFcweElEMGdiakZiYVYwN1hHNGdJQ0FnWTI5dWMzUWdiblZ0TWlBOUlHNHlXMmxkTzF4dUlDQWdJR3hwYm1WelcybGRJRDBnS0h0cFpEb2dhU3dnYlc5c2N6b2dXMjUxYlRFc0lHNTFiVEpkTENCelpXeGxZM1JsWkRvZ1ptRnNjMlVzSUdFNklGdGRMQ0JpT2lCYlhYMHBPMXh1SUNCOVhHNGdJR052Ym5OMElHeHBibVZ6UkdZZ1BTQkVSeTVFWVhSaFJuSmhiV1V1WTNKbFlYUmxLR3hwYm1WekxteGxibWQwYUNrN1hHNGdJRzF2YkVOdmJIVnRiazVoYldWekxtWnZja1ZoWTJnb0tHbDBMQ0JwWkhncElEMCtJSHRjYmlBZ0lDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzVTNSeWFXNW5LR2wwS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITmxjUzVuWlhRb2JHbHVaWE5iYVYwdWJXOXNjMXRwWkhoZEtTazdYRzRnSUNBZ2MyVjBWR0ZuY3loc2FXNWxjMFJtTG1OdmJDaHBkQ2toTENCMFlXZHpLVHRjYmlBZ0lDQnNhVzVsYzBSbUxtTnZiQ2hwZENraExuTmxiVlI1Y0dVZ1BTQnpaVzFVZVhCbE8xeHVJQ0I5S1Z4dUlDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzUm14dllYUW9KMkZqZEY5a2FXWm1KeWxjYmlBZ0lDQXVhVzVwZENnb2FUb2diblZ0WW1WeUtTQTlQaUJOWVhSb0xtRmljeWhoWTNScGRtbDBhV1Z6TG1kbGRDaHNhVzVsYzF0cFhTNXRiMnh6V3pCZEtTQXRJR0ZqZEdsMmFYUnBaWE11WjJWMEtHeHBibVZ6VzJsZExtMXZiSE5iTVYwcEtTazdYRzRnSUd4cGJtVnpSR1l1WTI5c2RXMXVjeTVoWkdST1pYZEpiblFvSjJ4cGJtVmZhVzVrWlhnbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJR2twTzF4dUlDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzUm14dllYUW9KM05oYkdrbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJSE5oYkdsV1lXeHpXMmxkS1R0Y2JpQWdiR2x1WlhORVppNWpiMngxYlc1ekxtRmtaRTVsZDBac2IyRjBLQ2R6YVcwbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJSE5wYlZaaGJITmJhVjBwTzF4dUlDQnlaWFIxY200Z2UyeHBibVZ6TENCc2FXNWxjMFJtZlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYzJWMFZHRm5jeWhqYjJ3NklFUkhMa052YkhWdGJpd2dkR0ZuY3pvZ2UxdHBibVJsZURvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuZlNrZ2UxeHVJQ0JQWW1wbFkzUXVhMlY1Y3loMFlXZHpLUzVtYjNKRllXTm9LSFJoWnlBOVBpQjdYRzRnSUNBZ1kyOXNMblJoWjNOYmRHRm5YU0E5SUhSaFozTmJkR0ZuWFR0Y2JpQWdmU2xjYm4xY2JseHVaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRHbGxjMDFoY21sNEtGeHVJQ0FnSUdScGJUb2diblZ0WW1WeUxDQmNiaUFnSUNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z1hHNGdJQ0FnWkdaVFpYRTZJRVJITGtSaGRHRkdjbUZ0WlN3Z1hHNGdJQ0FnYzJsdFFYSnlPaUJFUnk1RGIyeDFiVzViWFN4Y2JpQWdJQ0J6YVcxR2RXNWpPaUFvWTI5c09pQkVSeTVEYjJ4MWJXNHNJRzF2YkRvZ2MzUnlhVzVuS1NBOVBpQlFjbTl0YVhObFBFUkhMa052YkhWdGJpQjhJRzUxYkd3K1hHNGdJQ0FnS1Z4dUlDQTZJRkJ5YjIxcGMyVThSRWN1UTI5c2RXMXVXMTArSUh0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dJVDBnWkdsdElDMGdNVHNnS3l0cEtTQjdYRzRnSUNBZ1kyOXVjM1FnYlc5c0lEMGdjMlZ4UTI5c0xtZGxkQ2hwS1R0Y2JpQWdJQ0JrWmxObGNTNXliM2R6TG5KbGJXOTJaVUYwS0RBc0lERXNJR1poYkhObEtUdGNiaUFnSUNCemFXMUJjbkpiYVYwZ1BTQW9ZWGRoYVhRZ2MybHRSblZ1WXloa1psTmxjUzVqYjJ3b0ozTmxjU2NwSVN3Z2JXOXNLU2toTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ6YVcxQmNuSTdYRzU5WEc1Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRk5wYldsc1lYSnBkR2xsYzBaeWIyMUVhWE4wWVc1alpYTW9aR2x0T2lCdWRXMWlaWElzSUdScGMzUmhibU5sY3pvZ1RXRjBjbWw0TENCemFXMUJjbkk2SUVSSExrTnZiSFZ0Ymx0ZEtWeHVJQ0E2SUVSSExrTnZiSFZ0Ymx0ZElIdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCa2FXMGdMU0F4T3lBcksya3BJSHRjYmlBZ0lDQmpiMjV6ZENCemFXMXBiR0Z5YVhSNVFYSnlJRDBnYm1WM0lFRnljbUY1S0dScGJTQXRJR2tnTFNBeEtTNW1hV3hzS0RBcE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQnBJQ3NnTVRzZ2FpQThJR1JwYlRzZ0t5dHFLU0I3WEc0Z0lDQWdJQ0J6YVcxcGJHRnlhWFI1UVhKeVcyb2dMU0JwSUMwZ01WMGdQU0JuWlhSVGFXMXBiR0Z5YVhSNVJuSnZiVVJwYzNSaGJtTmxLR1JwYzNSaGJtTmxjMXRwWFZ0cVhTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhOcGJVRnljbHRwWFNBOUlFUkhMa052YkhWdGJpNW1jbTl0Um14dllYUXpNa0Z5Y21GNUtDZHphVzFwYkdGeWFYUjVKeXdnUm14dllYUXpNa0Z5Y21GNUxtWnliMjBvYzJsdGFXeGhjbWwwZVVGeWNpa3BPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnphVzFCY25JN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoWkdSRGJHbG1abk5DYjI5c1pXRnVRMjlzS0dSbU9pQkVSeTVFWVhSaFJuSmhiV1VzSUdsa2N6b2dVMlYwUEc1MWJXSmxjajRwT2lCemRISnBibWNnZTF4dUlDQmpiMjV6ZENCamIyeHVZVzFsSUQwZ0oyTnZiblJoYVc1elEyeHBabVluTzF4dUlDQmpiMjV6ZENCamIyeE9ZVzFsU1c1a0lEMGdaR1l1WTI5c2RXMXVjeTV1WVcxbGN5Z3BMbVpwYkhSbGNpZ29hWFE2SUhOMGNtbHVaeWtnUFQ0Z2FYUXVhVzVqYkhWa1pYTW9ZMjlzYm1GdFpTa3BMbXhsYm1kMGFDQXJJREU3WEc0Z0lHTnZibk4wSUc1bGQwTnZiRTVoYldVZ1BTQmdKSHRqYjJ4dVlXMWxmVjhrZTJOdmJFNWhiV1ZKYm1SOVlEdGNiaUFnWkdZdVkyOXNkVzF1Y3k1aFpHUk9aWGRDYjI5c0tHNWxkME52YkU1aGJXVXBMbWx1YVhRb0tHa3BJRDArSUdsa2N5NW9ZWE1vYVNrcE8xeHVJQ0J5WlhSMWNtNGdibVYzUTI5c1RtRnRaVHRjYm4xY2JseHVJbDE5IiwiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlcihkYXRhTWV0cmljLCBtZXRob2QsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2RpbWVuc2lvbmFsaXR5LXJlZHVjZXInLCBpbXBvcnQubWV0YS51cmwpKTtcbiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGNvbHVtbkRhdGE6IGRhdGFNZXRyaWMuZGF0YSxcbiAgICAgICAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgICAgICAgbWVhc3VyZTogZGF0YU1ldHJpYy5tZXRyaWMsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZGlzdGFuY2UsIGVtYmVkZGluZyB9IH0pID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoeyBkaXN0YW5jZTogZGlzdGFuY2UsIGVtYmVkZGluZzogZW1iZWRkaW5nIH0pO1xuICAgICAgICB9O1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdOcGJtY3RkMjl5YTJWeUxXTnlaV0YwYjNJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUprYVcxbGJuTnBiMjVoYkdsMGVTMXlaV1IxWTJsdVp5MTNiM0pyWlhJdFkzSmxZWFJ2Y2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRnBRa0VzVFVGQlRTeFZRVUZWTEdsRFFVRnBReXhEUVVGRExGVkJRWE5DTEVWQlFVVXNUVUZCWXl4RlFVTnNSaXhQUVVGaE8wbEJSV3BDTEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1ZVRkJVeXhQUVVGUE8xRkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETERCQ1FVRXdRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOb1JpeE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUTJwQ0xGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNTVUZCU1R0WlFVTXpRaXhOUVVGTkxFVkJRVVVzVFVGQlRUdFpRVU5rTEU5QlFVOHNSVUZCUlN4VlFVRlZMRU5CUVVNc1RVRkJUVHRaUVVNeFFpeFBRVUZQTEVWQlFVVXNUMEZCVHp0VFFVTnFRaXhEUVVGRExFTkJRVU03VVVGRFNDeE5RVUZOTEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1JVRkJReXhKUVVGSkxFVkJRVVVzUlVGQlF5eFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRk8xbEJRM0JFTEU5QlFVOHNRMEZCUXl4RlFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZOQlFWTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1FzUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dUV0YwY21sNElIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRXWVd4cFpGUjVjR1Z6ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYmx4dUx5b3FYRzRnS2lCQklIZHZjbXRsY2lCMGJ5QndaWEptYjNKdElHUnBiV1Z1YzJsdmJtRnNhWFI1SUhKbFpIVmpkR2x2Ymk1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFaaGJHbGtWSGx3WlhOOUlHUmhkR0ZOWlhSeWFXTWdWR2hsSUdSaGRHRWdkRzhnY0hKdlkyVnpjeTVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdFpYUm9iMlFnUVNCdFpYUm9iMlFnYjJZZ1pHbHRaVzV6YVc5dVlXeHBkSGtnY21Wa2RXTjBhVzl1TGx4dUlDb2dRSEJoY21GdElHOXdkR2x2Ym5NZ0xTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25OY2JpQXFJRUJ3WVhKaGJTQnlaWFIxY201RWFYTjBZVzVqWlUxaGRISnBlRnh1SUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4SlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRK2ZTQlNaWE4xYkhScGJtY2daVzFpWldSa2FXNW5JR0Z1WkNCa2FYTjBZVzVqWlNCdFlYUnlhWGd1WEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTVkpsWkhWalpVUnBiV1Z1YzJsdmJtRnNhWFI1VW1WemRXeDBJSHRjYmlBZ1pHbHpkR0Z1WTJVNklFMWhkSEpwZUR0Y2JpQWdaVzFpWldSa2FXNW5PaUJOWVhSeWFYZzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZFYVcxbGJuTnBibUZzYVhSNVVtVmtkV05wYm1kWGIzSnJaWElvWkdGMFlVMWxkSEpwWXpvZ1ZtRnNhV1JVZVhCbGN5d2diV1YwYUc5a09pQnpkSEpwYm1jc1hHNGdJQ0FnSUNCdmNIUnBiMjV6UHpvZ1lXNTVLVG9nVUhKdmJXbHpaVHhKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFErSUh0Y2JseHVJQ0J5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWm5WdVkzUnBiMjRvY21WemIyeDJaU2tnZTF4dUlDQWdJR052Ym5OMElIZHZjbXRsY2lBOUlHNWxkeUJYYjNKclpYSW9ibVYzSUZWU1RDZ25MaTlrYVcxbGJuTnBiMjVoYkdsMGVTMXlaV1IxWTJWeUp5d2dhVzF3YjNKMExtMWxkR0V1ZFhKc0tTazdYRzRnSUNBZ2QyOXlhMlZ5TG5CdmMzUk5aWE56WVdkbEtIdGNiaUFnSUNBZ0lHTnZiSFZ0YmtSaGRHRTZJR1JoZEdGTlpYUnlhV011WkdGMFlTeGNiaUFnSUNBZ0lHMWxkR2h2WkRvZ2JXVjBhRzlrTEZ4dUlDQWdJQ0FnYldWaGMzVnlaVG9nWkdGMFlVMWxkSEpwWXk1dFpYUnlhV01zWEc0Z0lDQWdJQ0J2Y0hScGIyNXpPaUJ2Y0hScGIyNXpMRnh1SUNBZ0lIMHBPMXh1SUNBZ0lIZHZjbXRsY2k1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGthWE4wWVc1alpTd2daVzFpWldSa2FXNW5mWDBwSUQwK0lIdGNiaUFnSUNBZ2NtVnpiMngyWlNoN1pHbHpkR0Z1WTJVNklHUnBjM1JoYm1ObExDQmxiV0psWkdScGJtYzZJR1Z0WW1Wa1pHbHVaMzBwTzF4dUlDQWdJSDA3WEc0Z0lIMHBPMXh1ZlZ4dUlsMTkiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgc2hhMjU2IGZyb20gJ2Zhc3Qtc2hhMjU2Jztcbi8qKlxuICogRm9yIGNvbHVtbnMgb2Ygc3RyaW5nIHR5cGUuIENoZWNrcyB3aGV0aGVyIGNvbHVtbiBjb250YWlucyBlbXB0eSB2YWx1ZXMgYW5kIHJlbW92ZXMgY29ycmVzcG9uZGluZyByb3dzIGluIGNhc2UgdXNlciBzZWxlY3RzIHRvIHJlbW92ZS5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbXB0eVN0cmluZ1Jvd3ModGFibGUsIGNvbCkge1xuICAgIGNvbnN0IGNhdHMgPSBjb2wuY2F0ZWdvcmllcztcbiAgICBjb25zdCBlbXB0eVJhd0luZCA9IGNhdHMubWFwKCh2YWwsIGluZCkgPT4gIXZhbCA/IGluZCA6IG51bGwpLmZpbHRlcigoaXQpID0+IGl0ICE9PSBudWxsKTtcbiAgICBjb25zdCByYXdEYXRhID0gWy4uLmNvbC5nZXRSYXdEYXRhKCldO1xuICAgIGNvbnN0IGVtcHR5UmF3c0luZGV4ZXMgPSBbXTtcbiAgICBsZXQgcmVtb3ZlZFJvd3NDb3VudGVyID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlLnJvd0NvdW50OyBpKyspIHtcbiAgICAgICAgaWYgKGVtcHR5UmF3SW5kLmluY2x1ZGVzKHJhd0RhdGFbaV0pKSB7XG4gICAgICAgICAgICB0YWJsZS5yb3dzLnJlbW92ZUF0KGkgLSByZW1vdmVkUm93c0NvdW50ZXIpO1xuICAgICAgICAgICAgZW1wdHlSYXdzSW5kZXhlcy5wdXNoKGkpO1xuICAgICAgICAgICAgcmVtb3ZlZFJvd3NDb3VudGVyICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVtcHR5UmF3c0luZGV4ZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFzaERhdGFGcmFtZSh0YWJsZSwgbmFtZXMpIHtcbiAgICBuYW1lcyAhPT0gbnVsbCAmJiBuYW1lcyAhPT0gdm9pZCAwID8gbmFtZXMgOiAobmFtZXMgPSB0YWJsZS5jb2x1bW5zLm5hbWVzKCkpO1xuICAgIGNvbnN0IGhhc2hlciA9IG5ldyBzaGEyNTYuSGFzaCgpO1xuICAgIGNvbnN0IG9yZGVyID0gdGFibGUuZ2V0U29ydGVkT3JkZXIobmFtZXMpO1xuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuY29sdW1ucy5ieU5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IGRhdGFBcnJheSA9IGNvbHVtbi5nZXRSYXdEYXRhKCk7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uLnR5cGUgPT0gREcuVFlQRS5TVFJJTkc7XG4gICAgICAgIGNvbnN0IGNhdHMgPSBjb2x1bW4uY2F0ZWdvcmllcztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpc1N0cmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjYXRzW2RhdGFBcnJheVtvcmRlcltpXV1dO1xuICAgICAgICAgICAgICAgIGhhc2hlci51cGRhdGUoZW5jb2Rlci5lbmNvZGUoZGF0YSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFBcnJheVtvcmRlcltpXV07XG4gICAgICAgICAgICAgICAgaGFzaGVyLnVwZGF0ZShVaW50OEFycmF5LmZyb20oW2RhdGFdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc2hlci5kaWdlc3QoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHRjBZV1p5WVcxbExYVjBhV3h6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2laR0YwWVdaeVlXMWxMWFYwYVd4ekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhMUVVGTExFMUJRVTBzVFVGQlRTeGhRVUZoTEVOQlFVTTdRVUZEZEVNN096dEhRVWRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMSEZDUVVGeFFpeERRVUZETEV0QlFXMUNMRVZCUVVVc1IwRkJZenRKUVVOMlJTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wbEJRelZDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXhSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGRFTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZETlVJc1NVRkJTU3hyUWtGQmEwSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRNMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRka01zU1VGQlNTeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzFsQlEzQkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eERRVUZETzFsQlF6VkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlFpeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGVrSTdTMEZEUmp0SlFVTkVMRTlCUVU4c1owSkJRV2RDTEVOQlFVTTdRVUZETVVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGhRVUZoTEVOQlFVTXNTMEZCYlVJc1JVRkJSU3hMUVVGblFqdEpRVU5xUlN4TFFVRkxMR0ZCUVV3c1MwRkJTeXhqUVVGTUxFdEJRVXNzU1VGQlRDeExRVUZMTEVkQlFVc3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlF6dEpRVU5vUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVTnFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRekZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRkxFTkJRVU03U1VGRGJFTXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hMUVVGTExFVkJRVVU3VVVGRGVFSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xRkJRM1JETEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMME1zVFVGQlRTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVNdlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONlF5eEpRVUZKTEZGQlFWRXNSVUZCUlR0blFrRkRXaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzSkRPMmxDUVVGTk8yZENRVU5NTEUxQlFVMHNTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRha01zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRE8xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wRkJRM3BDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUNvZ1lYTWdjMmhoTWpVMklHWnliMjBnSjJaaGMzUXRjMmhoTWpVMkp6dGNiaThxS2x4dUlDb2dSbTl5SUdOdmJIVnRibk1nYjJZZ2MzUnlhVzVuSUhSNWNHVXVJRU5vWldOcmN5QjNhR1YwYUdWeUlHTnZiSFZ0YmlCamIyNTBZV2x1Y3lCbGJYQjBlU0IyWVd4MVpYTWdZVzVrSUhKbGJXOTJaWE1nWTI5eWNtVnpjRzl1WkdsdVp5QnliM2R6SUdsdUlHTmhjMlVnZFhObGNpQnpaV3hsWTNSeklIUnZJSEpsYlc5MlpTNWNiaUFxWEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnlaVzF2ZG1WRmJYQjBlVk4wY21sdVoxSnZkM01vZEdGaWJHVTZJRVJITGtSaGRHRkdjbUZ0WlN3Z1kyOXNPaUJFUnk1RGIyeDFiVzRwT2lCdWRXMWlaWEpiWFNCN1hHNGdJR052Ym5OMElHTmhkSE1nUFNCamIyd3VZMkYwWldkdmNtbGxjenRjYmlBZ1kyOXVjM1FnWlcxd2RIbFNZWGRKYm1RZ1BTQmpZWFJ6TG0xaGNDZ29kbUZzTENCcGJtUXBJRDArSUNGMllXd2dQeUJwYm1RZ09pQnVkV3hzS1M1bWFXeDBaWElvS0dsMEtTQTlQaUJwZENBaFBUMGdiblZzYkNrN1hHNGdJR052Ym5OMElISmhkMFJoZEdFZ1BTQmJMaTR1WTI5c0xtZGxkRkpoZDBSaGRHRW9LVjA3WEc0Z0lHTnZibk4wSUdWdGNIUjVVbUYzYzBsdVpHVjRaWE1nUFNCYlhUdGNiaUFnYkdWMElISmxiVzkyWldSU2IzZHpRMjkxYm5SbGNpQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkR0ZpYkdVdWNtOTNRMjkxYm5RN0lHa3JLeWtnZTF4dUlDQWdJR2xtSUNobGJYQjBlVkpoZDBsdVpDNXBibU5zZFdSbGN5aHlZWGRFWVhSaFcybGRLU2tnZTF4dUlDQWdJQ0FnZEdGaWJHVXVjbTkzY3k1eVpXMXZkbVZCZENocElDMGdjbVZ0YjNabFpGSnZkM05EYjNWdWRHVnlLVHRjYmlBZ0lDQWdJR1Z0Y0hSNVVtRjNjMGx1WkdWNFpYTXVjSFZ6YUNocEtUdGNiaUFnSUNBZ0lISmxiVzkyWldSU2IzZHpRMjkxYm5SbGNpQXJQU0F4TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaVzF3ZEhsU1lYZHpTVzVrWlhobGN6dGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGMyaEVZWFJoUm5KaGJXVW9kR0ZpYkdVNklFUkhMa1JoZEdGR2NtRnRaU3dnYm1GdFpYTS9PaUJ6ZEhKcGJtZGJYU2s2SUZWcGJuUTRRWEp5WVhrZ2UxeHVJQ0J1WVcxbGN5QS9QejBnZEdGaWJHVXVZMjlzZFcxdWN5NXVZVzFsY3lncE8xeHVJQ0JqYjI1emRDQm9ZWE5vWlhJZ1BTQnVaWGNnYzJoaE1qVTJMa2hoYzJnb0tUdGNiaUFnWTI5dWMzUWdiM0prWlhJZ1BTQjBZV0pzWlM1blpYUlRiM0owWldSUGNtUmxjaWh1WVcxbGN5azdYRzRnSUdOdmJuTjBJR1Z1WTI5a1pYSWdQU0J1WlhjZ1ZHVjRkRVZ1WTI5a1pYSW9LVHRjYmlBZ1ptOXlJQ2hqYjI1emRDQnVZVzFsSUc5bUlHNWhiV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzZFcxdUlEMGdkR0ZpYkdVdVkyOXNkVzF1Y3k1aWVVNWhiV1VvYm1GdFpTazdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlVRnljbUY1SUQwZ1kyOXNkVzF1TG1kbGRGSmhkMFJoZEdFb0tUdGNiaUFnSUNCamIyNXpkQ0JwYzFOMGNtbHVaeUE5SUdOdmJIVnRiaTUwZVhCbElEMDlJRVJITGxSWlVFVXVVMVJTU1U1SE8xeHVJQ0FnSUdOdmJuTjBJR05oZEhNZ1BTQmpiMngxYlc0dVkyRjBaV2R2Y21sbGN6dGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUmhkR0ZCY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHbHpVM1J5YVc1bktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCallYUnpXMlJoZEdGQmNuSmhlVnR2Y21SbGNsdHBYVjFkTzF4dUlDQWdJQ0FnSUNCb1lYTm9aWEl1ZFhCa1lYUmxLR1Z1WTI5a1pYSXVaVzVqYjJSbEtHUmhkR0VwS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQmtZWFJoUVhKeVlYbGJiM0prWlhKYmFWMWRPMXh1SUNBZ0lDQWdJQ0JvWVhOb1pYSXVkWEJrWVhSbEtGVnBiblE0UVhKeVlYa3Vabkp2YlNoYlpHRjBZVjBwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJR2hoYzJobGNpNWthV2RsYzNRb0tUdGNibjFjYmlKZGZRPT0iLCIvKipcbiAqIEdlbmVyYXRlcyBzaW5nbGUgcmFuZG9tIGZsb2F0IGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGZsb2F0IGdlbmVyYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUZsb2F0KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiByYW5nZTtcbn1cbi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gaW50ZWdlciBmcm9tIDAgdG8gcmFuZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHJhbmdlIE1heCBnZW5lcmF0aW5nIHZhbHVlLlxuICogQHJldHVybiB7bnVtYmVyfSBBIHJhbmRvbSBpbnRlZ2VyIGdlbmVyYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUludChyYW5nZSkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZsb2F0KHJhbmdlKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljbUZ1Wkc5dExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpY21GdVpHOXRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4WFFVRlhMRU5CUVVNc1MwRkJZVHRKUVVOMlF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGREwwSXNRMEZCUXp0QlFVVkVPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeFRRVUZUTEVOQlFVTXNTMEZCWVR0SlFVTnlReXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnWm14dllYUWdabkp2YlNBd0lIUnZJSEpoYm1kbExseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnlZVzVuWlNCTllYZ2daMlZ1WlhKaGRHbHVaeUIyWVd4MVpTNWNiaUFxSUVCeVpYUjFjbTRnZTI1MWJXSmxjbjBnUVNCeVlXNWtiMjBnWm14dllYUWdaMlZ1WlhKaGRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtRnVaRzl0Um14dllYUW9jbUZ1WjJVNklHNTFiV0psY2lrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ2NtRnVaMlU3WEc1OVhHNWNiaThxS2x4dUlDb2dSMlZ1WlhKaGRHVnpJSE5wYm1kc1pTQnlZVzVrYjIwZ2FXNTBaV2RsY2lCbWNtOXRJREFnZEc4Z2NtRnVaMlV1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhKaGJtZGxJRTFoZUNCblpXNWxjbUYwYVc1bklIWmhiSFZsTGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkJJSEpoYm1SdmJTQnBiblJsWjJWeUlHZGxibVZ5WVhSbFpDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKaGJtUnZiVWx1ZENoeVlXNW5aVG9nYm5WdFltVnlLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUUxaGRHZ3VabXh2YjNJb2NtRnVaRzl0Um14dllYUW9jbUZ1WjJVcEtUdGNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyByYW5kb21JbnQgfSBmcm9tICcuL3JhbmRvbSc7XG5leHBvcnQgY29uc3Qgc2ltaWxhcml0eU1ldHJpYyA9IHtcbiAgICAnVGFuaW1vdG8nOiB0YW5pbW90b1NpbWlsYXJpdHksXG4gICAgJ0RpY2UnOiBkaWNlU2ltaWxhcml0eSxcbiAgICAnQXN5bW1ldHJpYyc6IGFzeW1tZXRyaWNTaW1pbGFyaXR5LFxuICAgICdCcmF1bi1CbGFucXVldCc6IGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5LFxuICAgICdDb3NpbmUnOiBjb3NpbmVTaW1pbGFyaXR5LFxuICAgICdLdWxjenluc2tpJzoga3VsY3p5bnNraVNpbWlsYXJpdHksXG4gICAgJ01jLUNvbm5hdWdoZXknOiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5LFxuICAgICdSb2dvdC1Hb2xkYmVyZyc6IHJvZ290R29sZGJlcmdTaW1pbGFyaXR5LFxuICAgICdSdXNzZWwnOiBydXNzZWxTaW1pbGFyaXR5LFxuICAgICdTb2thbCc6IHNva2FsU2ltaWxhcml0eSxcbiAgICAnSGFtbWluZyc6IGhhbW1pbmdTaW1pbGFyaXR5LFxuICAgICdFdWNsaWRlYW4nOiBldWNsaWRlYW5TaW1pbGFyaXR5LFxufTtcbmV4cG9ydCBjb25zdCBkaXN0YW5jZU1ldHJpY3MgPSB7XG4gICAgJ1Rhbmltb3RvJzogdGFuaW1vdG9EaXN0YW5jZSxcbiAgICAnRGljZSc6IGRpY2VEaXN0YW5jZSxcbiAgICAnQXN5bW1ldHJpYyc6IGFzeW1tZXRyaWNEaXN0YW5jZSxcbiAgICAnQnJhdW4tQmxhbnF1ZXQnOiBicmF1bkJsYW5xdWV0RGlzdGFuY2UsXG4gICAgJ0Nvc2luZSc6IGNvc2luZURpc3RhbmNlLFxuICAgICdLdWxjenluc2tpJzoga3VsY3p5bnNraURpc3RhbmNlLFxuICAgICdNYy1Db25uYXVnaGV5JzogbWNDb25uYXVnaGV5RGlzdGFuY2UsXG4gICAgJ1JvZ290LUdvbGRiZXJnJzogcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlLFxuICAgICdSdXNzZWwnOiBydXNzZWxEaXN0YW5jZSxcbiAgICAnU29rYWwnOiBzb2thbERpc3RhbmNlLFxuICAgICdIYW1taW5nJzogaGFtbWluZ0Rpc3RhbmNlLFxuICAgICdFdWNsaWRlYW4nOiBldWNsaWRlYW5EaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1MgPSBbJ1Rhbmltb3RvJywgJ0RpY2UnLCAnQ29zaW5lJywgJ0hhbW1pbmcnLCAnRXVjbGlkZWFuJ107XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKHRvdGFsIC0gY29tbW9uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eSh0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gMiAqIGNvbW1vbiAvIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoZGljZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBNYXRoLnNxcnQodG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShjb3NpbmVTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXVjbGlkZWFuRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBNYXRoLnNxcnQoeC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCkgLSAyICogeC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoaGFtbWluZ0Rpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKDIgKiB0b3RhbCAtIDMgKiBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNva2FsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHNva2FsU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24ga3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsKSAvICgyICogdG90YWxQcm9kKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGt1bGN6eW5za2lTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IHRvdGFsUHJvZCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbFByb2QgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIChjb21tb24gKiB0b3RhbCAtIHRvdGFsUHJvZCkgLyB0b3RhbFByb2Q7XG59XG5leHBvcnQgZnVuY3Rpb24gbWNDb25uYXVnaGV5RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbih4LnRydWVDb3VudCgpLCB5LnRydWVDb3VudCgpKTtcbiAgICBpZiAobWluID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBtaW47XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShhc3ltbWV0cmljU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtYXggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1heDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBydXNzZWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBpZiAoeC5sZW5ndGggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIHgubGVuZ3RoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShydXNzZWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIGNvbnN0IHRvdGFsID0geC5jb3VudEJpdHModHJ1ZSkgKyB5LmNvdW50Qml0cyh0cnVlKTtcbiAgICBjb25zdCBsZW4gPSB4Lmxlbmd0aDtcbiAgICBjb25zdCBkaWZmID0gbGVuIC0gdG90YWwgKyBjb21tb247XG4gICAgaWYgKChjb21tb24gPT0gbGVuKSB8fCAoZGlmZiA9PSBsZW4pKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGNvbW1vbiAvIHRvdGFsICsgZGlmZiAvICgyICogbGVuIC0gdG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkocm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2UpIHtcbiAgICByZXR1cm4gMSAvICgxICsgZGlzdGFuY2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc2ltaWxhcml0eSkge1xuICAgIHJldHVybiAxIC8gc2ltaWxhcml0eSAtIDE7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGl2ZXJzZVN1YnNldChsZW5ndGgsIG4sIGRpc3QpIHtcbiAgICBmdW5jdGlvbiBtYXhCeSh2YWx1ZXMsIG9yZGVyQnkpIHtcbiAgICAgICAgbGV0IG1heFZhbHVlID0gbnVsbDtcbiAgICAgICAgbGV0IG1heE9yZGVyQnkgPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50T3JkZXJCeSA9IG9yZGVyQnkoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAobWF4T3JkZXJCeSA9PSBudWxsIHx8IGVsZW1lbnRPcmRlckJ5ID4gbWF4T3JkZXJCeSkge1xuICAgICAgICAgICAgICAgIG1heFZhbHVlID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBtYXhPcmRlckJ5ID0gZWxlbWVudE9yZGVyQnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1heFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBzdWJzZXQgPSBbcmFuZG9tSW50KGxlbmd0aCAtIDEpXTtcbiAgICBjb25zdCBjb21wbGVtZW50ID0gbmV3IFNldCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKCFzdWJzZXQuaW5jbHVkZXMoaSkpXG4gICAgICAgICAgICBjb21wbGVtZW50LmFkZChpKTtcbiAgICB9XG4gICAgd2hpbGUgKHN1YnNldC5sZW5ndGggPCBuKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IG1heEJ5KGNvbXBsZW1lbnQudmFsdWVzKCksIChpKSA9PiBNYXRoLm1pbi5hcHBseShNYXRoLCBzdWJzZXQubWFwKGZ1bmN0aW9uICh2YWwsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZGlzdChpLCB2YWwpO1xuICAgICAgICB9KSkpO1xuICAgICAgICBpZiAoaWR4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMmx0YVd4aGNtbDBlUzF0WlhSeWFXTnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMybHRhV3hoY21sMGVTMXRaWFJ5YVdOekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCUXl4VFFVRlRMRVZCUVVNc1RVRkJUU3hWUVVGVkxFTkJRVU03UVVGRmJrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1owSkJRV2RDTEVkQlFUSkVPMGxCUTNSR0xGVkJRVlVzUlVGQlJTeHJRa0ZCYTBJN1NVRkRPVUlzVFVGQlRTeEZRVUZGTEdOQlFXTTdTVUZEZEVJc1dVRkJXU3hGUVVGRkxHOUNRVUZ2UWp0SlFVTnNReXhuUWtGQlowSXNSVUZCUlN4MVFrRkJkVUk3U1VGRGVrTXNVVUZCVVN4RlFVRkZMR2RDUVVGblFqdEpRVU14UWl4WlFVRlpMRVZCUVVVc2IwSkJRVzlDTzBsQlEyeERMR1ZCUVdVc1JVRkJSU3h6UWtGQmMwSTdTVUZEZGtNc1owSkJRV2RDTEVWQlFVVXNkVUpCUVhWQ08wbEJRM3BETEZGQlFWRXNSVUZCUlN4blFrRkJaMEk3U1VGRE1VSXNUMEZCVHl4RlFVRkZMR1ZCUVdVN1NVRkRlRUlzVTBGQlV5eEZRVUZGTEdsQ1FVRnBRanRKUVVNMVFpeFhRVUZYTEVWQlFVVXNiVUpCUVcxQ08wTkJRMnBETEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1RVRkJUU3hsUVVGbExFZEJRVEpFTzBsQlEzSkdMRlZCUVZVc1JVRkJSU3huUWtGQlowSTdTVUZETlVJc1RVRkJUU3hGUVVGRkxGbEJRVms3U1VGRGNFSXNXVUZCV1N4RlFVRkZMR3RDUVVGclFqdEpRVU5vUXl4blFrRkJaMElzUlVGQlJTeHhRa0ZCY1VJN1NVRkRka01zVVVGQlVTeEZRVUZGTEdOQlFXTTdTVUZEZUVJc1dVRkJXU3hGUVVGRkxHdENRVUZyUWp0SlFVTm9ReXhsUVVGbExFVkJRVVVzYjBKQlFXOUNPMGxCUTNKRExHZENRVUZuUWl4RlFVRkZMSEZDUVVGeFFqdEpRVU4yUXl4UlFVRlJMRVZCUVVVc1kwRkJZenRKUVVONFFpeFBRVUZQTEVWQlFVVXNZVUZCWVR0SlFVTjBRaXhUUVVGVExFVkJRVVVzWlVGQlpUdEpRVU14UWl4WFFVRlhMRVZCUVVVc2FVSkJRV2xDTzBOQlF5OUNMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhEUVVGRExGVkJRVlVzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEJRVVU1Uml4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETzFGQlExb3NUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzVFVGQlRTeEhRVUZITEVOQlFVTXNTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRMjVETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRka1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnlSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU03VVVGRFdpeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTTFRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEZsQlFWa3NRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOdVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNaRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1NVRkJTU3hMUVVGTExFbEJRVWtzUTBGQlF6dFJRVU5hTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMjVETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1kwRkJZeXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzSkVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMFFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTXhSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2FVSkJRV2xDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGRExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNSaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdsQ1FVRnBRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzaEVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWlVGQlpTeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNSRUxFOUJRVThzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVTXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOMlJTeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR1ZCUVdVc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU4wUkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRelZETEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR0ZCUVdFc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU53UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU14UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRek5FTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTm9SQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETzFGQlEyaENMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpWRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZWtRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpkRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU5vUkN4SlFVRkpMRk5CUVZNc1NVRkJTU3hEUVVGRE8xRkJRMmhDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03UVVGRGJFUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h2UWtGQmIwSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNelJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYjBKQlFXOUNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE0wUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEYmtRc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5XTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZEZEVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHJRa0ZCYTBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU42UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZET1VRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTldMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4eFFrRkJjVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTTFSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhGTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRka1FzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNN1VVRkRaaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU16UWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnlSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5FTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNFUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU55UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFZEJRVWNzUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXp0SlFVTnNReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF6dFJRVUZGTEU5QlFVOHNSMEZCUnl4RFFVRkRPenRSUVVNMVF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4TFFVRkxMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSEZDUVVGeFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpWRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3g1UWtGQmVVSXNRMEZCUXl4UlFVRm5RanRKUVVONFJDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0zUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIbENRVUY1UWl4RFFVRkRMRlZCUVd0Q08wbEJRekZFTEU5QlFVOHNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRE5VSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4TlFVRmpMRVZCUVVVc1EwRkJVeXhGUVVGRkxFbEJRWGRETzBsQlEyeEhMRk5CUVZNc1MwRkJTeXhEUVVGRExFMUJRV2RETEVWQlFVVXNUMEZCT0VJN1VVRkROMFVzU1VGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNCQ0xFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjBRaXhMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEUxQlFVMHNSVUZCUlR0WlFVTTFRaXhOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRlRU1zU1VGQlNTeFZRVUZWTEVsQlFVa3NTVUZCU1N4SlFVRkpMR05CUVdNc1IwRkJSeXhWUVVGVkxFVkJRVVU3WjBKQlEzSkVMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU03WjBKQlEyNUNMRlZCUVZVc1IwRkJSeXhqUVVGakxFTkJRVU03WVVGRE4wSTdVMEZEUmp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSVGRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGNrSTdTVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEzaENMRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGRFppeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRTRRaXhGUVVNdlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlV5eEhRVUZITEVWQlFVVXNTMEZCU3p0WlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFBc1NVRkJTU3hIUVVGSExFbEJRVWtzU1VGQlNTeEZRVUZGTzFsQlEyWXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFOQlEzaENPMHRCUTBZN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRUpwZEVGeWNtRjVJR1p5YjIwZ0p5NHZZbWwwTFdGeWNtRjVKenRjYm1sdGNHOXlkQ0I3Y21GdVpHOXRTVzUwZlNCbWNtOXRJQ2N1TDNKaGJtUnZiU2M3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUI3VzI1aGJXVTZJSE4wY21sdVoxMDZJQ2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BJRDArSUc1MWJXSmxjbjBnUFNCN1hHNGdJQ2RVWVc1cGJXOTBieWM2SUhSaGJtbHRiM1J2VTJsdGFXeGhjbWwwZVN4Y2JpQWdKMFJwWTJVbk9pQmthV05sVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMEZ6ZVcxdFpYUnlhV01uT2lCaGMzbHRiV1YwY21salUybHRhV3hoY21sMGVTeGNiaUFnSjBKeVlYVnVMVUpzWVc1eGRXVjBKem9nWW5KaGRXNUNiR0Z1Y1hWbGRGTnBiV2xzWVhKcGRIa3NYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZUYVcxcGJHRnlhWFI1TEZ4dUlDQW5TM1ZzWTNwNWJuTnJhU2M2SUd0MWJHTjZlVzV6YTJsVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuVFdNdFEyOXVibUYxWjJobGVTYzZJRzFqUTI5dWJtRjFaMmhsZVZOcGJXbHNZWEpwZEhrc1hHNGdJQ2RTYjJkdmRDMUhiMnhrWW1WeVp5YzZJSEp2WjI5MFIyOXNaR0psY21kVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuVW5WemMyVnNKem9nY25WemMyVnNVMmx0YVd4aGNtbDBlU3hjYmlBZ0oxTnZhMkZzSnpvZ2MyOXJZV3hUYVcxcGJHRnlhWFI1TEZ4dUlDQW5TR0Z0YldsdVp5YzZJR2hoYlcxcGJtZFRhVzFwYkdGeWFYUjVMRnh1SUNBblJYVmpiR2xrWldGdUp6b2daWFZqYkdsa1pXRnVVMmx0YVd4aGNtbDBlU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2FYTjBZVzVqWlUxbGRISnBZM002SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2tnUFQ0Z2JuVnRZbVZ5ZlNBOUlIdGNiaUFnSjFSaGJtbHRiM1J2SnpvZ2RHRnVhVzF2ZEc5RWFYTjBZVzVqWlN4Y2JpQWdKMFJwWTJVbk9pQmthV05sUkdsemRHRnVZMlVzWEc0Z0lDZEJjM2x0YldWMGNtbGpKem9nWVhONWJXMWxkSEpwWTBScGMzUmhibU5sTEZ4dUlDQW5RbkpoZFc0dFFteGhibkYxWlhRbk9pQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVzWEc0Z0lDZERiM05wYm1Vbk9pQmpiM05wYm1WRWFYTjBZVzVqWlN4Y2JpQWdKMHQxYkdONmVXNXphMmtuT2lCcmRXeGplbmx1YzJ0cFJHbHpkR0Z1WTJVc1hHNGdJQ2ROWXkxRGIyNXVZWFZuYUdWNUp6b2diV05EYjI1dVlYVm5hR1Y1UkdsemRHRnVZMlVzWEc0Z0lDZFNiMmR2ZEMxSGIyeGtZbVZ5WnljNklISnZaMjkwUjI5c1pHSmxjbWRFYVhOMFlXNWpaU3hjYmlBZ0oxSjFjM05sYkNjNklISjFjM05sYkVScGMzUmhibU5sTEZ4dUlDQW5VMjlyWVd3bk9pQnpiMnRoYkVScGMzUmhibU5sTEZ4dUlDQW5TR0Z0YldsdVp5YzZJR2hoYlcxcGJtZEVhWE4wWVc1alpTeGNiaUFnSjBWMVkyeHBaR1ZoYmljNklHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObExGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRU5JUlUxZlUwbE5TVXhCVWtsVVdWOU5SVlJTU1VOVElEMGdXeWRVWVc1cGJXOTBieWNzSUNkRWFXTmxKeXdnSjBOdmMybHVaU2NzSUNkSVlXMXRhVzVuSnl3Z0owVjFZMnhwWkdWaGJpZGRPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEdGdWFXMXZkRzlUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR2xtSUNoMGIzUmhiQ0E5UFNBd0tWeHVJQ0FnSUhKbGRIVnliaUF4TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2gwYjNSaGJDQXRJR052YlcxdmJpazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMFlXNXBiVzkwYjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0hSaGJtbHRiM1J2VTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV05sVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLeUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3dnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUF5SUNvZ1kyOXRiVzl1SUM4Z2RHOTBZV3c3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV05sUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWkdsalpWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTI5emFXNWxVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5Qk5ZWFJvTG5OeGNuUW9kRzkwWVd3cE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTI5emFXNWxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZFdOc2FXUmxZVzVUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUlRhVzFwYkdGeWFYUjVSbkp2YlVScGMzUmhibU5sS0dWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5OeGNuUW9lQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2tnTFNBeUtuZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb1lXMXRhVzVuVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBVMmx0YVd4aGNtbDBlVVp5YjIxRWFYTjBZVzVqWlNob1lXMXRhVzVuUkdsemRHRnVZMlVvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FHRnRiV2x1WjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCNExuUnlkV1ZEYjNWdWRDZ3BJQ3NnZVM1MGNuVmxRMjkxYm5Rb0tTQXRJRElxZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdOdmJuTjBJR052YlcxdmJpQTlJSGd1WVc1a1YybDBhRU52ZFc1MFFtbDBjeWg1TENCMGNuVmxLVHRjYmlBZ2NtVjBkWEp1SUdOdmJXMXZiaUF2SUNneUlDb2dkRzkwWVd3Z0xTQXpJQ29nWTI5dGJXOXVLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlITnZhMkZzUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvYzI5cllXeFRhVzFwYkdGeWFYUjVLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUd0MWJHTjZlVzV6YTJsVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdOdmJuTjBJSFJ2ZEdGc1VISnZaQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLaUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3hRY205a0lEMDlJREFwWEc0Z0lDQWdjbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z0tHTnZiVzF2YmlBcUlIUnZkR0ZzS1NBdklDZ3lJQ29nZEc5MFlXeFFjbTlrS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxFYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2hyZFd4amVubHVjMnRwVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZME52Ym01aGRXZG9aWGxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBYRzRnSUNBZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnS0dOdmJXMXZiaUFxSUhSdmRHRnNJQzBnZEc5MFlXeFFjbTlrS1NBdklIUnZkR0ZzVUhKdlpEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxalEyOXVibUYxWjJobGVVUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTjViVzFsZEhKcFkxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdiV2x1SUQwZ1RXRjBhQzV0YVc0b2VDNTBjblZsUTI5MWJuUW9LU3dnZVM1MGNuVmxRMjkxYm5Rb0tTazdYRzRnSUdsbUlDaHRhVzRnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJ0YVc0N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzNsdGJXVjBjbWxqUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXRjRJRDBnVFdGMGFDNXRZWGdvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodFlYZ2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QnRZWGc3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWW5KaGRXNUNiR0Z1Y1hWbGRGTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY25WemMyVnNVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCcFppQW9lQzVzWlc1bmRHZ2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QjRMbXhsYm1kMGFEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKMWMzTmxiRVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSEoxYzNObGJGTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1WTI5MWJuUkNhWFJ6S0hSeWRXVXBJQ3NnZVM1amIzVnVkRUpwZEhNb2RISjFaU2s3WEc0Z0lHTnZibk4wSUd4bGJpQTlJSGd1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JrYVdabUlEMGdiR1Z1SUMwZ2RHOTBZV3dnS3lCamIyMXRiMjQ3WEc0Z0lHbG1JQ2dvWTI5dGJXOXVJRDA5SUd4bGJpa2dmSHdnS0dScFptWWdQVDBnYkdWdUtTa2djbVYwZFhKdUlERXVNRHRjYmlBZ1pXeHpaU0J5WlhSMWNtNGdZMjl0Ylc5dUlDOGdkRzkwWVd3Z0t5QmthV1ptSUM4Z0tESWdLaUJzWlc0Z0xTQjBiM1JoYkNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5YjJkdmRFZHZiR1JpWlhKblJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb2NtOW5iM1JIYjJ4a1ltVnlaMU5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVMmx0YVd4aGNtbDBlVVp5YjIxRWFYTjBZVzVqWlNoa2FYTjBZVzVqWlRvZ2JuVnRZbVZ5S1NCN1hHNGdJSEpsZEhWeWJpQXhJQzhnS0NBeElDc2daR2x6ZEdGdVkyVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoemFXMXBiR0Z5YVhSNU9pQnVkVzFpWlhJcElIdGNiaUFnY21WMGRYSnVJREVnTHlCemFXMXBiR0Z5YVhSNUlDMGdNVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRVJwZG1WeWMyVlRkV0p6WlhRb2JHVnVaM1JvT2lCdWRXMWlaWElzSUc0NklHNTFiV0psY2l3Z1pHbHpkRG9nS0dreE9pQnVkVzFpWlhJc0lHa3lPaUJ1ZFcxaVpYSXBJRDArSUc1MWJXSmxjaWtnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0SUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhOMVluTmxkQzV3ZFhOb0tHbGtlQ2s3WEc0Z0lDQWdJQ0JqYjIxd2JHVnRaVzUwTG1SbGJHVjBaU2hwWkhncE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnYzNWaWMyVjBPMXh1ZlZ4dUlsMTkiLCIvKipcbiAqIERlbm90ZXMgYSB2ZWN0b3Igb2YgZmxvYXRpbmcgcG9pdCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvclxuICogQGV4dGVuZHMge0Zsb2F0MzJBcnJheX1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvciBleHRlbmRzIEZsb2F0MzJBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgYSB0d28tZGltZW5zaW9uYWwgbWF0cml4LlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBNYXRyaXhcbiAqIEBleHRlbmRzIHtBcnJheTxWZWN0b3I+fVxuICovXG5leHBvcnQgY2xhc3MgTWF0cml4IGV4dGVuZHMgQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGNhcnRlc2lhbiBjb29yZGluYXRlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29vcmRpbmF0ZXNcbiAqIEBleHRlbmRzIHtNYXRyaXh9XG4gKi9cbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlcyBleHRlbmRzIE1hdHJpeCB7XG59XG4vKipcbiAqIERlbm90ZXMgYW4gYXJyYXkgb2YgYXJiaXRyYXJ5LXR5cGVkIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvcnNcbiAqIEBleHRlbmRzIHtBcnJheTxhbnk+fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9ycyBleHRlbmRzIEFycmF5IHtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaUzFrWldOc1lYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbExXUmxZMnhoY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxGbEJRVms3UTBGQlJ6dEJRVVV6UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEV0QlFXRTdRMEZCUnp0QlFVVTFRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNWMEZCV1N4VFFVRlJMRTFCUVUwN1EwRkJSenRCUVVVeFF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1QwRkJVU3hUUVVGUkxFdEJRVlU3UTBGQlJ5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFpsWTNSdmNpQnZaaUJtYkc5aGRHbHVaeUJ3YjJsMElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFZMnhoYzNNZ1ZtVmpkRzl5WEc0Z0tpQkFaWGgwWlc1a2N5QjdSbXh2WVhRek1rRnljbUY1ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZtVmpkRzl5SUdWNGRHVnVaSE1nUm14dllYUXpNa0Z5Y21GNUlIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0J0WVhSeWFYZ3VYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRTFoZEhKcGVGeHVJQ29nUUdWNGRHVnVaSE1nZTBGeWNtRjVQRlpsWTNSdmNqNTlYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWVhSeWFYZ2daWGgwWlc1a2N5QkJjbkpoZVR4V1pXTjBiM0krSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmpZWEowWlhOcFlXNGdZMjl2Y21ScGJtRjBaWE11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUVOdmIzSmthVzVoZEdWelhHNGdLaUJBWlhoMFpXNWtjeUI3VFdGMGNtbDRmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUTI5dmNtUnBibUYwWlhNZ1pYaDBaVzVrY3lCTllYUnlhWGdnZTMxY2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRnVJR0Z5Y21GNUlHOW1JR0Z5WW1sMGNtRnllUzEwZVhCbFpDQjJaV04wYjNKekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJqYkdGemN5QldaV04wYjNKelhHNGdLaUJBWlhoMFpXNWtjeUI3UVhKeVlYazhZVzU1UG4xY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWmxZM1J2Y25NZ1pYaDBaVzVrY3lCQmNuSmhlVHhoYm5rK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUdScFkzUnBiMjVoY25rZ1kyOXVkR0ZwYm1sdVp5Qm1kVzVqZEdsdmJpQnZjSFJwYjI1ekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUIwZVhCbElFOXdkR2x2Ym5OY2JpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1QzQjBhVzl1Y3lBOUlIdGJibUZ0WlRvZ2MzUnlhVzVuWFRvZ1lXNTVmVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdOMWMzUnZiU0JrYVhOMFlXNWpaU0J0WlhSeWFXTWdZbVYwZDJWbGJpQjBhR1VnZEhkdklHZHBkbVZ1SUhabFkzUnZjbk11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIUjVjR1VnUkdsemRHRnVZMlZOWlhSeWFXTmNiaUFxSUVCd1lYSmhiU0I3WVc1NWZTQjJNU0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJSFl5SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5TGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkVhWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aWE5sSUhSM2J5QjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQkVhWE4wWVc1alpVMWxkSEpwWXlBOUlDaDJNVG9nWVc1NUxDQjJNam9nWVc1NUtTQTlQaUFvYm5WdFltVnlLVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdFZ2MybHRjR3hsSUhOMGNtbHVaeUIwYnlCemRISnBibWNnWkdsamRHbHZibUZ5ZVM1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFkSGx3WlNCVGRISnBibWRFYVdOMGFXOXVZWEo1WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mVHRjYmlKZGZRPT0iLCJpbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHJhbmRvbUZsb2F0LCByYW5kb21JbnQgfSBmcm9tICcuL3JhbmRvbSc7XG4vKipcbiAqIEFzc2VydHMgYSBjb25kaXRpb24gYnkgdGhyb3dpbmcgYW4gRXJyb3IuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtib29sZWFufSBbY29uZGl0aW9uPWZhbHNlXSBDb25kaXRpb24gdG8gYXNzZXJ0LlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlPSdBc3NlcnRpb24gZXJyb3IuJ10gTWVzc2FnZSB0byBvdXRwdXQuXG4gKiBAdGhyb3dzIHtFcnJvcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24gPSBmYWxzZSwgbWVzc2FnZSA9ICdBc3NlcnRpb24gZXJyb3IuJykge1xuICAgIGlmICghY29uZGl0aW9uKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG59XG4vKipcbiAqIENyZWF0ZXMgbmV3IHR3by1kaW1lbnNpb25hbCBhcnJheSBhbmQgZmlsbHMgaXQgd2l0aCB0aGUgdmFsdWUgZ2l2ZW4uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgY29vcmRpbmF0ZXMgKG51bWJlciBvZiByb3dzKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24yIFRoZSBzZWNvbmQgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIGNvbHVtbnMpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsPTBdIEEgdmFsdWUgdG8gZmlsbCB0aGUgY29vcmRpbmF0ZXMgd2l0aC5cbiAqIEByZXR1cm4ge0Nvb3JkaW5hdGVzfSBBIHR3by1kaW1lbnNpb25hbCBmaWxsZWQgd2l0aCB0aGUgdmFsdWUgZ2l2ZW4uXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZnVuY3Rpb24gaW5pdENvb3JkaW5hdGVzKGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIGZpbGwgPSAwKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShkaW1lbnNpb24xKS5maWxsKGZpbGwpLm1hcCgoKSA9PiAobmV3IFZlY3RvcihkaW1lbnNpb24yKS5maWxsKGZpbGwpKSk7XG59XG4vKipcbiAqIFRyYW5zcG9zZSBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtNYXRyaXh9IG1hdHJpeCBUaGUgbWF0cml4IHRvIGJlIHRyYW5zcG9zZWQuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IFRyYW5zcG9zZWQgbWF0cml4LlxuICogQHRvZG8gTWlnaHQgYmUgc2xvdyBzaW5jZSB1c2VkIEFycmF5Lm1hcC4gUHJvYmFibHkgbmVlZHMgcGVyZm9ybWFuY2UgcmV2aXNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc3Bvc2VNYXRyaXgobWF0cml4KSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShtYXRyaXhbMF0ubGVuZ3RoKS5maWxsKDApXG4gICAgICAgIC5tYXAoKF8sIGkpID0+IChuZXcgVmVjdG9yKG1hdHJpeC5sZW5ndGgpLmZpbGwoMCkubWFwKChfLCBqKSA9PiAobWF0cml4W2pdW2ldKSkpKTtcbn1cbi8qKlxuICogQWRkcyB0d28gdmVjdG9ycyB3aXRoIHRoZSBzZWNvbmQgb25lIHRvIGJlIG11bHRpcGxpZWQgYnkgdGhlIGdpdmVuIHJhdGlvLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yfSBwIFRoZSBmaXJzdCB2ZWN0b3IgdG8gYWRkLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IgdG8gYWRkLlxuICogQHBhcmFtIHtudW1iZXJ9IFttdWx0aXBsaWVyPTFdIEEgbXVsdGlwbGllciB0byBiZSB1c2VkIGJlZm9yZSB0aGUgc2Vjb25kIHZlY3RvciBpcyBhZGRlZC5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gTmV3IHZlY3RvciBjb250YWluZWQgdGhlIHJlc3VsdCBvZiBvcGVyYXRpb24gcCttdWx0aXBsaWVyKnEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JBZGQocCwgcSwgbXVsdGlwbGllciA9IDEpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBwLmxlbmd0aDtcbiAgICBhc3NlcnQobkl0ZW1zID09IHEubGVuZ3RoLCAnVmVjdG9yIGxlbmd0aHMgZG8gbm90IG1hdGNoLicpO1xuICAgIGNvbnN0IHRvdGFsID0gbmV3IFZlY3RvcihuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcC5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWxbaV0gPSBwW2ldICsgbXVsdGlwbGllciAqIHFbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdW1zIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIGJlIHN1bW1lZC5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHZlY3RvcidzIGl0ZW1zIHN1bS5cbiAqL1xuZnVuY3Rpb24gaXRlbXNTdW0odikge1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbCArPSB2W2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbi8qKlxuICogU3VxYXJlcyB0aGUgdmVjdG9yJ3MgaXRlbXMuXG4gKlxuICogQHBhcmFtIHtWZWN0b3J9IHYgVGhlIHZlY3RvciB0byBzcXVhcmUuXG4gKiBAcmV0dXJuIHtWZWN0b3J9IEEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBvcmlnaW5hbCdzIGl0ZW1zIHNxdWFyZWQuXG4gKi9cbmZ1bmN0aW9uIHZlY3RvclNxdWFyZSh2KSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gdi5sZW5ndGg7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHZbaV0gKiB2W2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JMZW5ndGgodikge1xuICAgIGxldCBzcXJTdW0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKylcbiAgICAgICAgc3FyU3VtICs9IHZbaV0gKiB2W2ldO1xuICAgIHJldHVybiBNYXRoLnNxcnQoc3FyU3VtKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JEb3RQcm9kdWN0KHYxLCB2Mikge1xuICAgIGlmICh2MS5sZW5ndGggIT0gdjIubGVuZ3RoKVxuICAgICAgICB0aHJvdyBFcnJvcignVGhlIGRpbWVuc2lvbmFsaXR5IG9mIHRoZSB2ZWN0b3JzIG11c3QgbWF0Y2gnKTtcbiAgICBsZXQgcHJvZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2MS5sZW5ndGg7IGkrKylcbiAgICAgICAgcHJvZCArPSB2MVtpXSAqIHYyW2ldO1xuICAgIHJldHVybiBwcm9kO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbWF0cml4IGZpbGxlZCB3aXRoIHJhbmRvbSBmbG9hdGluZyBwb2ludCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIG1hdHJpeC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2NhbGU9MS5dIE1heCB2YWx1ZSBnaXZlbiBieSByYW5kb20gZ2VuZXJhdG9yLlxuICogQHJldHVybiB7TWF0cml4fSBBIG5ldyBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50ICB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxsUmFuZG9tTWF0cml4KGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIHNjYWxlID0gMS4pIHtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW1lbnNpb24xOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkaW1lbnNpb24yOyArK2opXG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSByYW5kb21GbG9hdChzY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKipcbiAqIENhbGN1bGF0ZXMgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3Rvci5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yLlxuICogQHJldHVybiB7bnVtYmVyfSBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gdmVjdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlKHAsIHEpIHtcbiAgICBjb25zdCBkaWZmID0gdmVjdG9yQWRkKHAsIHEsIC0xKTtcbiAgICBjb25zdCBzcWRpZmYgPSB2ZWN0b3JTcXVhcmUoZGlmZik7XG4gICAgY29uc3Qgc3FkaWZmU3VtbSA9IGl0ZW1zU3VtKHNxZGlmZik7XG4gICAgcmV0dXJuIE1hdGguc3FydChzcWRpZmZTdW1tKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIGRpc3RhbmNlIG1hdHJpeCB1c2luZyBhIGN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3RvcnN9IGRhdGEgSW5wdXQgdmVjdG9ycyB0byBjYWxjdWxhdGUgZGlzdGFuY2VzLlxuICogQHBhcmFtIHtEaXN0YW5jZU1ldHJpY30gZGlzdGFuY2UgQ3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICogQHJldHVybiB7TWF0cml4fSBDYWxjdWxhdGVkIGN1c3RvbSBkaXN0YW5jZSBtYXRyaXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjRGlzdGFuY2VNYXRyaXgoZGF0YSwgZGlzdGFuY2UpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMobkl0ZW1zLCBuSXRlbXMsIDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbkl0ZW1zOyArK2opIHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSAoZGF0YVtpXSA9PSBudWxsKSB8fCAoZGF0YVtqXSA9PSBudWxsKSA/IDAgOiBkaXN0YW5jZShkYXRhW2ldLCBkYXRhW2pdKTtcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IG1hdHJpeFtqXVtpXSA9IGQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKiBHZW5lcmF0ZXMgYXJyYXkgZnJvbSBhIHJhbmdlIFtiZWdpbjsgZW5kXSBvciBbYmVnaW47IGVuZCkgaWYgZW5kRXhjbHVzaXZlLiAqKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5SYW5nZShiZWdpbiwgZW5kLCBlbmRFeGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGVuZCAtIGJlZ2luICsgKGVuZEV4Y2x1c2l2ZSA/IDAgOiAxKTtcbiAgICBjb25zdCBzZXJpZXMgPSBuZXcgSW50MzJBcnJheShuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpXG4gICAgICAgIHNlcmllc1tpXSA9IGJlZ2luICsgaTtcbiAgICByZXR1cm4gc2VyaWVzO1xufVxuLyoqXG4gKiBSZXR1cm5zIG9yZGVyIG9mIHZhbHVlcyBhcyBpZiB0aGV5IGFyZSBzb3J0ZWQuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVzIElucHV0IGFycmF5LlxuICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZT1mYWxzZV0gV2hldGhlciB0byByZXR1cm4gcmV2ZXJzZWQgb3JkZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gVGhlIG9yZGVyIGNvbXB1dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJnU29ydCh2YWx1ZXMsIHJldmVyc2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHNvcnRmbiA9IHJldmVyc2UgPyAoYSwgYikgPT4gKGJbMF0gLSBhWzBdKSA6IChhLCBiKSA9PiAoYVswXSAtIGJbMF0pO1xuICAgIGNvbnN0IGRlY29yID0gKHYsIGkpID0+IFt2LCBpXTsgLy8gc2V0IGluZGV4IHRvIHZhbHVlXG4gICAgY29uc3QgdW5kZWNvciA9IChhKSA9PiBhWzFdOyAvLyBsZWF2ZSBvbmx5IGluZGV4XG4gICAgY29uc3QgX2FyZ3NvcnQgPSAoYXJyKSA9PiBhcnIubWFwKGRlY29yKS5zb3J0KHNvcnRmbikubWFwKHVuZGVjb3IpO1xuICAgIHJldHVybiBfYXJnc29ydCh2YWx1ZXMpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbmRleGVzIG9mIHRoZSBtb3N0IGRpdmVyc2Ugb2JqZWN0cyBhY2NvcmRpbmcgdG8gdGhlIGRpc3QgZnVuY3Rpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggdG90YWwgbnVtYmVyIG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIG51bWJlciBvZiBkaXZlcnNlIGVsZW1lbnRzIHRvIGZpbmRcbiAqIEBwYXJhbSB7KGkxOiBudW1iZXIsIGkyOiBudW1iZXIpID0+IG51bWJlcn0gZGlzdCBhIGZ1bmN0aW9uIHdoaWNoIGNhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3byBvYmplY3RzIHVzaW5nIHRoZWlyIGluZGV4ZXNcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gVGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHgpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vKipcbiAqIFJldHVybnMgbm9ybWFsaXplZCB2ZWN0b3JcbiAqIEBwYXJhbSB7VmVjdG9yfSBkYXRhIG51bWVyaWNhbCBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKGRhdGEpIHtcbiAgICBsZXQgbWVhbiA9IDA7XG4gICAgbGV0IHN0ZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBtZWFuICs9IGRhdGFbaV07XG4gICAgbWVhbiAvPSBkYXRhLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIHN0ZCArPSAoZGF0YVtpXSAtIG1lYW4pICogKGRhdGFbaV0gLSBtZWFuKTtcbiAgICBzdGQgPSBNYXRoLnNxcnQoc3RkIC8gZGF0YS5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgZGF0YVtpXSA9IChkYXRhW2ldIC0gbWVhbikgLyBzdGQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIEZpbmRzIHNldCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGxpc3RzLlxuICogQHBhcmFtIHthbnlbXX0gYSBUaGUgZmlyc3QgbGlzdC5cbiAqIEBwYXJhbSB7YW55W119IGIgVGhlIHNlY29uZCBsaXN0LlxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmZXJlbmNlKGEsIGIpIHtcbiAgICBjb25zdCBiU2V0ID0gbmV3IFNldChiKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGEuZmlsdGVyKCh4KSA9PiAhYlNldC5oYXMoeCkpKS52YWx1ZXMoKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVk1zVFVGQlRTeEZRVUYxUXl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlEzcEdMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzVTBGQlV5eEZRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUldoRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1RVRkJUU3hEUVVGRExGbEJRWEZDTEV0QlFVc3NSVUZCUlN4VlFVRnJRaXhyUWtGQmEwSTdTVUZEY2tZc1NVRkJTU3hEUVVGRExGTkJRVk03VVVGRFdpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRDTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEZOQlFWTXNaVUZCWlN4RFFVRkRMRlZCUVd0Q0xFVkJRVVVzVlVGQmEwSXNSVUZCUlN4UFFVRmxMRU5CUVVNN1NVRkRMMFVzVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hsUVVGbExFTkJRVU1zVFVGQll6dEpRVU0xUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzWkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNSR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFRRVUZUTEVOQlFVTXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hoUVVGeFFpeERRVUZETzBsQlEzQkZMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGZUVJc1RVRkJUU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdTVUZGTTBRc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZha01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWMFF5eFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MRU5CUVVNN1FVRkZSRHM3T3pzN1IwRkxSenRCUVVOSUxGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFWTTdTVUZEZWtJc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJXUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmFFSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRE8wRkJSVVE3T3pzN08wZEJTMGM3UVVGRFNDeFRRVUZUTEZsQlFWa3NRMEZCUXl4RFFVRlRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSWHBDTEU5QlFVOHNTMEZCU3l4RFFVRkRPMEZCUTJZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlFVTXNRMEZCVXp0SlFVTndReXhKUVVGSkxFMUJRVTBzUjBGQlZ5eERRVUZETEVOQlFVTTdTVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlZ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFGQlEzWkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRVZCUVZVc1JVRkJSU3hGUVVGVk8wbEJRM0pFTEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRUdFJRVU40UWl4TlFVRk5MRXRCUVVzc1EwRkJReXc0UTBGQk9FTXNRMEZCUXl4RFFVRkRPMGxCUXpsRUxFbEJRVWtzU1VGQlNTeEhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZEZUVNc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVFSXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRE8wRkJSVVE3T3pzN096czdPMGRCVVVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1ZVRkJhMElzUlVGQlJTeFZRVUZyUWl4RlFVRkZMRkZCUVdkQ0xFVkJRVVU3U1VGRGVrWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hEUVVGRExGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVVjJSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFGQlEyNURMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRMnBETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRja003U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3d3UWtGQk1FSXNRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVenRKUVVNM1JDeE5RVUZOTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOc1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGNFTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlF5OUNMRU5CUVVNN1FVRkZSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR3RDUVVGclFpeERRVUZETEVsQlFXRXNSVUZCUlN4UlFVRjNRanRKUVVONFJTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUld4RUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZETDBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYmtNc1RVRkJUU3hEUVVGRExFZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14Uml4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTnFRenRMUVVOR08wbEJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc1EwRkJRenRCUVVWRUxHdEdRVUZyUmp0QlFVTnNSaXhOUVVGTkxGVkJRVlVzVVVGQlVTeERRVUZETEV0QlFXRXNSVUZCUlN4SFFVRlhMRVZCUVVVc1dVRkJXU3hIUVVGSExFdEJRVXM3U1VGRGRrVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTndSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVWMFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVWNFFpeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hQUVVGUExFTkJRVU1zVFVGQllTeEZRVUZGTEU5QlFVOHNSMEZCUnl4TFFVRkxPMGxCUTNCRUxFMUJRVTBzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGUkxFVkJRVVVzUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUnl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNjVUpCUVhGQ08wbEJRMnhGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSTdTVUZEZGtRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eEhRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXhSU3hQUVVGUExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4TlFVRmpMRVZCUVVVc1EwRkJVeXhGUVVGRkxFbEJRWGRETzBsQlEyeEhMRk5CUVZNc1MwRkJTeXhEUVVGRExFMUJRV2RETEVWQlFVVXNUMEZCT0VJN1VVRkROMFVzU1VGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNCQ0xFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjBRaXhMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEUxQlFVMHNSVUZCUlR0WlFVTTFRaXhOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRlRU1zU1VGQlNTeFZRVUZWTEVsQlFVa3NTVUZCU1N4SlFVRkpMR05CUVdNc1IwRkJSeXhWUVVGVkxFVkJRVVU3WjBKQlEzSkVMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU03WjBKQlEyNUNMRlZCUVZVc1IwRkJSeXhqUVVGakxFTkJRVU03WVVGRE4wSTdVMEZEUmp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSVGRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGNrSTdTVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEzaENMRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGRFppeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRTRRaXhGUVVNdlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlV5eEhRVUZITEVWQlFVVXNTMEZCU3p0WlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFBc1NVRkJTU3hIUVVGSExFVkJRVVU3V1VGRFVDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnBDTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRGVFSTdTMEZEUmp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTTdRVUZGUkRzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNVMEZCVXl4RFFVRkRMRWxCUVZrN1NVRkRjRU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJJc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJWb3NTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnhETEVsQlFVa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmJFSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRmNFSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnhETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVVTNReXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlJXNURMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU5zUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlJXNURMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMlFzUTBGQlF6dEJRVVZFT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR0ZCUVdFc1EwRkJReXhEUVVGUkxFVkJRVVVzUTBGQlVUdEpRVU01UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRRaXhQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzSkZMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UwMWhkSEpwZUN3Z1ZtVmpkRzl5TENCRGIyOXlaR2x1WVhSbGN5d2dWbVZqZEc5eWN5d2dSR2x6ZEdGdVkyVk5aWFJ5YVdOOUlHWnliMjBnSnk0dmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdHlZVzVrYjIxR2JHOWhkQ3dnY21GdVpHOXRTVzUwZlNCbWNtOXRJQ2N1TDNKaGJtUnZiU2M3WEc1Y2JpOHFLbHh1SUNvZ1FYTnpaWEowY3lCaElHTnZibVJwZEdsdmJpQmllU0IwYUhKdmQybHVaeUJoYmlCRmNuSnZjaTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0amIyNWthWFJwYjI0OVptRnNjMlZkSUVOdmJtUnBkR2x2YmlCMGJ5QmhjM05sY25RdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjFsYzNOaFoyVTlKMEZ6YzJWeWRHbHZiaUJsY25KdmNpNG5YU0JOWlhOellXZGxJSFJ2SUc5MWRIQjFkQzVjYmlBcUlFQjBhSEp2ZDNNZ2UwVnljbTl5ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE56WlhKMEtHTnZibVJwZEdsdmJqb2dZbTl2YkdWaGJpQTlJR1poYkhObExDQnRaWE56WVdkbE9pQnpkSEpwYm1jZ1BTQW5RWE56WlhKMGFXOXVJR1Z5Y205eUxpY3BJSHRjYmlBZ2FXWWdLQ0ZqYjI1a2FYUnBiMjRwWEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nYm1WM0lIUjNieTFrYVcxbGJuTnBiMjVoYkNCaGNuSmhlU0JoYm1RZ1ptbHNiSE1nYVhRZ2QybDBhQ0IwYUdVZ2RtRnNkV1VnWjJsMlpXNHVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHUnBiV1Z1YzJsdmJqRWdWR2hsSUdacGNuTjBJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdZMjl2Y21ScGJtRjBaWE1nS0c1MWJXSmxjaUJ2WmlCeWIzZHpLUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCa2FXMWxibk5wYjI0eUlGUm9aU0J6WldOdmJtUWdaR2x0Wlc1emFXOXVJRzltSUhSb1pTQmpiMjl5WkdsdVlYUmxjeUFvYm5WdFltVnlJRzltSUdOdmJIVnRibk1wTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdG1hV3hzUFRCZElFRWdkbUZzZFdVZ2RHOGdabWxzYkNCMGFHVWdZMjl2Y21ScGJtRjBaWE1nZDJsMGFDNWNiaUFxSUVCeVpYUjFjbTRnZTBOdmIzSmthVzVoZEdWemZTQkJJSFIzYnkxa2FXMWxibk5wYjI1aGJDQm1hV3hzWldRZ2QybDBhQ0IwYUdVZ2RtRnNkV1VnWjJsMlpXNHVYRzRnS2lCQWRHOWtieUJOYVdkb2RDQmlaU0J6Ykc5M0lITnBibU5sSUhWelpXUWdRWEp5WVhrdWJXRndMaUJRY205aVlXSnNlU0J1WldWa2N5QndaWEptYjNKdFlXNWpaU0J5WlhacGMybHZiaTVjYmlBcUwxeHVablZ1WTNScGIyNGdhVzVwZEVOdmIzSmthVzVoZEdWektHUnBiV1Z1YzJsdmJqRTZJRzUxYldKbGNpd2daR2x0Wlc1emFXOXVNam9nYm5WdFltVnlMQ0JtYVd4c09pQnVkVzFpWlhJZ1BTQXdLVG9nUTI5dmNtUnBibUYwWlhNZ2UxeHVJQ0J5WlhSMWNtNGdibVYzSUVGeWNtRjVLR1JwYldWdWMybHZiakVwTG1acGJHd29abWxzYkNrdWJXRndLQ2dwSUQwK0lDaHVaWGNnVm1WamRHOXlLR1JwYldWdWMybHZiaklwTG1acGJHd29abWxzYkNrcEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCVWNtRnVjM0J2YzJVZ2JXRjBjbWw0TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1RXRjBjbWw0ZlNCdFlYUnlhWGdnVkdobElHMWhkSEpwZUNCMGJ5QmlaU0IwY21GdWMzQnZjMlZrTGx4dUlDb2dRSEpsZEhWeWJpQjdUV0YwY21sNGZTQlVjbUZ1YzNCdmMyVmtJRzFoZEhKcGVDNWNiaUFxSUVCMGIyUnZJRTFwWjJoMElHSmxJSE5zYjNjZ2MybHVZMlVnZFhObFpDQkJjbkpoZVM1dFlYQXVJRkJ5YjJKaFlteDVJRzVsWldSeklIQmxjbVp2Y20xaGJtTmxJSEpsZG1semFXOXVMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RISmhibk53YjNObFRXRjBjbWw0S0cxaGRISnBlRG9nVFdGMGNtbDRLVG9nVFdGMGNtbDRJSHRjYmlBZ2NtVjBkWEp1SUc1bGR5QkJjbkpoZVNodFlYUnlhWGhiTUYwdWJHVnVaM1JvS1M1bWFXeHNLREFwWEc0Z0lDQWdMbTFoY0Nnb1h5d2dhU2tnUFQ0Z0tHNWxkeUJXWldOMGIzSW9iV0YwY21sNExteGxibWQwYUNrdVptbHNiQ2d3S1M1dFlYQW9LRjhzSUdvcElEMCtJQ2h0WVhSeWFYaGJhbDFiYVYwcEtTa3BPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFRmtaSE1nZEhkdklIWmxZM1J2Y25NZ2QybDBhQ0IwYUdVZ2MyVmpiMjVrSUc5dVpTQjBieUJpWlNCdGRXeDBhWEJzYVdWa0lHSjVJSFJvWlNCbmFYWmxiaUJ5WVhScGJ5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdjQ0JVYUdVZ1ptbHljM1FnZG1WamRHOXlJSFJ2SUdGa1pDNWNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0J4SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5SUhSdklHRmtaQzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmJYVnNkR2x3YkdsbGNqMHhYU0JCSUcxMWJIUnBjR3hwWlhJZ2RHOGdZbVVnZFhObFpDQmlaV1p2Y21VZ2RHaGxJSE5sWTI5dVpDQjJaV04wYjNJZ2FYTWdZV1JrWldRdVhHNGdLaUJBY21WMGRYSnVJSHRXWldOMGIzSjlJRTVsZHlCMlpXTjBiM0lnWTI5dWRHRnBibVZrSUhSb1pTQnlaWE4xYkhRZ2IyWWdiM0JsY21GMGFXOXVJSEFyYlhWc2RHbHdiR2xsY2lweExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZG1WamRHOXlRV1JrS0hBNklGWmxZM1J2Y2l3Z2NUb2dWbVZqZEc5eUxDQnRkV3gwYVhCc2FXVnlPaUJ1ZFcxaVpYSWdQU0F4S1RvZ1ZtVmpkRzl5SUh0Y2JpQWdZMjl1YzNRZ2JrbDBaVzF6SUQwZ2NDNXNaVzVuZEdnN1hHNWNiaUFnWVhOelpYSjBLRzVKZEdWdGN5QTlQU0J4TG14bGJtZDBhQ3dnSjFabFkzUnZjaUJzWlc1bmRHaHpJR1J2SUc1dmRDQnRZWFJqYUM0bktUdGNibHh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJRzVsZHlCV1pXTjBiM0lvYmtsMFpXMXpLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSEF1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnZEc5MFlXeGJhVjBnUFNCd1cybGRJQ3NnYlhWc2RHbHdiR2xsY2lBcUlIRmJhVjA3WEc1Y2JpQWdjbVYwZFhKdUlIUnZkR0ZzTzF4dWZWeHVYRzR2S2lwY2JpQXFJRk4xYlhNZ2RHaGxJSFpsWTNSdmNpZHpJR2wwWlcxekxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5ZlNCMklGUm9aU0IyWldOMGIzSWdkRzhnWW1VZ2MzVnRiV1ZrTGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQlVhR1VnZG1WamRHOXlKM01nYVhSbGJYTWdjM1Z0TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJwZEdWdGMxTjFiU2gyT2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnNaWFFnZEc5MFlXd2dQU0F3TzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZGk1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCMGIzUmhiQ0FyUFNCMlcybGRPMXh1WEc0Z0lISmxkSFZ5YmlCMGIzUmhiRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlRkWEZoY21WeklIUm9aU0IyWldOMGIzSW5jeUJwZEdWdGN5NWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2RpQlVhR1VnZG1WamRHOXlJSFJ2SUhOeGRXRnlaUzVjYmlBcUlFQnlaWFIxY200Z2UxWmxZM1J2Y24wZ1FTQnVaWGNnZG1WamRHOXlJR052Ym5SaGFXNXBibWNnZEdobElHOXlhV2RwYm1Gc0ozTWdhWFJsYlhNZ2MzRjFZWEpsWkM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnZG1WamRHOXlVM0YxWVhKbEtIWTZJRlpsWTNSdmNpazZJRlpsWTNSdmNpQjdYRzRnSUdOdmJuTjBJRzVKZEdWdGN5QTlJSFl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJRzVsZHlCV1pXTjBiM0lvYmtsMFpXMXpLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFl1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnZEc5MFlXeGJhVjBnUFNCMlcybGRJQ29nZGx0cFhUdGNibHh1SUNCeVpYUjFjbTRnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMlpXTjBiM0pNWlc1bmRHZ29kam9nVm1WamRHOXlLVG9nYm5WdFltVnlJSHRjYmlBZ2JHVjBJSE54Y2xOMWJUb2diblZ0WW1WeUlEMGdNRHRjYmlBZ1ptOXlJQ2hzWlhRZ2FUb2diblZ0WW1WeUlEMGdNRHNnYVNBOElIWXViR1Z1WjNSb095QnBLeXNwWEc0Z0lDQWdjM0Z5VTNWdElDczlJSFpiYVYwZ0tpQjJXMmxkTzF4dUlDQnlaWFIxY200Z1RXRjBhQzV6Y1hKMEtITnhjbE4xYlNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSkViM1JRY205a2RXTjBLSFl4T2lCV1pXTjBiM0lzSUhZeU9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JwWmlBb2RqRXViR1Z1WjNSb0lDRTlJSFl5TG14bGJtZDBhQ2xjYmlBZ0lDQjBhSEp2ZHlCRmNuSnZjaWduVkdobElHUnBiV1Z1YzJsdmJtRnNhWFI1SUc5bUlIUm9aU0IyWldOMGIzSnpJRzExYzNRZ2JXRjBZMmduS1R0Y2JpQWdiR1YwSUhCeWIyUTZJRzUxYldKbGNpQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHazZJRzUxYldKbGNpQTlJREE3SUdrZ1BDQjJNUzVzWlc1bmRHZzdJR2tyS3lsY2JpQWdJQ0J3Y205a0lDczlJSFl4VzJsZElDb2dkakpiYVYwN1hHNGdJSEpsZEhWeWJpQndjbTlrTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdZU0J0WVhSeWFYZ2dabWxzYkdWa0lIZHBkR2dnY21GdVpHOXRJR1pzYjJGMGFXNW5JSEJ2YVc1MElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1TQlVhR1VnWm1seWMzUWdaR2x0Wlc1emFXOXVJRzltSUhSb1pTQnRZWFJ5YVhndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNaUJVYUdVZ2MyVmpiMjVrSUdScGJXVnVjMmx2YmlCdlppQjBhR1VnYldGMGNtbDRMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0elkyRnNaVDB4TGwwZ1RXRjRJSFpoYkhWbElHZHBkbVZ1SUdKNUlISmhibVJ2YlNCblpXNWxjbUYwYjNJdVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRUVnYm1WM0lHMWhkSEpwZUNCbWFXeHNaV1FnZDJsMGFDQnlZVzVrYjIwZ1pteHZZWFJwYm1jZ2NHOXBiblFnSUhaaGJIVmxjeTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHWnBiR3hTWVc1a2IyMU5ZWFJ5YVhnb1pHbHRaVzV6YVc5dU1Ub2diblZ0WW1WeUxDQmthVzFsYm5OcGIyNHlPaUJ1ZFcxaVpYSXNJSE5qWVd4bE9pQnVkVzFpWlhJZ1BTQXhMaWs2SUUxaGRISnBlQ0I3WEc0Z0lHTnZibk4wSUcxaGRISnBlQ0E5SUdsdWFYUkRiMjl5WkdsdVlYUmxjeWhrYVcxbGJuTnBiMjR4TENCa2FXMWxibk5wYjI0eUtUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUnBiV1Z1YzJsdmJqRTdJQ3NyYVNrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z1pHbHRaVzV6YVc5dU1qc2dLeXRxS1Z4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdjbUZ1Wkc5dFJteHZZWFFvYzJOaGJHVXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnRZWFJ5YVhnN1hHNTlYRzVjYmk4cUtseHVJQ29nUTJGc1kzVnNZWFJsY3lCRmRXTnNhV1JsWVc0Z1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCMGQyOGdkbVZqZEc5eWN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdjQ0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0V1pXTjBiM0o5SUhFZ1ZHaGxJSE5sWTI5dVpDQjJaV04wYjNJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlJRVYxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlNCbmFYWmxiaUIyWldOMGIzSnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyRnNZM1ZzWVhSbFJYVmpiR2xrWldGdVJHbHpkR0Z1WTJVb2NEb2dWbVZqZEc5eUxDQnhPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0JrYVdabUlEMGdkbVZqZEc5eVFXUmtLSEFzSUhFc0lDMHhLVHRjYmlBZ1kyOXVjM1FnYzNGa2FXWm1JRDBnZG1WamRHOXlVM0YxWVhKbEtHUnBabVlwTzF4dUlDQmpiMjV6ZENCemNXUnBabVpUZFcxdElEMGdhWFJsYlhOVGRXMG9jM0ZrYVdabUtUdGNiaUFnY21WMGRYSnVJRTFoZEdndWMzRnlkQ2h6Y1dScFptWlRkVzF0S1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR0VnWkdsemRHRnVZMlVnYldGMGNtbDRJSFZ6YVc1bklHRWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHWjFibU4wYVc5dUxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWMzMGdaR0YwWVNCSmJuQjFkQ0IyWldOMGIzSnpJSFJ2SUdOaGJHTjFiR0YwWlNCa2FYTjBZVzVqWlhNdVhHNGdLaUJBY0dGeVlXMGdlMFJwYzNSaGJtTmxUV1YwY21samZTQmthWE4wWVc1alpTQkRkWE4wYjIwZ1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI0dVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRU5oYkdOMWJHRjBaV1FnWTNWemRHOXRJR1JwYzNSaGJtTmxJRzFoZEhKcGVDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOaGJHTkVhWE4wWVc1alpVMWhkSEpwZUNoa1lYUmhPaUJXWldOMGIzSnpMQ0JrYVhOMFlXNWpaVG9nUkdsemRHRnVZMlZOWlhSeWFXTXBPaUJOWVhSeWFYZ2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JrWVhSaExteGxibWQwYUR0Y2JpQWdZMjl1YzNRZ2JXRjBjbWw0SUQwZ2FXNXBkRU52YjNKa2FXNWhkR1Z6S0c1SmRHVnRjeXdnYmtsMFpXMXpMQ0F3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1SmRHVnRjenNnS3l0cEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmtsMFpXMXpPeUFySzJvcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdRNklHNTFiV0psY2lBOUlDaGtZWFJoVzJsZElEMDlJRzUxYkd3cElIeDhJQ2hrWVhSaFcycGRJRDA5SUc1MWJHd3BJRDhnTUNBNklHUnBjM1JoYm1ObEtHUmhkR0ZiYVYwc0lHUmhkR0ZiYWwwcE8xeHVJQ0FnSUNBZ2JXRjBjbWw0VzJsZFcycGRJRDBnYldGMGNtbDRXMnBkVzJsZElEMGdaRHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHMWhkSEpwZUR0Y2JuMWNibHh1THlvcUlFZGxibVZ5WVhSbGN5QmhjbkpoZVNCbWNtOXRJR0VnY21GdVoyVWdXMkpsWjJsdU95QmxibVJkSUc5eUlGdGlaV2RwYmpzZ1pXNWtLU0JwWmlCbGJtUkZlR05zZFhOcGRtVXVJQ29xTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGJsSmhibWRsS0dKbFoybHVPaUJ1ZFcxaVpYSXNJR1Z1WkRvZ2JuVnRZbVZ5TENCbGJtUkZlR05zZFhOcGRtVWdQU0JtWVd4elpTazZJRWx1ZERNeVFYSnlZWGtnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCbGJtUWdMU0JpWldkcGJpQXJJQ2hsYm1SRmVHTnNkWE5wZG1VZ1B5QXdJRG9nTVNrN1hHNGdJR052Ym5OMElITmxjbWxsY3lBOUlHNWxkeUJKYm5Rek1rRnljbUY1S0c1SmRHVnRjeWs3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1U1hSbGJYTTdJQ3NyYVNsY2JpQWdJQ0J6WlhKcFpYTmJhVjBnUFNCaVpXZHBiaUFySUdrN1hHNWNiaUFnY21WMGRYSnVJSE5sY21sbGN6dGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUc5eVpHVnlJRzltSUhaaGJIVmxjeUJoY3lCcFppQjBhR1Y1SUdGeVpTQnpiM0owWldRdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ2RtRnNkV1Z6SUVsdWNIVjBJR0Z5Y21GNUxseHVJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiY21WMlpYSnpaVDFtWVd4elpWMGdWMmhsZEdobGNpQjBieUJ5WlhSMWNtNGdjbVYyWlhKelpXUWdiM0prWlhJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSmJYWDBnVkdobElHOXlaR1Z5SUdOdmJYQjFkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWEpuVTI5eWRDaDJZV3gxWlhNNklHRnVlVnRkTENCeVpYWmxjbk5sSUQwZ1ptRnNjMlVwT2lCdWRXMWlaWEpiWFNCN1hHNGdJR052Ym5OMElITnZjblJtYmlBOUlISmxkbVZ5YzJVZ1B5QW9ZVG9nWVc1NVcxMHNJR0k2SUdGdWVWdGRLU0E5UGlBb1lsc3dYU0F0SUdGYk1GMHBJRG9nS0dFNklHRnVlVnRkTENCaU9pQmhibmxiWFNrZ1BUNGdLR0ZiTUYwZ0xTQmlXekJkS1R0Y2JpQWdZMjl1YzNRZ1pHVmpiM0lnUFNBb2Rqb2dZVzU1TENCcE9pQnVkVzFpWlhJcElEMCtJRnQyTENCcFhUc2dMeThnYzJWMElHbHVaR1Y0SUhSdklIWmhiSFZsWEc0Z0lHTnZibk4wSUhWdVpHVmpiM0lnUFNBb1lUb2dZVzU1VzEwcElEMCtJR0ZiTVYwN0lDOHZJR3hsWVhabElHOXViSGtnYVc1a1pYaGNiaUFnWTI5dWMzUWdYMkZ5WjNOdmNuUWdQU0FvWVhKeU9pQmhibmxiWFNrZ1BUNGdZWEp5TG0xaGNDaGtaV052Y2lrdWMyOXlkQ2h6YjNKMFptNHBMbTFoY0NoMWJtUmxZMjl5S1R0Y2JpQWdjbVYwZFhKdUlGOWhjbWR6YjNKMEtIWmhiSFZsY3lrN1hHNTlYRzVjYmk4cUtseHVJQ29nVW1WMGRYSnVjeUIwYUdVZ2FXNWtaWGhsY3lCdlppQjBhR1VnYlc5emRDQmthWFpsY25ObElHOWlhbVZqZEhNZ1lXTmpiM0prYVc1bklIUnZJSFJvWlNCa2FYTjBJR1oxYm1OMGFXOXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYkdWdVozUm9JSFJ2ZEdGc0lHNTFiV0psY2lCdlppQnZZbXBsWTNSelhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiaUJ1ZFcxaVpYSWdiMllnWkdsMlpYSnpaU0JsYkdWdFpXNTBjeUIwYnlCbWFXNWtYRzRnS2lCQWNHRnlZVzBnZXlocE1Ub2diblZ0WW1WeUxDQnBNam9nYm5WdFltVnlLU0E5UGlCdWRXMWlaWEo5SUdScGMzUWdZU0JtZFc1amRHbHZiaUIzYUdsamFDQmpZV3hqZFd4aGRHVnpJR1JwYzNSaGJtTmxJR0psZEhkbFpXNWNiaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBkMjhnYjJKcVpXTjBjeUIxYzJsdVp5QjBhR1ZwY2lCcGJtUmxlR1Z6WEc0Z0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeVcxMTlJRlJvWlNCcGJtUmxlR1Z6SUc5bUlIUm9aU0J0YjNOMElHUnBkbVZ5YzJVZ2IySnFaV04wYzF4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwUkdsMlpYSnpaVk4xWW5ObGRDaHNaVzVuZEdnNklHNTFiV0psY2l3Z2Jqb2diblZ0WW1WeUxDQmthWE4wT2lBb2FURTZJRzUxYldKbGNpd2dhVEk2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5VzEwZ2UxeHVJQ0JtZFc1amRHbHZiaUJ0WVhoQ2VTaDJZV3gxWlhNNklFbDBaWEpoWW14bFNYUmxjbUYwYjNJOGJuVnRZbVZ5UGl3Z2IzSmtaWEpDZVRvZ0tHazZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLU0I3WEc0Z0lDQWdiR1YwSUcxaGVGWmhiSFZsSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnYldGNFQzSmtaWEpDZVNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdWc1pXMWxiblFnYjJZZ2RtRnNkV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBUM0prWlhKQ2VTQTlJRzl5WkdWeVFua29aV3hsYldWdWRDazdYRzRnSUNBZ0lDQnBaaUFvYldGNFQzSmtaWEpDZVNBOVBTQnVkV3hzSUh4OElHVnNaVzFsYm5SUGNtUmxja0o1SUQ0Z2JXRjRUM0prWlhKQ2VTa2dlMXh1SUNBZ0lDQWdJQ0J0WVhoV1lXeDFaU0E5SUdWc1pXMWxiblE3WEc0Z0lDQWdJQ0FnSUcxaGVFOXlaR1Z5UW5rZ1BTQmxiR1Z0Wlc1MFQzSmtaWEpDZVR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHMWhlRlpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MzVmljMlYwSUQwZ1czSmhibVJ2YlVsdWRDaHNaVzVuZEdnZ0xTQXhLVjA3WEc0Z0lHTnZibk4wSUdOdmJYQnNaVzFsYm5RZ1BTQnVaWGNnVTJWMEtDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJR2xtSUNnaGMzVmljMlYwTG1sdVkyeDFaR1Z6S0drcEtWeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWhaR1FvYVNrN1hHNGdJSDFjYmx4dUlDQjNhR2xzWlNBb2MzVmljMlYwTG14bGJtZDBhQ0E4SUc0cElIdGNiaUFnSUNCamIyNXpkQ0JwWkhnZ1BTQnRZWGhDZVNoY2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdWRtRnNkV1Z6S0NrZ1lYTWdTWFJsY21GaWJHVkpkR1Z5WVhSdmNqeHVkVzFpWlhJK0xGeHVJQ0FnSUNBZ0tHa3BJRDArSUUxaGRHZ3ViV2x1TG1Gd2NHeDVLRTFoZEdnc0lITjFZbk5sZEM1dFlYQW9ablZ1WTNScGIyNG9kbUZzTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdsemRDaHBMQ0IyWVd3cE8xeHVJQ0FnSUNBZ2ZTa3BLVHRjYmlBZ0lDQnBaaUFvYVdSNEtTQjdYRzRnSUNBZ0lDQnpkV0p6WlhRdWNIVnphQ2hwWkhncE8xeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWtaV3hsZEdVb2FXUjRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlITjFZbk5sZER0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzV2Y20xaGJHbDZaV1FnZG1WamRHOXlYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnWkdGMFlTQnVkVzFsY21sallXd2dZWEp5WVhsY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzV2Y20xaGJHbDZaU2hrWVhSaE9pQldaV04wYjNJcE9pQldaV04wYjNJZ2UxeHVJQ0JzWlhRZ2JXVmhiaUE5SURBN1hHNGdJR3hsZENCemRHUWdQU0F3TzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWkdGMFlTNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQnRaV0Z1SUNzOUlHUmhkR0ZiYVYwN1hHNWNiaUFnYldWaGJpQXZQU0JrWVhSaExteGxibWQwYUR0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdjM1JrSUNzOUlDaGtZWFJoVzJsZElDMGdiV1ZoYmlrZ0tpQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cE8xeHVYRzRnSUhOMFpDQTlJRTFoZEdndWMzRnlkQ2h6ZEdRZ0x5QmtZWFJoTG14bGJtZDBhQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrWVhSaExteGxibWQwYURzZ0t5dHBLVnh1SUNBZ0lHUmhkR0ZiYVYwZ1BTQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cElDOGdjM1JrTzF4dVhHNGdJSEpsZEhWeWJpQmtZWFJoTzF4dWZWeHVYRzR2S2lwY2JpQXFJRVpwYm1SeklITmxkQ0JrYVdabVpYSmxibU5sSUdKbGRIZGxaVzRnZEhkdklHeHBjM1J6TGx4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ1lTQlVhR1VnWm1seWMzUWdiR2x6ZEM1Y2JpQXFJRUJ3WVhKaGJTQjdZVzU1VzExOUlHSWdWR2hsSUhObFkyOXVaQ0JzYVhOMExseHVJQ29nUUhKbGRIVnliaUI3WVc1NVcxMTlYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCelpYUkVhV1ptWlhKbGJtTmxLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2s2SUdGdWVWdGRJSHRjYmlBZ1kyOXVjM1FnWWxObGRDQTlJRzVsZHlCVFpYUW9ZaWs3WEc0Z0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtHNWxkeUJUWlhRb1lTNW1hV3gwWlhJb0tIZ3BJRDArSUNGaVUyVjBMbWhoY3loNEtTa3BMblpoYkhWbGN5Z3BLVHRjYm4xY2JpSmRmUT09IiwiKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICAgLy8gSGFjayB0byBtYWtlIGFsbCBleHBvcnRzIG9mIHRoaXMgbW9kdWxlIHNoYTI1NiBmdW5jdGlvbiBvYmplY3QgcHJvcGVydGllcy5cbiAgICB2YXIgZXhwb3J0cyA9IHt9O1xuICAgIGZhY3RvcnkoZXhwb3J0cyk7XG4gICAgdmFyIHNoYTI1NiA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuICAgIGZvciAodmFyIGsgaW4gZXhwb3J0cykge1xuICAgICAgICBzaGEyNTZba10gPSBleHBvcnRzW2tdO1xuICAgIH1cbiAgICAgICAgXG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBzaGEyNTY7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKGZ1bmN0aW9uKCkgeyByZXR1cm4gc2hhMjU2OyB9KTsgXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdC5zaGEyNTYgPSBzaGEyNTY7XG4gICAgfVxufSkodGhpcywgZnVuY3Rpb24oZXhwb3J0cykge1xuXCJ1c2Ugc3RyaWN0XCI7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuLy8gU0hBLTI1NiAoKyBITUFDIGFuZCBQQktERjIpIGZvciBKYXZhU2NyaXB0LlxuLy9cbi8vIFdyaXR0ZW4gaW4gMjAxNC0yMDE2IGJ5IERtaXRyeSBDaGVzdG55a2guXG4vLyBQdWJsaWMgZG9tYWluLCBubyB3YXJyYW50eS5cbi8vXG4vLyBGdW5jdGlvbnMgKGFjY2VwdCBhbmQgcmV0dXJuIFVpbnQ4QXJyYXlzKTpcbi8vXG4vLyAgIHNoYTI1NihtZXNzYWdlKSAtPiBoYXNoXG4vLyAgIHNoYTI1Ni5obWFjKGtleSwgbWVzc2FnZSkgLT4gbWFjXG4vLyAgIHNoYTI1Ni5wYmtkZjIocGFzc3dvcmQsIHNhbHQsIHJvdW5kcywgZGtMZW4pIC0+IGRrXG4vL1xuLy8gIENsYXNzZXM6XG4vL1xuLy8gICBuZXcgc2hhMjU2Lkhhc2goKVxuLy8gICBuZXcgc2hhMjU2LkhNQUMoa2V5KVxuLy9cbmV4cG9ydHMuZGlnZXN0TGVuZ3RoID0gMzI7XG5leHBvcnRzLmJsb2NrU2l6ZSA9IDY0O1xuLy8gU0hBLTI1NiBjb25zdGFudHNcbnZhciBLID0gbmV3IFVpbnQzMkFycmF5KFtcbiAgICAweDQyOGEyZjk4LCAweDcxMzc0NDkxLCAweGI1YzBmYmNmLCAweGU5YjVkYmE1LCAweDM5NTZjMjViLFxuICAgIDB4NTlmMTExZjEsIDB4OTIzZjgyYTQsIDB4YWIxYzVlZDUsIDB4ZDgwN2FhOTgsIDB4MTI4MzViMDEsXG4gICAgMHgyNDMxODViZSwgMHg1NTBjN2RjMywgMHg3MmJlNWQ3NCwgMHg4MGRlYjFmZSwgMHg5YmRjMDZhNyxcbiAgICAweGMxOWJmMTc0LCAweGU0OWI2OWMxLCAweGVmYmU0Nzg2LCAweDBmYzE5ZGM2LCAweDI0MGNhMWNjLFxuICAgIDB4MmRlOTJjNmYsIDB4NGE3NDg0YWEsIDB4NWNiMGE5ZGMsIDB4NzZmOTg4ZGEsIDB4OTgzZTUxNTIsXG4gICAgMHhhODMxYzY2ZCwgMHhiMDAzMjdjOCwgMHhiZjU5N2ZjNywgMHhjNmUwMGJmMywgMHhkNWE3OTE0NyxcbiAgICAweDA2Y2E2MzUxLCAweDE0MjkyOTY3LCAweDI3YjcwYTg1LCAweDJlMWIyMTM4LCAweDRkMmM2ZGZjLFxuICAgIDB4NTMzODBkMTMsIDB4NjUwYTczNTQsIDB4NzY2YTBhYmIsIDB4ODFjMmM5MmUsIDB4OTI3MjJjODUsXG4gICAgMHhhMmJmZThhMSwgMHhhODFhNjY0YiwgMHhjMjRiOGI3MCwgMHhjNzZjNTFhMywgMHhkMTkyZTgxOSxcbiAgICAweGQ2OTkwNjI0LCAweGY0MGUzNTg1LCAweDEwNmFhMDcwLCAweDE5YTRjMTE2LCAweDFlMzc2YzA4LFxuICAgIDB4Mjc0ODc3NGMsIDB4MzRiMGJjYjUsIDB4MzkxYzBjYjMsIDB4NGVkOGFhNGEsIDB4NWI5Y2NhNGYsXG4gICAgMHg2ODJlNmZmMywgMHg3NDhmODJlZSwgMHg3OGE1NjM2ZiwgMHg4NGM4NzgxNCwgMHg4Y2M3MDIwOCxcbiAgICAweDkwYmVmZmZhLCAweGE0NTA2Y2ViLCAweGJlZjlhM2Y3LCAweGM2NzE3OGYyXG5dKTtcbmZ1bmN0aW9uIGhhc2hCbG9ja3ModywgdiwgcCwgcG9zLCBsZW4pIHtcbiAgICB2YXIgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgdSwgaSwgaiwgdDEsIHQyO1xuICAgIHdoaWxlIChsZW4gPj0gNjQpIHtcbiAgICAgICAgYSA9IHZbMF07XG4gICAgICAgIGIgPSB2WzFdO1xuICAgICAgICBjID0gdlsyXTtcbiAgICAgICAgZCA9IHZbM107XG4gICAgICAgIGUgPSB2WzRdO1xuICAgICAgICBmID0gdls1XTtcbiAgICAgICAgZyA9IHZbNl07XG4gICAgICAgIGggPSB2WzddO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgICAgICAgaiA9IHBvcyArIGkgKiA0O1xuICAgICAgICAgICAgd1tpXSA9ICgoKHBbal0gJiAweGZmKSA8PCAyNCkgfCAoKHBbaiArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAgICAgICAoKHBbaiArIDJdICYgMHhmZikgPDwgOCkgfCAocFtqICsgM10gJiAweGZmKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMTY7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICB1ID0gd1tpIC0gMl07XG4gICAgICAgICAgICB0MSA9ICh1ID4+PiAxNyB8IHUgPDwgKDMyIC0gMTcpKSBeICh1ID4+PiAxOSB8IHUgPDwgKDMyIC0gMTkpKSBeICh1ID4+PiAxMCk7XG4gICAgICAgICAgICB1ID0gd1tpIC0gMTVdO1xuICAgICAgICAgICAgdDIgPSAodSA+Pj4gNyB8IHUgPDwgKDMyIC0gNykpIF4gKHUgPj4+IDE4IHwgdSA8PCAoMzIgLSAxOCkpIF4gKHUgPj4+IDMpO1xuICAgICAgICAgICAgd1tpXSA9ICh0MSArIHdbaSAtIDddIHwgMCkgKyAodDIgKyB3W2kgLSAxNl0gfCAwKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykge1xuICAgICAgICAgICAgdDEgPSAoKCgoKGUgPj4+IDYgfCBlIDw8ICgzMiAtIDYpKSBeIChlID4+PiAxMSB8IGUgPDwgKDMyIC0gMTEpKSBeXG4gICAgICAgICAgICAgICAgKGUgPj4+IDI1IHwgZSA8PCAoMzIgLSAyNSkpKSArICgoZSAmIGYpIF4gKH5lICYgZykpKSB8IDApICtcbiAgICAgICAgICAgICAgICAoKGggKyAoKEtbaV0gKyB3W2ldKSB8IDApKSB8IDApKSB8IDA7XG4gICAgICAgICAgICB0MiA9ICgoKGEgPj4+IDIgfCBhIDw8ICgzMiAtIDIpKSBeIChhID4+PiAxMyB8IGEgPDwgKDMyIC0gMTMpKSBeXG4gICAgICAgICAgICAgICAgKGEgPj4+IDIyIHwgYSA8PCAoMzIgLSAyMikpKSArICgoYSAmIGIpIF4gKGEgJiBjKSBeIChiICYgYykpKSB8IDA7XG4gICAgICAgICAgICBoID0gZztcbiAgICAgICAgICAgIGcgPSBmO1xuICAgICAgICAgICAgZiA9IGU7XG4gICAgICAgICAgICBlID0gKGQgKyB0MSkgfCAwO1xuICAgICAgICAgICAgZCA9IGM7XG4gICAgICAgICAgICBjID0gYjtcbiAgICAgICAgICAgIGIgPSBhO1xuICAgICAgICAgICAgYSA9ICh0MSArIHQyKSB8IDA7XG4gICAgICAgIH1cbiAgICAgICAgdlswXSArPSBhO1xuICAgICAgICB2WzFdICs9IGI7XG4gICAgICAgIHZbMl0gKz0gYztcbiAgICAgICAgdlszXSArPSBkO1xuICAgICAgICB2WzRdICs9IGU7XG4gICAgICAgIHZbNV0gKz0gZjtcbiAgICAgICAgdls2XSArPSBnO1xuICAgICAgICB2WzddICs9IGg7XG4gICAgICAgIHBvcyArPSA2NDtcbiAgICAgICAgbGVuIC09IDY0O1xuICAgIH1cbiAgICByZXR1cm4gcG9zO1xufVxuLy8gSGFzaCBpbXBsZW1lbnRzIFNIQTI1NiBoYXNoIGFsZ29yaXRobS5cbnZhciBIYXNoID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhhc2goKSB7XG4gICAgICAgIHRoaXMuZGlnZXN0TGVuZ3RoID0gZXhwb3J0cy5kaWdlc3RMZW5ndGg7XG4gICAgICAgIHRoaXMuYmxvY2tTaXplID0gZXhwb3J0cy5ibG9ja1NpemU7XG4gICAgICAgIC8vIE5vdGU6IEludDMyQXJyYXkgaXMgdXNlZCBpbnN0ZWFkIG9mIFVpbnQzMkFycmF5IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuICAgICAgICB0aGlzLnN0YXRlID0gbmV3IEludDMyQXJyYXkoOCk7IC8vIGhhc2ggc3RhdGVcbiAgICAgICAgdGhpcy50ZW1wID0gbmV3IEludDMyQXJyYXkoNjQpOyAvLyB0ZW1wb3Jhcnkgc3RhdGVcbiAgICAgICAgdGhpcy5idWZmZXIgPSBuZXcgVWludDhBcnJheSgxMjgpOyAvLyBidWZmZXIgZm9yIGRhdGEgdG8gaGFzaFxuICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7IC8vIG51bWJlciBvZiBieXRlcyBpbiBidWZmZXJcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IDA7IC8vIG51bWJlciBvZiB0b3RhbCBieXRlcyBoYXNoZWRcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlOyAvLyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgaGFzaCB3YXMgZmluYWxpemVkXG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgLy8gUmVzZXRzIGhhc2ggc3RhdGUgbWFraW5nIGl0IHBvc3NpYmxlXG4gICAgLy8gdG8gcmUtdXNlIHRoaXMgaW5zdGFuY2UgdG8gaGFzaCBvdGhlciBkYXRhLlxuICAgIEhhc2gucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnN0YXRlWzBdID0gMHg2YTA5ZTY2NztcbiAgICAgICAgdGhpcy5zdGF0ZVsxXSA9IDB4YmI2N2FlODU7XG4gICAgICAgIHRoaXMuc3RhdGVbMl0gPSAweDNjNmVmMzcyO1xuICAgICAgICB0aGlzLnN0YXRlWzNdID0gMHhhNTRmZjUzYTtcbiAgICAgICAgdGhpcy5zdGF0ZVs0XSA9IDB4NTEwZTUyN2Y7XG4gICAgICAgIHRoaXMuc3RhdGVbNV0gPSAweDliMDU2ODhjO1xuICAgICAgICB0aGlzLnN0YXRlWzZdID0gMHgxZjgzZDlhYjtcbiAgICAgICAgdGhpcy5zdGF0ZVs3XSA9IDB4NWJlMGNkMTk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IDA7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBDbGVhbnMgaW50ZXJuYWwgYnVmZmVycyBhbmQgcmUtaW5pdGlhbGl6ZXMgaGFzaCBzdGF0ZS5cbiAgICBIYXNoLnByb3RvdHlwZS5jbGVhbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJ1ZmZlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50ZW1wLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9O1xuICAgIC8vIFVwZGF0ZXMgaGFzaCBzdGF0ZSB3aXRoIHRoZSBnaXZlbiBkYXRhLlxuICAgIC8vXG4gICAgLy8gT3B0aW9uYWxseSwgbGVuZ3RoIG9mIHRoZSBkYXRhIGNhbiBiZSBzcGVjaWZpZWQgdG8gaGFzaFxuICAgIC8vIGZld2VyIGJ5dGVzIHRoYW4gZGF0YS5sZW5ndGguXG4gICAgLy9cbiAgICAvLyBUaHJvd3MgZXJyb3Igd2hlbiB0cnlpbmcgdG8gdXBkYXRlIGFscmVhZHkgZmluYWxpemVkIGhhc2g6XG4gICAgLy8gaW5zdGFuY2UgbXVzdCBiZSByZXNldCB0byB1c2UgaXQgYWdhaW4uXG4gICAgSGFzaC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEsIGRhdGFMZW5ndGgpIHtcbiAgICAgICAgaWYgKGRhdGFMZW5ndGggPT09IHZvaWQgMCkgeyBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGg7IH1cbiAgICAgICAgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNIQTI1NjogY2FuJ3QgdXBkYXRlIGJlY2F1c2UgaGFzaCB3YXMgZmluaXNoZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXRhUG9zID0gMDtcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCArPSBkYXRhTGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5idWZmZXJMZW5ndGggPCA2NCAmJiBkYXRhTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyTGVuZ3RoKytdID0gZGF0YVtkYXRhUG9zKytdO1xuICAgICAgICAgICAgICAgIGRhdGFMZW5ndGgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gNjQpIHtcbiAgICAgICAgICAgICAgICBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgdGhpcy5idWZmZXIsIDAsIDY0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFMZW5ndGggPj0gNjQpIHtcbiAgICAgICAgICAgIGRhdGFQb3MgPSBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgZGF0YSwgZGF0YVBvcywgZGF0YUxlbmd0aCk7XG4gICAgICAgICAgICBkYXRhTGVuZ3RoICU9IDY0O1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChkYXRhTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW2RhdGFQb3MrK107XG4gICAgICAgICAgICBkYXRhTGVuZ3RoLS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBGaW5hbGl6ZXMgaGFzaCBzdGF0ZSBhbmQgcHV0cyBoYXNoIGludG8gb3V0LlxuICAgIC8vXG4gICAgLy8gSWYgaGFzaCB3YXMgYWxyZWFkeSBmaW5hbGl6ZWQsIHB1dHMgdGhlIHNhbWUgdmFsdWUuXG4gICAgSGFzaC5wcm90b3R5cGUuZmluaXNoID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHZhciBieXRlc0hhc2hlZCA9IHRoaXMuYnl0ZXNIYXNoZWQ7XG4gICAgICAgICAgICB2YXIgbGVmdCA9IHRoaXMuYnVmZmVyTGVuZ3RoO1xuICAgICAgICAgICAgdmFyIGJpdExlbkhpID0gKGJ5dGVzSGFzaGVkIC8gMHgyMDAwMDAwMCkgfCAwO1xuICAgICAgICAgICAgdmFyIGJpdExlbkxvID0gYnl0ZXNIYXNoZWQgPDwgMztcbiAgICAgICAgICAgIHZhciBwYWRMZW5ndGggPSAoYnl0ZXNIYXNoZWQgJSA2NCA8IDU2KSA/IDY0IDogMTI4O1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbbGVmdF0gPSAweDgwO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGxlZnQgKyAxOyBpIDwgcGFkTGVuZ3RoIC0gODsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gOF0gPSAoYml0TGVuSGkgPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA3XSA9IChiaXRMZW5IaSA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDZdID0gKGJpdExlbkhpID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA1XSA9IChiaXRMZW5IaSA+Pj4gMCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNF0gPSAoYml0TGVuTG8gPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSAzXSA9IChiaXRMZW5MbyA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDJdID0gKGJpdExlbkxvID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSAxXSA9IChiaXRMZW5MbyA+Pj4gMCkgJiAweGZmO1xuICAgICAgICAgICAgaGFzaEJsb2Nrcyh0aGlzLnRlbXAsIHRoaXMuc3RhdGUsIHRoaXMuYnVmZmVyLCAwLCBwYWRMZW5ndGgpO1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpICogNCArIDBdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAxXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMl0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gOCkgJiAweGZmO1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgM10gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMCkgJiAweGZmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gUmV0dXJucyB0aGUgZmluYWwgaGFzaCBkaWdlc3QuXG4gICAgSGFzaC5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3V0ID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO1xuICAgICAgICB0aGlzLmZpbmlzaChvdXQpO1xuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH07XG4gICAgLy8gSW50ZXJuYWwgZnVuY3Rpb24gZm9yIHVzZSBpbiBITUFDIGZvciBvcHRpbWl6YXRpb24uXG4gICAgSGFzaC5wcm90b3R5cGUuX3NhdmVTdGF0ZSA9IGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSB0aGlzLnN0YXRlW2ldO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgdXNlIGluIEhNQUMgZm9yIG9wdGltaXphdGlvbi5cbiAgICBIYXNoLnByb3RvdHlwZS5fcmVzdG9yZVN0YXRlID0gZnVuY3Rpb24gKGZyb20sIGJ5dGVzSGFzaGVkKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdGF0ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVtpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IGJ5dGVzSGFzaGVkO1xuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICB9O1xuICAgIHJldHVybiBIYXNoO1xufSgpKTtcbmV4cG9ydHMuSGFzaCA9IEhhc2g7XG4vLyBITUFDIGltcGxlbWVudHMgSE1BQy1TSEEyNTYgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG0uXG52YXIgSE1BQyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBITUFDKGtleSkge1xuICAgICAgICB0aGlzLmlubmVyID0gbmV3IEhhc2goKTtcbiAgICAgICAgdGhpcy5vdXRlciA9IG5ldyBIYXNoKCk7XG4gICAgICAgIHRoaXMuYmxvY2tTaXplID0gdGhpcy5pbm5lci5ibG9ja1NpemU7XG4gICAgICAgIHRoaXMuZGlnZXN0TGVuZ3RoID0gdGhpcy5pbm5lci5kaWdlc3RMZW5ndGg7XG4gICAgICAgIHZhciBwYWQgPSBuZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk7XG4gICAgICAgIGlmIChrZXkubGVuZ3RoID4gdGhpcy5ibG9ja1NpemUpIHtcbiAgICAgICAgICAgIChuZXcgSGFzaCgpKS51cGRhdGUoa2V5KS5maW5pc2gocGFkKS5jbGVhbigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwYWRbaV0gPSBrZXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSBePSAweDM2O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXIudXBkYXRlKHBhZCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gXj0gMHgzNiBeIDB4NWM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUocGFkKTtcbiAgICAgICAgdGhpcy5pc3RhdGUgPSBuZXcgVWludDMyQXJyYXkoOCk7XG4gICAgICAgIHRoaXMub3N0YXRlID0gbmV3IFVpbnQzMkFycmF5KDgpO1xuICAgICAgICB0aGlzLmlubmVyLl9zYXZlU3RhdGUodGhpcy5pc3RhdGUpO1xuICAgICAgICB0aGlzLm91dGVyLl9zYXZlU3RhdGUodGhpcy5vc3RhdGUpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSZXR1cm5zIEhNQUMgc3RhdGUgdG8gdGhlIHN0YXRlIGluaXRpYWxpemVkIHdpdGgga2V5XG4gICAgLy8gdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBydW4gSE1BQyBvdmVyIHRoZSBvdGhlciBkYXRhIHdpdGggdGhlIHNhbWVcbiAgICAvLyBrZXkgd2l0aG91dCBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICBITUFDLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pbm5lci5fcmVzdG9yZVN0YXRlKHRoaXMuaXN0YXRlLCB0aGlzLmlubmVyLmJsb2NrU2l6ZSk7XG4gICAgICAgIHRoaXMub3V0ZXIuX3Jlc3RvcmVTdGF0ZSh0aGlzLm9zdGF0ZSwgdGhpcy5vdXRlci5ibG9ja1NpemUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIENsZWFucyBITUFDIHN0YXRlLlxuICAgIEhNQUMucHJvdG90eXBlLmNsZWFuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLm9zdGF0ZVtpXSA9IHRoaXMuaXN0YXRlW2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyLmNsZWFuKCk7XG4gICAgICAgIHRoaXMub3V0ZXIuY2xlYW4oKTtcbiAgICB9O1xuICAgIC8vIFVwZGF0ZXMgc3RhdGUgd2l0aCBwcm92aWRlZCBkYXRhLlxuICAgIEhNQUMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIHRoaXMuaW5uZXIudXBkYXRlKGRhdGEpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIEZpbmFsaXplcyBITUFDIGFuZCBwdXRzIHRoZSByZXN1bHQgaW4gb3V0LlxuICAgIEhNQUMucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgaWYgKHRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3V0ZXIuZmluaXNoKG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyLmZpbmlzaChvdXQpO1xuICAgICAgICAgICAgdGhpcy5vdXRlci51cGRhdGUob3V0LCB0aGlzLmRpZ2VzdExlbmd0aCkuZmluaXNoKG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBSZXR1cm5zIG1lc3NhZ2UgYXV0aGVudGljYXRpb24gY29kZS5cbiAgICBITUFDLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7XG4gICAgICAgIHRoaXMuZmluaXNoKG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICByZXR1cm4gSE1BQztcbn0oKSk7XG5leHBvcnRzLkhNQUMgPSBITUFDO1xuLy8gUmV0dXJucyBTSEEyNTYgaGFzaCBvZiBkYXRhLlxuZnVuY3Rpb24gaGFzaChkYXRhKSB7XG4gICAgdmFyIGggPSAobmV3IEhhc2goKSkudXBkYXRlKGRhdGEpO1xuICAgIHZhciBkaWdlc3QgPSBoLmRpZ2VzdCgpO1xuICAgIGguY2xlYW4oKTtcbiAgICByZXR1cm4gZGlnZXN0O1xufVxuZXhwb3J0cy5oYXNoID0gaGFzaDtcbi8vIEZ1bmN0aW9uIGhhc2ggaXMgYm90aCBhdmFpbGFibGUgYXMgbW9kdWxlLmhhc2ggYW5kIGFzIGRlZmF1bHQgZXhwb3J0LlxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBoYXNoO1xuLy8gUmV0dXJucyBITUFDLVNIQTI1NiBvZiBkYXRhIHVuZGVyIHRoZSBrZXkuXG5mdW5jdGlvbiBobWFjKGtleSwgZGF0YSkge1xuICAgIHZhciBoID0gKG5ldyBITUFDKGtleSkpLnVwZGF0ZShkYXRhKTtcbiAgICB2YXIgZGlnZXN0ID0gaC5kaWdlc3QoKTtcbiAgICBoLmNsZWFuKCk7XG4gICAgcmV0dXJuIGRpZ2VzdDtcbn1cbmV4cG9ydHMuaG1hYyA9IGhtYWM7XG4vLyBGaWxscyBoa2RmIGJ1ZmZlciBsaWtlIHRoaXM6XG4vLyBUKDEpID0gSE1BQy1IYXNoKFBSSywgVCgwKSB8IGluZm8gfCAweDAxKVxuZnVuY3Rpb24gZmlsbEJ1ZmZlcihidWZmZXIsIGhtYWMsIGluZm8sIGNvdW50ZXIpIHtcbiAgICAvLyBDb3VudGVyIGlzIGEgYnl0ZSB2YWx1ZTogY2hlY2sgaWYgaXQgb3ZlcmZsb3dlZC5cbiAgICB2YXIgbnVtID0gY291bnRlclswXTtcbiAgICBpZiAobnVtID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImhrZGY6IGNhbm5vdCBleHBhbmQgbW9yZVwiKTtcbiAgICB9XG4gICAgLy8gUHJlcGFyZSBITUFDIGluc3RhbmNlIGZvciBuZXcgZGF0YSB3aXRoIG9sZCBrZXkuXG4gICAgaG1hYy5yZXNldCgpO1xuICAgIC8vIEhhc2ggaW4gcHJldmlvdXMgb3V0cHV0IGlmIGl0IHdhcyBnZW5lcmF0ZWRcbiAgICAvLyAoaS5lLiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAxKS5cbiAgICBpZiAobnVtID4gMSkge1xuICAgICAgICBobWFjLnVwZGF0ZShidWZmZXIpO1xuICAgIH1cbiAgICAvLyBIYXNoIGluIGluZm8gaWYgaXQgZXhpc3RzLlxuICAgIGlmIChpbmZvKSB7XG4gICAgICAgIGhtYWMudXBkYXRlKGluZm8pO1xuICAgIH1cbiAgICAvLyBIYXNoIGluIHRoZSBjb3VudGVyLlxuICAgIGhtYWMudXBkYXRlKGNvdW50ZXIpO1xuICAgIC8vIE91dHB1dCByZXN1bHQgdG8gYnVmZmVyIGFuZCBjbGVhbiBITUFDIGluc3RhbmNlLlxuICAgIGhtYWMuZmluaXNoKGJ1ZmZlcik7XG4gICAgLy8gSW5jcmVtZW50IGNvdW50ZXIgaW5zaWRlIHR5cGVkIGFycmF5LCB0aGlzIHdvcmtzIHByb3Blcmx5LlxuICAgIGNvdW50ZXJbMF0rKztcbn1cbnZhciBoa2RmU2FsdCA9IG5ldyBVaW50OEFycmF5KGV4cG9ydHMuZGlnZXN0TGVuZ3RoKTsgLy8gRmlsbGVkIHdpdGggemVyb2VzLlxuZnVuY3Rpb24gaGtkZihrZXksIHNhbHQsIGluZm8sIGxlbmd0aCkge1xuICAgIGlmIChzYWx0ID09PSB2b2lkIDApIHsgc2FsdCA9IGhrZGZTYWx0OyB9XG4gICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7IGxlbmd0aCA9IDMyOyB9XG4gICAgdmFyIGNvdW50ZXIgPSBuZXcgVWludDhBcnJheShbMV0pO1xuICAgIC8vIEhLREYtRXh0cmFjdCB1c2VzIHNhbHQgYXMgSE1BQyBrZXksIGFuZCBrZXkgYXMgZGF0YS5cbiAgICB2YXIgb2ttID0gaG1hYyhzYWx0LCBrZXkpO1xuICAgIC8vIEluaXRpYWxpemUgSE1BQyBmb3IgZXhwYW5kaW5nIHdpdGggZXh0cmFjdGVkIGtleS5cbiAgICAvLyBFbnN1cmUgbm8gY29sbGlzaW9ucyB3aXRoIGBobWFjYCBmdW5jdGlvbi5cbiAgICB2YXIgaG1hY18gPSBuZXcgSE1BQyhva20pO1xuICAgIC8vIEFsbG9jYXRlIGJ1ZmZlci5cbiAgICB2YXIgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoaG1hY18uZGlnZXN0TGVuZ3RoKTtcbiAgICB2YXIgYnVmcG9zID0gYnVmZmVyLmxlbmd0aDtcbiAgICB2YXIgb3V0ID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChidWZwb3MgPT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbGxCdWZmZXIoYnVmZmVyLCBobWFjXywgaW5mbywgY291bnRlcik7XG4gICAgICAgICAgICBidWZwb3MgPSAwO1xuICAgICAgICB9XG4gICAgICAgIG91dFtpXSA9IGJ1ZmZlcltidWZwb3MrK107XG4gICAgfVxuICAgIGhtYWNfLmNsZWFuKCk7XG4gICAgYnVmZmVyLmZpbGwoMCk7XG4gICAgY291bnRlci5maWxsKDApO1xuICAgIHJldHVybiBvdXQ7XG59XG5leHBvcnRzLmhrZGYgPSBoa2RmO1xuLy8gRGVyaXZlcyBhIGtleSBmcm9tIHBhc3N3b3JkIGFuZCBzYWx0IHVzaW5nIFBCS0RGMi1ITUFDLVNIQTI1NlxuLy8gd2l0aCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGl0ZXJhdGlvbnMuXG4vL1xuLy8gVGhlIG51bWJlciBvZiBieXRlcyByZXR1cm5lZCBpcyBlcXVhbCB0byBka0xlbi5cbi8vXG4vLyAoRm9yIGJldHRlciBzZWN1cml0eSwgYXZvaWQgZGtMZW4gZ3JlYXRlciB0aGFuIGhhc2ggbGVuZ3RoIC0gMzIgYnl0ZXMpLlxuZnVuY3Rpb24gcGJrZGYyKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBka0xlbikge1xuICAgIHZhciBwcmYgPSBuZXcgSE1BQyhwYXNzd29yZCk7XG4gICAgdmFyIGxlbiA9IHByZi5kaWdlc3RMZW5ndGg7XG4gICAgdmFyIGN0ciA9IG5ldyBVaW50OEFycmF5KDQpO1xuICAgIHZhciB0ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgdSA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgdmFyIGRrID0gbmV3IFVpbnQ4QXJyYXkoZGtMZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpICogbGVuIDwgZGtMZW47IGkrKykge1xuICAgICAgICB2YXIgYyA9IGkgKyAxO1xuICAgICAgICBjdHJbMF0gPSAoYyA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgY3RyWzFdID0gKGMgPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgIGN0clsyXSA9IChjID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgIGN0clszXSA9IChjID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgIHByZi5yZXNldCgpO1xuICAgICAgICBwcmYudXBkYXRlKHNhbHQpO1xuICAgICAgICBwcmYudXBkYXRlKGN0cik7XG4gICAgICAgIHByZi5maW5pc2godSk7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgICAgICAgIHRbal0gPSB1W2pdO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGogPSAyOyBqIDw9IGl0ZXJhdGlvbnM7IGorKykge1xuICAgICAgICAgICAgcHJmLnJlc2V0KCk7XG4gICAgICAgICAgICBwcmYudXBkYXRlKHUpLmZpbmlzaCh1KTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgICAgICB0W2tdIF49IHVba107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW4gJiYgaSAqIGxlbiArIGogPCBka0xlbjsgaisrKSB7XG4gICAgICAgICAgICBka1tpICogbGVuICsgal0gPSB0W2pdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgdFtpXSA9IHVbaV0gPSAwO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICBjdHJbaV0gPSAwO1xuICAgIH1cbiAgICBwcmYuY2xlYW4oKTtcbiAgICByZXR1cm4gZGs7XG59XG5leHBvcnRzLnBia2RmMiA9IHBia2RmMjtcbn0pO1xuIiwiY29uc3QgcGVxID0gbmV3IFVpbnQzMkFycmF5KDB4MTAwMDApO1xuY29uc3QgbXllcnNfMzIgPSAoYSwgYikgPT4ge1xuICAgIGNvbnN0IG4gPSBhLmxlbmd0aDtcbiAgICBjb25zdCBtID0gYi5sZW5ndGg7XG4gICAgY29uc3QgbHN0ID0gMSA8PCAobiAtIDEpO1xuICAgIGxldCBwdiA9IC0xO1xuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHNjID0gbjtcbiAgICBsZXQgaSA9IG47XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICBwZXFbYS5jaGFyQ29kZUF0KGkpXSB8PSAxIDw8IGk7XG4gICAgfVxuICAgIGZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgbGV0IGVxID0gcGVxW2IuY2hhckNvZGVBdChpKV07XG4gICAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgICAgZXEgfD0gKChlcSAmIHB2KSArIHB2KSBeIHB2O1xuICAgICAgICBtdiB8PSB+KGVxIHwgcHYpO1xuICAgICAgICBwdiAmPSBlcTtcbiAgICAgICAgaWYgKG12ICYgbHN0KSB7XG4gICAgICAgICAgICBzYysrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwdiAmIGxzdCkge1xuICAgICAgICAgICAgc2MtLTtcbiAgICAgICAgfVxuICAgICAgICBtdiA9IChtdiA8PCAxKSB8IDE7XG4gICAgICAgIHB2ID0gKHB2IDw8IDEpIHwgfih4diB8IG12KTtcbiAgICAgICAgbXYgJj0geHY7XG4gICAgfVxuICAgIGkgPSBuO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgcGVxW2EuY2hhckNvZGVBdChpKV0gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gc2M7XG59O1xuY29uc3QgbXllcnNfeCA9IChiLCBhKSA9PiB7XG4gICAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICAgIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgICBjb25zdCBtaGMgPSBbXTtcbiAgICBjb25zdCBwaGMgPSBbXTtcbiAgICBjb25zdCBoc2l6ZSA9IE1hdGguY2VpbChuIC8gMzIpO1xuICAgIGNvbnN0IHZzaXplID0gTWF0aC5jZWlsKG0gLyAzMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoc2l6ZTsgaSsrKSB7XG4gICAgICAgIHBoY1tpXSA9IC0xO1xuICAgICAgICBtaGNbaV0gPSAwO1xuICAgIH1cbiAgICBsZXQgaiA9IDA7XG4gICAgZm9yICg7IGogPCB2c2l6ZSAtIDE7IGorKykge1xuICAgICAgICBsZXQgbXYgPSAwO1xuICAgICAgICBsZXQgcHYgPSAtMTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgICAgIGNvbnN0IHZsZW4gPSBNYXRoLm1pbigzMiwgbSkgKyBzdGFydDtcbiAgICAgICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSB8PSAxIDw8IGs7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVxID0gcGVxW2EuY2hhckNvZGVBdChpKV07XG4gICAgICAgICAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgICAgICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgICAgICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICAgICAgICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICAgICAgICAgIGxldCBtaCA9IHB2ICYgeGg7XG4gICAgICAgICAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgICAgICAgICAgIHBoY1soaSAvIDMyKSB8IDBdIF49IDEgPDwgaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgobWggPj4+IDMxKSBeIG1iKSB7XG4gICAgICAgICAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgICAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICAgICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgICAgICAgIG12ID0gcGggJiB4djtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCB2bGVuOyBrKyspIHtcbiAgICAgICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgbXYgPSAwO1xuICAgIGxldCBwdiA9IC0xO1xuICAgIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICAgIGNvbnN0IHZsZW4gPSBNYXRoLm1pbigzMiwgbSAtIHN0YXJ0KSArIHN0YXJ0O1xuICAgIGZvciAobGV0IGsgPSBzdGFydDsgayA8IHZsZW47IGsrKykge1xuICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSB8PSAxIDw8IGs7XG4gICAgfVxuICAgIGxldCBzY29yZSA9IG07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICAgICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICAgICAgc2NvcmUgKz0gKHBoID4+PiAobSAtIDEpKSAmIDE7XG4gICAgICAgIHNjb3JlIC09IChtaCA+Pj4gKG0gLSAxKSkgJiAxO1xuICAgICAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgobWggPj4+IDMxKSBeIG1iKSB7XG4gICAgICAgICAgICBtaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICAgIH1cbiAgICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgICAgbWggPSAobWggPDwgMSkgfCBtYjtcbiAgICAgICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgICAgIG12ID0gcGggJiB4djtcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHNjb3JlO1xufTtcbmNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYS5sZW5ndGggPCBiLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB0bXAgPSBiO1xuICAgICAgICBiID0gYTtcbiAgICAgICAgYSA9IHRtcDtcbiAgICB9XG4gICAgaWYgKGIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBhLmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKGEubGVuZ3RoIDw9IDMyKSB7XG4gICAgICAgIHJldHVybiBteWVyc18zMihhLCBiKTtcbiAgICB9XG4gICAgcmV0dXJuIG15ZXJzX3goYSwgYik7XG59O1xuY29uc3QgY2xvc2VzdCA9IChzdHIsIGFycikgPT4ge1xuICAgIGxldCBtaW5fZGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICBsZXQgbWluX2luZGV4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBkaXN0ID0gZGlzdGFuY2Uoc3RyLCBhcnJbaV0pO1xuICAgICAgICBpZiAoZGlzdCA8IG1pbl9kaXN0YW5jZSkge1xuICAgICAgICAgICAgbWluX2Rpc3RhbmNlID0gZGlzdDtcbiAgICAgICAgICAgIG1pbl9pbmRleCA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFyclttaW5faW5kZXhdO1xufTtcbmV4cG9ydCB7IGNsb3Nlc3QsIGRpc3RhbmNlIH07XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvamFyby1hbmQtamFyby13aW5rbGVyLXNpbWlsYXJpdHkvXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphcm9XaW5rbGVyID0gZXhwb3J0cy5qYXJvID0gdm9pZCAwO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBFeGl0IGVhcmx5IGlmIGVpdGhlciBhcmUgZW1wdHkuXG4gICAgaWYgKHN0cjEubGVuZ3RoID09PSAwIHx8IHN0cjIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyIGlmIGNhc2Utc2Vuc2l0aXZlIGlzIGZhbHNlLlxuICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgc3RyMSA9IHN0cjEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgc3RyMiA9IHN0cjIudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgLy8gRXhhY3QgbWF0Y2hcbiAgICBpZiAoc3RyMSA9PT0gc3RyMikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgLy8gTnVtYmVyIG9mIG1hdGNoZXNcbiAgICB2YXIgbSA9IDA7XG4gICAgLy8gTGVuZ3RoIG9mIHR3byBTdHJpbmdzXG4gICAgdmFyIGxlbjEgPSBzdHIxLmxlbmd0aDtcbiAgICB2YXIgbGVuMiA9IHN0cjIubGVuZ3RoO1xuICAgIC8vIE1heGltdW0gZGlzdGFuY2VcbiAgICB2YXIgd2luZG93ID0gTWF0aC5mbG9vcihNYXRoLm1heChsZW4xLCBsZW4yKSAvIDIpIC0gMTtcbiAgICAvLyBIYXNoIGZvciBtYXRjaGVzXG4gICAgdmFyIHN0cjFIYXNoID0gbmV3IEFycmF5KGxlbjEpO1xuICAgIHZhciBzdHIySGFzaCA9IG5ldyBBcnJheShsZW4yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgaSAtIHdpbmRvdyk7IGogPD0gTWF0aC5taW4obGVuMiwgaSArIHdpbmRvdyArIDEpOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghc3RyMUhhc2hbaV0gJiYgIXN0cjJIYXNoW2pdICYmIHN0cjFbaV0gPT09IHN0cjJbal0pIHtcbiAgICAgICAgICAgICAgICArK207XG4gICAgICAgICAgICAgICAgc3RyMUhhc2hbaV0gPSBzdHIySGFzaFtqXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdCBlYXJseSBpZiBubyBtYXRjaGVzIHdlcmUgZm91bmQuXG4gICAgaWYgKG0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvdW50IHRoZSB0cmFuc3Bvc2l0aW9ucy5cbiAgICB2YXIgdCA9IDA7XG4gICAgdmFyIHBvaW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBpZiAoc3RyMUhhc2hbaV0pIHtcbiAgICAgICAgICAgIHdoaWxlICghc3RyMkhhc2hbcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIxLmNoYXJBdChpKSAhPT0gc3RyMi5jaGFyQXQocG9pbnQrKykpIHtcbiAgICAgICAgICAgICAgICB0Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdCAvPSAyO1xuICAgIHJldHVybiAobSAvIGxlbjEgKyBtIC8gbGVuMiArIChtIC0gdCkgLyBtKSAvIDM7XG59XG5leHBvcnRzLmphcm8gPSBqYXJvO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvV2lua2xlcihzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gSmFybyBEaXN0YW5jZVxuICAgIHZhciBqYXJvRGlzdCA9IGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucyk7XG4gICAgLy8gU2FtZSBwcmVmaXggbGVuZ3RoLCBtYXhpdW0gaXMgNFxuICAgIHZhciBwcmVmaXggPSAwO1xuICAgIGlmIChqYXJvRGlzdCA+IDAuNykge1xuICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRoLm1pbihzdHIxLmxlbmd0aCwgc3RyMi5sZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChzdHIxW2ldID09PSBzdHIyW2ldICYmIGkgPCA0ICYmIGkgPCBtaW5JbmRleCkge1xuICAgICAgICAgICAgKytwcmVmaXg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgamFyb0Rpc3QgKz0gMC4xICogcHJlZml4ICogKDEgLSBqYXJvRGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBqYXJvRGlzdDtcbn1cbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBqYXJvV2lua2xlcjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0IHsgZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyBBdmFpbGFibGVNZXRyaWNzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgeyBUQUdTIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyB9IGZyb20gJy4uL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlcyhjb2wsIHNlcSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ0FycmF5ID0gY29sLnRvTGlzdCgpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc3RyaW5nQXJyYXkubGVuZ3RoKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHN0cmluZ0FycmF5W2ldID8gQXZhaWxhYmxlTWV0cmljc1snU3RyaW5nJ11bJ0xldmVuc2h0ZWluJ10oc3RyaW5nQXJyYXlbaV0sIHNlcSkgOiBudWxsO1xuICAgICAgICAgICAgZGlzdGFuY2VzW2ldID0gZGlzdGFuY2UgPyBkaXN0YW5jZSAvIE1hdGgubWF4KHN0cmluZ0FycmF5W2ldLmxlbmd0aCwgc2VxLmxlbmd0aCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXN0YW5jZXM7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmLCBjb2xOYW1lLCBzaW1BcnIpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc2ltQXJyLmxlbmd0aCkuZmlsbChudWxsKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGYucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBkaXN0YW5jZXNbaV0gPSAoeWllbGQgZ2V0RGlzdGFuY2VzKGRmLmNvbChjb2xOYW1lKSwgc2VxKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXN0YW5jZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGlzdGFuY2VzW2ldLmxlbmd0aDsgaisrKVxuICAgICAgICAgICAgICAgIGRpc3RhbmNlc1tpXVtqXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgICAgIHNpbUFycltpXSA9IERHLkNvbHVtbi5mcm9tTGlzdChERy5DT0xVTU5fVFlQRS5GTE9BVCwgJ2Rpc3RhbmNlcycsIGRpc3RhbmNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNpbUFycjtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sdGlwRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHVpLmRpdkgoW10pO1xuICAgIGNvbnN0IGNvbHVtbk5hbWVzID0gdWkuZGl2VihbXG4gICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lKSxcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuYWN0aXZpdHlDb2wubmFtZSksXG4gICAgXSk7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuZm9udFdlaWdodCA9ICdib2xkJztcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZChjb2x1bW5OYW1lcyk7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpdml0eSA9IHVpLmRpdlRleHQocGFyYW1zLmFjdGl2aXR5Q29sLmdldChtb2xJZHgpLnRvRml4ZWQoMikpO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdsZWZ0JztcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMzBweCc7XG4gICAgICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZCh1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KSksXG4gICAgICAgICAgICBhY3Rpdml0eSxcbiAgICAgICAgXSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0b29sdGlwRWxlbWVudDtcbn1cbmZ1bmN0aW9uIG1vbGVjdWxlSW5mbyhkZiwgaWR4LCBzZXFDb2xOYW1lKSB7XG4gICAgY29uc3QgZGljdCA9IHt9O1xuICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgaWYgKGNvbC5uYW1lICE9PSBzZXFDb2xOYW1lKVxuICAgICAgICAgICAgZGljdFtjb2wubmFtZV0gPSBkZi5nZXQoY29sLm5hbWUsIGlkeCk7XG4gICAgfVxuICAgIHJldHVybiB1aS50YWJsZUZyb21NYXAoZGljdCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvcFBhbmVsRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCBwcm9wUGFuZWwgPSB1aS5kaXYoKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJyB9IH0pKTtcbiAgICBjb25zdCBzZXF1ZW5jZXNBcnJheSA9IG5ldyBBcnJheSgyKTtcbiAgICBjb25zdCBhY3Rpdml0aWVzQXJyYXkgPSBuZXcgQXJyYXkoMik7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBzZXF1ZW5jZXNBcnJheVtpZHhdID0gcGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KTtcbiAgICAgICAgYWN0aXZpdGllc0FycmF5W2lkeF0gPSBwYXJhbXMuYWN0aXZpdHlDb2wuZ2V0KG1vbElkeCk7XG4gICAgfSk7XG4gICAgY29uc3QgbW9sRGlmZmVyZW5jZXMgPSB7fTtcbiAgICBjb25zdCB1bml0cyA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKFRBR1MuU0VQQVJBVE9SKTtcbiAgICBjb25zdCBzcGxpdHRlciA9IGJpby5nZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yKTtcbiAgICBjb25zdCBzdWJQYXJ0czEgPSBzcGxpdHRlcihzZXF1ZW5jZXNBcnJheVswXSk7XG4gICAgY29uc3Qgc3ViUGFydHMyID0gc3BsaXR0ZXIoc2VxdWVuY2VzQXJyYXlbMV0pO1xuICAgIGNvbnN0IGNhbnZhcyA9IGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoc3ViUGFydHMxLCBzdWJQYXJ0czIsIHVuaXRzLCBtb2xEaWZmZXJlbmNlcyk7XG4gICAgcHJvcFBhbmVsLmFwcGVuZCh1aS5kaXYoY2FudmFzLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzAwcHgnLCBvdmVyZmxvdzogJ3Njcm9sbCcgfSB9KSk7XG4gICAgcHJvcFBhbmVsLmFwcGVuZChjcmVhdGVEaWZmZXJlbmNlc1dpdGhQb3NpdGlvbnMobW9sRGlmZmVyZW5jZXMpKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZVByb3BQYW5lbEZpZWxkKCdBY3Rpdml0eSBkZWx0YScsIE1hdGguYWJzKGFjdGl2aXRpZXNBcnJheVswXSAtIGFjdGl2aXRpZXNBcnJheVsxXSkpKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZVByb3BQYW5lbEZpZWxkKCdDbGlmZicsIHBhcmFtcy5zYWxpKSk7XG4gICAgcmV0dXJuIHByb3BQYW5lbDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BQYW5lbEZpZWxkKG5hbWUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHVpLmRpdkgoW1xuICAgICAgICB1aS5kaXZUZXh0KGAke25hbWV9OiBgLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZ1JpZ2h0OiAnNXB4JyB9IH0pLFxuICAgICAgICB1aS5kaXZUZXh0KHZhbHVlLnRvRml4ZWQoMikpXG4gICAgXSwgeyBzdHlsZTogeyBwYWRkaW5nVG9wOiAnNXB4JyB9IH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoc3ViUGFydHMxLCBzdWJQYXJ0czIsIHVuaXRzLCBtb2xEaWZmZXJlbmNlcykge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gMzA7XG4gICAgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGNvbnRleHQsIDAsIDAsIDAsIDMwLCBzdWJQYXJ0czEsIHN1YlBhcnRzMiwgdW5pdHMsIHRydWUsIG1vbERpZmZlcmVuY2VzKTtcbiAgICByZXR1cm4gY2FudmFzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpZmZlcmVuY2VzV2l0aFBvc2l0aW9ucyhtb2xEaWZmZXJlbmNlcykge1xuICAgIGNvbnN0IGRpdiA9IHVpLmRpdigpO1xuICAgIGlmIChPYmplY3Qua2V5cyhtb2xEaWZmZXJlbmNlcykubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBkaWZmc1BhbmVsID0gdWkuZGl2VihbXSk7XG4gICAgICAgIGRpZmZzUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dCgnUG9zJywgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcsIHdpZHRoOiAnMzBweCcsIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCcgfSB9KSxcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0RpZmZlcmVuY2UnLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkJyB9IH0pXG4gICAgICAgIF0pKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobW9sRGlmZmVyZW5jZXMpKSB7XG4gICAgICAgICAgICBtb2xEaWZmZXJlbmNlc1trZXldLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcxcHggc29saWQgbGlnaHRncmF5JztcbiAgICAgICAgICAgIGRpZmZzUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICAgICAgICAgIHVpLmRpdlRleHQoKHBhcnNlSW50KGtleSkgKyAxKS50b1N0cmluZygpLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzBweCcsIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCBsaWdodGdyYXknIH0gfSksXG4gICAgICAgICAgICAgICAgbW9sRGlmZmVyZW5jZXNba2V5XVxuICAgICAgICAgICAgXSkpO1xuICAgICAgICB9XG4gICAgICAgIGRpdi5hcHBlbmQoZGlmZnNQYW5lbCk7XG4gICAgfVxuICAgIHJldHVybiBkaXY7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB7IFNlcXVlbmNlU2VhcmNoQmFzZVZpZXdlciB9IGZyb20gJy4vc2VxdWVuY2Utc2VhcmNoLWJhc2Utdmlld2VyJztcbmltcG9ydCB7IGdldE1vbm9tZXJpY01vbHMgfSBmcm9tICcuLi9jYWxjdWxhdGlvbnMvbW9ub21lckxldmVsTW9scyc7XG5pbXBvcnQgeyB1cGRhdGVEaXZJbm5lckhUTUwgfSBmcm9tICcuLi91dGlscy91aS11dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VEaXZlcnNpdHlWaWV3ZXIgZXh0ZW5kcyBTZXF1ZW5jZVNlYXJjaEJhc2VWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignZGl2ZXJzaXR5Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyTW9sSWRzID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb2x1bW5OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLmNvbXB1dGVDb21wbGV0ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cbiAgICByZW5kZXIoY29tcHV0ZURhdGEgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYmVmb3JlUmVuZGVyKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXB1dGVEYXRhICYmIHRoaXMubW9sZWN1bGVDb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lcmljTW9scyA9IHlpZWxkIGdldE1vbm9tZXJpY01vbHModGhpcy5tb2xlY3VsZUNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIC8vbmVlZCB0byBjcmVhdGUgZGYgdG8gY2FsY3VsYXRlIGZpbmdlcnByaW50c1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyaWNNb2xzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW21vbm9tZXJpY01vbHNdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJNb2xJZHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpjYWxsQ2hlbURpdmVyc2l0eVNlYXJjaCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2w6IG1vbm9tZXJpY01vbHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljTmFtZTogdGhpcy5kaXN0YW5jZU1ldHJpYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5nZXJwcmludDogdGhpcy5maW5nZXJwcmludFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc0NvbCA9IERHLkNvbHVtbi5zdHJpbmcoJ3NlcXVlbmNlJywgdGhpcy5yZW5kZXJNb2xJZHMubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmluaXQoKGkpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gdGhpcy5tb2xlY3VsZUNvbHVtbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldCh0aGlzLnJlbmRlck1vbElkc1tpXSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICByZXNDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLmZvckVhY2goKHRhZykgPT4gcmVzQ29sLnNldFRhZyh0YWcsIHRoaXMubW9sZWN1bGVDb2x1bW4uZ2V0VGFnKHRhZykpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW3Jlc0NvbF0pO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVEaXZJbm5lckhUTUwodGhpcy5yb290LCByZXNEZi5wbG90LmdyaWQoKS5yb290KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlQ29tcGxldGVkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgeyBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VTZWFyY2hCYXNlVmlld2VyIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJyc7XG4gICAgICAgIHRoaXMubWV0cmljc1Byb3BlcnRpZXMgPSBbJ2Rpc3RhbmNlTWV0cmljJywgJ2ZpbmdlcnByaW50J107XG4gICAgICAgIHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzID0gWydNb3JnYW4nLCAnUGF0dGVybiddO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGFncyA9IFtERy5UQUdTLlVOSVRTLCBDLlRBR1MuQUxJR05FRCwgQy5UQUdTLlNFUEFSQVRPUiwgQy5UQUdTLkFMUEhBQkVUXTtcbiAgICAgICAgdGhpcy5maW5nZXJwcmludCA9IHRoaXMuc3RyaW5nKCdmaW5nZXJwcmludCcsIHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzWzBdLCB7IGNob2ljZXM6IHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzIH0pO1xuICAgICAgICB0aGlzLmxpbWl0ID0gdGhpcy5pbnQoJ2xpbWl0JywgMTApO1xuICAgICAgICB0aGlzLmRpc3RhbmNlTWV0cmljID0gdGhpcy5zdHJpbmcoJ2Rpc3RhbmNlTWV0cmljJywgQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1NbMF0sIHsgY2hvaWNlczogQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1MgfSk7XG4gICAgICAgIHRoaXMubW9sZWN1bGVDb2x1bW5OYW1lID0gdGhpcy5zdHJpbmcoJ21vbGVjdWxlQ29sdW1uTmFtZScpO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZGV0YWNoKCkge1xuICAgICAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICAgIG9uVGFibGVBdHRhY2hlZCgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaChERy5kZWJvdW5jZSh0aGlzLmRhdGFGcmFtZS5vblJvd3NSZW1vdmVkLCA1MCkuc3Vic2NyaWJlKChfKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IHJldHVybiB5aWVsZCB0aGlzLnJlbmRlcigpOyB9KSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXB1dGUgPSB0aGlzLm5hbWUgIT09ICdkaXZlcnNpdHknO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKERHLmRlYm91bmNlKHRoaXMuZGF0YUZyYW1lLm9uQ3VycmVudFJvd0NoYW5nZWQsIDUwKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IHJldHVybiB5aWVsZCB0aGlzLnJlbmRlcihjb21wdXRlKTsgfSkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaChERy5kZWJvdW5jZSh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24ub25DaGFuZ2VkLCA1MClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4geWllbGQgdGhpcy5yZW5kZXIoZmFsc2UpOyB9KSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKERHLmRlYm91bmNlKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KSwgNTApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuIHlpZWxkIHRoaXMucmVuZGVyKGZhbHNlKTsgfSkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uID0gdGhpcy5kYXRhRnJhbWUuY29sdW1ucy5ieVNlbVR5cGUoREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uTmFtZSA9IChfYSA9IHRoaXMubW9sZWN1bGVDb2x1bW4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0UHJvcGVydHkoJ2xpbWl0JykuZnJvbU9wdGlvbnMoeyBtaW46IDEsIG1heDogdGhpcy5kYXRhRnJhbWUucm93Q291bnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lID09PSAnbW9sZWN1bGVDb2x1bW5OYW1lJykge1xuICAgICAgICAgICAgY29uc3QgY29sID0gdGhpcy5kYXRhRnJhbWUuY29sKHByb3BlcnR5LmdldCh0aGlzKSk7XG4gICAgICAgICAgICBpZiAoY29sLnNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uID0gY29sO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICAgIHJlbmRlcihjb21wdXRlRGF0YSA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGJlZm9yZVJlbmRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5tb2xlY3VsZUNvbHVtbk5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLmNvbCh0aGlzLm1vbGVjdWxlQ29sdW1uTmFtZSkuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLmVycm9yKGAke3RoaXMubW9sZWN1bGVDb2x1bW5OYW1lfSBpcyBub3QgTWFjcm9tb2xlY3VsZSB0eXBlYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCB7IFNlcXVlbmNlU2VhcmNoQmFzZVZpZXdlciB9IGZyb20gJy4vc2VxdWVuY2Utc2VhcmNoLWJhc2Utdmlld2VyJztcbmltcG9ydCB7IGdldE1vbm9tZXJpY01vbHMgfSBmcm9tICcuLi9jYWxjdWxhdGlvbnMvbW9ub21lckxldmVsTW9scyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjcmVhdGVEaWZmZXJlbmNlQ2FudmFzLCBjcmVhdGVEaWZmZXJlbmNlc1dpdGhQb3NpdGlvbnMgfSBmcm9tICcuL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyB1cGRhdGVEaXZJbm5lckhUTUwgfSBmcm9tICcuLi91dGlscy91aS11dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VTaW1pbGFyaXR5Vmlld2VyIGV4dGVuZHMgU2VxdWVuY2VTZWFyY2hCYXNlVmlld2VyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3NpbWlsYXJpdHknKTtcbiAgICAgICAgdGhpcy5za2V0Y2hlZE1vbGVjdWxlID0gJyc7XG4gICAgICAgIHRoaXMuY3VySWR4ID0gMDtcbiAgICAgICAgdGhpcy5tb2xDb2wgPSBudWxsO1xuICAgICAgICB0aGlzLmlkeHMgPSBudWxsO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IG51bGw7XG4gICAgICAgIHRoaXMuZ3JpZFNlbGVjdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRhcmdldE1vbGVjdWxlSWR4ID0gMDtcbiAgICAgICAgdGhpcy5jb21wdXRlQ29tcGxldGVkID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5jdXRvZmYgPSB0aGlzLmZsb2F0KCdjdXRvZmYnLCAwLjAxLCB7IG1pbjogMCwgbWF4OiAxIH0pO1xuICAgICAgICB0aGlzLmhvdFNlYXJjaCA9IHRoaXMuYm9vbCgnaG90U2VhcmNoJywgdHJ1ZSk7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIHRoaXMuaG90U2VhcmNoID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICAgIHJlbmRlcihjb21wdXRlRGF0YSA9IHRydWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmJlZm9yZVJlbmRlcigpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vbGVjdWxlQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJJZHggPSB0aGlzLmRhdGFGcmFtZS5jdXJyZW50Um93SWR4ID09IC0xID8gMCA6IHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHg7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXB1dGVEYXRhICYmICF0aGlzLmdyaWRTZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXRNb2xlY3VsZUlkeCA9IHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPT0gLTEgPyAwIDogdGhpcy5kYXRhRnJhbWUuY3VycmVudFJvd0lkeDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lcmljTW9scyA9IHlpZWxkIGdldE1vbm9tZXJpY01vbHModGhpcy5tb2xlY3VsZUNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIC8vbmVlZCB0byBjcmVhdGUgZGYgdG8gY2FsY3VsYXRlIGZpbmdlcnByaW50c1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyaWNNb2xzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW21vbm9tZXJpY01vbHNdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGYgPSB5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdDaGVtOmNhbGxDaGVtU2ltaWxhcml0eVNlYXJjaCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmOiB0aGlzLmRhdGFGcmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbDogbW9ub21lcmljTW9scyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbGVjdWxlOiBtb25vbWVyaWNNb2xzLmdldCh0aGlzLnRhcmdldE1vbGVjdWxlSWR4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY05hbWU6IHRoaXMuZGlzdGFuY2VNZXRyaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pblNjb3JlOiB0aGlzLmN1dG9mZixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmdlcnByaW50OiB0aGlzLmZpbmdlcnByaW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkeHMgPSBkZi5nZXRDb2woJ2luZGV4ZXMnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY29yZXMgPSBkZi5nZXRDb2woJ3Njb3JlJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9sQ29sID0gREcuQ29sdW1uLnN0cmluZygnc2VxdWVuY2UnLCB0aGlzLmlkeHMubGVuZ3RoKS5pbml0KChpKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2EgPSB0aGlzLm1vbGVjdWxlQ29sdW1uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KChfYiA9IHRoaXMuaWR4cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldChpKSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbENvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MuZm9yRWFjaCgodGFnKSA9PiB0aGlzLm1vbENvbC5zZXRUYWcodGFnLCB0aGlzLm1vbGVjdWxlQ29sdW1uLmdldFRhZyh0YWcpKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFt0aGlzLmlkeHMsIHRoaXMubW9sQ29sLCB0aGlzLnNjb3Jlc10pO1xuICAgICAgICAgICAgICAgICAgICByZXNEZi5vbkN1cnJlbnRSb3dDaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudFJvd0lkeCA9IHJlc0RmLmNvbCgnaW5kZXhlcycpLmdldChyZXNEZi5jdXJyZW50Um93SWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvcGVydHlQYW5lbChyZXNEZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JpZCA9IHJlc0RmLnBsb3QuZ3JpZCgpO1xuICAgICAgICAgICAgICAgICAgICBncmlkLmNvbCgnaW5kZXhlcycpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0TW9sUm93ID0gKF9hID0gdGhpcy5pZHhzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0UmF3RGF0YSgpLmZpbmRJbmRleCgoaXQpID0+IGl0ID09IHRoaXMudGFyZ2V0TW9sZWN1bGVJZHgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRTY29yZUNlbGwgPSBncmlkLmNlbGwoJ3Njb3JlJywgdGFyZ2V0TW9sUm93KTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2NvcmVDZWxsLmNlbGwudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLnYuZ3JpZC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZURpdklubmVySFRNTCh0aGlzLnJvb3QsIGdyaWQucm9vdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUNvbXBsZXRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNyZWF0ZVByb3BlcnR5UGFuZWwocmVzRGYpIHtcbiAgICAgICAgY29uc3QgcHJvcFBhbmVsID0gdWkuZGl2KCk7XG4gICAgICAgIGNvbnN0IG1vbERpZmZlcmVuY2VzID0ge307XG4gICAgICAgIGNvbnN0IHVuaXRzID0gcmVzRGYuY29sKCdzZXF1ZW5jZScpLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gcmVzRGYuY29sKCdzZXF1ZW5jZScpLmdldFRhZyhDLlRBR1MuU0VQQVJBVE9SKTtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzMSA9IHNwbGl0dGVyKHRoaXMubW9sZWN1bGVDb2x1bW4uZ2V0KHRoaXMudGFyZ2V0TW9sZWN1bGVJZHgpKTtcbiAgICAgICAgY29uc3Qgc3ViUGFydHMyID0gc3BsaXR0ZXIocmVzRGYuZ2V0KCdzZXF1ZW5jZScsIHJlc0RmLmN1cnJlbnRSb3dJZHgpKTtcbiAgICAgICAgY29uc3QgY2FudmFzID0gY3JlYXRlRGlmZmVyZW5jZUNhbnZhcyhzdWJQYXJ0czEsIHN1YlBhcnRzMiwgdW5pdHMsIG1vbERpZmZlcmVuY2VzKTtcbiAgICAgICAgcHJvcFBhbmVsLmFwcGVuZCh1aS5kaXYoY2FudmFzLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzAwcHgnLCBvdmVyZmxvdzogJ3Njcm9sbCcgfSB9KSk7XG4gICAgICAgIGlmIChzdWJQYXJ0czEubGVuZ3RoICE9PSBzdWJQYXJ0czIubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdlYoW1xuICAgICAgICAgICAgICAgIHVpLmRpdlRleHQoYERpZmZlcmVudCBzZXF1ZW5jZSBsZW5ndGg6YCwgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcgfSB9KSxcbiAgICAgICAgICAgICAgICB1aS5kaXZUZXh0KGB0YXJnZXQ6ICR7c3ViUGFydHMxLmxlbmd0aH0gbW9ub21lcnNgKSxcbiAgICAgICAgICAgICAgICB1aS5kaXZUZXh0KGBzZWxlY3RlZDogJHtzdWJQYXJ0czIubGVuZ3RofSBtb25vbWVyc2ApXG4gICAgICAgICAgICBdLCB7IHN0eWxlOiB7IHBhZGRpbmdCb3R0b206ICcxMHB4JyB9IH0pKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZURpZmZlcmVuY2VzV2l0aFBvc2l0aW9ucyhtb2xEaWZmZXJlbmNlcykpO1xuICAgICAgICBjb25zdCBhY2MgPSB1aS5hY2NvcmRpb24oKTtcbiAgICAgICAgY29uc3QgYWNjSWNvbiA9IHVpLmVsZW1lbnQoJ2knKTtcbiAgICAgICAgYWNjSWNvbi5jbGFzc05hbWUgPSAnZ3Jvay1pY29uIHN2Zy1pY29uIHN2Zy12aWV3LWxheW91dCc7XG4gICAgICAgIGFjYy5hZGRUaXRsZSh1aS5zcGFuKFthY2NJY29uLCB1aS5sYWJlbChgU2ltaWxhcml0eSBzZWFyY2hgKV0pKTtcbiAgICAgICAgYWNjLmFkZFBhbmUoJ0RpZmZlcmVjZXMnLCAoKSA9PiBwcm9wUGFuZWwsIHRydWUpO1xuICAgICAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZSc7XG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VTcGFjZShzcGFjZVBhcmFtcykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGNvZGUgZGVwcmVjYXRlZCBzaW5jZSBzZXFDb2wgaXMgZW5jb2RlZFxuICAgICAgICAvKiAgICBsZXQgcHJlcGFyZWREYXRhOiBhbnk7XG4gICAgICAgICAgaWYgKCEoc3BhY2VQYXJhbXMuc2VxQ29sIS50YWdzW0RHLlRBR1MuVU5JVFNdID09PSAnSEVMTScpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXAgPSBzcGFjZVBhcmFtcy5zZXFDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgICAgICBjb25zdCBzZXBGaW5hbCA9IHNlcCA/IHNlcCA9PT0gJy4nID8gJ1xcXFxcXC4nIDogc2VwIDogJy0nO1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHNlcEZpbmFsLCAnZycpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbJ1N0cmluZyddKS5pbmNsdWRlcyhzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljKSlcbiAgICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLm1hcCgodjogc3RyaW5nKSA9PiB2LnJlcGxhY2UocmVnZXgsICcnKSkgYXMgc3RyaW5nW107XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCk7XG4gICAgICAgICAgfSAgKi9cbiAgICAgICAgY29uc3Qgc2VxdWVuY2VTcGFjZVJlc3VsdCA9IHlpZWxkIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCksIHNwYWNlUGFyYW1zLm1ldGhvZE5hbWUsIHNwYWNlUGFyYW1zLnNpbWlsYXJpdHlNZXRyaWMsIHNwYWNlUGFyYW1zLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb2xzID0gc3BhY2VQYXJhbXMuZW1iZWRBeGVzTmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkobmFtZSwgc2VxdWVuY2VTcGFjZVJlc3VsdC5lbWJlZGRpbmdbaW5kZXhdKSk7XG4gICAgICAgIHJldHVybiB7IGRpc3RhbmNlOiBzZXF1ZW5jZVNwYWNlUmVzdWx0LmRpc3RhbmNlLCBjb29yZGluYXRlczogbmV3IERHLkNvbHVtbkxpc3QoY29scykgfTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbWJlZGRpbmdDb2xzTmFtZXMoZGYpIHtcbiAgICBjb25zdCBheGVzID0gWydFbWJlZF9YJywgJ0VtYmVkX1knXTtcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGF4ZXNbMF0pKS5sZW5ndGggKyAxO1xuICAgIHJldHVybiBheGVzLm1hcCgoaXQpID0+IGAke2l0fV8ke2NvbE5hbWVJbmR9YCk7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRIZWxtTW9ub21lcnMgfSBmcm9tICcuLi9wYWNrYWdlJztcbmNvbnN0IFYyMDAwX0FUT01fTkFNRV9QT1MgPSAzMTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRNb25vbWVyaWNNb2xzKG1jb2wsIHBhdHRlcm4gPSBmYWxzZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IG1jb2wudGFnc1tDLlRBR1MuU0VQQVJBVE9SXTtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBtY29sLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyID0gYmlvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICBsZXQgbW9sVjMwMDBBcnJheTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNEaWN0ID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHVuaXRzID09PSAnaGVsbScgP1xuICAgICAgICAgICAgZ2V0SGVsbU1vbm9tZXJzKG1jb2wpIDogT2JqZWN0LmtleXMoYmlvLmdldFN0YXRzKG1jb2wsIDAsIHNwbGl0dGVyKS5mcmVxKS5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gJycpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgbW9ub21lcnNEaWN0LnNldChtb25vbWVyc1tpXSwgYCR7aSArIDF9YCk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ2hlbG0nKSB7XG4gICAgICAgICAgICBtb2xWMzAwMEFycmF5ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnSEVMTTpnZXRNb2xGaWxlcycsIHsgY29sOiBtY29sIH0pO1xuICAgICAgICAgICAgbW9sVjMwMDBBcnJheSA9IGNoYW5nZVYyMDAwVG9WMzAwMChtb2xWMzAwMEFycmF5LCBtb25vbWVyc0RpY3QsIHBhdHRlcm4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbW9sVjMwMDBBcnJheSA9IG5ldyBBcnJheShtY29sLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1jb2wubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXF1ZW5jZU1vbm9tZXJzID0gc3BsaXR0ZXIobWNvbC5nZXQoaSkpLmZpbHRlcigoaXQpID0+IGl0ICE9PSAnJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sVjMwMDAgPSBtb2xWMzAwMEZyb21Ob25IZWxtU2VxdWVuY2Uoc2VxdWVuY2VNb25vbWVycywgbW9ub21lcnNEaWN0LCBwYXR0ZXJuKTtcbiAgICAgICAgICAgICAgICBtb2xWMzAwMEFycmF5W2ldID0gbW9sVjMwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnbW9ub21lcmljTW9scycsIG1vbFYzMDAwQXJyYXkpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gbW9sVjMwMDBGcm9tTm9uSGVsbVNlcXVlbmNlKG1vbm9tZXJzLCBtb25vbWVyc0RpY3QsIHBhdHRlcm4gPSBmYWxzZSkge1xuICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgRGF0YWdyb2sgbWFjcm9tb2xlY3VsZSBoYW5kbGVyXG5cbiAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxuTSAgVjMwIEJFR0lOIENUQUJcbmA7XG4gICAgbW9sVjMwMDAgKz0gYE0gIFYzMCBDT1VOVFMgJHttb25vbWVycy5sZW5ndGh9ICR7bW9ub21lcnMubGVuZ3RoIC0gMX0gMCAwIDBcXG5gO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgQkVHSU4gQVRPTVxcbic7XG4gICAgZm9yIChsZXQgYXRvbVJvd0kgPSAwOyBhdG9tUm93SSA8IG1vbm9tZXJzLmxlbmd0aDsgYXRvbVJvd0krKykge1xuICAgICAgICBtb2xWMzAwMCArPSBwYXR0ZXJuID9cbiAgICAgICAgICAgIGBNICBWMzAgJHthdG9tUm93SSArIDF9IFIke21vbm9tZXJzRGljdC5nZXQobW9ub21lcnNbYXRvbVJvd0ldKX0gMC4wMDAgMC4wMDAgMCAwXFxuYCA6XG4gICAgICAgICAgICBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSBBdCAwLjAwMCAwLjAwMCAwIDAgTUFTUz0ke21vbm9tZXJzRGljdC5nZXQobW9ub21lcnNbYXRvbVJvd0ldKX1cXG5gO1xuICAgIH1cbiAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBBVE9NXFxuJztcbiAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIGZvciAobGV0IGJvbmRSb3dJID0gMDsgYm9uZFJvd0kgPCBtb25vbWVycy5sZW5ndGggLSAxOyBib25kUm93SSsrKVxuICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwICR7Ym9uZFJvd0kgKyAxfSAxICR7Ym9uZFJvd0kgKyAxfSAke2JvbmRSb3dJICsgMn1cXG5gO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIENUQUJcXG4nO1xuICAgIG1vbFYzMDAwICs9ICdNICBFTkQnO1xuICAgIHJldHVybiBtb2xWMzAwMDtcbn1cbmZ1bmN0aW9uIGNoYW5nZVYyMDAwVG9WMzAwMChtb2xzLCBkaWN0LCBwYXR0ZXJuID0gZmFsc2UpIHtcbiAgICBjb25zdCBtb2xzQXJyYXkgPSBuZXcgQXJyYXkobW9scy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3VyUG9zID0gMDtcbiAgICAgICAgbGV0IGVuZFBvcyA9IDA7XG4gICAgICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgICBEYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBWMzAgQkVHSU4gQ1RBQlxuYDtcbiAgICAgICAgY29uc3QgbW9sID0gbW9scy5nZXQoaSk7XG4gICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxO1xuICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgIGNvbnN0IGF0b21Nb25vbWVyQ291bnRzID0gcGFyc2VJbnQobW9sLnN1YnN0cmluZyhjdXJQb3MsIGN1clBvcyArIDMpKTtcbiAgICAgICAgY29uc3QgYm9uZE1vbm9tZXJDb3VudHMgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcyArIDMsIGN1clBvcyArIDYpKTtcbiAgICAgICAgbW9sVjMwMDAgKz0gYE0gIFYzMCBDT1VOVFMgJHthdG9tTW9ub21lckNvdW50c30gJHtib25kTW9ub21lckNvdW50c30gMCAwIDBcXG5gO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgICAgICBmb3IgKGxldCBhdG9tUm93SSA9IDA7IGF0b21Sb3dJIDwgYXRvbU1vbm9tZXJDb3VudHM7IGF0b21Sb3dJKyspIHtcbiAgICAgICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMSArIFYyMDAwX0FUT01fTkFNRV9QT1M7XG4gICAgICAgICAgICBlbmRQb3MgPSBtb2wuaW5kZXhPZignICcsIGN1clBvcyk7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyTmFtZSA9IG1vbC5zdWJzdHJpbmcoY3VyUG9zLCBlbmRQb3MpO1xuICAgICAgICAgICAgbW9sVjMwMDAgKz0gcGF0dGVybiA/XG4gICAgICAgICAgICAgICAgYE0gIFYzMCAke2F0b21Sb3dJICsgMX0gUiR7ZGljdC5nZXQobW9ub21lck5hbWUpfSAwLjAwMCAwLjAwMCAwIDBcXG5gIDpcbiAgICAgICAgICAgICAgICBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSBBdCAwLjAwMCAwLjAwMCAwIDAgTUFTUz0ke2RpY3QuZ2V0KG1vbm9tZXJOYW1lKX1cXG5gO1xuICAgICAgICB9XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEFUT01cXG4nO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgICAgICBmb3IgKGxldCBib25kUm93SSA9IDA7IGJvbmRSb3dJIDwgYm9uZE1vbm9tZXJDb3VudHM7IGJvbmRSb3dJKyspIHtcbiAgICAgICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TW9ub21lciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zLCBjdXJQb3MgKyAzKS50cmltKCkpO1xuICAgICAgICAgICAgY29uc3Qgc2Vjb25kTW9ub21lciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgMywgY3VyUG9zICsgNikudHJpbSgpKTtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gcGFyc2VJbnQobW9sLnN1YnN0cmluZyhjdXJQb3MgKyA2LCBjdXJQb3MgKyA5KS50cmltKCkpO1xuICAgICAgICAgICAgbW9sVjMwMDAgKz0gYE0gIFYzMCAke2JvbmRSb3dJICsgMX0gJHtvcmRlcn0gJHtmaXJzdE1vbm9tZXJ9ICR7c2Vjb25kTW9ub21lcn1cXG5gO1xuICAgICAgICB9XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIEVORCc7XG4gICAgICAgIG1vbHNBcnJheVtpXSA9IG1vbFYzMDAwO1xuICAgIH1cbiAgICByZXR1cm4gbW9sc0FycmF5O1xufVxuIiwiZXhwb3J0IGNvbnN0IGpzb25TZGZNb25vbWVyTGliRGljdCA9IHtcbiAgICAnbW9ub21lclR5cGUnOiBudWxsLFxuICAgICdzbWlsZXMnOiBudWxsLFxuICAgICduYW1lJzogJ01vbm9tZXJOYW1lJyxcbiAgICAnYXV0aG9yJzogbnVsbCxcbiAgICAnbW9sZmlsZSc6ICdtb2xlY3VsZScsXG4gICAgJ25hdHVyYWxBbmFsb2cnOiAnTW9ub21lck5hdHVyYWxBbmFsb2dDb2RlJyxcbiAgICAncmdyb3Vwcyc6ICdNb25vbWVyQ2FwcycsXG4gICAgJ2NyZWF0ZURhdGUnOiBudWxsLFxuICAgICdpZCc6IG51bGwsXG4gICAgJ3BvbHltZXJUeXBlJzogJ01vbm9tZXJUeXBlJyxcbiAgICAnc3ltYm9sJzogJ01vbm9tZXJDb2RlJ1xufTtcbmV4cG9ydCBjb25zdCBSR1JPVVBfRklFTEQgPSAncmdyb3Vwcyc7XG5leHBvcnQgY29uc3QgQ0FQX0dST1VQX1NNSUxFUyA9ICdjYXBHcm91cFNtaWxlcyc7XG5leHBvcnQgY29uc3QgUkdST1VQX0FMVEVSX0lEID0gJ2FsdGVybmF0ZUlkJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfTkFNRSA9ICdjYXBHcm91cE5hbWUnO1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9MQUJFTCA9ICdsYWJlbCc7XG5leHBvcnQgY29uc3QgTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBTREZfTU9OT01FUl9OQU1FID0gJ01vbm9tZXJOYW1lJztcbi8vIHJhbmdlIG9mIGhleCBudWJlcnMgdXNlZCBpbiBQZXBTZWEgbGlicmFyeSB0byBlbmRvZGUgbW9ub21lcnNcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NSU4gPSAweDEwMDtcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NQVggPSAweDQwQTtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLyogRG8gbm90IGNoYW5nZSB0aGVzZSBpbXBvcnQgbGluZXMgdG8gbWF0Y2ggZXh0ZXJuYWwgbW9kdWxlcyBpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuZXhwb3J0IGNvbnN0IF9wYWNrYWdlID0gbmV3IERHLlBhY2thZ2UoKTtcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyLCBNb25vbWVyQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFZkUmVnaW9uc1ZpZXdlciB9IGZyb20gJy4vdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQgeyBydW5LYWxpZ24gfSBmcm9tICcuL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUFsaWdubWVudCB9IGZyb20gJy4vc2VxX2FsaWduJztcbmltcG9ydCB7IGdldEVtYmVkZGluZ0NvbHNOYW1lcywgc2VxdWVuY2VTcGFjZSB9IGZyb20gJy4vYW5hbHlzaXMvc2VxdWVuY2Utc3BhY2UnO1xuaW1wb3J0IHsgZ2V0QWN0aXZpdHlDbGlmZnMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9wUGFuZWxFbGVtZW50LCBjcmVhdGVUb29sdGlwRWxlbWVudCwgZ2V0U2ltaWxhcml0aWVzTWFyaXggfSBmcm9tICcuL2FuYWx5c2lzL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYsIGVuY29kZU1vbm9tZXJzLCBnZXRNb2xmaWxlc0Zyb21TZXEsIEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi91dGlscy9hdG9taWMtd29ya3MnO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuL3V0aWxzL2NvbnZlcnQnO1xuaW1wb3J0IHsgZ2V0TWFjcm9Nb2xDb2x1bW5Qcm9wZXJ0eVBhbmVsLCByZXByZXNlbnRhdGlvbnNXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvcmVwcmVzZW50YXRpb25zJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5pbXBvcnQgeyBzcGxpdEFsaWduZWRTZXF1ZW5jZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTZXF1ZW5jZVNpbWlsYXJpdHlWaWV3ZXIgfSBmcm9tICcuL2FuYWx5c2lzL3NlcXVlbmNlLXNpbWlsYXJpdHktdmlld2VyJztcbmltcG9ydCB7IFNlcXVlbmNlRGl2ZXJzaXR5Vmlld2VyIH0gZnJvbSAnLi9hbmFseXNpcy9zZXF1ZW5jZS1kaXZlcnNpdHktdmlld2VyJztcbmltcG9ydCB7IHN1YnN0cnVjdHVyZVNlYXJjaERpYWxvZyB9IGZyb20gJy4vc3Vic3RydWN0dXJlLXNlYXJjaC9zdWJzdHJ1Y3R1cmUtc2VhcmNoJztcbmltcG9ydCB7IHNhdmVBc0Zhc3RhVUkgfSBmcm9tICcuL3V0aWxzL3NhdmUtYXMtZmFzdGEnO1xuaW1wb3J0IHsgQmlvU3Vic3RydWN0dXJlRmlsdGVyIH0gZnJvbSAnLi93aWRnZXRzL2Jpby1zdWJzdHJ1Y3R1cmUtZmlsdGVyJztcbi8vdGFnczogaW5pdFxuZXhwb3J0IGZ1bmN0aW9uIGluaXRCaW8oKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB9KTtcbn1cbi8vbmFtZTogZmFzdGFTZXF1ZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogc2VxdWVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGUsIHVuaXRzPWZhc3RhXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGZhc3RhU2VxdWVuY2VDZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBNYWNyb21vbGVjdWxlU2VxdWVuY2VDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogU2VxdWVuY2UgUmVuZGVyZXJcbi8vaW5wdXQ6IGNvbHVtbiBtb2xDb2x1bW4ge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL3RhZ3M6IHBhbmVsXG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvTW9sQ29sdW1uUHJvcGVydHlQYW5lbChtb2xDb2x1bW4pIHtcbiAgICByZXR1cm4gZ2V0TWFjcm9Nb2xDb2x1bW5Qcm9wZXJ0eVBhbmVsKG1vbENvbHVtbik7XG59XG4vL25hbWU6IHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9c2VwYXJhdG9yXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlcigpO1xufVxuZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucyA9IFtdLCBhbGxvd2VkQWxwaGFiZXRzID0gW10pIHtcbiAgICBjb25zdCBbcmVzLCBtc2ddID0gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMsIGFsbG93ZWRBbHBoYWJldHMpO1xuICAgIGlmICghcmVzKVxuICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcobXNnKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSW5wdXRDb2x1bW4oY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGxldCByZXMgPSB0cnVlO1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBjb25zdCB1aCA9IG5ldyBiaW8uVW5pdHNIYW5kbGVyKGNvbCk7XG4gICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpIHtcbiAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKG5hbWUgKyAnIGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHNlbWFudGljIHR5cGUnKTtcbiAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBub3RhdGlvbiA9IHVoLm5vdGF0aW9uO1xuICAgICAgICBpZiAoYWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAhYWxsb3dlZE5vdGF0aW9ucy5zb21lKChuKSA9PiBub3RhdGlvbi50b1VwcGVyQ2FzZSgpID09IChuLnRvVXBwZXJDYXNlKCkpKSkge1xuICAgICAgICAgICAgY29uc3Qgbm90YXRpb25BZGQgPSBhbGxvd2VkTm90YXRpb25zLmxlbmd0aCA9PSAwID8gJ2FueSBub3RhdGlvbicgOlxuICAgICAgICAgICAgICAgIChgbm90YXRpb24ke2FsbG93ZWROb3RhdGlvbnMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSAke2FsbG93ZWROb3RhdGlvbnMubWFwKChuKSA9PiBgXCIke259XCJgKS5qb2luKCcsICcpfSBgKTtcbiAgICAgICAgICAgIG1zZyA9IGAke25hbWV9ICsgJyBhbmFseXNpcyBpcyBhbGxvd2VkIGZvciBNYWNyb21vbGVjdWxlcyB3aXRoIG5vdGF0aW9uICR7bm90YXRpb25BZGR9LmA7XG4gICAgICAgICAgICByZXMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdWguaXNIZWxtKCkpIHtcbiAgICAgICAgICAgIC8vIGFscGhhYmV0IGlzIG5vdCBzcGVjaWZpZWQgZm9yICdoZWxtJyBub3RhdGlvblxuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXQgPSB1aC5hbHBoYWJldDtcbiAgICAgICAgICAgIGlmIChhbGxvd2VkQWxwaGFiZXRzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICAhYWxsb3dlZEFscGhhYmV0cy5zb21lKChhKSA9PiBhbHBoYWJldC50b1VwcGVyQ2FzZSgpID09IChhLnRvVXBwZXJDYXNlKCkpKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0QWRkID0gYWxsb3dlZEFscGhhYmV0cy5sZW5ndGggPT0gMCA/ICdhbnkgYWxwaGFiZXQnIDpcbiAgICAgICAgICAgICAgICAgICAgKGBhbHBoYWJldCR7YWxsb3dlZEFscGhhYmV0cy5sZW5ndGggPiAxID8gJ3MnIDogJyd9ICR7YWxsb3dlZEFscGhhYmV0cy5tYXAoKGEpID0+IGBcIiR7YX1cImApLmpvaW4oJywgJyl9LmApO1xuICAgICAgICAgICAgICAgIG1zZyA9IGAke25hbWV9ICsgJyBhbmFseXNpcyBpcyBhbGxvd2VkIGZvciBNYWNyb21vbGVjdWxlcyB3aXRoIGFscGhhYmV0ICR7YWxwaGFiZXRBZGR9LmA7XG4gICAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFtyZXMsIG1zZ107XG59XG4vL25hbWU6IHNlcXVlbmNlQWxpZ25tZW50XG4vL2lucHV0OiBzdHJpbmcgYWxpZ25UeXBlIHtjaG9pY2VzOiBbJ0xvY2FsIGFsaWdubWVudCcsICdHbG9iYWwgYWxpZ25tZW50J119XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuLy9pbnB1dDogc3RyaW5nIGFsaWduVGFibGUge2Nob2ljZXM6IFsnQVVUTycsICdOVUNMRU9USURFUycsICdCTE9TVU00NScsICdCTE9TVU01MCcsJ0JMT1NVTTYyJywnQkxPU1VNODAnLCdCTE9TVU05MCcsJ1BBTTMwJywnUEFNNzAnLCdQQU0yNTAnLCdTQ0hORUlERVInLCdUUkFOUyddfVxuLy9pbnB1dDogZG91YmxlIGdhcFxuLy9pbnB1dDogc3RyaW5nIHNlcTFcbi8vaW5wdXQ6IHN0cmluZyBzZXEyXG4vL291dHB1dDogb2JqZWN0IHJlc1xuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlQWxpZ25tZW50KGFsaWduVHlwZSwgYWxpZ25UYWJsZSwgZ2FwLCBzZXExLCBzZXEyKSB7XG4gICAgY29uc3QgdG9BbGlnbiA9IG5ldyBTZXF1ZW5jZUFsaWdubWVudChzZXExLCBzZXEyLCBnYXAsIGFsaWduVGFibGUpO1xuICAgIGNvbnN0IHJlcyA9IGFsaWduVHlwZSA9PSAnTG9jYWwgYWxpZ25tZW50JyA/IHRvQWxpZ24uc21pdGhXYXRlcm1hbigpIDogdG9BbGlnbi5uZWVkbGVtYW5XdW5jaCgpO1xuICAgIHJldHVybiByZXM7XG59XG4vL25hbWU6IFdlYkxvZ29cbi8vZGVzY3JpcHRpb246IFdlYkxvZ28gdmlld2VyXG4vL3RhZ3M6IHZpZXdlciwgcGFuZWxcbi8vb3V0cHV0OiB2aWV3ZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gd2ViTG9nb1ZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IGJpby5XZWJMb2dvKCk7XG59XG4vL25hbWU6IFZkUmVnaW9uc1xuLy9kZXNjcmlwdGlvbjogVi1Eb21haW4gcmVnaW9ucyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB2ZFJlZ2lvblZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IFZkUmVnaW9uc1ZpZXdlcigpO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2VxdWVuY2UgQWN0aXZpdHkgQ2xpZmZzLi4uXG4vL25hbWU6IFNlcXVlbmNlIEFjdGl2aXR5IENsaWZmc1xuLy9kZXNjcmlwdGlvbjogZGV0ZWN0IGFjdGl2aXR5IGNsaWZmc1xuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL2lucHV0OiBjb2x1bW4gYWN0aXZpdGllc1xuLy9pbnB1dDogZG91YmxlIHNpbWlsYXJpdHkgPSA4MCBbU2ltaWxhcml0eSBjdXRvZmZdXG4vL2lucHV0OiBzdHJpbmcgbWV0aG9kTmFtZSB7IGNob2ljZXM6W1wiVU1BUFwiLCBcInQtU05FXCIsIFwiU1BFXCJdIH1cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgbWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdBY3Rpdml0eSBDbGlmZnMnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW5jb2RlZENvbCA9IGVuY29kZU1vbm9tZXJzKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBpZiAoIWVuY29kZWRDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGF4ZXNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyhkZik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAnU1BFJzogeyBjeWNsZXM6IDIwMDAsIGxhbWJkYTogMS4wLCBkbGFtYmRhOiAwLjAwMDUgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGFncyA9IHtcbiAgICAgICAgICAgICd1bml0cyc6IG1hY3JvTW9sZWN1bGUudGFnc1sndW5pdHMnXSxcbiAgICAgICAgICAgICdhbGlnbmVkJzogbWFjcm9Nb2xlY3VsZS50YWdzWydhbGlnbmVkJ10sXG4gICAgICAgICAgICAnc2VwYXJhdG9yJzogbWFjcm9Nb2xlY3VsZS50YWdzWydzZXBhcmF0b3InXSxcbiAgICAgICAgICAgICdhbHBoYWJldCc6IG1hY3JvTW9sZWN1bGUudGFnc1snYWxwaGFiZXQnXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3AgPSB5aWVsZCBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCAnQWN0aXZpdHkgY2xpZmZzJywgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgJ0xldmVuc2h0ZWluJywgbWV0aG9kTmFtZSwgREcuU0VNVFlQRS5NQUNST01PTEVDVUxFLCB0YWdzLCBzZXF1ZW5jZVNwYWNlLCBnZXRTaW1pbGFyaXRpZXNNYXJpeCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGNyZWF0ZVByb3BQYW5lbEVsZW1lbnQsIG9wdGlvbnNbbWV0aG9kTmFtZV0pO1xuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZXF1ZW5jZSBTcGFjZS4uLlxuLy9uYW1lOiBTZXF1ZW5jZSBTcGFjZVxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUgfVxuLy9pbnB1dDogc3RyaW5nIG1ldGhvZE5hbWUgeyBjaG9pY2VzOltcIlVNQVBcIiwgXCJ0LVNORVwiLCBcIlNQRVwiXSB9XG4vL2lucHV0OiBzdHJpbmcgc2ltaWxhcml0eU1ldHJpYyB7IGNob2ljZXM6W1wiTGV2ZW5zaHRlaW5cIiwgXCJUYW5pbW90b1wiXSB9XG4vL2lucHV0OiBib29sIHBsb3RFbWJlZGRpbmdzID0gdHJ1ZVxuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2VUb3BNZW51KHRhYmxlLCBtYWNyb01vbGVjdWxlLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljID0gJ0xldmVuc2h0ZWluJywgcGxvdEVtYmVkZGluZ3MpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnQWN0aXZpdHkgQ2xpZmZzJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVuY29kZWRDb2wgPSBlbmNvZGVNb25vbWVycyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgaWYgKCFlbmNvZGVkQ29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbWJlZENvbHNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyh0YWJsZSk7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZW5jb2RlZENvbF0pLmNsb25lKCk7XG4gICAgICAgIGNvbnN0IGVtcHR5VmFsc0lkeHMgPSByZW1vdmVFbXB0eVN0cmluZ1Jvd3Mod2l0aG91dEVtcHR5VmFsdWVzLCBlbmNvZGVkQ29sKTtcbiAgICAgICAgY29uc3QgY2hlbVNwYWNlUGFyYW1zID0ge1xuICAgICAgICAgICAgc2VxQ29sOiB3aXRob3V0RW1wdHlWYWx1ZXMuY29sKGVuY29kZWRDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBlbWJlZENvbHNOYW1lc1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZVNwYWNlUmVzID0geWllbGQgc2VxdWVuY2VTcGFjZShjaGVtU3BhY2VQYXJhbXMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gc2VxdWVuY2VTcGFjZVJlcy5jb29yZGluYXRlcztcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZW1iZWRkaW5ncykge1xuICAgICAgICAgICAgY29uc3QgbGlzdFZhbHVlcyA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgICAgIGVtcHR5VmFsc0lkeHMuZm9yRWFjaCgoaW5kKSA9PiBsaXN0VmFsdWVzLnNwbGljZShpbmQsIDAsIG51bGwpKTtcbiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMuYWRkKERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgY29sLm5hbWUsIGxpc3RWYWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3A7XG4gICAgICAgIGlmIChwbG90RW1iZWRkaW5ncykge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIGdyb2suc2hlbGwudmlld3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodi5uYW1lID09PSB0YWJsZS5uYW1lKVxuICAgICAgICAgICAgICAgICAgICBzcCA9IHYuc2NhdHRlclBsb3QoeyB4OiBlbWJlZENvbHNOYW1lc1swXSwgeTogZW1iZWRDb2xzTmFtZXNbMV0sIHRpdGxlOiAnU2VxdWVuY2Ugc3BhY2UnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbjtcbi8vdG9wLW1lbnU6IEJpbyB8IFRvIEF0b21pYyBMZXZlbC4uLlxuLy9uYW1lOiBUbyBBdG9taWMgTGV2ZWxcbi8vZGVzY3JpcHRpb246IHJldHVybnMgbW9sZmlsZXMgZm9yIGVhY2ggbW9ub21lciBmcm9tIEhFTE0gbGlicmFyeVxuLy9pbnB1dDogZGF0YWZyYW1lIGRmIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gdG9BdG9taWNMZXZlbChkZiwgbWFjcm9Nb2xlY3VsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQ2hlbScsIG5hbWU6ICdnZXRSZEtpdE1vZHVsZScgfSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoJ1RyYW5zZm9ybWF0aW9uIHRvIGF0b21pYyBsZXZlbCByZXF1aXJlcyBwYWNrYWdlIFwiQ2hlbVwiIGluc3RhbGxlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnVG8gQXRvbWljIExldmVsJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliRmlsZSA9IHlpZWxkIF9wYWNrYWdlLmZpbGVzLnJlYWRBc1RleHQoSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliT2JqZWN0ID0gSlNPTi5wYXJzZShtb25vbWVyc0xpYkZpbGUpO1xuICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgY29uc3QgY29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdyZWdlbmVyYXRlZCcsIHJlc3VsdCk7XG4gICAgICAgIGNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NT0xFQ1VMRTtcbiAgICAgICAgY29sLnRhZ3NbREcuVEFHUy5VTklUU10gPSAnbW9sYmxvY2snO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChjb2wsIHRydWUpO1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhkZik7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBNU0EuLi5cbi8vbmFtZTogTVNBXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbi8vaW5wdXQ6IGNvbHVtbiBzZXF1ZW5jZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUsIHVuaXRzOiBbJ2Zhc3RhJ10sIGFscGhhYmV0OiBbJ0ROQScsICdSTkEnLCAnUFQnXSB9XG4vL291dHB1dDogY29sdW1uIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkodGFibGUsIGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGZ1bmMgPSBERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQmlvJywgbmFtZTogJ211bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnknIH0pWzBdO1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdNU0EnLCBbJ2Zhc3RhJ10sIFsnRE5BJywgJ1JOQScsICdQVCddKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCB1blVzZWROYW1lID0gdGFibGUuY29sdW1ucy5nZXRVbnVzZWROYW1lKGBtc2EoJHtjb2wubmFtZX0pYCk7XG4gICAgICAgIGNvbnN0IG1zYUNvbCA9IHlpZWxkIHJ1bkthbGlnbihjb2wsIGZhbHNlLCB1blVzZWROYW1lKTtcbiAgICAgICAgdGFibGUuY29sdW1ucy5hZGQobXNhQ29sKTtcbiAgICAgICAgLy8gVGhpcyBjYWxsIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBjZWxsIHJlbmRlcmVyIGFjdGl2YXRpb25cbiAgICAgICAgeWllbGQgZ3Jvay5kYXRhLmRldGVjdFNlbWFudGljVHlwZXModGFibGUpO1xuICAgICAgICAvLyBjb25zdCB0djogREcuVGFibGVWaWV3ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgLy8gdHYuZ3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBtc2FDb2w7XG4gICAgfSk7XG59XG4vL25hbWU6IEJpbyB8IE1TQVxuLy90YWdzOiBiaW8sIHBhbmVsXG4vL2lucHV0OiBjb2x1bW4gc2VxdWVuY2UgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbi8vb3V0cHV0OiBjb2x1bW4gcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gcGFuZWxNU0EoY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkoY29sLmRhdGFGcmFtZSwgY29sKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogQ29tcG9zaXRpb24gQW5hbHlzaXNcbi8vdG9wLW1lbnU6IEJpbyB8IENvbXBvc2l0aW9uIEFuYWx5c2lzXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2l0aW9uQW5hbHlzaXMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gSGlnaGVyIHByaW9yaXR5IGZvciBjb2x1bW5zIHdpdGggTVNBIGRhdGEgdG8gc2hvdyB3aXRoIFdlYkxvZ28uXG4gICAgICAgIGNvbnN0IHR2ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgY29uc3QgZGYgPSB0di5kYXRhRnJhbWU7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBjb2xMaXN0ID0gZGYuY29sdW1ucy50b0xpc3QoKS5maWx0ZXIoKGNvbCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb2xVSCA9IG5ldyBiaW8uVW5pdHNIYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICAvLyBUT0RPOiBwcmV2ZW50IGZvciBjeWNsaWMsIGJyYW5jaGVkIG9yIG11bHRpcGxlIGNoYWlucyBpbiBIZWxtXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoY29sKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdDb21wb3NpdGlvbicpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHdsVmlld2VyID0gdHYuYWRkVmlld2VyKCdXZWJMb2dvJywgeyBzZXF1ZW5jZUNvbHVtbk5hbWU6IGNvbC5uYW1lIH0pO1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC50di5kb2NrTWFuYWdlci5kb2NrKHdsVmlld2VyLCBERy5ET0NLX1RZUEUuRE9XTiwgbnVsbCwgJ0NvbXBvc2l0aW9uIGFuYWx5c2lzJywgMC4yNSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgY29sID0gbnVsbDtcbiAgICAgICAgaWYgKGNvbExpc3QubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGdyb2suc2hlbGwuZXJyb3IoJ0N1cnJlbnQgdGFibGUgZG9lcyBub3QgY29udGFpbiBzZXF1ZW5jZXMnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb2xMaXN0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbExpc3ROYW1lcyA9IGNvbExpc3QubWFwKChjb2wpID0+IGNvbC5uYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29sID0gY29sTGlzdC5maW5kKChjKSA9PiB7IHJldHVybiAobmV3IGJpby5Vbml0c0hhbmRsZXIoYykpLmlzTXNhKCk7IH0pO1xuICAgICAgICAgICAgY29uc3QgY29sSW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnQ29sdW1uJywgc2VsZWN0ZWRDb2wgPyBzZWxlY3RlZENvbC5uYW1lIDogY29sTGlzdE5hbWVzWzBdLCBjb2xMaXN0TmFtZXMpO1xuICAgICAgICAgICAgdWkuZGlhbG9nKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0NvbXBvc2l0aW9uIEFuYWx5c2lzJyxcbiAgICAgICAgICAgICAgICBoZWxwVXJsOiAnL2hlbHAvZG9tYWlucy9iaW8vbWFjcm9tb2xlY3VsZXMubWQjY29tcG9zaXRpb24tYW5hbHlzaXMnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgICAgICBjb2xJbnB1dCxcbiAgICAgICAgICAgIF0pKVxuICAgICAgICAgICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gKF9hID0gY29sTGlzdC5maW5kKChjb2wpID0+IGNvbC5uYW1lID09IGNvbElucHV0LnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoY29sKVxuICAgICAgICAgICAgICAgICAgICB5aWVsZCBoYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29sID0gY29sTGlzdFswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgaGFuZGxlcihjb2wpO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2RmIHRvIEpzb24gbGliLi4uXG4vL25hbWU6IHNkZlRvSnNvbkxpYlxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG5leHBvcnQgZnVuY3Rpb24gc2RmVG9Kc29uTGliKHRhYmxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QganNvbk1vbm9tZXJMaWJyYXJ5ID0gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogUmVwcmVzZW50YXRpb25zXG4vL3RhZ3M6IHBhbmVsLCB3aWRnZXRzXG4vL2lucHV0OiBjZWxsIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHBlcHRpZGVNb2xlY3VsZShtYWNyb01vbGVjdWxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJGaWxlID0geWllbGQgX3BhY2thZ2UuZmlsZXMucmVhZEFzVGV4dChIRUxNX0NPUkVfTElCX0ZJTEVOQU1FKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJPYmplY3QgPSBKU09OLnBhcnNlKG1vbm9tZXJzTGliRmlsZSk7XG4gICAgICAgIHJldHVybiByZXByZXNlbnRhdGlvbnNXaWRnZXQobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBpbXBvcnRGYXN0YVxuLy9kZXNjcmlwdGlvbjogT3BlbnMgRkFTVEEgZmlsZVxuLy90YWdzOiBmaWxlLWhhbmRsZXJcbi8vbWV0YS5leHQ6IGZhc3RhLCBmbmEsIGZmbiwgZmFhLCBmcm4sIGZhLCBmc3Rcbi8vaW5wdXQ6IHN0cmluZyBmaWxlQ29udGVudFxuLy9vdXRwdXQ6IGxpc3QgdGFibGVzXG5leHBvcnQgZnVuY3Rpb24gaW1wb3J0RmFzdGEoZmlsZUNvbnRlbnQpIHtcbiAgICBjb25zdCBmZmggPSBuZXcgYmlvLkZhc3RhRmlsZUhhbmRsZXIoZmlsZUNvbnRlbnQpO1xuICAgIHJldHVybiBmZmguaW1wb3J0RmFzdGEoKTtcbn1cbi8vbmFtZTogQmlvIHwgQ29udmVydCAuLi5cbi8vZnJpZW5kbHktbmFtZTogQmlvIHwgQ29udmVydFxuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRQYW5lbChjb2wpIHtcbiAgICBjb252ZXJ0KGNvbCk7XG59XG4vL25hbWU6IG1vbm9tZXJDZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IE1vbm9tZXJcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbW9ub21lckNlbGxSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gbmV3IE1vbm9tZXJDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogdGVzdERldGVjdE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IHN0cmluZyBwYXRoIHtjaG9pY2VzOiBbJ0RlbW86RmlsZXMvJywgJ1N5c3RlbTpBcHBEYXRhLyddfVxuLy9vdXRwdXQ6IGRhdGFmcmFtZSByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZShwYXRoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdUZXN0IGRldGVjdE1hY3JvbW9sZWN1bGUuLi4nKTtcbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB5aWVsZCBncm9rLmRhcGkuZmlsZXMubGlzdChwYXRoLCB0cnVlLCAnJyk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBmaWxlTGlzdFRvVGVzdCA9IGZpbGVMaXN0LmZpbHRlcigoZmkpID0+IGZpLmZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpO1xuICAgICAgICBsZXQgcmVhZHlDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVJbmZvIG9mIGZpbGVMaXN0VG9UZXN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzdiA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5yZWFkQXNUZXh0KHBhdGggKyBmaWxlSW5mby5mdWxsUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGYgPSBERy5EYXRhRnJhbWUuZnJvbUNzdihjc3YpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VtVHlwZSA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0JpbzpkZXRlY3RNYWNyb21vbGVjdWxlJywgeyBjb2w6IGNvbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLndhcm4oYGZpbGU6ICR7ZmlsZUluZm8ucGF0aH0sIGNvbHVtbjogJHtjb2wubmFtZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGBzZW1UeXBlOiAke3NlbVR5cGV9LCB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKCdmaWxlOiBcIicgKyBmaWxlSW5mby5wYXRoICsgJ1wiLCBzZW1UeXBlOiBcIicgKyBzZW1UeXBlICsgJ1wiLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3VuaXRzOiBcIicgKyBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpICsgJ1wiJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZGV0ZWN0ZWQnLCBjb2x1bW46IGNvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ2ZpbGU6ICcgKyBmaWxlSW5mby5wYXRoICsgJywgZXJyb3I6ICcgKyBleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVJbmZvLnBhdGgsIHJlc3VsdDogJ2Vycm9yJywgY29sdW1uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWFkeUNvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcGkudXBkYXRlKDEwMCAqIHJlYWR5Q291bnQgLyBmaWxlTGlzdFRvVGVzdC5sZW5ndGgsIGBUZXN0ICR7ZmlsZUluZm8uZmlsZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3Jvay5zaGVsbC5pbmZvKCdUZXN0IERlbW86RmlsZXMgZm9yIGRldGVjdE1hY3JvbW9sZWN1bGUgZmluaXNoZWQuJyk7XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHJlcyk7XG4gICAgICAgIHJlc0RmLm5hbWUgPSBgZGF0YXNldHNfZGV0ZWN0TWFjcm9tb2xlY3VsZV8ke3BhdGh9YDtcbiAgICAgICAgcmV0dXJuIHJlc0RmO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBTcGxpdCB0byBtb25vbWVyc1xuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VG9Nb25vbWVycyhjb2wpIHtcbiAgICBpZiAoIWNvbC5nZXRUYWcoXCJhbGlnbmVkXCIgLyogYmlvLlRBR1MuYWxpZ25lZCAqLykuaW5jbHVkZXMoQy5NU0EpKVxuICAgICAgICByZXR1cm4gZ3Jvay5zaGVsbC5lcnJvcignU3BsaXR0aW5nIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYWxpZ25lZCBzZXF1ZW5jZXMnKTtcbiAgICBjb25zdCB0ZW1wRGYgPSBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoY29sKTtcbiAgICBjb25zdCBvcmlnaW5hbERmID0gY29sLmRhdGFGcmFtZTtcbiAgICBmb3IgKGNvbnN0IHRlbXBDb2wgb2YgdGVtcERmLmNvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sID0gb3JpZ2luYWxEZi5jb2x1bW5zLmFkZCh0ZW1wQ29sKTtcbiAgICAgICAgbmV3Q29sLnNlbVR5cGUgPSBDLlNFTV9UWVBFUy5NT05PTUVSO1xuICAgICAgICBuZXdDb2wuc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgQy5TRU1fVFlQRVMuTU9OT01FUik7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoQy5UQUdTLkFMUEhBQkVULCBjb2wuZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgIH1cbiAgICBncm9rLnNoZWxsLnR2LmdyaWQuaW52YWxpZGF0ZSgpO1xufVxuLy9uYW1lOiBCaW86IGdldEhlbG1Nb25vbWVyc1xuLy9pbnB1dDogY29sdW1uIGNvbCB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxtTW9ub21lcnMoc2VxQ29sKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBiaW8uZ2V0U3RhdHMoc2VxQ29sLCAxLCBiaW8uc3BsaXR0ZXJBc0hlbG0pO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdGF0cy5mcmVxKTtcbn1cbi8vbmFtZTogU2VxdWVuY2VTaW1pbGFyaXR5U2VhcmNoVmlld2VyXG4vL3RhZ3M6IHZpZXdlclxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBzaW1pbGFyaXR5U2VhcmNoVmlld2VyKCkge1xuICAgIHJldHVybiBuZXcgU2VxdWVuY2VTaW1pbGFyaXR5Vmlld2VyKCk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTaW1pbGFyaXR5IFNlYXJjaC4uLlxuLy9uYW1lOiBzaW1pbGFyaXR5U2VhcmNoXG4vL2Rlc2NyaXB0aW9uOiBmaW5kcyB0aGUgbW9zdCBzaW1pbGFyIHNlcXVlbmNlXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNpbWlsYXJpdHlTZWFyY2hUb3BNZW51KCkge1xuICAgIGNvbnN0IHZpZXcgPSBncm9rLnNoZWxsLnY7XG4gICAgY29uc3Qgdmlld2VyID0gdmlldy5hZGRWaWV3ZXIoJ1NlcXVlbmNlU2ltaWxhcml0eVNlYXJjaFZpZXdlcicpO1xuICAgIHZpZXcuZG9ja01hbmFnZXIuZG9jayh2aWV3ZXIsICdkb3duJyk7XG59XG4vL25hbWU6IFNlcXVlbmNlRGl2ZXJzaXR5U2VhcmNoVmlld2VyXG4vL3RhZ3M6IHZpZXdlclxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBkaXZlcnNpdHlTZWFyY2hWaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBTZXF1ZW5jZURpdmVyc2l0eVZpZXdlcigpO1xufVxuLy90b3AtbWVudTogQmlvIHwgRGl2ZXJzaXR5IFNlYXJjaC4uLlxuLy9uYW1lOiBkaXZlcnNpdHlTZWFyY2hcbi8vZGVzY3JpcHRpb246IGZpbmRzIHRoZSBtb3N0IGRpdmVyc2UgbW9sZWN1bGVzXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGRpdmVyc2l0eVNlYXJjaFRvcE1lbnUoKSB7XG4gICAgY29uc3QgdmlldyA9IGdyb2suc2hlbGwudjtcbiAgICBjb25zdCB2aWV3ZXIgPSB2aWV3LmFkZFZpZXdlcignU2VxdWVuY2VEaXZlcnNpdHlTZWFyY2hWaWV3ZXInKTtcbiAgICB2aWV3LmRvY2tNYW5hZ2VyLmRvY2sodmlld2VyLCAnZG93bicpO1xufVxuLy9uYW1lOiBCaW8gfCBTdWJzdHJ1Y3R1cmUgc2VhcmNoIC4uLlxuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIGJpb1N1YnN0cnVjdHVyZVNlYXJjaChjb2wpIHtcbiAgICBzdWJzdHJ1Y3R1cmVTZWFyY2hEaWFsb2coY29sKTtcbn1cbi8vbmFtZTogc2F2ZUFzRmFzdGFcbi8vZGVzY3JpcHRpb246IEFzIEZBU1RBLi4uXG4vL3RhZ3M6IGZpbGVFeHBvcnRlclxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBc0Zhc3RhKCkge1xuICAgIHNhdmVBc0Zhc3RhVUkoKTtcbn1cbi8vbmFtZTogQmlvU3Vic3RydWN0dXJlRmlsdGVyXG4vL2Rlc2NyaXB0aW9uOiBTdWJzdHJ1Y3R1cmUgZmlsdGVyIGZvciBsaW5lYXIgbWFjcm9tb2xlY3VsZXNcbi8vdGFnczogZmlsdGVyXG4vL291dHB1dDogZmlsdGVyIHJlc3VsdFxuLy9tZXRhLnNlbVR5cGU6IE1hY3JvbW9sZWN1bGVcbmV4cG9ydCBmdW5jdGlvbiBiaW9TdWJzdHJ1Y3R1cmVGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBCaW9TdWJzdHJ1Y3R1cmVGaWx0ZXIoKTtcbn1cbiIsImNsYXNzIENlbGwge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRJID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRKID0gMDtcbiAgICB9XG59XG47XG5leHBvcnQgY2xhc3MgQWxpZ25lZCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBzY29yZV8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLnNjb3JlID0gc2NvcmVfO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUFsaWdubWVudCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBnYXBfLCBhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICB0aGlzLnNlcTEgPSAnJztcbiAgICAgICAgdGhpcy5zZXEyID0gJyc7XG4gICAgICAgIHRoaXMuZ2FwID0gMTtcbiAgICAgICAgdGhpcy5sZW4xID0gMDtcbiAgICAgICAgdGhpcy5sZW4yID0gMDtcbiAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgdGhpcy5kcEdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHt9O1xuICAgICAgICB0aGlzLkJMT1NVTTQ1ID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgMCwgLTEsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAzLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTIsIC0xLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCA2LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTIsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgMiwgNywgLTMsIDAsIDIsIC0xLCAwLCAtNCwgLTMsIDAsIC0zLCAtNCwgLTEsIDAsIC0xLCAtNCwgLTIsIC0zLCA1LCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0zLCAxMiwgLTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTQsIC0xLCAtMSwgLTUsIC0zLCAtMSwgLTIsIC0zLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNiwgMiwgLTIsIDEsIC0yLCAtMiwgMSwgMCwgLTQsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMywgMCwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTMsIDIsIDYsIC0yLCAwLCAtMywgLTIsIDEsIC0yLCAtMywgMCwgMCwgLTEsIC0zLCAtMiwgLTMsIDEsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA3LCAtMiwgLTQsIC0zLCAtMiwgLTIsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgMCwgLTMsIDEsIDAsIC0yLCAxMCwgLTMsIC0yLCAtMSwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMywgMCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtNCwgLTMsIC0yLCAtMywgLTQsIC0zLCA1LCAyLCAtMywgMiwgMCwgLTIsIC0yLCAtMSwgLTIsIDAsIDMsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtMywgLTIsIC0yLCAtMiwgLTMsIC0yLCAyLCA1LCAtMywgMiwgMSwgLTMsIC0zLCAtMSwgLTIsIDAsIDEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgMCwgLTMsIDEsIDEsIC0yLCAtMSwgLTMsIC0zLCA1LCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTIsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIDAsIDIsIDIsIC0xLCA2LCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMSwgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC00LCAtMiwgLTQsIC0zLCAtMywgLTIsIDAsIDEsIC0zLCAwLCA4LCAtMywgLTIsIC0xLCAxLCAzLCAwLCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC00LCAtMSwgMCwgLTIsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDksIC0xLCAtMSwgLTMsIC0zLCAtMywgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgMCwgMCwgLTEsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTEsIDQsIDIsIC00LCAtMiwgLTEsIDAsIDAsIDAsIC01XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMiwgNSwgLTMsIC0xLCAwLCAwLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTQsIC00LCAtNSwgLTIsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTIsIC0yLCAxLCAtMywgLTQsIC0zLCAxNSwgMywgLTMsIC00LCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDIsIDAsIDAsIC0xLCAwLCAzLCAtMywgLTIsIC0xLCAzLCA4LCAtMSwgLTIsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTMsIC0xLCAtMywgLTMsIC0zLCAtMywgMywgMSwgLTIsIDEsIDAsIC0zLCAtMSwgMCwgLTMsIC0xLCA1LCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA0LCA1LCAtMiwgMCwgMSwgLTEsIDAsIC0zLCAtMywgMCwgLTIsIC0zLCAtMiwgMCwgMCwgLTQsIC0yLCAtMywgNCwgMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDQsIDQsIC0yLCAwLCAtMywgLTIsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMiwgLTIsIC0zLCAyLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTUwID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDcsIC0xLCAtMiwgLTQsIDEsIDAsIC0zLCAwLCAtNCwgLTMsIDMsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMywgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA3LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTMsIC00LCAwLCAtMiwgLTQsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMiwgOCwgLTQsIDAsIDIsIC0xLCAtMSwgLTQsIC00LCAtMSwgLTQsIC01LCAtMSwgMCwgLTEsIC01LCAtMywgLTQsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMiwgLTQsIDEzLCAtMywgLTMsIC0zLCAtMywgLTIsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMywgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA3LCAyLCAtMiwgMSwgLTMsIC0yLCAyLCAwLCAtNCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTMsIDAsIC00LCAtMywgMSwgLTIsIC0zLCAtMSwgLTEsIC0xLCAtMywgLTIsIC0zLCAxLCA1LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtMSwgLTMsIC0yLCAtMywgOCwgLTIsIC00LCAtNCwgLTIsIC0zLCAtNCwgLTIsIDAsIC0yLCAtMywgLTMsIC00LCAtMSwgLTIsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMSwgMCwgLTIsIDEwLCAtNCwgLTMsIDAsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTMsIDIsIC00LCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTMsIC00LCAtMiwgLTMsIC00LCAtNCwgLTQsIDUsIDIsIC0zLCAyLCAwLCAtMywgLTMsIC0xLCAtMywgLTEsIDQsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTQsIC0zLCAyLCA1LCAtMywgMywgMSwgLTQsIC0zLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDMsIDAsIC0xLCAtMywgMiwgMSwgLTIsIDAsIC0zLCAtMywgNiwgLTIsIC00LCAtMSwgMCwgLTEsIC0zLCAtMiwgLTMsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTQsIC0yLCAwLCAtMiwgLTMsIC0xLCAyLCAzLCAtMiwgNywgMCwgLTMsIC0yLCAtMSwgLTEsIDAsIDEsIC0zLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTIsIC00LCAtMywgLTQsIC0xLCAwLCAxLCAtNCwgMCwgOCwgLTQsIC0zLCAtMiwgMSwgNCwgLTEsIC00LCAtNCwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtMSwgLTQsIC0xLCAtMSwgLTIsIC0yLCAtMywgLTQsIC0xLCAtMywgLTQsIDEwLCAtMSwgLTEsIC00LCAtMywgLTMsIC0yLCAtMSwgLTIsIC01XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIC0xLCAwLCAtMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0xLCA1LCAyLCAtNCwgLTIsIC0yLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAyLCA1LCAtMywgLTIsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTUsIC01LCAtMSwgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtNCwgLTMsIDE1LCAyLCAtMywgLTUsIC0yLCAtMywgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgMCwgNCwgLTMsIC0yLCAtMiwgMiwgOCwgLTEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC00LCAtMSwgLTMsIC0zLCAtNCwgLTQsIDQsIDEsIC0zLCAxLCAtMSwgLTMsIC0yLCAwLCAtMywgLTEsIDUsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDQsIDUsIC0zLCAwLCAxLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0yLCAwLCAwLCAtNSwgLTMsIC00LCA1LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTEsIC00LCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIDAsIC0zLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU02MiA9IFtbNCwgLTEsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMSwgNSwgMCwgLTIsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAyLCAtMSwgLTMsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTMsIC0xLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAwLCA2LCAxLCAtMywgMCwgMCwgMCwgMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCAzLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMSwgNiwgLTMsIDAsIDIsIC0xLCAtMSwgLTMsIC00LCAtMSwgLTMsIC0zLCAtMSwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgOSwgLTMsIC00LCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMiwgLTMsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTMsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNSwgMiwgLTIsIDAsIC0zLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMiwgMCwgMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTQsIDIsIDUsIC0yLCAwLCAtMywgLTMsIDEsIC0yLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMSwgLTMsIC0yLCAtMiwgNiwgLTIsIC00LCAtNCwgLTIsIC0zLCAtMywgLTIsIDAsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMCwgMCwgLTIsIDgsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTIsIC0xLCAtMiwgLTIsIDIsIC0zLCAwLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtMSwgLTMsIC0zLCAtNCwgLTMsIDQsIDIsIC0zLCAxLCAwLCAtMywgLTIsIC0xLCAtMywgLTEsIDMsIC0zLCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtNCwgLTEsIC0yLCAtMywgLTQsIC0zLCAyLCA0LCAtMiwgMiwgMCwgLTMsIC0yLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDIsIDAsIC0xLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTIsIDUsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAwLCAxLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTIsIC0zLCAtMSwgMCwgLTIsIC0zLCAtMiwgMSwgMiwgLTEsIDUsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgMSwgLTMsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0zLCAtMywgLTEsIDAsIDAsIC0zLCAwLCA2LCAtNCwgLTIsIC0yLCAxLCAzLCAtMSwgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0xLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtNCwgNywgLTEsIC0xLCAtNCwgLTMsIC0yLCAtMiwgLTEsIC0yLCAtNF0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0yLCAwLCAtMSwgLTIsIC0xLCA0LCAxLCAtMywgLTIsIC0yLCAwLCAwLCAwLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDEsIDUsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtNF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTQsIC0yLCAtMiwgLTMsIC0yLCAtMiwgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtMywgLTIsIDExLCAyLCAtMywgLTQsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC0zLCAtMiwgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgLTEsIDMsIC0zLCAtMiwgLTIsIDIsIDcsIC0xLCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgLTMsIC0zLCAzLCAxLCAtMiwgMSwgLTEsIC0yLCAtMiwgMCwgLTMsIC0xLCA0LCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0xLCAzLCA0LCAtMywgMCwgMSwgLTEsIDAsIC0zLCAtNCwgMCwgLTMsIC0zLCAtMiwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCAzLCA0LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTMsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMiwgMSwgNCwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIDAsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU04MCA9IFtbNywgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtNCwgLTEsIDIsIDAsIC01LCAtNCwgLTEsIC0zLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMywgOSwgLTEsIC0zLCAtNiwgMSwgLTEsIC00LCAwLCAtNSwgLTQsIDMsIC0zLCAtNSwgLTMsIC0yLCAtMiwgLTUsIC00LCAtNCwgLTIsIDAsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0xLCA5LCAyLCAtNSwgMCwgLTEsIC0xLCAxLCAtNiwgLTYsIDAsIC00LCAtNiwgLTQsIDEsIDAsIC03LCAtNCwgLTUsIDUsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtMywgMiwgMTAsIC03LCAtMSwgMiwgLTMsIC0yLCAtNywgLTcsIC0yLCAtNiwgLTYsIC0zLCAtMSwgLTIsIC04LCAtNiwgLTYsIDYsIDEsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC02LCAtNSwgLTcsIDEzLCAtNSwgLTcsIC02LCAtNywgLTIsIC0zLCAtNiwgLTMsIC00LCAtNiwgLTIsIC0yLCAtNSwgLTUsIC0yLCAtNiwgLTcsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTIsIDEsIDAsIC0xLCAtNSwgOSwgMywgLTQsIDEsIC01LCAtNCwgMiwgLTEsIC01LCAtMywgLTEsIC0xLCAtNCwgLTMsIC00LCAtMSwgNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0xLCAyLCAtNywgMywgOCwgLTQsIDAsIC02LCAtNiwgMSwgLTQsIC02LCAtMiwgLTEsIC0yLCAtNiwgLTUsIC00LCAxLCA2LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC00LCAtMSwgLTMsIC02LCAtNCwgLTQsIDksIC00LCAtNywgLTcsIC0zLCAtNSwgLTYsIC01LCAtMSwgLTMsIC02LCAtNiwgLTYsIC0yLCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMywgMCwgMSwgLTIsIC03LCAxLCAwLCAtNCwgMTIsIC02LCAtNSwgLTEsIC00LCAtMiwgLTQsIC0yLCAtMywgLTQsIDMsIC01LCAtMSwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTUsIC02LCAtNywgLTIsIC01LCAtNiwgLTcsIC02LCA3LCAyLCAtNSwgMiwgLTEsIC01LCAtNCwgLTIsIC01LCAtMywgNCwgLTYsIC02LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTYsIC03LCAtMywgLTQsIC02LCAtNywgLTUsIDIsIDYsIC00LCAzLCAwLCAtNSwgLTQsIC0zLCAtNCwgLTIsIDEsIC03LCAtNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTIsIC02LCAyLCAxLCAtMywgLTEsIC01LCAtNCwgOCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNiwgLTQsIC00LCAtMSwgMSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNiwgLTMsIC0xLCAtNCwgLTUsIC00LCAyLCAzLCAtMywgOSwgMCwgLTQsIC0zLCAtMSwgLTMsIC0zLCAxLCAtNSwgLTMsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNiwgLTYsIC00LCAtNSwgLTYsIC02LCAtMiwgLTEsIDAsIC01LCAwLCAxMCwgLTYsIC00LCAtNCwgMCwgNCwgLTIsIC02LCAtNiwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC00LCAtMywgLTYsIC0zLCAtMiwgLTUsIC00LCAtNSwgLTUsIC0yLCAtNCwgLTYsIDEyLCAtMiwgLTMsIC03LCAtNiwgLTQsIC00LCAtMiwgLTMsIC04XSxcbiAgICAgICAgICAgIFsyLCAtMiwgMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMiwgLTQsIC00LCAtMSwgLTMsIC00LCAtMiwgNywgMiwgLTYsIC0zLCAtMywgMCwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0yLCAtMiwgLTEsIC0yLCAtMywgLTMsIC0yLCAtMywgLTEsIC0xLCAtNCwgLTMsIDIsIDgsIC01LCAtMywgMCwgLTEsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTcsIC04LCAtNSwgLTQsIC02LCAtNiwgLTQsIC01LCAtNCwgLTYsIC0zLCAwLCAtNywgLTYsIC01LCAxNiwgMywgLTUsIC04LCAtNSwgLTUsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNiwgLTUsIC0zLCAtNSwgLTYsIDMsIC0zLCAtMiwgLTQsIC0zLCA0LCAtNiwgLTMsIC0zLCAzLCAxMSwgLTMsIC01LCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC01LCAtNiwgLTIsIC00LCAtNCwgLTYsIC01LCA0LCAxLCAtNCwgMSwgLTIsIC00LCAtMywgMCwgLTUsIC0zLCA3LCAtNiwgLTQsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0yLCA1LCA2LCAtNiwgLTEsIDEsIC0yLCAtMSwgLTYsIC03LCAtMSwgLTUsIC02LCAtNCwgMCwgLTEsIC04LCAtNSwgLTYsIDYsIDAsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAxLCAtNywgNSwgNiwgLTQsIDAsIC02LCAtNSwgMSwgLTMsIC02LCAtMiwgLTEsIC0yLCAtNSwgLTQsIC00LCAwLCA2LCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTUsIC0zLCAtMiwgLTMsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTkwID0gW1s1LCAtMiwgLTIsIC0zLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMSwgMSwgMCwgLTQsIC0zLCAtMSwgLTIsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCA2LCAtMSwgLTMsIC01LCAxLCAtMSwgLTMsIDAsIC00LCAtMywgMiwgLTIsIC00LCAtMywgLTEsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDcsIDEsIC00LCAwLCAtMSwgLTEsIDAsIC00LCAtNCwgMCwgLTMsIC00LCAtMywgMCwgMCwgLTUsIC0zLCAtNCwgNCwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC0zLCAxLCA3LCAtNSwgLTEsIDEsIC0yLCAtMiwgLTUsIC01LCAtMSwgLTQsIC01LCAtMywgLTEsIC0yLCAtNiwgLTQsIC01LCA0LCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTQsIC01LCA5LCAtNCwgLTYsIC00LCAtNSwgLTIsIC0yLCAtNCwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtNCwgLTQsIC0yLCAtNCwgLTUsIC0zLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIC0xLCAtNCwgNywgMiwgLTMsIDEsIC00LCAtMywgMSwgMCwgLTQsIC0yLCAtMSwgLTEsIC0zLCAtMywgLTMsIC0xLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDEsIC02LCAyLCA2LCAtMywgLTEsIC00LCAtNCwgMCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNSwgLTQsIC0zLCAwLCA0LCAtMiwgLTZdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIDYsIC0zLCAtNSwgLTUsIC0yLCAtNCwgLTUsIC0zLCAtMSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgMCwgMCwgLTIsIC01LCAxLCAtMSwgLTMsIDgsIC00LCAtNCwgLTEsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTMsIDEsIC00LCAtMSwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgLTIsIC00LCAtNCwgLTUsIC00LCA1LCAxLCAtNCwgMSwgLTEsIC00LCAtMywgLTEsIC00LCAtMiwgMywgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC01LCAtMiwgLTMsIC00LCAtNSwgLTQsIDEsIDUsIC0zLCAyLCAwLCAtNCwgLTMsIC0yLCAtMywgLTIsIDAsIC01LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC00LCAxLCAwLCAtMiwgLTEsIC00LCAtMywgNiwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNSwgLTMsIC0zLCAtMSwgMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC0zLCAtNCwgLTIsIDAsIC0zLCAtNCwgLTMsIDEsIDIsIC0yLCA3LCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0yLCAwLCAtNCwgLTIsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNCwgLTUsIC0zLCAtNCwgLTUsIC01LCAtMiwgLTEsIDAsIC00LCAtMSwgNywgLTQsIC0zLCAtMywgMCwgMywgLTIsIC00LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0zLCAtMywgLTQsIC0yLCAtMiwgLTMsIC0zLCAtNCwgLTQsIC0yLCAtMywgLTQsIDgsIC0yLCAtMiwgLTUsIC00LCAtMywgLTMsIC0yLCAtMiwgLTZdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTMsIC0yLCA1LCAxLCAtNCwgLTMsIC0yLCAwLCAtMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMiwgMSwgNiwgLTQsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTUsIC02LCAtNCwgLTMsIC01LCAtNCwgLTMsIC00LCAtMywgLTUsIC0yLCAwLCAtNSwgLTQsIC00LCAxMSwgMiwgLTMsIC02LCAtNCwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIC0zLCAtNCwgLTQsIC0zLCAtNCwgLTUsIDEsIC0yLCAtMiwgLTMsIC0yLCAzLCAtNCwgLTMsIC0yLCAyLCA4LCAtMywgLTQsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC01LCAtMiwgLTMsIC0zLCAtNSwgLTQsIDMsIDAsIC0zLCAwLCAtMiwgLTMsIC0yLCAtMSwgLTMsIC0zLCA1LCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0yLCA0LCA0LCAtNCwgLTEsIDAsIC0yLCAtMSwgLTUsIC01LCAtMSwgLTQsIC00LCAtMywgMCwgLTEsIC02LCAtNCwgLTQsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDAsIC0xLCAwLCAtNSwgNCwgNCwgLTMsIDAsIC00LCAtNCwgMSwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNCwgLTMsIC0zLCAwLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgMV1dO1xuICAgICAgICB0aGlzLk5VQ0xFT1RJREVTID0gW1sxLCAtMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIDEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAxXV07XG4gICAgICAgIHRoaXMuUEFNMzAgPSBbWzYsIC03LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0yLCAtNywgLTUsIC02LCAtNywgLTUsIC04LCAtMiwgMCwgLTEsIC0xMywgLTgsIC0yLCAtMywgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy03LCA4LCAtNiwgLTEwLCAtOCwgLTIsIC05LCAtOSwgLTIsIC01LCAtOCwgMCwgLTQsIC05LCAtNCwgLTMsIC02LCAtMiwgLTEwLCAtOCwgLTcsIC00LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTYsIDgsIDIsIC0xMSwgLTMsIC0yLCAtMywgMCwgLTUsIC03LCAtMSwgLTksIC05LCAtNiwgMCwgLTIsIC04LCAtNCwgLTgsIDYsIC0zLCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTEwLCAyLCA4LCAtMTQsIC0yLCAyLCAtMywgLTQsIC03LCAtMTIsIC00LCAtMTEsIC0xNSwgLTgsIC00LCAtNSwgLTE1LCAtMTEsIC04LCA2LCAxLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC0xMSwgLTE0LCAxMCwgLTE0LCAtMTQsIC05LCAtNywgLTYsIC0xNSwgLTE0LCAtMTMsIC0xMywgLTgsIC0zLCAtOCwgLTE1LCAtNCwgLTYsIC0xMiwgLTE0LCAtOSwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTIsIC0zLCAtMiwgLTE0LCA4LCAxLCAtNywgMSwgLTgsIC01LCAtMywgLTQsIC0xMywgLTMsIC01LCAtNSwgLTEzLCAtMTIsIC03LCAtMywgNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC05LCAtMiwgMiwgLTE0LCAxLCA4LCAtNCwgLTUsIC01LCAtOSwgLTQsIC03LCAtMTQsIC01LCAtNCwgLTYsIC0xNywgLTgsIC02LCAxLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0zLCAtMywgLTksIC03LCAtNCwgNiwgLTksIC0xMSwgLTEwLCAtNywgLTgsIC05LCAtNiwgLTIsIC02LCAtMTUsIC0xNCwgLTUsIC0zLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTcsIC0yLCAwLCAtNCwgLTcsIDEsIC01LCAtOSwgOSwgLTksIC02LCAtNiwgLTEwLCAtNiwgLTQsIC02LCAtNywgLTcsIC0zLCAtNiwgLTEsIC0xLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNywgLTYsIC04LCAtNSwgLTExLCAtOSwgOCwgLTEsIC02LCAtMSwgLTIsIC04LCAtNywgLTIsIC0xNCwgLTYsIDIsIC02LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTYsIC04LCAtNywgLTEyLCAtMTUsIC01LCAtOSwgLTEwLCAtNiwgLTEsIDcsIC04LCAxLCAtMywgLTcsIC04LCAtNywgLTYsIC03LCAtMiwgLTksIC03LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNywgMCwgLTEsIC00LCAtMTQsIC0zLCAtNCwgLTcsIC02LCAtNiwgLTgsIDcsIC0yLCAtMTQsIC02LCAtNCwgLTMsIC0xMiwgLTksIC05LCAtMiwgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNCwgLTksIC0xMSwgLTEzLCAtNCwgLTcsIC04LCAtMTAsIC0xLCAxLCAtMiwgMTEsIC00LCAtOCwgLTUsIC00LCAtMTMsIC0xMSwgLTEsIC0xMCwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy04LCAtOSwgLTksIC0xNSwgLTEzLCAtMTMsIC0xNCwgLTksIC02LCAtMiwgLTMsIC0xNCwgLTQsIDksIC0xMCwgLTYsIC05LCAtNCwgMiwgLTgsIC0xMCwgLTEzLCAtOCwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC02LCAtOCwgLTgsIC0zLCAtNSwgLTYsIC00LCAtOCwgLTcsIC02LCAtOCwgLTEwLCA4LCAtMiwgLTQsIC0xNCwgLTEzLCAtNiwgLTcsIC00LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFswLCAtMywgMCwgLTQsIC0zLCAtNSwgLTQsIC0yLCAtNiwgLTcsIC04LCAtNCwgLTUsIC02LCAtMiwgNiwgMCwgLTUsIC03LCAtNiwgLTEsIC01LCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC0yLCAtNSwgLTgsIC01LCAtNiwgLTYsIC03LCAtMiwgLTcsIC0zLCAtNCwgLTksIC00LCAwLCA3LCAtMTMsIC02LCAtMywgLTMsIC02LCAtNCwgLTE3XSxcbiAgICAgICAgICAgIFstMTMsIC0yLCAtOCwgLTE1LCAtMTUsIC0xMywgLTE3LCAtMTUsIC03LCAtMTQsIC02LCAtMTIsIC0xMywgLTQsIC0xNCwgLTUsIC0xMywgMTMsIC01LCAtMTUsIC0xMCwgLTE0LCAtMTEsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC0xMCwgLTQsIC0xMSwgLTQsIC0xMiwgLTgsIC0xNCwgLTMsIC02LCAtNywgLTksIC0xMSwgMiwgLTEzLCAtNywgLTYsIC01LCAxMCwgLTcsIC02LCAtOSwgLTcsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC04LCAtOCwgLTgsIC02LCAtNywgLTYsIC01LCAtNiwgMiwgLTIsIC05LCAtMSwgLTgsIC02LCAtNiwgLTMsIC0xNSwgLTcsIDcsIC04LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC03LCA2LCA2LCAtMTIsIC0zLCAxLCAtMywgLTEsIC02LCAtOSwgLTIsIC0xMCwgLTEwLCAtNywgLTEsIC0zLCAtMTAsIC02LCAtOCwgNiwgMCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgMSwgLTE0LCA2LCA2LCAtNSwgLTEsIC02LCAtNywgLTQsIC01LCAtMTMsIC00LCAtNSwgLTYsIC0xNCwgLTksIC02LCAwLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTYsIC0zLCAtNSwgLTksIC01LCAtNSwgLTUsIC01LCAtNSwgLTYsIC01LCAtNSwgLTgsIC01LCAtMywgLTQsIC0xMSwgLTcsIC01LCAtNSwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAxXV07XG4gICAgICAgIHRoaXMuUEFNNzAgPSBbWzUsIC00LCAtMiwgLTEsIC00LCAtMiwgLTEsIDAsIC00LCAtMiwgLTQsIC00LCAtMywgLTYsIDAsIDEsIDEsIC05LCAtNSwgLTEsIC0xLCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDgsIC0zLCAtNiwgLTUsIDAsIC01LCAtNiwgMCwgLTMsIC02LCAyLCAtMiwgLTcsIC0yLCAtMSwgLTQsIDAsIC03LCAtNSwgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIDYsIDMsIC03LCAtMSwgMCwgLTEsIDEsIC0zLCAtNSwgMCwgLTUsIC02LCAtMywgMSwgMCwgLTYsIC0zLCAtNSwgNSwgLTEsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNiwgMywgNiwgLTksIDAsIDMsIC0xLCAtMSwgLTUsIC04LCAtMiwgLTcsIC0xMCwgLTQsIC0xLCAtMiwgLTEwLCAtNywgLTUsIDUsIDIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNSwgLTcsIC05LCA5LCAtOSwgLTksIC02LCAtNSwgLTQsIC0xMCwgLTksIC05LCAtOCwgLTUsIC0xLCAtNSwgLTExLCAtMiwgLTQsIC04LCAtOSwgLTYsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAwLCAtOSwgNywgMiwgLTQsIDIsIC01LCAtMywgLTEsIC0yLCAtOSwgLTEsIC0zLCAtMywgLTgsIC04LCAtNCwgLTEsIDUsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgMCwgMywgLTksIDIsIDYsIC0yLCAtMiwgLTQsIC02LCAtMiwgLTQsIC05LCAtMywgLTIsIC0zLCAtMTEsIC02LCAtNCwgMiwgNSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMCwgLTYsIC0xLCAtMSwgLTYsIC00LCAtMiwgNiwgLTYsIC02LCAtNywgLTUsIC02LCAtNywgLTMsIDAsIC0zLCAtMTAsIC05LCAtMywgLTEsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgMCwgMSwgLTEsIC01LCAyLCAtMiwgLTYsIDgsIC02LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0zLCAtNCwgLTUsIC0xLCAtNCwgMCwgMSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTUsIC00LCAtNSwgLTQsIC02LCAtNiwgNywgMSwgLTQsIDEsIDAsIC01LCAtNCwgLTEsIC05LCAtNCwgMywgLTQsIC00LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgLTYsIC01LCAtOCwgLTEwLCAtMywgLTYsIC03LCAtNCwgMSwgNiwgLTUsIDIsIC0xLCAtNSwgLTYsIC00LCAtNCwgLTQsIDAsIC02LCAtNCwgLTQsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDIsIDAsIC0yLCAtOSwgLTEsIC0yLCAtNSwgLTMsIC00LCAtNSwgNiwgMCwgLTksIC00LCAtMiwgLTEsIC03LCAtNywgLTYsIC0xLCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTMsIC0yLCAtNSwgLTcsIC05LCAtMiwgLTQsIC02LCAtNiwgMSwgMiwgMCwgMTAsIC0yLCAtNSwgLTMsIC0yLCAtOCwgLTcsIDAsIC02LCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTYsIC03LCAtNiwgLTEwLCAtOCwgLTksIC05LCAtNywgLTQsIDAsIC0xLCAtOSwgLTIsIDgsIC03LCAtNCwgLTYsIC0yLCA0LCAtNSwgLTcsIC05LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFswLCAtMiwgLTMsIC00LCAtNSwgLTEsIC0zLCAtMywgLTIsIC01LCAtNSwgLTQsIC01LCAtNywgNywgMCwgLTIsIC05LCAtOSwgLTMsIC00LCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIC0xLCAtMSwgLTMsIC0yLCAwLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAwLCA1LCAyLCAtMywgLTUsIC0zLCAwLCAtMiwgLTEsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTQsIDAsIC0yLCAtNSwgLTMsIC0zLCAtMywgLTQsIC0xLCAtNCwgLTEsIC0yLCAtNiwgLTIsIDIsIDYsIC04LCAtNCwgLTEsIC0xLCAtMywgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTksIDAsIC02LCAtMTAsIC0xMSwgLTgsIC0xMSwgLTEwLCAtNSwgLTksIC00LCAtNywgLTgsIC0yLCAtOSwgLTMsIC04LCAxMywgLTMsIC0xMCwgLTcsIC0xMCwgLTcsIC0xMV0sXG4gICAgICAgICAgICBbLTUsIC03LCAtMywgLTcsIC0yLCAtOCwgLTYsIC05LCAtMSwgLTQsIC00LCAtNywgLTcsIDQsIC05LCAtNSwgLTQsIC0zLCA5LCAtNSwgLTQsIC03LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTUsIC01LCAtNSwgLTQsIC00LCAtNCwgLTMsIC00LCAzLCAwLCAtNiwgMCwgLTUsIC0zLCAtMywgLTEsIC0xMCwgLTUsIDYsIC01LCAtNCwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC00LCA1LCA1LCAtOCwgLTEsIDIsIC0xLCAwLCAtNCwgLTYsIC0xLCAtNiwgLTcsIC00LCAwLCAtMSwgLTcsIC00LCAtNSwgNSwgMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMSwgMiwgLTksIDUsIDUsIC0zLCAxLCAtNCwgLTQsIC0yLCAtMywgLTksIC0yLCAtMiwgLTMsIC0xMCwgLTcsIC00LCAxLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0yLCAtMywgLTYsIC0yLCAtMywgLTMsIC0zLCAtMywgLTQsIC0zLCAtMywgLTUsIC0zLCAtMSwgLTIsIC03LCAtNSwgLTIsIC0yLCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0yNTAgPSBbWzIsIC0yLCAwLCAwLCAtMiwgMCwgMCwgMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMywgMSwgMSwgMSwgLTYsIC0zLCAwLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDYsIDAsIC0xLCAtNCwgMSwgLTEsIC0zLCAyLCAtMiwgLTMsIDMsIDAsIC00LCAwLCAwLCAtMSwgMiwgLTQsIC0yLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAyLCAyLCAtNCwgMSwgMSwgMCwgMiwgLTIsIC0zLCAxLCAtMiwgLTMsIDAsIDEsIDAsIC00LCAtMiwgLTIsIDIsIDEsIDAsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgNCwgLTUsIDIsIDMsIDEsIDEsIC0yLCAtNCwgMCwgLTMsIC02LCAtMSwgMCwgMCwgLTcsIC00LCAtMiwgMywgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgMTIsIC01LCAtNSwgLTMsIC0zLCAtMiwgLTYsIC01LCAtNSwgLTQsIC0zLCAwLCAtMiwgLTgsIDAsIC0yLCAtNCwgLTUsIC0zLCAtOF0sXG4gICAgICAgICAgICBbMCwgMSwgMSwgMiwgLTUsIDQsIDIsIC0xLCAzLCAtMiwgLTIsIDEsIC0xLCAtNSwgMCwgLTEsIC0xLCAtNSwgLTQsIC0yLCAxLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAxLCAzLCAtNSwgMiwgNCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTUsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzEsIC0zLCAwLCAxLCAtMywgLTEsIDAsIDUsIC0yLCAtMywgLTQsIC0yLCAtMywgLTUsIDAsIDEsIDAsIC03LCAtNSwgLTEsIDAsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDIsIDIsIDEsIC0zLCAzLCAxLCAtMiwgNiwgLTIsIC0yLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgLTMsIDAsIC0yLCAxLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTIsIDUsIDIsIC0yLCAyLCAxLCAtMiwgLTEsIDAsIC01LCAtMSwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC00LCAtNiwgLTIsIC0zLCAtNCwgLTIsIDIsIDYsIC0zLCA0LCAyLCAtMywgLTMsIC0yLCAtMiwgLTEsIDIsIC0zLCAtMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMSwgMCwgLTUsIDEsIDAsIC0yLCAwLCAtMiwgLTMsIDUsIDAsIC01LCAtMSwgMCwgMCwgLTMsIC00LCAtMiwgMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTIsIC0zLCAtNSwgLTEsIC0yLCAtMywgLTIsIDIsIDQsIDAsIDYsIDAsIC0yLCAtMiwgLTEsIC00LCAtMiwgMiwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTMsIC02LCAtNCwgLTUsIC01LCAtNSwgLTIsIDEsIDIsIC01LCAwLCA5LCAtNSwgLTMsIC0zLCAwLCA3LCAtMSwgLTQsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWzEsIDAsIDAsIC0xLCAtMywgMCwgLTEsIDAsIDAsIC0yLCAtMywgLTEsIC0yLCAtNSwgNiwgMSwgMCwgLTYsIC01LCAtMSwgLTEsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMSwgMCwgMCwgLTEsIDAsIDEsIC0xLCAtMSwgLTMsIDAsIC0yLCAtMywgMSwgMiwgMSwgLTIsIC0zLCAtMSwgMCwgMCwgMCwgLThdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAwLCAtMiwgLTEsIDAsIDAsIC0xLCAwLCAtMiwgMCwgLTEsIC0zLCAwLCAxLCAzLCAtNSwgLTMsIDAsIDAsIC0xLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTYsIDIsIC00LCAtNywgLTgsIC01LCAtNywgLTcsIC0zLCAtNSwgLTIsIC0zLCAtNCwgMCwgLTYsIC0yLCAtNSwgMTcsIDAsIC02LCAtNSwgLTYsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMiwgLTQsIDAsIC00LCAtNCwgLTUsIDAsIC0xLCAtMSwgLTQsIC0yLCA3LCAtNSwgLTMsIC0zLCAwLCAxMCwgLTIsIC0zLCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTIsIDQsIDIsIC0yLCAyLCAtMSwgLTEsIC0xLCAwLCAtNiwgLTIsIDQsIC0yLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgMywgLTQsIDEsIDMsIDAsIDEsIC0yLCAtMywgMSwgLTIsIC00LCAtMSwgMCwgMCwgLTUsIC0zLCAtMiwgMywgMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAxLCAzLCAtNSwgMywgMywgMCwgMiwgLTIsIC0zLCAwLCAtMiwgLTUsIDAsIDAsIC0xLCAtNiwgLTQsIC0yLCAyLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAwLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuU0NITkVJREVSID0gW1sxMS42LCAtMi43LCA5LjcsIC0xLjcsIC0yLjcsIC02LjQsIC0zLjksIC01LjYsIDUuMSwgLTUuMCwgMy42LCAtNC4yLCAtNi4zLCAtMTMuMCwgLTcuMSwgLTExLjUsIDAuNCwgLTYuMCwgLTEuOSwgLTUuMywgLTguNSwgLTExLjIsIC04LjksIC0xMC44LCAyLjEsIDAuMCwgMS40LCAwLjIsIC0xMC4yLCAtMTMuNSwgLTEzLjAsIC0xMi41LCAtMi42LCAtOC41LCAtNS4wLCAtOC4xLCAtNi4zLCAtOS45LCAtNy41LCAtOS4wLCAtNy4xLCAtMTAuMiwgLTguMiwgLTkuMiwgLTguMiwgLTEyLjUsIC0xMS4xLCAtMTEuNCwgLTUwLjAsIC0xNC44LCAtNTAuMCwgLTEzLjgsIC03LjMsIC0xMC4xLCAtOC40LCAtOS4xLCAtNTAuMCwgLTEzLjAsIC0xMy41LCAtMTIuNCwgLTEwLjcsIC0xOC4xLCAtMTEuOCwgLTE3LjIsXSxcbiAgICAgICAgICAgIFstMi43LCAxMy4wLCAtMy4zLCAxMC45LCAtMy41LCAtMC40LCAtMy4zLCAtMS44LCAtNS40LCA0LjYsIC01LjUsIDMuMCwgLTEwLjIsIC03LjksIC05LjksIC05LjYsIC01LjAsIDAuNSwgLTUuNSwgLTEuMCwgLTEwLjMsIC04LjEsIC05LjQsIC05LjYsIC04LjEsIC01LjAsIC03LjMsIC02LjMsIC0xMy40LCAtMTEuMywgLTE0LjQsIC0xMi45LCAtNi4zLCAwLjgsIC02LjQsIC0xLjEsIC03LjQsIC01LjAsIC02LjIsIC02LjUsIC01LjYsIC0xLjYsIC00LjcsIC0zLjAsIC0xMC44LCAtOC43LCAtMTEuOSwgLTEwLjAsIC01MC4wLCAtNi4yLCAtNTAuMCwgLTcuNSwgLTYuMywgLTQuMywgLTYuMiwgLTUuNCwgLTUwLjAsIC03LjAsIC0xNi4zLCAtOC4yLCAtMTMuMiwgLTEyLjMsIC0xMy4xLCAtMTMuMyxdLFxuICAgICAgICAgICAgWzkuNywgLTMuMywgMTEuNiwgLTIuOCwgLTQuNSwgLTYuNywgLTMuMSwgLTYuOSwgMy4zLCAtNS41LCA0LjgsIC01LjEsIC04LjksIC0xMy4yLCAtNS43LCAtMTIuNiwgLTEuNSwgLTYuMSwgLTAuNiwgLTYuMSwgLTEwLjAsIC0xMS44LCAtOC42LCAtMTEuOSwgMS4yLCAwLjUsIDIuMiwgMC4xLCAtMTEuOCwgLTE0LjAsIC0xMS45LCAtMTMuNCwgLTQuOSwgLTkuMSwgLTMuNCwgLTguOSwgLTguMCwgLTEwLjAsIC03LjIsIC0xMC4wLCAtOS4xLCAtMTAuMiwgLTcuMSwgLTkuOSwgLTEwLjEsIC0xMy4wLCAtMTAuNiwgLTEyLjcsIC01MC4wLCAtMTQuOSwgLTUwLjAsIC0xNC40LCAtOC45LCAtMTAuOCwgLTguOSwgLTEwLjQsIC01MC4wLCAtMTMuMSwgLTExLjgsIC0xMy4wLCAtMTIuNCwgLTE5LjQsIC0xMS41LCAtMTcuOCxdLFxuICAgICAgICAgICAgWy0xLjcsIDEwLjksIC0yLjgsIDEyLjksIC0yLjcsIC0yLjIsIC0yLjgsIDAuMiwgLTQuOCwgMi45LCAtNS4yLCA1LjIsIC05LjEsIC05LjUsIC05LjAsIC03LjAsIC00LjAsIC0xLjAsIC01LjAsIDEuMCwgLTkuMCwgLTguOCwgLTguOSwgLTcuNywgLTcuMCwgLTYuOCwgLTcuMSwgLTQuMywgLTEyLjQsIC0xMi45LCAtMTMuOSwgLTEwLjAsIC00LjksIC0wLjcsIC01LjYsIDEuNCwgLTYuMCwgLTYuNSwgLTYuMiwgLTQuOCwgLTUuMSwgLTMuMiwgLTUuMCwgLTEuMiwgLTkuOCwgLTkuOSwgLTExLjMsIC04LjIsIC01MC4wLCAtNy42LCAtNTAuMCwgLTUuMSwgLTUuNSwgLTUuOCwgLTUuOSwgLTQuMiwgLTUwLjAsIC04LjMsIC0xNS41LCAtNS45LCAtMTEuNiwgLTE0LjIsIC0xMi4wLCAtMTEuNixdLFxuICAgICAgICAgICAgWy0yLjcsIC0zLjUsIC00LjUsIC0yLjcsIDExLjcsIDkuMCwgMTAuNiwgOS42LCAtMy4yLCAtMC43LCAtNS4xLCAtMC40LCAwLjcsIC00LjYsIC0wLjQsIC0zLjYsIC00LjgsIC04LjksIC02LjUsIC03LjgsIC0xLjQsIC00LjEsIC0yLjksIC0zLjMsIC04LjAsIC05LjEsIC04LjAsIC04LjIsIC02LjAsIC05LjMsIC03LjcsIC04LjUsIC02LjQsIC0xMC4xLCAtNy41LCAtOC42LCAyLjgsIC0wLjcsIDAuOSwgMC4xLCAtNS45LCAtNy4zLCAtNi41LCAtNi41LCAtMC40LCAtMy45LCAtMi42LCAtMy4xLCAtNTAuMCwgLTE0LjYsIC01MC4wLCAtMTIuNiwgMi45LCAwLjEsIDEuOCwgMS4wLCAtNTAuMCwgLTkuMiwgLTEzLjYsIC03LjcsIC00LjgsIC0xMi4yLCAtNi4yLCAtMTEuMCxdLFxuICAgICAgICAgICAgWy02LjQsIC0wLjQsIC02LjcsIC0yLjIsIDkuMCwgMTIuMywgOS44LCA5LjYsIC03LjEsIDIuNCwgLTcuMiwgMC4zLCAtMi45LCAtMS4yLCAtMy4wLCAtMy4zLCAtNy42LCAtNi43LCAtOC4xLCAtNy45LCAtNC45LCAtMS45LCAtNC41LCAtMy44LCAtOS41LCAtNy44LCAtOS4zLCAtOC45LCAtOS40LCAtNy4xLCAtOS4wLCAtOS4wLCAtOS40LCAtNy41LCAtOS4zLCAtOS4yLCAtMC43LCAyLjYsIDAuMiwgLTAuMSwgLTguMCwgLTQuNiwgLTcuNywgLTYuMSwgLTMuNiwgLTEuMCwgLTQuMSwgLTMuMSwgLTUwLjAsIC0xMS42LCAtNTAuMCwgLTExLjYsIDAuMiwgMi4zLCAwLjQsIDAuNSwgLTUwLjAsIC02LjUsIC0xNS4zLCAtNy44LCAtOC40LCAtOS41LCAtOC4zLCAtMTEuMSxdLFxuICAgICAgICAgICAgWy0zLjksIC0zLjMsIC0zLjEsIC0yLjgsIDEwLjYsIDkuOCwgMTIuMiwgOS44LCAtNC45LCAwLjEsIC0zLjYsIC0wLjIsIC0xLjcsIC00LjEsIDAuOSwgLTMuNSwgLTUuOSwgLTguOSwgLTUuNiwgLTguNSwgLTMuOSwgLTMuOSwgLTIuMiwgLTQuNSwgLTcuMywgLTcuNSwgLTYuNCwgLTguNSwgLTcuMSwgLTguMiwgLTYuNywgLTcuOCwgLTcuOSwgLTkuMSwgLTcuMSwgLTkuNCwgMC45LCAtMC4yLCAyLjUsIC0wLjMsIC02LjksIC02LjUsIC01LjUsIC02LjgsIC0xLjcsIC0zLjQsIC0xLjcsIC0yLjgsIC01MC4wLCAtMTMuMCwgLTUwLjAsIC0xMS41LCAxLjUsIDAuNywgMi43LCAwLjYsIC01MC4wLCAtOC45LCAtMTIuMSwgLTcuNCwgLTYuMSwgLTExLjUsIC01LjQsIC0xMC40LF0sXG4gICAgICAgICAgICBbLTUuNiwgLTEuOCwgLTYuOSwgMC4yLCA5LjYsIDkuNiwgOS44LCAxMS42LCAtNi42LCAwLjksIC03LjIsIDIuNSwgLTIuMywgLTMuNCwgLTIuMywgLTAuNiwgLTYuNSwgLTguMiwgLTguMCwgLTYuMywgLTMuNywgLTMuNSwgLTMuOSwgLTEuNiwgLTkuOSwgLTguOSwgLTkuNiwgLTcuMCwgLTguNiwgLTguOSwgLTguOCwgLTYuOCwgLTguNiwgLTguMiwgLTguOCwgLTYuOCwgMC4zLCAwLjEsIDAuMiwgMi40LCAtNy40LCAtNi4yLCAtNi45LCAtNC40LCAtMi45LCAtMi45LCAtMy41LCAtMC45LCAtNTAuMCwgLTEyLjIsIC01MC4wLCAtMTAuMSwgMS4yLCAwLjYsIDEuMiwgMi40LCAtNTAuMCwgLTcuNiwgLTE2LjEsIC01LjgsIC03LjIsIC0xMC44LCAtNy40LCAtOS4wLF0sXG4gICAgICAgICAgICBbNS4xLCAtNS40LCAzLjMsIC00LjgsIC0zLjIsIC03LjEsIC00LjksIC02LjYsIDEzLjMsIC0yLjgsIDExLjIsIC0xLjksIC01LjcsIC0xMi41LCAtNy4yLCAtMTEuNiwgLTAuNywgLTQuOCwgLTMuMSwgLTQuMywgLTEwLjAsIC0xMS42LCAtOC44LCAtMTEuNywgMTAuNSwgNy43LCA5LjEsIDguNSwgLTkuOCwgLTEyLjcsIC0xMS43LCAtMTEuOCwgLTYuMywgLTExLjQsIC04LjgsIC0xMS4wLCAtNy41LCAtMTAuMywgLTguMywgLTkuOSwgLTEuOSwgLTYuNywgLTQuMSwgLTYuNCwgLTcuOSwgLTEyLjUsIC0xMS40LCAtMTEuNywgLTUwLjAsIC0xNC4wLCAtNTAuMCwgLTEzLjIsIC04LjUsIC0xMC40LCAtOS4xLCAtOS42LCAtNTAuMCwgLTkuOCwgLTcuNywgLTguOCwgLTEwLjMsIC0xNy45LCAtMTEuOCwgLTE2LjAsXSxcbiAgICAgICAgICAgIFstNS4wLCA0LjYsIC01LjUsIDIuOSwgLTAuNywgMi40LCAwLjEsIDAuOSwgLTIuOCwgMTIuOCwgLTIuNiwgMTEuMCwgLTguNCwgLTYuMywgLTguMywgLTcuNywgLTYuMSwgLTIuOSwgLTYuNSwgLTQuMiwgLTguNSwgLTUuOSwgLTcuNSwgLTcuNywgLTUuNSwgLTIuNCwgLTUuNSwgLTQuMSwgLTEyLjksIC0xMC4zLCAtMTIuNywgLTExLjMsIC03LjQsIC0zLjEsIC03LjQsIC00LjksIC00LjQsIC0xLjgsIC0zLjUsIC0zLjUsIC0xLjYsIDMuMCwgLTAuOCwgMC45LCAtOC40LCAtNi4zLCAtOS42LCAtNy4zLCAtNTAuMCwgLTkuMCwgLTUwLjAsIC05LjcsIC0yLjMsIC0wLjIsIC0xLjIsIC0xLjUsIC01MC4wLCAtMC43LCAtMTMuMywgLTIuMCwgLTExLjgsIC0xMS45LCAtMTIuMywgLTEyLjcsXSxcbiAgICAgICAgICAgIFszLjYsIC01LjUsIDQuOCwgLTUuMiwgLTUuMSwgLTcuMiwgLTMuNiwgLTcuMiwgMTEuMiwgLTIuNiwgMTMuNCwgLTIuMSwgLTcuNywgLTEyLjUsIC01LjMsIC0xMS45LCAtMi4yLCAtNC40LCAtMS45LCAtNC44LCAtMTAuMiwgLTExLjUsIC04LjEsIC0xMi4wLCA5LjMsIDguMiwgMTAuMCwgOC4wLCAtMTAuOCwgLTExLjksIC0xMC43LCAtMTIuNCwgLTguMiwgLTExLjgsIC02LjksIC0xMS41LCAtOC40LCAtOS45LCAtNy4xLCAtMTAuNiwgLTQuNywgLTYuOCwgLTEuMiwgLTcuMCwgLTkuOCwgLTExLjYsIC05LjYsIC0xMi4xLCAtNTAuMCwgLTE0LjEsIC01MC4wLCAtMTIuNywgLTEwLjAsIC0xMC44LCAtOC44LCAtMTAuNSwgLTUwLjAsIC05LjIsIC00LjIsIC05LjMsIC0xMS4wLCAtMTguMiwgLTExLjEsIC0xNi4xLF0sXG4gICAgICAgICAgICBbLTQuMiwgMy4wLCAtNS4xLCA1LjIsIC0wLjQsIDAuMywgLTAuMiwgMi41LCAtMS45LCAxMS4wLCAtMi4xLCAxMy4yLCAtNy42LCAtOC41LCAtOC4wLCAtNS4zLCAtNS42LCAtNC41LCAtNi44LCAtMi40LCAtNy44LCAtNy45LCAtNy45LCAtNi4yLCAtNS43LCAtNS4xLCAtNS40LCAtMi4xLCAtMTIuNCwgLTEyLjMsIC0xMy4xLCAtMTAuMSwgLTYuNiwgLTQuNCwgLTYuOSwgLTIuNiwgLTMuNiwgLTMuOCwgLTMuNywgLTIuMCwgLTEuNCwgMC44LCAtMC45LCAzLjAsIC04LjIsIC04LjEsIC05LjIsIC01LjgsIC01MC4wLCAtMTAuMSwgLTUwLjAsIC03LjQsIC0xLjcsIC0yLjAsIC0xLjUsIC0wLjUsIC01MC4wLCAtMi4xLCAtMTIuNiwgLTAuNCwgLTExLjYsIC0xMy45LCAtMTEuNCwgLTExLjEsXSxcbiAgICAgICAgICAgIFstNi4zLCAtMTAuMiwgLTguOSwgLTkuMSwgMC43LCAtMi45LCAtMS43LCAtMi4zLCAtNS43LCAtOC40LCAtNy43LCAtNy42LCAxMy4yLCA5LjYsIDMuNSwgOS43LCAtOC43LCAtMTIuNCwgLTEwLjcsIC0xMC43LCAtNy44LCAtMTAuMiwgLTguOCwgLTkuNiwgLTkuNSwgLTExLjksIC0xMC45LCAtMTAuNSwgMi4zLCAtMC40LCAtMC4yLCAtMC4zLCAtOS43LCAtMTUuNSwgLTExLjQsIC0xMy43LCAtMy4wLCAtNi40LCAtNC4xLCAtNS40LCAtOS42LCAtMTEuOSwgLTEwLjUsIC0xMS44LCA2LjIsIDMuMywgMy43LCAzLjYsIC01MC4wLCAtMTMuNiwgLTUwLjAsIC0xMS45LCAtNS42LCAtOC44LCAtNy4yLCAtOC45LCAtNTAuMCwgLTEyLjQsIC0xNC4xLCAtMTEuNiwgMi44LCAtNi40LCAwLjUsIC01LjIsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuOSwgLTEzLjIsIC05LjUsIC00LjYsIC0xLjIsIC00LjEsIC0zLjQsIC0xMi41LCAtNi4zLCAtMTIuNSwgLTguNSwgOS42LCAxMi43LCAwLjIsIDEwLjUsIC0xMi40LCAtMTEuNiwgLTEzLjIsIC0xMi4wLCAtMTIuNCwgLTEwLjEsIC0xMS42LCAtMTIuMCwgLTE1LjEsIC0xMy4xLCAtMTQuMywgLTEzLjQsIC0xLjQsIDEuNCwgLTEuNiwgLTAuNSwgLTE0LjksIC0xNC4zLCAtMTUuMiwgLTE2LjgsIC03LjcsIC00LjcsIC02LjMsIC02LjYsIC0xNC42LCAtMTAuOCwgLTEyLjgsIC0xMy4wLCAyLjMsIDYuMCwgMi41LCAzLjYsIC01MC4wLCAtMTEuMiwgLTUwLjAsIC0xMS45LCAtMTAuNSwgLTkuMiwgLTEwLjUsIC0xMC41LCAtNTAuMCwgLTEwLjMsIC0xNi4yLCAtMTEuMywgLTEuNywgLTMuNywgLTIuNSwgLTUuNCxdLFxuICAgICAgICAgICAgWy03LjEsIC05LjksIC01LjcsIC05LjAsIC0wLjQsIC0zLjAsIDAuOSwgLTIuMywgLTcuMiwgLTguMywgLTUuMywgLTguMCwgMy41LCAwLjIsIDE0LjMsIDEuMCwgLTcuMywgLTExLjIsIC02LjksIC05LjcsIC04LjUsIC0xMC4yLCAtNy43LCAtOS44LCAtMTAuMCwgLTEwLjQsIC04LjQsIC0xMC4yLCAxLjAsIC0wLjYsIDEuNywgLTAuNSwgLTExLjEsIC0xNC44LCAtOS43LCAtMTQuNSwgLTMuNywgLTUuOCwgLTMuMSwgLTUuNiwgLTEwLjQsIC0xMS41LCAtOC4yLCAtMTEuMSwgMC42LCAtMS42LCAxLjYsIC0xLjEsIC01MC4wLCAtMTIuNCwgLTUwLjAsIC0xMS41LCAtNS41LCAtOC4wLCAtNC45LCAtNy4yLCAtNTAuMCwgLTEyLjQsIC0xMC4zLCAtMTEuNiwgMC43LCAtNi44LCAyLjQsIC02LjAsXSxcbiAgICAgICAgICAgIFstMTEuNSwgLTkuNiwgLTEyLjYsIC03LjAsIC0zLjYsIC0zLjMsIC0zLjUsIC0wLjYsIC0xMS42LCAtNy43LCAtMTEuOSwgLTUuMywgOS43LCAxMC41LCAxLjAsIDEyLjYsIC0xMi4wLCAtMTIuMiwgLTEyLjUsIC05LjcsIC0xMS4xLCAtMTEuMiwgLTExLjksIC05LjQsIC0xMi45LCAtMTQuMywgLTE0LjAsIC0xMS45LCAtMS4wLCAtMC40LCAtMS42LCAxLjIsIC0xMy45LCAtMTUuNCwgLTEzLjcsIC0xMi42LCAtNi4yLCAtNi43LCAtNi4zLCAtNC40LCAtMTMuMCwgLTEyLjIsIC0xMy4wLCAtMTAuNCwgMi45LCAzLjgsIDIuNSwgNS44LCAtNTAuMCwgLTEyLjUsIC01MC4wLCAtMTAuMiwgLTkuNiwgLTkuNywgLTkuNiwgLTguMywgLTUwLjAsIC0xMS42LCAtMTUuNCwgLTkuNCwgLTEuMSwgLTUuNCwgLTEuNiwgLTMuMyxdLFxuICAgICAgICAgICAgWzAuNCwgLTUuMCwgLTEuNSwgLTQuMCwgLTQuOCwgLTcuNiwgLTUuOSwgLTYuNSwgLTAuNywgLTYuMSwgLTIuMiwgLTUuNiwgLTguNywgLTEyLjQsIC03LjMsIC0xMi4wLCAxMi44LCAyLjMsIDEwLjIsIDMuMCwgMC4wLCAtMy40LCAtMC43LCAtMy4yLCAyLjUsIC0wLjgsIDAuOSwgMC4yLCAtMy4wLCAtNy4yLCAtNS43LCAtNi4xLCAtMC4yLCAtNi42LCAtMS44LCAtNi4wLCAtNS4zLCAtOC4yLCAtNS43LCAtNy42LCAtNi43LCAtOS42LCAtNy41LCAtOS4zLCAtNy4xLCAtMTAuNSwgLTkuNiwgLTkuNCwgLTUwLjAsIC04LjEsIC01MC4wLCAtNy4yLCAtNC4zLCAtNi44LCAtNS43LCAtNi4zLCAtNTAuMCwgLTkuNSwgLTkuNiwgLTguOSwgLTYuMiwgLTEyLjgsIC02LjgsIC0xMS44LF0sXG4gICAgICAgICAgICBbLTYuMCwgMC41LCAtNi4xLCAtMS4wLCAtOC45LCAtNi43LCAtOC45LCAtOC4yLCAtNC44LCAtMi45LCAtNC40LCAtNC41LCAtMTIuNCwgLTExLjYsIC0xMS4yLCAtMTIuMiwgMi4zLCAxNC42LCAxLjksIDEyLjksIC01LjUsIC0yLjYsIC00LjEsIC00LjcsIC0xLjIsIDMuMCwgLTEuMSwgMS42LCAtOC4wLCAtNC43LCAtOC43LCAtNi4wLCAtOC4yLCAtNC43LCAtNy44LCAtNi43LCAtMTAuMCwgLTguMywgLTguOSwgLTkuOSwgLTEwLjgsIC03LjEsIC0xMC4wLCAtOS4yLCAtMTEuNiwgLTEwLjEsIC0xMi4zLCAtMTEuOSwgLTUwLjAsIDIuMiwgLTUwLjAsIDAuOSwgLTcuOSwgLTUuOSwgLTcuNCwgLTYuOSwgLTUwLjAsIC00LjYsIC0xMS42LCAtNS42LCAtOS43LCAtNS45LCAtOS45LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEuOSwgLTUuNSwgLTAuNiwgLTUuMCwgLTYuNSwgLTguMSwgLTUuNiwgLTguMCwgLTMuMSwgLTYuNSwgLTEuOSwgLTYuOCwgLTEwLjcsIC0xMy4yLCAtNi45LCAtMTIuNSwgMTAuMiwgMS45LCAxMS45LCAyLjEsIC0yLjMsIC00LjEsIC0wLjUsIC00LjYsIC0wLjEsIC0wLjksIDIuNCwgLTAuOCwgLTUuMSwgLTYuOSwgLTQuOCwgLTYuNywgLTIuMywgLTcuMSwgLTAuOCwgLTcuMiwgLTcuMiwgLTguMCwgLTUuNiwgLTguNSwgLTkuNCwgLTkuNywgLTcuMiwgLTkuOCwgLTkuMiwgLTExLjEsIC05LjUsIC0xMC43LCAtNTAuMCwgLTguNywgLTUwLjAsIC04LjYsIC02LjEsIC03LjUsIC01LjUsIC03LjcsIC01MC4wLCAtMTAuNCwgLTcuNywgLTEwLjAsIC03LjMsIC0xMy42LCAtNi40LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy01LjMsIC0xLjAsIC02LjEsIDEuMCwgLTcuOCwgLTcuOSwgLTguNSwgLTYuMywgLTQuMywgLTQuMiwgLTQuOCwgLTIuNCwgLTEwLjcsIC0xMi4wLCAtOS43LCAtOS43LCAzLjAsIDEyLjksIDIuMSwgMTQuNywgLTQuOSwgLTMuOCwgLTQuMCwgLTIuNCwgLTEuMCwgMC44LCAtMS4zLCAzLjQsIC03LjYsIC01LjcsIC04LjEsIC0zLjUsIC02LjgsIC01LjgsIC03LjIsIC00LjIsIC04LjksIC0xMC4yLCAtOC40LCAtOC4yLCAtOS45LCAtOC40LCAtOS43LCAtNi40LCAtMTEuMSwgLTExLjEsIC0xMS44LCAtMTAuMCwgLTUwLjAsIDAuNCwgLTUwLjAsIDIuNiwgLTcuMiwgLTcuMCwgLTcuNCwgLTUuMSwgLTUwLjAsIC01LjcsIC05LjgsIC0zLjIsIC04LjQsIC03LjQsIC04LjksIC01LjksXSxcbiAgICAgICAgICAgIFstOC41LCAtMTAuMywgLTEwLjAsIC05LjAsIC0xLjQsIC00LjksIC0zLjksIC0zLjcsIC0xMC4wLCAtOC41LCAtMTAuMiwgLTcuOCwgLTcuOCwgLTEyLjQsIC04LjUsIC0xMS4xLCAwLjAsIC01LjUsIC0yLjMsIC00LjksIDEyLjYsIDEwLjAsIDExLjEsIDEwLjUsIC02LjAsIC04LjMsIC02LjksIC03LjUsIC0yLjIsIC03LjQsIC01LjMsIC01LjksIC04LjksIC0xMi41LCAtOS40LCAtMTEuNiwgLTAuNywgLTMuOSwgLTIuMywgLTMuMCwgLTkuMSwgLTkuOCwgLTkuMiwgLTkuNSwgLTUuNiwgLTkuMCwgLTguMCwgLTguNSwgLTUwLjAsIC0xNS4zLCAtNTAuMCwgLTE0LjEsIDIuMywgLTEuNCwgMC4zLCAtMC41LCAtNTAuMCwgLTEzLjYsIC0xNC4zLCAtMTEuNSwgLTUuMywgLTEzLjcsIC02LjEsIC0xMi43LF0sXG4gICAgICAgICAgICBbLTExLjIsIC04LjEsIC0xMS44LCAtOC44LCAtNC4xLCAtMS45LCAtMy45LCAtMy41LCAtMTEuNiwgLTUuOSwgLTExLjUsIC03LjksIC0xMC4yLCAtMTAuMSwgLTEwLjIsIC0xMS4yLCAtMy40LCAtMi42LCAtNC4xLCAtMy44LCAxMC4wLCAxMy4xLCAxMC43LCAxMC42LCAtOC4xLCAtNS4yLCAtOC4wLCAtNi43LCAtNi4xLCAtMy43LCAtNy41LCAtNS42LCAtMTEuMSwgLTEwLjMsIC0xMC42LCAtMTEuOSwgLTMuMiwgLTEuMCwgLTIuMiwgLTIuOCwgLTEwLjUsIC04LjEsIC05LjQsIC05LjUsIC04LjMsIC02LjksIC05LjQsIC04LjgsIC01MC4wLCAtMTEuMywgLTUwLjAsIC0xMi44LCAtMC42LCAyLjIsIC0wLjMsIDAuMSwgLTUwLjAsIC0xMC4xLCAtMTcuNSwgLTExLjEsIC04LjYsIC05LjksIC04LjYsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTguOSwgLTkuNCwgLTguNiwgLTguOSwgLTIuOSwgLTQuNSwgLTIuMiwgLTMuOSwgLTguOCwgLTcuNSwgLTguMSwgLTcuOSwgLTguOCwgLTExLjYsIC03LjcsIC0xMS45LCAtMC43LCAtNC4xLCAtMC41LCAtNC4wLCAxMS4xLCAxMC43LCAxMy4yLCAxMC40LCAtNS43LCAtNS44LCAtMy41LCAtNi4xLCAtMy42LCAtNi41LCAtMy4zLCAtNS41LCAtOS40LCAtMTEuMCwgLTguNywgLTExLjIsIC0xLjgsIC0yLjcsIDAuNywgLTMuMCwgLTkuMSwgLTguMiwgLTcuMywgLTkuNCwgLTcuMiwgLTguMiwgLTcuMiwgLTguMiwgLTUwLjAsIC0xMy4yLCAtNTAuMCwgLTEzLjMsIDAuNSwgLTAuOSwgMS44LCAtMC42LCAtNTAuMCwgLTExLjQsIC0xMS4xLCAtMTAuNSwgLTYuMSwgLTEyLjksIC01LjAsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTEwLjgsIC05LjYsIC0xMS45LCAtNy43LCAtMy4zLCAtMy44LCAtNC41LCAtMS42LCAtMTEuNywgLTcuNywgLTEyLjAsIC02LjIsIC05LjYsIC0xMi4wLCAtOS44LCAtOS40LCAtMy4yLCAtNC43LCAtNC42LCAtMi40LCAxMC41LCAxMC42LCAxMC40LCAxMi42LCAtOC4yLCAtNy45LCAtOS4wLCAtNC43LCAtNi4xLCAtNi4wLCAtNy41LCAtMi45LCAtMTAuOSwgLTEyLjIsIC0xMS4yLCAtMTAuOSwgLTIuNCwgLTIuOSwgLTIuNywgLTAuOSwgLTEwLjQsIC05LjcsIC0xMC4yLCAtOC4wLCAtOC40LCAtOS4xLCAtOS4zLCAtNi41LCAtNTAuMCwgLTEzLjMsIC01MC4wLCAtMTEuMCwgLTAuMCwgLTAuNCwgLTAuNCwgMi4zLCAtNTAuMCwgLTEwLjksIC0xNy4yLCAtOC4zLCAtOC4zLCAtMTIuNywgLTcuOCwgLTkuMyxdLFxuICAgICAgICAgICAgWzIuMSwgLTguMSwgMS4yLCAtNy4wLCAtOC4wLCAtOS41LCAtNy4zLCAtOS45LCAxMC41LCAtNS41LCA5LjMsIC01LjcsIC05LjUsIC0xNS4xLCAtMTAuMCwgLTEyLjksIDIuNSwgLTEuMiwgLTAuMSwgLTEuMCwgLTYuMCwgLTguMSwgLTUuNywgLTguMiwgMTMuOCwgMTEuMywgMTEuOCwgMTIuMSwgLTYuMCwgLTkuMSwgLTkuMCwgLTkuNSwgLTguOSwgLTEzLjQsIC0xMC4wLCAtMTMuMSwgLTkuOSwgLTExLjcsIC05LjgsIC0xMi44LCAtNS45LCAtOS40LCAtNi41LCAtOC4xLCAtMTAuNywgLTE0LjAsIC0xMy4zLCAtMTMuOSwgLTUwLjAsIC0xMS45LCAtNTAuMCwgLTkuNywgLTguOSwgLTEwLjgsIC05LjAsIC0xMS4xLCAtNTAuMCwgLTYuNSwgLTUuMywgLTYuMywgLTEwLjUsIC0xNi4yLCAtMTAuNCwgLTE1LjIsXSxcbiAgICAgICAgICAgIFswLjAsIC01LjAsIDAuNSwgLTYuOCwgLTkuMSwgLTcuOCwgLTcuNSwgLTguOSwgNy43LCAtMi40LCA4LjIsIC01LjEsIC0xMS45LCAtMTMuMSwgLTEwLjQsIC0xNC4zLCAtMC44LCAzLjAsIC0wLjksIDAuOCwgLTguMywgLTUuMiwgLTUuOCwgLTcuOSwgMTEuMywgMTUuMCwgMTEuMiwgMTIuOCwgLTkuNywgLTUuMywgLTkuMiwgLTcuOCwgLTExLjcsIC0xMC42LCAtMTAuMSwgLTEyLjIsIC0xMS43LCAtOC44LCAtOC45LCAtMTEuOCwgLTkuMywgLTUuMCwgLTguMCwgLTguMiwgLTEzLjYsIC0xMS40LCAtMTIuOCwgLTEzLjAsIC01MC4wLCAtNy4yLCAtNTAuMCwgLTguNCwgLTExLjAsIC03LjcsIC04LjcsIC0xMC4yLCAtNTAuMCwgLTEuNSwgLTcuMSwgLTQuOSwgLTExLjIsIC0xMS42LCAtMTEuNiwgLTE1LjAsXSxcbiAgICAgICAgICAgIFsxLjQsIC03LjMsIDIuMiwgLTcuMSwgLTguMCwgLTkuMywgLTYuNCwgLTkuNiwgOS4xLCAtNS41LCAxMC4wLCAtNS40LCAtMTAuOSwgLTE0LjMsIC04LjQsIC0xNC4wLCAwLjksIC0xLjEsIDIuNCwgLTEuMywgLTYuOSwgLTguMCwgLTMuNSwgLTkuMCwgMTEuOCwgMTEuMiwgMTMuNCwgMTEuNCwgLTcuMywgLTguOCwgLTYuNSwgLTguNSwgLTEwLjAsIC0xMi41LCAtNy44LCAtMTIuNSwgLTkuNiwgLTExLjAsIC03LjEsIC0xMC43LCAtNy45LCAtOC4wLCAtNC4zLCAtOS40LCAtMTEuNCwgLTEyLjMsIC0xMC45LCAtMTIuOSwgLTUwLjAsIC0xMS44LCAtNTAuMCwgLTExLjIsIC05LjQsIC05LjgsIC03LjMsIC0xMC41LCAtNTAuMCwgLTYuMiwgLTIuMiwgLTYuNywgLTkuOCwgLTE1LjIsIC04LjUsIC0xNC45LF0sXG4gICAgICAgICAgICBbMC4yLCAtNi4zLCAwLjEsIC00LjMsIC04LjIsIC04LjksIC04LjUsIC03LjAsIDguNSwgLTQuMSwgOC4wLCAtMi4xLCAtMTAuNSwgLTEzLjQsIC0xMC4yLCAtMTEuOSwgMC4yLCAxLjYsIC0wLjgsIDMuNCwgLTcuNSwgLTYuNywgLTYuMSwgLTQuNywgMTIuMSwgMTIuOCwgMTEuNCwgMTQuNywgLTguNywgLTcuNCwgLTkuNCwgLTUuMywgLTkuOSwgLTExLjgsIC0xMC41LCAtMTAuMywgLTkuOSwgLTEwLjEsIC05LjMsIC05LjMsIC04LjEsIC03LjIsIC04LjAsIC01LjIsIC0xMi4wLCAtMTIuMSwgLTEyLjYsIC0xMC45LCAtNTAuMCwgLTcuOSwgLTUwLjAsIC01LjMsIC05LjMsIC04LjgsIC04LjksIC03LjAsIC01MC4wLCAtMy42LCAtNy4xLCAtMS4yLCAtMTAuMiwgLTEyLjcsIC05LjksIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xMy40LCAtMTEuOCwgLTEyLjQsIC02LjAsIC05LjQsIC03LjEsIC04LjYsIC05LjgsIC0xMi45LCAtMTAuOCwgLTEyLjQsIDIuMywgLTEuNCwgMS4wLCAtMS4wLCAtMy4wLCAtOC4wLCAtNS4xLCAtNy42LCAtMi4yLCAtNi4xLCAtMy42LCAtNi4xLCAtNi4wLCAtOS43LCAtNy4zLCAtOC43LCAxMS4yLCA3LjksIDguOSwgOC4xLCAtMTIuMSwgLTE3LjQsIC0xMy4yLCAtMTYuOCwgLTYuMywgLTkuNSwgLTcuNSwgLTguOCwgLTEyLjcsIC0xNS4yLCAtMTMuMSwgLTE0LjIsIDAuMCwgLTMuMSwgLTEuOCwgLTMuMSwgLTUwLjAsIC0xMC43LCAtNTAuMCwgLTkuMywgLTQuNiwgLTguOSwgLTUuOSwgLTguMywgLTUwLjAsIC0xMi44LCAtOS42LCAtMTAuNiwgOS41LCAtMy4yLCA4LjIsIC0yLjgsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTExLjMsIC0xNC4wLCAtMTIuOSwgLTkuMywgLTcuMSwgLTguMiwgLTguOSwgLTEyLjcsIC0xMC4zLCAtMTEuOSwgLTEyLjMsIC0wLjQsIDEuNCwgLTAuNiwgLTAuNCwgLTcuMiwgLTQuNywgLTYuOSwgLTUuNywgLTcuNCwgLTMuNywgLTYuNSwgLTYuMCwgLTkuMSwgLTUuMywgLTguOCwgLTcuNCwgNy45LCAxMS45LCA3LjgsIDkuMywgLTE1LjIsIC0xNS4xLCAtMTQuNiwgLTE3LjIsIC05LjcsIC03LjMsIC04LjIsIC05LjIsIC0xNS4wLCAtMTIuOCwgLTE0LjEsIC0xNC45LCAtMi44LCAwLjIsIC0yLjksIC0yLjMsIC01MC4wLCAtNy40LCAtNTAuMCwgLTguNywgLTkuNCwgLTcuMywgLTkuNCwgLTkuNCwgLTUwLjAsIC04LjAsIC0xMS45LCAtOS43LCA2LjUsIDAuNSwgNi40LCAtMS44LF0sXG4gICAgICAgICAgICBbLTEzLjAsIC0xNC40LCAtMTEuOSwgLTEzLjksIC03LjcsIC05LjAsIC02LjcsIC04LjgsIC0xMS43LCAtMTIuNywgLTEwLjcsIC0xMy4xLCAtMC4yLCAtMS42LCAxLjcsIC0xLjYsIC01LjcsIC04LjcsIC00LjgsIC04LjEsIC01LjMsIC03LjUsIC0zLjMsIC03LjUsIC05LjAsIC05LjIsIC02LjUsIC05LjQsIDguOSwgNy44LCAxMC4xLCA3LjgsIC0xNC4zLCAtMTcuNywgLTEzLjAsIC0xNy44LCAtOC4wLCAtOS40LCAtNi4yLCAtOS4yLCAtMTUuMSwgLTE0LjksIC0xMi4yLCAtMTQuOSwgLTEuOCwgLTMuMiwgLTAuOCwgLTMuMiwgLTUwLjAsIC0xMC44LCAtNTAuMCwgLTkuOSwgLTcuMywgLTkuNiwgLTYuNCwgLTkuNCwgLTUwLjAsIC0xMi4zLCAtOC43LCAtMTEuMywgNy42LCAtMy4zLCA4LjcsIC0yLjksXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTEyLjksIC0xMy40LCAtMTAuMCwgLTguNSwgLTkuMCwgLTcuOCwgLTYuOCwgLTExLjgsIC0xMS4zLCAtMTIuNCwgLTEwLjEsIC0wLjMsIC0wLjUsIC0wLjUsIDEuMiwgLTYuMSwgLTYuMCwgLTYuNywgLTMuNSwgLTUuOSwgLTUuNiwgLTUuNSwgLTIuOSwgLTkuNSwgLTcuOCwgLTguNSwgLTUuMywgOC4xLCA5LjMsIDcuOCwgMTEuOCwgLTE0LjQsIC0xNS43LCAtMTQuNSwgLTE0LjYsIC04LjQsIC04LjcsIC03LjksIC03LjEsIC0xNC4zLCAtMTMuOCwgLTEzLjgsIC0xMi4zLCAtMi40LCAtMi4yLCAtMi45LCAtMC4yLCAtNTAuMCwgLTguOSwgLTUwLjAsIC03LjEsIC04LjEsIC05LjEsIC04LjcsIC02LjYsIC01MC4wLCAtOS43LCAtMTEuNCwgLTguMCwgNi44LCAtMS44LCA2LjksIDAuNCxdLFxuICAgICAgICAgICAgWy0yLjYsIC02LjMsIC00LjksIC00LjksIC02LjQsIC05LjQsIC03LjksIC04LjYsIC02LjMsIC03LjQsIC04LjIsIC02LjYsIC05LjcsIC0xNC45LCAtMTEuMSwgLTEzLjksIC0wLjIsIC04LjIsIC0yLjMsIC02LjgsIC04LjksIC0xMS4xLCAtOS40LCAtMTAuOSwgLTguOSwgLTExLjcsIC0xMC4wLCAtOS45LCAtMTIuMSwgLTE1LjIsIC0xNC4zLCAtMTQuNCwgMTEuMSwgMi45LCA5LjIsIDMuNSwgLTMuMCwgLTcuMCwgLTQuMywgLTYuMiwgLTIuMiwgLTYuNiwgLTMuNywgLTUuNywgLTYuMCwgLTEwLjQsIC04LjYsIC05LjUsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xMy45LCAtNy44LCAtMTAuNSwgLTguNywgLTkuNiwgLTUwLjAsIC0xNi41LCAtMTcuMSwgLTE0LjgsIC0xMi4xLCAtMTguOSwgLTEyLjQsIC0xNy40LF0sXG4gICAgICAgICAgICBbLTguNSwgMC44LCAtOS4xLCAtMC43LCAtMTAuMSwgLTcuNSwgLTkuMSwgLTguMiwgLTExLjQsIC0zLjEsIC0xMS44LCAtNC40LCAtMTUuNSwgLTE0LjMsIC0xNC44LCAtMTUuNCwgLTYuNiwgLTQuNywgLTcuMSwgLTUuOCwgLTEyLjUsIC0xMC4zLCAtMTEuMCwgLTEyLjIsIC0xMy40LCAtMTAuNiwgLTEyLjUsIC0xMS44LCAtMTcuNCwgLTE1LjEsIC0xNy43LCAtMTUuNywgMi45LCAxMi41LCAzLjEsIDEwLjMsIC03LjcsIC01LjIsIC02LjIsIC03LjMsIC01LjQsIC0xLjcsIC01LjQsIC0zLjcsIC0xMS42LCAtOS4xLCAtMTMuMCwgLTEwLjgsIC01MC4wLCAtMTAuMywgLTUwLjAsIC0xMS4yLCAtOS44LCAtOC4zLCAtOS4xLCAtOS43LCAtNTAuMCwgLTEyLjcsIC0yMC42LCAtMTMuMSwgLTE2LjAsIC0xNi42LCAtMTcuMCwgLTE4LjQsXSxcbiAgICAgICAgICAgIFstNS4wLCAtNi40LCAtMy40LCAtNS42LCAtNy41LCAtOS4zLCAtNy4xLCAtOC44LCAtOC44LCAtNy40LCAtNi45LCAtNi45LCAtMTEuNCwgLTE1LjIsIC05LjcsIC0xMy43LCAtMS44LCAtNy44LCAtMC44LCAtNy4yLCAtOS40LCAtMTAuNiwgLTguNywgLTExLjIsIC0xMC4wLCAtMTAuMSwgLTcuOCwgLTEwLjUsIC0xMy4yLCAtMTQuNiwgLTEzLjAsIC0xNC41LCA5LjIsIDMuMSwgMTAuOCwgMy4wLCAtNC41LCAtNi43LCAtMi43LCAtNi43LCAtNS4wLCAtNi44LCAtMi41LCAtNi43LCAtNy41LCAtMTAuNCwgLTcuNCwgLTEwLjIsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xNC4yLCAtOC45LCAtMTAuMiwgLTguNSwgLTEwLjAsIC01MC4wLCAtMTUuNiwgLTE1LjMsIC0xNS41LCAtMTMuMCwgLTE4LjgsIC0xMi42LCAtMTguMyxdLFxuICAgICAgICAgICAgWy04LjEsIC0xLjEsIC04LjksIDEuNCwgLTguNiwgLTkuMiwgLTkuNCwgLTYuOCwgLTExLjAsIC00LjksIC0xMS41LCAtMi42LCAtMTMuNywgLTE2LjgsIC0xNC41LCAtMTIuNiwgLTYuMCwgLTYuNywgLTcuMiwgLTQuMiwgLTExLjYsIC0xMS45LCAtMTEuMiwgLTEwLjksIC0xMy4xLCAtMTIuMiwgLTEyLjUsIC0xMC4zLCAtMTYuOCwgLTE3LjIsIC0xNy44LCAtMTQuNiwgMy41LCAxMC4zLCAzLjAsIDEyLjQsIC02LjksIC03LjUsIC02LjgsIC00LjksIC01LjQsIC00LjIsIC01LjQsIC0xLjMsIC0xMC44LCAtMTEuNSwgLTEyLjQsIC04LjIsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC04LjksIC05LjIsIC0xMC4wLCAtOS40LCAtNy45LCAtNTAuMCwgLTE0LjMsIC0xOS45LCAtMTEuNCwgLTE2LjIsIC0xOS4yLCAtMTUuOCwgLTE1LjksXSxcbiAgICAgICAgICAgIFstNi4zLCAtNy40LCAtOC4wLCAtNi4wLCAyLjgsIC0wLjcsIDAuOSwgMC4zLCAtNy41LCAtNC40LCAtOC40LCAtMy42LCAtMy4wLCAtNy43LCAtMy43LCAtNi4yLCAtNS4zLCAtMTAuMCwgLTcuMiwgLTguOSwgLTAuNywgLTMuMiwgLTEuOCwgLTIuNCwgLTkuOSwgLTExLjcsIC05LjYsIC05LjksIC02LjMsIC05LjcsIC04LjAsIC04LjQsIC0zLjAsIC03LjcsIC00LjUsIC02LjksIDExLjMsIDguMiwgOS40LCA5LjEsIC0xLjAsIC0zLjMsIC0xLjgsIC0yLjQsIDEuNSwgLTIuMSwgLTAuNCwgLTEuMSwgLTUwLjAsIC0xNC41LCAtNTAuMCwgLTEyLjksIDIuOCwgLTAuMCwgMS40LCAwLjcsIC01MC4wLCAtOC43LCAtMTQuMSwgLTcuNSwgLTUuMiwgLTEyLjUsIC02LjUsIC0xMC43LF0sXG4gICAgICAgICAgICBbLTkuOSwgLTUuMCwgLTEwLjAsIC02LjUsIC0wLjcsIDIuNiwgLTAuMiwgMC4xLCAtMTAuMywgLTEuOCwgLTkuOSwgLTMuOCwgLTYuNCwgLTQuNywgLTUuOCwgLTYuNywgLTguMiwgLTguMywgLTguMCwgLTEwLjIsIC0zLjksIC0xLjAsIC0yLjcsIC0yLjksIC0xMS43LCAtOC44LCAtMTEuMCwgLTEwLjEsIC05LjUsIC03LjMsIC05LjQsIC04LjcsIC03LjAsIC01LjIsIC02LjcsIC03LjUsIDguMiwgMTEuNiwgOC44LCA5LjEsIC0zLjcsIC0wLjksIC0zLjEsIC0zLjAsIC0yLjAsIDEuMiwgLTIuMywgLTEuMywgLTUwLjAsIC0xMi4xLCAtNTAuMCwgLTEyLjYsIDAuMSwgMi41LCAwLjcsIDAuNiwgLTUwLjAsIC02LjAsIC0xNC44LCAtNy41LCAtOC42LCAtOS40LCAtOC41LCAtMTEuMixdLFxuICAgICAgICAgICAgWy03LjUsIC02LjIsIC03LjIsIC02LjIsIDAuOSwgMC4yLCAyLjUsIDAuMiwgLTguMywgLTMuNSwgLTcuMSwgLTMuNywgLTQuMSwgLTYuMywgLTMuMSwgLTYuMywgLTUuNywgLTguOSwgLTUuNiwgLTguNCwgLTIuMywgLTIuMiwgMC43LCAtMi43LCAtOS44LCAtOC45LCAtNy4xLCAtOS4zLCAtNy41LCAtOC4yLCAtNi4yLCAtNy45LCAtNC4zLCAtNi4yLCAtMi43LCAtNi44LCA5LjQsIDguOCwgMTIuMSwgOC44LCAtMi4xLCAtMi4wLCAwLjEsIC0yLjQsIDAuMCwgLTEuMSwgMS4zLCAtMC44LCAtNTAuMCwgLTExLjksIC01MC4wLCAtMTIuNiwgMS4yLCAwLjcsIDMuNSwgMC44LCAtNTAuMCwgLTcuMSwgLTEyLjQsIC03LjEsIC03LjEsIC0xMC42LCAtNS4wLCAtMTAuNixdLFxuICAgICAgICAgICAgWy05LjAsIC02LjUsIC0xMC4wLCAtNC44LCAwLjEsIC0wLjEsIC0wLjMsIDIuNCwgLTkuOSwgLTMuNSwgLTEwLjYsIC0yLjAsIC01LjQsIC02LjYsIC01LjYsIC00LjQsIC03LjYsIC05LjksIC04LjUsIC04LjIsIC0zLjAsIC0yLjgsIC0zLjAsIC0wLjksIC0xMi44LCAtMTEuOCwgLTEwLjcsIC05LjMsIC04LjgsIC05LjIsIC05LjIsIC03LjEsIC02LjIsIC03LjMsIC02LjcsIC00LjksIDkuMSwgOS4xLCA4LjgsIDExLjIsIC0zLjEsIC0zLjAsIC0zLjMsIC0xLjAsIC0xLjEsIC0xLjQsIC0yLjAsIDEuMiwgLTUwLjAsIC0xMi44LCAtNTAuMCwgLTEwLjksIDAuOCwgMC41LCAwLjcsIDIuMywgLTUwLjAsIC03LjUsIC0xNi41LCAtNS45LCAtNy44LCAtMTEuMSwgLTcuOCwgLTkuMCxdLFxuICAgICAgICAgICAgWy03LjEsIC01LjYsIC05LjEsIC01LjEsIC01LjksIC04LjAsIC02LjksIC03LjQsIC0xLjksIC0xLjYsIC00LjcsIC0xLjQsIC05LjYsIC0xNC42LCAtMTAuNCwgLTEzLjAsIC02LjcsIC0xMC44LCAtOS40LCAtOS45LCAtOS4xLCAtMTAuNSwgLTkuMSwgLTEwLjQsIC01LjksIC05LjMsIC03LjksIC04LjEsIC0xMi43LCAtMTUuMCwgLTE1LjEsIC0xNC4zLCAtMi4yLCAtNS40LCAtNS4wLCAtNS40LCAtMS4wLCAtMy43LCAtMi4xLCAtMy4xLCAxMi44LCA5LjYsIDExLjEsIDEwLjEsIC00LjgsIC05LjQsIC04LjEsIC04LjYsIC01MC4wLCAtMTguMywgLTUwLjAsIC0xNS40LCAtNS45LCAtNy41LCAtNi42LCAtNy4xLCAtNTAuMCwgLTkuNSwgLTExLjcsIC04LjQsIC0xMi41LCAtMTcuMywgLTEzLjIsIC0xNS40LF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xLjYsIC0xMC4yLCAtMy4yLCAtNy4zLCAtNC42LCAtNi41LCAtNi4yLCAtNi43LCAzLjAsIC02LjgsIDAuOCwgLTExLjksIC0xMC44LCAtMTEuNSwgLTEyLjIsIC05LjYsIC03LjEsIC05LjcsIC04LjQsIC05LjgsIC04LjEsIC04LjIsIC05LjcsIC05LjQsIC01LjAsIC04LjAsIC03LjIsIC0xNS4yLCAtMTIuOCwgLTE0LjksIC0xMy44LCAtNi42LCAtMS43LCAtNi44LCAtNC4yLCAtMy4zLCAtMC45LCAtMi4wLCAtMy4wLCA5LjYsIDEyLjgsIDkuNywgMTAuNSwgLTguNSwgLTUuNiwgLTkuMywgLTcuOCwgLTUwLjAsIC0xMi43LCAtNTAuMCwgLTEzLjgsIC02LjgsIC01LjEsIC01LjMsIC02LjUsIC01MC4wLCAtNC4xLCAtMTIuOCwgLTUuOCwgLTE0LjQsIC0xNC4xLCAtMTMuNiwgLTE0LjgsXSxcbiAgICAgICAgICAgIFstOC4yLCAtNC43LCAtNy4xLCAtNS4wLCAtNi41LCAtNy43LCAtNS41LCAtNi45LCAtNC4xLCAtMC44LCAtMS4yLCAtMC45LCAtMTAuNSwgLTEyLjgsIC04LjIsIC0xMy4wLCAtNy41LCAtMTAuMCwgLTcuMiwgLTkuNywgLTkuMiwgLTkuNCwgLTcuMywgLTEwLjIsIC02LjUsIC04LjAsIC00LjMsIC04LjAsIC0xMy4xLCAtMTQuMSwgLTEyLjIsIC0xMy44LCAtMy43LCAtNS40LCAtMi41LCAtNS40LCAtMS44LCAtMy4xLCAwLjEsIC0zLjMsIDExLjEsIDkuNywgMTIuOSwgOS44LCAtNS41LCAtOC4xLCAtNS40LCAtNy44LCAtNTAuMCwgLTE2LjQsIC01MC4wLCAtMTQuOCwgLTUuOSwgLTcuMSwgLTQuNywgLTcuMiwgLTUwLjAsIC04LjQsIC02LjQsIC04LjEsIC0xMi4xLCAtMTYuMiwgLTEwLjMsIC0xNS44LF0sXG4gICAgICAgICAgICBbLTkuMiwgLTMuMCwgLTkuOSwgLTEuMiwgLTYuNSwgLTYuMSwgLTYuOCwgLTQuNCwgLTYuNCwgMC45LCAtNy4wLCAzLjAsIC0xMS44LCAtMTMuMCwgLTExLjEsIC0xMC40LCAtOS4zLCAtOS4yLCAtOS44LCAtNi40LCAtOS41LCAtOS41LCAtOS40LCAtOC4wLCAtOC4xLCAtOC4yLCAtOS40LCAtNS4yLCAtMTQuMiwgLTE0LjksIC0xNC45LCAtMTIuMywgLTUuNywgLTMuNywgLTYuNywgLTEuMywgLTIuNCwgLTMuMCwgLTIuNCwgLTEuMCwgMTAuMSwgMTAuNSwgOS44LCAxMy4xLCAtNy4yLCAtOC4wLCAtOC40LCAtNS4wLCAtNTAuMCwgLTE0LjcsIC01MC4wLCAtMTEuNCwgLTYuMywgLTYuNywgLTUuOCwgLTUuMCwgLTUwLjAsIC02LjEsIC0xMy40LCAtMy42LCAtMTMuMCwgLTE2LjAsIC0xMy43LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy04LjIsIC0xMC44LCAtMTAuMSwgLTkuOCwgLTAuNCwgLTMuNiwgLTEuNywgLTIuOSwgLTcuOSwgLTguNCwgLTkuOCwgLTguMiwgNi4yLCAyLjMsIDAuNiwgMi45LCAtNy4xLCAtMTEuNiwgLTkuMiwgLTExLjEsIC01LjYsIC04LjMsIC03LjIsIC04LjQsIC0xMC43LCAtMTMuNiwgLTExLjQsIC0xMi4wLCAwLjAsIC0yLjgsIC0xLjgsIC0yLjQsIC02LjAsIC0xMS42LCAtNy41LCAtMTAuOCwgMS41LCAtMi4wLCAwLjAsIC0xLjEsIC00LjgsIC04LjUsIC01LjUsIC03LjIsIDExLjksIDguNiwgMTAuMCwgOS4wLCAtNTAuMCwgLTE0LjIsIC01MC4wLCAtMTIuOCwgLTQuMSwgLTcuNCwgLTUuNywgLTYuNSwgLTUwLjAsIC0xMS4wLCAtMTQuMywgLTkuOSwgMS40LCAtNy45LCAtMC43LCAtNi44LF0sXG4gICAgICAgICAgICBbLTEyLjUsIC04LjcsIC0xMy4wLCAtOS45LCAtMy45LCAtMS4wLCAtMy40LCAtMi45LCAtMTIuNSwgLTYuMywgLTExLjYsIC04LjEsIDMuMywgNi4wLCAtMS42LCAzLjgsIC0xMC41LCAtMTAuMSwgLTExLjEsIC0xMS4xLCAtOS4wLCAtNi45LCAtOC4yLCAtOS4xLCAtMTQuMCwgLTExLjQsIC0xMi4zLCAtMTIuMSwgLTMuMSwgMC4yLCAtMy4yLCAtMi4yLCAtMTAuNCwgLTkuMSwgLTEwLjQsIC0xMS41LCAtMi4xLCAxLjIsIC0xLjEsIC0xLjQsIC05LjQsIC01LjYsIC04LjEsIC04LjAsIDguNiwgMTIuNCwgOC42LCA5LjUsIC01MC4wLCAtMTAuNCwgLTUwLjAsIC0xMS42LCAtNy4yLCAtNS43LCAtNy41LCAtNy40LCAtNTAuMCwgLTguNiwgLTE1LjcsIC05LjcsIC0zLjAsIC0zLjcsIC0zLjIsIC01LjksXSxcbiAgICAgICAgICAgIFstMTEuMSwgLTExLjksIC0xMC42LCAtMTEuMywgLTIuNiwgLTQuMSwgLTEuNywgLTMuNSwgLTExLjQsIC05LjYsIC05LjYsIC05LjIsIDMuNywgMi41LCAxLjYsIDIuNSwgLTkuNiwgLTEyLjMsIC05LjUsIC0xMS44LCAtOC4wLCAtOS40LCAtNy4yLCAtOS4zLCAtMTMuMywgLTEyLjgsIC0xMC45LCAtMTIuNiwgLTEuOCwgLTIuOSwgLTAuOCwgLTIuOSwgLTguNiwgLTEzLjAsIC03LjQsIC0xMi40LCAtMC40LCAtMi4zLCAxLjMsIC0yLjAsIC04LjEsIC05LjMsIC01LjQsIC04LjQsIDEwLjAsIDguNiwgMTEuNCwgOC45LCAtNTAuMCwgLTEzLjcsIC01MC4wLCAtMTMuMiwgLTYuMSwgLTguMSwgLTUuNSwgLTcuNSwgLTUwLjAsIC0xMS4zLCAtMTIuNywgLTEwLjEsIC0xLjYsIC03LjgsIC0wLjMsIC03LjIsXSxcbiAgICAgICAgICAgIFstMTEuNCwgLTEwLjAsIC0xMi43LCAtOC4yLCAtMy4xLCAtMy4xLCAtMi44LCAtMC45LCAtMTEuNywgLTcuMywgLTEyLjEsIC01LjgsIDMuNiwgMy42LCAtMS4xLCA1LjgsIC05LjQsIC0xMS45LCAtMTAuNywgLTEwLjAsIC04LjUsIC04LjgsIC04LjIsIC02LjUsIC0xMy45LCAtMTMuMCwgLTEyLjksIC0xMC45LCAtMy4xLCAtMi4zLCAtMy4yLCAtMC4yLCAtOS41LCAtMTAuOCwgLTEwLjIsIC04LjIsIC0xLjEsIC0xLjMsIC0wLjgsIDEuMiwgLTguNiwgLTcuOCwgLTcuOCwgLTUuMCwgOS4wLCA5LjUsIDguOSwgMTIuMCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTEwLjMsIC02LjIsIC03LjAsIC03LjEsIC01LjQsIC01MC4wLCAtOS4zLCAtMTQuMCwgLTguMiwgLTIuNCwgLTYuMywgLTIuNCwgLTMuOSxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMzLjMsIC01MC4wLCAzMC42LCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI5LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTE0LjgsIC02LjIsIC0xNC45LCAtNy42LCAtMTQuNiwgLTExLjYsIC0xMy4wLCAtMTIuMiwgLTE0LjAsIC05LjAsIC0xNC4xLCAtMTAuMSwgLTEzLjYsIC0xMS4yLCAtMTIuNCwgLTEyLjUsIC04LjEsIDIuMiwgLTguNywgMC40LCAtMTUuMywgLTExLjMsIC0xMy4yLCAtMTMuMywgLTExLjksIC03LjIsIC0xMS44LCAtNy45LCAtMTAuNywgLTcuNCwgLTEwLjgsIC04LjksIC0xNS41LCAtMTAuMywgLTE1LjUsIC0xMi41LCAtMTQuNSwgLTEyLjEsIC0xMS45LCAtMTIuOCwgLTE4LjMsIC0xMi43LCAtMTYuNCwgLTE0LjcsIC0xNC4yLCAtMTAuNCwgLTEzLjcsIC0xMy4wLCAtNTAuMCwgMTUuMSwgLTUwLjAsIDEzLjMsIC05LjksIC01LjgsIC04LjksIC03LjYsIC01MC4wLCAtMS41LCAtNy44LCAtMy4wLCAtOC4xLCAzLjYsIC05LjQsIDIuMCxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMwLjYsIC01MC4wLCAzNS4yLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTEzLjgsIC03LjUsIC0xNC40LCAtNS4xLCAtMTIuNiwgLTExLjYsIC0xMS41LCAtMTAuMSwgLTEzLjIsIC05LjcsIC0xMi43LCAtNy40LCAtMTEuOSwgLTExLjksIC0xMS41LCAtMTAuMiwgLTcuMiwgMC45LCAtOC42LCAyLjYsIC0xNC4xLCAtMTIuOCwgLTEzLjMsIC0xMS4wLCAtOS43LCAtOC40LCAtMTEuMiwgLTUuMywgLTkuMywgLTguNywgLTkuOSwgLTcuMSwgLTEzLjksIC0xMS4yLCAtMTQuMiwgLTguOSwgLTEyLjksIC0xMi42LCAtMTIuNiwgLTEwLjksIC0xNS40LCAtMTMuOCwgLTE0LjgsIC0xMS40LCAtMTIuOCwgLTExLjYsIC0xMy4yLCAtMTAuMywgLTUwLjAsIDEzLjMsIC01MC4wLCAxNS4yLCAtOC42LCAtNy4wLCAtOC40LCAtNC44LCAtNTAuMCwgLTMuMCwgLTcuMSwgLTAuMSwgLTcuMywgMi4zLCAtOC43LCAzLjksXSxcbiAgICAgICAgICAgIFstNy4zLCAtNi4zLCAtOC45LCAtNS41LCAyLjksIDAuMiwgMS41LCAxLjIsIC04LjUsIC0yLjMsIC0xMC4wLCAtMS43LCAtNS42LCAtMTAuNSwgLTUuNSwgLTkuNiwgLTQuMywgLTcuOSwgLTYuMSwgLTcuMiwgMi4zLCAtMC42LCAwLjUsIC0wLjAsIC04LjksIC0xMS4wLCAtOS40LCAtOS4zLCAtNC42LCAtOS40LCAtNy4zLCAtOC4xLCAtNy44LCAtOS44LCAtOC45LCAtOS4yLCAyLjgsIDAuMSwgMS4yLCAwLjgsIC01LjksIC02LjgsIC01LjksIC02LjMsIC00LjEsIC03LjIsIC02LjEsIC02LjIsIC01MC4wLCAtOS45LCAtNTAuMCwgLTguNiwgMTIuNSwgOS40LCAxMS4wLCA5LjgsIC01MC4wLCAtNC44LCAtOC43LCAtMy41LCAtMC4wLCAtOC42LCAtMi4xLCAtNy4wLF0sXG4gICAgICAgICAgICBbLTEwLjEsIC00LjMsIC0xMC44LCAtNS44LCAwLjEsIDIuMywgMC43LCAwLjYsIC0xMC40LCAtMC4yLCAtMTAuOCwgLTIuMCwgLTguOCwgLTkuMiwgLTguMCwgLTkuNywgLTYuOCwgLTUuOSwgLTcuNSwgLTcuMCwgLTEuNCwgMi4yLCAtMC45LCAtMC40LCAtMTAuOCwgLTcuNywgLTkuOCwgLTguOCwgLTguOSwgLTcuMywgLTkuNiwgLTkuMSwgLTEwLjUsIC04LjMsIC0xMC4yLCAtMTAuMCwgLTAuMCwgMi41LCAwLjcsIDAuNSwgLTcuNSwgLTUuMSwgLTcuMSwgLTYuNywgLTcuNCwgLTUuNywgLTguMSwgLTcuMCwgLTUwLjAsIC01LjgsIC01MC4wLCAtNy4wLCA5LjQsIDEyLjcsIDEwLjEsIDEwLjAsIC01MC4wLCAtMS41LCAtMTEuMywgLTMuMywgLTUuNCwgLTQuMiwgLTUuNiwgLTYuOCxdLFxuICAgICAgICAgICAgWy04LjQsIC02LjIsIC04LjksIC01LjksIDEuOCwgMC40LCAyLjcsIDEuMiwgLTkuMSwgLTEuMiwgLTguOCwgLTEuNSwgLTcuMiwgLTEwLjUsIC00LjksIC05LjYsIC01LjcsIC03LjQsIC01LjUsIC03LjQsIDAuMywgLTAuMywgMS44LCAtMC40LCAtOS4wLCAtOC43LCAtNy4zLCAtOC45LCAtNS45LCAtOS40LCAtNi40LCAtOC43LCAtOC43LCAtOS4xLCAtOC41LCAtOS40LCAxLjQsIDAuNywgMy41LCAwLjcsIC02LjYsIC01LjMsIC00LjcsIC01LjgsIC01LjcsIC03LjUsIC01LjUsIC03LjEsIC01MC4wLCAtOC45LCAtNTAuMCwgLTguNCwgMTEuMCwgMTAuMSwgMTMuMiwgMTAuMiwgLTUwLjAsIC00LjIsIC02LjEsIC0zLjYsIC0zLjUsIC04LjQsIC0xLjIsIC02LjgsXSxcbiAgICAgICAgICAgIFstOS4xLCAtNS40LCAtMTAuNCwgLTQuMiwgMS4wLCAwLjUsIDAuNiwgMi40LCAtOS42LCAtMS41LCAtMTAuNSwgLTAuNSwgLTguOSwgLTEwLjUsIC03LjIsIC04LjMsIC02LjMsIC02LjksIC03LjcsIC01LjEsIC0wLjUsIDAuMSwgLTAuNiwgMi4zLCAtMTEuMSwgLTEwLjIsIC0xMC41LCAtNy4wLCAtOC4zLCAtOS40LCAtOS40LCAtNi42LCAtOS42LCAtOS43LCAtMTAuMCwgLTcuOSwgMC43LCAwLjYsIDAuOCwgMi4zLCAtNy4xLCAtNi41LCAtNy4yLCAtNS4wLCAtNi41LCAtNy40LCAtNy41LCAtNS40LCAtNTAuMCwgLTcuNiwgLTUwLjAsIC00LjgsIDkuOCwgMTAuMCwgMTAuMiwgMTIuMSwgLTUwLjAsIC0zLjEsIC0xMS40LCAtMC43LCAtNC42LCAtNi42LCAtNC45LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuMCwgLTEzLjEsIC04LjMsIC05LjIsIC02LjUsIC04LjksIC03LjYsIC05LjgsIC0wLjcsIC05LjIsIC0yLjEsIC0xMi40LCAtMTAuMywgLTEyLjQsIC0xMS42LCAtOS41LCAtNC42LCAtMTAuNCwgLTUuNywgLTEzLjYsIC0xMC4xLCAtMTEuNCwgLTEwLjksIC02LjUsIC0xLjUsIC02LjIsIC0zLjYsIC0xMi44LCAtOC4wLCAtMTIuMywgLTkuNywgLTE2LjUsIC0xMi43LCAtMTUuNiwgLTE0LjMsIC04LjcsIC02LjAsIC03LjEsIC03LjUsIC05LjUsIC00LjEsIC04LjQsIC02LjEsIC0xMS4wLCAtOC42LCAtMTEuMywgLTkuMywgLTUwLjAsIC0xLjUsIC01MC4wLCAtMy4wLCAtNC44LCAtMS41LCAtNC4yLCAtMy4xLCAtNTAuMCwgMTYuNCwgLTUuMSwgMTQuMiwgLTEwLjEsIC00LjMsIC0xMC4wLCAtNS40LF0sXG4gICAgICAgICAgICBbLTEzLjUsIC0xNi4zLCAtMTEuOCwgLTE1LjUsIC0xMy42LCAtMTUuMywgLTEyLjEsIC0xNi4xLCAtNy43LCAtMTMuMywgLTQuMiwgLTEyLjYsIC0xNC4xLCAtMTYuMiwgLTEwLjMsIC0xNS40LCAtOS42LCAtMTEuNiwgLTcuNywgLTkuOCwgLTE0LjMsIC0xNy41LCAtMTEuMSwgLTE3LjIsIC01LjMsIC03LjEsIC0yLjIsIC03LjEsIC05LjYsIC0xMS45LCAtOC43LCAtMTEuNCwgLTE3LjEsIC0yMC42LCAtMTUuMywgLTE5LjksIC0xNC4xLCAtMTQuOCwgLTEyLjQsIC0xNi41LCAtMTEuNywgLTEyLjgsIC02LjQsIC0xMy40LCAtMTQuMywgLTE1LjcsIC0xMi43LCAtMTQuMCwgLTUwLjAsIC03LjgsIC01MC4wLCAtNy4xLCAtOC43LCAtMTEuMywgLTYuMSwgLTExLjQsIC01MC4wLCAtNS4xLCAxOC42LCAtNC44LCAtOC42LCAtOC4xLCAtNC41LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEyLjQsIC04LjIsIC0xMy4wLCAtNS45LCAtNy43LCAtNy44LCAtNy40LCAtNS44LCAtOC44LCAtMi4wLCAtOS4zLCAtMC40LCAtMTEuNiwgLTExLjMsIC0xMS42LCAtOS40LCAtOC45LCAtNS42LCAtMTAuMCwgLTMuMiwgLTExLjUsIC0xMS4xLCAtMTAuNSwgLTguMywgLTYuMywgLTQuOSwgLTYuNywgLTEuMiwgLTEwLjYsIC05LjcsIC0xMS4zLCAtOC4wLCAtMTQuOCwgLTEzLjEsIC0xNS41LCAtMTEuNCwgLTcuNSwgLTcuNSwgLTcuMSwgLTUuOSwgLTguNCwgLTUuOCwgLTguMSwgLTMuNiwgLTkuOSwgLTkuNywgLTEwLjEsIC04LjIsIC01MC4wLCAtMy4wLCAtNTAuMCwgLTAuMSwgLTMuNSwgLTMuMywgLTMuNiwgLTAuNywgLTUwLjAsIDE0LjIsIC00LjgsIDE2LjQsIC04LjksIC01LjgsIC04LjksIC0zLjQsXSxcbiAgICAgICAgICAgIFstMTAuNywgLTEzLjIsIC0xMi40LCAtMTEuNiwgLTQuOCwgLTguNCwgLTYuMSwgLTcuMiwgLTEwLjMsIC0xMS44LCAtMTEuMCwgLTExLjYsIDIuOCwgLTEuNywgMC43LCAtMS4xLCAtNi4yLCAtOS43LCAtNy4zLCAtOC40LCAtNS4zLCAtOC42LCAtNi4xLCAtOC4zLCAtMTAuNSwgLTExLjIsIC05LjgsIC0xMC4yLCA5LjUsIDYuNSwgNy42LCA2LjgsIC0xMi4xLCAtMTYuMCwgLTEzLjAsIC0xNi4yLCAtNS4yLCAtOC42LCAtNy4xLCAtNy44LCAtMTIuNSwgLTE0LjQsIC0xMi4xLCAtMTMuMCwgMS40LCAtMy4wLCAtMS42LCAtMi40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjMsIC0wLjAsIC01LjQsIC0zLjUsIC00LjYsIC01MC4wLCAtMTAuMSwgLTguNiwgLTguOSwgMTMuMiwgLTAuOSwgOS43LCAtMC4zLF0sXG4gICAgICAgICAgICBbLTE4LjEsIC0xMi4zLCAtMTkuNCwgLTE0LjIsIC0xMi4yLCAtOS41LCAtMTEuNSwgLTEwLjgsIC0xNy45LCAtMTEuOSwgLTE4LjIsIC0xMy45LCAtNi40LCAtMy43LCAtNi44LCAtNS40LCAtMTIuOCwgLTUuOSwgLTEzLjYsIC03LjQsIC0xMy43LCAtOS45LCAtMTIuOSwgLTEyLjcsIC0xNi4yLCAtMTEuNiwgLTE1LjIsIC0xMi43LCAtMy4yLCAwLjUsIC0zLjMsIC0xLjgsIC0xOC45LCAtMTYuNiwgLTE4LjgsIC0xOS4yLCAtMTIuNSwgLTkuNCwgLTEwLjYsIC0xMS4xLCAtMTcuMywgLTE0LjEsIC0xNi4yLCAtMTYuMCwgLTcuOSwgLTMuNywgLTcuOCwgLTYuMywgLTUwLjAsIDMuNiwgLTUwLjAsIDIuMywgLTguNiwgLTQuMiwgLTguNCwgLTYuNiwgLTUwLjAsIC00LjMsIC04LjEsIC01LjgsIC0wLjksIDE0LjIsIC0xLjgsIDExLjYsXSxcbiAgICAgICAgICAgIFstMTEuOCwgLTEzLjEsIC0xMS41LCAtMTIuMCwgLTYuMiwgLTguMywgLTUuNCwgLTcuNCwgLTExLjgsIC0xMi4zLCAtMTEuMSwgLTExLjQsIDAuNSwgLTIuNSwgMi40LCAtMS42LCAtNi44LCAtOS45LCAtNi40LCAtOC45LCAtNi4xLCAtOC42LCAtNS4wLCAtNy44LCAtMTAuNCwgLTExLjYsIC04LjUsIC05LjksIDguMiwgNi40LCA4LjcsIDYuOSwgLTEyLjQsIC0xNy4wLCAtMTIuNiwgLTE1LjgsIC02LjUsIC04LjUsIC01LjAsIC03LjgsIC0xMy4yLCAtMTMuNiwgLTEwLjMsIC0xMy43LCAtMC43LCAtMy4yLCAtMC4zLCAtMi40LCAtNTAuMCwgLTkuNCwgLTUwLjAsIC04LjcsIC0yLjEsIC01LjYsIC0xLjIsIC00LjksIC01MC4wLCAtMTAuMCwgLTQuNSwgLTguOSwgOS43LCAtMS44LCAxMS4zLCAtMC45LF0sXG4gICAgICAgICAgICBbLTE3LjIsIC0xMy4zLCAtMTcuOCwgLTExLjYsIC0xMS4wLCAtMTEuMSwgLTEwLjQsIC05LjAsIC0xNi4wLCAtMTIuNywgLTE2LjEsIC0xMS4xLCAtNS4yLCAtNS40LCAtNi4wLCAtMy4zLCAtMTEuOCwgLTcuMywgLTEzLjMsIC01LjksIC0xMi43LCAtMTEuOSwgLTExLjksIC05LjMsIC0xNS4yLCAtMTUuMCwgLTE0LjksIC0xMS4wLCAtMi44LCAtMS44LCAtMi45LCAwLjQsIC0xNy40LCAtMTguNCwgLTE4LjMsIC0xNS45LCAtMTAuNywgLTExLjIsIC0xMC42LCAtOS4wLCAtMTUuNCwgLTE0LjgsIC0xNS44LCAtMTMuMywgLTYuOCwgLTUuOSwgLTcuMiwgLTMuOSwgLTUwLjAsIDIuMCwgLTUwLjAsIDMuOSwgLTcuMCwgLTYuOCwgLTYuOCwgLTMuOSwgLTUwLjAsIC01LjQsIC03LjMsIC0zLjQsIC0wLjMsIDExLjYsIC0wLjksIDE0LjEsXV07XG4gICAgICAgIHRoaXMuVFJBTlMgPSBbWzUsIDAsIDAsIDRdLFxuICAgICAgICAgICAgWzAsIDUsIDQsIDBdLFxuICAgICAgICAgICAgWzAsIDQsIDUsIDBdLFxuICAgICAgICAgICAgWzQsIDAsIDAsIDVdXTtcbiAgICAgICAgdGhpcy5DT05CTE8gPSB7ICdBJzogMCwgJ1InOiAxLCAnTic6IDIsICdEJzogMywgJ0MnOiA0LCAnUSc6IDUsICdFJzogNiwgJ0cnOiA3LCAnSCc6IDgsICdJJzogOSwgJ0wnOiAxMCwgJ0snOiAxMSwgJ00nOiAxMiwgJ0YnOiAxMywgJ1AnOiAxNCwgJ1MnOiAxNSwgJ1QnOiAxNiwgJ1cnOiAxNywgJ1knOiAxOCwgJ1YnOiAxOSwgJ0InOiAyMCwgJ1onOiAyMSwgJ1gnOiAyMiwgJyonOiAyMyB9O1xuICAgICAgICB0aGlzLkNPTk5VQ0wgPSB7ICdBJzogMCwgJ1QnOiAxLCAnQyc6IDIsICdHJzogMyB9O1xuICAgICAgICB0aGlzLkNPTlNDSE4gPSB7ICdBQUEnOiAwLCAnQUFDJzogMSwgJ0FBRyc6IDIsICdBQVQnOiAzLCAnQUNBJzogNCwgJ0FDQyc6IDUsICdBQ0cnOiA2LCAnQUNUJzogNywgJ0FHQSc6IDgsICdBR0MnOiA5LCAnQUdHJzogMTAsICdBR1QnOiAxMSwgJ0FUQSc6IDEyLCAnQVRDJzogMTMsICdBVEcnOiAxNCwgJ0FUVCc6IDE1LCAnQ0FBJzogMTYsICdDQUMnOiAxNywgJ0NBRyc6IDE4LCAnQ0FUJzogMTksICdDQ0EnOiAyMCwgJ0NDQyc6IDIxLCAnQ0NHJzogMjIsICdDQ1QnOiAyMywgJ0NHQSc6IDI0LCAnQ0dDJzogMjUsICdDR0cnOiAyNiwgJ0NHVCc6IDI3LCAnQ1RBJzogMjgsICdDVEMnOiAyOSwgJ0NURyc6IDMwLCAnQ1RUJzogMzEsICdHQUEnOiAzMiwgJ0dBQyc6IDMzLCAnR0FHJzogMzQsICdHQVQnOiAzNSwgJ0dDQSc6IDM2LCAnR0NDJzogMzcsICdHQ0cnOiAzOCwgJ0dDVCc6IDM5LCAnR0dBJzogNDAsICdHR0MnOiA0MSwgJ0dHRyc6IDQyLCAnR0dUJzogNDMsICdHVEEnOiA0NCwgJ0dUQyc6IDQ1LCAnR1RHJzogNDYsICdHVFQnOiA0NywgJ1RBQSc6IDQ4LCAnVEFDJzogNDksICdUQUcnOiA1MCwgJ1RBVCc6IDUxLCAnVENBJzogNTIsICdUQ0MnOiA1MywgJ1RDRyc6IDU0LCAnVENUJzogNTUsICdUR0EnOiA1NiwgJ1RHQyc6IDU3LCAnVEdHJzogNTgsICdUR1QnOiA1OSwgJ1RUQSc6IDYwLCAnVFRDJzogNjEsICdUVEcnOiA2MiwgJ1RUVCc6IDYzIH07XG4gICAgICAgIHRoaXMuc2V0TWV0aG9kKGFsaWduR3JpZF8pO1xuICAgICAgICB0aGlzLnNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pO1xuICAgICAgICB0aGlzLnNldEdhcChnYXBfKTtcbiAgICB9XG4gICAgZmlsbE5lZWRsZW1hbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEogPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMjsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS52YWx1ZSA9IC1pICogdGhpcy5nYXA7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEogPSBpIC0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaWxsT25lKGksIGopIHtcbiAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPSBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSwgTWF0aC5tYXgodGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXAsIHRoaXMuZHBHcmlkW2ldW2ogLSAxXS52YWx1ZSAtIHRoaXMuZ2FwKSk7XG4gICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9PSB0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSkge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqXS52YWx1ZSAtIHRoaXMuZ2FwKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gajtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdyaWRGcm9tTmFtZShwYXRoKSB7XG4gICAgICAgIHN3aXRjaCAocGF0aCkge1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNDUnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU00NTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU02Mic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTYyO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNODAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU04MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTkwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNOTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU0zMCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTMwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNNzAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5QQU03MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTI1MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTI1MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ05VQ0xFT1RJREVTJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuTlVDTEVPVElERVM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OTlVDTDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVFJBTlMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5UUkFOUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTQ0hORUlERVInOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5TQ0hORUlERVI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OU0NITjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RSZXN1bHQoaSwgaikge1xuICAgICAgICBsZXQgcmVzMSA9IFwiXCIsIHJlczIgPSBcIlwiLCBnYXBTID0gXCJcIjtcbiAgICAgICAgbGV0IHRvdGFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGVwOyBpKyspIHtcbiAgICAgICAgICAgIGdhcFMgKz0gJ3wnO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpID4gMCB8fCBqID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPT0gaSkge1xuICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPT0gaikge1xuICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICBpZiAoaiAtIDEgPj0gMClcbiAgICAgICAgICAgICAgICAgICAgcmVzMiA9IHRoaXMuc2VxMi5zdWJzdHIoKGogLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczI7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gZ2FwUyArIHJlczI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgdGVtcEkgPSBpO1xuICAgICAgICAgICAgaSA9IHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEk7XG4gICAgICAgICAgICBqID0gdGhpcy5kcEdyaWRbdGVtcEldW2pdLnBhcmVudEo7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGlnbmVkKHJlczEsIHJlczIsIHRvdGFsKTtcbiAgICB9XG4gICAgZmlsbFNjb3JlcygpIHtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5zY29yZXMucHVzaChbXSk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY29yZXNbaV0ucHVzaCh0aGlzLmFsaWduR3JpZFt0aGlzLmNvbm5lY3Rpb25zW3RoaXMuc2VxMS5zdWJzdHIoaSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKV1dW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXEyLnN1YnN0cihqICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHR5cGVSZWMoKSB7XG4gICAgICAgIGlmICgvW0FUR0NdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMikpXG4gICAgICAgICAgICByZXR1cm4gXCJOVUNMRU9USURFU1wiO1xuICAgICAgICBpZiAoL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVJORENRRUdISUxLTUZQU1RXWVZCWlgqXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIkJMT1NVTTYyXCI7XG4gICAgICAgIHRocm93IEVycm9yKFwiQ2FuJ3QgcmVjb2duaXplIHNlcXVlbmNlIHR5cGVcIik7XG4gICAgfVxuICAgIG5lZWRsZW1hbld1bmNoKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsTmVlZGxlbWFuKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQodGhpcy5sZW4xLCB0aGlzLmxlbjIpO1xuICAgIH1cbiAgICBzbWl0aFdhdGVybWFuKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGJlc3RWYWwgPSAwO1xuICAgICAgICBsZXQgYmVzdEkgPSAwLCBiZXN0SiA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SV1bdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50Sl0udmFsdWUgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA+IGJlc3RWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFZhbCA9IHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0SSA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RKID0gajtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0UmVzdWx0KGJlc3RJLCBiZXN0Sik7XG4gICAgfVxuICAgIHNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLmxlbjEgPSB0aGlzLnNlcTEubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmxlbjIgPSB0aGlzLnNlcTIubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmZpbGxTY29yZXMoKTtcbiAgICB9XG4gICAgc2V0R2FwKGdhcF8pIHtcbiAgICAgICAgdGhpcy5nYXAgPSBnYXBfO1xuICAgIH1cbiAgICBzZXRNZXRob2QoYWxpZ25HcmlkXyA9IFwiXCIpIHtcbiAgICAgICAgaWYgKGFsaWduR3JpZF8gPT0gXCJBVVRPXCIpIHtcbiAgICAgICAgICAgIGFsaWduR3JpZF8gPSB0aGlzLnR5cGVSZWMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWRGcm9tTmFtZShhbGlnbkdyaWRfKTtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0TW9ub21lcmljTW9scyB9IGZyb20gJy4uL2NhbGN1bGF0aW9ucy9tb25vbWVyTGV2ZWxNb2xzJztcbmltcG9ydCB7IHVwZGF0ZURpdklubmVySFRNTCB9IGZyb20gJy4uL3V0aWxzL3VpLXV0aWxzJztcbi8qKlxuICogU2VhcmNoZXMgc3Vic3RydWN0dXJlIGluIGVhY2ggcm93IG9mIE1hY3JvbW9sZWN1bGUgY29sdW1uXG4gKlxuICogQHBhcmFtIHtERy5jb2x1bW59IGNvbCBDb2x1bW4gd2l0aCAnTWFjcm9tb2xlY3VsZScgc2VtYW50aWMgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RydWN0dXJlU2VhcmNoRGlhbG9nKGNvbCkge1xuICAgIGNvbnN0IHVuaXRzID0gY29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSBjb2wuZ2V0VGFnKEMuVEFHUy5TRVBBUkFUT1IpO1xuICAgIC8vIGNvbnN0IG5vdGF0aW9ucyA9IFtOT1RBVElPTi5GQVNUQSwgTk9UQVRJT04uU0VQQVJBVE9SLCBOT1RBVElPTi5IRUxNXTtcbiAgICBjb25zdCBzdWJzdHJ1Y3R1cmVJbnB1dCA9IHVpLnRleHRJbnB1dCgnU3Vic3RydWN0dXJlJywgJycpO1xuICAgIGNvbnN0IGVkaXRIZWxtTGluayA9IHVpLmxpbmsoJ0VkaXQgaGVsbScsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdXBkYXRlRGl2SW5uZXJIVE1MKGlucHV0c0RpdiwgZ3JpZC5yb290KTtcbiAgICAgICAgeWllbGQgdWkudG9vbHMud2FpdEZvckVsZW1lbnRJbkRvbShncmlkLnJvb3QpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGdyaWQuY2VsbCgnc3Vic3RyX2hlbG0nLCAwKS5lbGVtZW50LmNoaWxkcmVuWzBdLmRpc3BhdGNoRXZlbnQobmV3IEtleWJvYXJkRXZlbnQoJ2tleWRvd24nLCB7IGtleTogJ0VudGVyJyB9KSk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSkpO1xuICAgIGNvbnN0IGRmID0gREcuRGF0YUZyYW1lLmNyZWF0ZSgxKTtcbiAgICBkZi5jb2x1bW5zLmFkZE5ld1N0cmluZygnc3Vic3RyX2hlbG0nKS5pbml0KChpKSA9PiAnJyk7XG4gICAgZGYuY29sKCdzdWJzdHJfaGVsbScpLnNlbVR5cGUgPSBjb2wuc2VtVHlwZTtcbiAgICBkZi5jb2woJ3N1YnN0cl9oZWxtJykuc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiaGVsbVwiIC8qIGJpby5OT1RBVElPTi5IRUxNICovKTtcbiAgICBjb25zdCBncmlkID0gZGYucGxvdC5ncmlkKCk7XG4gICAgY29uc3Qgc2VwYXJhdG9ySW5wdXQgPSB1aS50ZXh0SW5wdXQoJ1NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gICAgY29uc3QgaW5wdXRzRGl2ID0gdWkuZGl2KCk7XG4gICAgY29uc3QgaW5wdXRzID0gdW5pdHMgPT09IFwiaGVsbVwiIC8qIGJpby5OT1RBVElPTi5IRUxNICovID8gdWkuZGl2VihbZWRpdEhlbG1MaW5rXSkgOlxuICAgICAgICB1bml0cyA9PT0gXCJzZXBhcmF0b3JcIiAvKiBiaW8uTk9UQVRJT04uU0VQQVJBVE9SICovID8gdWkuaW5wdXRzKFtzdWJzdHJ1Y3R1cmVJbnB1dCwgc2VwYXJhdG9ySW5wdXRdKSA6XG4gICAgICAgICAgICB1aS5pbnB1dHMoW3N1YnN0cnVjdHVyZUlucHV0XSk7XG4gICAgdXBkYXRlRGl2SW5uZXJIVE1MKGlucHV0c0RpdiwgaW5wdXRzKTtcbiAgICB1aS5kaWFsb2coJ1N1YnN0cnVjdHVyZSBzZWFyY2gnKVxuICAgICAgICAuYWRkKHVpLmRpdlYoW1xuICAgICAgICB1aS5kaXZUZXh0KGBOb3RhdGlvbjogJHt1bml0c31gKSxcbiAgICAgICAgaW5wdXRzRGl2XG4gICAgXSkpXG4gICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHN1YnN0cnVjdHVyZSA9IHVuaXRzID09PSBcImhlbG1cIiAvKiBiaW8uTk9UQVRJT04uSEVMTSAqLyA/IGRmLmdldCgnc3Vic3RyX2hlbG0nLCAwKSA6IHN1YnN0cnVjdHVyZUlucHV0LnZhbHVlO1xuICAgICAgICBpZiAodW5pdHMgPT09IFwic2VwYXJhdG9yXCIgLyogYmlvLk5PVEFUSU9OLlNFUEFSQVRPUiAqLyAmJiBzZXBhcmF0b3JJbnB1dC52YWx1ZSAhPT0gc2VwYXJhdG9yICYmIHNlcGFyYXRvcklucHV0LnZhbHVlICE9PSAnJylcbiAgICAgICAgICAgIHN1YnN0cnVjdHVyZSA9IHN1YnN0cnVjdHVyZS5yZXBsYWNlQWxsKHNlcGFyYXRvcklucHV0LnZhbHVlLCBzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBtYXRjaGVzQ29sTmFtZSA9IGBNYXRjaGVzOiAke3N1YnN0cnVjdHVyZX1gO1xuICAgICAgICBjb25zdCBjb2xFeGlzdHMgPSBjb2wuZGF0YUZyYW1lLmNvbHVtbnMubmFtZXMoKVxuICAgICAgICAgICAgLmZpbHRlcigoaXQpID0+IGl0LnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IG1hdGNoZXNDb2xOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkpLmxlbmd0aCA+IDA7XG4gICAgICAgIGlmICghY29sRXhpc3RzKSB7XG4gICAgICAgICAgICBsZXQgbWF0Y2hlcztcbiAgICAgICAgICAgIGlmICh1bml0cyA9PT0gXCJoZWxtXCIgLyogYmlvLk5PVEFUSU9OLkhFTE0gKi8pXG4gICAgICAgICAgICAgICAgbWF0Y2hlcyA9IHlpZWxkIGhlbG1TdWJzdHJ1Y3R1cmVTZWFyY2goc3Vic3RydWN0dXJlLCBjb2wpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBsaW5lYXJTdWJzdHJ1Y3R1cmVTZWFyY2goc3Vic3RydWN0dXJlLCBjb2wpO1xuICAgICAgICAgICAgY29sLmRhdGFGcmFtZS5jb2x1bW5zLmFkZChERy5Db2x1bW4uZnJvbUJpdFNldChtYXRjaGVzQ29sTmFtZSwgbWF0Y2hlcykpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBTZWFyY2ggJHtzdWJzdHJ1Y3R1cmV9IGlzIGFscmVhZHkgcGVyZm9ybWVkYCk7XG4gICAgICAgIH1cbiAgICB9KSlcbiAgICAgICAgLnNob3coKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBsaW5lYXJTdWJzdHJ1Y3R1cmVTZWFyY2goc3Vic3RydWN0dXJlLCBjb2wpIHtcbiAgICBjb25zdCBsb3dlckNhc2VTdWJzdHIgPSBzdWJzdHJ1Y3R1cmUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCByZXN1bHRBcnJheSA9IERHLkJpdFNldC5jcmVhdGUoY29sLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2wubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbWFjcm9tb2xlY3VsZSA9IGNvbC5nZXQoaSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKG1hY3JvbW9sZWN1bGUuaW5kZXhPZihsb3dlckNhc2VTdWJzdHIpICE9PSAtMSlcbiAgICAgICAgICAgIHJlc3VsdEFycmF5LnNldChpLCB0cnVlLCBmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRBcnJheTtcbn1cbmZ1bmN0aW9uIGhlbG1TdWJzdHJ1Y3R1cmVTZWFyY2goc3Vic3RydWN0dXJlLCBjb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBoZWxtQ29sV2l0aFN1YnN0cnVjdHVyZSA9IERHLkNvbHVtbi5zdHJpbmcoJ2hlbG0nLCBjb2wubGVuZ3RoICsgMSlcbiAgICAgICAgICAgIC5pbml0KChpKSA9PiBpID09PSBjb2wubGVuZ3RoID8gc3Vic3RydWN0dXJlIDogY29sLmdldChpKSk7XG4gICAgICAgIGhlbG1Db2xXaXRoU3Vic3RydWN0dXJlLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImhlbG1cIiAvKiBiaW8uTk9UQVRJT04uSEVMTSAqLyk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJpY01vbHNDb2wgPSB5aWVsZCBnZXRNb25vbWVyaWNNb2xzKGhlbG1Db2xXaXRoU3Vic3RydWN0dXJlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgbW9sU3Vic3RydWN0dXJlID0gbW9ub21lcmljTW9sc0NvbC5nZXQoY29sLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJpY01vbHNEZiA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbbW9ub21lcmljTW9sc0NvbF0pO1xuICAgICAgICBtb25vbWVyaWNNb2xzRGYucm93cy5yZW1vdmVBdChjb2wubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc0NvbCA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0NoZW06c2VhcmNoU3Vic3RydWN0dXJlJywge1xuICAgICAgICAgICAgbW9sU3RyaW5nc0NvbHVtbjogbW9ub21lcmljTW9sc0RmLmNvbHVtbnMuYnlJbmRleCgwKSxcbiAgICAgICAgICAgIG1vbFN0cmluZzogbW9sU3Vic3RydWN0dXJlLFxuICAgICAgICAgICAgbW9sQmxvY2tGYWlsb3ZlcjogJycsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbWF0Y2hlc0NvbC5nZXQoMCk7XG4gICAgfSk7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hY3JvTW9sKG1vbm9tZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBjb25zdCBtb2R1bGVSZGtpdCA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0NoZW06Z2V0UmRLaXRNb2R1bGUnKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb25vbWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVyc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbCA9IG1vZHVsZVJka2l0LmdldF9tb2wobW9ub21lcnNbaV1bal1bJ21vbGZpbGUnXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IG1vbC5nZXRfdjNLbW9sYmxvY2soKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2V0SW5kaWNlcyhtb25vbWVyc1tpXVtqXSwgYSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcnNbaV1bal1bJ2luZGljZXMnXSA9IGluZGljZXM7XG4gICAgICAgICAgICAgICAgbW9ub21lcnNbaV1bal1bJ21vbGZpbGUnXSA9IHlpZWxkIHJvdGF0ZUJhY2tib25lVjMwMDAoYSwgaW5kaWNlcyk7XG4gICAgICAgICAgICAgICAgbW9sID09PSBudWxsIHx8IG1vbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9sLmRlbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gobGlua1YzMDAwKG1vbm9tZXJzW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldEluZGljZXMobW9ub21lciwgbW9sVjMwMDApIHtcbiAgICBjb25zdCBtb2xmaWxlID0gbW9ub21lcltcIm1vbGZpbGVcIl07XG4gICAgbGV0IGluZGV4U3RhcnQgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFJHUCcsIDApICsgODtcbiAgICBsZXQgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4U3RhcnQpO1xuICAgIGNvbnN0IGluZGljZXNEYXRhID0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhTdGFydCwgaW5kZXhFbmQpLnJlcGxhY2VBbGwoJyAgJywgJyAnKS5yZXBsYWNlQWxsKCcgICcsICcgJyk7XG4gICAgbGV0IHBhcnNlZERhdGEgPSBpbmRpY2VzRGF0YS5zcGxpdCgnICcpO1xuICAgIGNvbnN0IHJlbUZpcnN0ID0gcGFyc2VkRGF0YVsyXSA9PSAnMScgPyBwYXJzZUludChwYXJzZWREYXRhWzFdKSA6IHBhcnNlSW50KHBhcnNlZERhdGFbM10pO1xuICAgIGNvbnN0IHJlbUxhc3QgPSBwYXJzZWREYXRhWzJdID09ICcyJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgbnVtYmVycyA9IGV4dHJhY3RBdG9tc0JvbmRzTnVtYmVyc1YzMDAwKG1vbFYzMDAwKTtcbiAgICBsZXQgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBCT05EJyk7IC8vIFYzMDAwIGluZGV4IGZvciBib25kc1xuICAgIGluZGV4Qm9uZHMgPSBtb2xWMzAwMC5pbmRleE9mKCdcXG4nLCBpbmRleEJvbmRzKTtcbiAgICBpbmRleFN0YXJ0ID0gaW5kZXhCb25kcztcbiAgICBpbmRleEVuZCA9IGluZGV4Qm9uZHM7XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBsZXQgbGFzdCA9IDA7XG4gICAgbGV0IHJlbUJvbmRGaXJzdCA9IDA7XG4gICAgbGV0IHJlbUJvbmRMYXN0ID0gMDtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG51bWJlcnMubmJvbmQ7IGorKykge1xuICAgICAgICBpZiAoZmlyc3QgPT0gMCB8fCBsYXN0ID09IDApIHtcbiAgICAgICAgICAgIGluZGV4U3RhcnQgPSBtb2xWMzAwMC5pbmRleE9mKCdWMzAnLCBpbmRleFN0YXJ0KSArIDQ7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4U3RhcnQpO1xuICAgICAgICAgICAgY29uc3QgYm9uZERhdGEgPSBtb2xWMzAwMC5zdWJzdHJpbmcoaW5kZXhTdGFydCwgaW5kZXhFbmQpLnJlcGxhY2VBbGwoJyAgJywgJyAnKS5yZXBsYWNlQWxsKCcgICcsICcgJyk7XG4gICAgICAgICAgICBwYXJzZWREYXRhID0gYm9uZERhdGEuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChwYXJzZWREYXRhWzJdKSA9PSByZW1GaXJzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZEZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzNdKSA9PSByZW1GaXJzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZEZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzJdKSA9PSByZW1MYXN0KSB7XG4gICAgICAgICAgICAgICAgbGFzdCA9IHBhcnNlSW50KHBhcnNlZERhdGFbM10pO1xuICAgICAgICAgICAgICAgIHJlbUJvbmRMYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzNdKSA9PSByZW1MYXN0KSB7XG4gICAgICAgICAgICAgICAgbGFzdCA9IHBhcnNlSW50KHBhcnNlZERhdGFbMl0pO1xuICAgICAgICAgICAgICAgIHJlbUJvbmRMYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZmlyc3QsIGxhc3QsIHJlbUZpcnN0LCByZW1MYXN0LCByZW1Cb25kRmlyc3QsIHJlbUJvbmRMYXN0IH07XG59XG5mdW5jdGlvbiByb3RhdGVCYWNrYm9uZVYzMDAwKG1vbEJsb2NrLCBpbmRpY2VzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jayk7XG4gICAgICAgIGNvbnN0IG5hdG9tID0gY29vcmRpbmF0ZXMuYXRvbUluZGV4Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBpbmRpY2VzWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gaW5kaWNlc1snbGFzdCddO1xuICAgICAgICBjb25zdCB4Q2VudGVyID0gKGNvb3JkaW5hdGVzLnhbbGFzdF0gKyBjb29yZGluYXRlcy54W2ZpcnN0XSkgLyAyO1xuICAgICAgICBjb25zdCB5Q2VudGVyID0gKGNvb3JkaW5hdGVzLnlbbGFzdF0gKyBjb29yZGluYXRlcy55W2ZpcnN0XSkgLyAyO1xuICAgICAgICAvL3BsYWNlIHRvIGNlbnRlclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geENlbnRlcjtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnlbaV0gLT0geUNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYW5nbGUgPSAwO1xuICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueVtmaXJzdF0gPiBjb29yZGluYXRlcy55W2xhc3RdID8gTWF0aC5QSSAvIDIgOiAzICogTWF0aC5QSSAvIDI7XG4gICAgICAgIGVsc2UgaWYgKGNvb3JkaW5hdGVzLnlbZmlyc3RdID09IDApXG4gICAgICAgICAgICBhbmdsZSA9IGNvb3JkaW5hdGVzLnhbZmlyc3RdID4gY29vcmRpbmF0ZXMueFtsYXN0XSA/IE1hdGguUEkgOiAwO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRlcml2YXRpdmUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSAvIGNvb3JkaW5hdGVzLnhbZmlyc3RdO1xuICAgICAgICAgICAgaWYgKGNvb3JkaW5hdGVzLnhbZmlyc3RdIDwgY29vcmRpbmF0ZXMueFtsYXN0XSlcbiAgICAgICAgICAgICAgICBhbmdsZSA9IGRlcml2YXRpdmUgPiAwID8gTWF0aC5QSSAtIE1hdGguYXRhbihkZXJpdmF0aXZlKSA6IE1hdGguYXRhbihkZXJpdmF0aXZlKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBhbmdsZSA9IGRlcml2YXRpdmUgPiAwID8gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5QSSAtIE1hdGguYXRhbihkZXJpdmF0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3MgPSBNYXRoLmNvcyhhbmdsZSk7XG4gICAgICAgIGNvbnN0IHNpbiA9IE1hdGguc2luKGFuZ2xlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB4QWRkID0gY29vcmRpbmF0ZXMueFtpXTtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gPSB4QWRkICogY29zIC0gY29vcmRpbmF0ZXMueVtpXSAqIHNpbjtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnlbaV0gPSB4QWRkICogc2luICsgY29vcmRpbmF0ZXMueVtpXSAqIGNvcztcbiAgICAgICAgfVxuICAgICAgICAvL3BsYWNlIHRvIHJpZ2h0XG4gICAgICAgIGNvbnN0IHhTaGlmdCA9IGNvb3JkaW5hdGVzLnhbZmlyc3RdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspXG4gICAgICAgICAgICBjb29yZGluYXRlcy54W2ldIC09IHhTaGlmdDtcbiAgICAgICAgLy9yZXdyaXRlIG1vbEJsb2NrXG4gICAgICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KTtcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXhFbmQpO1xuICAgICAgICAgICAgbW9sQmxvY2sgPSBtb2xCbG9jay5zbGljZSgwLCBpbmRleCkgK1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gKyAnICcgKyBjb29yZGluYXRlcy55W2ldICtcbiAgICAgICAgICAgICAgICBtb2xCbG9jay5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vbEJsb2NrO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21EYXRhVjMwMDAobW9sQmxvY2spIHtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spO1xuICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgIGxldCBpbmRleEVuZCA9IGluZGV4O1xuICAgIGNvbnN0IGluZGV4ZXMgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBjb25zdCB0eXBlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHggPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBjb25zdCB5ID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJzLm5hdG9tOyBpKyspIHtcbiAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIGluZGV4ZXNbaV0gPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIHR5cGVzW2ldID0gbW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIHhbaV0gPSBwYXJzZUZsb2F0KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeVtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgfVxuICAgIHJldHVybiB7IGF0b21JbmRleDogaW5kZXhlcywgYXRvbVR5cGU6IHR5cGVzLCB4OiB4LCB5OiB5IH07XG59XG5mdW5jdGlvbiBsaW5rVjMwMDAobW9ub21lcnMpIHtcbiAgICBsZXQgbWFjcm9Nb2xCbG9jayA9ICdcXG5EYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcXG5cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJyAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIENUQUJcXG4nO1xuICAgIGxldCBhdG9tQmxvY2sgPSAnJztcbiAgICBsZXQgYm9uZEJsb2NrID0gJyc7XG4gICAgbGV0IGNvbGxlY3Rpb25CbG9jayA9ICcnO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBbXTtcbiAgICBsZXQgbmF0b20gPSAwO1xuICAgIGxldCBuYm9uZCA9IDA7XG4gICAgbGV0IHhTaGlmdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb25vbWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgbW9sZmlsZSA9IG1vbm9tZXJzW2ldWydtb2xmaWxlJ107XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnZmlyc3QnXTtcbiAgICAgICAgY29uc3QgbGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ2xhc3QnXTtcbiAgICAgICAgY29uc3QgcmVtRmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1GaXJzdCddO1xuICAgICAgICBjb25zdCByZW1MYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsncmVtTGFzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kRmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1Cb25kRmlyc3QnXTtcbiAgICAgICAgY29uc3QgcmVtQm9uZExhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1Cb25kTGFzdCddO1xuICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5yZXBsYWNlQWxsKCcoLVxcbk0gIFYzMCAnLCAnKCcpXG4gICAgICAgICAgICAucmVwbGFjZUFsbCgnLVxcbk0gIFYzMCAnLCAnJykucmVwbGFjZUFsbCgnICknLCAnKScpO1xuICAgICAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sZmlsZSk7XG4gICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gZXh0cmFjdEF0b21EYXRhVjMwMDAobW9sZmlsZSk7XG4gICAgICAgIGxldCBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQVRPTScpOyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgY29vcmRpbmF0ZXNcbiAgICAgICAgaW5kZXhBdG9tcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhBdG9tcyk7XG4gICAgICAgIGxldCBpbmRleCA9IGluZGV4QXRvbXM7XG4gICAgICAgIGxldCBpbmRleEVuZCA9IGluZGV4QXRvbXM7XG4gICAgICAgIGNvbnN0IHRvdGFsU2hpZnQgPSB4U2hpZnQgLSBjb29yZGluYXRlcy54W2ZpcnN0IC0gMV07XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYXRvbTsgaisrKSB7XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUZpcnN0ICYmIGNvb3JkaW5hdGVzLmF0b21JbmRleFtqXSAhPSByZW1MYXN0KSB7IC8vfHwgaSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGF0b20gbnVtYmVyXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgbGV0IGF0b21OdW1iZXIgPSBwYXJzZUludChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgKz0gbmF0b207XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIC8vcmV3cml0ZSBjb29yZGluYXRlc1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgbGV0IGNvb3JkaW5hdGUgPSBNYXRoLnJvdW5kKDEwMDAwICogKHBhcnNlRmxvYXQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSkgKyB0b3RhbFNoaWZ0KSkgLyAxMDAwMDtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBjb29yZGluYXRlICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGUgPSBNYXRoLnJvdW5kKDEwMDAwICogKHBhcnNlRmxvYXQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSkpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAnLCBpbmRleCkgLSAxO1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4QXRvbXNFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBFTkQgQVRPTScpO1xuICAgICAgICBhdG9tQmxvY2sgKz0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhBdG9tcyArIDEsIGluZGV4QXRvbXNFbmQpO1xuICAgICAgICBsZXQgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgICAgIGluZGV4Qm9uZHMgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgICAgICBpbmRleCA9IGluZGV4Qm9uZHM7XG4gICAgICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICAgICAgbGV0IGJvbmROdW1iZXIgPSAwO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG51bWJlcnMubmJvbmQ7IGorKykge1xuICAgICAgICAgICAgLy9yZXdyaXRlIGJvbmQgbnVtYmVyXG4gICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgYm9uZE51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgaWYgKGJvbmROdW1iZXIgPT0gcmVtQm9uZEZpcnN0IHx8IGJvbmROdW1iZXIgPT0gcmVtQm9uZExhc3QpIHtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleCAtPSA3O1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9uZE51bWJlciA9IChib25kTnVtYmVyID4gcmVtQm9uZEZpcnN0ICYmIGJvbmROdW1iZXIgPiByZW1Cb25kTGFzdCkgPyBib25kTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAxIDogYm9uZE51bWJlcjtcbiAgICAgICAgICAgIGJvbmROdW1iZXIgKz0gbmJvbmQ7XG4gICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBib25kTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBwYWlyIGluIGJvbmRcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgbGV0IGF0b21OdW1iZXIgPSBwYXJzZUludChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYXRvbU51bWJlciA+IHJlbUZpcnN0IHx8IGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAxIDogYXRvbU51bWJlcjtcbiAgICAgICAgICAgIGF0b21OdW1iZXIgKz0gbmF0b207XG4gICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IE1hdGgubWluKG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpLCBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4Qm9uZEVuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBCT05EJyk7XG4gICAgICAgIGJvbmRCbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEJvbmRzICsgMSwgaW5kZXhCb25kRW5kKTtcbiAgICAgICAgLy9sZXQgaW5kZXhDb2xsZWN0aW9uID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyk7IC8vIFYzMDAwIGluZGV4IGZvciBjb2xsZWN0aW9uc1xuICAgICAgICAvLyB3aGlsZSAoaW5kZXhDb2xsZWN0aW9uICE9IC0xKSB7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uICs9IDI4O1xuICAgICAgICAvLyAgIGNvbnN0IGNvbGxlY3Rpb25FbmQgPSBtb2xmaWxlLmluZGV4T2YoJyknLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyAgIGNvbnN0IGNvbGxlY3Rpb25FbnRyaWVzID0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhDb2xsZWN0aW9uLCBjb2xsZWN0aW9uRW5kKS5zcGxpdCgnICcpLnNsaWNlKDEpO1xuICAgICAgICAvLyAgIGNvbGxlY3Rpb25FbnRyaWVzLmZvckVhY2goKGU6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyAgICAgY29sbGVjdGlvbi5wdXNoKHBhcnNlSW50KGUpICsgbmF0b20pO1xuICAgICAgICAvLyAgIH0pO1xuICAgICAgICAvLyAgIGluZGV4Q29sbGVjdGlvbiA9IGNvbGxlY3Rpb25FbmQ7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJywgaW5kZXhDb2xsZWN0aW9uKTtcbiAgICAgICAgLy8gfVxuICAgICAgICBuYXRvbSArPSBudW1iZXJzLm5hdG9tIC0gMjtcbiAgICAgICAgbmJvbmQgKz0gbnVtYmVycy5uYm9uZCAtIDI7XG4gICAgICAgIHhTaGlmdCArPSBjb29yZGluYXRlcy54W2xhc3RdIC0gY29vcmRpbmF0ZXMueFtmaXJzdF0gKyAxO1xuICAgICAgICBpZiAoaSA9PSBtb25vbWVycy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBuYXRvbSsrO1xuICAgICAgICAgICAgY29uc3Qgc2hpZnQgPSB4U2hpZnQgKyAwLjI7XG4gICAgICAgICAgICBhdG9tQmxvY2sgKz0gJ00gIFYzMCAnICsgbmF0b20gKyAnIE8gJyArIHNoaWZ0ICsgJyAwIDAuMDAwMDAwIDBcXG4nO1xuICAgICAgICB9XG4gICAgICAgIG5ib25kKys7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0VGVybWluYWwgPSAobGFzdCA+IHJlbUZpcnN0ICYmIGxhc3QgPiByZW1MYXN0KSA/IGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMikgLSAzIDpcbiAgICAgICAgICAgICAgICAobGFzdCA+IHJlbUZpcnN0IHx8IGxhc3QgPiByZW1MYXN0KSA/IGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMikgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDE7XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBuYXRvbSArICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDEgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IG1vbm9tZXJzW2kgKyAxXVsnaW5kaWNlcyddO1xuICAgICAgICAgICAgY29uc3QgbmV4dEZpcnN0ID0gbmV4dFsnZmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1GaXJzdCA9IG5leHRbJ3JlbUZpcnN0J107XG4gICAgICAgICAgICBjb25zdCBuZXh0UmVtTGFzdCA9IG5leHRbJ3JlbUxhc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnRUZXJtaW5hbCA9IChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgJiYgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAyIDpcbiAgICAgICAgICAgICAgICAobmV4dEZpcnN0ID4gbmV4dFJlbUZpcnN0IHx8IG5leHRGaXJzdCA+IG5leHRSZW1MYXN0KSA/IG5leHRGaXJzdCArIG5hdG9tIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIG5leHRGaXJzdCArIG5hdG9tO1xuICAgICAgICAgICAgYm9uZEJsb2NrICs9ICdNICBWMzAgJyArIG5ib25kICsgJyAxICcgKyByaWdodFRlcm1pbmFsICsgJyAnICsgbGVmdFRlcm1pbmFsICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gY29uc3QgZW50cmllcyA9IDQ7XG4gICAgLy8gY29uc3QgY29sbE51bWJlciA9IE1hdGguY2VpbChjb2xsZWN0aW9uLmxlbmd0aCAvIGVudHJpZXMpO1xuICAgIC8vIGNvbGxlY3Rpb25CbG9jayArPSAnTSAgVjMwIE1ETFYzMC9TVEVBQlMgQVRPTVM9KCcgKyBjb2xsZWN0aW9uLmxlbmd0aCArICcgLVxcbic7XG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsTnVtYmVyOyBpKyspIHtcbiAgICAvLyAgIGNvbGxlY3Rpb25CbG9jayArPSAnTSAgVjMwICc7XG4gICAgLy8gICBjb25zdCBlbnRyaWVzQ3VycmVudCA9IGkgKyAxID09IGNvbGxOdW1iZXIgPyBjb2xsZWN0aW9uLmxlbmd0aCAtIChjb2xsTnVtYmVyIC0gMSkqZW50cmllcyA6IGVudHJpZXM7XG4gICAgLy8gICBmb3IgKGxldCBqID0gMDsgaiA8IGVudHJpZXNDdXJyZW50OyBqKyspIHtcbiAgICAvLyAgICAgY29sbGVjdGlvbkJsb2NrICs9IChqICsgMSA9PSBlbnRyaWVzQ3VycmVudCkgP1xuICAgIC8vICAgICAgIChpID09IGNvbGxOdW1iZXIgLSAxID8gY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcpXFxuJyA6IGNvbGxlY3Rpb25bZW50cmllcyppICsgal0gKyAnIC1cXG4nKSA6XG4gICAgLy8gICAgICAgY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgJztcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9nZW5lcmF0ZSBmaWxlXG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIENPVU5UUyAnICsgbmF0b20gKyAnICcgKyBuYm9uZCArICcgMCAwIDBcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBCRUdJTiBBVE9NXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9IGF0b21CbG9jaztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBCRUdJTiBCT05EXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9IGJvbmRCbG9jaztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgIC8vbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIENPTExFQ1RJT05cXG4nO1xuICAgIC8vbWFjcm9Nb2xCbG9jayArPSBjb2xsZWN0aW9uQmxvY2s7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIENPTExFQ1RJT05cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ1RBQlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgRU5EXFxuJztcbiAgICByZXR1cm4gbWFjcm9Nb2xCbG9jaztcbn1cbmZ1bmN0aW9uIGV4dHJhY3RBdG9tc0JvbmRzTnVtYmVyc1YzMDAwKG1vbEJsb2NrKSB7XG4gICAgbW9sQmxvY2sgPSBtb2xCbG9jay5yZXBsYWNlQWxsKCdcXHInLCAnJyk7IC8vZXF1YWxpemUgb2xkIGFuZCBuZXcgc2RmIHN0YW5kYXJkc1xuICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ0NPVU5UUycpICsgNzsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGFuZCBib25kcyBudW1iZXJcbiAgICBsZXQgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGF0b21zTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICBjb25zdCBib25kc051bWJlciA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICByZXR1cm4geyBuYXRvbTogYXRvbXNOdW1iZXIsIG5ib25kOiBib25kc051bWJlciB9O1xufVxuIiwiaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbmNvbnN0IG1vbm9tZXJUb1Nob3J0RnVuY3Rpb24gPSBiaW8ubW9ub21lclRvU2hvcnQ7XG5mdW5jdGlvbiBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdykge1xuICAgIHJldHVybiBncmlkID8gTWF0aC5taW4oZ3JpZC5jYW52YXMud2lkdGggLSB4LCB3KSA6IGcuY2FudmFzLndpZHRoIC0geDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMpIHtcbiAgICBjb25zdCBzaW1wbGlmaWVkID0gIXN1YlBhcnRzLnNvbWUoKGFtaW5vLCBpbmRleCkgPT4gYW1pbm8ubGVuZ3RoID4gMSAmJlxuICAgICAgICBpbmRleCAhPSAwICYmXG4gICAgICAgIGluZGV4ICE9IHN1YlBhcnRzLmxlbmd0aCAtIDEpO1xuICAgIGNvbnN0IHRleHQgPSBbXTtcbiAgICBjb25zdCBnYXAgPSBzaW1wbGlmaWVkID8gJycgOiAnICc7XG4gICAgc3ViUGFydHMuZm9yRWFjaCgoYW1pbm8sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA8IHN1YlBhcnRzLmxlbmd0aClcbiAgICAgICAgICAgIGFtaW5vICs9IGAke2FtaW5vID8gJycgOiAnLSd9JHtnYXB9YDtcbiAgICAgICAgdGV4dC5wdXNoKGFtaW5vKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW3RleHQsIHNpbXBsaWZpZWRdO1xufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ3NlcXVlbmNlJzsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuICdzZXF1ZW5jZSc7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIG9uQ2xpY2soZ3JpZENlbGwsIGUpIHtcbiAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnY3VycmVudC13b3JkJ10gPSBncmlkQ2VsbC5jZWxsLnZhbHVlO1xuICAgICAgICBncmlkQ2VsbC5ncmlkLmludmFsaWRhdGUoKTtcbiAgICB9XG4gICAgb25Nb3VzZU1vdmUoZ3JpZENlbGwsIGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmIChncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoXCJhbGlnbmVkXCIgLyogYmlvLlRBR1MuYWxpZ25lZCAqLykgIT09ICdTRVEuTVNBJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoV29yZHNTdW0gPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tc3VtLW1heExlbmd0aFdvcmRzJ107XG4gICAgICAgIGNvbnN0IG1heEluZGV4ID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnYmlvLW1heEluZGV4J107XG4gICAgICAgIGNvbnN0IGFyZ3NYID0gZS5vZmZzZXRYIC0gZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0ICsgKGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCAtIGdyaWRDZWxsLmJvdW5kcy54KTtcbiAgICAgICAgbGV0IGxlZnQgPSAwO1xuICAgICAgICBsZXQgcmlnaHQgPSBtYXhJbmRleDtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIG1heExlbmd0aFdvcmRzU3VtW21heEluZGV4ICsgMV0gPSBhcmdzWCArIDE7XG4gICAgICAgIGxldCBtaWQgPSAwO1xuICAgICAgICBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVswXSkge1xuICAgICAgICAgICAgd2hpbGUgKCFmb3VuZCkge1xuICAgICAgICAgICAgICAgIG1pZCA9IE1hdGguZmxvb3IoKHJpZ2h0ICsgbGVmdCkgLyAyKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnc1ggPj0gbWF4TGVuZ3RoV29yZHNTdW1bbWlkXSAmJiBhcmdzWCA8PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkO1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZ3NYIDwgbWF4TGVuZ3RoV29yZHNTdW1bbWlkXSkge1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZ3NYID4gbWF4TGVuZ3RoV29yZHNTdW1bbWlkICsgMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KVxuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGVmdCA9IChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVtsZWZ0XSkgPyBsZWZ0ICsgMSA6IGxlZnQ7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IChfYSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnc2VwYXJhdG9yJykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBiaW8uZ2V0U3BsaXR0ZXIoJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICAoKCgoX2MgPSAoX2IgPSBzdWJQYXJ0c1tsZWZ0XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPiAwKSkgP1xuICAgICAgICAgICAgdWkudG9vbHRpcC5zaG93KHVpLmRpdihzdWJQYXJ0c1tsZWZ0XSksIGUueCArIDE2LCBlLnkgKyAxNikgOiB1aS50b29sdGlwLmhpZGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUNlbGxSZW5kZXJlclxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIGNvbnN0IGdyaWQgPSBncmlkQ2VsbC5ncmlkUm93ICE9PSAtMSA/IGdyaWRDZWxsLmdyaWQgOiBudWxsO1xuICAgICAgICBjb25zdCBjZWxsID0gZ3JpZENlbGwuY2VsbDtcbiAgICAgICAgY29uc3QgcGFsZXR0ZVR5cGUgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoQy5UQUdTLkFMUEhBQkVUKTtcbiAgICAgICAgY29uc3QgbWluRGlzdGFuY2VSZW5kZXJlciA9IDUwO1xuICAgICAgICB3ID0gZ2V0VXBkYXRlZFdpZHRoKGdyaWQsIGcsIHgsIHcpO1xuICAgICAgICBnLnNhdmUoKTtcbiAgICAgICAgZy5iZWdpblBhdGgoKTtcbiAgICAgICAgZy5yZWN0KHgsIHksIHcsIGgpO1xuICAgICAgICBnLmNsaXAoKTtcbiAgICAgICAgZy5mb250ID0gJzEycHggbW9ub3NwYWNlJztcbiAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICAgICAgLy9UT0RPOiBjYW4gdGhpcyBiZSByZXBsYWNlZC9tZXJnZWQgd2l0aCBzcGxpdFNlcXVlbmNlP1xuICAgICAgICBjb25zdCB1bml0cyA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgY29uc3QgcGFsZXR0ZSA9IGJpby5nZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0TGltaXQgPSBncmlkQ2VsbC5ib3VuZHMud2lkdGggLyA1O1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvciwgc3BsaXRMaW1pdCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZVNlcXVlbmNlID0gc3BsaXR0ZXJGdW5jKCgoKChfYiA9IGdyaWRDZWxsLmNlbGwuY29sdW1uKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudGVtcFsncmVmZXJlbmNlLXNlcXVlbmNlJ10pICE9IG51bGwpICYmICgoKF9jID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50ZW1wWydyZWZlcmVuY2Utc2VxdWVuY2UnXSkgIT0gJycpKVxuICAgICAgICAgICAgPyBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydyZWZlcmVuY2Utc2VxdWVuY2UnXSA6IChfZCA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2N1cnJlbnQtd29yZCddKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAnJyk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJXaWR0aCA9ICgoKF9lID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4pID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS50ZW1wWydtb25vbWVyLXdpZHRoJ10pICE9IG51bGwpID8gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnbW9ub21lci13aWR0aCddIDogJ3Nob3J0JztcbiAgICAgICAgbGV0IGdhcFJlbmRlcmVyID0gNTtcbiAgICAgICAgbGV0IG1heEluZGV4ID0gMDtcbiAgICAgICAgbGV0IG1heExlbmd0aE9mTW9ub21lciA9IDg7XG4gICAgICAgIGlmIChtb25vbWVyV2lkdGggPT09ICdzaG9ydCcpIHtcbiAgICAgICAgICAgIGdhcFJlbmRlcmVyID0gMTI7XG4gICAgICAgICAgICBtYXhMZW5ndGhPZk1vbm9tZXIgPSAxO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtYXhMZW5ndGhXb3JkcyA9IHt9O1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCcuY2FsY3VsYXRlZENlbGxSZW5kZXInKSAhPT0gc3BsaXRMaW1pdC50b1N0cmluZygpKSB7XG4gICAgICAgICAgICBsZXQgc2FtcGxlcyA9IDA7XG4gICAgICAgICAgICB3aGlsZSAoc2FtcGxlcyA8IE1hdGgubWluKGdyaWRDZWxsLmNlbGwuY29sdW1uLmxlbmd0aCwgMTAwKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldChzYW1wbGVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhjb2x1bW4pO1xuICAgICAgICAgICAgICAgIHN1YlBhcnRzLmZvckVhY2goKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRTaXplID0gbW9ub21lclRvU2hvcnRGdW5jdGlvbihhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKS5sZW5ndGggKiA3ICsgZ2FwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0U2l6ZSA+ICgoX2EgPSBtYXhMZW5ndGhXb3Jkc1tpbmRleF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApKVxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZHNbaW5kZXhdID0gdGV4dFNpemU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IG1heEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc2FtcGxlcyArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IG1pbkxlbmd0aCA9IDMgKiA3O1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gbWF4SW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChtYXhMZW5ndGhXb3Jkc1tpXSA8IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1tpXSA9IG1pbkxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4TGVuZ3RoV29yZFN1bSA9IHt9O1xuICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1bMF0gPSBtYXhMZW5ndGhXb3Jkc1swXTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBtYXhJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1baV0gPSBtYXhMZW5ndGhXb3JkU3VtW2kgLSAxXSArIG1heExlbmd0aFdvcmRzW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tc3VtLW1heExlbmd0aFdvcmRzJ10gPSBtYXhMZW5ndGhXb3JkU3VtO1xuICAgICAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1tYXhJbmRleCddID0gbWF4SW5kZXg7XG4gICAgICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnYmlvLW1heExlbmd0aFdvcmRzJ10gPSBtYXhMZW5ndGhXb3JkcztcbiAgICAgICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi5zZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicsIHNwbGl0TGltaXQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkcyA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1tYXhMZW5ndGhXb3JkcyddO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGNlbGwudmFsdWUpO1xuICAgICAgICBsZXQgeDEgPSB4O1xuICAgICAgICBsZXQgY29sb3IgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgbGV0IGRyYXdTdHlsZSA9IGJpby5EcmF3U3R5bGUuY2xhc3NpYztcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnYWxpZ25lZCcpLmluY2x1ZGVzKCdNU0EnKSAmJiBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoJ3VuaXRzJykgPT09ICdzZXBhcmF0b3InKVxuICAgICAgICAgICAgZHJhd1N0eWxlID0gYmlvLkRyYXdTdHlsZS5NU0E7XG4gICAgICAgIHN1YlBhcnRzLmV2ZXJ5KChhbWlubywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbG9yID0gcGFsZXR0ZS5nZXQoYW1pbm8pO1xuICAgICAgICAgICAgZy5maWxsU3R5bGUgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgICAgIGxldCBsYXN0ID0gaW5kZXggPT09IHN1YlBhcnRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB4MSA9IGJpby5wcmludExlZnRPckNlbnRlcmVkKHgxLCB5LCB3LCBoLCBnLCBhbWlubywgY29sb3IsIDAsIHRydWUsIDEuMCwgc2VwYXJhdG9yLCBsYXN0LCBkcmF3U3R5bGUsIG1heExlbmd0aFdvcmRzLCBpbmRleCwgZ3JpZENlbGwsIHJlZmVyZW5jZVNlcXVlbmNlLCBtYXhMZW5ndGhPZk1vbm9tZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHgxIC0gbWluRGlzdGFuY2VSZW5kZXJlciAtIGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCArIChncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgLSBncmlkQ2VsbC5ib3VuZHMueCkgPD0gZ3JpZENlbGwuYm91bmRzLndpZHRoO1xuICAgICAgICB9KTtcbiAgICAgICAgZy5yZXN0b3JlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTW9ub21lckNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTU9OT01FUjsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1PTk9NRVI7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDE1OyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gX2NlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgX2NlbGxTdHlsZSkge1xuICAgICAgICBnLmZvbnQgPSBgMTJweCBtb25vc3BhY2VgO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gYmlvLmdldFBhbGV0dGVCeVR5cGUoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgICAgICBjb25zdCBzID0gZ3JpZENlbGwuY2VsbC52YWx1ZTtcbiAgICAgICAgaWYgKCFzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhbGV0dGUuZ2V0KHMpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICBnLmZpbGxUZXh0KHMsIHggKyAodyAvIDIpLCB5ICsgKGggLyAyKSwgdyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDUic7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NQUNST01PTEVDVUxFX0RJRkZFUkVOQ0U7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIC8qKlxuICAgICAqIENlbGwgcmVuZGVyZXIgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHcgd2lkdGggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGggaGVpZ2h0IG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGx9IGdyaWRDZWxsIEdyaWQgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsU3R5bGV9IF9jZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRGlmZmVyZW5jZUNlbGxSZW5kZXJlclxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgX2NlbGxTdHlsZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGdyaWQgPSBncmlkQ2VsbC5ncmlkO1xuICAgICAgICBjb25zdCBjZWxsID0gZ3JpZENlbGwuY2VsbDtcbiAgICAgICAgY29uc3QgcyA9IChfYSA9IGNlbGwudmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBncmlkQ2VsbC50YWJsZUNvbHVtbi50YWdzW0MuVEFHUy5TRVBBUkFUT1JdO1xuICAgICAgICBjb25zdCB1bml0cyA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIHcgPSBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdyk7XG4gICAgICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICAgICAgY29uc3QgW3MxLCBzMl0gPSBzLnNwbGl0KCcjJyk7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyID0gYmlvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBzdWJQYXJ0czEgPSBzcGxpdHRlcihzMSk7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzMiA9IHNwbGl0dGVyKHMyKTtcbiAgICAgICAgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGcsIHgsIHksIHcsIGgsIHN1YlBhcnRzMSwgc3ViUGFydHMyLCB1bml0cyk7XG4gICAgfVxufVxuZXhwb3J0IGZ1bmN0aW9uIGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyhnLCB4LCB5LCB3LCBoLCBzdWJQYXJ0czEsIHN1YlBhcnRzMiwgdW5pdHMsIGZ1bGxTdHJpbmdMZW5ndGgsIG1vbERpZmZlcmVuY2VzKSB7XG4gICAgaWYgKHN1YlBhcnRzMS5sZW5ndGggIT09IHN1YlBhcnRzMi5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZW1wdHlNb25vbWVyc0FycmF5ID0gbmV3IEFycmF5KE1hdGguYWJzKHN1YlBhcnRzMS5sZW5ndGggLSBzdWJQYXJ0czIubGVuZ3RoKSkuZmlsbCgnJyk7XG4gICAgICAgIHN1YlBhcnRzMS5sZW5ndGggPiBzdWJQYXJ0czIubGVuZ3RoID9cbiAgICAgICAgICAgIHN1YlBhcnRzMiA9IHN1YlBhcnRzMi5jb25jYXQoZW1wdHlNb25vbWVyc0FycmF5KSA6IHN1YlBhcnRzMSA9IHN1YlBhcnRzMS5jb25jYXQoZW1wdHlNb25vbWVyc0FycmF5KTtcbiAgICB9XG4gICAgY29uc3QgdGV4dFNpemUxID0gZy5tZWFzdXJlVGV4dChwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMxKS5qb2luKCcnKSk7XG4gICAgY29uc3QgdGV4dFNpemUyID0gZy5tZWFzdXJlVGV4dChwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMyKS5qb2luKCcnKSk7XG4gICAgY29uc3QgdGV4dFdpZHRoID0gTWF0aC5tYXgodGV4dFNpemUxLndpZHRoLCB0ZXh0U2l6ZTIud2lkdGgpO1xuICAgIGlmIChmdWxsU3RyaW5nTGVuZ3RoKSB7XG4gICAgICAgIHcgPSB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNDtcbiAgICAgICAgZy5jYW52YXMud2lkdGggPSB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNDtcbiAgICB9XG4gICAgbGV0IHVwZGF0ZWRYID0gTWF0aC5tYXgoeCwgeCArICh3IC0gKHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0KSkgLyAyKTtcbiAgICAvLyAyOCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBvbiB0b3Agb2YgZWFjaCBvdGhlciArIHNwYWNlXG4gICAgY29uc3QgdXBkYXRlZFkgPSBNYXRoLm1heCh5LCB5ICsgKGggLSAyOCkgLyAyKTtcbiAgICBnLnNhdmUoKTtcbiAgICBnLmJlZ2luUGF0aCgpO1xuICAgIGcucmVjdCh4LCB5LCBmdWxsU3RyaW5nTGVuZ3RoID8gdGV4dFdpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQgOiB3LCBoKTtcbiAgICBnLmNsaXAoKTtcbiAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgIGcudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgbGV0IHBhbGV0dGUgPSBiaW8uVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgIGlmICh1bml0cyAhPSAnSEVMTScpXG4gICAgICAgIHBhbGV0dGUgPSBiaW8uZ2V0UGFsZXR0ZUJ5VHlwZSh1bml0cy5zdWJzdHJpbmcodW5pdHMubGVuZ3RoIC0gMikpO1xuICAgIGNvbnN0IHZTaGlmdCA9IDc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJQYXJ0czEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYW1pbm8xID0gc3ViUGFydHMxW2ldO1xuICAgICAgICBjb25zdCBhbWlubzIgPSBzdWJQYXJ0czJbaV07XG4gICAgICAgIGNvbnN0IGNvbG9yMSA9IHBhbGV0dGUuZ2V0KGFtaW5vMSk7XG4gICAgICAgIGlmIChhbWlubzEgIT0gYW1pbm8yKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvcjIgPSBwYWxldHRlLmdldChhbWlubzIpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDAgPSBiaW8ucHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFkgLSB2U2hpZnQsIHcsIGgsIGcsIGFtaW5vMSwgY29sb3IxLCAwLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHN1YlgxID0gYmlvLnByaW50TGVmdE9yQ2VudGVyZWQodXBkYXRlZFgsIHVwZGF0ZWRZICsgdlNoaWZ0LCB3LCBoLCBnLCBhbWlubzIsIGNvbG9yMiwgMCwgdHJ1ZSk7XG4gICAgICAgICAgICB1cGRhdGVkWCA9IE1hdGgubWF4KHN1YlgxLCBzdWJYMCk7XG4gICAgICAgICAgICBpZiAobW9sRGlmZmVyZW5jZXMpXG4gICAgICAgICAgICAgICAgbW9sRGlmZmVyZW5jZXNbaV0gPSBjcmVhdGVEaWZmZXJlbmNlQ2FudmFzKGFtaW5vMSwgYW1pbm8yLCBjb2xvcjEsIGNvbG9yMiwgdXBkYXRlZFksIHZTaGlmdCwgaCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1cGRhdGVkWCA9IGJpby5wcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUsIDAuNSk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlZFggKz0gNDtcbiAgICB9XG4gICAgZy5yZXN0b3JlKCk7XG59XG5mdW5jdGlvbiBjcmVhdGVEaWZmZXJlbmNlQ2FudmFzKGFtaW5vMSwgYW1pbm8yLCBjb2xvcjEsIGNvbG9yMiwgeSwgc2hpZnQsIGgpIHtcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgY29udGV4dC5mb250ID0gJzEycHggbW9ub3NwYWNlJztcbiAgICBjb25zdCB3aWR0aDEgPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShbYW1pbm8xXSkuam9pbignJykpLndpZHRoO1xuICAgIGNvbnN0IHdpZHRoMiA9IGNvbnRleHQubWVhc3VyZVRleHQocHJvY2Vzc1NlcXVlbmNlKFthbWlubzJdKS5qb2luKCcnKSkud2lkdGg7XG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLm1heCh3aWR0aDEsIHdpZHRoMik7XG4gICAgY2FudmFzLmhlaWdodCA9IGg7XG4gICAgY2FudmFzLndpZHRoID0gd2lkdGggKyA0O1xuICAgIGNvbnRleHQuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgY29udGV4dC50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICBiaW8ucHJpbnRMZWZ0T3JDZW50ZXJlZCgwLCB5IC0gc2hpZnQsIHdpZHRoLCBoLCBjb250ZXh0LCBhbWlubzEsIGNvbG9yMSwgMCwgdHJ1ZSk7XG4gICAgYmlvLnByaW50TGVmdE9yQ2VudGVyZWQoMCwgeSArIHNoaWZ0LCB3aWR0aCwgaCwgY29udGV4dCwgYW1pbm8yLCBjb2xvcjIsIDAsIHRydWUpO1xuICAgIHJldHVybiBjYW52YXM7XG59XG4iLCJleHBvcnQgdmFyIENPTFVNTlNfTkFNRVM7XG4oZnVuY3Rpb24gKENPTFVNTlNfTkFNRVMpIHtcbiAgICBDT0xVTU5TX05BTUVTW1wiU1BMSVRfQ09MXCJdID0gXCJ+c3BsaXRcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiQUNUSVZJVFlcIl0gPSBcIn5hY3Rpdml0eVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWV9TQ0FMRURcIl0gPSBcImFjdGl2aXR5X3NjYWxlZFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBTElHTkVEX1NFUVVFTkNFXCJdID0gXCJ+YWxpZ25lZF9zZXF1ZW5jZVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBTUlOT19BQ0lEX1JFU0lEVUVcIl0gPSBcIkFBUlwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBfVkFMVUVcIl0gPSBcInBWYWx1ZVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJNRUFOX0RJRkZFUkVOQ0VcIl0gPSBcIk1lYW4gZGlmZmVyZW5jZVwiO1xufSkoQ09MVU1OU19OQU1FUyB8fCAoQ09MVU1OU19OQU1FUyA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR1M7XG4oZnVuY3Rpb24gKFRBR1MpIHtcbiAgICBUQUdTW1wiQUFSXCJdID0gXCJBQVJcIjtcbiAgICBUQUdTW1wiUE9TSVRJT05cIl0gPSBcIlBvc1wiO1xuICAgIFRBR1NbXCJTRVBBUkFUT1JcIl0gPSBcInNlcGFyYXRvclwiO1xuICAgIFRBR1NbXCJTRUxFQ1RJT05cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIFRBR1NbXCJBTFBIQUJFVFwiXSA9IFwiYWxwaGFiZXRcIjtcbiAgICBUQUdTW1wiQUxJR05FRFwiXSA9IFwiYWxpZ25lZFwiO1xufSkoVEFHUyB8fCAoVEFHUyA9IHt9KSk7XG5leHBvcnQgdmFyIFNFTV9UWVBFUztcbihmdW5jdGlvbiAoU0VNX1RZUEVTKSB7XG4gICAgU0VNX1RZUEVTW1wiTU9OT01FUlwiXSA9IFwiTW9ub21lclwiO1xuICAgIFNFTV9UWVBFU1tcIk1BQ1JPTU9MRUNVTEVfRElGRkVSRU5DRVwiXSA9IFwiTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VcIjtcbiAgICBTRU1fVFlQRVNbXCJBQ1RJVklUWVwiXSA9IFwiYWN0aXZpdHlcIjtcbiAgICBTRU1fVFlQRVNbXCJBQ1RJVklUWV9TQ0FMRURcIl0gPSBcImFjdGl2aXR5U2NhbGVkXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRVwiXSA9IFwiTWFjcm9tb2xlY3VsZVwiO1xufSkoU0VNX1RZUEVTIHx8IChTRU1fVFlQRVMgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IE1TQSA9ICdNU0EnO1xuZXhwb3J0IGNvbnN0IFNUQVRTID0gJ3N0YXRzJztcbmV4cG9ydCBjb25zdCBFTUJFRERJTkdfU1RBVFVTID0gJ2VtYmVkZGluZ1N0YXR1cyc7XG5leHBvcnQgY29uc3QgUEVQVElERVNfQU5BTFlTSVMgPSAnaXNQZXB0aWRlc0FuYWx5c2lzJztcbmV4cG9ydCB2YXIgRkxBR1M7XG4oZnVuY3Rpb24gKEZMQUdTKSB7XG4gICAgRkxBR1NbXCJDRUxMX0NIQU5HSU5HXCJdID0gXCJpc0NlbGxDaGFuZ2luZ1wiO1xufSkoRkxBR1MgfHwgKEZMQUdTID0ge30pKTtcbmV4cG9ydCBjb25zdCBhYXJHcm91cHMgPSB7XG4gICAgJ1InOiAnUEMnLCAnSCc6ICdQQycsICdLJzogJ1BDJyxcbiAgICAnRCc6ICdOQycsICdFJzogJ05DJyxcbiAgICAnUyc6ICdVJywgJ1QnOiAnVScsICdOJzogJ1UnLCAnUSc6ICdVJyxcbiAgICAnQyc6ICdTQycsICdVJzogJ1NDJywgJ0cnOiAnU0MnLCAnUCc6ICdTQycsXG4gICAgJ0EnOiAnSCcsICdWJzogJ0gnLCAnSSc6ICdIJywgJ0wnOiAnSCcsICdNJzogJ0gnLCAnRic6ICdIJywgJ1knOiAnSCcsICdXJzogJ0gnLFxuICAgICctJzogJy0nLFxufTtcbmV4cG9ydCBjb25zdCBncm91cERlc2NyaXB0aW9uID0ge1xuICAgICdQQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ1Bvc2l0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ1InLCAnSCcsICdLJ10gfSxcbiAgICAnTkMnOiB7ICdkZXNjcmlwdGlvbic6ICdOZWdhdGl2ZSBBbWlubyBBY2lkcywgd2l0aCBFbGVjdHJpY2FsbHkgQ2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydEJywgJ0UnXSB9LFxuICAgICdVJzogeyAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBQb2xhciBVbmNoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUycsICdUJywgJ04nLCAnUSddIH0sXG4gICAgJ1NDJzogeyAnZGVzY3JpcHRpb24nOiAnU3BlY2lhbCBDYXNlcycsICdhbWlub0FjaWRzJzogWydDJywgJ1UnLCAnRycsICdQJ10gfSxcbiAgICAnSCc6IHtcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ0FtaW5vIEFjaWRzIHdpdGggSHlkcm9waG9iaWMgU2lkZSBDaGFpbicsXG4gICAgICAgICdhbWlub0FjaWRzJzogWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSxcbiAgICB9LFxuICAgICctJzogeyAnZGVzY3JpcHRpb24nOiAnVW5rbm93biBBbWlubyBBY2lkJywgJ2FtaW5vQWNpZHMnOiBbJy0nXSB9LFxufTtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCAkIGZyb20gJ2Nhc2gtZG9tJztcbmxldCBjb252ZXJ0RGlhbG9nID0gbnVsbDtcbmxldCBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuLyoqXG4gKiBDb252ZXJ0cyBub3RhdGlvbnMgb2YgYSBNYWNyb21vbGVjdWxlIGNvbHVtblxuICpcbiAqIEBwYXJhbSB7REcuY29sdW1ufSBjb2wgQ29sdW1uIHdpdGggJ01hY3JvbW9sZWN1bGUnIHNlbWFudGljIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnQoY29sKSB7XG4gICAgY29uc3QgY29udmVydGVyID0gbmV3IGJpby5Ob3RhdGlvbkNvbnZlcnRlcihjb2wpO1xuICAgIGNvbnN0IGN1cnJlbnROb3RhdGlvbiA9IGNvbnZlcnRlci5ub3RhdGlvbjtcbiAgICAvL1RPRE86IHJlYWQgYWxsIG5vdGF0aW9uc1xuICAgIGNvbnN0IG5vdGF0aW9ucyA9IFtcbiAgICAgICAgXCJmYXN0YVwiIC8qIGJpby5OT1RBVElPTi5GQVNUQSAqLyxcbiAgICAgICAgXCJzZXBhcmF0b3JcIiAvKiBiaW8uTk9UQVRJT04uU0VQQVJBVE9SICovLFxuICAgICAgICBcImhlbG1cIiAvKiBiaW8uTk9UQVRJT04uSEVMTSAqL1xuICAgIF07XG4gICAgY29uc3Qgc2VwYXJhdG9yQXJyYXkgPSBbJy0nLCAnLicsICcvJ107XG4gICAgY29uc3QgZmlsdGVyZWROb3RhdGlvbnMgPSBub3RhdGlvbnMuZmlsdGVyKChlKSA9PiBlICE9PSBjdXJyZW50Tm90YXRpb24pO1xuICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uSW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnQ29udmVydCB0bycsIGZpbHRlcmVkTm90YXRpb25zWzBdLCBmaWx0ZXJlZE5vdGF0aW9ucyk7XG4gICAgY29uc3Qgc2VwYXJhdG9ySW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnU2VwYXJhdG9yJywgc2VwYXJhdG9yQXJyYXlbMF0sIHNlcGFyYXRvckFycmF5KTtcbiAgICAvLyBoaWRlIHRoZSBzZXBhcmF0b3IgaW5wdXQgZm9yIG5vbi1TRVBBUkFUT1IgdGFyZ2V0IG5vdGF0aW9uc1xuICAgIGNvbnN0IHRvZ2dsZVNlcGFyYXRvciA9ICgpID0+IHtcbiAgICAgICAgaWYgKHRhcmdldE5vdGF0aW9uSW5wdXQudmFsdWUgIT09IFwic2VwYXJhdG9yXCIgLyogYmlvLk5PVEFUSU9OLlNFUEFSQVRPUiAqLylcbiAgICAgICAgICAgICQoc2VwYXJhdG9ySW5wdXQucm9vdCkuaGlkZSgpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICAkKHNlcGFyYXRvcklucHV0LnJvb3QpLnNob3coKTtcbiAgICB9O1xuICAgIC8vIHNldCBjb3JyZWN0IHZpc2liaWxpdHkgb24gaW5pdFxuICAgIHRvZ2dsZVNlcGFyYXRvcigpO1xuICAgIHRhcmdldE5vdGF0aW9uSW5wdXQub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgdG9nZ2xlU2VwYXJhdG9yKCk7XG4gICAgfSk7XG4gICAgaWYgKGNvbnZlcnREaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICBjb252ZXJ0RGlhbG9nID0gdWkuZGlhbG9nKCdDb252ZXJ0IHNlcXVlbmNlIG5vdGF0aW9uJylcbiAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0N1cnJlbnQgbm90YXRpb246ICcgKyBjdXJyZW50Tm90YXRpb24sIHtcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnOiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICdmb250LXNpemUnOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nJzogJzVweCcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXJnZXROb3RhdGlvbklucHV0LnJvb3QsXG4gICAgICAgICAgICBzZXBhcmF0b3JJbnB1dC5yb290XG4gICAgICAgIF0pKVxuICAgICAgICAgICAgLm9uT0soKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSB0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc2VwYXJhdG9ySW5wdXQudmFsdWU7XG4gICAgICAgICAgICB5aWVsZCBjb252ZXJ0RG8oY29sLCB0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgfSkpXG4gICAgICAgICAgICAuc2hvdyh7IHg6IDM1MCwgeTogMTAwIH0pO1xuICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5wdXNoKGNvbnZlcnREaWFsb2cub25DbG9zZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5mb3JFYWNoKChzKSA9PiB7IHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuICAgICAgICAgICAgY29udmVydERpYWxvZyA9IG51bGw7XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG4vKiogQ3JlYXRlcyBhIG5ldyBjb2x1bW4gd2l0aCBjb252ZXJ0ZWQgc2VxdWVuY2VzIGFuZCBkZXRlY3RzIGl0cyBzZW1hbnRpYyB0eXBlICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERvKHNyY0NvbCwgdGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlciA9IG5ldyBiaW8uTm90YXRpb25Db252ZXJ0ZXIoc3JjQ29sKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gY29udmVydGVyLmNvbnZlcnQodGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcik7XG4gICAgICAgIHNyY0NvbC5kYXRhRnJhbWUuY29sdW1ucy5hZGQobmV3Q29sdW1uKTtcbiAgICAgICAgLy8gY2FsbCB0byBjYWxjdWxhdGUgJ2NlbGwucmVuZGVyZXInIHRhZ1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhzcmNDb2wuZGF0YUZyYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9KTtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgeyBGYXN0YUZpbGVIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2Zhc3RhLWhhbmRsZXInO1xuLy9AdHMtaWdub3JlXG5pbXBvcnQgQWlvbGkgZnJvbSAnQGJpb3dhc20vYWlvbGknO1xuaW1wb3J0IHsgQWxpZ25lZFNlcXVlbmNlRW5jb2RlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyJztcbi8qKlxuICogQ29udmVydHMgYXJyYXkgb2Ygc2VxdWVuY2VzIGludG8gc2ltcGxlIGZhc3RhIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBzZXF1ZW5jZXMgSW5wdXQgbGlzdCBvZiBzZXF1ZW5jZXMuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEZhc3RhLWZvcm1hdHRlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIF9zdHJpbmdzVG9GYXN0YShzZXF1ZW5jZXMpIHtcbiAgICByZXR1cm4gc2VxdWVuY2VzLnJlZHVjZSgoYSwgdiwgaSkgPT4gYSArIGA+c2FtcGxlJHtpICsgMX1cXG4ke3Z9XFxuYCwgJycpO1xufVxuLyoqXG4gKiBSdW5zIEFpb2xpIGVudmlyb25tZW50IHdpdGgga2FsaWduIHRvb2wuXG4gKlxuICogQHBhcmFtIHtERy5Db2x1bW59IHNyY0NvbCBDb2x1bW4gd2l0aCBzZXF1ZW5jZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzQWxpZ25lZCBXaGV0aGVyIHRoZSBjb2x1bW4gaXMgYWxpZ25lZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSB1blVzZWROYW1lXG4gKiBAcmV0dXJuIHtQcm9taXNlPERHLkNvbHVtbj59IEFsaWduZWQgc2VxdWVuY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuS2FsaWduKHNyY0NvbCwgaXNBbGlnbmVkID0gZmFsc2UsIHVuVXNlZE5hbWUgPSAnJykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGxldCBzZXF1ZW5jZXMgPSBzcmNDb2wudG9MaXN0KCk7XG4gICAgICAgIGlmIChpc0FsaWduZWQpXG4gICAgICAgICAgICBzZXF1ZW5jZXMgPSBzZXF1ZW5jZXMubWFwKCh2LCBfKSA9PiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyLmNsZWFuKHYpLnJlcGxhY2UoL1xcLS9nLCAnJykpO1xuICAgICAgICBjb25zdCBmYXN0YSA9IF9zdHJpbmdzVG9GYXN0YShzZXF1ZW5jZXMpO1xuICAgICAgICBjb25zdCBDTEkgPSB5aWVsZCBuZXcgQWlvbGkoW1xuICAgICAgICAgICAgJ2Jhc2UvMS4wLjAnLFxuICAgICAgICAgICAgeyB0b29sOiAna2FsaWduJywgdmVyc2lvbjogJzMuMy4xJywgcmVpbml0OiB0cnVlLCB9XG4gICAgICAgIF0pO1xuICAgICAgICBjb25zb2xlLmxvZyhbJ2Zhc3RhLmxlbmd0aCA9JywgZmFzdGEubGVuZ3RoXSk7XG4gICAgICAgIHlpZWxkIENMSS5mcy53cml0ZUZpbGUoJ2lucHV0LmZhJywgZmFzdGEpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB5aWVsZCBDTEkuZXhlYygna2FsaWduIGlucHV0LmZhIC1mIGZhc3RhIC1vIHJlc3VsdC5mYXN0YScpO1xuICAgICAgICBjb25zb2xlLndhcm4ob3V0cHV0KTtcbiAgICAgICAgY29uc3QgYnVmID0geWllbGQgQ0xJLmNhdCgncmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGlmICghYnVmKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBrYWxpZ24gb3V0cHV0IG5vIHJlc3VsdGApO1xuICAgICAgICBjb25zdCBmZmggPSBuZXcgRmFzdGFGaWxlSGFuZGxlcihidWYpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gZmZoLnNlcXVlbmNlc0FycmF5OyAvLyBhcnJheSBvZiBzZXF1ZW5jZXMgZXh0cmFjdGVkIGZyb20gRkFTVEFcbiAgICAgICAgY29uc3QgdGd0Q29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKHVuVXNlZE5hbWUsIGFsaWduZWQpO1xuICAgICAgICAvLyB1bml0c1xuICAgICAgICBjb25zdCBzcmNVbml0cyA9IHNyY0NvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIC8vYWxpZ25lZFxuICAgICAgICBjb25zdCBzcmNBbGlnbmVkID0gc3JjQ29sLmdldFRhZyhcImFsaWduZWRcIiAvKiBiaW8uVEFHUy5hbGlnbmVkICovKTtcbiAgICAgICAgY29uc3QgdGd0QWxpZ25lZCA9IHNyY0FsaWduZWQgKyAnLk1TQSc7XG4gICAgICAgIC8vYWxwaGFiZXRcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBzcmNDb2wuZ2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBiaW8uVEFHUy5hbHBoYWJldCAqLyk7XG4gICAgICAgIHRndENvbC5zZXRUYWcoREcuVEFHUy5VTklUUywgc3JjVW5pdHMpO1xuICAgICAgICB0Z3RDb2wuc2V0VGFnKFwiYWxpZ25lZFwiIC8qIGJpby5UQUdTLmFsaWduZWQgKi8sIHRndEFsaWduZWQpO1xuICAgICAgICB0Z3RDb2wuc2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBiaW8uVEFHUy5hbHBoYWJldCAqLywgc3JjQWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgcmV0dXJuIHRndENvbDtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0TVNBRW5vdWdoTWVtb3J5KGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlc0NvdW50ID0gY29sLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBzZXF1ZW5jZXNDb3VudCAvIDEwMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRlbHRhOyBpIDwgc2VxdWVuY2VzQ291bnQ7IGkgKz0gZGVsdGEpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgcnVuS2FsaWduKERHLkNvbHVtbi5mcm9tU3RyaW5ncyhjb2wubmFtZSwgY29sLnRvTGlzdCgpLnNsaWNlKDAsIE1hdGgucm91bmQoaSkpKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBzdWNjZWVkZWQgb24gJHtpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBmYWlsZWQgb24gJHtpfSB3aXRoICcke2Vycm9yfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuY29uc3QgRkFTVEFfTElORV9XSURUSCA9IDYwO1xuLyoqIFNob3dzIGRpYWxvZyB0byBzZWxlY3QgaWQgY29sdW1ucyBsaXN0IGFuZCBzZXEgY29sdW1uLCBidWlsZHMgYW5kIGRvd25sb2FkcyBGQVNUQSBjb250ZW50ICovXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUFzRmFzdGFVSSgpIHtcbiAgICAvLyBVc2UgZ3JpZCBmb3IgY29sdW1uIG9yZGVyIGFkanVzdGVkIGJ5IHVzZXJcbiAgICBsZXQgZ3JpZCA9IGdyb2suc2hlbGwudHYuZ3JpZDtcbiAgICBjb25zdCBpZEdDb2xMaXN0ID0gd3UuY291bnQoMCkudGFrZShncmlkLmNvbHVtbnMubGVuZ3RoKVxuICAgICAgICAubWFwKChjb2xJKSA9PiBncmlkLmNvbHVtbnMuYnlJbmRleChjb2xJKSlcbiAgICAgICAgLmZpbHRlcigoZ2NvbCkgPT4gZ2NvbC5jb2x1bW4gPyBnY29sLmNvbHVtbi5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUgOiBmYWxzZSkudG9BcnJheSgpO1xuICAgIGNvbnN0IGRlZmF1bHRJZEdDb2wgPSBpZEdDb2xMaXN0XG4gICAgICAgIC5maW5kKChnY29sKSA9PiBnY29sLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdpZCcpICE9PSAtMSk7XG4gICAgY29uc3QgaWREZWZhdWx0VmFsdWUgPSBkZWZhdWx0SWRHQ29sID8gW2RlZmF1bHRJZEdDb2wubmFtZV0gOiBbXTtcbiAgICBjb25zdCBpZEdDb2xMaXN0SW5wdXQgPSB1aS5tdWx0aUNob2ljZUlucHV0KCdTZXEgaWQgY29sdW1ucycsIGlkRGVmYXVsdFZhbHVlLCBpZEdDb2xMaXN0Lm1hcCgoZ2NvbCkgPT4gZ2NvbC5uYW1lKSk7XG4gICAgY29uc3Qgc2VxR0NvbExpc3QgPSB3dS5jb3VudCgwKS50YWtlKGdyaWQuY29sdW1ucy5sZW5ndGgpIC8qIHJhbmdlIHJvbSAwIHRvIGdyaWQuY29sdW1ucy5sZW5ndGggKi9cbiAgICAgICAgLm1hcCgoY29sSSkgPT4gZ3JpZC5jb2x1bW5zLmJ5SW5kZXgoY29sSSkpXG4gICAgICAgIC5maWx0ZXIoKGdjKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbCA9IGdjLmNvbHVtbjtcbiAgICAgICAgaWYgKGNvbCAmJiBjb2wuc2VtVHlwZSA9PT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgICAgICBjb25zdCB1aCA9IG5ldyBiaW8uVW5pdHNIYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICByZXR1cm4gdWguaXNGYXN0YSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KS50b0FycmF5KCk7XG4gICAgY29uc3Qgc2VxRGVmYXVsdFZhbHVlID0gc2VxR0NvbExpc3QubGVuZ3RoID4gMCA/IHNlcUdDb2xMaXN0WzBdLm5hbWUgOiBbXTtcbiAgICBjb25zdCBzZXFDb2xJbnB1dCA9IHVpLmNob2ljZUlucHV0KCdTZXEgY29sdW1uJywgc2VxRGVmYXVsdFZhbHVlLCBzZXFHQ29sTGlzdC5tYXAoKGdDb2wpID0+IGdDb2wubmFtZSkpO1xuICAgIGNvbnN0IGxpbmVXaWR0aElucHV0ID0gdWkuaW50SW5wdXQoJ0ZBU1RBIGxpbmUgd2lkdGgnLCBGQVNUQV9MSU5FX1dJRFRIKTtcbiAgICB1aS5kaWFsb2coeyB0aXRsZTogJ1NhdmUgYXMgRkFTVEEnLCB9KVxuICAgICAgICAuYWRkKHVpLmlucHV0cyhbXG4gICAgICAgIGlkR0NvbExpc3RJbnB1dCxcbiAgICAgICAgc2VxQ29sSW5wdXQsXG4gICAgICAgIGxpbmVXaWR0aElucHV0XG4gICAgXSkpXG4gICAgICAgIC5vbk9LKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCB2YWx1ZUlkQ29sTGlzdCA9IGlkR0NvbExpc3RJbnB1dC52YWx1ZSA/XG4gICAgICAgICAgICBpZEdDb2xMaXN0SW5wdXQudmFsdWUubWFwKChjb2xOYW1lKSA9PiBncmlkLmNvbHVtbnMuYnlOYW1lKGNvbE5hbWUpLmNvbHVtbikgOiBbXTtcbiAgICAgICAgY29uc3QgdmFsdWVTZXFDb2wgPSBzZXFDb2xJbnB1dC52YWx1ZSA/XG4gICAgICAgICAgICBncmlkLmNvbHVtbnMuYnlOYW1lKHNlcUNvbElucHV0LnZhbHVlKS5jb2x1bW4gOiBudWxsO1xuICAgICAgICBjb25zdCB2YWx1ZUxpbmVXaWR0aCA9IChfYSA9IGxpbmVXaWR0aElucHV0LnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBGQVNUQV9MSU5FX1dJRFRIO1xuICAgICAgICBpZiAoIXZhbHVlU2VxQ29sKVxuICAgICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBTZXEgY29sdW1uIGlzIG1hbmRhdG9yeSB0byBzYXZlIGFzIEZBU1RBLmApO1xuICAgICAgICBjb25zdCByZXNGYXN0YVR4dCA9IHNhdmVBc0Zhc3RhRG8odmFsdWVJZENvbExpc3QsIHZhbHVlU2VxQ29sLCB2YWx1ZUxpbmVXaWR0aCk7XG4gICAgICAgIGNvbnN0IGFFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgYUVsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGBkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11dGYtOCwke2VuY29kZVVSSUNvbXBvbmVudChyZXNGYXN0YVR4dCl9YCk7XG4gICAgICAgIGFFbC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgYCR7Z3JpZC5kYXRhRnJhbWUubmFtZX0uZmFzdGFgKTtcbiAgICAgICAgYUVsLmNsaWNrKCk7XG4gICAgfSlcbiAgICAgICAgLnNob3coKTtcbn1cbi8qKiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBc0Zhc3RhRG8oaWRDb2xMaXN0LCBzZXFDb2wsIGxpbmVXaWR0aCA9IEZBU1RBX0xJTkVfV0lEVEgsIGxpbmVTZXBhcmF0b3IgPSAnXFxuJykge1xuICAgIGNvbnN0IHNwbGl0dGVyID0gYmlvLnNwbGl0dGVyQXNGYXN0YTtcbiAgICBjb25zdCBmYXN0YUxpbmVzID0gW107XG4gICAgZm9yIChsZXQgcm93SSA9IDA7IHJvd0kgPCBzZXFDb2wubGVuZ3RoOyByb3dJKyspIHtcbiAgICAgICAgLy8gbXVsdGlwbGUgaWRlbnRpZmllcnMgc2VwYXJhdGVkIGJ5IHZlcnRpY2FsIGJhcnNcbiAgICAgICAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRkFTVEFfZm9ybWF0XG4gICAgICAgIGNvbnN0IHNlcUlkID0gaWRDb2xMaXN0Lm1hcCgoY29sKSA9PiBjb2wuZ2V0KHJvd0kpLnRvU3RyaW5nKCkpLmpvaW4oJ3wnKTtcbiAgICAgICAgY29uc3Qgc2VxID0gc2VxQ29sLmdldChyb3dJKTtcbiAgICAgICAgY29uc3Qgc2VxTGluZUxpc3QgPSB3cmFwU2VxdWVuY2Uoc2VxLCBzcGxpdHRlciwgbGluZVdpZHRoKTtcbiAgICAgICAgZmFzdGFMaW5lcy5wdXNoKGA+JHtzZXFJZH0ke2xpbmVTZXBhcmF0b3J9YCk7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBzZXFMaW5lTGlzdClcbiAgICAgICAgICAgIGZhc3RhTGluZXMucHVzaChgJHtsaW5lfSR7bGluZVNlcGFyYXRvcn1gKTtcbiAgICB9XG4gICAgLy9yZXR1cm4gZmFzdGFMaW5lcy5qb2luKGxpbmVTZXBhcmF0b3IpO1xuICAgIHJldHVybiAnJy5jb25jYXQoLi4uZmFzdGFMaW5lcyk7XG59XG4vKiBzcGxpdCBzZXF1ZW5jZSBmb3IgbW9ub21lcnMgdG8gcHJldmVudCB3cmFwcGluZyBtb25vbWVyIHBhcnRpYWxseSAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBTZXF1ZW5jZShzZXEsIHNwbGl0dGVyLCBsaW5lV2lkdGggPSBGQVNUQV9MSU5FX1dJRFRIKSB7XG4gICAgY29uc3Qgc2VxTW9ub21lckxpc3QgPSBzcGxpdHRlcihzZXEpO1xuICAgIGxldCBzZXFQb3MgPSAwO1xuICAgIGNvbnN0IHNlcUxlbmd0aCA9IHNlcU1vbm9tZXJMaXN0Lmxlbmd0aDtcbiAgICBjb25zdCBzZXFMaW5lTGlzdCA9IFtdO1xuICAgIHdoaWxlIChzZXFQb3MgPCBzZXFMZW5ndGgpIHtcbiAgICAgICAgLyogam9pbiBzbGljZWQgbW9ub21lciBpbnRvIGxpbmUgKi9cbiAgICAgICAgY29uc3Qgc2VxTGluZSA9IHNlcU1vbm9tZXJMaXN0LnNsaWNlKHNlcVBvcywgc2VxUG9zICsgbGluZVdpZHRoKTtcbiAgICAgICAgY29uc3Qgc2VxTGluZVR4dCA9IHNlcUxpbmUubWFwKChtKSA9PiBtLmxlbmd0aCA+IDEgPyBgWyR7bX1dYCA6IG0pLmpvaW4oJycpO1xuICAgICAgICBzZXFMaW5lTGlzdC5wdXNoKHNlcUxpbmVUeHQpO1xuICAgICAgICBzZXFQb3MgKz0gc2VxTGluZS5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBzZXFMaW5lTGlzdDtcbn1cbiIsImV4cG9ydCBmdW5jdGlvbiB1cGRhdGVEaXZJbm5lckhUTUwoZGl2LCBjb250ZW50KSB7XG4gICAgZGl2LmlubmVySFRNTCA9ICcnO1xuICAgIGRpdi5hcHBlbmQoY29udGVudCk7XG59XG4iLCJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0IHsgQ0FQX0dST1VQX05BTUUsIENBUF9HUk9VUF9TTUlMRVMsIGpzb25TZGZNb25vbWVyTGliRGljdCwgTU9OT01FUl9FTkNPREVfTUFYLCBNT05PTUVSX0VOQ09ERV9NSU4sIE1PTk9NRVJfU1lNQk9MLCBSR1JPVVBfQUxURVJfSUQsIFJHUk9VUF9GSUVMRCwgUkdST1VQX0xBQkVMLCBTREZfTU9OT01FUl9OQU1FIH0gZnJvbSAnLi4vY29uc3QnO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgPSAnL2RhdGEvSEVMTUNvcmVMaWJyYXJ5Lmpzb24nO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX01PTEZJTEUgPSAnbW9sZmlsZSc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0ZJRUxEUyA9IFsnc3ltYm9sJywgJ21vbGZpbGUnLCAncmdyb3VwcycsICduYW1lJ107XG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTW9ub21lcnMoY29sKSB7XG4gICAgbGV0IGVuY29kZVN5bWJvbCA9IE1PTk9NRVJfRU5DT0RFX01JTjtcbiAgICBjb25zdCBtb25vbWVyU3ltYm9sRGljdCA9IHt9O1xuICAgIGNvbnN0IHVuaXRzID0gY29sLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgY29uc3Qgc2VwID0gY29sLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIGJpby5UQUdTLnNlcGFyYXRvciAqLyk7XG4gICAgY29uc3Qgc3BsaXR0ZXJGdW5jID0gYmlvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IGVuY29kZWRTdHJpbmdBcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGxldCBlbmNvZGVkTW9ub21lclN0ciA9ICcnO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhjb2wuZ2V0KGkpKTtcbiAgICAgICAgbW9ub21lcnMuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtb25vbWVyU3ltYm9sRGljdFttXSkge1xuICAgICAgICAgICAgICAgIGlmIChlbmNvZGVTeW1ib2wgPiBNT05PTUVSX0VOQ09ERV9NQVgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcihgTm90IGVub3VnaCBzeW1ib2xzIHRvIGVuY29kZSBtb25vbWVyc2ApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9ub21lclN5bWJvbERpY3RbbV0gPSBlbmNvZGVTeW1ib2w7XG4gICAgICAgICAgICAgICAgZW5jb2RlU3ltYm9sKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmNvZGVkTW9ub21lclN0ciArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChtb25vbWVyU3ltYm9sRGljdFttXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlbmNvZGVkU3RyaW5nQXJyYXkucHVzaChlbmNvZGVkTW9ub21lclN0cik7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2VuY29kZWRNb2xlY3VsZXMnLCBlbmNvZGVkU3RyaW5nQXJyYXkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNlcShjb2wsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wudGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjb2wuZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgbW9ub21lcnNEaWN0ID0gY3JlYXRlTW9tb21lcnNNb2xEaWN0KG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICBjb25zdCBtb2xGaWxlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IG1hY3JvTW9sZWN1bGUgPSBjb2wuZ2V0KGkpO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgY29uc3QgbW9sRmlsZXNGb3JTZXEgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVycy5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgTW9ub21lciAke21vbm9tZXJzW2pdfSBpcyBtaXNzaW5nIGluIEhFTE0gbGlicmFyeS4gU3RydWN0dXJlIGNhbm5vdCBiZSBjcmVhdGVkYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb2xGaWxlc0ZvclNlcS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtb2xGaWxlcy5wdXNoKG1vbEZpbGVzRm9yU2VxKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShjZWxsLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIGNvbnN0IHVuaXRzID0gY2VsbC5jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjZWxsLmNvbHVtbi5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IGJpby5nZXRTcGxpdHRlcih1bml0cywgc2VwKTtcbiAgICBjb25zdCBtb25vbWVyc0RpY3QgPSBjcmVhdGVNb21vbWVyc01vbERpY3QobW9ub21lcnNMaWJPYmplY3QpO1xuICAgIGNvbnN0IG1vbEZpbGVzID0gW107XG4gICAgY29uc3QgbWFjcm9Nb2xlY3VsZSA9IGNlbGwudmFsdWU7XG4gICAgY29uc3QgbW9ub21lcnMgPSBzcGxpdHRlckZ1bmMobWFjcm9Nb2xlY3VsZSk7XG4gICAgY29uc3QgbW9sRmlsZXNGb3JTZXEgPSBbXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIGlmIChtb25vbWVyc1tqXSkge1xuICAgICAgICAgICAgaWYgKCFtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSB7XG4gICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBNb25vbWVyICR7bW9ub21lcnNbal19IGlzIG1pc3NpbmcgaW4gSEVMTSBsaWJyYXJ5LiBTdHJ1Y3R1cmUgY2Fubm90IGJlIGNyZWF0ZWRgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG1vbEZpbGVzRm9yU2VxLnB1c2goSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1vbEZpbGVzLnB1c2gobW9sRmlsZXNGb3JTZXEpO1xuICAgIHJldHVybiBtb2xGaWxlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb21vbWVyc01vbERpY3QobGliKSB7XG4gICAgY29uc3QgZGljdCA9IHt9O1xuICAgIGxpYi5mb3JFYWNoKChpdCkgPT4ge1xuICAgICAgICBpZiAoaXRbJ3BvbHltZXJUeXBlJ10gPT09ICdQRVBUSURFJykge1xuICAgICAgICAgICAgY29uc3QgbW9ub21lck9iamVjdCA9IHt9O1xuICAgICAgICAgICAgSEVMTV9DT1JFX0ZJRUxEUy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgIG1vbm9tZXJPYmplY3RbZmllbGRdID0gaXRbZmllbGRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkaWN0W2l0W0hFTE1fQ09SRV9MSUJfTU9OT01FUl9TWU1CT0xdXSA9IG1vbm9tZXJPYmplY3Q7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZGljdDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYodGFibGUpIHtcbiAgICBjb25zdCByZXN1bHRMaWIgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlLnJvd0NvdW50OyBpKyspIHtcbiAgICAgICAgY29uc3QgbW9ub21lciA9IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyhqc29uU2RmTW9ub21lckxpYkRpY3QpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gTU9OT01FUl9TWU1CT0wpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyU3ltYm9sID0gdGFibGUuZ2V0KGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldLCBpKTtcbiAgICAgICAgICAgICAgICBtb25vbWVyW2tleV0gPSBtb25vbWVyU3ltYm9sID09PSAnLicgPyB0YWJsZS5nZXQoU0RGX01PTk9NRVJfTkFNRSwgaSkgOiBtb25vbWVyU3ltYm9sO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoa2V5ID09PSBSR1JPVVBfRklFTEQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZ3JvdXBzID0gdGFibGUuZ2V0KGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldLCBpKS5zcGxpdCgnXFxuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QganNvblJncm91cHMgPSBbXTtcbiAgICAgICAgICAgICAgICByZ3JvdXBzLmZvckVhY2goKGcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcmdyb3VwID0ge307XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFsdEF0b20gPSBnLnN1YnN0cmluZyhnLmxhc3RJbmRleE9mKCddJykgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFkaWNhbE51bSA9IGcubWF0Y2goL1xcW1IoXFxkKylcXF0vKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW0NBUF9HUk9VUF9TTUlMRVNdID0gYWx0QXRvbSA9PT0gJ0gnID8gYFsqOiR7cmFkaWNhbE51bX1dW0hdYCA6IGBPWyo6JHtyYWRpY2FsTnVtfV1gO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbUkdST1VQX0FMVEVSX0lEXSA9IGFsdEF0b20gPT09ICdIJyA/IGBSJHtyYWRpY2FsTnVtfS1IYCA6IGBSJHtyYWRpY2FsTnVtfS1PSGA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtDQVBfR1JPVVBfTkFNRV0gPSBhbHRBdG9tID09PSAnSCcgPyBgSGAgOiBgT0hgO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbUkdST1VQX0xBQkVMXSA9IGBSJHtyYWRpY2FsTnVtfWA7XG4gICAgICAgICAgICAgICAgICAgIGpzb25SZ3JvdXBzLnB1c2gocmdyb3VwKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtb25vbWVyW2tleV0gPSBqc29uUmdyb3VwcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSlcbiAgICAgICAgICAgICAgICAgICAgbW9ub21lcltrZXldID0gdGFibGUuZ2V0KGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldLCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3VsdExpYi5wdXNoKG1vbm9tZXIpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0TGliO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5jb25zdCB2cnQgPSBiaW8uVmRSZWdpb25UeXBlO1xuLy8gUG9zaXRpb25zIG9mIHJlZ2lvbnMgZm9yIG51bWJlcmluZyBzY2hlbWVzXG4vLyBodHRwOi8vd3d3LmJpb2luZi5vcmcudWsvYWJzL2luZm8uaHRtbFxuLy8gY29uc3QgaW1ndFJlZ2lvbnM6IFZkUmVnaW9uW10gPSBbXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnTGlnaHQnLCAxLCAnMScsICcyNicpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIxJywgJ0hlYXZ5JywgMSwgJzEnLCAnMjYnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdMaWdodCcsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjEnLCAnSGVhdnknLCAyLCAnMjcnLCAnMzgnKSwgLy8gMjctMzJcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjInLCAnTGlnaHQnLCAzLCAnMzknLCAnNTUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdIZWF2eScsIDMsICczOScsICc1NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0xpZ2h0JywgNCwgJzU2JywgJzY1JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMicsICdIZWF2eScsIDQsICc1NicsICc2NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdMaWdodCcsIDUsICc2NicsICcxMDQnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdIZWF2eScsIDUsICc2NicsICcxMDQnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdMaWdodCcsIDYsICcxMDUnLCAnMTE3JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdIZWF2eScsIDYsICcxMDUnLCAnMTE3JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0xpZ2h0JywgNywgJzExOCcsIG51bGwvKjEyNyovKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSNCcsICdIZWF2eScsIDcsICcxMTgnLCBudWxsLyoxMjgqLyksXG4vLyBdO1xuLyoqIFZpZXdlciB3aXRoIHRhYnMgYmFzZWQgb24gZGVzY3JpcHRpb24gb2YgY2hhaW4gcmVnaW9ucy5cbiAqICBVc2VkIHRvIGRlZmluZSByZWdpb25zIG9mIGFuIGltbXVub2dsb2J1bGluIExDLlxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb25zVmlld2VyIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvLyBwcml2YXRlIHJlZ2lvbnNEZjogREcuRGF0YUZyYW1lO1xuICAgICAgICB0aGlzLnJlZ2lvbnNGZyA9IG51bGw7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc1RWOiBERy5UYWJsZVZpZXc7XG4gICAgICAgIHRoaXMucmVnaW9uc1Jvb3QgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGFuZWxOb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWdpb25zID0gW107XG4gICAgICAgIC8vICNyZWdpb24gLS0gSGFuZGxlIGNvbnRyb2xzJyBldmVudHMgLS1cbiAgICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgIC8vI3JlZ2lvbiAtLSBWaWV3IC0tXG4gICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgIHRoaXMubWFpbkxheW91dCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgLy8gVG8gcHJldmVudCBhbWJpZ3VvdXMgbnVtYmVyaW5nIHNjaGVtZSBpbiBNTEJcbiAgICAgICAgdGhpcy5yZWdpb25UeXBlcyA9IHRoaXMuc3RyaW5nTGlzdCgncmVnaW9uVHlwZXMnLCBbdnJ0LkNEUl0sIHsgY2hvaWNlczogT2JqZWN0LnZhbHVlcyh2cnQpLmZpbHRlcigodCkgPT4gdCAhPSB2cnQuVW5rbm93bikgfSk7XG4gICAgICAgIHRoaXMuY2hhaW5zID0gdGhpcy5zdHJpbmdMaXN0KCdjaGFpbnMnLCBbJ0hlYXZ5JywgJ0xpZ2h0J10sIHsgY2hvaWNlczogWydIZWF2eScsICdMaWdodCddIH0pO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXggPSB0aGlzLnN0cmluZygnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCcsICdjaGFpbiBzZXF1ZW5jZScpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uV2lkdGggPSB0aGlzLmZsb2F0KCdwb3NpdGlvbldpZHRoJywgMTYpO1xuICAgIH1cbiAgICBnZXQgZGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFGcmFtZTtcbiAgICB9XG4gICAgLy8gVE9ETzogLm9uVGFibGVBdHRhY2hlZCBpcyBub3QgY2FsbGluZyBvbiBkYXRhRnJhbWUgc2V0LCBvblByb3BlcnR5Q2hhbmdlZCAgYWxzbyBub3QgY2FsbGluZ1xuICAgIHNldERmKHZhbHVlLCByZWdpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdWZFJlZ2lvbnNWaWV3ZXIuc2V0RGYoKScpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgdGhpcy5yZWdpb25zID0gcmVnaW9ucztcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIC8vI3JlZ2lvbiByZWdpb25zREYgd2l0aCBmaWx0ZXJcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHRoaXMucmVnaW9ucyk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNEZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3cubmFtZSA9PSAnQ0RSMScpO1xuICAgICAgICAgICAgLy8gLy8gVG8gYXZhaWxhYmxlIG9wdGlvbnMgL1xuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRmcgPSAoYXdhaXQgdGhpcy5yZWdpb25zRGYucGxvdC5mcm9tVHlwZShERy5WSUVXRVIuRklMVEVSUywge1xuICAgICAgICAgICAgLy8gICAvLyBjb2x1bW5OYW1lczogWyduYW1lJyxdLFxuICAgICAgICAgICAgLy8gICBzaG93RmlsdGVyQ291bnRzSW5kaWNhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dIZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBzaG93U2VhcmNoQm94OiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgZmlsdGVyczogW1xuICAgICAgICAgICAgLy8gICAgIHt0eXBlOiBERy5GSUxURVJfVFlQRS5DQVRFR09SSUNBTCwgY29sdW1uOiAndHlwZScsIGxhYmVsOiAnUmVnaW9uIG5hbWUnLCBzaG93SGlzdG9ncmFtOiBmYWxzZX0sXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICduYW1lJywgbGFiZWw6ICdSZWdpb24gdHlwZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgXSxcbiAgICAgICAgICAgIC8vICAgdGl0bGU6ICdSZWdpb25zIGZpbHRlcicsXG4gICAgICAgICAgICAvLyAgIHNob3dUaXRsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vICAgZGVzY3JpcHRpb246ICdGaWx0ZXIgZm9yIHJlZ2lvbnMgb2YgbXVsdGlwbGUgYWxpZ25tZW50IGJ5IElNR1Qgbm9tZW5jbGF0dXJlJyxcbiAgICAgICAgICAgIC8vICAgc29tZVByb3BlcnR5OiAnSGVsbG8nLFxuICAgICAgICAgICAgLy8gfSkpIGFzIERHLkZpbHRlckdyb3VwO1xuICAgICAgICAgICAgLy8jZW5kcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5tbGJWaWV3LmRvY2tNYW5hZ2VyLmRvY2sodGhpcy5yZWdpb25zRmcucm9vdCwgREcuRE9DS19UWVBFLkxFRlQsIHJvb3ROb2RlLCAnRmlsdGVyIHJlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godWkub25TaXplQ2hhbmdlZCh0aGlzLnJvb3QpLnN1YnNjcmliZSh0aGlzLnJvb3RPblNpemVDaGFuZ2VkLmJpbmQodGhpcykpKTtcbiAgICAgICAgICAgIC8vIHJ4anMuZnJvbUV2ZW50KHRoaXMucm9vdCwgJ21vdXNlbW92ZScpLnN1YnNjcmliZSh0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmluaXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgICAgICAgb25Qcm9wZXJ0eUNoYW5nZWQ6IHsgZ2V0OiAoKSA9PiBzdXBlci5vblByb3BlcnR5Q2hhbmdlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgX3N1cGVyLm9uUHJvcGVydHlDaGFuZ2VkLmNhbGwodGhpcywgcHJvcGVydHkpO1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlZ2lvblR5cGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjaGFpbnMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NraXBFbXB0eVBvc2l0aW9ucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZm9yIChsZXQgY2hhaW5JID0gMDsgY2hhaW5JIDwgdGhpcy5jaGFpbnMubGVuZ3RoOyBjaGFpbkkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGNoYWluOiBzdHJpbmcgPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0uc2V0T3B0aW9ucyh7c2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9uc30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmNhbGNTaXplKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uV2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb3BlbihtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsTm9kZSA9IG1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJvb3QsIERHLkRPQ0tfVFlQRS5UT1AsIG51bGwsICdSZWdpb25zJywgMC4yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNob3cobWxiVmlldykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJncykge1xuICAgICAgICB0aGlzLmNhbGNTaXplKCk7XG4gICAgfVxuICAgIGRlc3Ryb3lWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8gVE9ETzogVW5zdWJzY3JpYmUgZnJvbSBhbmQgcmVtb3ZlIGFsbCB2aWV3IGVsZW1lbnRzXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBWZFJlZ2lvbnNWaWV3ZXIuZGVzdHJveVZpZXcoIG1haW5MYXlvdXQgPSAkeyF0aGlzLm1haW5MYXlvdXQgPyAnbm9uZScgOiAndmFsdWUnfSApYCk7XG4gICAgICAgICAgICBpZiAodGhpcy5tYWluTGF5b3V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJvb3QucmVtb3ZlQ2hpbGQodGhpcy5ob3N0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGJ1aWxkVmlldygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBzdGFydCcpO1xuICAgICAgICAgICAgY29uc3QgY29sTmFtZXMgPSBPYmplY3QuYXNzaWduKHt9LCAuLi50aGlzLmNoYWlucy5tYXAoKGNoYWluKSA9PiAoeyBbY2hhaW5dOiBgJHtjaGFpbn0gJHt0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXh9YCB9KSkpO1xuICAgICAgICAgICAgY29uc3QgcmVnaW9uc0ZpbHRlcmVkID0gdGhpcy5yZWdpb25zLmZpbHRlcigocikgPT4gdGhpcy5yZWdpb25UeXBlcy5pbmNsdWRlcyhyLnR5cGUpKTtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyTGlzdCA9IEFycmF5LmZyb20obmV3IFNldChyZWdpb25zRmlsdGVyZWQubWFwKChyKSA9PiByLm9yZGVyKSkpLnNvcnQoKTtcbiAgICAgICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IG9yZGVyTGlzdC5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnaW9uQ2hhaW5zID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFpbiBvZiB0aGlzLmNoYWlucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpb24gPSByZWdpb25zRmlsdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChyKSA9PiByLm9yZGVyID09IG9yZGVyTGlzdFtvcmRlckldICYmIHIuY2hhaW4gPT0gY2hhaW4pO1xuICAgICAgICAgICAgICAgICAgICByZWdpb25DaGFpbnNbY2hhaW5dID0gKHlpZWxkIHRoaXMuZGF0YUZyYW1lLnBsb3QuZnJvbVR5cGUoJ1dlYkxvZ28nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbHVtbk5hbWU6IGNvbE5hbWVzW2NoYWluXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25OYW1lOiByZWdpb24ucG9zaXRpb25TdGFydE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvbkVuZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXhXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBFbXB0eVBvc2l0aW9uczogdGhpcy5za2lwRW1wdHlQb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbldpZHRoOiB0aGlzLnBvc2l0aW9uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2ViTG9nbyBjcmVhdGlvbiBmaXJlcyBvblJvb3RTaXplQ2hhbmdlZCBldmVudCBldmVuIGJlZm9yZSBjb250cm9sIGJlaW5nIGFkZGVkIHRvIHRoaXMubG9nb3NcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ29zW29yZGVySV0gPSByZWdpb25DaGFpbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB1aS50YWJsZUZyb21NYXAoKVxuICAgICAgICAgICAgLy8gREcuSHRtbFRhYmxlLmNyZWF0ZSgpXG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSB1aS50YWJsZSh0aGlzLmNoYWlucywgKGNoYWluKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY2hhaW4gbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgLi4uKG9yZGVyTGlzdC5sZW5ndGggPiAwID8gW3VpLmRpdihjaGFpbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgtOTBkZWcpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJzEycHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcyNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSldIDogW10pLFxuICAgICAgICAgICAgICAgICAgICAvLyBMaXN0IHdpdGggY29udHJvbHMgZm9yIHJlZ2lvbnNcbiAgICAgICAgICAgICAgICAgICAgLi4uWy4uLkFycmF5KG9yZGVyTGlzdC5sZW5ndGgpLmtleXMoKV0ubWFwKChvcmRlckkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdsID0gdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdsLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzRGl2ID0gdWkuZGl2KFt3bC5yb290XSAvKmAke2NoYWlufSAke3JlZ2lvbnNGaWx0ZXJlZFtySV19YCovLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzRGl2O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICAgICAgfSwgWycnLCAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4gcmVnaW9uc0ZpbHRlcmVkLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSB0aGlzLmNoYWluc1swXSkubmFtZSB8fCAnTmFtZScpXSk7XG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQuY2xhc3NOYW1lID0gJ21sYi12ZC1yZWdpb25zLXZpZXdlci10YWJsZTInO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJhY2tncm91bmQgPSAnI0VFRUVGRic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snO1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSBgI2ZmYmIke01hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KS50b1N0cmluZygxNil9YDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmJveCh0aGlzLm1haW5MYXlvdXQsIHsgLypzdHlsZToge2JhY2tncm91bmRDb2xvcjogY29sb3J9Ki99KTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLm92ZXJmbG93WCA9ICdhdXRvJztcbiAgICAgICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBlbmQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBjb25zdCBsb2dvSGVpZ2h0ID0gKHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSA1NCkgLyB0aGlzLmNoYWlucy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IE1hdGgubWluKGxvZ29IZWlnaHQsIE1hdGgubWF4KC4uLnRoaXMubG9nb3MubWFwKCh3bERpY3QpID0+IE1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMod2xEaWN0KS5tYXAoKHdsKSA9PiB3bC5tYXhIZWlnaHQpKSkpKTtcbiAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgdGhpcy5sb2dvcy5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhaW4gPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0ucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vI2VuZHJlZ2lvbiAtLSBWaWV3IC0tXG4gICAgb25Nb3VzZU1vdmVSb290KGUpIHtcbiAgICAgICAgLy8gdWkudG9vbHRpcC5zaG93KCd0ZXh0JywgZS54ICsgOCwgZS55ICsgOCwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgb25Nb3VzZU1vdmVSb290LiggeDogJHtlLnh9LCB5OiAke2UueX0gKWApO1xuICAgIH1cbn1cbiIsIi8qKlxuICogTWFjcm9tb2xlY3VsZXMgc3Vic3RydWN0dXJlIGZpbHRlciB0aGF0IHVzZXMgRGF0YWdyb2sncyBjb2xsYWJvcmF0aXZlIGZpbHRlcmluZy5cbiAqIDEuIE9uIG9uUm93c0ZpbHRlcmluZyBldmVudCwgb25seSBGSUxURVIgT1VUIHJvd3MgdGhhdCBkbyBub3Qgc2F0aXNmeSB0aGlzIGZpbHRlcidzIGNyaXRlcmlhXG4gKiAyLiBDYWxsIGRhdGFGcmFtZS5yb3dzLnJlcXVlc3RGaWx0ZXIgd2hlbiBmaWx0ZXJpbmcgY3JpdGVyaWEgY2hhbmdlcy5cbiAqICovXG52YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgeyBsaW5lYXJTdWJzdHJ1Y3R1cmVTZWFyY2ggfSBmcm9tICcuLi9zdWJzdHJ1Y3R1cmUtc2VhcmNoL3N1YnN0cnVjdHVyZS1zZWFyY2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuZXhwb3J0IGNsYXNzIEJpb1N1YnN0cnVjdHVyZUZpbHRlciBleHRlbmRzIERHLkZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYmlvRmlsdGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5iaXRzZXQgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRlciA9IHVpLmxvYWRlcigpO1xuICAgICAgICB0aGlzLnJvb3QgPSB1aS5kaXZWKFtdKTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGluZyA9IGZhbHNlO1xuICAgIH1cbiAgICBnZXQgY2FsY3VsYXRpbmcoKSB7IHJldHVybiB0aGlzLmxvYWRlci5zdHlsZS5kaXNwbGF5ID09ICdpbml0aWFsJzsgfVxuICAgIHNldCBjYWxjdWxhdGluZyh2YWx1ZSkgeyB0aGlzLmxvYWRlci5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyAnaW5pdGlhbCcgOiAnbm9uZSc7IH1cbiAgICBnZXQgZmlsdGVyU3VtbWFyeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmlvRmlsdGVyLnN1YnN0cnVjdHVyZTtcbiAgICB9XG4gICAgZ2V0IGlzRmlsdGVyaW5nKCkge1xuICAgICAgICByZXR1cm4gc3VwZXIuaXNGaWx0ZXJpbmcgJiYgdGhpcy5iaW9GaWx0ZXIuc3Vic3RydWN0dXJlICE9PSAnJztcbiAgICB9XG4gICAgZ2V0IGlzUmVhZHlUb0FwcGx5RmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY2FsY3VsYXRpbmcgJiYgdGhpcy5iaXRzZXQgIT0gbnVsbDtcbiAgICB9XG4gICAgYXR0YWNoKGRhdGFGcmFtZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgc3VwZXIuYXR0YWNoKGRhdGFGcmFtZSk7XG4gICAgICAgIHRoaXMuY29sdW1uID0gZGF0YUZyYW1lLmNvbHVtbnMuYnlTZW1UeXBlKERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSk7XG4gICAgICAgIHRoaXMuY29sdW1uTmFtZSA9IChfYSA9IHRoaXMuY29sdW1uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZTtcbiAgICAgICAgY29uc3Qgbm90YXRpb24gPSAoX2IgPSB0aGlzLmNvbHVtbikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgdGhpcy5iaW9GaWx0ZXIgPSBub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIGJpby5OT1RBVElPTi5GQVNUQSAqLyA/XG4gICAgICAgICAgICBuZXcgRmFzdGFGaWx0ZXIoKSA6IG5ldyBTZXBhcmF0b3JGaWx0ZXIodGhpcy5jb2x1bW4uZ2V0VGFnKEMuVEFHUy5TRVBBUkFUT1IpKTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuYmlvRmlsdGVyLmZpbHRlclBhbmVsKTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMubG9hZGVyKTtcbiAgICAgICAgKF9jID0gdGhpcy5vbkJpb0ZpbHRlckNoYW5nZWRTdWJzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgY29uc3Qgb25DaGFuZ2VkRXZlbnQgPSB0aGlzLmJpb0ZpbHRlci5vbkNoYW5nZWQ7XG4gICAgICAgIHRoaXMub25CaW9GaWx0ZXJDaGFuZ2VkU3VicyA9IG9uQ2hhbmdlZEV2ZW50LnN1YnNjcmliZSgoXykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4geWllbGQgdGhpcy5fb25JbnB1dENoYW5nZWQoKTsgfSkpO1xuICAgIH1cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHN1cGVyLmRldGFjaCgpO1xuICAgIH1cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5iaXRzZXQgJiYgIXRoaXMuaXNEZXRhY2hlZClcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZGF0YUZyYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsdGVyLmFuZCh0aGlzLmJpdHNldCk7XG4gICAgfVxuICAgIC8qKiBPdmVycmlkZSB0byBzYXZlIGZpbHRlciBzdGF0ZS4gKi9cbiAgICBzYXZlU3RhdGUoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBzdXBlci5zYXZlU3RhdGUoKTtcbiAgICAgICAgc3RhdGUuYmlvU3Vic3RydWN0dXJlID0gKF9hID0gdGhpcy5iaW9GaWx0ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzdHJ1Y3R1cmU7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgLyoqIE92ZXJyaWRlIHRvIGxvYWQgZmlsdGVyIHN0YXRlLiAqL1xuICAgIGFwcGx5U3RhdGUoc3RhdGUpIHtcbiAgICAgICAgc3VwZXIuYXBwbHlTdGF0ZShzdGF0ZSk7XG4gICAgICAgIGlmIChzdGF0ZS5iaW9TdWJzdHJ1Y3R1cmUpXG4gICAgICAgICAgICB0aGlzLmJpb0ZpbHRlci5zdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZSA9IHN0YXRlLmJpb1N1YnN0cnVjdHVyZTtcbiAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgIGlmIChzdGF0ZS5iaW9TdWJzdHJ1Y3R1cmUpXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdGhhdC5fb25JbnB1dENoYW5nZWQoKTsgfSwgMTAwMCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFBlcmZvcm1zIHRoZSBhY3R1YWwgZmlsdGVyaW5nXG4gICAgICogV2hlbiB0aGUgcmVzdWx0cyBhcmUgcmVhZHksIHRyaWdnZXJzIGByb3dzLnJlcXVlc3RGaWx0ZXJgLCB3aGljaCBpbiB0dXJuIHRyaWdnZXJzIGBhcHBseUZpbHRlcmBcbiAgICAgKiB0aGF0IHdvdWxkIHNpbXBseSBhcHBseSB0aGUgYml0c2V0IHN5bmNocm9ub3VzbHkuXG4gICAgICovXG4gICAgX29uSW5wdXRDaGFuZ2VkKCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzRmlsdGVyaW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iaXRzZXQgPSBudWxsO1xuICAgICAgICAgICAgICAgIChfYSA9IHRoaXMuZGF0YUZyYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eucm93cy5yZXF1ZXN0RmlsdGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh3dSh0aGlzLmRhdGFGcmFtZS5yb3dzLmZpbHRlcnMpLmhhcyhgJHt0aGlzLmNvbHVtbk5hbWV9OiAke3RoaXMuZmlsdGVyU3VtbWFyeX1gKSkge1xuICAgICAgICAgICAgICAgIC8vIHNvbWUgb3RoZXIgZmlsdGVyIGlzIGFscmVhZHkgZmlsdGVyaW5nIGZvciB0aGUgZXhhY3Qgc2FtZSB0aGluZ1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYml0c2V0ID0gbGluZWFyU3Vic3RydWN0dXJlU2VhcmNoKHRoaXMuYmlvRmlsdGVyLnN1YnN0cnVjdHVyZSwgdGhpcy5jb2x1bW4pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIChfYiA9IHRoaXMuZGF0YUZyYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Iucm93cy5yZXF1ZXN0RmlsdGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBGYXN0YUZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2VkID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dCA9IHVpLnN0cmluZ0lucHV0KCcnLCAnJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCgpO1xuICAgICAgICB9LCB7IHBsYWNlaG9sZGVyOiAnU3Vic3RydWN0dXJlJyB9KTtcbiAgICB9XG4gICAgZ2V0IGZpbHRlclBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dC5yb290O1xuICAgIH1cbiAgICBnZXQgc3Vic3RydWN0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZTtcbiAgICB9XG59XG5jbGFzcyBTZXBhcmF0b3JGaWx0ZXIgZXh0ZW5kcyBGYXN0YUZpbHRlciB7XG4gICAgY29uc3RydWN0b3Ioc2VwYXJhdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2VwYXJhdG9ySW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnJywgJycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VkLm5leHQoKTtcbiAgICAgICAgfSwgeyBwbGFjZWhvbGRlcjogJ1NlcGFyYXRvcicgfSk7XG4gICAgICAgIHRoaXMuY29sU2VwYXJhdG9yID0gJyc7XG4gICAgICAgIHRoaXMuY29sU2VwYXJhdG9yID0gc2VwYXJhdG9yO1xuICAgICAgICB0aGlzLnNlcGFyYXRvcklucHV0LnZhbHVlID0gc2VwYXJhdG9yO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyUGFuZWwoKSB7XG4gICAgICAgIHJldHVybiB1aS5kaXZWKFtcbiAgICAgICAgICAgIHRoaXMuc3Vic3RydWN0dXJlSW5wdXQucm9vdCxcbiAgICAgICAgICAgIHRoaXMuc2VwYXJhdG9ySW5wdXQucm9vdFxuICAgICAgICBdKTtcbiAgICB9XG4gICAgZ2V0IHN1YnN0cnVjdHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VwYXJhdG9ySW5wdXQudmFsdWUgJiYgdGhpcy5zZXBhcmF0b3JJbnB1dC52YWx1ZSAhPT0gdGhpcy5jb2xTZXBhcmF0b3IgP1xuICAgICAgICAgICAgdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZS5yZXBsYWNlQWxsKHRoaXMuc2VwYXJhdG9ySW5wdXQudmFsdWUsIHRoaXMuY29sU2VwYXJhdG9yKSA6XG4gICAgICAgICAgICB0aGlzLnN1YnN0cnVjdHVyZUlucHV0LnZhbHVlO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi4vdXRpbHMvYXRvbWljLXdvcmtzJztcbi8qKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtERy5Db2x1bW59IGNvbCBtYWNyb21vbGVjdWxlIGNlbGwuXG4gKiBAcmV0dXJuIHtQcm9taXNlPERHLldpZGdldD59IFdpZGdldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hY3JvTW9sQ29sdW1uUHJvcGVydHlQYW5lbChjb2wpIHtcbiAgICBjb25zdCBOT05FID0gJ05vbmUnO1xuICAgIGNvbnN0IHNjYWZmb2xkQ29sTmFtZSA9ICdzaG9ydCc7XG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIGFuIGVmZmljaWVudCB2ZXJzaW9uLCBieVNlbVR5cGVzRXhhY3Qgd29uJ3QgaGVscDsgR1JPSy04MDk0XG4gICAgY29uc3QgY29sdW1uc0xpc3QgPSBBcnJheS5mcm9tKGNvbC5kYXRhRnJhbWUuY29sdW1ucykuZmlsdGVyKChjKSA9PiBjLnNlbVR5cGUgPT09IERHLlNFTVRZUEUuTU9MRUNVTEUpLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICBjb25zdCBjb2x1bW5zU2V0ID0gbmV3IFNldChjb2x1bW5zTGlzdCk7XG4gICAgY29sdW1uc1NldC5kZWxldGUoY29sLm5hbWUpO1xuICAgIGNvbnN0IG1vbm9tZXJXaWR0aCA9IHVpLmNob2ljZUlucHV0KCdNb25vbWVyIHdpZHRoJywgKChjb2wgPT09IG51bGwgfHwgY29sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2wudGVtcFsnbW9ub21lci13aWR0aCddKSAhPSBudWxsKSA/IGNvbC50ZW1wWydtb25vbWVyLXdpZHRoJ10gOiAnc2hvcnQnLCBbJ3Nob3J0JywgJ2xvbmcnXSwgKHMpID0+IHtcbiAgICAgICAgY29sLnRlbXBbJ21vbm9tZXItd2lkdGgnXSA9IHM7XG4gICAgICAgIGNvbC5zZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicsICcwJyk7XG4gICAgICAgIGNvbC5kYXRhRnJhbWUuZmlyZVZhbHVlc0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgICBtb25vbWVyV2lkdGguc2V0VG9vbHRpcCgnSW4gc2hvcnQgbW9kZSwgb25seSB0aGUgZmlyc3QgY2hhcmFjdGVyIHNob3VsZCBiZSB2aXNpYmxlLCBmb2xsb3dlZCBieSAuLiBpZiB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0ZXJzJyk7XG4gICAgY29uc3QgY29sb3JDb2RlID0gdWkuYm9vbElucHV0KCdDb2xvciBjb2RlJywgKChjb2wgPT09IG51bGwgfHwgY29sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2wudGVtcFsnY29sb3ItY29kZSddKSAhPSBudWxsKSA/IGNvbC50ZW1wWydjb2xvci1jb2RlJ10gOiB0cnVlLCAodikgPT4ge1xuICAgICAgICBjb2wudGVtcFsnY29sb3ItY29kZSddID0gdjtcbiAgICAgICAgY29sLmRhdGFGcmFtZS5maXJlVmFsdWVzQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIGNvbG9yQ29kZS5zZXRUb29sdGlwKCdDb2xvciBjb2RlJyk7XG4gICAgY29uc3QgcmVmZXJlbmNlU2VxdWVuY2UgPSB1aS5zdHJpbmdJbnB1dCgnUmVmZXJlbmNlIHNlcXVlbmNlJywgKChjb2wgPT09IG51bGwgfHwgY29sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2wudGVtcFsncmVmZXJlbmNlLXNlcXVlbmNlJ10pICE9IG51bGwpID8gY29sID09PSBudWxsIHx8IGNvbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sLnRlbXBbJ3JlZmVyZW5jZS1zZXF1ZW5jZSddIDogJycsICh2KSA9PiB7XG4gICAgICAgIGNvbC50ZW1wWydyZWZlcmVuY2Utc2VxdWVuY2UnXSA9IHY7XG4gICAgICAgIGNvbC5kYXRhRnJhbWUuZmlyZVZhbHVlc0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgICByZWZlcmVuY2VTZXF1ZW5jZS5zZXRUb29sdGlwKCdSZWZlcmVuY2Ugc2VxdWVuY2UgaXMgbm90IGVtcHR5LCB0aGVuIHRoZSBzZXF1ZW5jZSB3aWxsIGJlIHJlbmRlciAnICsgJ1xcbicgK1xuICAgICAgICAnYXMgYSBkaWZmZXJlbmNlIGZyb20gdGhlIHJlZmVyZW5jZSBzZXF1ZW5jZScpO1xuICAgIGNvbnN0IGNvbXBhcmVXaXRoQ3VycmVudCA9IHVpLmJvb2xJbnB1dCgnQ29tcGFyZSB3aXRoIGN1cnJlbnQnLCAoKGNvbCA9PT0gbnVsbCB8fCBjb2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbC50ZW1wWydjb21wYXJlLXdpdGgtY3VycmVudCddKSAhPSBudWxsKSA/IGNvbC50ZW1wWydjb21wYXJlLXdpdGgtY3VycmVudCddIDogdHJ1ZSwgKHYpID0+IHtcbiAgICAgICAgY29sLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10gPSB2O1xuICAgICAgICBjb2wuZGF0YUZyYW1lLmZpcmVWYWx1ZXNDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgY29tcGFyZVdpdGhDdXJyZW50LnNldFRvb2x0aXAoJ1doZW4gb24sIGFsbCBzZXF1ZW5jZXMgZ2V0IHJlbmRlcmVkIGluIHRoZSBcImRpZmZcIiBtb2RlJyk7XG4gICAgY29uc3QgcmRLaXRJbnB1dHMgPSB1aS5pbnB1dHMoW1xuICAgICAgICBtb25vbWVyV2lkdGgsXG4gICAgICAgIGNvbG9yQ29kZSxcbiAgICAgICAgcmVmZXJlbmNlU2VxdWVuY2UsXG4gICAgICAgIGNvbXBhcmVXaXRoQ3VycmVudFxuICAgIF0pO1xuICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHJkS2l0SW5wdXRzKTtcbn1cbi8qKlxuICogM0QgcmVwcmVzZW50YXRpb24gd2lkZ2V0IG9mIG1hY3JvbW9sZWN1bGUuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtERy5DZWxsfSBtYWNyb01vbGVjdWxlIG1hY3JvbW9sZWN1bGUgY2VsbC5cbiAqIEBwYXJhbSB7YW55W119IG1vbm9tZXJzTGliT2JqZWN0XG4gKiBAcmV0dXJuIHtQcm9taXNlPERHLldpZGdldD59IFdpZGdldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcHJlc2VudGF0aW9uc1dpZGdldChtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHBpID0gREcuVGFza0JhclByb2dyZXNzSW5kaWNhdG9yLmNyZWF0ZSgnQ3JlYXRpbmcgM0QgdmlldycpO1xuICAgICAgICBsZXQgd2lkZ2V0SG9zdDtcbiAgICAgICAgbGV0IG1vbEJsb2NrM0QgPSAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXRvbWljQ29kZXMgPSBnZXRNb2xmaWxlc0Zyb21TaW5nbGVTZXEobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2xCbG9jazJEID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSAoeWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQmlvOkVtYmVkJywgeyBtb2xCbG9jazJEIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBtb2xCbG9jazNEID0gbW9sQmxvY2szRC5yZXBsYWNlQWxsKCdcXFxcbicsICdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdCbG9iID0gbmV3IEJsb2IoW21vbEJsb2NrM0RdLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZ2xIb3N0ID0gdWkuZGl2KFtdLCB7IGNsYXNzZXM6ICdkNC1uZ2wtdmlld2VyJywgaWQ6ICduZ2wtM2QtaG9zdCcgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhZ2UgPSBuZXcgTkdMLlN0YWdlKG5nbEhvc3QsIHsgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnIH0pO1xuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHN0YWdlLmxvYWRGaWxlKHN0cmluZ0Jsb2IsIHsgZXh0OiAnc2RmJyB9KS50aGVuKGZ1bmN0aW9uIChjb21wKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YWdlLnNldFNpemUoMzAwLCAzMDApO1xuICAgICAgICAgICAgICAgICAgICBjb21wLmFkZFJlcHJlc2VudGF0aW9uKCdiYWxsK3N0aWNrJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYXV0b1ZpZXcoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBza2V0Y2ggPSBncm9rLmNoZW0uc3ZnTW9sKG1vbEJsb2NrM0QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gdWkuZGl2SChbc2tldGNoXSk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdihbcGFuZWwsIG5nbEhvc3RdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHdpZGdldEhvc3QgPSB1aS5kaXZUZXh0KCdDb3VsZG5cXCd0IGdldCBwZXB0aWRlIHN0cnVjdHVyZScpO1xuICAgICAgICB9XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHdpZGdldEhvc3QpO1xuICAgIH0pO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSAkOyIsIm1vZHVsZS5leHBvcnRzID0gREc7IiwibW9kdWxlLmV4cG9ydHMgPSBncm9rOyIsIm1vZHVsZS5leHBvcnRzID0gcnhqczsiLCJtb2R1bGUuZXhwb3J0cyA9IHVpOyIsIm1vZHVsZS5leHBvcnRzID0gd3U7IiwiY29uc3QgciA9IFN5bWJvbChcIkNvbWxpbmsucHJveHlcIiksIEggPSBTeW1ib2woXCJDb21saW5rLmVuZHBvaW50XCIpLCBDID0gU3ltYm9sKFwiQ29tbGluay5yZWxlYXNlUHJveHlcIiksIHkgPSBTeW1ib2woXCJDb21saW5rLnRocm93blwiKSwgWSA9IChsKSA9PiB0eXBlb2YgbCA9PSBcIm9iamVjdFwiICYmIGwgIT09IG51bGwgfHwgdHlwZW9mIGwgPT0gXCJmdW5jdGlvblwiLCBrID0ge1xuICBjYW5IYW5kbGU6IChsKSA9PiBZKGwpICYmIGxbcl0sXG4gIHNlcmlhbGl6ZShsKSB7XG4gICAgY29uc3QgeyBwb3J0MTogYywgcG9ydDI6IGIgfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICAgIHJldHVybiBSKGwsIGMpLCBbYiwgW2JdXTtcbiAgfSxcbiAgZGVzZXJpYWxpemUobCkge1xuICAgIHJldHVybiBsLnN0YXJ0KCksIEsobCk7XG4gIH1cbn0sIEkgPSB7XG4gIGNhbkhhbmRsZTogKGwpID0+IFkobCkgJiYgeSBpbiBsLFxuICBzZXJpYWxpemUoeyB2YWx1ZTogbCB9KSB7XG4gICAgbGV0IGM7XG4gICAgcmV0dXJuIGwgaW5zdGFuY2VvZiBFcnJvciA/IGMgPSB7XG4gICAgICBpc0Vycm9yOiAhMCxcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIG1lc3NhZ2U6IGwubWVzc2FnZSxcbiAgICAgICAgbmFtZTogbC5uYW1lLFxuICAgICAgICBzdGFjazogbC5zdGFja1xuICAgICAgfVxuICAgIH0gOiBjID0geyBpc0Vycm9yOiAhMSwgdmFsdWU6IGwgfSwgW2MsIFtdXTtcbiAgfSxcbiAgZGVzZXJpYWxpemUobCkge1xuICAgIHRocm93IGwuaXNFcnJvciA/IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGwudmFsdWUubWVzc2FnZSksIGwudmFsdWUpIDogbC52YWx1ZTtcbiAgfVxufSwgUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKFtcbiAgW1wicHJveHlcIiwga10sXG4gIFtcInRocm93XCIsIEldXG5dKTtcbmZ1bmN0aW9uIFIobCwgYyA9IHNlbGYpIHtcbiAgYy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBmdW5jdGlvbiBiKHQpIHtcbiAgICBpZiAoIXQgfHwgIXQuZGF0YSlcbiAgICAgIHJldHVybjtcbiAgICBjb25zdCB7IGlkOiBpLCB0eXBlOiBlLCBwYXRoOiBaIH0gPSBPYmplY3QuYXNzaWduKHsgcGF0aDogW10gfSwgdC5kYXRhKSwgZCA9ICh0LmRhdGEuYXJndW1lbnRMaXN0IHx8IFtdKS5tYXAodSk7XG4gICAgbGV0IG07XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG4gPSBaLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKHMsIHApID0+IHNbcF0sIGwpLCBhID0gWi5yZWR1Y2UoKHMsIHApID0+IHNbcF0sIGwpO1xuICAgICAgc3dpdGNoIChlKSB7XG4gICAgICAgIGNhc2UgXCJHRVRcIjpcbiAgICAgICAgICBtID0gYTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIlNFVFwiOlxuICAgICAgICAgIG5bWi5zbGljZSgtMSlbMF1dID0gdSh0LmRhdGEudmFsdWUpLCBtID0gITA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJBUFBMWVwiOlxuICAgICAgICAgIG0gPSBhLmFwcGx5KG4sIGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiQ09OU1RSVUNUXCI6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgcyA9IG5ldyBhKC4uLmQpO1xuICAgICAgICAgICAgbSA9IHoocyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiRU5EUE9JTlRcIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCB7IHBvcnQxOiBzLCBwb3J0MjogcCB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgICAgICBSKGwsIHApLCBtID0gVShzLCBbc10pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIlJFTEVBU0VcIjpcbiAgICAgICAgICBtID0gdm9pZCAwO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChuKSB7XG4gICAgICBtID0geyB2YWx1ZTogbiwgW3ldOiAwIH07XG4gICAgfVxuICAgIFByb21pc2UucmVzb2x2ZShtKS5jYXRjaCgobikgPT4gKHsgdmFsdWU6IG4sIFt5XTogMCB9KSkudGhlbigobikgPT4ge1xuICAgICAgY29uc3QgW2EsIHNdID0gbyhuKTtcbiAgICAgIGMucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBhKSwgeyBpZDogaSB9KSwgcyksIGUgPT09IFwiUkVMRUFTRVwiICYmIChjLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGIpLCBWKGMpKTtcbiAgICB9KTtcbiAgfSksIGMuc3RhcnQgJiYgYy5zdGFydCgpO1xufVxuZnVuY3Rpb24gTihsKSB7XG4gIHJldHVybiBsLmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiTWVzc2FnZVBvcnRcIjtcbn1cbmZ1bmN0aW9uIFYobCkge1xuICBOKGwpICYmIGwuY2xvc2UoKTtcbn1cbmZ1bmN0aW9uIEsobCwgYykge1xuICByZXR1cm4gWChsLCBbXSwgYyk7XG59XG5mdW5jdGlvbiBoKGwpIHtcbiAgaWYgKGwpXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlXCIpO1xufVxuZnVuY3Rpb24gWChsLCBjID0gW10sIGIgPSBmdW5jdGlvbigpIHtcbn0pIHtcbiAgbGV0IHQgPSAhMTtcbiAgY29uc3QgaSA9IG5ldyBQcm94eShiLCB7XG4gICAgZ2V0KGUsIFopIHtcbiAgICAgIGlmIChoKHQpLCBaID09PSBDKVxuICAgICAgICByZXR1cm4gKCkgPT4gRyhsLCB7XG4gICAgICAgICAgdHlwZTogXCJSRUxFQVNFXCIsXG4gICAgICAgICAgcGF0aDogYy5tYXAoKGQpID0+IGQudG9TdHJpbmcoKSlcbiAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgVihsKSwgdCA9ICEwO1xuICAgICAgICB9KTtcbiAgICAgIGlmIChaID09PSBcInRoZW5cIikge1xuICAgICAgICBpZiAoYy5sZW5ndGggPT09IDApXG4gICAgICAgICAgcmV0dXJuIHsgdGhlbjogKCkgPT4gaSB9O1xuICAgICAgICBjb25zdCBkID0gRyhsLCB7XG4gICAgICAgICAgdHlwZTogXCJHRVRcIixcbiAgICAgICAgICBwYXRoOiBjLm1hcCgobSkgPT4gbS50b1N0cmluZygpKVxuICAgICAgICB9KS50aGVuKHUpO1xuICAgICAgICByZXR1cm4gZC50aGVuLmJpbmQoZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gWChsLCBbLi4uYywgWl0pO1xuICAgIH0sXG4gICAgc2V0KGUsIFosIGQpIHtcbiAgICAgIGgodCk7XG4gICAgICBjb25zdCBbbSwgbl0gPSBvKGQpO1xuICAgICAgcmV0dXJuIEcobCwge1xuICAgICAgICB0eXBlOiBcIlNFVFwiLFxuICAgICAgICBwYXRoOiBbLi4uYywgWl0ubWFwKChhKSA9PiBhLnRvU3RyaW5nKCkpLFxuICAgICAgICB2YWx1ZTogbVxuICAgICAgfSwgbikudGhlbih1KTtcbiAgICB9LFxuICAgIGFwcGx5KGUsIFosIGQpIHtcbiAgICAgIGgodCk7XG4gICAgICBjb25zdCBtID0gY1tjLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKG0gPT09IEgpXG4gICAgICAgIHJldHVybiBHKGwsIHtcbiAgICAgICAgICB0eXBlOiBcIkVORFBPSU5UXCJcbiAgICAgICAgfSkudGhlbih1KTtcbiAgICAgIGlmIChtID09PSBcImJpbmRcIilcbiAgICAgICAgcmV0dXJuIFgobCwgYy5zbGljZSgwLCAtMSkpO1xuICAgICAgY29uc3QgW24sIGFdID0gVyhkKTtcbiAgICAgIHJldHVybiBHKGwsIHtcbiAgICAgICAgdHlwZTogXCJBUFBMWVwiLFxuICAgICAgICBwYXRoOiBjLm1hcCgocykgPT4gcy50b1N0cmluZygpKSxcbiAgICAgICAgYXJndW1lbnRMaXN0OiBuXG4gICAgICB9LCBhKS50aGVuKHUpO1xuICAgIH0sXG4gICAgY29uc3RydWN0KGUsIFopIHtcbiAgICAgIGgodCk7XG4gICAgICBjb25zdCBbZCwgbV0gPSBXKFopO1xuICAgICAgcmV0dXJuIEcobCwge1xuICAgICAgICB0eXBlOiBcIkNPTlNUUlVDVFwiLFxuICAgICAgICBwYXRoOiBjLm1hcCgobikgPT4gbi50b1N0cmluZygpKSxcbiAgICAgICAgYXJndW1lbnRMaXN0OiBkXG4gICAgICB9LCBtKS50aGVuKHUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBpO1xufVxuZnVuY3Rpb24gSihsKSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBsKTtcbn1cbmZ1bmN0aW9uIFcobCkge1xuICBjb25zdCBjID0gbC5tYXAobyk7XG4gIHJldHVybiBbYy5tYXAoKGIpID0+IGJbMF0pLCBKKGMubWFwKChiKSA9PiBiWzFdKSldO1xufVxuY29uc3QgZyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpO1xuZnVuY3Rpb24gVShsLCBjKSB7XG4gIHJldHVybiBnLnNldChsLCBjKSwgbDtcbn1cbmZ1bmN0aW9uIHoobCkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihsLCB7IFtyXTogITAgfSk7XG59XG5mdW5jdGlvbiBvKGwpIHtcbiAgZm9yIChjb25zdCBbYywgYl0gb2YgUylcbiAgICBpZiAoYi5jYW5IYW5kbGUobCkpIHtcbiAgICAgIGNvbnN0IFt0LCBpXSA9IGIuc2VyaWFsaXplKGwpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiSEFORExFUlwiLFxuICAgICAgICAgIG5hbWU6IGMsXG4gICAgICAgICAgdmFsdWU6IHRcbiAgICAgICAgfSxcbiAgICAgICAgaVxuICAgICAgXTtcbiAgICB9XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgdHlwZTogXCJSQVdcIixcbiAgICAgIHZhbHVlOiBsXG4gICAgfSxcbiAgICBnLmdldChsKSB8fCBbXVxuICBdO1xufVxuZnVuY3Rpb24gdShsKSB7XG4gIHN3aXRjaCAobC50eXBlKSB7XG4gICAgY2FzZSBcIkhBTkRMRVJcIjpcbiAgICAgIHJldHVybiBTLmdldChsLm5hbWUpLmRlc2VyaWFsaXplKGwudmFsdWUpO1xuICAgIGNhc2UgXCJSQVdcIjpcbiAgICAgIHJldHVybiBsLnZhbHVlO1xuICB9XG59XG5mdW5jdGlvbiBHKGwsIGMsIGIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKCh0KSA9PiB7XG4gICAgY29uc3QgaSA9IFQoKTtcbiAgICBsLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGZ1bmN0aW9uIGUoWikge1xuICAgICAgIVouZGF0YSB8fCAhWi5kYXRhLmlkIHx8IFouZGF0YS5pZCAhPT0gaSB8fCAobC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlKSwgdChaLmRhdGEpKTtcbiAgICB9KSwgbC5zdGFydCAmJiBsLnN0YXJ0KCksIGwucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7IGlkOiBpIH0sIGMpLCBiKTtcbiAgfSk7XG59XG5mdW5jdGlvbiBUKCkge1xuICByZXR1cm4gbmV3IEFycmF5KDQpLmZpbGwoMCkubWFwKCgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpLmpvaW4oXCItXCIpO1xufVxuY29uc3QgeCA9IFwiS0daMWJtTjBhVzl1S0NsN0luVnpaU0J6ZEhKcFkzUWlPMk52Ym5OMElDUTlVM2x0WW05c0tDSkRiMjFzYVc1ckxuQnliM2g1SWlrc1FUMVRlVzFpYjJ3b0lrTnZiV3hwYm1zdVpXNWtjRzlwYm5RaUtTeFNQVk41YldKdmJDZ2lRMjl0YkdsdWF5NXlaV3hsWVhObFVISnZlSGtpS1N4NVBWTjViV0p2YkNnaVEyOXRiR2x1YXk1MGFISnZkMjRpS1N4ZlBXVTlQblI1Y0dWdlppQmxQVDBpYjJKcVpXTjBJaVltWlNFOVBXNTFiR3g4ZkhSNWNHVnZaaUJsUFQwaVpuVnVZM1JwYjI0aUxFdzllMk5oYmtoaGJtUnNaVHBsUFQ1ZktHVXBKaVpsV3lSZExITmxjbWxoYkdsNlpTaGxLWHRqYjI1emRIdHdiM0owTVRweUxIQnZjblF5T21sOVBXNWxkeUJOWlhOellXZGxRMmhoYm01bGJEdHlaWFIxY200Z2R5aGxMSElwTEZ0cExGdHBYVjE5TEdSbGMyVnlhV0ZzYVhwbEtHVXBlM0psZEhWeWJpQmxMbk4wWVhKMEtDa3NReWhsS1gxOUxFODllMk5oYmtoaGJtUnNaVHBsUFQ1ZktHVXBKaVo1SUdsdUlHVXNjMlZ5YVdGc2FYcGxLSHQyWVd4MVpUcGxmU2w3YkdWMElISTdjbVYwZFhKdUlHVWdhVzV6ZEdGdVkyVnZaaUJGY25KdmNqOXlQWHRwYzBWeWNtOXlPaUV3TEhaaGJIVmxPbnR0WlhOellXZGxPbVV1YldWemMyRm5aU3h1WVcxbE9tVXVibUZ0WlN4emRHRmphenBsTG5OMFlXTnJmWDA2Y2oxN2FYTkZjbkp2Y2pvaE1TeDJZV3gxWlRwbGZTeGJjaXhiWFYxOUxHUmxjMlZ5YVdGc2FYcGxLR1VwZTNSb2NtOTNJR1V1YVhORmNuSnZjajlQWW1wbFkzUXVZWE56YVdkdUtHNWxkeUJGY25KdmNpaGxMblpoYkhWbExtMWxjM05oWjJVcExHVXVkbUZzZFdVcE9tVXVkbUZzZFdWOWZTeEZQVzVsZHlCTllYQW9XMXNpY0hKdmVIa2lMRXhkTEZzaWRHaHliM2NpTEU5ZFhTazdablZ1WTNScGIyNGdkeWhsTEhJOWMyVnNaaWw3Y2k1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0NKdFpYTnpZV2RsSWl4bWRXNWpkR2x2YmlCcEtITXBlMmxtS0NGemZId2hjeTVrWVhSaEtYSmxkSFZ5Ymp0amIyNXpkSHRwWkRwdkxIUjVjR1U2WVN4d1lYUm9PbTU5UFU5aWFtVmpkQzVoYzNOcFoyNG9lM0JoZEdnNlcxMTlMSE11WkdGMFlTa3NkVDBvY3k1a1lYUmhMbUZ5WjNWdFpXNTBUR2x6ZEh4OFcxMHBMbTFoY0NodEtUdHNaWFFnYkR0MGNubDdZMjl1YzNRZ1l6MXVMbk5zYVdObEtEQXNMVEVwTG5KbFpIVmpaU2dvWkN4b0tUMCtaRnRvWFN4bEtTeG1QVzR1Y21Wa2RXTmxLQ2hrTEdncFBUNWtXMmhkTEdVcE8zTjNhWFJqYUNoaEtYdGpZWE5sSWtkRlZDSTZiRDFtTzJKeVpXRnJPMk5oYzJVaVUwVlVJanBqVzI0dWMyeHBZMlVvTFRFcFd6QmRYVDF0S0hNdVpHRjBZUzUyWVd4MVpTa3NiRDBoTUR0aWNtVmhhenRqWVhObElrRlFVRXhaSWpwc1BXWXVZWEJ3Ykhrb1l5eDFLVHRpY21WaGF6dGpZWE5sSWtOUFRsTlVVbFZEVkNJNmUyTnZibk4wSUdROWJtVjNJR1lvTGk0dWRTazdiRDE2S0dRcGZXSnlaV0ZyTzJOaGMyVWlSVTVFVUU5SlRsUWlPbnRqYjI1emRIdHdiM0owTVRwa0xIQnZjblF5T21oOVBXNWxkeUJOWlhOellXZGxRMmhoYm01bGJEdDNLR1VzYUNrc2JEMU9LR1FzVzJSZEtYMWljbVZoYXp0allYTmxJbEpGVEVWQlUwVWlPbXc5ZG05cFpDQXdPMkp5WldGck8yUmxabUYxYkhRNmNtVjBkWEp1ZlgxallYUmphQ2hqS1h0c1BYdDJZV3gxWlRwakxGdDVYVG93ZlgxUWNtOXRhWE5sTG5KbGMyOXNkbVVvYkNrdVkyRjBZMmdvWXowK0tIdDJZV3gxWlRwakxGdDVYVG93ZlNrcExuUm9aVzRvWXowK2UyTnZibk4wVzJZc1pGMDlVeWhqS1R0eUxuQnZjM1JOWlhOellXZGxLRTlpYW1WamRDNWhjM05wWjI0b1QySnFaV04wTG1GemMybG5iaWg3ZlN4bUtTeDdhV1E2YjMwcExHUXBMR0U5UFQwaVVrVk1SVUZUUlNJbUppaHlMbkpsYlc5MlpVVjJaVzUwVEdsemRHVnVaWElvSW0xbGMzTmhaMlVpTEdrcExFWW9jaWtwZlNsOUtTeHlMbk4wWVhKMEppWnlMbk4wWVhKMEtDbDlablZ1WTNScGIyNGdWQ2hsS1h0eVpYUjFjbTRnWlM1amIyNXpkSEoxWTNSdmNpNXVZVzFsUFQwOUlrMWxjM05oWjJWUWIzSjBJbjFtZFc1amRHbHZiaUJHS0dVcGUxUW9aU2ttSm1VdVkyeHZjMlVvS1gxbWRXNWpkR2x2YmlCREtHVXNjaWw3Y21WMGRYSnVJR0lvWlN4YlhTeHlLWDFtZFc1amRHbHZiaUJ3S0dVcGUybG1LR1VwZEdoeWIzY2dibVYzSUVWeWNtOXlLQ0pRY205NGVTQm9ZWE1nWW1WbGJpQnlaV3hsWVhObFpDQmhibVFnYVhNZ2JtOTBJSFZ6WldGaWJHVWlLWDFtZFc1amRHbHZiaUJpS0dVc2NqMWJYU3hwUFdaMWJtTjBhVzl1S0NsN2ZTbDdiR1YwSUhNOUlURTdZMjl1YzNRZ2J6MXVaWGNnVUhKdmVIa29hU3g3WjJWMEtHRXNiaWw3YVdZb2NDaHpLU3h1UFQwOVVpbHlaWFIxY200b0tUMCtaeWhsTEh0MGVYQmxPaUpTUlV4RlFWTkZJaXh3WVhSb09uSXViV0Z3S0hVOVBuVXVkRzlUZEhKcGJtY29LU2w5S1M1MGFHVnVLQ2dwUFQ1N1JpaGxLU3h6UFNFd2ZTazdhV1lvYmowOVBTSjBhR1Z1SWlsN2FXWW9jaTVzWlc1bmRHZzlQVDB3S1hKbGRIVnlibnQwYUdWdU9pZ3BQVDV2ZlR0amIyNXpkQ0IxUFdjb1pTeDdkSGx3WlRvaVIwVlVJaXh3WVhSb09uSXViV0Z3S0d3OVBtd3VkRzlUZEhKcGJtY29LU2w5S1M1MGFHVnVLRzBwTzNKbGRIVnliaUIxTG5Sb1pXNHVZbWx1WkNoMUtYMXlaWFIxY200Z1lpaGxMRnN1TGk1eUxHNWRLWDBzYzJWMEtHRXNiaXgxS1h0d0tITXBPMk52Ym5OMFcyd3NZMTA5VXloMUtUdHlaWFIxY200Z1p5aGxMSHQwZVhCbE9pSlRSVlFpTEhCaGRHZzZXeTR1TG5Jc2JsMHViV0Z3S0dZOVBtWXVkRzlUZEhKcGJtY29LU2tzZG1Gc2RXVTZiSDBzWXlrdWRHaGxiaWh0S1gwc1lYQndiSGtvWVN4dUxIVXBlM0FvY3lrN1kyOXVjM1FnYkQxeVczSXViR1Z1WjNSb0xURmRPMmxtS0d3OVBUMUJLWEpsZEhWeWJpQm5LR1VzZTNSNWNHVTZJa1ZPUkZCUFNVNVVJbjBwTG5Sb1pXNG9iU2s3YVdZb2JEMDlQU0ppYVc1a0lpbHlaWFIxY200Z1lpaGxMSEl1YzJ4cFkyVW9NQ3d0TVNrcE8yTnZibk4wVzJNc1psMDlUU2gxS1R0eVpYUjFjbTRnWnlobExIdDBlWEJsT2lKQlVGQk1XU0lzY0dGMGFEcHlMbTFoY0Noa1BUNWtMblJ2VTNSeWFXNW5LQ2twTEdGeVozVnRaVzUwVEdsemREcGpmU3htS1M1MGFHVnVLRzBwZlN4amIyNXpkSEoxWTNRb1lTeHVLWHR3S0hNcE8yTnZibk4wVzNVc2JGMDlUU2h1S1R0eVpYUjFjbTRnWnlobExIdDBlWEJsT2lKRFQwNVRWRkpWUTFRaUxIQmhkR2c2Y2k1dFlYQW9ZejArWXk1MGIxTjBjbWx1WnlncEtTeGhjbWQxYldWdWRFeHBjM1E2ZFgwc2JDa3VkR2hsYmlodEtYMTlLVHR5WlhSMWNtNGdiMzFtZFc1amRHbHZiaUJFS0dVcGUzSmxkSFZ5YmlCQmNuSmhlUzV3Y205MGIzUjVjR1V1WTI5dVkyRjBMbUZ3Y0d4NUtGdGRMR1VwZldaMWJtTjBhVzl1SUUwb1pTbDdZMjl1YzNRZ2NqMWxMbTFoY0NoVEtUdHlaWFIxY201YmNpNXRZWEFvYVQwK2FWc3dYU2tzUkNoeUxtMWhjQ2hwUFQ1cFd6RmRLU2xkZldOdmJuTjBJRkE5Ym1WM0lGZGxZV3ROWVhBN1puVnVZM1JwYjI0Z1RpaGxMSElwZTNKbGRIVnliaUJRTG5ObGRDaGxMSElwTEdWOVpuVnVZM1JwYjI0Z2VpaGxLWHR5WlhSMWNtNGdUMkpxWldOMExtRnpjMmxuYmlobExIdGJKRjA2SVRCOUtYMW1kVzVqZEdsdmJpQlRLR1VwZTJadmNpaGpiMjV6ZEZ0eUxHbGRiMllnUlNscFppaHBMbU5oYmtoaGJtUnNaU2hsS1NsN1kyOXVjM1JiY3l4dlhUMXBMbk5sY21saGJHbDZaU2hsS1R0eVpYUjFjbTViZTNSNWNHVTZJa2hCVGtSTVJWSWlMRzVoYldVNmNpeDJZV3gxWlRwemZTeHZYWDF5WlhSMWNtNWJlM1I1Y0dVNklsSkJWeUlzZG1Gc2RXVTZaWDBzVUM1blpYUW9aU2w4ZkZ0ZFhYMW1kVzVqZEdsdmJpQnRLR1VwZTNOM2FYUmphQ2hsTG5SNWNHVXBlMk5oYzJVaVNFRk9SRXhGVWlJNmNtVjBkWEp1SUVVdVoyVjBLR1V1Ym1GdFpTa3VaR1Z6WlhKcFlXeHBlbVVvWlM1MllXeDFaU2s3WTJGelpTSlNRVmNpT25KbGRIVnliaUJsTG5aaGJIVmxmWDFtZFc1amRHbHZiaUJuS0dVc2NpeHBLWHR5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvY3owK2UyTnZibk4wSUc4OVZTZ3BPMlV1WVdSa1JYWmxiblJNYVhOMFpXNWxjaWdpYldWemMyRm5aU0lzWm5WdVkzUnBiMjRnWVNodUtYc2hiaTVrWVhSaGZId2hiaTVrWVhSaExtbGtmSHh1TG1SaGRHRXVhV1FoUFQxdmZId29aUzV5WlcxdmRtVkZkbVZ1ZEV4cGMzUmxibVZ5S0NKdFpYTnpZV2RsSWl4aEtTeHpLRzR1WkdGMFlTa3BmU2tzWlM1emRHRnlkQ1ltWlM1emRHRnlkQ2dwTEdVdWNHOXpkRTFsYzNOaFoyVW9UMkpxWldOMExtRnpjMmxuYmloN2FXUTZiMzBzY2lrc2FTbDlLWDFtZFc1amRHbHZiaUJWS0NsN2NtVjBkWEp1SUc1bGR5QkJjbkpoZVNnMEtTNW1hV3hzS0RBcExtMWhjQ2dvS1QwK1RXRjBhQzVtYkc5dmNpaE5ZWFJvTG5KaGJtUnZiU2dwS2s1MWJXSmxjaTVOUVZoZlUwRkdSVjlKVGxSRlIwVlNLUzUwYjFOMGNtbHVaeWd4TmlrcExtcHZhVzRvSWkwaUtYMWpiMjV6ZENCWFBXRnplVzVqS0NrOVBsZGxZa0Z6YzJWdFlteDVMblpoYkdsa1lYUmxLRzVsZHlCVmFXNTBPRUZ5Y21GNUtGc3dMRGszTERFeE5Td3hNRGtzTVN3d0xEQXNNQ3d4TERVc01TdzVOaXd3TERFc01USXpMRE1zTWl3eExEQXNNVEFzTVRBc01TdzRMREFzTmpVc01Dd3lOVE1zTVRVc01qVXpMRGs0TERFeFhTa3BMSGc5SW1WaFoyVnlJaXhyUFNKc1lYcDVJaXhxUFh0emMzYzZXeUp6YVcxa0lsMHNiV2x1YVcxaGNESTZXeUp6YVcxa0lsMTlMSFE5ZTNSdmIyeHpPbHRkTEdOdmJtWnBaenA3ZlN4bWFXeGxjenBiWFN4aVlYTmxPbnQ5TEdaek9udDlMR0Z6ZVc1aklHbHVhWFFvS1h0cFppaDBMblJ2YjJ4ekxteGxibWQwYUQwOVBUQXBkR2h5YjNjaVJYaHdaV04wYVc1bklHRjBJR3hsWVhOMElERWdkRzl2YkM0aU8ybG1LRzVsZHlCVFpYUW9kQzUwYjI5c2N5NXRZWEFvY2owK1lDUjdjaTUwYjI5c2ZTOGtlM0l1Y0hKdlozSmhiWHg4Y2k1MGIyOXNmV0FwS1M1emFYcGxJVDA5ZEM1MGIyOXNjeTVzWlc1bmRHZ3BkR2h5YjNjaVJtOTFibVFnWkhWd2JHbGpZWFJsSUhSdmIyeHpPeUJqWVc0Z2IyNXNlU0JvWVhabElHVmhZMmdnZEc5dmJDOXdjbTluY21GdElHTnZiV0pwYm1GMGFXOXVJR0YwSUcxdmMzUWdiMjVqWlM0aU8ybG1LSFF1WW1GelpUMTBMblJ2YjJ4ekxtWnBibVFvY2owK2NpNXlaV2x1YVhRaFBUMGhNQ2tzSVhRdVltRnpaU2wwYUhKdmR5SkRiM1ZzWkNCdWIzUWdabWx1WkNCaElIUnZiMndnZDJsMGFDQmdjbVZwYm1sME9pQm1ZV3h6WldBZ2RHOGdkWE5sSUdGeklIUm9aU0JpWVhObElHMXZaSFZzWlM0Z1ZHOGdabWw0SUhSb2FYTWdhWE56ZFdVc0lHbHVZMngxWkdVZ2RHaGxJSFJ2YjJ3Z1lHSmhjMlV2TVM0d0xqQmdJSGRvWlc0Z2FXNXBkR2xoYkdsNmFXNW5JRUZwYjJ4cExpSTdjbVYwZFhKdUlIUXVZbUZ6WlM1cGMwSmhjMlZOYjJSMWJHVTlJVEFzWVhkaGFYUWdkR2hwY3k1ZmMyVjBkWEFvZEM1aVlYTmxLU3hoZDJGcGRDQjBhR2x6TGw5cGJtbDBUVzlrZFd4bGN5Z3BMSFF1WDJ4dlp5Z2lVbVZoWkhraUtTd2hNSDBzWVhONWJtTWdYMmx1YVhSTmIyUjFiR1Z6S0NsN1lYZGhhWFFnVUhKdmJXbHpaUzVoYkd3b2RDNTBiMjlzY3k1dFlYQW9kR2hwY3k1ZmMyVjBkWEFwS1N4aGQyRnBkQ0IwYUdsekxsOXpaWFIxY0VaVEtDbDlMRzF2ZFc1MEtHVTlXMTBwZTJOdmJuTjBJSEk5WUNSN2RDNWpiMjVtYVdjdVpHbHlVMmhoY21Wa2ZTUjdkQzVqYjI1bWFXY3VaR2x5UkdGMFlYMWdMR2s5WUNSN2RDNWpiMjVtYVdjdVpHbHlVMmhoY21Wa2ZTUjdkQzVqYjI1bWFXY3VaR2x5VFc5MWJuUmxaSDFnTzJ4bGRDQnpQVnRkTEc4OVcxMHNZVDFiWFRzaFFYSnlZWGt1YVhOQmNuSmhlU2hsS1NZbUlTaGxJR2x1YzNSaGJtTmxiMllnUm1sc1pVeHBjM1FwSmlZb1pUMWJaVjBwTEhRdVgyeHZaeWhnVFc5MWJuUnBibWNnSkh0bExteGxibWQwYUgwZ1ptbHNaWE5nS1R0bWIzSW9iR1YwSUc0Z2IyWWdaU2w3YVdZb2JpQnBibk4wWVc1alpXOW1JRVpwYkdWOGZDaHVQVDF1ZFd4c1AzWnZhV1FnTURwdUxtUmhkR0VwYVc1emRHRnVZMlZ2WmlCQ2JHOWlKaVp1TG01aGJXVjhmSFI1Y0dWdlppaHVQVDF1ZFd4c1AzWnZhV1FnTURwdUxtUmhkR0VwUFQwaWMzUnlhVzVuSWlZbWJpNXVZVzFsS1hSNWNHVnZaaWh1UFQxdWRXeHNQM1p2YVdRZ01EcHVMbVJoZEdFcFBUMGljM1J5YVc1bklpWW1LRzR1WkdGMFlUMXVaWGNnUW14dllpaGJiaTVrWVhSaFhTeDdkSGx3WlRvaWRHVjRkQzl3YkdGcGJpSjlLU2tzY3k1d2RYTm9LRzRwTzJWc2MyVWdhV1lvYmk1dVlXMWxKaVp1TG5WeWJDbHZMbkIxYzJnb2JpazdaV3h6WlNCcFppaDBlWEJsYjJZZ2JqMDlJbk4wY21sdVp5SW1KbTR1YzNSaGNuUnpWMmwwYUNnaWFIUjBjQ0lwS1c0OWUzVnliRHB1TEc1aGJXVTZiaTV6Y0d4cGRDZ2lMeThpS1M1d2IzQW9LUzV5WlhCc1lXTmxLQzljTHk5bkxDSXRJaWw5TEc4dWNIVnphQ2h1S1R0bGJITmxJSFJvY205M0owTmhibTV2ZENCdGIzVnVkQ0JtYVd4bEtITXBJSE53WldOcFptbGxaQzRnVFhWemRDQmlaU0JoSUVacGJHVXNJRUpzYjJJc0lHRWdWVkpNSUhOMGNtbHVaeXdnYjNJZ2V5QnVZVzFsT2lBaVptbHNaUzUwZUhRaUxDQmtZWFJoT2lBaWMzUnlhVzVuSWlCOUxpYzdZUzV3ZFhOb0tHNHVibUZ0WlNsOWRISjVlM1F1Wm5NdWRXNXRiM1Z1ZENocEtYMWpZWFJqYUh0OVptOXlLR3hsZENCdUlHOW1JRzhwZEM1bWN5NWpjbVZoZEdWTVlYcDVSbWxzWlNoeUxHNHVibUZ0WlN4dUxuVnliQ3doTUN3aE1DazdjbVYwZFhKdUlIUXVabWxzWlhNOWRDNW1hV3hsY3k1amIyNWpZWFFvY3lrc2RDNWlZWE5sTG0xdlpIVnNaUzVHVXk1dGIzVnVkQ2gwTG1KaGMyVXViVzlrZFd4bExsZFBVa3RGVWtaVExIdG1hV3hsY3pwMExtWnBiR1Z6TG1acGJIUmxjaWh1UFQ1dUlHbHVjM1JoYm1ObGIyWWdSbWxzWlNrc1lteHZZbk02ZEM1bWFXeGxjeTVtYVd4MFpYSW9iajArS0c0OVBXNTFiR3cvZG05cFpDQXdPbTR1WkdGMFlTbHBibk4wWVc1alpXOW1JRUpzYjJJcGZTeHBLU3h6TG0xaGNDaHVQVDU3WTI5dWMzUWdkVDFnSkh0cGZTOGtlMjR1Ym1GdFpYMWdMR3c5WUNSN2NuMHZKSHR1TG01aGJXVjlZRHQwY25sN2RDNW1jeTUxYm14cGJtc29iQ2w5WTJGMFkyaDdmWFF1WDJ4dlp5aGdRM0psWVhScGJtY2djM2x0YkdsdWF6b2dKSHRzZlNBdExUNGdKSHQxZldBcExIUXVabk11YzNsdGJHbHVheWgxTEd3cGZTa3NZUzV0WVhBb2JqMCtZQ1I3Y24wdkpIdHVmV0FwZlN4aGMzbHVZeUJsZUdWaktHVXNjajF1ZFd4c0tYdHBaaWgwTGw5c2IyY29ZRVY0WldOMWRHbHVaeUFsWXlSN1pYMGxZeUJoY21kelBTUjdjbjFnTENKamIyeHZjanBrWVhKcllteDFaVHNnWm05dWRDMTNaV2xuYUhRNlltOXNaQ0lzSWlJcExDRmxLWFJvY205M0lrVjRjR1ZqZEdsdVp5QmhJR052YlcxaGJtUWlPMnhsZENCcFBXVTdjajA5Ym5Wc2JDWW1LSEk5WlM1emNHeHBkQ2dpSUNJcExHazljaTV6YUdsbWRDZ3BLVHRqYjI1emRDQnpQWFF1ZEc5dmJITXVabWx1WkNoaFBUNTdkbUZ5SUhVN2JHVjBJRzQ5YVR0eVpYUjFjbTRvS0hVOVlUMDliblZzYkQ5MmIybGtJREE2WVM1bVpXRjBkWEpsY3lrOVBXNTFiR3cvZG05cFpDQXdPblV1YzJsdFpDazlQVDBoTUNZbUtHNDlZQ1I3Ym4wdGMybHRaR0FwTEdFdWNISnZaM0poYlQwOWJuMHBPMmxtS0hNOVBXNTFiR3dwZEdoeWIzZGdVSEp2WjNKaGJTQWtlMmw5SUc1dmRDQm1iM1Z1WkM1Z08zTXVjM1JrYjNWMFBTSWlMSE11YzNSa1pYSnlQU0lpTEhNdWJHOWhaR2x1WnowOWF5WW1LSE11Ykc5aFpHbHVaejE0TEdGM1lXbDBJSFJvYVhNdVgybHVhWFJOYjJSMWJHVnpLQ2twTzNSeWVYdHpMbTF2WkhWc1pTNWpZV3hzVFdGcGJpaHlLWDFqWVhSamFDaGhLWHRqYjI1emIyeGxMbVZ5Y205eUtHRXBmWFJ5ZVh0ekxtMXZaSFZzWlM1R1V5NWpiRzl6WlNoekxtMXZaSFZzWlM1R1V5NXpkSEpsWVcxeld6RmRLU3h6TG0xdlpIVnNaUzVHVXk1amJHOXpaU2h6TG0xdlpIVnNaUzVHVXk1emRISmxZVzF6V3pKZEtYMWpZWFJqYUh0OWN5NXRiMlIxYkdVdVJsTXVjM1J5WldGdGMxc3hYVDF6TG0xdlpIVnNaUzVHVXk1dmNHVnVLQ0l2WkdWMkwzTjBaRzkxZENJc0luY2lLU3h6TG0xdlpIVnNaUzVHVXk1emRISmxZVzF6V3pKZFBYTXViVzlrZFd4bExrWlRMbTl3Wlc0b0lpOWtaWFl2YzNSa1pYSnlJaXdpZHlJcE8yeGxkQ0J2UFh0emRHUnZkWFE2Y3k1emRHUnZkWFFzYzNSa1pYSnlPbk11YzNSa1pYSnlmVHRwWmloMExtTnZibVpwWnk1d2NtbHVkRWx1ZEdWeWJHVmhkbVZrSmlZb2J6MXpMbk4wWkc5MWRDa3NjeTV5WldsdWFYUTlQVDBoTUNsN1kyOXVjM1FnWVQxMExtSmhjMlV1Ylc5a2RXeGxMa1pUTG1OM1pDZ3BPMDlpYW1WamRDNWhjM05wWjI0b2N5eHpMbU52Ym1acFp5a3NjeTV5WldGa2VUMGhNU3hoZDJGcGRDQjBhR2x6TG1sdWFYUW9LU3h6TG1selFtRnpaVTF2WkhWc1pTWW1kR2hwY3k1dGIzVnVkQ2dwTEhSb2FYTXVZMlFvWVNsOWNtVjBkWEp1SUc5OUxHTmhkQ2hsS1h0eVpYUjFjbTRnZEM1ZlptbHNaVzl3S0NKallYUWlMR1VwZlN4c2N5aGxLWHR5WlhSMWNtNGdkQzVmWm1sc1pXOXdLQ0pzY3lJc1pTbDlMR1J2ZDI1c2IyRmtLR1VwZTNKbGRIVnliaUIwTGw5bWFXeGxiM0FvSW1SdmQyNXNiMkZrSWl4bEtYMHNjSGRrS0NsN2NtVjBkWEp1SUhRdVpuTXVZM2RrS0NsOUxHTmtLR1VwZTJadmNpaHNaWFFnY2lCdlppQjBMblJ2YjJ4ektTRnlMbTF2WkhWc1pYeDhjaTV0YjJSMWJHVXVSbE11WTJoa2FYSW9aU2w5TEcxclpHbHlLR1VwZTNKbGRIVnliaUIwTG1aekxtMXJaR2x5S0dVcExDRXdmU3h5WldGa0tIdHdZWFJvT21Vc2JHVnVaM1JvT25Jc1pteGhaenBwUFNKeUlpeHZabVp6WlhRNmN6MHdMSEJ2YzJsMGFXOXVPbTg5TUgwcGUyTnZibk4wSUdFOWRDNW1jeTV2Y0dWdUtHVXNhU2tzYmoxdVpYY2dWV2x1ZERoQmNuSmhlU2h5S1R0eVpYUjFjbTRnZEM1bWN5NXlaV0ZrS0dFc2JpeHpMSElzYnlrc2RDNW1jeTVqYkc5elpTaGhLU3h1ZlN4M2NtbDBaU2g3Y0dGMGFEcGxMR0oxWm1abGNqcHlMR1pzWVdjNmFUMGlkeXNpTEc5bVpuTmxkRHB6UFRBc2NHOXphWFJwYjI0NmJ6MHdmU2w3WTI5dWMzUWdZVDEwTG1aekxtOXdaVzRvWlN4cEtUdDBMbVp6TG5keWFYUmxLR0VzY2l4ekxISXViR1Z1WjNSb0xHOHBMSFF1Wm5NdVkyeHZjMlVvWVNsOUxGOXpkR1JwYmxSNGREb2lJaXhmYzNSa2FXNVFkSEk2TUN4blpYUWdjM1JrYVc0b0tYdHlaWFIxY200Z2RDNWZjM1JrYVc1VWVIUjlMSE5sZENCemRHUnBiaWhsUFNJaUtYdDBMbDlzYjJjb1lGTmxkSFJwYm1jZ2MzUmthVzRnZEc4Z0pXTWtlMlY5SldOZ0xDSmpiMnh2Y2pwa1lYSnJZbXgxWlNJc0lpSXBMSFF1WDNOMFpHbHVWSGgwUFdVc2RDNWZjM1JrYVc1UWRISTlNSDBzWVhONWJtTWdYM05sZEhWd0tHVXBlMmxtS0dVdWNtVmhaSGtwY21WMGRYSnVPMmxtS0hRdVgyeHZaeWhnVTJWMGRHbHVaeUIxY0NBa2UyVXVkRzl2YkgwZ0tHSmhjMlVnUFNBa2UyVXVhWE5DWVhObFRXOWtkV3hsUFQwOUlUQjlLUzR1TG1BcExHVXVZMjl1Wm1sblBVOWlhbVZqZEM1aGMzTnBaMjRvZTMwc1pTa3NaUzUxY214UWNtVm1hWGg4ZkNobExuVnliRkJ5WldacGVEMWdKSHQwTG1OdmJtWnBaeTUxY214RFJFNTlMeVI3WlM1MGIyOXNmUzhrZTJVdWRtVnljMmx2Ym4xZ0tTeGxMbkJ5YjJkeVlXMThmQ2hsTG5CeWIyZHlZVzA5WlM1MGIyOXNLU3hsTG1abFlYUjFjbVZ6Zkh3b1pTNW1aV0YwZFhKbGN6MTdmU3dvYWx0bExuQnliMmR5WVcxZGZIeGJYU2t1YVc1amJIVmtaWE1vSW5OcGJXUWlLU1ltS0dGM1lXbDBJRmNvS1Q4b1pTNXdjbTluY21GdEt6MGlMWE5wYldRaUxHVXVabVZoZEhWeVpYTXVjMmx0WkQwaE1DazZkQzVmYkc5bktHQlhaV0pCYzNObGJXSnNlU0JUU1UxRUlHbHpJRzV2ZENCemRYQndiM0owWldRZ2FXNGdkR2hwY3lCaWNtOTNjMlZ5T3lCM2FXeHNJR3h2WVdRZ2JtOXVMVk5KVFVRZ2RtVnljMmx2YmlCdlppQWtlMlV1Y0hKdlozSmhiWDB1WUNrcEtTeGxMbWx6UW1GelpVMXZaSFZzWlNZbUtHVXViRzloWkdsdVp6MTRLU3hsTG14dllXUnBibWM5UFQxcktYdDBMbDlzYjJjb1lGZHBiR3dnYkdGNmVTMXNiMkZrSUNSN1pTNTBiMjlzZlRzZ2MydHBjSEJwYm1jZ2FXNXBkR2xoYkdsNllYUnBiMjR1WUNrN2NtVjBkWEp1ZlhObGJHWXVhVzF3YjNKMFUyTnlhWEIwY3loZ0pIdGxMblZ5YkZCeVpXWnBlSDB2Skh0bExuQnliMmR5WVcxOUxtcHpZQ2tzWlM1dGIyUjFiR1U5WVhkaGFYUWdUVzlrZFd4bEtIdDBhR2x6VUhKdlozSmhiVHBsTG5CeWIyZHlZVzBzYkc5allYUmxSbWxzWlRvb2FTeHpLVDArWUNSN1pTNTFjbXhRY21WbWFYaDlMeVI3YVgxZ0xITjBaR2x1T2lncFBUNTBMbDl6ZEdScGJsQjBjangwTG5OMFpHbHVMbXhsYm1kMGFEOTBMbk4wWkdsdUxtTm9ZWEpEYjJSbFFYUW9kQzVmYzNSa2FXNVFkSElyS3lrNktIUXVjM1JrYVc0OUlpSXNiblZzYkNrc2NISnBiblE2YVQwK1pTNXpkR1J2ZFhRclBXQWtlMmw5Q21Bc2NISnBiblJGY25JNmRDNWpiMjVtYVdjdWNISnBiblJKYm5SbGNteGxZWFpsWkQ5cFBUNWxMbk4wWkc5MWRDczlZQ1I3YVgwS1lEcHBQVDVsTG5OMFpHVnljaXM5WUNSN2FYMEtZSDBwTzJOdmJuTjBJSEk5WlM1dGIyUjFiR1V1UmxNN1pTNXBjMEpoYzJWTmIyUjFiR1UvS0hRdVgyeHZaeWhnVTJWMGRHbHVaeUIxY0NBa2UyVXVkRzl2YkgwZ2QybDBhQ0JpWVhObElHMXZaSFZzWlNCbWFXeGxjM2x6ZEdWdExpNHVZQ2tzY2k1dGEyUnBjaWgwTG1OdmJtWnBaeTVrYVhKVGFHRnlaV1FzTlRFeEtTeHlMbTFyWkdseUtHQWtlM1F1WTI5dVptbG5MbVJwY2xOb1lYSmxaSDB2Skh0MExtTnZibVpwWnk1a2FYSkVZWFJoZldBc05URXhLU3h5TG0xclpHbHlLR0FrZTNRdVkyOXVabWxuTG1ScGNsTm9ZWEpsWkgwdkpIdDBMbU52Ym1acFp5NWthWEpOYjNWdWRHVmtmV0FzTlRFeEtTeHlMbU5vWkdseUtHQWtlM1F1WTI5dVptbG5MbVJwY2xOb1lYSmxaSDB2Skh0MExtTnZibVpwWnk1a2FYSkVZWFJoZldBcExIUXVabk05Y2lrNktIUXVYMnh2WnloZ1UyVjBkR2x1WnlCMWNDQWtlMlV1ZEc5dmJIMGdkMmwwYUNCbWFXeGxjM2x6ZEdWdExpNHVZQ2tzY2k1dGEyUnBjaWgwTG1OdmJtWnBaeTVrYVhKVGFHRnlaV1FwTEhJdWJXOTFiblFvWlM1dGIyUjFiR1V1VUZKUFdGbEdVeXg3Y205dmREcDBMbU52Ym1acFp5NWthWEpUYUdGeVpXUXNabk02ZEM1bWMzMHNkQzVqYjI1bWFXY3VaR2x5VTJoaGNtVmtLU3h5TG1Ob1pHbHlLSFF1Wm5NdVkzZGtLQ2twS1N4bExuTjBaRzkxZEQwaUlpeGxMbk4wWkdWeWNqMGlJaXhsTG5KbFlXUjVQU0V3ZlN4aGMzbHVZeUJmYzJWMGRYQkdVeWdwZTJOdmJuTjBJR1U5ZEM1bWN6dG1iM0lvYkdWMElISWdiMllnZEM1MGIyOXNjeWw3YVdZb0lYSXVjbVZoWkhrcFkyOXVkR2x1ZFdVN1kyOXVjM1FnYVQxeUxtMXZaSFZzWlM1R1V5eHpQV0F2Skh0eUxuUnZiMng5WUN4dlBXQWtlM1F1WTI5dVptbG5MbVJwY2xOb1lYSmxaSDBrZTNOOVlEc2hhUzVoYm1Gc2VYcGxVR0YwYUNoektTNWxlR2x6ZEhOOGZHVXVZVzVoYkhsNlpWQmhkR2dvYnlrdVpYaHBjM1J6Zkh3b2RDNWZiRzluS0dCTmIzVnVkR2x1WnlBa2UzTjlJRzl1ZEc4Z0pIdDBMbUpoYzJVdWRHOXZiSDBnWm1sc1pYTjVjM1JsYlNCaGRDQWtlMjk5WUNrc1pTNXRhMlJwY2lodktTeGxMbTF2ZFc1MEtIUXVZbUZ6WlM1dGIyUjFiR1V1VUZKUFdGbEdVeXg3Y205dmREcHpMR1p6T21sOUxHOHBLWDE5TEY5bWFXeGxiM0FvWlN4eUtYdDBMbDlzYjJjb1lGSjFibTVwYm1jZ0pIdGxmU0FrZTNKOVlDazdZMjl1YzNRZ2FUMTBMbVp6TG1GdVlXeDVlbVZRWVhSb0tISXBPMmxtS0NGcExtVjRhWE4wY3lseVpYUjFjbTRnZEM1ZmJHOW5LR0JHYVd4bElDUjdjbjBnYm05MElHWnZkVzVrTG1BcExDRXhPM04zYVhSamFDaGxLWHRqWVhObEltTmhkQ0k2Y21WMGRYSnVJSFF1Wm5NdWNtVmhaRVpwYkdVb2NpeDdaVzVqYjJScGJtYzZJblYwWmpnaWZTazdZMkZ6WlNKc2N5STZjbVYwZFhKdUlIUXVabk11YVhOR2FXeGxLR2t1YjJKcVpXTjBMbTF2WkdVcFAzUXVabk11YzNSaGRDaHlLVHAwTG1aekxuSmxZV1JrYVhJb2NpazdZMkZ6WlNKa2IzZHViRzloWkNJNlkyOXVjM1FnY3oxdVpYY2dRbXh2WWloYmRHaHBjeTVqWVhRb2NpbGRLVHR5WlhSMWNtNGdWVkpNTG1OeVpXRjBaVTlpYW1WamRGVlNUQ2h6S1gxeVpYUjFjbTRoTVgwc1gyeHZaeWhsS1h0cFppZ2hkQzVqYjI1bWFXY3VaR1ZpZFdjcGNtVjBkWEp1TzJ4bGRDQnlQVnN1TGk1aGNtZDFiV1Z1ZEhOZE8zSXVjMmhwWm5Rb0tTeGpiMjV6YjJ4bExteHZaeWhnSldOYlYyVmlWMjl5YTJWeVhTVmpJQ1I3WlgxZ0xDSm1iMjUwTFhkbGFXZG9kRHBpYjJ4a0lpd2lJaXd1TGk1eUtYMTlPM2NvZENsOUtTZ3BPd289XCIsIEwgPSB0eXBlb2Ygd2luZG93IDwgXCJ1XCIgJiYgd2luZG93LkJsb2IgJiYgbmV3IEJsb2IoW2F0b2IoeCldLCB7IHR5cGU6IFwidGV4dC9qYXZhc2NyaXB0O2NoYXJzZXQ9dXRmLThcIiB9KTtcbmZ1bmN0aW9uIHYoKSB7XG4gIGNvbnN0IGwgPSBMICYmICh3aW5kb3cuVVJMIHx8IHdpbmRvdy53ZWJraXRVUkwpLmNyZWF0ZU9iamVjdFVSTChMKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbCA/IG5ldyBXb3JrZXIobCkgOiBuZXcgV29ya2VyKFwiZGF0YTphcHBsaWNhdGlvbi9qYXZhc2NyaXB0O2Jhc2U2NCxcIiArIHgpO1xuICB9IGZpbmFsbHkge1xuICAgIGwgJiYgKHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTCkucmV2b2tlT2JqZWN0VVJMKGwpO1xuICB9XG59XG5jb25zdCBmID0gXCJodHRwczovL2Jpb3dhc20uY29tL2Nkbi92M1wiLCBGID0gXCJodHRwczovL3N0Zy5iaW93YXNtLmNvbS9jZG4vdjNcIiwgdyA9IHtcbiAgdXJsQ0ROOiBmLFxuICB1cmxDRE5TdGc6IEYsXG4gIGRpclNoYXJlZDogXCIvc2hhcmVkXCIsXG4gIGRpck1vdW50ZWQ6IFwiL21udFwiLFxuICBkaXJEYXRhOiBcIi9kYXRhXCIsXG4gIHByaW50SW50ZXJsZWF2ZWQ6ICEwLFxuICBjYWxsYmFjazogbnVsbCxcbiAgZGVidWc6ICExLFxuICBlbnY6IFwicHJkXCJcbn07XG5jbGFzcyBCIHtcbiAgY29uc3RydWN0b3IoYywgYiA9IHt9KSB7XG4gICAgaWYgKGMgPT0gbnVsbClcbiAgICAgIHRocm93IFwiRXhwZWN0aW5nIGFycmF5IG9mIHRvb2xzIGFzIGlucHV0IHRvIEFpb2xpIGNvbnN0cnVjdG9yLlwiO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGMpIHx8IChjID0gW2NdKSwgYiA9IE9iamVjdC5hc3NpZ24oe30sIHcsIGIpLCBjID0gYy5tYXAodGhpcy5fcGFyc2VUb29sKSwgYi5lbnYgPT09IFwic3RnXCIgJiYgKGIudXJsQ0ROID0gYi51cmxDRE5TdGcpLCB0aGlzLnRvb2xzID0gYywgdGhpcy5jb25maWcgPSBiLCB0aGlzLmNvbmZpZy5jYWxsYmFjayAhPSBudWxsICYmICh0aGlzLmNhbGxiYWNrID0gdGhpcy5jb25maWcuY2FsbGJhY2spLCBkZWxldGUgdGhpcy5jb25maWcuY2FsbGJhY2ssIHRoaXMuaW5pdCgpO1xuICB9XG4gIGFzeW5jIGluaXQoKSB7XG4gICAgY29uc3QgYyA9IG5ldyB2KCk7XG4gICAgdGhpcy5jYWxsYmFjayAmJiAoYy5vbm1lc3NhZ2UgPSAodCkgPT4ge1xuICAgICAgdC5kYXRhLnR5cGUgPT09IFwiYmlvd2FzbVwiICYmIHRoaXMuY2FsbGJhY2sodC5kYXRhLnZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBiID0gSyhjKTtcbiAgICByZXR1cm4gYi50b29scyA9IHRoaXMudG9vbHMsIGIuY29uZmlnID0gdGhpcy5jb25maWcsIGF3YWl0IGIuaW5pdCgpLCBiO1xuICB9XG4gIF9wYXJzZVRvb2woYykge1xuICAgIGlmICh0eXBlb2YgYyAhPSBcInN0cmluZ1wiKVxuICAgICAgcmV0dXJuIGM7XG4gICAgY29uc3QgYiA9IGMuc3BsaXQoXCIvXCIpO1xuICAgIGlmIChiLmxlbmd0aCAhPSAyICYmIGIubGVuZ3RoICE9IDMpXG4gICAgICB0aHJvdyBcIkV4cGVjdGluZyAnPHRvb2w+Lzx2ZXJzaW9uPicgb3IgJzx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+J1wiO1xuICAgIHJldHVybiB7XG4gICAgICB0b29sOiBiWzBdLFxuICAgICAgcHJvZ3JhbTogYi5sZW5ndGggPT0gMyA/IGJbMV0gOiBiWzBdLFxuICAgICAgdmVyc2lvbjogYltiLmxlbmd0aCAtIDFdXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IHtcbiAgQiBhcyBkZWZhdWx0XG59O1xuIiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyY1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHNjcmlwdFVybCA9IHNjcmlwdHNbc2NyaXB0cy5sZW5ndGggLSAxXS5zcmNcblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gZG9jdW1lbnQuYmFzZVVSSSB8fCBzZWxmLmxvY2F0aW9uLmhyZWY7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0XCJwYWNrYWdlXCI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCIiLCIvLyBzdGFydHVwXG4vLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbi8vIFRoaXMgZW50cnkgbW9kdWxlIGlzIHJlZmVyZW5jZWQgYnkgb3RoZXIgbW9kdWxlcyBzbyBpdCBjYW4ndCBiZSBpbmxpbmVkXG52YXIgX193ZWJwYWNrX2V4cG9ydHNfXyA9IF9fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9wYWNrYWdlLnRzXCIpO1xuIiwiIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9
8466
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFvRDtBQUNFO0FBQ1E7QUFDYjtBQUN3QjtBQUNkO0FBZXhCO0FBQzhCO0FBQ047QUFDSjtBQUNDO0FBQ2lCO0FBQ1I7QUFDaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQmxDO0FBQ3pDLGlDQUFpQyx5REFBYztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxPQUFPO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCx5QkFBeUI7QUFDOUUscURBQXFELHlCQUF5QjtBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQzdPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7OztBQzVDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ087QUFDUDtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQk47QUFDOUI7QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNBO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FB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O0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNkO0FBQ1AsSUFBSSxtR0FBd0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLElBQUksb0VBQWE7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxlQUFlLG9GQUFxQjtBQUNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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QTtXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7Ozs7O1dDSkE7V0FDQTtXQUNBO1dBQ0E7V0FDQSxHQUFHO1dBQ0g7V0FDQTtXQUNBLENBQUM7Ozs7O1dDUEQ7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7OztXQ05BO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOzs7OztXQ2ZBOztXQUVBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7Ozs7VUVyQkE7VUFDQTtVQUNBO1VBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvbnVjbGVvdGlkZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbWFjcm9tb2xlY3VsZS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL25vdGF0aW9uLWNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3NwbGl0dGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZkLXJlZ2lvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3BoeWxvY2FudmFzLWdsLXZpZXdlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdmlld2Vycy9hY3Rpdml0eS1jbGlmZnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3dvcmtlcnMvZGltZW5zaW9uYWxpdHktcmVkdWNpbmctd29ya2VyLWNyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvcmFuZG9tLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvZmFzdC1zaGEyNTYvc2hhMjU2LmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9mYXN0ZXN0LWxldmVuc2h0ZWluL2VzbS9tb2QuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2phcm8td2lua2xlci10eXBlc2NyaXB0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvYW5hbHlzaXMvc2VxdWVuY2UtYWN0aXZpdHktY2xpZmZzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1kaXZlcnNpdHktdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1zZWFyY2gtYmFzZS12aWV3ZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL2FuYWx5c2lzL3NlcXVlbmNlLXNpbWlsYXJpdHktdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9hbmFseXNpcy9zZXF1ZW5jZS1zcGFjZS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY2FsY3VsYXRpb25zL21vbm9tZXJMZXZlbE1vbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL2NvbnN0LnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9wYWNrYWdlLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy9zZXFfYWxpZ24udHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3N1YnN0cnVjdHVyZS1zZWFyY2gvc3Vic3RydWN0dXJlLXNlYXJjaC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvYXRvbWljLXdvcmtzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnZlcnQudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvc2F2ZS1hcy1mYXN0YS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvdWktdXRpbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL3V0aWxzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy92aWV3ZXJzL3ZkLXJlZ2lvbnMtdmlld2VyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy93aWRnZXRzL2Jpby1zdWJzdHJ1Y3R1cmUtZmlsdGVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy93aWRnZXRzL3JlcHJlc2VudGF0aW9ucy50cyIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwiJFwiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJER1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJncm9rXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcInJ4anNcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwidWlcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwid3VcIiIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGJpb3dhc20vYWlvbGkvZGlzdC9haW9saS5tanMiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9iZWZvcmUtc3RhcnR1cCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9zdGFydHVwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL2FmdGVyLXN0YXJ0dXAiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBbWlub2FjaWRzUGFsZXR0ZXN9IGZyb20gJy4vc3JjL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHtOdWNsZW90aWRlc1BhbGV0dGVzfSBmcm9tICcuL3NyYy9udWNsZW90aWRlcyc7XG5pbXBvcnQge1NlcVBhbGV0dGUsIFNlcVBhbGV0dGVCYXNlfSBmcm9tICcuL3NyYy9zZXEtcGFsZXR0ZXMnO1xuaW1wb3J0IHtVbmtub3duU2VxUGFsZXR0ZXN9IGZyb20gJy4vc3JjL3Vua25vd24nO1xuaW1wb3J0IHtEcmF3U3R5bGUsIHByaW50TGVmdE9yQ2VudGVyZWR9IGZyb20gJy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHtGYXN0YUZpbGVIYW5kbGVyfSBmcm9tICcuL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7XG4gIGdldFNwbGl0dGVyLFxuICBzcGxpdHRlckFzRmFzdGEsXG4gIGdldFNwbGl0dGVyRm9yQ29sdW1uLFxuICBTcGxpdHRlckZ1bmMsXG4gIG1vbm9tZXJUb1Nob3J0LFxuICBzcGxpdHRlckFzSGVsbSxcbiAgZ2V0U3RhdHMsXG4gIHBpY2tVcFBhbGV0dGUsXG4gIGdldFBhbGV0dGVCeVR5cGUsXG4gIGdldEFscGhhYmV0U2ltaWxhcml0eSxcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTXG59IGZyb20gJy4vc3JjL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xuaW1wb3J0IHtOb3RhdGlvbkNvbnZlcnRlcn0gZnJvbSAnLi9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyJztcbmltcG9ydCB7c3BsaXRBbGlnbmVkU2VxdWVuY2VzfSBmcm9tICcuL3NyYy91dGlscy9zcGxpdHRlcic7XG5pbXBvcnQge1VuaXRzSGFuZGxlcn0gZnJvbSAnLi9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQge1ZkUmVnaW9uLCBWZFJlZ2lvblR5cGV9IGZyb20gJy4vc3JjL3ZkLXJlZ2lvbnMnO1xuaW1wb3J0IHtJUGh5bG9jYW52YXNHbFZpZXdlcn0gZnJvbSAnLi9zcmMvdmlld2Vycy9waHlsb2NhbnZhcy1nbC12aWV3ZXInO1xuaW1wb3J0IHtJVmRSZWdpb25zVmlld2VyfSBmcm9tICcuL3NyYy92aWV3ZXJzL3ZkLXJlZ2lvbnMtdmlld2VyJztcbmltcG9ydCB7UG9zaXRpb25JbmZvLCBQb3NpdGlvbk1vbm9tZXJJbmZvLCBXZWJMb2dvfSBmcm9tICcuL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcblxuZXhwb3J0IHtcbiAgQUxQSEFCRVQsXG4gIE5PVEFUSU9OLFxuICBUQUdTLFxuICBOb3RhdGlvbkNvbnZlcnRlcixcbiAgU3BsaXR0ZXJGdW5jLFxuICBnZXRTdGF0cyxcbiAgZ2V0QWxwaGFiZXRTaW1pbGFyaXR5LFxuICBnZXRTcGxpdHRlcixcbiAgc3BsaXR0ZXJBc0Zhc3RhLFxuICBzcGxpdHRlckFzSGVsbSxcbiAgZ2V0U3BsaXR0ZXJGb3JDb2x1bW4sXG4gIG1vbm9tZXJUb1Nob3J0LFxuICBzcGxpdEFsaWduZWRTZXF1ZW5jZXMsXG4gIFNlcVBhbGV0dGUsXG4gIFNlcVBhbGV0dGVCYXNlLFxuICBBbWlub2FjaWRzUGFsZXR0ZXMsXG4gIE51Y2xlb3RpZGVzUGFsZXR0ZXMsXG4gIFVua25vd25TZXFQYWxldHRlcyxcbiAgcGlja1VwUGFsZXR0ZSxcbiAgZ2V0UGFsZXR0ZUJ5VHlwZSxcbiAgUG9zaXRpb25JbmZvLFxuICBQb3NpdGlvbk1vbm9tZXJJbmZvLFxuICBXZWJMb2dvLFxuICBVbml0c0hhbmRsZXIsXG4gIERyYXdTdHlsZSxcbiAgcHJpbnRMZWZ0T3JDZW50ZXJlZCxcbiAgRmFzdGFGaWxlSGFuZGxlcixcbiAgVmRSZWdpb25UeXBlLFxuICBWZFJlZ2lvbixcbiAgSVZkUmVnaW9uc1ZpZXdlcixcbiAgSVBoeWxvY2FudmFzR2xWaWV3ZXIsXG59OyIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IExlc2soKSB7XG4gICAgICAgIGlmICh0aGlzLmxlc2sgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5sZXNrID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snRycsICdBJywgJ1MnLCAnVCddLCAnb3JhbmdlJ10sXG4gICAgICAgICAgICAgICAgW1snQycsICdWJywgJ0knLCAnTCcsICdQJywgJ0YnLCAnWScsICdNJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ04nLCAnUScsICdIJ10sICdtYWdlbnRhJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydLJywgJ1InXSwgJ2FsbF9ibHVlJ10sXG4gICAgICAgICAgICBdLCBmYWxzZSwgQW1pbm9hY2lkc1BhbGV0dGVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sZXNrO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEdyb2tHcm91cHMoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb2tHcm91cHMgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5ncm9rR3JvdXBzID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snQycsICdVJ10sICd5ZWxsb3cnXSxcbiAgICAgICAgICAgICAgICBbWydHJywgJ1AnXSwgJ3JlZCddLFxuICAgICAgICAgICAgICAgIFtbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgICAgICAgICAgW1snUicsICdIJywgJ0snXSwgJ2xpZ2h0X2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydEJywgJ0UnXSwgJ2RhcmtfYmx1ZSddLFxuICAgICAgICAgICAgICAgIFtbJ1MnLCAnVCcsICdOJywgJ1EnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Jva0dyb3VwcztcbiAgICB9XG4gICAgc3RhdGljIGdldCBSYXNNb2woKSB7XG4gICAgICAgIGlmICh0aGlzLnJhc01vbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLnJhc01vbCA9IG5ldyBBbWlub2FjaWRzUGFsZXR0ZXMoe1xuICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9hY2Nlcy5lbnMtbHlvbi5mci9iaW90aWMvcmFzdG9wL2hlbHAvY29sb3VyLmh0bVxuICAgICAgICAgICAgICAgICdEJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdFJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdDJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdNJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdLJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdSJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdTJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdUJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdGJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdZJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdOJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdRJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdHJzogJyNFQkVCRUInLFxuICAgICAgICAgICAgICAgICdMJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdWJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdJJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdBJzogJyNDOEM4QzgnLFxuICAgICAgICAgICAgICAgICdXJzogJyNCNDVBQjQnLFxuICAgICAgICAgICAgICAgICdIJzogJyM4MjgyRDInLFxuICAgICAgICAgICAgICAgICdQJzogJyNEQzk2ODInLFxuICAgICAgICAgICAgICAgICdvdGhlcnMnOiAnI0JFQTA2RScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yYXNNb2w7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIGNvbnN0IHJlc00gPSBtIGluIEFtaW5vYWNpZHNQYWxldHRlcy5hYVN5bm9ueW1zID8gQW1pbm9hY2lkc1BhbGV0dGVzLmFhU3lub255bXNbbV0gOiBtO1xuICAgICAgICBjb25zdCByZXMgPSBzdXBlci5nZXQocmVzTSk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxufVxuLyoqIE9ubHkgc29tZSBvZiB0aGUgc3lub255bXMuIFRoZXNlIHdlcmUgb2J0YWluZWQgZnJvbSB0aGUgY2x1c3RlcmVkIG9saWdvcGVwdGlkZSBkYXRhc2V0LiAqL1xuQW1pbm9hY2lkc1BhbGV0dGVzLmFhU3lub255bXMgPSB7XG4gICAgJ01lTmxlJzogJ0wnLFxuICAgICdNZUEnOiAnQScsXG4gICAgJ01lRyc6ICdHJyxcbiAgICAnTWVGJzogJ0YnLFxufTtcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzIHtcbiAgICBzdGF0aWMgZ2V0UGFsZXR0ZShzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgc3dpdGNoIChzY2hlbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2dyb2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgIGNhc2UgJ2xlc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuTGVzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDaGVtUGFsZXR0ZTogc2NoZW1lIFxcYCR7c2NoZW1lfVxcYCBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGMgcmF3IGFtaW5vXG4gICAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjKSB7XG4gICAgICAgIGxldCBpc0lubmVyID0gMDtcbiAgICAgICAgbGV0IGlubmVyID0gJyc7XG4gICAgICAgIGxldCBvdXRlciA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICAgICAgICAgIGlzSW5uZXIrKztcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyknKVxuICAgICAgICAgICAgICAgIGlzSW5uZXItLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5uZXIpXG4gICAgICAgICAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdXRlciArPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VJbnQoaW5uZXIpKSA/IFtvdXRlciwgJyddIDogW291dGVyLCBpbm5lcl07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lciA9ICcnLCBzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgICAgICBjb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gdGhpcy5nZXRQYWxldHRlKHNjaGVtZSk7XG4gICAgICAgIGxldCBbb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXJdID0gdGhpcy5nZXRJbm5lck91dGVyKG1vbm9tZXIpO1xuICAgICAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgICAgIGlubmVyTW9ub21lciA9IChpbm5lck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke2lubmVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogaW5uZXJNb25vbWVyKTtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9hID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJbMF0gPT0gJ2QnICYmIG1vbm9tZXJbMV0gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDIgfHwgbW9ub21lclsyXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYiA9IG1vbm9tZXJbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAzXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgoX2MgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb3dlckNhc2UoKSkgPT0gbW9ub21lclswXSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gNCB8fCBtb25vbWVyWzRdID09ICcoJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCA0XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAwXTtcbiAgICB9XG59XG5BbWlub2FjaWRzLlNlbVR5cGUgPSAnQW1pbm9hY2lkcyc7XG5BbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuQW1pbm9hY2lkcy51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbkFtaW5vYWNpZHMuTmFtZXMgPSB7XG4gICAgJ0cnOiAnR2x5Y2luZScsXG4gICAgJ0wnOiAnTGV1Y2luZScsXG4gICAgJ1knOiAnVHlyb3NpbmUnLFxuICAgICdTJzogJ1NlcmluZScsXG4gICAgJ0UnOiAnR2x1dGFtaWMgYWNpZCcsXG4gICAgJ1EnOiAnR2x1dGFtaW5lJyxcbiAgICAnRCc6ICdBc3BhcnRpYyBhY2lkJyxcbiAgICAnTic6ICdBc3BhcmFnaW5lJyxcbiAgICAnRic6ICdQaGVueWxhbGFuaW5lJyxcbiAgICAnQSc6ICdBbGFuaW5lJyxcbiAgICAnSyc6ICdMeXNpbmUnLFxuICAgICdSJzogJ0FyZ2luaW5lJyxcbiAgICAnSCc6ICdIaXN0aWRpbmUnLFxuICAgICdDJzogJ0N5c3RlaW5lJyxcbiAgICAnVic6ICdWYWxpbmUnLFxuICAgICdQJzogJ1Byb2xpbmUnLFxuICAgICdXJzogJ1RyeXB0b3BoYW4nLFxuICAgICdJJzogJ0lzb2xldWNpbmUnLFxuICAgICdNJzogJ01ldGhpb25pbmUnLFxuICAgICdUJzogJ1RocmVvbmluZScsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlcyA9IHtcbiAgICAnRyc6ICdOQ0MoPU8pTycsXG4gICAgJ0wnOiAnTltDQEhdKENDKEMpQylDKD1PKU8nLFxuICAgICdZJzogJ05DKENDMT1DQz1DKE8pQz1DMSlDKD1PKU8nLFxuICAgICdTJzogJ05DKENPKUMoPU8pTycsXG4gICAgJ0UnOiAnTltDQEBIXShDQ0MoTyk9TylDKD1PKU8nLFxuICAgICdRJzogJ05bQ0BASF0oQ0NDKE4pPU8pQyg9TylPJyxcbiAgICAnRCc6ICdOW0NAQEhdKENDKE8pPU8pQyg9TylPJyxcbiAgICAnTic6ICdOW0NAQEhdKENDKE4pPU8pQyg9TylPJyxcbiAgICAnRic6ICdOQyhDQzE9Q0M9Q0M9QzEpQyg9TylPJyxcbiAgICAnQSc6ICdOW0NASF0oQylDKD1PKU8nLFxuICAgICdLJzogJ05DKENDQ0NOKUMoPU8pTycsXG4gICAgJ1InOiAnTltDQEhdKENDQ05DKD1OKUMpQyg9TylPJyxcbiAgICAnSCc6ICdOQyhDQzE9Q049Q1tOXTEpQyg9TylPJyxcbiAgICAnQyc6ICdOW0NAQEhdKENTKUMoPU8pTycsXG4gICAgJ1YnOiAnTkMoQyhDKUMpQyg9TylPJyxcbiAgICAnUCc6ICdOKENDQzEpQzFDKD1PKU8nLFxuICAgICdXJzogJ05bQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSlDKD1PKU8nLFxuICAgICdJJzogJ05bQ0BIXShbQ0BIXShDKUNDKUMoPU8pTycsXG4gICAgJ00nOiAnTkMoQ0NTQylDKD1PKU8nLFxuICAgICdUJzogJ05DKEMoTylDKUMoPU8pTycsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlc1RydW5jYXRlZCA9IHtcbiAgICAnRyc6ICcqQyonLFxuICAgICdMJzogJ0NDKEMpQ1tDQEhdKCopKicsXG4gICAgJ1knOiAnQzE9Q0MoPUNDPUMxQ0MoKikqKU8nLFxuICAgICdTJzogJ09DQygqKUMqJyxcbiAgICAnRSc6ICcqW0NAQEhdKENDQyhPKT1PKSonLFxuICAgICdRJzogJypOW0NAQEhdKENDQyhOKT1PKSonLFxuICAgICdEJzogJypbQ0BASF0oQ0MoTyk9TykqJyxcbiAgICAnTic6ICcqW0NAQEhdKENDKE4pPU8pKicsXG4gICAgJ0YnOiAnQzE9Q0M9QyhDPUMxKUNDKCopKicsXG4gICAgJ0EnOiAnQ1tDQEhdKCopKicsXG4gICAgJ0snOiAnQyhDQ04pQ0MoKikqJyxcbiAgICAnUic6ICcqW0NASF0oQ0NDTkMoPU4pQykqJyxcbiAgICAnSCc6ICdDMT1DKE5DPU4xKUNDKCopKicsXG4gICAgJ0MnOiAnQyhbQ0BASF0oKikqKVMnLFxuICAgICdWJzogJ0NDKEMpQygqKSonLFxuICAgICdQJzogJ0MxQ0NOKCopQzEqJyxcbiAgICAnVyc6ICcqW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpKicsXG4gICAgJ0knOiAnQ0NbQ0BIXShDKVtDQEhdKCopKicsXG4gICAgJ00nOiAnQ1NDQ0MoKikqJyxcbiAgICAnVCc6ICdDQyhPKUMoKikqJyxcbn07XG4vKiogVE9ETzogRnVsbD9cbiAqL1xuQW1pbm9hY2lkcy5BQUZ1bGxOYW1lcyA9IHtcbiAgICAnQWxhJzogJ0EnLFxuICAgICdBcmcnOiAnUicsXG4gICAgJ0Fzbic6ICdOJyxcbiAgICAnQXNwJzogJ0QnLFxuICAgICdDeXMnOiAnQycsXG4gICAgJ0dsbic6ICdRJyxcbiAgICAnR2x1JzogJ0UnLFxuICAgICdHbHknOiAnRycsXG4gICAgJ0hpcyc6ICdIJyxcbiAgICAnSWxlJzogJ0knLFxuICAgICdMZXUnOiAnTCcsXG4gICAgJ0x5cyc6ICdLJyxcbiAgICAnTWV0JzogJ00nLFxuICAgICdQaGUnOiAnRicsXG4gICAgJ1Bybyc6ICdQJyxcbiAgICAnU2VyJzogJ1MnLFxuICAgICdUaHInOiAnVCcsXG4gICAgJ1RycCc6ICdXJyxcbiAgICAnVHlyJzogJ1knLFxuICAgICdWYWwnOiAnVicsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVcxcGJtOWhZMmxrY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUZ0YVc1dllXTnBaSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlMwRXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hqUVVGak8wbEJSemRETEUxQlFVMHNTMEZCU3l4SlFVRkpPMUZCUTNCQ0xFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRaUVVONFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZETlVRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8yZENRVU0xUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU03WVVGRGVrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0VFFVTXZRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJTVTBzVFVGQlRTeExRVUZMTEZWQlFWVTdVVUZETVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGRrUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRPMmRDUVVNdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF6dGhRVU5xUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMU5CUXk5Q08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTNwQ0xFTkJRVU03U1VGSlRTeE5RVUZOTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMR3RDUVVGclFpeERRVUZETzJkQ1FVTnVReXg1UkVGQmVVUTdaMEpCUTNwRUxFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEZGQlFWRXNSVUZCUlN4VFFVRlRPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEVOQlFVTTdTVUZGWlN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVNelFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjJSaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRelZDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenM3UVVGRlJDdzRSa0ZCT0VZN1FVRkRMMFVzTmtKQlFWVXNSMEZCSzBJN1NVRkRkRVFzVDBGQlR5eEZRVUZGTEVkQlFVYzdTVUZEV2l4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRE8wRkJSMG9zVFVGQlRTeFBRVUZQTEZWQlFWVTdTVUZ4UjJRc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eFRRVUZwUWl4TlFVRk5PMUZCUXpsRExGRkJRVkVzVFVGQlRTeEZRVUZGTzFsQlEyaENMRXRCUVVzc1RVRkJUVHRuUWtGRFZDeFBRVUZQTEd0Q1FVRnJRaXhEUVVGRExGVkJRVlVzUTBGQlF6dFpRVU4yUXl4TFFVRkxMRTFCUVUwN1owSkJRMVFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGFrTTdaMEpCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMU5CUTNKRk8wbEJRMGdzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGVE8xRkJRMjVETEVsQlFVa3NUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVOb1FpeEpRVUZKTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRaaXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZGWml4TFFVRkxMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU53UWl4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSE8yZENRVU5pTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmxDUVVOUUxFbEJRVWtzU1VGQlNTeEpRVUZKTEVkQlFVYzdaMEpCUTJ4Q0xFOUJRVThzUlVGQlJTeERRVUZETzJsQ1FVTlFMRWxCUVVrc1QwRkJUenRuUWtGRFpDeExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRPenRuUWtGRlpDeExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRPMU5CUTJwQ08xRkJSVVFzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMmhGTEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNSVUZCUlN4VFFVRnBRaXhOUVVGTk96dFJRVU42UlN4elJFRkJjMFE3VVVGRGRFUXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1dVRkJXU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeFpRVUZaTEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU16Uml4WlFVRlpMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhaUVVGWkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXhKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzVFVGQlFTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMREJEUVVGRkxGZEJRVmNzUlVGQlJ5eERRVUZETzFsQlEzcERMRTlCUVU4c1MwRkJTeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1owSkJRMjVETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRNVVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEZUVRN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlJTeEpRVUZKTEcxQ1FVRnRRaXhGUVVGRk8xbEJRek5FTEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETERCRFFVRkZMRmRCUVZjc1JVRkJSeXhEUVVGRE8yZENRVU42UXl4UFFVRlBMRXRCUVVzc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMjlDUVVOdVF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUXpGRUxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzaEVPMU5CUTBZN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVTdXVUZETDBNc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTzJkQ1FVTTFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM2hFTEU5QlFVOHNTMEZCU3l4SlFVRkpMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdiMEpCUTI1RExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEV0QlFVc3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZETVVRc1EwRkJReXhKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEZsQlFWa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGVFUTdVMEZEUmp0UlFVVkVMRWxCUVVrc1EwRkJRU3hOUVVGQkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNNRU5CUVVVc1YwRkJWeXhGUVVGRkxFdEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUXpORExFbEJRVWtzVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkRMME1zU1VGQlNTeFBRVUZQTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4RlFVRkZPMjlDUVVNMVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEzaEVMRTlCUVU4c1MwRkJTeXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN2QwSkJRMjVETEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRNVVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRmxCUVZrc1JVRkJSU3haUVVGWkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdhVUpCUTNoRU8yRkJRMFk3VTBGRFJqdFJRVVZFTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVVFzUTBGQlF6czdRVUZ3VEdVc2EwSkJRVThzUjBGQlZ5eFpRVUZaTEVOQlFVTTdRVUZGTDBJc2JVTkJRWGRDTEVkQlFWY3NOa0pCUVRaQ0xFTkJRVU03UVVGRk1VVXNlVUpCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVTNRaXhuUWtGQlN5eEhRVUZ4UWp0SlFVTjBReXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNVVUZCVVR0SlFVTmlMRWRCUVVjc1JVRkJSU3hsUVVGbE8wbEJRM0JDTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeGxRVUZsTzBsQlEzQkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4bFFVRmxPMGxCUTNCQ0xFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4WFFVRlhPMGxCUTJoQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRkZCUVZFN1NVRkRZaXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4WFFVRlhPME5CUTJwQ0xFTkJRVU03UVVGRldTeHRRa0ZCVVN4SFFVRnhRanRKUVVONlF5eEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3h6UWtGQmMwSTdTVUZETTBJc1IwRkJSeXhGUVVGRkxESkNRVUV5UWp0SlFVTm9ReXhIUVVGSExFVkJRVVVzWTBGQll6dEpRVU51UWl4SFFVRkhMRVZCUVVVc2VVSkJRWGxDTzBsQlF6bENMRWRCUVVjc1JVRkJSU3g1UWtGQmVVSTdTVUZET1VJc1IwRkJSeXhGUVVGRkxIZENRVUYzUWp0SlFVTTNRaXhIUVVGSExFVkJRVVVzZDBKQlFYZENPMGxCUXpkQ0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN3d1FrRkJNRUk3U1VGREwwSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2JVSkJRVzFDTzBsQlEzaENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYjBOQlFXOURPMGxCUTNwRExFZEJRVWNzUlVGQlJTd3dRa0ZCTUVJN1NVRkRMMElzUjBGQlJ5eEZRVUZGTEdkQ1FVRm5RanRKUVVOeVFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wTkJRM1pDTEVOQlFVTTdRVUZGV1N3MFFrRkJhVUlzUjBGQmNVSTdTVUZEYkVRc1IwRkJSeXhGUVVGRkxFdEJRVXM3U1VGRFZpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4elFrRkJjMEk3U1VGRE0wSXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzYjBKQlFXOUNPMGxCUTNwQ0xFZEJRVWNzUlVGQlJTeHhRa0ZCY1VJN1NVRkRNVUlzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNiVUpCUVcxQ08wbEJRM2hDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRmxCUVZrN1NVRkRha0lzUjBGQlJ5eEZRVUZGTEdOQlFXTTdTVUZEYmtJc1IwRkJSeXhGUVVGRkxIRkNRVUZ4UWp0SlFVTXhRaXhIUVVGSExFVkJRVVVzYlVKQlFXMUNPMGxCUTNoQ0xFZEJRVWNzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRja0lzUjBGQlJ5eEZRVUZGTEZsQlFWazdTVUZEYWtJc1IwRkJSeXhGUVVGRkxHRkJRV0U3U1VGRGJFSXNSMEZCUnl4RlFVRkZMQ3RDUVVFclFqdEpRVU53UXl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3hYUVVGWE8wbEJRMmhDTEVkQlFVY3NSVUZCUlN4WlFVRlpPME5CUTJ4Q0xFTkJRVU03UVVGRlJqdEhRVU5ITzBGQlExY3NjMEpCUVZjc1IwRkJjVUk3U1VGRE5VTXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dERRVU5ZTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMU4wY21sdVowUnBZM1JwYjI1aGNubDlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3VTJWeFVHRnNaWFIwWlN3Z1UyVnhVR0ZzWlhSMFpVSmhjMlY5SUdaeWIyMGdKeTR2YzJWeExYQmhiR1YwZEdWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklFRnRhVzV2WVdOcFpITlFZV3hsZEhSbGN5QmxlSFJsYm1SeklGTmxjVkJoYkdWMGRHVkNZWE5sSUh0Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHVnphem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JNWlhOcktDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbXhsYzJzZ1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1c1pYTnJJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowY25MQ0FuUVNjc0lDZFRKeXdnSjFRblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0oxQW5MQ0FuUmljc0lDZFpKeXdnSjAwbkxDQW5WeWRkTENBbllXeHNYMmR5WldWdUoxMHNYRzRnSUNBZ0lDQWdJRnRiSjA0bkxDQW5VU2NzSUNkSUoxMHNJQ2R0WVdkbGJuUmhKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5jbVZrSjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMHNuTENBblVpZGRMQ0FuWVd4c1gySnNkV1VuWFN4Y2JpQWdJQ0FnSUYwc0lHWmhiSE5sTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1c1pYTnJPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdaM0p2YTBkeWIzVndjem9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JIY205clIzSnZkWEJ6S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtZHliMnRIY205MWNITWdQVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NW5jbTlyUjNKdmRYQnpJRDBnZEdocGN5NXRZV3RsVUdGc1pYUjBaU2hiWEc0Z0lDQWdJQ0FnSUZ0YkowTW5MQ0FuVlNkZExDQW5lV1ZzYkc5M0oxMHNYRzRnSUNBZ0lDQWdJRnRiSjBjbkxDQW5VQ2RkTENBbmNtVmtKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowRW5MQ0FuVmljc0lDZEpKeXdnSjB3bkxDQW5UU2NzSUNkR0p5d2dKMWtuTENBblZ5ZGRMQ0FuWVd4c1gyZHlaV1Z1SjEwc1hHNGdJQ0FnSUNBZ0lGdGJKMUluTENBblNDY3NJQ2RMSjEwc0lDZHNhV2RvZEY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkowUW5MQ0FuUlNkZExDQW5aR0Z5YTE5aWJIVmxKMTBzWEc0Z0lDQWdJQ0FnSUZ0YkoxTW5MQ0FuVkNjc0lDZE9KeXdnSjFFblhTd2dKMjl5WVc1blpTZGRMRnh1SUNBZ0lDQWdYU3dnWm1Gc2MyVXNJRUZ0YVc1dllXTnBaSE5RWVd4bGRIUmxjeWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWR5YjJ0SGNtOTFjSE03WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJ5WVhOTmIydzZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdVbUZ6VFc5c0tDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbkpoYzAxdmJDQTlQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuSmhjMDF2YkNBOUlHNWxkeUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE1vZTF4dUlDQWdJQ0FnSUNBdkx5Qm9kSFJ3T2k4dllXTmpaWE11Wlc1ekxXeDViMjR1Wm5JdlltbHZkR2xqTDNKaGMzUnZjQzlvWld4d0wyTnZiRzkxY2k1b2RHMWNiaUFnSUNBZ0lDQWdKMFFuT2lBbkkwVTJNRUV3UVNjc0lDOHZJR0Z6Y0N3Z1lYTndZWEowYVdNZ1lXTnBaQ3dnWVhOd1hHNGdJQ0FnSUNBZ0lDZEZKem9nSnlORk5qQkJNRUVuTENBdkx5Qm5iSFVzSUdkc2RYUmhiV2xqSUdGamFXUmNiaUFnSUNBZ0lDQWdKME1uT2lBbkkwVTJSVFl3TUNjc0lDOHZJR041Y3l3Z1kzbHpkR1ZwYm1WY2JpQWdJQ0FnSUNBZ0owMG5PaUFuSTBVMlJUWXdNQ2NzSUM4dklHMWxkQ3dnYldWMGFHbHZibWx1WlZ4dUlDQWdJQ0FnSUNBblN5YzZJQ2NqTVRRMVFVWkdKeXdnTHk4Z2JIbHpMQ0JzZVhOcGJtVmNiaUFnSUNBZ0lDQWdKMUluT2lBbkl6RTBOVUZHUmljc0lDOHZJR0Z5Wnl3Z1lYSm5hVzVwYm1WY2JpQWdJQ0FnSUNBZ0oxTW5PaUFuSTBaQk9UWXdNQ2NzSUM4dklITmxjaXdnYzJWeWFXNWxYRzRnSUNBZ0lDQWdJQ2RVSnpvZ0p5TkdRVGsyTURBbkxDQXZMeUIwYUhJc0lIUm9jbVZ2Ym1sdVpWeHVJQ0FnSUNBZ0lDQW5SaWM2SUNjak16SXpNa0ZCSnl3Z0x5OGdjR2hsTENCd2FHVnVlV3hoYkdGdWFXNWxYRzRnSUNBZ0lDQWdJQ2RaSnpvZ0p5TXpNak15UVVFbkxDQXZMeUIwZVhJc0lIUjVjbTl6YVc1bFhHNGdJQ0FnSUNBZ0lDZE9Kem9nSnlNd01FUkRSRU1uTENBdkx5QmhjMjRzSUdGemNHRnlZV2RwYm1WY2JpQWdJQ0FnSUNBZ0oxRW5PaUFuSXpBd1JFTkVReWNzSUM4dklHZHNiaXdnWjJ4MWRHRnRhVzVsWEc0Z0lDQWdJQ0FnSUNkSEp6b2dKeU5GUWtWQ1JVSW5MQ0F2THlCbmJIa3NJR2RzZVdOcGJtVmNiaUFnSUNBZ0lDQWdKMHduT2lBbkl6QkdPREl3Umljc0lDOHZJR3hsZFN3Z2JHVjFZMmx1WlZ4dUlDQWdJQ0FnSUNBblZpYzZJQ2NqTUVZNE1qQkdKeXdnTHk4Z2RtRnNMQ0IyWVd4cGJtVmNiaUFnSUNBZ0lDQWdKMGtuT2lBbkl6QkdPREl3Umljc0lDOHZJR2xzWlN3Z2FYTnZiR1YxWTJsdVpWeHVJQ0FnSUNBZ0lDQW5RU2M2SUNjalF6aERPRU00Snl3Z0x5OGdZV3hoTENCaGJHRnVhVzVsWEc0Z0lDQWdJQ0FnSUNkWEp6b2dKeU5DTkRWQlFqUW5MQ0F2THlCMGNuQXNJSFJ5ZVhCMGIzQm9ZVzVjYmlBZ0lDQWdJQ0FnSjBnbk9pQW5Jemd5T0RKRU1pY3NJQzh2SUdocGN5d2dhR2x6ZEdsa2FXNWxYRzRnSUNBZ0lDQWdJQ2RRSnpvZ0p5TkVRemsyT0RJbkxDQXZMeUJ3Y204c0lIQnliMnhwYm1WY2JpQWdJQ0FnSUNBZ0oyOTBhR1Z5Y3ljNklDY2pRa1ZCTURaRkp5eGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlZWE5OYjJ3N1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2IzWmxjbkpwWkdVZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpUU0E5SUcwZ2FXNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMbUZoVTNsdWIyNTViWE1nUHlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVlXRlRlVzV2Ym5sdGMxdHRYU0E2SUcwN1hHNGdJQ0FnWTI5dWMzUWdjbVZ6SUQwZ2MzVndaWEl1WjJWMEtISmxjMDBwTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lIMWNibHh1SUNBdktpb2dUMjVzZVNCemIyMWxJRzltSUhSb1pTQnplVzV2Ym5sdGN5NGdWR2hsYzJVZ2QyVnlaU0J2WW5SaGFXNWxaQ0JtY205dElIUm9aU0JqYkhWemRHVnlaV1FnYjJ4cFoyOXdaWEIwYVdSbElHUmhkR0Z6WlhRdUlDb3ZYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0ZoVTNsdWIyNTViWE02SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5SUQwZ2UxeHVJQ0FnSUNkTlpVNXNaU2M2SUNkTUp5d2dMeThnVG14bElDMGdibTl5YkdWMVkybHVaVnh1SUNBZ0lDZE5aVUVuT2lBblFTY3NYRzRnSUNBZ0owMWxSeWM2SUNkSEp5eGNiaUFnSUNBblRXVkdKem9nSjBZbkxGeHVJQ0I5TzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1FXMXBibTloWTJsa2N5QjdYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxPaUJ6ZEhKcGJtY2dQU0FuUVcxcGJtOWhZMmxrY3ljN1hHNWNiaUFnYzNSaGRHbGpJSEpsWVdSdmJteDVJRk5sYlZSNWNHVk5kV3gwYVhCc1pVRnNhV2R1YldWdWREb2djM1J5YVc1bklEMGdKMEZ0YVc1dllXTnBaSE5OZFd4MGFYQnNaVUZzYVdkdWJXVnVkQ2M3WEc1Y2JpQWdjM1JoZEdsaklIVnVaR1ZtYVc1bFpFTnZiRzl5SUQwZ0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdUbUZ0WlhNNklGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdYRzRnSUNBZ0owY25PaUFuUjJ4NVkybHVaU2NzWEc0Z0lDQWdKMHduT2lBblRHVjFZMmx1WlNjc1hHNGdJQ0FnSjFrbk9pQW5WSGx5YjNOcGJtVW5MRnh1SUNBZ0lDZFRKem9nSjFObGNtbHVaU2NzWEc0Z0lDQWdKMFVuT2lBblIyeDFkR0Z0YVdNZ1lXTnBaQ2NzWEc0Z0lDQWdKMUVuT2lBblIyeDFkR0Z0YVc1bEp5eGNiaUFnSUNBblJDYzZJQ2RCYzNCaGNuUnBZeUJoWTJsa0p5eGNiaUFnSUNBblRpYzZJQ2RCYzNCaGNtRm5hVzVsSnl4Y2JpQWdJQ0FuUmljNklDZFFhR1Z1ZVd4aGJHRnVhVzVsSnl4Y2JpQWdJQ0FuUVNjNklDZEJiR0Z1YVc1bEp5eGNiaUFnSUNBblN5YzZJQ2RNZVhOcGJtVW5MRnh1SUNBZ0lDZFNKem9nSjBGeVoybHVhVzVsSnl4Y2JpQWdJQ0FuU0NjNklDZElhWE4wYVdScGJtVW5MRnh1SUNBZ0lDZERKem9nSjBONWMzUmxhVzVsSnl4Y2JpQWdJQ0FuVmljNklDZFdZV3hwYm1VbkxGeHVJQ0FnSUNkUUp6b2dKMUJ5YjJ4cGJtVW5MRnh1SUNBZ0lDZFhKem9nSjFSeWVYQjBiM0JvWVc0bkxGeHVJQ0FnSUNkSkp6b2dKMGx6YjJ4bGRXTnBibVVuTEZ4dUlDQWdJQ2ROSnpvZ0owMWxkR2hwYjI1cGJtVW5MRnh1SUNBZ0lDZFVKem9nSjFSb2NtVnZibWx1WlNjc1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFWTnRhV3hsY3pvZ1UzUnlhVzVuUkdsamRHbHZibUZ5ZVNBOUlIdGNiaUFnSUNBblJ5YzZJQ2RPUTBNb1BVOHBUeWNzWEc0Z0lDQWdKMHduT2lBblRsdERRRWhkS0VOREtFTXBReWxES0QxUEtVOG5MRnh1SUNBZ0lDZFpKem9nSjA1REtFTkRNVDFEUXoxREtFOHBRejFETVNsREtEMVBLVThuTEZ4dUlDQWdJQ2RUSnpvZ0owNURLRU5QS1VNb1BVOHBUeWNzWEc0Z0lDQWdKMFVuT2lBblRsdERRRUJJWFNoRFEwTW9UeWs5VHlsREtEMVBLVThuTEZ4dUlDQWdJQ2RSSnpvZ0owNWJRMEJBU0Ywb1EwTkRLRTRwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUkNjNklDZE9XME5BUUVoZEtFTkRLRThwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVGljNklDZE9XME5BUUVoZEtFTkRLRTRwUFU4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUmljNklDZE9ReWhEUXpFOVEwTTlRME05UXpFcFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUVNjNklDZE9XME5BU0Ywb1F5bERLRDFQS1U4bkxGeHVJQ0FnSUNkTEp6b2dKMDVES0VORFEwTk9LVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxSW5PaUFuVGx0RFFFaGRLRU5EUTA1REtEMU9LVU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5TQ2M2SUNkT1F5aERRekU5UTA0OVExdE9YVEVwUXlnOVR5bFBKeXhjYmlBZ0lDQW5ReWM2SUNkT1cwTkFRRWhkS0VOVEtVTW9QVThwVHljc1hHNGdJQ0FnSjFZbk9pQW5Ua01vUXloREtVTXBReWc5VHlsUEp5eGNiaUFnSUNBblVDYzZJQ2RPS0VORFF6RXBRekZES0QxUEtVOG5MRnh1SUNBZ0lDZFhKem9nSjA1YlEwQkFTRjBvUTJNeFl6SmpZMk5qWXpKdUtGdElYU2xqTVNsREtEMVBLVThuTEZ4dUlDQWdJQ2RKSnpvZ0owNWJRMEJJWFNoYlEwQklYU2hES1VOREtVTW9QVThwVHljc1hHNGdJQ0FnSjAwbk9pQW5Ua01vUTBOVFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkVUp6b2dKMDVES0VNb1R5bERLVU1vUFU4cFR5Y3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QkJRVk50YVd4bGMxUnlkVzVqWVhSbFpEb2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5SeWM2SUNjcVF5b25MRnh1SUNBZ0lDZE1Kem9nSjBOREtFTXBRMXREUUVoZEtDb3BLaWNzWEc0Z0lDQWdKMWtuT2lBblF6RTlRME1vUFVORFBVTXhRME1vS2lrcUtVOG5MRnh1SUNBZ0lDZFRKem9nSjA5RFF5Z3FLVU1xSnl4Y2JpQWdJQ0FuUlNjNklDY3FXME5BUUVoZEtFTkRReWhQS1QxUEtTb25MRnh1SUNBZ0lDZFJKem9nSnlwT1cwTkFRRWhkS0VORFF5aE9LVDFQS1NvbkxGeHVJQ0FnSUNkRUp6b2dKeXBiUTBCQVNGMG9RME1vVHlrOVR5a3FKeXhjYmlBZ0lDQW5UaWM2SUNjcVcwTkFRRWhkS0VOREtFNHBQVThwS2ljc1hHNGdJQ0FnSjBZbk9pQW5RekU5UTBNOVF5aERQVU14S1VOREtDb3BLaWNzWEc0Z0lDQWdKMEVuT2lBblExdERRRWhkS0NvcEtpY3NYRzRnSUNBZ0owc25PaUFuUXloRFEwNHBRME1vS2lrcUp5eGNiaUFnSUNBblVpYzZJQ2NxVzBOQVNGMG9RME5EVGtNb1BVNHBReWtxSnl4Y2JpQWdJQ0FuU0NjNklDZERNVDFES0U1RFBVNHhLVU5ES0NvcEtpY3NYRzRnSUNBZ0owTW5PaUFuUXloYlEwQkFTRjBvS2lrcUtWTW5MRnh1SUNBZ0lDZFdKem9nSjBOREtFTXBReWdxS1NvbkxGeHVJQ0FnSUNkUUp6b2dKME14UTBOT0tDb3BRekVxSnl4Y2JpQWdJQ0FuVnljNklDY3FXME5BUUVoZEtFTmpNV015WTJOalkyTXliaWhiU0YwcFl6RXBLaWNzWEc0Z0lDQWdKMGtuT2lBblEwTmJRMEJJWFNoREtWdERRRWhkS0NvcEtpY3NYRzRnSUNBZ0owMG5PaUFuUTFORFEwTW9LaWtxSnl4Y2JpQWdJQ0FuVkNjNklDZERReWhQS1VNb0tpa3FKeXhjYmlBZ2ZUdGNibHh1SUNBdktpb2dWRTlFVHpvZ1JuVnNiRDljYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdRVUZHZFd4c1RtRnRaWE02SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1hHNGdJQ0FnSjBGc1lTYzZJQ2RCSnl4Y2JpQWdJQ0FuUVhKbkp6b2dKMUluTEZ4dUlDQWdJQ2RCYzI0bk9pQW5UaWNzWEc0Z0lDQWdKMEZ6Y0NjNklDZEVKeXhjYmlBZ0lDQW5RM2x6SnpvZ0owTW5MRnh1SUNBZ0lDZEhiRzRuT2lBblVTY3NYRzRnSUNBZ0owZHNkU2M2SUNkRkp5eGNiaUFnSUNBblIyeDVKem9nSjBjbkxGeHVJQ0FnSUNkSWFYTW5PaUFuU0Njc1hHNGdJQ0FnSjBsc1pTYzZJQ2RKSnl4Y2JpQWdJQ0FuVEdWMUp6b2dKMHduTEZ4dUlDQWdJQ2RNZVhNbk9pQW5TeWNzWEc0Z0lDQWdKMDFsZENjNklDZE5KeXhjYmlBZ0lDQW5VR2hsSnpvZ0owWW5MRnh1SUNBZ0lDZFFjbThuT2lBblVDY3NYRzRnSUNBZ0oxTmxjaWM2SUNkVEp5eGNiaUFnSUNBblZHaHlKem9nSjFRbkxGeHVJQ0FnSUNkVWNuQW5PaUFuVnljc1hHNGdJQ0FnSjFSNWNpYzZJQ2RaSnl4Y2JpQWdJQ0FuVm1Gc0p6b2dKMVluTEZ4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMFVHRnNaWFIwWlNoelkyaGxiV1U2SUhOMGNtbHVaeUE5SUNkbmNtOXJKeWs2SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0FnSUhOM2FYUmphQ0FvYzJOb1pXMWxLU0I3WEc0Z0lDQWdZMkZ6WlNBblozSnZheWM2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lDQWdZMkZ6WlNBbmJHVnpheWM2WEc0Z0lDQWdJQ0J5WlhSMWNtNGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa3hsYzJzN1hHNGdJQ0FnWkdWbVlYVnNkRHBjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdRMmhsYlZCaGJHVjBkR1U2SUhOamFHVnRaU0JjWEdBa2UzTmphR1Z0WlgxY1hHQWdaRzlsY3lCdWIzUWdaWGhwYzNSZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmthWFpwWkdWa0lHRnRhVzV2SUdGamFXUWdkMmwwYUNCcGRITWdZMjl1ZEdWdWRDQnBiaUIwYUdVZ1luSmhZMnRsZEN3Z2FXWWdkR2hsSUdOdmJuUmxiblFnYVhNZ2JuVnRZbVZ5TENCMGFHVnVJR2wwY3lCdmJXbDBkR1ZrWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCaklISmhkeUJoYldsdWIxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0YmMzUnlhVzVuTENCemRISnBibWRkZlNCdmRYUmxjaUJoYm1RZ2FXNXVaWElnWTI5dWRHVnVkRnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJKYm01bGNrOTFkR1Z5S0dNNklITjBjbWx1WnlrNklGdHpkSEpwYm1jc0lITjBjbWx1WjEwZ2UxeHVJQ0FnSUd4bGRDQnBjMGx1Ym1WeUlEMGdNRHRjYmlBZ0lDQnNaWFFnYVc1dVpYSWdQU0FuSnp0Y2JpQWdJQ0JzWlhRZ2IzVjBaWElnUFNBbkp6dGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdZMmhoY2lCdlppQmpLU0I3WEc0Z0lDQWdJQ0JwWmlBb1kyaGhjaUE5UFNBbktDY3BYRzRnSUNBZ0lDQWdJR2x6U1c1dVpYSXJLenRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLR05vWVhJZ1BUMGdKeWtuS1Z4dUlDQWdJQ0FnSUNCcGMwbHVibVZ5TFMwN1hHNGdJQ0FnSUNCbGJITmxJR2xtSUNocGMwbHVibVZ5S1Z4dUlDQWdJQ0FnSUNCcGJtNWxjaUFyUFNCamFHRnlPMXh1SUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNCdmRYUmxjaUFyUFNCamFHRnlPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlBaGFYTk9ZVTRvY0dGeWMyVkpiblFvYVc1dVpYSXBLU0EvSUZ0dmRYUmxjaXdnSnlkZElEb2dXMjkxZEdWeUxDQnBibTVsY2wwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRFTnZiRzl5UVVGUWFYWnZkQ2h0YjI1dmJXVnlPaUJ6ZEhKcGJtY2dQU0FuSnl3Z2MyTm9aVzFsT2lBblozSnZheWNnUFNBblozSnZheWNwT2lCYmMzUnlhVzVuTENCemRISnBibWNzSUhOMGNtbHVaeXdnYm5WdFltVnlYU0I3WEc0Z0lDQWdMeTlqYjI1emRDQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDBnUVVGUVlXeGxkSFJsY3k1SGNtOXJSM0p2ZFhCektDazdYRzRnSUNBZ1kyOXVjM1FnWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlNBOUlIUm9hWE11WjJWMFVHRnNaWFIwWlNoelkyaGxiV1VwTzF4dUlDQWdJR3hsZENCYmIzVjBaWEpOYjI1dmJXVnlMQ0JwYm01bGNrMXZibTl0WlhKZElEMGdkR2hwY3k1blpYUkpibTVsY2s5MWRHVnlLRzF2Ym05dFpYSXBPMXh1SUNBZ0lHOTFkR1Z5VFc5dWIyMWxjaUE5SUNodmRYUmxjazF2Ym05dFpYSXViR1Z1WjNSb0lENGdOaUEvSUdBa2UyOTFkR1Z5VFc5dWIyMWxjaTV6YkdsalpTZ3dMQ0F6S1gwdUxpNWdJRG9nYjNWMFpYSk5iMjV2YldWeUtUdGNiaUFnSUNCcGJtNWxjazF2Ym05dFpYSWdQU0FvYVc1dVpYSk5iMjV2YldWeUxteGxibWQwYUNBK0lEWWdQeUJnSkh0cGJtNWxjazF2Ym05dFpYSXVjMnhwWTJVb01Dd2dNeWw5TGk0dVlDQTZJR2x1Ym1WeVRXOXViMjFsY2lrN1hHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNpNXNaVzVuZEdnZ1BUMGdNU0I4ZkNCdGIyNXZiV1Z5V3pGZElEMDlJQ2NvSnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWVcxcGJtOGdQU0J0YjI1dmJXVnlXekJkUHk1MGIxVndjR1Z5UTJGelpTZ3BJVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhiV2x1YnlCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDljYmlBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVdVoyVjBLR0Z0YVc1dktTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTVYwZ09seHVJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURGZE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHRiMjV2YldWeVd6QmRJRDA5SUNka0p5QW1KaUJ0YjI1dmJXVnlXekZkSVNCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxLU0I3WEc0Z0lDQWdJQ0JwWmlBb2JXOXViMjFsY2k1c1pXNW5kR2dnUFQwZ01pQjhmQ0J0YjI1dmJXVnlXekpkSUQwOUlDY29KeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JoYldsdWJ5QTlJRzF2Ym05dFpYSmJNVjAvTG5SdlZYQndaWEpEWVhObEtDa2hPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUNBZ1cyTm9aVzFRWVd4bGRIUmxTVzV6ZEdGdVkyVXVaMlYwS0dGdGFXNXZLU3dnWVcxcGJtOHNJR2x1Ym1WeVRXOXViMjFsY2l3Z01sMGdPbHh1SUNBZ0lDQWdJQ0FnSUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNbDA3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0cxdmJtOXRaWEl1YzNWaWMzUnlhVzVuS0RBc0lETXBJR2x1SUhSb2FYTXVRVUZHZFd4c1RtRnRaWE1wSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxteGxibWQwYUNBOVBTQXpJSHg4SUcxdmJtOXRaWEpiTTEwZ1BUMGdKeWduS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdGdGFXNXZJRDBnZEdocGN5NUJRVVoxYkd4T1lXMWxjMXR0YjI1dmJXVnlMbk4xWW5OMGNtbHVaeWd3TENBektWMDdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmhiV2x1YnlCcGJpQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDljYmlBZ0lDQWdJQ0FnSUNCYlkyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTNW5aWFFvWVcxcGJtOHBMQ0JoYldsdWJ5d2dhVzV1WlhKTmIyNXZiV1Z5TENBelhTQTZYRzRnSUNBZ0lDQWdJQ0FnVzNSb2FYTXVkVzVrWldacGJtVmtRMjlzYjNJc0lHOTFkR1Z5VFc5dWIyMWxjaXdnYVc1dVpYSk5iMjV2YldWeUxDQXpYVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvYlc5dWIyMWxjbHN3WFQ4dWRHOU1iM2RsY2tOaGMyVW9LU0E5UFNCdGIyNXZiV1Z5V3pCZEtTQjdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaTV6ZFdKemRISnBibWNvTVN3Z015a2dhVzRnZEdocGN5NUJRVVoxYkd4T1lXMWxjeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9iVzl1YjIxbGNpNXNaVzVuZEdnZ1BUMGdOQ0I4ZkNCdGIyNXZiV1Z5V3pSZElEMDlJQ2NvSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2RHaHBjeTVCUVVaMWJHeE9ZVzFsYzF0dGIyNXZiV1Z5TG5OMVluTjBjbWx1WnlneExDQXpLVjA3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQWdJQ0FnVzJOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVdVoyVjBLR0Z0YVc1dktTd2dZVzFwYm04c0lHbHVibVZ5VFc5dWIyMWxjaXdnTkYwZ09seHVJQ0FnSUNBZ0lDQWdJQ0FnVzNSb2FYTXVkVzVrWldacGJtVmtRMjlzYjNJc0lHOTFkR1Z5VFc5dWIyMWxjaXdnYVc1dVpYSk5iMjV2YldWeUxDQTBYVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURCZE8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0IHsgU2VxUGFsZXR0ZUJhc2UgfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IENocm9tYXRvZ3JhbSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hyb21hdG9ncmFtID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hyb21hdG9ncmFtID0gbmV3IE51Y2xlb3RpZGVzUGFsZXR0ZXMoe1xuICAgICAgICAgICAgICAgICdBJzogJ2dyZWVuJyxcbiAgICAgICAgICAgICAgICAnQyc6ICdibHVlJyxcbiAgICAgICAgICAgICAgICAnRyc6ICdibGFjaycsXG4gICAgICAgICAgICAgICAgJ1QnOiAncmVkJyxcbiAgICAgICAgICAgICAgICAnVSc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdvdGhlcnMnOiAnZ3JheScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jaHJvbWF0b2dyYW07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE51Y2xlb3RpZGVzIHtcbn1cbk51Y2xlb3RpZGVzLlNlbVR5cGUgPSAnTnVjbGVvdGlkZXMnO1xuTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50ID0gJ051Y2xlb3RpZGVzTXVsdGlwbGVBbGlnbm1lbnQnO1xuTnVjbGVvdGlkZXMuTmFtZXMgPSB7XG4gICAgJ0EnOiAnQWRlbmluZScsXG4gICAgJ0MnOiAnQ3l0b3NpbmUnLFxuICAgICdHJzogJ0d1YW5pbmUnLFxuICAgICdUJzogJ1RoeW1pbmUnLFxuICAgICdVJzogJ1VyYWNpbCcsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYm5WamJHVnZkR2xrWlhNdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp1ZFdOc1pXOTBhV1JsY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkxRU3hQUVVGUExFVkJRV0VzWTBGQll5eEZRVUZETEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGRk1VUXNUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEdOQlFXTTdTVUZIT1VNc1RVRkJUU3hMUVVGTExGbEJRVms3VVVGRE5VSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1dVRkJXU3hMUVVGTExFdEJRVXNzUTBGQlF5eEZRVUZGTzFsQlEyaERMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJRenRuUWtGRE1VTXNSMEZCUnl4RlFVRkZMRTlCUVU4N1owSkJRMW9zUjBGQlJ5eEZRVUZGTEUxQlFVMDdaMEpCUTFnc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzUjBGQlJ5eEZRVUZGTEV0QlFVczdaMEpCUTFZc1VVRkJVU3hGUVVGRkxFMUJRVTA3WVVGRGFrSXNRMEZCUXl4RFFVRkRPMU5CUTBvN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTTdTVUZETTBJc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFBRVUZQTEZkQlFWYzdPMEZCUTA0c2JVSkJRVThzUjBGQlZ5eGhRVUZoTEVOQlFVTTdRVUZGYUVNc2IwTkJRWGRDTEVkQlFWY3NPRUpCUVRoQ0xFTkJRVU03UVVGRmNFVXNhVUpCUVVzc1IwRkJjVUk3U1VGRGRFTXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4VFFVRlRPMGxCUTJRc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNVVUZCVVR0RFFVTmtMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UxTjBjbWx1WjBScFkzUnBiMjVoY25sOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdVMlZ4VUdGc1pYUjBaU3dnVTJWeFVHRnNaWFIwWlVKaGMyVjlJR1p5YjIwZ0p5NHZjMlZ4TFhCaGJHVjBkR1Z6Snp0Y2JseHVaWGh3YjNKMElHTnNZWE56SUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhNZ1pYaDBaVzVrY3lCVFpYRlFZV3hsZEhSbFFtRnpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdOb2NtOXRZWFJ2WjNKaGJUb2dVMlZ4VUdGc1pYUjBaVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRDQkRhSEp2YldGMGIyZHlZVzBvS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDA5UFNCMmIybGtJREFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0SUQwZ2JtVjNJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1vZTF4dUlDQWdJQ0FnSUNBblFTYzZJQ2RuY21WbGJpY3NYRzRnSUNBZ0lDQWdJQ2RESnpvZ0oySnNkV1VuTEZ4dUlDQWdJQ0FnSUNBblJ5YzZJQ2RpYkdGamF5Y3NJQzh2SUc5eVlXNW5aU0EvWEc0Z0lDQWdJQ0FnSUNkVUp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZFZKem9nSjNKbFpDY3NYRzRnSUNBZ0lDQWdJQ2R2ZEdobGNuTW5PaUFuWjNKaGVTY3NYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0TzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJPZFdOc1pXOTBhV1JsY3lCN1hHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbE9pQnpkSEpwYm1jZ1BTQW5UblZqYkdWdmRHbGtaWE1uTzF4dVhHNGdJSE4wWVhScFl5QnlaV0ZrYjI1c2VTQlRaVzFVZVhCbFRYVnNkR2x3YkdWQmJHbG5ibTFsYm5RNklITjBjbWx1WnlBOUlDZE9kV05zWlc5MGFXUmxjMDExYkhScGNHeGxRV3hwWjI1dFpXNTBKenRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUU1aGJXVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RCSnpvZ0owRmtaVzVwYm1VbkxGeHVJQ0FnSUNkREp6b2dKME41ZEc5emFXNWxKeXhjYmlBZ0lDQW5SeWM2SUNkSGRXRnVhVzVsSnl4Y2JpQWdJQ0FuVkNjNklDZFVhSGx0YVc1bEp5eGNiaUFnSUNBblZTYzZJQ2RWY21GamFXd25MRnh1SUNCOU8xeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgY29uc3RydWN0b3IocGFsZXR0ZSkge1xuICAgICAgICB0aGlzLl9wYWxldHRlID0gcGFsZXR0ZTtcbiAgICB9XG4gICAgc3RhdGljIG1ha2VQYWxldHRlKGR0LCBzaW1wbGlmaWVkID0gZmFsc2UsIFBhbGV0dGVUeXBlID0gU2VxUGFsZXR0ZUJhc2UpIHtcbiAgICAgICAgY29uc3QgcGFsZXR0ZSA9IHt9O1xuICAgICAgICBkdC5mb3JFYWNoKChjcCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqTGlzdCA9IGNwWzBdO1xuICAgICAgICAgICAgY29uc3QgY29sb3VyID0gY3BbMV07XG4gICAgICAgICAgICBvYmpMaXN0LmZvckVhY2goKG9iaiwgaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFsZXR0ZVtvYmpdID0gdGhpcy5jb2xvdXJQYWxldHRlW2NvbG91cl1bc2ltcGxpZmllZCA/IDAgOiBpbmRdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3IFBhbGV0dGVUeXBlKHBhbGV0dGUpO1xuICAgIH1cbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFsZXR0ZVttXTtcbiAgICB9XG59XG5TZXFQYWxldHRlQmFzZS51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbi8qKiBQYWxldHRlIHdpdGggc2hhZGVzIG9mIHByaW1hcnkgY29sb3JzICovXG5TZXFQYWxldHRlQmFzZS5jb2xvdXJQYWxldHRlID0ge1xuICAgICdvcmFuZ2UnOiBbJ3JnYigyNTUsMTg3LDEyMCknLCAncmdiKDI0NSwxNjcsMTAwKScsICdyZ2IoMjM1LDEzNyw3MCknLCAncmdiKDIwNSwgMTExLCA3MSknXSxcbiAgICAnYWxsX2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KScsICdyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsXG4gICAgICAgICdyZ2IoMjQsMTEwLDc5KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigxODIsIDIyMywgMTM4KScsICdyZ2IoMTUyLCAxOTMsIDEzOCknXSxcbiAgICAnYWxsX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDEyMiwgMTAyLCAxODkpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDE0MSwgMTI0LCAyMTcpJyxcbiAgICAgICAgJ3JnYigzMSwgMTIwLCAxNTApJ10sXG4gICAgJ21hZ2VudGEnOiBbJ3JnYigxNjIsMTA2LDE5MiknLCAncmdiKDE5NywxNjUsMjI0KScsICdyZ2IoMjA4LDExMywyMTgpJ10sXG4gICAgJ3JlZCc6IFsncmdiKDIxNCwzOSw0MCknLCAncmdiKDI1NSwxNTIsMTUwKSddLFxuICAgICdzdF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMzEsMTE5LDE4MCknXSxcbiAgICAnZGFya19ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbGlnaHRfYmx1ZSc6IFsncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDEwOCwgMjE4LCAyMjkpJywgJ3JnYigyMywxOTAsMjI3KSddLFxuICAgICdsaWxhY19ibHVlJzogWydyZ2IoMTI0LDEwMiwyMTEpJywgJ3JnYigxNDksMTM0LDIxNyknLCAncmdiKDk3LCA4MSwgMTUwKSddLFxuICAgICdkYXJrX2dyZWVuJzogWydyZ2IoMjMsMTAzLDU3KScsICdyZ2IoMzAsMTEwLDk2KScsICdyZ2IoNjAsMTMxLDk1KScsICdyZ2IoMjQsMTEwLDc5KSddLFxuICAgICdncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAnbGlnaHRfZ3JlZW4nOiBbJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdzdF9ncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMzksIDE3NCwgOTYpJywgJ3JnYig3NCwxNjAsNzQpJ10sXG4gICAgJ3BpbmsnOiBbJ3JnYigyNDcsMTgyLDIxMCknXSxcbiAgICAnYnJvd24nOiBbJ3JnYigxNDAsODYsNzUpJywgJ3JnYigxMDIsIDYyLCA1NCknXSxcbiAgICAnZ3JheSc6IFsncmdiKDEyNywxMjcsMTI3KScsICdyZ2IoMTk5LDE5OSwxOTkpJywgJ3JnYigxOTYsMTU2LDE0OCknLCAncmdiKDIyMiwgMjIyLCAxODApJ10sXG4gICAgJ3llbGxvdyc6IFsncmdiKDE4OCwxODksMzQpJ10sXG4gICAgJ3doaXRlJzogWydyZ2IoMjMwLDIzMCwyMzApJ10sXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeExYQmhiR1YwZEdWekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJWeExYQmhiR1YwZEdWekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRV2xDUVN4TlFVRk5MRTlCUVU4c1kwRkJZenRKUVRKRGVrSXNXVUZCV1N4UFFVRm5RenRSUVVNeFF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJRenRKUVVNeFFpeERRVUZETzBsQmJFSlRMRTFCUVUwc1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQmQwSXNSVUZEYmtRc1ZVRkJWU3hIUVVGSExFdEJRVXNzUlVGQlJTeGpRVUZ4UXl4alFVRmpPMUZCUlhaRkxFMUJRVTBzVDBGQlR5eEhRVUU0UWl4RlFVRkZMRU5CUVVNN1VVRkRPVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRk8xbEJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tJc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRuUWtGRE0wSXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTB3c1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVsQlFVa3NWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRMnhETEVOQlFVTTdTVUZSVFN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVOc1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXpzN1FVRm9SR0VzTmtKQlFXTXNSMEZCUnl4clFrRkJhMElzUTBGQlF6dEJRVVZzUkN3MFEwRkJORU03UVVGRE9VSXNORUpCUVdFc1IwRkJaME03U1VGRGVrUXNVVUZCVVN4RlFVRkZMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVVzYVVKQlFXbENMRVZCUVVVc2JVSkJRVzFDTEVOQlFVTTdTVUZETVVZc1YwRkJWeXhGUVVGRkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTzFGQlEzQkhMR2RDUVVGblFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMRzlDUVVGdlFpeERRVUZETzBsQlEyNUdMRlZCUVZVc1JVRkJSU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRzlDUVVGdlFqdFJRVU12Unl4dFFrRkJiVUlzUTBGQlF6dEpRVU4wUWl4VFFVRlRMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVOMlJTeExRVUZMTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNM1F5eFRRVUZUTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXp0SlFVTnlSU3hYUVVGWExFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXp0SlFVTnlSQ3haUVVGWkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRKUVVNNVJpeFpRVUZaTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTXhSU3haUVVGWkxFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVOMFJpeFBRVUZQTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVNM1F5eGhRVUZoTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0SlFVTXZSU3hWUVVGVkxFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeG5Ra0ZCWjBJc1EwRkJRenRKUVVONFJpeE5RVUZOTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dEpRVU0xUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU12UXl4TlFVRk5MRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNRMEZCUXp0SlFVTXhSaXhSUVVGUkxFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRKUVVNM1FpeFBRVUZQTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUTBGQlF6dERRVU01UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUWlhGUVlXeGxkSFJsSUh0Y2JpQWdMeThnVkdobGNtVWdZWEpsSUhSdmJ5QnRkV05vSUhCeWIySnNaVzBnZDJsMGFDQnBibVJsZUdWeUlIQnliM0JsY25SNUlHbHVJSFI1Y0dWelkzSnBjSFF1WEc0Z0lDOHZJQzhxS2x4dUlDQXZMeUFnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYlNCTmIyNXZiV1Z5SUdOb1lYSmhZM1JsY2x4dUlDQXZMeUFnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUVOdmJHOXlYRzRnSUM4dklDQXFMMXh1SUNBdkx5QmJiVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5PMXh1SUNBdktpb2dUVzl1YjIxbGNpQmpiMnh2Y2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiU0JOYjI1dmJXVnlYRzRnSUNBcUwxeHVJQ0JuWlhRb2JUb2djM1J5YVc1bktUb2djM1J5YVc1bk8xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2FXMXdiR1Z0Wlc1MGN5QlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUIxYm1SbFptbHVaV1JEYjJ4dmNpQTlJQ2R5WjJJb01UQXdMREV3TUN3eE1EQXBKenRjYmx4dUlDQXZLaW9nVUdGc1pYUjBaU0IzYVhSb0lITm9ZV1JsY3lCdlppQndjbWx0WVhKNUlHTnZiRzl5Y3lBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHTnZiRzkxY2xCaGJHVjBkR1U2SUhzZ1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5XMTBnZlNBOUlIdGNiaUFnSUNBbmIzSmhibWRsSnpvZ1d5ZHlaMklvTWpVMUxERTROeXd4TWpBcEp5d2dKM0puWWlneU5EVXNNVFkzTERFd01Da25MQ0FuY21kaUtESXpOU3d4TXpjc056QXBKeXdnSjNKbllpZ3lNRFVzSURFeE1Td2dOekVwSjEwc1hHNGdJQ0FnSjJGc2JGOW5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RjMExERTJNQ3czTkNrbkxDQW5jbWRpS0RJekxERXdNeXcxTnlrbkxDQW5jbWRpS0RNd0xERXhNQ3c1TmlrbkxDQW5jbWRpS0RZd0xERXpNU3c1TlNrbkxGeHVJQ0FnSUNBZ0ozSm5ZaWd5TkN3eE1UQXNOemtwSnl3Z0ozSm5ZaWd4TlRJc01qSXpMREV6T0NrbkxDQW5jbWRpS0RFNE1pd2dNakl6TENBeE16Z3BKeXdnSjNKbllpZ3hOVElzSURFNU15d2dNVE00S1NkZExGeHVJQ0FnSUNkaGJHeGZZbXgxWlNjNklGc25jbWRpS0RNeExERXhPU3d4T0RBcEp5d2dKM0puWWlneU15d3hPVEFzTWpBM0tTY3NJQ2R5WjJJb01USXlMQ0F4TURJc0lERTRPU2tuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTVRReExDQXhNalFzSURJeE55a25MRnh1SUNBZ0lDQWdKM0puWWlnek1Td2dNVEl3TENBeE5UQXBKMTBzWEc0Z0lDQWdKMjFoWjJWdWRHRW5PaUJiSjNKbllpZ3hOaklzTVRBMkxERTVNaWtuTENBbmNtZGlLREU1Tnl3eE5qVXNNakkwS1Njc0lDZHlaMklvTWpBNExERXhNeXd5TVRncEoxMHNYRzRnSUNBZ0ozSmxaQ2M2SUZzbmNtZGlLREl4TkN3ek9TdzBNQ2tuTENBbmNtZGlLREkxTlN3eE5USXNNVFV3S1NkZExGeHVJQ0FnSUNkemRGOWliSFZsSnpvZ1d5ZHlaMklvTWpNc01Ua3dMREl3TnlrbkxDQW5jbWRpS0RFMU9Dd3lNVGdzTWpJNUtTY3NJQ2R5WjJJb016RXNNVEU1TERFNE1Da25YU3hjYmlBZ0lDQW5aR0Z5YTE5aWJIVmxKem9nV3lkeVoySW9NekVzTVRFNUxERTRNQ2tuTENBbmNtZGlLRE14TENBeE1qQXNJREUxTUNrblhTeGNiaUFnSUNBbmJHbG5hSFJmWW14MVpTYzZJRnNuY21kaUtESXpMREU1TUN3eU1EY3BKeXdnSjNKbllpZ3hOVGdzTWpFNExESXlPU2tuTENBbmNtZGlLREV3T0N3Z01qRTRMQ0F5TWprcEp5d2dKM0puWWlneU15d3hPVEFzTWpJM0tTZGRMRnh1SUNBZ0lDZHNhV3hoWTE5aWJIVmxKem9nV3lkeVoySW9NVEkwTERFd01pd3lNVEVwSnl3Z0ozSm5ZaWd4TkRrc01UTTBMREl4TnlrbkxDQW5jbWRpS0RrM0xDQTRNU3dnTVRVd0tTZGRMRnh1SUNBZ0lDZGtZWEpyWDJkeVpXVnVKem9nV3lkeVoySW9Nak1zTVRBekxEVTNLU2NzSUNkeVoySW9NekFzTVRFd0xEazJLU2NzSUNkeVoySW9OakFzTVRNeExEazFLU2NzSUNkeVoySW9NalFzTVRFd0xEYzVLU2RkTEZ4dUlDQWdJQ2RuY21WbGJpYzZJRnNuY21kaUtEUTBMREUyTUN3ME5Da25MQ0FuY21kaUtEYzBMREUyTUN3M05Da25YU3hjYmlBZ0lDQW5iR2xuYUhSZlozSmxaVzRuT2lCYkozSm5ZaWd4TlRJc01qSXpMREV6T0NrbkxDQW5jbWRpS0RFNE1pd2dNakl6TENBeE16Z3BKeXdnSjNKbllpZ3hOVElzSURFNU15d2dNVE00S1NkZExGeHVJQ0FnSUNkemRGOW5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RFMU1pd3lNak1zTVRNNEtTY3NJQ2R5WjJJb016a3NJREUzTkN3Z09UWXBKeXdnSjNKbllpZzNOQ3d4TmpBc056UXBKMTBzWEc0Z0lDQWdKM0JwYm1zbk9pQmJKM0puWWlneU5EY3NNVGd5TERJeE1Da25YU3hjYmlBZ0lDQW5Zbkp2ZDI0bk9pQmJKM0puWWlneE5EQXNPRFlzTnpVcEp5d2dKM0puWWlneE1ESXNJRFl5TENBMU5Da25YU3hjYmlBZ0lDQW5aM0poZVNjNklGc25jbWRpS0RFeU55d3hNamNzTVRJM0tTY3NJQ2R5WjJJb01UazVMREU1T1N3eE9Ua3BKeXdnSjNKbllpZ3hPVFlzTVRVMkxERTBPQ2tuTENBbmNtZGlLREl5TWl3Z01qSXlMQ0F4T0RBcEoxMHNYRzRnSUNBZ0ozbGxiR3h2ZHljNklGc25jbWRpS0RFNE9Dd3hPRGtzTXpRcEoxMHNYRzRnSUNBZ0ozZG9hWFJsSnpvZ1d5ZHlaMklvTWpNd0xESXpNQ3d5TXpBcEoxMHNYRzRnSUgwN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUhOMFlYUnBZeUJ0WVd0bFVHRnNaWFIwWlNoa2REb2dXM04wY21sdVoxdGRMQ0J6ZEhKcGJtZGRXMTBzWEc0Z0lDQWdjMmx0Y0d4cFptbGxaQ0E5SUdaaGJITmxMQ0JRWVd4bGRIUmxWSGx3WlRvZ2RIbHdaVzltSUZObGNWQmhiR1YwZEdWQ1lYTmxJRDBnVTJWeFVHRnNaWFIwWlVKaGMyVmNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdjR0ZzWlhSMFpUb2dleUJiYTJWNU9pQnpkSEpwYm1kZE9pQnpkSEpwYm1jZ2ZTQTlJSHQ5TzF4dUlDQWdJR1IwTG1admNrVmhZMmdvS0dOd0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnZZbXBNYVhOMElEMGdZM0JiTUYwN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJ4dmRYSWdQU0JqY0ZzeFhUdGNiaUFnSUNBZ0lHOWlha3hwYzNRdVptOXlSV0ZqYUNnb2IySnFMQ0JwYm1RcElEMCtJSHRjYmlBZ0lDQWdJQ0FnY0dGc1pYUjBaVnR2WW1wZElEMGdkR2hwY3k1amIyeHZkWEpRWVd4bGRIUmxXMk52Ykc5MWNsMWJjMmx0Y0d4cFptbGxaQ0EvSURBZ09pQnBibVJkTzF4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUVlXeGxkSFJsVkhsd1pTaHdZV3hsZEhSbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2dYM0JoYkdWMGRHVTZJSHNnVzIwNklITjBjbWx1WjEwNklITjBjbWx1WnlCOU8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtIQmhiR1YwZEdVNklIc2dXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5S1NCN1hHNGdJQ0FnZEdocGN5NWZjR0ZzWlhSMFpTQTlJSEJoYkdWMGRHVTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQmhiR1YwZEdWYmJWMDdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IGFzc2VydCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmNsYXNzIFNpZGVDaGFpblNjYWxlcyB7XG4gICAgc3RhdGljIGdldEF2YWlsYWJsZVNjYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuc2NhbGVzKS5tYXAoKFtrLCBfXSkgPT4gayk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXRTY2FsZShuYW1lKSB7XG4gICAgICAgIGFzc2VydCghKHRoaXMuc2NhbGVzW25hbWVdID09PSB1bmRlZmluZWQpLCBgU2NhbGUgJyR7bmFtZX0nIHdhcyBub3QgZm91bmQuYCk7XG4gICAgICAgIHJldHVybiB0aGlzLnNjYWxlc1tuYW1lXTtcbiAgICB9XG59XG5TaWRlQ2hhaW5TY2FsZXMuc2NhbGVzID0ge1xuICAgIC8vIFdpbWxleS1XaGl0ZSBpbnRlcmZhY2lhbCBoeWRyb3Bob2JpY2l0eSBzY2FsZVxuICAgICdXaW1sZXlXaGl0ZSc6IHtcbiAgICAgICAgJy0nOiAwLFxuICAgICAgICAnQSc6IDAuMTcsXG4gICAgICAgICdDJzogLTAuMjQsXG4gICAgICAgICdEJzogLTAuMDcsXG4gICAgICAgICdFJzogLTAuMDEsXG4gICAgICAgICdGJzogLTEuMTMsXG4gICAgICAgICdHJzogMC4wMSxcbiAgICAgICAgJ0gnOiAwLjE3LFxuICAgICAgICAnSSc6IC0wLjMxLFxuICAgICAgICAnSyc6IDAuOTksXG4gICAgICAgICdMJzogLTAuNTYsXG4gICAgICAgICdNJzogLTAuMjMsXG4gICAgICAgICdOJzogMC40MixcbiAgICAgICAgJ1AnOiAwLjQ1LFxuICAgICAgICAnUSc6IDAuNTgsXG4gICAgICAgICdSJzogMC44MSxcbiAgICAgICAgJ1MnOiAwLjEzLFxuICAgICAgICAnVCc6IDAuMTQsXG4gICAgICAgICdWJzogMC4wNyxcbiAgICAgICAgJ1cnOiAtMS44NSxcbiAgICAgICAgJ1knOiAtMC45NCxcbiAgICB9LFxuICAgICdjYXRlZ29yaWFsJzoge1xuICAgICAgICAnLSc6IDAsXG4gICAgICAgICdBJzogMSxcbiAgICAgICAgJ0MnOiAyLFxuICAgICAgICAnRCc6IDMsXG4gICAgICAgICdFJzogNCxcbiAgICAgICAgJ0YnOiA1LFxuICAgICAgICAnRyc6IDYsXG4gICAgICAgICdIJzogNyxcbiAgICAgICAgJ0knOiA4LFxuICAgICAgICAnSyc6IDksXG4gICAgICAgICdMJzogMTAsXG4gICAgICAgICdNJzogMTEsXG4gICAgICAgICdOJzogMTIsXG4gICAgICAgICdQJzogMTMsXG4gICAgICAgICdRJzogMTQsXG4gICAgICAgICdSJzogMTUsXG4gICAgICAgICdTJzogMTYsXG4gICAgICAgICdUJzogMTcsXG4gICAgICAgICdWJzogMTgsXG4gICAgICAgICdXJzogMTksXG4gICAgICAgICdZJzogMjAsXG4gICAgfSxcbn07XG4vKipcbiAqIENsYXNzIHRvIGNhdGVnb3JpYWwgZW5jb2RlL2RlY29kZSBhbGlnbmVkIGFtaW5vIGFjaWQgcmVzaWR1ZXMgc2VxdWVuY2UuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAqL1xuZXhwb3J0IGNsYXNzIEFsaWduZWRTZXF1ZW5jZUVuY29kZXIge1xuICAgIGNvbnN0cnVjdG9yKHNjYWxlID0gJ2NhdGVnb3JpYWwnKSB7XG4gICAgICAgIHRoaXMuYWEybnVtID0gU2lkZUNoYWluU2NhbGVzLmdldFNjYWxlKHNjYWxlKTtcbiAgICAgICAgdGhpcy5udW0yYWEgPSB7fTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5hYTJudW0pLmZvckVhY2goKFtrLCB2XSkgPT4gKHRoaXMubnVtMmFhW3ZdID0gaykpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIFRydW5jYXRlIE5IMiBhbmQgLUNPT0ggdGVybWluYWxzIG9mIHRoZSBnaXZlbiBzZXF1ZW5jZS5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFRoZSBzZXF1ZW5jZSBwcm92aWRlZC5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gVHJ1bmNhdGVkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIHN0YXRpYyBfdHJ1bmNhdGVTZXF1ZW5jZShzZXEpIHtcbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgbGV0IGVuZCA9IHNlcS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRlcm1pbmEgPSBbJ05IMicsICdDT09IJ107XG4gICAgICAgIGlmIChzZXEuc3RhcnRzV2l0aCh0ZXJtaW5hWzBdKSkge1xuICAgICAgICAgICAgY29uc3QgbCA9IHRlcm1pbmFbMF0ubGVuZ3RoOyAvLyBDdXQgb25seSAnTkgyJyB3aXRob3V0IGZvbGxvd2luZyAnLScuXG4gICAgICAgICAgICBhc3NlcnQoc2VxW2xdID09ICctJywgYFdyb25nIHNlcXVlbmNlIGZvcm1hdDogJHt0ZXJtaW5hWzBdfSB3aXRob3V0IGZvbGxvd2luZyAnLScgaW4gJyR7c2VxfScuYCk7XG4gICAgICAgICAgICBzdGFydCA9IGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcS5lbmRzV2l0aCh0ZXJtaW5hWzFdKSkge1xuICAgICAgICAgICAgY29uc3QgbCA9IHRlcm1pbmFbMV0ubGVuZ3RoICsgMTsgLy8gQ3V0IGJvdGggJ0NPT0gnIGFuZCBwcmVjZW5kaW5nICctJy5cbiAgICAgICAgICAgIGFzc2VydChzZXFbZW5kIC0gbF0gPT0gJy0nLCBgV3Jvbmcgc2VxdWVuY2UgZm9ybWF0OiAke3Rlcm1pbmFbMV19IHdpdGhvdXQgJy0nIHByZWNlbmRpbmcgaW4gJyR7c2VxfScuYCk7XG4gICAgICAgICAgICBlbmQgLT0gbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VxLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBDdXRzIGF1eGlsaWFyeSBkZWZpc2VzIGJlZm9yZSBhIHJlc2lkdWUuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBUaGUgc2VxdWVuY2UgdG8gcHJvY2Vzcy5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gUHJvY2Vzc2VkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIHN0YXRpYyBfZHJvcERlZmlzZXMoc2VxKSB7XG4gICAgICAgIHJldHVybiBzZXEucmVwbGFjZSgvKC0pKFteLV0rKS9nLCAnJDInKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBQZXJmb3JtcyB0cnVuY2F0aW9uIGFuZCBjdXR0aW5nIGF1eGlsaWFyeSBkZWZpc2VzLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXF1ZW5jZSBUaGUgc2VxdWVuY2Ugd29yayB1bmRlciBwcm9jZXNzLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBSZXN1bHQgb2YgY2xlYW5pbmcuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIGNsZWFuKHNlcXVlbmNlKSB7XG4gICAgICAgIHJldHVybiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyLl9kcm9wRGVmaXNlcyhBbGlnbmVkU2VxdWVuY2VFbmNvZGVyLl90cnVuY2F0ZVNlcXVlbmNlKHNlcXVlbmNlKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogQ2F0ZWdvcmlhbCBlbmNvZGUgb2YgdGhlIHNlcXVlbmNlIHByb3ZpZGVkLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXF1ZW5jZSBUaGUgc2VxdWVuY2UuXG4gICAgICAgKiBAcmV0dXJuIHtudW1iZXJbXX0gRW5jb2RlZCB2ZWN0b3IuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgZW5jb2RlKHNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IG5JdGVtcyA9IHNlcXVlbmNlLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gbmV3IEFycmF5KG5JdGVtcykuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IHNlcXVlbmNlW2ldO1xuICAgICAgICAgICAgYXNzZXJ0KGNoYXIgaW4gdGhpcy5hYTJudW0sIGBVbmtub3duIGNoYXIgJyR7Y2hhcn0nIGZvdW5kIGluIHNlcXVlbmNlICcke3NlcXVlbmNlfSdgKTtcbiAgICAgICAgICAgIHZhbHVlc1tpXSA9IHRoaXMuZW5jb2RlTGV0dHRlcihjaGFyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH1cbiAgICBlbmNvZGVMZXR0dGVyKGxldHRlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hYTJudW1bbGV0dGVyXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBEZWNvZGUgdGhlIGVuY29kZWQgdmVjdG9yIGludG8gdGhlIHNlcXVlbmNlIGJhY2suXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtudW1iZXJbXX0gdmFsdWUgVGhlIHZlY3RvciBlbmNvZGVkLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBEZWNvZGVkIHNlcXVlbmNlLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIGRlY29kZSh2YWx1ZSkge1xuICAgICAgICBsZXQgcyA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBjb2RlID0gdmFsdWVbaV07XG4gICAgICAgICAgICBhc3NlcnQoY29kZSBpbiB0aGlzLm51bTJhYSwgYFVua25vd24gY29kZSAnJHtjb2RlfScgZm91bmQgaW4gdmVjdG9yICcke3ZhbHVlfSdgKTtcbiAgICAgICAgICAgIHMgKz0gdGhpcy5udW0yYWFbY29kZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHM7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeGRXVnVZMlV0Wlc1amIyUmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluTmxjWFZsYm1ObExXVnVZMjlrWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlMzWkZMRTFCUVUwc1pVRkJaVHRKUVcxRWJrSXNUVUZCVFN4RFFVRkRMR3RDUVVGclFqdFJRVU4yUWl4UFFVRlBMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPMGxCUlVRc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZaTzFGQlF6RkNMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhUUVVGVExFTkJRVU1zUlVGQlJTeFZRVUZWTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVU0zUlN4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBJc1EwRkJRenM3UVVGNlJFMHNjMEpCUVUwc1IwRkJOa0k3U1VGRGVFTXNaMFJCUVdkRU8wbEJRMmhFTEdGQlFXRXNSVUZCUlR0UlFVTmlMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1R0UlFVTldMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3VVVGRFZpeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hKUVVGSk8xRkJRMVFzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEpRVUZKTzFGQlExUXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRMUVVOWU8wbEJRMFFzV1VGQldTeEZRVUZGTzFGQlExb3NSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMHRCUTFJN1EwRkRSaXhEUVVGRE8wRkJXVW83T3pzN08wZEJTMGM3UVVGRFNDeE5RVUZOTEU5QlFVOHNjMEpCUVhOQ08wbEJTV3BETEZsQlFWa3NVVUZCWjBJc1dVRkJXVHRSUVVOMFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZET1VNc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEYWtJc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaEZMRU5CUVVNN1NVRkZSRHM3T3pzN096dFRRVTlMTzBsQlEwd3NUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVkQlFWYzdVVUZEYkVNc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyUXNTVUZCU1N4SFFVRkhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU55UWl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVm9ReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRE9VSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMSGREUVVGM1F6dFpRVU55UlN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlN3d1FrRkJNRUlzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl3NFFrRkJPRUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTnFSeXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFOQlExZzdVVUZEUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1dVRkROVUlzVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4elEwRkJjME03V1VGRGNrVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4RlFVRkZMREJDUVVFd1FpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMQ3RDUVVFclFpeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTNSSExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEVmp0UlFVTkVMRTlCUVU4c1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRia01zUTBGQlF6dEpRVVZFT3pzN096czdPMU5CVDBzN1NVRkRUQ3hOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFWYzdVVUZETjBJc1QwRkJUeXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFF5eERRVUZETzBsQlJVUTdPenM3T3pzN1UwRlBTenRKUVVOTUxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCWjBJN1VVRkRNMElzVDBGQlR5eHpRa0ZCYzBJc1EwRkJReXhaUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJ5eERRVUZETzBsQlJVUTdPenM3T3p0VFFVMUxPMGxCUTBVc1RVRkJUU3hEUVVGRExGRkJRV2RDTzFGQlF6VkNMRTFCUVUwc1RVRkJUU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETDBJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJYcERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGREwwSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlJYcENMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4cFFrRkJhVUlzU1VGQlNTeDNRa0ZCZDBJc1VVRkJVU3hIUVVGSExFTkJRVU1zUTBGQlF6dFpRVVYwUml4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRUUVVOMFF6dFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlRTeGhRVUZoTEVOQlFVTXNUVUZCWXp0UlFVTnFReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkROMElzUTBGQlF6dEpRVVZFT3pzN096czdVMEZOU3p0SlFVTkZMRTFCUVUwc1EwRkJReXhMUVVGbE8xRkJRek5DTEVsQlFVa3NRMEZCUXl4SFFVRlhMRVZCUVVVc1EwRkJRenRSUVVWdVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOeVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRmRFSXNUVUZCVFN4RFFVRkRMRWxCUVVrc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEdsQ1FVRnBRaXhKUVVGSkxITkNRVUZ6UWl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSV3BHTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEzaENPMUZCUTBRc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRFdDeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMkZ6YzJWeWRIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTW5PMXh1WEc1MGVYQmxJRk5wWkdWRGFHRnBibE5qWVd4bElEMGdlMXR1WVcxbE9pQnpkSEpwYm1kZE9pQnVkVzFpWlhKOU8xeHVkSGx3WlNCVGFXUmxRMmhoYVc1VFkyRnNaVU52Ykd4bFkzUnBiMjRnUFNCN1cyNWhiV1U2SUhOMGNtbHVaMTA2SUZOcFpHVkRhR0ZwYmxOallXeGxmVHRjYmx4dVkyeGhjM01nVTJsa1pVTm9ZV2x1VTJOaGJHVnpJSHRjYmlBZ2MzUmhkR2xqSUhOallXeGxjem9nVTJsa1pVTm9ZV2x1VTJOaGJHVkRiMnhzWldOMGFXOXVJRDBnZTF4dUlDQWdJQzh2SUZkcGJXeGxlUzFYYUdsMFpTQnBiblJsY21aaFkybGhiQ0JvZVdSeWIzQm9iMkpwWTJsMGVTQnpZMkZzWlZ4dUlDQWdJQ2RYYVcxc1pYbFhhR2wwWlNjNklIdGNiaUFnSUNBZ0lDY3RKem9nTUN4Y2JpQWdJQ0FnSUNkQkp6b2dNQzR4Tnl4Y2JpQWdJQ0FnSUNkREp6b2dMVEF1TWpRc1hHNGdJQ0FnSUNBblJDYzZJQzB3TGpBM0xDQXZMeUJCYzNBdE9pQXhMakl6WEc0Z0lDQWdJQ0FuUlNjNklDMHdMakF4TENBdkx5QkhiSFV0T2lBeUxqQXlYRzRnSUNBZ0lDQW5SaWM2SUMweExqRXpMQ0F2TDF4dUlDQWdJQ0FnSjBjbk9pQXdMakF4TEZ4dUlDQWdJQ0FnSjBnbk9pQXdMakUzTENBdkx5QklhWE1yT2lBd0xqazJYRzRnSUNBZ0lDQW5TU2M2SUMwd0xqTXhMRnh1SUNBZ0lDQWdKMHNuT2lBd0xqazVMQ0F2THlCTWVYTXJYRzRnSUNBZ0lDQW5UQ2M2SUMwd0xqVTJMRnh1SUNBZ0lDQWdKMDBuT2lBdE1DNHlNeXhjYmlBZ0lDQWdJQ2RPSnpvZ01DNDBNaXhjYmlBZ0lDQWdJQ2RRSnpvZ01DNDBOU3hjYmlBZ0lDQWdJQ2RSSnpvZ01DNDFPQ3hjYmlBZ0lDQWdJQ2RTSnpvZ01DNDRNU3dnTHk4Z1FYSm5LMXh1SUNBZ0lDQWdKMU1uT2lBd0xqRXpMRnh1SUNBZ0lDQWdKMVFuT2lBd0xqRTBMRnh1SUNBZ0lDQWdKMVluT2lBd0xqQTNMRnh1SUNBZ0lDQWdKMWNuT2lBdE1TNDROU3hjYmlBZ0lDQWdJQ2RaSnpvZ0xUQXVPVFFzWEc0Z0lDQWdmU3hjYmlBZ0lDQW5ZMkYwWldkdmNtbGhiQ2M2SUh0Y2JpQWdJQ0FnSUNjdEp6b2dNQ3hjYmlBZ0lDQWdJQ2RCSnpvZ01TeGNiaUFnSUNBZ0lDZERKem9nTWl4Y2JpQWdJQ0FnSUNkRUp6b2dNeXhjYmlBZ0lDQWdJQ2RGSnpvZ05DeGNiaUFnSUNBZ0lDZEdKem9nTlN4Y2JpQWdJQ0FnSUNkSEp6b2dOaXhjYmlBZ0lDQWdJQ2RJSnpvZ055eGNiaUFnSUNBZ0lDZEpKem9nT0N4Y2JpQWdJQ0FnSUNkTEp6b2dPU3hjYmlBZ0lDQWdJQ2RNSnpvZ01UQXNYRzRnSUNBZ0lDQW5UU2M2SURFeExGeHVJQ0FnSUNBZ0owNG5PaUF4TWl4Y2JpQWdJQ0FnSUNkUUp6b2dNVE1zWEc0Z0lDQWdJQ0FuVVNjNklERTBMRnh1SUNBZ0lDQWdKMUluT2lBeE5TeGNiaUFnSUNBZ0lDZFRKem9nTVRZc1hHNGdJQ0FnSUNBblZDYzZJREUzTEZ4dUlDQWdJQ0FnSjFZbk9pQXhPQ3hjYmlBZ0lDQWdJQ2RYSnpvZ01Ua3NYRzRnSUNBZ0lDQW5XU2M2SURJd0xGeHVJQ0FnSUgwc1hHNGdJSDA3WEc1Y2JpQWdjM1JoZEdsaklHZGxkRUYyWVdsc1lXSnNaVk5qWVd4bGN5Z3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1bGJuUnlhV1Z6S0hSb2FYTXVjMk5oYkdWektTNXRZWEFvS0Z0ckxDQmZYU2tnUFQ0Z2F5azdYRzRnSUgxY2JseHVJQ0J6ZEdGMGFXTWdaMlYwVTJOaGJHVW9ibUZ0WlRvZ2MzUnlhVzVuS1RvZ1UybGtaVU5vWVdsdVUyTmhiR1VnZTF4dUlDQWdJR0Z6YzJWeWRDZ2hLSFJvYVhNdWMyTmhiR1Z6VzI1aGJXVmRJRDA5UFNCMWJtUmxabWx1WldRcExDQmdVMk5oYkdVZ0p5UjdibUZ0WlgwbklIZGhjeUJ1YjNRZ1ptOTFibVF1WUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWMyTmhiR1Z6VzI1aGJXVmRPMXh1SUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nUTJ4aGMzTWdkRzhnWTJGMFpXZHZjbWxoYkNCbGJtTnZaR1V2WkdWamIyUmxJR0ZzYVdkdVpXUWdZVzFwYm04Z1lXTnBaQ0J5WlhOcFpIVmxjeUJ6WlhGMVpXNWpaUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNseHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2lCN1hHNGdJSEJ5YjNSbFkzUmxaQ0JoWVRKdWRXMDZJRk5wWkdWRGFHRnBibE5qWVd4bE8xeHVJQ0J3Y205MFpXTjBaV1FnYm5WdE1tRmhPaUI3VzJOdlpHVTZJRzUxYldKbGNsMDZJSE4wY21sdVozMDdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9jMk5oYkdVNklITjBjbWx1WnlBOUlDZGpZWFJsWjI5eWFXRnNKeWtnZTF4dUlDQWdJSFJvYVhNdVlXRXliblZ0SUQwZ1UybGtaVU5vWVdsdVUyTmhiR1Z6TG1kbGRGTmpZV3hsS0hOallXeGxLVHRjYmlBZ0lDQjBhR2x6TG01MWJUSmhZU0E5SUh0OU8xeHVJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdVlXRXliblZ0S1M1bWIzSkZZV05vS0NoYmF5d2dkbDBwSUQwK0lDaDBhR2x6TG01MWJUSmhZVnQyWFNBOUlHc3BLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnSUNBcUlGUnlkVzVqWVhSbElFNUlNaUJoYm1RZ0xVTlBUMGdnZEdWeWJXbHVZV3h6SUc5bUlIUm9aU0JuYVhabGJpQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tseHVJQ0FnSUNBcUlFQnpkR0YwYVdOY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYzJWeElGUm9aU0J6WlhGMVpXNWpaU0J3Y205MmFXUmxaQzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRlJ5ZFc1allYUmxaQ0J6WlhGMVpXNWpaUzVjYmlBZ0lDQWdLaUJBYldWdFltVnliMllnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNseHVJQ0FnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdYM1J5ZFc1allYUmxVMlZ4ZFdWdVkyVW9jMlZ4T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR3hsZENCemRHRnlkQ0E5SURBN1hHNGdJQ0FnYkdWMElHVnVaQ0E5SUhObGNTNXNaVzVuZEdnN1hHNGdJQ0FnWTI5dWMzUWdkR1Z5YldsdVlTQTlJRnNuVGtneUp5d2dKME5QVDBnblhUdGNibHh1SUNBZ0lHbG1JQ2h6WlhFdWMzUmhjblJ6VjJsMGFDaDBaWEp0YVc1aFd6QmRLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiQ0E5SUhSbGNtMXBibUZiTUYwdWJHVnVaM1JvT3lBdkx5QkRkWFFnYjI1c2VTQW5Ua2d5SnlCM2FYUm9iM1YwSUdadmJHeHZkMmx1WnlBbkxTY3VYRzRnSUNBZ0lDQmhjM05sY25Rb2MyVnhXMnhkSUQwOUlDY3RKeXdnWUZkeWIyNW5JSE5sY1hWbGJtTmxJR1p2Y20xaGREb2dKSHQwWlhKdGFXNWhXekJkZlNCM2FYUm9iM1YwSUdadmJHeHZkMmx1WnlBbkxTY2dhVzRnSnlSN2MyVnhmU2N1WUNrN1hHNGdJQ0FnSUNCemRHRnlkQ0E5SUd3N1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoelpYRXVaVzVrYzFkcGRHZ29kR1Z5YldsdVlWc3hYU2twSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3dnUFNCMFpYSnRhVzVoV3pGZExteGxibWQwYUNzeE95QXZMeUJEZFhRZ1ltOTBhQ0FuUTA5UFNDY2dZVzVrSUhCeVpXTmxibVJwYm1jZ0p5MG5MbHh1SUNBZ0lDQWdZWE56WlhKMEtITmxjVnRsYm1RdGJGMGdQVDBnSnkwbkxDQmdWM0p2Ym1jZ2MyVnhkV1Z1WTJVZ1ptOXliV0YwT2lBa2UzUmxjbTFwYm1GYk1WMTlJSGRwZEdodmRYUWdKeTBuSUhCeVpXTmxibVJwYm1jZ2FXNGdKeVI3YzJWeGZTY3VZQ2s3WEc0Z0lDQWdJQ0JsYm1RZ0xUMGdiRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhObGNTNXpkV0p6ZEhKcGJtY29jM1JoY25Rc0lHVnVaQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQkRkWFJ6SUdGMWVHbHNhV0Z5ZVNCa1pXWnBjMlZ6SUdKbFptOXlaU0JoSUhKbGMybGtkV1V1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBYzNSaGRHbGpYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjU0JVYUdVZ2MyVnhkV1Z1WTJVZ2RHOGdjSEp2WTJWemN5NWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlGQnliMk5sYzNObFpDQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFiV1Z0WW1WeWIyWWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDQWdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1gyUnliM0JFWldacGMyVnpLSE5sY1RvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdjMlZ4TG5KbGNHeGhZMlVvTHlndEtTaGJYaTFkS3lrdlp5d2dKeVF5SnlrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJRWlhKbWIzSnRjeUIwY25WdVkyRjBhVzl1SUdGdVpDQmpkWFIwYVc1bklHRjFlR2xzYVdGeWVTQmtaV1pwYzJWekxseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FITjBZWFJwWTF4dUlDQWdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6WlhGMVpXNWpaU0JVYUdVZ2MyVnhkV1Z1WTJVZ2QyOXlheUIxYm1SbGNpQndjbTlqWlhOekxseHVJQ0FnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ1VtVnpkV3gwSUc5bUlHTnNaV0Z1YVc1bkxseHVJQ0FnSUNBcUlFQnRaVzFpWlhKdlppQkJiR2xuYm1Wa1UyVnhkV1Z1WTJWRmJtTnZaR1Z5WEc0Z0lDQWdJQ292WEc0Z0lITjBZWFJwWXlCamJHVmhiaWh6WlhGMVpXNWpaVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaTVmWkhKdmNFUmxabWx6WlhNb1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaTVmZEhKMWJtTmhkR1ZUWlhGMVpXNWpaU2h6WlhGMVpXNWpaU2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBZ0lDb2dRMkYwWldkdmNtbGhiQ0JsYm1OdlpHVWdiMllnZEdobElITmxjWFZsYm1ObElIQnliM1pwWkdWa0xseHVJQ0FnSUNBcVhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNYVmxibU5sSUZSb1pTQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdSVzVqYjJSbFpDQjJaV04wYjNJdVhHNGdJQ0FnSUNvZ1FHMWxiV0psY205bUlFRnNhV2R1WldSVFpYRjFaVzVqWlVWdVkyOWtaWEpjYmlBZ0lDQWdLaTljYmlBZ2NIVmliR2xqSUdWdVkyOWtaU2h6WlhGMVpXNWpaVG9nYzNSeWFXNW5LVG9nYm5WdFltVnlXMTBnZTF4dUlDQWdJR052Ym5OMElHNUpkR1Z0Y3lBOUlITmxjWFZsYm1ObExteGxibWQwYUR0Y2JpQWdJQ0JqYjI1emRDQjJZV3gxWlhNZ1BTQnVaWGNnUVhKeVlYa29ia2wwWlcxektTNW1hV3hzS0RBcE8xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMmhoY2lBOUlITmxjWFZsYm1ObFcybGRPMXh1WEc0Z0lDQWdJQ0JoYzNObGNuUW9ZMmhoY2lCcGJpQjBhR2x6TG1GaE1tNTFiU3dnWUZWdWEyNXZkMjRnWTJoaGNpQW5KSHRqYUdGeWZTY2dabTkxYm1RZ2FXNGdjMlZ4ZFdWdVkyVWdKeVI3YzJWeGRXVnVZMlY5SjJBcE8xeHVYRzRnSUNBZ0lDQjJZV3gxWlhOYmFWMGdQU0IwYUdsekxtVnVZMjlrWlV4bGRIUjBaWElvWTJoaGNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpYTTdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaVzVqYjJSbFRHVjBkSFJsY2loc1pYUjBaWEk2SUhOMGNtbHVaeWs2SUc1MWJXSmxjaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WVdFeWJuVnRXMnhsZEhSbGNsMDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCRVpXTnZaR1VnZEdobElHVnVZMjlrWldRZ2RtVmpkRzl5SUdsdWRHOGdkR2hsSUhObGNYVmxibU5sSUdKaFkyc3VYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY2x0ZGZTQjJZV3gxWlNCVWFHVWdkbVZqZEc5eUlHVnVZMjlrWldRdVhHNGdJQ0FnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuZlNCRVpXTnZaR1ZrSUhObGNYVmxibU5sTGx4dUlDQWdJQ0FxSUVCdFpXMWlaWEp2WmlCQmJHbG5ibVZrVTJWeGRXVnVZMlZGYm1OdlpHVnlYRzRnSUNBZ0lDb3ZYRzRnSUhCMVlteHBZeUJrWldOdlpHVW9kbUZzZFdVNklHNTFiV0psY2x0ZEtUb2djM1J5YVc1bklIdGNiaUFnSUNCc1pYUWdjem9nYzNSeWFXNW5JRDBnSnljN1hHNWNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWmhiSFZsTG14bGJtZDBhRHNnS3l0cEtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyUmxJRDBnZG1Gc2RXVmJhVjA3WEc1Y2JpQWdJQ0FnSUdGemMyVnlkQ2hqYjJSbElHbHVJSFJvYVhNdWJuVnRNbUZoTENCZ1ZXNXJibTkzYmlCamIyUmxJQ2NrZTJOdlpHVjlKeUJtYjNWdVpDQnBiaUIyWldOMGIzSWdKeVI3ZG1Gc2RXVjlKMkFwTzF4dVhHNGdJQ0FnSUNCeklDczlJSFJvYVhNdWJuVnRNbUZoVzJOdlpHVmRPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY3p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuLyoqIG1ha2VzIHRoZSBjb2xvciBsZXNzIHdoaXRlLCBtYWtlcyB0aGUgdHJhbnNwYXJlbmN5IGVmZmVjdCBhbHdheXMgcGVyY2VwdGlibGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb2xvciB4IGNvb3JkaW5hdGUuXG4gKiAqL1xuZnVuY3Rpb24gY29ycmVjdENvbG9yKGNvbG9yKSB7XG4gICAgaWYgKGNvbG9yID09IG51bGwpXG4gICAgICAgIHJldHVybiAncmdiKDEwMCwxMDAsMTAwKSc7XG4gICAgY29uc3QgZGdDb2xvciA9IERHLkNvbG9yLmZyb21IdG1sKGNvbG9yKTtcbiAgICBjb25zdCBnID0gREcuQ29sb3IuZyhkZ0NvbG9yKTtcbiAgICBjb25zdCByID0gREcuQ29sb3IucihkZ0NvbG9yKTtcbiAgICBjb25zdCBiID0gREcuQ29sb3IuYihkZ0NvbG9yKTtcbiAgICAvLyBjYWxjdWxhdGUgZXVjbGlkZWFuIGRpc3RhbmNlIHRvIHdoaXRlXG4gICAgY29uc3QgZGlzdFRvQmxhY2sgPSBNYXRoLnNxcnQoTWF0aC5wb3coMCAtIHIsIDIpICsgTWF0aC5wb3coMCAtIGcsIDIpICsgTWF0aC5wb3coMCAtIGIsIDIpKTtcbiAgICAvLyBub3JtYWxpemUgdmVjdG9yIHIgZyBiXG4gICAgY29uc3Qgbm9ybVIgPSByIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUcgPSBnIC8gZGlzdFRvQmxhY2s7XG4gICAgY29uc3Qgbm9ybUIgPSBiIC8gZGlzdFRvQmxhY2s7XG4gICAgaWYgKGRpc3RUb0JsYWNrID4gMjEwKSB7XG4gICAgICAgIHJldHVybiBgcmdiKCR7bm9ybVIgKiAyMTB9LCR7bm9ybUcgKiAyMTB9LCR7bm9ybUIgKiAyMTB9KWA7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2xvci50b1JnYihkZ0NvbG9yKTtcbn1cbmV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gY29ycmVjdENvbG9yKFVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZVtwSV0pO1xuICAgIH1cbn1cblVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZSA9IFVua25vd25Db2xvclBhbGV0dGUuYnVpbGRQYWxldHRlKCk7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgR3JheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JheSA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5ncmF5ID0gbmV3IEdyYXlBbGxQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyYXk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQ29sb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbG9yID09PSB2b2lkIDApXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gbmV3IFVua25vd25Db2xvclBhbGV0dGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3I7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cmJtOTNiaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhMjV2ZDI0dWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXpzN1MwRkZTenRCUVVOTUxGTkJRVk1zV1VGQldTeERRVUZETEV0QlFXOUNPMGxCUTNoRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVsQlFVazdVVUZEWml4UFFVRlBMR3RDUVVGclFpeERRVUZETzBsQlJUVkNMRTFCUVUwc1QwRkJUeXhIUVVGWExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRMnBFTEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bENMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRemxDTEhkRFFVRjNRenRKUVVONFF5eE5RVUZOTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkROVVlzZVVKQlFYbENPMGxCUTNwQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4SFFVRkhMRmRCUVZjc1EwRkJRenRKUVVNNVFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRWRCUVVjc1YwRkJWeXhEUVVGRE8wbEJRemxDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWRCUVVjc1JVRkJSVHRSUVVOeVFpeFBRVUZQTEU5QlFVOHNTMEZCU3l4SFFVRkhMRWRCUVVjc1NVRkJTU3hMUVVGTExFZEJRVWNzUjBGQlJ5eEpRVUZKTEV0QlFVc3NSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJRenRMUVVNMVJEdEpRVU5FTEU5QlFVOHNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdRVUZEYWtNc1EwRkJRenRCUVVWRUxFMUJRVTBzVDBGQlR5eFhRVUZYTzBsQlEyWXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGVE8xRkJRemxDTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJRenRaUVVOb1FpeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVmNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzcERMRTFCUVUwc1IwRkJSeXhIUVVGWExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRjRU1zU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMWxCUTJ4RExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl3eVFrRkJNa0k3VTBGRGRrTTdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03UTBGRFJqdEJRVVZFTEU5QlFVOHNSVUZCWVN4alFVRmpMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVXhSQ3hOUVVGTkxFOUJRV2RDTEdsQ1FVRnBRanREUVVWMFF6dEJRVVZFTEUxQlFVMHNUMEZCVHl4alFVRmxMRk5CUVZFc2FVSkJRV2xDTzBsQlF6VkRMRWRCUVVjc1EwRkJReXhEUVVGVE8xRkJRMnhDTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03UTBGRFJqdEJRVWRFTEUxQlFVMHNUMEZCVHl4dFFrRkJiMElzVTBGQlVTeHBRa0ZCYVVJN1NVRkhhRVFzVFVGQlRTeERRVUZETEZsQlFWazdVVUZEZWtJc1RVRkJUU3hIUVVGSExFZEJRVWtzUlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zWTBGQll5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRVlzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPMGxCUlUwc1IwRkJSeXhEUVVGRExFTkJRVk03VVVGRGJFSXNUVUZCVFN4SlFVRkpMRWRCUVZjc1YwRkJWeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hQUVVGUExGbEJRVmtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSQ3hEUVVGRE96dEJRVmhoTERKQ1FVRlBMRWRCUVdFc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1FVRmpka1VzVFVGQlRTeFBRVUZQTEd0Q1FVRnRRaXhUUVVGUkxHTkJRV003U1VGSE4wTXNUVUZCVFN4TFFVRkxMRWxCUVVrN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRXRCUVVzc1EwRkJRenRaUVVOMFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VVVGRGJrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZKVFN4TlFVRk5MRXRCUVVzc1MwRkJTenRSUVVOeVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVGRE8xbEJRM1pDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUTNwRExFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTndRaXhEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc0dktpb2diV0ZyWlhNZ2RHaGxJR052Ykc5eUlHeGxjM01nZDJocGRHVXNJRzFoYTJWeklIUm9aU0IwY21GdWMzQmhjbVZ1WTNrZ1pXWm1aV04wSUdGc2QyRjVjeUJ3WlhKalpYQjBhV0pzWlZ4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHTnZiRzl5SUhnZ1kyOXZjbVJwYm1GMFpTNWNiaUFxSUNvdlhHNW1kVzVqZEdsdmJpQmpiM0p5WldOMFEyOXNiM0lvWTI5c2IzSTZJSE4wY21sdVp5QjhJRzUxYkd3cE9pQnpkSEpwYm1jZ2UxeHVJQ0JwWmlBb1kyOXNiM0lnUFQwZ2JuVnNiQ2xjYmlBZ0lDQnlaWFIxY200Z0ozSm5ZaWd4TURBc01UQXdMREV3TUNrbk8xeHVYRzRnSUdOdmJuTjBJR1JuUTI5c2IzSTZJRzUxYldKbGNpQTlJRVJITGtOdmJHOXlMbVp5YjIxSWRHMXNLR052Ykc5eUtUdGNiaUFnWTI5dWMzUWdaeUE5SUVSSExrTnZiRzl5TG1jb1pHZERiMnh2Y2lrN1hHNGdJR052Ym5OMElISWdQU0JFUnk1RGIyeHZjaTV5S0dSblEyOXNiM0lwTzF4dUlDQmpiMjV6ZENCaUlEMGdSRWN1UTI5c2IzSXVZaWhrWjBOdmJHOXlLVHRjYmlBZ0x5OGdZMkZzWTNWc1lYUmxJR1YxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0IwYnlCM2FHbDBaVnh1SUNCamIyNXpkQ0JrYVhOMFZHOUNiR0ZqYXlBOUlFMWhkR2d1YzNGeWRDaE5ZWFJvTG5CdmR5Z3dJQzBnY2l3Z01pa2dLeUJOWVhSb0xuQnZkeWd3SUMwZ1p5d2dNaWtnS3lCTllYUm9MbkJ2ZHlnd0lDMGdZaXdnTWlrcE8xeHVJQ0F2THlCdWIzSnRZV3hwZW1VZ2RtVmpkRzl5SUhJZ1p5QmlYRzRnSUdOdmJuTjBJRzV2Y20xU0lEMGdjaUF2SUdScGMzUlViMEpzWVdOck8xeHVJQ0JqYjI1emRDQnViM0p0UnlBOUlHY2dMeUJrYVhOMFZHOUNiR0ZqYXp0Y2JpQWdZMjl1YzNRZ2JtOXliVUlnUFNCaUlDOGdaR2x6ZEZSdlFteGhZMnM3WEc0Z0lHbG1JQ2hrYVhOMFZHOUNiR0ZqYXlBK0lESXhNQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQmdjbWRpS0NSN2JtOXliVklnS2lBeU1UQjlMQ1I3Ym05eWJVY2dLaUF5TVRCOUxDUjdibTl5YlVJZ0tpQXlNVEI5S1dBN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUVSSExrTnZiRzl5TG5SdlVtZGlLR1JuUTI5c2IzSXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNSeWFXNW5WWFJwYkhNZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHaGhjMmhEYjJSbEtITTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2JHVjBJR2hoYzJnNklHNTFiV0psY2lBOUlEQTdYRzRnSUNBZ2FXWWdLSE11YkdWdVozUm9JRDA5UFNBd0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FUb2diblZ0WW1WeUlEMGdNRHNnYVNBOElITXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR05vY2pvZ2JuVnRZbVZ5SUQwZ2N5NWphR0Z5UTI5a1pVRjBLR2twTzF4dUlDQWdJQ0FnYUdGemFDQTlJQ2dvYUdGemFDQThQQ0ExS1NBdElHaGhjMmdwSUNzZ1kyaHlPMXh1SUNBZ0lDQWdhR0Z6YUNCOFBTQXdPeUF2THlCRGIyNTJaWEowSUhSdklETXlZbWwwSUdsdWRHVm5aWEpjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdoaGMyZzdYRzRnSUgxY2JuMWNibHh1YVcxd2IzSjBJSHRUWlhGUVlXeGxkSFJsTENCVFpYRlFZV3hsZEhSbFFtRnpaWDBnWm5KdmJTQW5MaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVYRzVsZUhCdmNuUWdZV0p6ZEhKaFkzUWdZMnhoYzNNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2FXMXdiR1Z0Wlc1MGN5QlRaWEZRWVd4bGRIUmxJSHRjYmlBZ2NIVmliR2xqSUdGaWMzUnlZV04wSUdkbGRDaHRPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJIY21GNVFXeHNVR0ZzWlhSMFpTQmxlSFJsYm1SeklGVnVhMjV2ZDI1VFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJR2RsZENodE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUhKbGRIVnliaUFuSXpZMk5qWTJOaWM3WEc0Z0lIMWNibjFjYmx4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNia052Ykc5eVVHRnNaWFIwWlNCbGVIUmxibVJ6SUZWdWEyNXZkMjVUWlhGUVlXeGxkSFJsSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCd1lXeGxkSFJsT2lCemRISnBibWRiWFNBOUlGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVZblZwYkdSUVlXeGxkSFJsS0NrN1hHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdZblZwYkdSUVlXeGxkSFJsS0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCamIyNXpkQ0J5WlhNZ1BTQW9XMTBnWVhNZ2MzUnlhVzVuVzEwcExtTnZibU5oZENndUxpNVBZbXBsWTNRdWRtRnNkV1Z6S0ZObGNWQmhiR1YwZEdWQ1lYTmxMbU52Ykc5MWNsQmhiR1YwZEdVcEtUdGNiaUFnSUNCeVpYUjFjbTRnY21Wek8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ2h0T2lCemRISnBibWNwT2lCemRISnBibWNnZTF4dUlDQWdJR052Ym5OMElHaGhjMmc2SUc1MWJXSmxjaUE5SUZOMGNtbHVaMVYwYVd4ekxtaGhjMmhEYjJSbEtHMHBPMXh1SUNBZ0lHTnZibk4wSUhCSklEMGdhR0Z6YUNBbElGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVXVjR0ZzWlhSMFpTNXNaVzVuZEdnN1hHNGdJQ0FnY21WMGRYSnVJR052Y25KbFkzUkRiMnh2Y2loVmJtdHViM2R1UTI5c2IzSlFZV3hsZEhSbExuQmhiR1YwZEdWYmNFbGRLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVnpJR1Y0ZEdWdVpITWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2UxeHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5Qm5jbUY1T2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUVkeVlYa29LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WjNKaGVTQTlQVDBnZG05cFpDQXdLVnh1SUNBZ0lDQWdkR2hwY3k1bmNtRjVJRDBnYm1WM0lFZHlZWGxCYkd4UVlXeGxkSFJsS0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVozSmhlVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR052Ykc5eU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFTnZiRzl5S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZiRzl5SUQwOVBTQjJiMmxrSURBcFhHNGdJQ0FnSUNCMGFHbHpMbU52Ykc5eUlEMGdibVYzSUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVb0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiMnh2Y2p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJpbXBvcnQgeyBtb25vbWVyVG9TaG9ydCB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG5jb25zdCB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbmNvbnN0IGdyYXlDb2xvciA9ICcjODA4MDgwJztcbmNvbnN0IGJsYWNrQ29sb3IgPSAncmdiKDAsMCwwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gbW9ub21lclRvU2hvcnQ7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIHdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwuXG4gKiBAcGFyYW0gcmVmZXJlbmNlU2VxdWVuY2UgSXMgcmVmZXJlbmNlIHNlcXVlbmNlIGZvciBkaWZmIG1vZGUuXG4gKiBAcGFyYW0gbWF4TGVuZ3RoT2ZNb25vbWVyIElzIG1heCBsZW5ndGggb2YgbW9ub21lci5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgd29yZElkeCA9IDAsIGdyaWRDZWxsID0gbnVsbCwgcmVmZXJlbmNlU2VxdWVuY2UgPSBbXSwgbWF4TGVuZ3RoT2ZNb25vbWVyID0gbnVsbCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGxldCBjb2xvclBhcnQgPSBzLnN1YnN0cmluZygwKTtcbiAgICBsZXQgZ3JheVBhcnQgPSBsYXN0ID8gJycgOiBzZXBhcmF0b3I7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBncmF5UGFydCA9ICcnO1xuICAgIH1cbiAgICBsZXQgY29sb3JDb2RlID0gdHJ1ZTtcbiAgICBsZXQgY29tcGFyZVdpdGhDdXJyZW50ID0gdHJ1ZTtcbiAgICBpZiAoZ3JpZENlbGwgIT0gbnVsbCkge1xuICAgICAgICBjb2xvckNvZGUgPSAoKChfYSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGVtcFsnY29sb3ItY29kZSddKSAhPSBudWxsKSA/IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2NvbG9yLWNvZGUnXSA6IHRydWU7XG4gICAgICAgIGNvbXBhcmVXaXRoQ3VycmVudCA9ICgoKF9iID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50ZW1wWydjb21wYXJlLXdpdGgtY3VycmVudCddKSAhPSBudWxsKSA/IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10gOiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50TW9ub21lciA9IHJlZmVyZW5jZVNlcXVlbmNlW3dvcmRJZHhdO1xuICAgIGlmIChjb21wYXJlV2l0aEN1cnJlbnQgJiYgKHJlZmVyZW5jZVNlcXVlbmNlLmxlbmd0aCA+IDApKSB7XG4gICAgICAgIHRyYW5zcGFyZW5jeVJhdGUgPSAoY29sb3JQYXJ0ID09IGN1cnJlbnRNb25vbWVyKSA/IDAuMyA6IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgfVxuICAgIGlmIChtYXhMZW5ndGhPZk1vbm9tZXIgIT0gbnVsbCkge1xuICAgICAgICBjb2xvclBhcnQgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGNvbG9yUGFydCwgbWF4TGVuZ3RoT2ZNb25vbWVyKTtcbiAgICB9XG4gICAgbGV0IHRleHRTaXplID0gZy5tZWFzdXJlVGV4dChjb2xvclBhcnQgKyBncmF5UGFydCk7XG4gICAgY29uc3QgaW5kZW50ID0gNTtcbiAgICBsZXQgbWF4Q29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBsZXQgY29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBjb25zdCBkeSA9ICh0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hBc2NlbnQgKyB0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hEZXNjZW50KSAvIDI7XG4gICAgdGV4dFNpemUgPSB0ZXh0U2l6ZS53aWR0aDtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIG1heENvbG9yVGV4dFNpemUgPSBtYXhXb3JkW3dvcmRJZHhdO1xuICAgICAgICB0ZXh0U2l6ZSA9IG1heFdvcmRbd29yZElkeF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgY29uc3QgZHJhd0NvbG9yID0gY29sb3JDb2RlID8gY29sb3IgOiBibGFja0NvbG9yO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGRyYXdDb2xvcjtcbiAgICAgICAgICAgIGcuZmlsbFRleHQoY29sb3JQYXJ0LCB4ICsgZHgxICsgKChtYXhXb3JkW3dvcmRJZHhdIC0gY29sb3JUZXh0U2l6ZSkgLyAyKSwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVmdCB8fCB0ZXh0U2l6ZSA+IHcpIHtcbiAgICAgICAgZHJhdyhpbmRlbnQsIGluZGVudCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIG1heENvbG9yVGV4dFNpemUgKyBnLm1lYXN1cmVUZXh0KGdyYXlQYXJ0KS53aWR0aDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IGR4ID0gKHcgLSB0ZXh0U2l6ZSkgLyAyO1xuICAgICAgICBkcmF3KGR4LCBkeCArIG1heENvbG9yVGV4dFNpemUpO1xuICAgICAgICByZXR1cm4geCArIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMlZzYkMxeVpXNWtaWEpsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbU5sYkd3dGNtVnVaR1Z5WlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSVUVzVDBGQlR5eEZRVUZETEdOQlFXTXNSVUZCUXl4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJTOURMRTFCUVUwc1kwRkJZeXhIUVVGSExHdENRVUZyUWl4RFFVRkRPMEZCUXpGRExFMUJRVTBzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0QlFVTTFRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFpRVUZaTEVOQlFVTTdRVUZEYUVNc1RVRkJUU3h6UWtGQmMwSXNSMEZCTUVRc1kwRkJZeXhEUVVGRE8wRkJSWEpITEUxQlFVMHNRMEZCVGl4SlFVRlpMRk5CUjFnN1FVRklSQ3hYUVVGWkxGTkJRVk03U1VGRGJrSXNkMEpCUVZjc1EwRkJRVHRKUVVOWUxHZERRVUZ0UWl4RFFVRkJPMEZCUTNKQ0xFTkJRVU1zUlVGSVZ5eFRRVUZUTEV0QlFWUXNVMEZCVXl4UlFVZHdRanRCUVVWRU96czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCYzBKSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVOcVF5eERRVUZUTEVWQlFVVXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hEUVVGVExFVkJRekZETEVOQlFUSkNMRVZCUVVVc1EwRkJVeXhGUVVGRkxGRkJRV2RDTEdOQlFXTXNSVUZEZEVVc1VVRkJaMElzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4TFFVRkxMRVZCUVVVc2JVSkJRVEpDTEVkQlFVY3NSVUZETDBRc1dVRkJiMElzUlVGQlJTeEZRVUZGTEU5QlFXZENMRXRCUVVzc1JVRkJSU3haUVVGMVFpeFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRlZCUVhWRExFVkJRVVVzUlVGQlJTeFZRVUZyUWl4RFFVRkRMRVZCUVVVc1YwRkJLMElzU1VGQlNTeEZRVUZGTEc5Q1FVRTRRaXhGUVVGRkxFVkJRVVVzY1VKQlFXOURMRWxCUVVrN08wbEJRM2hSTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1QwRkJUeXhEUVVGRE8wbEJRM1JDTEVsQlFVa3NVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETDBJc1NVRkJTU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU55UXl4SlFVRkpMRk5CUVZNc1MwRkJTeXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFGQlF5OUNMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU03UzBGRFpqdEpRVU5FTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOeVFpeEpRVUZKTEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU01UWl4SlFVRkpMRkZCUVZFc1NVRkJTU3hKUVVGSkxFVkJRVVU3VVVGRGNFSXNVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJRU3hOUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN3d1EwRkJSU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUTJoSUxHdENRVUZyUWl4SFFVRkhMRU5CUVVNc1EwRkJRU3hOUVVGQkxGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN3d1EwRkJSU3hKUVVGSkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1MwRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0TFFVTTVTVHRKUVVORUxFMUJRVTBzWTBGQll5eEhRVUZYTEdsQ1FVRnBRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6RkVMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRlRVFzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhUUVVGVExFbEJRVWtzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkRNMFU3U1VGRFJDeEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFbEJRVWtzUlVGQlJUdFJRVU01UWl4VFFVRlRMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNVMEZCVXl4RlFVRkZMR3RDUVVGclFpeERRVUZETEVOQlFVTTdTMEZEYmtVN1NVRkhSQ3hKUVVGSkxGRkJRVkVzUjBGQlVTeERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU40UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRmFrSXNTVUZCU1N4blFrRkJaMElzUjBGQlJ5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU4wUkN4SlFVRkpMR0ZCUVdFc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOdVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4UlFVRlJMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRiRVlzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRNVUlzU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVNdlFpeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0TFFVTTNRanRKUVVWRUxGTkJRVk1zU1VGQlNTeERRVUZETEVkQlFWY3NSVUZCUlN4SFFVRlhPMUZCUTNCRExFMUJRVTBzVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZEYWtRc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdVVUZEZUVJc1EwRkJReXhEUVVGRExGZEJRVmNzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRSUVVOcVF5eEpRVUZKTEZOQlFWTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1QwRkJUeXhGUVVGRk8xbEJRMjVETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRM1pETEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM2hDTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVWQlFVVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8xTkJRM1pETzFGQlEwUXNTVUZCU1N4VFFVRlRMRXRCUVVzc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU12UWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExGTkJRVk1zUTBGQlF6dFpRVU40UWl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NZVUZCWVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMU5CUTI1R08wbEJRMGdzUTBGQlF6dEpRVVZFTEVsQlFVa3NTVUZCU1N4SlFVRkpMRkZCUVZFc1IwRkJSeXhEUVVGRExFVkJRVVU3VVVGRGVFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1EwRkJRenRSUVVONFF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4blFrRkJaMElzUjBGQlJ5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dExRVVUzUkR0VFFVRk5PMUZCUTB3c1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRemxDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVDBGQlR5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMR2RDUVVGblFpeERRVUZETzB0QlEyeERPMEZCUTBnc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNWNibWx0Y0c5eWRDQjdiVzl1YjIxbGNsUnZVMmh2Y25SOUlHWnliMjBnSnk0dmJXRmpjbTl0YjJ4bFkzVnNaU2M3WEc1Y2JtTnZibk4wSUhWdVpHVm1hVzVsWkVOdmJHOXlJRDBnSjNKbllpZ3hNREFzTVRBd0xERXdNQ2tuTzF4dVkyOXVjM1FnWjNKaGVVTnZiRzl5SUQwZ0p5TTRNRGd3T0RBbk8xeHVZMjl1YzNRZ1lteGhZMnREYjJ4dmNpQTlJQ2R5WjJJb01Dd3dMREFwSnp0Y2JtTnZibk4wSUcxdmJtOXRaWEpVYjFOb2IzSjBSblZ1WTNScGIyNDZJQ2hoYldsdWJ6b2djM1J5YVc1bkxDQnRZWGhNWlc1bmRHaFBaazF2Ym05dFpYSTZJRzUxYldKbGNpa2dQVDRnYzNSeWFXNW5JRDBnYlc5dWIyMWxjbFJ2VTJodmNuUTdYRzVjYm1WNGNHOXlkQ0JsYm5WdElFUnlZWGRUZEhsc1pTQjdYRzRnSUUxVFFTQTlJQ2ROVTBFbkxGeHVJQ0JqYkdGemMybGpJRDBnSjJOc1lYTnphV01uTEZ4dWZWeHVYRzR2S2lwY2JpQXFJRUVnWm5WdVkzUnBiMjRnZEdoaGRDQndjbWx1ZEhNZ1lTQnpkSEpwYm1jZ1lXeHBaMjVsWkNCMGJ5QnNaV1owSUc5eUlHTmxiblJsY21Wa0xseHVJQ3BjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCNElIZ2dZMjl2Y21ScGJtRjBaUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCNUlIa2dZMjl2Y21ScGJtRjBaUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCM0lGZHBaSFJvTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHZ2dTR1ZwWjJoMExseHVJQ29nUUhCaGNtRnRJSHREWVc1MllYTlNaVzVrWlhKcGJtZERiMjUwWlhoME1rUjlJR2NnUTJGdWRtRnpJSEpsYm1SbGNtbHVaeUJqYjI1MFpYaDBMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhNZ1UzUnlhVzVuSUhSdklIQnlhVzUwTGx4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlGdGpiMnh2Y2oxMWJtUmxabWx1WldSRGIyeHZjbDBnVTNSeWFXNW5JR052Ykc5eUxseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR3YVhadmREMHdYU0JRYVhKMmIzUXVYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0c1pXWjBQV1poYkhObFhTQkpjeUJzWldaMElHRnNhV2R1WldRdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXM1J5WVc1emNHRnlaVzVqZVZKaGRHVTlNQzR3WFNCVWNtRnVjM0JoY21WdVkza2djbUYwWlNCM2FHVnlaU0F4TGpBZ2FYTWdablZzYkhrZ2RISmhibk53WVhKbGJuUmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JiYzJWd1lYSmhkRzl5UFNjblhTQkpjeUJ6WlhCaGNtRjBiM0lnWm05eUlITmxjWFZsYm1ObExseHVJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiYkdGemREMW1ZV3h6WlYwZ1NYTWdZMmhsWTJ0bGNpQnBaaUJsYkdWdFpXNTBJR3hoYzNRZ2IzSWdibTkwTGx4dUlDb2dRSEJoY21GdElHUnlZWGRUZEhsc1pTQkpjeUJrY21GM0lITjBlV3hsTGlCTlUwRWdMU0JtYjNJZ2JYVnNkR2xqYUdGeVUyVnhMQ0JqYkdGemMybGpJQzBnWm05eUlHOTBhR1Z5SUhObGNTNWNiaUFxSUVCd1lYSmhiU0J0WVhoWGIzSmtJRWx6SUdGeWNtRjVJRzltSUcxaGVDQjNiM0prY3lCbWIzSWdaV0ZqYUNCc2FXNWxMbHh1SUNvZ1FIQmhjbUZ0SUhkdmNtUkpaSGdnU1hNZ2FXNWtaWGdnYjJZZ2QyOXlaQ0IzWlNCamRYSnlaVzUwYkhrZ1pISmhkeTVjYmlBcUlFQndZWEpoYlNCbmNtbGtRMlZzYkNCSmN5Qm5jbWxrSUdObGJHd3VYRzRnS2lCQWNHRnlZVzBnY21WbVpYSmxibU5sVTJWeGRXVnVZMlVnU1hNZ2NtVm1aWEpsYm1ObElITmxjWFZsYm1ObElHWnZjaUJrYVdabUlHMXZaR1V1WEc0Z0tpQkFjR0Z5WVcwZ2JXRjRUR1Z1WjNSb1QyWk5iMjV2YldWeUlFbHpJRzFoZUNCc1pXNW5kR2dnYjJZZ2JXOXViMjFsY2k1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdlQ0JqYjI5eVpHbHVZWFJsSUhSdklITjBZWEowSUhCeWFXNTBhVzVuSUdGMExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY0hKcGJuUk1aV1owVDNKRFpXNTBaWEpsWkNoY2JpQWdlRG9nYm5WdFltVnlMQ0I1T2lCdWRXMWlaWElzSUhjNklHNTFiV0psY2l3Z2FEb2diblZ0WW1WeUxGeHVJQ0JuT2lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1FzSUhNNklITjBjbWx1Wnl3Z1kyOXNiM0k2SUhOMGNtbHVaeUE5SUhWdVpHVm1hVzVsWkVOdmJHOXlMRnh1SUNCd2FYWnZkRG9nYm5WdFltVnlJRDBnTUN3Z2JHVm1kQ0E5SUdaaGJITmxMQ0IwY21GdWMzQmhjbVZ1WTNsU1lYUmxPaUJ1ZFcxaVpYSWdQU0F4TGpBc1hHNGdJSE5sY0dGeVlYUnZjam9nYzNSeWFXNW5JRDBnSnljc0lHeGhjM1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaU3dnWkhKaGQxTjBlV3hsT2lCRWNtRjNVM1I1YkdVZ1BTQkVjbUYzVTNSNWJHVXVZMnhoYzNOcFl5d2diV0Y0VjI5eVpEb2dleUJiYVc1a1pYZzZJSE4wY21sdVoxMDZJRzUxYldKbGNpQjlJRDBnZTMwc0lIZHZjbVJKWkhnNklHNTFiV0psY2lBOUlEQXNJR2R5YVdSRFpXeHNPaUJFUnk1SGNtbGtRMlZzYkNCOElHNTFiR3dnUFNCdWRXeHNMQ0J5WldabGNtVnVZMlZUWlhGMVpXNWpaVG9nYzNSeWFXNW5XMTBnUFNCYlhTd2diV0Y0VEdWdVozUm9UMlpOYjI1dmJXVnlPaUJ1ZFcxaVpYSWdmQ0J1ZFd4c0lEMGdiblZzYkNrNklHNTFiV0psY2lCN1hHNGdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0ozTjBZWEowSnp0Y2JpQWdiR1YwSUdOdmJHOXlVR0Z5ZENBOUlITXVjM1ZpYzNSeWFXNW5LREFwTzF4dUlDQnNaWFFnWjNKaGVWQmhjblFnUFNCc1lYTjBJRDhnSnljZ09pQnpaWEJoY21GMGIzSTdYRzRnSUdsbUlDaGtjbUYzVTNSNWJHVWdQVDA5SUVSeVlYZFRkSGxzWlM1TlUwRXBJSHRjYmlBZ0lDQm5jbUY1VUdGeWRDQTlJQ2NuTzF4dUlDQjlYRzRnSUd4bGRDQmpiMnh2Y2tOdlpHVWdQU0IwY25WbE8xeHVJQ0JzWlhRZ1kyOXRjR0Z5WlZkcGRHaERkWEp5Wlc1MElEMGdkSEoxWlR0Y2JpQWdhV1lnS0dkeWFXUkRaV3hzSUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0JqYjJ4dmNrTnZaR1VnUFNBb1ozSnBaRU5sYkd3dVkyVnNiQzVqYjJ4MWJXNC9MblJsYlhCYkoyTnZiRzl5TFdOdlpHVW5YU0FoUFNCdWRXeHNLU0EvSUdkeWFXUkRaV3hzTG1ObGJHd3VZMjlzZFcxdUxuUmxiWEJiSjJOdmJHOXlMV052WkdVblhTQTZJSFJ5ZFdVN1hHNGdJQ0FnWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUQwZ0tHZHlhV1JEWld4c0xtTmxiR3d1WTI5c2RXMXVQeTUwWlcxd1d5ZGpiMjF3WVhKbExYZHBkR2d0WTNWeWNtVnVkQ2RkSUNFOUlHNTFiR3dwSUQ4Z1ozSnBaRU5sYkd3dVkyVnNiQzVqYjJ4MWJXNHVkR1Z0Y0ZzblkyOXRjR0Z5WlMxM2FYUm9MV04xY25KbGJuUW5YU0E2SUhSeWRXVTdYRzRnSUgxY2JpQWdZMjl1YzNRZ1kzVnljbVZ1ZEUxdmJtOXRaWEk2SUhOMGNtbHVaeUE5SUhKbFptVnlaVzVqWlZObGNYVmxibU5sVzNkdmNtUkpaSGhkTzF4dUlDQnBaaUFvWTI5dGNHRnlaVmRwZEdoRGRYSnlaVzUwSUNZbUlDaHlaV1psY21WdVkyVlRaWEYxWlc1alpTNXNaVzVuZEdnZ1BpQXdLU2tnZTF4dUlDQWdJSFJ5WVc1emNHRnlaVzVqZVZKaGRHVWdQU0FvWTI5c2IzSlFZWEowSUQwOUlHTjFjbkpsYm5STmIyNXZiV1Z5S1NBL0lEQXVNeUE2SUhSeVlXNXpjR0Z5Wlc1amVWSmhkR1U3WEc0Z0lIMWNiaUFnYVdZZ0tHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ1kyOXNiM0pRWVhKMElEMGdiVzl1YjIxbGNsUnZVMmh2Y25SR2RXNWpkR2x2YmloamIyeHZjbEJoY25Rc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpazdYRzRnSUgxY2JseHVYRzRnSUd4bGRDQjBaWGgwVTJsNlpUb2dZVzU1SUQwZ1p5NXRaV0Z6ZFhKbFZHVjRkQ2hqYjJ4dmNsQmhjblFnS3lCbmNtRjVVR0Z5ZENrN1hHNGdJR052Ym5OMElHbHVaR1Z1ZENBOUlEVTdYRzVjYmlBZ2JHVjBJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdQU0JuTG0xbFlYTjFjbVZVWlhoMEtHTnZiRzl5VUdGeWRDa3VkMmxrZEdnN1hHNGdJR3hsZENCamIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JqYjI1emRDQmtlU0E5SUNoMFpYaDBVMmw2WlM1bWIyNTBRbTkxYm1ScGJtZENiM2hCYzJObGJuUWdLeUIwWlhoMFUybDZaUzVtYjI1MFFtOTFibVJwYm1kQ2IzaEVaWE5qWlc1MEtTQXZJREk3WEc0Z0lIUmxlSFJUYVhwbElEMGdkR1Y0ZEZOcGVtVXVkMmxrZEdnN1hHNGdJR2xtSUNoa2NtRjNVM1I1YkdVZ1BUMDlJRVJ5WVhkVGRIbHNaUzVOVTBFcElIdGNiaUFnSUNCdFlYaERiMnh2Y2xSbGVIUlRhWHBsSUQwZ2JXRjRWMjl5WkZ0M2IzSmtTV1I0WFR0Y2JpQWdJQ0IwWlhoMFUybDZaU0E5SUcxaGVGZHZjbVJiZDI5eVpFbGtlRjA3WEc0Z0lIMWNibHh1SUNCbWRXNWpkR2x2YmlCa2NtRjNLR1I0TVRvZ2JuVnRZbVZ5TENCa2VESTZJRzUxYldKbGNpazZJSFp2YVdRZ2UxeHVJQ0FnSUdOdmJuTjBJR1J5WVhkRGIyeHZjaUE5SUdOdmJHOXlRMjlrWlNBL0lHTnZiRzl5SURvZ1lteGhZMnREYjJ4dmNqdGNiaUFnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR1J5WVhkRGIyeHZjanRjYmlBZ0lDQm5MbWRzYjJKaGJFRnNjR2hoSUQwZ2RISmhibk53WVhKbGJtTjVVbUYwWlR0Y2JpQWdJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1WTJ4aGMzTnBZeWtnZTF4dUlDQWdJQ0FnWnk1bWFXeHNWR1Y0ZENoamIyeHZjbEJoY25Rc0lIZ2dLeUJrZURFc0lIa2dLeUJrZVNrN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR2R5WVhsRGIyeHZjanRjYmlBZ0lDQWdJR2N1Wm1sc2JGUmxlSFFvWjNKaGVWQmhjblFzSUhnZ0t5QmtlRElzSUhrZ0t5QmtlU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2hrY21GM1UzUjViR1VnUFQwOUlFUnlZWGRUZEhsc1pTNU5VMEVwSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdaSEpoZDBOdmJHOXlPMXh1SUNBZ0lDQWdaeTVtYVd4c1ZHVjRkQ2hqYjJ4dmNsQmhjblFzSUhnZ0t5QmtlREVnS3lBb0tHMWhlRmR2Y21SYmQyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIHBhcnNpbmcgRkFTVEEgZmlsZXMgKi9cbmV4cG9ydCBjbGFzcyBGYXN0YUZpbGVIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWxlQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheSA9IFtdOyAvLyBwYXJzZWQgRkFTVEEgZGVzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBzZXF1ZWNlc1xuICAgICAgICB0aGlzLl9maWxlQ29udGVudCA9IGZpbGVDb250ZW50O1xuICAgICAgICB0aGlzLnBhcnNlQ29sdW1ucygpO1xuICAgIH1cbiAgICAvLyBwcml2YXRlIF9jb2x1bW5zUGFyc2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IGRlc2NyaXB0aW9uc0FycmF5KCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb25zQXJyYXk7IH1cbiAgICBnZXQgc2VxdWVuY2VzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9zZXF1ZW5jZXNBcnJheTsgfVxuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gcGFyc2UgYSBtYWNyb21vbGVjdWxlIGZyb20gYSBGQVNUQSBmaWxlIChzdHJpbmcpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBiZWdpbm5pbmdcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kT2ZTZXF1ZW5jZSAgaW5kZXggb2YgbWFjcm9tb2xlY3VsZSBzdWJzdHJpbmcgZW5kXG4gIFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gcGFyc2VkIG1hY3JvbW9sZWN1bGVcbiAgICAgKi9cbiAgICBwYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuX2ZpbGVDb250ZW50LnNsaWNlKHN0YXJ0T2ZTZXF1ZW5jZSwgZW5kT2ZTZXF1ZW5jZSk7XG4gICAgICAgIGNvbnN0IHNlcUFycmF5ID0gc2VxLnNwbGl0KC9cXHMvKTtcbiAgICAgICAgcmV0dXJuIHNlcUFycmF5LmpvaW4oJycpO1xuICAgIH1cbiAgICAvKiogUGFyc2UgZGVzY3JpcHRpb25zIGFuZCBzZXF1ZW5jZXMgZnJvbSBhIEZBU1RBIHN0cmluZyAqL1xuICAgIHBhcnNlQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXj4oLiopJC9nbTsgLy8gbWF0Y2ggJ2Rlc2NyaXB0aW9uJyBsaW5lcyBzdGFydGluZyB3aXRoID5cbiAgICAgICAgbGV0IHN0YXJ0T2ZTZXF1ZW5jZSA9IDA7XG4gICAgICAgIGxldCBtYXRjaDsgLy8gbWF0Y2guaW5kZXggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWF0Y2hlZCBsaW5lXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModGhpcy5fZmlsZUNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2ZpbGVDb250ZW50LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIDEsIHJlZ2V4Lmxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheS5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mU2VxdWVuY2UgIT09IDApXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgICBzdGFydE9mU2VxdWVuY2UgPSByZWdleC5sYXN0SW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5LnB1c2godGhpcy5wYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCAtMSkpO1xuICAgICAgICAvLyB0aGlzLl9jb2x1bW5zUGFyc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsZS1oYW5kbGVyIG1ldGhvZCBmb3IgaW1wb3J0IGFzIEZBU1RBXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtERy5EYXRhRnJhbWVbXX0gZGF0YWZyYW1lIHdpdGggcGFyc2VkIEZBU1RBIGNvbnRlbnRcbiAgICAgKi9cbiAgICBpbXBvcnRGYXN0YSgpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25zQXJyYXlDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2Rlc2NyaXB0aW9uJywgdGhpcy5kZXNjcmlwdGlvbnNBcnJheSk7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlQ29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdzZXF1ZW5jZScsIHRoaXMuc2VxdWVuY2VzQXJyYXkpO1xuICAgICAgICBzZXF1ZW5jZUNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAvLyBoZXJlIHNob3VsZCBnbyB0aGUgY29kZSBmcm9tIHVuaXRzIGhhbmRsZXJcbiAgICAgICAgVW5pdHNIYW5kbGVyLnNldFVuaXRzVG9GYXN0YUNvbHVtbihzZXF1ZW5jZUNvbCk7XG4gICAgICAgIHJldHVybiBbREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNBcnJheUNvbCxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbCxcbiAgICAgICAgICAgIF0pXTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2labUZ6ZEdFdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVpoYzNSaExXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSMEVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVNc1dVRkJXU3hGUVVGRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZOME1zYjBOQlFXOURPMEZCUTNCRExFMUJRVTBzVDBGQlR5eG5Ra0ZCWjBJN1NVRm5SVE5DTEZsQlFWa3NWMEZCYlVJN1VVRTVSSFpDTEhWQ1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETERSQ1FVRTBRanRSUVVNdlJDeHZRa0ZCWlN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExIZENRVUYzUWp0UlFUaEVPVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VFdlJFUXNNa05CUVRKRE8wbEJSVE5ETEVsQlFWY3NhVUpCUVdsQ0xFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkZMRWxCUVZjc1kwRkJZeXhMUVVGbExFOUJRVThzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRVU3T3pzN096czdUMEZQUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4bFFVRjFRaXhGUVVOMlFpeGhRVUZ4UWp0UlFVVnlRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVVkVMREpFUVVFeVJEdEpRVU51UkN4WlFVRlpPMUZCUTJ4Q0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRMRFJEUVVFMFF6dFJRVVYyUlN4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXh0UkVGQmJVUTdVVUZET1VRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hsUVVGbExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU51Uml4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN3NFFrRkJPRUk3U1VGRGFFTXNRMEZCUXp0SlFVVkVPenM3TzA5QlNVYzdTVUZEU1N4WFFVRlhPMUZCUTJoQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpGR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzVjBGQlZ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVV2UXl3MlEwRkJOa003VVVGRE4wTXNXVUZCV1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUldoRUxFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNiMEpCUVc5Q08yZENRVU53UWl4WFFVRlhPMkZCUTFvc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRpeERRVUZETzBOQlRVWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lCRWJ5QnViM1FnWTJoaGJtZGxJSFJvWlhObElHbHRjRzl5ZENCc2FXNWxjeUIwYnlCdFlYUmphQ0JsZUhSbGNtNWhiQ0J0YjJSMWJHVnpJR2x1SUhkbFluQmhZMnNnWTI5dVptbG5kWEpoZEdsdmJpQXFMMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dmRXNXBkSE10YUdGdVpHeGxjaWM3WEc1Y2JpOHFLaUJEYkdGemN5Qm1iM0lnY0dGeWMybHVaeUJHUVZOVVFTQm1hV3hsY3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaGMzUmhSbWxzWlVoaGJtUnNaWElnZTF4dUlDQndjbWwyWVhSbElGOW1hV3hsUTI5dWRHVnVkRG9nYzNSeWFXNW5PMXh1SUNCd2NtbDJZWFJsSUY5a1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJR1JsYzJOeWFYQjBhVzl1YzF4dUlDQndjbWwyWVhSbElGOXpaWEYxWlc1alpYTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJSE5sY1hWbFkyVnpYRzRnSUM4dklIQnlhWFpoZEdVZ1gyTnZiSFZ0Ym5OUVlYSnpaV1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsYzJOeWFYQjBhVzl1YzBGeWNtRjVLQ2s2SUhOMGNtbHVaMXRkSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMlJsYzJOeWFYQjBhVzl1YzBGeWNtRjVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhGMVpXNWpaWE5CY25KaGVTZ3BPaUJ6ZEhKcGJtZGJYU0I3SUhKbGRIVnliaUIwYUdsekxsOXpaWEYxWlc1alpYTkJjbkpoZVRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSVpXeHdaWElnYldWMGFHOWtJSFJ2SUhCaGNuTmxJR0VnYldGamNtOXRiMnhsWTNWc1pTQm1jbTl0SUdFZ1JrRlRWRUVnWm1sc1pTQW9jM1J5YVc1bktWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1JoY25SUFpsTmxjWFZsYm1ObElDQnBibVJsZUNCdlppQnRZV055YjIxdmJHVmpkV3hsSUhOMVluTjBjbWx1WnlCaVpXZHBibTVwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkU5bVUyVnhkV1Z1WTJVZ0lHbHVaR1Y0SUc5bUlHMWhZM0p2Ylc5c1pXTjFiR1VnYzNWaWMzUnlhVzVuSUdWdVpGeHVYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ2NHRnljMlZrSUcxaFkzSnZiVzlzWldOMWJHVmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWTllXTnliMjF2YkdWamRXeGxLRnh1SUNBZ0lITjBZWEowVDJaVFpYRjFaVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR1Z1WkU5bVUyVnhkV1Z1WTJVNklHNTFiV0psY2x4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNTQTlJSFJvYVhNdVgyWnBiR1ZEYjI1MFpXNTBMbk5zYVdObEtITjBZWEowVDJaVFpYRjFaVzVqWlN3Z1pXNWtUMlpUWlhGMVpXNWpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2MyVnhRWEp5WVhrZ1BTQnpaWEV1YzNCc2FYUW9MMXhjY3k4cE8xeHVJQ0FnSUhKbGRIVnliaUJ6WlhGQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlFZWEp6WlNCa1pYTmpjbWx3ZEdsdmJuTWdZVzVrSUhObGNYVmxibU5sY3lCbWNtOXRJR0VnUmtGVFZFRWdjM1J5YVc1bklDb3ZYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVkRiMngxYlc1ektDa2dlMXh1SUNBZ0lHTnZibk4wSUhKbFoyVjRJRDBnTDE0K0tDNHFLU1F2WjIwN0lDOHZJRzFoZEdOb0lDZGtaWE5qY21sd2RHbHZiaWNnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBK1hHNWNiaUFnSUNCc1pYUWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdNRHRjYmlBZ0lDQnNaWFFnYldGMFkyZzdJQzh2SUcxaGRHTm9MbWx1WkdWNElHbHpJSFJvWlNCaVpXZHBibTVwYm1jZ2IyWWdkR2hsSUcxaGRHTm9aV1FnYkdsdVpWeHVJQ0FnSUhkb2FXeGxJQ2h0WVhSamFDQTlJSEpsWjJWNExtVjRaV01vZEdocGN5NWZabWxzWlVOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2YmlBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTjFZbk4wY21sdVp5aHRZWFJqYUM1cGJtUmxlQ0FySURFc0lISmxaMlY0TG14aGMzUkpibVJsZUNrN1hHNGdJQ0FnSUNCMGFHbHpMbDlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlUzV3ZFhOb0tHUmxjMk55YVhCMGFXOXVLVHRjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRTltVTJWeGRXVnVZMlVnSVQwOUlEQXBYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmxjWFZsYm1ObGMwRnljbUY1TG5CMWMyZ29kR2hwY3k1d1lYSnpaVTFoWTNKdmJXOXNaV04xYkdVb2MzUmhjblJQWmxObGNYVmxibU5sTENCdFlYUmphQzVwYm1SbGVDa3BPMXh1SUNBZ0lDQWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdjbVZuWlhndWJHRnpkRWx1WkdWNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmYzJWeGRXVnVZMlZ6UVhKeVlYa3VjSFZ6YUNoMGFHbHpMbkJoY25ObFRXRmpjbTl0YjJ4bFkzVnNaU2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVXNJQzB4S1NrN1hHNWNiaUFnSUNBdkx5QjBhR2x6TGw5amIyeDFiVzV6VUdGeWMyVmtJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJHYVd4bExXaGhibVJzWlhJZ2JXVjBhRzlrSUdadmNpQnBiWEJ2Y25RZ1lYTWdSa0ZUVkVGY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UkdGMFlVWnlZVzFsVzExOUlHUmhkR0ZtY21GdFpTQjNhWFJvSUhCaGNuTmxaQ0JHUVZOVVFTQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2FXMXdiM0owUm1GemRHRW9LVG9nUkVjdVJHRjBZVVp5WVcxbElGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVVOdmJDQTlJRVJITGtOdmJIVnRiaTVtY205dFUzUnlhVzVuY3lnblpHVnpZM0pwY0hScGIyNG5MQ0IwYUdsekxtUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtUdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduYzJWeGRXVnVZMlVuTENCMGFHbHpMbk5sY1hWbGJtTmxjMEZ5Y21GNUtUdGNiaUFnSUNCelpYRjFaVzVqWlVOdmJDNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVYRzRnSUNBZ0x5OGdhR1Z5WlNCemFHOTFiR1FnWjI4Z2RHaGxJR052WkdVZ1puSnZiU0IxYm1sMGN5Qm9ZVzVrYkdWeVhHNGdJQ0FnVlc1cGRITklZVzVrYkdWeUxuTmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzBSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkN4Y2JpQWdJQ0FnSUhObGNYVmxibU5sUTI5c0xGeHVJQ0FnSUYwcFhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0dacGJHVkRiMjUwWlc1ME9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGFHbHpMbDltYVd4bFEyOXVkR1Z1ZENBOUlHWnBiR1ZEYjI1MFpXNTBPMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVkRiMngxYlc1ektDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBWZWN0b3IgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyB2ZWN0b3JMZW5ndGgsIHZlY3RvckRvdFByb2R1Y3QgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnLi4vLi4vaW5kZXgnO1xuO1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRzKHNlcUNvbCwgbWluTGVuZ3RoLCBzcGxpdHRlcikge1xuICAgIGNvbnN0IGZyZXEgPSB7fTtcbiAgICBsZXQgc2FtZUxlbmd0aCA9IHRydWU7XG4gICAgbGV0IGZpcnN0TGVuZ3RoID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IHNlcSBvZiBzZXFDb2wuY2F0ZWdvcmllcykge1xuICAgICAgICBjb25zdCBtU2VxID0gc3BsaXR0ZXIoc2VxKTtcbiAgICAgICAgaWYgKGZpcnN0TGVuZ3RoID09IG51bGwpXG4gICAgICAgICAgICBmaXJzdExlbmd0aCA9IG1TZXEubGVuZ3RoO1xuICAgICAgICBlbHNlIGlmIChtU2VxLmxlbmd0aCAhPT0gZmlyc3RMZW5ndGgpXG4gICAgICAgICAgICBzYW1lTGVuZ3RoID0gZmFsc2U7XG4gICAgICAgIGlmIChtU2VxLmxlbmd0aCA+IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIG1TZXEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIGZyZXEpKVxuICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICBmcmVxW21dICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZnJlcTogZnJlcSwgc2FtZUxlbmd0aDogc2FtZUxlbmd0aCB9O1xufVxuZXhwb3J0IGNvbnN0IG1vbm9tZXJSZSA9IC9cXFsoXFx3KylcXF18KFxcdyl8KC0pL2c7XG4vKiogU3BsaXQgc2VxdWVuY2UgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgbW9ub21lcnMsIHNxdWFyZSBicmFja2V0cyBtdWx0aWNoYXIgbW9ub21lciBuYW1lcyBvciBnYXAgc3ltYm9sLlxuICogQHBhcmFtIHthbnl9IHNlcSBvYmplY3Qgd2l0aCBzZXF1ZW5jZVxuICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzRmFzdGEoc2VxKSB7XG4gICAgcmV0dXJuIHd1KHNlcS50b1N0cmluZygpLm1hdGNoQWxsKG1vbm9tZXJSZSkpXG4gICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgIGxldCBtUmVzO1xuICAgICAgICBjb25zdCBtID0gbWFbMF07XG4gICAgICAgIGlmIChtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIG1SZXMgPSBtYVsxXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtUmVzO1xuICAgIH0pLnRvQXJyYXkoKTtcbn1cbi8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3JcbiAqIEBwYXJhbSBsaW1pdFxuICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICByZXR1cm4gc2VxLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG59XG5jb25zdCBoZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuY29uc3QgaGVsbVBwMVJlID0gL1xcWyhbXlxcW1xcXV0rKV0vZztcbi8qKiBTcGxpdHMgSGVsbSBzdHJpbmcgdG8gbW9ub21lcnMsIGJ1dCBkb2VzIG5vdCByZXBsYWNlIG1vbm9tZXIgbmFtZXMgdG8gb3RoZXIgbm90YXRpb24gKGUuZy4gZm9yIFJOQSkuXG4gKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VxIFNvdXJjZSBzdHJpbmcgb2YgSEVMTSBub3RhdGlvblxuICogQHJldHVybiB7c3RyaW5nW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdHRlckFzSGVsbShzZXEpIHtcbiAgICBoZWxtUmUubGFzdEluZGV4ID0gMDtcbiAgICBjb25zdCBlYSA9IGhlbG1SZS5leGVjKHNlcS50b1N0cmluZygpKTtcbiAgICBjb25zdCBpblNlcSA9IGVhID8gZWFbMl0gOiBudWxsO1xuICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IHBwMU0gPSBoZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgIGlmIChwcDFNICYmIHBwMU0ubGVuZ3RoID49IDIpXG4gICAgICAgICAgICByZXR1cm4gcHAxTVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmV0dXJuIG1tO1xuICAgIH07XG4gICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgcmV0dXJuIG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG59XG4vKiogR2V0IHNwbGl0dGVyIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZXMgdG8gbW9ub21lcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSB1bml0c1xuICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICogQHBhcmFtIGxpbWl0XG4gKiBAcmV0dXJuIHtTcGxpdHRlckZ1bmN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNGYXN0YTtcbiAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICByZXR1cm4gZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgcmV0dXJuIHNwbGl0dGVyQXNIZWxtO1xuICAgIGVsc2VcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAvLyBUT0RPOiBTcGxpdHRlciBmb3IgSEVMTVxufVxuLyoqIEdlbmVyYXRlIHNwbGl0dGVyIGZ1bmN0aW9uIGZvciBzZXF1ZW5jZSBjb2x1bW5cbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBjb2xcbiAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY30gU3BsaXR0ZXIgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEdldCBzcGxpdHRlciBmb3Igc2VtVHlwZSBcIiR7REcuU0VNVFlQRS5NQUNST01PTEVDVUxFfVwiIG9ubHkuYCk7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbC5nZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLyk7XG4gICAgcmV0dXJuIGdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xufVxuY29uc3QgbG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vKiogQ29udmVydCBsb25nIG1vbm9tZXIgbmFtZXMgdG8gc2hvcnQgb25lcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vbm9tZXJUb1Nob3J0KGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHNob3J0QW1pbm9NYXRjaCA9IGFtaW5vLm1hdGNoKGxvbmdNb25vbWVyUGFydFJlKTtcbiAgICBjb25zdCBuZWVkQWRkRG90cyA9IGFtaW5vLmxlbmd0aCA+IG1heExlbmd0aE9mTW9ub21lciB8fCAoKF9hID0gc2hvcnRBbWlub01hdGNoID09PSBudWxsIHx8IHNob3J0QW1pbm9NYXRjaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2hvcnRBbWlub01hdGNoLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgPiAxO1xuICAgIGNvbnN0IHNob3J0QW1pbm8gPSAoX2IgPSBzaG9ydEFtaW5vTWF0Y2ggPT09IG51bGwgfHwgc2hvcnRBbWlub01hdGNoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzaG9ydEFtaW5vTWF0Y2hbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6ICcgJztcbiAgICByZXR1cm4gIW5lZWRBZGREb3RzID8gc2hvcnRBbWlubyA6IHNob3J0QW1pbm8uc3Vic3RyaW5nKDAsIG1heExlbmd0aE9mTW9ub21lcikgKyAn4oCmJztcbn1cbi8qKiBDYWxjdWxhdGUgc2ltaWxhcml0eSBpbiBjdXJyZW50IHNlcXVlbmNlIGFuZCBhbHBoYWJldC5cbiAqIEBwYXJhbSB7TW9ub21lckZyZXFzfSBmcmVxXG4gKiBAcGFyYW0ge1NldDxzdHJpbmc+fSBhbHBoYWJldFxuICogQHBhcmFtIHtzdHJpbmd9IGdhcFN5bWJvbFxuICogQHJldHVybiB7bnVtYmVyfSBDb3NpbmUgc2ltaWxhcml0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KGZyZXEsIGFscGhhYmV0LCBnYXBTeW1ib2wgPSAnLScpIHtcbiAgICBjb25zdCBrZXlzID0gbmV3IFNldChbLi4ubmV3IFNldChPYmplY3Qua2V5cyhmcmVxKSksIC4uLmFscGhhYmV0XSk7XG4gICAga2V5cy5kZWxldGUoZ2FwU3ltYm9sKTtcbiAgICBjb25zdCBmcmVxQSA9IFtdO1xuICAgIGNvbnN0IGFscGhhYmV0QSA9IFtdO1xuICAgIGZvciAoY29uc3QgbSBvZiBrZXlzKSB7XG4gICAgICAgIGZyZXFBLnB1c2gobSBpbiBmcmVxID8gZnJlcVttXSA6IDApO1xuICAgICAgICBhbHBoYWJldEEucHVzaChhbHBoYWJldC5oYXMobSkgPyAxIDogMCk7XG4gICAgfVxuICAgIC8qIFRoZXJlIHdlcmUgYSBmZXcgaWRlYXM6IGNoaS1zcXVhcmVkLCBwZWFyc29uIGNvcnJlbGF0aW9uICh2YXJpYW5jZT8pLCBzY2FsYXIgcHJvZHVjdCAqL1xuICAgIGNvbnN0IGZyZXFWID0gbmV3IFZlY3RvcihmcmVxQSk7XG4gICAgY29uc3QgYWxwaGFiZXRWID0gbmV3IFZlY3RvcihhbHBoYWJldEEpO1xuICAgIHJldHVybiB2ZWN0b3JEb3RQcm9kdWN0KGZyZXFWLCBhbHBoYWJldFYpIC8gKHZlY3Rvckxlbmd0aChmcmVxVikgKiB2ZWN0b3JMZW5ndGgoYWxwaGFiZXRWKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QWxwaGFiZXQoc3RhdHMpIHtcbiAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgIFtcIlBUXCIgLyogQUxQSEFCRVQuUFQgKi8sIFVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldF0sXG4gICAgICAgIFtcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLywgVW5pdHNIYW5kbGVyLkRuYUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICBbXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi8sIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0XSxcbiAgICBdO1xuICAgIC8vIENhbGN1bGF0ZSBsaWtlbGlob29kcyBmb3IgYWxwaGFiZXRfY2FuZGlkYXRlc1xuICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlcy5tYXAoKGMpID0+IGdldEFscGhhYmV0U2ltaWxhcml0eShzdGF0cy5mcmVxLCBjWzFdKSk7XG4gICAgY29uc3QgbWF4Q29zID0gTWF0aC5tYXgoLi4uYWxwaGFiZXRDYW5kaWRhdGVzU2ltKTtcbiAgICBjb25zdCBhbHBoYWJldCA9IG1heENvcyA+IDAuNjUgPyBhbHBoYWJldENhbmRpZGF0ZXNbYWxwaGFiZXRDYW5kaWRhdGVzU2ltLmluZGV4T2YobWF4Q29zKV1bMF0gOiAnVU4nO1xuICAgIHJldHVybiBhbHBoYWJldDtcbn1cbi8qKiBTZWxlY3RzIGEgc3VpdGFibGUgcGFsZXR0ZSBiYXNlZCBvbiBjb2x1bW4gZGF0YVxuICogQHBhcmFtIHtERy5Db2x1bW59IHNlcUNvbCBDb2x1bW4gdG8gbG9vayBmb3IgYSBwYWxldHRlXG4gKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAqIEByZXR1cm4ge1NlcVBhbGV0dGV9IFBhbGV0dGUgY29ycmVzcG9uZGluZyB0byB0aGUgYWxwaGFiZXQgb2YgdGhlIHNlcXVlbmNlcyBpbiB0aGUgY29sdW1uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaWNrVXBQYWxldHRlKHNlcUNvbCwgbWluTGVuZ3RoID0gNSkge1xuICAgIGxldCBhbHBoYWJldDtcbiAgICBpZiAoc2VxQ29sLnNlbVR5cGUgPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgIGNvbnN0IHVoID0gbmV3IFVuaXRzSGFuZGxlcihzZXFDb2wpO1xuICAgICAgICBhbHBoYWJldCA9IHVoLmFscGhhYmV0O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBnZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgc3BsaXR0ZXJBc0Zhc3RhKTtcbiAgICAgICAgYWxwaGFiZXQgPSBkZXRlY3RBbHBoYWJldChzdGF0cyk7XG4gICAgfVxuICAgIGNvbnN0IHJlcyA9IGdldFBhbGV0dGVCeVR5cGUoYWxwaGFiZXQpO1xuICAgIHJldHVybiByZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFsZXR0ZUJ5VHlwZShwYWxldHRlVHlwZSkge1xuICAgIHN3aXRjaCAocGFsZXR0ZVR5cGUpIHtcbiAgICAgICAgY2FzZSAnUFQnOlxuICAgICAgICAgICAgcmV0dXJuIGJpby5BbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIGJpby5OdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgLy8gb3RoZXJcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBiaW8uVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBwaWNrVXBTZXFDb2woZGYpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3Qgc2VtVHlwZUNvbExpc3QgPSBkZi5jb2x1bW5zLmJ5U2VtVHlwZUFsbChERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpO1xuICAgIGxldCByZXNDb2wgPSAoX2EgPSBzZW1UeXBlQ29sTGlzdC5maW5kKChjb2wpID0+IHtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICByZXR1cm4gdW5pdHMgPyB1bml0cy5pbmRleE9mKCdNU0EnKSAhPT0gLTEgOiBmYWxzZTtcbiAgICB9KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICBpZiAoIXJlc0NvbCAmJiBzZW1UeXBlQ29sTGlzdC5sZW5ndGggPiAwKVxuICAgICAgICByZXNDb2wgPSBzZW1UeXBlQ29sTGlzdFswXTtcbiAgICByZXR1cm4gcmVzQ29sO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYldGamNtOXRiMnhsWTNWc1pTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW0xaFkzSnZiVzlzWldOMWJHVXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUlVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlFVTXNUVUZCVFN4RlFVRkRMRTFCUVUwc2FVUkJRV2xFTEVOQlFVTTdRVUZEZGtVc1QwRkJUeXhGUVVGRExGbEJRVmtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCV1M5R0xFOUJRVThzUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXp0QlFVTndRaXhQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZETEUxQlFVMHNkMEpCUVhkQ0xFTkJRVU03UVVGRGNFUXNUMEZCVHl4TFFVRkxMRWRCUVVjc1RVRkJUU3hoUVVGaExFTkJRVU03UVVGelFteERMRU5CUVVNN1FVRk5SaXhOUVVGTkxGVkJRVlVzVVVGQlVTeERRVUZETEUxQlFXbENMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFJRVUZ6UWp0SlFVTnVSaXhOUVVGTkxFbEJRVWtzUjBGQk5FSXNSVUZCUlN4RFFVRkRPMGxCUTNwRExFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjBRaXhKUVVGSkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTTdTVUZGZGtJc1MwRkJTeXhOUVVGTkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RlFVRkZPMUZCUTI1RExFMUJRVTBzU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVVelFpeEpRVUZKTEZkQlFWY3NTVUZCU1N4SlFVRkpPMWxCUTNKQ0xGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMkZCUTNaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTMEZCU3l4WFFVRlhPMWxCUTJ4RExGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZGY2tJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEZOQlFWTXNSVUZCUlR0WlFVTXpRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRjRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenR2UWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5rTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WVVGRFpEdFRRVU5HTzB0QlEwWTdTVUZEUkN4UFFVRlBMRVZCUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFZRVUZWTEVWQlFVVXNWVUZCVlN4RlFVRkRMRU5CUVVNN1FVRkRPVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TlFVRk5MRk5CUVZNc1IwRkJWeXh4UWtGQmNVSXNRMEZCUXp0QlFVVjJSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExFZEJRVkU3U1VGRGRFTXNUMEZCVHl4RlFVRkZMRU5CUVcxQ0xFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VTBGRE5VUXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJiMElzUlVGQlJTeEZRVUZGTzFGQlF6VkNMRWxCUVVrc1NVRkJXU3hEUVVGRE8xRkJRMnBDTEUxQlFVMHNRMEZCUXl4SFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UWl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVMEZEWkR0aFFVRk5PMWxCUTB3c1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU5XTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNN1NVRkRaQ3hEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0QlFVTnFRaXhEUVVGRE8wRkJSVVE3T3pzN1IwRkpSenRCUVVOSUxFMUJRVTBzVlVGQlZTeDNRa0ZCZDBJc1EwRkJReXhUUVVGcFFpeEZRVUZGTEZGQlFUUkNMRk5CUVZNN1NVRkRMMFlzVDBGQlR5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMUZCUTNKQ0xFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXl4RFFVRkRPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZYTEdsRFFVRnBReXhEUVVGRE8wRkJRM3BFTEUxQlFVMHNVMEZCVXl4SFFVRlhMR2RDUVVGblFpeERRVUZETzBGQlJ6TkRPenM3TzBkQlNVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1kwRkJZeXhEUVVGRExFZEJRVkU3U1VGRGNrTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNrSXNUVUZCVFN4RlFVRkZMRWRCUVRKQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGREwwUXNUVUZCVFN4TFFVRkxMRWRCUVd0Q0xFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZGTDBNc1RVRkJUU3hoUVVGaExFZEJRVWNzUTBGQlF5eEZRVUZWTEVWQlFWVXNSVUZCUlR0UlFVTXpReXhUUVVGVExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRMmhETEVsQlFVa3NTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF6dFpRVU14UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGWml4UFFVRlBMRVZCUVVVc1EwRkJRenRKUVVOa0xFTkJRVU1zUTBGQlF6dEpRVVZHTEUxQlFVMHNUVUZCVFN4SFFVRmhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlEzWkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0QlFVTnVReXhEUVVGRE8wRkJSVVE3T3pzN08wZEJTMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNWMEZCVnl4RFFVRkRMRXRCUVdFc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEZGQlFUUkNMRk5CUVZNN1NVRkRha2NzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1ZVRkJWU3c0UWtGQlowSTdVVUZEYUVRc1QwRkJUeXhsUVVGbExFTkJRVU03VTBGRGNFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTeHpRMEZCYjBJN1VVRkRla1FzVDBGQlR5eDNRa0ZCZDBJc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVMEZETDBNc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN3MFFrRkJaVHRSUVVOd1JDeFBRVUZQTEdOQlFXTXNRMEZCUXpzN1VVRkZkRUlzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVVnFSQ3d3UWtGQk1FSTdRVUZETlVJc1EwRkJRenRCUVVWRU96czdSMEZIUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3h2UWtGQmIwSXNRMEZCUXl4SFFVRmpPMGxCUTJwRUxFbEJRVWtzUjBGQlJ5eERRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0U3VVVGRE1VTXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXcyUWtGQk5rSXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaExGTkJRVk1zUTBGQlF5eERRVUZETzBsQlJXeEdMRTFCUVUwc1MwRkJTeXhIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU40UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeHJRMEZCWjBJc1EwRkJRenRKUVVNM1F5eFBRVUZQTEZkQlFWY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03UVVGRGRrTXNRMEZCUXp0QlFVVkVMRTFCUVUwc2FVSkJRV2xDTEVkQlFWY3NVVUZCVVN4RFFVRkRPMEZCUlRORExDdERRVUVyUXp0QlFVTXZReXhOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEV0QlFXRXNSVUZCUlN4clFrRkJNRUk3TzBsQlEzUkZMRTFCUVUwc1pVRkJaU3hIUVVFMFFpeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdTVUZEYUVZc1RVRkJUU3hYUVVGWExFZEJRVmtzUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4clFrRkJhMElzU1VGQlNTeERRVUZETEUxQlFVRXNaVUZCWlN4aFFVRm1MR1ZCUVdVc2RVSkJRV1lzWlVGQlpTeERRVUZGTEUxQlFVMHNiVU5CUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEzSkhMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVUVzWlVGQlpTeGhRVUZtTEdWQlFXVXNkVUpCUVdZc1pVRkJaU3hEUVVGSExFTkJRVU1zUTBGQlF5eHRRMEZCU1N4SFFVRkhMRU5CUVVNN1NVRkRMME1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenRCUVVOMlJpeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc2NVSkJRWEZDTEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hSUVVGeFFpeEZRVUZGTEZsQlFXOUNMRWRCUVVjN1NVRkRkRWNzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRKUVVWMlFpeE5RVUZOTEV0QlFVc3NSMEZCWVN4RlFVRkZMRU5CUVVNN1NVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMGxCUXk5Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMUZCUTNCQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53UXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRla003U1VGRFJDd3dSa0ZCTUVZN1NVRkRNVVlzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdTVUZEYUVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZET1VZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNTMEZCYTBJN1NVRkRMME1zVFVGQlRTeHJRa0ZCYTBJc1IwRkJORUk3VVVGRGJFUXNlVUpCUVdNc1dVRkJXU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRPMUZCUTJoRUxESkNRVUZsTEZsQlFWa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVU0zUXl3eVFrRkJaU3haUVVGWkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkRPVU1zUTBGQlF6dEpRVVZHTEdkRVFVRm5SRHRKUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGaExHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkROVVFzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0SlFVTnNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMGxCUTNKSExFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNN1FVRkZSRHM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eE5RVUZwUWl4RlFVRkZMRmxCUVc5Q0xFTkJRVU03U1VGRGNFVXNTVUZCU1N4UlFVRm5RaXhEUVVGRE8wbEJRM0pDTEVsQlFVa3NUVUZCVFN4RFFVRkRMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNSVUZCUlR0UlFVTTVReXhOUVVGTkxFVkJRVVVzUjBGQmFVSXNTVUZCU1N4WlFVRlpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGJFUXNVVUZCVVN4SFFVRkhMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU03UzBGRGVFSTdVMEZCVFR0UlFVTk1MRTFCUVUwc1MwRkJTeXhIUVVGblFpeFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRk5CUVZNc1JVRkJSU3hsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU40UlN4UlFVRlJMRWRCUVVjc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzB0QlEyeERPMGxCUlVRc1RVRkJUU3hIUVVGSExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRrTXNUMEZCVHl4SFFVRkhMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExGZEJRVzFDTzBsQlEyeEVMRkZCUVZFc1YwRkJWeXhGUVVGRk8xRkJRM0pDTEV0QlFVc3NTVUZCU1R0WlFVTlFMRTlCUVU4c1IwRkJSeXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVNelF5eExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTldMRXRCUVVzc1MwRkJTeXhEUVVGRE8xRkJRMWdzUzBGQlN5eExRVUZMTzFsQlExSXNUMEZCVHl4SFFVRkhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpWRExGRkJRVkU3VVVGRFZqdFpRVU5GTEU5QlFVOHNSMEZCUnl4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0TFFVTnlRenRCUVVOSUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNXVUZCV1N4RFFVRkRMRVZCUVdkQ096dEpRVU16UXl4TlFVRk5MR05CUVdNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlEzcEZMRWxCUVVrc1RVRkJUU3hIUVVGeFFpeE5RVUZCTEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU42UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUMEZCVHl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTnlSQ3hEUVVGRExFTkJRVU1zYlVOQlFVa3NTVUZCU1N4RFFVRkRPMGxCUTFnc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeGpRVUZqTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNN1VVRkRkRU1zVFVGQlRTeEhRVUZITEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNM1FpeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFdaV04wYjNKOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdkbVZqZEc5eVRHVnVaM1JvTENCMlpXTjBiM0pFYjNSUWNtOWtkV04wZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3ljN1hHNWNiaThxS2lCVGRHRjBjeUJ2WmlCelpYRjFaVzVqWlhNZ2QybDBhQ0J6Y0dWamFXWnBaV1FnYzNCc2FYUjBaWElnWm5WdVl5d2djbVYwZFhKdWN5QjdJR1p5WlhFc0lITmhiV1ZNWlc1bmRHZ2dmUzVjYmlBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQnpaWEZEYjJ4Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnRhVzVNWlc1bmRHaGNiaUFxSUVCd1lYSmhiU0I3VTNCc2FYUjBaWEpHZFc1amZTQnpjR3hwZEhSbGNseHVJQ29nUUhKbGRIVnliaUI3SUZObGNVTnZiRk4wWVhSeklIMHNJSE5oYldWTVpXNW5kR2c2SUdKdmIyeGxZVzRnZlNCemRHRjBjeUJ2WmlCamIyeDFiVzRnYzJWeGRXVnVZMlZ6WEc0Z0tpOWNibWx0Y0c5eWRDQjdVMlZ4VUdGc1pYUjBaWDBnWm5KdmJTQW5MaTR2YzJWeExYQmhiR1YwZEdWekp6dGNibWx0Y0c5eWRDQjdRVzFwYm05aFkybGtjeXdnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6ZlNCbWNtOXRJQ2N1TGk5aGJXbHViMkZqYVdSekp6dGNibWx0Y0c5eWRDQjdUblZqYkdWdmRHbGtaWE1zSUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwyNTFZMnhsYjNScFpHVnpKenRjYm1sdGNHOXlkQ0I3Vlc1cmJtOTNibE5sY1ZCaGJHVjBkR1Z6ZlNCbWNtOXRJQ2N1TGk5MWJtdHViM2R1Snp0Y2JtbHRjRzl5ZENCM2RTQm1jbTl0SUNkM2RTYzdYRzVwYlhCdmNuUWdlMVZ1YVhSelNHRnVaR3hsY24wZ1puSnZiU0FuTGk0dmRYUnBiSE12ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVwYlhCdmNuUWdLaUJoY3lCaWFXOGdabkp2YlNBbkxpNHZMaTR2YVc1a1pYZ25PMXh1WEc0dktpb2daVzUxYlNCMGVYQmxJSFJ2SUhOcGJYQnNhV1o1SUhObGRIUnBibWNnWENKMWMyVnlMV1p5YVdWdVpHeDVYQ0lnYm05MFlYUnBiMjRnYVdZZ2JtVmpaWE56WVhKNUlDb3ZYRzVsZUhCdmNuUWdZMjl1YzNRZ1pXNTFiU0JPVDFSQlZFbFBUaUI3WEc0Z0lFWkJVMVJCSUQwZ0oyWmhjM1JoSnl4Y2JpQWdVMFZRUVZKQlZFOVNJRDBnSjNObGNHRnlZWFJ2Y2ljc1hHNGdJRWhGVEUwZ1BTQW5hR1ZzYlNjc1hHNTlYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmxiblZ0SUVGTVVFaEJRa1ZVSUh0Y2JpQWdSRTVCSUQwZ0owUk9RU2NzWEc0Z0lGSk9RU0E5SUNkU1RrRW5MRnh1SUNCUVZDQTlJQ2RRVkNjc1hHNGdJRlZPSUQwZ0oxVk9KeXhjYm4xY2JseHVaWGh3YjNKMElHTnZibk4wSUdWdWRXMGdWRUZIVXlCN1hHNGdJR0ZzYVdkdVpXUWdQU0FuWVd4cFoyNWxaQ2NzWEc0Z0lHRnNjR2hoWW1WMElEMGdKMkZzY0doaFltVjBKeXhjYmlBZ1lXeHdhR0ZpWlhSVGFYcGxJRDBnSnk1aGJIQm9ZV0psZEZOcGVtVW5MRnh1SUNCaGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUlEMGdKeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5Snl4Y2JpQWdjMlZ3WVhKaGRHOXlJRDBnSjNObGNHRnlZWFJ2Y2ljc1hHNTlPMXh1WEc1bGVIQnZjblFnZEhsd1pTQlRaWEZEYjJ4VGRHRjBjeUE5SUhzZ1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQnpZVzFsVEdWdVozUm9PaUJpYjI5c1pXRnVJSDFjYm1WNGNHOXlkQ0IwZVhCbElGTndiR2wwZEdWeVJuVnVZeUE5SUNoelpYRTZJSE4wY21sdVp5a2dQVDRnYzNSeWFXNW5XMTA3WEc1bGVIQnZjblFnZEhsd1pTQk5iMjV2YldWeVJuSmxjWE1nUFNCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJ1ZFcxaVpYSWdmVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTjBZWFJ6S0hObGNVTnZiRG9nUkVjdVEyOXNkVzF1TENCdGFXNU1aVzVuZEdnNklHNTFiV0psY2l3Z2MzQnNhWFIwWlhJNklGTndiR2wwZEdWeVJuVnVZeWs2SUZObGNVTnZiRk4wWVhSeklIdGNiaUFnWTI5dWMzUWdabkpsY1RvZ2V5QmJiVG9nYzNSeWFXNW5YVG9nYm5WdFltVnlJSDBnUFNCN2ZUdGNiaUFnYkdWMElITmhiV1ZNWlc1bmRHZ2dQU0IwY25WbE8xeHVJQ0JzWlhRZ1ptbHljM1JNWlc1bmRHZ2dQU0J1ZFd4c08xeHVYRzRnSUdadmNpQW9ZMjl1YzNRZ2MyVnhJRzltSUhObGNVTnZiQzVqWVhSbFoyOXlhV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdiVk5sY1NBOUlITndiR2wwZEdWeUtITmxjU2s3WEc1Y2JpQWdJQ0JwWmlBb1ptbHljM1JNWlc1bmRHZ2dQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lHWnBjbk4wVEdWdVozUm9JRDBnYlZObGNTNXNaVzVuZEdnN1hHNGdJQ0FnWld4elpTQnBaaUFvYlZObGNTNXNaVzVuZEdnZ0lUMDlJR1pwY25OMFRHVnVaM1JvS1Z4dUlDQWdJQ0FnYzJGdFpVeGxibWQwYUNBOUlHWmhiSE5sTzF4dVhHNGdJQ0FnYVdZZ0tHMVRaWEV1YkdWdVozUm9JRDRnYldsdVRHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHMGdiMllnYlZObGNTa2dlMXh1SUNBZ0lDQWdJQ0JwWmlBb0lTaHRJR2x1SUdaeVpYRXBLVnh1SUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnUFNBd08xeHVJQ0FnSUNBZ0lDQm1jbVZ4VzIxZElDczlJREU3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQjdabkpsY1RvZ1puSmxjU3dnYzJGdFpVeGxibWQwYURvZ2MyRnRaVXhsYm1kMGFIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J0YjI1dmJXVnlVbVU2SUZKbFowVjRjQ0E5SUM5Y1hGc29YRngzS3lsY1hGMThLRnhjZHlsOEtDMHBMMmM3WEc1Y2JpOHFLaUJUY0d4cGRDQnpaWEYxWlc1alpTQm1iM0lnYzJsdVoyeGxJR05vWVhKaFkzUmxjaUJ0YjI1dmJXVnljeXdnYzNGMVlYSmxJR0p5WVdOclpYUnpJRzExYkhScFkyaGhjaUJ0YjI1dmJXVnlJRzVoYldWeklHOXlJR2RoY0NCemVXMWliMnd1WEc0Z0tpQkFjR0Z5WVcwZ2UyRnVlWDBnYzJWeElHOWlhbVZqZENCM2FYUm9JSE5sY1hWbGJtTmxYRzRnS2lCQWNtVjBkWEp1SUh0emRISnBibWRiWFgwZ1lYSnlZWGtnYjJZZ2JXOXViMjFsY25OY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE53YkdsMGRHVnlRWE5HWVhOMFlTaHpaWEU2SUdGdWVTazZJSE4wY21sdVoxdGRJSHRjYmlBZ2NtVjBkWEp1SUhkMVBGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrK0tITmxjUzUwYjFOMGNtbHVaeWdwTG0xaGRHTm9RV3hzS0cxdmJtOXRaWEpTWlNrcFhHNGdJQ0FnTG0xaGNDZ29iV0U2SUZKbFowVjRjRTFoZEdOb1FYSnlZWGtwSUQwK0lIdGNiaUFnSUNBZ0lHeGxkQ0J0VW1Wek9pQnpkSEpwYm1jN1hHNGdJQ0FnSUNCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCdFlWc3dYVHRjYmlBZ0lDQWdJR2xtSUNodExteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnYlZKbGN5QTlJRzFoV3pGZE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2JWSmxjeUE5SUcwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnYlZKbGN6dGNiaUFnSUNCOUtTNTBiMEZ5Y21GNUtDazdYRzU5WEc1Y2JpOHFLaUJIWlhSeklHMWxkR2h2WkNCMGJ5QnpjR3hwZENCelpYRjFaVzVqWlNCaWVTQnpaWEJoY21GMGIzSmNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6WlhCaGNtRjBiM0pjYmlBcUlFQndZWEpoYlNCc2FXMXBkRnh1SUNvZ1FISmxkSFZ5YmlCN1UzQnNhWFIwWlhKR2RXNWpmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVM0JzYVhSMFpYSlhhWFJvVTJWd1lYSmhkRzl5S0hObGNHRnlZWFJ2Y2pvZ2MzUnlhVzVuTENCc2FXMXBkRG9nYm5WdFltVnlJSHdnZFc1a1pXWnBibVZrSUQwZ2RXNWtaV1pwYm1Wa0tUb2dVM0JzYVhSMFpYSkdkVzVqSUh0Y2JpQWdjbVYwZFhKdUlDaHpaWEU2SUhOMGNtbHVaeWtnUFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ6WlhFdWMzQnNhWFFvYzJWd1lYSmhkRzl5TENCc2FXMXBkQ2s3WEc0Z0lIMDdYRzU5WEc1Y2JtTnZibk4wSUdobGJHMVNaVG9nVW1WblJYaHdJRDBnTHloUVJWQlVTVVJGTVh4RVRrRXhmRkpPUVRFcFhGeDdLRnRlZlYwcktYMHZaenRjYm1OdmJuTjBJR2hsYkcxUWNERlNaVG9nVW1WblJYaHdJRDBnTDF4Y1d5aGJYbHhjVzF4Y1hWMHJLVjB2Wnp0Y2JseHVYRzR2S2lvZ1UzQnNhWFJ6SUVobGJHMGdjM1J5YVc1bklIUnZJRzF2Ym05dFpYSnpMQ0JpZFhRZ1pHOWxjeUJ1YjNRZ2NtVndiR0ZqWlNCdGIyNXZiV1Z5SUc1aGJXVnpJSFJ2SUc5MGFHVnlJRzV2ZEdGMGFXOXVJQ2hsTG1jdUlHWnZjaUJTVGtFcExseHVJQ29nVDI1c2VTQm1iM0lnYkdsdVpXRnlJSEJ2YkhsdFpYSnpMQ0JrYjJWeklHNXZkQ0J6Y0d4cGRDQlNUa0VnWm05eUlISnBZbTl6WlNCaGJtUWdjR2h2YzNCb1lYUmxJRzF2Ym05dFpYSnpMbHh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlRiM1Z5WTJVZ2MzUnlhVzVuSUc5bUlFaEZURTBnYm05MFlYUnBiMjVjYmlBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjF0ZGZWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzNCc2FYUjBaWEpCYzBobGJHMG9jMlZ4T2lCaGJua3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lHaGxiRzFTWlM1c1lYTjBTVzVrWlhnZ1BTQXdPMXh1SUNCamIyNXpkQ0JsWVRvZ1VtVm5SWGh3UlhobFkwRnljbUY1SUh3Z2JuVnNiQ0E5SUdobGJHMVNaUzVsZUdWaktITmxjUzUwYjFOMGNtbHVaeWdwS1R0Y2JpQWdZMjl1YzNRZ2FXNVRaWEU2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0JsWVNBL0lHVmhXekpkSURvZ2JuVnNiRHRjYmx4dUlDQmpiMjV6ZENCdGJWQnZjM1JRY205alpYTnpJRDBnS0cxdE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ1BUNGdlMXh1SUNBZ0lHaGxiRzFRY0RGU1pTNXNZWE4wU1c1a1pYZ2dQU0F3TzF4dUlDQWdJR052Ym5OMElIQndNVTBnUFNCb1pXeHRVSEF4VW1VdVpYaGxZeWh0YlNrN1hHNGdJQ0FnYVdZZ0tIQndNVTBnSmlZZ2NIQXhUUzVzWlc1bmRHZ2dQajBnTWlsY2JpQWdJQ0FnSUhKbGRIVnliaUJ3Y0RGTld6RmRPMXh1SUNBZ0lHVnNjMlZjYmlBZ0lDQWdJSEpsZEhWeWJpQnRiVHRjYmlBZ2ZUdGNibHh1SUNCamIyNXpkQ0J0YlV4cGMzUTZJSE4wY21sdVoxdGRJRDBnYVc1VFpYRWdQeUJwYmxObGNTNXpjR3hwZENnbkxpY3BJRG9nVzEwN1hHNGdJSEpsZEhWeWJpQnRiVXhwYzNRdWJXRndLRzF0VUc5emRGQnliMk5sYzNNcE8xeHVmVnh1WEc0dktpb2dSMlYwSUhOd2JHbDBkR1Z5SUcxbGRHaHZaQ0IwYnlCemNHeHBkQ0J6WlhGMVpXNWpaWE1nZEc4Z2JXOXViMjFsY25OY2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjFibWwwYzF4dUlDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjR0Z5WVhSdmNseHVJQ29nUUhCaGNtRnRJR3hwYldsMFhHNGdLaUJBY21WMGRYSnVJSHRUY0d4cGRIUmxja1oxYm1OOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSVGNHeHBkSFJsY2loMWJtbDBjem9nYzNSeWFXNW5MQ0J6WlhCaGNtRjBiM0k2SUhOMGNtbHVaeXdnYkdsdGFYUTZJRzUxYldKbGNpQjhJSFZ1WkdWbWFXNWxaQ0E5SUhWdVpHVm1hVzVsWkNrNklGTndiR2wwZEdWeVJuVnVZeUI3WEc0Z0lHbG1JQ2gxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTG5OMFlYSjBjMWRwZEdnb1RrOVVRVlJKVDA0dVJrRlRWRUVwS1Z4dUlDQWdJSEpsZEhWeWJpQnpjR3hwZEhSbGNrRnpSbUZ6ZEdFN1hHNGdJR1ZzYzJVZ2FXWWdLSFZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJcEtWeHVJQ0FnSUhKbGRIVnliaUJuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUdWc2MyVWdhV1lnS0hWdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNUlSVXhOS1NsY2JpQWdJQ0J5WlhSMWNtNGdjM0JzYVhSMFpYSkJjMGhsYkcwN1hHNGdJR1ZzYzJWY2JpQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRlZ1Wlhod1pXTjBaV1FnZFc1cGRITWdKSHQxYm1sMGMzMGdMbUFwTzF4dVhHNGdJQzh2SUZSUFJFODZJRk53YkdsMGRHVnlJR1p2Y2lCSVJVeE5YRzU5WEc1Y2JpOHFLaUJIWlc1bGNtRjBaU0J6Y0d4cGRIUmxjaUJtZFc1amRHbHZiaUJtYjNJZ2MyVnhkV1Z1WTJVZ1kyOXNkVzF1WEc0Z0tpQkFjR0Z5WVcwZ2UwUkhMa052YkhWdGJuMGdZMjlzWEc0Z0tpQkFjbVYwZFhKdUlIdFRjR3hwZEhSbGNrWjFibU45SUZOd2JHbDBkR1Z5SUdaMWJtTjBhVzl1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm5aWFJUY0d4cGRIUmxja1p2Y2tOdmJIVnRiaWhqYjJ3NklFUkhMa052YkhWdGJpazZJRk53YkdsMGRHVnlSblZ1WXlCN1hHNGdJR2xtSUNoamIyd3VjMlZ0Vkhsd1pTQWhQVDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZLVnh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1IyVjBJSE53YkdsMGRHVnlJR1p2Y2lCelpXMVVlWEJsSUZ3aUpIdEVSeTVUUlUxVVdWQkZMazFCUTFKUFRVOU1SVU5WVEVWOVhDSWdiMjVzZVM1Z0tUdGNibHh1SUNCamIyNXpkQ0IxYm1sMGN5QTlJR052YkM1blpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5azdYRzRnSUdOdmJuTjBJSE5sY0dGeVlYUnZjaUE5SUdOdmJDNW5aWFJVWVdjb1ZFRkhVeTV6WlhCaGNtRjBiM0lwTzF4dUlDQnlaWFIxY200Z1oyVjBVM0JzYVhSMFpYSW9kVzVwZEhNc0lITmxjR0Z5WVhSdmNpazdYRzU5WEc1Y2JtTnZibk4wSUd4dmJtZE5iMjV2YldWeVVHRnlkRkpsT2lCU1pXZEZlSEFnUFNBdktGeGNkeXNwTDJjN1hHNWNiaThxS2lCRGIyNTJaWEowSUd4dmJtY2diVzl1YjIxbGNpQnVZVzFsY3lCMGJ5QnphRzl5ZENCdmJtVnpJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYlc5dWIyMWxjbFJ2VTJodmNuUW9ZVzFwYm04NklITjBjbWx1Wnl3Z2JXRjRUR1Z1WjNSb1QyWk5iMjV2YldWeU9pQnVkVzFpWlhJcE9pQnpkSEpwYm1jZ2UxeHVJQ0JqYjI1emRDQnphRzl5ZEVGdGFXNXZUV0YwWTJnNklGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrZ2ZDQnVkV3hzSUQwZ1lXMXBibTh1YldGMFkyZ29iRzl1WjAxdmJtOXRaWEpRWVhKMFVtVXBPMXh1SUNCamIyNXpkQ0J1WldWa1FXUmtSRzkwY3pvZ1ltOXZiR1ZoYmlBOUlHRnRhVzV2TG14bGJtZDBhQ0ErSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lCOGZDQW9jMmh2Y25SQmJXbHViMDFoZEdOb1B5NXNaVzVuZEdnZ1B6OGdNQ2tnUGlBeE8xeHVJQ0JqYjI1emRDQnphRzl5ZEVGdGFXNXZJRDBnYzJodmNuUkJiV2x1YjAxaGRHTm9QeTViTUYwZ1B6OGdKeUFuTzF4dUlDQnlaWFIxY200Z0lXNWxaV1JCWkdSRWIzUnpJRDhnYzJodmNuUkJiV2x1YnlBNklITm9iM0owUVcxcGJtOHVjM1ZpYzNSeWFXNW5LREFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrZ0t5QW40b0NtSnp0Y2JuMWNibHh1THlvcUlFTmhiR04xYkdGMFpTQnphVzFwYkdGeWFYUjVJR2x1SUdOMWNuSmxiblFnYzJWeGRXVnVZMlVnWVc1a0lHRnNjR2hoWW1WMExseHVJQ29nUUhCaGNtRnRJSHROYjI1dmJXVnlSbkpsY1hOOUlHWnlaWEZjYmlBcUlFQndZWEpoYlNCN1UyVjBQSE4wY21sdVp6NTlJR0ZzY0doaFltVjBYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWjJGd1UzbHRZbTlzWEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFTnZjMmx1WlNCemFXMXBiR0Z5YVhSNVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJuWlhSQmJIQm9ZV0psZEZOcGJXbHNZWEpwZEhrb1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQmhiSEJvWVdKbGREb2dVMlYwUEhOMGNtbHVaejRzSUdkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUQwZ0p5MG5LVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYTJWNWN5QTlJRzVsZHlCVFpYUThjM1J5YVc1blBpaGJMaTR1Ym1WM0lGTmxkQ2hQWW1wbFkzUXVhMlY1Y3lobWNtVnhLU2tzSUM0dUxtRnNjR2hoWW1WMFhTazdYRzRnSUd0bGVYTXVaR1ZzWlhSbEtHZGhjRk41YldKdmJDazdYRzVjYmlBZ1kyOXVjM1FnWm5KbGNVRTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR052Ym5OMElHRnNjR2hoWW1WMFFUb2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdabTl5SUNoamIyNXpkQ0J0SUc5bUlHdGxlWE1wSUh0Y2JpQWdJQ0JtY21WeFFTNXdkWE5vS0cwZ2FXNGdabkpsY1NBL0lHWnlaWEZiYlYwZ09pQXdLVHRjYmlBZ0lDQmhiSEJvWVdKbGRFRXVjSFZ6YUNoaGJIQm9ZV0psZEM1b1lYTW9iU2tnUHlBeElEb2dNQ2s3WEc0Z0lIMWNiaUFnTHlvZ1ZHaGxjbVVnZDJWeVpTQmhJR1psZHlCcFpHVmhjem9nWTJocExYTnhkV0Z5WldRc0lIQmxZWEp6YjI0Z1kyOXljbVZzWVhScGIyNGdLSFpoY21saGJtTmxQeWtzSUhOallXeGhjaUJ3Y205a2RXTjBJQ292WEc0Z0lHTnZibk4wSUdaeVpYRldPaUJXWldOMGIzSWdQU0J1WlhjZ1ZtVmpkRzl5S0daeVpYRkJLVHRjYmlBZ1kyOXVjM1FnWVd4d2FHRmlaWFJXT2lCV1pXTjBiM0lnUFNCdVpYY2dWbVZqZEc5eUtHRnNjR2hoWW1WMFFTazdYRzRnSUhKbGRIVnliaUIyWldOMGIzSkViM1JRY205a2RXTjBLR1p5WlhGV0xDQmhiSEJvWVdKbGRGWXBJQzhnS0habFkzUnZja3hsYm1kMGFDaG1jbVZ4VmlrZ0tpQjJaV04wYjNKTVpXNW5kR2dvWVd4d2FHRmlaWFJXS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrWlhSbFkzUkJiSEJvWVdKbGRDaHpkR0YwY3pvZ1UyVnhRMjlzVTNSaGRITXBPaUJ6ZEhKcGJtY2dlMXh1SUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE02SUZ0emRISnBibWNzSUZObGREeHpkSEpwYm1jK1hWdGRJRDBnVzF4dUlDQWdJRnRCVEZCSVFVSkZWQzVRVkN3Z1ZXNXBkSE5JWVc1a2JHVnlMbEJsY0hScFpHVkdZWE4wWVVGc2NHaGhZbVYwWFN4Y2JpQWdJQ0JiUVV4UVNFRkNSVlF1UkU1QkxDQlZibWwwYzBoaGJtUnNaWEl1Ukc1aFJtRnpkR0ZCYkhCb1lXSmxkRjBzWEc0Z0lDQWdXMEZNVUVoQlFrVlVMbEpPUVN3Z1ZXNXBkSE5JWVc1a2JHVnlMbEp1WVVaaGMzUmhRV3h3YUdGaVpYUmRMRnh1SUNCZE8xeHVYRzRnSUM4dklFTmhiR04xYkdGMFpTQnNhV3RsYkdsb2IyOWtjeUJtYjNJZ1lXeHdhR0ZpWlhSZlkyRnVaR2xrWVhSbGMxeHVJQ0JqYjI1emRDQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzA2SUc1MWJXSmxjbHRkSUQwZ1lXeHdhR0ZpWlhSRFlXNWthV1JoZEdWekxtMWhjQ2hjYmlBZ0lDQW9ZeWtnUFQ0Z1oyVjBRV3h3YUdGaVpYUlRhVzFwYkdGeWFYUjVLSE4wWVhSekxtWnlaWEVzSUdOYk1WMHBLVHRjYmlBZ1kyOXVjM1FnYldGNFEyOXpJRDBnVFdGMGFDNXRZWGdvTGk0dVlXeHdhR0ZpWlhSRFlXNWthV1JoZEdWelUybHRLVHRjYmlBZ1kyOXVjM1FnWVd4d2FHRmlaWFFnUFNCdFlYaERiM01nUGlBd0xqWTFJRDhnWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VzJGc2NHaGhZbVYwUTJGdVpHbGtZWFJsYzFOcGJTNXBibVJsZUU5bUtHMWhlRU52Y3lsZFd6QmRJRG9nSjFWT0p6dGNiaUFnY21WMGRYSnVJR0ZzY0doaFltVjBPMXh1ZlZ4dVhHNHZLaW9nVTJWc1pXTjBjeUJoSUhOMWFYUmhZbXhsSUhCaGJHVjBkR1VnWW1GelpXUWdiMjRnWTI5c2RXMXVJR1JoZEdGY2JpQXFJRUJ3WVhKaGJTQjdSRWN1UTI5c2RXMXVmU0J6WlhGRGIyd2dRMjlzZFcxdUlIUnZJR3h2YjJzZ1ptOXlJR0VnY0dGc1pYUjBaVnh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUNCdGFXNU1aVzVuZEdnZ2JXbHVhVzExYlNCc1pXNW5kR2dnYjJZZ2MyVnhkV1Z1WTJVZ2RHOGdaR1YwWldOMElIQmhiR1YwZEdVZ0tHVnRjSFI1SUhOMGNtbHVaM01nWVhKbElHRnNiRzkzWldRcFhHNGdLaUJBY21WMGRYSnVJSHRUWlhGUVlXeGxkSFJsZlNCUVlXeGxkSFJsSUdOdmNuSmxjM0J2Ym1ScGJtY2dkRzhnZEdobElHRnNjR2hoWW1WMElHOW1JSFJvWlNCelpYRjFaVzVqWlhNZ2FXNGdkR2hsSUdOdmJIVnRibHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHbGphMVZ3VUdGc1pYUjBaU2h6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnYldsdVRHVnVaM1JvT2lCdWRXMWlaWElnUFNBMUtUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lHeGxkQ0JoYkhCb1lXSmxkRG9nYzNSeWFXNW5PMXh1SUNCcFppQW9jMlZ4UTI5c0xuTmxiVlI1Y0dVZ1BUMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktTQjdYRzRnSUNBZ1kyOXVjM1FnZFdnNklGVnVhWFJ6U0dGdVpHeGxjaUE5SUc1bGR5QlZibWwwYzBoaGJtUnNaWElvYzJWeFEyOXNLVHRjYmlBZ0lDQmhiSEJvWVdKbGRDQTlJSFZvTG1Gc2NHaGhZbVYwTzF4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdOdmJuTjBJSE4wWVhSek9pQlRaWEZEYjJ4VGRHRjBjeUE5SUdkbGRGTjBZWFJ6S0hObGNVTnZiQ3dnYldsdVRHVnVaM1JvTENCemNHeHBkSFJsY2tGelJtRnpkR0VwTzF4dUlDQWdJR0ZzY0doaFltVjBJRDBnWkdWMFpXTjBRV3h3YUdGaVpYUW9jM1JoZEhNcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2NtVnpJRDBnWjJWMFVHRnNaWFIwWlVKNVZIbHdaU2hoYkhCb1lXSmxkQ2s3WEc0Z0lISmxkSFZ5YmlCeVpYTTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCblpYUlFZV3hsZEhSbFFubFVlWEJsS0hCaGJHVjBkR1ZVZVhCbE9pQnpkSEpwYm1jcE9pQmlhVzh1VTJWeFVHRnNaWFIwWlNCN1hHNGdJSE4zYVhSamFDQW9jR0ZzWlhSMFpWUjVjR1VwSUh0Y2JpQWdZMkZ6WlNBblVGUW5PbHh1SUNBZ0lISmxkSFZ5YmlCaWFXOHVRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lHTmhjMlVnSjA1VUp6cGNiaUFnWTJGelpTQW5SRTVCSnpwY2JpQWdZMkZ6WlNBblVrNUJKenBjYmlBZ0lDQnlaWFIxY200Z1ltbHZMazUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE11UTJoeWIyMWhkRzluY21GdE8xeHVJQ0FnSUM4dklHOTBhR1Z5WEc0Z0lHUmxabUYxYkhRNlhHNGdJQ0FnY21WMGRYSnVJR0pwYnk1VmJtdHViM2R1VTJWeFVHRnNaWFIwWlhNdVEyOXNiM0k3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCcFkydFZjRk5sY1VOdmJDaGtaam9nUkVjdVJHRjBZVVp5WVcxbEtUb2dSRWN1UTI5c2RXMXVJSHdnYm5Wc2JDQjdYRzRnSUdOdmJuTjBJSE5sYlZSNWNHVkRiMnhNYVhOMElEMGdaR1l1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1ZCYkd3b1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGS1R0Y2JpQWdiR1YwSUhKbGMwTnZiRG9nUkVjdVEyOXNkVzF1SUh3Z2JuVnNiQ0E5SUhObGJWUjVjR1ZEYjJ4TWFYTjBMbVpwYm1Rb0tHTnZiQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSFZ1YVhSeklEMGdZMjlzTG1kbGRGUmhaeWhFUnk1VVFVZFRMbFZPU1ZSVEtUdGNiaUFnSUNCeVpYUjFjbTRnZFc1cGRITWdQeUIxYm1sMGN5NXBibVJsZUU5bUtDZE5VMEVuS1NBaFBUMGdMVEVnT2lCbVlXeHpaVHRjYmlBZ2ZTa2dQejhnYm5Wc2JEdGNiaUFnYVdZZ0tDRnlaWE5EYjJ3Z0ppWWdjMlZ0Vkhsd1pVTnZiRXhwYzNRdWJHVnVaM1JvSUQ0Z01DbGNiaUFnSUNCeVpYTkRiMndnUFNCelpXMVVlWEJsUTI5c1RHbHpkRnN3WFR0Y2JpQWdjbVYwZFhKdUlISmxjME52YkR0Y2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBnZXRTcGxpdHRlckZvckNvbHVtbiwgZ2V0U3RhdHMgfSBmcm9tICcuL21hY3JvbW9sZWN1bGUnO1xuLyoqIENsYXNzIGZvciBoYW5kbGluZyBjb252ZXJzaW9uIG9mIG5vdGF0aW9uIHN5c3RlbXMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgTm90YXRpb25Db252ZXJ0ZXIgZXh0ZW5kcyBVbml0c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbCkge1xuICAgICAgICBzdXBlcihjb2wpO1xuICAgICAgICB0aGlzLl9zcGxpdHRlciA9IG51bGw7XG4gICAgfVxuICAgIGdldCBzcGxpdHRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NwbGl0dGVyID09PSBudWxsKVxuICAgICAgICAgICAgdGhpcy5fc3BsaXR0ZXIgPSBnZXRTcGxpdHRlckZvckNvbHVtbih0aGlzLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdHRlcjtcbiAgICB9XG4gICAgdG9GYXN0YSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLzsgfVxuICAgIHRvU2VwYXJhdG9yKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi87IH1cbiAgICB0b0hlbG0odGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovOyB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIE1hY3JvbW9sZWN1bGUgY29sdW1uIGZyb20gRkFTVEEgdG8gU0VQQVJBVE9SIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yICBBIHNwZWNpZmljIHNlcGFyYXRvciB0byBiZSB1c2VkXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZhc3RhR2FwU3ltYm9sICBHYXAgc3ltYm9sIGluIEZBU1RBLCAnLScgYnkgZGVmYXVsdFxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gICAgICAgIEEgbmV3IGNvbHVtbiBpbiBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKi9cbiAgICBjb252ZXJ0RmFzdGFUb1NlcGFyYXRvcihzZXBhcmF0b3IsIGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgbmV3bHkgY3JlYXRlZCBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmFzdGFQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICBjb25zdCBmYXN0YU1vbm9tZXJzQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGZhc3RhUG9seW1lcik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZhc3RhTW9ub21lcnNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChmYXN0YU1vbm9tZXJzQXJyYXlbaV0gPT09IGZhc3RhR2FwU3ltYm9sKVxuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXlbaV0gPSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFzdGFNb25vbWVyc0FycmF5LmpvaW4oc2VwYXJhdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJzZXBhcmF0b3JcIiAvKiBUQUdTLnNlcGFyYXRvciAqLywgc2VwYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB3cmFwcGVyIHN0cmluZ3MgZm9yIEhFTE0sIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiBtYWNyb21vbGVjdWxlIChwZXB0aWRlLCBETkEsIFJOQSlcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBcnJheSBvZiB3cmFwcGVyc1xuICAgICAqL1xuICAgIGdldEhlbG1XcmFwcGVycygpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gKHRoaXMuaXNEbmEoKSkgPyAnRE5BMXsnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1JOQTF7JyA6XG4gICAgICAgICAgICAgICAgKHRoaXMuaXNQZXB0aWRlKCkpID8gJ1BFUFRJREUxeycgOlxuICAgICAgICAgICAgICAgICAgICAnVW5rbm93bic7IC8vIHRoaXMgY2FzZSBzaG91bGQgYmUgaGFuZGxlZCBhcyBleGNlcHRpb25hbFxuICAgICAgICBpZiAocHJlZml4ID09PSAnVW5rbm93bicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05laXRoZXIgcGVwdGlkZSwgbm9yIG51Y2xlb3RpZGUnKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9ICd9JCQkJztcbiAgICAgICAgY29uc3QgbGVmdFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpKSA/ICdEKCcgOlxuICAgICAgICAgICAgKHRoaXMuaXNSbmEoKSkgPyAnUignIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIGNvbnN0IHJpZ2h0V3JhcHBlciA9ICh0aGlzLmlzRG5hKCkgfHwgdGhpcy5pc1JuYSgpKSA/ICcpUCcgOiAnJzsgLy8gbm8gd3JhcHBlciBmb3IgcGVwdGlkZXNcbiAgICAgICAgcmV0dXJuIFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdO1xuICAgIH1cbiAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiBmb3IgY29udmVydGluZyBzdHJpbmdzIHRvIEhFTE1cbiAgICBjb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc291cmNlUG9seW1lcik7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJIZWxtQXJyYXkgPSBtb25vbWVyQXJyYXkubWFwKChtbSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1tID09PSBzb3VyY2VHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE07XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xlZnRXcmFwcGVyfSR7bW19JHtyaWdodFdyYXBwZXJ9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHttb25vbWVySGVsbUFycmF5LmpvaW4oJy4nKX0ke3Bvc3RmaXh9YDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIHN0cmluZyB3aXRoIFNFUEFSQVRPUi9GQVNUQSBub3RhdGlvbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlUG9seW1lciAgQSBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBzb3VyY2VHYXBTeW1ib2wgIEFuIG9wdGlvbmFsIGdhcCBzeW1ib2wsIHNldCB0b1xuICAgICAqIGRlZmF1bHQgdmFsdWVzICgnLScgZm9yIEZBU1RBIGFuZCAnJyBmb3IgU0VQQVJBVE9SKSB1bmxlc3Mgc3BlY2lmaWVkXG4gICAgICogQHJldHVybiB7c3RyaW5nfSAgVGhlIHRhcmdldCBIRUxNIHN0cmluZ1xuICAgICAqL1xuICAgIGNvbnZlcnRTdHJpbmdUb0hlbG0oc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgY29sdW1uIHRvIEhFTE1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIGNvbnZlcnRUb0hlbG0oc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBTRVBBUkFUT1IgY29sdW1uIHRvIEZBU1RBIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGZhc3RhR2FwU3ltYm9sIE9wdGlvbmFsIGdhcCBzeW1ib2wgZm9yIEZBU1RBXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnRTZXBhcmF0b3JUb0Zhc3RhKGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvclBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBzZXBhcmF0b3JzXG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JJdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihzZXBhcmF0b3JQb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXBhcmF0b3JJdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHNlcGFyYXRvckl0ZW1zQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGZhc3RhR2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqICBDb252ZXJ0IEhFTE0gY29sdW1uIHRvIEZBU1RBL1NFUEFSQVRPUlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndE5vdGF0aW9uICAgIFRhcmdldCBub3RhdGlvbjogRkFTVEEgb3IgU0VQQVJBVE9SXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndFNlcGFyYXRvciAgIE9wdGlvbmFsIHRhcmdldCBzZXBhcmF0b3IgKGZvciBIRUxNIC0+XG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RHYXBTeW1ib2wgICBPcHRpb25hbCB0YXJnZXQgZ2FwIHN5bWJvbFxuICAgICAqIFNFUEFSQVRPUilcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59IENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gJycsIHRndEdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBjb250YWluIGNhbGxzIG9mIGlzRG5hKCkgYW5kIGlzUm5hKCksIGZvclxuICAgICAgICAvLyBzb3VyY2UgaGVsbSBjb2x1bW5zIG1heSBjb250YWluIFJOQSwgRE5BIGFuZCBQVCBhY3Jvc3MgZGlmZmVyZW50IHJvd3NcbiAgICAgICAgaWYgKHRndEdhcFN5bWJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGd0R2FwU3ltYm9sID0gKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpID9cbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgPT09ICcnKVxuICAgICAgICAgICAgdGd0U2VwYXJhdG9yID0gdGhpcy5zZXBhcmF0b3I7XG4gICAgICAgIGNvbnN0IGhlbG1XcmFwcGVyc1JlID0gLyhSXFwofERcXCh8XFwpfFApL2c7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKHRndE5vdGF0aW9uKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWxtUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgLy8gd2UgY2Fubm90IHVzZSBpc0RuYSgpIG9yIGlzUm5hKCkgYmVjYXVzZSBzb3VyY2UgaGVsbSBjb2x1bW5zIGNhblxuICAgICAgICAgICAgLy8gY29udGFpbiBETkEsIFJOQSBhbmQgUFQgaW4gZGlmZmVyZW50IGNlbGxzLCBzbyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAgICAgICAgLy8gdGFncyBjYW5ub3QgYmUgc2V0IGZvciB0aGUgd2hvbGUgY29sdW1uXG4gICAgICAgICAgICBjb25zdCBpc051Y2xlb3RpZGUgPSBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdETkEnKSB8fCBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdSTkEnKTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBoZWxtc1xuICAgICAgICAgICAgY29uc3QgaGVsbUl0ZW1zQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGhlbG1Qb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IHRndE1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVsbUl0ZW1zQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IGhlbG1JdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc051Y2xlb3RpZGUpXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoaGVsbVdyYXBwZXJzUmUsICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PT0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSkge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2godGd0R2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSAmJiBpdGVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2Ugb2YgYSBtdWx0aS1jaGFyYWN0ZXIgbW9ub21lciBjb252ZXJ0ZWQgdG8gRkFTVEFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGd0TW9ub21lcnNBcnJheS5qb2luKHRndFNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBUQUdTLmFsaWduZWQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBnZXRTcGxpdHRlckZvckNvbHVtbihuZXdDb2x1bW4pO1xuICAgICAgICBjb25zdCBzdGF0cyA9IGdldFN0YXRzKG5ld0NvbHVtbiwgNSwgc3BsaXR0ZXIpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLywgYWxpZ25lZCk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIGNvbnZlcnRIZWxtVG9TZXBhcmF0b3IoKSB7XG4gICAgICAgIC8vIFRPRE86IGltcGxlbWVudGF0aW9yZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TmV3Q29sdW1uKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICB9XG4gICAgLyoqIERpc3BhdGNoZXIgbWV0aG9kIGZvciBub3RhdGlvbiBjb252ZXJzaW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0Z3ROb3RhdGlvbiAgIE5vdGF0aW9uIHdlIHdhbnQgdG8gY29udmVydCB0b1xuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0U2VwYXJhdG9yICAgUG9zc2libGUgc2VwYXJhdG9yXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgICAgICAgICBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydCh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gbnVsbCkge1xuICAgICAgICAvLyBwb3NzaWJsZSBleGNlcHRpb25zXG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09PSB0Z3ROb3RhdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IG5vdGF0aW9uIGlzIGludmFsaWQnKTtcbiAgICAgICAgaWYgKHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndGd0IHNlcGFyYXRvciBpcyBub3Qgc3BlY2lmaWVkJyk7XG4gICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RmFzdGFUb1NlcGFyYXRvcih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICBlbHNlIGlmICgodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSAmJiB0aGlzLnRvSGVsbSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtKCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNTZXBhcmF0b3IoKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFNlcGFyYXRvclRvRmFzdGEoKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSAvLyB0aGUgY2FzZSBvZiBIRUxNXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbik7XG4gICAgICAgIGVsc2UgLy8gdGhpcy5pc0hlbG0oKSAmJiB0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvcik7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYm05MFlYUnBiMjR0WTI5dWRtVnlkR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVV0QkxFOUJRVThzUlVGQlF5eFpRVUZaTEVWQlFVTXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVU0zUXl4UFFVRlBMRVZCUVVNc2IwSkJRVzlDTEVWQlFVVXNVVUZCVVN4RlFVRTBReXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlRGSExHbEdRVUZwUmp0QlFVTnFSaXhOUVVGTkxFOUJRVThzYVVKQlFXdENMRk5CUVZFc1dVRkJXVHRKUVRCUWFrUXNXVUZCYlVJc1IwRkJZenRSUVVNdlFpeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRXhVRXdzWTBGQlV5eEhRVUYzUWl4SlFVRkpMRU5CUVVNN1NVRXlVRGxETEVOQlFVTTdTVUY2VUVRc1NVRkJZeXhSUVVGUk8xRkJRM0JDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhKUVVGSk8xbEJRM3BDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM0pFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVMHNUMEZCVHl4RFFVRkRMR05CUVhkQ0xFbEJRV0VzVDBGQlR5eGpRVUZqTEdsRFFVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVY0Uml4WFFVRlhMRU5CUVVNc1kwRkJkMElzU1VGQllTeFBRVUZQTEdOQlFXTXNlVU5CUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJXaEhMRTFCUVUwc1EwRkJReXhqUVVGM1FpeEpRVUZoTEU5QlFVOHNZMEZCWXl3clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTjBZN096czdPenRQUVUxSE8wbEJRMHNzZFVKQlFYVkNMRU5CUVVNc1UwRkJhVUlzUlVGQlJTeHBRa0ZCWjBNc1NVRkJTVHRSUVVOeVJpeEpRVUZKTEdOQlFXTXNTMEZCU3l4SlFVRkpPMWxCUTNwQ0xHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRmVrTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzYzBOQlFXOUNMRU5CUVVNN1VVRkRlRVFzYzBSQlFYTkVPMUZCUTNSRUxGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRlhMRVZCUVVVc1JVRkJSVHRaUVVNM1FpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTXhReXhOUVVGTkxHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdXVUZEZGtRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRGJFUXNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4alFVRmpPMjlDUVVNeFF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zVTBGQlV5eERRVUZETzJGQlEzcEZPMWxCUTBRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE5VTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hUUVVGVExFTkJRVU1zVFVGQlRTeHRRMEZCYVVJc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRE5VTXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NaVUZCWlR0UlFVTnlRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVJc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03YjBKQlEyaERMRk5CUVZNc1EwRkJReXhEUVVGRExEWkRRVUUyUXp0UlFVVTVSQ3hKUVVGSkxFMUJRVTBzUzBGQlN5eFRRVUZUTzFsQlEzUkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRSUVVWeVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkRka0lzVFVGQlRTeFhRVUZYTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRla01zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXd3UWtGQk1FSTdVVUZEZUVRc1RVRkJUU3haUVVGWkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNNRUpCUVRCQ08xRkJRek5HTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGbEJRVmtzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hEUVVGRE8wbEJSVVFzYlVSQlFXMUVPMGxCUXpORExHMUNRVUZ0UWl4RFFVTjZRaXhoUVVGeFFpeEZRVU55UWl4bFFVRjFRaXhGUVVOMlFpeE5RVUZqTEVWQlEyUXNWMEZCYlVJc1JVRkRia0lzV1VGQmIwSXNSVUZEY0VJc1QwRkJaVHRSUVVWbUxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRGJFUXNUVUZCVFN4blFrRkJaMElzUjBGQllTeFpRVUZaTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVU3V1VGRGFrVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1pVRkJaVHRuUWtGRGVFSXNUMEZCVHl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RFFVRkRPenRuUWtGRmFFUXNUMEZCVHl4SFFVRkhMRmRCUVZjc1IwRkJSeXhGUVVGRkxFZEJRVWNzV1VGQldTeEZRVUZGTEVOQlFVTTdVVUZEYUVRc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRFNDeFBRVUZQTEVkQlFVY3NUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhQUVVGUExFVkJRVVVzUTBGQlF6dEpRVU0xUkN4RFFVRkRPMGxCUlVRN096czdPenM3VDBGUFJ6dEpRVU5KTEcxQ1FVRnRRaXhEUVVONFFpeGhRVUZ4UWl4RlFVTnlRaXhyUWtGQmFVTXNTVUZCU1R0UlFVVnlReXhKUVVGSkxHVkJRV1VzUzBGQlN5eEpRVUZKTzFsQlF6RkNMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRSUVVNMVJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWlN4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsSExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5MTEdGQlFXRXNRMEZCUXl4clFrRkJhVU1zU1VGQlNUdFJRVU42UkN4SlFVRkpMR1ZCUVdVc1MwRkJTeXhKUVVGSk8xbEJRekZDTEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZGTVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0UlFVVTFSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N3MFFrRkJaU3hEUVVGRE8xRkJRMjVFTEhkRFFVRjNRenRSUVVONFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRNME1zVDBGQlR5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zWVVGQllTeEZRVUZGTEdWQlFXZENMRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMMGNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4MVFrRkJkVUlzUTBGQlF5eHBRa0ZCWjBNc1NVRkJTVHRSUVVOc1JTeEpRVUZKTEdOQlFXTXNTMEZCU3l4SlFVRkpPMWxCUTNwQ0xHTkJRV01zUjBGQlJ5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUzBGQlN5eERRVUZETzFGQlJUZEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTERoQ1FVRm5RaXhEUVVGRE8xRkJRM0JFTEhkRFFVRjNRenRSUVVONFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU01UXl4elEwRkJjME03V1VGRGRFTXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTTdXVUZETlVRc1RVRkJUU3hyUWtGQmEwSXNSMEZCWVN4RlFVRkZMRU5CUVVNN1dVRkRlRU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYmtRc1RVRkJUU3hKUVVGSkxFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzQkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUzBGQlN5eERRVUZETEVWQlFVVTdiMEpCUTNKQ0xHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGbExFTkJRVU1zUTBGQlF6dHBRa0ZETVVNN2NVSkJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSVHR2UWtGRE1VSXNkME5CUVhkRE8yOUNRVU40UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFZEJRVWNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXp0dlFrRkRha01zYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJsQ1FVTnNRenR4UWtGQlRUdHZRa0ZEVEN4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN2FVSkJReTlDTzJGQlEwWTdXVUZEUkN4UFFVRlBMR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdPenM3VDBGUlJ6dEpRVU5MTEZkQlFWY3NRMEZEYWtJc1YwRkJiVUlzUlVGRGJrSXNaVUZCZFVJc1JVRkJSU3hGUVVONlFpeGxRVUU0UWl4SlFVRkpPMUZCUld4RExHMUZRVUZ0UlR0UlFVTnVSU3gzUlVGQmQwVTdVVUZEZUVVc1NVRkJTU3haUVVGWkxFdEJRVXNzU1VGQlNTeEZRVUZGTzFsQlEzcENMRmxCUVZrc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCZFVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVRc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU16UXl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNVMEZCVXl4RFFVRkRPMU5CUTJwRU8xRkJSVVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVhWQ0xFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NSVUZCUlR0WlFVTnNSU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0UlFVVm9ReXhOUVVGTkxHTkJRV01zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVONlF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3gzUTBGQmQwTTdVVUZEZUVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUXpkQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJYcERMRzFGUVVGdFJUdFpRVU51UlN4dFJVRkJiVVU3V1VGRGJrVXNNRU5CUVRCRE8xbEJRekZETEUxQlFVMHNXVUZCV1N4SFFVRkhMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVVZ3Uml4cFEwRkJhVU03V1VGRGFrTXNUVUZCVFN4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTnNSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRaUVVOMFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzWTBGQll5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRE9VTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTTNRaXhKUVVGSkxGbEJRVms3YjBKQlEyUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWTBGQll5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVNeFF5eEpRVUZKTEVsQlFVa3NTMEZCU3l4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RlFVRkZPMjlDUVVOeVJDeG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQllTeERRVUZETEVOQlFVTTdhVUpCUTNSRE8zRkNRVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGMVFpeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlEyNUZMREpFUVVFeVJEdHZRa0ZETTBRc1RVRkJUU3hQUVVGUExFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNN2IwSkJRMnBETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRhRU03Y1VKQlFVMDdiMEpCUTB3c1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8ybENRVU0zUWp0aFFVTkdPMWxCUTBRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE4wTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hwUmtGQmFVWTdVVUZEYWtZc1RVRkJUU3hSUVVGUkxFZEJRV2xDTEc5Q1FVRnZRaXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF5OUVMRTFCUVUwc1MwRkJTeXhIUVVGblFpeFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU55UkN4VFFVRlRMRU5CUVVNc1RVRkJUU3dyUWtGQlpTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVjRReXhQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlU4c2MwSkJRWE5DTzFGQlF6VkNMR2xFUVVGcFJEdFJRVU5xUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxITkRRVUZ2UWl4RFFVRkRPMGxCUXk5RExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5KTEU5QlFVOHNRMEZCUXl4WFFVRnhRaXhGUVVGRkxHVkJRVGhDTEVsQlFVazdVVUZEZEVVc2MwSkJRWE5DTzFGQlEzUkNMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eFhRVUZYTzFsQlF5OUNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJRenRSUVVNM1F5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzV1VGQldTeExRVUZMTEVsQlFVazdXVUZEZUVRc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eG5RMEZCWjBNc1EwRkJReXhEUVVGRE8xRkJSWEJFTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1dVRkJXU3hMUVVGTExFbEJRVWs3V1VGRE1VVXNUMEZCVHl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1lVRkRMME1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF6dFpRVU42UlN4UFFVRlBMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVVzUTBGQlF6dGhRVU42UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJRenRaUVVOMFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUlVGQlJTeERRVUZETzJGQlEyNURMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzYlVKQlFXMUNPMWxCUTNSRkxFOUJRVThzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRoUVVOc1F5eHBSRUZCYVVRN1dVRkRjRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1JVRkJSU3haUVVGaExFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPME5CUzBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaUJFYnlCdWIzUWdZMmhoYm1kbElIUm9aWE5sSUdsdGNHOXlkQ0JzYVc1bGN5QjBieUJ0WVhSamFDQmxlSFJsY201aGJDQnRiMlIxYkdWeklHbHVJSGRsWW5CaFkyc2dZMjl1Wm1sbmRYSmhkR2x2YmlBcUwxeHVhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWEo5SUdaeWIyMGdKeTR2ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVwYlhCdmNuUWdlMmRsZEZOd2JHbDBkR1Z5Um05eVEyOXNkVzF1TENCblpYUlRkR0YwY3l3Z1RrOVVRVlJKVDA0c0lGTmxjVU52YkZOMFlYUnpMQ0JUY0d4cGRIUmxja1oxYm1Nc0lGUkJSMU45SUdaeWIyMGdKeTR2YldGamNtOXRiMnhsWTNWc1pTYzdYRzVjYmk4cUtpQkRiR0Z6Y3lCbWIzSWdhR0Z1Wkd4cGJtY2dZMjl1ZG1WeWMybHZiaUJ2WmlCdWIzUmhkR2x2YmlCemVYTjBaVzF6SUdsdUlFMWhZM0p2Ylc5c1pXTjFiR1VnWTI5c2RXMXVjeUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRTV2ZEdGMGFXOXVRMjl1ZG1WeWRHVnlJR1Y0ZEdWdVpITWdWVzVwZEhOSVlXNWtiR1Z5SUh0Y2JpQWdjSEpwZG1GMFpTQmZjM0JzYVhSMFpYSTZJRk53YkdsMGRHVnlSblZ1WXlCOElHNTFiR3dnUFNCdWRXeHNPMXh1WEc0Z0lIQnliM1JsWTNSbFpDQm5aWFFnYzNCc2FYUjBaWElvS1RvZ1UzQnNhWFIwWlhKR2RXNWpJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NWZjM0JzYVhSMFpYSWdQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQjBhR2x6TGw5emNHeHBkSFJsY2lBOUlHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLSFJvYVhNdVkyOXNkVzF1S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1ZmMzQnNhWFIwWlhJN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2RHOUdZWE4wWVNoMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSaGNtZGxkRTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1R1FWTlVRVHNnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMU5sY0dGeVlYUnZjaWgwWVhKblpYUk9iM1JoZEdsdmJqb2dUazlVUVZSSlQwNHBPaUJpYjI5c1pXRnVJSHNnY21WMGRYSnVJSFJoY21kbGRFNXZkR0YwYVc5dUlEMDlQU0JPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUk3SUgxY2JseHVJQ0J3ZFdKc2FXTWdkRzlJWld4dEtIUmhjbWRsZEU1dmRHRjBhVzl1T2lCT1QxUkJWRWxQVGlrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xraEZURTA3SUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTI5dWRtVnlkQ0JoSUUxaFkzSnZiVzlzWldOMWJHVWdZMjlzZFcxdUlHWnliMjBnUmtGVFZFRWdkRzhnVTBWUVFWSkJWRTlTSUc1dmRHRjBhVzl1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCelpYQmhjbUYwYjNJZ0lFRWdjM0JsWTJsbWFXTWdjMlZ3WVhKaGRHOXlJSFJ2SUdKbElIVnpaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHWmhjM1JoUjJGd1UzbHRZbTlzSUNCSFlYQWdjM2x0WW05c0lHbHVJRVpCVTFSQkxDQW5MU2NnWW5rZ1pHVm1ZWFZzZEZ4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUNBZ0lDQWdJQ0JCSUc1bGR5QmpiMngxYlc0Z2FXNGdVMFZRUVZKQlZFOVNJRzV2ZEdGMGFXOXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUkdZWE4wWVZSdlUyVndZWEpoZEc5eUtITmxjR0Z5WVhSdmNqb2djM1J5YVc1bkxDQm1ZWE4wWVVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUh3Z2JuVnNiQ0E5SUc1MWJHd3BPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJR2xtSUNobVlYTjBZVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJR1poYzNSaFIyRndVM2x0WW05c0lEMGdkR2hwY3k1a1pXWmhkV3gwUjJGd1UzbHRZbTlzTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnZEdocGN5NW5aWFJPWlhkRGIyeDFiVzRvVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTS1R0Y2JpQWdJQ0F2THlCaGMzTnBaMjRnZEdobElIWmhiSFZsY3lCMGJ5QjBhR1VnYm1WM2JIa2dZM0psWVhSbFpDQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1poYzNSaFVHOXNlVzFsY2lBOUlIUm9hWE11WTI5c2RXMXVMbWRsZENocFpIZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2lobVlYTjBZVkJ2YkhsdFpYSXBPMXh1SUNBZ0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGt1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0daaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVZ0cFhTQTlQVDBnWm1GemRHRkhZWEJUZVcxaWIyd3BYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1VzJsZElEMGdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVTNXFiMmx1S0hObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExuTmxjR0Z5WVhSdmNpd2djMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdkM0poY0hCbGNpQnpkSEpwYm1keklHWnZjaUJJUlV4TkxDQmtaWEJsYm1ScGJtY2diMjRnZEdobElIUjVjR1VnYjJZZ2RHaGxYRzRnSUNBcUlHMWhZM0p2Ylc5c1pXTjFiR1VnS0hCbGNIUnBaR1VzSUVST1FTd2dVazVCS1Z4dUlDQWdLbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMGdRWEp5WVhrZ2IyWWdkM0poY0hCbGNuTmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdaMlYwU0dWc2JWZHlZWEJ3WlhKektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRVRrRXhleWNnT2x4dUlDQWdJQ0FnS0hSb2FYTXVhWE5TYm1Fb0tTa2dQeUFuVWs1Qk1Yc25JRHBjYmlBZ0lDQWdJQ0FnS0hSb2FYTXVhWE5RWlhCMGFXUmxLQ2twSUQ4Z0oxQkZVRlJKUkVVeGV5Y2dPbHh1SUNBZ0lDQWdJQ0FnSUNkVmJtdHViM2R1SnpzZ0x5OGdkR2hwY3lCallYTmxJSE5vYjNWc1pDQmlaU0JvWVc1a2JHVmtJR0Z6SUdWNFkyVndkR2x2Ym1Gc1hHNWNiaUFnSUNCcFppQW9jSEpsWm1sNElEMDlQU0FuVlc1cmJtOTNiaWNwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDVsYVhSb1pYSWdjR1Z3ZEdsa1pTd2dibTl5SUc1MVkyeGxiM1JwWkdVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhCdmMzUm1hWGdnUFNBbmZTUWtKQ2M3WEc0Z0lDQWdZMjl1YzNRZ2JHVm1kRmR5WVhCd1pYSWdQU0FvZEdocGN5NXBjMFJ1WVNncEtTQS9JQ2RFS0NjZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVpZ25JRG9nSnljN0lDOHZJRzV2SUhkeVlYQndaWElnWm05eUlIQmxjSFJwWkdWelhHNGdJQ0FnWTI5dWMzUWdjbWxuYUhSWGNtRndjR1Z5SUQwZ0tIUm9hWE11YVhORWJtRW9LU0I4ZkNCMGFHbHpMbWx6VW01aEtDa3BJRDhnSnlsUUp5QTZJQ2NuT3lBdkx5QnVieUIzY21Gd2NHVnlJR1p2Y2lCd1pYQjBhV1JsYzF4dUlDQWdJSEpsZEhWeWJpQmJjSEpsWm1sNExDQnNaV1owVjNKaGNIQmxjaXdnY21sbmFIUlhjbUZ3Y0dWeUxDQndiM04wWm1sNFhUdGNiaUFnZlZ4dVhHNGdJQzh2SUVFZ2FHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQmpiMjUyWlhKMGFXNW5JSE4wY21sdVozTWdkRzhnU0VWTVRWeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvWEc0Z0lDQWdjMjkxY21ObFVHOXNlVzFsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSE52ZFhKalpVZGhjRk41YldKdmJEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeVpXWnBlRG9nYzNSeWFXNW5MRnh1SUNBZ0lHeGxablJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtbG5hSFJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHOXpkR1pwZURvZ2MzUnlhVzVuWEc0Z0lDazZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYlc5dWIyMWxja0Z5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2loemIzVnlZMlZRYjJ4NWJXVnlLVHRjYmlBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5U0dWc2JVRnljbUY1T2lCemRISnBibWRiWFNBOUlHMXZibTl0WlhKQmNuSmhlUzV0WVhBb0tHMXRPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiU0E5UFQwZ2MyOTFjbU5sUjJGd1UzbHRZbTlzS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1U0VWTVRUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0FrZTJ4bFpuUlhjbUZ3Y0dWeWZTUjdiVzE5Skh0eWFXZG9kRmR5WVhCd1pYSjlZRHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdjSEpsWm1sNGZTUjdiVzl1YjIxbGNraGxiRzFCY25KaGVTNXFiMmx1S0NjdUp5bDlKSHR3YjNOMFptbDRmV0E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCaElITjBjbWx1WnlCM2FYUm9JRk5GVUVGU1FWUlBVaTlHUVZOVVFTQnViM1JoZEdsdmJpQjBieUJJUlV4TlhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpiM1Z5WTJWUWIyeDViV1Z5SUNCQklITjBjbWx1WnlCMGJ5QmlaU0JqYjI1MlpYSjBaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkV3hzZlNCemIzVnlZMlZIWVhCVGVXMWliMndnSUVGdUlHOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd3NJSE5sZENCMGIxeHVJQ0FnS2lCa1pXWmhkV3gwSUhaaGJIVmxjeUFvSnkwbklHWnZjaUJHUVZOVVFTQmhibVFnSnljZ1ptOXlJRk5GVUVGU1FWUlBVaWtnZFc1c1pYTnpJSE53WldOcFptbGxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlDQlVhR1VnZEdGeVoyVjBJRWhGVEUwZ2MzUnlhVzVuWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWRtVnlkRk4wY21sdVoxUnZTR1ZzYlNoY2JpQWdJQ0J6YjNWeVkyVlFiMng1YldWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkZ4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2h6YjNWeVkyVkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc0Z0lDQWdZMjl1YzNRZ1czQnlaV1pwZUN3Z2JHVm1kRmR5WVhCd1pYSXNJSEpwWjJoMFYzSmhjSEJsY2l3Z2NHOXpkR1pwZUYwZ1BTQjBhR2x6TG1kbGRFaGxiRzFYY21Gd2NHVnljeWdwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNMQ0J3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnWVNCamIyeDFiVzRnZEc4Z1NFVk1UVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJSE52ZFhKalpVZGhjRk41YldKdmJGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SVWIwaGxiRzBvYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLSE52ZFhKalpVZGhjRk41YldKdmJDQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lITnZkWEpqWlVkaGNGTjViV0p2YkNBOUlIUm9hWE11WkdWbVlYVnNkRWRoY0ZONWJXSnZiRHRjYmx4dUlDQWdJR052Ym5OMElGdHdjbVZtYVhnc0lHeGxablJYY21Gd2NHVnlMQ0J5YVdkb2RGZHlZWEJ3WlhJc0lIQnZjM1JtYVhoZElEMGdkR2hwY3k1blpYUklaV3h0VjNKaGNIQmxjbk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUhSb2FYTXVaMlYwVG1WM1EyOXNkVzF1S0U1UFZFRlVTVTlPTGtoRlRFMHBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpWQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNJU3dnY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUWdVMFZRUVZKQlZFOVNJR052YkhWdGJpQjBieUJHUVZOVVFTQnViM1JoZEdsdmJseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlHWmhjM1JoUjJGd1UzbHRZbTlzSUU5d2RHbHZibUZzSUdkaGNDQnplVzFpYjJ3Z1ptOXlJRVpCVTFSQlhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4wZ0lFTnZiblpsY25SbFpDQmpiMngxYlc1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEZObGNHRnlZWFJ2Y2xSdlJtRnpkR0VvWm1GemRHRkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzS1RvZ1JFY3VRMjlzZFcxdUlIdGNiaUFnSUNCcFppQW9abUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCbVlYTjBZVWRoY0ZONWJXSnZiQ0E5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdkR2hwY3k1blpYUk9aWGREYjJ4MWJXNG9UazlVUVZSSlQwNHVSa0ZUVkVFcE8xeHVJQ0FnSUM4dklHRnpjMmxuYmlCMGFHVWdkbUZzZFdWeklIUnZJSFJvWlNCbGJYQjBlU0JqYjJ4MWJXNWNiaUFnSUNCdVpYZERiMngxYlc0dWFXNXBkQ2dvYVdSNE9pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElITmxjR0Z5WVhSdmNsQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJQzh2SUdsMFpXMXpJR05oYmlCaVpTQnRiMjV2YldWeWN5QnZjaUJ6WlhCaGNtRjBiM0p6WEc0Z0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSkpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpaWEJoY21GMGIzSlFiMng1YldWeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdaaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJWd1lYSmhkRzl5U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVWdHBYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzB1YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29abUZ6ZEdGSFlYQlRlVzFpYjJ3aEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hwZEdWdExteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QjBhR1VnWTJGelpTQnZaaUJoSUcxMWJIUnBMV05vWVhKaFkzUmxjaUJ0YjI1dmJXVnlYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiVzl1YjIxbGNpQTlJQ2RiSnlBcklHbDBaVzBnS3lBblhTYzdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29iVzl1YjIxbGNpazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrdWFtOXBiaWduSnlrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZDBOdmJIVnRianRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lBZ1EyOXVkbVZ5ZENCSVJVeE5JR052YkhWdGJpQjBieUJHUVZOVVFTOVRSVkJCVWtGVVQxSmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJuZEU1dmRHRjBhVzl1SUNBZ0lGUmhjbWRsZENCdWIzUmhkR2x2YmpvZ1JrRlRWRUVnYjNJZ1UwVlFRVkpCVkU5U1hHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWjNSVFpYQmhjbUYwYjNJZ0lDQlBjSFJwYjI1aGJDQjBZWEpuWlhRZ2MyVndZWEpoZEc5eUlDaG1iM0lnU0VWTVRTQXRQbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhSbmRFZGhjRk41YldKdmJDQWdJRTl3ZEdsdmJtRnNJSFJoY21kbGRDQm5ZWEFnYzNsdFltOXNYRzRnSUNBcUlGTkZVRUZTUVZSUFVpbGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZTQkRiMjUyWlhKMFpXUWdZMjlzZFcxdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SSVpXeHRLRnh1SUNBZ0lIUm5kRTV2ZEdGMGFXOXVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RHZDBVMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY2dQU0FuSnl4Y2JpQWdJQ0IwWjNSSFlYQlRlVzFpYjJ3NklITjBjbWx1WnlCOElHNTFiR3dnUFNCdWRXeHNYRzRnSUNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ0x5OGdWR2hwY3lCbWRXNWpkR2x2YmlCdGRYTjBJRzV2ZENCamIyNTBZV2x1SUdOaGJHeHpJRzltSUdselJHNWhLQ2tnWVc1a0lHbHpVbTVoS0Nrc0lHWnZjbHh1SUNBZ0lDOHZJSE52ZFhKalpTQm9aV3h0SUdOdmJIVnRibk1nYldGNUlHTnZiblJoYVc0Z1VrNUJMQ0JFVGtFZ1lXNWtJRkJVSUdGamNtOXpjeUJrYVdabVpYSmxiblFnY205M2MxeHVJQ0FnSUdsbUlDaDBaM1JIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhSbmRFZGhjRk41YldKdmJDQTlJQ2gwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNGdZWE1nVGs5VVFWUkpUMDRwS1NBL1hHNGdJQ0FnSUNBZ0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNBZ1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVUwVlFRVkpCVkU5U08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5SdlUyVndZWEpoZEc5eUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQjBaM1JUWlhCaGNtRjBiM0lnUFQwOUlDY25LVnh1SUNBZ0lDQWdkR2QwVTJWd1lYSmhkRzl5SUQwZ2RHaHBjeTV6WlhCaGNtRjBiM0k3WEc1Y2JpQWdJQ0JqYjI1emRDQm9aV3h0VjNKaGNIQmxjbk5TWlNBOUlDOG9VbHhjS0h4RVhGd29mRnhjS1h4UUtTOW5PMXh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1R0Y2JpQWdJQ0F2THlCaGMzTnBaMjRnZEdobElIWmhiSFZsY3lCMGJ5QjBhR1VnWlcxd2RIa2dZMjlzZFcxdVhHNGdJQ0FnYm1WM1EyOXNkVzF1TG1sdWFYUW9LR2xrZURvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCb1pXeHRVRzlzZVcxbGNpQTlJSFJvYVhNdVkyOXNkVzF1TG1kbGRDaHBaSGdwTzF4dVhHNGdJQ0FnSUNBdkx5QjNaU0JqWVc1dWIzUWdkWE5sSUdselJHNWhLQ2tnYjNJZ2FYTlNibUVvS1NCaVpXTmhkWE5sSUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ1kyRnVYRzRnSUNBZ0lDQXZMeUJqYjI1MFlXbHVJRVJPUVN3Z1VrNUJJR0Z1WkNCUVZDQnBiaUJrYVdabVpYSmxiblFnWTJWc2JITXNJSE52SUhSb1pTQmpiM0p5WlhOd2IyNWthVzVuWEc0Z0lDQWdJQ0F2THlCMFlXZHpJR05oYm01dmRDQmlaU0J6WlhRZ1ptOXlJSFJvWlNCM2FHOXNaU0JqYjJ4MWJXNWNiaUFnSUNBZ0lHTnZibk4wSUdselRuVmpiR1Z2ZEdsa1pTQTlJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0owUk9RU2NwSUh4OElHaGxiRzFRYjJ4NWJXVnlMbk4wWVhKMGMxZHBkR2dvSjFKT1FTY3BPMXh1WEc0Z0lDQWdJQ0F2THlCcGRHVnRjeUJqWVc0Z1ltVWdiVzl1YjIxbGNuTWdiM0lnYUdWc2JYTmNiaUFnSUNBZ0lHTnZibk4wSUdobGJHMUpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaG9aV3h0VUc5c2VXMWxjaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCb1pXeHRTWFJsYlhOQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYVhSbGJTQTlJR2hsYkcxSmRHVnRjMEZ5Y21GNVcybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk9kV05zWlc5MGFXUmxLVnh1SUNBZ0lDQWdJQ0FnSUdsMFpXMGdQU0JwZEdWdExuSmxjR3hoWTJVb2FHVnNiVmR5WVhCd1pYSnpVbVVzSUNjbktUdGNiaUFnSUNBZ0lDQWdhV1lnS0dsMFpXMGdQVDA5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29kR2QwUjJGd1UzbHRZbTlzSVNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1MGIwWmhjM1JoS0hSbmRFNXZkR0YwYVc5dUlHRnpJRTVQVkVGVVNVOU9LU0FtSmlCcGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5SUdOdmJuWmxjblJsWkNCMGJ5QkdRVk5VUVZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxdmJtOXRaWElnUFNBbld5Y2dLeUJwZEdWdElDc2dKMTBuTzF4dUlDQWdJQ0FnSUNBZ0lIUm5kRTF2Ym05dFpYSnpRWEp5WVhrdWNIVnphQ2h0YjI1dmJXVnlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMFozUk5iMjV2YldWeWMwRnljbUY1TG1wdmFXNG9kR2QwVTJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JseHVJQ0FnSUM4dklGUkJSMU11WVd4cFoyNWxaQ0JwY3lCdFlXNWtZWFJ2Y25rZ1ptOXlJR052YkhWdGJuTWdiMllnVGs5VVFWUkpUMDR1UmtGVFZFRWdZVzVrSUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWx4dUlDQWdJR052Ym5OMElITndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1nUFNCblpYUlRjR3hwZEhSbGNrWnZja052YkhWdGJpaHVaWGREYjJ4MWJXNHBPMXh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlHZGxkRk4wWVhSektHNWxkME52YkhWdGJpd2dOU3dnYzNCc2FYUjBaWElwTzF4dUlDQWdJR052Ym5OMElHRnNhV2R1WldRZ1BTQnpkR0YwY3k1ellXMWxUR1Z1WjNSb0lEOGdKMU5GVVM1TlUwRW5JRG9nSjFORlVTYzdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloVVFVZFRMbUZzYVdkdVpXUXNJR0ZzYVdkdVpXUXBPMXh1WEc0Z0lDQWdjbVYwZFhKdUlHNWxkME52YkhWdGJqdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRFaGxiRzFVYjFObGNHRnlZWFJ2Y2lncE9pQkVSeTVEYjJ4MWJXNGdlMXh1SUNBZ0lDOHZJRlJQUkU4NklHbHRjR3hsYldWdWRHRjBhVzl5WlhSMWNtNGdkR2hwY3k1blpYUk9aWGREYjJ4MWJXNG9LVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVuWlhST1pYZERiMngxYlc0b1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCRWFYTndZWFJqYUdWeUlHMWxkR2h2WkNCbWIzSWdibTkwWVhScGIyNGdZMjl1ZG1WeWMybHZibHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTA1UFZFRlVTVTlPZlNCMFozUk9iM1JoZEdsdmJpQWdJRTV2ZEdGMGFXOXVJSGRsSUhkaGJuUWdkRzhnWTI5dWRtVnlkQ0IwYjF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlIUm5kRk5sY0dGeVlYUnZjaUFnSUZCdmMzTnBZbXhsSUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRU52Ym5abGNuUmxaQ0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmpiMjUyWlhKMEtIUm5kRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaXdnZEdkMFUyVndZWEpoZEc5eU9pQnpkSEpwYm1jZ2ZDQnVkV3hzSUQwZ2JuVnNiQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z2NHOXpjMmxpYkdVZ1pYaGpaWEIwYVc5dWMxeHVJQ0FnSUdsbUlDaDBhR2x6TG01dmRHRjBhVzl1SUQwOVBTQjBaM1JPYjNSaGRHbHZiaWxjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpZ25kR2QwSUc1dmRHRjBhVzl1SUdseklHbHVkbUZzYVdRbktUdGNiaUFnSUNCcFppQW9kR2hwY3k1MGIxTmxjR0Z5WVhSdmNpaDBaM1JPYjNSaGRHbHZiaWtnSmlZZ2RHZDBVMlZ3WVhKaGRHOXlJRDA5UFNCdWRXeHNLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZDBaM1FnYzJWd1lYSmhkRzl5SUdseklHNXZkQ0J6Y0dWamFXWnBaV1FuS1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1selJtRnpkR0VvS1NBbUppQjBhR2x6TG5SdlUyVndZWEpoZEc5eUtIUm5kRTV2ZEdGMGFXOXVLU0FtSmlCMFozUlRaWEJoY21GMGIzSWdJVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBSbUZ6ZEdGVWIxTmxjR0Z5WVhSdmNpaDBaM1JUWlhCaGNtRjBiM0lwTzF4dUlDQWdJR1ZzYzJVZ2FXWWdLQ2gwYUdsekxtbHpSbUZ6ZEdFb0tTQjhmQ0IwYUdsekxtbHpVMlZ3WVhKaGRHOXlLQ2twSUNZbUlIUm9hWE11ZEc5SVpXeHRLSFJuZEU1dmRHRjBhVzl1S1NsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzBvS1R0Y2JpQWdJQ0JsYkhObElHbG1JQ2gwYUdsekxtbHpVMlZ3WVhKaGRHOXlLQ2tnSmlZZ2RHaHBjeTUwYjBaaGMzUmhLSFJuZEU1dmRHRjBhVzl1S1NsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVFpYQmhjbUYwYjNKVWIwWmhjM1JoS0NrN1hHNGdJQ0FnWld4elpTQnBaaUFvZEdocGN5NXBjMGhsYkcwb0tTQW1KaUIwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNHBLU0F2THlCMGFHVWdZMkZ6WlNCdlppQklSVXhOWEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyNTJaWEowU0dWc2JTaDBaM1JPYjNSaGRHbHZiaWs3WEc0Z0lDQWdaV3h6WlNBdkx5QjBhR2x6TG1selNHVnNiU2dwSUNZbUlIUm9hWE11ZEc5VFpYQmhjbUYwYjNJb2RHZDBUbTkwWVhScGIyNHBYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjI1MlpYSjBTR1ZzYlNoMFozUk9iM1JoZEdsdmJpd2dkR2QwVTJWd1lYSmhkRzl5SVNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1kyOXVjM1J5ZFdOMGIzSW9ZMjlzT2lCRVJ5NURiMngxYlc0cElIdGNiaUFnSUNCemRYQmxjaWhqYjJ3cE8xeHVJQ0I5WEc1OVhHNGlYWDA9IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGdldFNwbGl0dGVyRm9yQ29sdW1uIH0gZnJvbSAnLi9tYWNyb21vbGVjdWxlJztcbmV4cG9ydCBmdW5jdGlvbiBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoc2VxdWVuY2VDb2x1bW4pIHtcbiAgICBjb25zdCBzcGxpdHRlciA9IGdldFNwbGl0dGVyRm9yQ29sdW1uKHNlcXVlbmNlQ29sdW1uKTtcbiAgICBjb25zdCBnZXRDb2wgPSAoaW5kZXgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gY29sdW1uTGlzdFtpbmRleF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7IH07XG4gICAgY29uc3QgY3JlYXRlQ29sID0gKGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ29sID0gcmVzdWx0RGYuY29sdW1ucy5hZGROZXdTdHJpbmcoKGluZGV4ICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbHVtbkxpc3QucHVzaChwb3NpdGlvbkNvbCk7XG4gICAgICAgIHJldHVybiBwb3NpdGlvbkNvbDtcbiAgICB9O1xuICAgIGNvbnN0IGNvbHVtbkxpc3QgPSBbXTtcbiAgICBjb25zdCByb3dDb3VudCA9IHNlcXVlbmNlQ29sdW1uLmxlbmd0aDtcbiAgICBjb25zdCByZXN1bHREZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUocm93Q291bnQpO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCByb3dDb3VudDsgKytyb3dJbmRleCkge1xuICAgICAgICBjb25zdCBzZXF1ZW5jZSA9IHNlcXVlbmNlQ29sdW1uLmdldChyb3dJbmRleCk7XG4gICAgICAgIGlmIChzZXF1ZW5jZSA9PSBudWxsKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb25vbWVyTGlzdCA9IHNwbGl0dGVyKHNlcXVlbmNlKTtcbiAgICAgICAgY3VycmVudE1vbm9tZXJMaXN0LmZvckVhY2goKG1vbm9tZXIsIHBvc2l0aW9uSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGdldENvbChwb3NpdGlvbkluZGV4KSB8fCBjcmVhdGVDb2wocG9zaXRpb25JbmRleCk7XG4gICAgICAgICAgICBjb2wuc2V0KHJvd0luZGV4LCBtb25vbWVyIHx8ICctJywgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdERmO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCc2FYUjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpjR3hwZEhSbGNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhSRExFOUJRVThzUlVGQlF5eHZRa0ZCYjBJc1JVRkJReXhOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhKRUxFMUJRVTBzVlVGQlZTeHhRa0ZCY1VJc1EwRkJReXhqUVVGcFF6dEpRVU55UlN4TlFVRk5MRkZCUVZFc1IwRkJSeXh2UWtGQmIwSXNRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRKUVVOMFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRXRCUVdFc1JVRkJORUlzUlVGQlJTeFhRVUZETEU5QlFVRXNUVUZCUVN4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExHMURRVUZKTEVsQlFVa3NRMEZCUVN4RlFVRkJMRU5CUVVNN1NVRkRkRVlzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4TFFVRmhMRVZCUVhGQ0xFVkJRVVU3VVVGRGNrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXhSU3hWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFOUJRVThzVjBGQlZ5eERRVUZETzBsQlEzSkNMRU5CUVVNc1EwRkJRenRKUVVWR0xFMUJRVTBzVlVGQlZTeEhRVUYzUWl4RlFVRkZMRU5CUVVNN1NVRkRNME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NZMEZCWXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVVXZReXhMUVVGTExFbEJRVWtzVVVGQlVTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRWRCUVVjc1VVRkJVU3hGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTzFGQlEzUkVMRTFCUVUwc1VVRkJVU3hIUVVGSExHTkJRV01zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeFJRVUZSTEVsQlFVa3NTVUZCU1R0WlFVTnNRaXhUUVVGVE8xRkJSVmdzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhSUVVGUkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZET1VNc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeEZRVUZGTzFsQlEzQkVMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4VFFVRlRMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03V1VGRE9VUXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzVDBGQlR5eEpRVUZKTEVkQlFVY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNelF5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUlVRc1QwRkJUeXhSUVVGUkxFTkJRVU03UVVGRGJFSXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1sdGNHOXlkQ0I3WjJWMFUzQnNhWFIwWlhKR2IzSkRiMngxYlc1OUlHWnliMjBnSnk0dmJXRmpjbTl0YjJ4bFkzVnNaU2M3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCemNHeHBkRUZzYVdkdVpXUlRaWEYxWlc1alpYTW9jMlZ4ZFdWdVkyVkRiMngxYlc0NklFUkhMa052YkhWdGJqeHpkSEpwYm1jK0tUb2dSRWN1UkdGMFlVWnlZVzFsSUh0Y2JpQWdZMjl1YzNRZ2MzQnNhWFIwWlhJZ1BTQm5aWFJUY0d4cGRIUmxja1p2Y2tOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkhWdGJpazdYRzRnSUdOdmJuTjBJR2RsZEVOdmJDQTlJQ2hwYm1SbGVEb2diblZ0WW1WeUtUb2dSRWN1UTI5c2RXMXVQSE4wY21sdVp6NGdmQ0J1ZFd4c0lEMCtJR052YkhWdGJreHBjM1JiYVc1a1pYaGRJRDgvSUc1MWJHdzdYRzRnSUdOdmJuTjBJR055WldGMFpVTnZiQ0E5SUNocGJtUmxlRG9nYm5WdFltVnlLVG9nUkVjdVEyOXNkVzF1UEhOMGNtbHVaejRnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEJ2YzJsMGFXOXVRMjlzSUQwZ2NtVnpkV3gwUkdZdVkyOXNkVzF1Y3k1aFpHUk9aWGRUZEhKcGJtY29LR2x1WkdWNElDc2dNU2t1ZEc5VGRISnBibWNvS1NrN1hHNGdJQ0FnWTI5c2RXMXVUR2x6ZEM1d2RYTm9LSEJ2YzJsMGFXOXVRMjlzS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjRzl6YVhScGIyNURiMnc3WEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnWTI5c2RXMXVUR2x6ZERvZ1JFY3VRMjlzZFcxdVBITjBjbWx1Wno1YlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCeWIzZERiM1Z1ZENBOUlITmxjWFZsYm1ObFEyOXNkVzF1TG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnY21WemRXeDBSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtISnZkME52ZFc1MEtUdGNibHh1SUNCbWIzSWdLR3hsZENCeWIzZEpibVJsZUNBOUlEQTdJSEp2ZDBsdVpHVjRJRHdnY205M1EyOTFiblE3SUNzcmNtOTNTVzVrWlhncElIdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaU0E5SUhObGNYVmxibU5sUTI5c2RXMXVMbWRsZENoeWIzZEpibVJsZUNrN1hHNGdJQ0FnYVdZZ0tITmxjWFZsYm1ObElEMDlJRzUxYkd3cFhHNGdJQ0FnSUNCamIyNTBhVzUxWlR0Y2JseHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk5iMjV2YldWeVRHbHpkQ0E5SUhOd2JHbDBkR1Z5S0hObGNYVmxibU5sS1R0Y2JpQWdJQ0JqZFhKeVpXNTBUVzl1YjIxbGNreHBjM1F1Wm05eVJXRmphQ2dvYlc5dWIyMWxjaXdnY0c5emFYUnBiMjVKYm1SbGVDa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMjlzSUQwZ1oyVjBRMjlzS0hCdmMybDBhVzl1U1c1a1pYZ3BJSHg4SUdOeVpXRjBaVU52YkNod2IzTnBkR2x2YmtsdVpHVjRLVHRjYmlBZ0lDQWdJR052YkM1elpYUW9jbTkzU1c1a1pYZ3NJRzF2Ym05dFpYSWdmSHdnSnkwbkxDQm1ZV3h6WlNrN1hHNGdJQ0FnZlNrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2NtVnpkV3gwUkdZN1hHNTlYRzRpWFgwPSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBnZXRTdGF0cywgc3BsaXR0ZXJBc0Zhc3RhLCBkZXRlY3RBbHBoYWJldCB9IGZyb20gJy4vbWFjcm9tb2xlY3VsZSc7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIG5vdGF0aW9uIHVuaXRzIGluIE1hY3JvbW9sZWN1bGUgY29sdW1ucyAqL1xuZXhwb3J0IGNsYXNzIFVuaXRzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbiA9IGNvbDtcbiAgICAgICAgY29uc3QgdW5pdHMgPSB0aGlzLl9jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgaWYgKHVuaXRzICE9PSBudWxsKVxuICAgICAgICAgICAgdGhpcy5fdW5pdHMgPSB1bml0cztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbml0cyBhcmUgbm90IHNwZWNpZmllZCBpbiBjb2x1bW4nKTtcbiAgICAgICAgdGhpcy5fbm90YXRpb24gPSB0aGlzLmdldE5vdGF0aW9uKCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2wgPSAodGhpcy5pc0Zhc3RhKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgKHRoaXMuaXNIZWxtKCkpID8gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiYWxpZ25lZFwiIC8qIFRBR1MuYWxpZ25lZCAqLykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7XCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoXCIuYWxwaGFiZXRTaXplXCIgLyogVEFHUy5hbHBoYWJldFNpemUgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKFsnVU4nXS5pbmNsdWRlcyh0aGlzLmFscGhhYmV0KSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqL30nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFwiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi8pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1wiLmFscGhhYmV0SXNNdWx0aWNoYXJcIiAvKiBUQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIgKi99JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2wpIHtcbiAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zhc3RhIGNvbHVtbiBtdXN0IGJlIE1BQ1JPTU9MRUNVTEUnKTtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBnZXRTdGF0cyhjb2wsIDUsIHNwbGl0dGVyQXNGYXN0YSk7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBzdGF0cy5zYW1lTGVuZ3RoID8gJ1NFUS5NU0EnIDogJ1NFUSc7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ID0gZGV0ZWN0QWxwaGFiZXQoc3RhdHMpO1xuICAgICAgICBjb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyk7XG4gICAgICAgIGNvbC5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBhbGlnbmVkKTtcbiAgICAgICAgY29sLnNldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLywgYWxwaGFiZXQpO1xuICAgIH1cbiAgICBnZXQgdW5pdHMoKSB7IHJldHVybiB0aGlzLl91bml0czsgfVxuICAgIGdldCBjb2x1bW4oKSB7IHJldHVybiB0aGlzLl9jb2x1bW47IH1cbiAgICBnZXQgbm90YXRpb24oKSB7IHJldHVybiB0aGlzLl9ub3RhdGlvbjsgfVxuICAgIGdldCBkZWZhdWx0R2FwU3ltYm9sKCkgeyByZXR1cm4gdGhpcy5fZGVmYXVsdEdhcFN5bWJvbDsgfVxuICAgIGdldCBzZXBhcmF0b3IoKSB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuY29sdW1uLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKTtcbiAgICAgICAgaWYgKHNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2VwYXJhdG9yIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduZWQoKSB7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovKTtcbiAgICAgICAgLy8gVEFHUy5hbGlnbmVkIGlzIG1hbmRhdG9yeSBmb3IgY29sdW1ucyBvZiBOT1RBVElPTi5GQVNUQSBhbmQgTk9UQVRJT04uU0VQQVJBVE9SXG4gICAgICAgIGlmICghYWxpZ25lZCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFsaWduZWQgbm90IHNldCcpO1xuICAgICAgICByZXR1cm4gYWxpZ25lZDtcbiAgICB9XG4gICAgLyoqIEFscGhhYmV0IG5hbWUgKHVwcGVyIGNhc2UpICovXG4gICAgZ2V0IGFscGhhYmV0KCkge1xuICAgICAgICBjb25zdCBhbHBoYWJldCA9IHRoaXMuY29sdW1uLmdldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLyk7XG4gICAgICAgIC8vIFRBR1MuYWxwaGFiZXQgaXMgbWFuZGF0b3J5IGZvciBjb2x1bW5zIG9mIE5PVEFUSU9OLkZBU1RBIGFuZCBOT1RBVElPTi5TRVBBUkFUT1JcbiAgICAgICAgaWYgKCFhbHBoYWJldCAmJiAodGhpcy5pc0Zhc3RhKCkgfHwgdGhpcy5pc1NlcGFyYXRvcigpKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgcmV0dXJuIGFscGhhYmV0O1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KHRoaXMuY29sdW1uLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLykpO1xuICAgICAgICAgICAgcmV0dXJuIGFscGhhYmV0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5hbHBoYWJldCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLzpcbiAgICAgICAgICAgICAgICBjYXNlIFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBjYXNlICdOVCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCBhbHBoYWJldCAnTlQnLmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5nZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLykgPT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlzRmFzdGEoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICBpc1NlcGFyYXRvcigpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgaXNIZWxtKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIGlzUm5hKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1JOQSc7IH1cbiAgICBpc0RuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdETkEnOyB9XG4gICAgaXNQZXB0aWRlKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1BUJzsgfVxuICAgIGlzTXNhKCkgeyByZXR1cm4gdGhpcy5hbGlnbmVkID8gdGhpcy5hbGlnbmVkLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMoJ01TQScpIDogZmFsc2U7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0YXJnZXROb3RhdGlvbik7XG4gICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoREcuVEFHUy5DRUxMX1JFTkRFUkVSLCAnTWFjcm9tb2xlY3VsZScpO1xuICAgICAgICBjb25zdCBzcmNBbGlnbmVkID0gY29sLmdldFRhZyhcImFsaWduZWRcIiAvKiBUQUdTLmFsaWduZWQgKi8pO1xuICAgICAgICBpZiAoc3JjQWxpZ25lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCJhbGlnbmVkXCIgLyogVEFHUy5hbGlnbmVkICovLCBzcmNBbGlnbmVkKTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBjb2wuZ2V0VGFnKFwiYWxwaGFiZXRcIiAvKiBUQUdTLmFscGhhYmV0ICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0KVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhcImFscGhhYmV0XCIgLyogVEFHUy5hbHBoYWJldCAqLywgc3JjQWxwaGFiZXQpO1xuICAgICAgICBsZXQgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhcIi5hbHBoYWJldFNpemVcIiAvKiBUQUdTLmFscGhhYmV0U2l6ZSAqLyk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldFNpemUpXG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICBjb25zdCBzcmNBbHBoYWJldElzTXVsdGljaGFyID0gY29sLmdldFRhZyhcIi5hbHBoYWJldElzTXVsdGljaGFyXCIgLyogVEFHUy5hbHBoYWJldElzTXVsdGljaGFyICovKTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoXCIuYWxwaGFiZXRJc011bHRpY2hhclwiIC8qIFRBR1MuYWxwaGFiZXRJc011bHRpY2hhciAqLywgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSB7XG4gICAgICAgICAgICBzcmNBbHBoYWJldFNpemUgPSB0aGlzLmdldEFscGhhYmV0U2l6ZSgpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFwiLmFscGhhYmV0U2l6ZVwiIC8qIFRBR1MuYWxwaGFiZXRTaXplICovLCBzcmNBbHBoYWJldFNpemUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QgPSB7XG4gICAgSEVMTTogJyonLFxuICAgIFNFUEFSQVRPUjogJycsXG4gICAgRkFTVEE6ICctJyxcbn07XG5Vbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFtcbiAgICAnRycsICdMJywgJ1knLCAnUycsICdFJywgJ1EnLCAnRCcsICdOJywgJ0YnLCAnQScsXG4gICAgJ0snLCAnUicsICdIJywgJ0MnLCAnVicsICdQJywgJ1cnLCAnSScsICdNJywgJ1QnLFxuXSk7XG5Vbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdUJ10pO1xuVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVSddKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXBkSE10YUdGdVpHeGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhWFJ6TFdoaGJtUnNaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVbDBReXhQUVVGUExFVkJSVXdzVVVGQlVTeEZRVVZTTEdWQlFXVXNSVUZEWml4alFVRmpMRVZCUTJZc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVVjZRaXhwUlVGQmFVVTdRVUZEYWtVc1RVRkJUU3hQUVVGUExGbEJRVms3U1VFeVRuWkNMRmxCUVcxQ0xFZEJRV003VVVGREwwSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGJrSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU12UXl4SlFVRkpMRXRCUVVzc1MwRkJTeXhKUVVGSk8xbEJRMmhDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRE96dFpRVVZ3UWl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHMURRVUZ0UXl4RFFVRkRMRU5CUVVNN1VVRkRka1FzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTnlSaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzT0VKQlFXTXNSVUZCUlR0WlFVTjJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8yZENRVU4wUXl4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMR3RDUVVGclFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpPMjlDUVVOb1JpeFJRVUZSTERSQ1FVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdVMEZETlVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXg1UTBGQmJVSXNSVUZCUlR0WlFVTTFReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJZc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4MVEwRkJhVUlzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRwUWtGRE0wTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVOeVF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTzI5Q1FVTm9SaXhSUVVGUkxIVkRRVUZwUWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEycEVPMUZCUlVRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc2RVUkJRVEJDTEVWQlFVVTdXVUZEYmtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzJkQ1FVTm1MRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zWlVGQlpTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrN2IwSkJRMmhHTEZGQlFWRXNjVVJCUVhkQ0xHbENRVUZwUWl4RFFVRkRMRU5CUVVNN2FVSkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRja01zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNUdHZRa0ZEYUVZc1VVRkJVU3h4UkVGQmQwSXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFRRVU40UkR0SlFVTklMRU5CUVVNN1NVRTFUMDBzVFVGQlRTeERRVUZETEhGQ1FVRnhRaXhEUVVGRExFZEJRV003VVVGRGFFUXNTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVR0WlFVTXhReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEc5RFFVRnZReXhEUVVGRExFTkJRVU03VVVGRmVFUXNUVUZCVFN4TFFVRkxMRWRCUVdkQ0xGRkJRVkVzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNVVUZCVVN4SFFVRkhMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVYyUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l3clFrRkJhVUlzUTBGQlF6dFJRVU14UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3dyUWtGQlpTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnNReXhIUVVGSExFTkJRVU1zVFVGQlRTeHBRMEZCWjBJc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGRFTXNRMEZCUXp0SlFVVkVMRWxCUVdNc1MwRkJTeXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZja1FzU1VGQll5eE5RVUZOTEV0QlFXZENMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGTVVRc1NVRkJWeXhSUVVGUkxFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVeFJDeEpRVUZYTEdkQ1FVRm5RaXhMUVVGaExFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVY0UlN4SlFVRlhMRk5CUVZNN1VVRkRiRUlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxHdERRVUZuUWl4RFFVRkRPMUZCUTNKRUxFbEJRVWtzVTBGQlV5eExRVUZMTEVsQlFVazdXVUZEY0VJc1QwRkJUeXhUUVVGVExFTkJRVU03TzFsQlJXcENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRKUVVONlF5eERRVUZETzBsQlJVUXNTVUZCVnl4UFFVRlBPMUZCUTJoQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3c0UWtGQll5eERRVUZETzFGQlJXcEVMR2xHUVVGcFJqdFJRVU5xUml4SlFVRkpMRU5CUVVNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU53UkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkZla01zVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVWRUxHbERRVUZwUXp0SlFVTnFReXhKUVVGWExGRkJRVkU3VVVGRGFrSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEdkRFFVRmxMRU5CUVVNN1VVRkZia1FzYTBaQlFXdEdPMUZCUTJ4R0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNKRUxFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUTBGQlF6dFJRVVV4UXl4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVMHNaVUZCWlR0UlFVTndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERoQ1FVRnBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERCQ1FVRmxMRVZCUVVVN1dVRkRiRVVzVFVGQlRTeFpRVUZaTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeDVRMEZCYlVJc1EwRkJReXhEUVVGRE8xbEJRM0pGTEU5QlFVOHNXVUZCV1N4RFFVRkRPMU5CUTNKQ08yRkJRVTA3V1VGRFRDeFJRVUZSTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVN1owSkJRM1pDTzI5Q1FVTkZMRTlCUVU4c1JVRkJSU3hEUVVGRE8yZENRVU5hTERoQ1FVRnJRanRuUWtGRGJFSTdiMEpCUTBVc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZ3NTMEZCU3l4SlFVRkpPMjlDUVVOUUxFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dHZRa0ZETVVNc1QwRkJUeXhEUVVGRExFTkJRVU03WjBKQlExZzdiMEpCUTBVc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDNRa0ZCZDBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNTeERRVUZETEVOQlFVTTdZVUZETlVRN1UwRkRSanRKUVVOSUxFTkJRVU03U1VGRlRTeHpRa0ZCYzBJN1VVRkRNMElzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaU3hGUVVGRk8xbEJRMnhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxIVkVRVUV3UWl4SlFVRkpMRTFCUVUwc1EwRkJRenRUUVVNdlJEdGhRVUZOTzFsQlEwd3NUMEZCVHl4TFFVRkxMRU5CUVVNN1UwRkRaRHRKUVVOSUxFTkJRVU03U1VGRlRTeFBRVUZQTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3hwUTBGQmJVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZMMFFzVjBGQlZ5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc2VVTkJRWFZDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhaRkxFMUJRVTBzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMQ3RDUVVGclFpeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVTNSQ3hMUVVGTExFdEJRV01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmNFUXNTMEZCU3l4TFFVRmpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhCRUxGTkJRVk1zUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYyUkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVnlSeXcwUkVGQk5FUTdTVUZETlVRN08wOUJSVWM3U1VGRFR5eFhRVUZYTzFGQlEyNUNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4VlFVRlZMRGhDUVVGblFqdFpRVU55UkN4dlEwRkJjMEk3WVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNjME5CUVc5Q08xbEJRemxFTERSRFFVRXdRanRoUVVOMlFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTdzBRa0ZCWlR0WlFVTjZSQ3hyUTBGQmNVSTdPMWxCUlhKQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzT0VKQlFUaENMRWxCUVVrc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6ZEdMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eFpRVUZaTEVOQlFVTXNZMEZCZDBJN1VVRkROME1zVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVONFFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRM1pDTEUxQlFVMHNTVUZCU1N4SFFVRkhMR05CUVdNc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGFrVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemRFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFWXNVMEZCVXl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXp0UlFVTTNReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzFGQlEyaEVMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzT0VKQlFXTXNRMEZCUXp0UlFVTTFReXhKUVVGSkxGVkJRVlU3V1VGRFdpeFRRVUZUTEVOQlFVTXNUVUZCVFN3clFrRkJaU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVVUzUXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeG5RMEZCWlN4RFFVRkRPMUZCUXpsRExFbEJRVWtzVjBGQlZ6dFpRVU5pTEZOQlFWTXNRMEZCUXl4TlFVRk5MR2xEUVVGblFpeFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVVXZReXhKUVVGSkxHVkJRV1VzUjBGQlZ5eEhRVUZITEVOQlFVTXNUVUZCVFN4NVEwRkJiVUlzUTBGQlF6dFJRVU0xUkN4SlFVRkpMR1ZCUVdVN1dVRkRha0lzVTBGQlV5eERRVUZETEUxQlFVMHNNRU5CUVc5Q0xHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYWkVMRTFCUVUwc2MwSkJRWE5DTEVkQlFWY3NSMEZCUnl4RFFVRkRMRTFCUVUwc2RVUkJRVEJDTEVOQlFVTTdVVUZETlVVc1NVRkJTU3h6UWtGQmMwSXNTMEZCU3l4VFFVRlRPMWxCUTNSRExGTkJRVk1zUTBGQlF5eE5RVUZOTEhkRVFVRXlRaXh6UWtGQmMwSXNRMEZCUXl4RFFVRkRPMUZCUlhKRkxFbEJRVWtzWTBGQll5dzRRa0ZCYVVJc1JVRkJSVHRaUVVOdVF5eGxRVUZsTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzQkVMRk5CUVZNc1EwRkJReXhOUVVGTkxEQkRRVUZ2UWl4bFFVRmxMRU5CUVVNc1EwRkJRenRUUVVOMFJEdFJRVVZFTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRWE5DTzFGQlF5OURMRTFCUVUwc1IwRkJSeXhIUVVGcFFpeEpRVUZKTEZsQlFWa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJRenRSUVVONFJDeE5RVUZOTEdOQlFXTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRE8xRkJRM0JETEU5QlFVOHNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1MwRkJZVHRSUVVNMVF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hEUVVGRE8xRkJRelZDTEUxQlFVMHNVVUZCVVN4SFFVRkhMR2RIUVVGdFJDeERRVUZETzFGQlEzSkZMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVWMlF5eE5RVUZOTEdWQlFXVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRhRVlzVDBGQlR5eGxRVUZsTEVOQlFVTTdTVUZEZWtJc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBrc1RVRkJUU3hEUVVGRExITkNRVUZ6UWl4RFFVTnNReXhIUVVGWExFVkJRMWdzU1VGQldTeEZRVU5hTEV0QlFXRTdVVUZGWWl3MFJVRkJORVU3VVVGRE5VVXNNa0pCUVRKQ08xRkJRek5DTEN0RFFVRXJRenRSUVVNdlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTjZReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEhWRFFVRjFReXhEUVVGRExFTkJRVU03VVVGRE0wUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU01UlN4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRPMUZCUXpkRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZGtNc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXpzN1FVRndUbmxDTEcxRFFVRnpRaXhIUVVGSE8wbEJRMnBFTEVsQlFVa3NSVUZCUlN4SFFVRkhPMGxCUTFRc1UwRkJVeXhGUVVGRkxFVkJRVVU3U1VGRFlpeExRVUZMTEVWQlFVVXNSMEZCUnp0RFFVTllMRU5CUVVNN1FVRkZjVUlzYVVOQlFXOUNMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU03U1VGRGNFUXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnp0SlFVTm9SQ3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSE8wTkJRMnBFTEVOQlFVTXNRMEZCUXp0QlFVTnZRaXcyUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGFrUXNOa0pCUVdkQ0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibHh1YVcxd2IzSjBJSHRjYmlBZ1FVeFFTRUZDUlZRc0lFNVBWRUZVU1U5T0xGeHVJQ0JuWlhSVGRHRjBjeXhjYmlBZ1UyVnhRMjlzVTNSaGRITXNYRzRnSUhOd2JHbDBkR1Z5UVhOR1lYTjBZU3hjYmlBZ1pHVjBaV04wUVd4d2FHRmlaWFFzSUZSQlIxTmNibjBnWm5KdmJTQW5MaTl0WVdOeWIyMXZiR1ZqZFd4bEp6dGNibHh1THlvcUlFTnNZWE56SUdadmNpQm9ZVzVrYkdsdVp5QnViM1JoZEdsdmJpQjFibWwwY3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm1sMGMwaGhibVJzWlhJZ2UxeHVJQ0J3Y205MFpXTjBaV1FnY21WaFpHOXViSGtnWDJOdmJIVnRiam9nUkVjdVEyOXNkVzF1T3lBdkx5QjBhR1VnWTI5c2RXMXVJSFJ2SUdKbElHTnZiblpsY25SbFpGeHVJQ0J3Y205MFpXTjBaV1FnWDNWdWFYUnpPaUJ6ZEhKcGJtYzdJQzh2SUhWdWFYUnpMQ0J2WmlCMGFHVWdabTl5YlNCbVlYTjBZU3dnYzJWd1lYSmhkRzl5WEc0Z0lIQnliM1JsWTNSbFpDQmZibTkwWVhScGIyNDZJRTVQVkVGVVNVOU9PeUF2THlCamRYSnlaVzUwSUc1dmRHRjBhVzl1SUNoM2FYUm9iM1YwSURwVFJWRTZUbFFzSUdWMFl5NHBYRzRnSUhCeWIzUmxZM1JsWkNCZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkRvZ2MzUnlhVzVuTzF4dUlDQndjbTkwWldOMFpXUWdjM1JoZEdsaklISmxZV1J2Ym14NUlGOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1FnUFNCN1hHNGdJQ0FnU0VWTVRUb2dKeW9uTEZ4dUlDQWdJRk5GVUVGU1FWUlBVam9nSnljc1hHNGdJQ0FnUmtGVFZFRTZJQ2N0Snl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZCbGNIUnBaR1ZHWVhOMFlVRnNjR2hoWW1WMElEMGdibVYzSUZObGRDaGJYRzRnSUNBZ0owY25MQ0FuVENjc0lDZFpKeXdnSjFNbkxDQW5SU2NzSUNkUkp5d2dKMFFuTENBblRpY3NJQ2RHSnl3Z0owRW5MRnh1SUNBZ0lDZExKeXdnSjFJbkxDQW5TQ2NzSUNkREp5d2dKMVluTENBblVDY3NJQ2RYSnl3Z0owa25MQ0FuVFNjc0lDZFVKeXhjYmlBZ1hTazdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZoWkc5dWJIa2dSRzVoUm1GemRHRkJiSEJvWVdKbGRDQTlJRzVsZHlCVFpYUW9XeWRCSnl3Z0owTW5MQ0FuUnljc0lDZFVKMTBwTzF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZKdVlVWmhjM1JoUVd4d2FHRmlaWFFnUFNCdVpYY2dVMlYwS0ZzblFTY3NJQ2RESnl3Z0owY25MQ0FuVlNkZEtUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSE5sZEZWdWFYUnpWRzlHWVhOMFlVTnZiSFZ0YmloamIydzZJRVJITGtOdmJIVnRiaWtnZTF4dUlDQWdJR2xtSUNoamIyd3VjMlZ0Vkhsd1pTQWhQVDBnUkVjdVUwVk5WRmxRUlM1TlFVTlNUMDFQVEVWRFZVeEZLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZEdZWE4wWVNCamIyeDFiVzRnYlhWemRDQmlaU0JOUVVOU1QwMVBURVZEVlV4Rkp5azdYRzVjYmlBZ0lDQmpiMjV6ZENCemRHRjBjem9nVTJWeFEyOXNVM1JoZEhNZ1BTQm5aWFJUZEdGMGN5aGpiMndzSURVc0lITndiR2wwZEdWeVFYTkdZWE4wWVNrN1hHNGdJQ0FnWTI5dWMzUWdZV3hwWjI1bFpDQTlJSE4wWVhSekxuTmhiV1ZNWlc1bmRHZ2dQeUFuVTBWUkxrMVRRU2NnT2lBblUwVlJKenRjYmlBZ0lDQmpiMjV6ZENCaGJIQm9ZV0psZENBOUlHUmxkR1ZqZEVGc2NHaGhZbVYwS0hOMFlYUnpLVHRjYmx4dUlDQWdJR052YkM1elpYUlVZV2NvUkVjdVZFRkhVeTVWVGtsVVV5d2dUazlVUVZSSlQwNHVSa0ZUVkVFcE8xeHVJQ0FnSUdOdmJDNXpaWFJVWVdjb1ZFRkhVeTVoYkdsbmJtVmtMQ0JoYkdsbmJtVmtLVHRjYmlBZ0lDQmpiMnd1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhRc0lHRnNjR2hoWW1WMEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhRZ2RXNXBkSE1vS1RvZ2MzUnlhVzVuSUhzZ2NtVjBkWEp1SUhSb2FYTXVYM1Z1YVhSek95QjlYRzVjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0JqYjJ4MWJXNG9LVG9nUkVjdVEyOXNkVzF1SUhzZ2NtVjBkWEp1SUhSb2FYTXVYMk52YkhWdGJqc2dmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUWdibTkwWVhScGIyNG9LVG9nVGs5VVFWUkpUMDRnZXlCeVpYUjFjbTRnZEdocGN5NWZibTkwWVhScGIyNDdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsWm1GMWJIUkhZWEJUZVcxaWIyd29LVG9nYzNSeWFXNW5JSHNnY21WMGRYSnVJSFJvYVhNdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ3N0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElITmxjR0Z5WVhSdmNpZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNHRnlZWFJ2Y2lBOUlIUm9hWE11WTI5c2RXMXVMbWRsZEZSaFp5aFVRVWRUTG5ObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnYVdZZ0tITmxjR0Z5WVhSdmNpQWhQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYQmhjbUYwYjNJN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVFpYQmhjbUYwYjNJZ2JtOTBJSE5sZENjcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0JoYkdsbmJtVmtLQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ1lXeHBaMjVsWkNBOUlIUm9hWE11WTI5c2RXMXVMbWRsZEZSaFp5aFVRVWRUTG1Gc2FXZHVaV1FwTzF4dVhHNGdJQ0FnTHk4Z1ZFRkhVeTVoYkdsbmJtVmtJR2x6SUcxaGJtUmhkRzl5ZVNCbWIzSWdZMjlzZFcxdWN5QnZaaUJPVDFSQlZFbFBUaTVHUVZOVVFTQmhibVFnVGs5VVFWUkpUMDR1VTBWUVFWSkJWRTlTWEc0Z0lDQWdhV1lnS0NGaGJHbG5ibVZrSUNZbUlDaDBhR2x6TG1selJtRnpkR0VvS1NCOGZDQjBhR2x6TG1selUyVndZWEpoZEc5eUtDa3BLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVZV2NnWVd4cFoyNWxaQ0J1YjNRZ2MyVjBKeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdZV3hwWjI1bFpEdGNiaUFnZlZ4dVhHNGdJQzhxS2lCQmJIQm9ZV0psZENCdVlXMWxJQ2gxY0hCbGNpQmpZWE5sS1NBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwSUdGc2NHaGhZbVYwS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnWTI5dWMzUWdZV3h3YUdGaVpYUWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVkVGSFV5NWhiSEJvWVdKbGRDazdYRzVjYmlBZ0lDQXZMeUJVUVVkVExtRnNjR2hoWW1WMElHbHpJRzFoYm1SaGRHOXllU0JtYjNJZ1kyOXNkVzF1Y3lCdlppQk9UMVJCVkVsUFRpNUdRVk5VUVNCaGJtUWdUazlVUVZSSlQwNHVVMFZRUVZKQlZFOVNYRzRnSUNBZ2FXWWdLQ0ZoYkhCb1lXSmxkQ0FtSmlBb2RHaHBjeTVwYzBaaGMzUmhLQ2tnZkh3Z2RHaHBjeTVwYzFObGNHRnlZWFJ2Y2lncEtTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblZHRm5JR0ZzY0doaFltVjBJRzV2ZENCelpYUW5LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQmhiSEJvWVdKbGREdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRnNjR2hoWW1WMFUybDZaU0E5SUhCaGNuTmxTVzUwS0hSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVVFVZFRMbUZzY0doaFltVjBVMmw2WlNrcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGc2NHaGhZbVYwVTJsNlpUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzNkcGRHTm9JQ2gwYUdsekxtRnNjR2hoWW1WMEtTQjdYRzRnSUNBZ0lDQmpZWE5sSUVGTVVFaEJRa1ZVTGxCVU9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z01qQTdYRzRnSUNBZ0lDQmpZWE5sSUVGTVVFaEJRa1ZVTGtST1FUcGNiaUFnSUNBZ0lHTmhjMlVnUVV4UVNFRkNSVlF1VWs1Qk9seHVJQ0FnSUNBZ0lDQnlaWFIxY200Z05EdGNiaUFnSUNBZ0lHTmhjMlVnSjA1VUp6cGNiaUFnSUNBZ0lDQWdZMjl1YzI5c1pTNTNZWEp1S0dCVmJtVjRjR1ZqZEdWa0lHRnNjR2hoWW1WMElDZE9WQ2N1WUNrN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBME8xeHVJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtVjRjR1ZqZEdWa0lHRnNjR2hoWW1WMElDY2tlM1JvYVhNdVlXeHdhR0ZpWlhSOUp5NWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwUVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY2lncE9pQmliMjlzWldGdUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtTQTlQU0FuZEhKMVpTYzdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTkdZWE4wWVNncE9pQmliMjlzWldGdUlIc2djbVYwZFhKdUlIUm9hWE11Ym05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xrWkJVMVJCT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VTJWd1lYSmhkRzl5S0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVUwVlFRVkpCVkU5U095QjlYRzVjYmlBZ2NIVmliR2xqSUdselNHVnNiU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVibTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGtoRlRFMDdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTlNibUVvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbUZzY0doaFltVjBJRDA5UFNBblVrNUJKenNnZlZ4dVhHNGdJSEIxWW14cFl5QnBjMFJ1WVNncE9pQmliMjlzWldGdUlIc2djbVYwZFhKdUlIUm9hWE11WVd4d2FHRmlaWFFnUFQwOUlDZEVUa0VuT3lCOVhHNWNiaUFnY0hWaWJHbGpJR2x6VUdWd2RHbGtaU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUNkUVZDYzdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTk5jMkVvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbUZzYVdkdVpXUWdQeUIwYUdsekxtRnNhV2R1WldRdWRHOVZjSEJsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWduVFZOQkp5a2dPaUJtWVd4elpUc2dmVnh1WEc0Z0lDOHFLaUJCYzNOdlkybGhkR1VnYm05MFlYUnBiMjRnZEhsd1pYTWdkMmwwYUNCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCMWJtbDBjeUFxTDF4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUazlVUVZSSlQwNTlJQ0FnSUNCT2IzUmhkR2x2YmlCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElIVnVhWFJ6SUhSNWNHVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST2IzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1R1FWTlVRVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1SVJVeE5LU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNUlSVXhOTzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCb1lYTWdkVzVsZUhCbFkzUmxaQ0J1YjNSaGRHbHZiaUFuSkh0MGFHbHpMblZ1YVhSemZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJR1Z0Y0hSNUlHTnZiSFZ0YmlCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUc1dmRHRjBhVzl1SUhSNWNHVWdZVzVrSUhSb1pTQnpZVzFsWEc0Z0lDQXFJR3hsYm1kMGFDQmhjeUJqYjJ4MWJXNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRPVDFSQlZFbFBUbjBnZEdGeVoyVjBUbTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlIUm9hWE11WTI5c2RXMXVPMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJR052YkM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2JtRnRaU0E5SUhSaGNtZGxkRTV2ZEdGMGFXOXVMblJ2VEc5M1pYSkRZWE5sS0NrZ0t5QW5LQ2NnS3lCamIyd3VibUZ0WlNBcklDY3BKenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMnhPWVcxbElEMGdZMjlzTG1SaGRHRkdjbUZ0WlM1amIyeDFiVzV6TG1kbGRGVnVkWE5sWkU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0NkemRISnBibWNuTENCdVpYZERiMnhPWVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMFlYSm5aWFJPYjNSaGRHbHZiaWs3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExrTkZURXhmVWtWT1JFVlNSVklzSUNkTllXTnliMjF2YkdWamRXeGxKeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnpjbU5CYkdsbmJtVmtJRDBnWTI5c0xtZGxkRlJoWnloVVFVZFRMbUZzYVdkdVpXUXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJHbG5ibVZrS1Z4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhVUVVkVExtRnNhV2R1WldRc0lITnlZMEZzYVdkdVpXUXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MzSmpRV3h3YUdGaVpYUWdQU0JqYjJ3dVoyVjBWR0ZuS0ZSQlIxTXVZV3h3YUdGaVpYUXBPMXh1SUNBZ0lHbG1JQ2h6Y21OQmJIQm9ZV0psZENsY2JpQWdJQ0FnSUc1bGQwTnZiSFZ0Ymk1elpYUlVZV2NvVkVGSFV5NWhiSEJvWVdKbGRDd2djM0pqUVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnYkdWMElITnlZMEZzY0doaFltVjBVMmw2WlRvZ2MzUnlhVzVuSUQwZ1kyOXNMbWRsZEZSaFp5aFVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTazdYRzRnSUNBZ2FXWWdLSE55WTBGc2NHaGhZbVYwVTJsNlpTbGNiaUFnSUNBZ0lHNWxkME52YkhWdGJpNXpaWFJVWVdjb1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1Vc0lITnlZMEZzY0doaFltVjBVMmw2WlNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6Y21OQmJIQm9ZV0psZEVselRYVnNkR2xqYUdGeU9pQnpkSEpwYm1jZ1BTQmpiMnd1WjJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpazdYRzRnSUNBZ2FXWWdLSE55WTBGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJZ0lUMDlJSFZ1WkdWbWFXNWxaQ2xjYmlBZ0lDQWdJRzVsZDBOdmJIVnRiaTV6WlhSVVlXY29WRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUxDQnpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1R0Y2JseHVJQ0FnSUdsbUlDaDBZWEpuWlhST2IzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOS1NCN1hHNGdJQ0FnSUNCemNtTkJiSEJvWVdKbGRGTnBlbVVnUFNCMGFHbHpMbWRsZEVGc2NHaGhZbVYwVTJsNlpTZ3BMblJ2VTNSeWFXNW5LQ2s3WEc0Z0lDQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlJCUjFNdVlXeHdhR0ZpWlhSVGFYcGxMQ0J6Y21OQmJIQm9ZV0psZEZOcGVtVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lISmxkSFZ5YmlCdVpYZERiMngxYlc0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUdWdGNIUjVJR052YkhWdGJpQjFjMmx1WnlCMFpXMXdiR0YwWlVOdmJDQmhjeUJoSUhSbGJYQnNZWFJsWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQjBaVzF3YkdGMFpVTnZiQ0FnZEdobElIQnliM0JsY25ScFpYTWdZVzVrSUhWdWFYUnpJRzltSUhSb2FYTWdZMjlzZFcxdUlHRnlaU0IxYzJWa0lHRnpJR0ZjYmlBZ0lDb2dkR1Z0Y0d4aGRHVWdkRzhnWW5WcGJHUWdkR2hsSUc1bGR5QnZibVZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzRvZEdWdGNHeGhkR1ZEYjJ3NklFUkhMa052YkhWdGJpazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNPaUJWYm1sMGMwaGhibVJzWlhJZ1BTQnVaWGNnVlc1cGRITklZVzVrYkdWeUtIUmxiWEJzWVhSbFEyOXNLVHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJPYjNSaGRHbHZiaUE5SUdOdmJDNXViM1JoZEdsdmJqdGNiaUFnSUNCeVpYUjFjbTRnWTI5c0xtZGxkRTVsZDBOdmJIVnRiaWgwWVhKblpYUk9iM1JoZEdsdmJpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCb1pXeHdaWElnWm5WdVkzUnBiMjRnWTJobFkydHBibWNnZEdobElIWmhiR2xrYVhSNUlHOW1JSFJvWlNBbmRXNXBkSE1uSUhOMGNtbHVaMXh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITWdJSFJvWlNCemRISnBibWNnZEc4Z1ltVWdkbUZzYVdSaGRHVmtYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhWdWFYUnpVM1J5YVc1blNYTldZV3hwWkNoMWJtbDBjem9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdkVzVwZEhNZ1BTQjFibWwwY3k1MGIweHZkMlZ5UTJGelpTZ3BPMXh1SUNBZ0lHTnZibk4wSUhCeVpXWnBlR1Z6SUQwZ1cwNVBWRUZVU1U5T0xrWkJVMVJCTENCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJc0lFNVBWRUZVU1U5T0xraEZURTFkTzF4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhobGN5QTlJRnNuY201aEp5d2dKMlJ1WVNjc0lDZHdkQ2RkTzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEpsWm1sNFEzSnBkR1Z5YVc5dUlEMGdjSEpsWm1sNFpYTXVjMjl0WlNnb2NDa2dQVDRnZFc1cGRITXVjM1JoY25SelYybDBhQ2h3TG5SdlRHOTNaWEpEWVhObEtDa3BLVHRjYmlBZ0lDQnlaWFIxY200Z2NISmxabWw0UTNKcGRHVnlhVzl1TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZibk4wY25WamRDQmhJRzVsZHlCamIyeDFiVzRnYjJZZ2MyVnRZVzUwYVdNZ2RIbHdaU0JOUVVOU1QwMVBURVZEVlV4RklHWnliMjBnZEdobElHeHBjM1FnYjJaY2JpQWdJQ29nYzNCbFkybG1hV1ZrSUhCaGNtRnRaWFJsY25OY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlDQWdJR3hsYmlBZ2RHaGxJR3hsYm1kMGFDQnZaaUIwYUdVZ2JtVjNJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnSUNBZ2JtRnRaU0FnZEdobElHNWhiV1VnYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlDQWdJSFZ1YVhSeklDQjBhR1VnZFc1cGRITWdiMllnZEdobElHNWxkeUJqYjJ4MWJXNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUk9aWGREYjJ4MWJXNUdjbTl0VUdGeVlXMXpLRnh1SUNBZ0lHeGxiam9nYm5WdFltVnlMRnh1SUNBZ0lHNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjFibWwwY3pvZ2MzUnlhVzVuWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVjBGU1RrbE9Sem9nYVc0Z2RHaHBjeUJwYlhCc1pXMWxiblJoZEdsdmJpQnBjeUJwY3lCcGJYQnZjM05wWW14bElIUnZJSFpsY21sbWVTQjBhR1VnZFc1cGNYVmxibVZ6YzF4dUlDQWdJQzh2SUc5bUlIUm9aU0J1WlhjZ1kyOXNkVzF1SjNNZ2JtRnRaVnh1SUNBZ0lDOHZJRlJQUkU4NklIWmxjbWxtZVNCMGFHVWdkbUZzYVdScGRIa2diMllnZFc1cGRITWdjR0Z5WVcxbGRHVnlYRzRnSUNBZ2FXWWdLQ0ZWYm1sMGMwaGhibVJzWlhJdWRXNXBkSE5UZEhKcGJtZEpjMVpoYkdsa0tIVnVhWFJ6S1NsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduU1c1MllXeHBaQ0JtYjNKdFlYUWdiMllnWEZ3bmRXNXBkSE5jWENjZ2NHRnlZVzFsZEdWeUp5azdYRzRnSUNBZ1kyOXVjM1FnYm1WM1EyOXNkVzF1SUQwZ1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZHpkSEpwYm1jbkxDQnVZVzFsTENCdVpYY2dRWEp5WVhrb2JHVnVLUzVtYVd4c0tDY25LU2s3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sYlZSNWNHVWdQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVTdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRMQ0IxYm1sMGN5azdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGpiMnc2SUVSSExrTnZiSFZ0YmlrZ2UxeHVJQ0FnSUhSb2FYTXVYMk52YkhWdGJpQTlJR052YkR0Y2JpQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlIUm9hWE11WDJOdmJIVnRiaTUwWVdkelcwUkhMbFJCUjFNdVZVNUpWRk5kTzF4dUlDQWdJR2xtSUNoMWJtbDBjeUFoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSFJvYVhNdVgzVnVhWFJ6SUQwZ2RXNXBkSE03WEc0Z0lDQWdaV3h6WlZ4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RWYm1sMGN5QmhjbVVnYm05MElITndaV05wWm1sbFpDQnBiaUJqYjJ4MWJXNG5LVHRjYmlBZ0lDQjBhR2x6TGw5dWIzUmhkR2x2YmlBOUlIUm9hWE11WjJWMFRtOTBZWFJwYjI0b0tUdGNiaUFnSUNCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNJRDBnS0hSb2FYTXVhWE5HWVhOMFlTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJJRHBjYmlBZ0lDQWdJQ2gwYUdsekxtbHpTR1ZzYlNncEtTQS9JRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa2hGVEUwZ09seHVJQ0FnSUNBZ0lDQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVZMjlzZFcxdUxuUmhaM011YUdGektGUkJSMU11WVd4cFoyNWxaQ2twSUh0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG1selJtRnpkR0VvS1NCOGZDQjBhR2x6TG1selUyVndZWEpoZEc5eUtDa3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSbTl5SUdOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2IyWWdibTkwWVhScGIyNGdKeVI3ZEdocGN5NXViM1JoZEdsdmJuMG5JR0FnSzF4dUlDQWdJQ0FnSUNBZ0lHQjBZV2NnSnlSN1ZFRkhVeTVoYkdsbmJtVmtmU2NnYVhNZ2JXRnVaR0YwYjNKNUxtQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NWpiMngxYlc0dWRHRm5jeTVvWVhNb1ZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcEtTQjdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMGhsYkcwb0tTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQnViM1JoZEdsdmJpQW5KSHQwYUdsekxtNXZkR0YwYVc5dWZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBVMmw2WlgwbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0ZzblZVNG5YUzVwYm1Oc2RXUmxjeWgwYUdsekxtRnNjR2hoWW1WMEtTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBVMmw2WlgwbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpa3BJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbWx6U0dWc2JTZ3BLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9ZRVp2Y2lCamIyeDFiVzRnSnlSN2RHaHBjeTVqYjJ4MWJXNHVibUZ0WlgwbklHOW1JRzV2ZEdGMGFXOXVJQ2NrZTNSb2FYTXVibTkwWVhScGIyNTlKeUJnSUN0Y2JpQWdJQ0FnSUNBZ0lDQmdkR0ZuSUNja2UxUkJSMU11WVd4d2FHRmlaWFJKYzAxMWJIUnBZMmhoY24wbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0ZzblZVNG5YUzVwYm1Oc2RXUmxjeWgwYUdsekxtRnNjR2hoWW1WMEtTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWEo5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzRpWFgwPSIsIi8vIERhdGEgc3RydWN0dXJlcyBmb3IgVi1Eb21haW4gcmVnaW9ucyBvZiBhbnRpYm9kaWVzXG5leHBvcnQgdmFyIFZkUmVnaW9uVHlwZTtcbihmdW5jdGlvbiAoVmRSZWdpb25UeXBlKSB7XG4gICAgVmRSZWdpb25UeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkZSXCJdID0gXCJmcmFtZXdvcmtcIjtcbiAgICBWZFJlZ2lvblR5cGVbXCJDRFJcIl0gPSBcImNkclwiO1xufSkoVmRSZWdpb25UeXBlIHx8IChWZFJlZ2lvblR5cGUgPSB7fSkpO1xuLyoqIERlc2NyaWJlcyBWLURPTUFJTiAoSUcgYW5kIFRSKSByZWdpb24gKG9mIG11bHRpcGxlIGFsaWdubWVudClcbiAqIGh0dHBzOi8vd3d3LmltZ3Qub3JnL0lNR1RTY2llbnRpZmljQ2hhcnQvTnVtYmVyaW5nL0lNR1RJR1ZMc3VwZXJmYW1pbHkuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb24ge1xuICAgIC8qKlxuICAgICAqIHN0YXJ0IGFuZCBwb3NpdGlvbiBhcmUgc3RyaW5ncyBiZWNhdXNlIHRoZXkgY29ycmVzcG9uZCB0byBwb3NpdGlvbiBuYW1lcyBhcyBjb2x1bW4gbmFtZXMgaW4gQU5BUkNJIG91dHB1dFxuICAgICAqIEBwYXJhbSB7VmRSZWdpb25UeXBlfSB0eXBlICBUeXBlIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgTmFtZSBvZiB0aGUgcmVnaW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYWluXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9yZGVyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvc2l0aW9uU3RhcnROYW1lICBSZWdpb24gc3RhcnQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25FbmROYW1lICBSZWdpb24gZW5kIHBvc2l0aW9uIChpbmNsdXNpdmUpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgbmFtZSwgY2hhaW4sIG9yZGVyLCBwb3NpdGlvblN0YXJ0TmFtZSwgcG9zaXRpb25FbmROYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RhcnROYW1lID0gcG9zaXRpb25TdGFydE5hbWU7XG4gICAgICAgIHRoaXMucG9zaXRpb25FbmROYW1lID0gcG9zaXRpb25FbmROYW1lO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5aa0xYSmxaMmx2Ym5NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzY1VSQlFYRkVPMEZCUlhKRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZsQlNWZzdRVUZLUkN4WFFVRlpMRmxCUVZrN1NVRkRkRUlzYlVOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXZENMRU5CUVVFN1NVRkRhRUlzTWtKQlFWY3NRMEZCUVR0QlFVTmlMRU5CUVVNc1JVRktWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWwyUWp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEZGQlFWRTdTVUZSYmtJN096czdPenM3TzA5QlVVYzdTVUZEU0N4WlFVRlpMRWxCUVd0Q0xFVkJRVVVzU1VGQldTeEZRVUZGTEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUTNoRkxHbENRVUY1UWl4RlFVRkZMR1ZCUVhWQ08xRkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVNelF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCRVlYUmhJSE4wY25WamRIVnlaWE1nWm05eUlGWXRSRzl0WVdsdUlISmxaMmx2Ym5NZ2IyWWdZVzUwYVdKdlpHbGxjMXh1WEc1bGVIQnZjblFnWlc1MWJTQldaRkpsWjJsdmJsUjVjR1VnZTF4dUlDQlZibXR1YjNkdUlEMGdKM1Z1YTI1dmQyNG5MRnh1SUNCR1VpQTlJQ2RtY21GdFpYZHZjbXNuTEZ4dUlDQkRSRklnUFNBblkyUnlKeXhjYm4xY2JseHVMeW9xSUVSbGMyTnlhV0psY3lCV0xVUlBUVUZKVGlBb1NVY2dZVzVrSUZSU0tTQnlaV2RwYjI0Z0tHOW1JRzExYkhScGNHeGxJR0ZzYVdkdWJXVnVkQ2xjYmlBcUlHaDBkSEJ6T2k4dmQzZDNMbWx0WjNRdWIzSm5MMGxOUjFSVFkybGxiblJwWm1salEyaGhjblF2VG5WdFltVnlhVzVuTDBsTlIxUkpSMVpNYzNWd1pYSm1ZVzFwYkhrdWFIUnRiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1SU1pXZHBiMjRnZTF4dUlDQjBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVTdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTJoaGFXNDZJSE4wY21sdVp6dGNiaUFnYjNKa1pYSTZJRzUxYldKbGNqdGNiaUFnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2NHOXphWFJwYjI1RmJtUk9ZVzFsT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSE4wWVhKMElHRnVaQ0J3YjNOcGRHbHZiaUJoY21VZ2MzUnlhVzVuY3lCaVpXTmhkWE5sSUhSb1pYa2dZMjl5Y21WemNHOXVaQ0IwYnlCd2IzTnBkR2x2YmlCdVlXMWxjeUJoY3lCamIyeDFiVzRnYm1GdFpYTWdhVzRnUVU1QlVrTkpJRzkxZEhCMWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFaa1VtVm5hVzl1Vkhsd1pYMGdkSGx3WlNBZ1ZIbHdaU0J2WmlCMGFHVWdjbVZuYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J1WVcxbElDQk9ZVzFsSUc5bUlIUm9aU0J5WldkcGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb1lXbHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNtUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1VGRHRnlkRTVoYldVZ0lGSmxaMmx2YmlCemRHRnlkQ0J3YjNOcGRHbHZiaUFvYVc1amJIVnphWFpsS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjRzl6YVhScGIyNUZibVJPWVcxbElDQlNaV2RwYjI0Z1pXNWtJSEJ2YzJsMGFXOXVJQ2hwYm1Oc2RYTnBkbVVwWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVXNJRzVoYldVNklITjBjbWx1Wnl3Z1kyaGhhVzQ2SUhOMGNtbHVaeXdnYjNKa1pYSTZJRzUxYldKbGNpeGNiaUFnSUNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlRvZ2MzUnlhVzVuTENCd2IzTnBkR2x2YmtWdVpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtTm9ZV2x1SUQwZ1kyaGhhVzQ3WEc0Z0lDQWdkR2hwY3k1dmNtUmxjaUE5SUc5eVpHVnlPMXh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnUFNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlR0Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVJXNWtUbUZ0WlNBOUlIQnZjMmwwYVc5dVJXNWtUbUZ0WlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJleHBvcnQge307XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljR2g1Ykc5allXNTJZWE10WjJ3dGRtbGxkMlZ5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljR2g1Ykc5allXNTJZWE10WjJ3dGRtbGxkMlZ5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJuY205cklHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOW5jbTlySnp0Y2JtbHRjRzl5ZENBcUlHRnpJSFZwSUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5MWFTYzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dVhHNXBiWEJ2Y25RZ2UwbFdhV1YzWlhKOUlHWnliMjBnSnk0dmRtbGxkMlZ5Snp0Y2JseHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWxRYUhsc2IyTmhiblpoYzBkc1ZtbGxkMlZ5SUdWNGRHVnVaSE1nU1ZacFpYZGxjaUI3WEc0Z0lHZGxkQ0J1ZDJ0RVppZ3BPaUJFUnk1RVlYUmhSbkpoYldVN1hHNWNiaUFnYzJWMElHNTNhMFJtS0haaGJIVmxPaUJFUnk1RVlYUmhSbkpoYldVcE8xeHVmU0pkZlE9PSIsImV4cG9ydCB7fTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5MTJhV1YzWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWkMxeVpXZHBiMjV6TFhacFpYZGxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUdkeWIyc2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMmR5YjJzbk8xeHVhVzF3YjNKMElDb2dZWE1nUkVjZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyUm5KenRjYmx4dWFXMXdiM0owSUh0V1pGSmxaMmx2Ym4wZ1puSnZiU0FuTGk0dmRtUXRjbVZuYVc5dWN5YzdYRzVwYlhCdmNuUWdlMGxXYVdWM1pYSjlJR1p5YjIwZ0p5NHZkbWxsZDJWeUp6dGNibHh1THlvcUlFbHVkR1Z5Wm1GalpTQm1iM0lnVm1SU1pXZHBiMjV6Vm1sbGQyVnlJR1p5YjIwZ1FHUmhkR0ZuY205ckwySnBieUIwYnlCMWJtSnBibVFnWkdWd1pXNWtaVzVqZVNCMGJ5QkNhVzhnY0dGamEyRm5aU0FxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSlZtUlNaV2RwYjI1elZtbGxkMlZ5SUdWNGRHVnVaSE1nU1ZacFpYZGxjaUI3WEc0Z0lHbHVhWFFvS1RvZ1VISnZiV2x6WlR4MmIybGtQanRjYmx4dUlDQnpaWFJFWmlodGJHSkVaam9nUkVjdVJHRjBZVVp5WVcxbExDQnlaV2RwYjI1ek9pQldaRkpsWjJsdmJsdGRLVG9nVUhKdmJXbHpaVHgyYjJsa1BqdGNibjBpWFgwPSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBnZXRTcGxpdHRlciwgbW9ub21lclRvU2hvcnQsIHBpY2tVcFBhbGV0dGUsIHBpY2tVcFNlcUNvbCB9IGZyb20gJy4uL3V0aWxzL21hY3JvbW9sZWN1bGUnO1xudmFyIFBvc2l0aW9uSGVpZ2h0O1xuKGZ1bmN0aW9uIChQb3NpdGlvbkhlaWdodCkge1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiRW50cm9weVwiXSA9IFwiRW50cm9weVwiO1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiZnVsbFwiXSA9IFwiMTAwJVwiO1xufSkoUG9zaXRpb25IZWlnaHQgfHwgKFBvc2l0aW9uSGVpZ2h0ID0ge30pKTtcbi8qKkBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByIGRldmljZVBpeGVsUmF0aW9uXG4gKiBAcmV0dXJuIHtERy5Qb2ludH0gY2FudmFzIHJlbGF0ZWQgY3Vyc29yIHBvc2l0aW9uXG4gKi9cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uIChldmVudCwgcikge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBuZXcgREcuUG9pbnQoKGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQpICogciwgKGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCkgKiByKTtcbn07XG5ERy5SZWN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA8PSB4ICYmIHggPD0gdGhpcy5yaWdodCAmJiB0aGlzLnRvcCA8PSB5ICYmIHkgPD0gdGhpcy5ib3R0b207XG59O1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uTW9ub21lckluZm8ge1xuICAgIGNvbnN0cnVjdG9yKGNvdW50ID0gMCwgYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCkpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUG9zaXRpb25JbmZvIHtcbiAgICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHBvc2l0aW9uICgnMTExQScsICcxMTEuMScsIGV0YylcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VtRm9ySGVpZ2h0Q2FsYyBTdW0gb2YgYWxsIG1vbm9tZXIgY291bnRzIGZvciBoZWlnaHQgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcm93Q291bnQgQ291bnQgb2YgZWxlbWVudHMgaW4gY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gZnJlcSBmcmVxdWVuY3kgb2YgbW9ub21lcnMgaW4gcG9zaXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBmcmVxID0ge30sIHJvd0NvdW50ID0gMCwgc3VtRm9ySGVpZ2h0Q2FsYyA9IDApIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5mcmVxID0gZnJlcTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLnN1bUZvckhlaWdodENhbGMgPSBzdW1Gb3JIZWlnaHRDYWxjO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpZXdlcklkID0gLTE7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSAwO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgdGhpcy52aXNpYmxlU2xpZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxsb3dSZXNpemUgPSB0cnVlO1xuICAgICAgICB0aGlzLnR1cm5PZlJlc2l6ZUZvck9uZVNldFZhbHVlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gMHhGRkZGRkZGRjtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLnZpZXdTdWJzID0gW107XG4gICAgICAgIHRoaXMudmlld2VySWQgPSBXZWJMb2dvLnZpZXdlckNvdW50O1xuICAgICAgICBXZWJMb2dvLnZpZXdlckNvdW50ICs9IDE7XG4gICAgICAgIHRoaXMudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmludCgnYmFja2dyb3VuZENvbG9yJywgMHhGRkZGRkZGRik7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uV2lkdGggPSB0aGlzLnBvc2l0aW9uV2lkdGggPSB0aGlzLmZsb2F0KCdwb3NpdGlvbldpZHRoJywgMTYgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogNCwgbWF4OiA2NCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMubWluSGVpZ2h0ID0gdGhpcy5mbG9hdCgnbWluSGVpZ2h0JywgNTAgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogMjUwLCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5tYXhIZWlnaHQgPSB0aGlzLmZsb2F0KCdtYXhIZWlnaHQnLCAxMDAgLyosXG4gICAgICAgICAge2VkaXRvcjogJ3NsaWRlcicsIG1pbjogMjUsIG1heDogNTAwLCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5za2lwRW1wdHlTZXF1ZW5jZXMgPSB0aGlzLmJvb2woJ3NraXBFbXB0eVNlcXVlbmNlcycsIHRydWUpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdzdGFydFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdlbmRQb3NpdGlvbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maXhXaWR0aCA9IHRoaXMuYm9vbCgnZml4V2lkdGgnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJywgeyBjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ10gfSk7XG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCdob3Jpem9udGFsQWxpZ25tZW50JywgJ2NlbnRlcicsIHsgY2hvaWNlczogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCddIH0pO1xuICAgICAgICB0aGlzLmZpdEFyZWEgPSB0aGlzLmJvb2woJ2ZpdEFyZWEnLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zaHJpbmtFbXB0eVRhaWwgPSB0aGlzLmJvb2woJ3Nocmlua0VtcHR5VGFpbCcsIHRydWUpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPSB0aGlzLnN0cmluZygncG9zaXRpb25NYXJnaW5TdGF0ZScsICdhdXRvJywgeyBjaG9pY2VzOiBbJ2F1dG8nLCAnZW5hYmxlJywgJ29mZiddIH0pO1xuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSAwO1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUZvclBvc2l0aW9uTWFyZ2luID0gNDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gdGhpcy5pbnQoJ3Bvc2l0aW9uTWFyZ2luJywgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4sIHsgbWluOiAwLCBtYXg6IDE2IH0pO1xuICAgICAgICB0aGlzLnBvc2l0aW9uSGVpZ2h0ID0gdGhpcy5zdHJpbmcoJ3Bvc2l0aW9uSGVpZ2h0JywgUG9zaXRpb25IZWlnaHQuZnVsbCwgeyBjaG9pY2VzOiBbUG9zaXRpb25IZWlnaHQuZnVsbCwgUG9zaXRpb25IZWlnaHQuRW50cm9weV0gfSk7XG4gICAgICAgIGNvbnN0IHN0eWxlID0geyBzdHlsZTogJ2JhcmJlbGwnIH07XG4gICAgICAgIHRoaXMuc2xpZGVyID0gdWkucmFuZ2VTbGlkZXIoMCwgMTAwLCAwLCAyMCwgZmFsc2UsIHN0eWxlKTtcbiAgICAgICAgdGhpcy5jYW52YXMgPSB1aS5jYW52YXMoKTtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5za2lwRW1wdHlQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbiA8PSB0aGlzLmVuZFBvc2l0aW9uID8gdGhpcy5lbmRQb3NpdGlvbiAtIHRoaXMuc3RhcnRQb3NpdGlvbiArIDEgOiAwO1xuICAgIH1cbiAgICAvKiogQ2FsY3VsYXRlIG5ldyBwb3NpdGlvbiBkYXRhIGJhc2ljIG9uIHtAbGluayBwb3NpdGlvbk1hcmdpblN0YXRlfSBhbmQge0BsaW5rIHBvc2l0aW9uTWFyZ2lufSAqL1xuICAgIGdldCBwb3NpdGlvbldpZHRoV2l0aE1hcmdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uV2lkdGggKyB0aGlzLnBvc2l0aW9uTWFyZ2luVmFsdWU7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbk1hcmdpblZhbHVlKCkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICgodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpICYmICgoKF9hID0gdGhpcy51bml0c0hhbmRsZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRBbHBoYWJldElzTXVsdGljaGFyKCkpID09PSB0cnVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb25NYXJnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2VuYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uTWFyZ2luO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvKiogQ291bnQgb2YgcG9zaXRpb24gcmVuZGVyZWQgZm9yIGNhbGN1bGF0aW9ucyBjb3VudE9mUmVuZGVyUG9zaXRpb25zICovXG4gICAgZ2V0IGNvdW50T2ZSZW5kZXJQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBpZiAociA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbnZhc1dpZHRoV2l0aFJhdGlvIC8gdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhbnZhcy53aWR0aCAvICh0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IGNhbnZhc1dpZHRoV2l0aFJhdGlvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW52YXMud2lkdGggKiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICB9XG4gICAgLyoqIFBvc2l0aW9uIG9mIHN0YXJ0IHJlbmRlcmluZyAqL1xuICAgIGdldCBmaXJzdFZpc2libGVJbmRleCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZpc2libGVTbGlkZXIpID8gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4pIDogMDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYkxvZ28gc2Vjb25kIGluaXRpYWxpemF0aW9uIScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmhlbHBVcmwgPSAnL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvd2ViLWxvZ28ubWQnO1xuICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1aS5kaXYoJ05vIG1lc3NhZ2UnKTtcbiAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuY2FudmFzID0gdWkuY2FudmFzKCk7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAvL3RoaXMuc2xpZGVyLnNldFNob3dIYW5kbGVzKGZhbHNlKTtcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuekluZGV4ID0gJzk5OSc7XG4gICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5oZWlnaHQgPSAnMC43ZW0nO1xuICAgICAgICB0aGlzLnZpc2libGVTbGlkZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbGlkZXIub25WYWx1ZXNDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoKHRoaXMuaG9zdCA9PSBudWxsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qIFJlc2l6ZSBzbGlkZXIgaWYgd2UgY2FuIHJlc2l6ZSBkbyB0aGF0ICovXG4gICAgICAgICAgICBpZiAoKHRoaXMuYWxsb3dSZXNpemUpICYmICghdGhpcy50dXJuT2ZSZXNpemVGb3JPbmVTZXRWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAodGhpcy52aXNpYmxlU2xpZGVyKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvdW50T2ZQb3NpdGlvbnMgPSBNYXRoLmNlaWwodGhpcy5zbGlkZXIubWF4IC0gdGhpcy5zbGlkZXIubWluKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkV2lkdGggPSAodGhpcy5jYW52YXMud2lkdGggLyBjb3VudE9mUG9zaXRpb25zKSAtIHRoaXMucG9zaXRpb25NYXJnaW5WYWx1ZTtcbiAgICAgICAgICAgICAgICAvLyBzYXZpbmcgcG9zaXRpb25XaWR0aCB2YWx1ZSBnbG9iYWwgKGV2ZW4gaWYgc2xpZGVyIGlzIG5vdCB2aXNpYmxlKVxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IGNhbGN1bGF0ZWRXaWR0aDtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gY2FsY3VsYXRlZFdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy50dXJuT2ZSZXNpemVGb3JPbmVTZXRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhvc3QgPSB1aS5kaXYoW3RoaXMubXNnSG9zdCwgdGhpcy5jYW52YXNdKTtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcic7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5hbGlnbkl0ZW1zID0gJ2NlbnRlcic7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG4gICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cnLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgICBjb25zdCBnZXRNb25vbWVyID0gKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNhbGN1bGF0ZWRYID0gcC54ICsgdGhpcy5maXJzdFZpc2libGVJbmRleCAqIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW47XG4gICAgICAgICAgICBjb25zdCBqUG9zID0gTWF0aC5mbG9vcihwLnggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICsgdGhpcy5maXJzdFZpc2libGVJbmRleCk7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgaWYgKHBvc2l0aW9uID09PSB2b2lkIDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtqUG9zLCBudWxsLCBudWxsXTtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAgICAgICAgIC5maW5kKChtKSA9PiBwb3NpdGlvbi5mcmVxW21dLmJvdW5kcy5jb250YWlucyhjYWxjdWxhdGVkWCwgcC55KSk7XG4gICAgICAgICAgICBpZiAobW9ub21lciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbnVsbCwgbnVsbF07XG4gICAgICAgICAgICByZXR1cm4gW2pQb3MsIG1vbm9tZXIsIHBvc2l0aW9uLmZyZXFbbW9ub21lcl1dO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb3JyZWN0TW9ub21lckZpbHRlciA9IChpUm93LCBtb25vbWVyLCBqUG9zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICB9O1xuICAgICAgICByeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJncyA9IGU7XG4gICAgICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICBjb25zdCBjdXJzb3JQID0gdGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcik7XG4gICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKGN1cnNvclApO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NvdW50ID0gd3UuY291bnQoKS50YWtlKHRoaXMuZGF0YUZyYW1lLnJvd0NvdW50KS5maWx0ZXIoZnVuY3Rpb24gKGlSb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcnJlY3RNb25vbWVyRmlsdGVyKGlSb3csIG1vbm9tZXIsIGpQb3MpO1xuICAgICAgICAgICAgICAgIH0pLnJlZHVjZSgoY291bnQsIGlSb3cpID0+IGNvdW50ICsgMSwgMCk7XG4gICAgICAgICAgICAgICAgdWkudG9vbHRpcC5zaG93KHVpLmRpdihbdWkuZGl2KGAke21vbm9tZXJ9YCksIHVpLmRpdihgJHtyb3dDb3VudH0gcm93c2ApXSksIGFyZ3MueCArIDE2LCBhcmdzLnkgKyAxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB1aS50b29sdGlwLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIodGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcikpO1xuICAgICAgICAgICAgLy8gcHJldmVudHMgZGVzZWxlY3QgYWxsIHJvd3MgaWYgd2UgbWlzcyBtb25vbWVyIGJvdW5kc1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5pbml0KGZ1bmN0aW9uIChpUm93KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3JyZWN0TW9ub21lckZpbHRlcihpUm93LCBtb25vbWVyLCBqUG9zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnd2hlZWwnKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy52aXNpYmxlU2xpZGVyKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50T2ZTY3JvbGxQb3NpdGlvbnMgPSAoZS5kZWx0YVkgLyAxMDApICogTWF0aC5tYXgoTWF0aC5mbG9vcigodGhpcy5jb3VudE9mUmVuZGVyUG9zaXRpb25zKSAvIDIpLCAxKTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnNjcm9sbEJ5KHRoaXMuc2xpZGVyLm1pbiArIGNvdW50T2ZTY3JvbGxQb3NpdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KS5zdWJzY3JpYmUodGhpcy5yb290T25TaXplQ2hhbmdlZC5iaW5kKHRoaXMpKSk7XG4gICAgICAgIHRoaXMucm9vdC5hcHBlbmQodGhpcy5ob3N0KTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZCh0aGlzLnNsaWRlci5yb290KTtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcbiAgICAgICAgdGhpcy51cGRhdGVTbGlkZXIoKTtcbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgfVxuICAgIC8qKiBIYW5kbGVyIG9mIGNoYW5naW5nIHNpemUgV2ViTG9nbyAqL1xuICAgIHJvb3RPblNpemVDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGUod2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICB9XG4gICAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAgICovXG4gICAgdXBkYXRlU2VxQ29sKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VxQ29sID0gdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPyB0aGlzLmRhdGFGcmFtZS5jb2wodGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSBwaWNrVXBTZXFDb2wodGhpcy5kYXRhRnJhbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zZXFDb2wgPyB0aGlzLnNlcUNvbC5uYW1lIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuc2VxQ29sLmdldFRhZyhcInNlcGFyYXRvclwiIC8qIFRBR1Muc2VwYXJhdG9yICovKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNwbGl0dGVyID0gZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3AgPSBwaWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICAvKiogVXBkYXRlcyB7QGxpbmsgcG9zaXRpb25OYW1lc30gYW5kIGNhbGN1bGF0ZXMge0BsaW5rIHN0YXJ0UG9zaXRpb259IGFuZCB7QGxpbmsgZW5kUG9zaXRpb259LlxuICAgICAqL1xuICAgIHVwZGF0ZVBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcUNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbGV0IGNhdGVnb3JpZXM7XG4gICAgICAgIGlmICh0aGlzLnNocmlua0VtcHR5VGFpbCkge1xuICAgICAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoQXJyYXkuZnJvbShBcnJheShpbmRpY2VzLmxlbmd0aCkua2V5cygpKS5tYXAoKGkpID0+IHRoaXMuc2VxQ29sLmdldChpbmRpY2VzW2ldKSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSB0aGlzLnNlcUNvbC5jYXRlZ29yaWVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IE1hdGgubWF4KC4uLmNhdGVnb3JpZXMubWFwKChzKSA9PiBzICE9PSBudWxsID8gdGhpcy5zcGxpdHRlcihzKS5sZW5ndGggOiAwKSkgOiAwO1xuICAgICAgICAvLyBHZXQgcG9zaXRpb24gbmFtZXMgZnJvbSBkYXRhIGNvbHVtbiB0YWcgJ3Bvc2l0aW9uTmFtZXMnXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uTmFtZXNUeHQgPSB0aGlzLnNlcUNvbC5nZXRUYWcoJ3Bvc2l0aW9uTmFtZXMnKTtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgJ3Bvc2l0aW9uTmFtZXMnIHRhZyBpcyBub3QgcHJvdmlkZWRcbiAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gcG9zaXRpb25OYW1lc1R4dCA/IHBvc2l0aW9uTmFtZXNUeHQuc3BsaXQoJywgJykubWFwKChuKSA9PiBuLnRyaW0oKSkgOlxuICAgICAgICAgICAgWy4uLkFycmF5KG1heExlbmd0aCkua2V5cygpXS5tYXAoKGpQb3MpID0+IGAke2pQb3MgKyAxfWApO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAodGhpcy5zdGFydFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLnN0YXJ0UG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5zdGFydFBvc2l0aW9uTmFtZSkgOiAwO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uID0gKHRoaXMuZW5kUG9zaXRpb25OYW1lICYmIHRoaXMucG9zaXRpb25OYW1lcyAmJlxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluY2x1ZGVzKHRoaXMuZW5kUG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5lbmRQb3NpdGlvbk5hbWUpIDogKG1heExlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBnZXQgd2lkdGhBcmVhKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGggLyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICB9XG4gICAgZ2V0IGhlaWdodEFyZWEoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLm1pbih0aGlzLm1heEhlaWdodCwgTWF0aC5tYXgodGhpcy5taW5IZWlnaHQsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQpKTtcbiAgICB9XG4gICAgZ2V0IHhTY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnJvb3QuY2xpZW50V2lkdGggLSB0aGlzLkxlbmd0aCAqIHRoaXMucG9zaXRpb25NYXJnaW5WYWx1ZSkgLyB0aGlzLndpZHRoQXJlYTtcbiAgICB9XG4gICAgZ2V0IHlTY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLyB0aGlzLmhlaWdodEFyZWE7XG4gICAgfVxuICAgIGNoZWNrSXNIaWRlU2xpZGVyKCkge1xuICAgICAgICBsZXQgc2hvd1NsaWRlcldpdGhGaXRBcmVhID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbWluU2NhbGUgPSBNYXRoLm1pbih0aGlzLnhTY2FsZSwgdGhpcy55U2NhbGUpO1xuICAgICAgICBpZiAoKChtaW5TY2FsZSA9PSB0aGlzLnhTY2FsZSkgfHwgKG1pblNjYWxlIDw9IDEpKSAmJiAodGhpcy5maXRBcmVhKSkge1xuICAgICAgICAgICAgc2hvd1NsaWRlcldpdGhGaXRBcmVhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgodGhpcy5maXhXaWR0aCB8fCBNYXRoLmNlaWwodGhpcy5jYW52YXMud2lkdGggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luKSA+PSB0aGlzLkxlbmd0aCkgfHwgKHNob3dTbGlkZXJXaXRoRml0QXJlYSkpO1xuICAgIH1cbiAgICBzZXRTbGlkZXJWaXNpYmlsaXR5KHZpc2libGUpIHtcbiAgICAgICAgaWYgKHZpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdpbmhlcml0JztcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZVNsaWRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlci5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVTbGlkZXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogVXBkYXRlcyB7QGxpbmsgc2xpZGVyfSwgbmVlZGVkIHRvIHNldCBzbGlkZXIgb3B0aW9ucyBhbmQgdG8gdXBkYXRlIHNsaWRlciBwb3NpdGlvbi4gKi9cbiAgICB1cGRhdGVTbGlkZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrSXNIaWRlU2xpZGVyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U2xpZGVyVmlzaWJpbGl0eShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFNsaWRlclZpc2liaWxpdHkodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0aGlzLnNsaWRlciAhPSBudWxsKSAmJiAodGhpcy5jYW52YXMgIT0gbnVsbCkpIHtcbiAgICAgICAgICAgIGxldCBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluID0gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4gKyB0aGlzLmNhbnZhcy53aWR0aCAvIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4pIC0gdGhpcy5MZW5ndGg7XG4gICAgICAgICAgICBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluID0gZGlmZkVuZFNjcm9sbEFuZFNsaWRlck1pbiA+IDAgPyBkaWZmRW5kU2Nyb2xsQW5kU2xpZGVyTWluIDogMDtcbiAgICAgICAgICAgIGxldCBuZXdNaW4gPSBNYXRoLmZsb29yKHRoaXMuc2xpZGVyLm1pbiAtIGRpZmZFbmRTY3JvbGxBbmRTbGlkZXJNaW4pO1xuICAgICAgICAgICAgbGV0IG5ld01heCA9IE1hdGguZmxvb3IodGhpcy5zbGlkZXIubWluIC0gZGlmZkVuZFNjcm9sbEFuZFNsaWRlck1pbikgKyBNYXRoLmZsb29yKHRoaXMuY2FudmFzLndpZHRoIC8gdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbik7XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja0lzSGlkZVNsaWRlcigpKSB7XG4gICAgICAgICAgICAgICAgbmV3TWluID0gMDtcbiAgICAgICAgICAgICAgICBuZXdNYXggPSB0aGlzLkxlbmd0aCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnR1cm5PZlJlc2l6ZUZvck9uZVNldFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVyLnNldFZhbHVlcygwLCB0aGlzLkxlbmd0aCwgbmV3TWluLCBuZXdNYXgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBIYW5kbGVyIG9mIHByb3BlcnR5IGNoYW5nZSBldmVudHMuICovXG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3N0YXJ0UG9zaXRpb25OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kUG9zaXRpb25OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aDtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml4V2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2xpZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXRBcmVhJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlcigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hyaW5rRW1wdHlUYWlsJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2xpZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgfVxuICAgIC8qKiBBZGQgZmlsdGVyIGhhbmRsZXJzIHdoZW4gdGFibGUgaXMgYSBhdHRhY2hlZCAgKi9cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHN1cGVyLm9uVGFibGVBdHRhY2hlZCgpO1xuICAgICAgICBjb25zdCBkYXRhRnJhbWVUeHQgPSB0aGlzLmRhdGFGcmFtZSA/ICdkYXRhJyA6ICdudWxsJztcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCggZGF0YUZyYW1lID0gJHtkYXRhRnJhbWVUeHR9ICkgc3RhcnRgKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5vbkNoYW5nZWQuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnJlbmRlcigpKSk7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCgpIGVuZGApO1xuICAgIH1cbiAgICAvKiogUmVtb3ZlIGFsbCBoYW5kbGVycyB3aGVuIHRhYmxlIGlzIGEgZGV0YWNoICAqL1xuICAgIGRldGFjaCgpIHtcbiAgICAgICAgY29uc3QgX3N1cGVyID0gT2JqZWN0LmNyZWF0ZShudWxsLCB7XG4gICAgICAgICAgICBkZXRhY2g6IHsgZ2V0OiAoKSA9PiBzdXBlci5kZXRhY2ggfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFGcmFtZVR4dCA9IGAke3RoaXMuZGF0YUZyYW1lID8gJ2RhdGEnIDogJ251bGwnfWA7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke2RhdGFGcmFtZVR4dH0gKSBzdGFydGApO1xuICAgICAgICAgICAgX3N1cGVyLmRldGFjaC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMubXNnSG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoKSBlbmRgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHJlbmRlcmluZyAqL1xuICAgIF9udWxsU2VxdWVuY2UoZmlsbGVyUmVzaWR1ZSA9ICdYJykge1xuICAgICAgICBpZiAoIXRoaXMuc2tpcEVtcHR5U2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICAvKiogSGVscGVyIGZ1bmN0aW9uIGZvciByZW1vdmUgZW1wdHkgcG9zaXRpb25zICovXG4gICAgLy8gVE9ETzogdXNlIHRoaXMgZnVuY3Rpb24gaW4gZnJvbSBjb3JlXG4gICAgcmVtb3ZlV2hlcmUoYXJyYXksIHByZWRpY2F0ZSkge1xuICAgICAgICBsZXQgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICAgICAgICBsZXQgdXBkYXRlSXRlcmF0b3IgPSAwO1xuICAgICAgICBmb3IgKGxldCBkZWxldGVJdGVyYXRvciA9IDA7IGRlbGV0ZUl0ZXJhdG9yIDwgbGVuZ3RoOyBkZWxldGVJdGVyYXRvcisrKSB7XG4gICAgICAgICAgICBpZiAoIXByZWRpY2F0ZShhcnJheVtkZWxldGVJdGVyYXRvcl0pKSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbdXBkYXRlSXRlcmF0b3JdID0gYXJyYXlbZGVsZXRlSXRlcmF0b3JdO1xuICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZXJhdG9yKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXJyYXkubGVuZ3RoID0gdXBkYXRlSXRlcmF0b3I7XG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG4gICAgLyoqIEZ1bmN0aW9uIGZvciByZW1vdmluZyBlbXB0eSBwb3NpdGlvbnMgKi9cbiAgICBfcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXaGVyZSh0aGlzLnBvc2l0aW9ucywgaXRlbSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0uZnJlcVsnLSddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY291bnQpID09PSBpdGVtLnJvd0NvdW50OyB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY2FsY3VsYXRlKHIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhvc3QgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IG5ldyBBcnJheSh0aGlzLnN0YXJ0UG9zaXRpb24gPD0gdGhpcy5lbmRQb3NpdGlvbiA/IHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24gKyAxIDogMCk7XG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zTmFtZSA9IHRoaXMucG9zaXRpb25OYW1lc1t0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXTtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdID0gbmV3IFBvc2l0aW9uSW5mbyhwb3NOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyMDIyLTA1LTA1IGFza2Fsa2luIGluc3RydWN0ZWQgdG8gc2hvdyBXZWJMb2dvIGJhc2VkIG9uIGZpbHRlciAobm90IHNlbGVjdGlvbilcbiAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgLy8gY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi50cnVlQ291bnQgPiAwID8gdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLmdldFNlbGVjdGVkSW5kZXhlcygpIDpcbiAgICAgICAgLy8gICB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IGluZGljZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIGluZGljZXMpIHtcbiAgICAgICAgICAgIGxldCBzID0gKHRoaXMuc2VxQ29sLmdldChpKSk7XG4gICAgICAgICAgICBpZiAoIXMpIHtcbiAgICAgICAgICAgICAgICBzID0gdGhpcy5fbnVsbFNlcXVlbmNlKCk7XG4gICAgICAgICAgICAgICAgKyt0aGlzLnJvd3NOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHRoaXMuc3BsaXR0ZXIocyk7XG4gICAgICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbUluZm8gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBzZXFNW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIHx8ICctJztcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIHBtSW5mbykpXG4gICAgICAgICAgICAgICAgICAgIHBtSW5mb1ttXSA9IG5ldyBQb3NpdGlvbk1vbm9tZXJJbmZvKCk7XG4gICAgICAgICAgICAgICAgcG1JbmZvW21dLmNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8jcmVnaW9uIFBvbGlzaCBmcmVxIGNvdW50c1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxWyctJ107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSlcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCArPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxW21dLmNvdW50O1xuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBpbiB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBuID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudCAvIHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjICs9IC1wbiAqIE1hdGgubG9nMihwbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgICAgICB0aGlzLl9yZW1vdmVFbXB0eVBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZU1heEhlaWdodCA9IHRoaXMuY2FudmFzLmhlaWdodCAtIHRoaXMuYXhpc0hlaWdodCAqIHI7XG4gICAgICAgIC8vI3JlZ2lvbiBDYWxjdWxhdGUgc2NyZWVuXG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgZnJlcSA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXE7XG4gICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRTaXplID0gdGhpcy5nZXRBbHBoYWJldFNpemUoKTtcbiAgICAgICAgICAgIGlmICgodGhpcy5wb3NpdGlvbkhlaWdodCA9PSBQb3NpdGlvbkhlaWdodC5FbnRyb3B5KSAmJiAoYWxwaGFiZXRTaXplID09IG51bGwpKSB7XG4gICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignV2ViTG9nbzogYWxwaGFiZXQgaXMgdW5kZWZpbmVkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgPyAoYWJzb2x1dGVNYXhIZWlnaHQgKiAoTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkgLSAodGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYykpIC8gTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkpIDogYWJzb2x1dGVNYXhIZWlnaHQ7XG4gICAgICAgICAgICBsZXQgeSA9IHRoaXMuYXhpc0hlaWdodCAqIHIgKyAoYWJzb2x1dGVNYXhIZWlnaHQgLSBtYXhIZWlnaHQgLSAxKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhmcmVxKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFbMF0gIT09ICctJyAmJiBiWzBdICE9PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiWzFdLmNvdW50IC0gYVsxXS5jb3VudDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScgJiYgYlswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBlbHNlIC8qIChiWzBdID09PSAnLScpICovXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiArMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbTogc3RyaW5nID0gZW50cnlbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaCA9IG1heEhlaWdodCAqIHBtSW5mby5jb3VudCAvIHJvd0NvdW50O1xuICAgICAgICAgICAgICAgIHBtSW5mby5ib3VuZHMgPSBuZXcgREcuUmVjdChqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiwgeSwgdGhpcy5fcG9zaXRpb25XaWR0aCwgaCk7XG4gICAgICAgICAgICAgICAgeSArPSBoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgIH1cbiAgICAvKiogUmVuZGVyIFdlYkxvZ28gc2Vuc2l0aXZlIHRvIGNoYW5nZXMgaW4gcGFyYW1zIG9mIHJlbmRlcmluZ1xuICAgICAqQHBhcmFtIHtib29sZWFufSByZWNhbGMgLSBpbmRpY2F0ZXMgdGhhdCBuZWVkIHRvIHJlY2FsY3VsYXRlIGRhdGEgZm9yIHJlbmRlcmluZ1xuICAgICAqL1xuICAgIHJlbmRlcihyZWNhbGMgPSB0cnVlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMubXNnSG9zdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sICYmICF0aGlzLmNwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LmlubmVyVGV4dCA9IGBVbmtub3duIHBhbGV0dGUgKGNvbHVtbiBzZW1UeXBlOiAnJHt0aGlzLnNlcUNvbC5zZW1UeXBlfScpLmA7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zZXFDb2wgfHwgIXRoaXMuZGF0YUZyYW1lIHx8ICF0aGlzLmNwIHx8IHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5lbmRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5ob3N0ID09IG51bGwgfHwgdGhpcy5zbGlkZXIgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS53aWR0aCA9IGAke3RoaXMuaG9zdC5jbGllbnRXaWR0aH1weGA7XG4gICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgaWYgKHJlY2FsYylcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0ZShyKTtcbiAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IERHLkNvbG9yLnRvSHRtbCh0aGlzLmJhY2tncm91bmRDb2xvcik7XG4gICAgICAgIGcuZmlsbFJlY3QoMCwgMCwgdGhpcy5jYW52YXMud2lkdGgsIHRoaXMuY2FudmFzLmhlaWdodCk7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gdGhpcy50ZXh0QmFzZWxpbmU7XG4gICAgICAgIGNvbnN0IG1heENvdW50T2ZSb3dzUmVuZGVyZWQgPSB0aGlzLmNvdW50T2ZSZW5kZXJQb3NpdGlvbnMgKyAxO1xuICAgICAgICBjb25zdCBmaXJzdFZpc2libGVJbmRleCA9ICh0aGlzLnZpc2libGVTbGlkZXIpID8gTWF0aC5mbG9vcih0aGlzLnNsaWRlci5taW4pIDogMDtcbiAgICAgICAgY29uc3QgbGFzdFZpc2libGVJbmRleCA9IE1hdGgubWluKHRoaXMuTGVuZ3RoLCBmaXJzdFZpc2libGVJbmRleCArIG1heENvdW50T2ZSb3dzUmVuZGVyZWQpO1xuICAgICAgICAvLyNyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRm9udFNpemUgPSAxMCAqIHI7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBnLmZvbnQgPSBgJHtwb3NpdGlvbkZvbnRTaXplLnRvRml4ZWQoMSl9cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWZgO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMuX3Bvc2l0aW9uV2lkdGggLSAyKSA/IDEgOiAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpIC8gcG9zTmFtZU1heFdpZHRoO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gdGhpcy5maXJzdFZpc2libGVJbmRleDsgalBvcyA8IGxhc3RWaXNpYmxlSW5kZXg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbnNbalBvc107XG4gICAgICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBnLnNldFRyYW5zZm9ybShoU2NhbGUsIDAsIDAsIDEsIGpQb3MgKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICsgdGhpcy5fcG9zaXRpb25XaWR0aCAvIDIgLSB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogZmlyc3RWaXNpYmxlSW5kZXgsIDApO1xuICAgICAgICAgICAgZy5maWxsVGV4dChwb3MubmFtZSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8jZW5kcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgICAgICBjb25zdCBmb250U3R5bGUgPSAnMTZweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZic7XG4gICAgICAgIC8vIEhhY2tzIHRvIHNjYWxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHRvIHRhcmdldCByZWN0YW5nbGVcbiAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVyQXNjZW50ID0gMC4yNTtcbiAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVySGVpZ2h0ID0gMTIuMjtcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IHRoaXMuZmlyc3RWaXNpYmxlSW5kZXg7IGpQb3MgPCBsYXN0VmlzaWJsZUluZGV4OyBqUG9zKyspIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21vbm9tZXIsIHBtSW5mb10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciAhPT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJUeHQgPSBtb25vbWVyVG9TaG9ydChtb25vbWVyLCA1KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYiA9IHBtSW5mby5ib3VuZHM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnQgPSBiLmxlZnQgLSB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICogdGhpcy5maXJzdFZpc2libGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBnLnN0cm9rZVN0eWxlID0gJ2xpZ2h0Z3JheSc7XG4gICAgICAgICAgICAgICAgICAgIGcubGluZVdpZHRoID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZy5yZWN0KGxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gKF9hID0gdGhpcy5jcC5nZXQobW9ub21lcikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuY3AuZ2V0KCdvdGhlcicpO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXJUeHQpO1xuICAgICAgICAgICAgICAgICAgICBnLnNldFRyYW5zZm9ybShiLndpZHRoIC8gbVRtLndpZHRoLCAwLCAwLCBiLmhlaWdodCAvIHVwcGVyY2FzZUxldHRlckhlaWdodCwgbGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXJUeHQsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQ2FsY3VsYXRlIGNhbnZhcyBzaXplIGFuIHBvc2l0aW9uV2lkdGggYW5kIHVwZGF0ZXMgcHJvcGVydGllcyAqL1xuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuaG9zdClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBsZXQgd2lkdGggPSB0aGlzLndpZHRoQXJlYTtcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMuaGVpZ2h0QXJlYTtcbiAgICAgICAgaWYgKCh0aGlzLmZpdEFyZWEpICYmICghdGhpcy52aXNpYmxlU2xpZGVyKSkge1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbih0aGlzLnhTY2FsZSwgdGhpcy55U2NhbGUpKTtcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggKiBzY2FsZTtcbiAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCAqIHNjYWxlO1xuICAgICAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aCAqIHNjYWxlO1xuICAgICAgICB9XG4gICAgICAgIHdpZHRoID0gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luIC8gcjtcbiAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB0aGlzLnJvb3QuY2xpZW50V2lkdGggKiByO1xuICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9IGAke3RoaXMucm9vdC5jbGllbnRXaWR0aH1weGA7XG4gICAgICAgIC8vIGNvbnN0IGNhbnZhc0hlaWdodDogbnVtYmVyID0gd2lkdGggPiB0aGlzLnJvb3QuY2xpZW50V2lkdGggPyBoZWlnaHQgLSA4IDogaGVpZ2h0O1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQgKiByO1xuICAgICAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgICAgICBpZiAodGhpcy5maXhXaWR0aCkge1xuICAgICAgICAgICAgLy8gZnVsbCB3aWR0aCBmb3IgY2FudmFzIGhvc3QgYW5kIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gYWxsb3cgc2Nyb2xsIGNhbnZhcyBpbiByb290XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUud2lkdGggPSB0aGlzLmhvc3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUub3ZlcmZsb3dYID0gJ2F1dG8haW1wb3J0YW50JztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgndGV4dC1hbGlnbicsIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCk7XG4gICAgICAgICAgICBjb25zdCBzbGlkZXJIZWlnaHQgPSB0aGlzLnZpc2libGVTbGlkZXIgPyAxMCA6IDA7XG4gICAgICAgICAgICAvLyB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICAgICAgICAgIGxldCBob3N0VG9wTWFyZ2luID0gMDtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy52ZXJ0aWNhbEFsaWdubWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtaWRkbGUnOlxuICAgICAgICAgICAgICAgICAgICBob3N0VG9wTWFyZ2luID0gTWF0aC5tYXgoMCwgKHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpIC8gMik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC0gaGVpZ2h0IC0gc2xpZGVySGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBob3Jpem9udGFsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RMZWZ0TWFyZ2luID0gMDtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RMZWZ0TWFyZ2luID0gMDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdExlZnRNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudFdpZHRoIC0gd2lkdGgpIC8gMik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdExlZnRNYXJnaW4gPSBNYXRoLm1heCgwLCB0aGlzLnJvb3QuY2xpZW50V2lkdGggLSB3aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdtYXJnaW4tdG9wJywgYCR7aG9zdFRvcE1hcmdpbn1weGAsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLWxlZnQnLCBgJHtob3N0TGVmdE1hcmdpbn1weGAsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNsaWRlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW4gKyBjYW52YXNIZWlnaHR9cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8PSBoZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke3RoaXMucm9vdC5jbGllbnRIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0QWxwaGFiZXRTaXplKCkge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy51bml0c0hhbmRsZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRBbHBoYWJldFNpemUoKSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICB9XG59XG5XZWJMb2dvLnJlc2lkdWVzU2V0ID0gJ251Y2xlb3RpZGVzJztcbldlYkxvZ28udmlld2VyQ291bnQgPSAtMTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWQyVmlMV3h2WjI4dWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUozWldJdGJHOW5ieTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEV0QlFVc3NTVUZCU1N4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQlF6RkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU03UVVGRGNFSXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hOUVVGTkxFTkJRVU03UVVGSk4wSXNUMEZCVHl4RlFVRkRMRmxCUVZrc1JVRkJReXhOUVVGTkxIZENRVUYzUWl4RFFVRkRPMEZCUlhCRUxFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNZMEZCWXl4RlFVRkZMR0ZCUVdFc1JVRkJSU3haUVVGWkxFVkJRWEZDTEUxQlFVMHNkMEpCUVhkQ0xFTkJRVU03UVVGUmNFZ3NTVUZCU3l4alFVZEtPMEZCU0VRc1YwRkJTeXhqUVVGak8wbEJRMnBDTEhGRFFVRnRRaXhEUVVGQk8wbEJRMjVDTEN0Q1FVRmhMRU5CUVVFN1FVRkRaaXhEUVVGRExFVkJTRWtzWTBGQll5eExRVUZrTEdOQlFXTXNVVUZIYkVJN1FVRlJSRHM3TzBkQlIwYzdRVUZEU0N4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVlVGQlV5eExRVUZwUWl4RlFVRkZMRU5CUVZNN1NVRkRia1lzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdTVUZETVVNc1QwRkJUeXhKUVVGSkxFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4yUml4RFFVRkRMRU5CUVVNN1FVRkZSaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJVeXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBGQlEyaEdMRU5CUVVNc1EwRkJRenRCUVVWR0xFMUJRVTBzVDBGQlR5eHRRa0ZCYlVJN1NVRlBPVUlzV1VGQldTeFJRVUZuUWl4RFFVRkRMRVZCUVVVc1UwRkJhMElzU1VGQlNTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTnVRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXp0SlFVTjJRaXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNXVUZCV1R0SlFVMTJRanM3T3pzN1QwRkxSenRKUVVOSUxGbEJRVmtzU1VGQldTeEZRVUZGTEU5QlFUWkRMRVZCUVVVc1JVRkJSU3hYUVVGdFFpeERRVUZETEVWQlFVVXNiVUpCUVRKQ0xFTkJRVU03VVVGRE0wZ3NTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGFrSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGFrSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhSUVVGUkxFTkJRVU03VVVGRGVrSXNTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEhRVUZITEdkQ1FVRm5RaXhEUVVGRE8wbEJRek5ETEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhQUVVGUkxGTkJRVkVzUlVGQlJTeERRVUZETEZGQlFWRTdTVUY1UjNSRE8xRkJRMFVzUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUYwUjA4c1lVRkJVU3hIUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJTOUNMR2RDUVVGWExFZEJRVmtzUzBGQlN5eERRVUZETzFGQlJYSkRMRFJHUVVFMFJqdFJRVU5zUml4UFFVRkZMRWRCUVhOQ0xFbEJRVWtzUTBGQlF6dFJRVkV2UWl4bFFVRlZMRWRCUVZjc1JVRkJSU3hEUVVGRE8xRkJSWGhDTEZkQlFVMHNSMEZCTmtJc1NVRkJTU3hEUVVGRE8xRkJRM2hETEdGQlFWRXNSMEZCZDBJc1NVRkJTU3hEUVVGRE8xRkJRemRETEcxRFFVRnRRenRSUVVNelFpeGpRVUZUTEVkQlFXMUNMRVZCUVVVc1EwRkJRenRSUVVVdlFpeGxRVUZWTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNaQ0xHRkJRVkVzUjBGQlZ5eERRVUZETEVOQlFVTTdVVUZEY2tJc2EwSkJRV0VzUjBGQldTeExRVUZMTEVOQlFVTTdVVUZETDBJc1owSkJRVmNzUjBGQldTeEpRVUZKTEVOQlFVTTdVVUZETlVJc0swSkJRVEJDTEVkQlFWa3NTMEZCU3l4RFFVRkRPMUZCVFRkRExHOUNRVUZsTEVkQlFWY3NWVUZCVlN4RFFVRkRPMUZCUzNKRExHMUNRVUZqTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCVnpGQ0xHdENRVUZoTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUlRkQ0xHdENRVUZoTEVkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZNMElzWjBKQlFWY3NSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVdsRWVrSXNZVUZCVVN4SFFVRnRRaXhGUVVGRkxFTkJRVU03VVVGTGNFTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETzFGQlEzQkRMRTlCUVU4c1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJYcENMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzUzBGQlN5eERRVUZETzFGQlF6RkNMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlJYcENMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXZSQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVXNSVUZCUlN4RFFVRkJPemhFUVVOdVFpeERRVUZETEVOQlFVTTdVVUZEZUVRc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1JVRkJSU3hGUVVGRkxFTkJRVUU3WjBWQlEyRXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUjBGQlJ5eERRVUZCTzJkRlFVTlpMRU5CUVVNc1EwRkJRenRSUVVVeFJDeEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFTkJRVU1zYTBKQlFXdENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHZRa0ZCYjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVZzUlN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOb1JTeEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRk5VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVVM1F5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeFJRVUZSTEVWQlEyaEZMRVZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJReXhEUVVGRExFTkJRVU03VVVGRE1VTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNVVUZCVVN4RlFVTndSU3hGUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzFGQlF6RkRMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6RkVMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRMnBGTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMSEZDUVVGeFFpeEZRVUZGTEUxQlFVMHNSVUZEYkVVc1JVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UXl4SlFVRkpMRFpDUVVFMlFpeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTjBReXhKUVVGSkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1MwRkJTeXhOUVVGTkxFVkJRVVU3V1VGRGRrTXNOa0pCUVRaQ0xFZEJRVWNzUTBGQlF5eERRVUZETzFOQlEyNURPMUZCUTBRc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTERaQ1FVRTJRaXhGUVVGRkxFVkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSU3hGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51Unl4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWTBGQll5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExHTkJRV01zUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZ1U1N4TlFVRk5MRXRCUVVzc1IwRkJhMElzUlVGQlF5eExRVUZMTEVWQlFVVXNVMEZCVXl4RlFVRkRMRU5CUVVNN1VVRkRhRVFzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1VVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF6dEpRVU51UXl4RFFVRkRPMGxCT1VaRUxEQkVRVUV3UkR0SlFVTXhSQ3hKUVVGWkxFMUJRVTA3VVVGRGFFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVTdXVUZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTTVRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRhRWNzUTBGQlF6dEpRVVZFTEd0SFFVRnJSenRKUVVOc1J5eEpRVUZaTEhWQ1FVRjFRanRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRPMGxCUTNoRUxFTkJRVU03U1VGRlJDeEpRVUZaTEcxQ1FVRnRRanM3VVVGRE4wSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNTMEZCU3l4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVUVzVFVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N3d1EwRkJSU3h6UWtGQmMwSXNSVUZCUlN4TlFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRk8xbEJRMjVITEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRUUVVNMVFqdFJRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEZGQlFWRXNSVUZCUlR0WlFVTjZReXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTTdVMEZETlVJN1VVRkZSQ3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTTdTVUZGUkN4NVJVRkJlVVU3U1VGRGVrVXNTVUZCV1N4elFrRkJjMEk3VVVGRGFFTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUlVGQlJUdFpRVU55UWl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOV08xRkJRMFFzVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlEyeERMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5VTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF6dFRRVU5xUlR0aFFVRk5PMWxCUTB3c1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJEdEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRlpMRzlDUVVGdlFqdFJRVU01UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF6dEpRVU55UkN4RFFVRkRPMGxCUjBRc2EwTkJRV3RETzBsQlEyeERMRWxCUVZrc2FVSkJRV2xDTzFGQlF6TkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEyaEZMRU5CUVVNN1NVRnRSRThzU1VGQlNUdFJRVU5XTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRaUVVOd1FpeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdXVUZEYUVRc1QwRkJUenRUUVVOU08xRkJSVVFzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRlRUlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4eFEwRkJjVU1zUTBGQlF6dFJRVVZ5UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRjRU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVVZ3UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJSV3BETEc5RFFVRnZRenRSUVVOd1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWVXNRMEZCUXp0UlFVTTNReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU4wUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVONFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVVjRReXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVVXpRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRM3BETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTzJkQ1FVTjJRaXhQUVVGUE8yRkJRMUk3V1VGRFJDdzBRMEZCTkVNN1dVRkROVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRE8yZENRVU14UkN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlJUdG5Ra0ZEZEVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTNSRkxFMUJRVTBzWlVGQlpTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1owSkJRekZHTEc5RlFVRnZSVHRuUWtGRGNFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhsUVVGbExFTkJRVU03WjBKQlEzSkRMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzWlVGQlpTeERRVUZETzJGQlEzWkRPMWxCUTBRc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4SFFVRkhMRXRCUVVzc1EwRkJRenRaUVVONFF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUjBnc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWb1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFZEJRVWNzVVVGQlVTeERRVUZETzFGQlF6RkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzUTBGQlF6dFJRVU4wUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFJRVVV2UkN4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVmNzUlVGQmRVUXNSVUZCUlR0WlFVTjBSaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTTdXVUZEYUVZc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1EwRkJRenRaUVVOeVJpeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJYUkRMRWxCUVVrc1VVRkJVU3hMUVVGTExFdEJRVXNzUTBGQlF6dG5Ra0ZEY2tJc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkZOVUlzVFVGQlRTeFBRVUZQTEVkQlFYVkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXp0cFFrRkRNMFFzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMjVGTEVsQlFVa3NUMEZCVHl4TFFVRkxMRk5CUVZNN1owSkJRM1pDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJUVkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5xUkN4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxHOUNRVUZ2UWl4SFFVRkhMRU5CUVVNc1NVRkJXU3hGUVVGRkxFOUJRV1VzUlVGQlJTeEpRVUZaTEVWQlFVVXNSVUZCUlR0WlFVTXpSU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlEzcEZMRTlCUVU4c1EwRkJReXhEUVVGRExFbEJRVWtzUzBGQlN5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhGUVVGRkxFbEJRVWtzVDBGQlR5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0pITEVOQlFVTXNRMEZCUXp0UlFVVkdMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRV0VzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZoTEVWQlFVVXNSVUZCUlR0WlFVTXZSU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZsTEVOQlFVTTdXVUZGTjBJc1RVRkJUU3hEUVVGRExFZEJRVmNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRekZETEUxQlFVMHNUMEZCVHl4SFFVRmhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycEZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRelZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrc1QwRkJUeXhGUVVGRk8yZENRVU0zUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRlZCUVZNc1NVRkJTVHR2UWtGRE5VVXNUMEZCVHl4dlFrRkJiMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU51UkN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVk1zUTBGQlF5eExRVUZMTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOcVJDeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExGRkJRVkVzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03WVVGRGRrYzdhVUpCUVUwN1owSkJRMHdzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRoUVVOdVFqdFJRVU5JTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlVnc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQllTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFXRXNSVUZCUlN4RlFVRkZPMWxCUXk5RkxFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFXVXNRMEZCUXp0WlFVTTNRaXhOUVVGTkxFTkJRVU1zUjBGQlZ5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03V1VGRE1VTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVV6UlN4MVJFRkJkVVE3V1VGRGRrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFVkJRVVU3WjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlRMRWxCUVVrN2IwSkJRM3BETEU5QlFVOHNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRTanRSUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzFsQlF6TkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllUdG5Ra0ZEY2tJc1QwRkJUenRaUVVOVUxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlF6ZEhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhIUVVGSExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1VVRkZha1VzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRk4wWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGYmtNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dFJRVU42UXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03VVVGRGNFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU53UWl4RFFVRkRPMGxCUlVRc2RVTkJRWFZETzBsQlF5OUNMR2xDUVVGcFFqdFJRVU4yUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8xRkJRM3BETEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRSUVVOd1FpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGUkR0UFFVTkhPMGxCUTBzc1dVRkJXVHRSUVVOc1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVN1dVRkRiRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRNMFlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1JVRkJSVHRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMmRDUVVNelF5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRoUVVOcVJUdFpRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRFppeE5RVUZOTEV0QlFVc3NSMEZCVnl4SlFVRkpMRU5CUVVNc1RVRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU42UkN4TlFVRk5MRk5CUVZNc1IwRkJWeXhKUVVGSkxFTkJRVU1zVFVGQlR5eERRVUZETEUxQlFVMHNhME5CUVdkQ0xFTkJRVU03WjBKQlF6bEVMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE9VTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJSV3hFTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMkZCUTNSRE8ybENRVUZOTzJkQ1FVTk1MRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETzJkQ1FVTnlRaXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEVWQlFVVXNRMEZCUXp0blFrRkRlRUlzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGVFSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVJc1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTTdZVUZEYUVJN1UwRkRSanRSUVVORUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVVE3VDBGRFJ6dEpRVU5MTEdWQlFXVTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlEyUXNUMEZCVHp0UlFVVlVMRWxCUVVrc1ZVRkJPRUlzUTBGQlF6dFJRVU51UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UFFVRlBMRWRCUVdVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU4yUlN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZETjBJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJqdGhRVUZOTzFsQlEwd3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzSkRPMUZCUTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVOc1JTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3d3UkVGQk1FUTdVVUZETVVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVFZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0U3V1VGRGFFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZETlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlJDeEpRVUZaTEZOQlFWTTdVVUZEYmtJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGRlJDeEpRVUZaTEZWQlFWVTdVVUZEY0VJc1QwRkJUeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTndSaXhEUVVGRE8wbEJSVVFzU1VGQldTeE5RVUZOTzFGQlEyaENMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZETTBZc1EwRkJRenRKUVVWRUxFbEJRVmtzVFVGQlRUdFJRVU5vUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNN1NVRkRiRVFzUTBGQlF6dEpRVVZQTEdsQ1FVRnBRanRSUVVOMlFpeEpRVUZKTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5xUXl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlJYQkVMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdFpRVU53UlN4eFFrRkJjVUlzUjBGQlJ5eExRVUZMTEVOQlFVTTdVMEZETDBJN1VVRkRSQ3hQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzQkpMRU5CUVVNN1NVRkZSQ3h0UWtGQmJVSXNRMEZCUXl4UFFVRm5RanRSUVVOc1F5eEpRVUZKTEU5QlFVOHNSVUZCUlR0WlFVTllMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRek5ETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRE8xTkJRek5DTzJGQlFVMDdXVUZEVEN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRaUVVONFF5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJRenRUUVVNMVFqdEpRVU5JTEVOQlFVTTdTVUZGUkN3d1JrRkJNRVk3U1VGRGJFWXNXVUZCV1R0UlFVTnNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hGUVVGRk8xbEJRelZDTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0VFFVTnFRenRoUVVGTk8xbEJRMHdzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFOQlEyaERPMUZCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZPMWxCUTJ4RUxFbEJRVWtzZVVKQlFYbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRemRJTEhsQ1FVRjVRaXhIUVVGSExIbENRVUY1UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14Uml4SlFVRkpMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhIUVVGSExIbENRVUY1UWl4RFFVRkRMRU5CUVVNN1dVRkRja1VzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSMEZCUnl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTTdXVUZEY0Vrc1NVRkJTU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1JVRkJSVHRuUWtGRE5VSXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRuUWtGRFdDeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03WVVGRE1VSTdXVUZEUkN4SlFVRkpMRU5CUVVNc01FSkJRVEJDTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTNaRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVU5zUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03VTBGRGJrSTdTVUZEU0N4RFFVRkRPMGxCUlVRc2VVTkJRWGxETzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZGQlFYRkNPMUZCUTNKRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVZzUXl4UlFVRlJMRkZCUVZFc1EwRkJReXhKUVVGSkxFVkJRVVU3V1VGRGRrSXNTMEZCU3l4dlFrRkJiMEk3WjBKQlEzWkNMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dG5Ra0ZEY0VJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYlVKQlFXMUNPMmRDUVVOMFFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEUxQlFVMDdXVUZEVWl4TFFVRkxMR2xDUVVGcFFqdG5Ra0ZEY0VJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eGxRVUZsTzJkQ1FVTnNRaXhKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNN1owSkJRM3BETEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc1ZVRkJWVHRuUWtGRFlpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEUxQlFVMDdXVUZEVWl4TFFVRkxMRk5CUVZNN1owSkJRMW9zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOd1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4cFFrRkJhVUk3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dG5Ra0ZEZGtJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEUxQlFVMDdXVUZEVWl4TFFVRkxMR2RDUVVGblFqdG5Ra0ZEYmtJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhOUVVGTk8xTkJRMUE3VVVGRlJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdTVUZGUkN4dlJFRkJiMFE3U1VGRGNFTXNaVUZCWlR0UlFVTTNRaXhMUVVGTExFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdVVUZGZUVJc1RVRkJUU3haUVVGWkxFZEJRVmNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZET1VRc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eG5Ra0ZCWjBJc1NVRkJTU3hEUVVGRExGRkJRVkVzYTBOQlFXdERMRmxCUVZrc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRmNrY3NTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xRkJSWEJDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU0zUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTI1R0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZETjBRc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzJkQ1FVTjJRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYUVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU5NTzFGQlJVUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xRkJRMW9zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dEpRVU40UlN4RFFVRkRPMGxCUlVRc2EwUkJRV3RFTzBsQlF6VkNMRTFCUVUwN096czdPMWxCUXpGQ0xFMUJRVTBzV1VGQldTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVNelJDeFBRVUZQTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4clEwRkJhME1zV1VGQldTeFZRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTnlSeXhQUVVGTkxFMUJRVTBzV1VGQlJ6dFpRVVZtTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU5zUkN4SlFVRkpMRU5CUVVNc1NVRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEzQkNMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzVTBGQlV5eERRVUZETzFsQlEzcENMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETzFsQlJYUkNMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETzFsQlEzcENMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhSUVVGUkxIbENRVUY1UWl4RFFVRkRMRU5CUVVNN1VVRkRlRVVzUTBGQlF6dExRVUZCTzBsQlJVUXNiME5CUVc5RE8wbEJRekZDTEdGQlFXRXNRMEZCUXl4aFFVRmhMRWRCUVVjc1IwRkJSenRSUVVONlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFqdFpRVU14UWl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUlRkRUxFOUJRVThzUlVGQlJTeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVkVMR2xFUVVGcFJEdEpRVU5xUkN4MVEwRkJkVU03U1VGRE4wSXNWMEZCVnl4RFFVRkRMRXRCUVdsQ0xFVkJRVVVzVTBGQk9FSTdVVUZEY2tVc1NVRkJTU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXhRaXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZGtJc1MwRkJTeXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVWQlFVVXNZMEZCWXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hqUVVGakxFVkJRVVVzUlVGQlJUdFpRVU4wUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzJkQ1FVTTVReXhqUVVGakxFVkJRVVVzUTBGQlF6dGhRVU5zUWp0VFFVTkdPMUZCUTBRc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTTdVVUZET1VJc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlIwUXNORU5CUVRSRE8wbEJRMnhETEhGQ1FVRnhRanRSUVVNM1FpeEpRVUZKTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUlVGQlJUdFpRVU16UWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVc1YwRkJReXhQUVVGQkxFTkJRVUVzVFVGQlFTeEpRVUZKTEdGQlFVb3NTVUZCU1N4MVFrRkJTaXhKUVVGSkxFTkJRVVVzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl3d1EwRkJSU3hMUVVGTExFMUJRVXNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUVN4RlFVRkJMRU5CUVVNc1EwRkJRenRUUVVOd1JqdEpRVU5JTEVOQlFVTTdTVUZGVXl4VlFVRlZMRU5CUVVNc1EwRkJVenRSUVVNMVFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVenRaUVVNdlF5eFBRVUZQTzFGQlExUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkZiRVFzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUldoQ0xFbEJRVWtzUTBGQlF5eFRRVUZUTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzU1VGQlNTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVTQ3hMUVVGTExFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlR0WlFVTTNReXhOUVVGTkxFOUJRVThzUjBGQlZ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFRRVU5zUkR0UlFVVkVMR2xHUVVGcFJqdFJRVU5xUml4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6TkVMREpIUVVFeVJ6dFJRVU16Unl4blJFRkJaMFE3VVVGRmFFUXNTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEycERMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJXeENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzVDBGQlR5eEZRVUZGTzFsQlEzWkNMRWxCUVVrc1EwRkJReXhIUVVGdFFpeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGTjBNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJUdG5Ra0ZEVGl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzJkQ1FVTjZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdZVUZEYWtJN1dVRkZSQ3hOUVVGTkxFbEJRVWtzUjBGQllTeEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM3BETEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRk8yZENRVU0zUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenRuUWtGRGVrTXNUVUZCVFN4RFFVRkRMRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRE8yZENRVU42UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETzI5Q1FVTm9RaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUlVGQlJTeERRVUZETzJkQ1FVTjRReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1lVRkRia0k3VTBGRFJqdFJRVVZFTERSQ1FVRTBRanRSUVVNMVFpeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eDVRMEZCZVVNN1dVRkZla01zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeERMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSk8yZENRVU4yUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEZGQlFWRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRGRFVXNTVUZCU1N4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVWQlFVVTdaMEpCUTJwRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVNeFF5eExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZPMjlDUVVONlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU03YjBKQlF6bEZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dHBRa0ZET1VRN1lVRkRSanRUUVVOR08xRkJRMFFzV1VGQldUdFJRVU5hTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeERRVUZETzFGQlJUZENMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZia1VzTUVKQlFUQkNPMUZCUXpGQ0xFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpkRExFMUJRVTBzU1VGQlNTeEhRVUY1UXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0WlFVTTNSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzUTBGQlF6dFpRVU12UXl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFTkJRVU1zWlVGQlpTeEZRVUZGTEVOQlFVTTdXVUZETlVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVsQlFVa3NZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVsQlFVa3NRMEZCUXl4RlFVRkZPMmRDUVVNM1JTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhwUTBGQmFVTXNRMEZCUXl4RFFVRkRPMkZCUTNKRU8xbEJSVVFzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xbEJSVFZOTEVsQlFVa3NRMEZCUXl4SFFVRlhMRWxCUVVrc1EwRkJReXhWUVVGVkxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlRGRkxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU5xUkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWM3YjBKQlF6bENMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzNGQ1FVTTFRaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVYzdiMEpCUTI1RExFOUJRVThzUTBGQlF5eERRVUZETzNGQ1FVTk9MRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVYzdiMEpCUTI1Q0xFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTTdjVUpCUTFBc2IwSkJRVzlDTzI5Q1FVTjJRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEyUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hMUVVGTExFMUJRVTBzUzBGQlN5eEpRVUZKTEU5QlFVOHNSVUZCUlR0blFrRkRNMElzVFVGQlRTeE5RVUZOTEVkQlFYZENMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBNc09FSkJRVGhDTzJkQ1FVTTVRaXhOUVVGTkxFTkJRVU1zUjBGQlZ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRXRCUVVzc1IwRkJSeXhSUVVGUkxFTkJRVU03WjBKQlJYUkVMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRelZHTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1lVRkRVanRUUVVOR08xRkJRMFFzV1VGQldUdEpRVVZrTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOSUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1RzN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1EwRkJReXhQUVVGUkxFTkJRVU1zVTBGQlV5eEhRVUZITEhGRFFVRnhReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNTMEZCU3l4RFFVRkRPMmRDUVVONFJpeEpRVUZKTEVOQlFVTXNUMEZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzJGQlEyeERPMmxDUVVGTk8yZENRVU5NTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTTdZVUZEZEVNN1UwRkRSanRSUVVWRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1R0WlFVTnFTaXhQUVVGUE8xRkJSVlFzVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZGtNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGQlJTeFBRVUZQTzFGQlJXWXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTTdVVUZGTlVRc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSV3hETEVsQlFVa3NUVUZCVFR0WlFVTlNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGY2tJc1EwRkJReXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM2hFTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZ1UXl4TlFVRk5MSE5DUVVGelFpeEhRVUZITEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZETDBRc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFrWXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzYVVKQlFXbENMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXcwUWtGQk5FSTdVVUZETlVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhETEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJRenRSUVVOMFFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVOMlFpeERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXh4UTBGQmNVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYUVjc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1pVRkJaU3hEUVVGRE8xRkJSVGRITEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RlFVRkZMRWxCUVVrc1IwRkJSeXhuUWtGQlowSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVOMlJTeE5RVUZOTEVkQlFVY3NSMEZCYVVJc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhEUVVGRExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGRFdpeE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRMllzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRWRCUVVjc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRka2dzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTTFRanRSUVVORUxDdENRVUVyUWp0UlFVTXZRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eDFRMEZCZFVNc1EwRkJRenRSUVVNeFJDd3dSRUZCTUVRN1VVRkRNVVFzVFVGQlRTeHhRa0ZCY1VJc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRGJrTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEYmtNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeEhRVUZITEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzFsQlEzWkZMRXRCUVVzc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeE5RVUZOTEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzcEZMRWxCUVVrc1QwRkJUeXhMUVVGTExFZEJRVWNzUlVGQlJUdHZRa0ZEYmtJc1RVRkJUU3hWUVVGVkxFZEJRVWNzWTBGQll5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRE9VTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF6dHZRa0ZEZUVJc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETzI5Q1FVVTFSU3hEUVVGRExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdiMEpCUTI1Q0xFTkJRVU1zUTBGQlF5eFhRVUZYTEVkQlFVY3NWMEZCVnl4RFFVRkRPMjlDUVVNMVFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGFFSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0dlFrRkRka01zUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TlFVRkJMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenR2UWtGRE0wUXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU03YjBKQlEzSkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzVTBGQlV5eERRVUZETzI5Q1FVTnVRaXdyUTBGQkswTTdiMEpCUXk5RExFMUJRVTBzUjBGQlJ5eEhRVUZuUWl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzI5Q1FVVnVSQ3hEUVVGRExFTkJRVU1zV1VGQldTeERRVU5hTEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFZEJRVWNzY1VKQlFYRkNMRVZCUXpORUxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN2IwSkJRMllzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRwUWtGRGJrUTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWRUxHOUZRVUZ2UlR0SlFVTTFSQ3hSUVVGUk8xRkJRMlFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUTFvc1QwRkJUenRSUVVWVUxFMUJRVTBzUTBGQlF5eEhRVUZYTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVVV4UXl4SlFVRkpMRXRCUVVzc1IwRkJWeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETzFGQlEyNURMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTTdVVUZGTjBJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEZRVUZGTzFsQlF6TkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU01UkN4TFFVRkxMRWRCUVVjc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU4wUWl4TlFVRk5MRWRCUVVjc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVU40UWl4SlFVRkpMRU5CUVVNc1kwRkJZeXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTMEZCU3l4RFFVRkRPMU5CUTJ4RU8xRkJSVVFzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVWMlJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJRenRSUVVWMlJDeHZSa0ZCYjBZN1VVRkRjRVlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja1FzVFVGQlRTeFpRVUZaTEVkQlFWY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03VVVGRGNFUXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzV1VGQldTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVjBReXcyUWtGQk5rSTdVVUZETjBJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTzFsQlEycENMSE5EUVVGelF6dFpRVU4wUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNN1dVRkROMFFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTTdXVUZEZGtNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRkZCUVZFc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zV1VGQldTeEZRVUZGTEZGQlFWRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRUUVVOc1JUdGhRVUZOTzFsQlEwd3NPRUpCUVRoQ08xbEJRemxDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlEzWkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSMEZCUnl4blFrRkJaMElzUTBGQlF6dFpRVU0zUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMWxCUlhCRkxFMUJRVTBzV1VGQldTeEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUldwRUxIRkNRVUZ4UWp0WlFVTnlRaXhKUVVGSkxHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZEZEVJc1VVRkJVU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVN1owSkJRMmhETEV0QlFVc3NTMEZCU3p0dlFrRkRVaXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhOUVVGTk8yZENRVU5TTEV0QlFVc3NVVUZCVVR0dlFrRkRXQ3hoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEYmtVc1RVRkJUVHRuUWtGRFVpeExRVUZMTEZGQlFWRTdiMEpCUTFnc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEhRVUZITEUxQlFVMHNSMEZCUnl4WlFVRlpMRU5CUVVNc1EwRkJRenR2UWtGRE5VVXNUVUZCVFR0aFFVTlFPMWxCUTBRc2RVSkJRWFZDTzFsQlEzWkNMRWxCUVVrc1kwRkJZeXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU4yUWl4UlFVRlJMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNSVUZCUlR0blFrRkRiRU1zUzBGQlN5eE5RVUZOTzI5Q1FVTlVMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU03YjBKQlEyNUNMRTFCUVUwN1owSkJRMUlzUzBGQlN5eFJRVUZSTzI5Q1FVTllMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5zUlN4TlFVRk5PMmRDUVVOU0xFdEJRVXNzVDBGQlR6dHZRa0ZEVml4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTTdiMEpCUXpWRUxFMUJRVTA3WVVGRFVEdFpRVU5FTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4aFFVRmhMRWxCUVVrc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFpRVU0zUlN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWRCUVVjc1kwRkJZeXhKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETDBVc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRka0lzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4aFFVRmhMRWRCUVVjc1dVRkJXU3hKUVVGSkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdZVUZEY0VjN1dVRkZSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4SlFVRkpMRTFCUVUwc1JVRkJSVHRuUWtGRGNFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRja1VzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0aFFVTnFSRHRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dGhRVU5zUlR0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWTkxHVkJRV1U3TzFGQlEzQkNMRTlCUVU4c1RVRkJRU3hOUVVGQkxFbEJRVWtzUTBGQlF5eFpRVUZaTERCRFFVRkZMR1ZCUVdVc1JVRkJSU3h0UTBGQlNTeERRVUZETEVOQlFVTTdTVUZEYmtRc1EwRkJRenM3UVVGNGRrSmhMRzFDUVVGWExFZEJRVWNzWVVGQllTeERRVUZETzBGQlF6TkNMRzFDUVVGWExFZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdkM1VnWm5KdmJTQW5kM1VuTzF4dWFXMXdiM0owSUNvZ1lYTWdjbmhxY3lCbWNtOXRJQ2R5ZUdwekp6dGNibHh1YVcxd2IzSjBJSHRUWlhGUVlXeGxkSFJsZlNCbWNtOXRJQ2N1TGk5elpYRXRjR0ZzWlhSMFpYTW5PMXh1YVcxd2IzSjBJSHRUZFdKelkzSnBjSFJwYjI1OUlHWnliMjBnSjNKNGFuTW5PMXh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dUwzVjBhV3h6TDNWdWFYUnpMV2hoYm1Sc1pYSW5PMXh1YVcxd2IzSjBJSHRUYkdsa1pYSlBjSFJwYjI1emZTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUh0blpYUlRjR3hwZEhSbGNpd2diVzl1YjIxbGNsUnZVMmh2Y25Rc0lIQnBZMnRWY0ZCaGJHVjBkR1VzSUhCcFkydFZjRk5sY1VOdmJDd2dVM0JzYVhSMFpYSkdkVzVqTENCVVFVZFRmU0JtY205dElDY3VMaTkxZEdsc2N5OXRZV055YjIxdmJHVmpkV3hsSnp0Y2JseHVaR1ZqYkdGeVpTQnRiMlIxYkdVZ0oyUmhkR0ZuY205ckxXRndhUzl6Y21NdlozSnBaQ2NnZTF4dUlDQnBiblJsY21aaFkyVWdVbVZqZENCN1hHNGdJQ0FnWTI5dWRHRnBibk1vZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcE9pQmliMjlzWldGdU8xeHVJQ0I5WEc1OVhHNWNibVZ1ZFcwZ1VHOXphWFJwYjI1SVpXbG5hSFFnZTF4dUlDQkZiblJ5YjNCNUlEMGdKMFZ1ZEhKdmNIa25MRnh1SUNCbWRXeHNJRDBnSnpFd01DVW5MRnh1ZlZ4dVhHNWtaV05zWVhKbElHZHNiMkpoYkNCN1hHNGdJR2x1ZEdWeVptRmpaU0JJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ0I3WEc0Z0lDQWdaMlYwUTNWeWMyOXlVRzl6YVhScGIyNG9aWFpsYm5RNklFMXZkWE5sUlhabGJuUXNJSEk2SUc1MWJXSmxjaWs2SUVSSExsQnZhVzUwTzF4dUlDQjlYRzU5WEc1Y2JpOHFLa0J3WVhKaGJTQjdUVzkxYzJWRmRtVnVkSDBnWlhabGJuUmNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J5SUdSbGRtbGpaVkJwZUdWc1VtRjBhVzl1WEc0Z0tpQkFjbVYwZFhKdUlIdEVSeTVRYjJsdWRIMGdZMkZ1ZG1GeklISmxiR0YwWldRZ1kzVnljMjl5SUhCdmMybDBhVzl1WEc0Z0tpOWNia2hVVFV4RFlXNTJZWE5GYkdWdFpXNTBMbkJ5YjNSdmRIbHdaUzVuWlhSRGRYSnpiM0pRYjNOcGRHbHZiaUE5SUdaMWJtTjBhVzl1S0dWMlpXNTBPaUJOYjNWelpVVjJaVzUwTENCeU9pQnVkVzFpWlhJcE9pQkVSeTVRYjJsdWRDQjdYRzRnSUdOdmJuTjBJSEpsWTNRZ1BTQjBhR2x6TG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNCeVpYUjFjbTRnYm1WM0lFUkhMbEJ2YVc1MEtDaGxkbVZ1ZEM1amJHbGxiblJZSUMwZ2NtVmpkQzVzWldaMEtTQXFJSElzSUNobGRtVnVkQzVqYkdsbGJuUlpJQzBnY21WamRDNTBiM0FwSUNvZ2NpazdYRzU5TzF4dVhHNUVSeTVTWldOMExuQnliM1J2ZEhsd1pTNWpiMjUwWVdsdWN5QTlJR1oxYm1OMGFXOXVLSGc2SUc1MWJXSmxjaXdnZVRvZ2JuVnRZbVZ5S1RvZ1ltOXZiR1ZoYmlCN1hHNGdJSEpsZEhWeWJpQjBhR2x6TG14bFpuUWdQRDBnZUNBbUppQjRJRHc5SUhSb2FYTXVjbWxuYUhRZ0ppWWdkR2hwY3k1MGIzQWdQRDBnZVNBbUppQjVJRHc5SUhSb2FYTXVZbTkwZEc5dE8xeHVmVHRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRkJ2YzJsMGFXOXVUVzl1YjIxbGNrbHVabThnZTF4dUlDQXZLaW9nVTJWeGRXVnVZMlZ6SUdOdmRXNTBJSGRwZEdnZ2JXOXViMjFsY2lCcGJpQndiM05wZEdsdmJpQXFMMXh1SUNCamIzVnVkRG9nYm5WdFltVnlPMXh1WEc0Z0lDOHFLaUJTWlcxbGJXSmxjaUJ6WTNKbFpXNGdZMjl2Y21SeklISmxZM1FnS2k5Y2JpQWdZbTkxYm1Sek9pQkVSeTVTWldOME8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHTnZkVzUwT2lCdWRXMWlaWElnUFNBd0xDQmliM1Z1WkhNNklFUkhMbEpsWTNRZ1BTQnVaWGNnUkVjdVVtVmpkQ2d3TENBd0xDQXdMQ0F3S1NrZ2UxeHVJQ0FnSUhSb2FYTXVZMjkxYm5RZ1BTQmpiM1Z1ZER0Y2JpQWdJQ0IwYUdsekxtSnZkVzVrY3lBOUlHSnZkVzVrY3p0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVUc5emFYUnBiMjVKYm1adklIdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdabkpsY1RvZ2V5QmJiVG9nYzNSeWFXNW5YVG9nVUc5emFYUnBiMjVOYjI1dmJXVnlTVzVtYnlCOU8xeHVJQ0J5YjNkRGIzVnVkRG9nYm5WdFltVnlPMXh1SUNCemRXMUdiM0pJWldsbmFIUkRZV3hqT2lCdWRXMWlaWEk3WEc1Y2JpQWdMeW9xSUdaeVpYRWdQU0I3ZlN3Z2NtOTNRMjkxYm5RZ1BTQXdYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdVlXMWxJRTVoYldVZ2IyWWdjRzl6YVhScGIyNGdLQ2N4TVRGQkp5d2dKekV4TVM0eEp5d2daWFJqS1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QlRkVzBnYjJZZ1lXeHNJRzF2Ym05dFpYSWdZMjkxYm5SeklHWnZjaUJvWldsbmFIUWdZMkZzWTNWc1lYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISnZkME52ZFc1MElFTnZkVzUwSUc5bUlHVnNaVzFsYm5SeklHbHVJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkZlNCbWNtVnhJR1p5WlhGMVpXNWplU0J2WmlCdGIyNXZiV1Z5Y3lCcGJpQndiM05wZEdsdmJseHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYm1GdFpUb2djM1J5YVc1bkxDQm1jbVZ4T2lCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUgwZ1BTQjdmU3dnY205M1EyOTFiblE2SUc1MWJXSmxjaUE5SURBc0lITjFiVVp2Y2tobGFXZG9kRU5oYkdNNklHNTFiV0psY2lBOUlEQXBJSHRjYmlBZ0lDQjBhR2x6TG01aGJXVWdQU0J1WVcxbE8xeHVJQ0FnSUhSb2FYTXVabkpsY1NBOUlHWnlaWEU3WEc0Z0lDQWdkR2hwY3k1eWIzZERiM1Z1ZENBOUlISnZkME52ZFc1ME8xeHVJQ0FnSUhSb2FYTXVjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QTlJSE4xYlVadmNraGxhV2RvZEVOaGJHTTdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGZGxZa3h2WjI4Z1pYaDBaVzVrY3lCRVJ5NUtjMVpwWlhkbGNpQjdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZ6YVdSMVpYTlRaWFFnUFNBbmJuVmpiR1Z2ZEdsa1pYTW5PMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUIyYVdWM1pYSkRiM1Z1ZERvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCMmFXVjNaWEpKWkRvZ2JuVnRZbVZ5SUQwZ0xURTdYRzRnSUhCeWFYWmhkR1VnZFc1cGRITklZVzVrYkdWeU9pQlZibWwwYzBoaGJtUnNaWElnZkNCdWRXeHNPMXh1SUNCd2NtbDJZWFJsSUdsdWFYUnBZV3hwZW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVN1hHNWNiaUFnTHk4Z2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCamIyeHZjbE5qYUdWdFpUb2dRMjlzYjNKVFkyaGxiV1VnUFNCRGIyeHZjbE5qYUdWdFpYTmJUblZqYkdWdmRHbGtaWE5YWldKTWIyZHZMbkpsYzJsa2RXVnpVMlYwWFR0Y2JpQWdjSEp2ZEdWamRHVmtJR053T2lCVFpYRlFZV3hsZEhSbElId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdjSEpwZG1GMFpTQm9iM04wUHpvZ1NGUk5URVJwZGtWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2JYTm5TRzl6ZEQ4NklFaFVUVXhGYkdWdFpXNTBPMXh1SUNCd2NtbDJZWFJsSUdOaGJuWmhjem9nU0ZSTlRFTmhiblpoYzBWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2MyeHBaR1Z5T2lCRVJ5NVNZVzVuWlZOc2FXUmxjanRjYmlBZ2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCMFpYaDBRbUZ6Wld4cGJtVTZJRU5oYm5aaGMxUmxlSFJDWVhObGJHbHVaVHRjYmx4dUlDQndjbWwyWVhSbElHRjRhWE5JWldsbmFIUTZJRzUxYldKbGNpQTlJREV5TzF4dVhHNGdJSEJ5YVhaaGRHVWdjMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNDhjM1J5YVc1blBpQjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQndjbWwyWVhSbElITndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1nZkNCdWRXeHNJRDBnYm5Wc2JEdGNiaUFnTHk4Z2NISnBkbUYwWlNCdFlYaE1aVzVuZEdnNklHNTFiV0psY2lBOUlERXdNRHRjYmlBZ2NISnBkbUYwWlNCd2IzTnBkR2x2Ym5NNklGQnZjMmwwYVc5dVNXNW1iMXRkSUQwZ1cxMDdYRzVjYmlBZ2NISnBkbUYwWlNCeWIzZHpUV0Z6YTJWa09pQnVkVzFpWlhJZ1BTQXdPMXh1SUNCd2NtbDJZWFJsSUhKdmQzTk9kV3hzT2lCdWRXMWlaWElnUFNBd08xeHVJQ0J3Y21sMllYUmxJSFpwYzJsaWJHVlRiR2xrWlhJNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlR0Y2JpQWdjSEpwZG1GMFpTQmhiR3h2ZDFKbGMybDZaVG9nWW05dmJHVmhiaUE5SUhSeWRXVTdYRzRnSUhCeWFYWmhkR1VnZEhWeWJrOW1VbVZ6YVhwbFJtOXlUMjVsVTJWMFZtRnNkV1U2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQXZMeUJXYVdWM1pYSW5jeUJ3Y205d1pYSjBhV1Z6SUNoc2FXdGxiSGtnZEdobGVTQnphRzkxYkdRZ1ltVWdjSFZpYkdsaklITnZJSFJvWVhRZ2RHaGxlU0JqWVc0Z1ltVWdjMlYwSUc5MWRITnBaR1VwWEc0Z0lIQnlhWFpoZEdVZ1gzQnZjMmwwYVc5dVYybGtkR2c2SUc1MWJXSmxjanRjYmlBZ2NIVmliR2xqSUhCdmMybDBhVzl1VjJsa2RHZzZJRzUxYldKbGNqdGNiaUFnY0hWaWJHbGpJRzFwYmtobGFXZG9kRG9nYm5WdFltVnlPMXh1SUNCd2RXSnNhV01nWW1GamEyZHliM1Z1WkVOdmJHOXlPaUJ1ZFcxaVpYSWdQU0F3ZUVaR1JrWkdSa1pHTzF4dUlDQndkV0pzYVdNZ2JXRjRTR1ZwWjJoME9pQnVkVzFpWlhJN1hHNGdJSEIxWW14cFl5QnphMmx3Ulcxd2RIbFRaWEYxWlc1alpYTTZJR0p2YjJ4bFlXNDdYRzRnSUhCMVlteHBZeUJ6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1U2SUhOMGNtbHVaeUI4SUc1MWJHdzdYRzRnSUhCMVlteHBZeUJ3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsT2lCemRISnBibWM3WEc0Z0lIQjFZbXhwWXlCd2IzTnBkR2x2YmsxaGNtZHBiam9nYm5WdFltVnlJRDBnTUR0Y2JpQWdjSFZpYkdsaklITjBZWEowVUc5emFYUnBiMjVPWVcxbE9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1pXNWtVRzl6YVhScGIyNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nWm1sNFYybGtkR2c2SUdKdmIyeGxZVzQ3WEc0Z0lIQjFZbXhwWXlCMlpYSjBhV05oYkVGc2FXZHViV1Z1ZERvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdodmNtbDZiMjUwWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCbWFYUkJjbVZoT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2MyaHlhVzVyUlcxd2RIbFVZV2xzT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2MydHBjRVZ0Y0hSNVVHOXphWFJwYjI1ek9pQmliMjlzWldGdU8xeHVJQ0J3ZFdKc2FXTWdjRzl6YVhScGIyNUlaV2xuYUhRNklITjBjbWx1Wnp0Y2JseHVJQ0J3Y21sMllYUmxJSEJ2YzJsMGFXOXVUbUZ0WlhNNklITjBjbWx1WjF0ZElEMGdXMTA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0Z5ZEZCdmMybDBhVzl1T2lCdWRXMWlaWElnUFNBdE1UdGNibHh1SUNCd2NtbDJZWFJsSUdWdVpGQnZjMmwwYVc5dU9pQnVkVzFpWlhJZ1BTQXRNVHRjYmx4dUlDQXZLaW9nUm05eUlITjBZWEowVUc5emFYUnBiMjRnWlhGMVlXeHpJSFJ2SUdWdVpGQnZjMmwwYVc5dUlFeGxibWQwYUNCcGN5QXhJQ292WEc0Z0lIQnlhWFpoZEdVZ1oyVjBJRXhsYm1kMGFDZ3BPaUJ1ZFcxaVpYSWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y0c5emFYUnBiMjV6TG14bGJtZDBhRHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOFBTQjBhR2x6TG1WdVpGQnZjMmwwYVc5dUlEOGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQXRJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUFySURFZ09pQXdPMXh1SUNCOVhHNWNiaUFnTHlvcUlFTmhiR04xYkdGMFpTQnVaWGNnY0c5emFYUnBiMjRnWkdGMFlTQmlZWE5wWXlCdmJpQjdRR3hwYm1zZ2NHOXphWFJwYjI1TllYSm5hVzVUZEdGMFpYMGdZVzVrSUh0QWJHbHVheUJ3YjNOcGRHbHZiazFoY21kcGJuMGdLaTljYmlBZ2NISnBkbUYwWlNCblpYUWdjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0b0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0t5QjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVWbUZzZFdVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkQ0J3YjNOcGRHbHZiazFoY21kcGJsWmhiSFZsS0NrZ2UxeHVJQ0FnSUdsbUlDZ29kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWVhWMGJ5Y3BJQ1ltSUNoMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWdwSUQwOVBTQjBjblZsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjRzl6YVhScGIyNU5ZWEpuYVc0N1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VnUFQwOUlDZGxibUZpYkdVbktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnTUR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJEYjNWdWRDQnZaaUJ3YjNOcGRHbHZiaUJ5Wlc1a1pYSmxaQ0JtYjNJZ1kyRnNZM1ZzWVhScGIyNXpJR052ZFc1MFQyWlNaVzVrWlhKUWIzTnBkR2x2Ym5NZ0tpOWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1kyOTFiblJQWmxKbGJtUmxjbEJ2YzJsMGFXOXVjeWdwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVvYjNOMElEMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlBd08xeHVJQ0FnSUgxY2JpQWdJQ0JqYjI1emRDQnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ2FXWWdLSElnUGlBeEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTVqWVc1MllYTlhhV1IwYUZkcGRHaFNZWFJwYnlBdklIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNDdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTmhiblpoY3k1M2FXUjBhQ0F2SUNoMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdUlDb2djaWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1kyRnVkbUZ6VjJsa2RHaFhhWFJvVW1GMGFXOG9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTJGdWRtRnpMbmRwWkhSb0lDb2dkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4N1hHNGdJSDFjYmx4dVhHNGdJQzhxS2lCUWIzTnBkR2x2YmlCdlppQnpkR0Z5ZENCeVpXNWtaWEpwYm1jZ0tpOWNiaUFnY0hKcGRtRjBaU0JuWlhRZ1ptbHljM1JXYVhOcFlteGxTVzVrWlhnb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCeVpYUjFjbTRnS0hSb2FYTXVkbWx6YVdKc1pWTnNhV1JsY2lrZ1B5Qk5ZWFJvTG1ac2IyOXlLSFJvYVhNdWMyeHBaR1Z5TG0xcGJpa2dPaUF3TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNVM1ZpY3pvZ1UzVmljMk55YVhCMGFXOXVXMTBnUFNCYlhUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1pYSkpaQ0E5SUZkbFlreHZaMjh1ZG1sbGQyVnlRMjkxYm5RN1hHNGdJQ0FnVjJWaVRHOW5ieTUyYVdWM1pYSkRiM1Z1ZENBclBTQXhPMXh1WEc0Z0lDQWdkR2hwY3k1MFpYaDBRbUZ6Wld4cGJtVWdQU0FuZEc5d0p6dGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNTFiR3c3WEc1Y2JpQWdJQ0IwYUdsekxtSmhZMnRuY205MWJtUkRiMnh2Y2lBOUlIUm9hWE11YVc1MEtDZGlZV05yWjNKdmRXNWtRMjlzYjNJbkxDQXdlRVpHUmtaR1JrWkdLVHRjYmlBZ0lDQjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JRDBnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTVtYkc5aGRDZ25jRzl6YVhScGIyNVhhV1IwYUNjc0lERTJMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQTBMQ0J0WVhnNklEWTBMQ0J3YjNOMFptbDRPaUFuY0hnbmZTb3ZLVHRjYmlBZ0lDQjBhR2x6TG0xcGJraGxhV2RvZENBOUlIUm9hWE11Wm14dllYUW9KMjFwYmtobGFXZG9kQ2NzSURVd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBeU5UQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1SUNBZ0lIUm9hWE11YldGNFNHVnBaMmgwSUQwZ2RHaHBjeTVtYkc5aGRDZ25iV0Y0U0dWcFoyaDBKeXdnTVRBd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBMU1EQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1WEc0Z0lDQWdkR2hwY3k1emEybHdSVzF3ZEhsVFpYRjFaVzVqWlhNZ1BTQjBhR2x6TG1KdmIyd29KM05yYVhCRmJYQjBlVk5sY1hWbGJtTmxjeWNzSUhSeWRXVXBPMXh1SUNBZ0lIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsSUQwZ2RHaHBjeTV6ZEhKcGJtY29KM05sY1hWbGJtTmxRMjlzZFcxdVRtRnRaU2NzSUc1MWJHd3BPMXh1WEc0Z0lDQWdkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVUbUZ0WlNBOUlIUm9hWE11YzNSeWFXNW5LQ2R6ZEdGeWRGQnZjMmwwYVc5dVRtRnRaU2NzSUc1MWJHd3BPMXh1SUNBZ0lIUm9hWE11Wlc1a1VHOXphWFJwYjI1T1lXMWxJRDBnZEdocGN5NXpkSEpwYm1jb0oyVnVaRkJ2YzJsMGFXOXVUbUZ0WlNjc0lHNTFiR3dwTzF4dVhHNGdJQ0FnZEdocGN5NW1hWGhYYVdSMGFDQTlJSFJvYVhNdVltOXZiQ2duWm1sNFYybGtkR2duTENCbVlXeHpaU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWmxjblJwWTJGc1FXeHBaMjV0Wlc1MElEMGdkR2hwY3k1emRISnBibWNvSjNabGNuUnBZMkZzUVd4cFoyNXRaVzUwSnl3Z0oyMXBaR1JzWlNjc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZDBiM0FuTENBbmJXbGtaR3hsSnl3Z0oySnZkSFJ2YlNkZGZTazdYRzRnSUNBZ2RHaHBjeTVvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwSUQwZ2RHaHBjeTV6ZEhKcGJtY29KMmh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFuTENBblkyVnVkR1Z5Snl4Y2JpQWdJQ0FnSUh0amFHOXBZMlZ6T2lCYkoyeGxablFuTENBblkyVnVkR1Z5Snl3Z0ozSnBaMmgwSjExOUtUdGNiaUFnSUNCMGFHbHpMbVpwZEVGeVpXRWdQU0IwYUdsekxtSnZiMndvSjJacGRFRnlaV0VuTENCMGNuVmxLVHRjYmlBZ0lDQjBhR2x6TG5Ob2NtbHVhMFZ0Y0hSNVZHRnBiQ0E5SUhSb2FYTXVZbTl2YkNnbmMyaHlhVzVyUlcxd2RIbFVZV2xzSnl3Z2RISjFaU2s3WEc0Z0lDQWdkR2hwY3k1emEybHdSVzF3ZEhsUWIzTnBkR2x2Ym5NZ1BTQjBhR2x6TG1KdmIyd29KM05yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWNzSUdaaGJITmxLVHRjYmlBZ0lDQjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVVM1JoZEdVZ1BTQjBhR2x6TG5OMGNtbHVaeWduY0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlNjc0lDZGhkWFJ2Snl4Y2JpQWdJQ0FnSUh0amFHOXBZMlZ6T2lCYkoyRjFkRzhuTENBblpXNWhZbXhsSnl3Z0oyOW1aaWRkZlNrN1hHNGdJQ0FnYkdWMElHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsSUQwOVBTQW5ZWFYwYnljcElIdGNiaUFnSUNBZ0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVJRDBnTkR0Y2JpQWdJQ0I5WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBiaUE5SUhSb2FYTXVhVzUwS0Nkd2IzTnBkR2x2YmsxaGNtZHBiaWNzSUdSbFptRjFiSFJXWVd4MVpVWnZjbEJ2YzJsMGFXOXVUV0Z5WjJsdUxDQjdiV2x1T2lBd0xDQnRZWGc2SURFMmZTazdYRzRnSUNBZ2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlJSFJvYVhNdWMzUnlhVzVuS0Nkd2IzTnBkR2x2YmtobGFXZG9kQ2NzSUZCdmMybDBhVzl1U0dWcFoyaDBMbVoxYkd3c0lIdGphRzlwWTJWek9pQmJVRzl6YVhScGIyNUlaV2xuYUhRdVpuVnNiQ3dnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VWMTlLVHRjYmx4dUlDQWdJR052Ym5OMElITjBlV3hsT2lCVGJHbGtaWEpQY0hScGIyNXpJRDBnZTNOMGVXeGxPaUFuWW1GeVltVnNiQ2Q5TzF4dUlDQWdJSFJvYVhNdWMyeHBaR1Z5SUQwZ2RXa3VjbUZ1WjJWVGJHbGtaWElvTUN3Z01UQXdMQ0F3TENBeU1Dd2dabUZzYzJVc0lITjBlV3hsS1R0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3lBOUlIVnBMbU5oYm5aaGN5Z3BPMXh1SUNBZ0lIUm9hWE11WTJGdWRtRnpMbk4wZVd4bExuZHBaSFJvSUQwZ0p6RXdNQ1VuTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCcGJtbDBLQ2s2SUhadmFXUWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtbHVhWFJwWVd4cGVtVmtLU0I3WEc0Z0lDQWdJQ0JqYjI1emIyeGxMbVZ5Y205eUtDZFhaV0pNYjJkdklITmxZMjl1WkNCcGJtbDBhV0ZzYVhwaGRHbHZiaUVuS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG1sdWFYUnBZV3hwZW1Wa0lEMGdkSEoxWlR0Y2JpQWdJQ0IwYUdsekxtaGxiSEJWY213Z1BTQW5MMmhsYkhBdmRtbHpkV0ZzYVhwbEwzWnBaWGRsY25NdmQyVmlMV3h2WjI4dWJXUW5PMXh1WEc0Z0lDQWdkR2hwY3k1dGMyZEliM04wSUQwZ2RXa3VaR2wyS0NkT2J5QnRaWE56WVdkbEp5azdYRzRnSUNBZ2RHaHBjeTV0YzJkSWIzTjBMbk4wZVd4bExtUnBjM0JzWVhrZ1BTQW5ibTl1WlNjN1hHNWNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJSFZwTG1OaGJuWmhjeWdwTzF4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG5OMGVXeGxMbmRwWkhSb0lEMGdKekV3TUNVbk8xeHVYRzRnSUNBZ0x5OTBhR2x6TG5Oc2FXUmxjaTV6WlhSVGFHOTNTR0Z1Wkd4bGN5aG1ZV3h6WlNrN1hHNGdJQ0FnZEdocGN5NXpiR2xrWlhJdWNtOXZkQzV6ZEhsc1pTNXdiM05wZEdsdmJpQTlJQ2RoWW5OdmJIVjBaU2M3WEc0Z0lDQWdkR2hwY3k1emJHbGtaWEl1Y205dmRDNXpkSGxzWlM1NlNXNWtaWGdnUFNBbk9UazVKenRjYmlBZ0lDQjBhR2x6TG5Oc2FXUmxjaTV5YjI5MExuTjBlV3hsTG1ScGMzQnNZWGtnUFNBbmJtOXVaU2M3WEc0Z0lDQWdkR2hwY3k1emJHbGtaWEl1Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNBbk1DNDNaVzBuTzF4dVhHNGdJQ0FnZEdocGN5NTJhWE5wWW14bFUyeHBaR1Z5SUQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0IwYUdsekxuTnNhV1JsY2k1dmJsWmhiSFZsYzBOb1lXNW5aV1F1YzNWaWMyTnlhV0psS0NncElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnb2RHaHBjeTVvYjNOMElEMDlJRzUxYkd3cEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lDOHFJRkpsYzJsNlpTQnpiR2xrWlhJZ2FXWWdkMlVnWTJGdUlISmxjMmw2WlNCa2J5QjBhR0YwSUNvdlhHNGdJQ0FnSUNCcFppQW9LSFJvYVhNdVlXeHNiM2RTWlhOcGVtVXBJQ1ltSUNnaGRHaHBjeTUwZFhKdVQyWlNaWE5wZW1WR2IzSlBibVZUWlhSV1lXeDFaU2tnSmlaY2JpQWdJQ0FnSUNBZ0tIUm9hWE11ZG1semFXSnNaVk5zYVdSbGNpa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZMjkxYm5SUFpsQnZjMmwwYVc5dWN5QTlJRTFoZEdndVkyVnBiQ2gwYUdsekxuTnNhV1JsY2k1dFlYZ2dMU0IwYUdsekxuTnNhV1JsY2k1dGFXNHBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpZV3hqZFd4aGRHVmtWMmxrZEdnZ1BTQW9kR2hwY3k1allXNTJZWE11ZDJsa2RHZ2dMeUJqYjNWdWRFOW1VRzl6YVhScGIyNXpLU0F0SUhSb2FYTXVjRzl6YVhScGIyNU5ZWEpuYVc1V1lXeDFaVHRjYmlBZ0lDQWdJQ0FnTHk4Z2MyRjJhVzVuSUhCdmMybDBhVzl1VjJsa2RHZ2dkbUZzZFdVZ1oyeHZZbUZzSUNobGRtVnVJR2xtSUhOc2FXUmxjaUJwY3lCdWIzUWdkbWx6YVdKc1pTbGNiaUFnSUNBZ0lDQWdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9JRDBnWTJGc1kzVnNZWFJsWkZkcFpIUm9PMXh1SUNBZ0lDQWdJQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvSUQwZ1kyRnNZM1ZzWVhSbFpGZHBaSFJvTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZEdocGN5NTBkWEp1VDJaU1pYTnBlbVZHYjNKUGJtVlRaWFJXWVd4MVpTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnZlNrN1hHNWNibHh1SUNBZ0lIUm9hWE11YUc5emRDQTlJSFZwTG1ScGRpaGJkR2hwY3k1dGMyZEliM04wTENCMGFHbHpMbU5oYm5aaGMxMHBPMXh1WEc0Z0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExtcDFjM1JwWm5sRGIyNTBaVzUwSUQwZ0oyTmxiblJsY2ljN1hHNGdJQ0FnZEdocGN5NW9iM04wTG5OMGVXeGxMbUZzYVdkdVNYUmxiWE1nUFNBblkyVnVkR1Z5Snp0Y2JpQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjRzl6YVhScGIyNGdQU0FuY21Wc1lYUnBkbVVuTzF4dUlDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYjNabGNtWnNiM2NuTENBbmFHbGtaR1Z1Snl3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1oyVjBUVzl1YjIxbGNpQTlJQ2h3T2lCRVJ5NVFiMmx1ZENrNklGdHVkVzFpWlhJc0lITjBjbWx1WnlCOElHNTFiR3dzSUZCdmMybDBhVzl1VFc5dWIyMWxja2x1Wm04Z2ZDQnVkV3hzWFNBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCallXeGpkV3hoZEdWa1dDQTlJSEF1ZUNBcklIUm9hWE11Wm1seWMzUldhWE5wWW14bFNXNWtaWGdnS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdU8xeHVJQ0FnSUNBZ1kyOXVjM1FnYWxCdmN5QTlJRTFoZEdndVpteHZiM0lvY0M1NElDOGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFySUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHOXphWFJwYjI0Z1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYVHRjYmx4dUlDQWdJQ0FnYVdZZ0tIQnZjMmwwYVc5dUlEMDlQU0IyYjJsa0lEQXBYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmJhbEJ2Y3l3Z2JuVnNiQ3dnYm5Wc2JGMDdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhJNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDQTlJRTlpYW1WamRDNXJaWGx6S0hCdmMybDBhVzl1TG1aeVpYRXBYRzRnSUNBZ0lDQWdJQzVtYVc1a0tDaHRLU0E5UGlCd2IzTnBkR2x2Ymk1bWNtVnhXMjFkTG1KdmRXNWtjeTVqYjI1MFlXbHVjeWhqWVd4amRXeGhkR1ZrV0N3Z2NDNTVLU2s3WEc0Z0lDQWdJQ0JwWmlBb2JXOXViMjFsY2lBOVBUMGdkVzVrWldacGJtVmtLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdXMnBRYjNNc0lHNTFiR3dzSUc1MWJHeGRPMXh1WEc0Z0lDQWdJQ0J5WlhSMWNtNGdXMnBRYjNNc0lHMXZibTl0WlhJc0lIQnZjMmwwYVc5dUxtWnlaWEZiYlc5dWIyMWxjbDFkTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiM0p5WldOMFRXOXViMjFsY2tacGJIUmxjaUE5SUNocFVtOTNPaUJ1ZFcxaVpYSXNJRzF2Ym05dFpYSTZJSE4wY21sdVp5d2dhbEJ2Y3pvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCelpYRWdQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBLR2xTYjNjcE8xeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRTQTlJSE5sY1NBL0lIUm9hWE11YzNCc2FYUjBaWEloS0hObGNTbGJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2NtVjBkWEp1SUNnb2MyVnhUU0E5UFQwZ2JXOXViMjFsY2lrZ2ZId2dLSE5sY1UwZ1BUMDlJQ2NuSUNZbUlHMXZibTl0WlhJZ1BUMDlJQ2N0SnlrcElDWW1JSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1blpYUW9hVkp2ZHlrN1hHNGdJQ0FnZlR0Y2JseHVJQ0FnSUhKNGFuTXVabkp2YlVWMlpXNTBQRTF2ZFhObFJYWmxiblErS0hSb2FYTXVZMkZ1ZG1GekxDQW5iVzkxYzJWdGIzWmxKeWt1YzNWaWMyTnlhV0psS0NobE9pQk5iM1Z6WlVWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JoY21keklEMGdaU0JoY3lCTmIzVnpaVVYyWlc1ME8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCeU9pQnVkVzFpWlhJZ1BTQjNhVzVrYjNjdVpHVjJhV05sVUdsNFpXeFNZWFJwYnp0Y2JpQWdJQ0FnSUdOdmJuTjBJR04xY25OdmNsQTZJRVJITGxCdmFXNTBJRDBnZEdocGN5NWpZVzUyWVhNdVoyVjBRM1Z5YzI5eVVHOXphWFJwYjI0b1lYSm5jeXdnY2lrN1hHNGdJQ0FnSUNCamIyNXpkQ0JiYWxCdmN5d2diVzl1YjIxbGNsMGdQU0JuWlhSTmIyNXZiV1Z5S0dOMWNuTnZjbEFwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5YjNkRGIzVnVkQ0E5SUhkMUxtTnZkVzUwS0NrdWRHRnJaU2gwYUdsekxtUmhkR0ZHY21GdFpTNXliM2REYjNWdWRDa3VabWxzZEdWeUtHWjFibU4wYVc5dUtHbFNiM2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1kyOXljbVZqZEUxdmJtOXRaWEpHYVd4MFpYSW9hVkp2ZHl3Z2JXOXViMjFsY2l3Z2FsQnZjeWs3WEc0Z0lDQWdJQ0FnSUgwcExuSmxaSFZqWlR4dWRXMWlaWEkrS0NoamIzVnVkQ3dnYVZKdmR5a2dQVDRnWTI5MWJuUWdLeUF4TENBd0tUdGNiaUFnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIVnBMbVJwZGloYmRXa3VaR2wyS0dBa2UyMXZibTl0WlhKOVlDa3NJSFZwTG1ScGRpaGdKSHR5YjNkRGIzVnVkSDBnY205M2MyQXBYU2tzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJSEo0YW5NdVpuSnZiVVYyWlc1MFBFMXZkWE5sUlhabGJuUStLSFJvYVhNdVkyRnVkbUZ6TENBbmJXOTFjMlZrYjNkdUp5a3VjM1ZpYzJOeWFXSmxLQ2hsT2lCTmIzVnpaVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQmhjbWR6SUQwZ1pTQmhjeUJOYjNWelpVVjJaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjam9nYm5WdFltVnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNc0lISXBLVHRjYmx4dUlDQWdJQ0FnTHk4Z2NISmxkbVZ1ZEhNZ1pHVnpaV3hsWTNRZ1lXeHNJSEp2ZDNNZ2FXWWdkMlVnYldsemN5QnRiMjV2YldWeUlHSnZkVzVrYzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YVc1cGRDaG1kVzVqZEdsdmJpaHBVbTkzS1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHTnZjbkpsWTNSTmIyNXZiV1Z5Um1sc2RHVnlLR2xTYjNjc0lHMXZibTl0WlhJc0lHcFFiM01wTzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtUdGNibHh1SUNBZ0lISjRhbk11Wm5KdmJVVjJaVzUwUEZkb1pXVnNSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuZDJobFpXd25LUzV6ZFdKelkzSnBZbVVvS0dVNklGZG9aV1ZzUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1MmFYTnBZbXhsVTJ4cFpHVnlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQmpiMjV6ZENCamIzVnVkRTltVTJOeWIyeHNVRzl6YVhScGIyNXpJRDBnS0dVdVpHVnNkR0ZaSUM4Z01UQXdLU0FxSUUxaGRHZ3ViV0Y0S0UxaGRHZ3VabXh2YjNJb0tIUm9hWE11WTI5MWJuUlBabEpsYm1SbGNsQnZjMmwwYVc5dWN5a2dMeUF5S1N3Z01TazdYRzRnSUNBZ0lDQjBhR2x6TG5Oc2FXUmxjaTV6WTNKdmJHeENlU2gwYUdsekxuTnNhV1JsY2k1dGFXNGdLeUJqYjNWdWRFOW1VMk55YjJ4c1VHOXphWFJwYjI1ektUdGNibHh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdkR2hwY3k1MmFXVjNVM1ZpY3k1d2RYTm9LSFZwTG05dVUybDZaVU5vWVc1blpXUW9kR2hwY3k1eWIyOTBLUzV6ZFdKelkzSnBZbVVvZEdocGN5NXliMjkwVDI1VGFYcGxRMmhoYm1kbFpDNWlhVzVrS0hSb2FYTXBLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuSnZiM1F1WVhCd1pXNWtLSFJvYVhNdWFHOXpkQ2s3WEc0Z0lDQWdkR2hwY3k1eWIyOTBMbUZ3Y0dWdVpDaDBhR2x6TG5Oc2FXUmxjaTV5YjI5MEtUdGNibHh1SUNBZ0lIUm9hWE11WDJOaGJHTjFiR0YwWlNoM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBieWs3WEc0Z0lDQWdkR2hwY3k1MWNHUmhkR1ZUYkdsa1pYSW9LVHRjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCSVlXNWtiR1Z5SUc5bUlHTm9ZVzVuYVc1bklITnBlbVVnVjJWaVRHOW5ieUFxTDF4dUlDQndjbWwyWVhSbElISnZiM1JQYmxOcGVtVkRhR0Z1WjJWa0tDazZJSFp2YVdRZ2UxeHVJQ0FnSUhSb2FYTXVYMk5oYkdOMWJHRjBaU2gzYVc1a2IzY3VaR1YyYVdObFVHbDRaV3hTWVhScGJ5azdYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVlRiR2xrWlhJb0tUdGNiaUFnSUNCMGFHbHpMbkpsYm1SbGNpaDBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJCYzNOcFoyNXpJSHRBYkdsdWF5QnpaWEZEYjJ4OUlHRnVaQ0I3UUd4cGJtc2dZM0I5SUdKaGMyVmtJRzl1SUh0QWJHbHVheUJ6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1Y5SUdGdVpDQmpZV3hzY3lCN1FHeHBibXNnY21WdVpHVnlmU2dwTGx4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCMWNHUmhkR1ZUWlhGRGIyd29LVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVpHRjBZVVp5WVcxbEtTQjdYRzRnSUNBZ0lDQjBhR2x6TG5ObGNVTnZiQ0E5SUhSb2FYTXVjMlZ4ZFdWdVkyVkRiMngxYlc1T1lXMWxJRDhnZEdocGN5NWtZWFJoUm5KaGJXVXVZMjlzS0hSb2FYTXVjMlZ4ZFdWdVkyVkRiMngxYlc1T1lXMWxLU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXpaWEZEYjJ3Z1BUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5ObGNVTnZiQ0E5SUhCcFkydFZjRk5sY1VOdmJDaDBhR2x6TG1SaGRHRkdjbUZ0WlNrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsSUQwZ2RHaHBjeTV6WlhGRGIyd2dQeUIwYUdsekxuTmxjVU52YkM1dVlXMWxJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuTmxjVU52YkNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCMWJtbDBjem9nYzNSeWFXNW5JRDBnZEdocGN5NXpaWEZEYjJ3aExtZGxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRLVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBWR0ZuS0ZSQlIxTXVjMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpjR3hwZEhSbGNpQTlJR2RsZEZOd2JHbDBkR1Z5S0hWdWFYUnpMQ0J6WlhCaGNtRjBiM0lwTzF4dUlDQWdJQ0FnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNWxkeUJWYm1sMGMwaGhibVJzWlhJb2RHaHBjeTV6WlhGRGIyd3BPMXh1WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFVHOXphWFJwYjI1ektDazdYRzRnSUNBZ0lDQWdJSFJvYVhNdVkzQWdQU0J3YVdOclZYQlFZV3hsZEhSbEtIUm9hWE11YzJWeFEyOXNLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzQnNhWFIwWlhJZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNZ1BTQmJYVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpkR0Z5ZEZCdmMybDBhVzl1SUQwZ0xURTdYRzRnSUNBZ0lDQWdJSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdQU0F0TVR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVqY0NBOUlHNTFiR3c3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lIUm9hWE11Y21WdVpHVnlLQ2s3WEc0Z0lIMWNibHh1SUNBdktpb2dWWEJrWVhSbGN5QjdRR3hwYm1zZ2NHOXphWFJwYjI1T1lXMWxjMzBnWVc1a0lHTmhiR04xYkdGMFpYTWdlMEJzYVc1cklITjBZWEowVUc5emFYUnBiMjU5SUdGdVpDQjdRR3hwYm1zZ1pXNWtVRzl6YVhScGIyNTlMbHh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0IxY0dSaGRHVlFiM05wZEdsdmJuTW9LVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTmxjVU52YkNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR3hsZENCallYUmxaMjl5YVdWek9pQW9jM1J5YVc1bklId2diblZzYkNrZ1cxMDdYRzRnSUNBZ2FXWWdLSFJvYVhNdWMyaHlhVzVyUlcxd2RIbFVZV2xzS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwYm1ScFkyVnpPaUJKYm5Rek1rRnljbUY1SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dUlDQWdJQ0FnWTJGMFpXZHZjbWxsY3lBOUlFRnljbUY1TG1aeWIyMG9ibVYzSUZObGRDaGNiaUFnSUNBZ0lDQWdRWEp5WVhrdVpuSnZiU2hCY25KaGVTaHBibVJwWTJWekxteGxibWQwYUNrdWEyVjVjeWdwS1M1dFlYQW9LR2s2SUc1MWJXSmxjaWtnUFQ0Z2RHaHBjeTV6WlhGRGIyd2hMbWRsZENocGJtUnBZMlZ6VzJsZEtTa3BLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJSFJvYVhNdWMyVnhRMjlzTG1OaGRHVm5iM0pwWlhNN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHMWhlRXhsYm1kMGFDQTlJR05oZEdWbmIzSnBaWE11YkdWdVozUm9JRDRnTUNBL0lFMWhkR2d1YldGNEtDNHVMbU5oZEdWbmIzSnBaWE11YldGd0tGeHVJQ0FnSUNBZ0tITXBJRDArSUhNZ0lUMDlJRzUxYkd3Z1B5QjBhR2x6TG5Od2JHbDBkR1Z5SVNoektTNXNaVzVuZEdnZ09pQXdLU2tnT2lBd08xeHVYRzRnSUNBZ0x5OGdSMlYwSUhCdmMybDBhVzl1SUc1aGJXVnpJR1p5YjIwZ1pHRjBZU0JqYjJ4MWJXNGdkR0ZuSUNkd2IzTnBkR2x2Yms1aGJXVnpKMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1VG1GdFpYTlVlSFFnUFNCMGFHbHpMbk5sY1VOdmJDNW5aWFJVWVdjb0ozQnZjMmwwYVc5dVRtRnRaWE1uS1R0Y2JpQWdJQ0F2THlCR1lXeHNZbUZqYXlCcFppQW5jRzl6YVhScGIyNU9ZVzFsY3ljZ2RHRm5JR2x6SUc1dmRDQndjbTkyYVdSbFpGeHVJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBOUlIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1B5QndiM05wZEdsdmJrNWhiV1Z6VkhoMExuTndiR2wwS0Njc0lDY3BMbTFoY0Nnb2Jpa2dQVDRnYmk1MGNtbHRLQ2twSURwY2JpQWdJQ0FnSUZzdUxpNUJjbkpoZVNodFlYaE1aVzVuZEdncExtdGxlWE1vS1YwdWJXRndLQ2hxVUc5ektTQTlQaUJnSkh0cVVHOXpJQ3NnTVgxZ0tUdGNibHh1SUNBZ0lIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbElDWW1JSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeUFtSmx4dUlDQWdJQ0FnZEdocGN5NXdiM05wZEdsdmJrNWhiV1Z6TG1sdVkyeDFaR1Z6S0hSb2FYTXVjM1JoY25SUWIzTnBkR2x2Yms1aGJXVXBLU0EvWEc0Z0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE11YVc1a1pYaFBaaWgwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbEtTQTZJREE3WEc0Z0lDQWdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNBbUppQjBhR2x6TG5CdmMybDBhVzl1VG1GdFpYTWdKaVpjYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1Oc2RXUmxjeWgwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNrcElEOWNiaUFnSUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5NXBibVJsZUU5bUtIUm9hWE11Wlc1a1VHOXphWFJwYjI1T1lXMWxLU0E2SUNodFlYaE1aVzVuZEdnZ0xTQXhLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElIZHBaSFJvUVhKbFlTZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVNWlc1bmRHZ2dLaUIwYUdsekxuQnZjMmwwYVc5dVYybGtkR2dnTHlCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBienRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElHaGxhV2RvZEVGeVpXRW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlFMWhkR2d1YldsdUtIUm9hWE11YldGNFNHVnBaMmgwTENCTllYUm9MbTFoZUNoMGFHbHpMbTFwYmtobGFXZG9kQ3dnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDa3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhRZ2VGTmpZV3hsS0NrZ2UxeHVJQ0FnSUhKbGRIVnliaUFvZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDMGdkR2hwY3k1TVpXNW5kR2dnS2lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdVZtRnNkV1VwSUM4Z2RHaHBjeTUzYVdSMGFFRnlaV0U3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdkbGRDQjVVMk5oYkdVb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbTl2ZEM1amJHbGxiblJJWldsbmFIUWdMeUIwYUdsekxtaGxhV2RvZEVGeVpXRTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR05vWldOclNYTklhV1JsVTJ4cFpHVnlLQ2s2SUdKdmIyeGxZVzRnZTF4dUlDQWdJR3hsZENCemFHOTNVMnhwWkdWeVYybDBhRVpwZEVGeVpXRWdQU0IwY25WbE8xeHVJQ0FnSUdOdmJuTjBJRzFwYmxOallXeGxJRDBnVFdGMGFDNXRhVzRvZEdocGN5NTRVMk5oYkdVc0lIUm9hWE11ZVZOallXeGxLVHRjYmx4dUlDQWdJR2xtSUNnb0tHMXBibE5qWVd4bElEMDlJSFJvYVhNdWVGTmpZV3hsS1NCOGZDQW9iV2x1VTJOaGJHVWdQRDBnTVNrcElDWW1JQ2gwYUdsekxtWnBkRUZ5WldFcEtTQjdYRzRnSUNBZ0lDQnphRzkzVTJ4cFpHVnlWMmwwYUVacGRFRnlaV0VnUFNCbVlXeHpaVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUNnb2RHaHBjeTVtYVhoWGFXUjBhQ0I4ZkNCTllYUm9MbU5sYVd3b2RHaHBjeTVqWVc1MllYTXVkMmxrZEdnZ0x5QjBhR2x6TG5CdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVLU0ErUFNCMGFHbHpMa3hsYm1kMGFDa2dmSHdnS0hOb2IzZFRiR2xrWlhKWGFYUm9SbWwwUVhKbFlTa3BPMXh1SUNCOVhHNWNiaUFnYzJWMFUyeHBaR1Z5Vm1semFXSnBiR2wwZVNoMmFYTnBZbXhsT2lCaWIyOXNaV0Z1S1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0hacGMybGliR1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMnhwWkdWeUxuSnZiM1F1YzNSNWJHVXVaR2x6Y0d4aGVTQTlJQ2RwYm1obGNtbDBKenRjYmlBZ0lDQWdJSFJvYVhNdWRtbHphV0pzWlZOc2FXUmxjaUE5SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMnhwWkdWeUxuSnZiM1F1YzNSNWJHVXVaR2x6Y0d4aGVTQTlJQ2R1YjI1bEp6dGNiaUFnSUNBZ0lIUm9hWE11ZG1semFXSnNaVk5zYVdSbGNpQTlJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLaUJWY0dSaGRHVnpJSHRBYkdsdWF5QnpiR2xrWlhKOUxDQnVaV1ZrWldRZ2RHOGdjMlYwSUhOc2FXUmxjaUJ2Y0hScGIyNXpJR0Z1WkNCMGJ5QjFjR1JoZEdVZ2MyeHBaR1Z5SUhCdmMybDBhVzl1TGlBcUwxeHVJQ0J3Y21sMllYUmxJSFZ3WkdGMFpWTnNhV1JsY2lncE9pQjJiMmxrSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVqYUdWamEwbHpTR2xrWlZOc2FXUmxjaWdwS1NCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOc2FXUmxjbFpwYzJsaWFXeHBkSGtvWm1Gc2MyVXBPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNCMGFHbHpMbk5sZEZOc2FXUmxjbFpwYzJsaWFXeHBkSGtvZEhKMVpTazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDZ29kR2hwY3k1emJHbGtaWElnSVQwZ2JuVnNiQ2tnSmlZZ0tIUm9hWE11WTJGdWRtRnpJQ0U5SUc1MWJHd3BLU0I3WEc0Z0lDQWdJQ0JzWlhRZ1pHbG1aa1Z1WkZOamNtOXNiRUZ1WkZOc2FXUmxjazFwYmlBOUlFMWhkR2d1Wm14dmIzSW9kR2hwY3k1emJHbGtaWEl1YldsdUlDc2dkR2hwY3k1allXNTJZWE11ZDJsa2RHZ2dMeUIwYUdsekxuQnZjMmwwYVc5dVYybGtkR2hYYVhSb1RXRnlaMmx1S1NBdElIUm9hWE11VEdWdVozUm9PMXh1SUNBZ0lDQWdaR2xtWmtWdVpGTmpjbTlzYkVGdVpGTnNhV1JsY2sxcGJpQTlJR1JwWm1aRmJtUlRZM0p2Ykd4QmJtUlRiR2xrWlhKTmFXNGdQaUF3SUQ4Z1pHbG1aa1Z1WkZOamNtOXNiRUZ1WkZOc2FXUmxjazFwYmlBNklEQTdYRzRnSUNBZ0lDQnNaWFFnYm1WM1RXbHVJRDBnVFdGMGFDNW1iRzl2Y2loMGFHbHpMbk5zYVdSbGNpNXRhVzRnTFNCa2FXWm1SVzVrVTJOeWIyeHNRVzVrVTJ4cFpHVnlUV2x1S1R0Y2JpQWdJQ0FnSUd4bGRDQnVaWGROWVhnZ1BTQk5ZWFJvTG1ac2IyOXlLSFJvYVhNdWMyeHBaR1Z5TG0xcGJpQXRJR1JwWm1aRmJtUlRZM0p2Ykd4QmJtUlRiR2xrWlhKTmFXNHBJQ3NnVFdGMGFDNW1iRzl2Y2loMGFHbHpMbU5oYm5aaGN5NTNhV1IwYUNBdklIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNHBPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVZMmhsWTJ0SmMwaHBaR1ZUYkdsa1pYSW9LU2tnZTF4dUlDQWdJQ0FnSUNCdVpYZE5hVzRnUFNBd08xeHVJQ0FnSUNBZ0lDQnVaWGROWVhnZ1BTQjBhR2x6TGt4bGJtZDBhQ0F0SURFN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCMGFHbHpMblIxY201UFpsSmxjMmw2WlVadmNrOXVaVk5sZEZaaGJIVmxJRDBnZEhKMVpUdGNiaUFnSUNBZ0lIUm9hWE11YzJ4cFpHVnlMbk5sZEZaaGJIVmxjeWd3TENCMGFHbHpMa3hsYm1kMGFDeGNiaUFnSUNBZ0lDQWdibVYzVFdsdUxDQnVaWGROWVhncE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLaUJJWVc1a2JHVnlJRzltSUhCeWIzQmxjblI1SUdOb1lXNW5aU0JsZG1WdWRITXVJQ292WEc0Z0lIQjFZbXhwWXlCdmRtVnljbWxrWlNCdmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVRvZ1JFY3VVSEp2Y0dWeWRIa3BPaUIyYjJsa0lIdGNiaUFnSUNCemRYQmxjaTV2YmxCeWIzQmxjblI1UTJoaGJtZGxaQ2h3Y205d1pYSjBlU2s3WEc1Y2JpQWdJQ0J6ZDJsMFkyZ2dLSEJ5YjNCbGNuUjVMbTVoYldVcElIdGNiaUFnSUNCallYTmxJQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNOMFlYSjBVRzl6YVhScGIyNU9ZVzFsSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyVnhRMjlzS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbGJtUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUR0Y2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyeHBaR1Z5S0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbWFYaFhhV1IwYUNjNlhHNGdJQ0FnSUNCMGFHbHpMblZ3WkdGMFpWTnNhV1JsY2lncE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBblptbDBRWEpsWVNjNlhHNGdJQ0FnSUNCMGFHbHpMblZ3WkdGMFpWTnNhV1JsY2lncE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBbmMyaHlhVzVyUlcxd2RIbFVZV2xzSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFVHOXphWFJwYjI1ektDazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZHphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTW5PbHh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZRYjNOcGRHbHZibk1vS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VFdGeVoybHVKenBjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsVTJ4cFpHVnlLQ2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMbkpsYm1SbGNpaDBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJCWkdRZ1ptbHNkR1Z5SUdoaGJtUnNaWEp6SUhkb1pXNGdkR0ZpYkdVZ2FYTWdZU0JoZEhSaFkyaGxaQ0FnS2k5Y2JpQWdjSFZpYkdsaklHOTJaWEp5YVdSbElHOXVWR0ZpYkdWQmRIUmhZMmhsWkNncElIdGNiaUFnSUNCemRYQmxjaTV2YmxSaFlteGxRWFIwWVdOb1pXUW9LVHRjYmx4dUlDQWdJR052Ym5OMElHUmhkR0ZHY21GdFpWUjRkRG9nYzNSeWFXNW5JRDBnZEdocGN5NWtZWFJoUm5KaGJXVWdQeUFuWkdGMFlTY2dPaUFuYm5Wc2JDYzdYRzRnSUNBZ1kyOXVjMjlzWlM1a1pXSjFaeWhnWW1sdk9pQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xtOXVWR0ZpYkdWQmRIUmhZMmhsWkNnZ1pHRjBZVVp5WVcxbElEMGdKSHRrWVhSaFJuSmhiV1ZVZUhSOUlDa2djM1JoY25SZ0tUdGNibHh1SUNBZ0lIUm9hWE11ZFhCa1lYUmxVMlZ4UTI5c0tDazdYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NWtZWFJoUm5KaGJXVWdJVDA5SUhadmFXUWdNQ2tnZTF4dUlDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29kR2hwY3k1a1lYUmhSbkpoYldVdWMyVnNaV04wYVc5dUxtOXVRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LRjhwSUQwK0lIUm9hWE11Y21WdVpHVnlLQ2twS1R0Y2JpQWdJQ0FnSUhSb2FYTXVjM1ZpY3k1d2RYTm9LSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1dmJrTm9ZVzVuWldRdWMzVmljMk55YVdKbEtDaGZLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZFhCa1lYUmxVRzl6YVhScGIyNXpLQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtDazdYRzRnSUNBZ0lDQjlLU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdkR2hwY3k1cGJtbDBLQ2s3WEc0Z0lDQWdZMjl1YzI5c1pTNWtaV0oxWnloZ1ltbHZPaUJYWldKTWIyZHZQQ1I3ZEdocGN5NTJhV1YzWlhKSlpIMCtMbTl1VkdGaWJHVkJkSFJoWTJobFpDZ3BJR1Z1WkdBcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xSUZKbGJXOTJaU0JoYkd3Z2FHRnVaR3hsY25NZ2QyaGxiaUIwWVdKc1pTQnBjeUJoSUdSbGRHRmphQ0FnS2k5Y2JpQWdjSFZpYkdsaklHOTJaWEp5YVdSbElHRnplVzVqSUdSbGRHRmphQ2dwSUh0Y2JpQWdJQ0JqYjI1emRDQmtZWFJoUm5KaGJXVlVlSFFnUFNCZ0pIdDBhR2x6TG1SaGRHRkdjbUZ0WlNBL0lDZGtZWFJoSnlBNklDZHVkV3hzSjMxZ08xeHVJQ0FnSUdOdmJuTnZiR1V1WkdWaWRXY29ZR0pwYnpvZ1YyVmlURzluYnp3a2UzUm9hWE11ZG1sbGQyVnlTV1I5UGk1dmJsUmhZbXhsUVhSMFlXTm9aV1FvSUdSaGRHRkdjbUZ0WlNBOUlDUjdaR0YwWVVaeVlXMWxWSGgwZlNBcElITjBZWEowWUNrN1hHNGdJQ0FnYzNWd1pYSXVaR1YwWVdOb0tDazdYRzVjYmlBZ0lDQjBhR2x6TG5acFpYZFRkV0p6TG1admNrVmhZMmdvS0hOMVlpa2dQVDRnYzNWaUxuVnVjM1ZpYzJOeWFXSmxLQ2twTzF4dUlDQWdJSFJvYVhNdWFHOXpkQ0V1Y21WdGIzWmxLQ2s3WEc0Z0lDQWdkR2hwY3k1dGMyZEliM04wSUQwZ2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUhSb2FYTXVhRzl6ZENBOUlIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lIUm9hWE11YVc1cGRHbGhiR2w2WldRZ1BTQm1ZV3h6WlR0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ2tnWlc1a1lDazdYRzRnSUgxY2JseHVJQ0F2S2lvZ1NHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQnlaVzVrWlhKcGJtY2dLaTljYmlBZ2NISnZkR1ZqZEdWa0lGOXVkV3hzVTJWeGRXVnVZMlVvWm1sc2JHVnlVbVZ6YVdSMVpTQTlJQ2RZSnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5OcmFYQkZiWEIwZVZObGNYVmxibU5sY3lsY2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1FYSnlZWGtvZEdocGN5NU1aVzVuZEdncExtWnBiR3dvWm1sc2JHVnlVbVZ6YVdSMVpTa3VhbTlwYmlnbkp5azdYRzVjYmlBZ0lDQnlaWFIxY200Z0p5YzdYRzRnSUgxY2JseHVJQ0F2S2lvZ1NHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQnlaVzF2ZG1VZ1pXMXdkSGtnY0c5emFYUnBiMjV6SUNvdlhHNGdJQzh2SUZSUFJFODZJSFZ6WlNCMGFHbHpJR1oxYm1OMGFXOXVJR2x1SUdaeWIyMGdZMjl5WlZ4dUlDQndjbTkwWldOMFpXUWdjbVZ0YjNabFYyaGxjbVVvWVhKeVlYazZJRUZ5Y21GNVBHRnVlVDRzSUhCeVpXUnBZMkYwWlRvZ0tGUTZJR0Z1ZVNrZ1BUNGdZbTl2YkdWaGJpazZJRUZ5Y21GNVBHRnVlVDRnZTF4dUlDQWdJR3hsZENCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJSFZ3WkdGMFpVbDBaWEpoZEc5eUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQmtaV3hsZEdWSmRHVnlZWFJ2Y2lBOUlEQTdJR1JsYkdWMFpVbDBaWEpoZEc5eUlEd2diR1Z1WjNSb095QmtaV3hsZEdWSmRHVnlZWFJ2Y2lzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhCeVpXUnBZMkYwWlNoaGNuSmhlVnRrWld4bGRHVkpkR1Z5WVhSdmNsMHBLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM1Z3WkdGMFpVbDBaWEpoZEc5eVhTQTlJR0Z5Y21GNVcyUmxiR1YwWlVsMFpYSmhkRzl5WFR0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsU1hSbGNtRjBiM0lyS3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2RYQmtZWFJsU1hSbGNtRjBiM0k3WEc0Z0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQjlYRzVjYmx4dUlDQXZLaW9nUm5WdVkzUnBiMjRnWm05eUlISmxiVzkyYVc1bklHVnRjSFI1SUhCdmMybDBhVzl1Y3lBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWDNKbGJXOTJaVVZ0Y0hSNVVHOXphWFJwYjI1ektDa2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN5a2dlMXh1SUNBZ0lDQWdkR2hwY3k1eVpXMXZkbVZYYUdWeVpTaDBhR2x6TG5CdmMybDBhVzl1Y3l3Z2FYUmxiU0E5UGlCcGRHVnRQeTVtY21WeFd5Y3RKMTAvTG1OdmRXNTBJRDA5UFNCcGRHVnRMbkp2ZDBOdmRXNTBLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWDJOaGJHTjFiR0YwWlNoeU9pQnVkVzFpWlhJcElIdGNiaUFnSUNCcFppQW9JWFJvYVhNdWFHOXpkQ0I4ZkNBaGRHaHBjeTV6WlhGRGIyd2dmSHdnSVhSb2FYTXVaR0YwWVVaeVlXMWxLVnh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVJQ0FnSUhSb2FYTXVkVzVwZEhOSVlXNWtiR1Z5SUQwZ2JtVjNJRlZ1YVhSelNHRnVaR3hsY2loMGFHbHpMbk5sY1VOdmJDazdYRzVjYmlBZ0lDQjBhR2x6TG1OaGJHTlRhWHBsS0NrN1hHNWNiaUFnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjeUE5SUc1bGR5QkJjbkpoZVNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BEMGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQS9JSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdMU0IwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lBeElEb2dNQ2s3WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlEQTdJR3BRYjNNZ1BDQjBhR2x6TGt4bGJtZDBhRHNnYWxCdmN5c3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndiM05PWVcxbE9pQnpkSEpwYm1jZ1BTQjBhR2x6TG5CdmMybDBhVzl1VG1GdFpYTmJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMDdYRzRnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYU0E5SUc1bGR5QlFiM05wZEdsdmJrbHVabThvY0c5elRtRnRaU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnTWpBeU1pMHdOUzB3TlNCaGMydGhiR3RwYmlCcGJuTjBjblZqZEdWa0lIUnZJSE5vYjNjZ1YyVmlURzluYnlCaVlYTmxaQ0J2YmlCbWFXeDBaWElnS0c1dmRDQnpaV3hsWTNScGIyNHBYRzRnSUNBZ1kyOXVjM1FnYVc1a2FXTmxjeUE5SUhSb2FYTXVaR0YwWVVaeVlXMWxMbVpwYkhSbGNpNW5aWFJUWld4bFkzUmxaRWx1WkdWNFpYTW9LVHRjYmlBZ0lDQXZMeUJqYjI1emRDQnBibVJwWTJWeklEMGdkR2hwY3k1a1lYUmhSbkpoYldVdWMyVnNaV04wYVc5dUxuUnlkV1ZEYjNWdWRDQStJREFnUHlCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1WjJWMFUyVnNaV04wWldSSmJtUmxlR1Z6S0NrZ09seHVJQ0FnSUM4dklDQWdkR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG1kbGRGTmxiR1ZqZEdWa1NXNWtaWGhsY3lncE8xeHVYRzRnSUNBZ2RHaHBjeTV5YjNkelRXRnphMlZrSUQwZ2FXNWthV05sY3k1c1pXNW5kR2c3WEc0Z0lDQWdkR2hwY3k1eWIzZHpUblZzYkNBOUlEQTdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR2tnYjJZZ2FXNWthV05sY3lrZ2UxeHVJQ0FnSUNBZ2JHVjBJSE02SUhOMGNtbHVaeUE5SUR4emRISnBibWMrS0hSb2FYTXVjMlZ4UTI5c0xtZGxkQ2hwS1NrN1hHNWNiaUFnSUNBZ0lHbG1JQ2doY3lrZ2UxeHVJQ0FnSUNBZ0lDQnpJRDBnZEdocGN5NWZiblZzYkZObGNYVmxibU5sS0NrN1hHNGdJQ0FnSUNBZ0lDc3JkR2hwY3k1eWIzZHpUblZzYkR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRUb2djM1J5YVc1blcxMGdQU0IwYUdsekxuTndiR2wwZEdWeUlTaHpLVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR3BRYjNNZ1BTQXdPeUJxVUc5eklEd2dkR2hwY3k1TVpXNW5kR2c3SUdwUWIzTXJLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YlVsdVptOGdQU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRPaUJ6ZEhKcGJtY2dQU0J6WlhGTlczUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQXJJR3BRYjNOZElIeDhJQ2N0Snp0Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0VvYlNCcGJpQndiVWx1Wm04cEtWeHVJQ0FnSUNBZ0lDQWdJSEJ0U1c1bWIxdHRYU0E5SUc1bGR5QlFiM05wZEdsdmJrMXZibTl0WlhKSmJtWnZLQ2s3WEc0Z0lDQWdJQ0FnSUhCdFNXNW1iMXR0WFM1amIzVnVkQ3NyTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJQzh2STNKbFoybHZiaUJRYjJ4cGMyZ2dabkpsY1NCamIzVnVkSE5jYmlBZ0lDQm1iM0lnS0d4bGRDQnFVRzl6SUQwZ01Ec2dhbEJ2Y3lBOElIUm9hWE11VEdWdVozUm9PeUJxVUc5ekt5c3BJSHRjYmlBZ0lDQWdJQzh2SUdSbGJHVjBaU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhXeWN0SjEwN1hHNWNiaUFnSUNBZ0lIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbkp2ZDBOdmRXNTBJRDBnTUR0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JTQnBiaUIwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhLVnh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1eWIzZERiM1Z1ZENBclBTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeFcyMWRMbU52ZFc1ME8xeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXpkVzFHYjNKSVpXbG5hSFJEWVd4aklEMGdNRHRjYmlBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCdElHbHVJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRXBJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3YmlBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhGYmJWMHVZMjkxYm5RZ0x5QjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV5YjNkRGIzVnVkRHRjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXpkVzFHYjNKSVpXbG5hSFJEWVd4aklDczlJQzF3YmlBcUlFMWhkR2d1Ykc5bk1paHdiaWs3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1WEc0Z0lDQWdkR2hwY3k1ZmNtVnRiM1psUlcxd2RIbFFiM05wZEdsdmJuTW9LVHRjYmx4dUlDQWdJR052Ym5OMElHRmljMjlzZFhSbFRXRjRTR1ZwWjJoMElEMGdkR2hwY3k1allXNTJZWE11YUdWcFoyaDBJQzBnZEdocGN5NWhlR2x6U0dWcFoyaDBJQ29nY2p0Y2JseHVJQ0FnSUM4dkkzSmxaMmx2YmlCRFlXeGpkV3hoZEdVZ2MyTnlaV1Z1WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlEQTdJR3BRYjNNZ1BDQjBhR2x6TGt4bGJtZDBhRHNnYWxCdmN5c3JLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQm1jbVZ4T2lCN0lGdGpPaUJ6ZEhKcGJtZGRPaUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUgwZ1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeE8xeHVJQ0FnSUNBZ1kyOXVjM1FnY205M1EyOTFiblFnUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWREdGNiaUFnSUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwVTJsNlpTQTlJSFJvYVhNdVoyVjBRV3h3YUdGaVpYUlRhWHBsS0NrN1hHNGdJQ0FnSUNCcFppQW9LSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnSmlZZ0tHRnNjR2hoWW1WMFUybDZaU0E5UFNCdWRXeHNLU2tnZTF4dUlDQWdJQ0FnSUNCbmNtOXJMbk5vWld4c0xtVnljbTl5S0NkWFpXSk1iMmR2T2lCaGJIQm9ZV0psZENCcGN5QjFibVJsWm1sdVpXUXVKeWs3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzFoZUVobGFXZG9kQ0E5SUNoMGFHbHpMbkJ2YzJsMGFXOXVTR1ZwWjJoMElEMDlJRkJ2YzJsMGFXOXVTR1ZwWjJoMExrVnVkSEp2Y0hrcElEOGdLR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJQ29nS0UxaGRHZ3ViRzluTWloaGJIQm9ZV0psZEZOcGVtVXBJQzBnS0hSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExuTjFiVVp2Y2tobGFXZG9kRU5oYkdNcEtTQXZJRTFoZEdndWJHOW5NaWhoYkhCb1lXSmxkRk5wZW1VcEtTQTZJR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBPMXh1WEc0Z0lDQWdJQ0JzWlhRZ2VUb2diblZ0WW1WeUlEMGdkR2hwY3k1aGVHbHpTR1ZwWjJoMElDb2djaUFySUNoaFluTnZiSFYwWlUxaGVFaGxhV2RvZENBdElHMWhlRWhsYVdkb2RDQXRJREVwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JsYm5SeWFXVnpJRDBnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9abkpsY1NrdWMyOXlkQ2dvWVN3Z1lpa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9ZVnN3WFNBaFBUMGdKeTBuSUNZbUlHSmJNRjBnSVQwOUlDY3RKeWxjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWWxzeFhTNWpiM1Z1ZENBdElHRmJNVjB1WTI5MWJuUTdYRzRnSUNBZ0lDQWdJR1ZzYzJVZ2FXWWdLR0ZiTUYwZ1BUMDlJQ2N0SnlBbUppQmlXekJkSUQwOVBTQW5MU2NwWEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SURBN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnYVdZZ0tHRmJNRjBnUFQwOUlDY3RKeWxjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnTFRFN1hHNGdJQ0FnSUNBZ0lHVnNjMlVnTHlvZ0tHSmJNRjBnUFQwOUlDY3RKeWtnS2k5Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0t6RTdYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnWlc1MGNua2diMllnWlc1MGNtbGxjeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3YlVsdVptODZJRkJ2YzJsMGFXOXVUVzl1YjIxbGNrbHVabThnUFNCbGJuUnllVnN4WFR0Y2JpQWdJQ0FnSUNBZ0x5OGdZMjl1YzNRZ2JUb2djM1J5YVc1bklEMGdaVzUwY25sYk1GMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElHZzZJRzUxYldKbGNpQTlJRzFoZUVobGFXZG9kQ0FxSUhCdFNXNW1ieTVqYjNWdWRDQXZJSEp2ZDBOdmRXNTBPMXh1WEc0Z0lDQWdJQ0FnSUhCdFNXNW1ieTVpYjNWdVpITWdQU0J1WlhjZ1JFY3VVbVZqZENocVVHOXpJQ29nZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvVjJsMGFFMWhjbWRwYml3Z2VTd2dkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ3dnYUNrN1hHNGdJQ0FnSUNBZ0lIa2dLejBnYUR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1WEc1Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlc1a1pYSWdWMlZpVEc5bmJ5QnpaVzV6YVhScGRtVWdkRzhnWTJoaGJtZGxjeUJwYmlCd1lYSmhiWE1nYjJZZ2NtVnVaR1Z5YVc1blhHNGdJQ0FxUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0J5WldOaGJHTWdMU0JwYm1ScFkyRjBaWE1nZEdoaGRDQnVaV1ZrSUhSdklISmxZMkZzWTNWc1lYUmxJR1JoZEdFZ1ptOXlJSEpsYm1SbGNtbHVaMXh1SUNBZ0tpOWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11YzJWeFEyOXNJSHg4SUNGMGFHbHpMbVJoZEdGR2NtRnRaU0I4ZkNBaGRHaHBjeTVqY0NCOGZDQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdQVDA5SUMweElIeDhJSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdQVDA5SUMweElIeDhJSFJvYVhNdWFHOXpkQ0E5UFNCdWRXeHNJSHg4SUhSb2FYTXVjMnhwWkdWeUlEMDlJRzUxYkd3cFhHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdJQ0JqYjI1emRDQm5JRDBnZEdocGN5NWpZVzUyWVhNdVoyVjBRMjl1ZEdWNGRDZ25NbVFuS1R0Y2JpQWdJQ0JwWmlBb0lXY3BJSEpsZEhWeWJqdGNibHh1SUNBZ0lIUm9hWE11YzJ4cFpHVnlMbkp2YjNRdWMzUjViR1V1ZDJsa2RHZ2dQU0JnSkh0MGFHbHpMbWh2YzNRdVkyeHBaVzUwVjJsa2RHaDljSGhnTzF4dVhHNGdJQ0FnWTI5dWMzUWdjaUE5SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1WEc0Z0lDQWdhV1lnS0hKbFkyRnNZeWxjYmlBZ0lDQWdJSFJvYVhNdVgyTmhiR04xYkdGMFpTaHlLVHRjYmx4dUlDQWdJR2N1Y21WelpYUlVjbUZ1YzJadmNtMG9LVHRjYmlBZ0lDQm5MbVpwYkd4VGRIbHNaU0E5SUVSSExrTnZiRzl5TG5SdlNIUnRiQ2gwYUdsekxtSmhZMnRuY205MWJtUkRiMnh2Y2lrN1hHNGdJQ0FnWnk1bWFXeHNVbVZqZENnd0xDQXdMQ0IwYUdsekxtTmhiblpoY3k1M2FXUjBhQ3dnZEdocGN5NWpZVzUyWVhNdWFHVnBaMmgwS1R0Y2JpQWdJQ0JuTG5SbGVIUkNZWE5sYkdsdVpTQTlJSFJvYVhNdWRHVjRkRUpoYzJWc2FXNWxPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXRjRRMjkxYm5SUFpsSnZkM05TWlc1a1pYSmxaQ0E5SUhSb2FYTXVZMjkxYm5SUFpsSmxibVJsY2xCdmMybDBhVzl1Y3lBcklERTdYRzRnSUNBZ1kyOXVjM1FnWm1seWMzUldhWE5wWW14bFNXNWtaWGdnUFNBb2RHaHBjeTUyYVhOcFlteGxVMnhwWkdWeUtTQS9JRTFoZEdndVpteHZiM0lvZEdocGN5NXpiR2xrWlhJdWJXbHVLU0E2SURBN1hHNGdJQ0FnWTI5dWMzUWdiR0Z6ZEZacGMybGliR1ZKYm1SbGVDQTlJRTFoZEdndWJXbHVLSFJvYVhNdVRHVnVaM1JvTENCbWFYSnpkRlpwYzJsaWJHVkpibVJsZUNBcklHMWhlRU52ZFc1MFQyWlNiM2R6VW1WdVpHVnlaV1FwTzF4dVhHNGdJQ0FnTHk4amNtVm5hVzl1SUZCc2IzUWdjRzl6YVhScGIyNU9ZVzFsYzF4dUlDQWdJR052Ym5OMElIQnZjMmwwYVc5dVJtOXVkRk5wZW1VZ1BTQXhNQ0FxSUhJN1hHNGdJQ0FnWnk1eVpYTmxkRlJ5WVc1elptOXliU2dwTzF4dUlDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ0oySnNZV05ySnp0Y2JpQWdJQ0JuTG5SbGVIUkJiR2xuYmlBOUlDZGpaVzUwWlhJbk8xeHVJQ0FnSUdjdVptOXVkQ0E5SUdBa2UzQnZjMmwwYVc5dVJtOXVkRk5wZW1VdWRHOUdhWGhsWkNneEtYMXdlQ0JTYjJKdmRHOHNJRkp2WW05MGJ5Qk1iMk5oYkN3Z2MyRnVjeTF6WlhKcFptQTdYRzRnSUNBZ1kyOXVjM1FnY0c5elRtRnRaVTFoZUZkcFpIUm9JRDBnVFdGMGFDNXRZWGdvTGk0dWRHaHBjeTV3YjNOcGRHbHZibk11YldGd0tDaHdiM01wSUQwK0lHY3ViV1ZoYzNWeVpWUmxlSFFvY0c5ekxtNWhiV1VwTG5kcFpIUm9LU2s3WEc0Z0lDQWdZMjl1YzNRZ2FGTmpZV3hsSUQwZ2NHOXpUbUZ0WlUxaGVGZHBaSFJvSUR3Z0tIUm9hWE11WDNCdmMybDBhVzl1VjJsa2RHZ2dMU0F5S1NBL0lERWdPaUFvZEdocGN5NWZjRzl6YVhScGIyNVhhV1IwYUNBdElESXBJQzhnY0c5elRtRnRaVTFoZUZkcFpIUm9PMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdhbEJ2Y3lBOUlIUm9hWE11Wm1seWMzUldhWE5wWW14bFNXNWtaWGc3SUdwUWIzTWdQQ0JzWVhOMFZtbHphV0pzWlVsdVpHVjRPeUJxVUc5ekt5c3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIQnZjem9nVUc5emFYUnBiMjVKYm1adklEMGdkR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTA3WEc0Z0lDQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdJQ0JuTG5ObGRGUnlZVzV6Wm05eWJTaGNiaUFnSUNBZ0lDQWdhRk5qWVd4bExDQXdMQ0F3TENBeExGeHVJQ0FnSUNBZ0lDQnFVRzl6SUNvZ2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb1YybDBhRTFoY21kcGJpQXJJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnTHlBeUlDMGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFxSUdacGNuTjBWbWx6YVdKc1pVbHVaR1Y0TENBd0tUdGNiaUFnSUNBZ0lHY3VabWxzYkZSbGVIUW9jRzl6TG01aGJXVXNJREFzSURBcE8xeHVJQ0FnSUgxY2JpQWdJQ0F2THlObGJtUnlaV2RwYjI0Z1VHeHZkQ0J3YjNOcGRHbHZiazVoYldWelhHNGdJQ0FnWTI5dWMzUWdabTl1ZEZOMGVXeGxJRDBnSnpFMmNIZ2dVbTlpYjNSdkxDQlNiMkp2ZEc4Z1RHOWpZV3dzSUhOaGJuTXRjMlZ5YVdZbk8xeHVJQ0FnSUM4dklFaGhZMnR6SUhSdklITmpZV3hsSUhWd2NHVnlZMkZ6WlNCamFHRnlZV04wWlhKeklIUnZJSFJoY21kbGRDQnlaV04wWVc1bmJHVmNiaUFnSUNCamIyNXpkQ0IxY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RZ1BTQXdMakkxTzF4dUlDQWdJR052Ym5OMElIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ0E5SURFeUxqSTdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZzdJR3BRYjNNZ1BDQnNZWE4wVm1semFXSnNaVWx1WkdWNE95QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lHWnZjaUFvWTI5dWMzUWdXMjF2Ym05dFpYSXNJSEJ0U1c1bWIxMGdiMllnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9kR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1Wm5KbGNTa3BJSHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHMXZibTl0WlhJZ0lUMDlJQ2N0SnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhKVWVIUWdQU0J0YjI1dmJXVnlWRzlUYUc5eWRDaHRiMjV2YldWeUxDQTFLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JpSUQwZ2NHMUpibVp2TG1KdmRXNWtjenRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JzWldaMElEMGdZaTVzWldaMElDMGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaUFxSUhSb2FYTXVabWx5YzNSV2FYTnBZbXhsU1c1a1pYZzdYRzVjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxjMlYwVkhKaGJuTm1iM0p0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdaeTV6ZEhKdmEyVlRkSGxzWlNBOUlDZHNhV2RvZEdkeVlYa25PMXh1SUNBZ0lDQWdJQ0FnSUdjdWJHbHVaVmRwWkhSb0lEMGdNVHRjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxZM1FvYkdWbWRDd2dZaTUwYjNBc0lHSXVkMmxrZEdnc0lHSXVhR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdJQ0JuTG1acGJHeFRkSGxzWlNBOUlIUm9hWE11WTNBdVoyVjBLRzF2Ym05dFpYSXBJRDgvSUhSb2FYTXVZM0F1WjJWMEtDZHZkR2hsY2ljcE8xeHVJQ0FnSUNBZ0lDQWdJR2N1ZEdWNGRFRnNhV2R1SUQwZ0oyeGxablFuTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabTl1ZENBOUlHWnZiblJUZEhsc1pUdGNiaUFnSUNBZ0lDQWdJQ0F2TDJjdVptbHNiRkpsWTNRb1lpNXNaV1owTENCaUxuUnZjQ3dnWWk1M2FXUjBhQ3dnWWk1b1pXbG5hSFFwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxVWJUb2dWR1Y0ZEUxbGRISnBZM01nUFNCbkxtMWxZWE4xY21WVVpYaDBLRzF2Ym05dFpYSlVlSFFwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpTG5kcFpIUm9JQzhnYlZSdExuZHBaSFJvTENBd0xDQXdMQ0JpTG1obGFXZG9kQ0F2SUhWd2NHVnlZMkZ6WlV4bGRIUmxja2hsYVdkb2RDeGNiaUFnSUNBZ0lDQWdJQ0FnSUd4bFpuUXNJR0l1ZEc5d0tUdGNiaUFnSUNBZ0lDQWdJQ0JuTG1acGJHeFVaWGgwS0cxdmJtOXRaWEpVZUhRc0lEQXNJQzExY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xSUVOaGJHTjFiR0YwWlNCallXNTJZWE1nYzJsNlpTQmhiaUJ3YjNOcGRHbHZibGRwWkhSb0lHRnVaQ0IxY0dSaGRHVnpJSEJ5YjNCbGNuUnBaWE1nS2k5Y2JpQWdjSEpwZG1GMFpTQmpZV3hqVTJsNlpTZ3BJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhRzl6ZENsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVYRzRnSUNBZ2JHVjBJSGRwWkhSb09pQnVkVzFpWlhJZ1BTQjBhR2x6TG5kcFpIUm9RWEpsWVR0Y2JpQWdJQ0JzWlhRZ2FHVnBaMmgwSUQwZ2RHaHBjeTVvWldsbmFIUkJjbVZoTzF4dVhHNGdJQ0FnYVdZZ0tDaDBhR2x6TG1acGRFRnlaV0VwSUNZbUlDZ2hkR2hwY3k1MmFYTnBZbXhsVTJ4cFpHVnlLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjMk5oYkdVZ1BTQk5ZWFJvTG0xaGVDZ3hMQ0JOWVhSb0xtMXBiaWgwYUdsekxuaFRZMkZzWlN3Z2RHaHBjeTU1VTJOaGJHVXBLVHRjYmlBZ0lDQWdJSGRwWkhSb0lEMGdkMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0FnSUdobGFXZG9kQ0E5SUdobGFXZG9kQ0FxSUhOallXeGxPMXh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUNBcUlITmpZV3hsTzF4dUlDQWdJSDFjYmx4dUlDQWdJSGRwWkhSb0lEMGdkR2hwY3k1TVpXNW5kR2dnS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdUlDOGdjanRjYmx4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG5kcFpIUm9JRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDb2djanRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlHQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUlhhV1IwYUgxd2VHQTdYRzVjYmlBZ0lDQXZMeUJqYjI1emRDQmpZVzUyWVhOSVpXbG5hSFE2SUc1MWJXSmxjaUE5SUhkcFpIUm9JRDRnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lEOGdhR1ZwWjJoMElDMGdPQ0E2SUdobGFXZG9kRHRjYmlBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMmhsYVdkb2RDY3NJR0FrZTJobGFXZG9kSDF3ZUdBcE8xeHVJQ0FnSUdOdmJuTjBJR05oYm5aaGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ2RHaHBjeTVvYjNOMExtTnNhV1Z1ZEVobGFXZG9kRHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTVvWldsbmFIUWdQU0JqWVc1MllYTklaV2xuYUhRZ0tpQnlPMXh1WEc0Z0lDQWdMeThnUVdScWRYTjBJR2h2YzNRZ1lXNWtJSEp2YjNRZ2QybGtkR2hjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdMeThnWm5Wc2JDQjNhV1IwYUNCbWIzSWdZMkZ1ZG1GeklHaHZjM1FnWVc1a0lISnZiM1JjYmlBZ0lDQWdJSFJvYVhNdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlIUm9hWE11YUc5emRDNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UzZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdG9aV2xuYUhSOWNIaGdPMXh1SUNBZ0lDQWdkR2hwY3k1eWIyOTBMbk4wZVd4bExtOTJaWEptYkc5M0lEMGdKMmhwWkdSbGJpYzdYRzRnSUNBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMjkyWlhKbWJHOTNMWGtuTENBbmFHbGtaR1Z1Snl3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBdkx5QmhiR3h2ZHlCelkzSnZiR3dnWTJGdWRtRnpJR2x1SUhKdmIzUmNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1M2FXUjBhQ0E5SUhSb2FYTXVhRzl6ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1dmRtVnlabXh2ZDFnZ1BTQW5ZWFYwYnlGcGJYQnZjblJoYm5Rbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZDBaWGgwTFdGc2FXZHVKeXdnZEdocGN5NW9iM0pwZW05dWRHRnNRV3hwWjI1dFpXNTBLVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMnhwWkdWeVNHVnBaMmgwSUQwZ2RHaHBjeTUyYVhOcFlteGxVMnhwWkdWeUlEOGdNVEFnT2lBd08xeHVYRzRnSUNBZ0lDQXZMeUIyWlhKMGFXTmhiQ0JoYkdsbmJtMWxiblJjYmlBZ0lDQWdJR3hsZENCb2IzTjBWRzl3VFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NTJaWEowYVdOaGJFRnNhV2R1YldWdWRDa2dlMXh1SUNBZ0lDQWdZMkZ6WlNBbmRHOXdKenBjYmlBZ0lDQWdJQ0FnYUc5emRGUnZjRTFoY21kcGJpQTlJREE3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNBbmJXbGtaR3hsSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRlJ2Y0UxaGNtZHBiaUE5SUUxaGRHZ3ViV0Y0S0RBc0lDaDBhR2x6TG5KdmIzUXVZMnhwWlc1MFNHVnBaMmgwSUMwZ2FHVnBaMmgwS1NBdklESXBPMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lHTmhjMlVnSjJKdmRIUnZiU2M2WEc0Z0lDQWdJQ0FnSUdodmMzUlViM0JOWVhKbmFXNGdQU0JOWVhSb0xtMWhlQ2d3TENCMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJQzBnYUdWcFoyaDBJQzBnYzJ4cFpHVnlTR1ZwWjJoMEtUdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNBdkx5Qm9iM0pwZW05dWRHRnNJR0ZzYVdkdWJXVnVkRnh1SUNBZ0lDQWdiR1YwSUdodmMzUk1aV1owVFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NW9iM0pwZW05dWRHRnNRV3hwWjI1dFpXNTBLU0I3WEc0Z0lDQWdJQ0JqWVhObElDZHNaV1owSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRXhsWm5STllYSm5hVzRnUFNBd08xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUdOaGMyVWdKMk5sYm5SbGNpYzZYRzRnSUNBZ0lDQWdJR2h2YzNSTVpXWjBUV0Z5WjJsdUlEMGdUV0YwYUM1dFlYZ29NQ3dnS0hSb2FYTXVjbTl2ZEM1amJHbGxiblJYYVdSMGFDQXRJSGRwWkhSb0tTQXZJRElwTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJR05oYzJVZ0ozSnBaMmgwSnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRXhsWm5STllYSm5hVzRnUFNCTllYUm9MbTFoZUNnd0xDQjBhR2x6TG5KdmIzUXVZMnhwWlc1MFYybGtkR2dnTFNCM2FXUjBhQ2s3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExuTmxkRkJ5YjNCbGNuUjVLQ2R0WVhKbmFXNHRkRzl3Snl3Z1lDUjdhRzl6ZEZSdmNFMWhjbWRwYm4xd2VHQXNJQ2RwYlhCdmNuUmhiblFuS1R0Y2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmJXRnlaMmx1TFd4bFpuUW5MQ0JnSkh0b2IzTjBUR1ZtZEUxaGNtZHBibjF3ZUdBc0lDZHBiWEJ2Y25SaGJuUW5LVHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk5zYVdSbGNpQWhQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMyeHBaR1Z5TG5KdmIzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMjFoY21kcGJpMTBiM0FuTENCZ0pIdG9iM04wVkc5d1RXRnlaMmx1SUNzZ1kyRnVkbUZ6U0dWcFoyaDBmWEI0WUN3Z0oybHRjRzl5ZEdGdWRDY3BPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kQ0E4UFNCb1pXbG5hSFFwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZG9aV2xuYUhRbkxDQmdKSHQwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMGZYQjRZQ2s3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmIzWmxjbVpzYjNjdGVTY3NJRzUxYkd3cE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZHZkbVZ5Wm14dmR5MTVKeXdnSjJocFpHUmxiaWNzSUNkcGJYQnZjblJoYm5RbktUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBRV3h3YUdGaVpYUlRhWHBsS0NrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRXNXBkSE5JWVc1a2JHVnlQeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LU0EvUHlBd08xeHVJQ0I5WEc1OVhHNGlYWDA9IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBjcmVhdGVEaW1lbnNpbmFsaXR5UmVkdWNpbmdXb3JrZXIgfSBmcm9tICcuL3dvcmtlcnMvZGltZW5zaW9uYWxpdHktcmVkdWNpbmctd29ya2VyLWNyZWF0b3InO1xuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihkYXRhQ29sLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMgPSB5aWVsZCBjcmVhdGVEaW1lbnNpbmFsaXR5UmVkdWNpbmdXb3JrZXIoeyBkYXRhOiBkYXRhQ29sLCBtZXRyaWM6IHNpbWlsYXJpdHlNZXRyaWMgfSwgbWV0aG9kTmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzLmVtYmVkZGluZyA9IGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzLmVtYmVkZGluZy5tYXAoaXQgPT4gbm9ybWFsaXplKGl0KSk7XG4gICAgICAgIHJldHVybiBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcztcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnhkV1Z1WTJVdGMzQmhZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpaWEYxWlc1alpTMXpjR0ZqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkZRU3hQUVVGUExFVkJRVVVzVTBGQlV5eEZRVUZGTEUxQlFVMHNhVVJCUVdsRUxFTkJRVU03UVVGSE5VVXNUMEZCVHl4RlFVRkZMR2xEUVVGcFF5eEZRVUVyUWl4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlIyeEpMRTFCUVUwc1ZVRkJaMElzYjBOQlFXOURMRU5CUTNSRUxFOUJRWEZETEVWQlEzSkRMRlZCUVd0Q0xFVkJRMnhDTEdkQ1FVRTJSQ3hGUVVNM1JDeFBRVUZoT3p0UlFVVmlMRTFCUVUwc2RVSkJRWFZDTEVkQlEzcENMRTFCUVUwc2FVTkJRV2xETEVOQlEyNURMRVZCUVVVc1NVRkJTU3hGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNaMEpCUVdkQ0xFVkJRV2RDTEVWQlEzcEVMRlZCUVZVc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVVUzUWl4MVFrRkJkVUlzUTBGQlF5eFRRVUZUTEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5R0xFOUJRVThzZFVKQlFYVkNMRU5CUVVNN1NVRkRia01zUTBGQlF6dERRVUZCSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUVKcGRFRnljbUY1SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDJKcGRDMWhjbkpoZVNjN1hHNXBiWEJ2Y25RZ2V5Qk5ZWFJ5YVhnc0lGWmxZM1J2Y2lCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJRzV2Y20xaGJHbDZaU0I5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNabFkzUnZjaTF2Y0dWeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVwYlhCdmNuUWdleUJDYVhSQmNuSmhlVTFsZEhKcFkzTXNJRk4wY21sdVowMWxkSEpwWTNNc0lGWmhiR2xrVkhsd1pYTXNJRlpsWTNSdmNrMWxkSEpwWTNNZ2ZTQm1jbTl0SUNjdUwzUjVjR1ZrTFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUhzZ1kzSmxZWFJsUkdsdFpXNXphVzVoYkdsMGVWSmxaSFZqYVc1blYyOXlhMlZ5TENCSlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRZ2ZTQm1jbTl0SUNjdUwzZHZjbXRsY25NdlpHbHRaVzV6YVc5dVlXeHBkSGt0Y21Wa2RXTnBibWN0ZDI5eWEyVnlMV055WldGMGIzSW5PMXh1WEc1Y2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJ5WldSMVkyVkVhVzFsYm5OcGJtRnNhWFI1VjJsMGFFNXZjbTFoYkdsNllYUnBiMjRvWEc0Z0lDQWdaR0YwWVVOdmJEb2dRbWwwUVhKeVlYbGJYWHhXWldOMGIzSmJYWHh6ZEhKcGJtZGJYU3dnWEc0Z0lDQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MQ0JjYmlBZ0lDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQkNhWFJCY25KaGVVMWxkSEpwWTNOOFZtVmpkRzl5VFdWMGNtbGpjM3hUZEhKcGJtZE5aWFJ5YVdOekxGeHVJQ0FnSUc5d2RHbHZibk0vT2lCaGJua3BPaUJRY205dGFYTmxQRWxTWldSMVkyVkVhVzFsYm5OcGIyNWhiR2wwZVZKbGMzVnNkRDRnZTF4dVhHNGdJQ0FnWTI5dWMzUWdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNNklFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RDQTlYRzRnSUNBZ0lDQWdJR0YzWVdsMElHTnlaV0YwWlVScGJXVnVjMmx1WVd4cGRIbFNaV1IxWTJsdVoxZHZjbXRsY2loY2JpQWdJQ0FnSUNBZ0lDQWdJSHNnWkdGMFlUb2daR0YwWVVOdmJDd2diV1YwY21sak9pQnphVzFwYkdGeWFYUjVUV1YwY21saklIMGdZWE1nVm1Gc2FXUlVlWEJsY3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzFsZEdodlpFNWhiV1VzSUc5d2RHbHZibk1wTzF4dVhHNGdJQ0FnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTXVaVzFpWldSa2FXNW5JRDBnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTXVaVzFpWldSa2FXNW5MbTFoY0NocGRDQTlQaUJ1YjNKdFlXeHBlbVVvYVhRcEtUdGNiaUFnSUNCeVpYUjFjbTRnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTTdYRzU5SWwxOSIsImltcG9ydCAqIGFzIGZsIGZyb20gJ2Zhc3Rlc3QtbGV2ZW5zaHRlaW4nO1xuaW1wb3J0IHsgamFyb1dpbmtsZXIgfSBmcm9tICdqYXJvLXdpbmtsZXItdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBkaXN0YW5jZU1ldHJpY3MgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5leHBvcnQgY29uc3QgQXZhaWxhYmxlTWV0cmljcyA9IHtcbiAgICAnVmVjdG9yJzoge1xuICAgICAgICAnRXVjbGlkZWFuRGlzdGFuY2UnOiBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSxcbiAgICB9LFxuICAgICdTdHJpbmcnOiB7XG4gICAgICAgICdMZXZlbnNodGVpbic6IGZsLmRpc3RhbmNlLFxuICAgICAgICAnSmFyby1XaW5rbGVyJzogamFyb1dpbmtsZXIsXG4gICAgfSxcbiAgICAnQml0QXJyYXknOiB7XG4gICAgICAgICdUYW5pbW90byc6IGRpc3RhbmNlTWV0cmljc1snVGFuaW1vdG8nXSxcbiAgICAgICAgJ0RpY2UnOiBkaXN0YW5jZU1ldHJpY3NbJ0RpY2UnXSxcbiAgICAgICAgJ0FzeW1tZXRyaWMnOiBkaXN0YW5jZU1ldHJpY3NbJ0FzeW1tZXRyaWMnXSxcbiAgICAgICAgJ0JyYXVuLUJsYW5xdWV0JzogZGlzdGFuY2VNZXRyaWNzWydCcmF1bi1CbGFucXVldCddLFxuICAgICAgICAnQ29zaW5lJzogZGlzdGFuY2VNZXRyaWNzWydDb3NpbmUnXSxcbiAgICAgICAgJ0t1bGN6eW5za2knOiBkaXN0YW5jZU1ldHJpY3NbJ0t1bGN6eW5za2knXSxcbiAgICAgICAgJ01jLUNvbm5hdWdoZXknOiBkaXN0YW5jZU1ldHJpY3NbJ01jLUNvbm5hdWdoZXknXSxcbiAgICAgICAgJ1JvZ290LUdvbGRiZXJnJzogZGlzdGFuY2VNZXRyaWNzWydSb2dvdC1Hb2xkYmVyZyddLFxuICAgICAgICAnUnVzc2VsJzogZGlzdGFuY2VNZXRyaWNzWydSdXNzZWwnXSxcbiAgICAgICAgJ1Nva2FsJzogZGlzdGFuY2VNZXRyaWNzWydTb2thbCddLFxuICAgIH0sXG59O1xuZXhwb3J0IGNvbnN0IE1ldHJpY1RvRGF0YVR5cGUgPSBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzKVxuICAgIC5yZWR1Y2UoKHJldCwga2V5KSA9PiB7XG4gICAgZm9yIChjb25zdCB2YWwgb2YgT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1trZXldKSkge1xuICAgICAgICByZXRbdmFsXSA9IGtleTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbn0sIHt9KTtcbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZ01ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1N0cmluZyc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNCaXRBcnJheU1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ0JpdEFycmF5Jztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1ZlY3Rvck1ldHJpYyhuYW1lKSB7XG4gICAgcmV0dXJuIE1ldHJpY1RvRGF0YVR5cGVbbmFtZV0gPT0gJ1ZlY3Rvcic7XG59XG4vKiogVW5pZmllZCBjbGFzcyBpbXBsZW1lbnRpbmcgZGlmZmVyZW50IHN0cmluZyBtZWFzdXJlcy4gKi9cbmV4cG9ydCBjbGFzcyBNZWFzdXJlIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIE1lYXN1cmUgd2l0aCAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZCBNZXRob2QgdG8gY2FsY3VsYXRlIGRpc3RhbmNlIGJldHdlZW4gc3RyaW5ncy5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXRob2QpIHtcbiAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgIHRoaXMuZGF0YVR5cGUgPSBNZXRyaWNUb0RhdGFUeXBlW21ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBmdW5jdGlvbiBzcGVjaWZpZWQuXG4gICAgICogQHJldHVybiB7RGlzdGFuY2VNZXRyaWN9IENhbGxiYWNrIG9mIHRoZSBtZWFzdXJlIGNob3Nlbi5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBnZXRNZWFzdXJlKCkge1xuICAgICAgICBjb25zdCBkaWN0ID0gQXZhaWxhYmxlTWV0cmljcztcbiAgICAgICAgcmV0dXJuIGRpY3RbdGhpcy5kYXRhVHlwZV1bdGhpcy5tZXRob2RdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgYnkgdGhlIGdpdmVuIGRhdGEgdHlwZS5cbiAgICAgKiBAcGFyYW0ge0F2YWlsYWJsZURhdGFUeXBlc30gZGF0YVR5cGUgTWV0cmljJ3MgZGF0YSB0eXBlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IE1ldHJpYyBuYW1lcyB3aGljaCBleHBlY3RzIHRoZSBnaXZlbiBkYXRhIHR5cGVcbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0TWV0cmljQnlEYXRhVHlwZShkYXRhVHlwZSkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljc1tkYXRhVHlwZV0pO1xuICAgIH1cbiAgICAvKiogUmV0dXJucyBtZXRyaWMgbmFtZXMgYXZhaWxhYmxlLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICovXG4gICAgc3RhdGljIGdldCBhdmFpbGFibGVNZWFzdXJlcygpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaV1F0YldWMGNtbGpjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluUjVjR1ZrTFcxbGRISnBZM011ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXhReXhQUVVGUExFVkJRVU1zVjBGQlZ5eEZRVUZETEUxQlFVMHNlVUpCUVhsQ0xFTkJRVU03UVVGRmNFUXNUMEZCVHl4RlFVRkRMR1ZCUVdVc1JVRkJReXhOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUTJwR0xFOUJRVThzUlVGQlF5d3dRa0ZCTUVJc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCU1ROR0xFMUJRVTBzUTBGQlF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSE8wbEJRemxDTEZGQlFWRXNSVUZCUlR0UlFVTlNMRzFDUVVGdFFpeEZRVUZGTERCQ1FVRXdRanRMUVVOb1JEdEpRVU5FTEZGQlFWRXNSVUZCUlR0UlFVTlNMR0ZCUVdFc1JVRkJSU3hGUVVGRkxFTkJRVU1zVVVGQlVUdFJRVU14UWl4alFVRmpMRVZCUVVVc1YwRkJWenRMUVVNMVFqdEpRVU5FTEZWQlFWVXNSVUZCUlR0UlFVTldMRlZCUVZVc1JVRkJSU3hsUVVGbExFTkJRVU1zVlVGQlZTeERRVUZETzFGQlEzWkRMRTFCUVUwc1JVRkJSU3hsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlF5OUNMRmxCUVZrc1JVRkJSU3hsUVVGbExFTkJRVU1zV1VGQldTeERRVUZETzFGQlF6TkRMR2RDUVVGblFpeEZRVUZGTEdWQlFXVXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVU51UkN4UlFVRlJMRVZCUVVVc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU51UXl4WlFVRlpMRVZCUVVVc1pVRkJaU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVU16UXl4bFFVRmxMRVZCUVVVc1pVRkJaU3hEUVVGRExHVkJRV1VzUTBGQlF6dFJRVU5xUkN4blFrRkJaMElzUlVGQlJTeGxRVUZsTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRGJrUXNVVUZCVVN4RlFVRkZMR1ZCUVdVc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGJrTXNUMEZCVHl4RlFVRkZMR1ZCUVdVc1EwRkJReXhQUVVGUExFTkJRVU03UzBGRGJFTTdRMEZEUml4RFFVRkRPMEZCUlVZc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVhGQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03UzBGRE5VVXNUVUZCVFN4RFFVRkRMRU5CUVVNc1IwRkJjVUlzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0SlFVTnlReXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNSMEZCZVVJc1EwRkJReXhEUVVGRExFVkJRVVU3VVVGRE1VVXNSMEZCUnl4RFFVRkRMRWRCUVhsQ0xFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdTMEZEZEVNN1NVRkRSQ3hQUVVGUExFZEJRVWNzUTBGQlF6dEJRVU5pTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRCUVZkVUxFMUJRVTBzVlVGQlZTeGpRVUZqTEVOQlFVTXNTVUZCYTBJN1NVRkRMME1zVDBGQlR5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeFJRVUZSTEVOQlFVTTdRVUZETlVNc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhKUVVGclFqdEpRVU5xUkN4UFFVRlBMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRlZCUVZVc1EwRkJRenRCUVVNNVF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhKUVVGclFqdEpRVU12UXl4UFFVRlBMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJRenRCUVVNMVF5eERRVUZETzBGQlJVUXNORVJCUVRSRU8wRkJRelZFTEUxQlFVMHNUMEZCVHl4UFFVRlBPMGxCU1d4Q096czdPMDlCU1VjN1NVRkRTQ3haUVVGWkxFMUJRVzlDTzFGQlF6bENMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzSkNMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGMVFpeERRVUZETzBsQlEycEZMRU5CUVVNN1NVRkZSRHM3T3p0UFFVbEhPMGxCUTBrc1ZVRkJWVHRSUVVObUxFMUJRVTBzU1VGQlNTeEhRVUZ6UkN4blFrRkJaMElzUTBGQlF6dFJRVU5xUml4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkpMRTFCUVUwc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4UlFVRTBRanRSUVVNMVJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVJDeERRVUZETzBsQlJVUTdPMDFCUlVVN1NVRkRSaXhOUVVGTkxFdEJRVXNzYVVKQlFXbENPMUZCUXpGQ0xFOUJRVThzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzBsQlEzWkRMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklHWnNJR1p5YjIwZ0oyWmhjM1JsYzNRdGJHVjJaVzV6YUhSbGFXNG5PMXh1YVcxd2IzSjBJSHRxWVhKdlYybHVhMnhsY24wZ1puSnZiU0FuYW1GeWJ5MTNhVzVyYkdWeUxYUjVjR1Z6WTNKcGNIUW5PMXh1YVcxd2IzSjBJSHRFYVhOMFlXNWpaVTFsZEhKcFkzMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRrYVhOMFlXNWpaVTFsZEhKcFkzTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM05wYldsc1lYSnBkSGt0YldWMGNtbGpjeWM3WEc1cGJYQnZjblFnZTJOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3ljN1hHNXBiWEJ2Y25RZ1FtbDBRWEp5WVhrZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdlltbDBMV0Z5Y21GNUp6dGNibWx0Y0c5eWRDQjdWbVZqZEc5eUxDQlRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQkJkbUZwYkdGaWJHVk5aWFJ5YVdOeklEMGdlMXh1SUNBblZtVmpkRzl5SnpvZ2UxeHVJQ0FnSUNkRmRXTnNhV1JsWVc1RWFYTjBZVzVqWlNjNklHTmhiR04xYkdGMFpVVjFZMnhwWkdWaGJrUnBjM1JoYm1ObExGeHVJQ0I5TEZ4dUlDQW5VM1J5YVc1bkp6b2dlMXh1SUNBZ0lDZE1aWFpsYm5Ob2RHVnBiaWM2SUdac0xtUnBjM1JoYm1ObExGeHVJQ0FnSUNkS1lYSnZMVmRwYm10c1pYSW5PaUJxWVhKdlYybHVhMnhsY2l4Y2JpQWdmU3hjYmlBZ0owSnBkRUZ5Y21GNUp6b2dlMXh1SUNBZ0lDZFVZVzVwYlc5MGJ5YzZJR1JwYzNSaGJtTmxUV1YwY21samMxc25WR0Z1YVcxdmRHOG5YU3hjYmlBZ0lDQW5SR2xqWlNjNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblJHbGpaU2RkTEZ4dUlDQWdJQ2RCYzNsdGJXVjBjbWxqSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkQmMzbHRiV1YwY21sakoxMHNYRzRnSUNBZ0owSnlZWFZ1TFVKc1lXNXhkV1YwSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkQ2NtRjFiaTFDYkdGdWNYVmxkQ2RkTEZ4dUlDQWdJQ2REYjNOcGJtVW5PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKME52YzJsdVpTZGRMRnh1SUNBZ0lDZExkV3hqZW5sdWMydHBKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRMZFd4amVubHVjMnRwSjEwc1hHNGdJQ0FnSjAxakxVTnZibTVoZFdkb1pYa25PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKMDFqTFVOdmJtNWhkV2RvWlhrblhTeGNiaUFnSUNBblVtOW5iM1F0UjI5c1pHSmxjbWNuT2lCa2FYTjBZVzVqWlUxbGRISnBZM05iSjFKdloyOTBMVWR2YkdSaVpYSm5KMTBzWEc0Z0lDQWdKMUoxYzNObGJDYzZJR1JwYzNSaGJtTmxUV1YwY21samMxc25VblZ6YzJWc0oxMHNYRzRnSUNBZ0oxTnZhMkZzSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkVGIydGhiQ2RkTEZ4dUlDQjlMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUUxbGRISnBZMVJ2UkdGMFlWUjVjR1U2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCUFltcGxZM1F1YTJWNWN5aEJkbUZwYkdGaWJHVk5aWFJ5YVdOektWeHVJQ0F1Y21Wa2RXTmxLQ2h5WlhRNklGTjBjbWx1WjBScFkzUnBiMjVoY25rc0lHdGxlU2tnUFQ0Z2UxeHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2RtRnNJRzltSUU5aWFtVmpkQzVyWlhsektFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYmEyVjVJR0Z6SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzEwcEtTQjdYRzRnSUNBZ0lDQnlaWFJiZG1Gc0lHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBnUFNCclpYazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhRN1hHNGdJSDBzSUh0OUtUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1FYWmhhV3hoWW14bFJHRjBZVlI1Y0dWeklEMGdhMlY1YjJZZ2RIbHdaVzltSUVGMllXbHNZV0pzWlUxbGRISnBZM003WEc1bGVIQnZjblFnZEhsd1pTQlRkSEpwYm1kTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMU4wY21sdVp5ZGRPMXh1Wlhod2IzSjBJSFI1Y0dVZ1FtbDBRWEp5WVhsTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMEpwZEVGeWNtRjVKMTA3WEc1bGVIQnZjblFnZEhsd1pTQldaV04wYjNKTlpYUnlhV056SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJKMVpsWTNSdmNpZGRPMXh1Wlhod2IzSjBJSFI1Y0dVZ1MyNXZkMjVOWlhSeWFXTnpJRDBnVTNSeWFXNW5UV1YwY21samN5QjhJRUpwZEVGeWNtRjVUV1YwY21samN5QjhJRlpsWTNSdmNrMWxkSEpwWTNNN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZaaGJHbGtWSGx3WlhNZ1BTQjdaR0YwWVRvZ2MzUnlhVzVuVzEwc0lHMWxkSEpwWXpvZ1UzUnlhVzVuVFdWMGNtbGpjMzBnZkNCN1pHRjBZVG9nVm1WamRHOXlXMTBzSUcxbGRISnBZem9nVm1WamRHOXlUV1YwY21samMzMGdmRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJSHRrWVhSaE9pQkNhWFJCY25KaGVWdGRMQ0J0WlhSeWFXTTZJRUpwZEVGeWNtRjVUV1YwY21samMzMDdYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzFOMGNtbHVaMDFsZEhKcFl5aHVZVzFsT2lCTGJtOTNiazFsZEhKcFkzTXBJSHRjYmlBZ2NtVjBkWEp1SUUxbGRISnBZMVJ2UkdGMFlWUjVjR1ZiYm1GdFpWMGdQVDBnSjFOMGNtbHVaeWM3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMEpwZEVGeWNtRjVUV1YwY21saktHNWhiV1U2SUV0dWIzZHVUV1YwY21samN5a2dlMXh1SUNCeVpYUjFjbTRnVFdWMGNtbGpWRzlFWVhSaFZIbHdaVnR1WVcxbFhTQTlQU0FuUW1sMFFYSnlZWGtuTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhWE5XWldOMGIzSk5aWFJ5YVdNb2JtRnRaVG9nUzI1dmQyNU5aWFJ5YVdOektTQjdYRzRnSUhKbGRIVnliaUJOWlhSeWFXTlViMFJoZEdGVWVYQmxXMjVoYldWZElEMDlJQ2RXWldOMGIzSW5PMXh1ZlZ4dVhHNHZLaW9nVlc1cFptbGxaQ0JqYkdGemN5QnBiWEJzWlcxbGJuUnBibWNnWkdsbVptVnlaVzUwSUhOMGNtbHVaeUJ0WldGemRYSmxjeTRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWldGemRYSmxJSHRjYmlBZ2NISnZkR1ZqZEdWa0lHMWxkR2h2WkRvZ1MyNXZkMjVOWlhSeWFXTnpPMXh1SUNCd2NtOTBaV04wWldRZ1pHRjBZVlI1Y0dVNklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGN6dGNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsY3lCaGJpQnBibk4wWVc1alpTQnZaaUJOWldGemRYSmxJSGRwZEdnZ0xseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYldWMGFHOWtJRTFsZEdodlpDQjBieUJqWVd4amRXeGhkR1VnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUJ6ZEhKcGJtZHpMbHh1SUNBZ0tpQkFiV1Z0WW1WeWIyWWdUV1ZoYzNWeVpYSmNiaUFnSUNvdlhHNGdJR052Ym5OMGNuVmpkRzl5S0cxbGRHaHZaRG9nUzI1dmQyNU5aWFJ5YVdOektTQjdYRzRnSUNBZ2RHaHBjeTV0WlhSb2IyUWdQU0J0WlhSb2IyUTdYRzRnSUNBZ2RHaHBjeTVrWVhSaFZIbHdaU0E5SUUxbGRISnBZMVJ2UkdGMFlWUjVjR1ZiYldWMGFHOWtYU0JoY3lCQmRtRnBiR0ZpYkdWRVlYUmhWSGx3WlhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dVbVYwZFhKdWN5QmpkWE4wYjIwZ2MzUnlhVzVuSUdScGMzUmhibU5sSUdaMWJtTjBhVzl1SUhOd1pXTnBabWxsWkM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UkdsemRHRnVZMlZOWlhSeWFXTjlJRU5oYkd4aVlXTnJJRzltSUhSb1pTQnRaV0Z6ZFhKbElHTm9iM05sYmk1Y2JpQWdJQ29nUUcxbGJXSmxjbTltSUUxbFlYTjFjbVZ5WEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWjJWMFRXVmhjM1Z5WlNncE9pQkVhWE4wWVc1alpVMWxkSEpwWXlCN1hHNGdJQ0FnWTI5dWMzUWdaR2xqZERvZ2UxdHJaWGs2SUhOMGNtbHVaMTA2SUh0YmEyVjVNam9nYzNSeWFXNW5YVG9nUkdsemRHRnVZMlZOWlhSeWFXTjlmU0E5SUVGMllXbHNZV0pzWlUxbGRISnBZM003WEc0Z0lDQWdjbVYwZFhKdUlHUnBZM1JiZEdocGN5NWtZWFJoVkhsd1pWMWJkR2hwY3k1dFpYUm9iMlJkTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxkSFZ5Ym5NZ1kzVnpkRzl0SUhOMGNtbHVaeUJrYVhOMFlXNWpaU0JpZVNCMGFHVWdaMmwyWlc0Z1pHRjBZU0IwZVhCbExseHVJQ0FnS2lCQWNHRnlZVzBnZTBGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzMwZ1pHRjBZVlI1Y0dVZ1RXVjBjbWxqSjNNZ1pHRjBZU0IwZVhCbFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMXRkZlNCTlpYUnlhV01nYm1GdFpYTWdkMmhwWTJnZ1pYaHdaV04wY3lCMGFHVWdaMmwyWlc0Z1pHRjBZU0IwZVhCbFhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSTlpYUnlhV05DZVVSaGRHRlVlWEJsS0dSaGRHRlVlWEJsT2lCQmRtRnBiR0ZpYkdWRVlYUmhWSGx3WlhNcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVyWlhsektFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYlpHRjBZVlI1Y0dWZEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCU1pYUjFjbTV6SUcxbGRISnBZeUJ1WVcxbGN5QmhkbUZwYkdGaWJHVXVYRzRnSUNBcUlFQnRaVzFpWlhKdlppQk5aV0Z6ZFhKbGNseHVJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBJR0YyWVdsc1lXSnNaVTFsWVhOMWNtVnpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0J5WlhSMWNtNGdUMkpxWldOMExtdGxlWE1vUVhaaGFXeGhZbXhsVFdWMGNtbGpjeWs3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgeyBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvc2ltaWxhcml0eS1tZXRyaWNzJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5sZXQgem9vbSA9IGZhbHNlO1xuY29uc3QgbW9sQ29sdW1uTmFtZXMgPSBbJzFfc2VxJywgJzJfc2VxJ107XG5jb25zdCBub25Ob3JtYWxpemVkRGlzdGFuY2VzID0gWydMZXZlbnNodGVpbiddO1xuLy8gU2VhcmNoZXMgZm9yIGFjdGl2aXR5IGNsaWZmcyBpbiBhIGNoZW1pY2FsIGRhdGFzZXQgYnkgc2VsZWN0ZWQgY3V0b2ZmXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aXZpdHlDbGlmZnMoZGYsIHNlcUNvbCwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCBzY2F0dGVyVGl0bGUsIGFjdGl2aXRpZXMsIHNpbWlsYXJpdHksIHNpbWlsYXJpdHlNZXRyaWMsIG1ldGhvZE5hbWUsIHNlbVR5cGUsIHRhZ3MsIHNlcVNwYWNlRnVuYywgc2ltTWF0cml4RnVuYywgdG9vbHRpcEZ1bmMsIHByb3BlcnR5UGFuZWxGdW5jLCBzZXFTcGFjZU9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBhdXRvbWF0aWNTaW1pbGFyaXR5TGltaXQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgTUlOX1NJTUlMQVJJVFkgPSA4MDtcbiAgICAgICAgY29uc3QgaW5pdGlhbFNpbWlsYXJpdHlMaW1pdCA9IGF1dG9tYXRpY1NpbWlsYXJpdHlMaW1pdCA/IE1JTl9TSU1JTEFSSVRZIDogc2ltaWxhcml0eSAvIDEwMDtcbiAgICAgICAgY29uc3QgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wgPSBlbmNvZGVkQ29sICE9PSBudWxsICYmIGVuY29kZWRDb2wgIT09IHZvaWQgMCA/IGVuY29kZWRDb2wgOiBzZXFDb2w7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2xdKS5jbG9uZSgpO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgZW1wdHlWYWxzSWR4cyA9IHJlbW92ZUVtcHR5U3RyaW5nUm93cyh3aXRob3V0RW1wdHlWYWx1ZXMsIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sKTtcbiAgICAgICAgY29uc3QgeyBkaXN0YW5jZSwgY29vcmRpbmF0ZXMgfSA9IHlpZWxkIHNlcVNwYWNlRnVuYyh7XG4gICAgICAgICAgICBzZXFDb2w6IHdpdGhvdXRFbXB0eVZhbHVlcy5jb2woZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBheGVzTmFtZXMsXG4gICAgICAgICAgICBvcHRpb25zOiBzZXFTcGFjZU9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3QgY29sIG9mIGNvb3JkaW5hdGVzKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0VmFsdWVzID0gY29sLnRvTGlzdCgpO1xuICAgICAgICAgICAgZW1wdHlWYWxzSWR4cy5mb3JFYWNoKChpbmQpID0+IGxpc3RWYWx1ZXMuc3BsaWNlKGluZCwgMCwgbnVsbCkpO1xuICAgICAgICAgICAgZGYuY29sdW1ucy5hZGQoREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBjb2wubmFtZSwgbGlzdFZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRmU2VxID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtERy5Db2x1bW4uZnJvbUxpc3QoJ3N0cmluZycsICdzZXEnLCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC50b0xpc3QoKSldKTtcbiAgICAgICAgY29uc3QgZGltID0gZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBzaW1BcnIgPSBBcnJheShkaW0gLSAxKTtcbiAgICAgICAgaWYgKCFkaXN0YW5jZSB8fCBlbXB0eVZhbHNJZHhzLmxlbmd0aCAhPT0gMCB8fCBub25Ob3JtYWxpemVkRGlzdGFuY2VzLmluY2x1ZGVzKHNpbWlsYXJpdHlNZXRyaWMpKVxuICAgICAgICAgICAgeWllbGQgc2ltTWF0cml4RnVuYyhkaW0sIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLCBkZlNlcSwgJ3NlcScsIHNpbUFycik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGdldFNpbWlsYXJpdGllc0Zyb21EaXN0YW5jZXMoZGltLCBkaXN0YW5jZSwgc2ltQXJyKTtcbiAgICAgICAgY29uc3Qgb3B0U2ltaWxhcml0eUxpbWl0ID0gaW5pdGlhbFNpbWlsYXJpdHlMaW1pdDtcbiAgICAgICAgY29uc3Qgc2ltVmFscyA9IFtdO1xuICAgICAgICBjb25zdCBzYWxpVmFscyA9IFtdO1xuICAgICAgICBjb25zdCBuMSA9IFtdO1xuICAgICAgICBjb25zdCBuMiA9IFtdO1xuICAgICAgICBjb25zdCBjbGlmZnNNb2xJZHMgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IGRpbSAtIDE7ICsraSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogIT0gZGltIC0gMSAtIGk7ICsraikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpbSA9IHNpbUFycltpXSA/IHNpbUFycltpXS5nZXQoaikgOiAwO1xuICAgICAgICAgICAgICAgIGlmIChzaW0gPj0gb3B0U2ltaWxhcml0eUxpbWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG4xLnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgIG4yLnB1c2goaSArIGogKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpZmZzTW9sSWRzLmFkZChpKTtcbiAgICAgICAgICAgICAgICAgICAgY2xpZmZzTW9sSWRzLmFkZChpICsgaiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBzaW1WYWxzLnB1c2goc2ltKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKGFjdGl2aXRpZXMuZ2V0KGkpIC0gYWN0aXZpdGllcy5nZXQoaSArIGogKyAxKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaW0gIT0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhbGlWYWxzLnB1c2goZGlmZiAvICgxIC0gc2ltKSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHNhbGlWYWxzLnB1c2goSW5maW5pdHkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYWxpVmFsc1dpdGhvdXRJbmZpbml0eSA9IHNhbGlWYWxzLmZpbHRlcihpdCA9PiBpdCAhPT0gSW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpTWluID0gTWF0aC5taW4oLi4uc2FsaVZhbHNXaXRob3V0SW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpTWF4ID0gTWF0aC5tYXgoLi4uc2FsaVZhbHNXaXRob3V0SW5maW5pdHkpO1xuICAgICAgICBjb25zdCBzYWxpT3BhY2l0eUNvZWYgPSAwLjggLyAoc2FsaU1heCAtIHNhbGlNaW4pO1xuICAgICAgICBjb25zdCBuZWlnaGJvdXJzQ291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBjb25zdCBzaW1pbGFyaXR5Q291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBjb25zdCBzYWxpQ291bnQgPSBuZXcgQXJyYXkoZGltKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBuMS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgbmVpZ2hib3Vyc0NvdW50W24xW2ldXSArPSAxO1xuICAgICAgICAgICAgbmVpZ2hib3Vyc0NvdW50W24yW2ldXSArPSAxO1xuICAgICAgICAgICAgc2ltaWxhcml0eUNvdW50W24xW2ldXSArPSBzaW1WYWxzW2ldO1xuICAgICAgICAgICAgc2ltaWxhcml0eUNvdW50W24yW2ldXSArPSBzaW1WYWxzW2ldO1xuICAgICAgICAgICAgaWYgKHNhbGlWYWxzW2ldICE9IEluZmluaXR5KSB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXRpZXMuZ2V0KG4xW2ldKSA+IGFjdGl2aXRpZXMuZ2V0KG4yW2ldKSlcbiAgICAgICAgICAgICAgICAgICAgc2FsaUNvdW50W24xW2ldXSArPSBzYWxpVmFsc1tpXTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHNhbGlDb3VudFtuMltpXV0gKz0gc2FsaVZhbHNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2FsaSA9IERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgYHNhbGlfJHtheGVzTmFtZXNbMF0uc3Vic3RyaW5nKGF4ZXNOYW1lc1swXS5sYXN0SW5kZXhPZignXycpKX1gLCBzYWxpQ291bnQpO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChzYWxpKTtcbiAgICAgICAgY29uc3QgY2xpZmZzQ29sTmFtZSA9IGFkZENsaWZmc0Jvb2xlYW5Db2woZGYsIGNsaWZmc01vbElkcyk7XG4gICAgICAgIGNvbnN0IHZpZXcgPSBncm9rLnNoZWxsLmdldFRhYmxlVmlldyhkZi5uYW1lKTtcbiAgICAgICAgdmlldy5ncmlkLmNvbHVtbnMuYnlOYW1lKGNsaWZmc0NvbE5hbWUpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgY29uc3Qgc3AgPSB2aWV3LmFkZFZpZXdlcihERy5WaWV3ZXIuc2NhdHRlclBsb3QoZGYsIHtcbiAgICAgICAgICAgIHhDb2x1bW5OYW1lOiBheGVzTmFtZXNbMF0sXG4gICAgICAgICAgICB5Q29sdW1uTmFtZTogYXhlc05hbWVzWzFdLFxuICAgICAgICAgICAgc2l6ZTogc2FsaS5uYW1lLFxuICAgICAgICAgICAgY29sb3I6IGFjdGl2aXRpZXMubmFtZSxcbiAgICAgICAgICAgIHNob3dYU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1lTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93U2l6ZVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dDb2xvclNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIG1hcmtlck1pblNpemU6IDUsXG4gICAgICAgICAgICBtYXJrZXJNYXhTaXplOiAyNSxcbiAgICAgICAgICAgIHRpdGxlOiBzY2F0dGVyVGl0bGVcbiAgICAgICAgfSkpO1xuICAgICAgICBjb25zdCBjYW52YXMgPSBzcC5nZXRJbmZvKClbJ2NhbnZhcyddO1xuICAgICAgICBjb25zdCBsaW5lc1JlcyA9IGNyZWF0ZUxpbmVzKG4xLCBuMiwgc2VxQ29sLCBhY3Rpdml0aWVzLCBzYWxpVmFscywgc2ltVmFscywgc2VtVHlwZSwgdGFncyk7XG4gICAgICAgIGNvbnN0IGNhc2hlZExpbmVzRGF0YSA9IHt9O1xuICAgICAgICBsZXQgYWNjO1xuICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLm9uQ3VycmVudENlbGxDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TW9sSWR4ID0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Q29sICYmIGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudENvbC5uYW1lID09PSAnMl9zZXEnID8gMSA6IDA7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ICE9PSAtMSA/IGxpbmVzUmVzLmxpbmVzW2xpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeF0gOiBudWxsO1xuICAgICAgICAgICAgc3AuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPSBsaW5lID8gbGluZS5tb2xzW2N1cnJlbnRNb2xJZHhdIDogLTE7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldCgwLCAhbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgc3AuZGF0YUZyYW1lLnNlbGVjdGlvbi5zZXQoMCwgbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgbGluZXNEZkdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKGxpbmUpXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IHVwZGF0ZVByb3BlcnR5UGFuZWwoZGYsIGFjYywgY2FzaGVkTGluZXNEYXRhLCBsaW5lLCBzZXFDb2wsIGFjdGl2aXRpZXMsIGxpbmVzUmVzLmxpbmVzRGYuZ2V0KCdzYWxpJywgbGluZS5pZCksIHByb3BlcnR5UGFuZWxGdW5jKTsgfSwgMTAwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLm9uU2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIGlmIChsaW5lc1Jlcy5saW5lc0RmLm1vdXNlT3ZlclJvd0lkeCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gbGluZXNSZXMubGluZXNbbGluZXNSZXMubGluZXNEZi5tb3VzZU92ZXJSb3dJZHhdO1xuICAgICAgICAgICAgICAgIGxpbmUuc2VsZWN0ZWQgPSAhbGluZS5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmUuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXRBbGwoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluZXNSZXMubGluZXMuZm9yRWFjaCgobCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChsLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICBsLm1vbHMuZm9yRWFjaCgobSkgPT4gZGYuc2VsZWN0aW9uLnNldChtLCB0cnVlKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxpbmVzRGZHcmlkLmludmFsaWRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxpbmVzRGZHcmlkID0gbGluZXNSZXMubGluZXNEZi5wbG90LmdyaWQoKS5zb3J0KFsnc2FsaSddLCBbZmFsc2VdKTtcbiAgICAgICAgbGluZXNEZkdyaWQub25DZWxsQ2xpY2suc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHpvb20gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGlzdENsaWZmc0xpbmsgPSB1aS5idXR0b24oYCR7bGluZXNSZXMubGluZXNEZi5yb3dDb3VudH0gY2xpZmZzYCwgKCkgPT4ge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5kb2NrTWFuYWdlci5kb2NrKGxpbmVzRGZHcmlkLnJvb3QsICdkb3duJywgbnVsbCwgJ0FjdGl2aXR5IGNsaWZmcycsIDAuMik7XG4gICAgICAgIH0pO1xuICAgICAgICBlZGl0U3BMaW5rU3R5bGUobGlzdENsaWZmc0xpbmssIHNwLCAxMCk7XG4gICAgICAgIGNvbnN0IGZpbHRlckNsaWZmc0J1dHRvbiA9IHVpLnN3aXRjaElucHV0KGBTaG93IG9ubHkgY2xpZmZzYCwgZmFsc2UpO1xuICAgICAgICBmaWx0ZXJDbGlmZnNCdXR0b24ub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi52YWx1ZSA/IGRmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1tjbGlmZnNDb2xOYW1lXSA9PT0gdHJ1ZSkgOiBkZi5maWx0ZXIuc2V0QWxsKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgZWRpdFNwTGlua1N0eWxlKGZpbHRlckNsaWZmc0J1dHRvbi5yb290LCBzcCwgMzApO1xuICAgICAgICBsZXQgdGltZXI7XG4gICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICB0aW1lciA9IGdsb2JhbC5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5lID0gY2hlY2tDdXJzb3JPbkxpbmUoZXZlbnQsIGNhbnZhcywgbGluZXNSZXMubGluZXMpO1xuICAgICAgICAgICAgICAgIGlmIChsaW5lICYmIGRmLm1vdXNlT3ZlclJvd0lkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdWkudG9vbHRpcC5zaG93KHRvb2x0aXBGdW5jKHsgY2FzaGVkRGF0YTogY2FzaGVkTGluZXNEYXRhLCBsaW5lOiBsaW5lLCBkZjogZGYsIHNlcUNvbDogc2VxQ29sLCBhY3Rpdml0eUNvbDogYWN0aXZpdGllcyB9KSwgZXZlbnQuY2xpZW50WCwgZXZlbnQuY2xpZW50WSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lc1Jlcy5saW5lcyk7XG4gICAgICAgICAgICBpZiAobGluZSAmJiBkZi5tb3VzZU92ZXJSb3dJZHggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS5zZWxlY3RlZCA9ICFsaW5lLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLnNlbGVjdGlvbi5zZXQobGluZS5pZCwgbGluZS5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbGluZS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXRBbGwoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lcy5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobC5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLm1vbHMuZm9yRWFjaCgobSkgPT4gZGYuc2VsZWN0aW9uLnNldChtLCB0cnVlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCAhPT0gbGluZS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ID0gbGluZS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLmN1cnJlbnRSb3dJZHggPSBsaW5lLm1vbHNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0KDAsICFsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0KDAsIGxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBvcmRlciA9IGxpbmVzUmVzLmxpbmVzRGYuZ2V0U29ydGVkT3JkZXIobGluZXNEZkdyaWQuc29ydEJ5Q29sdW1ucywgbGluZXNEZkdyaWQuc29ydFR5cGVzKTtcbiAgICAgICAgICAgICAgICBsaW5lc0RmR3JpZC5zY3JvbGxUb0NlbGwoJ3NlcV8xJywgb3JkZXIuaW5kZXhPZihsaW5lLmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzcC5vbkV2ZW50KCdkNC1iZWZvcmUtZHJhdy1zY2VuZScpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IHJlbmRlckxpbmVzKHNwLCBheGVzTmFtZXNbMF0sIGF4ZXNOYW1lc1sxXSwgbGluZXNSZXMsIHNhbGlWYWxzLCBzYWxpT3BhY2l0eUNvZWYsIHNhbGlNaW4pO1xuICAgICAgICAgICAgaWYgKHpvb20pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50TGluZSA9IGxpbmVzW2xpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeF07XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgem9vbUxlZnQsIHpvb21SaWdodCwgem9vbVRvcCwgem9vbUJvdHRvbSB9ID0gZ2V0Wm9vbUNvb3JkaW5hdGVzKHNwLnZpZXdwb3J0LndpZHRoLCBzcC52aWV3cG9ydC5oZWlnaHQsIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzBdLCBjdXJyZW50TGluZS5tb2xzWzBdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMV0sIGN1cnJlbnRMaW5lLm1vbHNbMF0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1swXSwgY3VycmVudExpbmUubW9sc1sxXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzFdLCBjdXJyZW50TGluZS5tb2xzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIHNwLnpvb20oem9vbUxlZnQsIHpvb21Ub3AsIHpvb21SaWdodCwgem9vbUJvdHRvbSk7XG4gICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICB6b29tID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWx0ZXJDbGlmZnNCdXR0b24udmFsdWUgPyBkZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3dbY2xpZmZzQ29sTmFtZV0gPT09IHRydWUpIDogZGYuZmlsdGVyLnNldEFsbCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNwLmFkZFByb3BlcnR5KCdzaW1pbGFyaXR5TGltaXQnLCAnZG91YmxlJywgb3B0U2ltaWxhcml0eUxpbWl0KTtcbiAgICAgICAgYWNjID0gY3JlYXRlUG9wZXJ0eVBhbmVsKCk7XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGVkaXRTcExpbmtTdHlsZShlbCwgc3AsIHRvcE1hcmdpbikge1xuICAgIGVsLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICBlbC5zdHlsZS50b3AgPSBgJHt0b3BNYXJnaW59cHhgO1xuICAgIGVsLnN0eWxlLnJpZ2h0ID0gJzEwcHgnO1xuICAgIHNwLnJvb3QuYXBwZW5kKGVsKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVBvcGVydHlQYW5lbCgpIHtcbiAgICBjb25zdCBhY2MgPSB1aS5hY2NvcmRpb24oKTtcbiAgICBjb25zdCBhY2NJY29uID0gdWkuZWxlbWVudCgnaScpO1xuICAgIGFjY0ljb24uY2xhc3NOYW1lID0gJ2dyb2staWNvbiBzdmctaWNvbiBzdmctdmlldy1sYXlvdXQnO1xuICAgIGFjYy5hZGRUaXRsZSh1aS5zcGFuKFthY2NJY29uLCB1aS5sYWJlbChgQWN0aXZpdHkgY2xpZmZzYCldKSk7XG4gICAgYWNjLmFkZFBhbmUoJ0NsaWZmIERldGFpbHMnLCAoKSA9PiB1aS5kaXZUZXh0KCdDbGlmZiBoYXMgbm90IGJlZW4gc2VsZWN0ZWQnKSwgdHJ1ZSk7XG4gICAgZ3Jvay5zaGVsbC5vID0gYWNjLnJvb3Q7XG4gICAgcmV0dXJuIGFjYztcbn1cbmZ1bmN0aW9uIHVwZGF0ZVByb3BlcnR5UGFuZWwoZGYsIGFjYywgY2FzaGVkRGF0YSwgbGluZSwgc2VxQ29sLCBhY3Rpdml0aWVzLCBzYWxpLCBwcm9wUGFuZWxGdW5jKSB7XG4gICAgY29uc3QgcGFuZWwgPSBhY2MuZ2V0UGFuZSgnQ2xpZmYgRGV0YWlscycpO1xuICAgIHVpLmVtcHR5KHBhbmVsLnJvb3QpO1xuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHByb3BQYW5lbEZ1bmMoeyBjYXNoZWREYXRhOiBjYXNoZWREYXRhLCBsaW5lOiBsaW5lLCBkZjogZGYsIHNlcUNvbDogc2VxQ29sLCBhY3Rpdml0eUNvbDogYWN0aXZpdGllcywgc2FsaTogc2FsaSB9KTtcbiAgICBwYW5lbC5yb290LmFwcGVuZChwYW5lbEVsZW1lbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICB9LCA1MDApO1xufVxuZnVuY3Rpb24gZ2V0Wm9vbUNvb3JkaW5hdGVzKFcwLCBIMCwgeDEsIHkxLCB4MiwgeTIpIHtcbiAgICBjb25zdCBXMSA9IE1hdGguYWJzKHgxIC0geDIpO1xuICAgIGNvbnN0IEgxID0gTWF0aC5hYnMoeTEgLSB5Mik7XG4gICAgY29uc3Qgc2NhbGVXID0gVzAgLyBXMTtcbiAgICBjb25zdCBzY2FsZUggPSBIMCAvIEgxO1xuICAgIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oc2NhbGVXLCBzY2FsZUgpO1xuICAgIGNvbnN0IFcyID0gKFcwIC8gc2NhbGUpICogNTtcbiAgICBjb25zdCBIMiA9IChIMCAvIHNjYWxlKSAqIDU7XG4gICAgY29uc3QgbGVmdCA9IHgxIDwgeDIgPyB4MSA6IHgyO1xuICAgIGNvbnN0IHRvcCA9IHkxID4geTIgPyB5MSA6IHkyO1xuICAgIGNvbnN0IHpvb21MZWZ0ID0gKGxlZnQgKyBXMSAvIDIpIC0gVzIgLyAyO1xuICAgIGNvbnN0IHpvb21SaWdodCA9IHpvb21MZWZ0ICsgVzI7XG4gICAgY29uc3Qgem9vbVRvcCA9ICh0b3AgLSBIMSAvIDIpICsgSDIgLyAyO1xuICAgIGNvbnN0IHpvb21Cb3R0b20gPSB6b29tVG9wIC0gSDI7XG4gICAgcmV0dXJuIHsgem9vbUxlZnQ6IHpvb21MZWZ0LCB6b29tUmlnaHQ6IHpvb21SaWdodCwgem9vbVRvcDogem9vbVRvcCwgem9vbUJvdHRvbTogem9vbUJvdHRvbSB9O1xufVxuZnVuY3Rpb24gY2hlY2tDdXJzb3JPbkxpbmUoZXZlbnQsIGNhbnZhcywgbGluZXMpIHtcbiAgICBjb25zdCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0O1xuICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gcmVjdC50b3A7XG4gICAgbGV0IGNsb3Nlc3RMaW5lID0gbnVsbDtcbiAgICBsZXQgbWluRGlzdCA9IDA7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgIGNvbnN0IGRpc3QgPSBNYXRoLmFicyhNYXRoLmh5cG90KGxpbmUuYVswXSAtIHgsIGxpbmUuYVsxXSAtIHkpICtcbiAgICAgICAgICAgIE1hdGguaHlwb3QobGluZS5iWzBdIC0geCwgbGluZS5iWzFdIC0geSkgLSBNYXRoLmh5cG90KGxpbmUuYVswXSAtIGxpbmUuYlswXSwgbGluZS5hWzFdIC0gbGluZS5iWzFdKSk7XG4gICAgICAgIGlmICgoIW1pbkRpc3QgJiYgZGlzdCA8IDIpIHx8IGRpc3QgPCBtaW5EaXN0KSB7XG4gICAgICAgICAgICBtaW5EaXN0ID0gZGlzdDtcbiAgICAgICAgICAgIGNsb3Nlc3RMaW5lID0gbGluZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xvc2VzdExpbmU7XG59XG5mdW5jdGlvbiByZW5kZXJMaW5lcyhzcCwgeEF4aXMsIHlBeGlzLCBsaW5lc1Jlcywgc2FsaVZhbHMsIHNhbGlPcGFjaXR5Q29lZiwgc2FsaU1pbikge1xuICAgIGNvbnN0IGxpbmVzID0gbGluZXNSZXMubGluZXM7XG4gICAgY29uc3QgY2FudmFzID0gc3AuZ2V0SW5mbygpWydjYW52YXMnXTtcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjb25zdCB4ID0gc3AuZGF0YUZyYW1lLmNvbHVtbnMuYnlOYW1lKHhBeGlzKTtcbiAgICBjb25zdCB5ID0gc3AuZGF0YUZyYW1lLmNvbHVtbnMuYnlOYW1lKHlBeGlzKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHBvaW50RnJvbSA9IHNwLndvcmxkVG9TY3JlZW4oeC5nZXQobGluZXNbaV0ubW9sc1swXSksIHkuZ2V0KGxpbmVzW2ldLm1vbHNbMF0pKTtcbiAgICAgICAgY29uc3QgcG9pbnRUbyA9IHNwLndvcmxkVG9TY3JlZW4oeC5nZXQobGluZXNbaV0ubW9sc1sxXSksIHkuZ2V0KGxpbmVzW2ldLm1vbHNbMV0pKTtcbiAgICAgICAgbGluZXNbaV0uYSA9IFtwb2ludEZyb20ueCwgcG9pbnRGcm9tLnldO1xuICAgICAgICBsaW5lc1tpXS5iID0gW3BvaW50VG8ueCwgcG9pbnRUby55XTtcbiAgICAgICAgY29uc3QgbGluZSA9IG5ldyBQYXRoMkQoKTtcbiAgICAgICAgbGluZS5tb3ZlVG8obGluZXNbaV0uYVswXSwgbGluZXNbaV0uYVsxXSk7XG4gICAgICAgIGNvbnN0IGNvbG9yID0gbGluZXNbaV0uc2VsZWN0ZWQgPyAnMjU1LDI1NSwwJyA6ICcwLDEyOCwwJztcbiAgICAgICAgY29uc3Qgb3BhY2l0eSA9IHNhbGlWYWxzW2ldID09PSBJbmZpbml0eSA/IDEgOiAwLjIgKyAoc2FsaVZhbHNbaV0gLSBzYWxpTWluKSAqIHNhbGlPcGFjaXR5Q29lZjtcbiAgICAgICAgY3R4LnN0cm9rZVN0eWxlID0gYHJnYmEoJHtjb2xvcn0sJHtvcGFjaXR5fSlgO1xuICAgICAgICBjdHgubGluZVdpZHRoID0gbGluZXNbaV0uaWQgPT09IGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCA/IDMgOiAxO1xuICAgICAgICBsaW5lLmxpbmVUbyhsaW5lc1tpXS5iWzBdLCBsaW5lc1tpXS5iWzFdKTtcbiAgICAgICAgY3R4LnN0cm9rZShsaW5lKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzO1xufVxuZnVuY3Rpb24gY3JlYXRlTGluZXMobjEsIG4yLCBzZXEsIGFjdGl2aXRpZXMsIHNhbGlWYWxzLCBzaW1WYWxzLCBzZW1UeXBlLCB0YWdzKSB7XG4gICAgY29uc3QgbGluZXMgPSBuZXcgQXJyYXkobjEubGVuZ3RoKS5maWxsKG51bGwpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbnVtMSA9IG4xW2ldO1xuICAgICAgICBjb25zdCBudW0yID0gbjJbaV07XG4gICAgICAgIGxpbmVzW2ldID0gKHsgaWQ6IGksIG1vbHM6IFtudW0xLCBudW0yXSwgc2VsZWN0ZWQ6IGZhbHNlLCBhOiBbXSwgYjogW10gfSk7XG4gICAgfVxuICAgIGNvbnN0IGxpbmVzRGYgPSBERy5EYXRhRnJhbWUuY3JlYXRlKGxpbmVzLmxlbmd0aCk7XG4gICAgbW9sQ29sdW1uTmFtZXMuZm9yRWFjaCgoaXQsIGlkeCkgPT4ge1xuICAgICAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3U3RyaW5nKGl0KS5pbml0KChpKSA9PiBzZXEuZ2V0KGxpbmVzW2ldLm1vbHNbaWR4XSkpO1xuICAgICAgICBzZXRUYWdzKGxpbmVzRGYuY29sKGl0KSwgdGFncyk7XG4gICAgICAgIGxpbmVzRGYuY29sKGl0KS5zZW1UeXBlID0gc2VtVHlwZTtcbiAgICB9KTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ2FjdF9kaWZmJylcbiAgICAgICAgLmluaXQoKGkpID0+IE1hdGguYWJzKGFjdGl2aXRpZXMuZ2V0KGxpbmVzW2ldLm1vbHNbMF0pIC0gYWN0aXZpdGllcy5nZXQobGluZXNbaV0ubW9sc1sxXSkpKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3SW50KCdsaW5lX2luZGV4JykuaW5pdCgoaSkgPT4gaSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdzYWxpJykuaW5pdCgoaSkgPT4gc2FsaVZhbHNbaV0pO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnc2ltJykuaW5pdCgoaSkgPT4gc2ltVmFsc1tpXSk7XG4gICAgcmV0dXJuIHsgbGluZXMsIGxpbmVzRGYgfTtcbn1cbmZ1bmN0aW9uIHNldFRhZ3MoY29sLCB0YWdzKSB7XG4gICAgT2JqZWN0LmtleXModGFncykuZm9yRWFjaCh0YWcgPT4ge1xuICAgICAgICBjb2wudGFnc1t0YWddID0gdGFnc1t0YWddO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdGllc01hcml4KGRpbSwgc2VxQ29sLCBkZlNlcSwgc2ltQXJyLCBzaW1GdW5jKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBtb2wgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGZTZXEucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBzaW1BcnJbaV0gPSAoeWllbGQgc2ltRnVuYyhkZlNlcS5jb2woJ3NlcScpLCBtb2wpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2ltQXJyO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdGllc0Zyb21EaXN0YW5jZXMoZGltLCBkaXN0YW5jZXMsIHNpbUFycikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGltIC0gMTsgKytpKSB7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlBcnIgPSBuZXcgQXJyYXkoZGltIC0gaSAtIDEpLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IGRpbTsgKytqKSB7XG4gICAgICAgICAgICBzaW1pbGFyaXR5QXJyW2ogLSBpIC0gMV0gPSBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGRpc3RhbmNlc1tpXVtqXSk7XG4gICAgICAgIH1cbiAgICAgICAgc2ltQXJyW2ldID0gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkoJ3NpbWlsYXJpdHknLCBGbG9hdDMyQXJyYXkuZnJvbShzaW1pbGFyaXR5QXJyKSk7XG4gICAgfVxuICAgIHJldHVybiBzaW1BcnI7XG59XG5leHBvcnQgZnVuY3Rpb24gYWRkQ2xpZmZzQm9vbGVhbkNvbChkZiwgaWRzKSB7XG4gICAgY29uc3QgY29sbmFtZSA9ICdjb250YWluc0NsaWZmJztcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGNvbG5hbWUpKS5sZW5ndGggKyAxO1xuICAgIGNvbnN0IG5ld0NvbE5hbWUgPSBgJHtjb2xuYW1lfV8ke2NvbE5hbWVJbmR9YDtcbiAgICBkZi5jb2x1bW5zLmFkZE5ld0Jvb2wobmV3Q29sTmFtZSkuaW5pdCgoaSkgPT4gaWRzLmhhcyhpKSk7XG4gICAgcmV0dXJuIG5ld0NvbE5hbWU7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZV04wYVhacGRIa3RZMnhwWm1aekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWVdOMGFYWnBkSGt0WTJ4cFptWnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN096czdPenRCUVVGQkxFOUJRVThzUzBGQlN5eEpRVUZKTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU03UVVGRE1VTXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVTjBReXhQUVVGUExFdEJRVXNzUlVGQlJTeE5RVUZOTEdsQ1FVRnBRaXhEUVVGRE8wRkJSWFJETEU5QlFVOHNSVUZCUlN4NVFrRkJlVUlzUlVGQlJTeE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJRemRHTEU5QlFVOHNSVUZCUXl4eFFrRkJjVUlzUlVGQlF5eE5RVUZOTEN0RFFVRXJReXhEUVVGQk8wRkJjVU51Uml4SlFVRkpMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGRmFrSXNUVUZCVFN4alFVRmpMRWRCUVVjc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdRVUZGTVVNc1RVRkJUU3h6UWtGQmMwSXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRE8wRkJSUzlETEhkRlFVRjNSVHRCUVVONFJTeE5RVUZOTEZWQlFXZENMR2xDUVVGcFFpeERRVU51UXl4RlFVRm5RaXhGUVVOb1FpeE5RVUZwUWl4RlFVTnFRaXhWUVVFMFFpeEZRVU0xUWl4VFFVRnRRaXhGUVVOdVFpeFpRVUZ2UWl4RlFVTndRaXhWUVVGeFFpeEZRVU55UWl4VlFVRnJRaXhGUVVOc1FpeG5Ra0ZCZDBJc1JVRkRlRUlzVlVGQmEwSXNSVUZEYkVJc1QwRkJaU3hGUVVObUxFbEJRU3RDTEVWQlF5OUNMRmxCUVRaRkxFVkJRemRGTEdGQlFTdElMRVZCUXk5SUxGZEJRVFJFTEVWQlF6VkVMR2xDUVVGclJTeEZRVU5zUlN4bFFVRnhRanM3VVVGRmRrSXNUVUZCVFN4M1FrRkJkMElzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hqUVVGakxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJURkNMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NkMEpCUVhkQ0xFTkJRVU1zUTBGQlF5eERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVVUxUml4TlFVRk5MSFZDUVVGMVFpeEhRVUZITEZWQlFWVXNZVUZCVml4VlFVRlZMR05CUVZZc1ZVRkJWU3hIUVVGSkxFMUJRVTBzUTBGQlF6dFJRVU55UkN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEzSkdMRmxCUVZrN1VVRkRaQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eHhRa0ZCY1VJc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4MVFrRkJkVUlzUTBGQlF5eERRVUZETzFGQlJYcEdMRTFCUVUwc1JVRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eEZRVUZETEVkQlFVY3NUVUZCVFN4WlFVRlpMRU5CUVVNN1dVRkRha1FzVFVGQlRTeEZRVUZGTEd0Q1FVRnJRaXhEUVVGRExFZEJRVWNzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhKUVVGSkxFTkJRVVU3V1VGRE4wUXNWVUZCVlN4RlFVRkZMRlZCUVZVN1dVRkRkRUlzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTzFsQlEyeERMR05CUVdNc1JVRkJSU3hUUVVGVE8xbEJRM3BDTEU5QlFVOHNSVUZCUlN4bFFVRmxPMU5CUTNwQ0xFTkJRVU1zUTBGQlF6dFJRVVZJTEV0QlFVc3NUVUZCVFN4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRk8xbEJRek5DTEUxQlFVMHNWVUZCVlN4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU5vUXl4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONFJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNSRk8xRkJSVVFzVFVGQlRTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJoSUxFMUJRVTBzUjBGQlJ5eEhRVUZITEhWQ1FVRjFRaXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU16UXl4TlFVRk5MRTFCUVUwc1IwRkJaMElzUzBGQlN5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVVelF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMR0ZCUVdFc1EwRkJReXhOUVVGTkxFdEJRVXNzUTBGQlF5eEpRVUZKTEhOQ1FVRnpRaXhEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRaUVVNNVJpeE5RVUZOTEdGQlFXRXNRMEZCUXl4SFFVRkhMRVZCUVVVc2RVSkJRWFZDTEVWQlFVVXNTMEZCU3l4RlFVRkZMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6czdXVUZGZUVVc05FSkJRVFJDTEVOQlFVTXNSMEZCUnl4RlFVRkZMRkZCUVZFc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVYwUkN4TlFVRk5MR3RDUVVGclFpeEhRVUZITEhOQ1FVRnpRaXhEUVVGRE8xRkJSV3hFTEUxQlFVMHNUMEZCVHl4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVNM1FpeE5RVUZOTEZGQlFWRXNSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeEZRVUZGTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUlVGQlJTeEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTjRRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCVlN4RFFVRkRPMUZCUlhaRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUTJwRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRuUWtGRGNrTXNUVUZCVFN4SFFVRkhMRWRCUVZjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlJYSkVMRWxCUVVrc1IwRkJSeXhKUVVGSkxHdENRVUZyUWl4RlFVRkZPMjlDUVVNM1FpeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU5ZTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRia0lzV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGNFSXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVNMVFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5zUWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTNKRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdkMEpCUTFZc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6czdkMEpCUldoRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2FVSkJRek5DTzJGQlEwWTdVMEZEUmp0UlFVVkVMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOMlJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRSUVVOeVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1EwRkJRenRSUVVOeVJDeE5RVUZOTEdWQlFXVXNSMEZCUnl4SFFVRkhMRWRCUVVNc1EwRkJReXhQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZIYUVRc1RVRkJUU3hsUVVGbExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF5OURMRTFCUVUwc1pVRkJaU3hIUVVGSExFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmVrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGJrTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0WlFVTTFRaXhsUVVGbExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRelZDTEdWQlFXVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja01zWlVGQlpTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnlReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRVZCUVVVN1owSkJRek5DTEVsQlFVa3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRMME1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN2IwSkJSV2hETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1lVRkRia003VTBGRFJqdFJRVVZFTEUxQlFVMHNTVUZCU1N4SFFVRmpMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRmFra3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEY2tJc1RVRkJUU3hoUVVGaExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxGbEJRVmtzUTBGQlF5eERRVUZETzFGQlJUVkVMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU01UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkZMRU5CUVVNc1QwRkJUeXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU42UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU5zUkN4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4WFFVRlhMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWs3V1VGRFppeExRVUZMTEVWQlFVVXNWVUZCVlN4RFFVRkRMRWxCUVVrN1dVRkRkRUlzWVVGQllTeEZRVUZGTEV0QlFVczdXVUZEY0VJc1lVRkJZU3hGUVVGRkxFdEJRVXM3V1VGRGNFSXNaMEpCUVdkQ0xFVkJRVVVzUzBGQlN6dFpRVU4yUWl4cFFrRkJhVUlzUlVGQlJTeExRVUZMTzFsQlEzaENMR0ZCUVdFc1JVRkJSU3hEUVVGRE8xbEJRMmhDTEdGQlFXRXNSVUZCUlN4RlFVRkZPMWxCUTJwQ0xFdEJRVXNzUlVGQlJTeFpRVUZaTzFOQlEzQkNMRU5CUVVNc1EwRkJlVUlzUTBGQlF6dFJRVVUxUWl4TlFVRk5MRTFCUVUwc1IwRkJTU3hGUVVGRkxFTkJRVU1zVDBGQlR5eEZRVUZWTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRMME1zVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCVnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZWQlFWVXNSVUZCUlN4UlFVRlJMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVXpSaXhOUVVGTkxHVkJRV1VzUjBGQlVTeEZRVUZGTEVOQlFVTTdVVUZEYUVNc1NVRkJTU3hIUVVGcFFpeERRVUZETzFGQlJYUkNMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zYjBKQlFXOUNMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJUdFpRVU51UkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEV0QlFVc3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSeXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE0wY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOc1JTeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0WlFVTXpSQ3hGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03V1VGRE1VUXNWMEZCVnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEVsQlFVa3NTVUZCU1R0blFrRkRUaXhWUVVGVkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVVXNiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NSVUZCUlN4bFFVRmxMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFZRVUZWTEVWQlFVVXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4RFFVRkJMRU5CUVVFc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyaExMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSVWdzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRk5MRVZCUVVVc1JVRkJSVHRaUVVOMlJDeEpRVUZKTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTXpReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTTdaMEpCUXpsRUxFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yZENRVU12UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkU3YjBKQlEyaENMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMkZCUXpsQ08xbEJRMFFzVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBJc1NVRkJTU3hEUVVGRExFTkJRVU1zVVVGQlVUdHZRa0ZEV2l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hYUVVGWExFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdVVUZETTBJc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEZkQlFWY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZla1VzVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhGUVVGRk8xbEJRM0pETEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN1VVRkRaQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEUxQlFVMHNZMEZCWXl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1UwRkJVeXhGUVVGRkxFZEJRVWNzUlVGQlJUdFpRVU16UlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hOUVVGTkxFVkJRVVVzU1VGQlNTeEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzUkdMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzWlVGQlpTeERRVUZETEdOQlFXTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmVFTXNUVUZCVFN4clFrRkJhMElzUjBGQlJ5eEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMR3RDUVVGclFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRkxHdENRVUZyUWl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGRkxFVkJRVVU3V1VGREwwSXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNelJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMR1ZCUVdVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJXcEVMRWxCUVVrc1MwRkJjVUlzUTBGQlF6dFJRVU14UWl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJhVUk3V1VGRE9VUXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM0JDTEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRE8yZENRVU40UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRPVVFzU1VGQlNTeEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMR1ZCUVdVc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJUdHZRa0ZEYmtNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVNc1ZVRkJWU3hGUVVGRkxHVkJRV1VzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4WFFVRlhMRVZCUVVVc1ZVRkJWU3hGUVVGRExFTkJRVU1zUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHBRa0ZETVVvN1dVRkRTQ3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEVml4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhYUVVGWExFVkJRVVVzVlVGQlV5eExRVUZwUWp0WlFVTTNSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVNNVJDeEpRVUZKTEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNc1pVRkJaU3hMUVVGTExFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnlReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVTdiMEpCUTJwQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRE8yOUNRVU12UWl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdiMEpCUlhaRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVR0M1FrRkRhRUlzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03YjBKQlJUZENMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVN2QwSkJRek5DTEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFN05FSkJRMW9zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOeVJDeERRVUZETEVOQlFVTXNRMEZCUXp0cFFrRkRTanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeExRVUZMTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN2QwSkJRemxETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdkMEpCUTNwRExFVkJRVVVzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dDNRa0ZEYUVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenQzUWtGRGFrUXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdjVUpCUTJwRU8ybENRVU5HTzJkQ1FVTkVMRTFCUVUwc1MwRkJTeXhIUVVGSExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMRmRCUVZjc1EwRkJReXhoUVVGaExFVkJRVVVzVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMmRDUVVOb1J5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRek5FTzFGQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEhOQ1FVRnpRaXhEUVVGRE8yRkJReTlDTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVUwc1JVRkJSU3hGUVVGRk8xbEJRM0JDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRmRCUVZjc1EwRkJReXhGUVVGRkxFVkJRekZDTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdXVUZETlVVc1NVRkJTU3hKUVVGSkxFVkJRVVU3WjBKQlExSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1owSkJRekZFTEZWQlFWVXNRMEZCUXl4SFFVRkZMRVZCUVVVN2IwSkJRMklzVFVGQlRTeEZRVUZETEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlF5eEhRVUZITEd0Q1FVRnJRaXhEUVVOdVJTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkRha0lzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRVZCUTJ4Q0xFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRM0JFTEVOQlFVRTdiMEpCUTBRc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlEyUXNUMEZCVHl4RlFVTlFMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVJc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTlNMRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU03WVVGRFpEdFpRVU5FTEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNMGNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGVEN4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExHbENRVUZwUWl4RlFVRkZMRkZCUVZFc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUTJoRkxFZEJRVWNzUjBGQlJ5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRek5DTEU5QlFVOHNSVUZCUlN4RFFVRkRPMGxCUTFvc1EwRkJRenREUVVGQk8wRkJSVVFzVTBGQlV5eGxRVUZsTEVOQlFVTXNSVUZCWlN4RlFVRkZMRVZCUVhkQ0xFVkJRVVVzVTBGQmFVSTdTVUZEYmtZc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVkQlFVY3NWVUZCVlN4RFFVRkRPMGxCUXk5Q0xFVkJRVVVzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SFFVRkhMRWRCUVVjc1UwRkJVeXhKUVVGSkxFTkJRVU03U1VGRGFFTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETzBsQlEzaENMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKQ0xFTkJRVU03UVVGRlJDeFRRVUZUTEd0Q1FVRnJRanRKUVVONlFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTm9ReXhQUVVGUExFTkJRVU1zVTBGQlV5eEhRVUZITEc5RFFVRnZReXhEUVVGRE8wbEJRM3BFTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRE9VUXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhsUVVGbExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXcyUWtGQk5rSXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JHTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEZUVJc1QwRkJUeXhIUVVGSExFTkJRVU03UVVGRFlpeERRVUZETzBGQlJVUXNVMEZCVXl4dFFrRkJiVUlzUTBGRE1VSXNSVUZCWjBJc1JVRkRhRUlzUjBGQmFVSXNSVUZEYWtJc1ZVRkJaU3hGUVVObUxFbEJRVmNzUlVGRFdDeE5RVUZwUWl4RlFVTnFRaXhWUVVGeFFpeEZRVU55UWl4SlFVRlpMRVZCUTFvc1lVRkJPRVE3U1VGRE9VUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOeVFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4aFFVRmhMRU5CUVVNc1JVRkJReXhWUVVGVkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3hWUVVGVkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRWtzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRGFFTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVOa0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRE1VSXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wRkJRMVlzUTBGQlF6dEJRVVZFTEZOQlFWTXNhMEpCUVd0Q0xFTkJRVU1zUlVGQlZTeEZRVUZGTEVWQlFWVXNSVUZCUlN4RlFVRlZMRVZCUVVVc1JVRkJWU3hGUVVGRkxFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEyaEhMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOMlFpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVTjJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE5VSXNUVUZCVFN4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpWQ0xFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMGxCUXk5Q0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMGxCUXpsQ0xFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTVUZCU1N4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpGRExFMUJRVTBzVTBGQlV5eEhRVUZITEZGQlFWRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkRhRU1zVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRlRU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJRenRKUVVOb1F5eFBRVUZQTEVWQlFVTXNVVUZCVVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETzBGQlF6bEdMRU5CUVVNN1FVRkZSQ3hUUVVGVExHbENRVUZwUWl4RFFVRkRMRXRCUVZVc1JVRkJSU3hOUVVGWExFVkJRVVVzUzBGQll6dEpRVU5vUlN4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRKUVVNMVF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEY0VNc1RVRkJUU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRE8wbEJRMjVETEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRKUVVOMlFpeEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRhRUlzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4TFFVRkxMRVZCUVVVN1VVRkRlRUlzVFVGQlRTeEpRVUZKTEVkQlExSXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEycEVMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM1pITEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4SFFVRkhMRTlCUVU4c1JVRkJSVHRaUVVNMVF5eFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRPMWxCUTJZc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFRRVU53UWp0TFFVTkdPMGxCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03UVVGRGNrSXNRMEZCUXp0QlFVVkVMRk5CUVZNc1YwRkJWeXhEUVVGRExFVkJRWGRDTEVWQlF6TkRMRXRCUVdFc1JVRkJSU3hMUVVGaExFVkJRVVVzVVVGQmQwSXNSVUZCUlN4UlFVRnJRaXhGUVVGRkxHVkJRWFZDTEVWQlFVVXNUMEZCWlR0SlFVTndTQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZKTEVWQlFVVXNRMEZCUXl4UFFVRlBMRVZCUVRoQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdTVUZEYmtVc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVRaQ0xFTkJRVU03U1VGRGFFVXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExGTkJRVlVzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRemxETEUxQlFVMHNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNNVF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVOeVF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tZc1RVRkJUU3hQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMjVHTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU40UXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEY0VNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpGRExFMUJRVTBzUzBGQlN5eEhRVUZITEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8xRkJRekZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZETEdWQlFXVXNRMEZCUXp0UlFVTTNSaXhIUVVGSExFTkJRVU1zVjBGQlZ5eEhRVUZITEZGQlFWRXNTMEZCU3l4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRemxETEVkQlFVY3NRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTMEZCU3l4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGRrVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzB0QlEyeENPMGxCUTBRc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUXNVMEZCVXl4WFFVRlhMRU5CUTJ4Q0xFVkJRVmtzUlVGRFdpeEZRVUZaTEVWQlExb3NSMEZCWXl4RlFVTmtMRlZCUVhGQ0xFVkJRM0pDTEZGQlFXdENMRVZCUTJ4Q0xFOUJRV2xDTEVWQlEycENMRTlCUVdVc1JVRkRaaXhKUVVFclFqdEpRVU12UWl4TlFVRk5MRXRCUVVzc1IwRkJXU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzWkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzFGQlEyeERMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRia0lzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUXl4RFFVRkRMRU5CUVVNN1MwRkRla1U3U1VGRFJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRiRVFzWTBGQll5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5xUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJFWXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRhRU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVVc1EwRkJReXhQUVVGUExFZEJRVWNzVDBGQlR5eERRVUZETzBsQlEzSkRMRU5CUVVNc1EwRkJReXhEUVVGQk8wbEJRMFlzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xTkJRM0JETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRFY3NUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXZSQ3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkZMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJrVXNUMEZCVHl4RlFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFVkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRPMEZCUlVRc1UwRkJVeXhQUVVGUExFTkJRVU1zUjBGQll5eEZRVUZGTEVsQlFTdENPMGxCUXpsRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlF6bENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRelZDTEVOQlFVTXNRMEZCUXl4RFFVRkJPMEZCUTBvc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlowSXNiMEpCUVc5Q0xFTkJRM1JETEVkQlFWY3NSVUZEV0N4TlFVRnBRaXhGUVVOcVFpeExRVUZ0UWl4RlFVTnVRaXhOUVVGdFFpeEZRVU51UWl4UFFVRnRSVHM3VVVGSGNrVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGFrTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEycERMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVVc1EwRkJRenRUUVVOMFJEdFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03UTBGQlFUdEJRVWRFTEUxQlFVMHNWVUZCVlN3MFFrRkJORUlzUTBGQlF5eEhRVUZYTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hOUVVGdFFqdEpRVVU1Uml4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFJRVU5vUXl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTm9ReXhoUVVGaExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXg1UWtGQmVVSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0VFFVTjJSVHRSUVVORUxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRmxCUVZrc1JVRkJSU3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRlRVk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEcxQ1FVRnRRaXhEUVVGRExFVkJRV2RDTEVWQlFVVXNSMEZCWjBJN1NVRkRjRVVzVFVGQlRTeFBRVUZQTEVkQlFVY3NaVUZCWlN4RFFVRkRPMGxCUTJoRExFMUJRVTBzVlVGQlZTeEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU01Uml4TlFVRk5MRlZCUVZVc1IwRkJSeXhIUVVGSExFOUJRVThzU1VGQlNTeFZRVUZWTEVWQlFVVXNRMEZCUXp0SlFVTTVReXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hQUVVGUExGVkJRVlVzUTBGQlF6dEJRVU53UWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQjdJRTFoZEhKcGVDQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3SUdkbGRGTnBiV2xzWVhKcGRIbEdjbTl0UkdsemRHRnVZMlVnZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5emFXMXBiR0Z5YVhSNUxXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElIdHlaVzF2ZG1WRmJYQjBlVk4wY21sdVoxSnZkM045SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDJSaGRHRm1jbUZ0WlMxMWRHbHNjeWRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCSlRHbHVaU0I3WEc0Z0lHbGtPaUJ1ZFcxaVpYSTdYRzRnSUcxdmJITTZJRzUxYldKbGNsdGRPMXh1SUNCelpXeGxZM1JsWkRvZ1ltOXZiR1ZoYmp0Y2JpQWdZVG9nYm5WdFltVnlXMTA3SUM4dklGdDRMQ0I1WFZ4dUlDQmlPaUJ1ZFcxaVpYSmJYVHNnTHk4Z1czZ3NJSGxkWEc1OVhHNWNibWx1ZEdWeVptRmpaU0JKVW1WdVpHVnlaV1JNYVc1bGN5QjdYRzRnSUd4cGJtVnpPaUJKVEdsdVpWdGRPMXh1SUNCc2FXNWxjMFJtT2lCRVJ5NUVZWFJoUm5KaGJXVTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWTmxjWFZsYm1ObFUzQmhZMlZRWVhKaGJYTWdlMXh1SUNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml4Y2JpQWdiV1YwYUc5a1RtRnRaVG9nYzNSeWFXNW5MRnh1SUNCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCemRISnBibWNzWEc0Z0lHVnRZbVZrUVhobGMwNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdiM0IwYVc5dWN6ODZJR0Z1ZVZ4dWZWeHVYRzVsZUhCdmNuUWdhVzUwWlhKbVlXTmxJRWxUWlhGMVpXNWpaVk53WVdObFVtVnpkV3gwSUh0Y2JpQWdaR2x6ZEdGdVkyVTZJRTFoZEhKcGVEdGNiaUFnWTI5dmNtUnBibUYwWlhNNklFUkhMa052YkhWdGJreHBjM1E3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTVlJ2YjJ4MGFYQkJibVJRWVc1bGJGQmhjbUZ0Y3lCN1hHNGdJR05oYzJobFpFUmhkR0U2SUdGdWVTeGNiaUFnYkdsdVpUb2dTVXhwYm1Vc1hHNGdJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNYRzRnSUhObGNVTnZiRG9nUkVjdVEyOXNkVzF1TEZ4dUlDQmhZM1JwZG1sMGVVTnZiRG9nUkVjdVEyOXNkVzF1TEZ4dUlDQnpZV3hwUHpvZ2JuVnRZbVZ5WEc1OVhHNWNibXhsZENCNmIyOXRJRDBnWm1Gc2MyVTdYRzVjYm1OdmJuTjBJRzF2YkVOdmJIVnRiazVoYldWeklEMGdXeWN4WDNObGNTY3NJQ2N5WDNObGNTZGRPMXh1WEc1amIyNXpkQ0J1YjI1T2IzSnRZV3hwZW1Wa1JHbHpkR0Z1WTJWeklEMGdXeWRNWlhabGJuTm9kR1ZwYmlkZE8xeHVYRzR2THlCVFpXRnlZMmhsY3lCbWIzSWdZV04wYVhacGRIa2dZMnhwWm1aeklHbHVJR0VnWTJobGJXbGpZV3dnWkdGMFlYTmxkQ0JpZVNCelpXeGxZM1JsWkNCamRYUnZabVpjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQm5aWFJCWTNScGRtbDBlVU5zYVdabWN5aGNiaUFnSUNCa1pqb2dSRWN1UkdGMFlVWnlZVzFsTENCY2JpQWdJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXhjYmlBZ0lDQmxibU52WkdWa1EyOXNPaUJFUnk1RGIyeDFiVzRnZkNCdWRXeHNMRnh1SUNBZ0lHRjRaWE5PWVcxbGN6b2djM1J5YVc1blcxMHNYRzRnSUNBZ2MyTmhkSFJsY2xScGRHeGxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1lXTjBhWFpwZEdsbGN6b2dSRWN1UTI5c2RXMXVMQ0JjYmlBZ0lDQnphVzFwYkdGeWFYUjVPaUJ1ZFcxaVpYSXNYRzRnSUNBZ2MybHRhV3hoY21sMGVVMWxkSEpwWXpvZ2MzUnlhVzVuTENCY2JpQWdJQ0J0WlhSb2IyUk9ZVzFsT2lCemRISnBibWNzSUZ4dUlDQWdJSE5sYlZSNWNHVTZJSE4wY21sdVp5eGNiaUFnSUNCMFlXZHpPaUI3VzJsdVpHVjRPaUJ6ZEhKcGJtZGRPaUJ6ZEhKcGJtZDlMRnh1SUNBZ0lITmxjVk53WVdObFJuVnVZem9nS0hCaGNtRnRjem9nU1ZObGNYVmxibU5sVTNCaFkyVlFZWEpoYlhNcElEMCtJRkJ5YjIxcGMyVThTVk5sY1hWbGJtTmxVM0JoWTJWU1pYTjFiSFErTEZ4dUlDQWdJSE5wYlUxaGRISnBlRVoxYm1NNklDaGthVzA2SUc1MWJXSmxjaXdnYzJWeFEyOXNPaUJFUnk1RGIyeDFiVzRzSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzSUdOdmJFNWhiV1U2SUhOMGNtbHVaeXdnYzJsdFFYSnlPaUJFUnk1RGIyeDFiVzViWFNrZ1BUNGdVSEp2YldselpUeEVSeTVEYjJ4MWJXNWJYVDRzWEc0Z0lDQWdkRzl2YkhScGNFWjFibU02SUNod1lYSmhiWE02SUVsVWIyOXNkR2x3UVc1a1VHRnVaV3hRWVhKaGJYTXBJRDArSUVoVVRVeEZiR1Z0Wlc1MExGeHVJQ0FnSUhCeWIzQmxjblI1VUdGdVpXeEdkVzVqT2lBb2NHRnlZVzF6T2lCSlZHOXZiSFJwY0VGdVpGQmhibVZzVUdGeVlXMXpLU0E5UGlCSVZFMU1SV3hsYldWdWRDeGNiaUFnSUNCelpYRlRjR0ZqWlU5d2RHbHZibk0vT2lCaGJua3BJRG9nVUhKdmJXbHpaVHhFUnk1V2FXVjNaWEkrSUh0Y2JseHVJQ0JqYjI1emRDQmhkWFJ2YldGMGFXTlRhVzFwYkdGeWFYUjVUR2x0YVhRZ1BTQm1ZV3h6WlR0Y2JpQWdZMjl1YzNRZ1RVbE9YMU5KVFVsTVFWSkpWRmtnUFNBNE1EdGNibHh1SUNCamIyNXpkQ0JwYm1sMGFXRnNVMmx0YVd4aGNtbDBlVXhwYldsMElEMGdZWFYwYjIxaGRHbGpVMmx0YVd4aGNtbDBlVXhwYldsMElEOGdUVWxPWDFOSlRVbE1RVkpKVkZrZ09pQnphVzFwYkdGeWFYUjVJQzhnTVRBd08xeHVYRzRnSUdOdmJuTjBJR1JwYldWdWMybHZibUZzYVhSNVVtVmtkV05sUTI5c0lEMGdaVzVqYjJSbFpFTnZiQ0EvUHlCelpYRkRiMnc3WEc0Z0lHTnZibk4wSUhkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3lBOUlFUkhMa1JoZEdGR2NtRnRaUzVtY205dFEyOXNkVzF1Y3loYlpHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMnhkS1M1amJHOXVaU2dwTzF4dUlDQWdJQzh2UUhSekxXbG5ibTl5WlZ4dUlDQmpiMjV6ZENCbGJYQjBlVlpoYkhOSlpIaHpJRDBnY21WdGIzWmxSVzF3ZEhsVGRISnBibWRTYjNkektIZHBkR2h2ZFhSRmJYQjBlVlpoYkhWbGN5d2daR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ3cE8xeHVYRzRnSUdOdmJuTjBJSHRrYVhOMFlXNWpaU3dnWTI5dmNtUnBibUYwWlhOOUlEMGdZWGRoYVhRZ2MyVnhVM0JoWTJWR2RXNWpLSHRjYmlBZ0lDQnpaWEZEYjJ3NklIZHBkR2h2ZFhSRmJYQjBlVlpoYkhWbGN5NWpiMndvWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyd3VibUZ0WlNraExGeHVJQ0FnSUcxbGRHaHZaRTVoYldVNklHMWxkR2h2WkU1aGJXVXNYRzRnSUNBZ2MybHRhV3hoY21sMGVVMWxkSEpwWXpvZ2MybHRhV3hoY21sMGVVMWxkSEpwWXl4Y2JpQWdJQ0JsYldKbFpFRjRaWE5PWVcxbGN6b2dZWGhsYzA1aGJXVnpMRnh1SUNBZ0lHOXdkR2x2Ym5NNklITmxjVk53WVdObFQzQjBhVzl1YzF4dUlDQjlLVHRjYmx4dUlDQm1iM0lnS0dOdmJuTjBJR052YkNCdlppQmpiMjl5WkdsdVlYUmxjeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiR2x6ZEZaaGJIVmxjeUE5SUdOdmJDNTBiMHhwYzNRb0tUdGNiaUFnSUNBZ0lHVnRjSFI1Vm1Gc2MwbGtlSE11Wm05eVJXRmphQ2dvYVc1a09pQnVkVzFpWlhJcElEMCtJR3hwYzNSV1lXeDFaWE11YzNCc2FXTmxLR2x1WkN3Z01Dd2diblZzYkNrcE8xeHVJQ0FnSUNBZ1pHWXVZMjlzZFcxdWN5NWhaR1FvUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0Nka2IzVmliR1VuTENCamIyd3VibUZ0WlN3Z2JHbHpkRlpoYkhWbGN5a3BPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdaR1pUWlhFZ1BTQkVSeTVFWVhSaFJuSmhiV1V1Wm5KdmJVTnZiSFZ0Ym5Nb1cwUkhMa052YkhWdGJpNW1jbTl0VEdsemRDZ25jM1J5YVc1bkp5d2dKM05sY1Njc0lHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzTG5SdlRHbHpkQ2dwS1YwcE8xeHVJQ0JqYjI1emRDQmthVzBnUFNCa2FXMWxibk5wYjI1aGJHbDBlVkpsWkhWalpVTnZiQzVzWlc1bmRHZzdYRzRnSUdOdmJuTjBJSE5wYlVGeWNqb2dSRWN1UTI5c2RXMXVXMTBnUFNCQmNuSmhlU2hrYVcwZ0xTQXhLVHRjYmx4dUlDQnBaaUFvSVdScGMzUmhibU5sSUh4OElHVnRjSFI1Vm1Gc2MwbGtlSE11YkdWdVozUm9JQ0U5UFNBd0lIeDhJRzV2Yms1dmNtMWhiR2w2WldSRWFYTjBZVzVqWlhNdWFXNWpiSFZrWlhNb2MybHRhV3hoY21sMGVVMWxkSEpwWXlrcFhHNGdJQ0FnWVhkaGFYUWdjMmx0VFdGMGNtbDRSblZ1WXloa2FXMHNJR1JwYldWdWMybHZibUZzYVhSNVVtVmtkV05sUTI5c0xDQmtabE5sY1N3Z0ozTmxjU2NzSUhOcGJVRnljaWs3WEc0Z0lHVnNjMlZjYmlBZ0lDQm5aWFJUYVcxcGJHRnlhWFJwWlhOR2NtOXRSR2x6ZEdGdVkyVnpLR1JwYlN3Z1pHbHpkR0Z1WTJVc0lITnBiVUZ5Y2lrN1hHNWNiaUFnWTI5dWMzUWdiM0IwVTJsdGFXeGhjbWwwZVV4cGJXbDBJRDBnYVc1cGRHbGhiRk5wYldsc1lYSnBkSGxNYVcxcGREdGNibHh1SUNCamIyNXpkQ0J6YVcxV1lXeHpPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQnpZV3hwVm1Gc2N6b2diblZ0WW1WeVcxMGdQU0JiWFR0Y2JpQWdZMjl1YzNRZ2JqRTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdJR052Ym5OMElHNHlPaUJ1ZFcxaVpYSmJYU0E5SUZ0ZE8xeHVJQ0JqYjI1emRDQmpiR2xtWm5OTmIyeEpaSE1nUFNCdVpYY2dVMlYwUEc1MWJXSmxjajRvS1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0FoUFNCa2FXMGdMU0F4T3lBcksya3BJSHRjYmlBZ0lDQm1iM0lnS0d4bGRDQnFJRDBnTURzZ2FpQWhQU0JrYVcwZ0xTQXhJQzBnYVRzZ0t5dHFLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnphVzA2SUc1MWJXSmxjaUE5SUhOcGJVRnljbHRwWFNBL0lITnBiVUZ5Y2x0cFhTNW5aWFFvYWlrZ09pQXdPMXh1WEc0Z0lDQWdJQ0JwWmlBb2MybHRJRDQ5SUc5d2RGTnBiV2xzWVhKcGRIbE1hVzFwZENrZ2UxeHVJQ0FnSUNBZ0lDQnVNUzV3ZFhOb0tHa3BPMXh1SUNBZ0lDQWdJQ0J1TWk1d2RYTm9LR2tnS3lCcUlDc2dNU2s3WEc0Z0lDQWdJQ0FnSUdOc2FXWm1jMDF2YkVsa2N5NWhaR1FvYVNrN1hHNGdJQ0FnSUNBZ0lHTnNhV1ptYzAxdmJFbGtjeTVoWkdRb2FTQXJJR29nS3lBeEtUdGNiaUFnSUNBZ0lDQWdjMmx0Vm1Gc2N5NXdkWE5vS0hOcGJTazdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUnBabVlnUFNCTllYUm9MbUZpY3loaFkzUnBkbWwwYVdWekxtZGxkQ2hwS1NBdElHRmpkR2wyYVhScFpYTXVaMlYwS0drZ0t5QnFJQ3NnTVNrcE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYzJsdElDRTlJREVwWEc0Z0lDQWdJQ0FnSUNBZ2MyRnNhVlpoYkhNdWNIVnphQ2hrYVdabUlDOGdLREVnTFNCemFXMHBLVHRjYmlBZ0lDQWdJQ0FnWld4elpWeHVJQ0FnSUNBZ0lDQWdJSE5oYkdsV1lXeHpMbkIxYzJnb1NXNW1hVzVwZEhrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lHTnZibk4wSUhOaGJHbFdZV3h6VjJsMGFHOTFkRWx1Wm1sdWFYUjVJRDBnYzJGc2FWWmhiSE11Wm1sc2RHVnlLR2wwSUQwK0lHbDBJQ0U5UFNCSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xOYVc0Z1BTQk5ZWFJvTG0xcGJpZ3VMaTV6WVd4cFZtRnNjMWRwZEdodmRYUkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsTllYZ2dQU0JOWVhSb0xtMWhlQ2d1TGk1ellXeHBWbUZzYzFkcGRHaHZkWFJKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbFBjR0ZqYVhSNVEyOWxaaUE5SURBdU9DOG9jMkZzYVUxaGVDQXRJSE5oYkdsTmFXNHBPMXh1WEc1Y2JpQWdZMjl1YzNRZ2JtVnBaMmhpYjNWeWMwTnZkVzUwSUQwZ2JtVjNJRUZ5Y21GNUtHUnBiU2t1Wm1sc2JDZ3dLVHRjYmlBZ1kyOXVjM1FnYzJsdGFXeGhjbWwwZVVOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNiaUFnWTI5dWMzUWdjMkZzYVVOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBaFBTQnVNUzVzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUc1bGFXZG9ZbTkxY25ORGIzVnVkRnR1TVZ0cFhWMGdLejBnTVR0Y2JpQWdJQ0J1WldsbmFHSnZkWEp6UTI5MWJuUmJiakpiYVYxZElDczlJREU3WEc0Z0lDQWdjMmx0YVd4aGNtbDBlVU52ZFc1MFcyNHhXMmxkWFNBclBTQnphVzFXWVd4elcybGRPMXh1SUNBZ0lITnBiV2xzWVhKcGRIbERiM1Z1ZEZ0dU1sdHBYVjBnS3owZ2MybHRWbUZzYzF0cFhUdGNiaUFnSUNCcFppQW9jMkZzYVZaaGJITmJhVjBnSVQwZ1NXNW1hVzVwZEhrcElIdGNiaUFnSUNBZ0lHbG1JQ2hoWTNScGRtbDBhV1Z6TG1kbGRDaHVNVnRwWFNrZ1BpQmhZM1JwZG1sMGFXVnpMbWRsZENodU1sdHBYU2twWEc0Z0lDQWdJQ0FnSUhOaGJHbERiM1Z1ZEZ0dU1WdHBYVjBnS3owZ2MyRnNhVlpoYkhOYmFWMDdYRzRnSUNBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0FnSUhOaGJHbERiM1Z1ZEZ0dU1sdHBYVjBnS3owZ2MyRnNhVlpoYkhOYmFWMDdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MyRnNhVG9nUkVjdVEyOXNkVzF1SUQwZ1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZGtiM1ZpYkdVbkxDQmdjMkZzYVY4a2UyRjRaWE5PWVcxbGMxc3dYUzV6ZFdKemRISnBibWNvWVhobGMwNWhiV1Z6V3pCZExteGhjM1JKYm1SbGVFOW1LQ2RmSnlrcGZXQXNJSE5oYkdsRGIzVnVkQ2s3WEc1Y2JpQWdaR1l1WTI5c2RXMXVjeTVoWkdRb2MyRnNhU2s3WEc0Z0lHTnZibk4wSUdOc2FXWm1jME52YkU1aGJXVWdQU0JoWkdSRGJHbG1abk5DYjI5c1pXRnVRMjlzS0dSbUxDQmpiR2xtWm5OTmIyeEpaSE1wTzF4dVhHNGdJR052Ym5OMElIWnBaWGNnUFNCbmNtOXJMbk5vWld4c0xtZGxkRlJoWW14bFZtbGxkeWhrWmk1dVlXMWxLVHRjYmlBZ2RtbGxkeTVuY21sa0xtTnZiSFZ0Ym5NdVlubE9ZVzFsS0dOc2FXWm1jME52YkU1aGJXVXBJUzUyYVhOcFlteGxJRDBnWm1Gc2MyVTdYRzRnSUdOdmJuTjBJSE53SUQwZ2RtbGxkeTVoWkdSV2FXVjNaWElvUkVjdVZtbGxkMlZ5TG5OallYUjBaWEpRYkc5MEtHUm1MQ0I3WEc0Z0lDQWdlRU52YkhWdGJrNWhiV1U2SUdGNFpYTk9ZVzFsYzFzd1hTeGNiaUFnSUNCNVEyOXNkVzF1VG1GdFpUb2dZWGhsYzA1aGJXVnpXekZkTEZ4dUlDQWdJSE5wZW1VNklITmhiR2t1Ym1GdFpTeGNiaUFnSUNCamIyeHZjam9nWVdOMGFYWnBkR2xsY3k1dVlXMWxMRnh1SUNBZ0lITm9iM2RZVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2RaVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2RUYVhwbFUyVnNaV04wYjNJNklHWmhiSE5sTEZ4dUlDQWdJSE5vYjNkRGIyeHZjbE5sYkdWamRHOXlPaUJtWVd4elpTeGNiaUFnSUNCdFlYSnJaWEpOYVc1VGFYcGxPaUExTEZ4dUlDQWdJRzFoY210bGNrMWhlRk5wZW1VNklESTFMRnh1SUNBZ0lIUnBkR3hsT2lCelkyRjBkR1Z5VkdsMGJHVmNiaUFnZlNrcElHRnpJRVJITGxOallYUjBaWEpRYkc5MFZtbGxkMlZ5TzF4dVhHNGdJR052Ym5OMElHTmhiblpoY3lBOUlDaHpjQzVuWlhSSmJtWnZLQ2tnWVhNZ1lXNTVLVnNuWTJGdWRtRnpKMTA3WEc0Z0lHTnZibk4wSUd4cGJtVnpVbVZ6SUQwZ1kzSmxZWFJsVEdsdVpYTW9iakVzSUc0eUxDQnpaWEZEYjJ3c0lHRmpkR2wyYVhScFpYTXNJSE5oYkdsV1lXeHpMQ0J6YVcxV1lXeHpMQ0J6WlcxVWVYQmxMQ0IwWVdkektUdGNibHh1SUNCamIyNXpkQ0JqWVhOb1pXUk1hVzVsYzBSaGRHRTZJR0Z1ZVNBOUlIdDlPMXh1SUNCc1pYUWdZV05qT2lCRVJ5NUJZMk52Y21ScGIyNDdYRzVjYmlBZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1dmJrTjFjbkpsYm5SRFpXeHNRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUk5iMnhKWkhnZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtTjFjbkpsYm5SRGIyd2dKaVlnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBRMjlzTG01aGJXVWdQVDA5SUNjeVgzTmxjU2NnUHlBeElEb2dNRHRjYmlBZ0lDQmpiMjV6ZENCc2FXNWxJRDBnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElDRTlQU0F0TVNBL0lHeHBibVZ6VW1WekxteHBibVZ6VzJ4cGJtVnpVbVZ6TG14cGJtVnpSR1l1WTNWeWNtVnVkRkp2ZDBsa2VGMGdPaUJ1ZFd4c08xeHVJQ0FnSUhOd0xtUmhkR0ZHY21GdFpTNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaU0EvSUd4cGJtVXViVzlzYzF0amRYSnlaVzUwVFc5c1NXUjRYU0E2SUMweE8xeHVJQ0FnSUhOd0xtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVjMlYwS0RBc0lDRnNhVzVsYzFKbGN5NXNhVzVsYzFzd1hTNXpaV3hsWTNSbFpDazdYRzRnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbk5sYkdWamRHbHZiaTV6WlhRb01Dd2diR2x1WlhOU1pYTXViR2x1WlhOYk1GMHVjMlZzWldOMFpXUXBPMXh1SUNBZ0lHeHBibVZ6UkdaSGNtbGtMbWx1ZG1Gc2FXUmhkR1VvS1R0Y2JpQWdJQ0JwWmlBb2JHbHVaU2xjYmlBZ0lDQWdJSE5sZEZScGJXVnZkWFFvS0NrZ1BUNGdlM1Z3WkdGMFpWQnliM0JsY25SNVVHRnVaV3dvWkdZc0lHRmpZeXdnWTJGemFHVmtUR2x1WlhORVlYUmhMQ0JzYVc1bExDQnpaWEZEYjJ3c0lHRmpkR2wyYVhScFpYTXNJR3hwYm1WelVtVnpMbXhwYm1WelJHWXVaMlYwS0NkellXeHBKeXdnYkdsdVpTNXBaQ2tzSUhCeWIzQmxjblI1VUdGdVpXeEdkVzVqS1gwc0lERXdNREFwT3lBZ0lDQWdJRnh1SUNCOUtUdGNibHh1SUNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG05dVUyVnNaV04wYVc5dVEyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tGODZJR0Z1ZVNrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTF2ZFhObFQzWmxjbEp2ZDBsa2VDQWhQVDBnTFRFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMxdHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtMXZkWE5sVDNabGNsSnZkMGxrZUYwN1hHNGdJQ0FnSUNCc2FXNWxMbk5sYkdWamRHVmtJRDBnSVd4cGJtVXVjMlZzWldOMFpXUTdYRzRnSUNBZ0lDQnBaaUFvSVd4cGJtVXVjMlZzWldOMFpXUXBYRzRnSUNBZ0lDQWdJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUkJiR3dvWm1Gc2MyVXBPMXh1SUNBZ0lIMWNiaUFnSUNCc2FXNWxjMUpsY3k1c2FXNWxjeTVtYjNKRllXTm9LQ2hzS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvYkM1elpXeGxZM1JsWkNsY2JpQWdJQ0FnSUNBZ2JDNXRiMnh6TG1admNrVmhZMmdvS0cwcElEMCtJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUW9iU3dnZEhKMVpTa3BPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lHeHBibVZ6UkdaSGNtbGtMbWx1ZG1Gc2FXUmhkR1VvS1R0Y2JpQWdmU2s3WEc1Y2JpQWdZMjl1YzNRZ2JHbHVaWE5FWmtkeWFXUWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbkJzYjNRdVozSnBaQ2dwTG5OdmNuUW9XeWR6WVd4cEoxMHNJRnRtWVd4elpWMHBPMXh1WEc0Z0lHeHBibVZ6UkdaSGNtbGtMbTl1UTJWc2JFTnNhV05yTG5OMVluTmpjbWxpWlNnb0tTQTlQaUI3WEc0Z0lDQWdlbTl2YlNBOUlIUnlkV1U3WEc0Z0lIMHBPMXh1WEc0Z0lHTnZibk4wSUd4cGMzUkRiR2xtWm5OTWFXNXJJRDBnZFdrdVluVjBkRzl1S0dBa2UyeHBibVZ6VW1WekxteHBibVZ6UkdZdWNtOTNRMjkxYm5SOUlHTnNhV1ptYzJBc0lDZ3BJRDArSUh0Y2JpQWdJQ0JuY205ckxuTm9aV3hzTG1SdlkydE5ZVzVoWjJWeUxtUnZZMnNvYkdsdVpYTkVaa2R5YVdRdWNtOXZkQ3dnSjJSdmQyNG5MQ0J1ZFd4c0xDQW5RV04wYVhacGRIa2dZMnhwWm1aekp5d2dNQzR5S1R0Y2JpQWdmU2s3WEc0Z0lHVmthWFJUY0V4cGJtdFRkSGxzWlNoc2FYTjBRMnhwWm1aelRHbHVheXdnYzNBc0lERXdLVHRjYmx4dUlDQmpiMjV6ZENCbWFXeDBaWEpEYkdsbVpuTkNkWFIwYjI0Z1BTQjFhUzV6ZDJsMFkyaEpibkIxZENoZ1UyaHZkeUJ2Ym14NUlHTnNhV1ptYzJBc0lHWmhiSE5sS1R0Y2JpQWdabWxzZEdWeVEyeHBabVp6UW5WMGRHOXVMbTl1UTJoaGJtZGxaQ2dvS1QwK0lIdGNiaUFnSUNCbWFXeDBaWEpEYkdsbVpuTkNkWFIwYjI0dWRtRnNkV1VnUHlCa1ppNXliM2R6TG1acGJIUmxjaWdvY205M0tTQTlQaUJ5YjNkYlkyeHBabVp6UTI5c1RtRnRaVjBnUFQwOUlIUnlkV1VwSURvZ1pHWXVabWxzZEdWeUxuTmxkRUZzYkNoMGNuVmxLVHRjYmlBZ2ZTazdYRzRnSUdWa2FYUlRjRXhwYm10VGRIbHNaU2htYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjR1Y205dmRDd2djM0FzSURNd0tUdGNibHh1SUNCc1pYUWdkR2x0WlhJNklFNXZaR1ZLVXk1VWFXMWxiM1YwTzF4dUlDQmpZVzUyWVhNdVlXUmtSWFpsYm5STWFYTjBaVzVsY2lnbmJXOTFjMlZ0YjNabEp5d2dablZ1WTNScGIyNGdLR1YyWlc1ME9pQk5iM1Z6WlVWMlpXNTBLU0I3WEc0Z0lDQWdZMnhsWVhKVWFXMWxiM1YwS0hScGJXVnlLVHRjYmlBZ0lDQjBhVzFsY2lBOUlHZHNiMkpoYkM1elpYUlVhVzFsYjNWMEtHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHeHBibVVnUFNCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkQ3dnWTJGdWRtRnpMQ0JzYVc1bGMxSmxjeTVzYVc1bGN5azdYRzRnSUNBZ0lDQnBaaUFvYkdsdVpTQW1KaUJrWmk1dGIzVnpaVTkyWlhKU2IzZEpaSGdnUFQwOUlDMHhLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RXa3VkRzl2YkhScGNDNXphRzkzS0hSdmIyeDBhWEJHZFc1aktIdGpZWE5vWldSRVlYUmhPaUJqWVhOb1pXUk1hVzVsYzBSaGRHRXNJR3hwYm1VNklHeHBibVVzSUdSbU9pQmtaaXdnYzJWeFEyOXNPaUJ6WlhGRGIyd3NJR0ZqZEdsMmFYUjVRMjlzT2lCaFkzUnBkbWwwYVdWemZTa3NJR1YyWlc1MExtTnNhV1Z1ZEZnc0lHVjJaVzUwTG1Oc2FXVnVkRmtwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBzSURVd01DazdYRzRnSUgwcE8xeHVYRzRnSUdOaGJuWmhjeTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLQ2R0YjNWelpXUnZkMjRuTENCbWRXNWpkR2x2YmlobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZENrZ2UxeHVJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQmphR1ZqYTBOMWNuTnZjazl1VEdsdVpTaGxkbVZ1ZEN3Z1kyRnVkbUZ6TENCc2FXNWxjMUpsY3k1c2FXNWxjeWs3WEc0Z0lDQWdhV1lnS0d4cGJtVWdKaVlnWkdZdWJXOTFjMlZQZG1WeVVtOTNTV1I0SUQwOVBTQXRNU2tnZTF4dUlDQWdJQ0FnYVdZZ0tHVjJaVzUwTG1OMGNteExaWGtwSUh0Y2JpQWdJQ0FnSUNBZ2JHbHVaUzV6Wld4bFkzUmxaQ0E5SUNGc2FXNWxMbk5sYkdWamRHVmtPMXh1SUNBZ0lDQWdJQ0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1Mbk5sYkdWamRHbHZiaTV6WlhRb2JHbHVaUzVwWkN3Z2JHbHVaUzV6Wld4bFkzUmxaQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZzYVc1bExuTmxiR1ZqZEdWa0tWeHVJQ0FnSUNBZ0lDQWdJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUkJiR3dvWm1Gc2MyVXBPMXh1WEc0Z0lDQWdJQ0FnSUd4cGJtVnpVbVZ6TG14cGJtVnpMbVp2Y2tWaFkyZ29LR3dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2JDNXpaV3hsWTNSbFpDbGNiaUFnSUNBZ0lDQWdJQ0FnSUd3dWJXOXNjeTVtYjNKRllXTm9LQ2h0S1NBOVBpQmtaaTV6Wld4bFkzUnBiMjR1YzJWMEtHMHNJSFJ5ZFdVcEtUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0JwWmlBb2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJQ0U5UFNCc2FXNWxMbWxrS1NCN1hHNGdJQ0FnSUNBZ0lDQWdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaUzVwWkR0Y2JpQWdJQ0FnSUNBZ0lDQmtaaTVqZFhKeVpXNTBVbTkzU1dSNElEMGdiR2x1WlM1dGIyeHpXekJkTzF4dUlDQWdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhRb01Dd2dJV3hwYm1WelVtVnpMbXhwYm1Weld6QmRMbk5sYkdWamRHVmtLVHRjYmlBZ0lDQWdJQ0FnSUNCa1ppNXpaV3hsWTNScGIyNHVjMlYwS0RBc0lHeHBibVZ6VW1WekxteHBibVZ6V3pCZExuTmxiR1ZqZEdWa0tUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdZMjl1YzNRZ2IzSmtaWElnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1kbGRGTnZjblJsWkU5eVpHVnlLR3hwYm1WelJHWkhjbWxrTG5OdmNuUkNlVU52YkhWdGJuTXNJR3hwYm1WelJHWkhjbWxrTG5OdmNuUlVlWEJsY3lrN1hHNGdJQ0FnSUNCc2FXNWxjMFJtUjNKcFpDNXpZM0p2Ykd4VWIwTmxiR3dvSjNObGNWOHhKeXdnYjNKa1pYSXVhVzVrWlhoUFppaHNhVzVsTG1sa0tTazdYRzRnSUNBZ2ZWeHVJQ0I5S1R0Y2JseHVJQ0J6Y0M1dmJrVjJaVzUwS0Nka05DMWlaV1p2Y21VdFpISmhkeTF6WTJWdVpTY3BYRzRnSUNBZ0xuTjFZbk5qY21saVpTZ29Yem9nWVc1NUtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnNhVzVsY3lBOUlISmxibVJsY2t4cGJtVnpLSE53TEZ4dUlDQWdJQ0FnSUNCaGVHVnpUbUZ0WlhOYk1GMHNJR0Y0WlhOT1lXMWxjMXN4WFN3Z2JHbHVaWE5TWlhNc0lITmhiR2xXWVd4ekxDQnpZV3hwVDNCaFkybDBlVU52WldZc0lITmhiR2xOYVc0cE8xeHVJQ0FnSUNBZ2FXWWdLSHB2YjIwcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEV4cGJtVWdQU0JzYVc1bGMxdHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtTjFjbkpsYm5SU2IzZEpaSGhkTzF4dUlDQWdJQ0FnSUNCelpYUlVhVzFsYjNWMEtDZ3BQVDRnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUh0NmIyOXRUR1ZtZEN3Z2VtOXZiVkpwWjJoMExDQjZiMjl0Vkc5d0xDQjZiMjl0UW05MGRHOXRmU0E5SUdkbGRGcHZiMjFEYjI5eVpHbHVZWFJsY3loY2JpQWdJQ0FnSUNBZ0lDQWdJSE53TG5acFpYZHdiM0owTG5kcFpIUm9MRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVkbWxsZDNCdmNuUXVhR1ZwWjJoMExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTUYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1WMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNRjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNRjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTVYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTVYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1WMHBYRzRnSUNBZ0lDQWdJQ0FnS1NBZ0lDQWdJQ0FnWEc0Z0lDQWdJQ0FnSUNBZ2MzQXVlbTl2YlNoNmIyOXRUR1ZtZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSHB2YjIxVWIzQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCNmIyOXRVbWxuYUhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I2YjI5dFFtOTBkRzl0S1R0Y2JpQWdJQ0FnSUNBZ2ZTd2dNekF3S1R0Y2JpQWdJQ0FnSUNBZ2VtOXZiU0E5SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdabWxzZEdWeVEyeHBabVp6UW5WMGRHOXVMblpoYkhWbElEOGdaR1l1Y205M2N5NW1hV3gwWlhJb0tISnZkeWtnUFQ0Z2NtOTNXMk5zYVdabWMwTnZiRTVoYldWZElEMDlQU0IwY25WbEtTQTZJR1JtTG1acGJIUmxjaTV6WlhSQmJHd29kSEoxWlNrN1hHNGdJQ0FnZlNrN1hHNWNiaUFnYzNBdVlXUmtVSEp2Y0dWeWRIa29KM05wYldsc1lYSnBkSGxNYVcxcGRDY3NJQ2RrYjNWaWJHVW5MQ0J2Y0hSVGFXMXBiR0Z5YVhSNVRHbHRhWFFwTzF4dUlDQmhZMk1nUFNCamNtVmhkR1ZRYjNCbGNuUjVVR0Z1Wld3b0tUdGNiaUFnY21WMGRYSnVJSE53TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJsWkdsMFUzQk1hVzVyVTNSNWJHVW9aV3c2SUVoVVRVeEZiR1Z0Wlc1MExDQnpjRG9nUkVjdVUyTmhkSFJsY2xCc2IzUldhV1YzWlhJc0lIUnZjRTFoY21kcGJqb2diblZ0WW1WeUtYdGNiaUFnWld3dWMzUjViR1V1Y0c5emFYUnBiMjRnUFNBbllXSnpiMngxZEdVbk8xeHVJQ0JsYkM1emRIbHNaUzUwYjNBZ1BTQmdKSHQwYjNCTllYSm5hVzU5Y0hoZ08xeHVJQ0JsYkM1emRIbHNaUzV5YVdkb2RDQTlJQ2N4TUhCNEp6dGNiaUFnYzNBdWNtOXZkQzVoY0hCbGJtUW9aV3dwTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJqY21WaGRHVlFiM0JsY25SNVVHRnVaV3dvS1RvZ1JFY3VRV05qYjNKa2FXOXVJSHRjYmlBZ1kyOXVjM1FnWVdOaklEMGdkV2t1WVdOamIzSmthVzl1S0NrN1hHNGdJR052Ym5OMElHRmpZMGxqYjI0Z1BTQjFhUzVsYkdWdFpXNTBLQ2RwSnlrN1hHNGdJR0ZqWTBsamIyNHVZMnhoYzNOT1lXMWxJRDBnSjJkeWIyc3RhV052YmlCemRtY3RhV052YmlCemRtY3RkbWxsZHkxc1lYbHZkWFFuTzF4dUlDQmhZMk11WVdSa1ZHbDBiR1VvZFdrdWMzQmhiaWhiWVdOalNXTnZiaXdnZFdrdWJHRmlaV3dvWUVGamRHbDJhWFI1SUdOc2FXWm1jMkFwWFNrcE8xeHVJQ0JoWTJNdVlXUmtVR0Z1WlNnblEyeHBabVlnUkdWMFlXbHNjeWNzSUNncElEMCtJSFZwTG1ScGRsUmxlSFFvSjBOc2FXWm1JR2hoY3lCdWIzUWdZbVZsYmlCelpXeGxZM1JsWkNjcExDQjBjblZsS1R0Y2JpQWdaM0p2YXk1emFHVnNiQzV2SUQwZ1lXTmpMbkp2YjNRN1hHNGdJSEpsZEhWeWJpQmhZMk03WEc1OVhHNWNibVoxYm1OMGFXOXVJSFZ3WkdGMFpWQnliM0JsY25SNVVHRnVaV3dvWEc0Z0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc1hHNGdJR0ZqWXpvZ1JFY3VRV05qYjNKa2FXOXVMRnh1SUNCallYTm9aV1JFWVhSaE9pQmhibmtzWEc0Z0lHeHBibVU2SUVsTWFXNWxMQ0JjYmlBZ2MyVnhRMjlzT2lCRVJ5NURiMngxYlc0c0lGeHVJQ0JoWTNScGRtbDBhV1Z6T2lCRVJ5NURiMngxYlc0c1hHNGdJSE5oYkdrNklHNTFiV0psY2l4Y2JpQWdjSEp2Y0ZCaGJtVnNSblZ1WXpvZ0tIQmhjbUZ0Y3pvZ1NWUnZiMngwYVhCQmJtUlFZVzVsYkZCaGNtRnRjeWtnUFQ0Z1NGUk5URVZzWlcxbGJuUXBlMXh1SUNCamIyNXpkQ0J3WVc1bGJDQTlJR0ZqWXk1blpYUlFZVzVsS0NkRGJHbG1aaUJFWlhSaGFXeHpKeWs3WEc0Z0lIVnBMbVZ0Y0hSNUtIQmhibVZzTG5KdmIzUXBPMXh1SUNCamIyNXpkQ0J3WVc1bGJFVnNaVzFsYm5RZ1BTQndjbTl3VUdGdVpXeEdkVzVqS0h0allYTm9aV1JFWVhSaE9pQmpZWE5vWldSRVlYUmhMQ0JzYVc1bE9pQnNhVzVsTENCa1pqb2daR1lzSUhObGNVTnZiRG9nYzJWeFEyOXNMQ0JoWTNScGRtbDBlVU52YkRvZ1lXTjBhWFpwZEdsbGN5d2djMkZzYVRvZ2MyRnNhWDBwTzF4dUlDQndZVzVsYkM1eWIyOTBMbUZ3Y0dWdVpDaHdZVzVsYkVWc1pXMWxiblFwTzF4dUlDQnpaWFJVYVcxbGIzVjBLQ2dwSUQwK0lIdGNiaUFnSUNCbmNtOXJMbk5vWld4c0xtOGdQU0JoWTJNdWNtOXZkRHRjYmlBZ2ZTd2dOVEF3S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnWjJWMFdtOXZiVU52YjNKa2FXNWhkR1Z6S0Zjd09pQnVkVzFpWlhJc0lFZ3dPaUJ1ZFcxaVpYSXNJSGd4T2lCdWRXMWlaWElzSUhreE9pQnVkVzFpWlhJc0lIZ3lPaUJ1ZFcxaVpYSXNJSGt5T2lCdWRXMWlaWElwSUh0Y2JpQWdZMjl1YzNRZ1Z6RWdQU0JOWVhSb0xtRmljeWg0TVNBdElIZ3lLVHRjYmlBZ1kyOXVjM1FnU0RFZ1BTQk5ZWFJvTG1GaWN5aDVNU0F0SUhreUtUdGNiaUFnWTI5dWMzUWdjMk5oYkdWWElEMGdWekFnTHlCWE1UdGNiaUFnWTI5dWMzUWdjMk5oYkdWSUlEMGdTREFnTHlCSU1UdGNiaUFnWTI5dWMzUWdjMk5oYkdVZ1BTQk5ZWFJvTG0xcGJpaHpZMkZzWlZjc0lITmpZV3hsU0NrN1hHNGdJR052Ym5OMElGY3lJRDBnS0Zjd0lDOGdjMk5oYkdVcElDb2dOVHRjYmlBZ1kyOXVjM1FnU0RJZ1BTQW9TREFnTHlCelkyRnNaU2tnS2lBMU8xeHVJQ0JqYjI1emRDQnNaV1owSUQwZ2VERWdQQ0I0TWlBL0lIZ3hJRG9nZURJN1hHNGdJR052Ym5OMElIUnZjQ0E5SUhreElENGdlVElnUHlCNU1TQTZJSGt5TzF4dUlDQmpiMjV6ZENCNmIyOXRUR1ZtZENBOUlDaHNaV1owSUNzZ1Z6RWdMeUF5S1NBdElGY3lJQzhnTWp0Y2JpQWdZMjl1YzNRZ2VtOXZiVkpwWjJoMElEMGdlbTl2YlV4bFpuUWdLeUJYTWp0Y2JpQWdZMjl1YzNRZ2VtOXZiVlJ2Y0NBOUlDaDBiM0FnTFNCSU1TQXZJRElwSUNzZ1NESWdMeUF5TzF4dUlDQmpiMjV6ZENCNmIyOXRRbTkwZEc5dElEMGdlbTl2YlZSdmNDQXRJRWd5TzF4dUlDQnlaWFIxY200Z2UzcHZiMjFNWldaME9pQjZiMjl0VEdWbWRDd2dlbTl2YlZKcFoyaDBPaUI2YjI5dFVtbG5hSFFzSUhwdmIyMVViM0E2SUhwdmIyMVViM0FzSUhwdmIyMUNiM1IwYjIwNklIcHZiMjFDYjNSMGIyMTlPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmphR1ZqYTBOMWNuTnZjazl1VEdsdVpTaGxkbVZ1ZERvZ1lXNTVMQ0JqWVc1MllYTTZJR0Z1ZVN3Z2JHbHVaWE02SUVsTWFXNWxXMTBwT2lCSlRHbHVaU0I4SUc1MWJHd2dlMXh1SUNCamIyNXpkQ0J5WldOMElEMGdZMkZ1ZG1GekxtZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ2dwTzF4dUlDQmpiMjV6ZENCNElEMGdaWFpsYm5RdVkyeHBaVzUwV0NBdElISmxZM1F1YkdWbWREdGNiaUFnWTI5dWMzUWdlU0E5SUdWMlpXNTBMbU5zYVdWdWRGa2dMU0J5WldOMExuUnZjRHRjYmlBZ2JHVjBJR05zYjNObGMzUk1hVzVsSUQwZ2JuVnNiRHRjYmlBZ2JHVjBJRzFwYmtScGMzUWdQU0F3TzF4dUlDQm1iM0lnS0dOdmJuTjBJR3hwYm1VZ2IyWWdiR2x1WlhNcElIdGNiaUFnSUNCamIyNXpkQ0JrYVhOMElEMWNiaUFnSUNBZ0lFMWhkR2d1WVdKektFMWhkR2d1YUhsd2IzUW9iR2x1WlM1aFd6QmRJQzBnZUN3Z2JHbHVaUzVoV3pGZElDMGdlU2tnSzF4dUlDQWdJQ0FnVFdGMGFDNW9lWEJ2ZENoc2FXNWxMbUpiTUYwZ0xTQjRMQ0JzYVc1bExtSmJNVjBnTFNCNUtTQXRJRTFoZEdndWFIbHdiM1FvYkdsdVpTNWhXekJkSUMwZ2JHbHVaUzVpV3pCZExDQnNhVzVsTG1GYk1WMGdMU0JzYVc1bExtSmJNVjBwS1R0Y2JpQWdJQ0JwWmlBb0tDRnRhVzVFYVhOMElDWW1JR1JwYzNRZ1BDQXlLU0I4ZkNCa2FYTjBJRHdnYldsdVJHbHpkQ2tnZTF4dUlDQWdJQ0FnYldsdVJHbHpkQ0E5SUdScGMzUTdYRzRnSUNBZ0lDQmpiRzl6WlhOMFRHbHVaU0E5SUd4cGJtVTdYRzRnSUNBZ2ZWeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCamJHOXpaWE4wVEdsdVpUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2NtVnVaR1Z5VEdsdVpYTW9jM0E2SUVSSExsTmpZWFIwWlhKUWJHOTBWbWxsZDJWeUxGeHVJQ0I0UVhocGN6b2djM1J5YVc1bkxDQjVRWGhwY3pvZ2MzUnlhVzVuTENCc2FXNWxjMUpsY3pvZ1NWSmxibVJsY21Wa1RHbHVaWE1zSUhOaGJHbFdZV3h6T2lCdWRXMWlaWEpiWFN3Z2MyRnNhVTl3WVdOcGRIbERiMlZtT2lCdWRXMWlaWElzSUhOaGJHbE5hVzQ2SUc1MWJXSmxjaWs2SUVsTWFXNWxJRnRkSUh0Y2JpQWdZMjl1YzNRZ2JHbHVaWE1nUFNCc2FXNWxjMUpsY3k1c2FXNWxjenRjYmlBZ1kyOXVjM1FnWTJGdWRtRnpJRDBnS0hOd0xtZGxkRWx1Wm04b0tTQmhjeUI3VzJsdVpHVjRPaUJ6ZEhKcGJtZGRJRG9nWVc1NWZTbGJKMk5oYm5aaGN5ZGRPMXh1SUNCamIyNXpkQ0JqZEhnZ1BTQmpZVzUyWVhNdVoyVjBRMjl1ZEdWNGRDZ25NbVFuS1NCaGN5QkRZVzUyWVhOU1pXNWtaWEpwYm1kRGIyNTBaWGgwTWtRN1hHNGdJR052Ym5OMElIZ2dQU0J6Y0M1a1lYUmhSbkpoYldVaExtTnZiSFZ0Ym5NdVlubE9ZVzFsS0hoQmVHbHpLVHRjYmlBZ1kyOXVjM1FnZVNBOUlITndMbVJoZEdGR2NtRnRaU0V1WTI5c2RXMXVjeTVpZVU1aGJXVW9lVUY0YVhNcE8xeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUd4cGJtVnpMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnWTI5dWMzUWdjRzlwYm5SR2NtOXRJRDBnYzNBdWQyOXliR1JVYjFOamNtVmxiaWg0TG1kbGRDaHNhVzVsYzF0cFhTNXRiMnh6V3pCZEtTd2dlUzVuWlhRb2JHbHVaWE5iYVYwdWJXOXNjMXN3WFNrcE8xeHVJQ0FnSUdOdmJuTjBJSEJ2YVc1MFZHOGdQU0J6Y0M1M2IzSnNaRlJ2VTJOeVpXVnVLSGd1WjJWMEtHeHBibVZ6VzJsZExtMXZiSE5iTVYwcExDQjVMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekZkS1NrN1hHNGdJQ0FnYkdsdVpYTmJhVjB1WVNBOUlGdHdiMmx1ZEVaeWIyMHVlQ3dnY0c5cGJuUkdjbTl0TG5sZE8xeHVJQ0FnSUd4cGJtVnpXMmxkTG1JZ1BTQmJjRzlwYm5SVWJ5NTRMQ0J3YjJsdWRGUnZMbmxkTzF4dUlDQWdJR052Ym5OMElHeHBibVVnUFNCdVpYY2dVR0YwYURKRUtDazdYRzRnSUNBZ2JHbHVaUzV0YjNabFZHOG9iR2x1WlhOYmFWMHVZVnN3WFN3Z2JHbHVaWE5iYVYwdVlWc3hYU2s3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNiM0lnUFNCc2FXNWxjMXRwWFM1elpXeGxZM1JsWkNBL0lDY3lOVFVzTWpVMUxEQW5JRG9nSnpBc01USTRMREFuTzF4dUlDQWdJR052Ym5OMElHOXdZV05wZEhrZ1BTQnpZV3hwVm1Gc2MxdHBYU0E5UFQwZ1NXNW1hVzVwZEhrZ1B5QXhJRG9nTUM0eUlDc2dLSE5oYkdsV1lXeHpXMmxkSUMwZ2MyRnNhVTFwYmlrcWMyRnNhVTl3WVdOcGRIbERiMlZtTzF4dUlDQWdJR04wZUM1emRISnZhMlZUZEhsc1pTQTlJR0J5WjJKaEtDUjdZMjlzYjNKOUxDUjdiM0JoWTJsMGVYMHBZRHRjYmlBZ0lDQmpkSGd1YkdsdVpWZHBaSFJvSUQwZ2JHbHVaWE5iYVYwdWFXUWdQVDA5SUd4cGJtVnpVbVZ6TG14cGJtVnpSR1l1WTNWeWNtVnVkRkp2ZDBsa2VDQS9JRE1nT2lBeE8xeHVJQ0FnSUd4cGJtVXViR2x1WlZSdktHeHBibVZ6VzJsZExtSmJNRjBzSUd4cGJtVnpXMmxkTG1KYk1WMHBPMXh1SUNBZ0lHTjBlQzV6ZEhKdmEyVW9iR2x1WlNrN1hHNGdJSDFjYmlBZ2NtVjBkWEp1SUd4cGJtVnpPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmpjbVZoZEdWTWFXNWxjeWhjYmlBZ2JqRTZJRzUxYldKbGNsdGRMQ0JjYmlBZ2JqSTZJRzUxYldKbGNsdGRMQ0JjYmlBZ2MyVnhPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQmhZM1JwZG1sMGFXVnpPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQnpZV3hwVm1Gc2N6b2diblZ0WW1WeVcxMHNYRzRnSUhOcGJWWmhiSE02SUc1MWJXSmxjbHRkTEZ4dUlDQnpaVzFVZVhCbE9pQnpkSEpwYm1jc1hHNGdJSFJoWjNNNklIdGJhVzVrWlhnNklITjBjbWx1WjEwNklITjBjbWx1WjMwcElEb2dTVkpsYm1SbGNtVmtUR2x1WlhNZ2UxeHVJQ0JqYjI1emRDQnNhVzVsY3pvZ1NVeHBibVZiWFNBOUlHNWxkeUJCY25KaGVTaHVNUzVzWlc1bmRHZ3BMbVpwYkd3b2JuVnNiQ2s3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2diakV1YkdWdVozUm9PeUJwS3lzcElIdGNiaUFnSUNCamIyNXpkQ0J1ZFcweElEMGdiakZiYVYwN1hHNGdJQ0FnWTI5dWMzUWdiblZ0TWlBOUlHNHlXMmxkTzF4dUlDQWdJR3hwYm1WelcybGRJRDBnS0h0cFpEb2dhU3dnYlc5c2N6b2dXMjUxYlRFc0lHNTFiVEpkTENCelpXeGxZM1JsWkRvZ1ptRnNjMlVzSUdFNklGdGRMQ0JpT2lCYlhYMHBPMXh1SUNCOVhHNGdJR052Ym5OMElHeHBibVZ6UkdZZ1BTQkVSeTVFWVhSaFJuSmhiV1V1WTNKbFlYUmxLR3hwYm1WekxteGxibWQwYUNrN1hHNGdJRzF2YkVOdmJIVnRiazVoYldWekxtWnZja1ZoWTJnb0tHbDBMQ0JwWkhncElEMCtJSHRjYmlBZ0lDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzVTNSeWFXNW5LR2wwS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITmxjUzVuWlhRb2JHbHVaWE5iYVYwdWJXOXNjMXRwWkhoZEtTazdYRzRnSUNBZ2MyVjBWR0ZuY3loc2FXNWxjMFJtTG1OdmJDaHBkQ2toTENCMFlXZHpLVHRjYmlBZ0lDQnNhVzVsYzBSbUxtTnZiQ2hwZENraExuTmxiVlI1Y0dVZ1BTQnpaVzFVZVhCbE8xeHVJQ0I5S1Z4dUlDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzUm14dllYUW9KMkZqZEY5a2FXWm1KeWxjYmlBZ0lDQXVhVzVwZENnb2FUb2diblZ0WW1WeUtTQTlQaUJOWVhSb0xtRmljeWhoWTNScGRtbDBhV1Z6TG1kbGRDaHNhVzVsYzF0cFhTNXRiMnh6V3pCZEtTQXRJR0ZqZEdsMmFYUnBaWE11WjJWMEtHeHBibVZ6VzJsZExtMXZiSE5iTVYwcEtTazdYRzRnSUd4cGJtVnpSR1l1WTI5c2RXMXVjeTVoWkdST1pYZEpiblFvSjJ4cGJtVmZhVzVrWlhnbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJR2twTzF4dUlDQnNhVzVsYzBSbUxtTnZiSFZ0Ym5NdVlXUmtUbVYzUm14dllYUW9KM05oYkdrbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJSE5oYkdsV1lXeHpXMmxkS1R0Y2JpQWdiR2x1WlhORVppNWpiMngxYlc1ekxtRmtaRTVsZDBac2IyRjBLQ2R6YVcwbktTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJSE5wYlZaaGJITmJhVjBwTzF4dUlDQnlaWFIxY200Z2UyeHBibVZ6TENCc2FXNWxjMFJtZlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYzJWMFZHRm5jeWhqYjJ3NklFUkhMa052YkhWdGJpd2dkR0ZuY3pvZ2UxdHBibVJsZURvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuZlNrZ2UxeHVJQ0JQWW1wbFkzUXVhMlY1Y3loMFlXZHpLUzVtYjNKRllXTm9LSFJoWnlBOVBpQjdYRzRnSUNBZ1kyOXNMblJoWjNOYmRHRm5YU0E5SUhSaFozTmJkR0ZuWFR0Y2JpQWdmU2xjYm4xY2JseHVaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRHbGxjMDFoY21sNEtGeHVJQ0FnSUdScGJUb2diblZ0WW1WeUxDQmNiaUFnSUNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z1hHNGdJQ0FnWkdaVFpYRTZJRVJITGtSaGRHRkdjbUZ0WlN3Z1hHNGdJQ0FnYzJsdFFYSnlPaUJFUnk1RGIyeDFiVzViWFN4Y2JpQWdJQ0J6YVcxR2RXNWpPaUFvWTI5c09pQkVSeTVEYjJ4MWJXNHNJRzF2YkRvZ2MzUnlhVzVuS1NBOVBpQlFjbTl0YVhObFBFUkhMa052YkhWdGJpQjhJRzUxYkd3K1hHNGdJQ0FnS1Z4dUlDQTZJRkJ5YjIxcGMyVThSRWN1UTI5c2RXMXVXMTArSUh0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dJVDBnWkdsdElDMGdNVHNnS3l0cEtTQjdYRzRnSUNBZ1kyOXVjM1FnYlc5c0lEMGdjMlZ4UTI5c0xtZGxkQ2hwS1R0Y2JpQWdJQ0JrWmxObGNTNXliM2R6TG5KbGJXOTJaVUYwS0RBc0lERXNJR1poYkhObEtUdGNiaUFnSUNCemFXMUJjbkpiYVYwZ1BTQW9ZWGRoYVhRZ2MybHRSblZ1WXloa1psTmxjUzVqYjJ3b0ozTmxjU2NwSVN3Z2JXOXNLU2toTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ6YVcxQmNuSTdYRzU5WEc1Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRk5wYldsc1lYSnBkR2xsYzBaeWIyMUVhWE4wWVc1alpYTW9aR2x0T2lCdWRXMWlaWElzSUdScGMzUmhibU5sY3pvZ1RXRjBjbWw0TENCemFXMUJjbkk2SUVSSExrTnZiSFZ0Ymx0ZEtWeHVJQ0E2SUVSSExrTnZiSFZ0Ymx0ZElIdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCa2FXMGdMU0F4T3lBcksya3BJSHRjYmlBZ0lDQmpiMjV6ZENCemFXMXBiR0Z5YVhSNVFYSnlJRDBnYm1WM0lFRnljbUY1S0dScGJTQXRJR2tnTFNBeEtTNW1hV3hzS0RBcE8xeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQnBJQ3NnTVRzZ2FpQThJR1JwYlRzZ0t5dHFLU0I3WEc0Z0lDQWdJQ0J6YVcxcGJHRnlhWFI1UVhKeVcyb2dMU0JwSUMwZ01WMGdQU0JuWlhSVGFXMXBiR0Z5YVhSNVJuSnZiVVJwYzNSaGJtTmxLR1JwYzNSaGJtTmxjMXRwWFZ0cVhTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhOcGJVRnljbHRwWFNBOUlFUkhMa052YkhWdGJpNW1jbTl0Um14dllYUXpNa0Z5Y21GNUtDZHphVzFwYkdGeWFYUjVKeXdnUm14dllYUXpNa0Z5Y21GNUxtWnliMjBvYzJsdGFXeGhjbWwwZVVGeWNpa3BPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnphVzFCY25JN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoWkdSRGJHbG1abk5DYjI5c1pXRnVRMjlzS0dSbU9pQkVSeTVFWVhSaFJuSmhiV1VzSUdsa2N6b2dVMlYwUEc1MWJXSmxjajRwT2lCemRISnBibWNnZTF4dUlDQmpiMjV6ZENCamIyeHVZVzFsSUQwZ0oyTnZiblJoYVc1elEyeHBabVluTzF4dUlDQmpiMjV6ZENCamIyeE9ZVzFsU1c1a0lEMGdaR1l1WTI5c2RXMXVjeTV1WVcxbGN5Z3BMbVpwYkhSbGNpZ29hWFE2SUhOMGNtbHVaeWtnUFQ0Z2FYUXVhVzVqYkhWa1pYTW9ZMjlzYm1GdFpTa3BMbXhsYm1kMGFDQXJJREU3WEc0Z0lHTnZibk4wSUc1bGQwTnZiRTVoYldVZ1BTQmdKSHRqYjJ4dVlXMWxmVjhrZTJOdmJFNWhiV1ZKYm1SOVlEdGNiaUFnWkdZdVkyOXNkVzF1Y3k1aFpHUk9aWGRDYjI5c0tHNWxkME52YkU1aGJXVXBMbWx1YVhRb0tHa3BJRDArSUdsa2N5NW9ZWE1vYVNrcE8xeHVJQ0J5WlhSMWNtNGdibVYzUTI5c1RtRnRaVHRjYm4xY2JseHVJbDE5IiwiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlcihkYXRhTWV0cmljLCBtZXRob2QsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgY29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcihuZXcgVVJMKCcuL2RpbWVuc2lvbmFsaXR5LXJlZHVjZXInLCBpbXBvcnQubWV0YS51cmwpKTtcbiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgIGNvbHVtbkRhdGE6IGRhdGFNZXRyaWMuZGF0YSxcbiAgICAgICAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgICAgICAgbWVhc3VyZTogZGF0YU1ldHJpYy5tZXRyaWMsXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICB9KTtcbiAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9ICh7IGRhdGE6IHsgZGlzdGFuY2UsIGVtYmVkZGluZyB9IH0pID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoeyBkaXN0YW5jZTogZGlzdGFuY2UsIGVtYmVkZGluZzogZW1iZWRkaW5nIH0pO1xuICAgICAgICB9O1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdOcGJtY3RkMjl5YTJWeUxXTnlaV0YwYjNJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUprYVcxbGJuTnBiMjVoYkdsMGVTMXlaV1IxWTJsdVp5MTNiM0pyWlhJdFkzSmxZWFJ2Y2k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRnBRa0VzVFVGQlRTeFZRVUZWTEdsRFFVRnBReXhEUVVGRExGVkJRWE5DTEVWQlFVVXNUVUZCWXl4RlFVTnNSaXhQUVVGaE8wbEJSV3BDTEU5QlFVOHNTVUZCU1N4UFFVRlBMRU5CUVVNc1ZVRkJVeXhQUVVGUE8xRkJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETERCQ1FVRXdRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOb1JpeE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUTJwQ0xGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNTVUZCU1R0WlFVTXpRaXhOUVVGTkxFVkJRVVVzVFVGQlRUdFpRVU5rTEU5QlFVOHNSVUZCUlN4VlFVRlZMRU5CUVVNc1RVRkJUVHRaUVVNeFFpeFBRVUZQTEVWQlFVVXNUMEZCVHp0VFFVTnFRaXhEUVVGRExFTkJRVU03VVVGRFNDeE5RVUZOTEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1JVRkJReXhKUVVGSkxFVkJRVVVzUlVGQlF5eFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkRMRVZCUVVNc1JVRkJSU3hGUVVGRk8xbEJRM0JFTEU5QlFVOHNRMEZCUXl4RlFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFVkJRVVVzVTBGQlV5eEZRVUZGTEZOQlFWTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1FzUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRUQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dUV0YwY21sNElIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRXWVd4cFpGUjVjR1Z6ZlNCbWNtOXRJQ2N1TGk5MGVYQmxaQzF0WlhSeWFXTnpKenRjYmx4dUx5b3FYRzRnS2lCQklIZHZjbXRsY2lCMGJ5QndaWEptYjNKdElHUnBiV1Z1YzJsdmJtRnNhWFI1SUhKbFpIVmpkR2x2Ymk1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFaaGJHbGtWSGx3WlhOOUlHUmhkR0ZOWlhSeWFXTWdWR2hsSUdSaGRHRWdkRzhnY0hKdlkyVnpjeTVjYmlBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdFpYUm9iMlFnUVNCdFpYUm9iMlFnYjJZZ1pHbHRaVzV6YVc5dVlXeHBkSGtnY21Wa2RXTjBhVzl1TGx4dUlDb2dRSEJoY21GdElHOXdkR2x2Ym5NZ0xTQnJaWGt0ZG1Gc2RXVWdjR0ZwY25OY2JpQXFJRUJ3WVhKaGJTQnlaWFIxY201RWFYTjBZVzVqWlUxaGRISnBlRnh1SUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4SlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRK2ZTQlNaWE4xYkhScGJtY2daVzFpWldSa2FXNW5JR0Z1WkNCa2FYTjBZVzVqWlNCdFlYUnlhWGd1WEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTVkpsWkhWalpVUnBiV1Z1YzJsdmJtRnNhWFI1VW1WemRXeDBJSHRjYmlBZ1pHbHpkR0Z1WTJVNklFMWhkSEpwZUR0Y2JpQWdaVzFpWldSa2FXNW5PaUJOWVhSeWFYZzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZFYVcxbGJuTnBibUZzYVhSNVVtVmtkV05wYm1kWGIzSnJaWElvWkdGMFlVMWxkSEpwWXpvZ1ZtRnNhV1JVZVhCbGN5d2diV1YwYUc5a09pQnpkSEpwYm1jc1hHNGdJQ0FnSUNCdmNIUnBiMjV6UHpvZ1lXNTVLVG9nVUhKdmJXbHpaVHhKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFErSUh0Y2JseHVJQ0J5WlhSMWNtNGdibVYzSUZCeWIyMXBjMlVvWm5WdVkzUnBiMjRvY21WemIyeDJaU2tnZTF4dUlDQWdJR052Ym5OMElIZHZjbXRsY2lBOUlHNWxkeUJYYjNKclpYSW9ibVYzSUZWU1RDZ25MaTlrYVcxbGJuTnBiMjVoYkdsMGVTMXlaV1IxWTJWeUp5d2dhVzF3YjNKMExtMWxkR0V1ZFhKc0tTazdYRzRnSUNBZ2QyOXlhMlZ5TG5CdmMzUk5aWE56WVdkbEtIdGNiaUFnSUNBZ0lHTnZiSFZ0YmtSaGRHRTZJR1JoZEdGTlpYUnlhV011WkdGMFlTeGNiaUFnSUNBZ0lHMWxkR2h2WkRvZ2JXVjBhRzlrTEZ4dUlDQWdJQ0FnYldWaGMzVnlaVG9nWkdGMFlVMWxkSEpwWXk1dFpYUnlhV01zWEc0Z0lDQWdJQ0J2Y0hScGIyNXpPaUJ2Y0hScGIyNXpMRnh1SUNBZ0lIMHBPMXh1SUNBZ0lIZHZjbXRsY2k1dmJtMWxjM05oWjJVZ1BTQW9lMlJoZEdFNklIdGthWE4wWVc1alpTd2daVzFpWldSa2FXNW5mWDBwSUQwK0lIdGNiaUFnSUNBZ2NtVnpiMngyWlNoN1pHbHpkR0Z1WTJVNklHUnBjM1JoYm1ObExDQmxiV0psWkdScGJtYzZJR1Z0WW1Wa1pHbHVaMzBwTzF4dUlDQWdJSDA3WEc0Z0lIMHBPMXh1ZlZ4dUlsMTkiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgc2hhMjU2IGZyb20gJ2Zhc3Qtc2hhMjU2Jztcbi8qKlxuICogRm9yIGNvbHVtbnMgb2Ygc3RyaW5nIHR5cGUuIENoZWNrcyB3aGV0aGVyIGNvbHVtbiBjb250YWlucyBlbXB0eSB2YWx1ZXMgYW5kIHJlbW92ZXMgY29ycmVzcG9uZGluZyByb3dzIGluIGNhc2UgdXNlciBzZWxlY3RzIHRvIHJlbW92ZS5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbXB0eVN0cmluZ1Jvd3ModGFibGUsIGNvbCkge1xuICAgIGNvbnN0IGNhdHMgPSBjb2wuY2F0ZWdvcmllcztcbiAgICBjb25zdCBlbXB0eVJhd0luZCA9IGNhdHMubWFwKCh2YWwsIGluZCkgPT4gIXZhbCA/IGluZCA6IG51bGwpLmZpbHRlcigoaXQpID0+IGl0ICE9PSBudWxsKTtcbiAgICBjb25zdCByYXdEYXRhID0gWy4uLmNvbC5nZXRSYXdEYXRhKCldO1xuICAgIGNvbnN0IGVtcHR5UmF3c0luZGV4ZXMgPSBbXTtcbiAgICBsZXQgcmVtb3ZlZFJvd3NDb3VudGVyID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlLnJvd0NvdW50OyBpKyspIHtcbiAgICAgICAgaWYgKGVtcHR5UmF3SW5kLmluY2x1ZGVzKHJhd0RhdGFbaV0pKSB7XG4gICAgICAgICAgICB0YWJsZS5yb3dzLnJlbW92ZUF0KGkgLSByZW1vdmVkUm93c0NvdW50ZXIpO1xuICAgICAgICAgICAgZW1wdHlSYXdzSW5kZXhlcy5wdXNoKGkpO1xuICAgICAgICAgICAgcmVtb3ZlZFJvd3NDb3VudGVyICs9IDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVtcHR5UmF3c0luZGV4ZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFzaERhdGFGcmFtZSh0YWJsZSwgbmFtZXMpIHtcbiAgICBuYW1lcyAhPT0gbnVsbCAmJiBuYW1lcyAhPT0gdm9pZCAwID8gbmFtZXMgOiAobmFtZXMgPSB0YWJsZS5jb2x1bW5zLm5hbWVzKCkpO1xuICAgIGNvbnN0IGhhc2hlciA9IG5ldyBzaGEyNTYuSGFzaCgpO1xuICAgIGNvbnN0IG9yZGVyID0gdGFibGUuZ2V0U29ydGVkT3JkZXIobmFtZXMpO1xuICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuY29sdW1ucy5ieU5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IGRhdGFBcnJheSA9IGNvbHVtbi5nZXRSYXdEYXRhKCk7XG4gICAgICAgIGNvbnN0IGlzU3RyaW5nID0gY29sdW1uLnR5cGUgPT0gREcuVFlQRS5TVFJJTkc7XG4gICAgICAgIGNvbnN0IGNhdHMgPSBjb2x1bW4uY2F0ZWdvcmllcztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpc1N0cmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBjYXRzW2RhdGFBcnJheVtvcmRlcltpXV1dO1xuICAgICAgICAgICAgICAgIGhhc2hlci51cGRhdGUoZW5jb2Rlci5lbmNvZGUoZGF0YSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGRhdGFBcnJheVtvcmRlcltpXV07XG4gICAgICAgICAgICAgICAgaGFzaGVyLnVwZGF0ZShVaW50OEFycmF5LmZyb20oW2RhdGFdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc2hlci5kaWdlc3QoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHRjBZV1p5WVcxbExYVjBhV3h6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2laR0YwWVdaeVlXMWxMWFYwYVd4ekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhMUVVGTExFMUJRVTBzVFVGQlRTeGhRVUZoTEVOQlFVTTdRVUZEZEVNN096dEhRVWRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMSEZDUVVGeFFpeERRVUZETEV0QlFXMUNMRVZCUVVVc1IwRkJZenRKUVVOMlJTeE5RVUZOTEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wbEJRelZDTEUxQlFVMHNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXhSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGRFTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZETlVJc1NVRkJTU3hyUWtGQmEwSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRNMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRka01zU1VGQlNTeFhRVUZYTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTzFsQlEzQkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eERRVUZETzFsQlF6VkRMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlFpeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRGVrSTdTMEZEUmp0SlFVTkVMRTlCUVU4c1owSkJRV2RDTEVOQlFVTTdRVUZETVVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeGhRVUZoTEVOQlFVTXNTMEZCYlVJc1JVRkJSU3hMUVVGblFqdEpRVU5xUlN4TFFVRkxMR0ZCUVV3c1MwRkJTeXhqUVVGTUxFdEJRVXNzU1VGQlRDeExRVUZMTEVkQlFVc3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlF6dEpRVU5vUXl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVTnFReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wbEJRekZETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1YwRkJWeXhGUVVGRkxFTkJRVU03U1VGRGJFTXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hMUVVGTExFVkJRVVU3VVVGRGVFSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1JVRkJSU3hEUVVGRE8xRkJRM1JETEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMME1zVFVGQlRTeEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJRenRSUVVNdlFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVONlF5eEpRVUZKTEZGQlFWRXNSVUZCUlR0blFrRkRXaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNaRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzSkRPMmxDUVVGTk8yZENRVU5NTEUxQlFVMHNTVUZCU1N4SFFVRkhMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRha01zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRE8xTkJRMFk3UzBGRFJqdEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8wRkJRM3BDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCRVJ5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaR2NuTzF4dWFXMXdiM0owSUNvZ1lYTWdjMmhoTWpVMklHWnliMjBnSjJaaGMzUXRjMmhoTWpVMkp6dGNiaThxS2x4dUlDb2dSbTl5SUdOdmJIVnRibk1nYjJZZ2MzUnlhVzVuSUhSNWNHVXVJRU5vWldOcmN5QjNhR1YwYUdWeUlHTnZiSFZ0YmlCamIyNTBZV2x1Y3lCbGJYQjBlU0IyWVd4MVpYTWdZVzVrSUhKbGJXOTJaWE1nWTI5eWNtVnpjRzl1WkdsdVp5QnliM2R6SUdsdUlHTmhjMlVnZFhObGNpQnpaV3hsWTNSeklIUnZJSEpsYlc5MlpTNWNiaUFxWEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnlaVzF2ZG1WRmJYQjBlVk4wY21sdVoxSnZkM01vZEdGaWJHVTZJRVJITGtSaGRHRkdjbUZ0WlN3Z1kyOXNPaUJFUnk1RGIyeDFiVzRwT2lCdWRXMWlaWEpiWFNCN1hHNGdJR052Ym5OMElHTmhkSE1nUFNCamIyd3VZMkYwWldkdmNtbGxjenRjYmlBZ1kyOXVjM1FnWlcxd2RIbFNZWGRKYm1RZ1BTQmpZWFJ6TG0xaGNDZ29kbUZzTENCcGJtUXBJRDArSUNGMllXd2dQeUJwYm1RZ09pQnVkV3hzS1M1bWFXeDBaWElvS0dsMEtTQTlQaUJwZENBaFBUMGdiblZzYkNrN1hHNGdJR052Ym5OMElISmhkMFJoZEdFZ1BTQmJMaTR1WTI5c0xtZGxkRkpoZDBSaGRHRW9LVjA3WEc0Z0lHTnZibk4wSUdWdGNIUjVVbUYzYzBsdVpHVjRaWE1nUFNCYlhUdGNiaUFnYkdWMElISmxiVzkyWldSU2IzZHpRMjkxYm5SbGNpQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkR0ZpYkdVdWNtOTNRMjkxYm5RN0lHa3JLeWtnZTF4dUlDQWdJR2xtSUNobGJYQjBlVkpoZDBsdVpDNXBibU5zZFdSbGN5aHlZWGRFWVhSaFcybGRLU2tnZTF4dUlDQWdJQ0FnZEdGaWJHVXVjbTkzY3k1eVpXMXZkbVZCZENocElDMGdjbVZ0YjNabFpGSnZkM05EYjNWdWRHVnlLVHRjYmlBZ0lDQWdJR1Z0Y0hSNVVtRjNjMGx1WkdWNFpYTXVjSFZ6YUNocEtUdGNiaUFnSUNBZ0lISmxiVzkyWldSU2IzZHpRMjkxYm5SbGNpQXJQU0F4TzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdaVzF3ZEhsU1lYZHpTVzVrWlhobGN6dGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdoaGMyaEVZWFJoUm5KaGJXVW9kR0ZpYkdVNklFUkhMa1JoZEdGR2NtRnRaU3dnYm1GdFpYTS9PaUJ6ZEhKcGJtZGJYU2s2SUZWcGJuUTRRWEp5WVhrZ2UxeHVJQ0J1WVcxbGN5QS9QejBnZEdGaWJHVXVZMjlzZFcxdWN5NXVZVzFsY3lncE8xeHVJQ0JqYjI1emRDQm9ZWE5vWlhJZ1BTQnVaWGNnYzJoaE1qVTJMa2hoYzJnb0tUdGNiaUFnWTI5dWMzUWdiM0prWlhJZ1BTQjBZV0pzWlM1blpYUlRiM0owWldSUGNtUmxjaWh1WVcxbGN5azdYRzRnSUdOdmJuTjBJR1Z1WTI5a1pYSWdQU0J1WlhjZ1ZHVjRkRVZ1WTI5a1pYSW9LVHRjYmlBZ1ptOXlJQ2hqYjI1emRDQnVZVzFsSUc5bUlHNWhiV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzZFcxdUlEMGdkR0ZpYkdVdVkyOXNkVzF1Y3k1aWVVNWhiV1VvYm1GdFpTazdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlVRnljbUY1SUQwZ1kyOXNkVzF1TG1kbGRGSmhkMFJoZEdFb0tUdGNiaUFnSUNCamIyNXpkQ0JwYzFOMGNtbHVaeUE5SUdOdmJIVnRiaTUwZVhCbElEMDlJRVJITGxSWlVFVXVVMVJTU1U1SE8xeHVJQ0FnSUdOdmJuTjBJR05oZEhNZ1BTQmpiMngxYlc0dVkyRjBaV2R2Y21sbGN6dGNiaUFnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUmhkR0ZCY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnYVdZZ0tHbHpVM1J5YVc1bktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCallYUnpXMlJoZEdGQmNuSmhlVnR2Y21SbGNsdHBYVjFkTzF4dUlDQWdJQ0FnSUNCb1lYTm9aWEl1ZFhCa1lYUmxLR1Z1WTI5a1pYSXVaVzVqYjJSbEtHUmhkR0VwS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQmtZWFJoUVhKeVlYbGJiM0prWlhKYmFWMWRPMXh1SUNBZ0lDQWdJQ0JvWVhOb1pYSXVkWEJrWVhSbEtGVnBiblE0UVhKeVlYa3Vabkp2YlNoYlpHRjBZVjBwS1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJR2hoYzJobGNpNWthV2RsYzNRb0tUdGNibjFjYmlKZGZRPT0iLCIvKipcbiAqIEdlbmVyYXRlcyBzaW5nbGUgcmFuZG9tIGZsb2F0IGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGZsb2F0IGdlbmVyYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUZsb2F0KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiByYW5nZTtcbn1cbi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gaW50ZWdlciBmcm9tIDAgdG8gcmFuZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHJhbmdlIE1heCBnZW5lcmF0aW5nIHZhbHVlLlxuICogQHJldHVybiB7bnVtYmVyfSBBIHJhbmRvbSBpbnRlZ2VyIGdlbmVyYXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhbmRvbUludChyYW5nZSkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbUZsb2F0KHJhbmdlKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljbUZ1Wkc5dExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpY21GdVpHOXRMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQk96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4WFFVRlhMRU5CUVVNc1MwRkJZVHRKUVVOMlF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU03UVVGREwwSXNRMEZCUXp0QlFVVkVPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeFRRVUZUTEVOQlFVTXNTMEZCWVR0SlFVTnlReXhQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGVFTXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnWm14dllYUWdabkp2YlNBd0lIUnZJSEpoYm1kbExseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQnlZVzVuWlNCTllYZ2daMlZ1WlhKaGRHbHVaeUIyWVd4MVpTNWNiaUFxSUVCeVpYUjFjbTRnZTI1MWJXSmxjbjBnUVNCeVlXNWtiMjBnWm14dllYUWdaMlZ1WlhKaGRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtRnVaRzl0Um14dllYUW9jbUZ1WjJVNklHNTFiV0psY2lrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5KaGJtUnZiU2dwSUNvZ2NtRnVaMlU3WEc1OVhHNWNiaThxS2x4dUlDb2dSMlZ1WlhKaGRHVnpJSE5wYm1kc1pTQnlZVzVrYjIwZ2FXNTBaV2RsY2lCbWNtOXRJREFnZEc4Z2NtRnVaMlV1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhKaGJtZGxJRTFoZUNCblpXNWxjbUYwYVc1bklIWmhiSFZsTGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkJJSEpoYm1SdmJTQnBiblJsWjJWeUlHZGxibVZ5WVhSbFpDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKaGJtUnZiVWx1ZENoeVlXNW5aVG9nYm5WdFltVnlLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUUxaGRHZ3VabXh2YjNJb2NtRnVaRzl0Um14dllYUW9jbUZ1WjJVcEtUdGNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyByYW5kb21JbnQgfSBmcm9tICcuL3JhbmRvbSc7XG5leHBvcnQgY29uc3Qgc2ltaWxhcml0eU1ldHJpYyA9IHtcbiAgICAnVGFuaW1vdG8nOiB0YW5pbW90b1NpbWlsYXJpdHksXG4gICAgJ0RpY2UnOiBkaWNlU2ltaWxhcml0eSxcbiAgICAnQXN5bW1ldHJpYyc6IGFzeW1tZXRyaWNTaW1pbGFyaXR5LFxuICAgICdCcmF1bi1CbGFucXVldCc6IGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5LFxuICAgICdDb3NpbmUnOiBjb3NpbmVTaW1pbGFyaXR5LFxuICAgICdLdWxjenluc2tpJzoga3VsY3p5bnNraVNpbWlsYXJpdHksXG4gICAgJ01jLUNvbm5hdWdoZXknOiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5LFxuICAgICdSb2dvdC1Hb2xkYmVyZyc6IHJvZ290R29sZGJlcmdTaW1pbGFyaXR5LFxuICAgICdSdXNzZWwnOiBydXNzZWxTaW1pbGFyaXR5LFxuICAgICdTb2thbCc6IHNva2FsU2ltaWxhcml0eSxcbiAgICAnSGFtbWluZyc6IGhhbW1pbmdTaW1pbGFyaXR5LFxuICAgICdFdWNsaWRlYW4nOiBldWNsaWRlYW5TaW1pbGFyaXR5LFxufTtcbmV4cG9ydCBjb25zdCBkaXN0YW5jZU1ldHJpY3MgPSB7XG4gICAgJ1Rhbmltb3RvJzogdGFuaW1vdG9EaXN0YW5jZSxcbiAgICAnRGljZSc6IGRpY2VEaXN0YW5jZSxcbiAgICAnQXN5bW1ldHJpYyc6IGFzeW1tZXRyaWNEaXN0YW5jZSxcbiAgICAnQnJhdW4tQmxhbnF1ZXQnOiBicmF1bkJsYW5xdWV0RGlzdGFuY2UsXG4gICAgJ0Nvc2luZSc6IGNvc2luZURpc3RhbmNlLFxuICAgICdLdWxjenluc2tpJzoga3VsY3p5bnNraURpc3RhbmNlLFxuICAgICdNYy1Db25uYXVnaGV5JzogbWNDb25uYXVnaGV5RGlzdGFuY2UsXG4gICAgJ1JvZ290LUdvbGRiZXJnJzogcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlLFxuICAgICdSdXNzZWwnOiBydXNzZWxEaXN0YW5jZSxcbiAgICAnU29rYWwnOiBzb2thbERpc3RhbmNlLFxuICAgICdIYW1taW5nJzogaGFtbWluZ0Rpc3RhbmNlLFxuICAgICdFdWNsaWRlYW4nOiBldWNsaWRlYW5EaXN0YW5jZSxcbn07XG5leHBvcnQgY29uc3QgQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1MgPSBbJ1Rhbmltb3RvJywgJ0RpY2UnLCAnQ29zaW5lJywgJ0hhbW1pbmcnLCAnRXVjbGlkZWFuJ107XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKHRvdGFsIC0gY29tbW9uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eSh0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gMiAqIGNvbW1vbiAvIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGRpY2VEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoZGljZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBNYXRoLnNxcnQodG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNvc2luZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShjb3NpbmVTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5TaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXVjbGlkZWFuRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBNYXRoLnNxcnQoeC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCkgLSAyICogeC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoaGFtbWluZ0Rpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYW1taW5nRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gKDIgKiB0b3RhbCAtIDMgKiBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNva2FsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHNva2FsU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24ga3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsKSAvICgyICogdG90YWxQcm9kKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGt1bGN6eW5za2lTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IHRvdGFsUHJvZCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbFByb2QgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIChjb21tb24gKiB0b3RhbCAtIHRvdGFsUHJvZCkgLyB0b3RhbFByb2Q7XG59XG5leHBvcnQgZnVuY3Rpb24gbWNDb25uYXVnaGV5RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbih4LnRydWVDb3VudCgpLCB5LnRydWVDb3VudCgpKTtcbiAgICBpZiAobWluID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBtaW47XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShhc3ltbWV0cmljU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1heCA9IE1hdGgubWF4KHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtYXggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1heDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0RGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBydXNzZWxTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBpZiAoeC5sZW5ndGggPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIHgubGVuZ3RoO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShydXNzZWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIGNvbnN0IHRvdGFsID0geC5jb3VudEJpdHModHJ1ZSkgKyB5LmNvdW50Qml0cyh0cnVlKTtcbiAgICBjb25zdCBsZW4gPSB4Lmxlbmd0aDtcbiAgICBjb25zdCBkaWZmID0gbGVuIC0gdG90YWwgKyBjb21tb247XG4gICAgaWYgKChjb21tb24gPT0gbGVuKSB8fCAoZGlmZiA9PSBsZW4pKVxuICAgICAgICByZXR1cm4gMS4wO1xuICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIGNvbW1vbiAvIHRvdGFsICsgZGlmZiAvICgyICogbGVuIC0gdG90YWwpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkocm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2UpIHtcbiAgICByZXR1cm4gMSAvICgxICsgZGlzdGFuY2UpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc2ltaWxhcml0eSkge1xuICAgIHJldHVybiAxIC8gc2ltaWxhcml0eSAtIDE7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGl2ZXJzZVN1YnNldChsZW5ndGgsIG4sIGRpc3QpIHtcbiAgICBmdW5jdGlvbiBtYXhCeSh2YWx1ZXMsIG9yZGVyQnkpIHtcbiAgICAgICAgbGV0IG1heFZhbHVlID0gbnVsbDtcbiAgICAgICAgbGV0IG1heE9yZGVyQnkgPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50T3JkZXJCeSA9IG9yZGVyQnkoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAobWF4T3JkZXJCeSA9PSBudWxsIHx8IGVsZW1lbnRPcmRlckJ5ID4gbWF4T3JkZXJCeSkge1xuICAgICAgICAgICAgICAgIG1heFZhbHVlID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBtYXhPcmRlckJ5ID0gZWxlbWVudE9yZGVyQnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1heFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBzdWJzZXQgPSBbcmFuZG9tSW50KGxlbmd0aCAtIDEpXTtcbiAgICBjb25zdCBjb21wbGVtZW50ID0gbmV3IFNldCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKCFzdWJzZXQuaW5jbHVkZXMoaSkpXG4gICAgICAgICAgICBjb21wbGVtZW50LmFkZChpKTtcbiAgICB9XG4gICAgd2hpbGUgKHN1YnNldC5sZW5ndGggPCBuKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IG1heEJ5KGNvbXBsZW1lbnQudmFsdWVzKCksIChpKSA9PiBNYXRoLm1pbi5hcHBseShNYXRoLCBzdWJzZXQubWFwKGZ1bmN0aW9uICh2YWwsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZGlzdChpLCB2YWwpO1xuICAgICAgICB9KSkpO1xuICAgICAgICBpZiAoaWR4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMmx0YVd4aGNtbDBlUzF0WlhSeWFXTnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMybHRhV3hoY21sMGVTMXRaWFJ5YVdOekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVU5CTEU5QlFVOHNSVUZCUXl4VFFVRlRMRVZCUVVNc1RVRkJUU3hWUVVGVkxFTkJRVU03UVVGRmJrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1owSkJRV2RDTEVkQlFUSkVPMGxCUTNSR0xGVkJRVlVzUlVGQlJTeHJRa0ZCYTBJN1NVRkRPVUlzVFVGQlRTeEZRVUZGTEdOQlFXTTdTVUZEZEVJc1dVRkJXU3hGUVVGRkxHOUNRVUZ2UWp0SlFVTnNReXhuUWtGQlowSXNSVUZCUlN4MVFrRkJkVUk3U1VGRGVrTXNVVUZCVVN4RlFVRkZMR2RDUVVGblFqdEpRVU14UWl4WlFVRlpMRVZCUVVVc2IwSkJRVzlDTzBsQlEyeERMR1ZCUVdVc1JVRkJSU3h6UWtGQmMwSTdTVUZEZGtNc1owSkJRV2RDTEVWQlFVVXNkVUpCUVhWQ08wbEJRM3BETEZGQlFWRXNSVUZCUlN4blFrRkJaMEk3U1VGRE1VSXNUMEZCVHl4RlFVRkZMR1ZCUVdVN1NVRkRlRUlzVTBGQlV5eEZRVUZGTEdsQ1FVRnBRanRKUVVNMVFpeFhRVUZYTEVWQlFVVXNiVUpCUVcxQ08wTkJRMnBETEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1RVRkJUU3hsUVVGbExFZEJRVEpFTzBsQlEzSkdMRlZCUVZVc1JVRkJSU3huUWtGQlowSTdTVUZETlVJc1RVRkJUU3hGUVVGRkxGbEJRVms3U1VGRGNFSXNXVUZCV1N4RlFVRkZMR3RDUVVGclFqdEpRVU5vUXl4blFrRkJaMElzUlVGQlJTeHhRa0ZCY1VJN1NVRkRka01zVVVGQlVTeEZRVUZGTEdOQlFXTTdTVUZEZUVJc1dVRkJXU3hGUVVGRkxHdENRVUZyUWp0SlFVTm9ReXhsUVVGbExFVkJRVVVzYjBKQlFXOUNPMGxCUTNKRExHZENRVUZuUWl4RlFVRkZMSEZDUVVGeFFqdEpRVU4yUXl4UlFVRlJMRVZCUVVVc1kwRkJZenRKUVVONFFpeFBRVUZQTEVWQlFVVXNZVUZCWVR0SlFVTjBRaXhUUVVGVExFVkJRVVVzWlVGQlpUdEpRVU14UWl4WFFVRlhMRVZCUVVVc2FVSkJRV2xDTzBOQlF5OUNMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeDFRa0ZCZFVJc1IwRkJSeXhEUVVGRExGVkJRVlVzUlVGQlJTeE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRk5CUVZNc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEJRVVU1Uml4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVFVGQlRTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhKUVVGSkxFdEJRVXNzU1VGQlNTeERRVUZETzFGQlExb3NUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpORExFOUJRVThzVFVGQlRTeEhRVUZITEVOQlFVTXNTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRMjVETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRka1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU0zUkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnlSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRWxCUVVrc1MwRkJTeXhKUVVGSkxFTkJRVU03VVVGRFdpeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhEUVVGRExFZEJRVWNzVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXp0QlFVTTFRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEZsQlFWa3NRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOdVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNaRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1NVRkJTU3hMUVVGTExFbEJRVWtzUTBGQlF6dFJRVU5hTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wRkJRMjVETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1kwRkJZeXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzSkVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRNMFFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTXhSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRelZFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2FVSkJRV2xDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhIUVVGRExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNSaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdsQ1FVRnBRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzaEVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6RkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWlVGQlpTeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNSRUxFOUJRVThzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVkQlFVTXNRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRCUVVOMlJTeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR1ZCUVdVc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU4wUkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRelZETEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eEhRVUZITEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelF5eERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR0ZCUVdFc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU53UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU14UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHOUNRVUZ2UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRek5FTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTm9SQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETzFGQlEyaENMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXl4RFFVRkRPMEZCUXpWRExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZWtRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNdlJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSE5DUVVGelFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpkRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU5vUkN4SlFVRkpMRk5CUVZNc1NVRkJTU3hEUVVGRE8xRkJRMmhDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NSMEZCUnl4VFFVRlRMRU5CUVVNc1IwRkJSeXhUUVVGVExFTkJRVU03UVVGRGJFUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h2UWtGQmIwSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNelJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExITkNRVUZ6UWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYjBKQlFXOUNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE0wUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEYmtRc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5XTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZEZEVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHJRa0ZCYTBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU42UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXk5RUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZET1VRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTldMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4eFFrRkJjVUlzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTTFSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMSFZDUVVGMVFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhGTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRka1FzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNN1VVRkRaaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU16UWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnlSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRek5FTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNFUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF6dEpRVU55UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFZEJRVWNzUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXp0SlFVTnNReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF6dFJRVUZGTEU5QlFVOHNSMEZCUnl4RFFVRkRPenRSUVVNMVF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4TFFVRkxMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4TFFVRkxMRU5CUVVNc1EwRkJRenRCUVVONFJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSEZDUVVGeFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpWRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGJFVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3g1UWtGQmVVSXNRMEZCUXl4UlFVRm5RanRKUVVONFJDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkZMRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0zUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIbENRVUY1UWl4RFFVRkRMRlZCUVd0Q08wbEJRekZFTEU5QlFVOHNRMEZCUXl4SFFVRkhMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03UVVGRE5VSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4TlFVRmpMRVZCUVVVc1EwRkJVeXhGUVVGRkxFbEJRWGRETzBsQlEyeEhMRk5CUVZNc1MwRkJTeXhEUVVGRExFMUJRV2RETEVWQlFVVXNUMEZCT0VJN1VVRkROMFVzU1VGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNCQ0xFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjBRaXhMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEUxQlFVMHNSVUZCUlR0WlFVTTFRaXhOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRlRU1zU1VGQlNTeFZRVUZWTEVsQlFVa3NTVUZCU1N4SlFVRkpMR05CUVdNc1IwRkJSeXhWUVVGVkxFVkJRVVU3WjBKQlEzSkVMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU03WjBKQlEyNUNMRlZCUVZVc1IwRkJSeXhqUVVGakxFTkJRVU03WVVGRE4wSTdVMEZEUmp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSVGRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGNrSTdTVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEzaENMRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGRFppeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRTRRaXhGUVVNdlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlV5eEhRVUZITEVWQlFVVXNTMEZCU3p0WlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFBc1NVRkJTU3hIUVVGSExFbEJRVWtzU1VGQlNTeEZRVUZGTzFsQlEyWXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU5xUWl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFOQlEzaENPMHRCUTBZN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRUpwZEVGeWNtRjVJR1p5YjIwZ0p5NHZZbWwwTFdGeWNtRjVKenRjYm1sdGNHOXlkQ0I3Y21GdVpHOXRTVzUwZlNCbWNtOXRJQ2N1TDNKaGJtUnZiU2M3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUI3VzI1aGJXVTZJSE4wY21sdVoxMDZJQ2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BJRDArSUc1MWJXSmxjbjBnUFNCN1hHNGdJQ2RVWVc1cGJXOTBieWM2SUhSaGJtbHRiM1J2VTJsdGFXeGhjbWwwZVN4Y2JpQWdKMFJwWTJVbk9pQmthV05sVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMEZ6ZVcxdFpYUnlhV01uT2lCaGMzbHRiV1YwY21salUybHRhV3hoY21sMGVTeGNiaUFnSjBKeVlYVnVMVUpzWVc1eGRXVjBKem9nWW5KaGRXNUNiR0Z1Y1hWbGRGTnBiV2xzWVhKcGRIa3NYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZUYVcxcGJHRnlhWFI1TEZ4dUlDQW5TM1ZzWTNwNWJuTnJhU2M2SUd0MWJHTjZlVzV6YTJsVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuVFdNdFEyOXVibUYxWjJobGVTYzZJRzFqUTI5dWJtRjFaMmhsZVZOcGJXbHNZWEpwZEhrc1hHNGdJQ2RTYjJkdmRDMUhiMnhrWW1WeVp5YzZJSEp2WjI5MFIyOXNaR0psY21kVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuVW5WemMyVnNKem9nY25WemMyVnNVMmx0YVd4aGNtbDBlU3hjYmlBZ0oxTnZhMkZzSnpvZ2MyOXJZV3hUYVcxcGJHRnlhWFI1TEZ4dUlDQW5TR0Z0YldsdVp5YzZJR2hoYlcxcGJtZFRhVzFwYkdGeWFYUjVMRnh1SUNBblJYVmpiR2xrWldGdUp6b2daWFZqYkdsa1pXRnVVMmx0YVd4aGNtbDBlU3hjYm4wN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCa2FYTjBZVzVqWlUxbGRISnBZM002SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2tnUFQ0Z2JuVnRZbVZ5ZlNBOUlIdGNiaUFnSjFSaGJtbHRiM1J2SnpvZ2RHRnVhVzF2ZEc5RWFYTjBZVzVqWlN4Y2JpQWdKMFJwWTJVbk9pQmthV05sUkdsemRHRnVZMlVzWEc0Z0lDZEJjM2x0YldWMGNtbGpKem9nWVhONWJXMWxkSEpwWTBScGMzUmhibU5sTEZ4dUlDQW5RbkpoZFc0dFFteGhibkYxWlhRbk9pQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVzWEc0Z0lDZERiM05wYm1Vbk9pQmpiM05wYm1WRWFYTjBZVzVqWlN4Y2JpQWdKMHQxYkdONmVXNXphMmtuT2lCcmRXeGplbmx1YzJ0cFJHbHpkR0Z1WTJVc1hHNGdJQ2ROWXkxRGIyNXVZWFZuYUdWNUp6b2diV05EYjI1dVlYVm5hR1Y1UkdsemRHRnVZMlVzWEc0Z0lDZFNiMmR2ZEMxSGIyeGtZbVZ5WnljNklISnZaMjkwUjI5c1pHSmxjbWRFYVhOMFlXNWpaU3hjYmlBZ0oxSjFjM05sYkNjNklISjFjM05sYkVScGMzUmhibU5sTEZ4dUlDQW5VMjlyWVd3bk9pQnpiMnRoYkVScGMzUmhibU5sTEZ4dUlDQW5TR0Z0YldsdVp5YzZJR2hoYlcxcGJtZEVhWE4wWVc1alpTeGNiaUFnSjBWMVkyeHBaR1ZoYmljNklHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObExGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRU5JUlUxZlUwbE5TVXhCVWtsVVdWOU5SVlJTU1VOVElEMGdXeWRVWVc1cGJXOTBieWNzSUNkRWFXTmxKeXdnSjBOdmMybHVaU2NzSUNkSVlXMXRhVzVuSnl3Z0owVjFZMnhwWkdWaGJpZGRPMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEdGdWFXMXZkRzlUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR2xtSUNoMGIzUmhiQ0E5UFNBd0tWeHVJQ0FnSUhKbGRIVnliaUF4TGpBN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2gwYjNSaGJDQXRJR052YlcxdmJpazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMFlXNXBiVzkwYjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0hSaGJtbHRiM1J2VTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV05sVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLeUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3dnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUF5SUNvZ1kyOXRiVzl1SUM4Z2RHOTBZV3c3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmthV05sUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWkdsalpWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTI5emFXNWxVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5Qk5ZWFJvTG5OeGNuUW9kRzkwWVd3cE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTI5emFXNWxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJsZFdOc2FXUmxZVzVUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUlRhVzFwYkdGeWFYUjVSbkp2YlVScGMzUmhibU5sS0dWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQk5ZWFJvTG5OeGNuUW9lQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2tnTFNBeUtuZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCb1lXMXRhVzVuVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBVMmx0YVd4aGNtbDBlVVp5YjIxRWFYTjBZVzVqWlNob1lXMXRhVzVuUkdsemRHRnVZMlVvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FHRnRiV2x1WjBScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCNExuUnlkV1ZEYjNWdWRDZ3BJQ3NnZVM1MGNuVmxRMjkxYm5Rb0tTQXRJRElxZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdOdmJuTjBJR052YlcxdmJpQTlJSGd1WVc1a1YybDBhRU52ZFc1MFFtbDBjeWg1TENCMGNuVmxLVHRjYmlBZ2NtVjBkWEp1SUdOdmJXMXZiaUF2SUNneUlDb2dkRzkwWVd3Z0xTQXpJQ29nWTI5dGJXOXVLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlITnZhMkZzUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvYzI5cllXeFRhVzFwYkdGeWFYUjVLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUd0MWJHTjZlVzV6YTJsVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdOdmJuTjBJSFJ2ZEdGc1VISnZaQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLaUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3hRY205a0lEMDlJREFwWEc0Z0lDQWdjbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z0tHTnZiVzF2YmlBcUlIUnZkR0ZzS1NBdklDZ3lJQ29nZEc5MFlXeFFjbTlrS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxFYVhOMFlXNWpaU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2hyZFd4amVubHVjMnRwVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnRZME52Ym01aGRXZG9aWGxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBYRzRnSUNBZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnS0dOdmJXMXZiaUFxSUhSdmRHRnNJQzBnZEc5MFlXeFFjbTlrS1NBdklIUnZkR0ZzVUhKdlpEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUcxalEyOXVibUYxWjJobGVVUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTjViVzFsZEhKcFkxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdiV2x1SUQwZ1RXRjBhQzV0YVc0b2VDNTBjblZsUTI5MWJuUW9LU3dnZVM1MGNuVmxRMjkxYm5Rb0tTazdYRzRnSUdsbUlDaHRhVzRnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJ0YVc0N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJoYzNsdGJXVjBjbWxqUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXRjRJRDBnVFdGMGFDNXRZWGdvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodFlYZ2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QnRZWGc3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmljbUYxYmtKc1lXNXhkV1YwUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWW5KaGRXNUNiR0Z1Y1hWbGRGTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY25WemMyVnNVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCcFppQW9lQzVzWlc1bmRHZ2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QjRMbXhsYm1kMGFEdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhKMWMzTmxiRVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSEoxYzNObGJGTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1WTI5MWJuUkNhWFJ6S0hSeWRXVXBJQ3NnZVM1amIzVnVkRUpwZEhNb2RISjFaU2s3WEc0Z0lHTnZibk4wSUd4bGJpQTlJSGd1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0JrYVdabUlEMGdiR1Z1SUMwZ2RHOTBZV3dnS3lCamIyMXRiMjQ3WEc0Z0lHbG1JQ2dvWTI5dGJXOXVJRDA5SUd4bGJpa2dmSHdnS0dScFptWWdQVDBnYkdWdUtTa2djbVYwZFhKdUlERXVNRHRjYmlBZ1pXeHpaU0J5WlhSMWNtNGdZMjl0Ylc5dUlDOGdkRzkwWVd3Z0t5QmthV1ptSUM4Z0tESWdLaUJzWlc0Z0xTQjBiM1JoYkNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5YjJkdmRFZHZiR1JpWlhKblJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb2NtOW5iM1JIYjJ4a1ltVnlaMU5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBVMmx0YVd4aGNtbDBlVVp5YjIxRWFYTjBZVzVqWlNoa2FYTjBZVzVqWlRvZ2JuVnRZbVZ5S1NCN1hHNGdJSEpsZEhWeWJpQXhJQzhnS0NBeElDc2daR2x6ZEdGdVkyVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNoemFXMXBiR0Z5YVhSNU9pQnVkVzFpWlhJcElIdGNiaUFnY21WMGRYSnVJREVnTHlCemFXMXBiR0Z5YVhSNUlDMGdNVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxkRVJwZG1WeWMyVlRkV0p6WlhRb2JHVnVaM1JvT2lCdWRXMWlaWElzSUc0NklHNTFiV0psY2l3Z1pHbHpkRG9nS0dreE9pQnVkVzFpWlhJc0lHa3lPaUJ1ZFcxaVpYSXBJRDArSUc1MWJXSmxjaWtnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0SUNFOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhOMVluTmxkQzV3ZFhOb0tHbGtlQ2s3WEc0Z0lDQWdJQ0JqYjIxd2JHVnRaVzUwTG1SbGJHVjBaU2hwWkhncE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnYzNWaWMyVjBPMXh1ZlZ4dUlsMTkiLCIvKipcbiAqIERlbm90ZXMgYSB2ZWN0b3Igb2YgZmxvYXRpbmcgcG9pdCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvclxuICogQGV4dGVuZHMge0Zsb2F0MzJBcnJheX1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvciBleHRlbmRzIEZsb2F0MzJBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgYSB0d28tZGltZW5zaW9uYWwgbWF0cml4LlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBNYXRyaXhcbiAqIEBleHRlbmRzIHtBcnJheTxWZWN0b3I+fVxuICovXG5leHBvcnQgY2xhc3MgTWF0cml4IGV4dGVuZHMgQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGNhcnRlc2lhbiBjb29yZGluYXRlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29vcmRpbmF0ZXNcbiAqIEBleHRlbmRzIHtNYXRyaXh9XG4gKi9cbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlcyBleHRlbmRzIE1hdHJpeCB7XG59XG4vKipcbiAqIERlbm90ZXMgYW4gYXJyYXkgb2YgYXJiaXRyYXJ5LXR5cGVkIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFZlY3RvcnNcbiAqIEBleHRlbmRzIHtBcnJheTxhbnk+fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9ycyBleHRlbmRzIEFycmF5IHtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRIbHdaUzFrWldOc1lYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUowZVhCbExXUmxZMnhoY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxGbEJRVms3UTBGQlJ6dEJRVVV6UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEV0QlFXRTdRMEZCUnp0QlFVVTFRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNWMEZCV1N4VFFVRlJMRTFCUVUwN1EwRkJSenRCUVVVeFF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1QwRkJVU3hUUVVGUkxFdEJRVlU3UTBGQlJ5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFpsWTNSdmNpQnZaaUJtYkc5aGRHbHVaeUJ3YjJsMElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFZMnhoYzNNZ1ZtVmpkRzl5WEc0Z0tpQkFaWGgwWlc1a2N5QjdSbXh2WVhRek1rRnljbUY1ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZtVmpkRzl5SUdWNGRHVnVaSE1nUm14dllYUXpNa0Z5Y21GNUlIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0J0WVhSeWFYZ3VYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRTFoZEhKcGVGeHVJQ29nUUdWNGRHVnVaSE1nZTBGeWNtRjVQRlpsWTNSdmNqNTlYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOWVhSeWFYZ2daWGgwWlc1a2N5QkJjbkpoZVR4V1pXTjBiM0krSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmpZWEowWlhOcFlXNGdZMjl2Y21ScGJtRjBaWE11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUVOdmIzSmthVzVoZEdWelhHNGdLaUJBWlhoMFpXNWtjeUI3VFdGMGNtbDRmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUTI5dmNtUnBibUYwWlhNZ1pYaDBaVzVrY3lCTllYUnlhWGdnZTMxY2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRnVJR0Z5Y21GNUlHOW1JR0Z5WW1sMGNtRnllUzEwZVhCbFpDQjJaV04wYjNKekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJqYkdGemN5QldaV04wYjNKelhHNGdLaUJBWlhoMFpXNWtjeUI3UVhKeVlYazhZVzU1UG4xY2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklGWmxZM1J2Y25NZ1pYaDBaVzVrY3lCQmNuSmhlVHhoYm5rK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUdScFkzUnBiMjVoY25rZ1kyOXVkR0ZwYm1sdVp5Qm1kVzVqZEdsdmJpQnZjSFJwYjI1ekxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUIwZVhCbElFOXdkR2x2Ym5OY2JpQXFMMXh1Wlhod2IzSjBJSFI1Y0dVZ1QzQjBhVzl1Y3lBOUlIdGJibUZ0WlRvZ2MzUnlhVzVuWFRvZ1lXNTVmVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdOMWMzUnZiU0JrYVhOMFlXNWpaU0J0WlhSeWFXTWdZbVYwZDJWbGJpQjBhR1VnZEhkdklHZHBkbVZ1SUhabFkzUnZjbk11WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIUjVjR1VnUkdsemRHRnVZMlZOWlhSeWFXTmNiaUFxSUVCd1lYSmhiU0I3WVc1NWZTQjJNU0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubDlJSFl5SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5TGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQkVhWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aWE5sSUhSM2J5QjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnZEhsd1pTQkVhWE4wWVc1alpVMWxkSEpwWXlBOUlDaDJNVG9nWVc1NUxDQjJNam9nWVc1NUtTQTlQaUFvYm5WdFltVnlLVHRjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdFZ2MybHRjR3hsSUhOMGNtbHVaeUIwYnlCemRISnBibWNnWkdsamRHbHZibUZ5ZVM1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFkSGx3WlNCVGRISnBibWRFYVdOMGFXOXVZWEo1WEc0Z0tpOWNibVY0Y0c5eWRDQjBlWEJsSUZOMGNtbHVaMFJwWTNScGIyNWhjbmtnUFNCN1cydGxlVG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mVHRjYmlKZGZRPT0iLCJpbXBvcnQgeyBWZWN0b3IgfSBmcm9tICcuL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHJhbmRvbUZsb2F0LCByYW5kb21JbnQgfSBmcm9tICcuL3JhbmRvbSc7XG4vKipcbiAqIEFzc2VydHMgYSBjb25kaXRpb24gYnkgdGhyb3dpbmcgYW4gRXJyb3IuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtib29sZWFufSBbY29uZGl0aW9uPWZhbHNlXSBDb25kaXRpb24gdG8gYXNzZXJ0LlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlPSdBc3NlcnRpb24gZXJyb3IuJ10gTWVzc2FnZSB0byBvdXRwdXQuXG4gKiBAdGhyb3dzIHtFcnJvcn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24gPSBmYWxzZSwgbWVzc2FnZSA9ICdBc3NlcnRpb24gZXJyb3IuJykge1xuICAgIGlmICghY29uZGl0aW9uKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG59XG4vKipcbiAqIENyZWF0ZXMgbmV3IHR3by1kaW1lbnNpb25hbCBhcnJheSBhbmQgZmlsbHMgaXQgd2l0aCB0aGUgdmFsdWUgZ2l2ZW4uXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgY29vcmRpbmF0ZXMgKG51bWJlciBvZiByb3dzKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24yIFRoZSBzZWNvbmQgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIGNvbHVtbnMpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsPTBdIEEgdmFsdWUgdG8gZmlsbCB0aGUgY29vcmRpbmF0ZXMgd2l0aC5cbiAqIEByZXR1cm4ge0Nvb3JkaW5hdGVzfSBBIHR3by1kaW1lbnNpb25hbCBmaWxsZWQgd2l0aCB0aGUgdmFsdWUgZ2l2ZW4uXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZnVuY3Rpb24gaW5pdENvb3JkaW5hdGVzKGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIGZpbGwgPSAwKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShkaW1lbnNpb24xKS5maWxsKGZpbGwpLm1hcCgoKSA9PiAobmV3IFZlY3RvcihkaW1lbnNpb24yKS5maWxsKGZpbGwpKSk7XG59XG4vKipcbiAqIFRyYW5zcG9zZSBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtNYXRyaXh9IG1hdHJpeCBUaGUgbWF0cml4IHRvIGJlIHRyYW5zcG9zZWQuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IFRyYW5zcG9zZWQgbWF0cml4LlxuICogQHRvZG8gTWlnaHQgYmUgc2xvdyBzaW5jZSB1c2VkIEFycmF5Lm1hcC4gUHJvYmFibHkgbmVlZHMgcGVyZm9ybWFuY2UgcmV2aXNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc3Bvc2VNYXRyaXgobWF0cml4KSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheShtYXRyaXhbMF0ubGVuZ3RoKS5maWxsKDApXG4gICAgICAgIC5tYXAoKF8sIGkpID0+IChuZXcgVmVjdG9yKG1hdHJpeC5sZW5ndGgpLmZpbGwoMCkubWFwKChfLCBqKSA9PiAobWF0cml4W2pdW2ldKSkpKTtcbn1cbi8qKlxuICogQWRkcyB0d28gdmVjdG9ycyB3aXRoIHRoZSBzZWNvbmQgb25lIHRvIGJlIG11bHRpcGxpZWQgYnkgdGhlIGdpdmVuIHJhdGlvLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yfSBwIFRoZSBmaXJzdCB2ZWN0b3IgdG8gYWRkLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IgdG8gYWRkLlxuICogQHBhcmFtIHtudW1iZXJ9IFttdWx0aXBsaWVyPTFdIEEgbXVsdGlwbGllciB0byBiZSB1c2VkIGJlZm9yZSB0aGUgc2Vjb25kIHZlY3RvciBpcyBhZGRlZC5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gTmV3IHZlY3RvciBjb250YWluZWQgdGhlIHJlc3VsdCBvZiBvcGVyYXRpb24gcCttdWx0aXBsaWVyKnEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JBZGQocCwgcSwgbXVsdGlwbGllciA9IDEpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBwLmxlbmd0aDtcbiAgICBhc3NlcnQobkl0ZW1zID09IHEubGVuZ3RoLCAnVmVjdG9yIGxlbmd0aHMgZG8gbm90IG1hdGNoLicpO1xuICAgIGNvbnN0IHRvdGFsID0gbmV3IFZlY3RvcihuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcC5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWxbaV0gPSBwW2ldICsgbXVsdGlwbGllciAqIHFbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdW1zIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIGJlIHN1bW1lZC5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHZlY3RvcidzIGl0ZW1zIHN1bS5cbiAqL1xuZnVuY3Rpb24gaXRlbXNTdW0odikge1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbCArPSB2W2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbi8qKlxuICogU3VxYXJlcyB0aGUgdmVjdG9yJ3MgaXRlbXMuXG4gKlxuICogQHBhcmFtIHtWZWN0b3J9IHYgVGhlIHZlY3RvciB0byBzcXVhcmUuXG4gKiBAcmV0dXJuIHtWZWN0b3J9IEEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBvcmlnaW5hbCdzIGl0ZW1zIHNxdWFyZWQuXG4gKi9cbmZ1bmN0aW9uIHZlY3RvclNxdWFyZSh2KSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gdi5sZW5ndGg7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHZbaV0gKiB2W2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JMZW5ndGgodikge1xuICAgIGxldCBzcXJTdW0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKylcbiAgICAgICAgc3FyU3VtICs9IHZbaV0gKiB2W2ldO1xuICAgIHJldHVybiBNYXRoLnNxcnQoc3FyU3VtKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB2ZWN0b3JEb3RQcm9kdWN0KHYxLCB2Mikge1xuICAgIGlmICh2MS5sZW5ndGggIT0gdjIubGVuZ3RoKVxuICAgICAgICB0aHJvdyBFcnJvcignVGhlIGRpbWVuc2lvbmFsaXR5IG9mIHRoZSB2ZWN0b3JzIG11c3QgbWF0Y2gnKTtcbiAgICBsZXQgcHJvZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2MS5sZW5ndGg7IGkrKylcbiAgICAgICAgcHJvZCArPSB2MVtpXSAqIHYyW2ldO1xuICAgIHJldHVybiBwcm9kO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgbWF0cml4IGZpbGxlZCB3aXRoIHJhbmRvbSBmbG9hdGluZyBwb2ludCB2YWx1ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjEgVGhlIGZpcnN0IGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIG1hdHJpeC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2NhbGU9MS5dIE1heCB2YWx1ZSBnaXZlbiBieSByYW5kb20gZ2VuZXJhdG9yLlxuICogQHJldHVybiB7TWF0cml4fSBBIG5ldyBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50ICB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxsUmFuZG9tTWF0cml4KGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIsIHNjYWxlID0gMS4pIHtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW1lbnNpb24xOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkaW1lbnNpb24yOyArK2opXG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSByYW5kb21GbG9hdChzY2FsZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKipcbiAqIENhbGN1bGF0ZXMgRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gdHdvIHZlY3RvcnMuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3Rvci5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yLlxuICogQHJldHVybiB7bnVtYmVyfSBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0aGUgZ2l2ZW4gdmVjdG9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlKHAsIHEpIHtcbiAgICBjb25zdCBkaWZmID0gdmVjdG9yQWRkKHAsIHEsIC0xKTtcbiAgICBjb25zdCBzcWRpZmYgPSB2ZWN0b3JTcXVhcmUoZGlmZik7XG4gICAgY29uc3Qgc3FkaWZmU3VtbSA9IGl0ZW1zU3VtKHNxZGlmZik7XG4gICAgcmV0dXJuIE1hdGguc3FydChzcWRpZmZTdW1tKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIGRpc3RhbmNlIG1hdHJpeCB1c2luZyBhIGN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3RvcnN9IGRhdGEgSW5wdXQgdmVjdG9ycyB0byBjYWxjdWxhdGUgZGlzdGFuY2VzLlxuICogQHBhcmFtIHtEaXN0YW5jZU1ldHJpY30gZGlzdGFuY2UgQ3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICogQHJldHVybiB7TWF0cml4fSBDYWxjdWxhdGVkIGN1c3RvbSBkaXN0YW5jZSBtYXRyaXguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjRGlzdGFuY2VNYXRyaXgoZGF0YSwgZGlzdGFuY2UpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBkYXRhLmxlbmd0aDtcbiAgICBjb25zdCBtYXRyaXggPSBpbml0Q29vcmRpbmF0ZXMobkl0ZW1zLCBuSXRlbXMsIDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbkl0ZW1zOyArK2opIHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSAoZGF0YVtpXSA9PSBudWxsKSB8fCAoZGF0YVtqXSA9PSBudWxsKSA/IDAgOiBkaXN0YW5jZShkYXRhW2ldLCBkYXRhW2pdKTtcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IG1hdHJpeFtqXVtpXSA9IGQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKiBHZW5lcmF0ZXMgYXJyYXkgZnJvbSBhIHJhbmdlIFtiZWdpbjsgZW5kXSBvciBbYmVnaW47IGVuZCkgaWYgZW5kRXhjbHVzaXZlLiAqKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5SYW5nZShiZWdpbiwgZW5kLCBlbmRFeGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGVuZCAtIGJlZ2luICsgKGVuZEV4Y2x1c2l2ZSA/IDAgOiAxKTtcbiAgICBjb25zdCBzZXJpZXMgPSBuZXcgSW50MzJBcnJheShuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpXG4gICAgICAgIHNlcmllc1tpXSA9IGJlZ2luICsgaTtcbiAgICByZXR1cm4gc2VyaWVzO1xufVxuLyoqXG4gKiBSZXR1cm5zIG9yZGVyIG9mIHZhbHVlcyBhcyBpZiB0aGV5IGFyZSBzb3J0ZWQuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHthbnlbXX0gdmFsdWVzIElucHV0IGFycmF5LlxuICogQHBhcmFtIHtib29sZWFufSBbcmV2ZXJzZT1mYWxzZV0gV2hldGhlciB0byByZXR1cm4gcmV2ZXJzZWQgb3JkZXIuXG4gKiBAcmV0dXJuIHtudW1iZXJbXX0gVGhlIG9yZGVyIGNvbXB1dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJnU29ydCh2YWx1ZXMsIHJldmVyc2UgPSBmYWxzZSkge1xuICAgIGNvbnN0IHNvcnRmbiA9IHJldmVyc2UgPyAoYSwgYikgPT4gKGJbMF0gLSBhWzBdKSA6IChhLCBiKSA9PiAoYVswXSAtIGJbMF0pO1xuICAgIGNvbnN0IGRlY29yID0gKHYsIGkpID0+IFt2LCBpXTsgLy8gc2V0IGluZGV4IHRvIHZhbHVlXG4gICAgY29uc3QgdW5kZWNvciA9IChhKSA9PiBhWzFdOyAvLyBsZWF2ZSBvbmx5IGluZGV4XG4gICAgY29uc3QgX2FyZ3NvcnQgPSAoYXJyKSA9PiBhcnIubWFwKGRlY29yKS5zb3J0KHNvcnRmbikubWFwKHVuZGVjb3IpO1xuICAgIHJldHVybiBfYXJnc29ydCh2YWx1ZXMpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHRoZSBpbmRleGVzIG9mIHRoZSBtb3N0IGRpdmVyc2Ugb2JqZWN0cyBhY2NvcmRpbmcgdG8gdGhlIGRpc3QgZnVuY3Rpb25cbiAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggdG90YWwgbnVtYmVyIG9mIG9iamVjdHNcbiAqIEBwYXJhbSB7bnVtYmVyfSBuIG51bWJlciBvZiBkaXZlcnNlIGVsZW1lbnRzIHRvIGZpbmRcbiAqIEBwYXJhbSB7KGkxOiBudW1iZXIsIGkyOiBudW1iZXIpID0+IG51bWJlcn0gZGlzdCBhIGZ1bmN0aW9uIHdoaWNoIGNhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR3byBvYmplY3RzIHVzaW5nIHRoZWlyIGluZGV4ZXNcbiAqIEByZXR1cm5zIHtudW1iZXJbXX0gVGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHgpIHtcbiAgICAgICAgICAgIHN1YnNldC5wdXNoKGlkeCk7XG4gICAgICAgICAgICBjb21wbGVtZW50LmRlbGV0ZShpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzdWJzZXQ7XG59XG4vKipcbiAqIFJldHVybnMgbm9ybWFsaXplZCB2ZWN0b3JcbiAqIEBwYXJhbSB7VmVjdG9yfSBkYXRhIG51bWVyaWNhbCBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplKGRhdGEpIHtcbiAgICBsZXQgbWVhbiA9IDA7XG4gICAgbGV0IHN0ZCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBtZWFuICs9IGRhdGFbaV07XG4gICAgbWVhbiAvPSBkYXRhLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIHN0ZCArPSAoZGF0YVtpXSAtIG1lYW4pICogKGRhdGFbaV0gLSBtZWFuKTtcbiAgICBzdGQgPSBNYXRoLnNxcnQoc3RkIC8gZGF0YS5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgZGF0YVtpXSA9IChkYXRhW2ldIC0gbWVhbikgLyBzdGQ7XG4gICAgcmV0dXJuIGRhdGE7XG59XG4vKipcbiAqIEZpbmRzIHNldCBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGxpc3RzLlxuICogQHBhcmFtIHthbnlbXX0gYSBUaGUgZmlyc3QgbGlzdC5cbiAqIEBwYXJhbSB7YW55W119IGIgVGhlIHNlY29uZCBsaXN0LlxuICogQHJldHVybiB7YW55W119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaWZmZXJlbmNlKGEsIGIpIHtcbiAgICBjb25zdCBiU2V0ID0gbmV3IFNldChiKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGEuZmlsdGVyKCh4KSA9PiAhYlNldC5oYXMoeCkpKS52YWx1ZXMoKSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMlpXTjBiM0l0YjNCbGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRVk1zVFVGQlRTeEZRVUYxUXl4TlFVRk5MSEZDUVVGeFFpeERRVUZETzBGQlEzcEdMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzVTBGQlV5eEZRVUZETEUxQlFVMHNWVUZCVlN4RFFVRkRPMEZCUldoRU96czdPenM3TzBkQlQwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1RVRkJUU3hEUVVGRExGbEJRWEZDTEV0QlFVc3NSVUZCUlN4VlFVRnJRaXhyUWtGQmEwSTdTVUZEY2tZc1NVRkJTU3hEUVVGRExGTkJRVk03VVVGRFdpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wRkJRemRDTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEZOQlFWTXNaVUZCWlN4RFFVRkRMRlZCUVd0Q0xFVkJRVVVzVlVGQmEwSXNSVUZCUlN4UFFVRmxMRU5CUVVNN1NVRkRMMFVzVDBGQlR5eEpRVUZKTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hsUVVGbExFTkJRVU1zVFVGQll6dEpRVU0xUXl4UFFVRlBMRWxCUVVrc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzWkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTNSR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFRRVUZUTEVOQlFVTXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hoUVVGeFFpeERRVUZETzBsQlEzQkZMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGZUVJc1RVRkJUU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRGhDUVVFNFFpeERRVUZETEVOQlFVTTdTVUZGTTBRc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZha01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVlVGQlZTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWMFF5eFBRVUZQTEV0QlFVc3NRMEZCUXp0QlFVTm1MRU5CUVVNN1FVRkZSRHM3T3pzN1IwRkxSenRCUVVOSUxGTkJRVk1zVVVGQlVTeERRVUZETEVOQlFWTTdTVUZEZWtJc1NVRkJTU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJXUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmFFSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRE8wRkJSVVE3T3pzN08wZEJTMGM3UVVGRFNDeFRRVUZUTEZsQlFWa3NRMEZCUXl4RFFVRlRPMGxCUXpkQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRlRUlzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSWHBDTEU5QlFVOHNTMEZCU3l4RFFVRkRPMEZCUTJZc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlFVTXNRMEZCVXp0SlFVTndReXhKUVVGSkxFMUJRVTBzUjBGQlZ5eERRVUZETEVOQlFVTTdTVUZEZGtJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlZ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFGQlEzWkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRVZCUVZVc1JVRkJSU3hGUVVGVk8wbEJRM0pFTEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRUdFJRVU40UWl4TlFVRk5MRXRCUVVzc1EwRkJReXc0UTBGQk9FTXNRMEZCUXl4RFFVRkRPMGxCUXpsRUxFbEJRVWtzU1VGQlNTeEhRVUZYTEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZYTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZEZUVNc1NVRkJTU3hKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVFSXNUMEZCVHl4SlFVRkpMRU5CUVVNN1FVRkRaQ3hEUVVGRE8wRkJSVVE3T3pzN096czdPMGRCVVVjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1ZVRkJhMElzUlVGQlJTeFZRVUZyUWl4RlFVRkZMRkZCUVdkQ0xFVkJRVVU3U1VGRGVrWXNUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hEUVVGRExGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0SlFVVjJSQ3hMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFGQlEyNURMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRMnBETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1MwRkRja003U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3d3UWtGQk1FSXNRMEZCUXl4RFFVRlRMRVZCUVVVc1EwRkJVenRKUVVNM1JDeE5RVUZOTEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOc1F5eE5RVUZOTEZWQlFWVXNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGNFTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzBGQlF5OUNMRU5CUVVNN1FVRkZSRHM3T3pzN096dEhRVTlITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR3RDUVVGclFpeERRVUZETEVsQlFXRXNSVUZCUlN4UlFVRjNRanRKUVVONFJTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUld4RUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZETDBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYmtNc1RVRkJUU3hEUVVGRExFZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14Uml4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0VFFVTnFRenRMUVVOR08wbEJRMFFzVDBGQlR5eE5RVUZOTEVOQlFVTTdRVUZEYUVJc1EwRkJRenRCUVVWRUxHdEdRVUZyUmp0QlFVTnNSaXhOUVVGTkxGVkJRVlVzVVVGQlVTeERRVUZETEV0QlFXRXNSVUZCUlN4SFFVRlhMRVZCUVVVc1dVRkJXU3hIUVVGSExFdEJRVXM3U1VGRGRrVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1IwRkJSeXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTndSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVWMFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVWNFFpeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hQUVVGUExFTkJRVU1zVFVGQllTeEZRVUZGTEU5QlFVOHNSMEZCUnl4TFFVRkxPMGxCUTNCRUxFMUJRVTBzVFVGQlRTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGUkxFVkJRVVVzUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUnl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVTBzUlVGQlJTeERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNjVUpCUVhGQ08wbEJRMnhGTEUxQlFVMHNUMEZCVHl4SFFVRkhMRU5CUVVNc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh0UWtGQmJVSTdTVUZEZGtRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUTBGQlF5eEhRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXhSU3hQUVVGUExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRE8wRkJSVVE3T3pzN096czdSMEZQUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4TlFVRmpMRVZCUVVVc1EwRkJVeXhGUVVGRkxFbEJRWGRETzBsQlEyeEhMRk5CUVZNc1MwRkJTeXhEUVVGRExFMUJRV2RETEVWQlFVVXNUMEZCT0VJN1VVRkROMFVzU1VGQlNTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNCQ0xFbEJRVWtzVlVGQlZTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjBRaXhMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEUxQlFVMHNSVUZCUlR0WlFVTTFRaXhOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkRlRU1zU1VGQlNTeFZRVUZWTEVsQlFVa3NTVUZCU1N4SlFVRkpMR05CUVdNc1IwRkJSeXhWUVVGVkxFVkJRVVU3WjBKQlEzSkVMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU03WjBKQlEyNUNMRlZCUVZVc1IwRkJSeXhqUVVGakxFTkJRVU03WVVGRE4wSTdVMEZEUmp0UlFVTkVMRTlCUVU4c1VVRkJVU3hEUVVGRE8wbEJRMnhDTEVOQlFVTTdTVUZGUkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8wbEJSVGRDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0pDTEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGNrSTdTVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzFGQlEzaENMRTFCUVUwc1IwRkJSeXhIUVVGSExFdEJRVXNzUTBGRFppeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRTRRaXhGUVVNdlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlV5eEhRVUZITEVWQlFVVXNTMEZCU3p0WlFVTjRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRkRUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFBc1NVRkJTU3hIUVVGSExFVkJRVVU3V1VGRFVDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnBDTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VTBGRGVFSTdTMEZEUmp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wRkJRMmhDTEVOQlFVTTdRVUZGUkRzN08wZEJSMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNVMEZCVXl4RFFVRkRMRWxCUVZrN1NVRkRjRU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJJc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlJWb3NTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnhETEVsQlFVa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmJFSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRmNFSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJRMnhETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVVTNReXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlJXNURMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU5zUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzBsQlJXNURMRTlCUVU4c1NVRkJTU3hEUVVGRE8wRkJRMlFzUTBGQlF6dEJRVVZFT3pzN096dEhRVXRITzBGQlEwZ3NUVUZCVFN4VlFVRlZMR0ZCUVdFc1EwRkJReXhEUVVGUkxFVkJRVVVzUTBGQlVUdEpRVU01UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRRaXhQUVVGUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzSkZMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UwMWhkSEpwZUN3Z1ZtVmpkRzl5TENCRGIyOXlaR2x1WVhSbGN5d2dWbVZqZEc5eWN5d2dSR2x6ZEdGdVkyVk5aWFJ5YVdOOUlHWnliMjBnSnk0dmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdHlZVzVrYjIxR2JHOWhkQ3dnY21GdVpHOXRTVzUwZlNCbWNtOXRJQ2N1TDNKaGJtUnZiU2M3WEc1Y2JpOHFLbHh1SUNvZ1FYTnpaWEowY3lCaElHTnZibVJwZEdsdmJpQmllU0IwYUhKdmQybHVaeUJoYmlCRmNuSnZjaTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0amIyNWthWFJwYjI0OVptRnNjMlZkSUVOdmJtUnBkR2x2YmlCMGJ5QmhjM05sY25RdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMjFsYzNOaFoyVTlKMEZ6YzJWeWRHbHZiaUJsY25KdmNpNG5YU0JOWlhOellXZGxJSFJ2SUc5MWRIQjFkQzVjYmlBcUlFQjBhSEp2ZDNNZ2UwVnljbTl5ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE56WlhKMEtHTnZibVJwZEdsdmJqb2dZbTl2YkdWaGJpQTlJR1poYkhObExDQnRaWE56WVdkbE9pQnpkSEpwYm1jZ1BTQW5RWE56WlhKMGFXOXVJR1Z5Y205eUxpY3BJSHRjYmlBZ2FXWWdLQ0ZqYjI1a2FYUnBiMjRwWEc0Z0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nYm1WM0lIUjNieTFrYVcxbGJuTnBiMjVoYkNCaGNuSmhlU0JoYm1RZ1ptbHNiSE1nYVhRZ2QybDBhQ0IwYUdVZ2RtRnNkV1VnWjJsMlpXNHVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHUnBiV1Z1YzJsdmJqRWdWR2hsSUdacGNuTjBJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdZMjl2Y21ScGJtRjBaWE1nS0c1MWJXSmxjaUJ2WmlCeWIzZHpLUzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCa2FXMWxibk5wYjI0eUlGUm9aU0J6WldOdmJtUWdaR2x0Wlc1emFXOXVJRzltSUhSb1pTQmpiMjl5WkdsdVlYUmxjeUFvYm5WdFltVnlJRzltSUdOdmJIVnRibk1wTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdG1hV3hzUFRCZElFRWdkbUZzZFdVZ2RHOGdabWxzYkNCMGFHVWdZMjl2Y21ScGJtRjBaWE1nZDJsMGFDNWNiaUFxSUVCeVpYUjFjbTRnZTBOdmIzSmthVzVoZEdWemZTQkJJSFIzYnkxa2FXMWxibk5wYjI1aGJDQm1hV3hzWldRZ2QybDBhQ0IwYUdVZ2RtRnNkV1VnWjJsMlpXNHVYRzRnS2lCQWRHOWtieUJOYVdkb2RDQmlaU0J6Ykc5M0lITnBibU5sSUhWelpXUWdRWEp5WVhrdWJXRndMaUJRY205aVlXSnNlU0J1WldWa2N5QndaWEptYjNKdFlXNWpaU0J5WlhacGMybHZiaTVjYmlBcUwxeHVablZ1WTNScGIyNGdhVzVwZEVOdmIzSmthVzVoZEdWektHUnBiV1Z1YzJsdmJqRTZJRzUxYldKbGNpd2daR2x0Wlc1emFXOXVNam9nYm5WdFltVnlMQ0JtYVd4c09pQnVkVzFpWlhJZ1BTQXdLVG9nUTI5dmNtUnBibUYwWlhNZ2UxeHVJQ0J5WlhSMWNtNGdibVYzSUVGeWNtRjVLR1JwYldWdWMybHZiakVwTG1acGJHd29abWxzYkNrdWJXRndLQ2dwSUQwK0lDaHVaWGNnVm1WamRHOXlLR1JwYldWdWMybHZiaklwTG1acGJHd29abWxzYkNrcEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCVWNtRnVjM0J2YzJVZ2JXRjBjbWw0TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1RXRjBjbWw0ZlNCdFlYUnlhWGdnVkdobElHMWhkSEpwZUNCMGJ5QmlaU0IwY21GdWMzQnZjMlZrTGx4dUlDb2dRSEpsZEhWeWJpQjdUV0YwY21sNGZTQlVjbUZ1YzNCdmMyVmtJRzFoZEhKcGVDNWNiaUFxSUVCMGIyUnZJRTFwWjJoMElHSmxJSE5zYjNjZ2MybHVZMlVnZFhObFpDQkJjbkpoZVM1dFlYQXVJRkJ5YjJKaFlteDVJRzVsWldSeklIQmxjbVp2Y20xaGJtTmxJSEpsZG1semFXOXVMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RISmhibk53YjNObFRXRjBjbWw0S0cxaGRISnBlRG9nVFdGMGNtbDRLVG9nVFdGMGNtbDRJSHRjYmlBZ2NtVjBkWEp1SUc1bGR5QkJjbkpoZVNodFlYUnlhWGhiTUYwdWJHVnVaM1JvS1M1bWFXeHNLREFwWEc0Z0lDQWdMbTFoY0Nnb1h5d2dhU2tnUFQ0Z0tHNWxkeUJXWldOMGIzSW9iV0YwY21sNExteGxibWQwYUNrdVptbHNiQ2d3S1M1dFlYQW9LRjhzSUdvcElEMCtJQ2h0WVhSeWFYaGJhbDFiYVYwcEtTa3BPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFRmtaSE1nZEhkdklIWmxZM1J2Y25NZ2QybDBhQ0IwYUdVZ2MyVmpiMjVrSUc5dVpTQjBieUJpWlNCdGRXeDBhWEJzYVdWa0lHSjVJSFJvWlNCbmFYWmxiaUJ5WVhScGJ5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdjQ0JVYUdVZ1ptbHljM1FnZG1WamRHOXlJSFJ2SUdGa1pDNWNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0J4SUZSb1pTQnpaV052Ym1RZ2RtVmpkRzl5SUhSdklHRmtaQzVjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCYmJYVnNkR2x3YkdsbGNqMHhYU0JCSUcxMWJIUnBjR3hwWlhJZ2RHOGdZbVVnZFhObFpDQmlaV1p2Y21VZ2RHaGxJSE5sWTI5dVpDQjJaV04wYjNJZ2FYTWdZV1JrWldRdVhHNGdLaUJBY21WMGRYSnVJSHRXWldOMGIzSjlJRTVsZHlCMlpXTjBiM0lnWTI5dWRHRnBibVZrSUhSb1pTQnlaWE4xYkhRZ2IyWWdiM0JsY21GMGFXOXVJSEFyYlhWc2RHbHdiR2xsY2lweExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZG1WamRHOXlRV1JrS0hBNklGWmxZM1J2Y2l3Z2NUb2dWbVZqZEc5eUxDQnRkV3gwYVhCc2FXVnlPaUJ1ZFcxaVpYSWdQU0F4S1RvZ1ZtVmpkRzl5SUh0Y2JpQWdZMjl1YzNRZ2JrbDBaVzF6SUQwZ2NDNXNaVzVuZEdnN1hHNWNiaUFnWVhOelpYSjBLRzVKZEdWdGN5QTlQU0J4TG14bGJtZDBhQ3dnSjFabFkzUnZjaUJzWlc1bmRHaHpJR1J2SUc1dmRDQnRZWFJqYUM0bktUdGNibHh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJRzVsZHlCV1pXTjBiM0lvYmtsMFpXMXpLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSEF1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnZEc5MFlXeGJhVjBnUFNCd1cybGRJQ3NnYlhWc2RHbHdiR2xsY2lBcUlIRmJhVjA3WEc1Y2JpQWdjbVYwZFhKdUlIUnZkR0ZzTzF4dWZWeHVYRzR2S2lwY2JpQXFJRk4xYlhNZ2RHaGxJSFpsWTNSdmNpZHpJR2wwWlcxekxseHVJQ3BjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5ZlNCMklGUm9aU0IyWldOMGIzSWdkRzhnWW1VZ2MzVnRiV1ZrTGx4dUlDb2dRSEpsZEhWeWJpQjdiblZ0WW1WeWZTQlVhR1VnZG1WamRHOXlKM01nYVhSbGJYTWdjM1Z0TGx4dUlDb3ZYRzVtZFc1amRHbHZiaUJwZEdWdGMxTjFiU2gyT2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnNaWFFnZEc5MFlXd2dQU0F3TzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZGk1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCMGIzUmhiQ0FyUFNCMlcybGRPMXh1WEc0Z0lISmxkSFZ5YmlCMGIzUmhiRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlRkWEZoY21WeklIUm9aU0IyWldOMGIzSW5jeUJwZEdWdGN5NWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2RpQlVhR1VnZG1WamRHOXlJSFJ2SUhOeGRXRnlaUzVjYmlBcUlFQnlaWFIxY200Z2UxWmxZM1J2Y24wZ1FTQnVaWGNnZG1WamRHOXlJR052Ym5SaGFXNXBibWNnZEdobElHOXlhV2RwYm1Gc0ozTWdhWFJsYlhNZ2MzRjFZWEpsWkM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnZG1WamRHOXlVM0YxWVhKbEtIWTZJRlpsWTNSdmNpazZJRlpsWTNSdmNpQjdYRzRnSUdOdmJuTjBJRzVKZEdWdGN5QTlJSFl1YkdWdVozUm9PMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJRzVsZHlCV1pXTjBiM0lvYmtsMFpXMXpLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFl1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnZEc5MFlXeGJhVjBnUFNCMlcybGRJQ29nZGx0cFhUdGNibHh1SUNCeVpYUjFjbTRnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMlpXTjBiM0pNWlc1bmRHZ29kam9nVm1WamRHOXlLVG9nYm5WdFltVnlJSHRjYmlBZ2JHVjBJSE54Y2xOMWJUb2diblZ0WW1WeUlEMGdNRHRjYmlBZ1ptOXlJQ2hzWlhRZ2FUb2diblZ0WW1WeUlEMGdNRHNnYVNBOElIWXViR1Z1WjNSb095QnBLeXNwWEc0Z0lDQWdjM0Z5VTNWdElDczlJSFpiYVYwZ0tpQjJXMmxkTzF4dUlDQnlaWFIxY200Z1RXRjBhQzV6Y1hKMEtITnhjbE4xYlNrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSkViM1JRY205a2RXTjBLSFl4T2lCV1pXTjBiM0lzSUhZeU9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JwWmlBb2RqRXViR1Z1WjNSb0lDRTlJSFl5TG14bGJtZDBhQ2xjYmlBZ0lDQjBhSEp2ZHlCRmNuSnZjaWduVkdobElHUnBiV1Z1YzJsdmJtRnNhWFI1SUc5bUlIUm9aU0IyWldOMGIzSnpJRzExYzNRZ2JXRjBZMmduS1R0Y2JpQWdiR1YwSUhCeWIyUTZJRzUxYldKbGNpQTlJREE3WEc0Z0lHWnZjaUFvYkdWMElHazZJRzUxYldKbGNpQTlJREE3SUdrZ1BDQjJNUzVzWlc1bmRHZzdJR2tyS3lsY2JpQWdJQ0J3Y205a0lDczlJSFl4VzJsZElDb2dkakpiYVYwN1hHNGdJSEpsZEhWeWJpQndjbTlrTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdZU0J0WVhSeWFYZ2dabWxzYkdWa0lIZHBkR2dnY21GdVpHOXRJR1pzYjJGMGFXNW5JSEJ2YVc1MElIWmhiSFZsY3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1TQlVhR1VnWm1seWMzUWdaR2x0Wlc1emFXOXVJRzltSUhSb1pTQnRZWFJ5YVhndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNaUJVYUdVZ2MyVmpiMjVrSUdScGJXVnVjMmx2YmlCdlppQjBhR1VnYldGMGNtbDRMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0elkyRnNaVDB4TGwwZ1RXRjRJSFpoYkhWbElHZHBkbVZ1SUdKNUlISmhibVJ2YlNCblpXNWxjbUYwYjNJdVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRUVnYm1WM0lHMWhkSEpwZUNCbWFXeHNaV1FnZDJsMGFDQnlZVzVrYjIwZ1pteHZZWFJwYm1jZ2NHOXBiblFnSUhaaGJIVmxjeTVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHWnBiR3hTWVc1a2IyMU5ZWFJ5YVhnb1pHbHRaVzV6YVc5dU1Ub2diblZ0WW1WeUxDQmthVzFsYm5OcGIyNHlPaUJ1ZFcxaVpYSXNJSE5qWVd4bE9pQnVkVzFpWlhJZ1BTQXhMaWs2SUUxaGRISnBlQ0I3WEc0Z0lHTnZibk4wSUcxaGRISnBlQ0E5SUdsdWFYUkRiMjl5WkdsdVlYUmxjeWhrYVcxbGJuTnBiMjR4TENCa2FXMWxibk5wYjI0eUtUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUnBiV1Z1YzJsdmJqRTdJQ3NyYVNrZ2UxeHVJQ0FnSUdadmNpQW9iR1YwSUdvZ1BTQXdPeUJxSUR3Z1pHbHRaVzV6YVc5dU1qc2dLeXRxS1Z4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdjbUZ1Wkc5dFJteHZZWFFvYzJOaGJHVXBPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnRZWFJ5YVhnN1hHNTlYRzVjYmk4cUtseHVJQ29nUTJGc1kzVnNZWFJsY3lCRmRXTnNhV1JsWVc0Z1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCMGQyOGdkbVZqZEc5eWN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdjQ0JVYUdVZ1ptbHljM1FnZG1WamRHOXlMbHh1SUNvZ1FIQmhjbUZ0SUh0V1pXTjBiM0o5SUhFZ1ZHaGxJSE5sWTI5dVpDQjJaV04wYjNJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSjlJRVYxWTJ4cFpHVmhiaUJrYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlNCbmFYWmxiaUIyWldOMGIzSnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyRnNZM1ZzWVhSbFJYVmpiR2xrWldGdVJHbHpkR0Z1WTJVb2NEb2dWbVZqZEc5eUxDQnhPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0JrYVdabUlEMGdkbVZqZEc5eVFXUmtLSEFzSUhFc0lDMHhLVHRjYmlBZ1kyOXVjM1FnYzNGa2FXWm1JRDBnZG1WamRHOXlVM0YxWVhKbEtHUnBabVlwTzF4dUlDQmpiMjV6ZENCemNXUnBabVpUZFcxdElEMGdhWFJsYlhOVGRXMG9jM0ZrYVdabUtUdGNiaUFnY21WMGRYSnVJRTFoZEdndWMzRnlkQ2h6Y1dScFptWlRkVzF0S1R0Y2JuMWNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR0VnWkdsemRHRnVZMlVnYldGMGNtbDRJSFZ6YVc1bklHRWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHWjFibU4wYVc5dUxseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWMzMGdaR0YwWVNCSmJuQjFkQ0IyWldOMGIzSnpJSFJ2SUdOaGJHTjFiR0YwWlNCa2FYTjBZVzVqWlhNdVhHNGdLaUJBY0dGeVlXMGdlMFJwYzNSaGJtTmxUV1YwY21samZTQmthWE4wWVc1alpTQkRkWE4wYjIwZ1pHbHpkR0Z1WTJVZ1puVnVZM1JwYjI0dVhHNGdLaUJBY21WMGRYSnVJSHROWVhSeWFYaDlJRU5oYkdOMWJHRjBaV1FnWTNWemRHOXRJR1JwYzNSaGJtTmxJRzFoZEhKcGVDNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdOaGJHTkVhWE4wWVc1alpVMWhkSEpwZUNoa1lYUmhPaUJXWldOMGIzSnpMQ0JrYVhOMFlXNWpaVG9nUkdsemRHRnVZMlZOWlhSeWFXTXBPaUJOWVhSeWFYZ2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JrWVhSaExteGxibWQwYUR0Y2JpQWdZMjl1YzNRZ2JXRjBjbWw0SUQwZ2FXNXBkRU52YjNKa2FXNWhkR1Z6S0c1SmRHVnRjeXdnYmtsMFpXMXpMQ0F3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUc1SmRHVnRjenNnS3l0cEtTQjdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FpQTlJR2tnS3lBeE95QnFJRHdnYmtsMFpXMXpPeUFySzJvcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdRNklHNTFiV0psY2lBOUlDaGtZWFJoVzJsZElEMDlJRzUxYkd3cElIeDhJQ2hrWVhSaFcycGRJRDA5SUc1MWJHd3BJRDhnTUNBNklHUnBjM1JoYm1ObEtHUmhkR0ZiYVYwc0lHUmhkR0ZiYWwwcE8xeHVJQ0FnSUNBZ2JXRjBjbWw0VzJsZFcycGRJRDBnYldGMGNtbDRXMnBkVzJsZElEMGdaRHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHMWhkSEpwZUR0Y2JuMWNibHh1THlvcUlFZGxibVZ5WVhSbGN5QmhjbkpoZVNCbWNtOXRJR0VnY21GdVoyVWdXMkpsWjJsdU95QmxibVJkSUc5eUlGdGlaV2RwYmpzZ1pXNWtLU0JwWmlCbGJtUkZlR05zZFhOcGRtVXVJQ29xTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGJsSmhibWRsS0dKbFoybHVPaUJ1ZFcxaVpYSXNJR1Z1WkRvZ2JuVnRZbVZ5TENCbGJtUkZlR05zZFhOcGRtVWdQU0JtWVd4elpTazZJRWx1ZERNeVFYSnlZWGtnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCbGJtUWdMU0JpWldkcGJpQXJJQ2hsYm1SRmVHTnNkWE5wZG1VZ1B5QXdJRG9nTVNrN1hHNGdJR052Ym5OMElITmxjbWxsY3lBOUlHNWxkeUJKYm5Rek1rRnljbUY1S0c1SmRHVnRjeWs3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1U1hSbGJYTTdJQ3NyYVNsY2JpQWdJQ0J6WlhKcFpYTmJhVjBnUFNCaVpXZHBiaUFySUdrN1hHNWNiaUFnY21WMGRYSnVJSE5sY21sbGN6dGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUc5eVpHVnlJRzltSUhaaGJIVmxjeUJoY3lCcFppQjBhR1Y1SUdGeVpTQnpiM0owWldRdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ2RtRnNkV1Z6SUVsdWNIVjBJR0Z5Y21GNUxseHVJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0JiY21WMlpYSnpaVDFtWVd4elpWMGdWMmhsZEdobGNpQjBieUJ5WlhSMWNtNGdjbVYyWlhKelpXUWdiM0prWlhJdVhHNGdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSmJYWDBnVkdobElHOXlaR1Z5SUdOdmJYQjFkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWEpuVTI5eWRDaDJZV3gxWlhNNklHRnVlVnRkTENCeVpYWmxjbk5sSUQwZ1ptRnNjMlVwT2lCdWRXMWlaWEpiWFNCN1hHNGdJR052Ym5OMElITnZjblJtYmlBOUlISmxkbVZ5YzJVZ1B5QW9ZVG9nWVc1NVcxMHNJR0k2SUdGdWVWdGRLU0E5UGlBb1lsc3dYU0F0SUdGYk1GMHBJRG9nS0dFNklHRnVlVnRkTENCaU9pQmhibmxiWFNrZ1BUNGdLR0ZiTUYwZ0xTQmlXekJkS1R0Y2JpQWdZMjl1YzNRZ1pHVmpiM0lnUFNBb2Rqb2dZVzU1TENCcE9pQnVkVzFpWlhJcElEMCtJRnQyTENCcFhUc2dMeThnYzJWMElHbHVaR1Y0SUhSdklIWmhiSFZsWEc0Z0lHTnZibk4wSUhWdVpHVmpiM0lnUFNBb1lUb2dZVzU1VzEwcElEMCtJR0ZiTVYwN0lDOHZJR3hsWVhabElHOXViSGtnYVc1a1pYaGNiaUFnWTI5dWMzUWdYMkZ5WjNOdmNuUWdQU0FvWVhKeU9pQmhibmxiWFNrZ1BUNGdZWEp5TG0xaGNDaGtaV052Y2lrdWMyOXlkQ2h6YjNKMFptNHBMbTFoY0NoMWJtUmxZMjl5S1R0Y2JpQWdjbVYwZFhKdUlGOWhjbWR6YjNKMEtIWmhiSFZsY3lrN1hHNTlYRzVjYmk4cUtseHVJQ29nVW1WMGRYSnVjeUIwYUdVZ2FXNWtaWGhsY3lCdlppQjBhR1VnYlc5emRDQmthWFpsY25ObElHOWlhbVZqZEhNZ1lXTmpiM0prYVc1bklIUnZJSFJvWlNCa2FYTjBJR1oxYm1OMGFXOXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYkdWdVozUm9JSFJ2ZEdGc0lHNTFiV0psY2lCdlppQnZZbXBsWTNSelhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiaUJ1ZFcxaVpYSWdiMllnWkdsMlpYSnpaU0JsYkdWdFpXNTBjeUIwYnlCbWFXNWtYRzRnS2lCQWNHRnlZVzBnZXlocE1Ub2diblZ0WW1WeUxDQnBNam9nYm5WdFltVnlLU0E5UGlCdWRXMWlaWEo5SUdScGMzUWdZU0JtZFc1amRHbHZiaUIzYUdsamFDQmpZV3hqZFd4aGRHVnpJR1JwYzNSaGJtTmxJR0psZEhkbFpXNWNiaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQjBkMjhnYjJKcVpXTjBjeUIxYzJsdVp5QjBhR1ZwY2lCcGJtUmxlR1Z6WEc0Z0tpQkFjbVYwZFhKdWN5QjdiblZ0WW1WeVcxMTlJRlJvWlNCcGJtUmxlR1Z6SUc5bUlIUm9aU0J0YjNOMElHUnBkbVZ5YzJVZ2IySnFaV04wYzF4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwUkdsMlpYSnpaVk4xWW5ObGRDaHNaVzVuZEdnNklHNTFiV0psY2l3Z2Jqb2diblZ0WW1WeUxDQmthWE4wT2lBb2FURTZJRzUxYldKbGNpd2dhVEk2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5VzEwZ2UxeHVJQ0JtZFc1amRHbHZiaUJ0WVhoQ2VTaDJZV3gxWlhNNklFbDBaWEpoWW14bFNYUmxjbUYwYjNJOGJuVnRZbVZ5UGl3Z2IzSmtaWEpDZVRvZ0tHazZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLU0I3WEc0Z0lDQWdiR1YwSUcxaGVGWmhiSFZsSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnYldGNFQzSmtaWEpDZVNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdWc1pXMWxiblFnYjJZZ2RtRnNkV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBUM0prWlhKQ2VTQTlJRzl5WkdWeVFua29aV3hsYldWdWRDazdYRzRnSUNBZ0lDQnBaaUFvYldGNFQzSmtaWEpDZVNBOVBTQnVkV3hzSUh4OElHVnNaVzFsYm5SUGNtUmxja0o1SUQ0Z2JXRjRUM0prWlhKQ2VTa2dlMXh1SUNBZ0lDQWdJQ0J0WVhoV1lXeDFaU0E5SUdWc1pXMWxiblE3WEc0Z0lDQWdJQ0FnSUcxaGVFOXlaR1Z5UW5rZ1BTQmxiR1Z0Wlc1MFQzSmtaWEpDZVR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHMWhlRlpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MzVmljMlYwSUQwZ1czSmhibVJ2YlVsdWRDaHNaVzVuZEdnZ0xTQXhLVjA3WEc0Z0lHTnZibk4wSUdOdmJYQnNaVzFsYm5RZ1BTQnVaWGNnVTJWMEtDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJR2xtSUNnaGMzVmljMlYwTG1sdVkyeDFaR1Z6S0drcEtWeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWhaR1FvYVNrN1hHNGdJSDFjYmx4dUlDQjNhR2xzWlNBb2MzVmljMlYwTG14bGJtZDBhQ0E4SUc0cElIdGNiaUFnSUNCamIyNXpkQ0JwWkhnZ1BTQnRZWGhDZVNoY2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdWRtRnNkV1Z6S0NrZ1lYTWdTWFJsY21GaWJHVkpkR1Z5WVhSdmNqeHVkVzFpWlhJK0xGeHVJQ0FnSUNBZ0tHa3BJRDArSUUxaGRHZ3ViV2x1TG1Gd2NHeDVLRTFoZEdnc0lITjFZbk5sZEM1dFlYQW9ablZ1WTNScGIyNG9kbUZzTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdsemRDaHBMQ0IyWVd3cE8xeHVJQ0FnSUNBZ2ZTa3BLVHRjYmlBZ0lDQnBaaUFvYVdSNEtTQjdYRzRnSUNBZ0lDQnpkV0p6WlhRdWNIVnphQ2hwWkhncE8xeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWtaV3hsZEdVb2FXUjRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlITjFZbk5sZER0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzV2Y20xaGJHbDZaV1FnZG1WamRHOXlYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnWkdGMFlTQnVkVzFsY21sallXd2dZWEp5WVhsY2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzV2Y20xaGJHbDZaU2hrWVhSaE9pQldaV04wYjNJcE9pQldaV04wYjNJZ2UxeHVJQ0JzWlhRZ2JXVmhiaUE5SURBN1hHNGdJR3hsZENCemRHUWdQU0F3TzF4dVhHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnWkdGMFlTNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQnRaV0Z1SUNzOUlHUmhkR0ZiYVYwN1hHNWNiaUFnYldWaGJpQXZQU0JrWVhSaExteGxibWQwYUR0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdjM1JrSUNzOUlDaGtZWFJoVzJsZElDMGdiV1ZoYmlrZ0tpQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cE8xeHVYRzRnSUhOMFpDQTlJRTFoZEdndWMzRnlkQ2h6ZEdRZ0x5QmtZWFJoTG14bGJtZDBhQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrWVhSaExteGxibWQwYURzZ0t5dHBLVnh1SUNBZ0lHUmhkR0ZiYVYwZ1BTQW9aR0YwWVZ0cFhTQXRJRzFsWVc0cElDOGdjM1JrTzF4dVhHNGdJSEpsZEhWeWJpQmtZWFJoTzF4dWZWeHVYRzR2S2lwY2JpQXFJRVpwYm1SeklITmxkQ0JrYVdabVpYSmxibU5sSUdKbGRIZGxaVzRnZEhkdklHeHBjM1J6TGx4dUlDb2dRSEJoY21GdElIdGhibmxiWFgwZ1lTQlVhR1VnWm1seWMzUWdiR2x6ZEM1Y2JpQXFJRUJ3WVhKaGJTQjdZVzU1VzExOUlHSWdWR2hsSUhObFkyOXVaQ0JzYVhOMExseHVJQ29nUUhKbGRIVnliaUI3WVc1NVcxMTlYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCelpYUkVhV1ptWlhKbGJtTmxLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2s2SUdGdWVWdGRJSHRjYmlBZ1kyOXVjM1FnWWxObGRDQTlJRzVsZHlCVFpYUW9ZaWs3WEc0Z0lISmxkSFZ5YmlCQmNuSmhlUzVtY205dEtHNWxkeUJUWlhRb1lTNW1hV3gwWlhJb0tIZ3BJRDArSUNGaVUyVjBMbWhoY3loNEtTa3BMblpoYkhWbGN5Z3BLVHRjYm4xY2JpSmRmUT09IiwiKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICAgLy8gSGFjayB0byBtYWtlIGFsbCBleHBvcnRzIG9mIHRoaXMgbW9kdWxlIHNoYTI1NiBmdW5jdGlvbiBvYmplY3QgcHJvcGVydGllcy5cbiAgICB2YXIgZXhwb3J0cyA9IHt9O1xuICAgIGZhY3RvcnkoZXhwb3J0cyk7XG4gICAgdmFyIHNoYTI1NiA9IGV4cG9ydHNbXCJkZWZhdWx0XCJdO1xuICAgIGZvciAodmFyIGsgaW4gZXhwb3J0cykge1xuICAgICAgICBzaGEyNTZba10gPSBleHBvcnRzW2tdO1xuICAgIH1cbiAgICAgICAgXG4gICAgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUuZXhwb3J0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSBzaGEyNTY7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpIHtcbiAgICAgICAgZGVmaW5lKGZ1bmN0aW9uKCkgeyByZXR1cm4gc2hhMjU2OyB9KTsgXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcm9vdC5zaGEyNTYgPSBzaGEyNTY7XG4gICAgfVxufSkodGhpcywgZnVuY3Rpb24oZXhwb3J0cykge1xuXCJ1c2Ugc3RyaWN0XCI7XG5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlO1xuLy8gU0hBLTI1NiAoKyBITUFDIGFuZCBQQktERjIpIGZvciBKYXZhU2NyaXB0LlxuLy9cbi8vIFdyaXR0ZW4gaW4gMjAxNC0yMDE2IGJ5IERtaXRyeSBDaGVzdG55a2guXG4vLyBQdWJsaWMgZG9tYWluLCBubyB3YXJyYW50eS5cbi8vXG4vLyBGdW5jdGlvbnMgKGFjY2VwdCBhbmQgcmV0dXJuIFVpbnQ4QXJyYXlzKTpcbi8vXG4vLyAgIHNoYTI1NihtZXNzYWdlKSAtPiBoYXNoXG4vLyAgIHNoYTI1Ni5obWFjKGtleSwgbWVzc2FnZSkgLT4gbWFjXG4vLyAgIHNoYTI1Ni5wYmtkZjIocGFzc3dvcmQsIHNhbHQsIHJvdW5kcywgZGtMZW4pIC0+IGRrXG4vL1xuLy8gIENsYXNzZXM6XG4vL1xuLy8gICBuZXcgc2hhMjU2Lkhhc2goKVxuLy8gICBuZXcgc2hhMjU2LkhNQUMoa2V5KVxuLy9cbmV4cG9ydHMuZGlnZXN0TGVuZ3RoID0gMzI7XG5leHBvcnRzLmJsb2NrU2l6ZSA9IDY0O1xuLy8gU0hBLTI1NiBjb25zdGFudHNcbnZhciBLID0gbmV3IFVpbnQzMkFycmF5KFtcbiAgICAweDQyOGEyZjk4LCAweDcxMzc0NDkxLCAweGI1YzBmYmNmLCAweGU5YjVkYmE1LCAweDM5NTZjMjViLFxuICAgIDB4NTlmMTExZjEsIDB4OTIzZjgyYTQsIDB4YWIxYzVlZDUsIDB4ZDgwN2FhOTgsIDB4MTI4MzViMDEsXG4gICAgMHgyNDMxODViZSwgMHg1NTBjN2RjMywgMHg3MmJlNWQ3NCwgMHg4MGRlYjFmZSwgMHg5YmRjMDZhNyxcbiAgICAweGMxOWJmMTc0LCAweGU0OWI2OWMxLCAweGVmYmU0Nzg2LCAweDBmYzE5ZGM2LCAweDI0MGNhMWNjLFxuICAgIDB4MmRlOTJjNmYsIDB4NGE3NDg0YWEsIDB4NWNiMGE5ZGMsIDB4NzZmOTg4ZGEsIDB4OTgzZTUxNTIsXG4gICAgMHhhODMxYzY2ZCwgMHhiMDAzMjdjOCwgMHhiZjU5N2ZjNywgMHhjNmUwMGJmMywgMHhkNWE3OTE0NyxcbiAgICAweDA2Y2E2MzUxLCAweDE0MjkyOTY3LCAweDI3YjcwYTg1LCAweDJlMWIyMTM4LCAweDRkMmM2ZGZjLFxuICAgIDB4NTMzODBkMTMsIDB4NjUwYTczNTQsIDB4NzY2YTBhYmIsIDB4ODFjMmM5MmUsIDB4OTI3MjJjODUsXG4gICAgMHhhMmJmZThhMSwgMHhhODFhNjY0YiwgMHhjMjRiOGI3MCwgMHhjNzZjNTFhMywgMHhkMTkyZTgxOSxcbiAgICAweGQ2OTkwNjI0LCAweGY0MGUzNTg1LCAweDEwNmFhMDcwLCAweDE5YTRjMTE2LCAweDFlMzc2YzA4LFxuICAgIDB4Mjc0ODc3NGMsIDB4MzRiMGJjYjUsIDB4MzkxYzBjYjMsIDB4NGVkOGFhNGEsIDB4NWI5Y2NhNGYsXG4gICAgMHg2ODJlNmZmMywgMHg3NDhmODJlZSwgMHg3OGE1NjM2ZiwgMHg4NGM4NzgxNCwgMHg4Y2M3MDIwOCxcbiAgICAweDkwYmVmZmZhLCAweGE0NTA2Y2ViLCAweGJlZjlhM2Y3LCAweGM2NzE3OGYyXG5dKTtcbmZ1bmN0aW9uIGhhc2hCbG9ja3ModywgdiwgcCwgcG9zLCBsZW4pIHtcbiAgICB2YXIgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgdSwgaSwgaiwgdDEsIHQyO1xuICAgIHdoaWxlIChsZW4gPj0gNjQpIHtcbiAgICAgICAgYSA9IHZbMF07XG4gICAgICAgIGIgPSB2WzFdO1xuICAgICAgICBjID0gdlsyXTtcbiAgICAgICAgZCA9IHZbM107XG4gICAgICAgIGUgPSB2WzRdO1xuICAgICAgICBmID0gdls1XTtcbiAgICAgICAgZyA9IHZbNl07XG4gICAgICAgIGggPSB2WzddO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykge1xuICAgICAgICAgICAgaiA9IHBvcyArIGkgKiA0O1xuICAgICAgICAgICAgd1tpXSA9ICgoKHBbal0gJiAweGZmKSA8PCAyNCkgfCAoKHBbaiArIDFdICYgMHhmZikgPDwgMTYpIHxcbiAgICAgICAgICAgICAgICAoKHBbaiArIDJdICYgMHhmZikgPDwgOCkgfCAocFtqICsgM10gJiAweGZmKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMTY7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICB1ID0gd1tpIC0gMl07XG4gICAgICAgICAgICB0MSA9ICh1ID4+PiAxNyB8IHUgPDwgKDMyIC0gMTcpKSBeICh1ID4+PiAxOSB8IHUgPDwgKDMyIC0gMTkpKSBeICh1ID4+PiAxMCk7XG4gICAgICAgICAgICB1ID0gd1tpIC0gMTVdO1xuICAgICAgICAgICAgdDIgPSAodSA+Pj4gNyB8IHUgPDwgKDMyIC0gNykpIF4gKHUgPj4+IDE4IHwgdSA8PCAoMzIgLSAxOCkpIF4gKHUgPj4+IDMpO1xuICAgICAgICAgICAgd1tpXSA9ICh0MSArIHdbaSAtIDddIHwgMCkgKyAodDIgKyB3W2kgLSAxNl0gfCAwKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykge1xuICAgICAgICAgICAgdDEgPSAoKCgoKGUgPj4+IDYgfCBlIDw8ICgzMiAtIDYpKSBeIChlID4+PiAxMSB8IGUgPDwgKDMyIC0gMTEpKSBeXG4gICAgICAgICAgICAgICAgKGUgPj4+IDI1IHwgZSA8PCAoMzIgLSAyNSkpKSArICgoZSAmIGYpIF4gKH5lICYgZykpKSB8IDApICtcbiAgICAgICAgICAgICAgICAoKGggKyAoKEtbaV0gKyB3W2ldKSB8IDApKSB8IDApKSB8IDA7XG4gICAgICAgICAgICB0MiA9ICgoKGEgPj4+IDIgfCBhIDw8ICgzMiAtIDIpKSBeIChhID4+PiAxMyB8IGEgPDwgKDMyIC0gMTMpKSBeXG4gICAgICAgICAgICAgICAgKGEgPj4+IDIyIHwgYSA8PCAoMzIgLSAyMikpKSArICgoYSAmIGIpIF4gKGEgJiBjKSBeIChiICYgYykpKSB8IDA7XG4gICAgICAgICAgICBoID0gZztcbiAgICAgICAgICAgIGcgPSBmO1xuICAgICAgICAgICAgZiA9IGU7XG4gICAgICAgICAgICBlID0gKGQgKyB0MSkgfCAwO1xuICAgICAgICAgICAgZCA9IGM7XG4gICAgICAgICAgICBjID0gYjtcbiAgICAgICAgICAgIGIgPSBhO1xuICAgICAgICAgICAgYSA9ICh0MSArIHQyKSB8IDA7XG4gICAgICAgIH1cbiAgICAgICAgdlswXSArPSBhO1xuICAgICAgICB2WzFdICs9IGI7XG4gICAgICAgIHZbMl0gKz0gYztcbiAgICAgICAgdlszXSArPSBkO1xuICAgICAgICB2WzRdICs9IGU7XG4gICAgICAgIHZbNV0gKz0gZjtcbiAgICAgICAgdls2XSArPSBnO1xuICAgICAgICB2WzddICs9IGg7XG4gICAgICAgIHBvcyArPSA2NDtcbiAgICAgICAgbGVuIC09IDY0O1xuICAgIH1cbiAgICByZXR1cm4gcG9zO1xufVxuLy8gSGFzaCBpbXBsZW1lbnRzIFNIQTI1NiBoYXNoIGFsZ29yaXRobS5cbnZhciBIYXNoID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhhc2goKSB7XG4gICAgICAgIHRoaXMuZGlnZXN0TGVuZ3RoID0gZXhwb3J0cy5kaWdlc3RMZW5ndGg7XG4gICAgICAgIHRoaXMuYmxvY2tTaXplID0gZXhwb3J0cy5ibG9ja1NpemU7XG4gICAgICAgIC8vIE5vdGU6IEludDMyQXJyYXkgaXMgdXNlZCBpbnN0ZWFkIG9mIFVpbnQzMkFycmF5IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLlxuICAgICAgICB0aGlzLnN0YXRlID0gbmV3IEludDMyQXJyYXkoOCk7IC8vIGhhc2ggc3RhdGVcbiAgICAgICAgdGhpcy50ZW1wID0gbmV3IEludDMyQXJyYXkoNjQpOyAvLyB0ZW1wb3Jhcnkgc3RhdGVcbiAgICAgICAgdGhpcy5idWZmZXIgPSBuZXcgVWludDhBcnJheSgxMjgpOyAvLyBidWZmZXIgZm9yIGRhdGEgdG8gaGFzaFxuICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7IC8vIG51bWJlciBvZiBieXRlcyBpbiBidWZmZXJcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IDA7IC8vIG51bWJlciBvZiB0b3RhbCBieXRlcyBoYXNoZWRcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlOyAvLyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgaGFzaCB3YXMgZmluYWxpemVkXG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9XG4gICAgLy8gUmVzZXRzIGhhc2ggc3RhdGUgbWFraW5nIGl0IHBvc3NpYmxlXG4gICAgLy8gdG8gcmUtdXNlIHRoaXMgaW5zdGFuY2UgdG8gaGFzaCBvdGhlciBkYXRhLlxuICAgIEhhc2gucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLnN0YXRlWzBdID0gMHg2YTA5ZTY2NztcbiAgICAgICAgdGhpcy5zdGF0ZVsxXSA9IDB4YmI2N2FlODU7XG4gICAgICAgIHRoaXMuc3RhdGVbMl0gPSAweDNjNmVmMzcyO1xuICAgICAgICB0aGlzLnN0YXRlWzNdID0gMHhhNTRmZjUzYTtcbiAgICAgICAgdGhpcy5zdGF0ZVs0XSA9IDB4NTEwZTUyN2Y7XG4gICAgICAgIHRoaXMuc3RhdGVbNV0gPSAweDliMDU2ODhjO1xuICAgICAgICB0aGlzLnN0YXRlWzZdID0gMHgxZjgzZDlhYjtcbiAgICAgICAgdGhpcy5zdGF0ZVs3XSA9IDB4NWJlMGNkMTk7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IDA7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBDbGVhbnMgaW50ZXJuYWwgYnVmZmVycyBhbmQgcmUtaW5pdGlhbGl6ZXMgaGFzaCBzdGF0ZS5cbiAgICBIYXNoLnByb3RvdHlwZS5jbGVhbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmJ1ZmZlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50ZW1wLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICB9O1xuICAgIC8vIFVwZGF0ZXMgaGFzaCBzdGF0ZSB3aXRoIHRoZSBnaXZlbiBkYXRhLlxuICAgIC8vXG4gICAgLy8gT3B0aW9uYWxseSwgbGVuZ3RoIG9mIHRoZSBkYXRhIGNhbiBiZSBzcGVjaWZpZWQgdG8gaGFzaFxuICAgIC8vIGZld2VyIGJ5dGVzIHRoYW4gZGF0YS5sZW5ndGguXG4gICAgLy9cbiAgICAvLyBUaHJvd3MgZXJyb3Igd2hlbiB0cnlpbmcgdG8gdXBkYXRlIGFscmVhZHkgZmluYWxpemVkIGhhc2g6XG4gICAgLy8gaW5zdGFuY2UgbXVzdCBiZSByZXNldCB0byB1c2UgaXQgYWdhaW4uXG4gICAgSGFzaC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEsIGRhdGFMZW5ndGgpIHtcbiAgICAgICAgaWYgKGRhdGFMZW5ndGggPT09IHZvaWQgMCkgeyBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGg7IH1cbiAgICAgICAgaWYgKHRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlNIQTI1NjogY2FuJ3QgdXBkYXRlIGJlY2F1c2UgaGFzaCB3YXMgZmluaXNoZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXRhUG9zID0gMDtcbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCArPSBkYXRhTGVuZ3RoO1xuICAgICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5idWZmZXJMZW5ndGggPCA2NCAmJiBkYXRhTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyTGVuZ3RoKytdID0gZGF0YVtkYXRhUG9zKytdO1xuICAgICAgICAgICAgICAgIGRhdGFMZW5ndGgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA9PT0gNjQpIHtcbiAgICAgICAgICAgICAgICBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgdGhpcy5idWZmZXIsIDAsIDY0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGFMZW5ndGggPj0gNjQpIHtcbiAgICAgICAgICAgIGRhdGFQb3MgPSBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgZGF0YSwgZGF0YVBvcywgZGF0YUxlbmd0aCk7XG4gICAgICAgICAgICBkYXRhTGVuZ3RoICU9IDY0O1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChkYXRhTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW2RhdGFQb3MrK107XG4gICAgICAgICAgICBkYXRhTGVuZ3RoLS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBGaW5hbGl6ZXMgaGFzaCBzdGF0ZSBhbmQgcHV0cyBoYXNoIGludG8gb3V0LlxuICAgIC8vXG4gICAgLy8gSWYgaGFzaCB3YXMgYWxyZWFkeSBmaW5hbGl6ZWQsIHB1dHMgdGhlIHNhbWUgdmFsdWUuXG4gICAgSGFzaC5wcm90b3R5cGUuZmluaXNoID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBpZiAoIXRoaXMuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHZhciBieXRlc0hhc2hlZCA9IHRoaXMuYnl0ZXNIYXNoZWQ7XG4gICAgICAgICAgICB2YXIgbGVmdCA9IHRoaXMuYnVmZmVyTGVuZ3RoO1xuICAgICAgICAgICAgdmFyIGJpdExlbkhpID0gKGJ5dGVzSGFzaGVkIC8gMHgyMDAwMDAwMCkgfCAwO1xuICAgICAgICAgICAgdmFyIGJpdExlbkxvID0gYnl0ZXNIYXNoZWQgPDwgMztcbiAgICAgICAgICAgIHZhciBwYWRMZW5ndGggPSAoYnl0ZXNIYXNoZWQgJSA2NCA8IDU2KSA/IDY0IDogMTI4O1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbbGVmdF0gPSAweDgwO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGxlZnQgKyAxOyBpIDwgcGFkTGVuZ3RoIC0gODsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gOF0gPSAoYml0TGVuSGkgPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA3XSA9IChiaXRMZW5IaSA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDZdID0gKGJpdExlbkhpID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA1XSA9IChiaXRMZW5IaSA+Pj4gMCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNF0gPSAoYml0TGVuTG8gPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSAzXSA9IChiaXRMZW5MbyA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDJdID0gKGJpdExlbkxvID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSAxXSA9IChiaXRMZW5MbyA+Pj4gMCkgJiAweGZmO1xuICAgICAgICAgICAgaGFzaEJsb2Nrcyh0aGlzLnRlbXAsIHRoaXMuc3RhdGUsIHRoaXMuYnVmZmVyLCAwLCBwYWRMZW5ndGgpO1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpICogNCArIDBdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAxXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMl0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gOCkgJiAweGZmO1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgM10gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMCkgJiAweGZmO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gUmV0dXJucyB0aGUgZmluYWwgaGFzaCBkaWdlc3QuXG4gICAgSGFzaC5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3V0ID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO1xuICAgICAgICB0aGlzLmZpbmlzaChvdXQpO1xuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH07XG4gICAgLy8gSW50ZXJuYWwgZnVuY3Rpb24gZm9yIHVzZSBpbiBITUFDIGZvciBvcHRpbWl6YXRpb24uXG4gICAgSGFzaC5wcm90b3R5cGUuX3NhdmVTdGF0ZSA9IGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSB0aGlzLnN0YXRlW2ldO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgdXNlIGluIEhNQUMgZm9yIG9wdGltaXphdGlvbi5cbiAgICBIYXNoLnByb3RvdHlwZS5fcmVzdG9yZVN0YXRlID0gZnVuY3Rpb24gKGZyb20sIGJ5dGVzSGFzaGVkKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdGF0ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZVtpXSA9IGZyb21baV07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ieXRlc0hhc2hlZCA9IGJ5dGVzSGFzaGVkO1xuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICB9O1xuICAgIHJldHVybiBIYXNoO1xufSgpKTtcbmV4cG9ydHMuSGFzaCA9IEhhc2g7XG4vLyBITUFDIGltcGxlbWVudHMgSE1BQy1TSEEyNTYgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG0uXG52YXIgSE1BQyA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBITUFDKGtleSkge1xuICAgICAgICB0aGlzLmlubmVyID0gbmV3IEhhc2goKTtcbiAgICAgICAgdGhpcy5vdXRlciA9IG5ldyBIYXNoKCk7XG4gICAgICAgIHRoaXMuYmxvY2tTaXplID0gdGhpcy5pbm5lci5ibG9ja1NpemU7XG4gICAgICAgIHRoaXMuZGlnZXN0TGVuZ3RoID0gdGhpcy5pbm5lci5kaWdlc3RMZW5ndGg7XG4gICAgICAgIHZhciBwYWQgPSBuZXcgVWludDhBcnJheSh0aGlzLmJsb2NrU2l6ZSk7XG4gICAgICAgIGlmIChrZXkubGVuZ3RoID4gdGhpcy5ibG9ja1NpemUpIHtcbiAgICAgICAgICAgIChuZXcgSGFzaCgpKS51cGRhdGUoa2V5KS5maW5pc2gocGFkKS5jbGVhbigpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwYWRbaV0gPSBrZXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSBePSAweDM2O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXIudXBkYXRlKHBhZCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gXj0gMHgzNiBeIDB4NWM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRlci51cGRhdGUocGFkKTtcbiAgICAgICAgdGhpcy5pc3RhdGUgPSBuZXcgVWludDMyQXJyYXkoOCk7XG4gICAgICAgIHRoaXMub3N0YXRlID0gbmV3IFVpbnQzMkFycmF5KDgpO1xuICAgICAgICB0aGlzLmlubmVyLl9zYXZlU3RhdGUodGhpcy5pc3RhdGUpO1xuICAgICAgICB0aGlzLm91dGVyLl9zYXZlU3RhdGUodGhpcy5vc3RhdGUpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSZXR1cm5zIEhNQUMgc3RhdGUgdG8gdGhlIHN0YXRlIGluaXRpYWxpemVkIHdpdGgga2V5XG4gICAgLy8gdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBydW4gSE1BQyBvdmVyIHRoZSBvdGhlciBkYXRhIHdpdGggdGhlIHNhbWVcbiAgICAvLyBrZXkgd2l0aG91dCBjcmVhdGluZyBhIG5ldyBpbnN0YW5jZS5cbiAgICBITUFDLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5pbm5lci5fcmVzdG9yZVN0YXRlKHRoaXMuaXN0YXRlLCB0aGlzLmlubmVyLmJsb2NrU2l6ZSk7XG4gICAgICAgIHRoaXMub3V0ZXIuX3Jlc3RvcmVTdGF0ZSh0aGlzLm9zdGF0ZSwgdGhpcy5vdXRlci5ibG9ja1NpemUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIENsZWFucyBITUFDIHN0YXRlLlxuICAgIEhNQUMucHJvdG90eXBlLmNsZWFuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuaXN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLm9zdGF0ZVtpXSA9IHRoaXMuaXN0YXRlW2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyLmNsZWFuKCk7XG4gICAgICAgIHRoaXMub3V0ZXIuY2xlYW4oKTtcbiAgICB9O1xuICAgIC8vIFVwZGF0ZXMgc3RhdGUgd2l0aCBwcm92aWRlZCBkYXRhLlxuICAgIEhNQUMucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgICAgIHRoaXMuaW5uZXIudXBkYXRlKGRhdGEpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIEZpbmFsaXplcyBITUFDIGFuZCBwdXRzIHRoZSByZXN1bHQgaW4gb3V0LlxuICAgIEhNQUMucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgaWYgKHRoaXMub3V0ZXIuZmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3V0ZXIuZmluaXNoKG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlubmVyLmZpbmlzaChvdXQpO1xuICAgICAgICAgICAgdGhpcy5vdXRlci51cGRhdGUob3V0LCB0aGlzLmRpZ2VzdExlbmd0aCkuZmluaXNoKG91dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBSZXR1cm5zIG1lc3NhZ2UgYXV0aGVudGljYXRpb24gY29kZS5cbiAgICBITUFDLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7XG4gICAgICAgIHRoaXMuZmluaXNoKG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICByZXR1cm4gSE1BQztcbn0oKSk7XG5leHBvcnRzLkhNQUMgPSBITUFDO1xuLy8gUmV0dXJucyBTSEEyNTYgaGFzaCBvZiBkYXRhLlxuZnVuY3Rpb24gaGFzaChkYXRhKSB7XG4gICAgdmFyIGggPSAobmV3IEhhc2goKSkudXBkYXRlKGRhdGEpO1xuICAgIHZhciBkaWdlc3QgPSBoLmRpZ2VzdCgpO1xuICAgIGguY2xlYW4oKTtcbiAgICByZXR1cm4gZGlnZXN0O1xufVxuZXhwb3J0cy5oYXNoID0gaGFzaDtcbi8vIEZ1bmN0aW9uIGhhc2ggaXMgYm90aCBhdmFpbGFibGUgYXMgbW9kdWxlLmhhc2ggYW5kIGFzIGRlZmF1bHQgZXhwb3J0LlxuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBoYXNoO1xuLy8gUmV0dXJucyBITUFDLVNIQTI1NiBvZiBkYXRhIHVuZGVyIHRoZSBrZXkuXG5mdW5jdGlvbiBobWFjKGtleSwgZGF0YSkge1xuICAgIHZhciBoID0gKG5ldyBITUFDKGtleSkpLnVwZGF0ZShkYXRhKTtcbiAgICB2YXIgZGlnZXN0ID0gaC5kaWdlc3QoKTtcbiAgICBoLmNsZWFuKCk7XG4gICAgcmV0dXJuIGRpZ2VzdDtcbn1cbmV4cG9ydHMuaG1hYyA9IGhtYWM7XG4vLyBGaWxscyBoa2RmIGJ1ZmZlciBsaWtlIHRoaXM6XG4vLyBUKDEpID0gSE1BQy1IYXNoKFBSSywgVCgwKSB8IGluZm8gfCAweDAxKVxuZnVuY3Rpb24gZmlsbEJ1ZmZlcihidWZmZXIsIGhtYWMsIGluZm8sIGNvdW50ZXIpIHtcbiAgICAvLyBDb3VudGVyIGlzIGEgYnl0ZSB2YWx1ZTogY2hlY2sgaWYgaXQgb3ZlcmZsb3dlZC5cbiAgICB2YXIgbnVtID0gY291bnRlclswXTtcbiAgICBpZiAobnVtID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImhrZGY6IGNhbm5vdCBleHBhbmQgbW9yZVwiKTtcbiAgICB9XG4gICAgLy8gUHJlcGFyZSBITUFDIGluc3RhbmNlIGZvciBuZXcgZGF0YSB3aXRoIG9sZCBrZXkuXG4gICAgaG1hYy5yZXNldCgpO1xuICAgIC8vIEhhc2ggaW4gcHJldmlvdXMgb3V0cHV0IGlmIGl0IHdhcyBnZW5lcmF0ZWRcbiAgICAvLyAoaS5lLiBjb3VudGVyIGlzIGdyZWF0ZXIgdGhhbiAxKS5cbiAgICBpZiAobnVtID4gMSkge1xuICAgICAgICBobWFjLnVwZGF0ZShidWZmZXIpO1xuICAgIH1cbiAgICAvLyBIYXNoIGluIGluZm8gaWYgaXQgZXhpc3RzLlxuICAgIGlmIChpbmZvKSB7XG4gICAgICAgIGhtYWMudXBkYXRlKGluZm8pO1xuICAgIH1cbiAgICAvLyBIYXNoIGluIHRoZSBjb3VudGVyLlxuICAgIGhtYWMudXBkYXRlKGNvdW50ZXIpO1xuICAgIC8vIE91dHB1dCByZXN1bHQgdG8gYnVmZmVyIGFuZCBjbGVhbiBITUFDIGluc3RhbmNlLlxuICAgIGhtYWMuZmluaXNoKGJ1ZmZlcik7XG4gICAgLy8gSW5jcmVtZW50IGNvdW50ZXIgaW5zaWRlIHR5cGVkIGFycmF5LCB0aGlzIHdvcmtzIHByb3Blcmx5LlxuICAgIGNvdW50ZXJbMF0rKztcbn1cbnZhciBoa2RmU2FsdCA9IG5ldyBVaW50OEFycmF5KGV4cG9ydHMuZGlnZXN0TGVuZ3RoKTsgLy8gRmlsbGVkIHdpdGggemVyb2VzLlxuZnVuY3Rpb24gaGtkZihrZXksIHNhbHQsIGluZm8sIGxlbmd0aCkge1xuICAgIGlmIChzYWx0ID09PSB2b2lkIDApIHsgc2FsdCA9IGhrZGZTYWx0OyB9XG4gICAgaWYgKGxlbmd0aCA9PT0gdm9pZCAwKSB7IGxlbmd0aCA9IDMyOyB9XG4gICAgdmFyIGNvdW50ZXIgPSBuZXcgVWludDhBcnJheShbMV0pO1xuICAgIC8vIEhLREYtRXh0cmFjdCB1c2VzIHNhbHQgYXMgSE1BQyBrZXksIGFuZCBrZXkgYXMgZGF0YS5cbiAgICB2YXIgb2ttID0gaG1hYyhzYWx0LCBrZXkpO1xuICAgIC8vIEluaXRpYWxpemUgSE1BQyBmb3IgZXhwYW5kaW5nIHdpdGggZXh0cmFjdGVkIGtleS5cbiAgICAvLyBFbnN1cmUgbm8gY29sbGlzaW9ucyB3aXRoIGBobWFjYCBmdW5jdGlvbi5cbiAgICB2YXIgaG1hY18gPSBuZXcgSE1BQyhva20pO1xuICAgIC8vIEFsbG9jYXRlIGJ1ZmZlci5cbiAgICB2YXIgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoaG1hY18uZGlnZXN0TGVuZ3RoKTtcbiAgICB2YXIgYnVmcG9zID0gYnVmZmVyLmxlbmd0aDtcbiAgICB2YXIgb3V0ID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChidWZwb3MgPT09IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZpbGxCdWZmZXIoYnVmZmVyLCBobWFjXywgaW5mbywgY291bnRlcik7XG4gICAgICAgICAgICBidWZwb3MgPSAwO1xuICAgICAgICB9XG4gICAgICAgIG91dFtpXSA9IGJ1ZmZlcltidWZwb3MrK107XG4gICAgfVxuICAgIGhtYWNfLmNsZWFuKCk7XG4gICAgYnVmZmVyLmZpbGwoMCk7XG4gICAgY291bnRlci5maWxsKDApO1xuICAgIHJldHVybiBvdXQ7XG59XG5leHBvcnRzLmhrZGYgPSBoa2RmO1xuLy8gRGVyaXZlcyBhIGtleSBmcm9tIHBhc3N3b3JkIGFuZCBzYWx0IHVzaW5nIFBCS0RGMi1ITUFDLVNIQTI1NlxuLy8gd2l0aCB0aGUgZ2l2ZW4gbnVtYmVyIG9mIGl0ZXJhdGlvbnMuXG4vL1xuLy8gVGhlIG51bWJlciBvZiBieXRlcyByZXR1cm5lZCBpcyBlcXVhbCB0byBka0xlbi5cbi8vXG4vLyAoRm9yIGJldHRlciBzZWN1cml0eSwgYXZvaWQgZGtMZW4gZ3JlYXRlciB0aGFuIGhhc2ggbGVuZ3RoIC0gMzIgYnl0ZXMpLlxuZnVuY3Rpb24gcGJrZGYyKHBhc3N3b3JkLCBzYWx0LCBpdGVyYXRpb25zLCBka0xlbikge1xuICAgIHZhciBwcmYgPSBuZXcgSE1BQyhwYXNzd29yZCk7XG4gICAgdmFyIGxlbiA9IHByZi5kaWdlc3RMZW5ndGg7XG4gICAgdmFyIGN0ciA9IG5ldyBVaW50OEFycmF5KDQpO1xuICAgIHZhciB0ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgdSA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgdmFyIGRrID0gbmV3IFVpbnQ4QXJyYXkoZGtMZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpICogbGVuIDwgZGtMZW47IGkrKykge1xuICAgICAgICB2YXIgYyA9IGkgKyAxO1xuICAgICAgICBjdHJbMF0gPSAoYyA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgY3RyWzFdID0gKGMgPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgIGN0clsyXSA9IChjID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgIGN0clszXSA9IChjID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgIHByZi5yZXNldCgpO1xuICAgICAgICBwcmYudXBkYXRlKHNhbHQpO1xuICAgICAgICBwcmYudXBkYXRlKGN0cik7XG4gICAgICAgIHByZi5maW5pc2godSk7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgICAgICAgIHRbal0gPSB1W2pdO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGogPSAyOyBqIDw9IGl0ZXJhdGlvbnM7IGorKykge1xuICAgICAgICAgICAgcHJmLnJlc2V0KCk7XG4gICAgICAgICAgICBwcmYudXBkYXRlKHUpLmZpbmlzaCh1KTtcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgICAgICAgICAgICB0W2tdIF49IHVba107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW4gJiYgaSAqIGxlbiArIGogPCBka0xlbjsgaisrKSB7XG4gICAgICAgICAgICBka1tpICogbGVuICsgal0gPSB0W2pdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgdFtpXSA9IHVbaV0gPSAwO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKykge1xuICAgICAgICBjdHJbaV0gPSAwO1xuICAgIH1cbiAgICBwcmYuY2xlYW4oKTtcbiAgICByZXR1cm4gZGs7XG59XG5leHBvcnRzLnBia2RmMiA9IHBia2RmMjtcbn0pO1xuIiwiY29uc3QgcGVxID0gbmV3IFVpbnQzMkFycmF5KDB4MTAwMDApO1xuY29uc3QgbXllcnNfMzIgPSAoYSwgYikgPT4ge1xuICAgIGNvbnN0IG4gPSBhLmxlbmd0aDtcbiAgICBjb25zdCBtID0gYi5sZW5ndGg7XG4gICAgY29uc3QgbHN0ID0gMSA8PCAobiAtIDEpO1xuICAgIGxldCBwdiA9IC0xO1xuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHNjID0gbjtcbiAgICBsZXQgaSA9IG47XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgICBwZXFbYS5jaGFyQ29kZUF0KGkpXSB8PSAxIDw8IGk7XG4gICAgfVxuICAgIGZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICAgICAgbGV0IGVxID0gcGVxW2IuY2hhckNvZGVBdChpKV07XG4gICAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgICAgZXEgfD0gKChlcSAmIHB2KSArIHB2KSBeIHB2O1xuICAgICAgICBtdiB8PSB+KGVxIHwgcHYpO1xuICAgICAgICBwdiAmPSBlcTtcbiAgICAgICAgaWYgKG12ICYgbHN0KSB7XG4gICAgICAgICAgICBzYysrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwdiAmIGxzdCkge1xuICAgICAgICAgICAgc2MtLTtcbiAgICAgICAgfVxuICAgICAgICBtdiA9IChtdiA8PCAxKSB8IDE7XG4gICAgICAgIHB2ID0gKHB2IDw8IDEpIHwgfih4diB8IG12KTtcbiAgICAgICAgbXYgJj0geHY7XG4gICAgfVxuICAgIGkgPSBuO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgcGVxW2EuY2hhckNvZGVBdChpKV0gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gc2M7XG59O1xuY29uc3QgbXllcnNfeCA9IChiLCBhKSA9PiB7XG4gICAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICAgIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgICBjb25zdCBtaGMgPSBbXTtcbiAgICBjb25zdCBwaGMgPSBbXTtcbiAgICBjb25zdCBoc2l6ZSA9IE1hdGguY2VpbChuIC8gMzIpO1xuICAgIGNvbnN0IHZzaXplID0gTWF0aC5jZWlsKG0gLyAzMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBoc2l6ZTsgaSsrKSB7XG4gICAgICAgIHBoY1tpXSA9IC0xO1xuICAgICAgICBtaGNbaV0gPSAwO1xuICAgIH1cbiAgICBsZXQgaiA9IDA7XG4gICAgZm9yICg7IGogPCB2c2l6ZSAtIDE7IGorKykge1xuICAgICAgICBsZXQgbXYgPSAwO1xuICAgICAgICBsZXQgcHYgPSAtMTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgICAgIGNvbnN0IHZsZW4gPSBNYXRoLm1pbigzMiwgbSkgKyBzdGFydDtcbiAgICAgICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSB8PSAxIDw8IGs7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGVxID0gcGVxW2EuY2hhckNvZGVBdChpKV07XG4gICAgICAgICAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgICAgICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgICAgICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICAgICAgICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICAgICAgICAgIGxldCBtaCA9IHB2ICYgeGg7XG4gICAgICAgICAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgICAgICAgICAgIHBoY1soaSAvIDMyKSB8IDBdIF49IDEgPDwgaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgobWggPj4+IDMxKSBeIG1iKSB7XG4gICAgICAgICAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgICAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICAgICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgICAgICAgIG12ID0gcGggJiB4djtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCB2bGVuOyBrKyspIHtcbiAgICAgICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsZXQgbXYgPSAwO1xuICAgIGxldCBwdiA9IC0xO1xuICAgIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICAgIGNvbnN0IHZsZW4gPSBNYXRoLm1pbigzMiwgbSAtIHN0YXJ0KSArIHN0YXJ0O1xuICAgIGZvciAobGV0IGsgPSBzdGFydDsgayA8IHZsZW47IGsrKykge1xuICAgICAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSB8PSAxIDw8IGs7XG4gICAgfVxuICAgIGxldCBzY29yZSA9IG07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICAgICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICAgICAgc2NvcmUgKz0gKHBoID4+PiAobSAtIDEpKSAmIDE7XG4gICAgICAgIHNjb3JlIC09IChtaCA+Pj4gKG0gLSAxKSkgJiAxO1xuICAgICAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgobWggPj4+IDMxKSBeIG1iKSB7XG4gICAgICAgICAgICBtaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICAgIH1cbiAgICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgICAgbWggPSAobWggPDwgMSkgfCBtYjtcbiAgICAgICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgICAgIG12ID0gcGggJiB4djtcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgdmxlbjsgaysrKSB7XG4gICAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHNjb3JlO1xufTtcbmNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYS5sZW5ndGggPCBiLmxlbmd0aCkge1xuICAgICAgICBjb25zdCB0bXAgPSBiO1xuICAgICAgICBiID0gYTtcbiAgICAgICAgYSA9IHRtcDtcbiAgICB9XG4gICAgaWYgKGIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBhLmxlbmd0aDtcbiAgICB9XG4gICAgaWYgKGEubGVuZ3RoIDw9IDMyKSB7XG4gICAgICAgIHJldHVybiBteWVyc18zMihhLCBiKTtcbiAgICB9XG4gICAgcmV0dXJuIG15ZXJzX3goYSwgYik7XG59O1xuY29uc3QgY2xvc2VzdCA9IChzdHIsIGFycikgPT4ge1xuICAgIGxldCBtaW5fZGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICBsZXQgbWluX2luZGV4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBkaXN0ID0gZGlzdGFuY2Uoc3RyLCBhcnJbaV0pO1xuICAgICAgICBpZiAoZGlzdCA8IG1pbl9kaXN0YW5jZSkge1xuICAgICAgICAgICAgbWluX2Rpc3RhbmNlID0gZGlzdDtcbiAgICAgICAgICAgIG1pbl9pbmRleCA9IGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFyclttaW5faW5kZXhdO1xufTtcbmV4cG9ydCB7IGNsb3Nlc3QsIGRpc3RhbmNlIH07XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvamFyby1hbmQtamFyby13aW5rbGVyLXNpbWlsYXJpdHkvXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphcm9XaW5rbGVyID0gZXhwb3J0cy5qYXJvID0gdm9pZCAwO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBFeGl0IGVhcmx5IGlmIGVpdGhlciBhcmUgZW1wdHkuXG4gICAgaWYgKHN0cjEubGVuZ3RoID09PSAwIHx8IHN0cjIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyIGlmIGNhc2Utc2Vuc2l0aXZlIGlzIGZhbHNlLlxuICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgc3RyMSA9IHN0cjEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgc3RyMiA9IHN0cjIudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgLy8gRXhhY3QgbWF0Y2hcbiAgICBpZiAoc3RyMSA9PT0gc3RyMikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgLy8gTnVtYmVyIG9mIG1hdGNoZXNcbiAgICB2YXIgbSA9IDA7XG4gICAgLy8gTGVuZ3RoIG9mIHR3byBTdHJpbmdzXG4gICAgdmFyIGxlbjEgPSBzdHIxLmxlbmd0aDtcbiAgICB2YXIgbGVuMiA9IHN0cjIubGVuZ3RoO1xuICAgIC8vIE1heGltdW0gZGlzdGFuY2VcbiAgICB2YXIgd2luZG93ID0gTWF0aC5mbG9vcihNYXRoLm1heChsZW4xLCBsZW4yKSAvIDIpIC0gMTtcbiAgICAvLyBIYXNoIGZvciBtYXRjaGVzXG4gICAgdmFyIHN0cjFIYXNoID0gbmV3IEFycmF5KGxlbjEpO1xuICAgIHZhciBzdHIySGFzaCA9IG5ldyBBcnJheShsZW4yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgaSAtIHdpbmRvdyk7IGogPD0gTWF0aC5taW4obGVuMiwgaSArIHdpbmRvdyArIDEpOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghc3RyMUhhc2hbaV0gJiYgIXN0cjJIYXNoW2pdICYmIHN0cjFbaV0gPT09IHN0cjJbal0pIHtcbiAgICAgICAgICAgICAgICArK207XG4gICAgICAgICAgICAgICAgc3RyMUhhc2hbaV0gPSBzdHIySGFzaFtqXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdCBlYXJseSBpZiBubyBtYXRjaGVzIHdlcmUgZm91bmQuXG4gICAgaWYgKG0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvdW50IHRoZSB0cmFuc3Bvc2l0aW9ucy5cbiAgICB2YXIgdCA9IDA7XG4gICAgdmFyIHBvaW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBpZiAoc3RyMUhhc2hbaV0pIHtcbiAgICAgICAgICAgIHdoaWxlICghc3RyMkhhc2hbcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIxLmNoYXJBdChpKSAhPT0gc3RyMi5jaGFyQXQocG9pbnQrKykpIHtcbiAgICAgICAgICAgICAgICB0Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdCAvPSAyO1xuICAgIHJldHVybiAobSAvIGxlbjEgKyBtIC8gbGVuMiArIChtIC0gdCkgLyBtKSAvIDM7XG59XG5leHBvcnRzLmphcm8gPSBqYXJvO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvV2lua2xlcihzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gSmFybyBEaXN0YW5jZVxuICAgIHZhciBqYXJvRGlzdCA9IGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucyk7XG4gICAgLy8gU2FtZSBwcmVmaXggbGVuZ3RoLCBtYXhpdW0gaXMgNFxuICAgIHZhciBwcmVmaXggPSAwO1xuICAgIGlmIChqYXJvRGlzdCA+IDAuNykge1xuICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRoLm1pbihzdHIxLmxlbmd0aCwgc3RyMi5sZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChzdHIxW2ldID09PSBzdHIyW2ldICYmIGkgPCA0ICYmIGkgPCBtaW5JbmRleCkge1xuICAgICAgICAgICAgKytwcmVmaXg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgamFyb0Rpc3QgKz0gMC4xICogcHJlZml4ICogKDEgLSBqYXJvRGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBqYXJvRGlzdDtcbn1cbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBqYXJvV2lua2xlcjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0IHsgZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyBBdmFpbGFibGVNZXRyaWNzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdHlwZWQtbWV0cmljcyc7XG5pbXBvcnQgeyBUQUdTIH0gZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyB9IGZyb20gJy4uL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlcyhjb2wsIHNlcSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ0FycmF5ID0gY29sLnRvTGlzdCgpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc3RyaW5nQXJyYXkubGVuZ3RoKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHN0cmluZ0FycmF5W2ldID8gQXZhaWxhYmxlTWV0cmljc1snU3RyaW5nJ11bJ0xldmVuc2h0ZWluJ10oc3RyaW5nQXJyYXlbaV0sIHNlcSkgOiBudWxsO1xuICAgICAgICAgICAgZGlzdGFuY2VzW2ldID0gZGlzdGFuY2UgPyBkaXN0YW5jZSAvIE1hdGgubWF4KHN0cmluZ0FycmF5W2ldLmxlbmd0aCwgc2VxLmxlbmd0aCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXN0YW5jZXM7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmLCBjb2xOYW1lLCBzaW1BcnIpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc2ltQXJyLmxlbmd0aCkuZmlsbChudWxsKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGYucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBkaXN0YW5jZXNbaV0gPSAoeWllbGQgZ2V0RGlzdGFuY2VzKGRmLmNvbChjb2xOYW1lKSwgc2VxKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXN0YW5jZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGlzdGFuY2VzW2ldLmxlbmd0aDsgaisrKVxuICAgICAgICAgICAgICAgIGRpc3RhbmNlc1tpXVtqXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgICAgIHNpbUFycltpXSA9IERHLkNvbHVtbi5mcm9tTGlzdChERy5DT0xVTU5fVFlQRS5GTE9BVCwgJ2Rpc3RhbmNlcycsIGRpc3RhbmNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNpbUFycjtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sdGlwRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHVpLmRpdkgoW10pO1xuICAgIGNvbnN0IGNvbHVtbk5hbWVzID0gdWkuZGl2VihbXG4gICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lKSxcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuYWN0aXZpdHlDb2wubmFtZSksXG4gICAgXSk7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuZm9udFdlaWdodCA9ICdib2xkJztcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZChjb2x1bW5OYW1lcyk7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpdml0eSA9IHVpLmRpdlRleHQocGFyYW1zLmFjdGl2aXR5Q29sLmdldChtb2xJZHgpLnRvRml4ZWQoMikpO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdsZWZ0JztcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMzBweCc7XG4gICAgICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZCh1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KSksXG4gICAgICAgICAgICBhY3Rpdml0eSxcbiAgICAgICAgXSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0b29sdGlwRWxlbWVudDtcbn1cbmZ1bmN0aW9uIG1vbGVjdWxlSW5mbyhkZiwgaWR4LCBzZXFDb2xOYW1lKSB7XG4gICAgY29uc3QgZGljdCA9IHt9O1xuICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgaWYgKGNvbC5uYW1lICE9PSBzZXFDb2xOYW1lKVxuICAgICAgICAgICAgZGljdFtjb2wubmFtZV0gPSBkZi5nZXQoY29sLm5hbWUsIGlkeCk7XG4gICAgfVxuICAgIHJldHVybiB1aS50YWJsZUZyb21NYXAoZGljdCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvcFBhbmVsRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCBwcm9wUGFuZWwgPSB1aS5kaXYoKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJyB9IH0pKTtcbiAgICBjb25zdCBzZXF1ZW5jZXNBcnJheSA9IG5ldyBBcnJheSgyKTtcbiAgICBjb25zdCBhY3Rpdml0aWVzQXJyYXkgPSBuZXcgQXJyYXkoMik7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBzZXF1ZW5jZXNBcnJheVtpZHhdID0gcGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KTtcbiAgICAgICAgYWN0aXZpdGllc0FycmF5W2lkeF0gPSBwYXJhbXMuYWN0aXZpdHlDb2wuZ2V0KG1vbElkeCk7XG4gICAgfSk7XG4gICAgY29uc3QgbW9sRGlmZmVyZW5jZXMgPSB7fTtcbiAgICBjb25zdCB1bml0cyA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKFRBR1MuU0VQQVJBVE9SKTtcbiAgICBjb25zdCBzcGxpdHRlciA9IGJpby5nZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yKTtcbiAgICBjb25zdCBzdWJQYXJ0czEgPSBzcGxpdHRlcihzZXF1ZW5jZXNBcnJheVswXSk7XG4gICAgY29uc3Qgc3ViUGFydHMyID0gc3BsaXR0ZXIoc2VxdWVuY2VzQXJyYXlbMV0pO1xuICAgIGNvbnN0IGNhbnZhcyA9IGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoc3ViUGFydHMxLCBzdWJQYXJ0czIsIHVuaXRzLCBtb2xEaWZmZXJlbmNlcyk7XG4gICAgcHJvcFBhbmVsLmFwcGVuZCh1aS5kaXYoY2FudmFzLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzAwcHgnLCBvdmVyZmxvdzogJ3Njcm9sbCcgfSB9KSk7XG4gICAgcHJvcFBhbmVsLmFwcGVuZChjcmVhdGVEaWZmZXJlbmNlc1dpdGhQb3NpdGlvbnMobW9sRGlmZmVyZW5jZXMpKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZVByb3BQYW5lbEZpZWxkKCdBY3Rpdml0eSBkZWx0YScsIE1hdGguYWJzKGFjdGl2aXRpZXNBcnJheVswXSAtIGFjdGl2aXRpZXNBcnJheVsxXSkpKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZVByb3BQYW5lbEZpZWxkKCdDbGlmZicsIHBhcmFtcy5zYWxpKSk7XG4gICAgcmV0dXJuIHByb3BQYW5lbDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByb3BQYW5lbEZpZWxkKG5hbWUsIHZhbHVlKSB7XG4gICAgcmV0dXJuIHVpLmRpdkgoW1xuICAgICAgICB1aS5kaXZUZXh0KGAke25hbWV9OiBgLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZ1JpZ2h0OiAnNXB4JyB9IH0pLFxuICAgICAgICB1aS5kaXZUZXh0KHZhbHVlLnRvRml4ZWQoMikpXG4gICAgXSwgeyBzdHlsZTogeyBwYWRkaW5nVG9wOiAnNXB4JyB9IH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoc3ViUGFydHMxLCBzdWJQYXJ0czIsIHVuaXRzLCBtb2xEaWZmZXJlbmNlcykge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gMzA7XG4gICAgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGNvbnRleHQsIDAsIDAsIDAsIDMwLCBzdWJQYXJ0czEsIHN1YlBhcnRzMiwgdW5pdHMsIHRydWUsIG1vbERpZmZlcmVuY2VzKTtcbiAgICByZXR1cm4gY2FudmFzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpZmZlcmVuY2VzV2l0aFBvc2l0aW9ucyhtb2xEaWZmZXJlbmNlcykge1xuICAgIGNvbnN0IGRpdiA9IHVpLmRpdigpO1xuICAgIGlmIChPYmplY3Qua2V5cyhtb2xEaWZmZXJlbmNlcykubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBkaWZmc1BhbmVsID0gdWkuZGl2VihbXSk7XG4gICAgICAgIGRpZmZzUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dCgnUG9zJywgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcsIHdpZHRoOiAnMzBweCcsIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCcgfSB9KSxcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0RpZmZlcmVuY2UnLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkJyB9IH0pXG4gICAgICAgIF0pKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobW9sRGlmZmVyZW5jZXMpKSB7XG4gICAgICAgICAgICBtb2xEaWZmZXJlbmNlc1trZXldLnN0eWxlLmJvcmRlckJvdHRvbSA9ICcxcHggc29saWQgbGlnaHRncmF5JztcbiAgICAgICAgICAgIGRpZmZzUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICAgICAgICAgIHVpLmRpdlRleHQoKHBhcnNlSW50KGtleSkgKyAxKS50b1N0cmluZygpLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzBweCcsIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCBsaWdodGdyYXknIH0gfSksXG4gICAgICAgICAgICAgICAgbW9sRGlmZmVyZW5jZXNba2V5XVxuICAgICAgICAgICAgXSkpO1xuICAgICAgICB9XG4gICAgICAgIGRpdi5hcHBlbmQoZGlmZnNQYW5lbCk7XG4gICAgfVxuICAgIHJldHVybiBkaXY7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB7IFNlcXVlbmNlU2VhcmNoQmFzZVZpZXdlciB9IGZyb20gJy4vc2VxdWVuY2Utc2VhcmNoLWJhc2Utdmlld2VyJztcbmltcG9ydCB7IGdldE1vbm9tZXJpY01vbHMgfSBmcm9tICcuLi9jYWxjdWxhdGlvbnMvbW9ub21lckxldmVsTW9scyc7XG5pbXBvcnQgeyB1cGRhdGVEaXZJbm5lckhUTUwgfSBmcm9tICcuLi91dGlscy91aS11dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VEaXZlcnNpdHlWaWV3ZXIgZXh0ZW5kcyBTZXF1ZW5jZVNlYXJjaEJhc2VWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignZGl2ZXJzaXR5Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyTW9sSWRzID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb2x1bW5OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLmNvbXB1dGVDb21wbGV0ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cbiAgICByZW5kZXIoY29tcHV0ZURhdGEgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYmVmb3JlUmVuZGVyKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXB1dGVEYXRhICYmIHRoaXMubW9sZWN1bGVDb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lcmljTW9scyA9IHlpZWxkIGdldE1vbm9tZXJpY01vbHModGhpcy5tb2xlY3VsZUNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIC8vbmVlZCB0byBjcmVhdGUgZGYgdG8gY2FsY3VsYXRlIGZpbmdlcnByaW50c1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyaWNNb2xzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW21vbm9tZXJpY01vbHNdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJNb2xJZHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpjYWxsQ2hlbURpdmVyc2l0eVNlYXJjaCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2w6IG1vbm9tZXJpY01vbHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljTmFtZTogdGhpcy5kaXN0YW5jZU1ldHJpYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5nZXJwcmludDogdGhpcy5maW5nZXJwcmludFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc0NvbCA9IERHLkNvbHVtbi5zdHJpbmcoJ3NlcXVlbmNlJywgdGhpcy5yZW5kZXJNb2xJZHMubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmluaXQoKGkpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gdGhpcy5tb2xlY3VsZUNvbHVtbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldCh0aGlzLnJlbmRlck1vbElkc1tpXSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICByZXNDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLmZvckVhY2goKHRhZykgPT4gcmVzQ29sLnNldFRhZyh0YWcsIHRoaXMubW9sZWN1bGVDb2x1bW4uZ2V0VGFnKHRhZykpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW3Jlc0NvbF0pO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVEaXZJbm5lckhUTUwodGhpcy5yb290LCByZXNEZi5wbG90LmdyaWQoKS5yb290KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wdXRlQ29tcGxldGVkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgeyBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VTZWFyY2hCYXNlVmlld2VyIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5uYW1lID0gJyc7XG4gICAgICAgIHRoaXMubWV0cmljc1Byb3BlcnRpZXMgPSBbJ2Rpc3RhbmNlTWV0cmljJywgJ2ZpbmdlcnByaW50J107XG4gICAgICAgIHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzID0gWydNb3JnYW4nLCAnUGF0dGVybiddO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudGFncyA9IFtERy5UQUdTLlVOSVRTLCBDLlRBR1MuQUxJR05FRCwgQy5UQUdTLlNFUEFSQVRPUiwgQy5UQUdTLkFMUEhBQkVUXTtcbiAgICAgICAgdGhpcy5maW5nZXJwcmludCA9IHRoaXMuc3RyaW5nKCdmaW5nZXJwcmludCcsIHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzWzBdLCB7IGNob2ljZXM6IHRoaXMuZmluZ2VycHJpbnRDaG9pY2VzIH0pO1xuICAgICAgICB0aGlzLmxpbWl0ID0gdGhpcy5pbnQoJ2xpbWl0JywgMTApO1xuICAgICAgICB0aGlzLmRpc3RhbmNlTWV0cmljID0gdGhpcy5zdHJpbmcoJ2Rpc3RhbmNlTWV0cmljJywgQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1NbMF0sIHsgY2hvaWNlczogQ0hFTV9TSU1JTEFSSVRZX01FVFJJQ1MgfSk7XG4gICAgICAgIHRoaXMubW9sZWN1bGVDb2x1bW5OYW1lID0gdGhpcy5zdHJpbmcoJ21vbGVjdWxlQ29sdW1uTmFtZScpO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gICAgZGV0YWNoKCkge1xuICAgICAgICB0aGlzLnN1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICAgIG9uVGFibGVBdHRhY2hlZCgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaChERy5kZWJvdW5jZSh0aGlzLmRhdGFGcmFtZS5vblJvd3NSZW1vdmVkLCA1MCkuc3Vic2NyaWJlKChfKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IHJldHVybiB5aWVsZCB0aGlzLnJlbmRlcigpOyB9KSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXB1dGUgPSB0aGlzLm5hbWUgIT09ICdkaXZlcnNpdHknO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKERHLmRlYm91bmNlKHRoaXMuZGF0YUZyYW1lLm9uQ3VycmVudFJvd0NoYW5nZWQsIDUwKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChfKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7IHJldHVybiB5aWVsZCB0aGlzLnJlbmRlcihjb21wdXRlKTsgfSkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaChERy5kZWJvdW5jZSh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24ub25DaGFuZ2VkLCA1MClcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4geWllbGQgdGhpcy5yZW5kZXIoZmFsc2UpOyB9KSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKERHLmRlYm91bmNlKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KSwgNTApXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsgcmV0dXJuIHlpZWxkIHRoaXMucmVuZGVyKGZhbHNlKTsgfSkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uID0gdGhpcy5kYXRhRnJhbWUuY29sdW1ucy5ieVNlbVR5cGUoREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uTmFtZSA9IChfYSA9IHRoaXMubW9sZWN1bGVDb2x1bW4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0UHJvcGVydHkoJ2xpbWl0JykuZnJvbU9wdGlvbnMoeyBtaW46IDEsIG1heDogdGhpcy5kYXRhRnJhbWUucm93Q291bnQgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBpZiAoIXRoaXMuaW5pdGlhbGl6ZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChwcm9wZXJ0eS5uYW1lID09PSAnbW9sZWN1bGVDb2x1bW5OYW1lJykge1xuICAgICAgICAgICAgY29uc3QgY29sID0gdGhpcy5kYXRhRnJhbWUuY29sKHByb3BlcnR5LmdldCh0aGlzKSk7XG4gICAgICAgICAgICBpZiAoY29sLnNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICB0aGlzLm1vbGVjdWxlQ29sdW1uID0gY29sO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICAgIHJlbmRlcihjb21wdXRlRGF0YSA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGJlZm9yZVJlbmRlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5tb2xlY3VsZUNvbHVtbk5hbWUgJiZcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLmNvbCh0aGlzLm1vbGVjdWxlQ29sdW1uTmFtZSkuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLmVycm9yKGAke3RoaXMubW9sZWN1bGVDb2x1bW5OYW1lfSBpcyBub3QgTWFjcm9tb2xlY3VsZSB0eXBlYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCB7IFNlcXVlbmNlU2VhcmNoQmFzZVZpZXdlciB9IGZyb20gJy4vc2VxdWVuY2Utc2VhcmNoLWJhc2Utdmlld2VyJztcbmltcG9ydCB7IGdldE1vbm9tZXJpY01vbHMgfSBmcm9tICcuLi9jYWxjdWxhdGlvbnMvbW9ub21lckxldmVsTW9scyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjcmVhdGVEaWZmZXJlbmNlQ2FudmFzLCBjcmVhdGVEaWZmZXJlbmNlc1dpdGhQb3NpdGlvbnMgfSBmcm9tICcuL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyB1cGRhdGVEaXZJbm5lckhUTUwgfSBmcm9tICcuLi91dGlscy91aS11dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VTaW1pbGFyaXR5Vmlld2VyIGV4dGVuZHMgU2VxdWVuY2VTZWFyY2hCYXNlVmlld2VyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3NpbWlsYXJpdHknKTtcbiAgICAgICAgdGhpcy5za2V0Y2hlZE1vbGVjdWxlID0gJyc7XG4gICAgICAgIHRoaXMuY3VySWR4ID0gMDtcbiAgICAgICAgdGhpcy5tb2xDb2wgPSBudWxsO1xuICAgICAgICB0aGlzLmlkeHMgPSBudWxsO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IG51bGw7XG4gICAgICAgIHRoaXMuZ3JpZFNlbGVjdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRhcmdldE1vbGVjdWxlSWR4ID0gMDtcbiAgICAgICAgdGhpcy5jb21wdXRlQ29tcGxldGVkID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5jdXRvZmYgPSB0aGlzLmZsb2F0KCdjdXRvZmYnLCAwLjAxLCB7IG1pbjogMCwgbWF4OiAxIH0pO1xuICAgICAgICB0aGlzLmhvdFNlYXJjaCA9IHRoaXMuYm9vbCgnaG90U2VhcmNoJywgdHJ1ZSk7XG4gICAgfVxuICAgIGluaXQoKSB7XG4gICAgICAgIHRoaXMuaG90U2VhcmNoID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICAgIHJlbmRlcihjb21wdXRlRGF0YSA9IHRydWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmJlZm9yZVJlbmRlcigpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vbGVjdWxlQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJJZHggPSB0aGlzLmRhdGFGcmFtZS5jdXJyZW50Um93SWR4ID09IC0xID8gMCA6IHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHg7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXB1dGVEYXRhICYmICF0aGlzLmdyaWRTZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXRNb2xlY3VsZUlkeCA9IHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPT0gLTEgPyAwIDogdGhpcy5kYXRhRnJhbWUuY3VycmVudFJvd0lkeDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lcmljTW9scyA9IHlpZWxkIGdldE1vbm9tZXJpY01vbHModGhpcy5tb2xlY3VsZUNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIC8vbmVlZCB0byBjcmVhdGUgZGYgdG8gY2FsY3VsYXRlIGZpbmdlcnByaW50c1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyaWNNb2xzRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW21vbm9tZXJpY01vbHNdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGYgPSB5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdDaGVtOmNhbGxDaGVtU2ltaWxhcml0eVNlYXJjaCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmOiB0aGlzLmRhdGFGcmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbDogbW9ub21lcmljTW9scyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbGVjdWxlOiBtb25vbWVyaWNNb2xzLmdldCh0aGlzLnRhcmdldE1vbGVjdWxlSWR4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY05hbWU6IHRoaXMuZGlzdGFuY2VNZXRyaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pblNjb3JlOiB0aGlzLmN1dG9mZixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmdlcnByaW50OiB0aGlzLmZpbmdlcnByaW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlkeHMgPSBkZi5nZXRDb2woJ2luZGV4ZXMnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY29yZXMgPSBkZi5nZXRDb2woJ3Njb3JlJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9sQ29sID0gREcuQ29sdW1uLnN0cmluZygnc2VxdWVuY2UnLCB0aGlzLmlkeHMubGVuZ3RoKS5pbml0KChpKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2EgPSB0aGlzLm1vbGVjdWxlQ29sdW1uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0KChfYiA9IHRoaXMuaWR4cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldChpKSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vbENvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MuZm9yRWFjaCgodGFnKSA9PiB0aGlzLm1vbENvbC5zZXRUYWcodGFnLCB0aGlzLm1vbGVjdWxlQ29sdW1uLmdldFRhZyh0YWcpKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFt0aGlzLmlkeHMsIHRoaXMubW9sQ29sLCB0aGlzLnNjb3Jlc10pO1xuICAgICAgICAgICAgICAgICAgICByZXNEZi5vbkN1cnJlbnRSb3dDaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudFJvd0lkeCA9IHJlc0RmLmNvbCgnaW5kZXhlcycpLmdldChyZXNEZi5jdXJyZW50Um93SWR4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvcGVydHlQYW5lbChyZXNEZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3QgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JpZCA9IHJlc0RmLnBsb3QuZ3JpZCgpO1xuICAgICAgICAgICAgICAgICAgICBncmlkLmNvbCgnaW5kZXhlcycpLnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0TW9sUm93ID0gKF9hID0gdGhpcy5pZHhzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0UmF3RGF0YSgpLmZpbmRJbmRleCgoaXQpID0+IGl0ID09IHRoaXMudGFyZ2V0TW9sZWN1bGVJZHgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRTY29yZUNlbGwgPSBncmlkLmNlbGwoJ3Njb3JlJywgdGFyZ2V0TW9sUm93KTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U2NvcmVDZWxsLmNlbGwudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLnYuZ3JpZC5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZURpdklubmVySFRNTCh0aGlzLnJvb3QsIGdyaWQucm9vdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcHV0ZUNvbXBsZXRlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNyZWF0ZVByb3BlcnR5UGFuZWwocmVzRGYpIHtcbiAgICAgICAgY29uc3QgcHJvcFBhbmVsID0gdWkuZGl2KCk7XG4gICAgICAgIGNvbnN0IG1vbERpZmZlcmVuY2VzID0ge307XG4gICAgICAgIGNvbnN0IHVuaXRzID0gcmVzRGYuY29sKCdzZXF1ZW5jZScpLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gcmVzRGYuY29sKCdzZXF1ZW5jZScpLmdldFRhZyhDLlRBR1MuU0VQQVJBVE9SKTtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzMSA9IHNwbGl0dGVyKHRoaXMubW9sZWN1bGVDb2x1bW4uZ2V0KHRoaXMudGFyZ2V0TW9sZWN1bGVJZHgpKTtcbiAgICAgICAgY29uc3Qgc3ViUGFydHMyID0gc3BsaXR0ZXIocmVzRGYuZ2V0KCdzZXF1ZW5jZScsIHJlc0RmLmN1cnJlbnRSb3dJZHgpKTtcbiAgICAgICAgY29uc3QgY2FudmFzID0gY3JlYXRlRGlmZmVyZW5jZUNhbnZhcyhzdWJQYXJ0czEsIHN1YlBhcnRzMiwgdW5pdHMsIG1vbERpZmZlcmVuY2VzKTtcbiAgICAgICAgcHJvcFBhbmVsLmFwcGVuZCh1aS5kaXYoY2FudmFzLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzAwcHgnLCBvdmVyZmxvdzogJ3Njcm9sbCcgfSB9KSk7XG4gICAgICAgIGlmIChzdWJQYXJ0czEubGVuZ3RoICE9PSBzdWJQYXJ0czIubGVuZ3RoKSB7XG4gICAgICAgICAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdlYoW1xuICAgICAgICAgICAgICAgIHVpLmRpdlRleHQoYERpZmZlcmVudCBzZXF1ZW5jZSBsZW5ndGg6YCwgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcgfSB9KSxcbiAgICAgICAgICAgICAgICB1aS5kaXZUZXh0KGB0YXJnZXQ6ICR7c3ViUGFydHMxLmxlbmd0aH0gbW9ub21lcnNgKSxcbiAgICAgICAgICAgICAgICB1aS5kaXZUZXh0KGBzZWxlY3RlZDogJHtzdWJQYXJ0czIubGVuZ3RofSBtb25vbWVyc2ApXG4gICAgICAgICAgICBdLCB7IHN0eWxlOiB7IHBhZGRpbmdCb3R0b206ICcxMHB4JyB9IH0pKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9wUGFuZWwuYXBwZW5kKGNyZWF0ZURpZmZlcmVuY2VzV2l0aFBvc2l0aW9ucyhtb2xEaWZmZXJlbmNlcykpO1xuICAgICAgICBjb25zdCBhY2MgPSB1aS5hY2NvcmRpb24oKTtcbiAgICAgICAgY29uc3QgYWNjSWNvbiA9IHVpLmVsZW1lbnQoJ2knKTtcbiAgICAgICAgYWNjSWNvbi5jbGFzc05hbWUgPSAnZ3Jvay1pY29uIHN2Zy1pY29uIHN2Zy12aWV3LWxheW91dCc7XG4gICAgICAgIGFjYy5hZGRUaXRsZSh1aS5zcGFuKFthY2NJY29uLCB1aS5sYWJlbChgU2ltaWxhcml0eSBzZWFyY2hgKV0pKTtcbiAgICAgICAgYWNjLmFkZFBhbmUoJ0RpZmZlcmVjZXMnLCAoKSA9PiBwcm9wUGFuZWwsIHRydWUpO1xuICAgICAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZSc7XG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VTcGFjZShzcGFjZVBhcmFtcykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGNvZGUgZGVwcmVjYXRlZCBzaW5jZSBzZXFDb2wgaXMgZW5jb2RlZFxuICAgICAgICAvKiAgICBsZXQgcHJlcGFyZWREYXRhOiBhbnk7XG4gICAgICAgICAgaWYgKCEoc3BhY2VQYXJhbXMuc2VxQ29sIS50YWdzW0RHLlRBR1MuVU5JVFNdID09PSAnSEVMTScpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXAgPSBzcGFjZVBhcmFtcy5zZXFDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgICAgICBjb25zdCBzZXBGaW5hbCA9IHNlcCA/IHNlcCA9PT0gJy4nID8gJ1xcXFxcXC4nIDogc2VwIDogJy0nO1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHNlcEZpbmFsLCAnZycpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbJ1N0cmluZyddKS5pbmNsdWRlcyhzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljKSlcbiAgICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLm1hcCgodjogc3RyaW5nKSA9PiB2LnJlcGxhY2UocmVnZXgsICcnKSkgYXMgc3RyaW5nW107XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCk7XG4gICAgICAgICAgfSAgKi9cbiAgICAgICAgY29uc3Qgc2VxdWVuY2VTcGFjZVJlc3VsdCA9IHlpZWxkIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCksIHNwYWNlUGFyYW1zLm1ldGhvZE5hbWUsIHNwYWNlUGFyYW1zLnNpbWlsYXJpdHlNZXRyaWMsIHNwYWNlUGFyYW1zLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb2xzID0gc3BhY2VQYXJhbXMuZW1iZWRBeGVzTmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkobmFtZSwgc2VxdWVuY2VTcGFjZVJlc3VsdC5lbWJlZGRpbmdbaW5kZXhdKSk7XG4gICAgICAgIHJldHVybiB7IGRpc3RhbmNlOiBzZXF1ZW5jZVNwYWNlUmVzdWx0LmRpc3RhbmNlLCBjb29yZGluYXRlczogbmV3IERHLkNvbHVtbkxpc3QoY29scykgfTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbWJlZGRpbmdDb2xzTmFtZXMoZGYpIHtcbiAgICBjb25zdCBheGVzID0gWydFbWJlZF9YJywgJ0VtYmVkX1knXTtcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGF4ZXNbMF0pKS5sZW5ndGggKyAxO1xuICAgIHJldHVybiBheGVzLm1hcCgoaXQpID0+IGAke2l0fV8ke2NvbE5hbWVJbmR9YCk7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRIZWxtTW9ub21lcnMgfSBmcm9tICcuLi9wYWNrYWdlJztcbmNvbnN0IFYyMDAwX0FUT01fTkFNRV9QT1MgPSAzMTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRNb25vbWVyaWNNb2xzKG1jb2wsIHBhdHRlcm4gPSBmYWxzZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IG1jb2wudGFnc1tDLlRBR1MuU0VQQVJBVE9SXTtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBtY29sLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyID0gYmlvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICBsZXQgbW9sVjMwMDBBcnJheTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNEaWN0ID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHVuaXRzID09PSAnaGVsbScgP1xuICAgICAgICAgICAgZ2V0SGVsbU1vbm9tZXJzKG1jb2wpIDogT2JqZWN0LmtleXMoYmlvLmdldFN0YXRzKG1jb2wsIDAsIHNwbGl0dGVyKS5mcmVxKS5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gJycpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgbW9ub21lcnNEaWN0LnNldChtb25vbWVyc1tpXSwgYCR7aSArIDF9YCk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ2hlbG0nKSB7XG4gICAgICAgICAgICBtb2xWMzAwMEFycmF5ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnSEVMTTpnZXRNb2xGaWxlcycsIHsgY29sOiBtY29sIH0pO1xuICAgICAgICAgICAgbW9sVjMwMDBBcnJheSA9IGNoYW5nZVYyMDAwVG9WMzAwMChtb2xWMzAwMEFycmF5LCBtb25vbWVyc0RpY3QsIHBhdHRlcm4pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbW9sVjMwMDBBcnJheSA9IG5ldyBBcnJheShtY29sLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1jb2wubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXF1ZW5jZU1vbm9tZXJzID0gc3BsaXR0ZXIobWNvbC5nZXQoaSkpLmZpbHRlcigoaXQpID0+IGl0ICE9PSAnJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sVjMwMDAgPSBtb2xWMzAwMEZyb21Ob25IZWxtU2VxdWVuY2Uoc2VxdWVuY2VNb25vbWVycywgbW9ub21lcnNEaWN0LCBwYXR0ZXJuKTtcbiAgICAgICAgICAgICAgICBtb2xWMzAwMEFycmF5W2ldID0gbW9sVjMwMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnbW9ub21lcmljTW9scycsIG1vbFYzMDAwQXJyYXkpO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gbW9sVjMwMDBGcm9tTm9uSGVsbVNlcXVlbmNlKG1vbm9tZXJzLCBtb25vbWVyc0RpY3QsIHBhdHRlcm4gPSBmYWxzZSkge1xuICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgRGF0YWdyb2sgbWFjcm9tb2xlY3VsZSBoYW5kbGVyXG5cbiAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxuTSAgVjMwIEJFR0lOIENUQUJcbmA7XG4gICAgbW9sVjMwMDAgKz0gYE0gIFYzMCBDT1VOVFMgJHttb25vbWVycy5sZW5ndGh9ICR7bW9ub21lcnMubGVuZ3RoIC0gMX0gMCAwIDBcXG5gO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgQkVHSU4gQVRPTVxcbic7XG4gICAgZm9yIChsZXQgYXRvbVJvd0kgPSAwOyBhdG9tUm93SSA8IG1vbm9tZXJzLmxlbmd0aDsgYXRvbVJvd0krKykge1xuICAgICAgICBtb2xWMzAwMCArPSBwYXR0ZXJuID9cbiAgICAgICAgICAgIGBNICBWMzAgJHthdG9tUm93SSArIDF9IFIke21vbm9tZXJzRGljdC5nZXQobW9ub21lcnNbYXRvbVJvd0ldKX0gMC4wMDAgMC4wMDAgMCAwXFxuYCA6XG4gICAgICAgICAgICBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSBBdCAwLjAwMCAwLjAwMCAwIDAgTUFTUz0ke21vbm9tZXJzRGljdC5nZXQobW9ub21lcnNbYXRvbVJvd0ldKX1cXG5gO1xuICAgIH1cbiAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBBVE9NXFxuJztcbiAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIGZvciAobGV0IGJvbmRSb3dJID0gMDsgYm9uZFJvd0kgPCBtb25vbWVycy5sZW5ndGggLSAxOyBib25kUm93SSsrKVxuICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwICR7Ym9uZFJvd0kgKyAxfSAxICR7Ym9uZFJvd0kgKyAxfSAke2JvbmRSb3dJICsgMn1cXG5gO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIENUQUJcXG4nO1xuICAgIG1vbFYzMDAwICs9ICdNICBFTkQnO1xuICAgIHJldHVybiBtb2xWMzAwMDtcbn1cbmZ1bmN0aW9uIGNoYW5nZVYyMDAwVG9WMzAwMChtb2xzLCBkaWN0LCBwYXR0ZXJuID0gZmFsc2UpIHtcbiAgICBjb25zdCBtb2xzQXJyYXkgPSBuZXcgQXJyYXkobW9scy5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3VyUG9zID0gMDtcbiAgICAgICAgbGV0IGVuZFBvcyA9IDA7XG4gICAgICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgICBEYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBWMzAgQkVHSU4gQ1RBQlxuYDtcbiAgICAgICAgY29uc3QgbW9sID0gbW9scy5nZXQoaSk7XG4gICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxO1xuICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgIGNvbnN0IGF0b21Nb25vbWVyQ291bnRzID0gcGFyc2VJbnQobW9sLnN1YnN0cmluZyhjdXJQb3MsIGN1clBvcyArIDMpKTtcbiAgICAgICAgY29uc3QgYm9uZE1vbm9tZXJDb3VudHMgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcyArIDMsIGN1clBvcyArIDYpKTtcbiAgICAgICAgbW9sVjMwMDAgKz0gYE0gIFYzMCBDT1VOVFMgJHthdG9tTW9ub21lckNvdW50c30gJHtib25kTW9ub21lckNvdW50c30gMCAwIDBcXG5gO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgICAgICBmb3IgKGxldCBhdG9tUm93SSA9IDA7IGF0b21Sb3dJIDwgYXRvbU1vbm9tZXJDb3VudHM7IGF0b21Sb3dJKyspIHtcbiAgICAgICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMSArIFYyMDAwX0FUT01fTkFNRV9QT1M7XG4gICAgICAgICAgICBlbmRQb3MgPSBtb2wuaW5kZXhPZignICcsIGN1clBvcyk7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyTmFtZSA9IG1vbC5zdWJzdHJpbmcoY3VyUG9zLCBlbmRQb3MpO1xuICAgICAgICAgICAgbW9sVjMwMDAgKz0gcGF0dGVybiA/XG4gICAgICAgICAgICAgICAgYE0gIFYzMCAke2F0b21Sb3dJICsgMX0gUiR7ZGljdC5nZXQobW9ub21lck5hbWUpfSAwLjAwMCAwLjAwMCAwIDBcXG5gIDpcbiAgICAgICAgICAgICAgICBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSBBdCAwLjAwMCAwLjAwMCAwIDAgTUFTUz0ke2RpY3QuZ2V0KG1vbm9tZXJOYW1lKX1cXG5gO1xuICAgICAgICB9XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEFUT01cXG4nO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgICAgICBmb3IgKGxldCBib25kUm93SSA9IDA7IGJvbmRSb3dJIDwgYm9uZE1vbm9tZXJDb3VudHM7IGJvbmRSb3dJKyspIHtcbiAgICAgICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TW9ub21lciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zLCBjdXJQb3MgKyAzKS50cmltKCkpO1xuICAgICAgICAgICAgY29uc3Qgc2Vjb25kTW9ub21lciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgMywgY3VyUG9zICsgNikudHJpbSgpKTtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gcGFyc2VJbnQobW9sLnN1YnN0cmluZyhjdXJQb3MgKyA2LCBjdXJQb3MgKyA5KS50cmltKCkpO1xuICAgICAgICAgICAgbW9sVjMwMDAgKz0gYE0gIFYzMCAke2JvbmRSb3dJICsgMX0gJHtvcmRlcn0gJHtmaXJzdE1vbm9tZXJ9ICR7c2Vjb25kTW9ub21lcn1cXG5gO1xuICAgICAgICB9XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIEVORCc7XG4gICAgICAgIG1vbHNBcnJheVtpXSA9IG1vbFYzMDAwO1xuICAgIH1cbiAgICByZXR1cm4gbW9sc0FycmF5O1xufVxuIiwiZXhwb3J0IGNvbnN0IGpzb25TZGZNb25vbWVyTGliRGljdCA9IHtcbiAgICAnbW9ub21lclR5cGUnOiBudWxsLFxuICAgICdzbWlsZXMnOiBudWxsLFxuICAgICduYW1lJzogJ01vbm9tZXJOYW1lJyxcbiAgICAnYXV0aG9yJzogbnVsbCxcbiAgICAnbW9sZmlsZSc6ICdtb2xlY3VsZScsXG4gICAgJ25hdHVyYWxBbmFsb2cnOiAnTW9ub21lck5hdHVyYWxBbmFsb2dDb2RlJyxcbiAgICAncmdyb3Vwcyc6ICdNb25vbWVyQ2FwcycsXG4gICAgJ2NyZWF0ZURhdGUnOiBudWxsLFxuICAgICdpZCc6IG51bGwsXG4gICAgJ3BvbHltZXJUeXBlJzogJ01vbm9tZXJUeXBlJyxcbiAgICAnc3ltYm9sJzogJ01vbm9tZXJDb2RlJ1xufTtcbmV4cG9ydCBjb25zdCBSR1JPVVBfRklFTEQgPSAncmdyb3Vwcyc7XG5leHBvcnQgY29uc3QgQ0FQX0dST1VQX1NNSUxFUyA9ICdjYXBHcm91cFNtaWxlcyc7XG5leHBvcnQgY29uc3QgUkdST1VQX0FMVEVSX0lEID0gJ2FsdGVybmF0ZUlkJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfTkFNRSA9ICdjYXBHcm91cE5hbWUnO1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9MQUJFTCA9ICdsYWJlbCc7XG5leHBvcnQgY29uc3QgTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBTREZfTU9OT01FUl9OQU1FID0gJ01vbm9tZXJOYW1lJztcbi8vIHJhbmdlIG9mIGhleCBudWJlcnMgdXNlZCBpbiBQZXBTZWEgbGlicmFyeSB0byBlbmRvZGUgbW9ub21lcnNcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NSU4gPSAweDEwMDtcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NQVggPSAweDQwQTtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLyogRG8gbm90IGNoYW5nZSB0aGVzZSBpbXBvcnQgbGluZXMgdG8gbWF0Y2ggZXh0ZXJuYWwgbW9kdWxlcyBpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuZXhwb3J0IGNvbnN0IF9wYWNrYWdlID0gbmV3IERHLlBhY2thZ2UoKTtcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyLCBNb25vbWVyQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFZkUmVnaW9uc1ZpZXdlciB9IGZyb20gJy4vdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQgeyBydW5LYWxpZ24gfSBmcm9tICcuL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUFsaWdubWVudCB9IGZyb20gJy4vc2VxX2FsaWduJztcbmltcG9ydCB7IGdldEVtYmVkZGluZ0NvbHNOYW1lcywgc2VxdWVuY2VTcGFjZSB9IGZyb20gJy4vYW5hbHlzaXMvc2VxdWVuY2Utc3BhY2UnO1xuaW1wb3J0IHsgZ2V0QWN0aXZpdHlDbGlmZnMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9wUGFuZWxFbGVtZW50LCBjcmVhdGVUb29sdGlwRWxlbWVudCwgZ2V0U2ltaWxhcml0aWVzTWFyaXggfSBmcm9tICcuL2FuYWx5c2lzL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYsIGVuY29kZU1vbm9tZXJzLCBnZXRNb2xmaWxlc0Zyb21TZXEsIEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi91dGlscy9hdG9taWMtd29ya3MnO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuL3V0aWxzL2NvbnZlcnQnO1xuaW1wb3J0IHsgZ2V0TWFjcm9Nb2xDb2x1bW5Qcm9wZXJ0eVBhbmVsLCByZXByZXNlbnRhdGlvbnNXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvcmVwcmVzZW50YXRpb25zJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5pbXBvcnQgeyBzcGxpdEFsaWduZWRTZXF1ZW5jZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTZXF1ZW5jZVNpbWlsYXJpdHlWaWV3ZXIgfSBmcm9tICcuL2FuYWx5c2lzL3NlcXVlbmNlLXNpbWlsYXJpdHktdmlld2VyJztcbmltcG9ydCB7IFNlcXVlbmNlRGl2ZXJzaXR5Vmlld2VyIH0gZnJvbSAnLi9hbmFseXNpcy9zZXF1ZW5jZS1kaXZlcnNpdHktdmlld2VyJztcbmltcG9ydCB7IHN1YnN0cnVjdHVyZVNlYXJjaERpYWxvZyB9IGZyb20gJy4vc3Vic3RydWN0dXJlLXNlYXJjaC9zdWJzdHJ1Y3R1cmUtc2VhcmNoJztcbmltcG9ydCB7IHNhdmVBc0Zhc3RhVUkgfSBmcm9tICcuL3V0aWxzL3NhdmUtYXMtZmFzdGEnO1xuaW1wb3J0IHsgQmlvU3Vic3RydWN0dXJlRmlsdGVyIH0gZnJvbSAnLi93aWRnZXRzL2Jpby1zdWJzdHJ1Y3R1cmUtZmlsdGVyJztcbi8vdGFnczogaW5pdFxuZXhwb3J0IGZ1bmN0aW9uIGluaXRCaW8oKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICB9KTtcbn1cbi8vbmFtZTogZmFzdGFTZXF1ZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogc2VxdWVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGUsIHVuaXRzPWZhc3RhXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGZhc3RhU2VxdWVuY2VDZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBNYWNyb21vbGVjdWxlU2VxdWVuY2VDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogU2VxdWVuY2UgUmVuZGVyZXJcbi8vaW5wdXQ6IGNvbHVtbiBtb2xDb2x1bW4ge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL3RhZ3M6IHBhbmVsXG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvTW9sQ29sdW1uUHJvcGVydHlQYW5lbChtb2xDb2x1bW4pIHtcbiAgICByZXR1cm4gZ2V0TWFjcm9Nb2xDb2x1bW5Qcm9wZXJ0eVBhbmVsKG1vbENvbHVtbik7XG59XG4vL25hbWU6IHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9c2VwYXJhdG9yXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlcigpO1xufVxuZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucyA9IFtdLCBhbGxvd2VkQWxwaGFiZXRzID0gW10pIHtcbiAgICBjb25zdCBbcmVzLCBtc2ddID0gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMsIGFsbG93ZWRBbHBoYWJldHMpO1xuICAgIGlmICghcmVzKVxuICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcobXNnKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSW5wdXRDb2x1bW4oY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGxldCByZXMgPSB0cnVlO1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBjb25zdCB1aCA9IG5ldyBiaW8uVW5pdHNIYW5kbGVyKGNvbCk7XG4gICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpIHtcbiAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKG5hbWUgKyAnIGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHNlbWFudGljIHR5cGUnKTtcbiAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBub3RhdGlvbiA9IHVoLm5vdGF0aW9uO1xuICAgICAgICBpZiAoYWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAhYWxsb3dlZE5vdGF0aW9ucy5zb21lKChuKSA9PiBub3RhdGlvbi50b1VwcGVyQ2FzZSgpID09IChuLnRvVXBwZXJDYXNlKCkpKSkge1xuICAgICAgICAgICAgY29uc3Qgbm90YXRpb25BZGQgPSBhbGxvd2VkTm90YXRpb25zLmxlbmd0aCA9PSAwID8gJ2FueSBub3RhdGlvbicgOlxuICAgICAgICAgICAgICAgIChgbm90YXRpb24ke2FsbG93ZWROb3RhdGlvbnMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSAke2FsbG93ZWROb3RhdGlvbnMubWFwKChuKSA9PiBgXCIke259XCJgKS5qb2luKCcsICcpfSBgKTtcbiAgICAgICAgICAgIG1zZyA9IGAke25hbWV9IGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHdpdGggJHtub3RhdGlvbkFkZH0uYDtcbiAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF1aC5pc0hlbG0oKSkge1xuICAgICAgICAgICAgLy8gYWxwaGFiZXQgaXMgbm90IHNwZWNpZmllZCBmb3IgJ2hlbG0nIG5vdGF0aW9uXG4gICAgICAgICAgICBjb25zdCBhbHBoYWJldCA9IHVoLmFscGhhYmV0O1xuICAgICAgICAgICAgaWYgKGFsbG93ZWRBbHBoYWJldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICFhbGxvd2VkQWxwaGFiZXRzLnNvbWUoKGEpID0+IGFscGhhYmV0LnRvVXBwZXJDYXNlKCkgPT0gKGEudG9VcHBlckNhc2UoKSkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRBZGQgPSBhbGxvd2VkQWxwaGFiZXRzLmxlbmd0aCA9PSAwID8gJ2FueSBhbHBoYWJldCcgOlxuICAgICAgICAgICAgICAgICAgICAoYGFscGhhYmV0JHthbGxvd2VkQWxwaGFiZXRzLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gJHthbGxvd2VkQWxwaGFiZXRzLm1hcCgoYSkgPT4gYFwiJHthfVwiYCkuam9pbignLCAnKX0uYCk7XG4gICAgICAgICAgICAgICAgbXNnID0gYCR7bmFtZX0gKyAnIGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHdpdGggYWxwaGFiZXQgJHthbHBoYWJldEFkZH0uYDtcbiAgICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW3JlcywgbXNnXTtcbn1cbi8vbmFtZTogc2VxdWVuY2VBbGlnbm1lbnRcbi8vaW5wdXQ6IHN0cmluZyBhbGlnblR5cGUge2Nob2ljZXM6IFsnTG9jYWwgYWxpZ25tZW50JywgJ0dsb2JhbCBhbGlnbm1lbnQnXX1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4vL2lucHV0OiBzdHJpbmcgYWxpZ25UYWJsZSB7Y2hvaWNlczogWydBVVRPJywgJ05VQ0xFT1RJREVTJywgJ0JMT1NVTTQ1JywgJ0JMT1NVTTUwJywnQkxPU1VNNjInLCdCTE9TVU04MCcsJ0JMT1NVTTkwJywnUEFNMzAnLCdQQU03MCcsJ1BBTTI1MCcsJ1NDSE5FSURFUicsJ1RSQU5TJ119XG4vL2lucHV0OiBkb3VibGUgZ2FwXG4vL2lucHV0OiBzdHJpbmcgc2VxMVxuLy9pbnB1dDogc3RyaW5nIHNlcTJcbi8vb3V0cHV0OiBvYmplY3QgcmVzXG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VBbGlnbm1lbnQoYWxpZ25UeXBlLCBhbGlnblRhYmxlLCBnYXAsIHNlcTEsIHNlcTIpIHtcbiAgICBjb25zdCB0b0FsaWduID0gbmV3IFNlcXVlbmNlQWxpZ25tZW50KHNlcTEsIHNlcTIsIGdhcCwgYWxpZ25UYWJsZSk7XG4gICAgY29uc3QgcmVzID0gYWxpZ25UeXBlID09ICdMb2NhbCBhbGlnbm1lbnQnID8gdG9BbGlnbi5zbWl0aFdhdGVybWFuKCkgOiB0b0FsaWduLm5lZWRsZW1hbld1bmNoKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbi8vbmFtZTogV2ViTG9nb1xuLy9kZXNjcmlwdGlvbjogV2ViTG9nbyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB3ZWJMb2dvVmlld2VyKCkge1xuICAgIHJldHVybiBuZXcgYmlvLldlYkxvZ28oKTtcbn1cbi8vbmFtZTogVmRSZWdpb25zXG4vL2Rlc2NyaXB0aW9uOiBWLURvbWFpbiByZWdpb25zIHZpZXdlclxuLy90YWdzOiB2aWV3ZXIsIHBhbmVsXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHZkUmVnaW9uVmlld2VyKCkge1xuICAgIHJldHVybiBuZXcgVmRSZWdpb25zVmlld2VyKCk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZXF1ZW5jZSBBY3Rpdml0eSBDbGlmZnMuLi5cbi8vbmFtZTogU2VxdWVuY2UgQWN0aXZpdHkgQ2xpZmZzXG4vL2Rlc2NyaXB0aW9uOiBkZXRlY3QgYWN0aXZpdHkgY2xpZmZzXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGUgW0lucHV0IGRhdGEgdGFibGVdXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbi8vaW5wdXQ6IGNvbHVtbiBhY3Rpdml0aWVzXG4vL2lucHV0OiBkb3VibGUgc2ltaWxhcml0eSA9IDgwIFtTaW1pbGFyaXR5IGN1dG9mZl1cbi8vaW5wdXQ6IHN0cmluZyBtZXRob2ROYW1lIHsgY2hvaWNlczpbXCJVTUFQXCIsIFwidC1TTkVcIiwgXCJTUEVcIl0gfVxuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2aXR5Q2xpZmZzKGRmLCBtYWNyb01vbGVjdWxlLCBhY3Rpdml0aWVzLCBzaW1pbGFyaXR5LCBtZXRob2ROYW1lKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCFjaGVja0lucHV0Q29sdW1uVWkobWFjcm9Nb2xlY3VsZSwgJ0FjdGl2aXR5IENsaWZmcycpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbmNvZGVkQ29sID0gZW5jb2RlTW9ub21lcnMobWFjcm9Nb2xlY3VsZSk7XG4gICAgICAgIGlmICghZW5jb2RlZENvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgYXhlc05hbWVzID0gZ2V0RW1iZWRkaW5nQ29sc05hbWVzKGRmKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgICdTUEUnOiB7IGN5Y2xlczogMjAwMCwgbGFtYmRhOiAxLjAsIGRsYW1iZGE6IDAuMDAwNSB9LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0YWdzID0ge1xuICAgICAgICAgICAgJ3VuaXRzJzogbWFjcm9Nb2xlY3VsZS50YWdzWyd1bml0cyddLFxuICAgICAgICAgICAgJ2FsaWduZWQnOiBtYWNyb01vbGVjdWxlLnRhZ3NbJ2FsaWduZWQnXSxcbiAgICAgICAgICAgICdzZXBhcmF0b3InOiBtYWNyb01vbGVjdWxlLnRhZ3NbJ3NlcGFyYXRvciddLFxuICAgICAgICAgICAgJ2FscGhhYmV0JzogbWFjcm9Nb2xlY3VsZS50YWdzWydhbHBoYWJldCddLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzcCA9IHlpZWxkIGdldEFjdGl2aXR5Q2xpZmZzKGRmLCBtYWNyb01vbGVjdWxlLCBlbmNvZGVkQ29sLCBheGVzTmFtZXMsICdBY3Rpdml0eSBjbGlmZnMnLCBhY3Rpdml0aWVzLCBzaW1pbGFyaXR5LCAnTGV2ZW5zaHRlaW4nLCBtZXRob2ROYW1lLCBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUsIHRhZ3MsIHNlcXVlbmNlU3BhY2UsIGdldFNpbWlsYXJpdGllc01hcml4LCBjcmVhdGVUb29sdGlwRWxlbWVudCwgY3JlYXRlUHJvcFBhbmVsRWxlbWVudCwgb3B0aW9uc1ttZXRob2ROYW1lXSk7XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbi8vdG9wLW1lbnU6IEJpbyB8IFNlcXVlbmNlIFNwYWNlLi4uXG4vL25hbWU6IFNlcXVlbmNlIFNwYWNlXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbi8vaW5wdXQ6IGNvbHVtbiBtYWNyb01vbGVjdWxlIHsgc2VtVHlwZTogTWFjcm9tb2xlY3VsZSB9XG4vL2lucHV0OiBzdHJpbmcgbWV0aG9kTmFtZSB7IGNob2ljZXM6W1wiVU1BUFwiLCBcInQtU05FXCIsIFwiU1BFXCJdIH1cbi8vaW5wdXQ6IHN0cmluZyBzaW1pbGFyaXR5TWV0cmljIHsgY2hvaWNlczpbXCJMZXZlbnNodGVpblwiLCBcIlRhbmltb3RvXCJdIH1cbi8vaW5wdXQ6IGJvb2wgcGxvdEVtYmVkZGluZ3MgPSB0cnVlXG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VTcGFjZVRvcE1lbnUodGFibGUsIG1hY3JvTW9sZWN1bGUsIG1ldGhvZE5hbWUsIHNpbWlsYXJpdHlNZXRyaWMgPSAnTGV2ZW5zaHRlaW4nLCBwbG90RW1iZWRkaW5ncykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdBY3Rpdml0eSBDbGlmZnMnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW5jb2RlZENvbCA9IGVuY29kZU1vbm9tZXJzKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBpZiAoIWVuY29kZWRDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVtYmVkQ29sc05hbWVzID0gZ2V0RW1iZWRkaW5nQ29sc05hbWVzKHRhYmxlKTtcbiAgICAgICAgY29uc3Qgd2l0aG91dEVtcHR5VmFsdWVzID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtlbmNvZGVkQ29sXSkuY2xvbmUoKTtcbiAgICAgICAgY29uc3QgZW1wdHlWYWxzSWR4cyA9IHJlbW92ZUVtcHR5U3RyaW5nUm93cyh3aXRob3V0RW1wdHlWYWx1ZXMsIGVuY29kZWRDb2wpO1xuICAgICAgICBjb25zdCBjaGVtU3BhY2VQYXJhbXMgPSB7XG4gICAgICAgICAgICBzZXFDb2w6IHdpdGhvdXRFbXB0eVZhbHVlcy5jb2woZW5jb2RlZENvbC5uYW1lKSxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5hbWUsXG4gICAgICAgICAgICBzaW1pbGFyaXR5TWV0cmljOiBzaW1pbGFyaXR5TWV0cmljLFxuICAgICAgICAgICAgZW1iZWRBeGVzTmFtZXM6IGVtYmVkQ29sc05hbWVzXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlU3BhY2VSZXMgPSB5aWVsZCBzZXF1ZW5jZVNwYWNlKGNoZW1TcGFjZVBhcmFtcyk7XG4gICAgICAgIGNvbnN0IGVtYmVkZGluZ3MgPSBzZXF1ZW5jZVNwYWNlUmVzLmNvb3JkaW5hdGVzO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBlbWJlZGRpbmdzKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0VmFsdWVzID0gY29sLnRvTGlzdCgpO1xuICAgICAgICAgICAgZW1wdHlWYWxzSWR4cy5mb3JFYWNoKChpbmQpID0+IGxpc3RWYWx1ZXMuc3BsaWNlKGluZCwgMCwgbnVsbCkpO1xuICAgICAgICAgICAgdGFibGUuY29sdW1ucy5hZGQoREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBjb2wubmFtZSwgbGlzdFZhbHVlcykpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzcDtcbiAgICAgICAgaWYgKHBsb3RFbWJlZGRpbmdzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgZ3Jvay5zaGVsbC52aWV3cykge1xuICAgICAgICAgICAgICAgIGlmICh2Lm5hbWUgPT09IHRhYmxlLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgIHNwID0gdi5zY2F0dGVyUGxvdCh7IHg6IGVtYmVkQ29sc05hbWVzWzBdLCB5OiBlbWJlZENvbHNOYW1lc1sxXSwgdGl0bGU6ICdTZXF1ZW5jZSBzcGFjZScgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNwO1xuICAgIH0pO1xufVxuO1xuLy90b3AtbWVudTogQmlvIHwgVG8gQXRvbWljIExldmVsLi4uXG4vL25hbWU6IFRvIEF0b21pYyBMZXZlbFxuLy9kZXNjcmlwdGlvbjogcmV0dXJucyBtb2xmaWxlcyBmb3IgZWFjaCBtb25vbWVyIGZyb20gSEVMTSBsaWJyYXJ5XG4vL2lucHV0OiBkYXRhZnJhbWUgZGYgW0lucHV0IGRhdGEgdGFibGVdXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiB0b0F0b21pY0xldmVsKGRmLCBtYWNyb01vbGVjdWxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKERHLkZ1bmMuZmluZCh7IHBhY2thZ2U6ICdDaGVtJywgbmFtZTogJ2dldFJkS2l0TW9kdWxlJyB9KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZygnVHJhbnNmb3JtYXRpb24gdG8gYXRvbWljIGxldmVsIHJlcXVpcmVzIHBhY2thZ2UgXCJDaGVtXCIgaW5zdGFsbGVkLicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdUbyBBdG9taWMgTGV2ZWwnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJGaWxlID0geWllbGQgX3BhY2thZ2UuZmlsZXMucmVhZEFzVGV4dChIRUxNX0NPUkVfTElCX0ZJTEVOQU1FKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJPYmplY3QgPSBKU09OLnBhcnNlKG1vbm9tZXJzTGliRmlsZSk7XG4gICAgICAgIGNvbnN0IGF0b21pY0NvZGVzID0gZ2V0TW9sZmlsZXNGcm9tU2VxKG1hY3JvTW9sZWN1bGUsIG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZ2V0TWFjcm9Nb2woYXRvbWljQ29kZXMpO1xuICAgICAgICBjb25zdCBjb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ3JlZ2VuZXJhdGVkJywgcmVzdWx0KTtcbiAgICAgICAgY29sLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1PTEVDVUxFO1xuICAgICAgICBjb2wudGFnc1tERy5UQUdTLlVOSVRTXSA9ICdtb2xibG9jayc7XG4gICAgICAgIGRmLmNvbHVtbnMuYWRkKGNvbCwgdHJ1ZSk7XG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKGRmKTtcbiAgICB9KTtcbn1cbi8vdG9wLW1lbnU6IEJpbyB8IE1TQS4uLlxuLy9uYW1lOiBNU0Fcbi8vaW5wdXQ6IGRhdGFmcmFtZSB0YWJsZVxuLy9pbnB1dDogY29sdW1uIHNlcXVlbmNlIHsgc2VtVHlwZTogTWFjcm9tb2xlY3VsZSwgdW5pdHM6IFsnZmFzdGEnXSwgYWxwaGFiZXQ6IFsnRE5BJywgJ1JOQScsICdQVCddIH1cbi8vb3V0cHV0OiBjb2x1bW4gcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbXVsdGlwbGVTZXF1ZW5jZUFsaWdubWVudEFueSh0YWJsZSwgY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgZnVuYyA9IERHLkZ1bmMuZmluZCh7IHBhY2thZ2U6ICdCaW8nLCBuYW1lOiAnbXVsdGlwbGVTZXF1ZW5jZUFsaWdubWVudEFueScgfSlbMF07XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgJ01TQScsIFsnZmFzdGEnXSwgWydETkEnLCAnUk5BJywgJ1BUJ10pKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IHVuVXNlZE5hbWUgPSB0YWJsZS5jb2x1bW5zLmdldFVudXNlZE5hbWUoYG1zYSgke2NvbC5uYW1lfSlgKTtcbiAgICAgICAgY29uc3QgbXNhQ29sID0geWllbGQgcnVuS2FsaWduKGNvbCwgZmFsc2UsIHVuVXNlZE5hbWUpO1xuICAgICAgICB0YWJsZS5jb2x1bW5zLmFkZChtc2FDb2wpO1xuICAgICAgICAvLyBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgdG8gZW5hYmxlIGNlbGwgcmVuZGVyZXIgYWN0aXZhdGlvblxuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyh0YWJsZSk7XG4gICAgICAgIC8vIGNvbnN0IHR2OiBERy5UYWJsZVZpZXcgPSBncm9rLnNoZWxsLnR2O1xuICAgICAgICAvLyB0di5ncmlkLmludmFsaWRhdGUoKTtcbiAgICAgICAgcmV0dXJuIG1zYUNvbDtcbiAgICB9KTtcbn1cbi8vbmFtZTogQmlvIHwgTVNBXG4vL3RhZ3M6IGJpbywgcGFuZWxcbi8vaW5wdXQ6IGNvbHVtbiBzZXF1ZW5jZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUgfVxuLy9vdXRwdXQ6IGNvbHVtbiByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBwYW5lbE1TQShjb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICByZXR1cm4gbXVsdGlwbGVTZXF1ZW5jZUFsaWdubWVudEFueShjb2wuZGF0YUZyYW1lLCBjb2wpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBDb21wb3NpdGlvbiBBbmFseXNpc1xuLy90b3AtbWVudTogQmlvIHwgQ29tcG9zaXRpb24gQW5hbHlzaXNcbi8vb3V0cHV0OiB2aWV3ZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gY29tcG9zaXRpb25BbmFseXNpcygpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBIaWdoZXIgcHJpb3JpdHkgZm9yIGNvbHVtbnMgd2l0aCBNU0EgZGF0YSB0byBzaG93IHdpdGggV2ViTG9nby5cbiAgICAgICAgY29uc3QgdHYgPSBncm9rLnNoZWxsLnR2O1xuICAgICAgICBjb25zdCBkZiA9IHR2LmRhdGFGcmFtZTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGNvbExpc3QgPSBkZi5jb2x1bW5zLnRvTGlzdCgpLmZpbHRlcigoY29sKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGNvbFVIID0gbmV3IGJpby5Vbml0c0hhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIC8vIFRPRE86IHByZXZlbnQgZm9yIGN5Y2xpYywgYnJhbmNoZWQgb3IgbXVsdGlwbGUgY2hhaW5zIGluIEhlbG1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChjb2wpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgJ0NvbXBvc2l0aW9uJykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3Qgd2xWaWV3ZXIgPSB0di5hZGRWaWV3ZXIoJ1dlYkxvZ28nLCB7IHNlcXVlbmNlQ29sdW1uTmFtZTogY29sLm5hbWUgfSk7XG4gICAgICAgICAgICBncm9rLnNoZWxsLnR2LmRvY2tNYW5hZ2VyLmRvY2sod2xWaWV3ZXIsIERHLkRPQ0tfVFlQRS5ET1dOLCBudWxsLCAnQ29tcG9zaXRpb24gYW5hbHlzaXMnLCAwLjI1KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjb2wgPSBudWxsO1xuICAgICAgICBpZiAoY29sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignQ3VycmVudCB0YWJsZSBkb2VzIG5vdCBjb250YWluIHNlcXVlbmNlcycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbExpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgY29sTGlzdE5hbWVzID0gY29sTGlzdC5tYXAoKGNvbCkgPT4gY29sLm5hbWUpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDb2wgPSBjb2xMaXN0LmZpbmQoKGMpID0+IHsgcmV0dXJuIChuZXcgYmlvLlVuaXRzSGFuZGxlcihjKSkuaXNNc2EoKTsgfSk7XG4gICAgICAgICAgICBjb25zdCBjb2xJbnB1dCA9IHVpLmNob2ljZUlucHV0KCdDb2x1bW4nLCBzZWxlY3RlZENvbCA/IHNlbGVjdGVkQ29sLm5hbWUgOiBjb2xMaXN0TmFtZXNbMF0sIGNvbExpc3ROYW1lcyk7XG4gICAgICAgICAgICB1aS5kaWFsb2coe1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnQ29tcG9zaXRpb24gQW5hbHlzaXMnLFxuICAgICAgICAgICAgICAgIGhlbHBVcmw6ICcvaGVscC9kb21haW5zL2Jpby9tYWNyb21vbGVjdWxlcy5tZCNjb21wb3NpdGlvbi1hbmFseXNpcydcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmFkZCh1aS5kaXYoW1xuICAgICAgICAgICAgICAgIGNvbElucHV0LFxuICAgICAgICAgICAgXSkpXG4gICAgICAgICAgICAgICAgLm9uT0soKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSAoX2EgPSBjb2xMaXN0LmZpbmQoKGNvbCkgPT4gY29sLm5hbWUgPT0gY29sSW5wdXQudmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsO1xuICAgICAgICAgICAgICAgIGlmIChjb2wpXG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIGhhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5zaG93KCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb2wgPSBjb2xMaXN0WzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghY29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCBoYW5kbGVyKGNvbCk7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZGYgdG8gSnNvbiBsaWIuLi5cbi8vbmFtZTogc2RmVG9Kc29uTGliXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbmV4cG9ydCBmdW5jdGlvbiBzZGZUb0pzb25MaWIodGFibGUpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBqc29uTW9ub21lckxpYnJhcnkgPSBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYodGFibGUpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBSZXByZXNlbnRhdGlvbnNcbi8vdGFnczogcGFuZWwsIHdpZGdldHNcbi8vaW5wdXQ6IGNlbGwgbWFjcm9Nb2xlY3VsZSB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbi8vb3V0cHV0OiB3aWRnZXQgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gcGVwdGlkZU1vbGVjdWxlKG1hY3JvTW9sZWN1bGUpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBtb25vbWVyc0xpYkZpbGUgPSB5aWVsZCBfcGFja2FnZS5maWxlcy5yZWFkQXNUZXh0KEhFTE1fQ09SRV9MSUJfRklMRU5BTUUpO1xuICAgICAgICBjb25zdCBtb25vbWVyc0xpYk9iamVjdCA9IEpTT04ucGFyc2UobW9ub21lcnNMaWJGaWxlKTtcbiAgICAgICAgcmV0dXJuIHJlcHJlc2VudGF0aW9uc1dpZGdldChtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgfSk7XG59XG4vL25hbWU6IGltcG9ydEZhc3RhXG4vL2Rlc2NyaXB0aW9uOiBPcGVucyBGQVNUQSBmaWxlXG4vL3RhZ3M6IGZpbGUtaGFuZGxlclxuLy9tZXRhLmV4dDogZmFzdGEsIGZuYSwgZmZuLCBmYWEsIGZybiwgZmEsIGZzdFxuLy9pbnB1dDogc3RyaW5nIGZpbGVDb250ZW50XG4vL291dHB1dDogbGlzdCB0YWJsZXNcbmV4cG9ydCBmdW5jdGlvbiBpbXBvcnRGYXN0YShmaWxlQ29udGVudCkge1xuICAgIGNvbnN0IGZmaCA9IG5ldyBiaW8uRmFzdGFGaWxlSGFuZGxlcihmaWxlQ29udGVudCk7XG4gICAgcmV0dXJuIGZmaC5pbXBvcnRGYXN0YSgpO1xufVxuLy9uYW1lOiBCaW8gfCBDb252ZXJ0IC4uLlxuLy9mcmllbmRseS1uYW1lOiBCaW8gfCBDb252ZXJ0XG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhbmVsKGNvbCkge1xuICAgIGNvbnZlcnQoY29sKTtcbn1cbi8vbmFtZTogbW9ub21lckNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTW9ub21lclxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBtb25vbWVyQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTW9ub21lckNlbGxSZW5kZXJlcigpO1xufVxuLy9uYW1lOiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZVxuLy9pbnB1dDogc3RyaW5nIHBhdGgge2Nob2ljZXM6IFsnRGVtbzpGaWxlcy8nLCAnU3lzdGVtOkFwcERhdGEvJ119XG4vL291dHB1dDogZGF0YWZyYW1lIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHRlc3REZXRlY3RNYWNyb21vbGVjdWxlKHBhdGgpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBwaSA9IERHLlRhc2tCYXJQcm9ncmVzc0luZGljYXRvci5jcmVhdGUoJ1Rlc3QgZGV0ZWN0TWFjcm9tb2xlY3VsZS4uLicpO1xuICAgICAgICBjb25zdCBmaWxlTGlzdCA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5saXN0KHBhdGgsIHRydWUsICcnKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGZpbGVMaXN0VG9UZXN0ID0gZmlsZUxpc3QuZmlsdGVyKChmaSkgPT4gZmkuZmlsZU5hbWUuZW5kc1dpdGgoJy5jc3YnKSk7XG4gICAgICAgIGxldCByZWFkeUNvdW50ID0gMDtcbiAgICAgICAgY29uc3QgcmVzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZUluZm8gb2YgZmlsZUxpc3RUb1Rlc3QpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3N2ID0geWllbGQgZ3Jvay5kYXBpLmZpbGVzLnJlYWRBc1RleHQocGF0aCArIGZpbGVJbmZvLmZ1bGxQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkZiA9IERHLkRhdGFGcmFtZS5mcm9tQ3N2KGNzdik7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZGYuY29sdW1ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZW1UeXBlID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQmlvOmRldGVjdE1hY3JvbW9sZWN1bGUnLCB7IGNvbDogY29sIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VtVHlwZSA9PT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbnNvbGUud2FybihgZmlsZTogJHtmaWxlSW5mby5wYXRofSwgY29sdW1uOiAke2NvbC5uYW1lfSwgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgYHNlbVR5cGU6ICR7c2VtVHlwZX0sIHVuaXRzOiAke2NvbC5nZXRUYWcoREcuVEFHUy5VTklUUyl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLndhcm4oJ2ZpbGU6IFwiJyArIGZpbGVJbmZvLnBhdGggKyAnXCIsIHNlbVR5cGU6IFwiJyArIHNlbVR5cGUgKyAnXCIsICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAndW5pdHM6IFwiJyArIGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUykgKyAnXCInKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiBmaWxlSW5mby5wYXRoLCByZXN1bHQ6ICdkZXRlY3RlZCcsIGNvbHVtbjogY29sLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogYHVuaXRzOiAke2NvbC5nZXRUYWcoREcuVEFHUy5VTklUUyl9YFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignZmlsZTogJyArIGZpbGVJbmZvLnBhdGggKyAnLCBlcnJvcjogJyArIGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZXJyb3InLCBjb2x1bW46IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBlcnIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHJlYWR5Q291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICBwaS51cGRhdGUoMTAwICogcmVhZHlDb3VudCAvIGZpbGVMaXN0VG9UZXN0Lmxlbmd0aCwgYFRlc3QgJHtmaWxlSW5mby5maWxlTmFtZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBncm9rLnNoZWxsLmluZm8oJ1Rlc3QgRGVtbzpGaWxlcyBmb3IgZGV0ZWN0TWFjcm9tb2xlY3VsZSBmaW5pc2hlZC4nKTtcbiAgICAgICAgcGkuY2xvc2UoKTtcbiAgICAgICAgY29uc3QgcmVzRGYgPSBERy5EYXRhRnJhbWUuZnJvbU9iamVjdHMocmVzKTtcbiAgICAgICAgcmVzRGYubmFtZSA9IGBkYXRhc2V0c19kZXRlY3RNYWNyb21vbGVjdWxlXyR7cGF0aH1gO1xuICAgICAgICByZXR1cm4gcmVzRGY7XG4gICAgfSk7XG59XG4vL25hbWU6IEJpbyB8IFNwbGl0IHRvIG1vbm9tZXJzXG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gc3BsaXRUb01vbm9tZXJzKGNvbCkge1xuICAgIGlmICghY29sLmdldFRhZyhcImFsaWduZWRcIiAvKiBiaW8uVEFHUy5hbGlnbmVkICovKS5pbmNsdWRlcyhDLk1TQSkpXG4gICAgICAgIHJldHVybiBncm9rLnNoZWxsLmVycm9yKCdTcGxpdHRpbmcgaXMgYXBwbGljYWJsZSBvbmx5IGZvciBhbGlnbmVkIHNlcXVlbmNlcycpO1xuICAgIGNvbnN0IHRlbXBEZiA9IHNwbGl0QWxpZ25lZFNlcXVlbmNlcyhjb2wpO1xuICAgIGNvbnN0IG9yaWdpbmFsRGYgPSBjb2wuZGF0YUZyYW1lO1xuICAgIGZvciAoY29uc3QgdGVtcENvbCBvZiB0ZW1wRGYuY29sdW1ucykge1xuICAgICAgICBjb25zdCBuZXdDb2wgPSBvcmlnaW5hbERmLmNvbHVtbnMuYWRkKHRlbXBDb2wpO1xuICAgICAgICBuZXdDb2wuc2VtVHlwZSA9IEMuU0VNX1RZUEVTLk1PTk9NRVI7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoREcuVEFHUy5DRUxMX1JFTkRFUkVSLCBDLlNFTV9UWVBFUy5NT05PTUVSKTtcbiAgICAgICAgbmV3Q29sLnNldFRhZyhDLlRBR1MuQUxQSEFCRVQsIGNvbC5nZXRUYWcoQy5UQUdTLkFMUEhBQkVUKSk7XG4gICAgfVxuICAgIGdyb2suc2hlbGwudHYuZ3JpZC5pbnZhbGlkYXRlKCk7XG59XG4vL25hbWU6IEJpbzogZ2V0SGVsbU1vbm9tZXJzXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIGdldEhlbG1Nb25vbWVycyhzZXFDb2wpIHtcbiAgICBjb25zdCBzdGF0cyA9IGJpby5nZXRTdGF0cyhzZXFDb2wsIDEsIGJpby5zcGxpdHRlckFzSGVsbSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0YXRzLmZyZXEpO1xufVxuLy9uYW1lOiBTZXF1ZW5jZVNpbWlsYXJpdHlTZWFyY2hWaWV3ZXJcbi8vdGFnczogdmlld2VyXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNpbWlsYXJpdHlTZWFyY2hWaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBTZXF1ZW5jZVNpbWlsYXJpdHlWaWV3ZXIoKTtcbn1cbi8vdG9wLW1lbnU6IEJpbyB8IFNpbWlsYXJpdHkgU2VhcmNoLi4uXG4vL25hbWU6IHNpbWlsYXJpdHlTZWFyY2hcbi8vZGVzY3JpcHRpb246IGZpbmRzIHRoZSBtb3N0IHNpbWlsYXIgc2VxdWVuY2Vcbi8vb3V0cHV0OiB2aWV3ZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gc2ltaWxhcml0eVNlYXJjaFRvcE1lbnUoKSB7XG4gICAgY29uc3QgdmlldyA9IGdyb2suc2hlbGwudjtcbiAgICBjb25zdCB2aWV3ZXIgPSB2aWV3LmFkZFZpZXdlcignU2VxdWVuY2VTaW1pbGFyaXR5U2VhcmNoVmlld2VyJyk7XG4gICAgdmlldy5kb2NrTWFuYWdlci5kb2NrKHZpZXdlciwgJ2Rvd24nKTtcbn1cbi8vbmFtZTogU2VxdWVuY2VEaXZlcnNpdHlTZWFyY2hWaWV3ZXJcbi8vdGFnczogdmlld2VyXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGRpdmVyc2l0eVNlYXJjaFZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IFNlcXVlbmNlRGl2ZXJzaXR5Vmlld2VyKCk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBEaXZlcnNpdHkgU2VhcmNoLi4uXG4vL25hbWU6IGRpdmVyc2l0eVNlYXJjaFxuLy9kZXNjcmlwdGlvbjogZmluZHMgdGhlIG1vc3QgZGl2ZXJzZSBtb2xlY3VsZXNcbi8vb3V0cHV0OiB2aWV3ZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gZGl2ZXJzaXR5U2VhcmNoVG9wTWVudSgpIHtcbiAgICBjb25zdCB2aWV3ID0gZ3Jvay5zaGVsbC52O1xuICAgIGNvbnN0IHZpZXdlciA9IHZpZXcuYWRkVmlld2VyKCdTZXF1ZW5jZURpdmVyc2l0eVNlYXJjaFZpZXdlcicpO1xuICAgIHZpZXcuZG9ja01hbmFnZXIuZG9jayh2aWV3ZXIsICdkb3duJyk7XG59XG4vL25hbWU6IEJpbyB8IFN1YnN0cnVjdHVyZSBzZWFyY2ggLi4uXG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gYmlvU3Vic3RydWN0dXJlU2VhcmNoKGNvbCkge1xuICAgIHN1YnN0cnVjdHVyZVNlYXJjaERpYWxvZyhjb2wpO1xufVxuLy9uYW1lOiBzYXZlQXNGYXN0YVxuLy9kZXNjcmlwdGlvbjogQXMgRkFTVEEuLi5cbi8vdGFnczogZmlsZUV4cG9ydGVyXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUFzRmFzdGEoKSB7XG4gICAgc2F2ZUFzRmFzdGFVSSgpO1xufVxuLy9uYW1lOiBCaW9TdWJzdHJ1Y3R1cmVGaWx0ZXJcbi8vZGVzY3JpcHRpb246IFN1YnN0cnVjdHVyZSBmaWx0ZXIgZm9yIG1hY3JvbW9sZWN1bGVzXG4vL3RhZ3M6IGZpbHRlclxuLy9vdXRwdXQ6IGZpbHRlciByZXN1bHRcbi8vbWV0YS5zZW1UeXBlOiBNYWNyb21vbGVjdWxlXG5leHBvcnQgZnVuY3Rpb24gYmlvU3Vic3RydWN0dXJlRmlsdGVyKCkge1xuICAgIHJldHVybiBuZXcgQmlvU3Vic3RydWN0dXJlRmlsdGVyKCk7XG59XG4iLCJjbGFzcyBDZWxsIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IDA7XG4gICAgICAgIHRoaXMucGFyZW50SSA9IDA7XG4gICAgICAgIHRoaXMucGFyZW50SiA9IDA7XG4gICAgfVxufVxuO1xuZXhwb3J0IGNsYXNzIEFsaWduZWQge1xuICAgIGNvbnN0cnVjdG9yKHNlcTFfLCBzZXEyXywgc2NvcmVfKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9IHNlcTFfO1xuICAgICAgICB0aGlzLnNlcTIgPSBzZXEyXztcbiAgICAgICAgdGhpcy5zY29yZSA9IHNjb3JlXztcbiAgICB9XG59XG47XG5leHBvcnQgY2xhc3MgU2VxdWVuY2VBbGlnbm1lbnQge1xuICAgIGNvbnN0cnVjdG9yKHNlcTFfLCBzZXEyXywgZ2FwXywgYWxpZ25HcmlkXyA9IFwiXCIpIHtcbiAgICAgICAgdGhpcy5zZXExID0gJyc7XG4gICAgICAgIHRoaXMuc2VxMiA9ICcnO1xuICAgICAgICB0aGlzLmdhcCA9IDE7XG4gICAgICAgIHRoaXMubGVuMSA9IDA7XG4gICAgICAgIHRoaXMubGVuMiA9IDA7XG4gICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgIHRoaXMuYWxpZ25HcmlkID0gW107XG4gICAgICAgIHRoaXMuc2NvcmVzID0gW107XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB7fTtcbiAgICAgICAgdGhpcy5CTE9TVU00NSA9IFtbNSwgLTIsIC0xLCAtMiwgLTEsIC0xLCAtMSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDEsIDAsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDcsIDAsIC0xLCAtMywgMSwgMCwgLTIsIDAsIC0zLCAtMiwgMywgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMiwgLTEsIC0yLCAtMSwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgNiwgMiwgLTIsIDAsIDAsIDAsIDEsIC0yLCAtMywgMCwgLTIsIC0yLCAtMiwgMSwgMCwgLTQsIC0yLCAtMywgNCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDIsIDcsIC0zLCAwLCAyLCAtMSwgMCwgLTQsIC0zLCAwLCAtMywgLTQsIC0xLCAwLCAtMSwgLTQsIC0yLCAtMywgNSwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtMywgMTIsIC0zLCAtMywgLTMsIC0zLCAtMywgLTIsIC0zLCAtMiwgLTIsIC00LCAtMSwgLTEsIC01LCAtMywgLTEsIC0yLCAtMywgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDYsIDIsIC0yLCAxLCAtMiwgLTIsIDEsIDAsIC00LCAtMSwgMCwgLTEsIC0yLCAtMSwgLTMsIDAsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC0zLCAyLCA2LCAtMiwgMCwgLTMsIC0yLCAxLCAtMiwgLTMsIDAsIDAsIC0xLCAtMywgLTIsIC0zLCAxLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMSwgLTMsIC0yLCAtMiwgNywgLTIsIC00LCAtMywgLTIsIC0yLCAtMywgLTIsIDAsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIDAsIC0zLCAxLCAwLCAtMiwgMTAsIC0zLCAtMiwgLTEsIDAsIC0yLCAtMiwgLTEsIC0yLCAtMywgMiwgLTMsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTQsIC0zLCAtMiwgLTMsIC00LCAtMywgNSwgMiwgLTMsIDIsIDAsIC0yLCAtMiwgLTEsIC0yLCAwLCAzLCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMywgLTMsIC0yLCAtMiwgLTIsIC0zLCAtMiwgMiwgNSwgLTMsIDIsIDEsIC0zLCAtMywgLTEsIC0yLCAwLCAxLCAtMywgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDMsIDAsIDAsIC0zLCAxLCAxLCAtMiwgLTEsIC0zLCAtMywgNSwgLTEsIC0zLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0yLCAwLCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTIsIC0zLCAtMiwgMCwgLTIsIC0yLCAwLCAyLCAyLCAtMSwgNiwgMCwgLTIsIC0yLCAtMSwgLTIsIDAsIDEsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC0yLCAtNCwgLTIsIC00LCAtMywgLTMsIC0yLCAwLCAxLCAtMywgMCwgOCwgLTMsIC0yLCAtMSwgMSwgMywgMCwgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0xLCAtNCwgLTEsIDAsIC0yLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0zLCA5LCAtMSwgLTEsIC0zLCAtMywgLTMsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIDAsIDAsIC0xLCAtMiwgLTMsIC0xLCAtMiwgLTIsIC0xLCA0LCAyLCAtNCwgLTIsIC0xLCAwLCAwLCAwLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDIsIDUsIC0zLCAtMSwgMCwgMCwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC00LCAtNCwgLTUsIC0yLCAtMywgLTIsIC0zLCAtMiwgLTIsIC0yLCAtMiwgMSwgLTMsIC00LCAtMywgMTUsIDMsIC0zLCAtNCwgLTIsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0zLCAyLCAwLCAwLCAtMSwgMCwgMywgLTMsIC0yLCAtMSwgMywgOCwgLTEsIC0yLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMiwgLTMsIC0zLCAtMSwgLTMsIC0zLCAtMywgLTMsIDMsIDEsIC0yLCAxLCAwLCAtMywgLTEsIDAsIC0zLCAtMSwgNSwgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMSwgNCwgNSwgLTIsIDAsIDEsIC0xLCAwLCAtMywgLTMsIDAsIC0yLCAtMywgLTIsIDAsIDAsIC00LCAtMiwgLTMsIDQsIDIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCA0LCA0LCAtMiwgMCwgLTMsIC0yLCAxLCAtMSwgLTMsIC0xLCAwLCAtMSwgLTIsIC0yLCAtMywgMiwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDAsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU01MCA9IFtbNSwgLTIsIC0xLCAtMiwgLTEsIC0xLCAtMSwgMCwgLTIsIC0xLCAtMiwgLTEsIC0xLCAtMywgLTEsIDEsIDAsIC0zLCAtMiwgMCwgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCA3LCAtMSwgLTIsIC00LCAxLCAwLCAtMywgMCwgLTQsIC0zLCAzLCAtMiwgLTMsIC0zLCAtMSwgLTEsIC0zLCAtMSwgLTMsIC0xLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMSwgNywgMiwgLTIsIDAsIDAsIDAsIDEsIC0zLCAtNCwgMCwgLTIsIC00LCAtMiwgMSwgMCwgLTQsIC0yLCAtMywgNCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDIsIDgsIC00LCAwLCAyLCAtMSwgLTEsIC00LCAtNCwgLTEsIC00LCAtNSwgLTEsIDAsIC0xLCAtNSwgLTMsIC00LCA1LCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTIsIC00LCAxMywgLTMsIC0zLCAtMywgLTMsIC0yLCAtMiwgLTMsIC0yLCAtMiwgLTQsIC0xLCAtMSwgLTUsIC0zLCAtMSwgLTMsIC0zLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNywgMiwgLTIsIDEsIC0zLCAtMiwgMiwgMCwgLTQsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMywgMCwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTMsIDIsIDYsIC0zLCAwLCAtNCwgLTMsIDEsIC0yLCAtMywgLTEsIC0xLCAtMSwgLTMsIC0yLCAtMywgMSwgNSwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMywgMCwgLTEsIC0zLCAtMiwgLTMsIDgsIC0yLCAtNCwgLTQsIC0yLCAtMywgLTQsIC0yLCAwLCAtMiwgLTMsIC0zLCAtNCwgLTEsIC0yLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAtMSwgLTMsIDEsIDAsIC0yLCAxMCwgLTQsIC0zLCAwLCAtMSwgLTEsIC0yLCAtMSwgLTIsIC0zLCAyLCAtNCwgMCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC0zLCAtNCwgLTIsIC0zLCAtNCwgLTQsIC00LCA1LCAyLCAtMywgMiwgMCwgLTMsIC0zLCAtMSwgLTMsIC0xLCA0LCAtNCwgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTQsIC0yLCAtMiwgLTMsIC00LCAtMywgMiwgNSwgLTMsIDMsIDEsIC00LCAtMywgLTEsIC0yLCAtMSwgMSwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAtMSwgLTMsIDIsIDEsIC0yLCAwLCAtMywgLTMsIDYsIC0yLCAtNCwgLTEsIDAsIC0xLCAtMywgLTIsIC0zLCAwLCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC00LCAtMiwgMCwgLTIsIC0zLCAtMSwgMiwgMywgLTIsIDcsIDAsIC0zLCAtMiwgLTEsIC0xLCAwLCAxLCAtMywgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTUsIC0yLCAtNCwgLTMsIC00LCAtMSwgMCwgMSwgLTQsIDAsIDgsIC00LCAtMywgLTIsIDEsIDQsIC0xLCAtNCwgLTQsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTEsIC00LCAtMSwgLTEsIC0yLCAtMiwgLTMsIC00LCAtMSwgLTMsIC00LCAxMCwgLTEsIC0xLCAtNCwgLTMsIC0zLCAtMiwgLTEsIC0yLCAtNV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAtMSwgMCwgLTEsIC0zLCAtMywgMCwgLTIsIC0zLCAtMSwgNSwgMiwgLTQsIC0yLCAtMiwgMCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMiwgNSwgLTMsIC0yLCAwLCAwLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC01LCAtNSwgLTEsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0xLCAxLCAtNCwgLTQsIC0zLCAxNSwgMiwgLTMsIC01LCAtMiwgLTMsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTMsIDIsIC0xLCAtMSwgLTIsIDAsIDQsIC0zLCAtMiwgLTIsIDIsIDgsIC0xLCAtMywgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtNCwgLTEsIC0zLCAtMywgLTQsIC00LCA0LCAxLCAtMywgMSwgLTEsIC0zLCAtMiwgMCwgLTMsIC0xLCA1LCAtNCwgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCA0LCA1LCAtMywgMCwgMSwgLTEsIDAsIC00LCAtNCwgMCwgLTMsIC00LCAtMiwgMCwgMCwgLTUsIC0zLCAtNCwgNSwgMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDQsIDUsIC0yLCAwLCAtMywgLTMsIDEsIC0xLCAtNCwgLTEsIDAsIC0xLCAtMiwgLTIsIC0zLCAyLCA1LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAwLCAtMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNNjIgPSBbWzQsIC0xLCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDEsIDAsIC0zLCAtMiwgMCwgLTIsIC0xLCAwLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDUsIDAsIC0yLCAtMywgMSwgMCwgLTIsIDAsIC0zLCAtMiwgMiwgLTEsIC0zLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0zLCAtMSwgMCwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgMCwgNiwgMSwgLTMsIDAsIDAsIDAsIDEsIC0zLCAtMywgMCwgLTIsIC0zLCAtMiwgMSwgMCwgLTQsIC0yLCAtMywgMywgMCwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDEsIDYsIC0zLCAwLCAyLCAtMSwgLTEsIC0zLCAtNCwgLTEsIC0zLCAtMywgLTEsIDAsIC0xLCAtNCwgLTMsIC0zLCA0LCAxLCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTMsIDksIC0zLCAtNCwgLTMsIC0zLCAtMSwgLTEsIC0zLCAtMSwgLTIsIC0zLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0zLCAtMywgLTIsIC00XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDUsIDIsIC0yLCAwLCAtMywgLTIsIDEsIDAsIC0zLCAtMSwgMCwgLTEsIC0yLCAtMSwgLTIsIDAsIDMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC00LCAyLCA1LCAtMiwgMCwgLTMsIC0zLCAxLCAtMiwgLTMsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMiwgMSwgNCwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTEsIC0zLCAtMiwgLTIsIDYsIC0yLCAtNCwgLTQsIC0yLCAtMywgLTMsIC0yLCAwLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAtMSwgLTMsIDAsIDAsIC0yLCA4LCAtMywgLTMsIC0xLCAtMiwgLTEsIC0yLCAtMSwgLTIsIC0yLCAyLCAtMywgMCwgMCwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0zLCAtMywgLTEsIC0zLCAtMywgLTQsIC0zLCA0LCAyLCAtMywgMSwgMCwgLTMsIC0yLCAtMSwgLTMsIC0xLCAzLCAtMywgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMywgLTQsIC0xLCAtMiwgLTMsIC00LCAtMywgMiwgNCwgLTIsIDIsIDAsIC0zLCAtMiwgLTEsIC0yLCAtMSwgMSwgLTQsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAyLCAwLCAtMSwgLTMsIDEsIDEsIC0yLCAtMSwgLTMsIC0yLCA1LCAtMSwgLTMsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMiwgMCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0yLCAtMywgLTEsIDAsIC0yLCAtMywgLTIsIDEsIDIsIC0xLCA1LCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIDEsIC0zLCAtMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtMywgLTIsIC0zLCAtMywgLTMsIC0xLCAwLCAwLCAtMywgMCwgNiwgLTQsIC0yLCAtMiwgMSwgMywgLTEsIC0zLCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMSwgLTMsIC0xLCAtMSwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTQsIDcsIC0xLCAtMSwgLTQsIC0zLCAtMiwgLTIsIC0xLCAtMiwgLTRdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgMCwgMCwgLTEsIC0yLCAtMiwgMCwgLTEsIC0yLCAtMSwgNCwgMSwgLTMsIC0yLCAtMiwgMCwgMCwgMCwgLTRdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCA1LCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTRdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC00LCAtMiwgLTIsIC0zLCAtMiwgLTIsIC0zLCAtMiwgLTMsIC0xLCAxLCAtNCwgLTMsIC0yLCAxMSwgMiwgLTMsIC00LCAtMywgLTIsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC0yLCAtMywgLTIsIC0xLCAtMiwgLTMsIDIsIC0xLCAtMSwgLTIsIC0xLCAzLCAtMywgLTIsIC0yLCAyLCA3LCAtMSwgLTMsIC0yLCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTMsIC0xLCAtMiwgLTIsIC0zLCAtMywgMywgMSwgLTIsIDEsIC0xLCAtMiwgLTIsIDAsIC0zLCAtMSwgNCwgLTMsIC0yLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMSwgMywgNCwgLTMsIDAsIDEsIC0xLCAwLCAtMywgLTQsIDAsIC0zLCAtMywgLTIsIDAsIC0xLCAtNCwgLTMsIC0zLCA0LCAxLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgMywgNCwgLTIsIDAsIC0zLCAtMywgMSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDEsIDQsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0yLCAwLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNODAgPSBbWzcsIC0zLCAtMywgLTMsIC0xLCAtMiwgLTIsIDAsIC0zLCAtMywgLTMsIC0xLCAtMiwgLTQsIC0xLCAyLCAwLCAtNSwgLTQsIC0xLCAtMywgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTMsIDksIC0xLCAtMywgLTYsIDEsIC0xLCAtNCwgMCwgLTUsIC00LCAzLCAtMywgLTUsIC0zLCAtMiwgLTIsIC01LCAtNCwgLTQsIC0yLCAwLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtMSwgOSwgMiwgLTUsIDAsIC0xLCAtMSwgMSwgLTYsIC02LCAwLCAtNCwgLTYsIC00LCAxLCAwLCAtNywgLTQsIC01LCA1LCAtMSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTMsIDIsIDEwLCAtNywgLTEsIDIsIC0zLCAtMiwgLTcsIC03LCAtMiwgLTYsIC02LCAtMywgLTEsIC0yLCAtOCwgLTYsIC02LCA2LCAxLCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtNiwgLTUsIC03LCAxMywgLTUsIC03LCAtNiwgLTcsIC0yLCAtMywgLTYsIC0zLCAtNCwgLTYsIC0yLCAtMiwgLTUsIC01LCAtMiwgLTYsIC03LCAtNCwgLThdLFxuICAgICAgICAgICAgWy0yLCAxLCAwLCAtMSwgLTUsIDksIDMsIC00LCAxLCAtNSwgLTQsIDIsIC0xLCAtNSwgLTMsIC0xLCAtMSwgLTQsIC0zLCAtNCwgLTEsIDUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMSwgMiwgLTcsIDMsIDgsIC00LCAwLCAtNiwgLTYsIDEsIC00LCAtNiwgLTIsIC0xLCAtMiwgLTYsIC01LCAtNCwgMSwgNiwgLTIsIC04XSxcbiAgICAgICAgICAgIFswLCAtNCwgLTEsIC0zLCAtNiwgLTQsIC00LCA5LCAtNCwgLTcsIC03LCAtMywgLTUsIC02LCAtNSwgLTEsIC0zLCAtNiwgLTYsIC02LCAtMiwgLTQsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTMsIDAsIDEsIC0yLCAtNywgMSwgMCwgLTQsIDEyLCAtNiwgLTUsIC0xLCAtNCwgLTIsIC00LCAtMiwgLTMsIC00LCAzLCAtNSwgLTEsIDAsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC01LCAtNiwgLTcsIC0yLCAtNSwgLTYsIC03LCAtNiwgNywgMiwgLTUsIDIsIC0xLCAtNSwgLTQsIC0yLCAtNSwgLTMsIDQsIC02LCAtNiwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC02LCAtNywgLTMsIC00LCAtNiwgLTcsIC01LCAyLCA2LCAtNCwgMywgMCwgLTUsIC00LCAtMywgLTQsIC0yLCAxLCAtNywgLTUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDMsIDAsIC0yLCAtNiwgMiwgMSwgLTMsIC0xLCAtNSwgLTQsIDgsIC0zLCAtNSwgLTIsIC0xLCAtMSwgLTYsIC00LCAtNCwgLTEsIDEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTYsIC0zLCAtMSwgLTQsIC01LCAtNCwgMiwgMywgLTMsIDksIDAsIC00LCAtMywgLTEsIC0zLCAtMywgMSwgLTUsIC0zLCAtMiwgLThdLFxuICAgICAgICAgICAgWy00LCAtNSwgLTYsIC02LCAtNCwgLTUsIC02LCAtNiwgLTIsIC0xLCAwLCAtNSwgMCwgMTAsIC02LCAtNCwgLTQsIDAsIDQsIC0yLCAtNiwgLTYsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtNCwgLTMsIC02LCAtMywgLTIsIC01LCAtNCwgLTUsIC01LCAtMiwgLTQsIC02LCAxMiwgLTIsIC0zLCAtNywgLTYsIC00LCAtNCwgLTIsIC0zLCAtOF0sXG4gICAgICAgICAgICBbMiwgLTIsIDEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTIsIC00LCAtNCwgLTEsIC0zLCAtNCwgLTIsIDcsIDIsIC02LCAtMywgLTMsIDAsIC0xLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMiwgLTIsIC0xLCAtMiwgLTMsIC0zLCAtMiwgLTMsIC0xLCAtMSwgLTQsIC0zLCAyLCA4LCAtNSwgLTMsIDAsIC0xLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC03LCAtOCwgLTUsIC00LCAtNiwgLTYsIC00LCAtNSwgLTQsIC02LCAtMywgMCwgLTcsIC02LCAtNSwgMTYsIDMsIC01LCAtOCwgLTUsIC01LCAtOF0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNCwgLTYsIC01LCAtMywgLTUsIC02LCAzLCAtMywgLTIsIC00LCAtMywgNCwgLTYsIC0zLCAtMywgMywgMTEsIC0zLCAtNSwgLTQsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC00LCAtNSwgLTYsIC0yLCAtNCwgLTQsIC02LCAtNSwgNCwgMSwgLTQsIDEsIC0yLCAtNCwgLTMsIDAsIC01LCAtMywgNywgLTYsIC00LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtMiwgNSwgNiwgLTYsIC0xLCAxLCAtMiwgLTEsIC02LCAtNywgLTEsIC01LCAtNiwgLTQsIDAsIC0xLCAtOCwgLTUsIC02LCA2LCAwLCAtMywgLThdLFxuICAgICAgICAgICAgWy0yLCAwLCAtMSwgMSwgLTcsIDUsIDYsIC00LCAwLCAtNiwgLTUsIDEsIC0zLCAtNiwgLTIsIC0xLCAtMiwgLTUsIC00LCAtNCwgMCwgNiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMywgLTQsIC0yLCAtMiwgLTMsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTEsIC01LCAtMywgLTIsIC0zLCAtMSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU05MCA9IFtbNSwgLTIsIC0yLCAtMywgLTEsIC0xLCAtMSwgMCwgLTIsIC0yLCAtMiwgLTEsIC0yLCAtMywgLTEsIDEsIDAsIC00LCAtMywgLTEsIC0yLCAtMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMiwgNiwgLTEsIC0zLCAtNSwgMSwgLTEsIC0zLCAwLCAtNCwgLTMsIDIsIC0yLCAtNCwgLTMsIC0xLCAtMiwgLTQsIC0zLCAtMywgLTIsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0xLCA3LCAxLCAtNCwgMCwgLTEsIC0xLCAwLCAtNCwgLTQsIDAsIC0zLCAtNCwgLTMsIDAsIDAsIC01LCAtMywgLTQsIDQsIC0xLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0zLCAtMywgMSwgNywgLTUsIC0xLCAxLCAtMiwgLTIsIC01LCAtNSwgLTEsIC00LCAtNSwgLTMsIC0xLCAtMiwgLTYsIC00LCAtNSwgNCwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTUsIC00LCAtNSwgOSwgLTQsIC02LCAtNCwgLTUsIC0yLCAtMiwgLTQsIC0yLCAtMywgLTQsIC0yLCAtMiwgLTQsIC00LCAtMiwgLTQsIC01LCAtMywgLTZdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAtMSwgLTQsIDcsIDIsIC0zLCAxLCAtNCwgLTMsIDEsIDAsIC00LCAtMiwgLTEsIC0xLCAtMywgLTMsIC0zLCAtMSwgNCwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAxLCAtNiwgMiwgNiwgLTMsIC0xLCAtNCwgLTQsIDAsIC0zLCAtNSwgLTIsIC0xLCAtMSwgLTUsIC00LCAtMywgMCwgNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFswLCAtMywgLTEsIC0yLCAtNCwgLTMsIC0zLCA2LCAtMywgLTUsIC01LCAtMiwgLTQsIC01LCAtMywgLTEsIC0zLCAtNCwgLTUsIC01LCAtMiwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIDAsIDAsIC0yLCAtNSwgMSwgLTEsIC0zLCA4LCAtNCwgLTQsIC0xLCAtMywgLTIsIC0zLCAtMiwgLTIsIC0zLCAxLCAtNCwgLTEsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC00LCAtNCwgLTUsIC0yLCAtNCwgLTQsIC01LCAtNCwgNSwgMSwgLTQsIDEsIC0xLCAtNCwgLTMsIC0xLCAtNCwgLTIsIDMsIC01LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNSwgLTIsIC0zLCAtNCwgLTUsIC00LCAxLCA1LCAtMywgMiwgMCwgLTQsIC0zLCAtMiwgLTMsIC0yLCAwLCAtNSwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDIsIDAsIC0xLCAtNCwgMSwgMCwgLTIsIC0xLCAtNCwgLTMsIDYsIC0yLCAtNCwgLTIsIC0xLCAtMSwgLTUsIC0zLCAtMywgLTEsIDEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMywgLTQsIC0yLCAwLCAtMywgLTQsIC0zLCAxLCAyLCAtMiwgNywgLTEsIC0zLCAtMiwgLTEsIC0yLCAtMiwgMCwgLTQsIC0yLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTQsIC01LCAtMywgLTQsIC01LCAtNSwgLTIsIC0xLCAwLCAtNCwgLTEsIDcsIC00LCAtMywgLTMsIDAsIDMsIC0yLCAtNCwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMywgLTMsIC00LCAtMiwgLTIsIC0zLCAtMywgLTQsIC00LCAtMiwgLTMsIC00LCA4LCAtMiwgLTIsIC01LCAtNCwgLTMsIC0zLCAtMiwgLTIsIC02XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMCwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0zLCAtMiwgNSwgMSwgLTQsIC0zLCAtMiwgMCwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0yLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0xLCAtMiwgLTEsIC0xLCAtMywgLTIsIDEsIDYsIC00LCAtMiwgLTEsIC0xLCAtMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC01LCAtNiwgLTQsIC0zLCAtNSwgLTQsIC0zLCAtNCwgLTMsIC01LCAtMiwgMCwgLTUsIC00LCAtNCwgMTEsIDIsIC0zLCAtNiwgLTQsIC0zLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtMywgLTQsIC00LCAtMywgLTQsIC01LCAxLCAtMiwgLTIsIC0zLCAtMiwgMywgLTQsIC0zLCAtMiwgMiwgOCwgLTMsIC00LCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC00LCAtNSwgLTIsIC0zLCAtMywgLTUsIC00LCAzLCAwLCAtMywgMCwgLTIsIC0zLCAtMiwgLTEsIC0zLCAtMywgNSwgLTQsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMiwgNCwgNCwgLTQsIC0xLCAwLCAtMiwgLTEsIC01LCAtNSwgLTEsIC00LCAtNCwgLTMsIDAsIC0xLCAtNiwgLTQsIC00LCA0LCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAwLCAtMSwgMCwgLTUsIDQsIDQsIC0zLCAwLCAtNCwgLTQsIDEsIC0yLCAtNCwgLTIsIC0xLCAtMSwgLTQsIC0zLCAtMywgMCwgNCwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTIsIC0yLCAtMSwgLTIsIC02XSxcbiAgICAgICAgICAgIFstNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIDFdXTtcbiAgICAgICAgdGhpcy5OVUNMRU9USURFUyA9IFtbMSwgLTEsIC0xLCAtMV0sXG4gICAgICAgICAgICBbLTEsIDEsIC0xLCAtMV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAxLCAtMV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgMV1dO1xuICAgICAgICB0aGlzLlBBTTMwID0gW1s2LCAtNywgLTQsIC0zLCAtNiwgLTQsIC0yLCAtMiwgLTcsIC01LCAtNiwgLTcsIC01LCAtOCwgLTIsIDAsIC0xLCAtMTMsIC04LCAtMiwgLTMsIC0zLCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstNywgOCwgLTYsIC0xMCwgLTgsIC0yLCAtOSwgLTksIC0yLCAtNSwgLTgsIDAsIC00LCAtOSwgLTQsIC0zLCAtNiwgLTIsIC0xMCwgLTgsIC03LCAtNCwgLTYsIC0xN10sXG4gICAgICAgICAgICBbLTQsIC02LCA4LCAyLCAtMTEsIC0zLCAtMiwgLTMsIDAsIC01LCAtNywgLTEsIC05LCAtOSwgLTYsIDAsIC0yLCAtOCwgLTQsIC04LCA2LCAtMywgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC0xMCwgMiwgOCwgLTE0LCAtMiwgMiwgLTMsIC00LCAtNywgLTEyLCAtNCwgLTExLCAtMTUsIC04LCAtNCwgLTUsIC0xNSwgLTExLCAtOCwgNiwgMSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTYsIC04LCAtMTEsIC0xNCwgMTAsIC0xNCwgLTE0LCAtOSwgLTcsIC02LCAtMTUsIC0xNCwgLTEzLCAtMTMsIC04LCAtMywgLTgsIC0xNSwgLTQsIC02LCAtMTIsIC0xNCwgLTksIC0xN10sXG4gICAgICAgICAgICBbLTQsIC0yLCAtMywgLTIsIC0xNCwgOCwgMSwgLTcsIDEsIC04LCAtNSwgLTMsIC00LCAtMTMsIC0zLCAtNSwgLTUsIC0xMywgLTEyLCAtNywgLTMsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOSwgLTIsIDIsIC0xNCwgMSwgOCwgLTQsIC01LCAtNSwgLTksIC00LCAtNywgLTE0LCAtNSwgLTQsIC02LCAtMTcsIC04LCAtNiwgMSwgNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC05LCAtMywgLTMsIC05LCAtNywgLTQsIDYsIC05LCAtMTEsIC0xMCwgLTcsIC04LCAtOSwgLTYsIC0yLCAtNiwgLTE1LCAtMTQsIC01LCAtMywgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy03LCAtMiwgMCwgLTQsIC03LCAxLCAtNSwgLTksIDksIC05LCAtNiwgLTYsIC0xMCwgLTYsIC00LCAtNiwgLTcsIC03LCAtMywgLTYsIC0xLCAtMSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTcsIC02LCAtOCwgLTUsIC0xMSwgLTksIDgsIC0xLCAtNiwgLTEsIC0yLCAtOCwgLTcsIC0yLCAtMTQsIC02LCAyLCAtNiwgLTYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy02LCAtOCwgLTcsIC0xMiwgLTE1LCAtNSwgLTksIC0xMCwgLTYsIC0xLCA3LCAtOCwgMSwgLTMsIC03LCAtOCwgLTcsIC02LCAtNywgLTIsIC05LCAtNywgLTYsIC0xN10sXG4gICAgICAgICAgICBbLTcsIDAsIC0xLCAtNCwgLTE0LCAtMywgLTQsIC03LCAtNiwgLTYsIC04LCA3LCAtMiwgLTE0LCAtNiwgLTQsIC0zLCAtMTIsIC05LCAtOSwgLTIsIC00LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNSwgLTQsIC05LCAtMTEsIC0xMywgLTQsIC03LCAtOCwgLTEwLCAtMSwgMSwgLTIsIDExLCAtNCwgLTgsIC01LCAtNCwgLTEzLCAtMTEsIC0xLCAtMTAsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstOCwgLTksIC05LCAtMTUsIC0xMywgLTEzLCAtMTQsIC05LCAtNiwgLTIsIC0zLCAtMTQsIC00LCA5LCAtMTAsIC02LCAtOSwgLTQsIDIsIC04LCAtMTAsIC0xMywgLTgsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC00LCAtNiwgLTgsIC04LCAtMywgLTUsIC02LCAtNCwgLTgsIC03LCAtNiwgLTgsIC0xMCwgOCwgLTIsIC00LCAtMTQsIC0xMywgLTYsIC03LCAtNCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbMCwgLTMsIDAsIC00LCAtMywgLTUsIC00LCAtMiwgLTYsIC03LCAtOCwgLTQsIC01LCAtNiwgLTIsIDYsIDAsIC01LCAtNywgLTYsIC0xLCAtNSwgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTEsIC02LCAtMiwgLTUsIC04LCAtNSwgLTYsIC02LCAtNywgLTIsIC03LCAtMywgLTQsIC05LCAtNCwgMCwgNywgLTEzLCAtNiwgLTMsIC0zLCAtNiwgLTQsIC0xN10sXG4gICAgICAgICAgICBbLTEzLCAtMiwgLTgsIC0xNSwgLTE1LCAtMTMsIC0xNywgLTE1LCAtNywgLTE0LCAtNiwgLTEyLCAtMTMsIC00LCAtMTQsIC01LCAtMTMsIDEzLCAtNSwgLTE1LCAtMTAsIC0xNCwgLTExLCAtMTddLFxuICAgICAgICAgICAgWy04LCAtMTAsIC00LCAtMTEsIC00LCAtMTIsIC04LCAtMTQsIC0zLCAtNiwgLTcsIC05LCAtMTEsIDIsIC0xMywgLTcsIC02LCAtNSwgMTAsIC03LCAtNiwgLTksIC03LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOCwgLTgsIC04LCAtNiwgLTcsIC02LCAtNSwgLTYsIDIsIC0yLCAtOSwgLTEsIC04LCAtNiwgLTYsIC0zLCAtMTUsIC03LCA3LCAtOCwgLTYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNywgNiwgNiwgLTEyLCAtMywgMSwgLTMsIC0xLCAtNiwgLTksIC0yLCAtMTAsIC0xMCwgLTcsIC0xLCAtMywgLTEwLCAtNiwgLTgsIDYsIDAsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTMsIDEsIC0xNCwgNiwgNiwgLTUsIC0xLCAtNiwgLTcsIC00LCAtNSwgLTEzLCAtNCwgLTUsIC02LCAtMTQsIC05LCAtNiwgMCwgNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC02LCAtMywgLTUsIC05LCAtNSwgLTUsIC01LCAtNSwgLTUsIC02LCAtNSwgLTUsIC04LCAtNSwgLTMsIC00LCAtMTEsIC03LCAtNSwgLTUsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgMV1dO1xuICAgICAgICB0aGlzLlBBTTcwID0gW1s1LCAtNCwgLTIsIC0xLCAtNCwgLTIsIC0xLCAwLCAtNCwgLTIsIC00LCAtNCwgLTMsIC02LCAwLCAxLCAxLCAtOSwgLTUsIC0xLCAtMSwgLTEsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy00LCA4LCAtMywgLTYsIC01LCAwLCAtNSwgLTYsIDAsIC0zLCAtNiwgMiwgLTIsIC03LCAtMiwgLTEsIC00LCAwLCAtNywgLTUsIC00LCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIC0zLCA2LCAzLCAtNywgLTEsIDAsIC0xLCAxLCAtMywgLTUsIDAsIC01LCAtNiwgLTMsIDEsIDAsIC02LCAtMywgLTUsIDUsIC0xLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTYsIDMsIDYsIC05LCAwLCAzLCAtMSwgLTEsIC01LCAtOCwgLTIsIC03LCAtMTAsIC00LCAtMSwgLTIsIC0xMCwgLTcsIC01LCA1LCAyLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgLTUsIC03LCAtOSwgOSwgLTksIC05LCAtNiwgLTUsIC00LCAtMTAsIC05LCAtOSwgLTgsIC01LCAtMSwgLTUsIC0xMSwgLTIsIC00LCAtOCwgLTksIC02LCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAwLCAtMSwgMCwgLTksIDcsIDIsIC00LCAyLCAtNSwgLTMsIC0xLCAtMiwgLTksIC0xLCAtMywgLTMsIC04LCAtOCwgLTQsIC0xLCA1LCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTUsIDAsIDMsIC05LCAyLCA2LCAtMiwgLTIsIC00LCAtNiwgLTIsIC00LCAtOSwgLTMsIC0yLCAtMywgLTExLCAtNiwgLTQsIDIsIDUsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWzAsIC02LCAtMSwgLTEsIC02LCAtNCwgLTIsIDYsIC02LCAtNiwgLTcsIC01LCAtNiwgLTcsIC0zLCAwLCAtMywgLTEwLCAtOSwgLTMsIC0xLCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDAsIDEsIC0xLCAtNSwgMiwgLTIsIC02LCA4LCAtNiwgLTQsIC0zLCAtNiwgLTQsIC0yLCAtMywgLTQsIC01LCAtMSwgLTQsIDAsIDEsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC01LCAtNCwgLTUsIC00LCAtNiwgLTYsIDcsIDEsIC00LCAxLCAwLCAtNSwgLTQsIC0xLCAtOSwgLTQsIDMsIC00LCAtNCwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIC02LCAtNSwgLTgsIC0xMCwgLTMsIC02LCAtNywgLTQsIDEsIDYsIC01LCAyLCAtMSwgLTUsIC02LCAtNCwgLTQsIC00LCAwLCAtNiwgLTQsIC00LCAtMTFdLFxuICAgICAgICAgICAgWy00LCAyLCAwLCAtMiwgLTksIC0xLCAtMiwgLTUsIC0zLCAtNCwgLTUsIDYsIDAsIC05LCAtNCwgLTIsIC0xLCAtNywgLTcsIC02LCAtMSwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0zLCAtMiwgLTUsIC03LCAtOSwgLTIsIC00LCAtNiwgLTYsIDEsIDIsIDAsIDEwLCAtMiwgLTUsIC0zLCAtMiwgLTgsIC03LCAwLCAtNiwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy02LCAtNywgLTYsIC0xMCwgLTgsIC05LCAtOSwgLTcsIC00LCAwLCAtMSwgLTksIC0yLCA4LCAtNywgLTQsIC02LCAtMiwgNCwgLTUsIC03LCAtOSwgLTUsIC0xMV0sXG4gICAgICAgICAgICBbMCwgLTIsIC0zLCAtNCwgLTUsIC0xLCAtMywgLTMsIC0yLCAtNSwgLTUsIC00LCAtNSwgLTcsIDcsIDAsIC0yLCAtOSwgLTksIC0zLCAtNCwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAtMSwgLTEsIC0zLCAtMiwgMCwgLTMsIC00LCAtNiwgLTIsIC0zLCAtNCwgMCwgNSwgMiwgLTMsIC01LCAtMywgMCwgLTIsIC0xLCAtMTFdLFxuICAgICAgICAgICAgWzEsIC00LCAwLCAtMiwgLTUsIC0zLCAtMywgLTMsIC00LCAtMSwgLTQsIC0xLCAtMiwgLTYsIC0yLCAyLCA2LCAtOCwgLTQsIC0xLCAtMSwgLTMsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy05LCAwLCAtNiwgLTEwLCAtMTEsIC04LCAtMTEsIC0xMCwgLTUsIC05LCAtNCwgLTcsIC04LCAtMiwgLTksIC0zLCAtOCwgMTMsIC0zLCAtMTAsIC03LCAtMTAsIC03LCAtMTFdLFxuICAgICAgICAgICAgWy01LCAtNywgLTMsIC03LCAtMiwgLTgsIC02LCAtOSwgLTEsIC00LCAtNCwgLTcsIC03LCA0LCAtOSwgLTUsIC00LCAtMywgOSwgLTUsIC00LCAtNywgLTUsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC01LCAtNSwgLTUsIC00LCAtNCwgLTQsIC0zLCAtNCwgMywgMCwgLTYsIDAsIC01LCAtMywgLTMsIC0xLCAtMTAsIC01LCA2LCAtNSwgLTQsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNCwgNSwgNSwgLTgsIC0xLCAyLCAtMSwgMCwgLTQsIC02LCAtMSwgLTYsIC03LCAtNCwgMCwgLTEsIC03LCAtNCwgLTUsIDUsIDEsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTEsIDIsIC05LCA1LCA1LCAtMywgMSwgLTQsIC00LCAtMiwgLTMsIC05LCAtMiwgLTIsIC0zLCAtMTAsIC03LCAtNCwgMSwgNSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMiwgLTMsIC02LCAtMiwgLTMsIC0zLCAtMywgLTMsIC00LCAtMywgLTMsIC01LCAtMywgLTEsIC0yLCAtNywgLTUsIC0yLCAtMiwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAxXV07XG4gICAgICAgIHRoaXMuUEFNMjUwID0gW1syLCAtMiwgMCwgMCwgLTIsIDAsIDAsIDEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTMsIDEsIDEsIDEsIC02LCAtMywgMCwgMCwgMCwgMCwgLThdLFxuICAgICAgICAgICAgWy0yLCA2LCAwLCAtMSwgLTQsIDEsIC0xLCAtMywgMiwgLTIsIC0zLCAzLCAwLCAtNCwgMCwgMCwgLTEsIDIsIC00LCAtMiwgLTEsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgMCwgMiwgMiwgLTQsIDEsIDEsIDAsIDIsIC0yLCAtMywgMSwgLTIsIC0zLCAwLCAxLCAwLCAtNCwgLTIsIC0yLCAyLCAxLCAwLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDIsIDQsIC01LCAyLCAzLCAxLCAxLCAtMiwgLTQsIDAsIC0zLCAtNiwgLTEsIDAsIDAsIC03LCAtNCwgLTIsIDMsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC00LCAtNCwgLTUsIDEyLCAtNSwgLTUsIC0zLCAtMywgLTIsIC02LCAtNSwgLTUsIC00LCAtMywgMCwgLTIsIC04LCAwLCAtMiwgLTQsIC01LCAtMywgLThdLFxuICAgICAgICAgICAgWzAsIDEsIDEsIDIsIC01LCA0LCAyLCAtMSwgMywgLTIsIC0yLCAxLCAtMSwgLTUsIDAsIC0xLCAtMSwgLTUsIC00LCAtMiwgMSwgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMSwgMywgLTUsIDIsIDQsIDAsIDEsIC0yLCAtMywgMCwgLTIsIC01LCAtMSwgMCwgMCwgLTcsIC00LCAtMiwgMywgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFsxLCAtMywgMCwgMSwgLTMsIC0xLCAwLCA1LCAtMiwgLTMsIC00LCAtMiwgLTMsIC01LCAwLCAxLCAwLCAtNywgLTUsIC0xLCAwLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAyLCAyLCAxLCAtMywgMywgMSwgLTIsIDYsIC0yLCAtMiwgMCwgLTIsIC0yLCAwLCAtMSwgLTEsIC0zLCAwLCAtMiwgMSwgMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTMsIC0yLCA1LCAyLCAtMiwgMiwgMSwgLTIsIC0xLCAwLCAtNSwgLTEsIDQsIC0yLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtNCwgLTYsIC0yLCAtMywgLTQsIC0yLCAyLCA2LCAtMywgNCwgMiwgLTMsIC0zLCAtMiwgLTIsIC0xLCAyLCAtMywgLTMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDMsIDEsIDAsIC01LCAxLCAwLCAtMiwgMCwgLTIsIC0zLCA1LCAwLCAtNSwgLTEsIDAsIDAsIC0zLCAtNCwgLTIsIDEsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDAsIC0yLCAtMywgLTUsIC0xLCAtMiwgLTMsIC0yLCAyLCA0LCAwLCA2LCAwLCAtMiwgLTIsIC0xLCAtNCwgLTIsIDIsIC0yLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0zLCAtNiwgLTQsIC01LCAtNSwgLTUsIC0yLCAxLCAyLCAtNSwgMCwgOSwgLTUsIC0zLCAtMywgMCwgNywgLTEsIC00LCAtNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFsxLCAwLCAwLCAtMSwgLTMsIDAsIC0xLCAwLCAwLCAtMiwgLTMsIC0xLCAtMiwgLTUsIDYsIDEsIDAsIC02LCAtNSwgLTEsIC0xLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWzEsIDAsIDEsIDAsIDAsIC0xLCAwLCAxLCAtMSwgLTEsIC0zLCAwLCAtMiwgLTMsIDEsIDIsIDEsIC0yLCAtMywgLTEsIDAsIDAsIDAsIC04XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMCwgMCwgLTIsIC0xLCAwLCAwLCAtMSwgMCwgLTIsIDAsIC0xLCAtMywgMCwgMSwgMywgLTUsIC0zLCAwLCAwLCAtMSwgMCwgLThdLFxuICAgICAgICAgICAgWy02LCAyLCAtNCwgLTcsIC04LCAtNSwgLTcsIC03LCAtMywgLTUsIC0yLCAtMywgLTQsIDAsIC02LCAtMiwgLTUsIDE3LCAwLCAtNiwgLTUsIC02LCAtNCwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTIsIC00LCAwLCAtNCwgLTQsIC01LCAwLCAtMSwgLTEsIC00LCAtMiwgNywgLTUsIC0zLCAtMywgMCwgMTAsIC0yLCAtMywgLTQsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTEsIC0yLCA0LCAyLCAtMiwgMiwgLTEsIC0xLCAtMSwgMCwgLTYsIC0yLCA0LCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDIsIDMsIC00LCAxLCAzLCAwLCAxLCAtMiwgLTMsIDEsIC0yLCAtNCwgLTEsIDAsIDAsIC01LCAtMywgLTIsIDMsIDIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgMCwgMSwgMywgLTUsIDMsIDMsIDAsIDIsIC0yLCAtMywgMCwgLTIsIC01LCAwLCAwLCAtMSwgLTYsIC00LCAtMiwgMiwgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0zLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMCwgMCwgLTQsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLThdLFxuICAgICAgICAgICAgWy04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgMV1dO1xuICAgICAgICB0aGlzLlNDSE5FSURFUiA9IFtbMTEuNiwgLTIuNywgOS43LCAtMS43LCAtMi43LCAtNi40LCAtMy45LCAtNS42LCA1LjEsIC01LjAsIDMuNiwgLTQuMiwgLTYuMywgLTEzLjAsIC03LjEsIC0xMS41LCAwLjQsIC02LjAsIC0xLjksIC01LjMsIC04LjUsIC0xMS4yLCAtOC45LCAtMTAuOCwgMi4xLCAwLjAsIDEuNCwgMC4yLCAtMTAuMiwgLTEzLjUsIC0xMy4wLCAtMTIuNSwgLTIuNiwgLTguNSwgLTUuMCwgLTguMSwgLTYuMywgLTkuOSwgLTcuNSwgLTkuMCwgLTcuMSwgLTEwLjIsIC04LjIsIC05LjIsIC04LjIsIC0xMi41LCAtMTEuMSwgLTExLjQsIC01MC4wLCAtMTQuOCwgLTUwLjAsIC0xMy44LCAtNy4zLCAtMTAuMSwgLTguNCwgLTkuMSwgLTUwLjAsIC0xMy4wLCAtMTMuNSwgLTEyLjQsIC0xMC43LCAtMTguMSwgLTExLjgsIC0xNy4yLF0sXG4gICAgICAgICAgICBbLTIuNywgMTMuMCwgLTMuMywgMTAuOSwgLTMuNSwgLTAuNCwgLTMuMywgLTEuOCwgLTUuNCwgNC42LCAtNS41LCAzLjAsIC0xMC4yLCAtNy45LCAtOS45LCAtOS42LCAtNS4wLCAwLjUsIC01LjUsIC0xLjAsIC0xMC4zLCAtOC4xLCAtOS40LCAtOS42LCAtOC4xLCAtNS4wLCAtNy4zLCAtNi4zLCAtMTMuNCwgLTExLjMsIC0xNC40LCAtMTIuOSwgLTYuMywgMC44LCAtNi40LCAtMS4xLCAtNy40LCAtNS4wLCAtNi4yLCAtNi41LCAtNS42LCAtMS42LCAtNC43LCAtMy4wLCAtMTAuOCwgLTguNywgLTExLjksIC0xMC4wLCAtNTAuMCwgLTYuMiwgLTUwLjAsIC03LjUsIC02LjMsIC00LjMsIC02LjIsIC01LjQsIC01MC4wLCAtNy4wLCAtMTYuMywgLTguMiwgLTEzLjIsIC0xMi4zLCAtMTMuMSwgLTEzLjMsXSxcbiAgICAgICAgICAgIFs5LjcsIC0zLjMsIDExLjYsIC0yLjgsIC00LjUsIC02LjcsIC0zLjEsIC02LjksIDMuMywgLTUuNSwgNC44LCAtNS4xLCAtOC45LCAtMTMuMiwgLTUuNywgLTEyLjYsIC0xLjUsIC02LjEsIC0wLjYsIC02LjEsIC0xMC4wLCAtMTEuOCwgLTguNiwgLTExLjksIDEuMiwgMC41LCAyLjIsIDAuMSwgLTExLjgsIC0xNC4wLCAtMTEuOSwgLTEzLjQsIC00LjksIC05LjEsIC0zLjQsIC04LjksIC04LjAsIC0xMC4wLCAtNy4yLCAtMTAuMCwgLTkuMSwgLTEwLjIsIC03LjEsIC05LjksIC0xMC4xLCAtMTMuMCwgLTEwLjYsIC0xMi43LCAtNTAuMCwgLTE0LjksIC01MC4wLCAtMTQuNCwgLTguOSwgLTEwLjgsIC04LjksIC0xMC40LCAtNTAuMCwgLTEzLjEsIC0xMS44LCAtMTMuMCwgLTEyLjQsIC0xOS40LCAtMTEuNSwgLTE3LjgsXSxcbiAgICAgICAgICAgIFstMS43LCAxMC45LCAtMi44LCAxMi45LCAtMi43LCAtMi4yLCAtMi44LCAwLjIsIC00LjgsIDIuOSwgLTUuMiwgNS4yLCAtOS4xLCAtOS41LCAtOS4wLCAtNy4wLCAtNC4wLCAtMS4wLCAtNS4wLCAxLjAsIC05LjAsIC04LjgsIC04LjksIC03LjcsIC03LjAsIC02LjgsIC03LjEsIC00LjMsIC0xMi40LCAtMTIuOSwgLTEzLjksIC0xMC4wLCAtNC45LCAtMC43LCAtNS42LCAxLjQsIC02LjAsIC02LjUsIC02LjIsIC00LjgsIC01LjEsIC0zLjIsIC01LjAsIC0xLjIsIC05LjgsIC05LjksIC0xMS4zLCAtOC4yLCAtNTAuMCwgLTcuNiwgLTUwLjAsIC01LjEsIC01LjUsIC01LjgsIC01LjksIC00LjIsIC01MC4wLCAtOC4zLCAtMTUuNSwgLTUuOSwgLTExLjYsIC0xNC4yLCAtMTIuMCwgLTExLjYsXSxcbiAgICAgICAgICAgIFstMi43LCAtMy41LCAtNC41LCAtMi43LCAxMS43LCA5LjAsIDEwLjYsIDkuNiwgLTMuMiwgLTAuNywgLTUuMSwgLTAuNCwgMC43LCAtNC42LCAtMC40LCAtMy42LCAtNC44LCAtOC45LCAtNi41LCAtNy44LCAtMS40LCAtNC4xLCAtMi45LCAtMy4zLCAtOC4wLCAtOS4xLCAtOC4wLCAtOC4yLCAtNi4wLCAtOS4zLCAtNy43LCAtOC41LCAtNi40LCAtMTAuMSwgLTcuNSwgLTguNiwgMi44LCAtMC43LCAwLjksIDAuMSwgLTUuOSwgLTcuMywgLTYuNSwgLTYuNSwgLTAuNCwgLTMuOSwgLTIuNiwgLTMuMSwgLTUwLjAsIC0xNC42LCAtNTAuMCwgLTEyLjYsIDIuOSwgMC4xLCAxLjgsIDEuMCwgLTUwLjAsIC05LjIsIC0xMy42LCAtNy43LCAtNC44LCAtMTIuMiwgLTYuMiwgLTExLjAsXSxcbiAgICAgICAgICAgIFstNi40LCAtMC40LCAtNi43LCAtMi4yLCA5LjAsIDEyLjMsIDkuOCwgOS42LCAtNy4xLCAyLjQsIC03LjIsIDAuMywgLTIuOSwgLTEuMiwgLTMuMCwgLTMuMywgLTcuNiwgLTYuNywgLTguMSwgLTcuOSwgLTQuOSwgLTEuOSwgLTQuNSwgLTMuOCwgLTkuNSwgLTcuOCwgLTkuMywgLTguOSwgLTkuNCwgLTcuMSwgLTkuMCwgLTkuMCwgLTkuNCwgLTcuNSwgLTkuMywgLTkuMiwgLTAuNywgMi42LCAwLjIsIC0wLjEsIC04LjAsIC00LjYsIC03LjcsIC02LjEsIC0zLjYsIC0xLjAsIC00LjEsIC0zLjEsIC01MC4wLCAtMTEuNiwgLTUwLjAsIC0xMS42LCAwLjIsIDIuMywgMC40LCAwLjUsIC01MC4wLCAtNi41LCAtMTUuMywgLTcuOCwgLTguNCwgLTkuNSwgLTguMywgLTExLjEsXSxcbiAgICAgICAgICAgIFstMy45LCAtMy4zLCAtMy4xLCAtMi44LCAxMC42LCA5LjgsIDEyLjIsIDkuOCwgLTQuOSwgMC4xLCAtMy42LCAtMC4yLCAtMS43LCAtNC4xLCAwLjksIC0zLjUsIC01LjksIC04LjksIC01LjYsIC04LjUsIC0zLjksIC0zLjksIC0yLjIsIC00LjUsIC03LjMsIC03LjUsIC02LjQsIC04LjUsIC03LjEsIC04LjIsIC02LjcsIC03LjgsIC03LjksIC05LjEsIC03LjEsIC05LjQsIDAuOSwgLTAuMiwgMi41LCAtMC4zLCAtNi45LCAtNi41LCAtNS41LCAtNi44LCAtMS43LCAtMy40LCAtMS43LCAtMi44LCAtNTAuMCwgLTEzLjAsIC01MC4wLCAtMTEuNSwgMS41LCAwLjcsIDIuNywgMC42LCAtNTAuMCwgLTguOSwgLTEyLjEsIC03LjQsIC02LjEsIC0xMS41LCAtNS40LCAtMTAuNCxdLFxuICAgICAgICAgICAgWy01LjYsIC0xLjgsIC02LjksIDAuMiwgOS42LCA5LjYsIDkuOCwgMTEuNiwgLTYuNiwgMC45LCAtNy4yLCAyLjUsIC0yLjMsIC0zLjQsIC0yLjMsIC0wLjYsIC02LjUsIC04LjIsIC04LjAsIC02LjMsIC0zLjcsIC0zLjUsIC0zLjksIC0xLjYsIC05LjksIC04LjksIC05LjYsIC03LjAsIC04LjYsIC04LjksIC04LjgsIC02LjgsIC04LjYsIC04LjIsIC04LjgsIC02LjgsIDAuMywgMC4xLCAwLjIsIDIuNCwgLTcuNCwgLTYuMiwgLTYuOSwgLTQuNCwgLTIuOSwgLTIuOSwgLTMuNSwgLTAuOSwgLTUwLjAsIC0xMi4yLCAtNTAuMCwgLTEwLjEsIDEuMiwgMC42LCAxLjIsIDIuNCwgLTUwLjAsIC03LjYsIC0xNi4xLCAtNS44LCAtNy4yLCAtMTAuOCwgLTcuNCwgLTkuMCxdLFxuICAgICAgICAgICAgWzUuMSwgLTUuNCwgMy4zLCAtNC44LCAtMy4yLCAtNy4xLCAtNC45LCAtNi42LCAxMy4zLCAtMi44LCAxMS4yLCAtMS45LCAtNS43LCAtMTIuNSwgLTcuMiwgLTExLjYsIC0wLjcsIC00LjgsIC0zLjEsIC00LjMsIC0xMC4wLCAtMTEuNiwgLTguOCwgLTExLjcsIDEwLjUsIDcuNywgOS4xLCA4LjUsIC05LjgsIC0xMi43LCAtMTEuNywgLTExLjgsIC02LjMsIC0xMS40LCAtOC44LCAtMTEuMCwgLTcuNSwgLTEwLjMsIC04LjMsIC05LjksIC0xLjksIC02LjcsIC00LjEsIC02LjQsIC03LjksIC0xMi41LCAtMTEuNCwgLTExLjcsIC01MC4wLCAtMTQuMCwgLTUwLjAsIC0xMy4yLCAtOC41LCAtMTAuNCwgLTkuMSwgLTkuNiwgLTUwLjAsIC05LjgsIC03LjcsIC04LjgsIC0xMC4zLCAtMTcuOSwgLTExLjgsIC0xNi4wLF0sXG4gICAgICAgICAgICBbLTUuMCwgNC42LCAtNS41LCAyLjksIC0wLjcsIDIuNCwgMC4xLCAwLjksIC0yLjgsIDEyLjgsIC0yLjYsIDExLjAsIC04LjQsIC02LjMsIC04LjMsIC03LjcsIC02LjEsIC0yLjksIC02LjUsIC00LjIsIC04LjUsIC01LjksIC03LjUsIC03LjcsIC01LjUsIC0yLjQsIC01LjUsIC00LjEsIC0xMi45LCAtMTAuMywgLTEyLjcsIC0xMS4zLCAtNy40LCAtMy4xLCAtNy40LCAtNC45LCAtNC40LCAtMS44LCAtMy41LCAtMy41LCAtMS42LCAzLjAsIC0wLjgsIDAuOSwgLTguNCwgLTYuMywgLTkuNiwgLTcuMywgLTUwLjAsIC05LjAsIC01MC4wLCAtOS43LCAtMi4zLCAtMC4yLCAtMS4yLCAtMS41LCAtNTAuMCwgLTAuNywgLTEzLjMsIC0yLjAsIC0xMS44LCAtMTEuOSwgLTEyLjMsIC0xMi43LF0sXG4gICAgICAgICAgICBbMy42LCAtNS41LCA0LjgsIC01LjIsIC01LjEsIC03LjIsIC0zLjYsIC03LjIsIDExLjIsIC0yLjYsIDEzLjQsIC0yLjEsIC03LjcsIC0xMi41LCAtNS4zLCAtMTEuOSwgLTIuMiwgLTQuNCwgLTEuOSwgLTQuOCwgLTEwLjIsIC0xMS41LCAtOC4xLCAtMTIuMCwgOS4zLCA4LjIsIDEwLjAsIDguMCwgLTEwLjgsIC0xMS45LCAtMTAuNywgLTEyLjQsIC04LjIsIC0xMS44LCAtNi45LCAtMTEuNSwgLTguNCwgLTkuOSwgLTcuMSwgLTEwLjYsIC00LjcsIC02LjgsIC0xLjIsIC03LjAsIC05LjgsIC0xMS42LCAtOS42LCAtMTIuMSwgLTUwLjAsIC0xNC4xLCAtNTAuMCwgLTEyLjcsIC0xMC4wLCAtMTAuOCwgLTguOCwgLTEwLjUsIC01MC4wLCAtOS4yLCAtNC4yLCAtOS4zLCAtMTEuMCwgLTE4LjIsIC0xMS4xLCAtMTYuMSxdLFxuICAgICAgICAgICAgWy00LjIsIDMuMCwgLTUuMSwgNS4yLCAtMC40LCAwLjMsIC0wLjIsIDIuNSwgLTEuOSwgMTEuMCwgLTIuMSwgMTMuMiwgLTcuNiwgLTguNSwgLTguMCwgLTUuMywgLTUuNiwgLTQuNSwgLTYuOCwgLTIuNCwgLTcuOCwgLTcuOSwgLTcuOSwgLTYuMiwgLTUuNywgLTUuMSwgLTUuNCwgLTIuMSwgLTEyLjQsIC0xMi4zLCAtMTMuMSwgLTEwLjEsIC02LjYsIC00LjQsIC02LjksIC0yLjYsIC0zLjYsIC0zLjgsIC0zLjcsIC0yLjAsIC0xLjQsIDAuOCwgLTAuOSwgMy4wLCAtOC4yLCAtOC4xLCAtOS4yLCAtNS44LCAtNTAuMCwgLTEwLjEsIC01MC4wLCAtNy40LCAtMS43LCAtMi4wLCAtMS41LCAtMC41LCAtNTAuMCwgLTIuMSwgLTEyLjYsIC0wLjQsIC0xMS42LCAtMTMuOSwgLTExLjQsIC0xMS4xLF0sXG4gICAgICAgICAgICBbLTYuMywgLTEwLjIsIC04LjksIC05LjEsIDAuNywgLTIuOSwgLTEuNywgLTIuMywgLTUuNywgLTguNCwgLTcuNywgLTcuNiwgMTMuMiwgOS42LCAzLjUsIDkuNywgLTguNywgLTEyLjQsIC0xMC43LCAtMTAuNywgLTcuOCwgLTEwLjIsIC04LjgsIC05LjYsIC05LjUsIC0xMS45LCAtMTAuOSwgLTEwLjUsIDIuMywgLTAuNCwgLTAuMiwgLTAuMywgLTkuNywgLTE1LjUsIC0xMS40LCAtMTMuNywgLTMuMCwgLTYuNCwgLTQuMSwgLTUuNCwgLTkuNiwgLTExLjksIC0xMC41LCAtMTEuOCwgNi4yLCAzLjMsIDMuNywgMy42LCAtNTAuMCwgLTEzLjYsIC01MC4wLCAtMTEuOSwgLTUuNiwgLTguOCwgLTcuMiwgLTguOSwgLTUwLjAsIC0xMi40LCAtMTQuMSwgLTExLjYsIDIuOCwgLTYuNCwgMC41LCAtNS4yLF0sXG4gICAgICAgICAgICBbLTEzLjAsIC03LjksIC0xMy4yLCAtOS41LCAtNC42LCAtMS4yLCAtNC4xLCAtMy40LCAtMTIuNSwgLTYuMywgLTEyLjUsIC04LjUsIDkuNiwgMTIuNywgMC4yLCAxMC41LCAtMTIuNCwgLTExLjYsIC0xMy4yLCAtMTIuMCwgLTEyLjQsIC0xMC4xLCAtMTEuNiwgLTEyLjAsIC0xNS4xLCAtMTMuMSwgLTE0LjMsIC0xMy40LCAtMS40LCAxLjQsIC0xLjYsIC0wLjUsIC0xNC45LCAtMTQuMywgLTE1LjIsIC0xNi44LCAtNy43LCAtNC43LCAtNi4zLCAtNi42LCAtMTQuNiwgLTEwLjgsIC0xMi44LCAtMTMuMCwgMi4zLCA2LjAsIDIuNSwgMy42LCAtNTAuMCwgLTExLjIsIC01MC4wLCAtMTEuOSwgLTEwLjUsIC05LjIsIC0xMC41LCAtMTAuNSwgLTUwLjAsIC0xMC4zLCAtMTYuMiwgLTExLjMsIC0xLjcsIC0zLjcsIC0yLjUsIC01LjQsXSxcbiAgICAgICAgICAgIFstNy4xLCAtOS45LCAtNS43LCAtOS4wLCAtMC40LCAtMy4wLCAwLjksIC0yLjMsIC03LjIsIC04LjMsIC01LjMsIC04LjAsIDMuNSwgMC4yLCAxNC4zLCAxLjAsIC03LjMsIC0xMS4yLCAtNi45LCAtOS43LCAtOC41LCAtMTAuMiwgLTcuNywgLTkuOCwgLTEwLjAsIC0xMC40LCAtOC40LCAtMTAuMiwgMS4wLCAtMC42LCAxLjcsIC0wLjUsIC0xMS4xLCAtMTQuOCwgLTkuNywgLTE0LjUsIC0zLjcsIC01LjgsIC0zLjEsIC01LjYsIC0xMC40LCAtMTEuNSwgLTguMiwgLTExLjEsIDAuNiwgLTEuNiwgMS42LCAtMS4xLCAtNTAuMCwgLTEyLjQsIC01MC4wLCAtMTEuNSwgLTUuNSwgLTguMCwgLTQuOSwgLTcuMiwgLTUwLjAsIC0xMi40LCAtMTAuMywgLTExLjYsIDAuNywgLTYuOCwgMi40LCAtNi4wLF0sXG4gICAgICAgICAgICBbLTExLjUsIC05LjYsIC0xMi42LCAtNy4wLCAtMy42LCAtMy4zLCAtMy41LCAtMC42LCAtMTEuNiwgLTcuNywgLTExLjksIC01LjMsIDkuNywgMTAuNSwgMS4wLCAxMi42LCAtMTIuMCwgLTEyLjIsIC0xMi41LCAtOS43LCAtMTEuMSwgLTExLjIsIC0xMS45LCAtOS40LCAtMTIuOSwgLTE0LjMsIC0xNC4wLCAtMTEuOSwgLTEuMCwgLTAuNCwgLTEuNiwgMS4yLCAtMTMuOSwgLTE1LjQsIC0xMy43LCAtMTIuNiwgLTYuMiwgLTYuNywgLTYuMywgLTQuNCwgLTEzLjAsIC0xMi4yLCAtMTMuMCwgLTEwLjQsIDIuOSwgMy44LCAyLjUsIDUuOCwgLTUwLjAsIC0xMi41LCAtNTAuMCwgLTEwLjIsIC05LjYsIC05LjcsIC05LjYsIC04LjMsIC01MC4wLCAtMTEuNiwgLTE1LjQsIC05LjQsIC0xLjEsIC01LjQsIC0xLjYsIC0zLjMsXSxcbiAgICAgICAgICAgIFswLjQsIC01LjAsIC0xLjUsIC00LjAsIC00LjgsIC03LjYsIC01LjksIC02LjUsIC0wLjcsIC02LjEsIC0yLjIsIC01LjYsIC04LjcsIC0xMi40LCAtNy4zLCAtMTIuMCwgMTIuOCwgMi4zLCAxMC4yLCAzLjAsIDAuMCwgLTMuNCwgLTAuNywgLTMuMiwgMi41LCAtMC44LCAwLjksIDAuMiwgLTMuMCwgLTcuMiwgLTUuNywgLTYuMSwgLTAuMiwgLTYuNiwgLTEuOCwgLTYuMCwgLTUuMywgLTguMiwgLTUuNywgLTcuNiwgLTYuNywgLTkuNiwgLTcuNSwgLTkuMywgLTcuMSwgLTEwLjUsIC05LjYsIC05LjQsIC01MC4wLCAtOC4xLCAtNTAuMCwgLTcuMiwgLTQuMywgLTYuOCwgLTUuNywgLTYuMywgLTUwLjAsIC05LjUsIC05LjYsIC04LjksIC02LjIsIC0xMi44LCAtNi44LCAtMTEuOCxdLFxuICAgICAgICAgICAgWy02LjAsIDAuNSwgLTYuMSwgLTEuMCwgLTguOSwgLTYuNywgLTguOSwgLTguMiwgLTQuOCwgLTIuOSwgLTQuNCwgLTQuNSwgLTEyLjQsIC0xMS42LCAtMTEuMiwgLTEyLjIsIDIuMywgMTQuNiwgMS45LCAxMi45LCAtNS41LCAtMi42LCAtNC4xLCAtNC43LCAtMS4yLCAzLjAsIC0xLjEsIDEuNiwgLTguMCwgLTQuNywgLTguNywgLTYuMCwgLTguMiwgLTQuNywgLTcuOCwgLTYuNywgLTEwLjAsIC04LjMsIC04LjksIC05LjksIC0xMC44LCAtNy4xLCAtMTAuMCwgLTkuMiwgLTExLjYsIC0xMC4xLCAtMTIuMywgLTExLjksIC01MC4wLCAyLjIsIC01MC4wLCAwLjksIC03LjksIC01LjksIC03LjQsIC02LjksIC01MC4wLCAtNC42LCAtMTEuNiwgLTUuNiwgLTkuNywgLTUuOSwgLTkuOSwgLTcuMyxdLFxuICAgICAgICAgICAgWy0xLjksIC01LjUsIC0wLjYsIC01LjAsIC02LjUsIC04LjEsIC01LjYsIC04LjAsIC0zLjEsIC02LjUsIC0xLjksIC02LjgsIC0xMC43LCAtMTMuMiwgLTYuOSwgLTEyLjUsIDEwLjIsIDEuOSwgMTEuOSwgMi4xLCAtMi4zLCAtNC4xLCAtMC41LCAtNC42LCAtMC4xLCAtMC45LCAyLjQsIC0wLjgsIC01LjEsIC02LjksIC00LjgsIC02LjcsIC0yLjMsIC03LjEsIC0wLjgsIC03LjIsIC03LjIsIC04LjAsIC01LjYsIC04LjUsIC05LjQsIC05LjcsIC03LjIsIC05LjgsIC05LjIsIC0xMS4xLCAtOS41LCAtMTAuNywgLTUwLjAsIC04LjcsIC01MC4wLCAtOC42LCAtNi4xLCAtNy41LCAtNS41LCAtNy43LCAtNTAuMCwgLTEwLjQsIC03LjcsIC0xMC4wLCAtNy4zLCAtMTMuNiwgLTYuNCwgLTEzLjMsXSxcbiAgICAgICAgICAgIFstNS4zLCAtMS4wLCAtNi4xLCAxLjAsIC03LjgsIC03LjksIC04LjUsIC02LjMsIC00LjMsIC00LjIsIC00LjgsIC0yLjQsIC0xMC43LCAtMTIuMCwgLTkuNywgLTkuNywgMy4wLCAxMi45LCAyLjEsIDE0LjcsIC00LjksIC0zLjgsIC00LjAsIC0yLjQsIC0xLjAsIDAuOCwgLTEuMywgMy40LCAtNy42LCAtNS43LCAtOC4xLCAtMy41LCAtNi44LCAtNS44LCAtNy4yLCAtNC4yLCAtOC45LCAtMTAuMiwgLTguNCwgLTguMiwgLTkuOSwgLTguNCwgLTkuNywgLTYuNCwgLTExLjEsIC0xMS4xLCAtMTEuOCwgLTEwLjAsIC01MC4wLCAwLjQsIC01MC4wLCAyLjYsIC03LjIsIC03LjAsIC03LjQsIC01LjEsIC01MC4wLCAtNS43LCAtOS44LCAtMy4yLCAtOC40LCAtNy40LCAtOC45LCAtNS45LF0sXG4gICAgICAgICAgICBbLTguNSwgLTEwLjMsIC0xMC4wLCAtOS4wLCAtMS40LCAtNC45LCAtMy45LCAtMy43LCAtMTAuMCwgLTguNSwgLTEwLjIsIC03LjgsIC03LjgsIC0xMi40LCAtOC41LCAtMTEuMSwgMC4wLCAtNS41LCAtMi4zLCAtNC45LCAxMi42LCAxMC4wLCAxMS4xLCAxMC41LCAtNi4wLCAtOC4zLCAtNi45LCAtNy41LCAtMi4yLCAtNy40LCAtNS4zLCAtNS45LCAtOC45LCAtMTIuNSwgLTkuNCwgLTExLjYsIC0wLjcsIC0zLjksIC0yLjMsIC0zLjAsIC05LjEsIC05LjgsIC05LjIsIC05LjUsIC01LjYsIC05LjAsIC04LjAsIC04LjUsIC01MC4wLCAtMTUuMywgLTUwLjAsIC0xNC4xLCAyLjMsIC0xLjQsIDAuMywgLTAuNSwgLTUwLjAsIC0xMy42LCAtMTQuMywgLTExLjUsIC01LjMsIC0xMy43LCAtNi4xLCAtMTIuNyxdLFxuICAgICAgICAgICAgWy0xMS4yLCAtOC4xLCAtMTEuOCwgLTguOCwgLTQuMSwgLTEuOSwgLTMuOSwgLTMuNSwgLTExLjYsIC01LjksIC0xMS41LCAtNy45LCAtMTAuMiwgLTEwLjEsIC0xMC4yLCAtMTEuMiwgLTMuNCwgLTIuNiwgLTQuMSwgLTMuOCwgMTAuMCwgMTMuMSwgMTAuNywgMTAuNiwgLTguMSwgLTUuMiwgLTguMCwgLTYuNywgLTYuMSwgLTMuNywgLTcuNSwgLTUuNiwgLTExLjEsIC0xMC4zLCAtMTAuNiwgLTExLjksIC0zLjIsIC0xLjAsIC0yLjIsIC0yLjgsIC0xMC41LCAtOC4xLCAtOS40LCAtOS41LCAtOC4zLCAtNi45LCAtOS40LCAtOC44LCAtNTAuMCwgLTExLjMsIC01MC4wLCAtMTIuOCwgLTAuNiwgMi4yLCAtMC4zLCAwLjEsIC01MC4wLCAtMTAuMSwgLTE3LjUsIC0xMS4xLCAtOC42LCAtOS45LCAtOC42LCAtMTEuOSxdLFxuICAgICAgICAgICAgWy04LjksIC05LjQsIC04LjYsIC04LjksIC0yLjksIC00LjUsIC0yLjIsIC0zLjksIC04LjgsIC03LjUsIC04LjEsIC03LjksIC04LjgsIC0xMS42LCAtNy43LCAtMTEuOSwgLTAuNywgLTQuMSwgLTAuNSwgLTQuMCwgMTEuMSwgMTAuNywgMTMuMiwgMTAuNCwgLTUuNywgLTUuOCwgLTMuNSwgLTYuMSwgLTMuNiwgLTYuNSwgLTMuMywgLTUuNSwgLTkuNCwgLTExLjAsIC04LjcsIC0xMS4yLCAtMS44LCAtMi43LCAwLjcsIC0zLjAsIC05LjEsIC04LjIsIC03LjMsIC05LjQsIC03LjIsIC04LjIsIC03LjIsIC04LjIsIC01MC4wLCAtMTMuMiwgLTUwLjAsIC0xMy4zLCAwLjUsIC0wLjksIDEuOCwgLTAuNiwgLTUwLjAsIC0xMS40LCAtMTEuMSwgLTEwLjUsIC02LjEsIC0xMi45LCAtNS4wLCAtMTEuOSxdLFxuICAgICAgICAgICAgWy0xMC44LCAtOS42LCAtMTEuOSwgLTcuNywgLTMuMywgLTMuOCwgLTQuNSwgLTEuNiwgLTExLjcsIC03LjcsIC0xMi4wLCAtNi4yLCAtOS42LCAtMTIuMCwgLTkuOCwgLTkuNCwgLTMuMiwgLTQuNywgLTQuNiwgLTIuNCwgMTAuNSwgMTAuNiwgMTAuNCwgMTIuNiwgLTguMiwgLTcuOSwgLTkuMCwgLTQuNywgLTYuMSwgLTYuMCwgLTcuNSwgLTIuOSwgLTEwLjksIC0xMi4yLCAtMTEuMiwgLTEwLjksIC0yLjQsIC0yLjksIC0yLjcsIC0wLjksIC0xMC40LCAtOS43LCAtMTAuMiwgLTguMCwgLTguNCwgLTkuMSwgLTkuMywgLTYuNSwgLTUwLjAsIC0xMy4zLCAtNTAuMCwgLTExLjAsIC0wLjAsIC0wLjQsIC0wLjQsIDIuMywgLTUwLjAsIC0xMC45LCAtMTcuMiwgLTguMywgLTguMywgLTEyLjcsIC03LjgsIC05LjMsXSxcbiAgICAgICAgICAgIFsyLjEsIC04LjEsIDEuMiwgLTcuMCwgLTguMCwgLTkuNSwgLTcuMywgLTkuOSwgMTAuNSwgLTUuNSwgOS4zLCAtNS43LCAtOS41LCAtMTUuMSwgLTEwLjAsIC0xMi45LCAyLjUsIC0xLjIsIC0wLjEsIC0xLjAsIC02LjAsIC04LjEsIC01LjcsIC04LjIsIDEzLjgsIDExLjMsIDExLjgsIDEyLjEsIC02LjAsIC05LjEsIC05LjAsIC05LjUsIC04LjksIC0xMy40LCAtMTAuMCwgLTEzLjEsIC05LjksIC0xMS43LCAtOS44LCAtMTIuOCwgLTUuOSwgLTkuNCwgLTYuNSwgLTguMSwgLTEwLjcsIC0xNC4wLCAtMTMuMywgLTEzLjksIC01MC4wLCAtMTEuOSwgLTUwLjAsIC05LjcsIC04LjksIC0xMC44LCAtOS4wLCAtMTEuMSwgLTUwLjAsIC02LjUsIC01LjMsIC02LjMsIC0xMC41LCAtMTYuMiwgLTEwLjQsIC0xNS4yLF0sXG4gICAgICAgICAgICBbMC4wLCAtNS4wLCAwLjUsIC02LjgsIC05LjEsIC03LjgsIC03LjUsIC04LjksIDcuNywgLTIuNCwgOC4yLCAtNS4xLCAtMTEuOSwgLTEzLjEsIC0xMC40LCAtMTQuMywgLTAuOCwgMy4wLCAtMC45LCAwLjgsIC04LjMsIC01LjIsIC01LjgsIC03LjksIDExLjMsIDE1LjAsIDExLjIsIDEyLjgsIC05LjcsIC01LjMsIC05LjIsIC03LjgsIC0xMS43LCAtMTAuNiwgLTEwLjEsIC0xMi4yLCAtMTEuNywgLTguOCwgLTguOSwgLTExLjgsIC05LjMsIC01LjAsIC04LjAsIC04LjIsIC0xMy42LCAtMTEuNCwgLTEyLjgsIC0xMy4wLCAtNTAuMCwgLTcuMiwgLTUwLjAsIC04LjQsIC0xMS4wLCAtNy43LCAtOC43LCAtMTAuMiwgLTUwLjAsIC0xLjUsIC03LjEsIC00LjksIC0xMS4yLCAtMTEuNiwgLTExLjYsIC0xNS4wLF0sXG4gICAgICAgICAgICBbMS40LCAtNy4zLCAyLjIsIC03LjEsIC04LjAsIC05LjMsIC02LjQsIC05LjYsIDkuMSwgLTUuNSwgMTAuMCwgLTUuNCwgLTEwLjksIC0xNC4zLCAtOC40LCAtMTQuMCwgMC45LCAtMS4xLCAyLjQsIC0xLjMsIC02LjksIC04LjAsIC0zLjUsIC05LjAsIDExLjgsIDExLjIsIDEzLjQsIDExLjQsIC03LjMsIC04LjgsIC02LjUsIC04LjUsIC0xMC4wLCAtMTIuNSwgLTcuOCwgLTEyLjUsIC05LjYsIC0xMS4wLCAtNy4xLCAtMTAuNywgLTcuOSwgLTguMCwgLTQuMywgLTkuNCwgLTExLjQsIC0xMi4zLCAtMTAuOSwgLTEyLjksIC01MC4wLCAtMTEuOCwgLTUwLjAsIC0xMS4yLCAtOS40LCAtOS44LCAtNy4zLCAtMTAuNSwgLTUwLjAsIC02LjIsIC0yLjIsIC02LjcsIC05LjgsIC0xNS4yLCAtOC41LCAtMTQuOSxdLFxuICAgICAgICAgICAgWzAuMiwgLTYuMywgMC4xLCAtNC4zLCAtOC4yLCAtOC45LCAtOC41LCAtNy4wLCA4LjUsIC00LjEsIDguMCwgLTIuMSwgLTEwLjUsIC0xMy40LCAtMTAuMiwgLTExLjksIDAuMiwgMS42LCAtMC44LCAzLjQsIC03LjUsIC02LjcsIC02LjEsIC00LjcsIDEyLjEsIDEyLjgsIDExLjQsIDE0LjcsIC04LjcsIC03LjQsIC05LjQsIC01LjMsIC05LjksIC0xMS44LCAtMTAuNSwgLTEwLjMsIC05LjksIC0xMC4xLCAtOS4zLCAtOS4zLCAtOC4xLCAtNy4yLCAtOC4wLCAtNS4yLCAtMTIuMCwgLTEyLjEsIC0xMi42LCAtMTAuOSwgLTUwLjAsIC03LjksIC01MC4wLCAtNS4zLCAtOS4zLCAtOC44LCAtOC45LCAtNy4wLCAtNTAuMCwgLTMuNiwgLTcuMSwgLTEuMiwgLTEwLjIsIC0xMi43LCAtOS45LCAtMTEuMCxdLFxuICAgICAgICAgICAgWy0xMC4yLCAtMTMuNCwgLTExLjgsIC0xMi40LCAtNi4wLCAtOS40LCAtNy4xLCAtOC42LCAtOS44LCAtMTIuOSwgLTEwLjgsIC0xMi40LCAyLjMsIC0xLjQsIDEuMCwgLTEuMCwgLTMuMCwgLTguMCwgLTUuMSwgLTcuNiwgLTIuMiwgLTYuMSwgLTMuNiwgLTYuMSwgLTYuMCwgLTkuNywgLTcuMywgLTguNywgMTEuMiwgNy45LCA4LjksIDguMSwgLTEyLjEsIC0xNy40LCAtMTMuMiwgLTE2LjgsIC02LjMsIC05LjUsIC03LjUsIC04LjgsIC0xMi43LCAtMTUuMiwgLTEzLjEsIC0xNC4yLCAwLjAsIC0zLjEsIC0xLjgsIC0zLjEsIC01MC4wLCAtMTAuNywgLTUwLjAsIC05LjMsIC00LjYsIC04LjksIC01LjksIC04LjMsIC01MC4wLCAtMTIuOCwgLTkuNiwgLTEwLjYsIDkuNSwgLTMuMiwgOC4yLCAtMi44LF0sXG4gICAgICAgICAgICBbLTEzLjUsIC0xMS4zLCAtMTQuMCwgLTEyLjksIC05LjMsIC03LjEsIC04LjIsIC04LjksIC0xMi43LCAtMTAuMywgLTExLjksIC0xMi4zLCAtMC40LCAxLjQsIC0wLjYsIC0wLjQsIC03LjIsIC00LjcsIC02LjksIC01LjcsIC03LjQsIC0zLjcsIC02LjUsIC02LjAsIC05LjEsIC01LjMsIC04LjgsIC03LjQsIDcuOSwgMTEuOSwgNy44LCA5LjMsIC0xNS4yLCAtMTUuMSwgLTE0LjYsIC0xNy4yLCAtOS43LCAtNy4zLCAtOC4yLCAtOS4yLCAtMTUuMCwgLTEyLjgsIC0xNC4xLCAtMTQuOSwgLTIuOCwgMC4yLCAtMi45LCAtMi4zLCAtNTAuMCwgLTcuNCwgLTUwLjAsIC04LjcsIC05LjQsIC03LjMsIC05LjQsIC05LjQsIC01MC4wLCAtOC4wLCAtMTEuOSwgLTkuNywgNi41LCAwLjUsIDYuNCwgLTEuOCxdLFxuICAgICAgICAgICAgWy0xMy4wLCAtMTQuNCwgLTExLjksIC0xMy45LCAtNy43LCAtOS4wLCAtNi43LCAtOC44LCAtMTEuNywgLTEyLjcsIC0xMC43LCAtMTMuMSwgLTAuMiwgLTEuNiwgMS43LCAtMS42LCAtNS43LCAtOC43LCAtNC44LCAtOC4xLCAtNS4zLCAtNy41LCAtMy4zLCAtNy41LCAtOS4wLCAtOS4yLCAtNi41LCAtOS40LCA4LjksIDcuOCwgMTAuMSwgNy44LCAtMTQuMywgLTE3LjcsIC0xMy4wLCAtMTcuOCwgLTguMCwgLTkuNCwgLTYuMiwgLTkuMiwgLTE1LjEsIC0xNC45LCAtMTIuMiwgLTE0LjksIC0xLjgsIC0zLjIsIC0wLjgsIC0zLjIsIC01MC4wLCAtMTAuOCwgLTUwLjAsIC05LjksIC03LjMsIC05LjYsIC02LjQsIC05LjQsIC01MC4wLCAtMTIuMywgLTguNywgLTExLjMsIDcuNiwgLTMuMywgOC43LCAtMi45LF0sXG4gICAgICAgICAgICBbLTEyLjUsIC0xMi45LCAtMTMuNCwgLTEwLjAsIC04LjUsIC05LjAsIC03LjgsIC02LjgsIC0xMS44LCAtMTEuMywgLTEyLjQsIC0xMC4xLCAtMC4zLCAtMC41LCAtMC41LCAxLjIsIC02LjEsIC02LjAsIC02LjcsIC0zLjUsIC01LjksIC01LjYsIC01LjUsIC0yLjksIC05LjUsIC03LjgsIC04LjUsIC01LjMsIDguMSwgOS4zLCA3LjgsIDExLjgsIC0xNC40LCAtMTUuNywgLTE0LjUsIC0xNC42LCAtOC40LCAtOC43LCAtNy45LCAtNy4xLCAtMTQuMywgLTEzLjgsIC0xMy44LCAtMTIuMywgLTIuNCwgLTIuMiwgLTIuOSwgLTAuMiwgLTUwLjAsIC04LjksIC01MC4wLCAtNy4xLCAtOC4xLCAtOS4xLCAtOC43LCAtNi42LCAtNTAuMCwgLTkuNywgLTExLjQsIC04LjAsIDYuOCwgLTEuOCwgNi45LCAwLjQsXSxcbiAgICAgICAgICAgIFstMi42LCAtNi4zLCAtNC45LCAtNC45LCAtNi40LCAtOS40LCAtNy45LCAtOC42LCAtNi4zLCAtNy40LCAtOC4yLCAtNi42LCAtOS43LCAtMTQuOSwgLTExLjEsIC0xMy45LCAtMC4yLCAtOC4yLCAtMi4zLCAtNi44LCAtOC45LCAtMTEuMSwgLTkuNCwgLTEwLjksIC04LjksIC0xMS43LCAtMTAuMCwgLTkuOSwgLTEyLjEsIC0xNS4yLCAtMTQuMywgLTE0LjQsIDExLjEsIDIuOSwgOS4yLCAzLjUsIC0zLjAsIC03LjAsIC00LjMsIC02LjIsIC0yLjIsIC02LjYsIC0zLjcsIC01LjcsIC02LjAsIC0xMC40LCAtOC42LCAtOS41LCAtNTAuMCwgLTE1LjUsIC01MC4wLCAtMTMuOSwgLTcuOCwgLTEwLjUsIC04LjcsIC05LjYsIC01MC4wLCAtMTYuNSwgLTE3LjEsIC0xNC44LCAtMTIuMSwgLTE4LjksIC0xMi40LCAtMTcuNCxdLFxuICAgICAgICAgICAgWy04LjUsIDAuOCwgLTkuMSwgLTAuNywgLTEwLjEsIC03LjUsIC05LjEsIC04LjIsIC0xMS40LCAtMy4xLCAtMTEuOCwgLTQuNCwgLTE1LjUsIC0xNC4zLCAtMTQuOCwgLTE1LjQsIC02LjYsIC00LjcsIC03LjEsIC01LjgsIC0xMi41LCAtMTAuMywgLTExLjAsIC0xMi4yLCAtMTMuNCwgLTEwLjYsIC0xMi41LCAtMTEuOCwgLTE3LjQsIC0xNS4xLCAtMTcuNywgLTE1LjcsIDIuOSwgMTIuNSwgMy4xLCAxMC4zLCAtNy43LCAtNS4yLCAtNi4yLCAtNy4zLCAtNS40LCAtMS43LCAtNS40LCAtMy43LCAtMTEuNiwgLTkuMSwgLTEzLjAsIC0xMC44LCAtNTAuMCwgLTEwLjMsIC01MC4wLCAtMTEuMiwgLTkuOCwgLTguMywgLTkuMSwgLTkuNywgLTUwLjAsIC0xMi43LCAtMjAuNiwgLTEzLjEsIC0xNi4wLCAtMTYuNiwgLTE3LjAsIC0xOC40LF0sXG4gICAgICAgICAgICBbLTUuMCwgLTYuNCwgLTMuNCwgLTUuNiwgLTcuNSwgLTkuMywgLTcuMSwgLTguOCwgLTguOCwgLTcuNCwgLTYuOSwgLTYuOSwgLTExLjQsIC0xNS4yLCAtOS43LCAtMTMuNywgLTEuOCwgLTcuOCwgLTAuOCwgLTcuMiwgLTkuNCwgLTEwLjYsIC04LjcsIC0xMS4yLCAtMTAuMCwgLTEwLjEsIC03LjgsIC0xMC41LCAtMTMuMiwgLTE0LjYsIC0xMy4wLCAtMTQuNSwgOS4yLCAzLjEsIDEwLjgsIDMuMCwgLTQuNSwgLTYuNywgLTIuNywgLTYuNywgLTUuMCwgLTYuOCwgLTIuNSwgLTYuNywgLTcuNSwgLTEwLjQsIC03LjQsIC0xMC4yLCAtNTAuMCwgLTE1LjUsIC01MC4wLCAtMTQuMiwgLTguOSwgLTEwLjIsIC04LjUsIC0xMC4wLCAtNTAuMCwgLTE1LjYsIC0xNS4zLCAtMTUuNSwgLTEzLjAsIC0xOC44LCAtMTIuNiwgLTE4LjMsXSxcbiAgICAgICAgICAgIFstOC4xLCAtMS4xLCAtOC45LCAxLjQsIC04LjYsIC05LjIsIC05LjQsIC02LjgsIC0xMS4wLCAtNC45LCAtMTEuNSwgLTIuNiwgLTEzLjcsIC0xNi44LCAtMTQuNSwgLTEyLjYsIC02LjAsIC02LjcsIC03LjIsIC00LjIsIC0xMS42LCAtMTEuOSwgLTExLjIsIC0xMC45LCAtMTMuMSwgLTEyLjIsIC0xMi41LCAtMTAuMywgLTE2LjgsIC0xNy4yLCAtMTcuOCwgLTE0LjYsIDMuNSwgMTAuMywgMy4wLCAxMi40LCAtNi45LCAtNy41LCAtNi44LCAtNC45LCAtNS40LCAtNC4yLCAtNS40LCAtMS4zLCAtMTAuOCwgLTExLjUsIC0xMi40LCAtOC4yLCAtNTAuMCwgLTEyLjUsIC01MC4wLCAtOC45LCAtOS4yLCAtMTAuMCwgLTkuNCwgLTcuOSwgLTUwLjAsIC0xNC4zLCAtMTkuOSwgLTExLjQsIC0xNi4yLCAtMTkuMiwgLTE1LjgsIC0xNS45LF0sXG4gICAgICAgICAgICBbLTYuMywgLTcuNCwgLTguMCwgLTYuMCwgMi44LCAtMC43LCAwLjksIDAuMywgLTcuNSwgLTQuNCwgLTguNCwgLTMuNiwgLTMuMCwgLTcuNywgLTMuNywgLTYuMiwgLTUuMywgLTEwLjAsIC03LjIsIC04LjksIC0wLjcsIC0zLjIsIC0xLjgsIC0yLjQsIC05LjksIC0xMS43LCAtOS42LCAtOS45LCAtNi4zLCAtOS43LCAtOC4wLCAtOC40LCAtMy4wLCAtNy43LCAtNC41LCAtNi45LCAxMS4zLCA4LjIsIDkuNCwgOS4xLCAtMS4wLCAtMy4zLCAtMS44LCAtMi40LCAxLjUsIC0yLjEsIC0wLjQsIC0xLjEsIC01MC4wLCAtMTQuNSwgLTUwLjAsIC0xMi45LCAyLjgsIC0wLjAsIDEuNCwgMC43LCAtNTAuMCwgLTguNywgLTE0LjEsIC03LjUsIC01LjIsIC0xMi41LCAtNi41LCAtMTAuNyxdLFxuICAgICAgICAgICAgWy05LjksIC01LjAsIC0xMC4wLCAtNi41LCAtMC43LCAyLjYsIC0wLjIsIDAuMSwgLTEwLjMsIC0xLjgsIC05LjksIC0zLjgsIC02LjQsIC00LjcsIC01LjgsIC02LjcsIC04LjIsIC04LjMsIC04LjAsIC0xMC4yLCAtMy45LCAtMS4wLCAtMi43LCAtMi45LCAtMTEuNywgLTguOCwgLTExLjAsIC0xMC4xLCAtOS41LCAtNy4zLCAtOS40LCAtOC43LCAtNy4wLCAtNS4yLCAtNi43LCAtNy41LCA4LjIsIDExLjYsIDguOCwgOS4xLCAtMy43LCAtMC45LCAtMy4xLCAtMy4wLCAtMi4wLCAxLjIsIC0yLjMsIC0xLjMsIC01MC4wLCAtMTIuMSwgLTUwLjAsIC0xMi42LCAwLjEsIDIuNSwgMC43LCAwLjYsIC01MC4wLCAtNi4wLCAtMTQuOCwgLTcuNSwgLTguNiwgLTkuNCwgLTguNSwgLTExLjIsXSxcbiAgICAgICAgICAgIFstNy41LCAtNi4yLCAtNy4yLCAtNi4yLCAwLjksIDAuMiwgMi41LCAwLjIsIC04LjMsIC0zLjUsIC03LjEsIC0zLjcsIC00LjEsIC02LjMsIC0zLjEsIC02LjMsIC01LjcsIC04LjksIC01LjYsIC04LjQsIC0yLjMsIC0yLjIsIDAuNywgLTIuNywgLTkuOCwgLTguOSwgLTcuMSwgLTkuMywgLTcuNSwgLTguMiwgLTYuMiwgLTcuOSwgLTQuMywgLTYuMiwgLTIuNywgLTYuOCwgOS40LCA4LjgsIDEyLjEsIDguOCwgLTIuMSwgLTIuMCwgMC4xLCAtMi40LCAwLjAsIC0xLjEsIDEuMywgLTAuOCwgLTUwLjAsIC0xMS45LCAtNTAuMCwgLTEyLjYsIDEuMiwgMC43LCAzLjUsIDAuOCwgLTUwLjAsIC03LjEsIC0xMi40LCAtNy4xLCAtNy4xLCAtMTAuNiwgLTUuMCwgLTEwLjYsXSxcbiAgICAgICAgICAgIFstOS4wLCAtNi41LCAtMTAuMCwgLTQuOCwgMC4xLCAtMC4xLCAtMC4zLCAyLjQsIC05LjksIC0zLjUsIC0xMC42LCAtMi4wLCAtNS40LCAtNi42LCAtNS42LCAtNC40LCAtNy42LCAtOS45LCAtOC41LCAtOC4yLCAtMy4wLCAtMi44LCAtMy4wLCAtMC45LCAtMTIuOCwgLTExLjgsIC0xMC43LCAtOS4zLCAtOC44LCAtOS4yLCAtOS4yLCAtNy4xLCAtNi4yLCAtNy4zLCAtNi43LCAtNC45LCA5LjEsIDkuMSwgOC44LCAxMS4yLCAtMy4xLCAtMy4wLCAtMy4zLCAtMS4wLCAtMS4xLCAtMS40LCAtMi4wLCAxLjIsIC01MC4wLCAtMTIuOCwgLTUwLjAsIC0xMC45LCAwLjgsIDAuNSwgMC43LCAyLjMsIC01MC4wLCAtNy41LCAtMTYuNSwgLTUuOSwgLTcuOCwgLTExLjEsIC03LjgsIC05LjAsXSxcbiAgICAgICAgICAgIFstNy4xLCAtNS42LCAtOS4xLCAtNS4xLCAtNS45LCAtOC4wLCAtNi45LCAtNy40LCAtMS45LCAtMS42LCAtNC43LCAtMS40LCAtOS42LCAtMTQuNiwgLTEwLjQsIC0xMy4wLCAtNi43LCAtMTAuOCwgLTkuNCwgLTkuOSwgLTkuMSwgLTEwLjUsIC05LjEsIC0xMC40LCAtNS45LCAtOS4zLCAtNy45LCAtOC4xLCAtMTIuNywgLTE1LjAsIC0xNS4xLCAtMTQuMywgLTIuMiwgLTUuNCwgLTUuMCwgLTUuNCwgLTEuMCwgLTMuNywgLTIuMSwgLTMuMSwgMTIuOCwgOS42LCAxMS4xLCAxMC4xLCAtNC44LCAtOS40LCAtOC4xLCAtOC42LCAtNTAuMCwgLTE4LjMsIC01MC4wLCAtMTUuNCwgLTUuOSwgLTcuNSwgLTYuNiwgLTcuMSwgLTUwLjAsIC05LjUsIC0xMS43LCAtOC40LCAtMTIuNSwgLTE3LjMsIC0xMy4yLCAtMTUuNCxdLFxuICAgICAgICAgICAgWy0xMC4yLCAtMS42LCAtMTAuMiwgLTMuMiwgLTcuMywgLTQuNiwgLTYuNSwgLTYuMiwgLTYuNywgMy4wLCAtNi44LCAwLjgsIC0xMS45LCAtMTAuOCwgLTExLjUsIC0xMi4yLCAtOS42LCAtNy4xLCAtOS43LCAtOC40LCAtOS44LCAtOC4xLCAtOC4yLCAtOS43LCAtOS40LCAtNS4wLCAtOC4wLCAtNy4yLCAtMTUuMiwgLTEyLjgsIC0xNC45LCAtMTMuOCwgLTYuNiwgLTEuNywgLTYuOCwgLTQuMiwgLTMuMywgLTAuOSwgLTIuMCwgLTMuMCwgOS42LCAxMi44LCA5LjcsIDEwLjUsIC04LjUsIC01LjYsIC05LjMsIC03LjgsIC01MC4wLCAtMTIuNywgLTUwLjAsIC0xMy44LCAtNi44LCAtNS4xLCAtNS4zLCAtNi41LCAtNTAuMCwgLTQuMSwgLTEyLjgsIC01LjgsIC0xNC40LCAtMTQuMSwgLTEzLjYsIC0xNC44LF0sXG4gICAgICAgICAgICBbLTguMiwgLTQuNywgLTcuMSwgLTUuMCwgLTYuNSwgLTcuNywgLTUuNSwgLTYuOSwgLTQuMSwgLTAuOCwgLTEuMiwgLTAuOSwgLTEwLjUsIC0xMi44LCAtOC4yLCAtMTMuMCwgLTcuNSwgLTEwLjAsIC03LjIsIC05LjcsIC05LjIsIC05LjQsIC03LjMsIC0xMC4yLCAtNi41LCAtOC4wLCAtNC4zLCAtOC4wLCAtMTMuMSwgLTE0LjEsIC0xMi4yLCAtMTMuOCwgLTMuNywgLTUuNCwgLTIuNSwgLTUuNCwgLTEuOCwgLTMuMSwgMC4xLCAtMy4zLCAxMS4xLCA5LjcsIDEyLjksIDkuOCwgLTUuNSwgLTguMSwgLTUuNCwgLTcuOCwgLTUwLjAsIC0xNi40LCAtNTAuMCwgLTE0LjgsIC01LjksIC03LjEsIC00LjcsIC03LjIsIC01MC4wLCAtOC40LCAtNi40LCAtOC4xLCAtMTIuMSwgLTE2LjIsIC0xMC4zLCAtMTUuOCxdLFxuICAgICAgICAgICAgWy05LjIsIC0zLjAsIC05LjksIC0xLjIsIC02LjUsIC02LjEsIC02LjgsIC00LjQsIC02LjQsIDAuOSwgLTcuMCwgMy4wLCAtMTEuOCwgLTEzLjAsIC0xMS4xLCAtMTAuNCwgLTkuMywgLTkuMiwgLTkuOCwgLTYuNCwgLTkuNSwgLTkuNSwgLTkuNCwgLTguMCwgLTguMSwgLTguMiwgLTkuNCwgLTUuMiwgLTE0LjIsIC0xNC45LCAtMTQuOSwgLTEyLjMsIC01LjcsIC0zLjcsIC02LjcsIC0xLjMsIC0yLjQsIC0zLjAsIC0yLjQsIC0xLjAsIDEwLjEsIDEwLjUsIDkuOCwgMTMuMSwgLTcuMiwgLTguMCwgLTguNCwgLTUuMCwgLTUwLjAsIC0xNC43LCAtNTAuMCwgLTExLjQsIC02LjMsIC02LjcsIC01LjgsIC01LjAsIC01MC4wLCAtNi4xLCAtMTMuNCwgLTMuNiwgLTEzLjAsIC0xNi4wLCAtMTMuNywgLTEzLjMsXSxcbiAgICAgICAgICAgIFstOC4yLCAtMTAuOCwgLTEwLjEsIC05LjgsIC0wLjQsIC0zLjYsIC0xLjcsIC0yLjksIC03LjksIC04LjQsIC05LjgsIC04LjIsIDYuMiwgMi4zLCAwLjYsIDIuOSwgLTcuMSwgLTExLjYsIC05LjIsIC0xMS4xLCAtNS42LCAtOC4zLCAtNy4yLCAtOC40LCAtMTAuNywgLTEzLjYsIC0xMS40LCAtMTIuMCwgMC4wLCAtMi44LCAtMS44LCAtMi40LCAtNi4wLCAtMTEuNiwgLTcuNSwgLTEwLjgsIDEuNSwgLTIuMCwgMC4wLCAtMS4xLCAtNC44LCAtOC41LCAtNS41LCAtNy4yLCAxMS45LCA4LjYsIDEwLjAsIDkuMCwgLTUwLjAsIC0xNC4yLCAtNTAuMCwgLTEyLjgsIC00LjEsIC03LjQsIC01LjcsIC02LjUsIC01MC4wLCAtMTEuMCwgLTE0LjMsIC05LjksIDEuNCwgLTcuOSwgLTAuNywgLTYuOCxdLFxuICAgICAgICAgICAgWy0xMi41LCAtOC43LCAtMTMuMCwgLTkuOSwgLTMuOSwgLTEuMCwgLTMuNCwgLTIuOSwgLTEyLjUsIC02LjMsIC0xMS42LCAtOC4xLCAzLjMsIDYuMCwgLTEuNiwgMy44LCAtMTAuNSwgLTEwLjEsIC0xMS4xLCAtMTEuMSwgLTkuMCwgLTYuOSwgLTguMiwgLTkuMSwgLTE0LjAsIC0xMS40LCAtMTIuMywgLTEyLjEsIC0zLjEsIDAuMiwgLTMuMiwgLTIuMiwgLTEwLjQsIC05LjEsIC0xMC40LCAtMTEuNSwgLTIuMSwgMS4yLCAtMS4xLCAtMS40LCAtOS40LCAtNS42LCAtOC4xLCAtOC4wLCA4LjYsIDEyLjQsIDguNiwgOS41LCAtNTAuMCwgLTEwLjQsIC01MC4wLCAtMTEuNiwgLTcuMiwgLTUuNywgLTcuNSwgLTcuNCwgLTUwLjAsIC04LjYsIC0xNS43LCAtOS43LCAtMy4wLCAtMy43LCAtMy4yLCAtNS45LF0sXG4gICAgICAgICAgICBbLTExLjEsIC0xMS45LCAtMTAuNiwgLTExLjMsIC0yLjYsIC00LjEsIC0xLjcsIC0zLjUsIC0xMS40LCAtOS42LCAtOS42LCAtOS4yLCAzLjcsIDIuNSwgMS42LCAyLjUsIC05LjYsIC0xMi4zLCAtOS41LCAtMTEuOCwgLTguMCwgLTkuNCwgLTcuMiwgLTkuMywgLTEzLjMsIC0xMi44LCAtMTAuOSwgLTEyLjYsIC0xLjgsIC0yLjksIC0wLjgsIC0yLjksIC04LjYsIC0xMy4wLCAtNy40LCAtMTIuNCwgLTAuNCwgLTIuMywgMS4zLCAtMi4wLCAtOC4xLCAtOS4zLCAtNS40LCAtOC40LCAxMC4wLCA4LjYsIDExLjQsIDguOSwgLTUwLjAsIC0xMy43LCAtNTAuMCwgLTEzLjIsIC02LjEsIC04LjEsIC01LjUsIC03LjUsIC01MC4wLCAtMTEuMywgLTEyLjcsIC0xMC4xLCAtMS42LCAtNy44LCAtMC4zLCAtNy4yLF0sXG4gICAgICAgICAgICBbLTExLjQsIC0xMC4wLCAtMTIuNywgLTguMiwgLTMuMSwgLTMuMSwgLTIuOCwgLTAuOSwgLTExLjcsIC03LjMsIC0xMi4xLCAtNS44LCAzLjYsIDMuNiwgLTEuMSwgNS44LCAtOS40LCAtMTEuOSwgLTEwLjcsIC0xMC4wLCAtOC41LCAtOC44LCAtOC4yLCAtNi41LCAtMTMuOSwgLTEzLjAsIC0xMi45LCAtMTAuOSwgLTMuMSwgLTIuMywgLTMuMiwgLTAuMiwgLTkuNSwgLTEwLjgsIC0xMC4yLCAtOC4yLCAtMS4xLCAtMS4zLCAtMC44LCAxLjIsIC04LjYsIC03LjgsIC03LjgsIC01LjAsIDkuMCwgOS41LCA4LjksIDEyLjAsIC01MC4wLCAtMTMuMCwgLTUwLjAsIC0xMC4zLCAtNi4yLCAtNy4wLCAtNy4xLCAtNS40LCAtNTAuMCwgLTkuMywgLTE0LjAsIC04LjIsIC0yLjQsIC02LjMsIC0yLjQsIC0zLjksXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMy4zLCAtNTAuMCwgMzAuNiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOS4yLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xNC44LCAtNi4yLCAtMTQuOSwgLTcuNiwgLTE0LjYsIC0xMS42LCAtMTMuMCwgLTEyLjIsIC0xNC4wLCAtOS4wLCAtMTQuMSwgLTEwLjEsIC0xMy42LCAtMTEuMiwgLTEyLjQsIC0xMi41LCAtOC4xLCAyLjIsIC04LjcsIDAuNCwgLTE1LjMsIC0xMS4zLCAtMTMuMiwgLTEzLjMsIC0xMS45LCAtNy4yLCAtMTEuOCwgLTcuOSwgLTEwLjcsIC03LjQsIC0xMC44LCAtOC45LCAtMTUuNSwgLTEwLjMsIC0xNS41LCAtMTIuNSwgLTE0LjUsIC0xMi4xLCAtMTEuOSwgLTEyLjgsIC0xOC4zLCAtMTIuNywgLTE2LjQsIC0xNC43LCAtMTQuMiwgLTEwLjQsIC0xMy43LCAtMTMuMCwgLTUwLjAsIDE1LjEsIC01MC4wLCAxMy4zLCAtOS45LCAtNS44LCAtOC45LCAtNy42LCAtNTAuMCwgLTEuNSwgLTcuOCwgLTMuMCwgLTguMSwgMy42LCAtOS40LCAyLjAsXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMC42LCAtNTAuMCwgMzUuMiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOC41LCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xMy44LCAtNy41LCAtMTQuNCwgLTUuMSwgLTEyLjYsIC0xMS42LCAtMTEuNSwgLTEwLjEsIC0xMy4yLCAtOS43LCAtMTIuNywgLTcuNCwgLTExLjksIC0xMS45LCAtMTEuNSwgLTEwLjIsIC03LjIsIDAuOSwgLTguNiwgMi42LCAtMTQuMSwgLTEyLjgsIC0xMy4zLCAtMTEuMCwgLTkuNywgLTguNCwgLTExLjIsIC01LjMsIC05LjMsIC04LjcsIC05LjksIC03LjEsIC0xMy45LCAtMTEuMiwgLTE0LjIsIC04LjksIC0xMi45LCAtMTIuNiwgLTEyLjYsIC0xMC45LCAtMTUuNCwgLTEzLjgsIC0xNC44LCAtMTEuNCwgLTEyLjgsIC0xMS42LCAtMTMuMiwgLTEwLjMsIC01MC4wLCAxMy4zLCAtNTAuMCwgMTUuMiwgLTguNiwgLTcuMCwgLTguNCwgLTQuOCwgLTUwLjAsIC0zLjAsIC03LjEsIC0wLjEsIC03LjMsIDIuMywgLTguNywgMy45LF0sXG4gICAgICAgICAgICBbLTcuMywgLTYuMywgLTguOSwgLTUuNSwgMi45LCAwLjIsIDEuNSwgMS4yLCAtOC41LCAtMi4zLCAtMTAuMCwgLTEuNywgLTUuNiwgLTEwLjUsIC01LjUsIC05LjYsIC00LjMsIC03LjksIC02LjEsIC03LjIsIDIuMywgLTAuNiwgMC41LCAtMC4wLCAtOC45LCAtMTEuMCwgLTkuNCwgLTkuMywgLTQuNiwgLTkuNCwgLTcuMywgLTguMSwgLTcuOCwgLTkuOCwgLTguOSwgLTkuMiwgMi44LCAwLjEsIDEuMiwgMC44LCAtNS45LCAtNi44LCAtNS45LCAtNi4zLCAtNC4xLCAtNy4yLCAtNi4xLCAtNi4yLCAtNTAuMCwgLTkuOSwgLTUwLjAsIC04LjYsIDEyLjUsIDkuNCwgMTEuMCwgOS44LCAtNTAuMCwgLTQuOCwgLTguNywgLTMuNSwgLTAuMCwgLTguNiwgLTIuMSwgLTcuMCxdLFxuICAgICAgICAgICAgWy0xMC4xLCAtNC4zLCAtMTAuOCwgLTUuOCwgMC4xLCAyLjMsIDAuNywgMC42LCAtMTAuNCwgLTAuMiwgLTEwLjgsIC0yLjAsIC04LjgsIC05LjIsIC04LjAsIC05LjcsIC02LjgsIC01LjksIC03LjUsIC03LjAsIC0xLjQsIDIuMiwgLTAuOSwgLTAuNCwgLTEwLjgsIC03LjcsIC05LjgsIC04LjgsIC04LjksIC03LjMsIC05LjYsIC05LjEsIC0xMC41LCAtOC4zLCAtMTAuMiwgLTEwLjAsIC0wLjAsIDIuNSwgMC43LCAwLjUsIC03LjUsIC01LjEsIC03LjEsIC02LjcsIC03LjQsIC01LjcsIC04LjEsIC03LjAsIC01MC4wLCAtNS44LCAtNTAuMCwgLTcuMCwgOS40LCAxMi43LCAxMC4xLCAxMC4wLCAtNTAuMCwgLTEuNSwgLTExLjMsIC0zLjMsIC01LjQsIC00LjIsIC01LjYsIC02LjgsXSxcbiAgICAgICAgICAgIFstOC40LCAtNi4yLCAtOC45LCAtNS45LCAxLjgsIDAuNCwgMi43LCAxLjIsIC05LjEsIC0xLjIsIC04LjgsIC0xLjUsIC03LjIsIC0xMC41LCAtNC45LCAtOS42LCAtNS43LCAtNy40LCAtNS41LCAtNy40LCAwLjMsIC0wLjMsIDEuOCwgLTAuNCwgLTkuMCwgLTguNywgLTcuMywgLTguOSwgLTUuOSwgLTkuNCwgLTYuNCwgLTguNywgLTguNywgLTkuMSwgLTguNSwgLTkuNCwgMS40LCAwLjcsIDMuNSwgMC43LCAtNi42LCAtNS4zLCAtNC43LCAtNS44LCAtNS43LCAtNy41LCAtNS41LCAtNy4xLCAtNTAuMCwgLTguOSwgLTUwLjAsIC04LjQsIDExLjAsIDEwLjEsIDEzLjIsIDEwLjIsIC01MC4wLCAtNC4yLCAtNi4xLCAtMy42LCAtMy41LCAtOC40LCAtMS4yLCAtNi44LF0sXG4gICAgICAgICAgICBbLTkuMSwgLTUuNCwgLTEwLjQsIC00LjIsIDEuMCwgMC41LCAwLjYsIDIuNCwgLTkuNiwgLTEuNSwgLTEwLjUsIC0wLjUsIC04LjksIC0xMC41LCAtNy4yLCAtOC4zLCAtNi4zLCAtNi45LCAtNy43LCAtNS4xLCAtMC41LCAwLjEsIC0wLjYsIDIuMywgLTExLjEsIC0xMC4yLCAtMTAuNSwgLTcuMCwgLTguMywgLTkuNCwgLTkuNCwgLTYuNiwgLTkuNiwgLTkuNywgLTEwLjAsIC03LjksIDAuNywgMC42LCAwLjgsIDIuMywgLTcuMSwgLTYuNSwgLTcuMiwgLTUuMCwgLTYuNSwgLTcuNCwgLTcuNSwgLTUuNCwgLTUwLjAsIC03LjYsIC01MC4wLCAtNC44LCA5LjgsIDEwLjAsIDEwLjIsIDEyLjEsIC01MC4wLCAtMy4xLCAtMTEuNCwgLTAuNywgLTQuNiwgLTYuNiwgLTQuOSwgLTMuOSxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI5LjIsIC01MC4wLCAyOC41LCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMzLjMsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTEzLjAsIC03LjAsIC0xMy4xLCAtOC4zLCAtOS4yLCAtNi41LCAtOC45LCAtNy42LCAtOS44LCAtMC43LCAtOS4yLCAtMi4xLCAtMTIuNCwgLTEwLjMsIC0xMi40LCAtMTEuNiwgLTkuNSwgLTQuNiwgLTEwLjQsIC01LjcsIC0xMy42LCAtMTAuMSwgLTExLjQsIC0xMC45LCAtNi41LCAtMS41LCAtNi4yLCAtMy42LCAtMTIuOCwgLTguMCwgLTEyLjMsIC05LjcsIC0xNi41LCAtMTIuNywgLTE1LjYsIC0xNC4zLCAtOC43LCAtNi4wLCAtNy4xLCAtNy41LCAtOS41LCAtNC4xLCAtOC40LCAtNi4xLCAtMTEuMCwgLTguNiwgLTExLjMsIC05LjMsIC01MC4wLCAtMS41LCAtNTAuMCwgLTMuMCwgLTQuOCwgLTEuNSwgLTQuMiwgLTMuMSwgLTUwLjAsIDE2LjQsIC01LjEsIDE0LjIsIC0xMC4xLCAtNC4zLCAtMTAuMCwgLTUuNCxdLFxuICAgICAgICAgICAgWy0xMy41LCAtMTYuMywgLTExLjgsIC0xNS41LCAtMTMuNiwgLTE1LjMsIC0xMi4xLCAtMTYuMSwgLTcuNywgLTEzLjMsIC00LjIsIC0xMi42LCAtMTQuMSwgLTE2LjIsIC0xMC4zLCAtMTUuNCwgLTkuNiwgLTExLjYsIC03LjcsIC05LjgsIC0xNC4zLCAtMTcuNSwgLTExLjEsIC0xNy4yLCAtNS4zLCAtNy4xLCAtMi4yLCAtNy4xLCAtOS42LCAtMTEuOSwgLTguNywgLTExLjQsIC0xNy4xLCAtMjAuNiwgLTE1LjMsIC0xOS45LCAtMTQuMSwgLTE0LjgsIC0xMi40LCAtMTYuNSwgLTExLjcsIC0xMi44LCAtNi40LCAtMTMuNCwgLTE0LjMsIC0xNS43LCAtMTIuNywgLTE0LjAsIC01MC4wLCAtNy44LCAtNTAuMCwgLTcuMSwgLTguNywgLTExLjMsIC02LjEsIC0xMS40LCAtNTAuMCwgLTUuMSwgMTguNiwgLTQuOCwgLTguNiwgLTguMSwgLTQuNSwgLTcuMyxdLFxuICAgICAgICAgICAgWy0xMi40LCAtOC4yLCAtMTMuMCwgLTUuOSwgLTcuNywgLTcuOCwgLTcuNCwgLTUuOCwgLTguOCwgLTIuMCwgLTkuMywgLTAuNCwgLTExLjYsIC0xMS4zLCAtMTEuNiwgLTkuNCwgLTguOSwgLTUuNiwgLTEwLjAsIC0zLjIsIC0xMS41LCAtMTEuMSwgLTEwLjUsIC04LjMsIC02LjMsIC00LjksIC02LjcsIC0xLjIsIC0xMC42LCAtOS43LCAtMTEuMywgLTguMCwgLTE0LjgsIC0xMy4xLCAtMTUuNSwgLTExLjQsIC03LjUsIC03LjUsIC03LjEsIC01LjksIC04LjQsIC01LjgsIC04LjEsIC0zLjYsIC05LjksIC05LjcsIC0xMC4xLCAtOC4yLCAtNTAuMCwgLTMuMCwgLTUwLjAsIC0wLjEsIC0zLjUsIC0zLjMsIC0zLjYsIC0wLjcsIC01MC4wLCAxNC4yLCAtNC44LCAxNi40LCAtOC45LCAtNS44LCAtOC45LCAtMy40LF0sXG4gICAgICAgICAgICBbLTEwLjcsIC0xMy4yLCAtMTIuNCwgLTExLjYsIC00LjgsIC04LjQsIC02LjEsIC03LjIsIC0xMC4zLCAtMTEuOCwgLTExLjAsIC0xMS42LCAyLjgsIC0xLjcsIDAuNywgLTEuMSwgLTYuMiwgLTkuNywgLTcuMywgLTguNCwgLTUuMywgLTguNiwgLTYuMSwgLTguMywgLTEwLjUsIC0xMS4yLCAtOS44LCAtMTAuMiwgOS41LCA2LjUsIDcuNiwgNi44LCAtMTIuMSwgLTE2LjAsIC0xMy4wLCAtMTYuMiwgLTUuMiwgLTguNiwgLTcuMSwgLTcuOCwgLTEyLjUsIC0xNC40LCAtMTIuMSwgLTEzLjAsIDEuNCwgLTMuMCwgLTEuNiwgLTIuNCwgLTUwLjAsIC04LjEsIC01MC4wLCAtNy4zLCAtMC4wLCAtNS40LCAtMy41LCAtNC42LCAtNTAuMCwgLTEwLjEsIC04LjYsIC04LjksIDEzLjIsIC0wLjksIDkuNywgLTAuMyxdLFxuICAgICAgICAgICAgWy0xOC4xLCAtMTIuMywgLTE5LjQsIC0xNC4yLCAtMTIuMiwgLTkuNSwgLTExLjUsIC0xMC44LCAtMTcuOSwgLTExLjksIC0xOC4yLCAtMTMuOSwgLTYuNCwgLTMuNywgLTYuOCwgLTUuNCwgLTEyLjgsIC01LjksIC0xMy42LCAtNy40LCAtMTMuNywgLTkuOSwgLTEyLjksIC0xMi43LCAtMTYuMiwgLTExLjYsIC0xNS4yLCAtMTIuNywgLTMuMiwgMC41LCAtMy4zLCAtMS44LCAtMTguOSwgLTE2LjYsIC0xOC44LCAtMTkuMiwgLTEyLjUsIC05LjQsIC0xMC42LCAtMTEuMSwgLTE3LjMsIC0xNC4xLCAtMTYuMiwgLTE2LjAsIC03LjksIC0zLjcsIC03LjgsIC02LjMsIC01MC4wLCAzLjYsIC01MC4wLCAyLjMsIC04LjYsIC00LjIsIC04LjQsIC02LjYsIC01MC4wLCAtNC4zLCAtOC4xLCAtNS44LCAtMC45LCAxNC4yLCAtMS44LCAxMS42LF0sXG4gICAgICAgICAgICBbLTExLjgsIC0xMy4xLCAtMTEuNSwgLTEyLjAsIC02LjIsIC04LjMsIC01LjQsIC03LjQsIC0xMS44LCAtMTIuMywgLTExLjEsIC0xMS40LCAwLjUsIC0yLjUsIDIuNCwgLTEuNiwgLTYuOCwgLTkuOSwgLTYuNCwgLTguOSwgLTYuMSwgLTguNiwgLTUuMCwgLTcuOCwgLTEwLjQsIC0xMS42LCAtOC41LCAtOS45LCA4LjIsIDYuNCwgOC43LCA2LjksIC0xMi40LCAtMTcuMCwgLTEyLjYsIC0xNS44LCAtNi41LCAtOC41LCAtNS4wLCAtNy44LCAtMTMuMiwgLTEzLjYsIC0xMC4zLCAtMTMuNywgLTAuNywgLTMuMiwgLTAuMywgLTIuNCwgLTUwLjAsIC05LjQsIC01MC4wLCAtOC43LCAtMi4xLCAtNS42LCAtMS4yLCAtNC45LCAtNTAuMCwgLTEwLjAsIC00LjUsIC04LjksIDkuNywgLTEuOCwgMTEuMywgLTAuOSxdLFxuICAgICAgICAgICAgWy0xNy4yLCAtMTMuMywgLTE3LjgsIC0xMS42LCAtMTEuMCwgLTExLjEsIC0xMC40LCAtOS4wLCAtMTYuMCwgLTEyLjcsIC0xNi4xLCAtMTEuMSwgLTUuMiwgLTUuNCwgLTYuMCwgLTMuMywgLTExLjgsIC03LjMsIC0xMy4zLCAtNS45LCAtMTIuNywgLTExLjksIC0xMS45LCAtOS4zLCAtMTUuMiwgLTE1LjAsIC0xNC45LCAtMTEuMCwgLTIuOCwgLTEuOCwgLTIuOSwgMC40LCAtMTcuNCwgLTE4LjQsIC0xOC4zLCAtMTUuOSwgLTEwLjcsIC0xMS4yLCAtMTAuNiwgLTkuMCwgLTE1LjQsIC0xNC44LCAtMTUuOCwgLTEzLjMsIC02LjgsIC01LjksIC03LjIsIC0zLjksIC01MC4wLCAyLjAsIC01MC4wLCAzLjksIC03LjAsIC02LjgsIC02LjgsIC0zLjksIC01MC4wLCAtNS40LCAtNy4zLCAtMy40LCAtMC4zLCAxMS42LCAtMC45LCAxNC4xLF1dO1xuICAgICAgICB0aGlzLlRSQU5TID0gW1s1LCAwLCAwLCA0XSxcbiAgICAgICAgICAgIFswLCA1LCA0LCAwXSxcbiAgICAgICAgICAgIFswLCA0LCA1LCAwXSxcbiAgICAgICAgICAgIFs0LCAwLCAwLCA1XV07XG4gICAgICAgIHRoaXMuQ09OQkxPID0geyAnQSc6IDAsICdSJzogMSwgJ04nOiAyLCAnRCc6IDMsICdDJzogNCwgJ1EnOiA1LCAnRSc6IDYsICdHJzogNywgJ0gnOiA4LCAnSSc6IDksICdMJzogMTAsICdLJzogMTEsICdNJzogMTIsICdGJzogMTMsICdQJzogMTQsICdTJzogMTUsICdUJzogMTYsICdXJzogMTcsICdZJzogMTgsICdWJzogMTksICdCJzogMjAsICdaJzogMjEsICdYJzogMjIsICcqJzogMjMgfTtcbiAgICAgICAgdGhpcy5DT05OVUNMID0geyAnQSc6IDAsICdUJzogMSwgJ0MnOiAyLCAnRyc6IDMgfTtcbiAgICAgICAgdGhpcy5DT05TQ0hOID0geyAnQUFBJzogMCwgJ0FBQyc6IDEsICdBQUcnOiAyLCAnQUFUJzogMywgJ0FDQSc6IDQsICdBQ0MnOiA1LCAnQUNHJzogNiwgJ0FDVCc6IDcsICdBR0EnOiA4LCAnQUdDJzogOSwgJ0FHRyc6IDEwLCAnQUdUJzogMTEsICdBVEEnOiAxMiwgJ0FUQyc6IDEzLCAnQVRHJzogMTQsICdBVFQnOiAxNSwgJ0NBQSc6IDE2LCAnQ0FDJzogMTcsICdDQUcnOiAxOCwgJ0NBVCc6IDE5LCAnQ0NBJzogMjAsICdDQ0MnOiAyMSwgJ0NDRyc6IDIyLCAnQ0NUJzogMjMsICdDR0EnOiAyNCwgJ0NHQyc6IDI1LCAnQ0dHJzogMjYsICdDR1QnOiAyNywgJ0NUQSc6IDI4LCAnQ1RDJzogMjksICdDVEcnOiAzMCwgJ0NUVCc6IDMxLCAnR0FBJzogMzIsICdHQUMnOiAzMywgJ0dBRyc6IDM0LCAnR0FUJzogMzUsICdHQ0EnOiAzNiwgJ0dDQyc6IDM3LCAnR0NHJzogMzgsICdHQ1QnOiAzOSwgJ0dHQSc6IDQwLCAnR0dDJzogNDEsICdHR0cnOiA0MiwgJ0dHVCc6IDQzLCAnR1RBJzogNDQsICdHVEMnOiA0NSwgJ0dURyc6IDQ2LCAnR1RUJzogNDcsICdUQUEnOiA0OCwgJ1RBQyc6IDQ5LCAnVEFHJzogNTAsICdUQVQnOiA1MSwgJ1RDQSc6IDUyLCAnVENDJzogNTMsICdUQ0cnOiA1NCwgJ1RDVCc6IDU1LCAnVEdBJzogNTYsICdUR0MnOiA1NywgJ1RHRyc6IDU4LCAnVEdUJzogNTksICdUVEEnOiA2MCwgJ1RUQyc6IDYxLCAnVFRHJzogNjIsICdUVFQnOiA2MyB9O1xuICAgICAgICB0aGlzLnNldE1ldGhvZChhbGlnbkdyaWRfKTtcbiAgICAgICAgdGhpcy5zZXRTZXF1ZW5jZXMoc2VxMV8sIHNlcTJfKTtcbiAgICAgICAgdGhpcy5zZXRHYXAoZ2FwXyk7XG4gICAgfVxuICAgIGZpbGxOZWVkbGVtYW4oKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVswXS52YWx1ZSA9IC1pICogdGhpcy5nYXA7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVswXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVswXS5wYXJlbnRKID0gMDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLmxlbjI7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0udmFsdWUgPSAtaSAqIHRoaXMuZ2FwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS5wYXJlbnRKID0gaSAtIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZmlsbE9uZShpLCBqKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID0gTWF0aC5tYXgodGhpcy5kcEdyaWRbaSAtIDFdW2ogLSAxXS52YWx1ZSArIHRoaXMuc2NvcmVzW2kgLSAxXVtqIC0gMV0sIE1hdGgubWF4KHRoaXMuZHBHcmlkW2kgLSAxXVtqXS52YWx1ZSAtIHRoaXMuZ2FwLCB0aGlzLmRwR3JpZFtpXVtqIC0gMV0udmFsdWUgLSB0aGlzLmdhcCkpO1xuICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPT0gdGhpcy5kcEdyaWRbaSAtIDFdW2ogLSAxXS52YWx1ZSArIHRoaXMuc2NvcmVzW2kgLSAxXVtqIC0gMV0pIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqIC0gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9PSB0aGlzLmRwR3JpZFtpIC0gMV1bal0udmFsdWUgLSB0aGlzLmdhcCkge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGo7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqIC0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBncmlkRnJvbU5hbWUocGF0aCkge1xuICAgICAgICBzd2l0Y2ggKHBhdGgpIHtcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTQ1JzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNDU7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU01MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTUwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNjInOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU02MjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTgwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNODA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU05MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTkwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNMzAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5QQU0zMDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTcwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNNzA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU0yNTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5QQU0yNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdOVUNMRU9USURFUyc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLk5VQ0xFT1RJREVTO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTk5VQ0w7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1RSQU5TJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuVFJBTlM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OTlVDTDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU0NITkVJREVSJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuU0NITkVJREVSO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTlNDSE47XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGxTY29yZXMoKTtcbiAgICB9XG4gICAgY29uc3RydWN0UmVzdWx0KGksIGopIHtcbiAgICAgICAgbGV0IHJlczEgPSBcIlwiLCByZXMyID0gXCJcIiwgZ2FwUyA9IFwiXCI7XG4gICAgICAgIGxldCB0b3RhbCA9IHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3RlcDsgaSsrKSB7XG4gICAgICAgICAgICBnYXBTICs9ICd8JztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoaSA+IDAgfHwgaiA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID09IGkpIHtcbiAgICAgICAgICAgICAgICByZXMxID0gZ2FwUyArIHJlczE7XG4gICAgICAgICAgICAgICAgcmVzMiA9IHRoaXMuc2VxMi5zdWJzdHIoKGogLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID09IGopIHtcbiAgICAgICAgICAgICAgICByZXMyID0gZ2FwUyArIHJlczI7XG4gICAgICAgICAgICAgICAgcmVzMSA9IHRoaXMuc2VxMS5zdWJzdHIoKGkgLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaSAtIDEgPj0gMClcbiAgICAgICAgICAgICAgICAgICAgcmVzMSA9IHRoaXMuc2VxMS5zdWJzdHIoKGkgLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczE7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICByZXMxID0gZ2FwUyArIHJlczE7XG4gICAgICAgICAgICAgICAgaWYgKGogLSAxID49IDApXG4gICAgICAgICAgICAgICAgICAgIHJlczIgPSB0aGlzLnNlcTIuc3Vic3RyKChqIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMyO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmVzMiA9IGdhcFMgKyByZXMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHRlbXBJID0gaTtcbiAgICAgICAgICAgIGkgPSB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJO1xuICAgICAgICAgICAgaiA9IHRoaXMuZHBHcmlkW3RlbXBJXVtqXS5wYXJlbnRKO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWxpZ25lZChyZXMxLCByZXMyLCB0b3RhbCk7XG4gICAgfVxuICAgIGZpbGxTY29yZXMoKSB7XG4gICAgICAgIHRoaXMuc2NvcmVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuc2NvcmVzLnB1c2goW10pO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NvcmVzW2ldLnB1c2godGhpcy5hbGlnbkdyaWRbdGhpcy5jb25uZWN0aW9uc1t0aGlzLnNlcTEuc3Vic3RyKGkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCldXVt0aGlzLmNvbm5lY3Rpb25zW3RoaXMuc2VxMi5zdWJzdHIoaiAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKV1dKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0eXBlUmVjKCkge1xuICAgICAgICBpZiAoL1tBVEdDXSovLnRlc3QodGhpcy5zZXExKSAmJiAvW0FUR0NdKi8udGVzdCh0aGlzLnNlcTIpKVxuICAgICAgICAgICAgcmV0dXJuIFwiTlVDTEVPVElERVNcIjtcbiAgICAgICAgaWYgKC9bQVJORENRRUdISUxLTUZQU1RXWVZCWlgqXSovLnRlc3QodGhpcy5zZXExKSAmJiAvW0FSTkRDUUVHSElMS01GUFNUV1lWQlpYKl0qLy50ZXN0KHRoaXMuc2VxMikpXG4gICAgICAgICAgICByZXR1cm4gXCJCTE9TVU02MlwiO1xuICAgICAgICB0aHJvdyBFcnJvcihcIkNhbid0IHJlY29nbml6ZSBzZXF1ZW5jZSB0eXBlXCIpO1xuICAgIH1cbiAgICBuZWVkbGVtYW5XdW5jaCgpIHtcbiAgICAgICAgdGhpcy5kcEdyaWQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbjEgKyAxOyBpKyspIHtcbiAgICAgICAgICAgIGxldCByb3cgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yICsgMTsgaisrKVxuICAgICAgICAgICAgICAgIHJvdy5wdXNoKG5ldyBDZWxsKCkpO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWQucHVzaChyb3cpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsbE5lZWRsZW1hbigpO1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDE7IGogPD0gdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGxPbmUoaSwgaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0UmVzdWx0KHRoaXMubGVuMSwgdGhpcy5sZW4yKTtcbiAgICB9XG4gICAgc21pdGhXYXRlcm1hbigpIHtcbiAgICAgICAgdGhpcy5kcEdyaWQgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbjEgKyAxOyBpKyspIHtcbiAgICAgICAgICAgIGxldCByb3cgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yICsgMTsgaisrKVxuICAgICAgICAgICAgICAgIHJvdy5wdXNoKG5ldyBDZWxsKCkpO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWQucHVzaChyb3cpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBiZXN0VmFsID0gMDtcbiAgICAgICAgbGV0IGJlc3RJID0gMCwgYmVzdEogPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDE7IGogPD0gdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGxPbmUoaSwgaik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW3RoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEldW3RoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEpdLnZhbHVlID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPiBiZXN0VmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RWYWwgPSB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEkgPSBpO1xuICAgICAgICAgICAgICAgICAgICBiZXN0SiA9IGo7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdFJlc3VsdChiZXN0SSwgYmVzdEopO1xuICAgIH1cbiAgICBzZXRTZXF1ZW5jZXMoc2VxMV8sIHNlcTJfKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9IHNlcTFfO1xuICAgICAgICB0aGlzLnNlcTIgPSBzZXEyXztcbiAgICAgICAgdGhpcy5sZW4xID0gdGhpcy5zZXExLmxlbmd0aCAvIHRoaXMuc3RlcDtcbiAgICAgICAgdGhpcy5sZW4yID0gdGhpcy5zZXEyLmxlbmd0aCAvIHRoaXMuc3RlcDtcbiAgICAgICAgdGhpcy5maWxsU2NvcmVzKCk7XG4gICAgfVxuICAgIHNldEdhcChnYXBfKSB7XG4gICAgICAgIHRoaXMuZ2FwID0gZ2FwXztcbiAgICB9XG4gICAgc2V0TWV0aG9kKGFsaWduR3JpZF8gPSBcIlwiKSB7XG4gICAgICAgIGlmIChhbGlnbkdyaWRfID09IFwiQVVUT1wiKSB7XG4gICAgICAgICAgICBhbGlnbkdyaWRfID0gdGhpcy50eXBlUmVjKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ncmlkRnJvbU5hbWUoYWxpZ25HcmlkXyk7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCAqIGFzIEMgZnJvbSAnLi4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE1vbm9tZXJpY01vbHMgfSBmcm9tICcuLi9jYWxjdWxhdGlvbnMvbW9ub21lckxldmVsTW9scyc7XG5pbXBvcnQgeyB1cGRhdGVEaXZJbm5lckhUTUwgfSBmcm9tICcuLi91dGlscy91aS11dGlscyc7XG4vKipcbiAqIFNlYXJjaGVzIHN1YnN0cnVjdHVyZSBpbiBlYWNoIHJvdyBvZiBNYWNyb21vbGVjdWxlIGNvbHVtblxuICpcbiAqIEBwYXJhbSB7REcuY29sdW1ufSBjb2wgQ29sdW1uIHdpdGggJ01hY3JvbW9sZWN1bGUnIHNlbWFudGljIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0cnVjdHVyZVNlYXJjaERpYWxvZyhjb2wpIHtcbiAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gY29sLmdldFRhZyhDLlRBR1MuU0VQQVJBVE9SKTtcbiAgICAvLyBjb25zdCBub3RhdGlvbnMgPSBbTk9UQVRJT04uRkFTVEEsIE5PVEFUSU9OLlNFUEFSQVRPUiwgTk9UQVRJT04uSEVMTV07XG4gICAgY29uc3Qgc3Vic3RydWN0dXJlSW5wdXQgPSB1aS50ZXh0SW5wdXQoJ1N1YnN0cnVjdHVyZScsICcnKTtcbiAgICBjb25zdCBlZGl0SGVsbUxpbmsgPSB1aS5saW5rKCdFZGl0IGhlbG0nLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHVwZGF0ZURpdklubmVySFRNTChpbnB1dHNEaXYsIGdyaWQucm9vdCk7XG4gICAgICAgIHlpZWxkIHVpLnRvb2xzLndhaXRGb3JFbGVtZW50SW5Eb20oZ3JpZC5yb290KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBncmlkLmNlbGwoJ3N1YnN0cl9oZWxtJywgMCkuZWxlbWVudC5jaGlsZHJlblswXS5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgeyBrZXk6ICdFbnRlcicgfSkpO1xuICAgICAgICB9LCAxMDApO1xuICAgIH0pKTtcbiAgICBjb25zdCBkZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUoMSk7XG4gICAgZGYuY29sdW1ucy5hZGROZXdTdHJpbmcoJ3N1YnN0cl9oZWxtJykuaW5pdCgoaSkgPT4gJycpO1xuICAgIGRmLmNvbCgnc3Vic3RyX2hlbG0nKS5zZW1UeXBlID0gY29sLnNlbVR5cGU7XG4gICAgZGYuY29sKCdzdWJzdHJfaGVsbScpLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImhlbG1cIiAvKiBiaW8uTk9UQVRJT04uSEVMTSAqLyk7XG4gICAgY29uc3QgZ3JpZCA9IGRmLnBsb3QuZ3JpZCgpO1xuICAgIGNvbnN0IHNlcGFyYXRvcklucHV0ID0gdWkudGV4dElucHV0KCdTZXBhcmF0b3InLCBzZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlucHV0c0RpdiA9IHVpLmRpdigpO1xuICAgIGNvbnN0IGlucHV0cyA9IHVuaXRzID09PSBcImhlbG1cIiAvKiBiaW8uTk9UQVRJT04uSEVMTSAqLyA/IHVpLmRpdlYoW2VkaXRIZWxtTGlua10pIDpcbiAgICAgICAgdW5pdHMgPT09IFwic2VwYXJhdG9yXCIgLyogYmlvLk5PVEFUSU9OLlNFUEFSQVRPUiAqLyA/IHVpLmlucHV0cyhbc3Vic3RydWN0dXJlSW5wdXQsIHNlcGFyYXRvcklucHV0XSkgOlxuICAgICAgICAgICAgdWkuaW5wdXRzKFtzdWJzdHJ1Y3R1cmVJbnB1dF0pO1xuICAgIHVwZGF0ZURpdklubmVySFRNTChpbnB1dHNEaXYsIGlucHV0cyk7XG4gICAgdWkuZGlhbG9nKCdTdWJzdHJ1Y3R1cmUgc2VhcmNoJylcbiAgICAgICAgLmFkZCh1aS5kaXZWKFtcbiAgICAgICAgdWkuZGl2VGV4dChgTm90YXRpb246ICR7dW5pdHN9YCksXG4gICAgICAgIGlucHV0c0RpdlxuICAgIF0pKVxuICAgICAgICAub25PSygoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGxldCBzdWJzdHJ1Y3R1cmUgPSB1bml0cyA9PT0gXCJoZWxtXCIgLyogYmlvLk5PVEFUSU9OLkhFTE0gKi8gPyBkZi5nZXQoJ3N1YnN0cl9oZWxtJywgMCkgOiBzdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZTtcbiAgICAgICAgaWYgKHVuaXRzID09PSBcInNlcGFyYXRvclwiIC8qIGJpby5OT1RBVElPTi5TRVBBUkFUT1IgKi8gJiYgc2VwYXJhdG9ySW5wdXQudmFsdWUgIT09IHNlcGFyYXRvciAmJiBzZXBhcmF0b3JJbnB1dC52YWx1ZSAhPT0gJycpXG4gICAgICAgICAgICBzdWJzdHJ1Y3R1cmUgPSBzdWJzdHJ1Y3R1cmUucmVwbGFjZUFsbChzZXBhcmF0b3JJbnB1dC52YWx1ZSwgc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlc0NvbE5hbWUgPSBgTWF0Y2hlczogJHtzdWJzdHJ1Y3R1cmV9YDtcbiAgICAgICAgY29uc3QgY29sRXhpc3RzID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLm5hbWVzKClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0KSA9PiBpdC50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBtYXRjaGVzQ29sTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpKS5sZW5ndGggPiAwO1xuICAgICAgICBpZiAoIWNvbEV4aXN0cykge1xuICAgICAgICAgICAgbGV0IG1hdGNoZXM7XG4gICAgICAgICAgICBpZiAodW5pdHMgPT09IFwiaGVsbVwiIC8qIGJpby5OT1RBVElPTi5IRUxNICovKVxuICAgICAgICAgICAgICAgIG1hdGNoZXMgPSB5aWVsZCBoZWxtU3Vic3RydWN0dXJlU2VhcmNoKHN1YnN0cnVjdHVyZSwgY29sKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBtYXRjaGVzID0gbGluZWFyU3Vic3RydWN0dXJlU2VhcmNoKHN1YnN0cnVjdHVyZSwgY29sKTtcbiAgICAgICAgICAgIGNvbC5kYXRhRnJhbWUuY29sdW1ucy5hZGQoREcuQ29sdW1uLmZyb21CaXRTZXQobWF0Y2hlc0NvbE5hbWUsIG1hdGNoZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgU2VhcmNoICR7c3Vic3RydWN0dXJlfSBpcyBhbHJlYWR5IHBlcmZvcm1lZGApO1xuICAgICAgICB9XG4gICAgfSkpXG4gICAgICAgIC5zaG93KCk7XG59XG5leHBvcnQgZnVuY3Rpb24gbGluZWFyU3Vic3RydWN0dXJlU2VhcmNoKHN1YnN0cnVjdHVyZSwgY29sKSB7XG4gICAgY29uc3QgbG93ZXJDYXNlU3Vic3RyID0gc3Vic3RydWN0dXJlLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgcmVzdWx0QXJyYXkgPSBERy5CaXRTZXQuY3JlYXRlKGNvbC5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG1hY3JvbW9sZWN1bGUgPSBjb2wuZ2V0KGkpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChtYWNyb21vbGVjdWxlLmluZGV4T2YobG93ZXJDYXNlU3Vic3RyKSAhPT0gLTEpXG4gICAgICAgICAgICByZXN1bHRBcnJheS5zZXQoaSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0QXJyYXk7XG59XG5leHBvcnQgZnVuY3Rpb24gaGVsbVN1YnN0cnVjdHVyZVNlYXJjaChzdWJzdHJ1Y3R1cmUsIGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGhlbG1Db2xXaXRoU3Vic3RydWN0dXJlID0gREcuQ29sdW1uLnN0cmluZygnaGVsbScsIGNvbC5sZW5ndGggKyAxKVxuICAgICAgICAgICAgLmluaXQoKGkpID0+IGkgPT09IGNvbC5sZW5ndGggPyBzdWJzdHJ1Y3R1cmUgOiBjb2wuZ2V0KGkpKTtcbiAgICAgICAgaGVsbUNvbFdpdGhTdWJzdHJ1Y3R1cmUuc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiaGVsbVwiIC8qIGJpby5OT1RBVElPTi5IRUxNICovKTtcbiAgICAgICAgY29uc3QgbW9ub21lcmljTW9sc0NvbCA9IHlpZWxkIGdldE1vbm9tZXJpY01vbHMoaGVsbUNvbFdpdGhTdWJzdHJ1Y3R1cmUsIHRydWUpO1xuICAgICAgICBjb25zdCBtb2xTdWJzdHJ1Y3R1cmUgPSBtb25vbWVyaWNNb2xzQ29sLmdldChjb2wubGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbW9ub21lcmljTW9sc0RmID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFttb25vbWVyaWNNb2xzQ29sXSk7XG4gICAgICAgIG1vbm9tZXJpY01vbHNEZi5yb3dzLnJlbW92ZUF0KGNvbC5sZW5ndGgpO1xuICAgICAgICBjb25zdCBtYXRjaGVzQ29sID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpzZWFyY2hTdWJzdHJ1Y3R1cmUnLCB7XG4gICAgICAgICAgICBtb2xTdHJpbmdzQ29sdW1uOiBtb25vbWVyaWNNb2xzRGYuY29sdW1ucy5ieUluZGV4KDApLFxuICAgICAgICAgICAgbW9sU3RyaW5nOiBtb2xTdWJzdHJ1Y3R1cmUsXG4gICAgICAgICAgICBtb2xCbG9ja0ZhaWxvdmVyOiAnJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVzQ29sLmdldCgwKTtcbiAgICB9KTtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFjcm9Nb2wobW9ub21lcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIGNvbnN0IG1vZHVsZVJka2l0ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kdWxlUmRraXQuZ2V0X21vbChtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gbW9sLmdldF92M0ttb2xibG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSBnZXRJbmRpY2VzKG1vbm9tZXJzW2ldW2pdLCBhKTtcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnaW5kaWNlcyddID0gaW5kaWNlcztcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddID0geWllbGQgcm90YXRlQmFja2JvbmVWMzAwMChhLCBpbmRpY2VzKTtcbiAgICAgICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5rVjMwMDAobW9ub21lcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0SW5kaWNlcyhtb25vbWVyLCBtb2xWMzAwMCkge1xuICAgIGNvbnN0IG1vbGZpbGUgPSBtb25vbWVyW1wibW9sZmlsZVwiXTtcbiAgICBsZXQgaW5kZXhTdGFydCA9IG1vbGZpbGUuaW5kZXhPZignTSAgUkdQJywgMCkgKyA4O1xuICAgIGxldCBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgY29uc3QgaW5kaWNlc0RhdGEgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICBsZXQgcGFyc2VkRGF0YSA9IGluZGljZXNEYXRhLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgcmVtRmlyc3QgPSBwYXJzZWREYXRhWzJdID09ICcxJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgcmVtTGFzdCA9IHBhcnNlZERhdGFbMl0gPT0gJzInID8gcGFyc2VJbnQocGFyc2VkRGF0YVsxXSkgOiBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sVjMwMDApO1xuICAgIGxldCBpbmRleEJvbmRzID0gbW9sVjMwMDAuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgIGluZGV4U3RhcnQgPSBpbmRleEJvbmRzO1xuICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICBsZXQgZmlyc3QgPSAwO1xuICAgIGxldCBsYXN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZEZpcnN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZExhc3QgPSAwO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgIGlmIChmaXJzdCA9PSAwIHx8IGxhc3QgPT0gMCkge1xuICAgICAgICAgICAgaW5kZXhTdGFydCA9IG1vbFYzMDAwLmluZGV4T2YoJ1YzMCcsIGluZGV4U3RhcnQpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sVjMwMDAuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgICAgICAgICBjb25zdCBib25kRGF0YSA9IG1vbFYzMDAwLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICAgICAgICAgIHBhcnNlZERhdGEgPSBib25kRGF0YS5zcGxpdCgnICcpO1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzJdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaXJzdCwgbGFzdCwgcmVtRmlyc3QsIHJlbUxhc3QsIHJlbUJvbmRGaXJzdCwgcmVtQm9uZExhc3QgfTtcbn1cbmZ1bmN0aW9uIHJvdGF0ZUJhY2tib25lVjMwMDAobW9sQmxvY2ssIGluZGljZXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGV4dHJhY3RBdG9tRGF0YVYzMDAwKG1vbEJsb2NrKTtcbiAgICAgICAgY29uc3QgbmF0b20gPSBjb29yZGluYXRlcy5hdG9tSW5kZXgubGVuZ3RoO1xuICAgICAgICBjb25zdCBmaXJzdCA9IGluZGljZXNbJ2ZpcnN0J107XG4gICAgICAgIGNvbnN0IGxhc3QgPSBpbmRpY2VzWydsYXN0J107XG4gICAgICAgIGNvbnN0IHhDZW50ZXIgPSAoY29vcmRpbmF0ZXMueFtsYXN0XSArIGNvb3JkaW5hdGVzLnhbZmlyc3RdKSAvIDI7XG4gICAgICAgIGNvbnN0IHlDZW50ZXIgPSAoY29vcmRpbmF0ZXMueVtsYXN0XSArIGNvb3JkaW5hdGVzLnlbZmlyc3RdKSAvIDI7XG4gICAgICAgIC8vcGxhY2UgdG8gY2VudGVyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSAtPSB4Q2VudGVyO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSAtPSB5Q2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhbmdsZSA9IDA7XG4gICAgICAgIGlmIChjb29yZGluYXRlcy54W2ZpcnN0XSA9PSAwKVxuICAgICAgICAgICAgYW5nbGUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSA+IGNvb3JkaW5hdGVzLnlbbGFzdF0gPyBNYXRoLlBJIC8gMiA6IDMgKiBNYXRoLlBJIC8gMjtcbiAgICAgICAgZWxzZSBpZiAoY29vcmRpbmF0ZXMueVtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueFtmaXJzdF0gPiBjb29yZGluYXRlcy54W2xhc3RdID8gTWF0aC5QSSA6IDA7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVyaXZhdGl2ZSA9IGNvb3JkaW5hdGVzLnlbZmlyc3RdIC8gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPCBjb29yZGluYXRlcy54W2xhc3RdKVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLmF0YW4oZGVyaXZhdGl2ZSkgOiBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcbiAgICAgICAgY29uc3Qgc2luID0gTWF0aC5zaW4oYW5nbGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHhBZGQgPSBjb29yZGluYXRlcy54W2ldO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSA9IHhBZGQgKiBjb3MgLSBjb29yZGluYXRlcy55W2ldICogc2luO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSA9IHhBZGQgKiBzaW4gKyBjb29yZGluYXRlcy55W2ldICogY29zO1xuICAgICAgICB9XG4gICAgICAgIC8vcGxhY2UgdG8gcmlnaHRcbiAgICAgICAgY29uc3QgeFNoaWZ0ID0gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKylcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geFNoaWZ0O1xuICAgICAgICAvL3Jld3JpdGUgbW9sQmxvY2tcbiAgICAgICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXhFbmQgPSBpbmRleDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleEVuZCk7XG4gICAgICAgICAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnNsaWNlKDAsIGluZGV4KSArXG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSArICcgJyArIGNvb3JkaW5hdGVzLnlbaV0gK1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9sQmxvY2s7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jaykge1xuICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xCbG9jayk7XG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdcXG4nLCBpbmRleCk7XG4gICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgY29uc3QgaW5kZXhlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHR5cGVzID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgY29uc3QgeCA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHkgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlcnMubmF0b207IGkrKykge1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgaW5kZXhlc1tpXSA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgdHlwZXNbaV0gPSBtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeFtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IGluZGV4RW5kICsgMTtcbiAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICB5W2ldID0gcGFyc2VGbG9hdChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYXRvbUluZGV4OiBpbmRleGVzLCBhdG9tVHlwZTogdHlwZXMsIHg6IHgsIHk6IHkgfTtcbn1cbmZ1bmN0aW9uIGxpbmtWMzAwMChtb25vbWVycykge1xuICAgIGxldCBtYWNyb01vbEJsb2NrID0gJ1xcbkRhdGFncm9rIG1hY3JvbW9sZWN1bGUgaGFuZGxlclxcblxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ1RBQlxcbic7XG4gICAgbGV0IGF0b21CbG9jayA9ICcnO1xuICAgIGxldCBib25kQmxvY2sgPSAnJztcbiAgICBsZXQgY29sbGVjdGlvbkJsb2NrID0gJyc7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IFtdO1xuICAgIGxldCBuYXRvbSA9IDA7XG4gICAgbGV0IG5ib25kID0gMDtcbiAgICBsZXQgeFNoaWZ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBtb2xmaWxlID0gbW9ub21lcnNbaV1bJ21vbGZpbGUnXTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnbGFzdCddO1xuICAgICAgICBjb25zdCByZW1GaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUZpcnN0J107XG4gICAgICAgIGNvbnN0IHJlbUxhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1MYXN0J107XG4gICAgICAgIGNvbnN0IHJlbUJvbmRGaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRGaXJzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kTGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRMYXN0J107XG4gICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnJlcGxhY2VBbGwoJygtXFxuTSAgVjMwICcsICcoJylcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKCctXFxuTSAgVjMwICcsICcnKS5yZXBsYWNlQWxsKCcgKScsICcpJyk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgbGV0IGluZGV4QXRvbXMgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleEF0b21zKTtcbiAgICAgICAgbGV0IGluZGV4ID0gaW5kZXhBdG9tcztcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXhBdG9tcztcbiAgICAgICAgY29uc3QgdG90YWxTaGlmdCA9IHhTaGlmdCAtIGNvb3JkaW5hdGVzLnhbZmlyc3QgLSAxXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1iZXJzLm5hdG9tOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChjb29yZGluYXRlcy5hdG9tSW5kZXhbal0gIT0gcmVtRmlyc3QgJiYgY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUxhc3QpIHsgLy98fCBpID09IDApIHtcbiAgICAgICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBudW1iZXJcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSArIHRvdGFsU2hpZnQpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSkpIC8gMTAwMDA7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgY29vcmRpbmF0ZSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCcsIGluZGV4KSAtIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhBdG9tc0VuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBBVE9NJyk7XG4gICAgICAgIGF0b21CbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEF0b21zICsgMSwgaW5kZXhBdG9tc0VuZCk7XG4gICAgICAgIGxldCBpbmRleEJvbmRzID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQk9ORCcpOyAvLyBWMzAwMCBpbmRleCBmb3IgYm9uZHNcbiAgICAgICAgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhCb25kcyk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhCb25kcztcbiAgICAgICAgaW5kZXhFbmQgPSBpbmRleEJvbmRzO1xuICAgICAgICBsZXQgYm9uZE51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYm9uZCBudW1iZXJcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBib25kTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBpZiAoYm9uZE51bWJlciA9PSByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA9PSByZW1Cb25kTGFzdCkge1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4IC09IDc7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib25kTnVtYmVyID0gKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgJiYgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYm9uZE51bWJlciA+IHJlbUJvbmRGaXJzdCB8fCBib25kTnVtYmVyID4gcmVtQm9uZExhc3QpID8gYm9uZE51bWJlciAtIDEgOiBib25kTnVtYmVyO1xuICAgICAgICAgICAgYm9uZE51bWJlciArPSBuYm9uZDtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGJvbmROdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIC8vcmV3cml0ZSBhdG9tIHBhaXIgaW4gYm9uZFxuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gTWF0aC5taW4obW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCksIG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICBhdG9tTnVtYmVyICs9IG5hdG9tO1xuICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhCb25kRW5kID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgRU5EIEJPTkQnKTtcbiAgICAgICAgYm9uZEJsb2NrICs9IG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4Qm9uZHMgKyAxLCBpbmRleEJvbmRFbmQpO1xuICAgICAgICAvL2xldCBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGNvbGxlY3Rpb25zXG4gICAgICAgIC8vIHdoaWxlIChpbmRleENvbGxlY3Rpb24gIT0gLTEpIHtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gKz0gMjg7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVuZCA9IG1vbGZpbGUuaW5kZXhPZignKScsIGluZGV4Q29sbGVjdGlvbik7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVudHJpZXMgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleENvbGxlY3Rpb24sIGNvbGxlY3Rpb25FbmQpLnNwbGl0KCcgJykuc2xpY2UoMSk7XG4gICAgICAgIC8vICAgY29sbGVjdGlvbkVudHJpZXMuZm9yRWFjaCgoZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vICAgICBjb2xsZWN0aW9uLnB1c2gocGFyc2VJbnQoZSkgKyBuYXRvbSk7XG4gICAgICAgIC8vICAgfSk7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gY29sbGVjdGlvbkVuZDtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyB9XG4gICAgICAgIG5hdG9tICs9IG51bWJlcnMubmF0b20gLSAyO1xuICAgICAgICBuYm9uZCArPSBudW1iZXJzLm5ib25kIC0gMjtcbiAgICAgICAgeFNoaWZ0ICs9IGNvb3JkaW5hdGVzLnhbbGFzdF0gLSBjb29yZGluYXRlcy54W2ZpcnN0XSArIDE7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5hdG9tKys7XG4gICAgICAgICAgICBjb25zdCBzaGlmdCA9IHhTaGlmdCArIDAuMjtcbiAgICAgICAgICAgIGF0b21CbG9jayArPSAnTSAgVjMwICcgKyBuYXRvbSArICcgTyAnICsgc2hpZnQgKyAnIDAgMC4wMDAwMDAgMFxcbic7XG4gICAgICAgIH1cbiAgICAgICAgbmJvbmQrKztcbiAgICAgICAgaWYgKGkgPT0gbW9ub21lcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDMgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMTtcbiAgICAgICAgICAgIGJvbmRCbG9jayArPSAnTSAgVjMwICcgKyBuYm9uZCArICcgMSAnICsgcmlnaHRUZXJtaW5hbCArICcgJyArIG5hdG9tICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByaWdodFRlcm1pbmFsID0gKGxhc3QgPiByZW1GaXJzdCAmJiBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMiA6XG4gICAgICAgICAgICAgICAgKGxhc3QgPiByZW1GaXJzdCB8fCBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMik7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbW9ub21lcnNbaSArIDFdWydpbmRpY2VzJ107XG4gICAgICAgICAgICBjb25zdCBuZXh0Rmlyc3QgPSBuZXh0WydmaXJzdCddO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlbUZpcnN0ID0gbmV4dFsncmVtRmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1MYXN0ID0gbmV4dFsncmVtTGFzdCddO1xuICAgICAgICAgICAgY29uc3QgbGVmdFRlcm1pbmFsID0gKG5leHRGaXJzdCA+IG5leHRSZW1GaXJzdCAmJiBuZXh0Rmlyc3QgPiBuZXh0UmVtTGFzdCkgPyBuZXh0Rmlyc3QgKyBuYXRvbSAtIDIgOlxuICAgICAgICAgICAgICAgIChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgfHwgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAxIDpcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZpcnN0ICsgbmF0b207XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBsZWZ0VGVybWluYWwgKyAnXFxuJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBjb25zdCBlbnRyaWVzID0gNDtcbiAgICAvLyBjb25zdCBjb2xsTnVtYmVyID0gTWF0aC5jZWlsKGNvbGxlY3Rpb24ubGVuZ3RoIC8gZW50cmllcyk7XG4gICAgLy8gY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsgJyAtXFxuJztcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxOdW1iZXI7IGkrKykge1xuICAgIC8vICAgY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgJztcbiAgICAvLyAgIGNvbnN0IGVudHJpZXNDdXJyZW50ID0gaSArIDEgPT0gY29sbE51bWJlciA/IGNvbGxlY3Rpb24ubGVuZ3RoIC0gKGNvbGxOdW1iZXIgLSAxKSplbnRyaWVzIDogZW50cmllcztcbiAgICAvLyAgIGZvciAobGV0IGogPSAwOyBqIDwgZW50cmllc0N1cnJlbnQ7IGorKykge1xuICAgIC8vICAgICBjb2xsZWN0aW9uQmxvY2sgKz0gKGogKyAxID09IGVudHJpZXNDdXJyZW50KSA/XG4gICAgLy8gICAgICAgKGkgPT0gY29sbE51bWJlciAtIDEgPyBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJylcXG4nIDogY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgLVxcbicpIDpcbiAgICAvLyAgICAgICBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJyAnO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvL2dlbmVyYXRlIGZpbGVcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQ09VTlRTICcgKyBuYXRvbSArICcgJyArIG5ib25kICsgJyAwIDAgMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYXRvbUJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQVRPTVxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYm9uZEJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQk9ORFxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ09MTEVDVElPTlxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9IGNvbGxlY3Rpb25CbG9jaztcbiAgICAvL21hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ09MTEVDVElPTlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBFTkRcXG4nO1xuICAgIHJldHVybiBtYWNyb01vbEJsb2NrO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spIHtcbiAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnJlcGxhY2VBbGwoJ1xccicsICcnKTsgLy9lcXVhbGl6ZSBvbGQgYW5kIG5ldyBzZGYgc3RhbmRhcmRzXG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignQ09VTlRTJykgKyA3OyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgYW5kIGJvbmRzIG51bWJlclxuICAgIGxldCBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgY29uc3QgYXRvbXNOdW1iZXIgPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGJvbmRzTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIHJldHVybiB7IG5hdG9tOiBhdG9tc051bWJlciwgbmJvbmQ6IGJvbmRzTnVtYmVyIH07XG59XG4iLCJpbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IHVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuY29uc3QgbW9ub21lclRvU2hvcnRGdW5jdGlvbiA9IGJpby5tb25vbWVyVG9TaG9ydDtcbmZ1bmN0aW9uIGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KSB7XG4gICAgcmV0dXJuIGdyaWQgPyBNYXRoLm1pbihncmlkLmNhbnZhcy53aWR0aCAtIHgsIHcpIDogZy5jYW52YXMud2lkdGggLSB4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0cykge1xuICAgIGNvbnN0IHNpbXBsaWZpZWQgPSAhc3ViUGFydHMuc29tZSgoYW1pbm8sIGluZGV4KSA9PiBhbWluby5sZW5ndGggPiAxICYmXG4gICAgICAgIGluZGV4ICE9IDAgJiZcbiAgICAgICAgaW5kZXggIT0gc3ViUGFydHMubGVuZ3RoIC0gMSk7XG4gICAgY29uc3QgdGV4dCA9IFtdO1xuICAgIGNvbnN0IGdhcCA9IHNpbXBsaWZpZWQgPyAnJyA6ICcgJztcbiAgICBzdWJQYXJ0cy5mb3JFYWNoKChhbWlubywgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4IDwgc3ViUGFydHMubGVuZ3RoKVxuICAgICAgICAgICAgYW1pbm8gKz0gYCR7YW1pbm8gPyAnJyA6ICctJ30ke2dhcH1gO1xuICAgICAgICB0ZXh0LnB1c2goYW1pbm8pO1xuICAgIH0pO1xuICAgIHJldHVybiBbdGV4dCwgc2ltcGxpZmllZF07XG59XG5leHBvcnQgY2xhc3MgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnc2VxdWVuY2UnOyB9XG4gICAgZ2V0IGNlbGxUeXBlKCkgeyByZXR1cm4gJ3NlcXVlbmNlJzsgfVxuICAgIGdldCBkZWZhdWx0SGVpZ2h0KCkgeyByZXR1cm4gMzA7IH1cbiAgICBnZXQgZGVmYXVsdFdpZHRoKCkgeyByZXR1cm4gMjMwOyB9XG4gICAgb25DbGljayhncmlkQ2VsbCwgZSkge1xuICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydjdXJyZW50LXdvcmQnXSA9IGdyaWRDZWxsLmNlbGwudmFsdWU7XG4gICAgICAgIGdyaWRDZWxsLmdyaWQuaW52YWxpZGF0ZSgpO1xuICAgIH1cbiAgICBvbk1vdXNlTW92ZShncmlkQ2VsbCwgZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhcImFsaWduZWRcIiAvKiBiaW8uVEFHUy5hbGlnbmVkICovKSAhPT0gJ1NFUS5NU0EnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBtYXhMZW5ndGhXb3Jkc1N1bSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4SW5kZXgnXTtcbiAgICAgICAgY29uc3QgYXJnc1ggPSBlLm9mZnNldFggLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IG1heEluZGV4O1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbWF4TGVuZ3RoV29yZHNTdW1bbWF4SW5kZXggKyAxXSA9IGFyZ3NYICsgMTtcbiAgICAgICAgbGV0IG1pZCA9IDA7XG4gICAgICAgIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtWzBdKSB7XG4gICAgICAgICAgICB3aGlsZSAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWlkID0gTWF0aC5mbG9vcigocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdICYmIGFyZ3NYIDw9IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPCBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW2xlZnRdKSA/IGxlZnQgKyAxIDogbGVmdDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IGJpby5nZXRTcGxpdHRlcignc2VwYXJhdG9yJywgc2VwYXJhdG9yKTtcbiAgICAgICAgY29uc3Qgc3ViUGFydHMgPSBzcGxpdHRlckZ1bmMoZ3JpZENlbGwuY2VsbC52YWx1ZSk7XG4gICAgICAgICgoKChfYyA9IChfYiA9IHN1YlBhcnRzW2xlZnRdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwKSA+IDApKSA/XG4gICAgICAgICAgICB1aS50b29sdGlwLnNob3codWkuZGl2KHN1YlBhcnRzW2xlZnRdKSwgZS54ICsgMTYsIGUueSArIDE2KSA6IHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBjZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBjZWxsU3R5bGUpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWRSb3cgIT09IC0xID8gZ3JpZENlbGwuZ3JpZCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBncmlkQ2VsbC5jZWxsO1xuICAgICAgICBjb25zdCBwYWxldHRlVHlwZSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhDLlRBR1MuQUxQSEFCRVQpO1xuICAgICAgICBjb25zdCBtaW5EaXN0YW5jZVJlbmRlcmVyID0gNTA7XG4gICAgICAgIHcgPSBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdyk7XG4gICAgICAgIGcuc2F2ZSgpO1xuICAgICAgICBnLmJlZ2luUGF0aCgpO1xuICAgICAgICBnLnJlY3QoeCwgeSwgdywgaCk7XG4gICAgICAgIGcuY2xpcCgpO1xuICAgICAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICAvL1RPRE86IGNhbiB0aGlzIGJlIHJlcGxhY2VkL21lcmdlZCB3aXRoIHNwbGl0U2VxdWVuY2U/XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gYmlvLmdldFBhbGV0dGVCeVR5cGUocGFsZXR0ZVR5cGUpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSAoX2EgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoJ3NlcGFyYXRvcicpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJztcbiAgICAgICAgY29uc3Qgc3BsaXRMaW1pdCA9IGdyaWRDZWxsLmJvdW5kcy53aWR0aCAvIDU7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IGJpby5nZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBzcGxpdExpbWl0KTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlU2VxdWVuY2UgPSBzcGxpdHRlckZ1bmMoKCgoKF9iID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50ZW1wWydyZWZlcmVuY2Utc2VxdWVuY2UnXSkgIT0gbnVsbCkgJiYgKCgoX2MgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLnRlbXBbJ3JlZmVyZW5jZS1zZXF1ZW5jZSddKSAhPSAnJykpXG4gICAgICAgICAgICA/IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ3JlZmVyZW5jZS1zZXF1ZW5jZSddIDogKF9kID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnY3VycmVudC13b3JkJ10pICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6ICcnKTtcbiAgICAgICAgY29uc3QgbW9ub21lcldpZHRoID0gKCgoX2UgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbikgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLnRlbXBbJ21vbm9tZXItd2lkdGgnXSkgIT0gbnVsbCkgPyBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydtb25vbWVyLXdpZHRoJ10gOiAnc2hvcnQnO1xuICAgICAgICBsZXQgZ2FwUmVuZGVyZXIgPSA1O1xuICAgICAgICBsZXQgbWF4SW5kZXggPSAwO1xuICAgICAgICBsZXQgbWF4TGVuZ3RoT2ZNb25vbWVyID0gODtcbiAgICAgICAgaWYgKG1vbm9tZXJXaWR0aCA9PT0gJ3Nob3J0Jykge1xuICAgICAgICAgICAgZ2FwUmVuZGVyZXIgPSAxMjtcbiAgICAgICAgICAgIG1heExlbmd0aE9mTW9ub21lciA9IDE7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1heExlbmd0aFdvcmRzID0ge307XG4gICAgICAgIGlmIChncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicpICE9PSBzcGxpdExpbWl0LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIGxldCBzYW1wbGVzID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChzYW1wbGVzIDwgTWF0aC5taW4oZ3JpZENlbGwuY2VsbC5jb2x1bW4ubGVuZ3RoLCAxMDApKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0KHNhbXBsZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGNvbHVtbik7XG4gICAgICAgICAgICAgICAgc3ViUGFydHMuZm9yRWFjaCgoYW1pbm8sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dFNpemUgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpLmxlbmd0aCAqIDcgKyBnYXBSZW5kZXJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRTaXplID4gKChfYSA9IG1heExlbmd0aFdvcmRzW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1tpbmRleF0gPSB0ZXh0U2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gbWF4SW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzYW1wbGVzICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgbWluTGVuZ3RoID0gMyAqIDc7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBtYXhJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aFdvcmRzW2ldIDwgbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2ldID0gbWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYXhMZW5ndGhXb3JkU3VtID0ge307XG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZFN1bVswXSA9IG1heExlbmd0aFdvcmRzWzBdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IG1heEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZFN1bVtpXSA9IG1heExlbmd0aFdvcmRTdW1baSAtIDFdICsgbWF4TGVuZ3RoV29yZHNbaV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnXSA9IG1heExlbmd0aFdvcmRTdW07XG4gICAgICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnYmlvLW1heEluZGV4J10gPSBtYXhJbmRleDtcbiAgICAgICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4TGVuZ3RoV29yZHMnXSA9IG1heExlbmd0aFdvcmRzO1xuICAgICAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnNldFRhZygnLmNhbGN1bGF0ZWRDZWxsUmVuZGVyJywgc3BsaXRMaW1pdC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG1heExlbmd0aFdvcmRzID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnYmlvLW1heExlbmd0aFdvcmRzJ107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3ViUGFydHMgPSBzcGxpdHRlckZ1bmMoY2VsbC52YWx1ZSk7XG4gICAgICAgIGxldCB4MSA9IHg7XG4gICAgICAgIGxldCBjb2xvciA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICBsZXQgZHJhd1N0eWxlID0gYmlvLkRyYXdTdHlsZS5jbGFzc2ljO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdhbGlnbmVkJykuaW5jbHVkZXMoJ01TQScpICYmIGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygndW5pdHMnKSA9PT0gJ3NlcGFyYXRvcicpXG4gICAgICAgICAgICBkcmF3U3R5bGUgPSBiaW8uRHJhd1N0eWxlLk1TQTtcbiAgICAgICAgc3ViUGFydHMuZXZlcnkoKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sb3IgPSBwYWxldHRlLmdldChhbWlubyk7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSBpbmRleCA9PT0gc3ViUGFydHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHgxID0gYmlvLnByaW50TGVmdE9yQ2VudGVyZWQoeDEsIHksIHcsIGgsIGcsIGFtaW5vLCBjb2xvciwgMCwgdHJ1ZSwgMS4wLCBzZXBhcmF0b3IsIGxhc3QsIGRyYXdTdHlsZSwgbWF4TGVuZ3RoV29yZHMsIGluZGV4LCBncmlkQ2VsbCwgcmVmZXJlbmNlU2VxdWVuY2UsIG1heExlbmd0aE9mTW9ub21lcik7XG4gICAgICAgICAgICByZXR1cm4geDEgLSBtaW5EaXN0YW5jZVJlbmRlcmVyIC0gZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0ICsgKGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCAtIGdyaWRDZWxsLmJvdW5kcy54KSA8PSBncmlkQ2VsbC5ib3VuZHMud2lkdGg7XG4gICAgICAgIH0pO1xuICAgICAgICBnLnJlc3RvcmUoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBNb25vbWVyQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NT05PTUVSOyB9XG4gICAgZ2V0IGNlbGxUeXBlKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTU9OT01FUjsgfVxuICAgIGdldCBkZWZhdWx0SGVpZ2h0KCkgeyByZXR1cm4gMTU7IH1cbiAgICBnZXQgZGVmYXVsdFdpZHRoKCkgeyByZXR1cm4gMzA7IH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBfY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIGcuZm9udCA9IGAxMnB4IG1vbm9zcGFjZWA7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG4gICAgICAgIGcudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBiaW8uZ2V0UGFsZXR0ZUJ5VHlwZShncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoQy5UQUdTLkFMUEhBQkVUKSk7XG4gICAgICAgIGNvbnN0IHMgPSBncmlkQ2VsbC5jZWxsLnZhbHVlO1xuICAgICAgICBpZiAoIXMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGNvbG9yID0gcGFsZXR0ZS5nZXQocyk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgIGcuZmlsbFRleHQocywgeCArICh3IC8gMiksIHkgKyAoaCAvIDIpLCB3KTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIgZXh0ZW5kcyBERy5HcmlkQ2VsbFJlbmRlcmVyIHtcbiAgICBnZXQgbmFtZSgpIHsgcmV0dXJuICdNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNSJzsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1BQ1JPTU9MRUNVTEVfRElGRkVSRU5DRTsgfVxuICAgIGdldCBkZWZhdWx0SGVpZ2h0KCkgeyByZXR1cm4gMzA7IH1cbiAgICBnZXQgZGVmYXVsdFdpZHRoKCkgeyByZXR1cm4gMjMwOyB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gX2NlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWQ7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBncmlkQ2VsbC5jZWxsO1xuICAgICAgICBjb25zdCBzID0gKF9hID0gY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbQy5UQUdTLlNFUEFSQVRPUl07XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwudGFibGVDb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgLy9UT0RPOiBjYW4gdGhpcyBiZSByZXBsYWNlZC9tZXJnZWQgd2l0aCBzcGxpdFNlcXVlbmNlP1xuICAgICAgICBjb25zdCBbczEsIHMyXSA9IHMuc3BsaXQoJyMnKTtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzMSA9IHNwbGl0dGVyKHMxKTtcbiAgICAgICAgY29uc3Qgc3ViUGFydHMyID0gc3BsaXR0ZXIoczIpO1xuICAgICAgICBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMoZywgeCwgeSwgdywgaCwgc3ViUGFydHMxLCBzdWJQYXJ0czIsIHVuaXRzKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGcsIHgsIHksIHcsIGgsIHN1YlBhcnRzMSwgc3ViUGFydHMyLCB1bml0cywgZnVsbFN0cmluZ0xlbmd0aCwgbW9sRGlmZmVyZW5jZXMpIHtcbiAgICBpZiAoc3ViUGFydHMxLmxlbmd0aCAhPT0gc3ViUGFydHMyLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBlbXB0eU1vbm9tZXJzQXJyYXkgPSBuZXcgQXJyYXkoTWF0aC5hYnMoc3ViUGFydHMxLmxlbmd0aCAtIHN1YlBhcnRzMi5sZW5ndGgpKS5maWxsKCcnKTtcbiAgICAgICAgc3ViUGFydHMxLmxlbmd0aCA+IHN1YlBhcnRzMi5sZW5ndGggP1xuICAgICAgICAgICAgc3ViUGFydHMyID0gc3ViUGFydHMyLmNvbmNhdChlbXB0eU1vbm9tZXJzQXJyYXkpIDogc3ViUGFydHMxID0gc3ViUGFydHMxLmNvbmNhdChlbXB0eU1vbm9tZXJzQXJyYXkpO1xuICAgIH1cbiAgICBjb25zdCB0ZXh0U2l6ZTEgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czEpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0U2l6ZTIgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czIpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0V2lkdGggPSBNYXRoLm1heCh0ZXh0U2l6ZTEud2lkdGgsIHRleHRTaXplMi53aWR0aCk7XG4gICAgaWYgKGZ1bGxTdHJpbmdMZW5ndGgpIHtcbiAgICAgICAgdyA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgICAgICBnLmNhbnZhcy53aWR0aCA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgIH1cbiAgICBsZXQgdXBkYXRlZFggPSBNYXRoLm1heCh4LCB4ICsgKHcgLSAodGV4dFdpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQpKSAvIDIpO1xuICAgIC8vIDI4IGlzIHRoZSBoZWlnaHQgb2YgdGhlIHR3byBzdWJzdGl0dXRpb25zIG9uIHRvcCBvZiBlYWNoIG90aGVyICsgc3BhY2VcbiAgICBjb25zdCB1cGRhdGVkWSA9IE1hdGgubWF4KHksIHkgKyAoaCAtIDI4KSAvIDIpO1xuICAgIGcuc2F2ZSgpO1xuICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgZy5yZWN0KHgsIHksIGZ1bGxTdHJpbmdMZW5ndGggPyB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNCA6IHcsIGgpO1xuICAgIGcuY2xpcCgpO1xuICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgZy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICBsZXQgcGFsZXR0ZSA9IGJpby5Vbmtub3duU2VxUGFsZXR0ZXMuQ29sb3I7XG4gICAgaWYgKHVuaXRzICE9ICdIRUxNJylcbiAgICAgICAgcGFsZXR0ZSA9IGJpby5nZXRQYWxldHRlQnlUeXBlKHVuaXRzLnN1YnN0cmluZyh1bml0cy5sZW5ndGggLSAyKSk7XG4gICAgY29uc3QgdlNoaWZ0ID0gNztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN1YlBhcnRzMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhbWlubzEgPSBzdWJQYXJ0czFbaV07XG4gICAgICAgIGNvbnN0IGFtaW5vMiA9IHN1YlBhcnRzMltpXTtcbiAgICAgICAgY29uc3QgY29sb3IxID0gcGFsZXR0ZS5nZXQoYW1pbm8xKTtcbiAgICAgICAgaWYgKGFtaW5vMSAhPSBhbWlubzIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yMiA9IHBhbGV0dGUuZ2V0KGFtaW5vMik7XG4gICAgICAgICAgICBjb25zdCBzdWJYMCA9IGJpby5wcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSAtIHZTaGlmdCwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDEgPSBiaW8ucHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFkgKyB2U2hpZnQsIHcsIGgsIGcsIGFtaW5vMiwgY29sb3IyLCAwLCB0cnVlKTtcbiAgICAgICAgICAgIHVwZGF0ZWRYID0gTWF0aC5tYXgoc3ViWDEsIHN1YlgwKTtcbiAgICAgICAgICAgIGlmIChtb2xEaWZmZXJlbmNlcylcbiAgICAgICAgICAgICAgICBtb2xEaWZmZXJlbmNlc1tpXSA9IGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoYW1pbm8xLCBhbWlubzIsIGNvbG9yMSwgY29sb3IyLCB1cGRhdGVkWSwgdlNoaWZ0LCBoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHVwZGF0ZWRYID0gYmlvLnByaW50TGVmdE9yQ2VudGVyZWQodXBkYXRlZFgsIHVwZGF0ZWRZLCB3LCBoLCBnLCBhbWlubzEsIGNvbG9yMSwgMCwgdHJ1ZSwgMC41KTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVkWCArPSA0O1xuICAgIH1cbiAgICBnLnJlc3RvcmUoKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZURpZmZlcmVuY2VDYW52YXMoYW1pbm8xLCBhbWlubzIsIGNvbG9yMSwgY29sb3IyLCB5LCBzaGlmdCwgaCkge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjb250ZXh0LmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgIGNvbnN0IHdpZHRoMSA9IGNvbnRleHQubWVhc3VyZVRleHQocHJvY2Vzc1NlcXVlbmNlKFthbWlubzFdKS5qb2luKCcnKSkud2lkdGg7XG4gICAgY29uc3Qgd2lkdGgyID0gY29udGV4dC5tZWFzdXJlVGV4dChwcm9jZXNzU2VxdWVuY2UoW2FtaW5vMl0pLmpvaW4oJycpKS53aWR0aDtcbiAgICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KHdpZHRoMSwgd2lkdGgyKTtcbiAgICBjYW52YXMuaGVpZ2h0ID0gaDtcbiAgICBjYW52YXMud2lkdGggPSB3aWR0aCArIDQ7XG4gICAgY29udGV4dC5mb250ID0gJzEycHggbW9ub3NwYWNlJztcbiAgICBjb250ZXh0LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgIGJpby5wcmludExlZnRPckNlbnRlcmVkKDAsIHkgLSBzaGlmdCwgd2lkdGgsIGgsIGNvbnRleHQsIGFtaW5vMSwgY29sb3IxLCAwLCB0cnVlKTtcbiAgICBiaW8ucHJpbnRMZWZ0T3JDZW50ZXJlZCgwLCB5ICsgc2hpZnQsIHdpZHRoLCBoLCBjb250ZXh0LCBhbWlubzIsIGNvbG9yMiwgMCwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNhbnZhcztcbn1cbiIsImV4cG9ydCB2YXIgQ09MVU1OU19OQU1FUztcbihmdW5jdGlvbiAoQ09MVU1OU19OQU1FUykge1xuICAgIENPTFVNTlNfTkFNRVNbXCJTUExJVF9DT0xcIl0gPSBcIn5zcGxpdFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWVwiXSA9IFwifmFjdGl2aXR5XCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlfc2NhbGVkXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFMSUdORURfU0VRVUVOQ0VcIl0gPSBcIn5hbGlnbmVkX3NlcXVlbmNlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFNSU5PX0FDSURfUkVTSURVRVwiXSA9IFwiQUFSXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBPU0lUSU9OXCJdID0gXCJQb3NcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiUF9WQUxVRVwiXSA9IFwicFZhbHVlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIk1FQU5fRElGRkVSRU5DRVwiXSA9IFwiTWVhbiBkaWZmZXJlbmNlXCI7XG59KShDT0xVTU5TX05BTUVTIHx8IChDT0xVTU5TX05BTUVTID0ge30pKTtcbmV4cG9ydCB2YXIgVEFHUztcbihmdW5jdGlvbiAoVEFHUykge1xuICAgIFRBR1NbXCJBQVJcIl0gPSBcIkFBUlwiO1xuICAgIFRBR1NbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgVEFHU1tcIlNFUEFSQVRPUlwiXSA9IFwic2VwYXJhdG9yXCI7XG4gICAgVEFHU1tcIlNFTEVDVElPTlwiXSA9IFwic2VsZWN0aW9uXCI7XG4gICAgVEFHU1tcIkFMUEhBQkVUXCJdID0gXCJhbHBoYWJldFwiO1xuICAgIFRBR1NbXCJBTElHTkVEXCJdID0gXCJhbGlnbmVkXCI7XG59KShUQUdTIHx8IChUQUdTID0ge30pKTtcbmV4cG9ydCB2YXIgU0VNX1RZUEVTO1xuKGZ1bmN0aW9uIChTRU1fVFlQRVMpIHtcbiAgICBTRU1fVFlQRVNbXCJNT05PTUVSXCJdID0gXCJNb25vbWVyXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRV9ESUZGRVJFTkNFXCJdID0gXCJNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZXCJdID0gXCJhY3Rpdml0eVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlTY2FsZWRcIjtcbiAgICBTRU1fVFlQRVNbXCJNQUNST01PTEVDVUxFXCJdID0gXCJNYWNyb21vbGVjdWxlXCI7XG59KShTRU1fVFlQRVMgfHwgKFNFTV9UWVBFUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgTVNBID0gJ01TQSc7XG5leHBvcnQgY29uc3QgU1RBVFMgPSAnc3RhdHMnO1xuZXhwb3J0IGNvbnN0IEVNQkVERElOR19TVEFUVVMgPSAnZW1iZWRkaW5nU3RhdHVzJztcbmV4cG9ydCBjb25zdCBQRVBUSURFU19BTkFMWVNJUyA9ICdpc1BlcHRpZGVzQW5hbHlzaXMnO1xuZXhwb3J0IHZhciBGTEFHUztcbihmdW5jdGlvbiAoRkxBR1MpIHtcbiAgICBGTEFHU1tcIkNFTExfQ0hBTkdJTkdcIl0gPSBcImlzQ2VsbENoYW5naW5nXCI7XG59KShGTEFHUyB8fCAoRkxBR1MgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IGFhckdyb3VwcyA9IHtcbiAgICAnUic6ICdQQycsICdIJzogJ1BDJywgJ0snOiAnUEMnLFxuICAgICdEJzogJ05DJywgJ0UnOiAnTkMnLFxuICAgICdTJzogJ1UnLCAnVCc6ICdVJywgJ04nOiAnVScsICdRJzogJ1UnLFxuICAgICdDJzogJ1NDJywgJ1UnOiAnU0MnLCAnRyc6ICdTQycsICdQJzogJ1NDJyxcbiAgICAnQSc6ICdIJywgJ1YnOiAnSCcsICdJJzogJ0gnLCAnTCc6ICdIJywgJ00nOiAnSCcsICdGJzogJ0gnLCAnWSc6ICdIJywgJ1cnOiAnSCcsXG4gICAgJy0nOiAnLScsXG59O1xuZXhwb3J0IGNvbnN0IGdyb3VwRGVzY3JpcHRpb24gPSB7XG4gICAgJ1BDJzogeyAnZGVzY3JpcHRpb24nOiAnUG9zaXRpdmUgQW1pbm8gQWNpZHMsIHdpdGggRWxlY3RyaWNhbGx5IENoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUicsICdIJywgJ0snXSB9LFxuICAgICdOQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ05lZ2F0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ0QnLCAnRSddIH0sXG4gICAgJ1UnOiB7ICdkZXNjcmlwdGlvbic6ICdBbWlubyBBY2lkcyB3aXRoIFBvbGFyIFVuY2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydTJywgJ1QnLCAnTicsICdRJ10gfSxcbiAgICAnU0MnOiB7ICdkZXNjcmlwdGlvbic6ICdTcGVjaWFsIENhc2VzJywgJ2FtaW5vQWNpZHMnOiBbJ0MnLCAnVScsICdHJywgJ1AnXSB9LFxuICAgICdIJzoge1xuICAgICAgICAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBIeWRyb3Bob2JpYyBTaWRlIENoYWluJyxcbiAgICAgICAgJ2FtaW5vQWNpZHMnOiBbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLFxuICAgIH0sXG4gICAgJy0nOiB7ICdkZXNjcmlwdGlvbic6ICdVbmtub3duIEFtaW5vIEFjaWQnLCAnYW1pbm9BY2lkcyc6IFsnLSddIH0sXG59O1xuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyBiaW8gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8nO1xuaW1wb3J0ICQgZnJvbSAnY2FzaC1kb20nO1xubGV0IGNvbnZlcnREaWFsb2cgPSBudWxsO1xubGV0IGNvbnZlcnREaWFsb2dTdWJzID0gW107XG4vKipcbiAqIENvbnZlcnRzIG5vdGF0aW9ucyBvZiBhIE1hY3JvbW9sZWN1bGUgY29sdW1uXG4gKlxuICogQHBhcmFtIHtERy5jb2x1bW59IGNvbCBDb2x1bW4gd2l0aCAnTWFjcm9tb2xlY3VsZScgc2VtYW50aWMgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydChjb2wpIHtcbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgYmlvLk5vdGF0aW9uQ29udmVydGVyKGNvbCk7XG4gICAgY29uc3QgY3VycmVudE5vdGF0aW9uID0gY29udmVydGVyLm5vdGF0aW9uO1xuICAgIC8vVE9ETzogcmVhZCBhbGwgbm90YXRpb25zXG4gICAgY29uc3Qgbm90YXRpb25zID0gW1xuICAgICAgICBcImZhc3RhXCIgLyogYmlvLk5PVEFUSU9OLkZBU1RBICovLFxuICAgICAgICBcInNlcGFyYXRvclwiIC8qIGJpby5OT1RBVElPTi5TRVBBUkFUT1IgKi8sXG4gICAgICAgIFwiaGVsbVwiIC8qIGJpby5OT1RBVElPTi5IRUxNICovXG4gICAgXTtcbiAgICBjb25zdCBzZXBhcmF0b3JBcnJheSA9IFsnLScsICcuJywgJy8nXTtcbiAgICBjb25zdCBmaWx0ZXJlZE5vdGF0aW9ucyA9IG5vdGF0aW9ucy5maWx0ZXIoKGUpID0+IGUgIT09IGN1cnJlbnROb3RhdGlvbik7XG4gICAgY29uc3QgdGFyZ2V0Tm90YXRpb25JbnB1dCA9IHVpLmNob2ljZUlucHV0KCdDb252ZXJ0IHRvJywgZmlsdGVyZWROb3RhdGlvbnNbMF0sIGZpbHRlcmVkTm90YXRpb25zKTtcbiAgICBjb25zdCBzZXBhcmF0b3JJbnB1dCA9IHVpLmNob2ljZUlucHV0KCdTZXBhcmF0b3InLCBzZXBhcmF0b3JBcnJheVswXSwgc2VwYXJhdG9yQXJyYXkpO1xuICAgIC8vIGhpZGUgdGhlIHNlcGFyYXRvciBpbnB1dCBmb3Igbm9uLVNFUEFSQVRPUiB0YXJnZXQgbm90YXRpb25zXG4gICAgY29uc3QgdG9nZ2xlU2VwYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICBpZiAodGFyZ2V0Tm90YXRpb25JbnB1dC52YWx1ZSAhPT0gXCJzZXBhcmF0b3JcIiAvKiBiaW8uTk9UQVRJT04uU0VQQVJBVE9SICovKVxuICAgICAgICAgICAgJChzZXBhcmF0b3JJbnB1dC5yb290KS5oaWRlKCk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgICQoc2VwYXJhdG9ySW5wdXQucm9vdCkuc2hvdygpO1xuICAgIH07XG4gICAgLy8gc2V0IGNvcnJlY3QgdmlzaWJpbGl0eSBvbiBpbml0XG4gICAgdG9nZ2xlU2VwYXJhdG9yKCk7XG4gICAgdGFyZ2V0Tm90YXRpb25JbnB1dC5vbkNoYW5nZWQoKCkgPT4ge1xuICAgICAgICB0b2dnbGVTZXBhcmF0b3IoKTtcbiAgICB9KTtcbiAgICBpZiAoY29udmVydERpYWxvZyA9PSBudWxsKSB7XG4gICAgICAgIGNvbnZlcnREaWFsb2cgPSB1aS5kaWFsb2coJ0NvbnZlcnQgc2VxdWVuY2Ugbm90YXRpb24nKVxuICAgICAgICAgICAgLmFkZCh1aS5kaXYoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dCgnQ3VycmVudCBub3RhdGlvbjogJyArIGN1cnJlbnROb3RhdGlvbiwge1xuICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICd0ZXh0LWFsaWduJzogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICdmb250LXdlaWdodCc6ICdib2xkJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmcnOiAnNXB4JyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRhcmdldE5vdGF0aW9uSW5wdXQucm9vdCxcbiAgICAgICAgICAgIHNlcGFyYXRvcklucHV0LnJvb3RcbiAgICAgICAgXSkpXG4gICAgICAgICAgICAub25PSygoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXROb3RhdGlvbiA9IHRhcmdldE5vdGF0aW9uSW5wdXQudmFsdWU7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBzZXBhcmF0b3JJbnB1dC52YWx1ZTtcbiAgICAgICAgICAgIHlpZWxkIGNvbnZlcnREbyhjb2wsIHRhcmdldE5vdGF0aW9uLCBzZXBhcmF0b3IpO1xuICAgICAgICB9KSlcbiAgICAgICAgICAgIC5zaG93KHsgeDogMzUwLCB5OiAxMDAgfSk7XG4gICAgICAgIGNvbnZlcnREaWFsb2dTdWJzLnB1c2goY29udmVydERpYWxvZy5vbkNsb3NlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnZlcnREaWFsb2dTdWJzLmZvckVhY2goKHMpID0+IHsgcy51bnN1YnNjcmliZSgpOyB9KTtcbiAgICAgICAgICAgIGNvbnZlcnREaWFsb2dTdWJzID0gW107XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nID0gbnVsbDtcbiAgICAgICAgfSkpO1xuICAgIH1cbn1cbi8qKiBDcmVhdGVzIGEgbmV3IGNvbHVtbiB3aXRoIGNvbnZlcnRlZCBzZXF1ZW5jZXMgYW5kIGRldGVjdHMgaXRzIHNlbWFudGljIHR5cGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RG8oc3JjQ29sLCB0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgY29udmVydGVyID0gbmV3IGJpby5Ob3RhdGlvbkNvbnZlcnRlcihzcmNDb2wpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSBjb252ZXJ0ZXIuY29udmVydCh0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgc3JjQ29sLmRhdGFGcmFtZS5jb2x1bW5zLmFkZChuZXdDb2x1bW4pO1xuICAgICAgICAvLyBjYWxsIHRvIGNhbGN1bGF0ZSAnY2VsbC5yZW5kZXJlcicgdGFnXG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKHNyY0NvbC5kYXRhRnJhbWUpO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCB7IEZhc3RhRmlsZUhhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvZmFzdGEtaGFuZGxlcic7XG4vL0B0cy1pZ25vcmVcbmltcG9ydCBBaW9saSBmcm9tICdAYmlvd2FzbS9haW9saSc7XG5pbXBvcnQgeyBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3NlcXVlbmNlLWVuY29kZXInO1xuLyoqXG4gKiBDb252ZXJ0cyBhcnJheSBvZiBzZXF1ZW5jZXMgaW50byBzaW1wbGUgZmFzdGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHNlcXVlbmNlcyBJbnB1dCBsaXN0IG9mIHNlcXVlbmNlcy5cbiAqIEByZXR1cm4ge3N0cmluZ30gRmFzdGEtZm9ybWF0dGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gX3N0cmluZ3NUb0Zhc3RhKHNlcXVlbmNlcykge1xuICAgIHJldHVybiBzZXF1ZW5jZXMucmVkdWNlKChhLCB2LCBpKSA9PiBhICsgYD5zYW1wbGUke2kgKyAxfVxcbiR7dn1cXG5gLCAnJyk7XG59XG4vKipcbiAqIFJ1bnMgQWlvbGkgZW52aXJvbm1lbnQgd2l0aCBrYWxpZ24gdG9vbC5cbiAqXG4gKiBAcGFyYW0ge0RHLkNvbHVtbn0gc3JjQ29sIENvbHVtbiB3aXRoIHNlcXVlbmNlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBbGlnbmVkIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBhbGlnbmVkLlxuICogQHBhcmFtIHtzdHJpbmd9IHVuVXNlZE5hbWVcbiAqIEByZXR1cm4ge1Byb21pc2U8REcuQ29sdW1uPn0gQWxpZ25lZCBzZXF1ZW5jZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5LYWxpZ24oc3JjQ29sLCBpc0FsaWduZWQgPSBmYWxzZSwgdW5Vc2VkTmFtZSA9ICcnKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHNlcXVlbmNlcyA9IHNyY0NvbC50b0xpc3QoKTtcbiAgICAgICAgaWYgKGlzQWxpZ25lZClcbiAgICAgICAgICAgIHNlcXVlbmNlcyA9IHNlcXVlbmNlcy5tYXAoKHYsIF8pID0+IEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuY2xlYW4odikucmVwbGFjZSgvXFwtL2csICcnKSk7XG4gICAgICAgIGNvbnN0IGZhc3RhID0gX3N0cmluZ3NUb0Zhc3RhKHNlcXVlbmNlcyk7XG4gICAgICAgIGNvbnN0IENMSSA9IHlpZWxkIG5ldyBBaW9saShbXG4gICAgICAgICAgICAnYmFzZS8xLjAuMCcsXG4gICAgICAgICAgICB7IHRvb2w6ICdrYWxpZ24nLCB2ZXJzaW9uOiAnMy4zLjEnLCByZWluaXQ6IHRydWUsIH1cbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFsnZmFzdGEubGVuZ3RoID0nLCBmYXN0YS5sZW5ndGhdKTtcbiAgICAgICAgeWllbGQgQ0xJLmZzLndyaXRlRmlsZSgnaW5wdXQuZmEnLCBmYXN0YSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHlpZWxkIENMSS5leGVjKCdrYWxpZ24gaW5wdXQuZmEgLWYgZmFzdGEgLW8gcmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGNvbnNvbGUud2FybihvdXRwdXQpO1xuICAgICAgICBjb25zdCBidWYgPSB5aWVsZCBDTEkuY2F0KCdyZXN1bHQuZmFzdGEnKTtcbiAgICAgICAgaWYgKCFidWYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGthbGlnbiBvdXRwdXQgbm8gcmVzdWx0YCk7XG4gICAgICAgIGNvbnN0IGZmaCA9IG5ldyBGYXN0YUZpbGVIYW5kbGVyKGJ1Zik7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBmZmguc2VxdWVuY2VzQXJyYXk7IC8vIGFycmF5IG9mIHNlcXVlbmNlcyBleHRyYWN0ZWQgZnJvbSBGQVNUQVxuICAgICAgICBjb25zdCB0Z3RDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3ModW5Vc2VkTmFtZSwgYWxpZ25lZCk7XG4gICAgICAgIC8vIHVuaXRzXG4gICAgICAgIGNvbnN0IHNyY1VuaXRzID0gc3JjQ29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgLy9hbGlnbmVkXG4gICAgICAgIGNvbnN0IHNyY0FsaWduZWQgPSBzcmNDb2wuZ2V0VGFnKFwiYWxpZ25lZFwiIC8qIGJpby5UQUdTLmFsaWduZWQgKi8pO1xuICAgICAgICBjb25zdCB0Z3RBbGlnbmVkID0gc3JjQWxpZ25lZCArICcuTVNBJztcbiAgICAgICAgLy9hbHBoYWJldFxuICAgICAgICBjb25zdCBzcmNBbHBoYWJldCA9IHNyY0NvbC5nZXRUYWcoXCJhbHBoYWJldFwiIC8qIGJpby5UQUdTLmFscGhhYmV0ICovKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBzcmNVbml0cyk7XG4gICAgICAgIHRndENvbC5zZXRUYWcoXCJhbGlnbmVkXCIgLyogYmlvLlRBR1MuYWxpZ25lZCAqLywgdGd0QWxpZ25lZCk7XG4gICAgICAgIHRndENvbC5zZXRUYWcoXCJhbHBoYWJldFwiIC8qIGJpby5UQUdTLmFscGhhYmV0ICovLCBzcmNBbHBoYWJldCk7XG4gICAgICAgIHRndENvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICByZXR1cm4gdGd0Q29sO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RNU0FFbm91Z2hNZW1vcnkoY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgc2VxdWVuY2VzQ291bnQgPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBkZWx0YSA9IHNlcXVlbmNlc0NvdW50IC8gMTAwO1xuICAgICAgICBmb3IgKGxldCBpID0gZGVsdGE7IGkgPCBzZXF1ZW5jZXNDb3VudDsgaSArPSBkZWx0YSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBydW5LYWxpZ24oREcuQ29sdW1uLmZyb21TdHJpbmdzKGNvbC5uYW1lLCBjb2wudG9MaXN0KCkuc2xpY2UoMCwgTWF0aC5yb3VuZChpKSkpKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgcnVuS2FsaWduIHN1Y2NlZWRlZCBvbiAke2l9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgcnVuS2FsaWduIGZhaWxlZCBvbiAke2l9IHdpdGggJyR7ZXJyb3J9J2ApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59XG4iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5jb25zdCBGQVNUQV9MSU5FX1dJRFRIID0gNjA7XG4vKiogU2hvd3MgZGlhbG9nIHRvIHNlbGVjdCBpZCBjb2x1bW5zIGxpc3QgYW5kIHNlcSBjb2x1bW4sIGJ1aWxkcyBhbmQgZG93bmxvYWRzIEZBU1RBIGNvbnRlbnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBzYXZlQXNGYXN0YVVJKCkge1xuICAgIC8vIFVzZSBncmlkIGZvciBjb2x1bW4gb3JkZXIgYWRqdXN0ZWQgYnkgdXNlclxuICAgIGxldCBncmlkID0gZ3Jvay5zaGVsbC50di5ncmlkO1xuICAgIGNvbnN0IGlkR0NvbExpc3QgPSB3dS5jb3VudCgwKS50YWtlKGdyaWQuY29sdW1ucy5sZW5ndGgpXG4gICAgICAgIC5tYXAoKGNvbEkpID0+IGdyaWQuY29sdW1ucy5ieUluZGV4KGNvbEkpKVxuICAgICAgICAuZmlsdGVyKChnY29sKSA9PiBnY29sLmNvbHVtbiA/IGdjb2wuY29sdW1uLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSA6IGZhbHNlKS50b0FycmF5KCk7XG4gICAgY29uc3QgZGVmYXVsdElkR0NvbCA9IGlkR0NvbExpc3RcbiAgICAgICAgLmZpbmQoKGdjb2wpID0+IGdjb2wubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2lkJykgIT09IC0xKTtcbiAgICBjb25zdCBpZERlZmF1bHRWYWx1ZSA9IGRlZmF1bHRJZEdDb2wgPyBbZGVmYXVsdElkR0NvbC5uYW1lXSA6IFtdO1xuICAgIGNvbnN0IGlkR0NvbExpc3RJbnB1dCA9IHVpLm11bHRpQ2hvaWNlSW5wdXQoJ1NlcSBpZCBjb2x1bW5zJywgaWREZWZhdWx0VmFsdWUsIGlkR0NvbExpc3QubWFwKChnY29sKSA9PiBnY29sLm5hbWUpKTtcbiAgICBjb25zdCBzZXFHQ29sTGlzdCA9IHd1LmNvdW50KDApLnRha2UoZ3JpZC5jb2x1bW5zLmxlbmd0aCkgLyogcmFuZ2Ugcm9tIDAgdG8gZ3JpZC5jb2x1bW5zLmxlbmd0aCAqL1xuICAgICAgICAubWFwKChjb2xJKSA9PiBncmlkLmNvbHVtbnMuYnlJbmRleChjb2xJKSlcbiAgICAgICAgLmZpbHRlcigoZ2MpID0+IHtcbiAgICAgICAgY29uc3QgY29sID0gZ2MuY29sdW1uO1xuICAgICAgICBpZiAoY29sICYmIGNvbC5zZW1UeXBlID09PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpIHtcbiAgICAgICAgICAgIGNvbnN0IHVoID0gbmV3IGJpby5Vbml0c0hhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIHJldHVybiB1aC5pc0Zhc3RhKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pLnRvQXJyYXkoKTtcbiAgICBjb25zdCBzZXFEZWZhdWx0VmFsdWUgPSBzZXFHQ29sTGlzdC5sZW5ndGggPiAwID8gc2VxR0NvbExpc3RbMF0ubmFtZSA6IFtdO1xuICAgIGNvbnN0IHNlcUNvbElucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ1NlcSBjb2x1bW4nLCBzZXFEZWZhdWx0VmFsdWUsIHNlcUdDb2xMaXN0Lm1hcCgoZ0NvbCkgPT4gZ0NvbC5uYW1lKSk7XG4gICAgY29uc3QgbGluZVdpZHRoSW5wdXQgPSB1aS5pbnRJbnB1dCgnRkFTVEEgbGluZSB3aWR0aCcsIEZBU1RBX0xJTkVfV0lEVEgpO1xuICAgIHVpLmRpYWxvZyh7IHRpdGxlOiAnU2F2ZSBhcyBGQVNUQScsIH0pXG4gICAgICAgIC5hZGQodWkuaW5wdXRzKFtcbiAgICAgICAgaWRHQ29sTGlzdElucHV0LFxuICAgICAgICBzZXFDb2xJbnB1dCxcbiAgICAgICAgbGluZVdpZHRoSW5wdXRcbiAgICBdKSlcbiAgICAgICAgLm9uT0soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IHZhbHVlSWRDb2xMaXN0ID0gaWRHQ29sTGlzdElucHV0LnZhbHVlID9cbiAgICAgICAgICAgIGlkR0NvbExpc3RJbnB1dC52YWx1ZS5tYXAoKGNvbE5hbWUpID0+IGdyaWQuY29sdW1ucy5ieU5hbWUoY29sTmFtZSkuY29sdW1uKSA6IFtdO1xuICAgICAgICBjb25zdCB2YWx1ZVNlcUNvbCA9IHNlcUNvbElucHV0LnZhbHVlID9cbiAgICAgICAgICAgIGdyaWQuY29sdW1ucy5ieU5hbWUoc2VxQ29sSW5wdXQudmFsdWUpLmNvbHVtbiA6IG51bGw7XG4gICAgICAgIGNvbnN0IHZhbHVlTGluZVdpZHRoID0gKF9hID0gbGluZVdpZHRoSW5wdXQudmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IEZBU1RBX0xJTkVfV0lEVEg7XG4gICAgICAgIGlmICghdmFsdWVTZXFDb2wpXG4gICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYFNlcSBjb2x1bW4gaXMgbWFuZGF0b3J5IHRvIHNhdmUgYXMgRkFTVEEuYCk7XG4gICAgICAgIGNvbnN0IHJlc0Zhc3RhVHh0ID0gc2F2ZUFzRmFzdGFEbyh2YWx1ZUlkQ29sTGlzdCwgdmFsdWVTZXFDb2wsIHZhbHVlTGluZVdpZHRoKTtcbiAgICAgICAgY29uc3QgYUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBhRWwuc2V0QXR0cmlidXRlKCdocmVmJywgYGRhdGE6dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04LCR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlc0Zhc3RhVHh0KX1gKTtcbiAgICAgICAgYUVsLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBgJHtncmlkLmRhdGFGcmFtZS5uYW1lfS5mYXN0YWApO1xuICAgICAgICBhRWwuY2xpY2soKTtcbiAgICB9KVxuICAgICAgICAuc2hvdygpO1xufVxuLyoqICovXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUFzRmFzdGFEbyhpZENvbExpc3QsIHNlcUNvbCwgbGluZVdpZHRoID0gRkFTVEFfTElORV9XSURUSCwgbGluZVNlcGFyYXRvciA9ICdcXG4nKSB7XG4gICAgY29uc3Qgc3BsaXR0ZXIgPSBiaW8uc3BsaXR0ZXJBc0Zhc3RhO1xuICAgIGNvbnN0IGZhc3RhTGluZXMgPSBbXTtcbiAgICBmb3IgKGxldCByb3dJID0gMDsgcm93SSA8IHNlcUNvbC5sZW5ndGg7IHJvd0krKykge1xuICAgICAgICAvLyBtdWx0aXBsZSBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgdmVydGljYWwgYmFyc1xuICAgICAgICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9GQVNUQV9mb3JtYXRcbiAgICAgICAgY29uc3Qgc2VxSWQgPSBpZENvbExpc3QubWFwKChjb2wpID0+IGNvbC5nZXQocm93SSkudG9TdHJpbmcoKSkuam9pbignfCcpO1xuICAgICAgICBjb25zdCBzZXEgPSBzZXFDb2wuZ2V0KHJvd0kpO1xuICAgICAgICBjb25zdCBzZXFMaW5lTGlzdCA9IHdyYXBTZXF1ZW5jZShzZXEsIHNwbGl0dGVyLCBsaW5lV2lkdGgpO1xuICAgICAgICBmYXN0YUxpbmVzLnB1c2goYD4ke3NlcUlkfSR7bGluZVNlcGFyYXRvcn1gKTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIHNlcUxpbmVMaXN0KVxuICAgICAgICAgICAgZmFzdGFMaW5lcy5wdXNoKGAke2xpbmV9JHtsaW5lU2VwYXJhdG9yfWApO1xuICAgIH1cbiAgICAvL3JldHVybiBmYXN0YUxpbmVzLmpvaW4obGluZVNlcGFyYXRvcik7XG4gICAgcmV0dXJuICcnLmNvbmNhdCguLi5mYXN0YUxpbmVzKTtcbn1cbi8qIHNwbGl0IHNlcXVlbmNlIGZvciBtb25vbWVycyB0byBwcmV2ZW50IHdyYXBwaW5nIG1vbm9tZXIgcGFydGlhbGx5ICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcFNlcXVlbmNlKHNlcSwgc3BsaXR0ZXIsIGxpbmVXaWR0aCA9IEZBU1RBX0xJTkVfV0lEVEgpIHtcbiAgICBjb25zdCBzZXFNb25vbWVyTGlzdCA9IHNwbGl0dGVyKHNlcSk7XG4gICAgbGV0IHNlcVBvcyA9IDA7XG4gICAgY29uc3Qgc2VxTGVuZ3RoID0gc2VxTW9ub21lckxpc3QubGVuZ3RoO1xuICAgIGNvbnN0IHNlcUxpbmVMaXN0ID0gW107XG4gICAgd2hpbGUgKHNlcVBvcyA8IHNlcUxlbmd0aCkge1xuICAgICAgICAvKiBqb2luIHNsaWNlZCBtb25vbWVyIGludG8gbGluZSAqL1xuICAgICAgICBjb25zdCBzZXFMaW5lID0gc2VxTW9ub21lckxpc3Quc2xpY2Uoc2VxUG9zLCBzZXFQb3MgKyBsaW5lV2lkdGgpO1xuICAgICAgICBjb25zdCBzZXFMaW5lVHh0ID0gc2VxTGluZS5tYXAoKG0pID0+IG0ubGVuZ3RoID4gMSA/IGBbJHttfV1gIDogbSkuam9pbignJyk7XG4gICAgICAgIHNlcUxpbmVMaXN0LnB1c2goc2VxTGluZVR4dCk7XG4gICAgICAgIHNlcVBvcyArPSBzZXFMaW5lLmxlbmd0aDtcbiAgICB9XG4gICAgcmV0dXJuIHNlcUxpbmVMaXN0O1xufVxuIiwiZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZURpdklubmVySFRNTChkaXYsIGNvbnRlbnQpIHtcbiAgICBkaXYuaW5uZXJIVE1MID0gJyc7XG4gICAgZGl2LmFwcGVuZChjb250ZW50KTtcbn1cbiIsImltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIGJpbyBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpbyc7XG5pbXBvcnQgeyBDQVBfR1JPVVBfTkFNRSwgQ0FQX0dST1VQX1NNSUxFUywganNvblNkZk1vbm9tZXJMaWJEaWN0LCBNT05PTUVSX0VOQ09ERV9NQVgsIE1PTk9NRVJfRU5DT0RFX01JTiwgTU9OT01FUl9TWU1CT0wsIFJHUk9VUF9BTFRFUl9JRCwgUkdST1VQX0ZJRUxELCBSR1JPVVBfTEFCRUwsIFNERl9NT05PTUVSX05BTUUgfSBmcm9tICcuLi9jb25zdCc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSA9ICcvZGF0YS9IRUxNQ29yZUxpYnJhcnkuanNvbic7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0xJQl9NT05PTUVSX1NZTUJPTCA9ICdzeW1ib2wnO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfTU9MRklMRSA9ICdtb2xmaWxlJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfRklFTERTID0gWydzeW1ib2wnLCAnbW9sZmlsZScsICdyZ3JvdXBzJywgJ25hbWUnXTtcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVNb25vbWVycyhjb2wpIHtcbiAgICBsZXQgZW5jb2RlU3ltYm9sID0gTU9OT01FUl9FTkNPREVfTUlOO1xuICAgIGNvbnN0IG1vbm9tZXJTeW1ib2xEaWN0ID0ge307XG4gICAgY29uc3QgdW5pdHMgPSBjb2wudGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjb2wuZ2V0VGFnKFwic2VwYXJhdG9yXCIgLyogYmlvLlRBR1Muc2VwYXJhdG9yICovKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBiaW8uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgZW5jb2RlZFN0cmluZ0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2wubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgbGV0IGVuY29kZWRNb25vbWVyU3RyID0gJyc7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKGNvbC5nZXQoaSkpO1xuICAgICAgICBtb25vbWVycy5mb3JFYWNoKChtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJTeW1ib2xEaWN0W21dKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVuY29kZVN5bWJvbCA+IE1PTk9NRVJfRU5DT0RFX01BWCkge1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLmVycm9yKGBOb3QgZW5vdWdoIHN5bWJvbHMgdG8gZW5jb2RlIG1vbm9tZXJzYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb25vbWVyU3ltYm9sRGljdFttXSA9IGVuY29kZVN5bWJvbDtcbiAgICAgICAgICAgICAgICBlbmNvZGVTeW1ib2wrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuY29kZWRNb25vbWVyU3RyICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KG1vbm9tZXJTeW1ib2xEaWN0W21dKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVuY29kZWRTdHJpbmdBcnJheS5wdXNoKGVuY29kZWRNb25vbWVyU3RyKTtcbiAgICB9XG4gICAgcmV0dXJuIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnZW5jb2RlZE1vbGVjdWxlcycsIGVuY29kZWRTdHJpbmdBcnJheSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXNGcm9tU2VxKGNvbCwgbW9ub21lcnNMaWJPYmplY3QpIHtcbiAgICBjb25zdCB1bml0cyA9IGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNvbC5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IGJpby5nZXRTcGxpdHRlcih1bml0cywgc2VwKTtcbiAgICBjb25zdCBtb25vbWVyc0RpY3QgPSBjcmVhdGVNb21vbWVyc01vbERpY3QobW9ub21lcnNMaWJPYmplY3QpO1xuICAgIGNvbnN0IG1vbEZpbGVzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2wubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY29uc3QgbWFjcm9Nb2xlY3VsZSA9IGNvbC5nZXQoaSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBjb25zdCBtb2xGaWxlc0ZvclNlcSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzLmxlbmd0aDsgKytqKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lcnNbal0pIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pIHtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBNb25vbWVyICR7bW9ub21lcnNbal19IGlzIG1pc3NpbmcgaW4gSEVMTSBsaWJyYXJ5LiBTdHJ1Y3R1cmUgY2Fubm90IGJlIGNyZWF0ZWRgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1vbEZpbGVzRm9yU2VxLnB1c2goSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1vbEZpbGVzLnB1c2gobW9sRmlsZXNGb3JTZXEpO1xuICAgIH1cbiAgICByZXR1cm4gbW9sRmlsZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXNGcm9tU2luZ2xlU2VxKGNlbGwsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgY29uc3QgdW5pdHMgPSBjZWxsLmNvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNlbGwuY29sdW1uLmdldFRhZygnc2VwYXJhdG9yJyk7XG4gICAgY29uc3Qgc3BsaXR0ZXJGdW5jID0gYmlvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IG1vbm9tZXJzRGljdCA9IGNyZWF0ZU1vbW9tZXJzTW9sRGljdChtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgY29uc3QgbW9sRmlsZXMgPSBbXTtcbiAgICBjb25zdCBtYWNyb01vbGVjdWxlID0gY2VsbC52YWx1ZTtcbiAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICBjb25zdCBtb2xGaWxlc0ZvclNlcSA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9ub21lcnMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pIHtcbiAgICAgICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYE1vbm9tZXIgJHttb25vbWVyc1tqXX0gaXMgbWlzc2luZyBpbiBIRUxNIGxpYnJhcnkuIFN0cnVjdHVyZSBjYW5ub3QgYmUgY3JlYXRlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9sRmlsZXNGb3JTZXEucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW9sRmlsZXMucHVzaChtb2xGaWxlc0ZvclNlcSk7XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vbW9tZXJzTW9sRGljdChsaWIpIHtcbiAgICBjb25zdCBkaWN0ID0ge307XG4gICAgbGliLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgIGlmIChpdFsncG9seW1lclR5cGUnXSA9PT0gJ1BFUFRJREUnKSB7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyT2JqZWN0ID0ge307XG4gICAgICAgICAgICBIRUxNX0NPUkVfRklFTERTLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgbW9ub21lck9iamVjdFtmaWVsZF0gPSBpdFtmaWVsZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpY3RbaXRbSEVMTV9DT1JFX0xJQl9NT05PTUVSX1NZTUJPTF1dID0gbW9ub21lck9iamVjdDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkaWN0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUpzb25Nb25vbWVyTGliRnJvbVNkZih0YWJsZSkge1xuICAgIGNvbnN0IHJlc3VsdExpYiA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBtb25vbWVyID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGpzb25TZGZNb25vbWVyTGliRGljdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBNT05PTUVSX1NZTUJPTCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJTeW1ib2wgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IG1vbm9tZXJTeW1ib2wgPT09ICcuJyA/IHRhYmxlLmdldChTREZfTU9OT01FUl9OQU1FLCBpKSA6IG1vbm9tZXJTeW1ib2w7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChrZXkgPT09IFJHUk9VUF9GSUVMRCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJncm91cHMgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqc29uUmdyb3VwcyA9IFtdO1xuICAgICAgICAgICAgICAgIHJncm91cHMuZm9yRWFjaCgoZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZ3JvdXAgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWx0QXRvbSA9IGcuc3Vic3RyaW5nKGcubGFzdEluZGV4T2YoJ10nKSArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYWRpY2FsTnVtID0gZy5tYXRjaCgvXFxbUihcXGQrKVxcXS8pWzFdO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbQ0FQX0dST1VQX1NNSUxFU10gPSBhbHRBdG9tID09PSAnSCcgPyBgWyo6JHtyYWRpY2FsTnVtfV1bSF1gIDogYE9bKjoke3JhZGljYWxOdW19XWA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfQUxURVJfSURdID0gYWx0QXRvbSA9PT0gJ0gnID8gYFIke3JhZGljYWxOdW19LUhgIDogYFIke3JhZGljYWxOdW19LU9IYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW0NBUF9HUk9VUF9OQU1FXSA9IGFsdEF0b20gPT09ICdIJyA/IGBIYCA6IGBPSGA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfTEFCRUxdID0gYFIke3JhZGljYWxOdW19YDtcbiAgICAgICAgICAgICAgICAgICAganNvblJncm91cHMucHVzaChyZ3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IGpzb25SZ3JvdXBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldKVxuICAgICAgICAgICAgICAgICAgICBtb25vbWVyW2tleV0gPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0TGliLnB1c2gobW9ub21lcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRMaWI7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgYmlvIGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvJztcbmNvbnN0IHZydCA9IGJpby5WZFJlZ2lvblR5cGU7XG4vLyBQb3NpdGlvbnMgb2YgcmVnaW9ucyBmb3IgbnVtYmVyaW5nIHNjaGVtZXNcbi8vIGh0dHA6Ly93d3cuYmlvaW5mLm9yZy51ay9hYnMvaW5mby5odG1sXG4vLyBjb25zdCBpbWd0UmVnaW9uczogVmRSZWdpb25bXSA9IFtcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMScsICdMaWdodCcsIDEsICcxJywgJzI2JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnSGVhdnknLCAxLCAnMScsICcyNicpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIxJywgJ0xpZ2h0JywgMiwgJzI3JywgJzM4JyksIC8vIDI3LTMyXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdIZWF2eScsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdMaWdodCcsIDMsICczOScsICc1NScpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIyJywgJ0hlYXZ5JywgMywgJzM5JywgJzU1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjInLCAnTGlnaHQnLCA0LCAnNTYnLCAnNjUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0hlYXZ5JywgNCwgJzU2JywgJzY1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0xpZ2h0JywgNSwgJzY2JywgJzEwNCcpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0hlYXZ5JywgNSwgJzY2JywgJzEwNCcpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0xpZ2h0JywgNiwgJzEwNScsICcxMTcnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0hlYXZ5JywgNiwgJzEwNScsICcxMTcnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjQnLCAnTGlnaHQnLCA3LCAnMTE4JywgbnVsbC8qMTI3Ki8pLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0hlYXZ5JywgNywgJzExOCcsIG51bGwvKjEyOCovKSxcbi8vIF07XG4vKiogVmlld2VyIHdpdGggdGFicyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBvZiBjaGFpbiByZWdpb25zLlxuICogIFVzZWQgdG8gZGVmaW5lIHJlZ2lvbnMgb2YgYW4gaW1tdW5vZ2xvYnVsaW4gTEMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZFJlZ2lvbnNWaWV3ZXIgZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc0RmOiBERy5EYXRhRnJhbWU7XG4gICAgICAgIHRoaXMucmVnaW9uc0ZnID0gbnVsbDtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWdpb25zVFY6IERHLlRhYmxlVmlldztcbiAgICAgICAgdGhpcy5yZWdpb25zUm9vdCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYW5lbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZ2lvbnMgPSBbXTtcbiAgICAgICAgLy8gI3JlZ2lvbiAtLSBIYW5kbGUgY29udHJvbHMnIGV2ZW50cyAtLVxuICAgICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgLy8jcmVnaW9uIC0tIFZpZXcgLS1cbiAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAvLyBUbyBwcmV2ZW50IGFtYmlndW91cyBudW1iZXJpbmcgc2NoZW1lIGluIE1MQlxuICAgICAgICB0aGlzLnJlZ2lvblR5cGVzID0gdGhpcy5zdHJpbmdMaXN0KCdyZWdpb25UeXBlcycsIFt2cnQuQ0RSXSwgeyBjaG9pY2VzOiBPYmplY3QudmFsdWVzKHZydCkuZmlsdGVyKCh0KSA9PiB0ICE9IHZydC5Vbmtub3duKSB9KTtcbiAgICAgICAgdGhpcy5jaGFpbnMgPSB0aGlzLnN0cmluZ0xpc3QoJ2NoYWlucycsIFsnSGVhdnknLCAnTGlnaHQnXSwgeyBjaG9pY2VzOiBbJ0hlYXZ5JywgJ0xpZ2h0J10gfSk7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWVQb3N0Zml4JywgJ2NoYWluIHNlcXVlbmNlJyk7XG4gICAgICAgIHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zID0gdGhpcy5ib29sKCdza2lwRW1wdHlQb3NpdGlvbnMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNik7XG4gICAgfVxuICAgIGdldCBkZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YUZyYW1lO1xuICAgIH1cbiAgICAvLyBUT0RPOiAub25UYWJsZUF0dGFjaGVkIGlzIG5vdCBjYWxsaW5nIG9uIGRhdGFGcmFtZSBzZXQsIG9uUHJvcGVydHlDaGFuZ2VkICBhbHNvIG5vdCBjYWxsaW5nXG4gICAgc2V0RGYodmFsdWUsIHJlZ2lvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5zZXREZigpJyk7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lvbnMgPSByZWdpb25zO1xuICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8jcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRGYgPSBERy5EYXRhRnJhbWUuZnJvbU9iamVjdHModGhpcy5yZWdpb25zKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvdy5uYW1lID09ICdDRFIxJyk7XG4gICAgICAgICAgICAvLyAvLyBUbyBhdmFpbGFibGUgb3B0aW9ucyAvXG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNGZyA9IChhd2FpdCB0aGlzLnJlZ2lvbnNEZi5wbG90LmZyb21UeXBlKERHLlZJRVdFUi5GSUxURVJTLCB7XG4gICAgICAgICAgICAvLyAgIC8vIGNvbHVtbk5hbWVzOiBbJ25hbWUnLF0sXG4gICAgICAgICAgICAvLyAgIHNob3dGaWx0ZXJDb3VudHNJbmRpY2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgc2hvd0hlYWRlcjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dTZWFyY2hCb3g6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICd0eXBlJywgbGFiZWw6ICdSZWdpb24gbmFtZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgICB7dHlwZTogREcuRklMVEVSX1RZUEUuQ0FURUdPUklDQUwsIGNvbHVtbjogJ25hbWUnLCBsYWJlbDogJ1JlZ2lvbiB0eXBlJywgc2hvd0hpc3RvZ3JhbTogZmFsc2V9LFxuICAgICAgICAgICAgLy8gICBdLFxuICAgICAgICAgICAgLy8gICB0aXRsZTogJ1JlZ2lvbnMgZmlsdGVyJyxcbiAgICAgICAgICAgIC8vICAgc2hvd1RpdGxlOiB0cnVlLFxuICAgICAgICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBmb3IgcmVnaW9ucyBvZiBtdWx0aXBsZSBhbGlnbm1lbnQgYnkgSU1HVCBub21lbmNsYXR1cmUnLFxuICAgICAgICAgICAgLy8gICBzb21lUHJvcGVydHk6ICdIZWxsbycsXG4gICAgICAgICAgICAvLyB9KSkgYXMgREcuRmlsdGVyR3JvdXA7XG4gICAgICAgICAgICAvLyNlbmRyZWdpb24gcmVnaW9uc0RGIHdpdGggZmlsdGVyXG4gICAgICAgICAgICAvLyB0aGlzLm1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJlZ2lvbnNGZy5yb290LCBERy5ET0NLX1RZUEUuTEVGVCwgcm9vdE5vZGUsICdGaWx0ZXIgcmVnaW9ucycsIDAuMik7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh1aS5vblNpemVDaGFuZ2VkKHRoaXMucm9vdCkuc3Vic2NyaWJlKHRoaXMucm9vdE9uU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSkpO1xuICAgICAgICAgICAgLy8gcnhqcy5mcm9tRXZlbnQodGhpcy5yb290LCAnbW91c2Vtb3ZlJykuc3Vic2NyaWJlKHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uVGFibGVBdHRhY2hlZCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgY29uc3QgX3N1cGVyID0gT2JqZWN0LmNyZWF0ZShudWxsLCB7XG4gICAgICAgICAgICBvblByb3BlcnR5Q2hhbmdlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBfc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQuY2FsbCh0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVnaW9uVHlwZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NoYWlucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IHRoaXMubG9nb3MubGVuZ3RoOyBvcmRlckkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgY29uc3QgY2hhaW46IHN0cmluZyA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5zZXRPcHRpb25zKHtza2lwRW1wdHlQb3NpdGlvbnM6IHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvcGVuKG1sYlZpZXcpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxOb2RlID0gbWxiVmlldy5kb2NrTWFuYWdlci5kb2NrKHRoaXMucm9vdCwgREcuRE9DS19UWVBFLlRPUCwgbnVsbCwgJ1JlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2hvdyhtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByb290T25TaXplQ2hhbmdlZChhcmdzKSB7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICB9XG4gICAgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBVbnN1YnNjcmliZSBmcm9tIGFuZCByZW1vdmUgYWxsIHZpZXcgZWxlbWVudHNcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFZkUmVnaW9uc1ZpZXdlci5kZXN0cm95VmlldyggbWFpbkxheW91dCA9ICR7IXRoaXMubWFpbkxheW91dCA/ICdub25lJyA6ICd2YWx1ZSd9IClgKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1haW5MYXlvdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucm9vdC5yZW1vdmVDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3QucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYnVpbGRWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIHN0YXJ0Jyk7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lcyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLnRoaXMuY2hhaW5zLm1hcCgoY2hhaW4pID0+ICh7IFtjaGFpbl06IGAke2NoYWlufSAke3RoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeH1gIH0pKSk7XG4gICAgICAgICAgICBjb25zdCByZWdpb25zRmlsdGVyZWQgPSB0aGlzLnJlZ2lvbnMuZmlsdGVyKChyKSA9PiB0aGlzLnJlZ2lvblR5cGVzLmluY2x1ZGVzKHIudHlwZSkpO1xuICAgICAgICAgICAgY29uc3Qgb3JkZXJMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0KHJlZ2lvbnNGaWx0ZXJlZC5tYXAoKHIpID0+IHIub3JkZXIpKSkuc29ydCgpO1xuICAgICAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgb3JkZXJMaXN0Lmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpb25DaGFpbnMgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYWluIG9mIHRoaXMuY2hhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbnNGaWx0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSBjaGFpbik7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lvbkNoYWluc1tjaGFpbl0gPSAoeWllbGQgdGhpcy5kYXRhRnJhbWUucGxvdC5mcm9tVHlwZSgnV2ViTG9nbycsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlQ29sdW1uTmFtZTogY29sTmFtZXNbY2hhaW5dLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvblN0YXJ0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uTmFtZTogcmVnaW9uLnBvc2l0aW9uRW5kTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpeFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uV2lkdGg6IHRoaXMucG9zaXRpb25XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZWJMb2dvIGNyZWF0aW9uIGZpcmVzIG9uUm9vdFNpemVDaGFuZ2VkIGV2ZW50IGV2ZW4gYmVmb3JlIGNvbnRyb2wgYmVpbmcgYWRkZWQgdG8gdGhpcy5sb2dvc1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXSA9IHJlZ2lvbkNoYWlucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHVpLnRhYmxlRnJvbU1hcCgpXG4gICAgICAgICAgICAvLyBERy5IdG1sVGFibGUuY3JlYXRlKClcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dCA9IHVpLnRhYmxlKHRoaXMuY2hhaW5zLCAoY2hhaW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjaGFpbiBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAuLi4ob3JkZXJMaXN0Lmxlbmd0aCA+IDAgPyBbdWkuZGl2KGNoYWluLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnMTJweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KV0gOiBbXSksXG4gICAgICAgICAgICAgICAgICAgIC8vIExpc3Qgd2l0aCBjb250cm9scyBmb3IgcmVnaW9uc1xuICAgICAgICAgICAgICAgICAgICAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2wgPSB0aGlzLmxvZ29zW29yZGVySV1bY2hhaW5dO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2wucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNEaXYgPSB1aS5kaXYoW3dsLnJvb3RdIC8qYCR7Y2hhaW59ICR7cmVnaW9uc0ZpbHRlcmVkW3JJXX1gKi8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNEaXY7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgICAgICAgICB9LCBbJycsIC4uLlsuLi5BcnJheShvcmRlckxpc3QubGVuZ3RoKS5rZXlzKCldLm1hcCgob3JkZXJJKSA9PiByZWdpb25zRmlsdGVyZWQuZmluZCgocikgPT4gci5vcmRlciA9PSBvcmRlckxpc3Rbb3JkZXJJXSAmJiByLmNoYWluID09IHRoaXMuY2hhaW5zWzBdKS5uYW1lIHx8ICdOYW1lJyldKTtcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5jbGFzc05hbWUgPSAnbWxiLXZkLXJlZ2lvbnMtdmlld2VyLXRhYmxlMic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYmFja2dyb3VuZCA9ICcjRUVFRUZGJztcbiAgICAgICAgICAgIC8vIHRoaXMubWFpbkxheW91dC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IGAjZmZiYiR7TWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAyNTUpLnRvU3RyaW5nKDE2KX1gO1xuICAgICAgICAgICAgdGhpcy5ob3N0ID0gdWkuYm94KHRoaXMubWFpbkxheW91dCwgeyAvKnN0eWxlOiB7YmFja2dyb3VuZENvbG9yOiBjb2xvcn0qL30pO1xuICAgICAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUub3ZlcmZsb3dYID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIGVuZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2FsY1NpemUoKSB7XG4gICAgICAgIGNvbnN0IGxvZ29IZWlnaHQgPSAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIDU0KSAvIHRoaXMuY2hhaW5zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5taW4obG9nb0hlaWdodCwgTWF0aC5tYXgoLi4udGhpcy5sb2dvcy5tYXAoKHdsRGljdCkgPT4gTWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyh3bERpY3QpLm1hcCgod2wpID0+IHdsLm1heEhlaWdodCkpKSkpO1xuICAgICAgICBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoYWluSSA9IDA7IGNoYWluSSA8IHRoaXMuY2hhaW5zLmxlbmd0aDsgY2hhaW5JKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFpbiA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5yb290LnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8jZW5kcmVnaW9uIC0tIFZpZXcgLS1cbiAgICBvbk1vdXNlTW92ZVJvb3QoZSkge1xuICAgICAgICAvLyB1aS50b29sdGlwLnNob3coJ3RleHQnLCBlLnggKyA4LCBlLnkgKyA4LCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBvbk1vdXNlTW92ZVJvb3QuKCB4OiAke2UueH0sIHk6ICR7ZS55fSApYCk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBNYWNyb21vbGVjdWxlcyBzdWJzdHJ1Y3R1cmUgZmlsdGVyIHRoYXQgdXNlcyBEYXRhZ3JvaydzIGNvbGxhYm9yYXRpdmUgZmlsdGVyaW5nLlxuICogMS4gT24gb25Sb3dzRmlsdGVyaW5nIGV2ZW50LCBvbmx5IEZJTFRFUiBPVVQgcm93cyB0aGF0IGRvIG5vdCBzYXRpc2Z5IHRoaXMgZmlsdGVyJ3MgY3JpdGVyaWFcbiAqIDIuIENhbGwgZGF0YUZyYW1lLnJvd3MucmVxdWVzdEZpbHRlciB3aGVuIGZpbHRlcmluZyBjcml0ZXJpYSBjaGFuZ2VzLlxuICogKi9cbnZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgeyBoZWxtU3Vic3RydWN0dXJlU2VhcmNoLCBsaW5lYXJTdWJzdHJ1Y3R1cmVTZWFyY2ggfSBmcm9tICcuLi9zdWJzdHJ1Y3R1cmUtc2VhcmNoL3N1YnN0cnVjdHVyZS1zZWFyY2gnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXBkYXRlRGl2SW5uZXJIVE1MIH0gZnJvbSAnLi4vdXRpbHMvdWktdXRpbHMnO1xuZXhwb3J0IGNsYXNzIEJpb1N1YnN0cnVjdHVyZUZpbHRlciBleHRlbmRzIERHLkZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYmlvRmlsdGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5iaXRzZXQgPSBudWxsO1xuICAgICAgICB0aGlzLmxvYWRlciA9IHVpLmxvYWRlcigpO1xuICAgICAgICB0aGlzLm5vdGF0aW9uID0gJyc7XG4gICAgICAgIHRoaXMucm9vdCA9IHVpLmRpdlYoW10pO1xuICAgICAgICB0aGlzLmNhbGN1bGF0aW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGdldCBjYWxjdWxhdGluZygpIHsgcmV0dXJuIHRoaXMubG9hZGVyLnN0eWxlLmRpc3BsYXkgPT0gJ2luaXRpYWwnOyB9XG4gICAgc2V0IGNhbGN1bGF0aW5nKHZhbHVlKSB7IHRoaXMubG9hZGVyLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/ICdpbml0aWFsJyA6ICdub25lJzsgfVxuICAgIGdldCBmaWx0ZXJTdW1tYXJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5iaW9GaWx0ZXIuc3Vic3RydWN0dXJlO1xuICAgIH1cbiAgICBnZXQgaXNGaWx0ZXJpbmcoKSB7XG4gICAgICAgIHJldHVybiBzdXBlci5pc0ZpbHRlcmluZyAmJiB0aGlzLmJpb0ZpbHRlci5zdWJzdHJ1Y3R1cmUgIT09ICcnO1xuICAgIH1cbiAgICBnZXQgaXNSZWFkeVRvQXBwbHlGaWx0ZXIoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jYWxjdWxhdGluZyAmJiB0aGlzLmJpdHNldCAhPSBudWxsO1xuICAgIH1cbiAgICBhdHRhY2goZGF0YUZyYW1lKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBzdXBlci5hdHRhY2goZGF0YUZyYW1lKTtcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBkYXRhRnJhbWUuY29sdW1ucy5ieVNlbVR5cGUoREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKTtcbiAgICAgICAgdGhpcy5jb2x1bW5OYW1lID0gKF9hID0gdGhpcy5jb2x1bW4pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgICAgICB0aGlzLm5vdGF0aW9uID0gKF9iID0gdGhpcy5jb2x1bW4pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIHRoaXMuYmlvRmlsdGVyID0gdGhpcy5ub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovID9cbiAgICAgICAgICAgIG5ldyBGYXN0YUZpbHRlcigpIDogdGhpcy5ub3RhdGlvbiA9PT0gXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8gP1xuICAgICAgICAgICAgbmV3IFNlcGFyYXRvckZpbHRlcih0aGlzLmNvbHVtbi5nZXRUYWcoQy5UQUdTLlNFUEFSQVRPUikpIDogbmV3IEhlbG1GaWx0ZXIoKTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuYmlvRmlsdGVyLmZpbHRlclBhbmVsKTtcbiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMubG9hZGVyKTtcbiAgICAgICAgKF9jID0gdGhpcy5vbkJpb0ZpbHRlckNoYW5nZWRTdWJzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgY29uc3Qgb25DaGFuZ2VkRXZlbnQgPSB0aGlzLmJpb0ZpbHRlci5vbkNoYW5nZWQ7XG4gICAgICAgIHRoaXMub25CaW9GaWx0ZXJDaGFuZ2VkU3VicyA9IG9uQ2hhbmdlZEV2ZW50LnN1YnNjcmliZSgoXykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgeyByZXR1cm4geWllbGQgdGhpcy5fb25JbnB1dENoYW5nZWQoKTsgfSkpO1xuICAgIH1cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHN1cGVyLmRldGFjaCgpO1xuICAgIH1cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5iaXRzZXQgJiYgIXRoaXMuaXNEZXRhY2hlZClcbiAgICAgICAgICAgIChfYSA9IHRoaXMuZGF0YUZyYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZmlsdGVyLmFuZCh0aGlzLmJpdHNldCk7XG4gICAgfVxuICAgIC8qKiBPdmVycmlkZSB0byBzYXZlIGZpbHRlciBzdGF0ZS4gKi9cbiAgICBzYXZlU3RhdGUoKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBzdXBlci5zYXZlU3RhdGUoKTtcbiAgICAgICAgc3RhdGUuYmlvU3Vic3RydWN0dXJlID0gKF9hID0gdGhpcy5iaW9GaWx0ZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzdHJ1Y3R1cmU7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgLyoqIE92ZXJyaWRlIHRvIGxvYWQgZmlsdGVyIHN0YXRlLiAqL1xuICAgIGFwcGx5U3RhdGUoc3RhdGUpIHtcbiAgICAgICAgc3VwZXIuYXBwbHlTdGF0ZShzdGF0ZSk7XG4gICAgICAgIGlmIChzdGF0ZS5iaW9TdWJzdHJ1Y3R1cmUpXG4gICAgICAgICAgICB0aGlzLmJpb0ZpbHRlci5zdWJzdHJ1Y3R1cmUgPSBzdGF0ZS5iaW9TdWJzdHJ1Y3R1cmU7XG4gICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICBpZiAoc3RhdGUuYmlvU3Vic3RydWN0dXJlKVxuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHRoYXQuX29uSW5wdXRDaGFuZ2VkKCk7IH0sIDEwMDApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQZXJmb3JtcyB0aGUgYWN0dWFsIGZpbHRlcmluZ1xuICAgICAqIFdoZW4gdGhlIHJlc3VsdHMgYXJlIHJlYWR5LCB0cmlnZ2VycyBgcm93cy5yZXF1ZXN0RmlsdGVyYCwgd2hpY2ggaW4gdHVybiB0cmlnZ2VycyBgYXBwbHlGaWx0ZXJgXG4gICAgICogdGhhdCB3b3VsZCBzaW1wbHkgYXBwbHkgdGhlIGJpdHNldCBzeW5jaHJvbm91c2x5LlxuICAgICAqL1xuICAgIF9vbklucHV0Q2hhbmdlZCgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZpbHRlcmluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuYml0c2V0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAoX2EgPSB0aGlzLmRhdGFGcmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJvd3MucmVxdWVzdEZpbHRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAod3UodGhpcy5kYXRhRnJhbWUucm93cy5maWx0ZXJzKS5oYXMoYCR7dGhpcy5jb2x1bW5OYW1lfTogJHt0aGlzLmZpbHRlclN1bW1hcnl9YCkpIHtcbiAgICAgICAgICAgICAgICAvLyBzb21lIG90aGVyIGZpbHRlciBpcyBhbHJlYWR5IGZpbHRlcmluZyBmb3IgdGhlIGV4YWN0IHNhbWUgdGhpbmdcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJpdHNldCA9IHRoaXMubm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gP1xuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgaGVsbVN1YnN0cnVjdHVyZVNlYXJjaCh0aGlzLmJpb0ZpbHRlci5zdWJzdHJ1Y3R1cmUsIHRoaXMuY29sdW1uKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lYXJTdWJzdHJ1Y3R1cmVTZWFyY2godGhpcy5iaW9GaWx0ZXIuc3Vic3RydWN0dXJlLCB0aGlzLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgKF9iID0gdGhpcy5kYXRhRnJhbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yb3dzLnJlcXVlc3RGaWx0ZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmNsYXNzIEJpb0ZpbHRlckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuICAgIGdldCBmaWx0ZXJQYW5lbCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBIVE1MRWxlbWVudCgpO1xuICAgIH1cbiAgICBnZXQgc3Vic3RydWN0dXJlKCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHNldCBzdWJzdHJ1Y3R1cmUocykge1xuICAgIH1cbn1cbmNsYXNzIEZhc3RhRmlsdGVyIGV4dGVuZHMgQmlvRmlsdGVyQmFzZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3Vic3RydWN0dXJlSW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnJywgJycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VkLm5leHQoKTtcbiAgICAgICAgfSwgeyBwbGFjZWhvbGRlcjogJ1N1YnN0cnVjdHVyZScgfSk7XG4gICAgfVxuICAgIGdldCBmaWx0ZXJQYW5lbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic3RydWN0dXJlSW5wdXQucm9vdDtcbiAgICB9XG4gICAgZ2V0IHN1YnN0cnVjdHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic3RydWN0dXJlSW5wdXQudmFsdWU7XG4gICAgfVxuICAgIHNldCBzdWJzdHJ1Y3R1cmUocykge1xuICAgICAgICB0aGlzLnN1YnN0cnVjdHVyZUlucHV0LnZhbHVlID0gcztcbiAgICB9XG59XG5jbGFzcyBTZXBhcmF0b3JGaWx0ZXIgZXh0ZW5kcyBGYXN0YUZpbHRlciB7XG4gICAgY29uc3RydWN0b3Ioc2VwYXJhdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2VwYXJhdG9ySW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnJywgJycsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VkLm5leHQoKTtcbiAgICAgICAgfSwgeyBwbGFjZWhvbGRlcjogJ1NlcGFyYXRvcicgfSk7XG4gICAgICAgIHRoaXMuY29sU2VwYXJhdG9yID0gJyc7XG4gICAgICAgIHRoaXMuY29sU2VwYXJhdG9yID0gc2VwYXJhdG9yO1xuICAgICAgICB0aGlzLnNlcGFyYXRvcklucHV0LnZhbHVlID0gc2VwYXJhdG9yO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyUGFuZWwoKSB7XG4gICAgICAgIHJldHVybiB1aS5kaXZWKFtcbiAgICAgICAgICAgIHRoaXMuc3Vic3RydWN0dXJlSW5wdXQucm9vdCxcbiAgICAgICAgICAgIHRoaXMuc2VwYXJhdG9ySW5wdXQucm9vdFxuICAgICAgICBdKTtcbiAgICB9XG4gICAgZ2V0IHN1YnN0cnVjdHVyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VwYXJhdG9ySW5wdXQudmFsdWUgJiYgdGhpcy5zZXBhcmF0b3JJbnB1dC52YWx1ZSAhPT0gdGhpcy5jb2xTZXBhcmF0b3IgP1xuICAgICAgICAgICAgdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZS5yZXBsYWNlQWxsKHRoaXMuc2VwYXJhdG9ySW5wdXQudmFsdWUsIHRoaXMuY29sU2VwYXJhdG9yKSA6XG4gICAgICAgICAgICB0aGlzLnN1YnN0cnVjdHVyZUlucHV0LnZhbHVlO1xuICAgIH1cbiAgICBzZXQgc3Vic3RydWN0dXJlKHMpIHtcbiAgICAgICAgdGhpcy5zdWJzdHJ1Y3R1cmVJbnB1dC52YWx1ZSA9IHM7XG4gICAgfVxufVxuY2xhc3MgSGVsbUZpbHRlciBleHRlbmRzIEJpb0ZpbHRlckJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9maWx0ZXJQYW5lbCA9IHVpLmRpdignJywgeyBzdHlsZTogeyB3aWR0aDogJzEwMHB4JywgaGVpZ2h0OiAnMTAwcHgnIH0gfSk7XG4gICAgICAgIHRoaXMuaGVsbVN1YnN0cnVjdHVyZSA9ICcnO1xuICAgICAgICB0aGlzLmVkaXREaXYgPSB1aS5kaXZUZXh0KCdDbGljayB0byBlZGl0JywgeyBzdHlsZTogeyBjdXJzb3I6ICdwb2ludGVyJyB9IH0pO1xuICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMuX2ZpbHRlclBhbmVsLCB0cnVlKTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHRoaXMuaGVsbUVkaXRvciA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0hFTE06aGVsbVdlYkVkaXRvcicpO1xuICAgICAgICAgICAgdXBkYXRlRGl2SW5uZXJIVE1MKHRoaXMuX2ZpbHRlclBhbmVsLCB0aGlzLmVkaXREaXYpO1xuICAgICAgICAgICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMuX2ZpbHRlclBhbmVsLCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJQYW5lbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHVpLmRpYWxvZyh7IHNob3dIZWFkZXI6IGZhbHNlLCBzaG93Rm9vdGVyOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hZGQodGhpcy5oZWxtRWRpdG9yLmVkaXRvclZpZXcpXG4gICAgICAgICAgICAgICAgICAgIC5vbk9LKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVsbVN0cmluZyA9IHRoaXMuaGVsbUVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgLndlYkVkaXRvci5jYW52YXMuZ2V0SGVsbSh0cnVlKS5yZXBsYWNlKC88XFwvc3Bhbj4vZywgJycpLnJlcGxhY2UoLzxzcGFuIHN0eWxlPSdiYWNrZ3JvdW5kOiNiYmY7Jz4vZywgJycpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGVsbVN0cmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRGl2SW5uZXJIVE1MKHRoaXMuX2ZpbHRlclBhbmVsLCB0aGlzLmhlbG1FZGl0b3IuaG9zdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhlbG1FZGl0b3IuZWRpdG9yLnNldEhlbG0oaGVsbVN0cmluZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVEaXZJbm5lckhUTUwodGhpcy5fZmlsdGVyUGFuZWwsIHRoaXMuZWRpdERpdik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWxtU3Vic3RydWN0dXJlID0gaGVsbVN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCgpO1xuICAgICAgICAgICAgICAgIH0pLnNob3coeyBtb2RhbDogdHJ1ZSwgZnVsbFNjcmVlbjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IGZpbHRlclBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyUGFuZWw7XG4gICAgfVxuICAgIGdldCBzdWJzdHJ1Y3R1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhlbG1TdWJzdHJ1Y3R1cmU7XG4gICAgfVxuICAgIHNldCBzdWJzdHJ1Y3R1cmUocykge1xuICAgICAgICB0aGlzLmhlbG1FZGl0b3IuZWRpdG9yLnNldEhlbG0ocyk7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgZ2V0TW9sZmlsZXNGcm9tU2luZ2xlU2VxIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TWFjcm9Nb2wgfSBmcm9tICcuLi91dGlscy9hdG9taWMtd29ya3MnO1xuLyoqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge0RHLkNvbHVtbn0gY29sIG1hY3JvbW9sZWN1bGUgY2VsbC5cbiAqIEByZXR1cm4ge1Byb21pc2U8REcuV2lkZ2V0Pn0gV2lkZ2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFjcm9Nb2xDb2x1bW5Qcm9wZXJ0eVBhbmVsKGNvbCkge1xuICAgIGNvbnN0IE5PTkUgPSAnTm9uZSc7XG4gICAgY29uc3Qgc2NhZmZvbGRDb2xOYW1lID0gJ3Nob3J0JztcbiAgICAvLyBUT0RPOiByZXBsYWNlIHdpdGggYW4gZWZmaWNpZW50IHZlcnNpb24sIGJ5U2VtVHlwZXNFeGFjdCB3b24ndCBoZWxwOyBHUk9LLTgwOTRcbiAgICBjb25zdCBjb2x1bW5zTGlzdCA9IEFycmF5LmZyb20oY29sLmRhdGFGcmFtZS5jb2x1bW5zKS5maWx0ZXIoKGMpID0+IGMuc2VtVHlwZSA9PT0gREcuU0VNVFlQRS5NT0xFQ1VMRSkubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgIGNvbnN0IGNvbHVtbnNTZXQgPSBuZXcgU2V0KGNvbHVtbnNMaXN0KTtcbiAgICBjb2x1bW5zU2V0LmRlbGV0ZShjb2wubmFtZSk7XG4gICAgY29uc3QgbW9ub21lcldpZHRoID0gdWkuY2hvaWNlSW5wdXQoJ01vbm9tZXIgd2lkdGgnLCAoKGNvbCA9PT0gbnVsbCB8fCBjb2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbC50ZW1wWydtb25vbWVyLXdpZHRoJ10pICE9IG51bGwpID8gY29sLnRlbXBbJ21vbm9tZXItd2lkdGgnXSA6ICdzaG9ydCcsIFsnc2hvcnQnLCAnbG9uZyddLCAocykgPT4ge1xuICAgICAgICBjb2wudGVtcFsnbW9ub21lci13aWR0aCddID0gcztcbiAgICAgICAgY29sLnNldFRhZygnLmNhbGN1bGF0ZWRDZWxsUmVuZGVyJywgJzAnKTtcbiAgICAgICAgY29sLmRhdGFGcmFtZS5maXJlVmFsdWVzQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIG1vbm9tZXJXaWR0aC5zZXRUb29sdGlwKCdJbiBzaG9ydCBtb2RlLCBvbmx5IHRoZSBmaXJzdCBjaGFyYWN0ZXIgc2hvdWxkIGJlIHZpc2libGUsIGZvbGxvd2VkIGJ5IC4uIGlmIHRoZXJlIGFyZSBtb3JlIGNoYXJhY3RlcnMnKTtcbiAgICBjb25zdCBjb2xvckNvZGUgPSB1aS5ib29sSW5wdXQoJ0NvbG9yIGNvZGUnLCAoKGNvbCA9PT0gbnVsbCB8fCBjb2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbC50ZW1wWydjb2xvci1jb2RlJ10pICE9IG51bGwpID8gY29sLnRlbXBbJ2NvbG9yLWNvZGUnXSA6IHRydWUsICh2KSA9PiB7XG4gICAgICAgIGNvbC50ZW1wWydjb2xvci1jb2RlJ10gPSB2O1xuICAgICAgICBjb2wuZGF0YUZyYW1lLmZpcmVWYWx1ZXNDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgY29sb3JDb2RlLnNldFRvb2x0aXAoJ0NvbG9yIGNvZGUnKTtcbiAgICBjb25zdCByZWZlcmVuY2VTZXF1ZW5jZSA9IHVpLnN0cmluZ0lucHV0KCdSZWZlcmVuY2Ugc2VxdWVuY2UnLCAoKGNvbCA9PT0gbnVsbCB8fCBjb2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbC50ZW1wWydyZWZlcmVuY2Utc2VxdWVuY2UnXSkgIT0gbnVsbCkgPyBjb2wgPT09IG51bGwgfHwgY29sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb2wudGVtcFsncmVmZXJlbmNlLXNlcXVlbmNlJ10gOiAnJywgKHYpID0+IHtcbiAgICAgICAgY29sLnRlbXBbJ3JlZmVyZW5jZS1zZXF1ZW5jZSddID0gdjtcbiAgICAgICAgY29sLmRhdGFGcmFtZS5maXJlVmFsdWVzQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIHJlZmVyZW5jZVNlcXVlbmNlLnNldFRvb2x0aXAoJ1JlZmVyZW5jZSBzZXF1ZW5jZSBpcyBub3QgZW1wdHksIHRoZW4gdGhlIHNlcXVlbmNlIHdpbGwgYmUgcmVuZGVyICcgKyAnXFxuJyArXG4gICAgICAgICdhcyBhIGRpZmZlcmVuY2UgZnJvbSB0aGUgcmVmZXJlbmNlIHNlcXVlbmNlJyk7XG4gICAgY29uc3QgY29tcGFyZVdpdGhDdXJyZW50ID0gdWkuYm9vbElucHV0KCdDb21wYXJlIHdpdGggY3VycmVudCcsICgoY29sID09PSBudWxsIHx8IGNvbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29sLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10pICE9IG51bGwpID8gY29sLnRlbXBbJ2NvbXBhcmUtd2l0aC1jdXJyZW50J10gOiB0cnVlLCAodikgPT4ge1xuICAgICAgICBjb2wudGVtcFsnY29tcGFyZS13aXRoLWN1cnJlbnQnXSA9IHY7XG4gICAgICAgIGNvbC5kYXRhRnJhbWUuZmlyZVZhbHVlc0NoYW5nZWQoKTtcbiAgICB9KTtcbiAgICBjb21wYXJlV2l0aEN1cnJlbnQuc2V0VG9vbHRpcCgnV2hlbiBvbiwgYWxsIHNlcXVlbmNlcyBnZXQgcmVuZGVyZWQgaW4gdGhlIFwiZGlmZlwiIG1vZGUnKTtcbiAgICBjb25zdCByZEtpdElucHV0cyA9IHVpLmlucHV0cyhbXG4gICAgICAgIG1vbm9tZXJXaWR0aCxcbiAgICAgICAgY29sb3JDb2RlLFxuICAgICAgICByZWZlcmVuY2VTZXF1ZW5jZSxcbiAgICAgICAgY29tcGFyZVdpdGhDdXJyZW50XG4gICAgXSk7XG4gICAgcmV0dXJuIG5ldyBERy5XaWRnZXQocmRLaXRJbnB1dHMpO1xufVxuLyoqXG4gKiAzRCByZXByZXNlbnRhdGlvbiB3aWRnZXQgb2YgbWFjcm9tb2xlY3VsZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge0RHLkNlbGx9IG1hY3JvTW9sZWN1bGUgbWFjcm9tb2xlY3VsZSBjZWxsLlxuICogQHBhcmFtIHthbnlbXX0gbW9ub21lcnNMaWJPYmplY3RcbiAqIEByZXR1cm4ge1Byb21pc2U8REcuV2lkZ2V0Pn0gV2lkZ2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwcmVzZW50YXRpb25zV2lkZ2V0KG1hY3JvTW9sZWN1bGUsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdDcmVhdGluZyAzRCB2aWV3Jyk7XG4gICAgICAgIGxldCB3aWRnZXRIb3N0O1xuICAgICAgICBsZXQgbW9sQmxvY2szRCA9ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZ2V0TWFjcm9Nb2woYXRvbWljQ29kZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbEJsb2NrMkQgPSByZXN1bHRbMF07XG4gICAgICAgICAgICAgICAgbW9sQmxvY2szRCA9ICh5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdCaW86RW1iZWQnLCB7IG1vbEJsb2NrMkQgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSBtb2xCbG9jazNELnJlcGxhY2VBbGwoJ1xcXFxuJywgJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0Jsb2IgPSBuZXcgQmxvYihbbW9sQmxvY2szRF0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5nbEhvc3QgPSB1aS5kaXYoW10sIHsgY2xhc3NlczogJ2Q0LW5nbC12aWV3ZXInLCBpZDogJ25nbC0zZC1ob3N0JyB9KTtcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFnZSA9IG5ldyBOR0wuU3RhZ2UobmdsSG9zdCwgeyBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgc3RhZ2UubG9hZEZpbGUoc3RyaW5nQmxvYiwgeyBleHQ6ICdzZGYnIH0pLnRoZW4oZnVuY3Rpb24gKGNvbXApIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2Uuc2V0U2l6ZSgzMDAsIDMwMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYWRkUmVwcmVzZW50YXRpb24oJ2JhbGwrc3RpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgY29tcC5hdXRvVmlldygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNrZXRjaCA9IGdyb2suY2hlbS5zdmdNb2wobW9sQmxvY2szRCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWwgPSB1aS5kaXZIKFtza2V0Y2hdKTtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2KFtwYW5lbCwgbmdsSG9zdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2VGV4dCgnQ291bGRuXFwndCBnZXQgcGVwdGlkZSBzdHJ1Y3R1cmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcGkuY2xvc2UoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBERy5XaWRnZXQod2lkZ2V0SG9zdCk7XG4gICAgfSk7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICQ7IiwibW9kdWxlLmV4cG9ydHMgPSBERzsiLCJtb2R1bGUuZXhwb3J0cyA9IGdyb2s7IiwibW9kdWxlLmV4cG9ydHMgPSByeGpzOyIsIm1vZHVsZS5leHBvcnRzID0gdWk7IiwibW9kdWxlLmV4cG9ydHMgPSB3dTsiLCJjb25zdCByID0gU3ltYm9sKFwiQ29tbGluay5wcm94eVwiKSwgSCA9IFN5bWJvbChcIkNvbWxpbmsuZW5kcG9pbnRcIiksIEMgPSBTeW1ib2woXCJDb21saW5rLnJlbGVhc2VQcm94eVwiKSwgeSA9IFN5bWJvbChcIkNvbWxpbmsudGhyb3duXCIpLCBZID0gKGwpID0+IHR5cGVvZiBsID09IFwib2JqZWN0XCIgJiYgbCAhPT0gbnVsbCB8fCB0eXBlb2YgbCA9PSBcImZ1bmN0aW9uXCIsIGsgPSB7XG4gIGNhbkhhbmRsZTogKGwpID0+IFkobCkgJiYgbFtyXSxcbiAgc2VyaWFsaXplKGwpIHtcbiAgICBjb25zdCB7IHBvcnQxOiBjLCBwb3J0MjogYiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgcmV0dXJuIFIobCwgYyksIFtiLCBbYl1dO1xuICB9LFxuICBkZXNlcmlhbGl6ZShsKSB7XG4gICAgcmV0dXJuIGwuc3RhcnQoKSwgSyhsKTtcbiAgfVxufSwgSSA9IHtcbiAgY2FuSGFuZGxlOiAobCkgPT4gWShsKSAmJiB5IGluIGwsXG4gIHNlcmlhbGl6ZSh7IHZhbHVlOiBsIH0pIHtcbiAgICBsZXQgYztcbiAgICByZXR1cm4gbCBpbnN0YW5jZW9mIEVycm9yID8gYyA9IHtcbiAgICAgIGlzRXJyb3I6ICEwLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgbWVzc2FnZTogbC5tZXNzYWdlLFxuICAgICAgICBuYW1lOiBsLm5hbWUsXG4gICAgICAgIHN0YWNrOiBsLnN0YWNrXG4gICAgICB9XG4gICAgfSA6IGMgPSB7IGlzRXJyb3I6ICExLCB2YWx1ZTogbCB9LCBbYywgW11dO1xuICB9LFxuICBkZXNlcmlhbGl6ZShsKSB7XG4gICAgdGhyb3cgbC5pc0Vycm9yID8gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IobC52YWx1ZS5tZXNzYWdlKSwgbC52YWx1ZSkgOiBsLnZhbHVlO1xuICB9XG59LCBTID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoW1xuICBbXCJwcm94eVwiLCBrXSxcbiAgW1widGhyb3dcIiwgSV1cbl0pO1xuZnVuY3Rpb24gUihsLCBjID0gc2VsZikge1xuICBjLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGZ1bmN0aW9uIGIodCkge1xuICAgIGlmICghdCB8fCAhdC5kYXRhKVxuICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHsgaWQ6IGksIHR5cGU6IGUsIHBhdGg6IFogfSA9IE9iamVjdC5hc3NpZ24oeyBwYXRoOiBbXSB9LCB0LmRhdGEpLCBkID0gKHQuZGF0YS5hcmd1bWVudExpc3QgfHwgW10pLm1hcCh1KTtcbiAgICBsZXQgbTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbiA9IFouc2xpY2UoMCwgLTEpLnJlZHVjZSgocywgcCkgPT4gc1twXSwgbCksIGEgPSBaLnJlZHVjZSgocywgcCkgPT4gc1twXSwgbCk7XG4gICAgICBzd2l0Y2ggKGUpIHtcbiAgICAgICAgY2FzZSBcIkdFVFwiOlxuICAgICAgICAgIG0gPSBhO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiU0VUXCI6XG4gICAgICAgICAgbltaLnNsaWNlKC0xKVswXV0gPSB1KHQuZGF0YS52YWx1ZSksIG0gPSAhMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkFQUExZXCI6XG4gICAgICAgICAgbSA9IGEuYXBwbHkobiwgZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJDT05TVFJVQ1RcIjpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBzID0gbmV3IGEoLi4uZCk7XG4gICAgICAgICAgICBtID0geihzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJFTkRQT0lOVFwiOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcG9ydDE6IHMsIHBvcnQyOiBwIH0gPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICAgICAgICAgIFIobCwgcCksIG0gPSBVKHMsIFtzXSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiUkVMRUFTRVwiOlxuICAgICAgICAgIG0gPSB2b2lkIDA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKG4pIHtcbiAgICAgIG0gPSB7IHZhbHVlOiBuLCBbeV06IDAgfTtcbiAgICB9XG4gICAgUHJvbWlzZS5yZXNvbHZlKG0pLmNhdGNoKChuKSA9PiAoeyB2YWx1ZTogbiwgW3ldOiAwIH0pKS50aGVuKChuKSA9PiB7XG4gICAgICBjb25zdCBbYSwgc10gPSBvKG4pO1xuICAgICAgYy5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGEpLCB7IGlkOiBpIH0pLCBzKSwgZSA9PT0gXCJSRUxFQVNFXCIgJiYgKGMucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgYiksIFYoYykpO1xuICAgIH0pO1xuICB9KSwgYy5zdGFydCAmJiBjLnN0YXJ0KCk7XG59XG5mdW5jdGlvbiBOKGwpIHtcbiAgcmV0dXJuIGwuY29uc3RydWN0b3IubmFtZSA9PT0gXCJNZXNzYWdlUG9ydFwiO1xufVxuZnVuY3Rpb24gVihsKSB7XG4gIE4obCkgJiYgbC5jbG9zZSgpO1xufVxuZnVuY3Rpb24gSyhsLCBjKSB7XG4gIHJldHVybiBYKGwsIFtdLCBjKTtcbn1cbmZ1bmN0aW9uIGgobCkge1xuICBpZiAobClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGVcIik7XG59XG5mdW5jdGlvbiBYKGwsIGMgPSBbXSwgYiA9IGZ1bmN0aW9uKCkge1xufSkge1xuICBsZXQgdCA9ICExO1xuICBjb25zdCBpID0gbmV3IFByb3h5KGIsIHtcbiAgICBnZXQoZSwgWikge1xuICAgICAgaWYgKGgodCksIFogPT09IEMpXG4gICAgICAgIHJldHVybiAoKSA9PiBHKGwsIHtcbiAgICAgICAgICB0eXBlOiBcIlJFTEVBU0VcIixcbiAgICAgICAgICBwYXRoOiBjLm1hcCgoZCkgPT4gZC50b1N0cmluZygpKVxuICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICBWKGwpLCB0ID0gITA7XG4gICAgICAgIH0pO1xuICAgICAgaWYgKFogPT09IFwidGhlblwiKSB7XG4gICAgICAgIGlmIChjLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICByZXR1cm4geyB0aGVuOiAoKSA9PiBpIH07XG4gICAgICAgIGNvbnN0IGQgPSBHKGwsIHtcbiAgICAgICAgICB0eXBlOiBcIkdFVFwiLFxuICAgICAgICAgIHBhdGg6IGMubWFwKChtKSA9PiBtLnRvU3RyaW5nKCkpXG4gICAgICAgIH0pLnRoZW4odSk7XG4gICAgICAgIHJldHVybiBkLnRoZW4uYmluZChkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBYKGwsIFsuLi5jLCBaXSk7XG4gICAgfSxcbiAgICBzZXQoZSwgWiwgZCkge1xuICAgICAgaCh0KTtcbiAgICAgIGNvbnN0IFttLCBuXSA9IG8oZCk7XG4gICAgICByZXR1cm4gRyhsLCB7XG4gICAgICAgIHR5cGU6IFwiU0VUXCIsXG4gICAgICAgIHBhdGg6IFsuLi5jLCBaXS5tYXAoKGEpID0+IGEudG9TdHJpbmcoKSksXG4gICAgICAgIHZhbHVlOiBtXG4gICAgICB9LCBuKS50aGVuKHUpO1xuICAgIH0sXG4gICAgYXBwbHkoZSwgWiwgZCkge1xuICAgICAgaCh0KTtcbiAgICAgIGNvbnN0IG0gPSBjW2MubGVuZ3RoIC0gMV07XG4gICAgICBpZiAobSA9PT0gSClcbiAgICAgICAgcmV0dXJuIEcobCwge1xuICAgICAgICAgIHR5cGU6IFwiRU5EUE9JTlRcIlxuICAgICAgICB9KS50aGVuKHUpO1xuICAgICAgaWYgKG0gPT09IFwiYmluZFwiKVxuICAgICAgICByZXR1cm4gWChsLCBjLnNsaWNlKDAsIC0xKSk7XG4gICAgICBjb25zdCBbbiwgYV0gPSBXKGQpO1xuICAgICAgcmV0dXJuIEcobCwge1xuICAgICAgICB0eXBlOiBcIkFQUExZXCIsXG4gICAgICAgIHBhdGg6IGMubWFwKChzKSA9PiBzLnRvU3RyaW5nKCkpLFxuICAgICAgICBhcmd1bWVudExpc3Q6IG5cbiAgICAgIH0sIGEpLnRoZW4odSk7XG4gICAgfSxcbiAgICBjb25zdHJ1Y3QoZSwgWikge1xuICAgICAgaCh0KTtcbiAgICAgIGNvbnN0IFtkLCBtXSA9IFcoWik7XG4gICAgICByZXR1cm4gRyhsLCB7XG4gICAgICAgIHR5cGU6IFwiQ09OU1RSVUNUXCIsXG4gICAgICAgIHBhdGg6IGMubWFwKChuKSA9PiBuLnRvU3RyaW5nKCkpLFxuICAgICAgICBhcmd1bWVudExpc3Q6IGRcbiAgICAgIH0sIG0pLnRoZW4odSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGk7XG59XG5mdW5jdGlvbiBKKGwpIHtcbiAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGwpO1xufVxuZnVuY3Rpb24gVyhsKSB7XG4gIGNvbnN0IGMgPSBsLm1hcChvKTtcbiAgcmV0dXJuIFtjLm1hcCgoYikgPT4gYlswXSksIEooYy5tYXAoKGIpID0+IGJbMV0pKV07XG59XG5jb25zdCBnID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrTWFwKCk7XG5mdW5jdGlvbiBVKGwsIGMpIHtcbiAgcmV0dXJuIGcuc2V0KGwsIGMpLCBsO1xufVxuZnVuY3Rpb24geihsKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKGwsIHsgW3JdOiAhMCB9KTtcbn1cbmZ1bmN0aW9uIG8obCkge1xuICBmb3IgKGNvbnN0IFtjLCBiXSBvZiBTKVxuICAgIGlmIChiLmNhbkhhbmRsZShsKSkge1xuICAgICAgY29uc3QgW3QsIGldID0gYi5zZXJpYWxpemUobCk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJIQU5ETEVSXCIsXG4gICAgICAgICAgbmFtZTogYyxcbiAgICAgICAgICB2YWx1ZTogdFxuICAgICAgICB9LFxuICAgICAgICBpXG4gICAgICBdO1xuICAgIH1cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICB0eXBlOiBcIlJBV1wiLFxuICAgICAgdmFsdWU6IGxcbiAgICB9LFxuICAgIGcuZ2V0KGwpIHx8IFtdXG4gIF07XG59XG5mdW5jdGlvbiB1KGwpIHtcbiAgc3dpdGNoIChsLnR5cGUpIHtcbiAgICBjYXNlIFwiSEFORExFUlwiOlxuICAgICAgcmV0dXJuIFMuZ2V0KGwubmFtZSkuZGVzZXJpYWxpemUobC52YWx1ZSk7XG4gICAgY2FzZSBcIlJBV1wiOlxuICAgICAgcmV0dXJuIGwudmFsdWU7XG4gIH1cbn1cbmZ1bmN0aW9uIEcobCwgYywgYikge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHQpID0+IHtcbiAgICBjb25zdCBpID0gVCgpO1xuICAgIGwuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gZShaKSB7XG4gICAgICAhWi5kYXRhIHx8ICFaLmRhdGEuaWQgfHwgWi5kYXRhLmlkICE9PSBpIHx8IChsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGUpLCB0KFouZGF0YSkpO1xuICAgIH0pLCBsLnN0YXJ0ICYmIGwuc3RhcnQoKSwgbC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHsgaWQ6IGkgfSwgYyksIGIpO1xuICB9KTtcbn1cbmZ1bmN0aW9uIFQoKSB7XG4gIHJldHVybiBuZXcgQXJyYXkoNCkuZmlsbCgwKS5tYXAoKCkgPT4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSkuam9pbihcIi1cIik7XG59XG5jb25zdCB4ID0gXCJLR1oxYm1OMGFXOXVLQ2w3SW5WelpTQnpkSEpwWTNRaU8yTnZibk4wSUNROVUzbHRZbTlzS0NKRGIyMXNhVzVyTG5CeWIzaDVJaWtzUVQxVGVXMWliMndvSWtOdmJXeHBibXN1Wlc1a2NHOXBiblFpS1N4U1BWTjViV0p2YkNnaVEyOXRiR2x1YXk1eVpXeGxZWE5sVUhKdmVIa2lLU3g1UFZONWJXSnZiQ2dpUTI5dGJHbHVheTUwYUhKdmQyNGlLU3hmUFdVOVBuUjVjR1Z2WmlCbFBUMGliMkpxWldOMElpWW1aU0U5UFc1MWJHeDhmSFI1Y0dWdlppQmxQVDBpWm5WdVkzUnBiMjRpTEV3OWUyTmhia2hoYm1Sc1pUcGxQVDVmS0dVcEppWmxXeVJkTEhObGNtbGhiR2w2WlNobEtYdGpiMjV6ZEh0d2IzSjBNVHB5TEhCdmNuUXlPbWw5UFc1bGR5Qk5aWE56WVdkbFEyaGhibTVsYkR0eVpYUjFjbTRnZHlobExISXBMRnRwTEZ0cFhWMTlMR1JsYzJWeWFXRnNhWHBsS0dVcGUzSmxkSFZ5YmlCbExuTjBZWEowS0Nrc1F5aGxLWDE5TEU4OWUyTmhia2hoYm1Sc1pUcGxQVDVmS0dVcEppWjVJR2x1SUdVc2MyVnlhV0ZzYVhwbEtIdDJZV3gxWlRwbGZTbDdiR1YwSUhJN2NtVjBkWEp1SUdVZ2FXNXpkR0Z1WTJWdlppQkZjbkp2Y2o5eVBYdHBjMFZ5Y205eU9pRXdMSFpoYkhWbE9udHRaWE56WVdkbE9tVXViV1Z6YzJGblpTeHVZVzFsT21VdWJtRnRaU3h6ZEdGamF6cGxMbk4wWVdOcmZYMDZjajE3YVhORmNuSnZjam9oTVN4MllXeDFaVHBsZlN4YmNpeGJYVjE5TEdSbGMyVnlhV0ZzYVhwbEtHVXBlM1JvY205M0lHVXVhWE5GY25KdmNqOVBZbXBsWTNRdVlYTnphV2R1S0c1bGR5QkZjbkp2Y2lobExuWmhiSFZsTG0xbGMzTmhaMlVwTEdVdWRtRnNkV1VwT21VdWRtRnNkV1Y5ZlN4RlBXNWxkeUJOWVhBb1cxc2ljSEp2ZUhraUxFeGRMRnNpZEdoeWIzY2lMRTlkWFNrN1puVnVZM1JwYjI0Z2R5aGxMSEk5YzJWc1ppbDdjaTVoWkdSRmRtVnVkRXhwYzNSbGJtVnlLQ0p0WlhOellXZGxJaXhtZFc1amRHbHZiaUJwS0hNcGUybG1LQ0Z6Zkh3aGN5NWtZWFJoS1hKbGRIVnlianRqYjI1emRIdHBaRHB2TEhSNWNHVTZZU3h3WVhSb09tNTlQVTlpYW1WamRDNWhjM05wWjI0b2UzQmhkR2c2VzExOUxITXVaR0YwWVNrc2RUMG9jeTVrWVhSaExtRnlaM1Z0Wlc1MFRHbHpkSHg4VzEwcExtMWhjQ2h0S1R0c1pYUWdiRHQwY25sN1kyOXVjM1FnWXoxdUxuTnNhV05sS0RBc0xURXBMbkpsWkhWalpTZ29aQ3hvS1QwK1pGdG9YU3hsS1N4bVBXNHVjbVZrZFdObEtDaGtMR2dwUFQ1a1cyaGRMR1VwTzNOM2FYUmphQ2hoS1h0allYTmxJa2RGVkNJNmJEMW1PMkp5WldGck8yTmhjMlVpVTBWVUlqcGpXMjR1YzJ4cFkyVW9MVEVwV3pCZFhUMXRLSE11WkdGMFlTNTJZV3gxWlNrc2JEMGhNRHRpY21WaGF6dGpZWE5sSWtGUVVFeFpJanBzUFdZdVlYQndiSGtvWXl4MUtUdGljbVZoYXp0allYTmxJa05QVGxOVVVsVkRWQ0k2ZTJOdmJuTjBJR1E5Ym1WM0lHWW9MaTR1ZFNrN2JEMTZLR1FwZldKeVpXRnJPMk5oYzJVaVJVNUVVRTlKVGxRaU9udGpiMjV6ZEh0d2IzSjBNVHBrTEhCdmNuUXlPbWg5UFc1bGR5Qk5aWE56WVdkbFEyaGhibTVsYkR0M0tHVXNhQ2tzYkQxT0tHUXNXMlJkS1gxaWNtVmhhenRqWVhObElsSkZURVZCVTBVaU9tdzlkbTlwWkNBd08ySnlaV0ZyTzJSbFptRjFiSFE2Y21WMGRYSnVmWDFqWVhSamFDaGpLWHRzUFh0MllXeDFaVHBqTEZ0NVhUb3dmWDFRY205dGFYTmxMbkpsYzI5c2RtVW9iQ2t1WTJGMFkyZ29ZejArS0h0MllXeDFaVHBqTEZ0NVhUb3dmU2twTG5Sb1pXNG9ZejArZTJOdmJuTjBXMllzWkYwOVV5aGpLVHR5TG5CdmMzUk5aWE56WVdkbEtFOWlhbVZqZEM1aGMzTnBaMjRvVDJKcVpXTjBMbUZ6YzJsbmJpaDdmU3htS1N4N2FXUTZiMzBwTEdRcExHRTlQVDBpVWtWTVJVRlRSU0ltSmloeUxuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9JbTFsYzNOaFoyVWlMR2twTEVZb2Npa3BmU2w5S1N4eUxuTjBZWEowSmlaeUxuTjBZWEowS0NsOVpuVnVZM1JwYjI0Z1ZDaGxLWHR5WlhSMWNtNGdaUzVqYjI1emRISjFZM1J2Y2k1dVlXMWxQVDA5SWsxbGMzTmhaMlZRYjNKMEluMW1kVzVqZEdsdmJpQkdLR1VwZTFRb1pTa21KbVV1WTJ4dmMyVW9LWDFtZFc1amRHbHZiaUJES0dVc2NpbDdjbVYwZFhKdUlHSW9aU3hiWFN4eUtYMW1kVzVqZEdsdmJpQndLR1VwZTJsbUtHVXBkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDSlFjbTk0ZVNCb1lYTWdZbVZsYmlCeVpXeGxZWE5sWkNCaGJtUWdhWE1nYm05MElIVnpaV0ZpYkdVaUtYMW1kVzVqZEdsdmJpQmlLR1VzY2oxYlhTeHBQV1oxYm1OMGFXOXVLQ2w3ZlNsN2JHVjBJSE05SVRFN1kyOXVjM1FnYnoxdVpYY2dVSEp2ZUhrb2FTeDdaMlYwS0dFc2JpbDdhV1lvY0NoektTeHVQVDA5VWlseVpYUjFjbTRvS1QwK1p5aGxMSHQwZVhCbE9pSlNSVXhGUVZORklpeHdZWFJvT25JdWJXRndLSFU5UG5VdWRHOVRkSEpwYm1jb0tTbDlLUzUwYUdWdUtDZ3BQVDU3UmlobEtTeHpQU0V3ZlNrN2FXWW9iajA5UFNKMGFHVnVJaWw3YVdZb2NpNXNaVzVuZEdnOVBUMHdLWEpsZEhWeWJudDBhR1Z1T2lncFBUNXZmVHRqYjI1emRDQjFQV2NvWlN4N2RIbHdaVG9pUjBWVUlpeHdZWFJvT25JdWJXRndLR3c5UG13dWRHOVRkSEpwYm1jb0tTbDlLUzUwYUdWdUtHMHBPM0psZEhWeWJpQjFMblJvWlc0dVltbHVaQ2gxS1gxeVpYUjFjbTRnWWlobExGc3VMaTV5TEc1ZEtYMHNjMlYwS0dFc2JpeDFLWHR3S0hNcE8yTnZibk4wVzJ3c1kxMDlVeWgxS1R0eVpYUjFjbTRnWnlobExIdDBlWEJsT2lKVFJWUWlMSEJoZEdnNld5NHVMbklzYmwwdWJXRndLR1k5UG1ZdWRHOVRkSEpwYm1jb0tTa3NkbUZzZFdVNmJIMHNZeWt1ZEdobGJpaHRLWDBzWVhCd2JIa29ZU3h1TEhVcGUzQW9jeWs3WTI5dWMzUWdiRDF5VzNJdWJHVnVaM1JvTFRGZE8ybG1LR3c5UFQxQktYSmxkSFZ5YmlCbktHVXNlM1I1Y0dVNklrVk9SRkJQU1U1VUluMHBMblJvWlc0b2JTazdhV1lvYkQwOVBTSmlhVzVrSWlseVpYUjFjbTRnWWlobExISXVjMnhwWTJVb01Dd3RNU2twTzJOdmJuTjBXMk1zWmwwOVRTaDFLVHR5WlhSMWNtNGdaeWhsTEh0MGVYQmxPaUpCVUZCTVdTSXNjR0YwYURweUxtMWhjQ2hrUFQ1a0xuUnZVM1J5YVc1bktDa3BMR0Z5WjNWdFpXNTBUR2x6ZERwamZTeG1LUzUwYUdWdUtHMHBmU3hqYjI1emRISjFZM1FvWVN4dUtYdHdLSE1wTzJOdmJuTjBXM1VzYkYwOVRTaHVLVHR5WlhSMWNtNGdaeWhsTEh0MGVYQmxPaUpEVDA1VFZGSlZRMVFpTEhCaGRHZzZjaTV0WVhBb1l6MCtZeTUwYjFOMGNtbHVaeWdwS1N4aGNtZDFiV1Z1ZEV4cGMzUTZkWDBzYkNrdWRHaGxiaWh0S1gxOUtUdHlaWFIxY200Z2IzMW1kVzVqZEdsdmJpQkVLR1VwZTNKbGRIVnliaUJCY25KaGVTNXdjbTkwYjNSNWNHVXVZMjl1WTJGMExtRndjR3g1S0Z0ZExHVXBmV1oxYm1OMGFXOXVJRTBvWlNsN1kyOXVjM1FnY2oxbExtMWhjQ2hUS1R0eVpYUjFjbTViY2k1dFlYQW9hVDArYVZzd1hTa3NSQ2h5TG0xaGNDaHBQVDVwV3pGZEtTbGRmV052Ym5OMElGQTlibVYzSUZkbFlXdE5ZWEE3Wm5WdVkzUnBiMjRnVGlobExISXBlM0psZEhWeWJpQlFMbk5sZENobExISXBMR1Y5Wm5WdVkzUnBiMjRnZWlobEtYdHlaWFIxY200Z1QySnFaV04wTG1GemMybG5iaWhsTEh0YkpGMDZJVEI5S1gxbWRXNWpkR2x2YmlCVEtHVXBlMlp2Y2loamIyNXpkRnR5TEdsZGIyWWdSU2xwWmlocExtTmhia2hoYm1Sc1pTaGxLU2w3WTI5dWMzUmJjeXh2WFQxcExuTmxjbWxoYkdsNlpTaGxLVHR5WlhSMWNtNWJlM1I1Y0dVNklraEJUa1JNUlZJaUxHNWhiV1U2Y2l4MllXeDFaVHB6ZlN4dlhYMXlaWFIxY201YmUzUjVjR1U2SWxKQlZ5SXNkbUZzZFdVNlpYMHNVQzVuWlhRb1pTbDhmRnRkWFgxbWRXNWpkR2x2YmlCdEtHVXBlM04zYVhSamFDaGxMblI1Y0dVcGUyTmhjMlVpU0VGT1JFeEZVaUk2Y21WMGRYSnVJRVV1WjJWMEtHVXVibUZ0WlNrdVpHVnpaWEpwWVd4cGVtVW9aUzUyWVd4MVpTazdZMkZ6WlNKU1FWY2lPbkpsZEhWeWJpQmxMblpoYkhWbGZYMW1kVzVqZEdsdmJpQm5LR1VzY2l4cEtYdHlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9jejArZTJOdmJuTjBJRzg5VlNncE8yVXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ2liV1Z6YzJGblpTSXNablZ1WTNScGIyNGdZU2h1S1hzaGJpNWtZWFJoZkh3aGJpNWtZWFJoTG1sa2ZIeHVMbVJoZEdFdWFXUWhQVDF2Zkh3b1pTNXlaVzF2ZG1WRmRtVnVkRXhwYzNSbGJtVnlLQ0p0WlhOellXZGxJaXhoS1N4ektHNHVaR0YwWVNrcGZTa3NaUzV6ZEdGeWRDWW1aUzV6ZEdGeWRDZ3BMR1V1Y0c5emRFMWxjM05oWjJVb1QySnFaV04wTG1GemMybG5iaWg3YVdRNmIzMHNjaWtzYVNsOUtYMW1kVzVqZEdsdmJpQlZLQ2w3Y21WMGRYSnVJRzVsZHlCQmNuSmhlU2cwS1M1bWFXeHNLREFwTG0xaGNDZ29LVDArVFdGMGFDNW1iRzl2Y2loTllYUm9MbkpoYm1SdmJTZ3BLazUxYldKbGNpNU5RVmhmVTBGR1JWOUpUbFJGUjBWU0tTNTBiMU4wY21sdVp5Z3hOaWtwTG1wdmFXNG9JaTBpS1gxamIyNXpkQ0JYUFdGemVXNWpLQ2s5UGxkbFlrRnpjMlZ0WW14NUxuWmhiR2xrWVhSbEtHNWxkeUJWYVc1ME9FRnljbUY1S0Zzd0xEazNMREV4TlN3eE1Ea3NNU3d3TERBc01Dd3hMRFVzTVN3NU5pd3dMREVzTVRJekxETXNNaXd4TERBc01UQXNNVEFzTVN3NExEQXNOalVzTUN3eU5UTXNNVFVzTWpVekxEazRMREV4WFNrcExIZzlJbVZoWjJWeUlpeHJQU0pzWVhwNUlpeHFQWHR6YzNjNld5SnphVzFrSWwwc2JXbHVhVzFoY0RJNld5SnphVzFrSWwxOUxIUTllM1J2YjJ4ek9sdGRMR052Ym1acFp6cDdmU3htYVd4bGN6cGJYU3hpWVhObE9udDlMR1p6T250OUxHRnplVzVqSUdsdWFYUW9LWHRwWmloMExuUnZiMnh6TG14bGJtZDBhRDA5UFRBcGRHaHliM2NpUlhod1pXTjBhVzVuSUdGMElHeGxZWE4wSURFZ2RHOXZiQzRpTzJsbUtHNWxkeUJUWlhRb2RDNTBiMjlzY3k1dFlYQW9jajArWUNSN2NpNTBiMjlzZlM4a2UzSXVjSEp2WjNKaGJYeDhjaTUwYjI5c2ZXQXBLUzV6YVhwbElUMDlkQzUwYjI5c2N5NXNaVzVuZEdncGRHaHliM2NpUm05MWJtUWdaSFZ3YkdsallYUmxJSFJ2YjJ4ek95QmpZVzRnYjI1c2VTQm9ZWFpsSUdWaFkyZ2dkRzl2YkM5d2NtOW5jbUZ0SUdOdmJXSnBibUYwYVc5dUlHRjBJRzF2YzNRZ2IyNWpaUzRpTzJsbUtIUXVZbUZ6WlQxMExuUnZiMnh6TG1acGJtUW9jajArY2k1eVpXbHVhWFFoUFQwaE1Da3NJWFF1WW1GelpTbDBhSEp2ZHlKRGIzVnNaQ0J1YjNRZ1ptbHVaQ0JoSUhSdmIyd2dkMmwwYUNCZ2NtVnBibWwwT2lCbVlXeHpaV0FnZEc4Z2RYTmxJR0Z6SUhSb1pTQmlZWE5sSUcxdlpIVnNaUzRnVkc4Z1ptbDRJSFJvYVhNZ2FYTnpkV1VzSUdsdVkyeDFaR1VnZEdobElIUnZiMndnWUdKaGMyVXZNUzR3TGpCZ0lIZG9aVzRnYVc1cGRHbGhiR2w2YVc1bklFRnBiMnhwTGlJN2NtVjBkWEp1SUhRdVltRnpaUzVwYzBKaGMyVk5iMlIxYkdVOUlUQXNZWGRoYVhRZ2RHaHBjeTVmYzJWMGRYQW9kQzVpWVhObEtTeGhkMkZwZENCMGFHbHpMbDlwYm1sMFRXOWtkV3hsY3lncExIUXVYMnh2WnlnaVVtVmhaSGtpS1N3aE1IMHNZWE41Ym1NZ1gybHVhWFJOYjJSMWJHVnpLQ2w3WVhkaGFYUWdVSEp2YldselpTNWhiR3dvZEM1MGIyOXNjeTV0WVhBb2RHaHBjeTVmYzJWMGRYQXBLU3hoZDJGcGRDQjBhR2x6TGw5elpYUjFjRVpUS0NsOUxHMXZkVzUwS0dVOVcxMHBlMk52Ym5OMElISTlZQ1I3ZEM1amIyNW1hV2N1WkdseVUyaGhjbVZrZlNSN2RDNWpiMjVtYVdjdVpHbHlSR0YwWVgxZ0xHazlZQ1I3ZEM1amIyNW1hV2N1WkdseVUyaGhjbVZrZlNSN2RDNWpiMjVtYVdjdVpHbHlUVzkxYm5SbFpIMWdPMnhsZENCelBWdGRMRzg5VzEwc1lUMWJYVHNoUVhKeVlYa3VhWE5CY25KaGVTaGxLU1ltSVNobElHbHVjM1JoYm1ObGIyWWdSbWxzWlV4cGMzUXBKaVlvWlQxYlpWMHBMSFF1WDJ4dlp5aGdUVzkxYm5ScGJtY2dKSHRsTG14bGJtZDBhSDBnWm1sc1pYTmdLVHRtYjNJb2JHVjBJRzRnYjJZZ1pTbDdhV1lvYmlCcGJuTjBZVzVqWlc5bUlFWnBiR1Y4ZkNodVBUMXVkV3hzUDNadmFXUWdNRHB1TG1SaGRHRXBhVzV6ZEdGdVkyVnZaaUJDYkc5aUppWnVMbTVoYldWOGZIUjVjR1Z2WmlodVBUMXVkV3hzUDNadmFXUWdNRHB1TG1SaGRHRXBQVDBpYzNSeWFXNW5JaVltYmk1dVlXMWxLWFI1Y0dWdlppaHVQVDF1ZFd4c1AzWnZhV1FnTURwdUxtUmhkR0VwUFQwaWMzUnlhVzVuSWlZbUtHNHVaR0YwWVQxdVpYY2dRbXh2WWloYmJpNWtZWFJoWFN4N2RIbHdaVG9pZEdWNGRDOXdiR0ZwYmlKOUtTa3NjeTV3ZFhOb0tHNHBPMlZzYzJVZ2FXWW9iaTV1WVcxbEppWnVMblZ5YkNsdkxuQjFjMmdvYmlrN1pXeHpaU0JwWmloMGVYQmxiMllnYmowOUluTjBjbWx1WnlJbUptNHVjM1JoY25SelYybDBhQ2dpYUhSMGNDSXBLVzQ5ZTNWeWJEcHVMRzVoYldVNmJpNXpjR3hwZENnaUx5OGlLUzV3YjNBb0tTNXlaWEJzWVdObEtDOWNMeTluTENJdElpbDlMRzh1Y0hWemFDaHVLVHRsYkhObElIUm9jbTkzSjBOaGJtNXZkQ0J0YjNWdWRDQm1hV3hsS0hNcElITndaV05wWm1sbFpDNGdUWFZ6ZENCaVpTQmhJRVpwYkdVc0lFSnNiMklzSUdFZ1ZWSk1JSE4wY21sdVp5d2diM0lnZXlCdVlXMWxPaUFpWm1sc1pTNTBlSFFpTENCa1lYUmhPaUFpYzNSeWFXNW5JaUI5TGljN1lTNXdkWE5vS0c0dWJtRnRaU2w5ZEhKNWUzUXVabk11ZFc1dGIzVnVkQ2hwS1gxallYUmphSHQ5Wm05eUtHeGxkQ0J1SUc5bUlHOHBkQzVtY3k1amNtVmhkR1ZNWVhwNVJtbHNaU2h5TEc0dWJtRnRaU3h1TG5WeWJDd2hNQ3doTUNrN2NtVjBkWEp1SUhRdVptbHNaWE05ZEM1bWFXeGxjeTVqYjI1allYUW9jeWtzZEM1aVlYTmxMbTF2WkhWc1pTNUdVeTV0YjNWdWRDaDBMbUpoYzJVdWJXOWtkV3hsTGxkUFVrdEZVa1pUTEh0bWFXeGxjenAwTG1acGJHVnpMbVpwYkhSbGNpaHVQVDV1SUdsdWMzUmhibU5sYjJZZ1JtbHNaU2tzWW14dlluTTZkQzVtYVd4bGN5NW1hV3gwWlhJb2JqMCtLRzQ5UFc1MWJHdy9kbTlwWkNBd09tNHVaR0YwWVNscGJuTjBZVzVqWlc5bUlFSnNiMklwZlN4cEtTeHpMbTFoY0NodVBUNTdZMjl1YzNRZ2RUMWdKSHRwZlM4a2UyNHVibUZ0WlgxZ0xHdzlZQ1I3Y24wdkpIdHVMbTVoYldWOVlEdDBjbmw3ZEM1bWN5NTFibXhwYm1zb2JDbDlZMkYwWTJoN2ZYUXVYMnh2WnloZ1EzSmxZWFJwYm1jZ2MzbHRiR2x1YXpvZ0pIdHNmU0F0TFQ0Z0pIdDFmV0FwTEhRdVpuTXVjM2x0YkdsdWF5aDFMR3dwZlNrc1lTNXRZWEFvYmowK1lDUjdjbjB2Skh0dWZXQXBmU3hoYzNsdVl5QmxlR1ZqS0dVc2NqMXVkV3hzS1h0cFppaDBMbDlzYjJjb1lFVjRaV04xZEdsdVp5QWxZeVI3WlgwbFl5QmhjbWR6UFNSN2NuMWdMQ0pqYjJ4dmNqcGtZWEpyWW14MVpUc2dabTl1ZEMxM1pXbG5hSFE2WW05c1pDSXNJaUlwTENGbEtYUm9jbTkzSWtWNGNHVmpkR2x1WnlCaElHTnZiVzFoYm1RaU8yeGxkQ0JwUFdVN2NqMDliblZzYkNZbUtISTlaUzV6Y0d4cGRDZ2lJQ0lwTEdrOWNpNXphR2xtZENncEtUdGpiMjV6ZENCelBYUXVkRzl2YkhNdVptbHVaQ2hoUFQ1N2RtRnlJSFU3YkdWMElHNDlhVHR5WlhSMWNtNG9LSFU5WVQwOWJuVnNiRDkyYjJsa0lEQTZZUzVtWldGMGRYSmxjeWs5UFc1MWJHdy9kbTlwWkNBd09uVXVjMmx0WkNrOVBUMGhNQ1ltS0c0OVlDUjdibjB0YzJsdFpHQXBMR0V1Y0hKdlozSmhiVDA5Ym4wcE8ybG1LSE05UFc1MWJHd3BkR2h5YjNkZ1VISnZaM0poYlNBa2UybDlJRzV2ZENCbWIzVnVaQzVnTzNNdWMzUmtiM1YwUFNJaUxITXVjM1JrWlhKeVBTSWlMSE11Ykc5aFpHbHVaejA5YXlZbUtITXViRzloWkdsdVp6MTRMR0YzWVdsMElIUm9hWE11WDJsdWFYUk5iMlIxYkdWektDa3BPM1J5ZVh0ekxtMXZaSFZzWlM1allXeHNUV0ZwYmloeUtYMWpZWFJqYUNoaEtYdGpiMjV6YjJ4bExtVnljbTl5S0dFcGZYUnllWHR6TG0xdlpIVnNaUzVHVXk1amJHOXpaU2h6TG0xdlpIVnNaUzVHVXk1emRISmxZVzF6V3pGZEtTeHpMbTF2WkhWc1pTNUdVeTVqYkc5elpTaHpMbTF2WkhWc1pTNUdVeTV6ZEhKbFlXMXpXekpkS1gxallYUmphSHQ5Y3k1dGIyUjFiR1V1UmxNdWMzUnlaV0Z0YzFzeFhUMXpMbTF2WkhWc1pTNUdVeTV2Y0dWdUtDSXZaR1YyTDNOMFpHOTFkQ0lzSW5jaUtTeHpMbTF2WkhWc1pTNUdVeTV6ZEhKbFlXMXpXekpkUFhNdWJXOWtkV3hsTGtaVExtOXdaVzRvSWk5a1pYWXZjM1JrWlhKeUlpd2lkeUlwTzJ4bGRDQnZQWHR6ZEdSdmRYUTZjeTV6ZEdSdmRYUXNjM1JrWlhKeU9uTXVjM1JrWlhKeWZUdHBaaWgwTG1OdmJtWnBaeTV3Y21sdWRFbHVkR1Z5YkdWaGRtVmtKaVlvYnoxekxuTjBaRzkxZENrc2N5NXlaV2x1YVhROVBUMGhNQ2w3WTI5dWMzUWdZVDEwTG1KaGMyVXViVzlrZFd4bExrWlRMbU4zWkNncE8wOWlhbVZqZEM1aGMzTnBaMjRvY3l4ekxtTnZibVpwWnlrc2N5NXlaV0ZrZVQwaE1TeGhkMkZwZENCMGFHbHpMbWx1YVhRb0tTeHpMbWx6UW1GelpVMXZaSFZzWlNZbWRHaHBjeTV0YjNWdWRDZ3BMSFJvYVhNdVkyUW9ZU2w5Y21WMGRYSnVJRzk5TEdOaGRDaGxLWHR5WlhSMWNtNGdkQzVmWm1sc1pXOXdLQ0pqWVhRaUxHVXBmU3hzY3lobEtYdHlaWFIxY200Z2RDNWZabWxzWlc5d0tDSnNjeUlzWlNsOUxHUnZkMjVzYjJGa0tHVXBlM0psZEhWeWJpQjBMbDltYVd4bGIzQW9JbVJ2ZDI1c2IyRmtJaXhsS1gwc2NIZGtLQ2w3Y21WMGRYSnVJSFF1Wm5NdVkzZGtLQ2w5TEdOa0tHVXBlMlp2Y2loc1pYUWdjaUJ2WmlCMExuUnZiMnh6S1NGeUxtMXZaSFZzWlh4OGNpNXRiMlIxYkdVdVJsTXVZMmhrYVhJb1pTbDlMRzFyWkdseUtHVXBlM0psZEhWeWJpQjBMbVp6TG0xclpHbHlLR1VwTENFd2ZTeHlaV0ZrS0h0d1lYUm9PbVVzYkdWdVozUm9PbklzWm14aFp6cHBQU0p5SWl4dlptWnpaWFE2Y3owd0xIQnZjMmwwYVc5dU9tODlNSDBwZTJOdmJuTjBJR0U5ZEM1bWN5NXZjR1Z1S0dVc2FTa3NiajF1WlhjZ1ZXbHVkRGhCY25KaGVTaHlLVHR5WlhSMWNtNGdkQzVtY3k1eVpXRmtLR0VzYml4ekxISXNieWtzZEM1bWN5NWpiRzl6WlNoaEtTeHVmU3gzY21sMFpTaDdjR0YwYURwbExHSjFabVpsY2pweUxHWnNZV2M2YVQwaWR5c2lMRzltWm5ObGREcHpQVEFzY0c5emFYUnBiMjQ2Ynowd2ZTbDdZMjl1YzNRZ1lUMTBMbVp6TG05d1pXNG9aU3hwS1R0MExtWnpMbmR5YVhSbEtHRXNjaXh6TEhJdWJHVnVaM1JvTEc4cExIUXVabk11WTJ4dmMyVW9ZU2w5TEY5emRHUnBibFI0ZERvaUlpeGZjM1JrYVc1UWRISTZNQ3huWlhRZ2MzUmthVzRvS1h0eVpYUjFjbTRnZEM1ZmMzUmthVzVVZUhSOUxITmxkQ0J6ZEdScGJpaGxQU0lpS1h0MExsOXNiMmNvWUZObGRIUnBibWNnYzNSa2FXNGdkRzhnSldNa2UyVjlKV05nTENKamIyeHZjanBrWVhKcllteDFaU0lzSWlJcExIUXVYM04wWkdsdVZIaDBQV1VzZEM1ZmMzUmthVzVRZEhJOU1IMHNZWE41Ym1NZ1gzTmxkSFZ3S0dVcGUybG1LR1V1Y21WaFpIa3BjbVYwZFhKdU8ybG1LSFF1WDJ4dlp5aGdVMlYwZEdsdVp5QjFjQ0FrZTJVdWRHOXZiSDBnS0dKaGMyVWdQU0FrZTJVdWFYTkNZWE5sVFc5a2RXeGxQVDA5SVRCOUtTNHVMbUFwTEdVdVkyOXVabWxuUFU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzWlNrc1pTNTFjbXhRY21WbWFYaDhmQ2hsTG5WeWJGQnlaV1pwZUQxZ0pIdDBMbU52Ym1acFp5NTFjbXhEUkU1OUx5UjdaUzUwYjI5c2ZTOGtlMlV1ZG1WeWMybHZibjFnS1N4bExuQnliMmR5WVcxOGZDaGxMbkJ5YjJkeVlXMDlaUzUwYjI5c0tTeGxMbVpsWVhSMWNtVnpmSHdvWlM1bVpXRjBkWEpsY3oxN2ZTd29hbHRsTG5CeWIyZHlZVzFkZkh4YlhTa3VhVzVqYkhWa1pYTW9Jbk5wYldRaUtTWW1LR0YzWVdsMElGY29LVDhvWlM1d2NtOW5jbUZ0S3owaUxYTnBiV1FpTEdVdVptVmhkSFZ5WlhNdWMybHRaRDBoTUNrNmRDNWZiRzluS0dCWFpXSkJjM05sYldKc2VTQlRTVTFFSUdseklHNXZkQ0J6ZFhCd2IzSjBaV1FnYVc0Z2RHaHBjeUJpY205M2MyVnlPeUIzYVd4c0lHeHZZV1FnYm05dUxWTkpUVVFnZG1WeWMybHZiaUJ2WmlBa2UyVXVjSEp2WjNKaGJYMHVZQ2twS1N4bExtbHpRbUZ6WlUxdlpIVnNaU1ltS0dVdWJHOWhaR2x1WnoxNEtTeGxMbXh2WVdScGJtYzlQVDFyS1h0MExsOXNiMmNvWUZkcGJHd2diR0Y2ZVMxc2IyRmtJQ1I3WlM1MGIyOXNmVHNnYzJ0cGNIQnBibWNnYVc1cGRHbGhiR2w2WVhScGIyNHVZQ2s3Y21WMGRYSnVmWE5sYkdZdWFXMXdiM0owVTJOeWFYQjBjeWhnSkh0bExuVnliRkJ5WldacGVIMHZKSHRsTG5CeWIyZHlZVzE5TG1wellDa3NaUzV0YjJSMWJHVTlZWGRoYVhRZ1RXOWtkV3hsS0h0MGFHbHpVSEp2WjNKaGJUcGxMbkJ5YjJkeVlXMHNiRzlqWVhSbFJtbHNaVG9vYVN4ektUMCtZQ1I3WlM1MWNteFFjbVZtYVhoOUx5UjdhWDFnTEhOMFpHbHVPaWdwUFQ1MExsOXpkR1JwYmxCMGNqeDBMbk4wWkdsdUxteGxibWQwYUQ5MExuTjBaR2x1TG1Ob1lYSkRiMlJsUVhRb2RDNWZjM1JrYVc1UWRISXJLeWs2S0hRdWMzUmthVzQ5SWlJc2JuVnNiQ2tzY0hKcGJuUTZhVDArWlM1emRHUnZkWFFyUFdBa2UybDlDbUFzY0hKcGJuUkZjbkk2ZEM1amIyNW1hV2N1Y0hKcGJuUkpiblJsY214bFlYWmxaRDlwUFQ1bExuTjBaRzkxZENzOVlDUjdhWDBLWURwcFBUNWxMbk4wWkdWeWNpczlZQ1I3YVgwS1lIMHBPMk52Ym5OMElISTlaUzV0YjJSMWJHVXVSbE03WlM1cGMwSmhjMlZOYjJSMWJHVS9LSFF1WDJ4dlp5aGdVMlYwZEdsdVp5QjFjQ0FrZTJVdWRHOXZiSDBnZDJsMGFDQmlZWE5sSUcxdlpIVnNaU0JtYVd4bGMzbHpkR1Z0TGk0dVlDa3NjaTV0YTJScGNpaDBMbU52Ym1acFp5NWthWEpUYUdGeVpXUXNOVEV4S1N4eUxtMXJaR2x5S0dBa2UzUXVZMjl1Wm1sbkxtUnBjbE5vWVhKbFpIMHZKSHQwTG1OdmJtWnBaeTVrYVhKRVlYUmhmV0FzTlRFeEtTeHlMbTFyWkdseUtHQWtlM1F1WTI5dVptbG5MbVJwY2xOb1lYSmxaSDB2Skh0MExtTnZibVpwWnk1a2FYSk5iM1Z1ZEdWa2ZXQXNOVEV4S1N4eUxtTm9aR2x5S0dBa2UzUXVZMjl1Wm1sbkxtUnBjbE5vWVhKbFpIMHZKSHQwTG1OdmJtWnBaeTVrYVhKRVlYUmhmV0FwTEhRdVpuTTljaWs2S0hRdVgyeHZaeWhnVTJWMGRHbHVaeUIxY0NBa2UyVXVkRzl2YkgwZ2QybDBhQ0JtYVd4bGMzbHpkR1Z0TGk0dVlDa3NjaTV0YTJScGNpaDBMbU52Ym1acFp5NWthWEpUYUdGeVpXUXBMSEl1Ylc5MWJuUW9aUzV0YjJSMWJHVXVVRkpQV0ZsR1V5eDdjbTl2ZERwMExtTnZibVpwWnk1a2FYSlRhR0Z5WldRc1puTTZkQzVtYzMwc2RDNWpiMjVtYVdjdVpHbHlVMmhoY21Wa0tTeHlMbU5vWkdseUtIUXVabk11WTNka0tDa3BLU3hsTG5OMFpHOTFkRDBpSWl4bExuTjBaR1Z5Y2owaUlpeGxMbkpsWVdSNVBTRXdmU3hoYzNsdVl5QmZjMlYwZFhCR1V5Z3BlMk52Ym5OMElHVTlkQzVtY3p0bWIzSW9iR1YwSUhJZ2IyWWdkQzUwYjI5c2N5bDdhV1lvSVhJdWNtVmhaSGtwWTI5dWRHbHVkV1U3WTI5dWMzUWdhVDF5TG0xdlpIVnNaUzVHVXl4elBXQXZKSHR5TG5SdmIyeDlZQ3h2UFdBa2UzUXVZMjl1Wm1sbkxtUnBjbE5vWVhKbFpIMGtlM045WURzaGFTNWhibUZzZVhwbFVHRjBhQ2h6S1M1bGVHbHpkSE44ZkdVdVlXNWhiSGw2WlZCaGRHZ29ieWt1WlhocGMzUnpmSHdvZEM1ZmJHOW5LR0JOYjNWdWRHbHVaeUFrZTNOOUlHOXVkRzhnSkh0MExtSmhjMlV1ZEc5dmJIMGdabWxzWlhONWMzUmxiU0JoZENBa2UyOTlZQ2tzWlM1dGEyUnBjaWh2S1N4bExtMXZkVzUwS0hRdVltRnpaUzV0YjJSMWJHVXVVRkpQV0ZsR1V5eDdjbTl2ZERwekxHWnpPbWw5TEc4cEtYMTlMRjltYVd4bGIzQW9aU3h5S1h0MExsOXNiMmNvWUZKMWJtNXBibWNnSkh0bGZTQWtlM0o5WUNrN1kyOXVjM1FnYVQxMExtWnpMbUZ1WVd4NWVtVlFZWFJvS0hJcE8ybG1LQ0ZwTG1WNGFYTjBjeWx5WlhSMWNtNGdkQzVmYkc5bktHQkdhV3hsSUNSN2NuMGdibTkwSUdadmRXNWtMbUFwTENFeE8zTjNhWFJqYUNobEtYdGpZWE5sSW1OaGRDSTZjbVYwZFhKdUlIUXVabk11Y21WaFpFWnBiR1VvY2l4N1pXNWpiMlJwYm1jNkluVjBaamdpZlNrN1kyRnpaU0pzY3lJNmNtVjBkWEp1SUhRdVpuTXVhWE5HYVd4bEtHa3ViMkpxWldOMExtMXZaR1VwUDNRdVpuTXVjM1JoZENoeUtUcDBMbVp6TG5KbFlXUmthWElvY2lrN1kyRnpaU0prYjNkdWJHOWhaQ0k2WTI5dWMzUWdjejF1WlhjZ1FteHZZaWhiZEdocGN5NWpZWFFvY2lsZEtUdHlaWFIxY200Z1ZWSk1MbU55WldGMFpVOWlhbVZqZEZWU1RDaHpLWDF5WlhSMWNtNGhNWDBzWDJ4dlp5aGxLWHRwWmlnaGRDNWpiMjVtYVdjdVpHVmlkV2NwY21WMGRYSnVPMnhsZENCeVBWc3VMaTVoY21kMWJXVnVkSE5kTzNJdWMyaHBablFvS1N4amIyNXpiMnhsTG14dlp5aGdKV05iVjJWaVYyOXlhMlZ5WFNWaklDUjdaWDFnTENKbWIyNTBMWGRsYVdkb2REcGliMnhrSWl3aUlpd3VMaTV5S1gxOU8zY29kQ2w5S1NncE93bz1cIiwgTCA9IHR5cGVvZiB3aW5kb3cgPCBcInVcIiAmJiB3aW5kb3cuQmxvYiAmJiBuZXcgQmxvYihbYXRvYih4KV0sIHsgdHlwZTogXCJ0ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGYtOFwiIH0pO1xuZnVuY3Rpb24gdigpIHtcbiAgY29uc3QgbCA9IEwgJiYgKHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTCkuY3JlYXRlT2JqZWN0VVJMKEwpO1xuICB0cnkge1xuICAgIHJldHVybiBsID8gbmV3IFdvcmtlcihsKSA6IG5ldyBXb3JrZXIoXCJkYXRhOmFwcGxpY2F0aW9uL2phdmFzY3JpcHQ7YmFzZTY0LFwiICsgeCk7XG4gIH0gZmluYWxseSB7XG4gICAgbCAmJiAod2luZG93LlVSTCB8fCB3aW5kb3cud2Via2l0VVJMKS5yZXZva2VPYmplY3RVUkwobCk7XG4gIH1cbn1cbmNvbnN0IGYgPSBcImh0dHBzOi8vYmlvd2FzbS5jb20vY2RuL3YzXCIsIEYgPSBcImh0dHBzOi8vc3RnLmJpb3dhc20uY29tL2Nkbi92M1wiLCB3ID0ge1xuICB1cmxDRE46IGYsXG4gIHVybENETlN0ZzogRixcbiAgZGlyU2hhcmVkOiBcIi9zaGFyZWRcIixcbiAgZGlyTW91bnRlZDogXCIvbW50XCIsXG4gIGRpckRhdGE6IFwiL2RhdGFcIixcbiAgcHJpbnRJbnRlcmxlYXZlZDogITAsXG4gIGNhbGxiYWNrOiBudWxsLFxuICBkZWJ1ZzogITEsXG4gIGVudjogXCJwcmRcIlxufTtcbmNsYXNzIEIge1xuICBjb25zdHJ1Y3RvcihjLCBiID0ge30pIHtcbiAgICBpZiAoYyA9PSBudWxsKVxuICAgICAgdGhyb3cgXCJFeHBlY3RpbmcgYXJyYXkgb2YgdG9vbHMgYXMgaW5wdXQgdG8gQWlvbGkgY29uc3RydWN0b3IuXCI7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYykgfHwgKGMgPSBbY10pLCBiID0gT2JqZWN0LmFzc2lnbih7fSwgdywgYiksIGMgPSBjLm1hcCh0aGlzLl9wYXJzZVRvb2wpLCBiLmVudiA9PT0gXCJzdGdcIiAmJiAoYi51cmxDRE4gPSBiLnVybENETlN0ZyksIHRoaXMudG9vbHMgPSBjLCB0aGlzLmNvbmZpZyA9IGIsIHRoaXMuY29uZmlnLmNhbGxiYWNrICE9IG51bGwgJiYgKHRoaXMuY2FsbGJhY2sgPSB0aGlzLmNvbmZpZy5jYWxsYmFjayksIGRlbGV0ZSB0aGlzLmNvbmZpZy5jYWxsYmFjaywgdGhpcy5pbml0KCk7XG4gIH1cbiAgYXN5bmMgaW5pdCgpIHtcbiAgICBjb25zdCBjID0gbmV3IHYoKTtcbiAgICB0aGlzLmNhbGxiYWNrICYmIChjLm9ubWVzc2FnZSA9ICh0KSA9PiB7XG4gICAgICB0LmRhdGEudHlwZSA9PT0gXCJiaW93YXNtXCIgJiYgdGhpcy5jYWxsYmFjayh0LmRhdGEudmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGIgPSBLKGMpO1xuICAgIHJldHVybiBiLnRvb2xzID0gdGhpcy50b29scywgYi5jb25maWcgPSB0aGlzLmNvbmZpZywgYXdhaXQgYi5pbml0KCksIGI7XG4gIH1cbiAgX3BhcnNlVG9vbChjKSB7XG4gICAgaWYgKHR5cGVvZiBjICE9IFwic3RyaW5nXCIpXG4gICAgICByZXR1cm4gYztcbiAgICBjb25zdCBiID0gYy5zcGxpdChcIi9cIik7XG4gICAgaWYgKGIubGVuZ3RoICE9IDIgJiYgYi5sZW5ndGggIT0gMylcbiAgICAgIHRocm93IFwiRXhwZWN0aW5nICc8dG9vbD4vPHZlcnNpb24+JyBvciAnPHRvb2w+Lzxwcm9ncmFtPi88dmVyc2lvbj4nXCI7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvb2w6IGJbMF0sXG4gICAgICBwcm9ncmFtOiBiLmxlbmd0aCA9PSAzID8gYlsxXSA6IGJbMF0sXG4gICAgICB2ZXJzaW9uOiBiW2IubGVuZ3RoIC0gMV1cbiAgICB9O1xuICB9XG59XG5leHBvcnQge1xuICBCIGFzIGRlZmF1bHRcbn07XG4iLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjXG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkgc2NyaXB0VXJsID0gc2NyaXB0c1tzY3JpcHRzLmxlbmd0aCAtIDFdLnNyY1xuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcInBhY2thZ2VcIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsIiIsIi8vIHN0YXJ0dXBcbi8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuLy8gVGhpcyBlbnRyeSBtb2R1bGUgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBtb2R1bGVzIHNvIGl0IGNhbid0IGJlIGlubGluZWRcbnZhciBfX3dlYnBhY2tfZXhwb3J0c19fID0gX193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL3BhY2thZ2UudHNcIik7XG4iLCIiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=