israeli-bank-scrapers 5.1.0 → 5.1.2

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.
@@ -100,6 +100,7 @@ function getTransactionType(txn) {
100
100
  function convertTransactions(txns, processedDate) {
101
101
  const filteredTxns = txns.filter(txn => txn.dealSumType !== '1' && txn.voucherNumberRatz !== '000000000' && txn.voucherNumberRatzOutbound !== '000000000');
102
102
  return filteredTxns.map(txn => {
103
+ var _txn$currentPaymentCu;
103
104
  const isOutbound = txn.dealSumOutbound;
104
105
  const txnDateStr = isOutbound ? txn.fullPurchaseDateOutbound : txn.fullPurchaseDate;
105
106
  const txnMoment = (0, _moment.default)(txnDateStr, DATE_FORMAT);
@@ -110,8 +111,9 @@ function convertTransactions(txns, processedDate) {
110
111
  date: txnMoment.toISOString(),
111
112
  processedDate: currentProcessedDate,
112
113
  originalAmount: isOutbound ? -txn.dealSumOutbound : -txn.dealSum,
113
- originalCurrency: convertCurrency(txn.currencyId),
114
+ originalCurrency: convertCurrency((_txn$currentPaymentCu = txn.currentPaymentCurrency) !== null && _txn$currentPaymentCu !== void 0 ? _txn$currentPaymentCu : txn.currencyId),
114
115
  chargedAmount: isOutbound ? -txn.paymentSumOutbound : -txn.paymentSum,
116
+ chargedCurrency: convertCurrency(txn.currencyId),
115
117
  description: isOutbound ? txn.fullSupplierNameOutbound : txn.fullSupplierNameHeb,
116
118
  memo: txn.moreInfo || '',
117
119
  installments: getInstallmentsInfo(txn) || undefined,
@@ -325,4 +327,4 @@ class IsracardAmexBaseScraper extends _baseScraperWithBrowser.BaseScraperWithBro
325
327
  }
326
328
  }
327
329
  var _default = exports.default = IsracardAmexBaseScraper;
328
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYnVpbGRVcmwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbW9tZW50IiwiX2NvbnN0YW50cyIsIl9kZWZpbml0aW9ucyIsIl9kYXRlcyIsIl9kZWJ1ZyIsIl9mZXRjaCIsIl90cmFuc2FjdGlvbnMiLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIkNPVU5UUllfQ09ERSIsIklEX1RZUEUiLCJJTlNUQUxMTUVOVFNfS0VZV09SRCIsIkRBVEVfRk9STUFUIiwiZGVidWciLCJnZXREZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwiYnVpbGRVcmwiLCJxdWVyeVBhcmFtcyIsInJlcU5hbWUiLCJhY3Rpb25Db2RlIiwiZmV0Y2hBY2NvdW50cyIsInBhZ2UiLCJkYXRhVXJsIiwiZGF0YVJlc3VsdCIsImZldGNoR2V0V2l0aGluUGFnZSIsIl8iLCJnZXQiLCJEYXNoYm9hcmRNb250aEJlYW4iLCJjYXJkc0NoYXJnZXMiLCJtYXAiLCJjYXJkQ2hhcmdlIiwiaW5kZXgiLCJwYXJzZUludCIsImNhcmRJbmRleCIsImFjY291bnROdW1iZXIiLCJjYXJkTnVtYmVyIiwicHJvY2Vzc2VkRGF0ZSIsIm1vbWVudCIsInRvSVNPU3RyaW5nIiwiZ2V0VHJhbnNhY3Rpb25zVXJsIiwibW9udGgiLCJ5ZWFyIiwibW9udGhTdHIiLCJ0b1N0cmluZyIsInJlcXVpcmVkRGF0ZSIsImNvbnZlcnRDdXJyZW5jeSIsImN1cnJlbmN5U3RyIiwiU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQiLCJBTFRfU0hFS0VMX0NVUlJFTkNZIiwiU0hFS0VMX0NVUlJFTkNZIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsInR4biIsIm1vcmVJbmZvIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJtYXRjaGVzIiwibWF0Y2giLCJudW1iZXIiLCJ0b3RhbCIsImdldFRyYW5zYWN0aW9uVHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJJbnN0YWxsbWVudHMiLCJOb3JtYWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImZpbHRlcmVkVHhucyIsImRlYWxTdW1UeXBlIiwidm91Y2hlck51bWJlclJhdHoiLCJ2b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIiwiaXNPdXRib3VuZCIsImRlYWxTdW1PdXRib3VuZCIsInR4bkRhdGVTdHIiLCJmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQiLCJmdWxsUHVyY2hhc2VEYXRlIiwidHhuTW9tZW50IiwiY3VycmVudFByb2Nlc3NlZERhdGUiLCJmdWxsUGF5bWVudERhdGUiLCJyZXN1bHQiLCJ0eXBlIiwiaWRlbnRpZmllciIsImRhdGUiLCJvcmlnaW5hbEFtb3VudCIsImRlYWxTdW0iLCJvcmlnaW5hbEN1cnJlbmN5IiwiY3VycmVuY3lJZCIsImNoYXJnZWRBbW91bnQiLCJwYXltZW50U3VtT3V0Ym91bmQiLCJwYXltZW50U3VtIiwiZGVzY3JpcHRpb24iLCJmdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQiLCJmdWxsU3VwcGxpZXJOYW1lSGViIiwibWVtbyIsImluc3RhbGxtZW50cyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJzdGFydE1vbWVudCIsImFjY291bnRzIiwiQ2FyZHNUcmFuc2FjdGlvbnNMaXN0QmVhbiIsImFjY291bnRUeG5zIiwiYWNjb3VudCIsInR4bkdyb3VwcyIsIl9vcHRpb25zJG91dHB1dERhdGEkZSIsIl9vcHRpb25zJG91dHB1dERhdGEiLCJhbGxUeG5zIiwidHhuR3JvdXAiLCJ0eG5Jc3JhZWwiLCJ0eG5BYnJvYWQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZml4SW5zdGFsbG1lbnRzIiwib3V0cHV0RGF0YSIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImZpbHRlck9sZFRyYW5zYWN0aW9ucyIsImdldFRyYW5zYWN0aW9uRXh0cmFEZXRhaWxzIiwiYWNjb3VudEluZGV4IiwidHJhbnNhY3Rpb24iLCJtb2VkQ2hpdXYiLCJDYXJkSW5kZXgiLCJzaG92YXJSYXR6IiwiZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uIiwiXyRnZXQiLCJkYXRhIiwicmF3Q2F0ZWdvcnkiLCJjYXRlZ29yeSIsInRyaW0iLCJnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb25zIiwiYWNjb3VudFdpdGhJbmRleCIsInByb21pc2VzIiwiUHJvbWlzZSIsImFsbCIsImdldEV4dHJhU2NyYXBBY2NvdW50IiwiYWNjb3VudE1hcCIsImEiLCJyZWR1Y2UiLCJtIiwieCIsImdldEV4dHJhU2NyYXAiLCJhY2NvdW50c1dpdGhJbmRleCIsImFsbE1vbnRocyIsImFjdGlvbnMiLCJydW5TZXJpYWwiLCJmZXRjaEFsbFRyYW5zYWN0aW9ucyIsIl9vcHRpb25zJGZ1dHVyZU1vbnRocyIsImZ1dHVyZU1vbnRoc1RvU2NyYXBlIiwiZ2V0QWxsTW9udGhNb21lbnRzIiwicmVzdWx0cyIsImZpbmFsUmVzdWx0IiwiYWRkaXRpb25hbFRyYW5zYWN0aW9uSW5mb3JtYXRpb24iLCJjb21iaW5lZFR4bnMiLCJ0eG5zRm9yQWNjb3VudCIsInRvQmVBZGRlZFR4bnMiLCJzdWNjZXNzIiwiSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiY29uc3RydWN0b3IiLCJiYXNlVXJsIiwiY29tcGFueUNvZGUiLCJsb2dpbiIsImNyZWRlbnRpYWxzIiwic2V0UmVxdWVzdEludGVyY2VwdGlvbiIsIm9uIiwicmVxdWVzdCIsInVybCIsImFib3J0IiwiY29udGludWUiLCJuYXZpZ2F0ZVRvIiwiZW1pdFByb2dyZXNzIiwiU2NyYXBlclByb2dyZXNzVHlwZXMiLCJMb2dnaW5nSW4iLCJ2YWxpZGF0ZVVybCIsInZhbGlkYXRlUmVxdWVzdCIsImlkIiwiY2FyZFN1ZmZpeCIsImNhcmQ2RGlnaXRzIiwiY291bnRyeUNvZGUiLCJpZFR5cGUiLCJjaGVja0xldmVsIiwidmFsaWRhdGVSZXN1bHQiLCJmZXRjaFBvc3RXaXRoaW5QYWdlIiwiSGVhZGVyIiwiU3RhdHVzIiwiVmFsaWRhdGVJZERhdGFCZWFuIiwiRXJyb3IiLCJ2YWxpZGF0ZVJldHVybkNvZGUiLCJyZXR1cm5Db2RlIiwidXNlck5hbWUiLCJsb2dpblVybCIsIktvZE1pc2h0YW1lc2giLCJNaXNwYXJaaWh1eSIsIlNpc21hIiwicGFzc3dvcmQiLCJsb2dpblJlc3VsdCIsIkxvZ2luU3VjY2VzcyIsIkNoYW5nZVBhc3N3b3JkIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJMb2dpbkZhaWxlZCIsIkludmFsaWRQYXNzd29yZCIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibWF4IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2Jhc2UtaXNyYWNhcmQtYW1leC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYnVpbGRVcmwgZnJvbSAnYnVpbGQtdXJsJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50LCB7IHR5cGUgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IHR5cGUgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5pbXBvcnQge1xuICBBTFRfU0hFS0VMX0NVUlJFTkNZLFxuICBTSEVLRUxfQ1VSUkVOQ1ksXG4gIFNIRUtFTF9DVVJSRU5DWV9LRVlXT1JELFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgU2NyYXBlclByb2dyZXNzVHlwZXMgfSBmcm9tICcuLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZ2V0RGVidWcgfSBmcm9tICcuLi9oZWxwZXJzL2RlYnVnJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSwgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgZmlsdGVyT2xkVHJhbnNhY3Rpb25zLCBmaXhJbnN0YWxsbWVudHMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBydW5TZXJpYWwgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbiAgdHlwZSBUcmFuc2FjdGlvbiwgdHlwZSBUcmFuc2FjdGlvbkluc3RhbGxtZW50cyxcbiAgdHlwZSBUcmFuc2FjdGlvbnNBY2NvdW50LFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY3JhcGVyRXJyb3JUeXBlcyB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7IHR5cGUgU2NyYXBlck9wdGlvbnMsIHR5cGUgU2NyYXBlclNjcmFwaW5nUmVzdWx0IH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuXG5jb25zdCBDT1VOVFJZX0NPREUgPSAnMjEyJztcbmNvbnN0IElEX1RZUEUgPSAnMSc7XG5jb25zdCBJTlNUQUxMTUVOVFNfS0VZV09SRCA9ICfXqtep15zXldedJztcblxuY29uc3QgREFURV9GT1JNQVQgPSAnREQvTU0vWVlZWSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2Jhc2UtaXNyYWNhcmQtYW1leCcpO1xuXG5pbnRlcmZhY2UgRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucyBleHRlbmRzIFNjcmFwZXJPcHRpb25zIHtcbiAgc2VydmljZXNVcmw6IHN0cmluZztcbiAgY29tcGFueUNvZGU6IHN0cmluZztcbn1cblxudHlwZSBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXggPSBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0+O1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgZGVhbFN1bVR5cGU6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHpPdXRib3VuZDogc3RyaW5nO1xuICB2b3VjaGVyTnVtYmVyUmF0ejogc3RyaW5nO1xuICBtb3JlSW5mbz86IHN0cmluZztcbiAgZGVhbFN1bU91dGJvdW5kOiBib29sZWFuO1xuICBjdXJyZW5jeUlkOiBzdHJpbmc7XG4gIGRlYWxTdW06IG51bWJlcjtcbiAgZnVsbFBheW1lbnREYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQ/OiBzdHJpbmc7XG4gIGZ1bGxTdXBwbGllck5hbWVIZWI6IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kOiBzdHJpbmc7XG4gIHBheW1lbnRTdW06IG51bWJlcjtcbiAgcGF5bWVudFN1bU91dGJvdW5kOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudCB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgcHJvY2Vzc2VkRGF0ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZExvZ2luVmFsaWRhdGlvbiB7XG4gIEhlYWRlcjoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBWYWxpZGF0ZUlkRGF0YUJlYW4/OiB7XG4gICAgdXNlck5hbWU/OiBzdHJpbmc7XG4gICAgcmV0dXJuQ29kZTogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnRzV2l0aGluUGFnZVJlc3BvbnNlIHtcbiAgSGVhZGVyOiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIERhc2hib2FyZE1vbnRoQmVhbj86IHtcbiAgICBjYXJkc0NoYXJnZXM6IHtcbiAgICAgIGNhcmRJbmRleDogc3RyaW5nO1xuICAgICAgY2FyZE51bWJlcjogc3RyaW5nO1xuICAgICAgYmlsbGluZ0RhdGU6IHN0cmluZztcbiAgICB9W107XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnMge1xuICB0eG5Jc3JhZWw/OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgdHhuQWJyb2FkPzogU2NyYXBlZFRyYW5zYWN0aW9uW107XG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgSGVhZGVyPzoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBQaXJ0ZXlJc2thXzIwNEJlYW4/OiB7XG4gICAgc2VjdG9yOiBzdHJpbmc7XG4gIH07XG4gIFxuICBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuPzogUmVjb3JkPHN0cmluZywge1xuICAgIEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zOiBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnNbXTtcbiAgfT47XG59XG5cbmZ1bmN0aW9uIGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgYmlsbGluZ0RhdGUgPSBtb250aE1vbWVudC5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgcmV0dXJuIGJ1aWxkVXJsKHNlcnZpY2VzVXJsLCB7XG4gICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgIHJlcU5hbWU6ICdEYXNoYm9hcmRNb250aCcsXG4gICAgICBhY3Rpb25Db2RlOiAnMCcsXG4gICAgICBiaWxsaW5nRGF0ZSxcbiAgICAgIGZvcm1hdDogJ0pzb24nLFxuICAgIH0sXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnRzKHBhZ2U6IFBhZ2UsIHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50W10+IHtcbiAgY29uc3QgZGF0YVVybCA9IGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFSZXN1bHQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZEFjY291bnRzV2l0aGluUGFnZVJlc3BvbnNlPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuKSB7XG4gICAgY29uc3QgeyBjYXJkc0NoYXJnZXMgfSA9IGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuO1xuICAgIGlmIChjYXJkc0NoYXJnZXMpIHtcbiAgICAgIHJldHVybiBjYXJkc0NoYXJnZXMubWFwKChjYXJkQ2hhcmdlKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5kZXg6IHBhcnNlSW50KGNhcmRDaGFyZ2UuY2FyZEluZGV4LCAxMCksXG4gICAgICAgICAgYWNjb3VudE51bWJlcjogY2FyZENoYXJnZS5jYXJkTnVtYmVyLFxuICAgICAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudChjYXJkQ2hhcmdlLmJpbGxpbmdEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IG1vbnRoID0gbW9udGhNb21lbnQubW9udGgoKSArIDE7XG4gIGNvbnN0IHllYXIgPSBtb250aE1vbWVudC55ZWFyKCk7XG4gIGNvbnN0IG1vbnRoU3RyID0gbW9udGggPCAxMCA/IGAwJHttb250aH1gIDogbW9udGgudG9TdHJpbmcoKTtcbiAgcmV0dXJuIGJ1aWxkVXJsKHNlcnZpY2VzVXJsLCB7XG4gICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgIHJlcU5hbWU6ICdDYXJkc1RyYW5zYWN0aW9uc0xpc3QnLFxuICAgICAgbW9udGg6IG1vbnRoU3RyLFxuICAgICAgeWVhcjogYCR7eWVhcn1gLFxuICAgICAgcmVxdWlyZWREYXRlOiAnTicsXG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDdXJyZW5jeShjdXJyZW5jeVN0cjogc3RyaW5nKSB7XG4gIGlmIChjdXJyZW5jeVN0ciA9PT0gU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQgfHwgY3VycmVuY3lTdHIgPT09IEFMVF9TSEVLRUxfQ1VSUkVOQ1kpIHtcbiAgICByZXR1cm4gU0hFS0VMX0NVUlJFTkNZO1xuICB9XG4gIHJldHVybiBjdXJyZW5jeVN0cjtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0eG4ubW9yZUluZm8gfHwgIXR4bi5tb3JlSW5mby5pbmNsdWRlcyhJTlNUQUxMTUVOVFNfS0VZV09SRCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1hdGNoZXMgPSB0eG4ubW9yZUluZm8ubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblR5cGUodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgcmV0dXJuIGdldEluc3RhbGxtZW50c0luZm8odHhuKSA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHByb2Nlc3NlZERhdGU6IHN0cmluZyk6IFRyYW5zYWN0aW9uW10ge1xuICBjb25zdCBmaWx0ZXJlZFR4bnMgPSB0eG5zLmZpbHRlcigodHhuKSA9PiB0eG4uZGVhbFN1bVR5cGUgIT09ICcxJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eG4udm91Y2hlck51bWJlclJhdHogIT09ICcwMDAwMDAwMDAnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4bi52b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kICE9PSAnMDAwMDAwMDAwJyk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkVHhucy5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IGlzT3V0Ym91bmQgPSB0eG4uZGVhbFN1bU91dGJvdW5kO1xuICAgIGNvbnN0IHR4bkRhdGVTdHIgPSBpc091dGJvdW5kID8gdHhuLmZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZCA6IHR4bi5mdWxsUHVyY2hhc2VEYXRlO1xuICAgIGNvbnN0IHR4bk1vbWVudCA9IG1vbWVudCh0eG5EYXRlU3RyLCBEQVRFX0ZPUk1BVCk7XG5cbiAgICBjb25zdCBjdXJyZW50UHJvY2Vzc2VkRGF0ZSA9IHR4bi5mdWxsUGF5bWVudERhdGUgP1xuICAgICAgbW9tZW50KHR4bi5mdWxsUGF5bWVudERhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpIDpcbiAgICAgIHByb2Nlc3NlZERhdGU7XG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGdldFRyYW5zYWN0aW9uVHlwZSh0eG4pLFxuICAgICAgaWRlbnRpZmllcjogcGFyc2VJbnQoaXNPdXRib3VuZCA/IHR4bi52b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIDogdHhuLnZvdWNoZXJOdW1iZXJSYXR6LCAxMCksXG4gICAgICBkYXRlOiB0eG5Nb21lbnQudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGN1cnJlbnRQcm9jZXNzZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLmRlYWxTdW1PdXRib3VuZCA6IC10eG4uZGVhbFN1bSxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IGNvbnZlcnRDdXJyZW5jeSh0eG4uY3VycmVuY3lJZCksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBpc091dGJvdW5kID8gLXR4bi5wYXltZW50U3VtT3V0Ym91bmQgOiAtdHhuLnBheW1lbnRTdW0sXG4gICAgICBkZXNjcmlwdGlvbjogaXNPdXRib3VuZCA/IHR4bi5mdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQgOiB0eG4uZnVsbFN1cHBsaWVyTmFtZUhlYixcbiAgICAgIG1lbW86IHR4bi5tb3JlSW5mbyB8fCAnJyxcbiAgICAgIGluc3RhbGxtZW50czogZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG4pIHx8IHVuZGVmaW5lZCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBzdGFydE1vbWVudDogTW9tZW50LCBtb250aE1vbWVudDogTW9tZW50KTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXg+IHtcbiAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaEFjY291bnRzKHBhZ2UsIG9wdGlvbnMuc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVVybCA9IGdldFRyYW5zYWN0aW9uc1VybChvcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFSZXN1bHQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uRGF0YT4ocGFnZSwgZGF0YVVybCk7XG4gIGlmIChkYXRhUmVzdWx0ICYmIF8uZ2V0KGRhdGFSZXN1bHQsICdIZWFkZXIuU3RhdHVzJykgPT09ICcxJyAmJiBkYXRhUmVzdWx0LkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4pIHtcbiAgICBjb25zdCBhY2NvdW50VHhuczogU2NyYXBlZEFjY291bnRzV2l0aEluZGV4ID0ge307XG4gICAgYWNjb3VudHMuZm9yRWFjaCgoYWNjb3VudCkgPT4ge1xuICAgICAgY29uc3QgdHhuR3JvdXBzOiBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnNbXSB8IHVuZGVmaW5lZCA9IF8uZ2V0KGRhdGFSZXN1bHQsIGBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuLkluZGV4JHthY2NvdW50LmluZGV4fS5DdXJyZW50Q2FyZFRyYW5zYWN0aW9uc2ApO1xuICAgICAgaWYgKHR4bkdyb3Vwcykge1xuICAgICAgICBsZXQgYWxsVHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgICAgICB0eG5Hcm91cHMuZm9yRWFjaCgodHhuR3JvdXApID0+IHtcbiAgICAgICAgICBpZiAodHhuR3JvdXAudHhuSXNyYWVsKSB7XG4gICAgICAgICAgICBjb25zdCB0eG5zID0gY29udmVydFRyYW5zYWN0aW9ucyh0eG5Hcm91cC50eG5Jc3JhZWwsIGFjY291bnQucHJvY2Vzc2VkRGF0ZSk7XG4gICAgICAgICAgICBhbGxUeG5zLnB1c2goLi4udHhucyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eG5Hcm91cC50eG5BYnJvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4bnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bkdyb3VwLnR4bkFicm9hZCwgYWNjb3VudC5wcm9jZXNzZWREYXRlKTtcbiAgICAgICAgICAgIGFsbFR4bnMucHVzaCguLi50eG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzKSB7XG4gICAgICAgICAgYWxsVHhucyA9IGZpeEluc3RhbGxtZW50cyhhbGxUeG5zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSkge1xuICAgICAgICAgIGFsbFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoYWxsVHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYWNjb3VudFR4bnNbYWNjb3VudC5hY2NvdW50TnVtYmVyXSA9IHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50LmFjY291bnROdW1iZXIsXG4gICAgICAgICAgaW5kZXg6IGFjY291bnQuaW5kZXgsXG4gICAgICAgICAgdHhuczogYWxsVHhucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWNjb3VudFR4bnM7XG4gIH1cblxuICByZXR1cm4ge307XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRXh0cmFEZXRhaWxzKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoOiBNb21lbnQsIGFjY291bnRJbmRleDogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICBjb25zdCBtb2VkQ2hpdXYgPSBtb250aC5mb3JtYXQoJ01NWVlZWScpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ1BpcnRleUlza2FfMjA0JyxcbiAgICAgIENhcmRJbmRleDogYWNjb3VudEluZGV4LnRvU3RyaW5nKCksXG4gICAgICBzaG92YXJSYXR6OiB0cmFuc2FjdGlvbi5pZGVudGlmaWVyIS50b1N0cmluZygpLFxuICAgICAgbW9lZENoaXV2LFxuICAgIH0sXG4gIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIG1vbnRoOiBNb21lbnQsIGFjY291bnRJbmRleDogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRUcmFuc2FjdGlvbkV4dHJhRGV0YWlscyhvcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aCwgYWNjb3VudEluZGV4LCB0cmFuc2FjdGlvbik7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uRGF0YT4ocGFnZSwgZGF0YVVybCk7XG4gIFxuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gIH1cblxuICBjb25zdCByYXdDYXRlZ29yeSA9IF8uZ2V0KGRhdGEsICdQaXJ0ZXlJc2thXzIwNEJlYW4uc2VjdG9yJykgPz8gJyc7XG4gIHJldHVybiB7XG4gICAgLi4udHJhbnNhY3Rpb24sXG4gICAgY2F0ZWdvcnk6IHJhd0NhdGVnb3J5LnRyaW0oKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9ucyhhY2NvdW50V2l0aEluZGV4OiBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0sIHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIG1vbnRoOiBtb21lbnQuTW9tZW50KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHByb21pc2VzID0gYWNjb3VudFdpdGhJbmRleC50eG5zXG4gICAgLm1hcCgodCkgPT4gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2UsIG9wdGlvbnMsIG1vbnRoLCBhY2NvdW50V2l0aEluZGV4LmluZGV4LCB0KSk7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIGFjY291bnRNYXA6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCwgbW9udGg6IG1vbWVudC5Nb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBwcm9taXNlcyA9IE9iamVjdC5rZXlzKGFjY291bnRNYXApXG4gICAgLm1hcChhc3luYyAoYSkgPT4gKHtcbiAgICAgIC4uLmFjY291bnRNYXBbYV0sXG4gICAgICB0eG5zOiBhd2FpdCBnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb25zKGFjY291bnRNYXBbYV0sIHBhZ2UsIG9wdGlvbnMsIG1vbnRoKSxcbiAgICB9KSk7XG4gIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICByZXR1cm4gYWNjb3VudHMucmVkdWNlKChtLCB4KSA9PiAoeyAuLi5tLCBbeC5hY2NvdW50TnVtYmVyXTogeCB9KSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRFeHRyYVNjcmFwKGFjY291bnRzV2l0aEluZGV4OiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSwgcGFnZTogUGFnZSwgb3B0aW9uczogRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucywgYWxsTW9udGhzOiBtb21lbnQuTW9tZW50W10pOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtdPiB7XG4gIGNvbnN0IGFjdGlvbnMgPSBhY2NvdW50c1dpdGhJbmRleC5tYXAoKGEsIGkpID0+ICgpID0+IGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2UsIG9wdGlvbnMsIGEsIGFsbE1vbnRoc1tpXSkpO1xuICByZXR1cm4gcnVuU2VyaWFsKGFjdGlvbnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFsbFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBzdGFydE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gb3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuICBjb25zdCBhbGxNb250aHMgPSBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQsIGZ1dHVyZU1vbnRoc1RvU2NyYXBlKTtcbiAgY29uc3QgcmVzdWx0czogU2NyYXBlZEFjY291bnRzV2l0aEluZGV4W10gPSBhd2FpdCBQcm9taXNlLmFsbChhbGxNb250aHMubWFwKGFzeW5jIChtb250aE1vbWVudCkgPT4ge1xuICAgIHJldHVybiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zLCBzdGFydE1vbWVudCwgbW9udGhNb21lbnQpO1xuICB9KSk7XG5cbiAgY29uc3QgZmluYWxSZXN1bHQgPSBvcHRpb25zLmFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uID9cbiAgICBhd2FpdCBnZXRFeHRyYVNjcmFwKHJlc3VsdHMsIHBhZ2UsIG9wdGlvbnMsIGFsbE1vbnRocykgOiByZXN1bHRzO1xuXG4gIGNvbnN0IGNvbWJpbmVkVHhuczogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBmaW5hbFJlc3VsdC5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgaWQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgY2FyZDZEaWdpdHM6IHN0cmluZyB9O1xuY2xhc3MgSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcGFueUNvZGU6IHN0cmluZztcblxuICBwcml2YXRlIHNlcnZpY2VzVXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2NyYXBlck9wdGlvbnMsIGJhc2VVcmw6IHN0cmluZywgY29tcGFueUNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDtcbiAgICB0aGlzLmNvbXBhbnlDb2RlID0gY29tcGFueUNvZGU7XG4gICAgdGhpcy5zZXJ2aWNlc1VybCA9IGAke2Jhc2VVcmx9L3NlcnZpY2VzL1Byb3h5UmVxdWVzdEhhbmRsZXIuYXNoeGA7XG4gIH1cblxuICBhc3luYyBsb2dpbihjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjcmFwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGF3YWl0IHRoaXMucGFnZS5zZXRSZXF1ZXN0SW50ZXJjZXB0aW9uKHRydWUpO1xuICAgIHRoaXMucGFnZS5vbigncmVxdWVzdCcsIChyZXF1ZXN0KSA9PiB7XG4gICAgICBpZiAocmVxdWVzdC51cmwoKS5pbmNsdWRlcygnZGV0ZWN0b3ItZG9tLm1pbi5qcycpKSB7XG4gICAgICAgIGRlYnVnKCdmb3JjZSBhYm9ydCBmb3IgcmVxdWVzdCBkbyBkb3dubG9hZCBkZXRlY3Rvci1kb20ubWluLmpzIHJlc291cmNlJyk7XG4gICAgICAgIHZvaWQgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdm9pZCByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9nZ2luZ0luKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVXJsID0gYCR7dGhpcy5zZXJ2aWNlc1VybH0/cmVxTmFtZT1WYWxpZGF0ZUlkRGF0YWA7XG4gICAgY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0ge1xuICAgICAgaWQ6IGNyZWRlbnRpYWxzLmlkLFxuICAgICAgY2FyZFN1ZmZpeDogY3JlZGVudGlhbHMuY2FyZDZEaWdpdHMsXG4gICAgICBjb3VudHJ5Q29kZTogQ09VTlRSWV9DT0RFLFxuICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgY2hlY2tMZXZlbDogJzEnLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfTtcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZExvZ2luVmFsaWRhdGlvbj4odGhpcy5wYWdlLCB2YWxpZGF0ZVVybCwgdmFsaWRhdGVSZXF1ZXN0KTtcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0IHx8ICF2YWxpZGF0ZVJlc3VsdC5IZWFkZXIgfHwgdmFsaWRhdGVSZXN1bHQuSGVhZGVyLlN0YXR1cyAhPT0gJzEnIHx8ICF2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBlcnJvciBkdXJpbmcgbG9naW4nKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0ZVJldHVybkNvZGUgPSB2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW4ucmV0dXJuQ29kZTtcbiAgICBkZWJ1ZyhgdXNlciB2YWxpZGF0ZSB3aXRoIHJldHVybiBjb2RlICcke3ZhbGlkYXRlUmV0dXJuQ29kZX0nYCk7XG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzEnKSB7XG4gICAgICBjb25zdCB7IHVzZXJOYW1lIH0gPSB2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW47XG5cbiAgICAgIGNvbnN0IGxvZ2luVXJsID0gYCR7dGhpcy5zZXJ2aWNlc1VybH0/cmVxTmFtZT1wZXJmb3JtTG9nb25JYDtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgIEtvZE1pc2h0YW1lc2g6IHVzZXJOYW1lLFxuICAgICAgICBNaXNwYXJaaWh1eTogY3JlZGVudGlhbHMuaWQsXG4gICAgICAgIFNpc21hOiBjcmVkZW50aWFscy5wYXNzd29yZCxcbiAgICAgICAgY2FyZFN1ZmZpeDogY3JlZGVudGlhbHMuY2FyZDZEaWdpdHMsXG4gICAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICAgIGlkVHlwZTogSURfVFlQRSxcbiAgICAgIH07XG4gICAgICBjb25zdCBsb2dpblJlc3VsdCA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8eyBzdGF0dXM6IHN0cmluZyB9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5TdWNjZXNzKTtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMycpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuQ2hhbmdlUGFzc3dvcmQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuQ2hhbmdlUGFzc3dvcmQsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gICAgcmV0dXJuIGZldGNoQWxsVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgc2VydmljZXNVcmw6IHRoaXMuc2VydmljZXNVcmwsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9LCBzdGFydE1vbWVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFLQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxjQUFBLEdBQUFWLE9BQUE7QUFLQSxJQUFBVyx1QkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQTZDLFNBQUFELHVCQUFBYyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsUUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFQLENBQUEsT0FBQU0sTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQVIsQ0FBQSxHQUFBSSxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdB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
330
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYnVpbGRVcmwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sb2Rhc2giLCJfbW9tZW50IiwiX2NvbnN0YW50cyIsIl9kZWZpbml0aW9ucyIsIl9kYXRlcyIsIl9kZWJ1ZyIsIl9mZXRjaCIsIl90cmFuc2FjdGlvbnMiLCJfd2FpdGluZyIsIl90cmFuc2FjdGlvbnMyIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIkNPVU5UUllfQ09ERSIsIklEX1RZUEUiLCJJTlNUQUxMTUVOVFNfS0VZV09SRCIsIkRBVEVfRk9STUFUIiwiZGVidWciLCJnZXREZWJ1ZyIsImdldEFjY291bnRzVXJsIiwic2VydmljZXNVcmwiLCJtb250aE1vbWVudCIsImJpbGxpbmdEYXRlIiwiZm9ybWF0IiwiYnVpbGRVcmwiLCJxdWVyeVBhcmFtcyIsInJlcU5hbWUiLCJhY3Rpb25Db2RlIiwiZmV0Y2hBY2NvdW50cyIsInBhZ2UiLCJkYXRhVXJsIiwiZGF0YVJlc3VsdCIsImZldGNoR2V0V2l0aGluUGFnZSIsIl8iLCJnZXQiLCJEYXNoYm9hcmRNb250aEJlYW4iLCJjYXJkc0NoYXJnZXMiLCJtYXAiLCJjYXJkQ2hhcmdlIiwiaW5kZXgiLCJwYXJzZUludCIsImNhcmRJbmRleCIsImFjY291bnROdW1iZXIiLCJjYXJkTnVtYmVyIiwicHJvY2Vzc2VkRGF0ZSIsIm1vbWVudCIsInRvSVNPU3RyaW5nIiwiZ2V0VHJhbnNhY3Rpb25zVXJsIiwibW9udGgiLCJ5ZWFyIiwibW9udGhTdHIiLCJ0b1N0cmluZyIsInJlcXVpcmVkRGF0ZSIsImNvbnZlcnRDdXJyZW5jeSIsImN1cnJlbmN5U3RyIiwiU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQiLCJBTFRfU0hFS0VMX0NVUlJFTkNZIiwiU0hFS0VMX0NVUlJFTkNZIiwiZ2V0SW5zdGFsbG1lbnRzSW5mbyIsInR4biIsIm1vcmVJbmZvIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJtYXRjaGVzIiwibWF0Y2giLCJudW1iZXIiLCJ0b3RhbCIsImdldFRyYW5zYWN0aW9uVHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJJbnN0YWxsbWVudHMiLCJOb3JtYWwiLCJjb252ZXJ0VHJhbnNhY3Rpb25zIiwidHhucyIsImZpbHRlcmVkVHhucyIsImRlYWxTdW1UeXBlIiwidm91Y2hlck51bWJlclJhdHoiLCJ2b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIiwiX3R4biRjdXJyZW50UGF5bWVudEN1IiwiaXNPdXRib3VuZCIsImRlYWxTdW1PdXRib3VuZCIsInR4bkRhdGVTdHIiLCJmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQiLCJmdWxsUHVyY2hhc2VEYXRlIiwidHhuTW9tZW50IiwiY3VycmVudFByb2Nlc3NlZERhdGUiLCJmdWxsUGF5bWVudERhdGUiLCJyZXN1bHQiLCJ0eXBlIiwiaWRlbnRpZmllciIsImRhdGUiLCJvcmlnaW5hbEFtb3VudCIsImRlYWxTdW0iLCJvcmlnaW5hbEN1cnJlbmN5IiwiY3VycmVudFBheW1lbnRDdXJyZW5jeSIsImN1cnJlbmN5SWQiLCJjaGFyZ2VkQW1vdW50IiwicGF5bWVudFN1bU91dGJvdW5kIiwicGF5bWVudFN1bSIsImNoYXJnZWRDdXJyZW5jeSIsImRlc2NyaXB0aW9uIiwiZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kIiwiZnVsbFN1cHBsaWVyTmFtZUhlYiIsIm1lbW8iLCJpbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwic3RhcnRNb21lbnQiLCJhY2NvdW50cyIsIkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4iLCJhY2NvdW50VHhucyIsImFjY291bnQiLCJ0eG5Hcm91cHMiLCJfb3B0aW9ucyRvdXRwdXREYXRhJGUiLCJfb3B0aW9ucyRvdXRwdXREYXRhIiwiYWxsVHhucyIsInR4bkdyb3VwIiwidHhuSXNyYWVsIiwidHhuQWJyb2FkIiwiY29tYmluZUluc3RhbGxtZW50cyIsImZpeEluc3RhbGxtZW50cyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJmaWx0ZXJPbGRUcmFuc2FjdGlvbnMiLCJnZXRUcmFuc2FjdGlvbkV4dHJhRGV0YWlscyIsImFjY291bnRJbmRleCIsInRyYW5zYWN0aW9uIiwibW9lZENoaXV2IiwiQ2FyZEluZGV4Iiwic2hvdmFyUmF0eiIsImdldEV4dHJhU2NyYXBUcmFuc2FjdGlvbiIsIl8kZ2V0IiwiZGF0YSIsInJhd0NhdGVnb3J5IiwiY2F0ZWdvcnkiLCJ0cmltIiwiZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9ucyIsImFjY291bnRXaXRoSW5kZXgiLCJwcm9taXNlcyIsIlByb21pc2UiLCJhbGwiLCJnZXRFeHRyYVNjcmFwQWNjb3VudCIsImFjY291bnRNYXAiLCJhIiwicmVkdWNlIiwibSIsIngiLCJnZXRFeHRyYVNjcmFwIiwiYWNjb3VudHNXaXRoSW5kZXgiLCJhbGxNb250aHMiLCJhY3Rpb25zIiwicnVuU2VyaWFsIiwiZmV0Y2hBbGxUcmFuc2FjdGlvbnMiLCJfb3B0aW9ucyRmdXR1cmVNb250aHMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImdldEFsbE1vbnRoTW9tZW50cyIsInJlc3VsdHMiLCJmaW5hbFJlc3VsdCIsImFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uIiwiY29tYmluZWRUeG5zIiwidHhuc0ZvckFjY291bnQiLCJ0b0JlQWRkZWRUeG5zIiwic3VjY2VzcyIsIklzcmFjYXJkQW1leEJhc2VTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImNvbnN0cnVjdG9yIiwiYmFzZVVybCIsImNvbXBhbnlDb2RlIiwibG9naW4iLCJjcmVkZW50aWFscyIsInNldFJlcXVlc3RJbnRlcmNlcHRpb24iLCJvbiIsInJlcXVlc3QiLCJ1cmwiLCJhYm9ydCIsImNvbnRpbnVlIiwibmF2aWdhdGVUbyIsImVtaXRQcm9ncmVzcyIsIlNjcmFwZXJQcm9ncmVzc1R5cGVzIiwiTG9nZ2luZ0luIiwidmFsaWRhdGVVcmwiLCJ2YWxpZGF0ZVJlcXVlc3QiLCJpZCIsImNhcmRTdWZmaXgiLCJjYXJkNkRpZ2l0cyIsImNvdW50cnlDb2RlIiwiaWRUeXBlIiwiY2hlY2tMZXZlbCIsInZhbGlkYXRlUmVzdWx0IiwiZmV0Y2hQb3N0V2l0aGluUGFnZSIsIkhlYWRlciIsIlN0YXR1cyIsIlZhbGlkYXRlSWREYXRhQmVhbiIsIkVycm9yIiwidmFsaWRhdGVSZXR1cm5Db2RlIiwicmV0dXJuQ29kZSIsInVzZXJOYW1lIiwibG9naW5VcmwiLCJLb2RNaXNodGFtZXNoIiwiTWlzcGFyWmlodXkiLCJTaXNtYSIsInBhc3N3b3JkIiwibG9naW5SZXN1bHQiLCJMb2dpblN1Y2Nlc3MiLCJDaGFuZ2VQYXNzd29yZCIsImVycm9yVHlwZSIsIlNjcmFwZXJFcnJvclR5cGVzIiwiTG9naW5GYWlsZWQiLCJJbnZhbGlkUGFzc3dvcmQiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1heCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9iYXNlLWlzcmFjYXJkLWFtZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkVXJsIGZyb20gJ2J1aWxkLXVybCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG1vbWVudCwgeyB0eXBlIE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0eXBlIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHtcbiAgQUxUX1NIRUtFTF9DVVJSRU5DWSxcbiAgU0hFS0VMX0NVUlJFTkNZLFxuICBTSEVLRUxfQ1VSUkVOQ1lfS0VZV09SRCxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNjcmFwZXJQcm9ncmVzc1R5cGVzIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IGdldEFsbE1vbnRoTW9tZW50cyBmcm9tICcuLi9oZWxwZXJzL2RhdGVzJztcbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQgeyBmZXRjaEdldFdpdGhpblBhZ2UsIGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucywgZml4SW5zdGFsbG1lbnRzIH0gZnJvbSAnLi4vaGVscGVycy90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgcnVuU2VyaWFsIH0gZnJvbSAnLi4vaGVscGVycy93YWl0aW5nJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG4gIHR5cGUgVHJhbnNhY3Rpb24sIHR5cGUgVHJhbnNhY3Rpb25JbnN0YWxsbWVudHMsXG4gIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyB0eXBlIFNjcmFwZXJPcHRpb25zLCB0eXBlIFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuY29uc3QgQ09VTlRSWV9DT0RFID0gJzIxMic7XG5jb25zdCBJRF9UWVBFID0gJzEnO1xuY29uc3QgSU5TVEFMTE1FTlRTX0tFWVdPUkQgPSAn16rXqdec15XXnSc7XG5cbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuXG5jb25zdCBkZWJ1ZyA9IGdldERlYnVnKCdiYXNlLWlzcmFjYXJkLWFtZXgnKTtcblxuaW50ZXJmYWNlIEV4dGVuZGVkU2NyYXBlck9wdGlvbnMgZXh0ZW5kcyBTY3JhcGVyT3B0aW9ucyB7XG4gIHNlcnZpY2VzVXJsOiBzdHJpbmc7XG4gIGNvbXBhbnlDb2RlOiBzdHJpbmc7XG59XG5cbnR5cGUgU2NyYXBlZEFjY291bnRzV2l0aEluZGV4ID0gUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25zQWNjb3VudCAmIHsgaW5kZXg6IG51bWJlciB9PjtcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGRlYWxTdW1UeXBlOiBzdHJpbmc7XG4gIHZvdWNoZXJOdW1iZXJSYXR6T3V0Ym91bmQ6IHN0cmluZztcbiAgdm91Y2hlck51bWJlclJhdHo6IHN0cmluZztcbiAgbW9yZUluZm8/OiBzdHJpbmc7XG4gIGRlYWxTdW1PdXRib3VuZDogYm9vbGVhbjtcbiAgY3VycmVuY3lJZDogc3RyaW5nO1xuICBjdXJyZW50UGF5bWVudEN1cnJlbmN5OiBzdHJpbmc7XG4gIGRlYWxTdW06IG51bWJlcjtcbiAgZnVsbFBheW1lbnREYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlPzogc3RyaW5nO1xuICBmdWxsUHVyY2hhc2VEYXRlT3V0Ym91bmQ/OiBzdHJpbmc7XG4gIGZ1bGxTdXBwbGllck5hbWVIZWI6IHN0cmluZztcbiAgZnVsbFN1cHBsaWVyTmFtZU91dGJvdW5kOiBzdHJpbmc7XG4gIHBheW1lbnRTdW06IG51bWJlcjtcbiAgcGF5bWVudFN1bU91dGJvdW5kOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQWNjb3VudCB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGFjY291bnROdW1iZXI6IHN0cmluZztcbiAgcHJvY2Vzc2VkRGF0ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZExvZ2luVmFsaWRhdGlvbiB7XG4gIEhlYWRlcjoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBWYWxpZGF0ZUlkRGF0YUJlYW4/OiB7XG4gICAgdXNlck5hbWU/OiBzdHJpbmc7XG4gICAgcmV0dXJuQ29kZTogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZEFjY291bnRzV2l0aGluUGFnZVJlc3BvbnNlIHtcbiAgSGVhZGVyOiB7XG4gICAgU3RhdHVzOiBzdHJpbmc7XG4gIH07XG4gIERhc2hib2FyZE1vbnRoQmVhbj86IHtcbiAgICBjYXJkc0NoYXJnZXM6IHtcbiAgICAgIGNhcmRJbmRleDogc3RyaW5nO1xuICAgICAgY2FyZE51bWJlcjogc3RyaW5nO1xuICAgICAgYmlsbGluZ0RhdGU6IHN0cmluZztcbiAgICB9W107XG4gIH07XG59XG5cbmludGVyZmFjZSBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnMge1xuICB0eG5Jc3JhZWw/OiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgdHhuQWJyb2FkPzogU2NyYXBlZFRyYW5zYWN0aW9uW107XG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgSGVhZGVyPzoge1xuICAgIFN0YXR1czogc3RyaW5nO1xuICB9O1xuICBQaXJ0ZXlJc2thXzIwNEJlYW4/OiB7XG4gICAgc2VjdG9yOiBzdHJpbmc7XG4gIH07XG4gIFxuICBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuPzogUmVjb3JkPHN0cmluZywge1xuICAgIEN1cnJlbnRDYXJkVHJhbnNhY3Rpb25zOiBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnNbXTtcbiAgfT47XG59XG5cbmZ1bmN0aW9uIGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgYmlsbGluZ0RhdGUgPSBtb250aE1vbWVudC5mb3JtYXQoJ1lZWVktTU0tREQnKTtcbiAgcmV0dXJuIGJ1aWxkVXJsKHNlcnZpY2VzVXJsLCB7XG4gICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgIHJlcU5hbWU6ICdEYXNoYm9hcmRNb250aCcsXG4gICAgICBhY3Rpb25Db2RlOiAnMCcsXG4gICAgICBiaWxsaW5nRGF0ZSxcbiAgICAgIGZvcm1hdDogJ0pzb24nLFxuICAgIH0sXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFjY291bnRzKHBhZ2U6IFBhZ2UsIHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoTW9tZW50OiBNb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50W10+IHtcbiAgY29uc3QgZGF0YVVybCA9IGdldEFjY291bnRzVXJsKHNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFSZXN1bHQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZEFjY291bnRzV2l0aGluUGFnZVJlc3BvbnNlPihwYWdlLCBkYXRhVXJsKTtcbiAgaWYgKGRhdGFSZXN1bHQgJiYgXy5nZXQoZGF0YVJlc3VsdCwgJ0hlYWRlci5TdGF0dXMnKSA9PT0gJzEnICYmIGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuKSB7XG4gICAgY29uc3QgeyBjYXJkc0NoYXJnZXMgfSA9IGRhdGFSZXN1bHQuRGFzaGJvYXJkTW9udGhCZWFuO1xuICAgIGlmIChjYXJkc0NoYXJnZXMpIHtcbiAgICAgIHJldHVybiBjYXJkc0NoYXJnZXMubWFwKChjYXJkQ2hhcmdlKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5kZXg6IHBhcnNlSW50KGNhcmRDaGFyZ2UuY2FyZEluZGV4LCAxMCksXG4gICAgICAgICAgYWNjb3VudE51bWJlcjogY2FyZENoYXJnZS5jYXJkTnVtYmVyLFxuICAgICAgICAgIHByb2Nlc3NlZERhdGU6IG1vbWVudChjYXJkQ2hhcmdlLmJpbGxpbmdEYXRlLCBEQVRFX0ZPUk1BVCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc1VybChzZXJ2aWNlc1VybDogc3RyaW5nLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IG1vbnRoID0gbW9udGhNb21lbnQubW9udGgoKSArIDE7XG4gIGNvbnN0IHllYXIgPSBtb250aE1vbWVudC55ZWFyKCk7XG4gIGNvbnN0IG1vbnRoU3RyID0gbW9udGggPCAxMCA/IGAwJHttb250aH1gIDogbW9udGgudG9TdHJpbmcoKTtcbiAgcmV0dXJuIGJ1aWxkVXJsKHNlcnZpY2VzVXJsLCB7XG4gICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgIHJlcU5hbWU6ICdDYXJkc1RyYW5zYWN0aW9uc0xpc3QnLFxuICAgICAgbW9udGg6IG1vbnRoU3RyLFxuICAgICAgeWVhcjogYCR7eWVhcn1gLFxuICAgICAgcmVxdWlyZWREYXRlOiAnTicsXG4gICAgfSxcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDdXJyZW5jeShjdXJyZW5jeVN0cjogc3RyaW5nKSB7XG4gIGlmIChjdXJyZW5jeVN0ciA9PT0gU0hFS0VMX0NVUlJFTkNZX0tFWVdPUkQgfHwgY3VycmVuY3lTdHIgPT09IEFMVF9TSEVLRUxfQ1VSUkVOQ1kpIHtcbiAgICByZXR1cm4gU0hFS0VMX0NVUlJFTkNZO1xuICB9XG4gIHJldHVybiBjdXJyZW5jeVN0cjtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG46IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uSW5zdGFsbG1lbnRzIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF0eG4ubW9yZUluZm8gfHwgIXR4bi5tb3JlSW5mby5pbmNsdWRlcyhJTlNUQUxMTUVOVFNfS0VZV09SRCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1hdGNoZXMgPSB0eG4ubW9yZUluZm8ubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblR5cGUodHhuOiBTY3JhcGVkVHJhbnNhY3Rpb24pIHtcbiAgcmV0dXJuIGdldEluc3RhbGxtZW50c0luZm8odHhuKSA/IFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzIDogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10sIHByb2Nlc3NlZERhdGU6IHN0cmluZyk6IFRyYW5zYWN0aW9uW10ge1xuICBjb25zdCBmaWx0ZXJlZFR4bnMgPSB0eG5zLmZpbHRlcigodHhuKSA9PiB0eG4uZGVhbFN1bVR5cGUgIT09ICcxJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eG4udm91Y2hlck51bWJlclJhdHogIT09ICcwMDAwMDAwMDAnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR4bi52b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kICE9PSAnMDAwMDAwMDAwJyk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkVHhucy5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IGlzT3V0Ym91bmQgPSB0eG4uZGVhbFN1bU91dGJvdW5kO1xuICAgIGNvbnN0IHR4bkRhdGVTdHIgPSBpc091dGJvdW5kID8gdHhuLmZ1bGxQdXJjaGFzZURhdGVPdXRib3VuZCA6IHR4bi5mdWxsUHVyY2hhc2VEYXRlO1xuICAgIGNvbnN0IHR4bk1vbWVudCA9IG1vbWVudCh0eG5EYXRlU3RyLCBEQVRFX0ZPUk1BVCk7XG5cbiAgICBjb25zdCBjdXJyZW50UHJvY2Vzc2VkRGF0ZSA9IHR4bi5mdWxsUGF5bWVudERhdGUgP1xuICAgICAgbW9tZW50KHR4bi5mdWxsUGF5bWVudERhdGUsIERBVEVfRk9STUFUKS50b0lTT1N0cmluZygpIDpcbiAgICAgIHByb2Nlc3NlZERhdGU7XG4gICAgY29uc3QgcmVzdWx0OiBUcmFuc2FjdGlvbiA9IHtcbiAgICAgIHR5cGU6IGdldFRyYW5zYWN0aW9uVHlwZSh0eG4pLFxuICAgICAgaWRlbnRpZmllcjogcGFyc2VJbnQoaXNPdXRib3VuZCA/IHR4bi52b3VjaGVyTnVtYmVyUmF0ek91dGJvdW5kIDogdHhuLnZvdWNoZXJOdW1iZXJSYXR6LCAxMCksXG4gICAgICBkYXRlOiB0eG5Nb21lbnQudG9JU09TdHJpbmcoKSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGN1cnJlbnRQcm9jZXNzZWREYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGlzT3V0Ym91bmQgPyAtdHhuLmRlYWxTdW1PdXRib3VuZCA6IC10eG4uZGVhbFN1bSxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IGNvbnZlcnRDdXJyZW5jeSh0eG4uY3VycmVudFBheW1lbnRDdXJyZW5jeSA/PyB0eG4uY3VycmVuY3lJZCksXG4gICAgICBjaGFyZ2VkQW1vdW50OiBpc091dGJvdW5kID8gLXR4bi5wYXltZW50U3VtT3V0Ym91bmQgOiAtdHhuLnBheW1lbnRTdW0sXG4gICAgICBjaGFyZ2VkQ3VycmVuY3k6IGNvbnZlcnRDdXJyZW5jeSh0eG4uY3VycmVuY3lJZCksXG4gICAgICBkZXNjcmlwdGlvbjogaXNPdXRib3VuZCA/IHR4bi5mdWxsU3VwcGxpZXJOYW1lT3V0Ym91bmQgOiB0eG4uZnVsbFN1cHBsaWVyTmFtZUhlYixcbiAgICAgIG1lbW86IHR4bi5tb3JlSW5mbyB8fCAnJyxcbiAgICAgIGluc3RhbGxtZW50czogZ2V0SW5zdGFsbG1lbnRzSW5mbyh0eG4pIHx8IHVuZGVmaW5lZCxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQsXG4gICAgfTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBzdGFydE1vbWVudDogTW9tZW50LCBtb250aE1vbWVudDogTW9tZW50KTogUHJvbWlzZTxTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXg+IHtcbiAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaEFjY291bnRzKHBhZ2UsIG9wdGlvbnMuc2VydmljZXNVcmwsIG1vbnRoTW9tZW50KTtcbiAgY29uc3QgZGF0YVVybCA9IGdldFRyYW5zYWN0aW9uc1VybChvcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aE1vbWVudCk7XG4gIGNvbnN0IGRhdGFSZXN1bHQgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uRGF0YT4ocGFnZSwgZGF0YVVybCk7XG4gIGlmIChkYXRhUmVzdWx0ICYmIF8uZ2V0KGRhdGFSZXN1bHQsICdIZWFkZXIuU3RhdHVzJykgPT09ICcxJyAmJiBkYXRhUmVzdWx0LkNhcmRzVHJhbnNhY3Rpb25zTGlzdEJlYW4pIHtcbiAgICBjb25zdCBhY2NvdW50VHhuczogU2NyYXBlZEFjY291bnRzV2l0aEluZGV4ID0ge307XG4gICAgYWNjb3VudHMuZm9yRWFjaCgoYWNjb3VudCkgPT4ge1xuICAgICAgY29uc3QgdHhuR3JvdXBzOiBTY3JhcGVkQ3VycmVudENhcmRUcmFuc2FjdGlvbnNbXSB8IHVuZGVmaW5lZCA9IF8uZ2V0KGRhdGFSZXN1bHQsIGBDYXJkc1RyYW5zYWN0aW9uc0xpc3RCZWFuLkluZGV4JHthY2NvdW50LmluZGV4fS5DdXJyZW50Q2FyZFRyYW5zYWN0aW9uc2ApO1xuICAgICAgaWYgKHR4bkdyb3Vwcykge1xuICAgICAgICBsZXQgYWxsVHhuczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuICAgICAgICB0eG5Hcm91cHMuZm9yRWFjaCgodHhuR3JvdXApID0+IHtcbiAgICAgICAgICBpZiAodHhuR3JvdXAudHhuSXNyYWVsKSB7XG4gICAgICAgICAgICBjb25zdCB0eG5zID0gY29udmVydFRyYW5zYWN0aW9ucyh0eG5Hcm91cC50eG5Jc3JhZWwsIGFjY291bnQucHJvY2Vzc2VkRGF0ZSk7XG4gICAgICAgICAgICBhbGxUeG5zLnB1c2goLi4udHhucyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0eG5Hcm91cC50eG5BYnJvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHR4bnMgPSBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bkdyb3VwLnR4bkFicm9hZCwgYWNjb3VudC5wcm9jZXNzZWREYXRlKTtcbiAgICAgICAgICAgIGFsbFR4bnMucHVzaCguLi50eG5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghb3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzKSB7XG4gICAgICAgICAgYWxsVHhucyA9IGZpeEluc3RhbGxtZW50cyhhbGxUeG5zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSkge1xuICAgICAgICAgIGFsbFR4bnMgPSBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoYWxsVHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgYWNjb3VudFR4bnNbYWNjb3VudC5hY2NvdW50TnVtYmVyXSA9IHtcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBhY2NvdW50LmFjY291bnROdW1iZXIsXG4gICAgICAgICAgaW5kZXg6IGFjY291bnQuaW5kZXgsXG4gICAgICAgICAgdHhuczogYWxsVHhucyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWNjb3VudFR4bnM7XG4gIH1cblxuICByZXR1cm4ge307XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRXh0cmFEZXRhaWxzKHNlcnZpY2VzVXJsOiBzdHJpbmcsIG1vbnRoOiBNb21lbnQsIGFjY291bnRJbmRleDogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBzdHJpbmcge1xuICBjb25zdCBtb2VkQ2hpdXYgPSBtb250aC5mb3JtYXQoJ01NWVlZWScpO1xuICByZXR1cm4gYnVpbGRVcmwoc2VydmljZXNVcmwsIHtcbiAgICBxdWVyeVBhcmFtczoge1xuICAgICAgcmVxTmFtZTogJ1BpcnRleUlza2FfMjA0JyxcbiAgICAgIENhcmRJbmRleDogYWNjb3VudEluZGV4LnRvU3RyaW5nKCksXG4gICAgICBzaG92YXJSYXR6OiB0cmFuc2FjdGlvbi5pZGVudGlmaWVyIS50b1N0cmluZygpLFxuICAgICAgbW9lZENoaXV2LFxuICAgIH0sXG4gIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIG1vbnRoOiBNb21lbnQsIGFjY291bnRJbmRleDogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gIGNvbnN0IGRhdGFVcmwgPSBnZXRUcmFuc2FjdGlvbkV4dHJhRGV0YWlscyhvcHRpb25zLnNlcnZpY2VzVXJsLCBtb250aCwgYWNjb3VudEluZGV4LCB0cmFuc2FjdGlvbik7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBmZXRjaEdldFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uRGF0YT4ocGFnZSwgZGF0YVVybCk7XG4gIFxuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb247XG4gIH1cblxuICBjb25zdCByYXdDYXRlZ29yeSA9IF8uZ2V0KGRhdGEsICdQaXJ0ZXlJc2thXzIwNEJlYW4uc2VjdG9yJykgPz8gJyc7XG4gIHJldHVybiB7XG4gICAgLi4udHJhbnNhY3Rpb24sXG4gICAgY2F0ZWdvcnk6IHJhd0NhdGVnb3J5LnRyaW0oKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9ucyhhY2NvdW50V2l0aEluZGV4OiBUcmFuc2FjdGlvbnNBY2NvdW50ICYgeyBpbmRleDogbnVtYmVyIH0sIHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIG1vbnRoOiBtb21lbnQuTW9tZW50KTogUHJvbWlzZTxUcmFuc2FjdGlvbltdPiB7XG4gIGNvbnN0IHByb21pc2VzID0gYWNjb3VudFdpdGhJbmRleC50eG5zXG4gICAgLm1hcCgodCkgPT4gZ2V0RXh0cmFTY3JhcFRyYW5zYWN0aW9uKHBhZ2UsIG9wdGlvbnMsIG1vbnRoLCBhY2NvdW50V2l0aEluZGV4LmluZGV4LCB0KSk7XG4gIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IEV4dGVuZGVkU2NyYXBlck9wdGlvbnMsIGFjY291bnRNYXA6IFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleCwgbW9udGg6IG1vbWVudC5Nb21lbnQpOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleD4ge1xuICBjb25zdCBwcm9taXNlcyA9IE9iamVjdC5rZXlzKGFjY291bnRNYXApXG4gICAgLm1hcChhc3luYyAoYSkgPT4gKHtcbiAgICAgIC4uLmFjY291bnRNYXBbYV0sXG4gICAgICB0eG5zOiBhd2FpdCBnZXRFeHRyYVNjcmFwVHJhbnNhY3Rpb25zKGFjY291bnRNYXBbYV0sIHBhZ2UsIG9wdGlvbnMsIG1vbnRoKSxcbiAgICB9KSk7XG4gIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICByZXR1cm4gYWNjb3VudHMucmVkdWNlKChtLCB4KSA9PiAoeyAuLi5tLCBbeC5hY2NvdW50TnVtYmVyXTogeCB9KSwge30pO1xufVxuXG5mdW5jdGlvbiBnZXRFeHRyYVNjcmFwKGFjY291bnRzV2l0aEluZGV4OiBTY3JhcGVkQWNjb3VudHNXaXRoSW5kZXhbXSwgcGFnZTogUGFnZSwgb3B0aW9uczogRXh0ZW5kZWRTY3JhcGVyT3B0aW9ucywgYWxsTW9udGhzOiBtb21lbnQuTW9tZW50W10pOiBQcm9taXNlPFNjcmFwZWRBY2NvdW50c1dpdGhJbmRleFtdPiB7XG4gIGNvbnN0IGFjdGlvbnMgPSBhY2NvdW50c1dpdGhJbmRleC5tYXAoKGEsIGkpID0+ICgpID0+IGdldEV4dHJhU2NyYXBBY2NvdW50KHBhZ2UsIG9wdGlvbnMsIGEsIGFsbE1vbnRoc1tpXSkpO1xuICByZXR1cm4gcnVuU2VyaWFsKGFjdGlvbnMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaEFsbFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBvcHRpb25zOiBFeHRlbmRlZFNjcmFwZXJPcHRpb25zLCBzdGFydE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gb3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuICBjb25zdCBhbGxNb250aHMgPSBnZXRBbGxNb250aE1vbWVudHMoc3RhcnRNb21lbnQsIGZ1dHVyZU1vbnRoc1RvU2NyYXBlKTtcbiAgY29uc3QgcmVzdWx0czogU2NyYXBlZEFjY291bnRzV2l0aEluZGV4W10gPSBhd2FpdCBQcm9taXNlLmFsbChhbGxNb250aHMubWFwKGFzeW5jIChtb250aE1vbWVudCkgPT4ge1xuICAgIHJldHVybiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlLCBvcHRpb25zLCBzdGFydE1vbWVudCwgbW9udGhNb21lbnQpO1xuICB9KSk7XG5cbiAgY29uc3QgZmluYWxSZXN1bHQgPSBvcHRpb25zLmFkZGl0aW9uYWxUcmFuc2FjdGlvbkluZm9ybWF0aW9uID9cbiAgICBhd2FpdCBnZXRFeHRyYVNjcmFwKHJlc3VsdHMsIHBhZ2UsIG9wdGlvbnMsIGFsbE1vbnRocykgOiByZXN1bHRzO1xuXG4gIGNvbnN0IGNvbWJpbmVkVHhuczogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBmaW5hbFJlc3VsdC5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICAgIGxldCB0eG5zRm9yQWNjb3VudCA9IGNvbWJpbmVkVHhuc1thY2NvdW50TnVtYmVyXTtcbiAgICAgIGlmICghdHhuc0ZvckFjY291bnQpIHtcbiAgICAgICAgdHhuc0ZvckFjY291bnQgPSBbXTtcbiAgICAgICAgY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdID0gdHhuc0ZvckFjY291bnQ7XG4gICAgICB9XG4gICAgICBjb25zdCB0b0JlQWRkZWRUeG5zID0gcmVzdWx0W2FjY291bnROdW1iZXJdLnR4bnM7XG4gICAgICBjb21iaW5lZFR4bnNbYWNjb3VudE51bWJlcl0ucHVzaCguLi50b0JlQWRkZWRUeG5zKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3QgYWNjb3VudHMgPSBPYmplY3Qua2V5cyhjb21iaW5lZFR4bnMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgdHhuczogY29tYmluZWRUeG5zW2FjY291bnROdW1iZXJdLFxuICAgIH07XG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgc3VjY2VzczogdHJ1ZSxcbiAgICBhY2NvdW50cyxcbiAgfTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHsgaWQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgY2FyZDZEaWdpdHM6IHN0cmluZyB9O1xuY2xhc3MgSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tcGFueUNvZGU6IHN0cmluZztcblxuICBwcml2YXRlIHNlcnZpY2VzVXJsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2NyYXBlck9wdGlvbnMsIGJhc2VVcmw6IHN0cmluZywgY29tcGFueUNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybDtcbiAgICB0aGlzLmNvbXBhbnlDb2RlID0gY29tcGFueUNvZGU7XG4gICAgdGhpcy5zZXJ2aWNlc1VybCA9IGAke2Jhc2VVcmx9L3NlcnZpY2VzL1Byb3h5UmVxdWVzdEhhbmRsZXIuYXNoeGA7XG4gIH1cblxuICBhc3luYyBsb2dpbihjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpOiBQcm9taXNlPFNjcmFwZXJTY3JhcGluZ1Jlc3VsdD4ge1xuICAgIGF3YWl0IHRoaXMucGFnZS5zZXRSZXF1ZXN0SW50ZXJjZXB0aW9uKHRydWUpO1xuICAgIHRoaXMucGFnZS5vbigncmVxdWVzdCcsIChyZXF1ZXN0KSA9PiB7XG4gICAgICBpZiAocmVxdWVzdC51cmwoKS5pbmNsdWRlcygnZGV0ZWN0b3ItZG9tLm1pbi5qcycpKSB7XG4gICAgICAgIGRlYnVnKCdmb3JjZSBhYm9ydCBmb3IgcmVxdWVzdCBkbyBkb3dubG9hZCBkZXRlY3Rvci1kb20ubWluLmpzIHJlc291cmNlJyk7XG4gICAgICAgIHZvaWQgcmVxdWVzdC5hYm9ydCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdm9pZCByZXF1ZXN0LmNvbnRpbnVlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhgJHt0aGlzLmJhc2VVcmx9L3BlcnNvbmFsYXJlYS9Mb2dpbmApO1xuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9nZ2luZ0luKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlVXJsID0gYCR7dGhpcy5zZXJ2aWNlc1VybH0/cmVxTmFtZT1WYWxpZGF0ZUlkRGF0YWA7XG4gICAgY29uc3QgdmFsaWRhdGVSZXF1ZXN0ID0ge1xuICAgICAgaWQ6IGNyZWRlbnRpYWxzLmlkLFxuICAgICAgY2FyZFN1ZmZpeDogY3JlZGVudGlhbHMuY2FyZDZEaWdpdHMsXG4gICAgICBjb3VudHJ5Q29kZTogQ09VTlRSWV9DT0RFLFxuICAgICAgaWRUeXBlOiBJRF9UWVBFLFxuICAgICAgY2hlY2tMZXZlbDogJzEnLFxuICAgICAgY29tcGFueUNvZGU6IHRoaXMuY29tcGFueUNvZGUsXG4gICAgfTtcbiAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZExvZ2luVmFsaWRhdGlvbj4odGhpcy5wYWdlLCB2YWxpZGF0ZVVybCwgdmFsaWRhdGVSZXF1ZXN0KTtcbiAgICBpZiAoIXZhbGlkYXRlUmVzdWx0IHx8ICF2YWxpZGF0ZVJlc3VsdC5IZWFkZXIgfHwgdmFsaWRhdGVSZXN1bHQuSGVhZGVyLlN0YXR1cyAhPT0gJzEnIHx8ICF2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5rbm93biBlcnJvciBkdXJpbmcgbG9naW4nKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0ZVJldHVybkNvZGUgPSB2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW4ucmV0dXJuQ29kZTtcbiAgICBkZWJ1ZyhgdXNlciB2YWxpZGF0ZSB3aXRoIHJldHVybiBjb2RlICcke3ZhbGlkYXRlUmV0dXJuQ29kZX0nYCk7XG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzEnKSB7XG4gICAgICBjb25zdCB7IHVzZXJOYW1lIH0gPSB2YWxpZGF0ZVJlc3VsdC5WYWxpZGF0ZUlkRGF0YUJlYW47XG5cbiAgICAgIGNvbnN0IGxvZ2luVXJsID0gYCR7dGhpcy5zZXJ2aWNlc1VybH0/cmVxTmFtZT1wZXJmb3JtTG9nb25JYDtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSB7XG4gICAgICAgIEtvZE1pc2h0YW1lc2g6IHVzZXJOYW1lLFxuICAgICAgICBNaXNwYXJaaWh1eTogY3JlZGVudGlhbHMuaWQsXG4gICAgICAgIFNpc21hOiBjcmVkZW50aWFscy5wYXNzd29yZCxcbiAgICAgICAgY2FyZFN1ZmZpeDogY3JlZGVudGlhbHMuY2FyZDZEaWdpdHMsXG4gICAgICAgIGNvdW50cnlDb2RlOiBDT1VOVFJZX0NPREUsXG4gICAgICAgIGlkVHlwZTogSURfVFlQRSxcbiAgICAgIH07XG4gICAgICBjb25zdCBsb2dpblJlc3VsdCA9IGF3YWl0IGZldGNoUG9zdFdpdGhpblBhZ2U8eyBzdGF0dXM6IHN0cmluZyB9Pih0aGlzLnBhZ2UsIGxvZ2luVXJsLCByZXF1ZXN0KTtcbiAgICAgIGRlYnVnKGB1c2VyIGxvZ2luIHdpdGggc3RhdHVzICcke2xvZ2luUmVzdWx0Py5zdGF0dXN9J2ApO1xuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMScpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5TdWNjZXNzKTtcbiAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSB9O1xuICAgICAgfVxuXG4gICAgICBpZiAobG9naW5SZXN1bHQgJiYgbG9naW5SZXN1bHQuc3RhdHVzID09PSAnMycpIHtcbiAgICAgICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuQ2hhbmdlUGFzc3dvcmQpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuQ2hhbmdlUGFzc3dvcmQsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1pdFByb2dyZXNzKFNjcmFwZXJQcm9ncmVzc1R5cGVzLkxvZ2luRmFpbGVkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBlcnJvclR5cGU6IFNjcmFwZXJFcnJvclR5cGVzLkludmFsaWRQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlUmV0dXJuQ29kZSA9PT0gJzQnKSB7XG4gICAgICB0aGlzLmVtaXRQcm9ncmVzcyhTY3JhcGVyUHJvZ3Jlc3NUeXBlcy5DaGFuZ2VQYXNzd29yZCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5DaGFuZ2VQYXNzd29yZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0UHJvZ3Jlc3MoU2NyYXBlclByb2dyZXNzVHlwZXMuTG9naW5GYWlsZWQpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuSW52YWxpZFBhc3N3b3JkLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gICAgcmV0dXJuIGZldGNoQWxsVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgc2VydmljZXNVcmw6IHRoaXMuc2VydmljZXNVcmwsXG4gICAgICBjb21wYW55Q29kZTogdGhpcy5jb21wYW55Q29kZSxcbiAgICB9LCBzdGFydE1vbWVudCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSXNyYWNhcmRBbWV4QmFzZVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxTQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFLQSxJQUFBSSxZQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxjQUFBLEdBQUFWLE9BQUE7QUFLQSxJQUFBVyx1QkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQTZDLFNBQUFELHVCQUFBYyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FB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
@@ -175,7 +175,7 @@ async function navigateToLogin(page) {
175
175
  await Promise.all([(0, _elementsInteractions.waitUntilElementFound)(page, 'input[placeholder="שם משתמש"]', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'input[placeholder="סיסמה"]', true), (0, _elementsInteractions.waitUntilElementFound)(page, 'button[type="submit"]', true)]);
176
176
  }
177
177
  async function waitForPostLogin(page) {
178
- await Promise.race([(0, _elementsInteractions.waitUntilElementFound)(page, 'a[title="דלג לחשבון"]', true, 60000), (0, _elementsInteractions.waitUntilElementFound)(page, 'div.main-content', true, 60000), page.waitForSelector(`xpath//div[contains(string(),"${INVALID_PASSWORD_MSG}")]`), (0, _elementsInteractions.waitUntilElementFound)(page, 'form[action="/changepassword"]', true, 60000) // not sure if they kept this one
178
+ await Promise.race([(0, _elementsInteractions.waitUntilElementFound)(page, 'a[title="דלג לחשבון"]', true, 60000), (0, _elementsInteractions.waitUntilElementFound)(page, 'div.main-content', false, 60000), page.waitForSelector(`xpath//div[contains(string(),"${INVALID_PASSWORD_MSG}")]`), (0, _elementsInteractions.waitUntilElementFound)(page, 'form[action="/changepassword"]', true, 60000) // not sure if they kept this one
179
179
  ]);
180
180
  }
181
181
  class LeumiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
@@ -203,4 +203,4 @@ class LeumiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
203
203
  }
204
204
  }
205
205
  var _default = exports.default = LeumiScraper;
206
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2RlYnVnIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImdldERlYnVnIiwiQkFTRV9VUkwiLCJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCIsIkRBVEVfRk9STUFUIiwiQUNDT1VOVF9CTE9DS0VEX01TRyIsIklOVkFMSURfUEFTU1dPUkRfTVNHIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIm9wdGlvbnMiLCJwYWdlIiwiRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJwYWdlRXZhbEFsbCIsImVsZW1lbnQiLCJfZWxlbWVudCQiLCJwYXJlbnRFbGVtZW50IiwiY2hpbGRyZW4iLCJpbm5lclRleHQiLCJzdGFydHNXaXRoIiwiQWNjb3VudEJsb2NrZWQiLCJsYWJlbCIsIl9sYWJlbCQiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tUGFnZSIsInRyYW5zYWN0aW9ucyIsInN0YXR1cyIsImxlbmd0aCIsInJlc3VsdCIsIm1hcCIsInJhd1RyYW5zYWN0aW9uIiwiZGF0ZSIsIm1vbWVudCIsIkRhdGVVVEMiLCJtaWxsaXNlY29uZHMiLCJ0b0lTT1N0cmluZyIsIm5ld1RyYW5zYWN0aW9uIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJwcm9jZXNzZWREYXRlIiwiZGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsImlkZW50aWZpZXIiLCJSZWZlcmVuY2VOdW1iZXJMb25nIiwibWVtbyIsIkFkZGl0aW9uYWxEYXRhIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJBbW91bnQiLCJvcmlnaW5hbEFtb3VudCIsImhhbmdQcm9jZXNzIiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImNsaWNrQnlYUGF0aCIsInhwYXRoIiwid2FpdEZvclNlbGVjdG9yIiwidmlzaWJsZSIsImVsbSIsIiQkIiwiY2xpY2siLCJyZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyIsInN0ciIsInJlcGxhY2UiLCJmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQiLCJzdGFydERhdGUiLCJhY2NvdW50SWQiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJjbGlja0J1dHRvbiIsImZpbGxJbnB1dCIsImZvcm1hdCIsImZvY3VzIiwiZmluYWxSZXNwb25zZSIsIndhaXRGb3JSZXNwb25zZSIsInJlc3BvbnNlIiwidXJsIiwicmVxdWVzdCIsIm1ldGhvZCIsInJlc3BvbnNlSnNvbiIsImpzb24iLCJhY2NvdW50TnVtYmVyIiwiSlNPTiIsInBhcnNlIiwianNvblJlc3AiLCJwZW5kaW5nVHJhbnNhY3Rpb25zIiwiVG9kYXlUcmFuc2FjdGlvbnNJdGVtcyIsIkhpc3RvcnlUcmFuc2FjdGlvbnNJdGVtcyIsImJhbGFuY2UiLCJCYWxhbmNlRGlzcGxheSIsInBhcnNlRmxvYXQiLCJ1bmRlZmluZWQiLCJwZW5kaW5nVHhucyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiY29tcGxldGVkVHhucyIsIkNvbXBsZXRlZCIsInR4bnMiLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnRzIiwiYWNjb3VudHNJZHMiLCJldmFsdWF0ZSIsIkFycmF5IiwiZnJvbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInRleHRDb250ZW50IiwicHVzaCIsIm5hdmlnYXRlVG9Mb2dpbiIsImxvZ2luQnV0dG9uU2VsZWN0b3IiLCJsb2dpblVybCIsInBhZ2VFdmFsIiwiaHJlZiIsImdvdG8iLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsImFsbCIsIndhaXRGb3JQb3N0TG9naW4iLCJyYWNlIiwiTGV1bWlTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2hlY2tSZWFkaW5lc3MiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwibWluaW11bVN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2xldW1pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHtcbiAgY2xpY2tCdXR0b24sXG4gIGZpbGxJbnB1dCxcbiAgcGFnZUV2YWwsXG4gIHBhZ2VFdmFsQWxsLFxuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG4gIHR5cGUgVHJhbnNhY3Rpb24sXG4gIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgdHlwZSBMb2dpbk9wdGlvbnMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgdHlwZSBTY3JhcGVyU2NyYXBpbmdSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2xldW1pJyk7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2hiMi5iYW5rbGV1bWkuY28uaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3LmxldW1pLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gYCR7QkFTRV9VUkx9L2VCYW5raW5nL1NPL1NQQS5hc3B4Iy90cy9CdXNpbmVzc0FjY291bnRUcng/V2lkZ2V0UGFyPTFgO1xuY29uc3QgRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9DaGFubmVsV0NGL0Jyb2tlci5zdmMvUHJvY2Vzc1JlcXVlc3Q/bW9kdWxlTmFtZT1VQ19TT18yN19HZXRCdXNpbmVzc0FjY291bnRUcnhgO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC5NTS5ZWSc7XG5jb25zdCBBQ0NPVU5UX0JMT0NLRURfTVNHID0gJ9eU157XoNeV15kg15fXodeV150nO1xuY29uc3QgSU5WQUxJRF9QQVNTV09SRF9NU0cgPSAn15DXl9eTINeQ15Ug15nXldeq16gg157XpNeo15jXmSDXlNeU15bXk9eU15XXqiDXqdee16HXqNeqINep15LXldeZ15nXnS4g16DXmdeq158g15zXoNeh15XXqiDXqdeV15EnO1xuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL2ViYW5raW5nXFwvU09cXC9TUEEuYXNweC9pXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFtcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJ3N2ZyNDYXBhXzEnLCAnJywgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGVsZW1lbnRbMF0/LnBhcmVudEVsZW1lbnQ/LmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KT8uaW5uZXJUZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlPy5zdGFydHNXaXRoKElOVkFMSURfUEFTU1dPUkRfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogWyAvLyBOT1RJQ0UgLSBtaWdodCBub3QgYmUgcmVsZXZhbnQgc3RhcnRpbmcgdGhlIExldW1pIHJlLWRlc2lnbiBkdXJpbmcgMjAyMiBTZXBcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJy5lcnJIZWFkZXInLCAnJywgKGxhYmVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChsYWJlbFswXSBhcyBIVE1MRWxlbWVudCk/LmlubmVyVGV4dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZT8uc3RhcnRzV2l0aChBQ0NPVU5UX0JMT0NLRURfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXTogWydodHRwczovL2hiMi5iYW5rbGV1bWkuY28uaWwvYXV0aGVudGljYXRlJ10sIC8vIE5PVElDRSAtIG1pZ2h0IG5vdCBiZSByZWxldmFudCBzdGFydGluZyB0aGUgTGV1bWkgcmUtZGVzaWduIGR1cmluZyAyMDIyIFNlcFxuICB9O1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16nXnSDXntep16rXntepXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16HXmdeh157XlFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zOiBhbnlbXSwgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICh0cmFuc2FjdGlvbnMgPT09IG51bGwgfHwgdHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9ucy5tYXAoKHJhd1RyYW5zYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudChyYXdUcmFuc2FjdGlvbi5EYXRlVVRDKS5taWxsaXNlY29uZHMoMCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSB7XG4gICAgICBzdGF0dXMsXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBkYXRlLFxuICAgICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgaWRlbnRpZmllcjogcmF3VHJhbnNhY3Rpb24uUmVmZXJlbmNlTnVtYmVyTG9uZyxcbiAgICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLkFkZGl0aW9uYWxEYXRhIHx8ICcnLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogcmF3VHJhbnNhY3Rpb24uQW1vdW50LFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBoYW5nUHJvY2Vzcyh0aW1lb3V0OiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0J5WFBhdGgocGFnZTogUGFnZSwgeHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBwYWdlLndhaXRGb3JTZWxlY3Rvcih4cGF0aCwgeyB0aW1lb3V0OiAzMDAwMCwgdmlzaWJsZTogdHJ1ZSB9KTtcbiAgY29uc3QgZWxtID0gYXdhaXQgcGFnZS4kJCh4cGF0aCk7XG4gIGF3YWl0IGVsbVswXS5jbGljaygpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvW14wLTkvLV0vZywgJycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnRJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50PiB7XG4gIC8vIERFVkVMT1BFUiBOT1RJQ0UgdGhlIGFjY291bnQgbnVtYmVyIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciBpcyBiZWluZyBhbHRlcmVkIGF0XG4gIC8vIHJ1bnRpbWUgZm9yIHNvbWUgYWNjb3VudHMgYWZ0ZXIgMS0yIHNlY29uZHMgc28gd2UgbmVlZCB0byBoYW5nIHRoZSBwcm9jZXNzIGZvciBhIHNob3J0IHdoaWxlLlxuICBhd2FpdCBoYW5nUHJvY2Vzcyg0MDAwKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYnV0dG9uW3RpdGxlPVwi15fXmdek15XXqSDXnteq16fXk9edXCJdJyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbicsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbjpub3QoW2NoZWNrZWRdKScpO1xuXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbZm9ybWNvbnRyb2xuYW1lPVwidHh0SW5wdXRGcm9tXCJdJywgdHJ1ZSk7XG5cbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG5cbiAgLy8gd2UgbXVzdCBibHVyIHRoZSBmcm9tIGNvbnRyb2wgb3RoZXJ3aXNlIHRoZSBzZWFyY2ggd2lsbCB1c2UgdGhlIHByZXZpb3VzIHZhbHVlXG4gIGF3YWl0IHBhZ2UuZm9jdXMoXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG5cbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG4gIGNvbnN0IGZpbmFsUmVzcG9uc2UgPSBhd2FpdCBwYWdlLndhaXRGb3JSZXNwb25zZSgocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudXJsKCkgPT09IEZJTFRFUkVEX1RSQU5TQUNUSU9OU19VUkwgJiZcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QoKS5tZXRob2QoKSA9PT0gJ1BPU1QnO1xuICB9KTtcblxuICBjb25zdCByZXNwb25zZUpzb246IGFueSA9IGF3YWl0IGZpbmFsUmVzcG9uc2UuanNvbigpO1xuXG4gIGNvbnN0IGFjY291bnROdW1iZXIgPSBhY2NvdW50SWQucmVwbGFjZSgnLycsICdfJykucmVwbGFjZSgvW15cXGQtX10vZywgJycpO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXNwb25zZUpzb24uanNvblJlc3ApO1xuXG4gIGNvbnN0IHBlbmRpbmdUcmFuc2FjdGlvbnMgPSByZXNwb25zZS5Ub2RheVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCB0cmFuc2FjdGlvbnMgPSByZXNwb25zZS5IaXN0b3J5VHJhbnNhY3Rpb25zSXRlbXM7XG4gIGNvbnN0IGJhbGFuY2UgPSByZXNwb25zZS5CYWxhbmNlRGlzcGxheSA/IHBhcnNlRmxvYXQocmVzcG9uc2UuQmFsYW5jZURpc3BsYXkpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHBlbmRpbmdUcmFuc2FjdGlvbnMsIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyk7XG4gIGNvbnN0IGNvbXBsZXRlZFR4bnMgPSBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCk7XG4gIGNvbnN0IHR4bnMgPSBbXG4gICAgLi4ucGVuZGluZ1R4bnMsXG4gICAgLi4uY29tcGxldGVkVHhucyxcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgYmFsYW5jZSxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgY29uc3QgYWNjb3VudHNJZHMgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXBwLW1hc2tlZC1udW1iZXItY29tYm8gc3Bhbi5kaXNwbGF5LW51bWJlci1saScpLCAoZSkgPT4gZS50ZXh0Q29udGVudCkpIGFzIHN0cmluZ1tdO1xuXG4gIC8vIGR1ZSB0byBhIGJ1ZywgdGhlIGFsdGVyZWQgdmFsdWUgbWlnaHQgaW5jbHVkZSB1bmRlc2lyZWQgc2lnbnMgbGlrZSAmIHRoYXQgc2hvdWxkIGJlIHJlbW92ZWRcblxuICBpZiAoIWFjY291bnRzSWRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGV4dHJhY3Qgb3IgcGFyc2UgdGhlIGFjY291bnQgbnVtYmVyJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGFjY291bnRJZCBvZiBhY2NvdW50c0lkcykge1xuICAgIGlmIChhY2NvdW50c0lkcy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBnZXQgbGlzdCBvZiBhY2NvdW50cyBhbmQgY2hlY2sgYWNjb3VudElkXG4gICAgICBhd2FpdCBjbGlja0J5WFBhdGgocGFnZSwgJ3hwYXRoLy8qW2NvbnRhaW5zKEBjbGFzcywgXCJudW1iZXJcIikgYW5kIGNvbnRhaW5zKEBjbGFzcywgXCJjb21iby1pbm5lclwiKV0nKTtcbiAgICAgIGF3YWl0IGNsaWNrQnlYUGF0aChwYWdlLCBgeHBhdGgvL3NwYW5bY29udGFpbnModGV4dCgpLCAnJHthY2NvdW50SWR9JyldYCk7XG4gICAgfVxuXG4gICAgYWNjb3VudHMucHVzaChhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlLCByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhhY2NvdW50SWQpKSk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9Mb2dpbihwYWdlOiBQYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZ2luQnV0dG9uU2VsZWN0b3IgPSAnLmVudGVyLWFjY291bnQgYVtvcmlnaW5hbHRpdGxlPVwi15vXoNeZ16HXlCDXnNeX16nXkdeV16DXmlwiXSc7XG4gIGRlYnVnKCd3YWl0IGZvciBob21lcGFnZSB0byBjbGljayBvbiBsb2dpbiBidXR0b24nKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IpO1xuICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICBjb25zdCBsb2dpblVybCA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IsIG51bGwsIChlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkuaHJlZjtcbiAgfSk7XG4gIGRlYnVnKGBuYXZpZ2F0aW5nIHRvIHBhZ2UgKCR7bG9naW5Vcmx9KWApO1xuICBhd2FpdCBwYWdlLmdvdG8obG9naW5VcmwpO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgcGFnZSB0byBiZSBsb2FkZWQgKG5ldHdvcmtpZGxlMiknKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSwgeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZTInIH0pO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgY29tcG9uZW50cyBvZiBsb2dpbiB0byBlbnRlciBjcmVkZW50aWFscycpO1xuICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdpbnB1dFtwbGFjZWhvbGRlcj1cItep150g157Xqdeq157XqVwiXScsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbcGxhY2Vob2xkZXI9XCLXodeZ16HXnteUXCJdJywgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsIHRydWUpLFxuICBdKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdhW3RpdGxlPVwi15PXnNeSINec15fXqdeR15XXn1wiXScsIHRydWUsIDYwMDAwKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Rpdi5tYWluLWNvbnRlbnQnLCB0cnVlLCA2MDAwMCksXG4gICAgcGFnZS53YWl0Rm9yU2VsZWN0b3IoYHhwYXRoLy9kaXZbY29udGFpbnMoc3RyaW5nKCksXCIke0lOVkFMSURfUEFTU1dPUkRfTVNHfVwiKV1gKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Zvcm1bYWN0aW9uPVwiL2NoYW5nZXBhc3N3b3JkXCJdJywgdHJ1ZSwgNjAwMDApLCAvLyBub3Qgc3VyZSBpZiB0aGV5IGtlcHQgdGhpcyBvbmVcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgTGV1bWlTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBcImJ1dHRvblt0eXBlPSdzdWJtaXQnXVwiLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IG5hdmlnYXRlVG9Mb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gd2FpdEZvclBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKTogUHJvbWlzZTxTY3JhcGVyU2NyYXBpbmdSZXN1bHQ+IHtcbiAgICBjb25zdCBtaW5pbXVtU3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgzLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KG1pbmltdW1TdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuXG4gICAgYXdhaXQgdGhpcy5uYXZpZ2F0ZVRvKFRSQU5TQUNUSU9OU19VUkwpO1xuXG4gICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCBmZXRjaFRyYW5zYWN0aW9ucyh0aGlzLnBhZ2UsIHN0YXJ0TW9tZW50KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBMZXVtaVNjcmFwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxxQkFBQSxHQUFBSCxPQUFBO0FBT0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBS0EsSUFBQU0sdUJBQUEsR0FBQU4sT0FBQTtBQUFzRyxTQUFBRCx1QkFBQVEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUd0RyxNQUFNRyxLQUFLLEdBQUcsSUFBQUMsZUFBUSxFQUFDLE9BQU8sQ0FBQztBQUMvQixNQUFNQyxRQUFRLEdBQUcsNkJBQTZCO0FBQzlDLE1BQU1DLFNBQVMsR0FBRywwQkFBMEI7QUFDNUMsTUFBTUMsZ0JBQWdCLEdBQUcsR0FBR0YsUUFBUSwwREFBMEQ7QUFDOUYsTUFBTUcseUJBQXlCLEdBQUcsR0FBR0gsUUFBUSxpRkFBaUY7QUFFOUgsTUFBTUksV0FBVyxHQUFHLFVBQVU7QUFDOUIsTUFBTUMsbUJBQW1CLEdBQUcsWUFBWTtBQUN4QyxNQUFNQyxvQkFBb0IsR0FBRyx3REFBd0Q7QUFFckYsU0FBU0MsdUJBQXVCQSxDQUFBLEVBQUc7RUFDakMsTUFBTUMsSUFBcUMsR0FBRztJQUM1QyxDQUFDQyxvQ0FBWSxDQUFDQyxPQUFPLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQztJQUNuRCxDQUFDRCxvQ0FBWSxDQUFDRSxlQUFlLEdBQUcsQ0FDOUIsTUFBT0MsT0FBTyxJQUFLO01BQ2pCLElBQUksQ0FBQ0EsT0FBTyxJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsSUFBSSxFQUFFO1FBQzdCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLCtCQUErQixDQUFDO01BQ2xEO01BQ0EsTUFBTUMsWUFBWSxHQUFHLE1BQU0sSUFBQUMsaUNBQVcsRUFBQ0osT0FBTyxDQUFDQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBR0ksT0FBTyxJQUFLO1FBQUEsSUFBQUMsU0FBQTtRQUNsRixRQUFBQSxTQUFBLEdBQVFELE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBQUMsU0FBQSxnQkFBQUEsU0FBQSxHQUFWQSxTQUFBLENBQVlDLGFBQWEsY0FBQUQsU0FBQSxnQkFBQUEsU0FBQSxHQUF6QkEsU0FBQSxDQUEyQkUsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFBRixTQUFBLHVCQUF2Q0EsU0FBQSxDQUE0REcsU0FBUztNQUM5RSxDQUFDLENBQUM7TUFFRixPQUFPTixZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRU8sVUFBVSxDQUFDaEIsb0JBQW9CLENBQUM7SUFDdkQsQ0FBQyxDQUNGO0lBQ0QsQ0FBQ0csb0NBQVksQ0FBQ2MsY0FBYyxHQUFHO0lBQUU7SUFDL0IsTUFBT1gsT0FBTyxJQUFLO01BQ2pCLElBQUksQ0FBQ0EsT0FBTyxJQUFJLENBQUNBLE9BQU8sQ0FBQ0MsSUFBSSxFQUFFO1FBQzdCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLCtCQUErQixDQUFDO01BQ2xEO01BQ0EsTUFBTUMsWUFBWSxHQUFHLE1BQU0sSUFBQUMsaUNBQVcsRUFBQ0osT0FBTyxDQUFDQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBR1csS0FBSyxJQUFLO1FBQUEsSUFBQUMsT0FBQTtRQUNoRixRQUFBQSxPQUFBLEdBQVFELEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBQUMsT0FBQSx1QkFBVEEsT0FBQSxDQUEyQkosU0FBUztNQUM3QyxDQUFDLENBQUM7TUFFRixPQUFPTixZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRU8sVUFBVSxDQUFDakIsbUJBQW1CLENBQUM7SUFDdEQsQ0FBQyxDQUNGO0lBQ0QsQ0FBQ0ksb0NBQVksQ0FBQ2lCLGNBQWMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUU7RUFDL0UsQ0FBQztFQUNELE9BQU9sQixJQUFJO0FBQ2I7QUFFQSxTQUFTbUIsaUJBQWlCQSxDQUFDQyxXQUF1QyxFQUFFO0VBQ2xFLE9BQU8sQ0FDTDtJQUFFQyxRQUFRLEVBQUUsK0JBQStCO0lBQUVDLEtBQUssRUFBRUYsV0FBVyxDQUFDRztFQUFTLENBQUMsRUFDMUU7SUFBRUYsUUFBUSxFQUFFLDRCQUE0QjtJQUFFQyxLQUFLLEVBQUVGLFdBQVcsQ0FBQ0k7RUFBUyxDQUFDLENBQ3hFO0FBQ0g7QUFFQSxTQUFTQywyQkFBMkJBLENBQUNDLFlBQW1CLEVBQUVDLE1BQTJCLEVBQWlCO0VBQ3BHLElBQUlELFlBQVksS0FBSyxJQUFJLElBQUlBLFlBQVksQ0FBQ0UsTUFBTSxLQUFLLENBQUMsRUFBRTtJQUN0RCxPQUFPLEVBQUU7RUFDWDtFQUVBLE1BQU1DLE1BQXFCLEdBQUdILFlBQVksQ0FBQ0ksR0FBRyxDQUFFQyxjQUFjLElBQUs7SUFDakUsTUFBTUMsSUFBSSxHQUFHLElBQUFDLGVBQU0sRUFBQ0YsY0FBYyxDQUFDRyxPQUFPLENBQUMsQ0FBQ0MsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUN6RSxNQUFNQyxjQUEyQixHQUFHO01BQ2xDVixNQUFNO01BQ05XLElBQUksRUFBRUMsOEJBQWdCLENBQUNDLE1BQU07TUFDN0JSLElBQUk7TUFDSlMsYUFBYSxFQUFFVCxJQUFJO01BQ25CVSxXQUFXLEVBQUVYLGNBQWMsQ0FBQ1ksV0FBVyxJQUFJLEVBQUU7TUFDN0NDLFVBQVUsRUFBRWIsY0FBYyxDQUFDYyxtQkFBbUI7TUFDOUNDLElBQUksRUFBRWYsY0FBYyxDQUFDZ0IsY0FBYyxJQUFJLEVBQUU7TUFDekNDLGdCQUFnQixFQUFFQywwQkFBZTtNQUNqQ0MsYUFBYSxFQUFFbkIsY0FBYyxDQUFDb0IsTUFBTTtNQUNwQ0MsY0FBYyxFQUFFckIsY0FBYyxDQUFDb0I7SUFDakMsQ0FBQztJQUVELE9BQU9kLGNBQWM7RUFDdkIsQ0FBQyxDQUFDO0VBRUYsT0FBT1IsTUFBTTtBQUNmO0FBRUEsU0FBU3dCLFdBQVdBLENBQUNDLE9BQWUsRUFBRTtFQUNwQyxPQUFPLElBQUlDLE9BQU8sQ0FBUUMsT0FBTyxJQUFLO0lBQ3BDQyxVQUFVLENBQUMsTUFBTTtNQUNmRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsRUFBRUYsT0FBTyxDQUFDO0VBQ2IsQ0FBQyxDQUFDO0FBQ0o7QUFFQSxlQUFlSSxZQUFZQSxDQUFDckQsSUFBVSxFQUFFc0QsS0FBYSxFQUFpQjtFQUNwRSxNQUFNdEQsSUFBSSxDQUFDdUQsZUFBZSxDQUFDRCxLQUFLLEVBQUU7SUFBRUwsT0FBTyxFQUFFLEtBQUs7SUFBRU8sT0FBTyxFQUFFO0VBQUssQ0FBQyxDQUFDO0VBQ3BFLE1BQU1DLEdBQUcsR0FBRyxNQUFNekQsSUFBSSxDQUFDMEQsRUFBRSxDQUFDSixLQUFLLENBQUM7RUFDaEMsTUFBTUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDRSxLQUFLLENBQUMsQ0FBQztBQUN0QjtBQUVBLFNBQVNDLHVCQUF1QkEsQ0FBQ0MsR0FBVyxFQUFVO0VBQ3BELE9BQU9BLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7QUFDckM7QUFFQSxlQUFlQywyQkFBMkJBLENBQUMvRCxJQUFVLEVBQUVnRSxTQUFpQixFQUFFQyxTQUFpQixFQUFnQztFQUN6SDtFQUNBO0VBQ0EsTUFBTWpCLFdBQVcsQ0FBQyxJQUFJLENBQUM7RUFFdkIsTUFBTSxJQUFBa0IsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxDQUFDO0VBQ3RFLE1BQU0sSUFBQW1FLGlDQUFXLEVBQUNuRSxJQUFJLEVBQUUsNkJBQTZCLENBQUM7RUFDdEQsTUFBTSxJQUFBa0UsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDO0VBQzNELE1BQU0sSUFBQW1FLGlDQUFXLEVBQUNuRSxJQUFJLEVBQUUsaUNBQWlDLENBQUM7RUFFMUQsTUFBTSxJQUFBa0UsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsdUNBQXVDLEVBQUUsSUFBSSxDQUFDO0VBRWhGLE1BQU0sSUFBQW9FLCtCQUFTLEVBQ2JwRSxJQUFJLEVBQ0osdUNBQXVDLEVBQ3ZDZ0UsU0FBUyxDQUFDSyxNQUFNLENBQUM5RSxXQUFXLENBQzlCLENBQUM7O0VBRUQ7RUFDQSxNQUFNUyxJQUFJLENBQUNzRSxLQUFLLENBQUMsMEJBQTBCLENBQUM7RUFFNUMsTUFBTSxJQUFBSCxpQ0FBVyxFQUFDbkUsSUFBSSxFQUFFLDBCQUEwQixDQUFDO0VBQ25ELE1BQU11RSxhQUFhLEdBQUcsTUFBTXZFLElBQUksQ0FBQ3dFLGVBQWUsQ0FBRUMsUUFBUSxJQUFLO0lBQzdELE9BQU9BLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLENBQUMsS0FBS3BGLHlCQUF5QixJQUNqRG1GLFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsS0FBSyxNQUFNO0VBQzFDLENBQUMsQ0FBQztFQUVGLE1BQU1DLFlBQWlCLEdBQUcsTUFBTU4sYUFBYSxDQUFDTyxJQUFJLENBQUMsQ0FBQztFQUVwRCxNQUFNQyxhQUFhLEdBQUdkLFNBQVMsQ0FBQ0gsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQ0EsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7RUFFekUsTUFBTVcsUUFBUSxHQUFHTyxJQUFJLENBQUNDLEtBQUssQ0FBQ0osWUFBWSxDQUFDSyxRQUFRLENBQUM7RUFFbEQsTUFBTUMsbUJBQW1CLEdBQUdWLFFBQVEsQ0FBQ1csc0JBQXNCO0VBQzNELE1BQU0vRCxZQUFZLEdBQUdvRCxRQUFRLENBQUNZLHdCQUF3QjtFQUN0RCxNQUFNQyxPQUFPLEdBQUdiLFFBQVEsQ0FBQ2MsY0FBYyxHQUFHQyxVQUFVLENBQUNmLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDLEdBQUdFLFNBQVM7RUFFekYsTUFBTUMsV0FBVyxHQUFHdEUsMkJBQTJCLENBQUMrRCxtQkFBbUIsRUFBRVEsaUNBQW1CLENBQUNDLE9BQU8sQ0FBQztFQUNqRyxNQUFNQyxhQUFhLEdBQUd6RSwyQkFBMkIsQ0FBQ0MsWUFBWSxFQUFFc0UsaUNBQW1CLENBQUNHLFNBQVMsQ0FBQztFQUM5RixNQUFNQyxJQUFJLEdBQUcsQ0FDWCxHQUFHTCxXQUFXLEVBQ2QsR0FBR0csYUFBYSxDQUNqQjtFQUVELE9BQU87SUFDTGQsYUFBYTtJQUNiTyxPQUFPO0lBQ1BTO0VBQ0YsQ0FBQztBQUNIO0FBRUEsZUFBZUMsaUJBQWlCQSxDQUFDaEcsSUFBVSxFQUFFZ0UsU0FBaUIsRUFBa0M7RUFDOUYsTUFBTWlDLFFBQStCLEdBQUcsRUFBRTs7RUFFMUM7RUFDQTtFQUNBLE1BQU1qRCxXQUFXLENBQUMsSUFBSSxDQUFDO0VBRXZCLE1BQU1rRCxXQUFXLEdBQUcsTUFBTWxHLElBQUksQ0FBQ21HLFFBQVEsQ0FBQyxNQUFNQyxLQUFLLENBQUNDLElBQUksQ0FBQ0MsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQyxnREFBZ0QsQ0FBQyxFQUFHekgsQ0FBQyxJQUFLQSxDQUFDLENBQUMwSCxXQUFXLENBQUMsQ0FBYTs7RUFFeEs7O0VBRUEsSUFBSSxDQUFDTixXQUFXLENBQUMzRSxNQUFNLEVBQUU7SUFDdkIsTUFBTSxJQUFJdEIsS0FBSyxDQUFDLCtDQUErQyxDQUFDO0VBQ2xFO0VBRUEsS0FBSyxNQUFNZ0UsU0FBUyxJQUFJaUMsV0FBVyxFQUFFO0lBQ25DLElBQUlBLFdBQVcsQ0FBQzNFLE1BQU0sR0FBRyxDQUFDLEVBQUU7TUFDMUI7TUFDQSxNQUFNOEIsWUFBWSxDQUFDckQsSUFBSSxFQUFFLDBFQUEwRSxDQUFDO01BQ3BHLE1BQU1xRCxZQUFZLENBQUNyRCxJQUFJLEVBQUUsaUNBQWlDaUUsU0FBUyxLQUFLLENBQUM7SUFDM0U7SUFFQWdDLFFBQVEsQ0FBQ1EsSUFBSSxDQUFDLE1BQU0xQywyQkFBMkIsQ0FBQy9ELElBQUksRUFBRWdFLFNBQVMsRUFBRUosdUJBQXVCLENBQUNLLFNBQVMsQ0FBQyxDQUFDLENBQUM7RUFDdkc7RUFFQSxPQUFPZ0MsUUFBUTtBQUNqQjtBQUVBLGVBQWVTLGVBQWVBLENBQUMxRyxJQUFVLEVBQWlCO0VBQ3hELE1BQU0yRyxtQkFBbUIsR0FBRyxpREFBaUQ7RUFDN0UxSCxLQUFLLENBQUMsNENBQTRDLENBQUM7RUFDbkQsTUFBTSxJQUFBaUYsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUyRyxtQkFBbUIsQ0FBQztFQUN0RDFILEtBQUssQ0FBQyx3QkFBd0IsQ0FBQztFQUMvQixNQUFNMkgsUUFBUSxHQUFHLE1BQU0sSUFBQUMsOEJBQVEsRUFBQzdHLElBQUksRUFBRTJHLG1CQUFtQixFQUFFLElBQUksRUFBR3ZHLE9BQU8sSUFBSztJQUM1RSxPQUFRQSxPQUFPLENBQVMwRyxJQUFJO0VBQzlCLENBQUMsQ0FBQztFQUNGN0gsS0FBSyxDQUFDLHVCQUF1QjJILFFBQVEsR0FBRyxDQUFDO0VBQ3pDLE1BQU01RyxJQUFJLENBQUMrRyxJQUFJLENBQUNILFFBQVEsQ0FBQztFQUN6QjNILEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQztFQUNyRCxNQUFNLElBQUErSCw2QkFBaUIsRUFBQ2hILElBQUksRUFBRTtJQUFFaUgsU0FBUyxFQUFFO0VBQWUsQ0FBQyxDQUFDO0VBQzVEaEksS0FBSyxDQUFDLHNEQUFzRCxDQUFDO0VBQzdELE1BQU1pRSxPQUFPLENBQUNnRSxHQUFHLENBQUMsQ0FDaEIsSUFBQWhELDJDQUFxQixFQUFDbEUsSUFBSSxFQUFFLCtCQUErQixFQUFFLElBQUksQ0FBQyxFQUNsRSxJQUFBa0UsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLEVBQy9ELElBQUFrRSwyQ0FBcUIsRUFBQ2xFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxJQUFJLENBQUMsQ0FDM0QsQ0FBQztBQUNKO0FBRUEsZUFBZW1ILGdCQUFnQkEsQ0FBQ25ILElBQVUsRUFBaUI7RUFDekQsTUFBTWtELE9BQU8sQ0FBQ2tFLElBQUksQ0FBQyxDQUNqQixJQUFBbEQsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUNqRSxJQUFBa0UsMkNBQXFCLEVBQUNsRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUM1REEsSUFBSSxDQUFDdUQsZUFBZSxDQUFDLGlDQUFpQzlELG9CQUFvQixLQUFLLENBQUMsRUFDaEYsSUFBQXlFLDJDQUFxQixFQUFDbEUsSUFBSSxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBRTtFQUFBLENBQzdFLENBQUM7QUFDSjtBQUlBLE1BQU1xSCxZQUFZLFNBQVNDLDhDQUFzQixDQUE2QjtFQUM1RUMsZUFBZUEsQ0FBQ3hHLFdBQXVDLEVBQUU7SUFDdkQsT0FBTztNQUNMNkYsUUFBUSxFQUFFeEgsU0FBUztNQUNuQm9JLE1BQU0sRUFBRTFHLGlCQUFpQixDQUFDQyxXQUFXLENBQUM7TUFDdEMwRyxvQkFBb0IsRUFBRSx1QkFBdUI7TUFDN0NDLGNBQWMsRUFBRSxNQUFBQSxDQUFBLEtBQVloQixlQUFlLENBQUMsSUFBSSxDQUFDMUcsSUFBSSxDQUFDO01BQ3REMkgsVUFBVSxFQUFFLE1BQUFBLENBQUEsS0FBWVIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDbkgsSUFBSSxDQUFDO01BQ25ENEgsZUFBZSxFQUFFbEksdUJBQXVCLENBQUM7SUFDM0MsQ0FBQztFQUNIO0VBRUEsTUFBTW1JLFNBQVNBLENBQUEsRUFBbUM7SUFDaEQsTUFBTUMsa0JBQWtCLEdBQUcsSUFBQWxHLGVBQU0sRUFBQyxDQUFDLENBQUNtRyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN0RSxNQUFNQyxrQkFBa0IsR0FBRyxJQUFBckcsZUFBTSxFQUFDLENBQUMsQ0FBQ21HLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ3RFLE1BQU1oRSxTQUFTLEdBQUcsSUFBSSxDQUFDakUsT0FBTyxDQUFDaUUsU0FBUyxJQUFJaUUsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLE1BQU1DLFdBQVcsR0FBR3ZHLGVBQU0sQ0FBQ3dHLEdBQUcsQ0FBQ04sa0JBQWtCLEVBQUUsSUFBQWxHLGVBQU0sRUFBQ29DLFNBQVMsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sSUFBSSxDQUFDcUUsVUFBVSxDQUFDaEosZ0JBQWdCLENBQUM7SUFFdkMsTUFBTTRHLFFBQVEsR0FBRyxNQUFNRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUNoRyxJQUFJLEVBQUVtSSxXQUFXLENBQUM7SUFFaEUsT0FBTztNQUNMRyxPQUFPLEVBQUUsSUFBSTtNQUNickM7SUFDRixDQUFDO0VBQ0g7QUFDRjtBQUFDLElBQUFzQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXhKLE9BQUEsR0FFY3FJLFlBQVkiLCJpZ25vcmVMaXN0IjpbXX0=
206
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX2RlYnVnIiwiX2VsZW1lbnRzSW50ZXJhY3Rpb25zIiwiX25hdmlnYXRpb24iLCJfdHJhbnNhY3Rpb25zIiwiX2Jhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJkZWJ1ZyIsImdldERlYnVnIiwiQkFTRV9VUkwiLCJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfVVJMIiwiRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCIsIkRBVEVfRk9STUFUIiwiQUNDT1VOVF9CTE9DS0VEX01TRyIsIklOVkFMSURfUEFTU1dPUkRfTVNHIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkludmFsaWRQYXNzd29yZCIsIm9wdGlvbnMiLCJwYWdlIiwiRXJyb3IiLCJlcnJvck1lc3NhZ2UiLCJwYWdlRXZhbEFsbCIsImVsZW1lbnQiLCJfZWxlbWVudCQiLCJwYXJlbnRFbGVtZW50IiwiY2hpbGRyZW4iLCJpbm5lclRleHQiLCJzdGFydHNXaXRoIiwiQWNjb3VudEJsb2NrZWQiLCJsYWJlbCIsIl9sYWJlbCQiLCJDaGFuZ2VQYXNzd29yZCIsImNyZWF0ZUxvZ2luRmllbGRzIiwiY3JlZGVudGlhbHMiLCJzZWxlY3RvciIsInZhbHVlIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsImV4dHJhY3RUcmFuc2FjdGlvbnNGcm9tUGFnZSIsInRyYW5zYWN0aW9ucyIsInN0YXR1cyIsImxlbmd0aCIsInJlc3VsdCIsIm1hcCIsInJhd1RyYW5zYWN0aW9uIiwiZGF0ZSIsIm1vbWVudCIsIkRhdGVVVEMiLCJtaWxsaXNlY29uZHMiLCJ0b0lTT1N0cmluZyIsIm5ld1RyYW5zYWN0aW9uIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJwcm9jZXNzZWREYXRlIiwiZGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsImlkZW50aWZpZXIiLCJSZWZlcmVuY2VOdW1iZXJMb25nIiwibWVtbyIsIkFkZGl0aW9uYWxEYXRhIiwib3JpZ2luYWxDdXJyZW5jeSIsIlNIRUtFTF9DVVJSRU5DWSIsImNoYXJnZWRBbW91bnQiLCJBbW91bnQiLCJvcmlnaW5hbEFtb3VudCIsImhhbmdQcm9jZXNzIiwidGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwic2V0VGltZW91dCIsImNsaWNrQnlYUGF0aCIsInhwYXRoIiwid2FpdEZvclNlbGVjdG9yIiwidmlzaWJsZSIsImVsbSIsIiQkIiwiY2xpY2siLCJyZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyIsInN0ciIsInJlcGxhY2UiLCJmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQiLCJzdGFydERhdGUiLCJhY2NvdW50SWQiLCJ3YWl0VW50aWxFbGVtZW50Rm91bmQiLCJjbGlja0J1dHRvbiIsImZpbGxJbnB1dCIsImZvcm1hdCIsImZvY3VzIiwiZmluYWxSZXNwb25zZSIsIndhaXRGb3JSZXNwb25zZSIsInJlc3BvbnNlIiwidXJsIiwicmVxdWVzdCIsIm1ldGhvZCIsInJlc3BvbnNlSnNvbiIsImpzb24iLCJhY2NvdW50TnVtYmVyIiwiSlNPTiIsInBhcnNlIiwianNvblJlc3AiLCJwZW5kaW5nVHJhbnNhY3Rpb25zIiwiVG9kYXlUcmFuc2FjdGlvbnNJdGVtcyIsIkhpc3RvcnlUcmFuc2FjdGlvbnNJdGVtcyIsImJhbGFuY2UiLCJCYWxhbmNlRGlzcGxheSIsInBhcnNlRmxvYXQiLCJ1bmRlZmluZWQiLCJwZW5kaW5nVHhucyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiY29tcGxldGVkVHhucyIsIkNvbXBsZXRlZCIsInR4bnMiLCJmZXRjaFRyYW5zYWN0aW9ucyIsImFjY291bnRzIiwiYWNjb3VudHNJZHMiLCJldmFsdWF0ZSIsIkFycmF5IiwiZnJvbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInRleHRDb250ZW50IiwicHVzaCIsIm5hdmlnYXRlVG9Mb2dpbiIsImxvZ2luQnV0dG9uU2VsZWN0b3IiLCJsb2dpblVybCIsInBhZ2VFdmFsIiwiaHJlZiIsImdvdG8iLCJ3YWl0Rm9yTmF2aWdhdGlvbiIsIndhaXRVbnRpbCIsImFsbCIsIndhaXRGb3JQb3N0TG9naW4iLCJyYWNlIiwiTGV1bWlTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2hlY2tSZWFkaW5lc3MiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwiZmV0Y2hEYXRhIiwibWluaW11bVN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJhZGQiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJ0b0RhdGUiLCJzdGFydE1vbWVudCIsIm1heCIsIm5hdmlnYXRlVG8iLCJzdWNjZXNzIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmFwZXJzL2xldW1pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQsIHsgdHlwZSBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdHlwZSBQYWdlIH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHtcbiAgY2xpY2tCdXR0b24sXG4gIGZpbGxJbnB1dCxcbiAgcGFnZUV2YWwsXG4gIHBhZ2VFdmFsQWxsLFxuICB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRGb3JOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsIFRyYW5zYWN0aW9uVHlwZXMsXG4gIHR5cGUgVHJhbnNhY3Rpb24sXG4gIHR5cGUgVHJhbnNhY3Rpb25zQWNjb3VudCxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgdHlwZSBMb2dpbk9wdGlvbnMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgdHlwZSBTY3JhcGVyU2NyYXBpbmdSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ2xldW1pJyk7XG5jb25zdCBCQVNFX1VSTCA9ICdodHRwczovL2hiMi5iYW5rbGV1bWkuY28uaWwnO1xuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3LmxldW1pLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfVVJMID0gYCR7QkFTRV9VUkx9L2VCYW5raW5nL1NPL1NQQS5hc3B4Iy90cy9CdXNpbmVzc0FjY291bnRUcng/V2lkZ2V0UGFyPTFgO1xuY29uc3QgRklMVEVSRURfVFJBTlNBQ1RJT05TX1VSTCA9IGAke0JBU0VfVVJMfS9DaGFubmVsV0NGL0Jyb2tlci5zdmMvUHJvY2Vzc1JlcXVlc3Q/bW9kdWxlTmFtZT1VQ19TT18yN19HZXRCdXNpbmVzc0FjY291bnRUcnhgO1xuXG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC5NTS5ZWSc7XG5jb25zdCBBQ0NPVU5UX0JMT0NLRURfTVNHID0gJ9eU157XoNeV15kg15fXodeV150nO1xuY29uc3QgSU5WQUxJRF9QQVNTV09SRF9NU0cgPSAn15DXl9eTINeQ15Ug15nXldeq16gg157XpNeo15jXmSDXlNeU15bXk9eU15XXqiDXqdee16HXqNeqINep15LXldeZ15nXnS4g16DXmdeq158g15zXoNeh15XXqiDXqdeV15EnO1xuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL2ViYW5raW5nXFwvU09cXC9TUEEuYXNweC9pXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFtcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJ3N2ZyNDYXBhXzEnLCAnJywgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICByZXR1cm4gKGVsZW1lbnRbMF0/LnBhcmVudEVsZW1lbnQ/LmNoaWxkcmVuWzFdIGFzIEhUTUxEaXZFbGVtZW50KT8uaW5uZXJUZXh0O1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZXJyb3JNZXNzYWdlPy5zdGFydHNXaXRoKElOVkFMSURfUEFTU1dPUkRfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogWyAvLyBOT1RJQ0UgLSBtaWdodCBub3QgYmUgcmVsZXZhbnQgc3RhcnRpbmcgdGhlIExldW1pIHJlLWRlc2lnbiBkdXJpbmcgMjAyMiBTZXBcbiAgICAgIGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucyB8fCAhb3B0aW9ucy5wYWdlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHBhZ2Ugb3B0aW9ucyBhcmd1bWVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHBhZ2VFdmFsQWxsKG9wdGlvbnMucGFnZSwgJy5lcnJIZWFkZXInLCAnJywgKGxhYmVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChsYWJlbFswXSBhcyBIVE1MRWxlbWVudCk/LmlubmVyVGV4dDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZT8uc3RhcnRzV2l0aChBQ0NPVU5UX0JMT0NLRURfTVNHKTtcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXTogWydodHRwczovL2hiMi5iYW5rbGV1bWkuY28uaWwvYXV0aGVudGljYXRlJ10sIC8vIE5PVElDRSAtIG1pZ2h0IG5vdCBiZSByZWxldmFudCBzdGFydGluZyB0aGUgTGV1bWkgcmUtZGVzaWduIGR1cmluZyAyMDIyIFNlcFxuICB9O1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16nXnSDXntep16rXntepXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogJ2lucHV0W3BsYWNlaG9sZGVyPVwi16HXmdeh157XlFwiXScsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zOiBhbnlbXSwgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzKTogVHJhbnNhY3Rpb25bXSB7XG4gIGlmICh0cmFuc2FjdGlvbnMgPT09IG51bGwgfHwgdHJhbnNhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25bXSA9IHRyYW5zYWN0aW9ucy5tYXAoKHJhd1RyYW5zYWN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudChyYXdUcmFuc2FjdGlvbi5EYXRlVVRDKS5taWxsaXNlY29uZHMoMCkudG9JU09TdHJpbmcoKTtcbiAgICBjb25zdCBuZXdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb24gPSB7XG4gICAgICBzdGF0dXMsXG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBkYXRlLFxuICAgICAgZGVzY3JpcHRpb246IHJhd1RyYW5zYWN0aW9uLkRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgaWRlbnRpZmllcjogcmF3VHJhbnNhY3Rpb24uUmVmZXJlbmNlTnVtYmVyTG9uZyxcbiAgICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLkFkZGl0aW9uYWxEYXRhIHx8ICcnLFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogcmF3VHJhbnNhY3Rpb24uQW1vdW50LFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJhd1RyYW5zYWN0aW9uLkFtb3VudCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ld1RyYW5zYWN0aW9uO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBoYW5nUHJvY2Vzcyh0aW1lb3V0OiBudW1iZXIpIHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0J5WFBhdGgocGFnZTogUGFnZSwgeHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBwYWdlLndhaXRGb3JTZWxlY3Rvcih4cGF0aCwgeyB0aW1lb3V0OiAzMDAwMCwgdmlzaWJsZTogdHJ1ZSB9KTtcbiAgY29uc3QgZWxtID0gYXdhaXQgcGFnZS4kJCh4cGF0aCk7XG4gIGF3YWl0IGVsbVswXS5jbGljaygpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvW14wLTkvLV0vZywgJycpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZTogUGFnZSwgc3RhcnREYXRlOiBNb21lbnQsIGFjY291bnRJZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbnNBY2NvdW50PiB7XG4gIC8vIERFVkVMT1BFUiBOT1RJQ0UgdGhlIGFjY291bnQgbnVtYmVyIHJlY2VpdmVkIGZyb20gdGhlIHNlcnZlciBpcyBiZWluZyBhbHRlcmVkIGF0XG4gIC8vIHJ1bnRpbWUgZm9yIHNvbWUgYWNjb3VudHMgYWZ0ZXIgMS0yIHNlY29uZHMgc28gd2UgbmVlZCB0byBoYW5nIHRoZSBwcm9jZXNzIGZvciBhIHNob3J0IHdoaWxlLlxuICBhd2FpdCBoYW5nUHJvY2Vzcyg0MDAwKTtcblxuICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2J1dHRvblt0aXRsZT1cIteX15nXpNeV16kg157Xqten15PXnVwiXScsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYnV0dG9uW3RpdGxlPVwi15fXmdek15XXqSDXnteq16fXk9edXCJdJyk7XG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbicsIHRydWUpO1xuICBhd2FpdCBjbGlja0J1dHRvbihwYWdlLCAnYmxsLXJhZGlvLWJ1dHRvbjpub3QoW2NoZWNrZWRdKScpO1xuXG4gIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbZm9ybWNvbnRyb2xuYW1lPVwidHh0SW5wdXRGcm9tXCJdJywgdHJ1ZSk7XG5cbiAgYXdhaXQgZmlsbElucHV0KFxuICAgIHBhZ2UsXG4gICAgJ2lucHV0W2Zvcm1jb250cm9sbmFtZT1cInR4dElucHV0RnJvbVwiXScsXG4gICAgc3RhcnREYXRlLmZvcm1hdChEQVRFX0ZPUk1BVCksXG4gICk7XG5cbiAgLy8gd2UgbXVzdCBibHVyIHRoZSBmcm9tIGNvbnRyb2wgb3RoZXJ3aXNlIHRoZSBzZWFyY2ggd2lsbCB1c2UgdGhlIHByZXZpb3VzIHZhbHVlXG4gIGF3YWl0IHBhZ2UuZm9jdXMoXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG5cbiAgYXdhaXQgY2xpY2tCdXR0b24ocGFnZSwgXCJidXR0b25bYXJpYS1sYWJlbD0n16HXoNefJ11cIik7XG4gIGNvbnN0IGZpbmFsUmVzcG9uc2UgPSBhd2FpdCBwYWdlLndhaXRGb3JSZXNwb25zZSgocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudXJsKCkgPT09IEZJTFRFUkVEX1RSQU5TQUNUSU9OU19VUkwgJiZcbiAgICAgIHJlc3BvbnNlLnJlcXVlc3QoKS5tZXRob2QoKSA9PT0gJ1BPU1QnO1xuICB9KTtcblxuICBjb25zdCByZXNwb25zZUpzb246IGFueSA9IGF3YWl0IGZpbmFsUmVzcG9uc2UuanNvbigpO1xuXG4gIGNvbnN0IGFjY291bnROdW1iZXIgPSBhY2NvdW50SWQucmVwbGFjZSgnLycsICdfJykucmVwbGFjZSgvW15cXGQtX10vZywgJycpO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXNwb25zZUpzb24uanNvblJlc3ApO1xuXG4gIGNvbnN0IHBlbmRpbmdUcmFuc2FjdGlvbnMgPSByZXNwb25zZS5Ub2RheVRyYW5zYWN0aW9uc0l0ZW1zO1xuICBjb25zdCB0cmFuc2FjdGlvbnMgPSByZXNwb25zZS5IaXN0b3J5VHJhbnNhY3Rpb25zSXRlbXM7XG4gIGNvbnN0IGJhbGFuY2UgPSByZXNwb25zZS5CYWxhbmNlRGlzcGxheSA/IHBhcnNlRmxvYXQocmVzcG9uc2UuQmFsYW5jZURpc3BsYXkpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHBlbmRpbmdUeG5zID0gZXh0cmFjdFRyYW5zYWN0aW9uc0Zyb21QYWdlKHBlbmRpbmdUcmFuc2FjdGlvbnMsIFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyk7XG4gIGNvbnN0IGNvbXBsZXRlZFR4bnMgPSBleHRyYWN0VHJhbnNhY3Rpb25zRnJvbVBhZ2UodHJhbnNhY3Rpb25zLCBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCk7XG4gIGNvbnN0IHR4bnMgPSBbXG4gICAgLi4ucGVuZGluZ1R4bnMsXG4gICAgLi4uY29tcGxldGVkVHhucyxcbiAgXTtcblxuICByZXR1cm4ge1xuICAgIGFjY291bnROdW1iZXIsXG4gICAgYmFsYW5jZSxcbiAgICB0eG5zLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9ucyhwYWdlOiBQYWdlLCBzdGFydERhdGU6IE1vbWVudCk6IFByb21pc2U8VHJhbnNhY3Rpb25zQWNjb3VudFtdPiB7XG4gIGNvbnN0IGFjY291bnRzOiBUcmFuc2FjdGlvbnNBY2NvdW50W10gPSBbXTtcblxuICAvLyBERVZFTE9QRVIgTk9USUNFIHRoZSBhY2NvdW50IG51bWJlciByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIgaXMgYmVpbmcgYWx0ZXJlZCBhdFxuICAvLyBydW50aW1lIGZvciBzb21lIGFjY291bnRzIGFmdGVyIDEtMiBzZWNvbmRzIHNvIHdlIG5lZWQgdG8gaGFuZyB0aGUgcHJvY2VzcyBmb3IgYSBzaG9ydCB3aGlsZS5cbiAgYXdhaXQgaGFuZ1Byb2Nlc3MoNDAwMCk7XG5cbiAgY29uc3QgYWNjb3VudHNJZHMgPSBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IEFycmF5LmZyb20oZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXBwLW1hc2tlZC1udW1iZXItY29tYm8gc3Bhbi5kaXNwbGF5LW51bWJlci1saScpLCAoZSkgPT4gZS50ZXh0Q29udGVudCkpIGFzIHN0cmluZ1tdO1xuXG4gIC8vIGR1ZSB0byBhIGJ1ZywgdGhlIGFsdGVyZWQgdmFsdWUgbWlnaHQgaW5jbHVkZSB1bmRlc2lyZWQgc2lnbnMgbGlrZSAmIHRoYXQgc2hvdWxkIGJlIHJlbW92ZWRcblxuICBpZiAoIWFjY291bnRzSWRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGV4dHJhY3Qgb3IgcGFyc2UgdGhlIGFjY291bnQgbnVtYmVyJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGFjY291bnRJZCBvZiBhY2NvdW50c0lkcykge1xuICAgIGlmIChhY2NvdW50c0lkcy5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBnZXQgbGlzdCBvZiBhY2NvdW50cyBhbmQgY2hlY2sgYWNjb3VudElkXG4gICAgICBhd2FpdCBjbGlja0J5WFBhdGgocGFnZSwgJ3hwYXRoLy8qW2NvbnRhaW5zKEBjbGFzcywgXCJudW1iZXJcIikgYW5kIGNvbnRhaW5zKEBjbGFzcywgXCJjb21iby1pbm5lclwiKV0nKTtcbiAgICAgIGF3YWl0IGNsaWNrQnlYUGF0aChwYWdlLCBgeHBhdGgvL3NwYW5bY29udGFpbnModGV4dCgpLCAnJHthY2NvdW50SWR9JyldYCk7XG4gICAgfVxuXG4gICAgYWNjb3VudHMucHVzaChhd2FpdCBmZXRjaFRyYW5zYWN0aW9uc0ZvckFjY291bnQocGFnZSwgc3RhcnREYXRlLCByZW1vdmVTcGVjaWFsQ2hhcmFjdGVycyhhY2NvdW50SWQpKSk7XG4gIH1cblxuICByZXR1cm4gYWNjb3VudHM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5hdmlnYXRlVG9Mb2dpbihwYWdlOiBQYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGxvZ2luQnV0dG9uU2VsZWN0b3IgPSAnLmVudGVyLWFjY291bnQgYVtvcmlnaW5hbHRpdGxlPVwi15vXoNeZ16HXlCDXnNeX16nXkdeV16DXmlwiXSc7XG4gIGRlYnVnKCd3YWl0IGZvciBob21lcGFnZSB0byBjbGljayBvbiBsb2dpbiBidXR0b24nKTtcbiAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IpO1xuICBkZWJ1ZygnbmF2aWdhdGUgdG8gbG9naW4gcGFnZScpO1xuICBjb25zdCBsb2dpblVybCA9IGF3YWl0IHBhZ2VFdmFsKHBhZ2UsIGxvZ2luQnV0dG9uU2VsZWN0b3IsIG51bGwsIChlbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIChlbGVtZW50IGFzIGFueSkuaHJlZjtcbiAgfSk7XG4gIGRlYnVnKGBuYXZpZ2F0aW5nIHRvIHBhZ2UgKCR7bG9naW5Vcmx9KWApO1xuICBhd2FpdCBwYWdlLmdvdG8obG9naW5VcmwpO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgcGFnZSB0byBiZSBsb2FkZWQgKG5ldHdvcmtpZGxlMiknKTtcbiAgYXdhaXQgd2FpdEZvck5hdmlnYXRpb24ocGFnZSwgeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZTInIH0pO1xuICBkZWJ1Zygnd2FpdGluZyBmb3IgY29tcG9uZW50cyBvZiBsb2dpbiB0byBlbnRlciBjcmVkZW50aWFscycpO1xuICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdpbnB1dFtwbGFjZWhvbGRlcj1cItep150g157Xqdeq157XqVwiXScsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCAnaW5wdXRbcGxhY2Vob2xkZXI9XCLXodeZ16HXnteUXCJdJywgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsIHRydWUpLFxuICBdKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvclBvc3RMb2dpbihwYWdlOiBQYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdhW3RpdGxlPVwi15PXnNeSINec15fXqdeR15XXn1wiXScsIHRydWUsIDYwMDAwKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgJ2Rpdi5tYWluLWNvbnRlbnQnLCBmYWxzZSwgNjAwMDApLFxuICAgIHBhZ2Uud2FpdEZvclNlbGVjdG9yKGB4cGF0aC8vZGl2W2NvbnRhaW5zKHN0cmluZygpLFwiJHtJTlZBTElEX1BBU1NXT1JEX01TR31cIildYCksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsICdmb3JtW2FjdGlvbj1cIi9jaGFuZ2VwYXNzd29yZFwiXScsIHRydWUsIDYwMDAwKSwgLy8gbm90IHN1cmUgaWYgdGhleSBrZXB0IHRoaXMgb25lXG4gIF0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIExldW1pU2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCJidXR0b25bdHlwZT0nc3VibWl0J11cIixcbiAgICAgIGNoZWNrUmVhZGluZXNzOiBhc3luYyAoKSA9PiBuYXZpZ2F0ZVRvTG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHdhaXRGb3JQb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHMoKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgbWluaW11bVN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMywgJ3llYXJzJykuYWRkKDEsICdkYXknKTtcbiAgICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IHRoaXMub3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICAgIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChtaW5pbXVtU3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcblxuICAgIGF3YWl0IHRoaXMubmF2aWdhdGVUbyhUUkFOU0FDVElPTlNfVVJMKTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCBzdGFydE1vbWVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGV1bWlTY3JhcGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQU9BLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGFBQUEsR0FBQUwsT0FBQTtBQUtBLElBQUFNLHVCQUFBLEdBQUFOLE9BQUE7QUFBc0csU0FBQUQsdUJBQUFRLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFHdEcsTUFBTUcsS0FBSyxHQUFHLElBQUFDLGVBQVEsRUFBQyxPQUFPLENBQUM7QUFDL0IsTUFBTUMsUUFBUSxHQUFHLDZCQUE2QjtBQUM5QyxNQUFNQyxTQUFT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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {