payload 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/components/styles.css +1 -1
  2. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
  3. package/dist/admin/components/elements/DocumentFields/index.js +5 -2
  4. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  5. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  6. package/dist/admin/components/elements/EditUpload/index.scss +6 -0
  7. package/dist/admin/components/elements/Header/index.scss +0 -1
  8. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +2 -2
  9. package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +9 -2
  10. package/dist/admin/components/elements/Popup/index.scss +20 -2
  11. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +3 -3
  12. package/dist/admin/components/forms/Form/fieldReducer.js +3 -3
  13. package/dist/admin/components/forms/RenderFields/index.scss +1 -0
  14. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  15. package/dist/admin/components/forms/field-types/JSON/index.js +17 -9
  16. package/dist/admin/components/forms/field-types/Text/Input.d.ts +3 -0
  17. package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
  18. package/dist/admin/components/forms/field-types/Text/Input.js +33 -5
  19. package/dist/admin/components/forms/field-types/Text/index.d.ts.map +1 -1
  20. package/dist/admin/components/forms/field-types/Text/index.js +48 -5
  21. package/dist/admin/components/forms/field-types/Text/index.scss +4 -2
  22. package/dist/admin/components/forms/withCondition/WatchCondition.js +3 -3
  23. package/dist/admin/components/templates/Default/index.scss +5 -0
  24. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  25. package/dist/admin/components/views/Account/index.js +3 -4
  26. package/dist/admin/components/views/Global/index.js +2 -2
  27. package/dist/admin/components/views/collections/Edit/formatFields.js +2 -2
  28. package/dist/admin/components/views/collections/Edit/index.js +2 -2
  29. package/dist/admin/hooks/useTitle.d.ts.map +1 -1
  30. package/dist/admin/hooks/useTitle.js +9 -2
  31. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -2
  32. package/dist/database/migrations/migrate.d.ts.map +1 -1
  33. package/dist/database/migrations/migrate.js +11 -11
  34. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  35. package/dist/database/migrations/migrateDown.js +11 -9
  36. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  37. package/dist/database/migrations/migrateRefresh.js +16 -15
  38. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  39. package/dist/database/migrations/migrateReset.js +11 -9
  40. package/dist/database/migrations/migrationTemplate.d.ts +1 -1
  41. package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
  42. package/dist/database/migrations/migrationTemplate.js +3 -3
  43. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  44. package/dist/database/migrations/migrationsCollection.js +4 -3
  45. package/dist/database/types.d.ts +6 -4
  46. package/dist/database/types.d.ts.map +1 -1
  47. package/dist/fields/config/schema.d.ts.map +1 -1
  48. package/dist/fields/config/schema.js +10 -1
  49. package/dist/fields/config/types.d.ts +15 -1
  50. package/dist/fields/config/types.d.ts.map +1 -1
  51. package/dist/fields/config/types.js +1 -1
  52. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  53. package/dist/fields/validations.d.ts.map +1 -1
  54. package/dist/fields/validations.js +33 -11
  55. package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
  56. package/dist/graphql/schema/buildMutationInputType.js +2 -2
  57. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  58. package/dist/graphql/schema/buildObjectType.js +2 -2
  59. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  60. package/dist/utilities/configToJSONSchema.js +14 -1
  61. package/dist/utilities/initTransaction.d.ts.map +1 -1
  62. package/dist/utilities/initTransaction.js +4 -2
  63. package/dist/utilities/isValidID.d.ts.map +1 -1
  64. package/dist/utilities/isValidID.js +11 -2
  65. package/dist/versions/buildCollectionFields.js +13 -13
  66. package/package.json +3 -3
@@ -18,9 +18,9 @@ function _interop_require_default(obj) {
18
18
  };
19
19
  }
20
20
  const promise = async ({ id, collection, context, data, doc, docWithLocales, errors, field, global, mergeLocaleActions, operation, path, req, siblingData, siblingDoc, siblingDocWithLocales, skipValidation })=>{
21
- const passesCondition = field.admin?.condition ? field.admin.condition(data, siblingData, {
21
+ const passesCondition = field.admin?.condition ? Boolean(field.admin.condition(data, siblingData, {
22
22
  user: req.user
23
- }) : true;
23
+ })) : true;
24
24
  let skipValidationFromHere = skipValidation || !passesCondition;
25
25
  const defaultLocale = req.payload.config?.localization ? req.payload.config.localization?.defaultLocale : 'en';
26
26
  const operationLocale = req.locale || defaultLocale;
@@ -314,4 +314,4 @@ const promise = async ({ id, collection, context, data, doc, docWithLocales, err
314
314
  }
315
315
  };
316
316
 
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldEV4aXN0aW5nUm93RG9jIH0gZnJvbSAnLi9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRvY1dpdGhMb2NhbGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBlcnJvcnM6IHsgZmllbGQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXVxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBtZXJnZUxvY2FsZUFjdGlvbnM6ICgoKSA9PiB2b2lkKVtdXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gIHBhdGg6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNpYmxpbmdEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBza2lwVmFsaWRhdGlvbjogYm9vbGVhblxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgZm9sbG93aW5nIGFjdGlvbnMsIGluIG9yZGVyOlxuLy8gLSBSdW4gY29uZGl0aW9uXG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3Ncbi8vIC0gVmFsaWRhdGUgZGF0YVxuLy8gLSBUcmFuc2Zvcm0gZGF0YSBmb3Igc3RvcmFnZVxuLy8gLSBVbmZsYXR0ZW4gbG9jYWxlc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBlcnJvcnMsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgb3BlcmF0aW9uLFxuICBwYXRoLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gIHNraXBWYWxpZGF0aW9uLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBwYXNzZXNDb25kaXRpb24gPSBmaWVsZC5hZG1pbj8uY29uZGl0aW9uXG4gICAgPyBmaWVsZC5hZG1pbi5jb25kaXRpb24oZGF0YSwgc2libGluZ0RhdGEsIHsgdXNlcjogcmVxLnVzZXIgfSlcbiAgICA6IHRydWVcbiAgbGV0IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSBza2lwVmFsaWRhdGlvbiB8fCAhcGFzc2VzQ29uZGl0aW9uXG5cbiAgY29uc3QgZGVmYXVsdExvY2FsZSA9IHJlcS5wYXlsb2FkLmNvbmZpZz8ubG9jYWxpemF0aW9uXG4gICAgPyByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uPy5kZWZhdWx0TG9jYWxlXG4gICAgOiAnZW4nXG4gIGNvbnN0IG9wZXJhdGlvbkxvY2FsZSA9IHJlcS5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZVxuXG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBpZiB0aGUgZmllbGQgaXMgbG9jYWxpemVkIGFuZCB0aGUgaW5jb21pbmcgZGF0YSBpcyBudWxsXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBvcGVyYXRpb25Mb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpIHtcbiAgICAgIGlmIChbJ2FycmF5JywgJ2Jsb2NrcyddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsKSB7XG4gICAgICAgIHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlQ2hhbmdlKSB7XG4gICAgICBhd2FpdCBmaWVsZC5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZVxuICAgIGlmICghc2tpcFZhbGlkYXRpb25Gcm9tSGVyZSAmJiBmaWVsZC52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgdmFsdWVUb1ZhbGlkYXRlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIGxldCBqc29uRXJyb3JcblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdqc29uJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBqc29uRXJyb3IgPSBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IGZpZWxkLnZhbGlkYXRlKHZhbHVlVG9WYWxpZGF0ZSwge1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZzogcmVxLnBheWxvYWQuY29uZmlnLFxuICAgICAgICBkYXRhOiBtZXJnZShkb2MsIGRhdGEsIHsgYXJyYXlNZXJnZTogKF8sIHNvdXJjZSkgPT4gc291cmNlIH0pLFxuICAgICAgICBqc29uRXJyb3IsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcGF5bG9hZDogcmVxLnBheWxvYWQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IG1lcmdlKHNpYmxpbmdEb2MsIHNpYmxpbmdEYXRhLCB7IGFycmF5TWVyZ2U6IChfLCBzb3VyY2UpID0+IHNvdXJjZSB9KSxcbiAgICAgICAgdDogcmVxLnQsXG4gICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgfSlcblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGAke3BhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgbWVzc2FnZTogdmFsaWRhdGlvblJlc3VsdCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQdXNoIG1lcmdlIGxvY2FsZSBhY3Rpb24gaWYgYXBwbGljYWJsZVxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgaWYgKHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBjb25zdCB7IGxvY2FsaXphdGlvbiB9ID0gcmVxLnBheWxvYWQuY29uZmlnXG4gICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoKGxvY2FsaXplZFZhbHVlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID1cbiAgICAgICAgICAgICAgbG9jYWxlID09PSByZXEubG9jYWxlXG4gICAgICAgICAgICAgICAgPyBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgICAgICAgICAgIDogc2libGluZ0RvY1dpdGhMb2NhbGVzPy5bZmllbGQubmFtZV0/Lltsb2NhbGVdXG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBsb2NhbGUgdmFsdWUgaWYgaXQncyBub3QgdW5kZWZpbmVkXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYWxpemVkVmFsdWVzLFxuICAgICAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRWYWx1ZXNcbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBsb2NhbGVzIHdpdGggZGF0YSwgc2V0IHRoZSBkYXRhXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbG9jYWxlRGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIC8vIFRyYW5zZm9ybSBwb2ludCBkYXRhIGZvciBzdG9yYWdlXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzBdICE9PSBudWxsICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzFdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7XG4gICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoc2libGluZ0RhdGFbZmllbGQubmFtZV1bMF0pLFxuICAgICAgICAgICAgcGFyc2VGbG9hdChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVsxXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvYzogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBzaWJsaW5nRG9jV2l0aExvY2FsZXNbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSksXG4gICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCByb3dTaWJsaW5nRG9jV2l0aExvY2FsZXMgPSBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAgIGNvbnN0IGJsb2NrVHlwZVRvTWF0Y2ggPSByb3cuYmxvY2tUeXBlIHx8IHJvd1NpYmxpbmdEb2MuYmxvY2tUeXBlXG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gYmxvY2tUeXBlVG9NYXRjaClcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgICAgICAgICBlcnJvcnMsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9LiR7aX0uYCxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlczogcm93U2libGluZ0RvY1dpdGhMb2NhbGVzLFxuICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgc2tpcFZhbGlkYXRpb246IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJQYXRoID0gcGF0aFxuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgIGxldCB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiUGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gXG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoOiB0YWJQYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiB0YWJTaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJpZCIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiZGF0YSIsImRvYyIsImRvY1dpdGhMb2NhbGVzIiwiZXJyb3JzIiwiZmllbGQiLCJnbG9iYWwiLCJtZXJnZUxvY2FsZUFjdGlvbnMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwic2tpcFZhbGlkYXRpb24iLCJwYXNzZXNDb25kaXRpb24iLCJhZG1pbiIsImNvbmRpdGlvbiIsInVzZXIiLCJza2lwVmFsaWRhdGlvbkZyb21IZXJlIiwiZGVmYXVsdExvY2FsZSIsInBheWxvYWQiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJvcGVyYXRpb25Mb2NhbGUiLCJsb2NhbGUiLCJmaWVsZEFmZmVjdHNEYXRhIiwibG9jYWxpemVkIiwiaW5jbHVkZXMiLCJ0eXBlIiwibmFtZSIsImhvb2tzIiwiYmVmb3JlQ2hhbmdlIiwicmVkdWNlIiwicHJpb3JIb29rIiwiY3VycmVudEhvb2siLCJob29rZWRWYWx1ZSIsIm9yaWdpbmFsRG9jIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInZhbGlkYXRlIiwidmFsdWVUb1ZhbGlkYXRlIiwianNvbkVycm9yIiwiSlNPTiIsInBhcnNlIiwiZSIsInZhbGlkYXRpb25SZXN1bHQiLCJtZXJnZSIsImFycmF5TWVyZ2UiLCJfIiwic291cmNlIiwidCIsInB1c2giLCJtZXNzYWdlIiwibG9jYWxlRGF0YSIsImxvY2FsZUNvZGVzIiwibG9jYWxpemVkVmFsdWVzIiwiZmllbGRWYWx1ZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJjb29yZGluYXRlcyIsInBhcnNlRmxvYXQiLCJ0cmF2ZXJzZUZpZWxkcyIsImZpZWxkcyIsInJvd3MiLCJwcm9taXNlcyIsImZvckVhY2giLCJyb3ciLCJpIiwiZ2V0RXhpc3RpbmdSb3dEb2MiLCJhbGwiLCJyb3dTaWJsaW5nRG9jIiwicm93U2libGluZ0RvY1dpdGhMb2NhbGVzIiwiYmxvY2tUeXBlVG9NYXRjaCIsImJsb2NrVHlwZSIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsInNsdWciLCJ0YWJQYXRoIiwidGFiU2libGluZ0RhdGEiLCJ0YWJTaWJsaW5nRG9jIiwidGFiU2libGluZ0RvY1dpdGhMb2NhbGVzIiwidGFiSGFzTmFtZSIsInRhYnMiLCJtYXAiLCJ0YWIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkF3Q3ZCQTs7O2VBQUFBOzs7a0VBdkNLO3VCQVEyQjttQ0FDWDtnQ0FDSDs7Ozs7O0FBNkJ4QixNQUFNQSxVQUFVLE9BQU8sRUFDNUJDLEVBQUUsRUFDRkMsVUFBVSxFQUNWQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsR0FBRyxFQUNIQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLGtCQUFrQixFQUNsQkMsU0FBUyxFQUNUQyxJQUFJLEVBQ0pDLEdBQUcsRUFDSEMsV0FBVyxFQUNYQyxVQUFVLEVBQ1ZDLHFCQUFxQixFQUNyQkMsY0FBYyxFQUNUO0lBQ0wsTUFBTUMsa0JBQWtCVixNQUFNVyxLQUFLLEVB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
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCwgVGFiQXNGaWVsZCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldEV4aXN0aW5nUm93RG9jIH0gZnJvbSAnLi9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRvY1dpdGhMb2NhbGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBlcnJvcnM6IHsgZmllbGQ6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXVxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBtZXJnZUxvY2FsZUFjdGlvbnM6ICgoKSA9PiB2b2lkKVtdXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uXG4gIHBhdGg6IHN0cmluZ1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHNpYmxpbmdEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBza2lwVmFsaWRhdGlvbjogYm9vbGVhblxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgZm9sbG93aW5nIGFjdGlvbnMsIGluIG9yZGVyOlxuLy8gLSBSdW4gY29uZGl0aW9uXG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3Ncbi8vIC0gVmFsaWRhdGUgZGF0YVxuLy8gLSBUcmFuc2Zvcm0gZGF0YSBmb3Igc3RvcmFnZVxuLy8gLSBVbmZsYXR0ZW4gbG9jYWxlc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGRvY1dpdGhMb2NhbGVzLFxuICBlcnJvcnMsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgb3BlcmF0aW9uLFxuICBwYXRoLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxuICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gIHNraXBWYWxpZGF0aW9uLFxufTogQXJncyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBwYXNzZXNDb25kaXRpb24gPSBmaWVsZC5hZG1pbj8uY29uZGl0aW9uXG4gICAgPyBCb29sZWFuKGZpZWxkLmFkbWluLmNvbmRpdGlvbihkYXRhLCBzaWJsaW5nRGF0YSwgeyB1c2VyOiByZXEudXNlciB9KSlcbiAgICA6IHRydWVcbiAgbGV0IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSBza2lwVmFsaWRhdGlvbiB8fCAhcGFzc2VzQ29uZGl0aW9uXG5cbiAgY29uc3QgZGVmYXVsdExvY2FsZSA9IHJlcS5wYXlsb2FkLmNvbmZpZz8ubG9jYWxpemF0aW9uXG4gICAgPyByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uPy5kZWZhdWx0TG9jYWxlXG4gICAgOiAnZW4nXG4gIGNvbnN0IG9wZXJhdGlvbkxvY2FsZSA9IHJlcS5sb2NhbGUgfHwgZGVmYXVsdExvY2FsZVxuXG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBpZiB0aGUgZmllbGQgaXMgbG9jYWxpemVkIGFuZCB0aGUgaW5jb21pbmcgZGF0YSBpcyBudWxsXG4gICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBvcGVyYXRpb25Mb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpIHtcbiAgICAgIGlmIChbJ2FycmF5JywgJ2Jsb2NrcyddLmluY2x1ZGVzKGZpZWxkLnR5cGUpICYmIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsKSB7XG4gICAgICAgIHNraXBWYWxpZGF0aW9uRnJvbUhlcmUgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlQ2hhbmdlKSB7XG4gICAgICBhd2FpdCBmaWVsZC5ob29rcy5iZWZvcmVDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZVxuICAgIGlmICghc2tpcFZhbGlkYXRpb25Gcm9tSGVyZSAmJiBmaWVsZC52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgdmFsdWVUb1ZhbGlkYXRlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIGxldCBqc29uRXJyb3JcblxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdqc29uJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBqc29uRXJyb3IgPSBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IGZpZWxkLnZhbGlkYXRlKHZhbHVlVG9WYWxpZGF0ZSwge1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZzogcmVxLnBheWxvYWQuY29uZmlnLFxuICAgICAgICBkYXRhOiBtZXJnZShkb2MsIGRhdGEsIHsgYXJyYXlNZXJnZTogKF8sIHNvdXJjZSkgPT4gc291cmNlIH0pLFxuICAgICAgICBqc29uRXJyb3IsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcGF5bG9hZDogcmVxLnBheWxvYWQsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IG1lcmdlKHNpYmxpbmdEb2MsIHNpYmxpbmdEYXRhLCB7IGFycmF5TWVyZ2U6IChfLCBzb3VyY2UpID0+IHNvdXJjZSB9KSxcbiAgICAgICAgdDogcmVxLnQsXG4gICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgfSlcblxuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGAke3BhdGh9JHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgbWVzc2FnZTogdmFsaWRhdGlvblJlc3VsdCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQdXNoIG1lcmdlIGxvY2FsZSBhY3Rpb24gaWYgYXBwbGljYWJsZVxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgaWYgKHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgICBjb25zdCB7IGxvY2FsaXphdGlvbiB9ID0gcmVxLnBheWxvYWQuY29uZmlnXG4gICAgICAgICAgY29uc3QgbG9jYWxlRGF0YSA9IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoKGxvY2FsaXplZFZhbHVlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID1cbiAgICAgICAgICAgICAgbG9jYWxlID09PSByZXEubG9jYWxlXG4gICAgICAgICAgICAgICAgPyBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgICAgICAgICAgIDogc2libGluZ0RvY1dpdGhMb2NhbGVzPy5bZmllbGQubmFtZV0/Lltsb2NhbGVdXG5cbiAgICAgICAgICAgIC8vIHVwZGF0ZSBsb2NhbGUgdmFsdWUgaWYgaXQncyBub3QgdW5kZWZpbmVkXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4ubG9jYWxpemVkVmFsdWVzLFxuICAgICAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRWYWx1ZXNcbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBsb2NhbGVzIHdpdGggZGF0YSwgc2V0IHRoZSBkYXRhXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGxvY2FsZURhdGEpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbG9jYWxlRGF0YVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIC8vIFRyYW5zZm9ybSBwb2ludCBkYXRhIGZvciBzdG9yYWdlXG4gICAgICBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzBdICE9PSBudWxsICYmXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdWzFdICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7XG4gICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoc2libGluZ0RhdGFbZmllbGQubmFtZV1bMF0pLFxuICAgICAgICAgICAgcGFyc2VGbG9hdChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVsxXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICB0eXBlOiAnUG9pbnQnLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvYzogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBzaWJsaW5nRG9jV2l0aExvY2FsZXNbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgICAgICAgIGVycm9ycyxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHBhdGg6IGAke3BhdGh9JHtmaWVsZC5uYW1lfS4ke2l9LmAsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSksXG4gICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCByb3dTaWJsaW5nRG9jV2l0aExvY2FsZXMgPSBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAgIGNvbnN0IGJsb2NrVHlwZVRvTWF0Y2ggPSByb3cuYmxvY2tUeXBlIHx8IHJvd1NpYmxpbmdEb2MuYmxvY2tUeXBlXG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gYmxvY2tUeXBlVG9NYXRjaClcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgICAgICAgICBlcnJvcnMsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcGF0aDogYCR7cGF0aH0ke2ZpZWxkLm5hbWV9LiR7aX0uYCxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlczogcm93U2libGluZ0RvY1dpdGhMb2NhbGVzLFxuICAgICAgICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZG9jV2l0aExvY2FsZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbWVyZ2VMb2NhbGVBY3Rpb25zLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIHNpYmxpbmdEb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgc2tpcFZhbGlkYXRpb246IHNraXBWYWxpZGF0aW9uRnJvbUhlcmUsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJQYXRoID0gcGF0aFxuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgIGxldCB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1xuXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiUGF0aCA9IGAke3BhdGh9JHtmaWVsZC5uYW1lfS5gXG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpXG4gICAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyA9IHNpYmxpbmdEb2NXaXRoTG9jYWxlc1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGRvY1dpdGhMb2NhbGVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoOiB0YWJQYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY1dpdGhMb2NhbGVzOiB0YWJTaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICd0YWJzJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBkb2NXaXRoTG9jYWxlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG1lcmdlTG9jYWxlQWN0aW9ucyxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwYXRoLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jV2l0aExvY2FsZXMsXG4gICAgICAgIHNraXBWYWxpZGF0aW9uOiBza2lwVmFsaWRhdGlvbkZyb21IZXJlLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInByb21pc2UiLCJpZCIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiZGF0YSIsImRvYyIsImRvY1dpdGhMb2NhbGVzIiwiZXJyb3JzIiwiZmllbGQiLCJnbG9iYWwiLCJtZXJnZUxvY2FsZUFjdGlvbnMiLCJvcGVyYXRpb24iLCJwYXRoIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY1dpdGhMb2NhbGVzIiwic2tpcFZhbGlkYXRpb24iLCJwYXNzZXNDb25kaXRpb24iLCJhZG1pbiIsImNvbmRpdGlvbiIsIkJvb2xlYW4iLCJ1c2VyIiwic2tpcFZhbGlkYXRpb25Gcm9tSGVyZSIsImRlZmF1bHRMb2NhbGUiLCJwYXlsb2FkIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwib3BlcmF0aW9uTG9jYWxlIiwibG9jYWxlIiwiZmllbGRBZmZlY3RzRGF0YSIsImxvY2FsaXplZCIsImluY2x1ZGVzIiwidHlwZSIsIm5hbWUiLCJob29rcyIsImJlZm9yZUNoYW5nZSIsInJlZHVjZSIsInByaW9ySG9vayIsImN1cnJlbnRIb29rIiwiaG9va2VkVmFsdWUiLCJvcmlnaW5hbERvYyIsInZhbHVlIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ2YWxpZGF0ZSIsInZhbHVlVG9WYWxpZGF0ZSIsImpzb25FcnJvciIsIkpTT04iLCJwYXJzZSIsImUiLCJ2YWxpZGF0aW9uUmVzdWx0IiwibWVyZ2UiLCJhcnJheU1lcmdlIiwiXyIsInNvdXJjZSIsInQiLCJwdXNoIiwibWVzc2FnZSIsImxvY2FsZURhdGEiLCJsb2NhbGVDb2RlcyIsImxvY2FsaXplZFZhbHVlcyIsImZpZWxkVmFsdWUiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiY29vcmRpbmF0ZXMiLCJwYXJzZUZsb2F0IiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJyb3dzIiwicHJvbWlzZXMiLCJmb3JFYWNoIiwicm93IiwiaSIsImdldEV4aXN0aW5nUm93RG9jIiwiYWxsIiwicm93U2libGluZ0RvYyIsInJvd1NpYmxpbmdEb2NXaXRoTG9jYWxlcyIsImJsb2NrVHlwZVRvTWF0Y2giLCJibG9ja1R5cGUiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJzbHVnIiwidGFiUGF0aCIsInRhYlNpYmxpbmdEYXRhIiwidGFiU2libGluZ0RvYyIsInRhYlNpYmxpbmdEb2NXaXRoTG9jYWxlcyIsInRhYkhhc05hbWUiLCJ0YWJzIiwibWFwIiwidGFiIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBd0N2QkE7OztlQUFBQTs7O2tFQXZDSzt1QkFRMkI7bUNBQ1g7Z0NBQ0g7Ozs7OztBQTZCeEIsTUFBTUEsVUFBVSxPQUFPLEVBQzVCQyxFQUFFLEVBQ0ZDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEdBQUcsRUFDSEMsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxrQkFBa0IsRUFDbEJDLFNBQVMsRUFDVEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxxQkFBcUIsRUFDckJDLGNBQWMsRUFDVDtJQUNMLE1BQU1DLGtC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
@@ -1 +1 @@
1
- {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AA6GD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
1
+ {"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuCtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AA6GD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
@@ -74,19 +74,41 @@ function _interop_require_default(obj) {
74
74
  default: obj
75
75
  };
76
76
  }
77
- const text = (value, { config, maxLength: fieldMaxLength, minLength, required, t })=>{
77
+ const text = (value, { config, hasMany, maxLength: fieldMaxLength, maxRows, minLength, minRows, required, t })=>{
78
78
  let maxLength;
79
- if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
80
- if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength;
81
- if (value && maxLength && value.length > maxLength) {
82
- return t('validation:shorterThanMax', {
83
- maxLength
84
- });
79
+ if (!required) {
80
+ if (!value) return true;
85
81
  }
86
- if (value && minLength && value?.length < minLength) {
87
- return t('validation:longerThanMin', {
88
- minLength
82
+ if (hasMany === true) {
83
+ const lengthValidationResult = validateArrayLength(value, {
84
+ maxRows,
85
+ minRows,
86
+ required,
87
+ t
89
88
  });
89
+ if (typeof lengthValidationResult === 'string') return lengthValidationResult;
90
+ }
91
+ if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength;
92
+ if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength;
93
+ const stringsToValidate = Array.isArray(value) ? value : [
94
+ value
95
+ ];
96
+ for (const stringValue of stringsToValidate){
97
+ const length = stringValue?.length || 0;
98
+ if (typeof maxLength === 'number' && length > maxLength) {
99
+ return t('validation:shorterThanMax', {
100
+ label: t('value'),
101
+ maxLength,
102
+ stringValue
103
+ });
104
+ }
105
+ if (typeof minLength === 'number' && length < minLength) {
106
+ return t('validation:longerThanMin', {
107
+ label: t('value'),
108
+ minLength,
109
+ stringValue
110
+ });
111
+ }
90
112
  }
91
113
  if (required) {
92
114
  if (typeof value !== 'string' || value?.length === 0) {
@@ -458,4 +480,4 @@ const _default = {
458
480
  upload
459
481
  };
460
482
 
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcblxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGVtYWlsOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBFbWFpbEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiAhL1xcU1teXFxzQF0qQFxcUytcXC5cXFMrLy50ZXN0KHZhbHVlKSkgfHwgKCF2YWx1ZSAmJiByZXF1aXJlZCkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjplbWFpbEFkZHJlc3MnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0YXJlYUZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY29kZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ29kZUZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QganNvbjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgSlNPTkZpZWxkICYgeyBqc29uRXJyb3I/OiBzdHJpbmcgfT4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsganNvbkVycm9yLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoanNvbkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNoZWNrYm94OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDaGVja2JveEZpZWxkPiA9IChcbiAgdmFsdWU6IGJvb2xlYW4sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB8fCAocmVxdWlyZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246dHJ1ZU9yRmFsc2UnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIERhdGVGaWVsZD4gPSAodmFsdWUsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUudG9TdHJpbmcoKSkpKSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUtbGluZSAqL1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpub3RWYWxpZERhdGUnLCB7IHZhbHVlIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQ6IFZhbGlkYXRlPG9iamVjdCwgdW5rbm93biwgUmljaFRleHRGaWVsZCwgUmljaFRleHRGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gb3B0aW9ucz8uZWRpdG9yXG5cbiAgcmV0dXJuIGF3YWl0IGVkaXRvci52YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucylcbn1cblxuY29uc3QgdmFsaWRhdGVBcnJheUxlbmd0aDogYW55ID0gKFxuICB2YWx1ZSxcbiAgb3B0aW9uczoge1xuICAgIG1heFJvd3M/OiBudW1iZXJcbiAgICBtaW5Sb3dzPzogbnVtYmVyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdDogKGtleTogc3RyaW5nLCBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSkgPT4gc3RyaW5nXG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiAwXG5cbiAgaWYgKCFyZXF1aXJlZCAmJiBhcnJheUxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWVcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIWFycmF5TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgbnVtYmVyOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBOdW1iZXJGaWVsZD4gPSAoXG4gIHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSxcbiAgeyBoYXNNYW55LCBtYXgsIG1heFJvd3MsIG1pbiwgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG4gICAgaWYgKHR5cGVvZiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykgcmV0dXJuIGxlbmd0aFZhbGlkYXRpb25SZXN1bHRcbiAgfVxuXG4gIGlmICghdmFsdWUgJiYgIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgIC8vIGlmIG5vIHZhbHVlIGlzIHByZXNlbnQsIHZhbGlkYXRlIGJhc2VkIG9uIHJlcXVpcmVkXG4gICAgaWYgKHJlcXVpcmVkKSByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgaWYgKCFyZXF1aXJlZCkgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IG51bWJlcnNUb1ZhbGlkYXRlOiBudW1iZXJbXSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgZm9yIChjb25zdCBudW1iZXIgb2YgbnVtYmVyc1RvVmFsaWRhdGUpIHtcbiAgICBpZiAoIWlzTnVtYmVyKG51bWJlcikpIHJldHVybiB0KCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcblxuICAgIGNvbnN0IG51bWJlclZhbHVlID0gcGFyc2VGbG9hdChudW1iZXIgYXMgdW5rbm93biBhcyBzdHJpbmcpXG5cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgJiYgbnVtYmVyVmFsdWUgPiBtYXgpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWF4LCB2YWx1ZSB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA8IG1pbikge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtaW4sIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGFycmF5OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBBcnJheUZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5leHBvcnQgY29uc3QgYmxvY2tzOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBCbG9ja0ZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5jb25zdCB2YWxpZGF0ZUZpbHRlck9wdGlvbnM6IFZhbGlkYXRlID0gYXN5bmMgKFxuICB2YWx1ZSxcbiAgeyBpZCwgZGF0YSwgZmlsdGVyT3B0aW9ucywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxLCBzaWJsaW5nRGF0YSwgdCwgdXNlciB9LFxuKSA9PiB7XG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiBmaWx0ZXJPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSkge1xuICAgIGNvbnN0IG9wdGlvbnM6IHtcbiAgICAgIFtjb2xsZWN0aW9uOiBzdHJpbmddOiAobnVtYmVyIHwgc3RyaW5nKVtdXG4gICAgfSA9IHt9XG5cbiAgICBjb25zdCBmYWxzZUNvbGxlY3Rpb25zOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSB0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycgPyBbcmVsYXRpb25Ub10gOiByZWxhdGlvblRvXG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29sbGVjdGlvbnMubWFwKGFzeW5jIChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIGxldCBvcHRpb25GaWx0ZXIgPVxuICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGF3YWl0IGZpbHRlck9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25UbzogY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBmaWx0ZXJPcHRpb25zXG5cbiAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gdHJ1ZSkge1xuICAgICAgICAgIG9wdGlvbkZpbHRlciA9IG51bGxcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8udmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZmluZFdoZXJlID0ge1xuICAgICAgICAgICAgYW5kOiBbeyBpZDogeyBpbjogdmFsdWVJRHMgfSB9XSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyKSBmaW5kV2hlcmUuYW5kLnB1c2gob3B0aW9uRmlsdGVyKVxuXG4gICAgICAgICAgaWYgKG9wdGlvbkZpbHRlciA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGZhbHNlQ29sbGVjdGlvbnMucHVzaChvcHRpb25GaWx0ZXIpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgIGxpbWl0OiAwLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB3aGVyZTogZmluZFdoZXJlLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IGRvYy5pZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKGZhbHNlQ29sbGVjdGlvbnMuZmluZCgoc2x1ZykgPT4gcmVsYXRpb25UbyA9PT0gc2x1ZykpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zPy5jb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gb3B0aW9ucy5yZWxhdGlvblRvKVxuICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBvcHRpb25zPy5wYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbmZpZywgbWF4Um93cywgbWluUm93cywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxdWlyZWQsIHQgfSA9IG9wdGlvbnNcblxuICBpZiAoKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSkgJiYgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGlmIChtaW5Sb3dzICYmIHZhbHVlLmxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgncm93cycpLCBtaW46IG1pblJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB2YWx1ZS5sZW5ndGggPiBtYXhSb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWF4OiBtYXhSb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIC8vIGN1c3RvbSBpZFxuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWVzdGVkSUQgPT09IG51bGwpIHJldHVybiBmYWxzZVxuXG4gICAgICBjb25zdCBpZEZpZWxkID0gY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gY29sbGVjdGlvblNsdWcpXG4gICAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBwYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgICAgcmV0dXJuICFpc1ZhbGlkSUQocmVxdWVzdGVkSUQsIHR5cGUpXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFRoaXMgcmVsYXRpb25zaGlwIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGludmFsaWQgcmVsYXRpb25zaGlwczogJHtpbnZhbGlkUmVsYXRpb25zaGlwc1xuICAgICAgICAubWFwKChlcnIsIGludmFsaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfWBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyl9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Q6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFNlbGVjdEZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgaGFzTWFueSwgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICB2YWx1ZS5zb21lKFxuICAgICAgKGlucHV0KSA9PlxuICAgICAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gaW5wdXQgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbj8udmFsdWUgPT09IGlucHV0KSxcbiAgICAgICAgKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKGhhc01hbnkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgKHZhbHVlIGFzIFtdKT8ubGVuZ3RoID09PSAwKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJhZGlvOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSYWRpb0ZpZWxkPiA9ICh2YWx1ZSwgeyBvcHRpb25zLCByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGNvbnN0IHZhbHVlTWF0Y2hlc09wdGlvbiA9IG9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgICByZXR1cm4gdmFsdWVNYXRjaGVzT3B0aW9uIHx8IHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWQgPyB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJykgOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwb2ludDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUG9pbnRGaWVsZD4gPSAoXG4gIHZhbHVlOiBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddID0gWycnLCAnJ10sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBsbmcgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVswXSkpXG4gIGNvbnN0IGxhdCA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzFdKSlcbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKCh2YWx1ZVswXSAmJiB2YWx1ZVsxXSAmJiB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJykgfHxcbiAgICAgIE51bWJlci5pc05hTihsbmcpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obGF0KSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAhPT0gMikpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzVHdvTnVtYmVycycpXG4gIH1cblxuICBpZiAoKHZhbHVlWzFdICYmIE51bWJlci5pc05hTihsbmcpKSB8fCAodmFsdWVbMF0gJiYgTnVtYmVyLmlzTmFOKGxhdCkpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXJyYXksXG4gIGJsb2NrcyxcbiAgY2hlY2tib3gsXG4gIGNvZGUsXG4gIGRhdGUsXG4gIGVtYWlsLFxuICBqc29uLFxuICBudW1iZXIsXG4gIHBhc3N3b3JkLFxuICBwb2ludCxcbiAgcmFkaW8sXG4gIHJlbGF0aW9uc2hpcCxcbiAgcmljaFRleHQsXG4gIHNlbGVjdCxcbiAgdGV4dCxcbiAgdGV4dGFyZWEsXG4gIHVwbG9hZCxcbn1cbiJdLCJuYW1lcyI6WyJ0ZXh0IiwicGFzc3dvcmQiLCJlbWFpbCIsInRleHRhcmVhIiwiY29kZSIsImpzb24iLCJjaGVja2JveCIsImRhdGUiLCJyaWNoVGV4dCIsIm51bWJlciIsImFycmF5IiwiYmxvY2tzIiwidXBsb2FkIiwicmVsYXRpb25zaGlwIiwic2VsZWN0IiwicmFkaW8iLCJwb2ludCIsInZhbHVlIiwiY29uZmlnIiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJyZXF1aXJlZCIsInQiLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsImxlbmd0aCIsInBheWxvYWQiLCJ0ZXN0IiwidW5kZWZpbmVkIiwianNvbkVycm9yIiwiaXNOYU4iLCJEYXRlIiwicGFyc2UiLCJ0b1N0cmluZyIsIm9wdGlvbnMiLCJlZGl0b3IiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlQXJyYXlMZW5ndGgiLCJtYXhSb3dzIiwibWluUm93cyIsImFycmF5TGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiY291bnQiLCJsYWJlbCIsImhhc01hbnkiLCJtYXgiLCJtaW4iLCJsZW5ndGhWYWxpZGF0aW9uUmVzdWx0IiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiZmFsc2VDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwidmFsdWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbGxlY3Rpb24iLCJvcHRpb25GaWx0ZXIiLCJ2YWx1ZUlEcyIsImZvckVhY2giLCJ2YWwiLCJwdXNoIiwiZmluZFdoZXJlIiwiYW5kIiwiaW4iLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImRvY3MiLCJkb2MiLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEJhQSxJQUFJO2VBQUpBOztJQXlCQUMsUUFBUTtlQUFSQTs7SUF3QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUF1Q0FDLE1BQU07ZUFBTkE7O0lBa0NBQyxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQWtIQUMsTUFBTTtlQUFOQTs7SUFvQkFDLFlBQVk7ZUFBWkE7O0lBZ0VBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUF0ZXNCOzJCQUNJOzBCQUNEOzJCQUNDO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhC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
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB7IGNvbmZpZywgaGFzTWFueSwgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWF4Um93cywgbWluTGVuZ3RoLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICghcmVxdWlyZWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKGhhc01hbnkgPT09IHRydWUpIHtcbiAgICBjb25zdCBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID0gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxuICAgIGlmICh0eXBlb2YgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG5cbiAgY29uc3Qgc3RyaW5nc1RvVmFsaWRhdGU6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IHN0cmluZ1ZhbHVlIG9mIHN0cmluZ3NUb1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gc3RyaW5nVmFsdWU/Lmxlbmd0aCB8fCAwXG5cbiAgICBpZiAodHlwZW9mIG1heExlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1heExlbmd0aCwgc3RyaW5nVmFsdWUgfSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbkxlbmd0aCA9PT0gJ251bWJlcicgJiYgbGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluTGVuZ3RoLCBzdHJpbmdWYWx1ZSB9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8IHZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcGFzc3dvcmQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgY29uZmlnLCBtYXhMZW5ndGg6IGZpZWxkTWF4TGVuZ3RoLCBtaW5MZW5ndGgsIHBheWxvYWQsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgbGV0IG1heExlbmd0aDogbnVtYmVyXG5cbiAgaWYgKHR5cGVvZiBjb25maWc/LmRlZmF1bHRNYXhUZXh0TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcbiAgaWYgKHZhbHVlICYmIG1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpzaG9ydGVyVGhhbk1heCcsIHsgbWF4TGVuZ3RoIH0pXG4gIH1cblxuICBpZiAodmFsdWUgJiYgbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IG1pbkxlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxvbmdlclRoYW5NaW4nLCB7IG1pbkxlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjb2RlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDb2RlRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBqc29uOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBKU09ORmllbGQgJiB7IGpzb25FcnJvcj86IHN0cmluZyB9PiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBqc29uRXJyb3IsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmICF2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChqc29uRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3g6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENoZWNrYm94RmllbGQ+ID0gKFxuICB2YWx1ZTogYm9vbGVhbixcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmICgodmFsdWUgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHx8IChyZXF1aXJlZCAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjp0cnVlT3JGYWxzZScpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgRGF0ZUZpZWxkPiA9ICh2YWx1ZSwgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZS50b1N0cmluZygpKSkpIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1saW5lICovXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICh2YWx1ZSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOm5vdFZhbGlkRGF0ZScsIHsgdmFsdWUgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByaWNoVGV4dDogVmFsaWRhdGU8b2JqZWN0LCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUFycmF5TGVuZ3RoOiBhbnkgPSAoXG4gIHZhbHVlLFxuICBvcHRpb25zOiB7XG4gICAgbWF4Um93cz86IG51bWJlclxuICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICByZXF1aXJlZD86IGJvb2xlYW5cbiAgICB0OiAoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB8IHN0cmluZyB9KSA9PiBzdHJpbmdcbiAgfSxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAoIXJlcXVpcmVkICYmIGFycmF5TGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZVxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhYXJyYXlMZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBudW1iZXI6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIE51bWJlckZpZWxkPiA9IChcbiAgdmFsdWU6IG51bWJlciB8IG51bWJlcltdLFxuICB7IGhhc01hbnksIG1heCwgbWF4Um93cywgbWluLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChoYXNNYW55ID09PSB0cnVlKSB7XG4gICAgY29uc3QgbGVuZ3RoVmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRlQXJyYXlMZW5ndGgodmFsdWUsIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSlcbiAgICBpZiAodHlwZW9mIGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPT09ICdzdHJpbmcnKSByZXR1cm4gbGVuZ3RoVmFsaWRhdGlvblJlc3VsdFxuICB9XG5cbiAgaWYgKCF2YWx1ZSAmJiAhaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgLy8gaWYgbm8gdmFsdWUgaXMgcHJlc2VudCwgdmFsaWRhdGUgYmFzZWQgb24gcmVxdWlyZWRcbiAgICBpZiAocmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICBpZiAoIXJlcXVpcmVkKSByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGZhbHNlQ29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgbGV0IG9wdGlvbkZpbHRlciA9XG4gICAgICAgICAgdHlwZW9mIGZpbHRlck9wdGlvbnMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IGZpbHRlck9wdGlvbnNcblxuICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSB0cnVlKSB7XG4gICAgICAgICAgb3B0aW9uRmlsdGVyID0gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVJRHM6IChudW1iZXIgfCBzdHJpbmcpW10gPSBbXVxuXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHZhbHVlSURzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICBhbmQ6IFt7IGlkOiB7IGluOiB2YWx1ZUlEcyB9IH1dLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZmFsc2VDb2xsZWN0aW9ucy5wdXNoKG9wdGlvbkZpbHRlcilcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHdoZXJlOiBmaW5kV2hlcmUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSBbXVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb246IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEOiBudW1iZXIgfCBzdHJpbmdcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoZmFsc2VDb2xsZWN0aW9ucy5maW5kKChzbHVnKSA9PiByZWxhdGlvblRvID09PSBzbHVnKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3B0aW9uc1tjb2xsZWN0aW9uXS5pbmRleE9mKHJlcXVlc3RlZElEKSA9PT0gLTFcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnZhbGlkUmVsYXRpb25zaGlwcy5yZWR1Y2UoKGVyciwgaW52YWxpZCwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfSR7XG4gICAgICAgICAgaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID09PSBpICsgMSA/ICcsJyA6ICcnXG4gICAgICAgIH0gYFxuICAgICAgfSwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9ucycpKSBhcyBzdHJpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHVwbG9hZDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVXBsb2FkRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiBvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IG9wdGlvbnM/LmNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBvcHRpb25zLnJlbGF0aW9uVG8pXG4gICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIG9wdGlvbnM/LnBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgaWYgKCFpc1ZhbGlkSUQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnZhbGlkVXBsb2FkSUQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXA6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJlbGF0aW9uc2hpcEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWU6IFJlbGF0aW9uc2hpcFZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnLCBtYXhSb3dzLCBtaW5Sb3dzLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGlmICgoIXZhbHVlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApKSAmJiByZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgaWYgKG1pblJvd3MgJiYgdmFsdWUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1pbjogbWluUm93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cblxuICAgIGlmIChtYXhSb3dzICYmIHZhbHVlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgncm93cycpLCBtYXg6IG1heFJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvblNsdWc6IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0ZWRJRCA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGNvbnN0IGlkRmllbGQgPSBjb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIHBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgICByZXR1cm4gIWlzVmFsaWRJRChyZXF1ZXN0ZWRJRCwgdHlwZSlcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgVGhpcyByZWxhdGlvbnNoaXAgZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgaW52YWxpZCByZWxhdGlvbnNoaXBzOiAke2ludmFsaWRSZWxhdGlvbnNoaXBzXG4gICAgICAgIC5tYXAoKGVyciwgaW52YWxpZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9YFxuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKX1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgU2VsZWN0RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBoYXNNYW55LCBvcHRpb25zLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlLnNvbWUoXG4gICAgICAoaW5wdXQpID0+XG4gICAgICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSBpbnB1dCB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uPy52YWx1ZSA9PT0gaW5wdXQpLFxuICAgICAgICApLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAoaGFzTWFueSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAodmFsdWUgYXMgW10pPy5sZW5ndGggPT09IDApKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmFkaW86IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJhZGlvRmllbGQ+ID0gKHZhbHVlLCB7IG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgdmFsdWVNYXRjaGVzT3B0aW9uID0gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICAgIHJldHVybiB2YWx1ZU1hdGNoZXNPcHRpb24gfHwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZCA/IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSA6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBvaW50OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBQb2ludEZpZWxkPiA9IChcbiAgdmFsdWU6IFtudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZ10gPSBbJycsICcnXSxcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGNvbnN0IGxuZyA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzBdKSlcbiAgY29uc3QgbGF0ID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMV0pKVxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAoKHZhbHVlWzBdICYmIHZhbHVlWzFdICYmIHR5cGVvZiBsbmcgIT09ICdudW1iZXInICYmIHR5cGVvZiBsYXQgIT09ICdudW1iZXInKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxuZykgfHxcbiAgICAgIE51bWJlci5pc05hTihsYXQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoICE9PSAyKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNUd29OdW1iZXJzJylcbiAgfVxuXG4gIGlmICgodmFsdWVbMV0gJiYgTnVtYmVyLmlzTmFOKGxuZykpIHx8ICh2YWx1ZVswXSAmJiBOdW1iZXIuaXNOYU4obGF0KSkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhcnJheSxcbiAgYmxvY2tzLFxuICBjaGVja2JveCxcbiAgY29kZSxcbiAgZGF0ZSxcbiAgZW1haWwsXG4gIGpzb24sXG4gIG51bWJlcixcbiAgcGFzc3dvcmQsXG4gIHBvaW50LFxuICByYWRpbyxcbiAgcmVsYXRpb25zaGlwLFxuICByaWNoVGV4dCxcbiAgc2VsZWN0LFxuICB0ZXh0LFxuICB0ZXh0YXJlYSxcbiAgdXBsb2FkLFxufVxuIl0sIm5hbWVzIjpbInRleHQiLCJwYXNzd29yZCIsImVtYWlsIiwidGV4dGFyZWEiLCJjb2RlIiwianNvbiIsImNoZWNrYm94IiwiZGF0ZSIsInJpY2hUZXh0IiwibnVtYmVyIiwiYXJyYXkiLCJibG9ja3MiLCJ1cGxvYWQiLCJyZWxhdGlvbnNoaXAiLCJzZWxlY3QiLCJyYWRpbyIsInBvaW50IiwidmFsdWUiLCJjb25maWciLCJoYXNNYW55IiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtYXhSb3dzIiwibWluTGVuZ3RoIiwibWluUm93cyIsInJlcXVpcmVkIiwidCIsImxlbmd0aFZhbGlkYXRpb25SZXN1bHQiLCJ2YWxpZGF0ZUFycmF5TGVuZ3RoIiwiZGVmYXVsdE1heFRleHRMZW5ndGgiLCJzdHJpbmdzVG9WYWxpZGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsInN0cmluZ1ZhbHVlIiwibGVuZ3RoIiwibGFiZWwiLCJwYXlsb2FkIiwidGVzdCIsInVuZGVmaW5lZCIsImpzb25FcnJvciIsImlzTmFOIiwiRGF0ZSIsInBhcnNlIiwidG9TdHJpbmciLCJvcHRpb25zIiwiZWRpdG9yIiwidmFsaWRhdGUiLCJhcnJheUxlbmd0aCIsImNvdW50IiwibWF4IiwibWluIiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiZmFsc2VDb2xsZWN0aW9ucyIsImNvbGxlY3Rpb25zIiwidmFsdWVzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImNvbGxlY3Rpb24iLCJvcHRpb25GaWx0ZXIiLCJ2YWx1ZUlEcyIsImZvckVhY2giLCJ2YWwiLCJwdXNoIiwiZmluZFdoZXJlIiwiYW5kIiwiaW4iLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImRvY3MiLCJkb2MiLCJpbnZhbGlkUmVsYXRpb25zaGlwcyIsImZpbHRlciIsInJlcXVlc3RlZElEIiwic2x1ZyIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJjb2xsZWN0aW9uU2x1ZyIsImpvaW4iLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEJhQSxJQUFJO2VBQUpBOztJQXlDQUMsUUFBUTtlQUFSQTs7SUF3QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUF1Q0FDLE1BQU07ZUFBTkE7O0lBa0NBQyxLQUFLO2VBQUxBOztJQU9BQyxNQUFNO2VBQU5BOztJQWtIQUMsTUFBTTtlQUFOQTs7SUFvQkFDLFlBQVk7ZUFBWkE7O0lBZ0VBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUF0ZnNCOzJCQUNJOzBCQUNEOzJCQUNDO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhCLE9BQThDLENBQ3pEaUIsT0FDQSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsV0FBV0MsY0FBYyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLENBQUMsRUFBRTtJQUV4RixJQUFJTjtJQUVKLElBQUksQ0FBQ0ssVUFBVTtRQUNiLElBQUksQ0FBQ1IsT0FBTyxPQUFPO0lBQ3JCO0lBRUEsSUFBSUUsWUFBWSxNQUFNO1FBQ3BCLE1BQU1RLHlCQUF5QkMsb0JBQW9CWCxPQUFPO1lBQUVLO1lBQVNFO1lBQVNDO1lBQVVDO1FBQUU7UUFDMUYsSUFBSSxPQUFPQywyQkFB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
@@ -1 +1 @@
1
- {"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildMutationInputType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AAEtF,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAc5C,eAAO,MAAM,mBAAmB,iCAElB,yBAAyB,KACpC,iBAQF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,iBAAS,sBAAsB,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,UAAQ,GACpB,sBAAsB,GAAG,IAAI,CA0O/B;AAED,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"buildMutationInputType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildMutationInputType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAe,MAAM,SAAS,CAAA;AAEtF,OAAO,EAIL,sBAAsB,EAKvB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAc5C,eAAO,MAAM,mBAAmB,iCAElB,yBAAyB,KACpC,iBAQF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,IAAI,EAAE,MAAM,GAAG,uBAAuB,CAAA;CACxC,CAAA;AAED,iBAAS,sBAAsB,CAC7B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,aAAa,UAAQ,GACpB,sBAAsB,GAAG,IAAI,CAgP/B;AAED,eAAe,sBAAsB,CAAA"}
@@ -232,7 +232,7 @@ function buildMutationInputType(payload, name, fields, parentName, forceNullable
232
232
  text: (inputObjectTypeConfig, field)=>({
233
233
  ...inputObjectTypeConfig,
234
234
  [field.name]: {
235
- type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
235
+ type: (0, _withNullableType.default)(field, field.hasMany === true ? new _graphql.GraphQLList(_graphql.GraphQLString) : _graphql.GraphQLString, forceNullable)
236
236
  }
237
237
  }),
238
238
  textarea: (inputObjectTypeConfig, field)=>({
@@ -273,4 +273,4 @@ function buildMutationInputType(payload, name, fields, parentName, forceNullable
273
273
  }
274
274
  const _default = buildMutationInputType;
275
275
 
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE11dGF0aW9uSW5wdXRUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoUUxJbnB1dEZpZWxkQ29uZmlnLCBHcmFwaFFMU2NhbGFyVHlwZSwgR3JhcGhRTFR5cGUgfSBmcm9tICdncmFwaHFsJ1xuXG5pbXBvcnQge1xuICBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMRmxvYXQsXG4gIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTFN0cmluZyxcbn0gZnJvbSAnZ3JhcGhxbCdcbmltcG9ydCB7IEdyYXBoUUxKU09OIH0gZnJvbSAnZ3JhcGhxbC10eXBlLWpzb24nXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2tGaWVsZCxcbiAgQ2hlY2tib3hGaWVsZCxcbiAgQ29kZUZpZWxkLFxuICBDb2xsYXBzaWJsZUZpZWxkLFxuICBEYXRlRmllbGQsXG4gIEVtYWlsRmllbGQsXG4gIEZpZWxkLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi8uLi9wYXlsb2FkJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBvcHRpb25Jc09iamVjdCwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgeyB0b1dvcmRzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2Zvcm1hdExhYmVscydcbmltcG9ydCB7IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2dyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkJ1xuaW1wb3J0IGNvbWJpbmVQYXJlbnROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9jb21iaW5lUGFyZW50TmFtZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IHdpdGhOdWxsYWJsZVR5cGUgZnJvbSAnLi93aXRoTnVsbGFibGVUeXBlJ1xuXG5jb25zdCBpZEZpZWxkVHlwZXMgPSB7XG4gIG51bWJlcjogR3JhcGhRTEludCxcbiAgdGV4dDogR3JhcGhRTFN0cmluZyxcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvbGxlY3Rpb25JRFR5cGUgPSAoXG4gIHBheWxvYWQ6IFBheWxvYWQsXG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG4pOiBHcmFwaFFMU2NhbGFyVHlwZSA9PiB7XG4gIGNvbnN0IGlkRmllbGQgPSBjb2xsZWN0aW9uLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICBpZiAoIWlkRmllbGQpIHtcbiAgICByZXR1cm4gaWRGaWVsZFR5cGVzW3BheWxvYWQuZGIuZGVmYXVsdElEVHlwZV1cbiAgfVxuXG4gIHJldHVybiBpZEZpZWxkVHlwZXNbaWRGaWVsZC50eXBlXVxufVxuXG5leHBvcnQgdHlwZSBJbnB1dE9iamVjdFR5cGVDb25maWcgPSB7XG4gIFtwYXRoOiBzdHJpbmddOiBHcmFwaFFMSW5wdXRGaWVsZENvbmZpZ1xufVxuXG5mdW5jdGlvbiBidWlsZE11dGF0aW9uSW5wdXRUeXBlKFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpZWxkczogRmllbGRbXSxcbiAgcGFyZW50TmFtZTogc3RyaW5nLFxuICBmb3JjZU51bGxhYmxlID0gZmFsc2UsXG4pOiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHwgbnVsbCB7XG4gIGNvbnN0IGZpZWxkVG9TY2hlbWFNYXAgPSB7XG4gICAgYXJyYXk6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEFycmF5RmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMTGlzdDxHcmFwaFFMVHlwZT4gfCBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIGZ1bGxOYW1lLFxuICAgICAgICBmaWVsZC5maWVsZHMsXG4gICAgICAgIGZ1bGxOYW1lLFxuICAgICAgKVxuXG4gICAgICBpZiAoIXR5cGUpIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcblxuICAgICAgdHlwZSA9IG5ldyBHcmFwaFFMTGlzdCh3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlLCBmb3JjZU51bGxhYmxlKSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGJsb2NrczogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQmxvY2tGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiBHcmFwaFFMSlNPTiB9LFxuICAgIH0pLFxuICAgIGNoZWNrYm94OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBDaGVja2JveEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgfSksXG4gICAgY29kZTogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29sbGFwc2libGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChhY2MsIHN1YkZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChhY2MsIHN1YkZpZWxkKVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBpbnB1dE9iamVjdFR5cGVDb25maWcpLFxuICAgIGRhdGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGVtYWlsOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgZ3JvdXA6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEdyb3VwRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkID0gZ3JvdXBPclRhYkhhc1JlcXVpcmVkU3ViZmllbGQoZmllbGQpXG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG4gICAgICBsZXQgdHlwZTogR3JhcGhRTFR5cGUgPSBidWlsZE11dGF0aW9uSW5wdXRUeXBlKHBheWxvYWQsIGZ1bGxOYW1lLCBmaWVsZC5maWVsZHMsIGZ1bGxOYW1lKVxuXG4gICAgICBpZiAoIXR5cGUpIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcblxuICAgICAgaWYgKHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkKSB0eXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICBqc29uOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTEpTT04sIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgbnVtYmVyOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkLm5hbWUgPT09ICdpZCcgPyBHcmFwaFFMSW50IDogR3JhcGhRTEZsb2F0XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXToge1xuICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIGZpZWxkLmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFBvaW50RmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgbmV3IEdyYXBoUUxMaXN0KEdyYXBoUUxGbG9hdCksIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgcmFkaW86IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICByZWxhdGlvbnNoaXA6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICB0eXBlIFBheWxvYWRHcmFwaFFMUmVsYXRpb25zaGlwVHlwZSA9XG4gICAgICAgIHwgR3JhcGhRTElucHV0T2JqZWN0VHlwZVxuICAgICAgICB8IEdyYXBoUUxMaXN0PEdyYXBoUUxTY2FsYXJUeXBlPlxuICAgICAgICB8IEdyYXBoUUxTY2FsYXJUeXBlXG4gICAgICBsZXQgdHlwZTogUGF5bG9hZEdyYXBoUUxSZWxhdGlvbnNoaXBUeXBlXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gYCR7Y29tYmluZVBhcmVudE5hbWUoXG4gICAgICAgICAgcGFyZW50TmFtZSxcbiAgICAgICAgICB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpLFxuICAgICAgICApfVJlbGF0aW9uc2hpcElucHV0YFxuICAgICAgICB0eXBlID0gbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHtmdWxsTmFtZX1SZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKHZhbHVlcywgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtYXROYW1lKG9wdGlvbildOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IHsgdHlwZTogR3JhcGhRTEpTT04gfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5jb25maWcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IGZpZWxkLmhhc01hbnkgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICByaWNoVGV4dDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUmljaFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMSlNPTiwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICByb3c6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgoYWNjLCBzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRTdWJGaWVsZCkgcmV0dXJuIGFkZFN1YkZpZWxkKGFjYywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIGlucHV0T2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBTZWxlY3RGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0dGVkTmFtZSA9IGAke2NvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpfV9NdXRhdGlvbklucHV0YFxuICAgICAgbGV0IHR5cGU6IEdyYXBoUUxUeXBlID0gbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgICAgIHZhbHVlczogZmllbGQub3B0aW9ucy5yZWR1Y2UoKHZhbHVlcywgb3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUob3B0aW9uLnZhbHVlKV06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KHR5cGUpIDogdHlwZVxuICAgICAgdHlwZSA9IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIHR5cGUsIGZvcmNlTnVsbGFibGUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRhYnNGaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIGZpZWxkLnRhYnMucmVkdWNlKChhY2MsIHRhYikgPT4ge1xuICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCA9IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkKGZpZWxkKVxuICAgICAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUocGF5bG9hZCwgZnVsbE5hbWUsIHRhYi5maWVsZHMsIGZ1bGxOYW1lKVxuXG4gICAgICAgICAgaWYgKCF0eXBlKSByZXR1cm4gYWNjXG5cbiAgICAgICAgICBpZiAocmVxdWlyZXNBdExlYXN0T25lRmllbGQpIHR5cGUgPSBuZXcgR3JhcGhRTE5vbk51bGwodHlwZSlcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCBhY2MpLFxuICAgICAgICB9XG4gICAgICB9LCBpbnB1dE9iamVjdFR5cGVDb25maWcpXG4gICAgfSxcbiAgICB0ZXh0OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGV4dGFyZWFGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVXBsb2FkRmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgfVxuXG4gIGNvbnN0IGZpZWxkTmFtZSA9IGZvcm1hdE5hbWUobmFtZSlcblxuICBjb25zdCBmaWVsZFNjaGVtYXMgPSBmaWVsZHMucmVkdWNlKChpbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkKSA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSBmaWVsZFRvU2NoZW1hTWFwW2ZpZWxkLnR5cGVdXG5cbiAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaW5wdXRPYmplY3RUeXBlQ29uZmlnXG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gZmllbGRTY2hlbWEoaW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZClcbiAgICBpZiAoT2JqZWN0LmtleXMoc2NoZW1hKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgLi4uZmllbGRTY2hlbWEoaW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgfVxuICB9LCB7fSlcblxuICBpZiAoT2JqZWN0LmtleXMoZmllbGRTY2hlbWFzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICBuYW1lOiBgbXV0YXRpb24ke2ZpZWxkTmFtZX1JbnB1dGAsXG4gICAgZmllbGRzOiBmaWVsZFNjaGVtYXMsXG4gIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGVcbiJdLCJuYW1lcyI6WyJnZXRDb2xsZWN0aW9uSURUeXBlIiwiaWRGaWVsZFR5cGVzIiwibnVtYmVyIiwiR3JhcGhRTEludCIsInRleHQiLCJHcmFwaFFMU3RyaW5nIiwicGF5bG9hZCIsImNvbGxlY3Rpb24iLCJpZEZpZWxkIiwiZmllbGRzIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJ0eXBlIiwiYnVpbGRNdXRhdGlvbklucHV0VHlwZSIsInBhcmVudE5hbWUiLCJmb3JjZU51bGxhYmxlIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiaW5wdXRPYmplY3RUeXBlQ29uZmlnIiwiZnVsbE5hbWUiLCJjb21iaW5lUGFyZW50TmFtZSIsInRvV29yZHMiLCJHcmFwaFFMTGlzdCIsIndpdGhOdWxsYWJsZVR5cGUiLCJibG9ja3MiLCJHcmFwaFFMSlNPTiIsImNoZWNrYm94IiwiR3JhcGhRTEJvb2xlYW4iLCJjb2RlIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJhY2MiLCJzdWJGaWVsZCIsImFkZFN1YkZpZWxkIiwiZGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJyZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCIsImdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkIiwiR3JhcGhRTE5vbk51bGwiLCJqc29uIiwiR3JhcGhRTEZsb2F0IiwiaGFzTWFueSIsInBvaW50IiwicmFkaW8iLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiQXJyYXkiLCJpc0FycmF5IiwiR3JhcGhRTElucHV0T2JqZWN0VHlwZSIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsIm9wdGlvbiIsImZvcm1hdE5hbWUiLCJ2YWx1ZSIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJmb3JtYXR0ZWROYW1lIiwib3B0aW9ucyIsIm9wdGlvbklzT2JqZWN0IiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJzdWJGaWVsZFNjaGVtYSIsInRleHRhcmVhIiwidXBsb2FkIiwiZmllbGROYW1lIiwiZmllbGRTY2hlbWFzIiwiZmllbGRTY2hlbWEiLCJzY2hlbWEiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7Ozs7Ozs7Ozs7O0lBcUQxQkEsbUJBQW1CO2VBQW5CQTs7SUFtUWIsT0FBcUM7ZUFBckM7Ozt5QkE1U087aUNBQ3FCO3VCQTRCaUM7OEJBQ3JDOytDQUNzQjswRUFDaEI7bUVBQ1A7eUVBQ007Ozs7OztBQUU3QixNQUFNQyxlQUFlO0lBQ25CQyxRQUFRQyxtQkFBVTtJQUNsQkMsTUFBTUMsc0JBQWE7QUFDckI7QUFFTyxNQUFNTCxzQkFBc0IsQ0FDakNNLFNBQ0FDO0lBRUEsTUFBTUMsVUFBVUQsV0FBV0UsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsUUFBVUMsSUFBQUEsdUJBQWdCLEVBQUNELFVBQVVBLE1BQU1FLElBQUksS0FBSztJQUU1RixJQUFJLENBQUNMLFNBQVM7UUFDWixPQUFPUCxZQUFZLENBQUNLLFFBQVFRLEVBQUUsQ0FBQ0MsYUFBYSxDQUFDO0lBQy9DO0lBRUEsT0FBT2QsWUFBWSxDQUFDTyxRQUFRUSxJQUFJLENBQUM7QUFDbkM7QUFNQSxTQUFTQyx1QkFDUFgsT0FBZ0IsRUFDaEJPLElBQVksRUFDWkosTUFBZSxFQUNmUyxVQUFrQixFQUNsQkMsZ0JBQWdCLEtBQUs7SUFFckIsTUFBTUMsbUJBQW1CO1FBQ3ZCQyxPQUFPLENBQUNDLHVCQUE4Q1g7WUFDcEQsTUFBTVksV0FBV0MsSUFBQUEsMEJBQWlCLEVBQUNOLFlBQVlPLElBQUFBLHFCQUFPLEVBQUNkLE1BQU1FLElBQUksRUFBRTtZQUNuRSxJQUFJRyxPQUErQ0MsdUJBQ2pEWCxTQUNBaUIsVUFDQVosTUFBTUYsTUFBTSxFQUNaYztZQUdGLElBQUksQ0FBQ1AsTUFBTSxPQUFPTTtZQUVsQk4sT0FBTyxJQUFJVSxvQkFBVyxDQUFDQyxJQUFBQSx5QkFBZ0Is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
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE11dGF0aW9uSW5wdXRUeXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoUUxJbnB1dEZpZWxkQ29uZmlnLCBHcmFwaFFMU2NhbGFyVHlwZSwgR3JhcGhRTFR5cGUgfSBmcm9tICdncmFwaHFsJ1xuXG5pbXBvcnQge1xuICBHcmFwaFFMQm9vbGVhbixcbiAgR3JhcGhRTEVudW1UeXBlLFxuICBHcmFwaFFMRmxvYXQsXG4gIEdyYXBoUUxJbnB1dE9iamVjdFR5cGUsXG4gIEdyYXBoUUxJbnQsXG4gIEdyYXBoUUxMaXN0LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTFN0cmluZyxcbn0gZnJvbSAnZ3JhcGhxbCdcbmltcG9ydCB7IEdyYXBoUUxKU09OIH0gZnJvbSAnZ3JhcGhxbC10eXBlLWpzb24nXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2tGaWVsZCxcbiAgQ2hlY2tib3hGaWVsZCxcbiAgQ29kZUZpZWxkLFxuICBDb2xsYXBzaWJsZUZpZWxkLFxuICBEYXRlRmllbGQsXG4gIEVtYWlsRmllbGQsXG4gIEZpZWxkLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi8uLi9wYXlsb2FkJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBvcHRpb25Jc09iamVjdCwgdGFiSGFzTmFtZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgeyB0b1dvcmRzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2Zvcm1hdExhYmVscydcbmltcG9ydCB7IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2dyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkJ1xuaW1wb3J0IGNvbWJpbmVQYXJlbnROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9jb21iaW5lUGFyZW50TmFtZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IHdpdGhOdWxsYWJsZVR5cGUgZnJvbSAnLi93aXRoTnVsbGFibGVUeXBlJ1xuXG5jb25zdCBpZEZpZWxkVHlwZXMgPSB7XG4gIG51bWJlcjogR3JhcGhRTEludCxcbiAgdGV4dDogR3JhcGhRTFN0cmluZyxcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvbGxlY3Rpb25JRFR5cGUgPSAoXG4gIHBheWxvYWQ6IFBheWxvYWQsXG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG4pOiBHcmFwaFFMU2NhbGFyVHlwZSA9PiB7XG4gIGNvbnN0IGlkRmllbGQgPSBjb2xsZWN0aW9uLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICBpZiAoIWlkRmllbGQpIHtcbiAgICByZXR1cm4gaWRGaWVsZFR5cGVzW3BheWxvYWQuZGIuZGVmYXVsdElEVHlwZV1cbiAgfVxuXG4gIHJldHVybiBpZEZpZWxkVHlwZXNbaWRGaWVsZC50eXBlXVxufVxuXG5leHBvcnQgdHlwZSBJbnB1dE9iamVjdFR5cGVDb25maWcgPSB7XG4gIFtwYXRoOiBzdHJpbmddOiBHcmFwaFFMSW5wdXRGaWVsZENvbmZpZ1xufVxuXG5mdW5jdGlvbiBidWlsZE11dGF0aW9uSW5wdXRUeXBlKFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGZpZWxkczogRmllbGRbXSxcbiAgcGFyZW50TmFtZTogc3RyaW5nLFxuICBmb3JjZU51bGxhYmxlID0gZmFsc2UsXG4pOiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHwgbnVsbCB7XG4gIGNvbnN0IGZpZWxkVG9TY2hlbWFNYXAgPSB7XG4gICAgYXJyYXk6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEFycmF5RmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMTGlzdDxHcmFwaFFMVHlwZT4gfCBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIGZ1bGxOYW1lLFxuICAgICAgICBmaWVsZC5maWVsZHMsXG4gICAgICAgIGZ1bGxOYW1lLFxuICAgICAgKVxuXG4gICAgICBpZiAoIXR5cGUpIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcblxuICAgICAgdHlwZSA9IG5ldyBHcmFwaFFMTGlzdCh3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlLCBmb3JjZU51bGxhYmxlKSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGJsb2NrczogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQmxvY2tGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiBHcmFwaFFMSlNPTiB9LFxuICAgIH0pLFxuICAgIGNoZWNrYm94OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBDaGVja2JveEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgfSksXG4gICAgY29kZTogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29sbGFwc2libGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChhY2MsIHN1YkZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChhY2MsIHN1YkZpZWxkKVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBpbnB1dE9iamVjdFR5cGVDb25maWcpLFxuICAgIGRhdGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGVtYWlsOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgZ3JvdXA6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEdyb3VwRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkID0gZ3JvdXBPclRhYkhhc1JlcXVpcmVkU3ViZmllbGQoZmllbGQpXG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG4gICAgICBsZXQgdHlwZTogR3JhcGhRTFR5cGUgPSBidWlsZE11dGF0aW9uSW5wdXRUeXBlKHBheWxvYWQsIGZ1bGxOYW1lLCBmaWVsZC5maWVsZHMsIGZ1bGxOYW1lKVxuXG4gICAgICBpZiAoIXR5cGUpIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcblxuICAgICAgaWYgKHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkKSB0eXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICBqc29uOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTEpTT04sIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgbnVtYmVyOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkLm5hbWUgPT09ICdpZCcgPyBHcmFwaFFMSW50IDogR3JhcGhRTEZsb2F0XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXToge1xuICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgIGZpZWxkLmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFBvaW50RmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgbmV3IEdyYXBoUUxMaXN0KEdyYXBoUUxGbG9hdCksIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgcmFkaW86IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICByZWxhdGlvbnNoaXA6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICB0eXBlIFBheWxvYWRHcmFwaFFMUmVsYXRpb25zaGlwVHlwZSA9XG4gICAgICAgIHwgR3JhcGhRTElucHV0T2JqZWN0VHlwZVxuICAgICAgICB8IEdyYXBoUUxMaXN0PEdyYXBoUUxTY2FsYXJUeXBlPlxuICAgICAgICB8IEdyYXBoUUxTY2FsYXJUeXBlXG4gICAgICBsZXQgdHlwZTogUGF5bG9hZEdyYXBoUUxSZWxhdGlvbnNoaXBUeXBlXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pKSB7XG4gICAgICAgIGNvbnN0IGZ1bGxOYW1lID0gYCR7Y29tYmluZVBhcmVudE5hbWUoXG4gICAgICAgICAgcGFyZW50TmFtZSxcbiAgICAgICAgICB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpLFxuICAgICAgICApfVJlbGF0aW9uc2hpcElucHV0YFxuICAgICAgICB0eXBlID0gbmV3IEdyYXBoUUxJbnB1dE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHtmdWxsTmFtZX1SZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKHZhbHVlcywgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtYXROYW1lKG9wdGlvbildOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IHsgdHlwZTogR3JhcGhRTEpTT04gfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5jb25maWcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IGZpZWxkLmhhc01hbnkgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICByaWNoVGV4dDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUmljaFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMSlNPTiwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICByb3c6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgoYWNjLCBzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRTdWJGaWVsZCkgcmV0dXJuIGFkZFN1YkZpZWxkKGFjYywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIGlucHV0T2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBTZWxlY3RGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0dGVkTmFtZSA9IGAke2NvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpfV9NdXRhdGlvbklucHV0YFxuICAgICAgbGV0IHR5cGU6IEdyYXBoUUxUeXBlID0gbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgICAgIHZhbHVlczogZmllbGQub3B0aW9ucy5yZWR1Y2UoKHZhbHVlcywgb3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUob3B0aW9uLnZhbHVlKV06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KHR5cGUpIDogdHlwZVxuICAgICAgdHlwZSA9IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIHR5cGUsIGZvcmNlTnVsbGFibGUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRhYnNGaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIGZpZWxkLnRhYnMucmVkdWNlKChhY2MsIHRhYikgPT4ge1xuICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCA9IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkKGZpZWxkKVxuICAgICAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUocGF5bG9hZCwgZnVsbE5hbWUsIHRhYi5maWVsZHMsIGZ1bGxOYW1lKVxuXG4gICAgICAgICAgaWYgKCF0eXBlKSByZXR1cm4gYWNjXG5cbiAgICAgICAgICBpZiAocmVxdWlyZXNBdExlYXN0T25lRmllbGQpIHR5cGUgPSBuZXcgR3JhcGhRTE5vbk51bGwodHlwZSlcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW3RhYi5uYW1lXTogeyB0eXBlIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCBhY2MpLFxuICAgICAgICB9XG4gICAgICB9LCBpbnB1dE9iamVjdFR5cGVDb25maWcpXG4gICAgfSxcbiAgICB0ZXh0OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBmaWVsZC5oYXNNYW55ID09PSB0cnVlID8gbmV3IEdyYXBoUUxMaXN0KEdyYXBoUUxTdHJpbmcpIDogR3JhcGhRTFN0cmluZyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGV4dGFyZWFGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVXBsb2FkRmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgfVxuXG4gIGNvbnN0IGZpZWxkTmFtZSA9IGZvcm1hdE5hbWUobmFtZSlcblxuICBjb25zdCBmaWVsZFNjaGVtYXMgPSBmaWVsZHMucmVkdWNlKChpbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkKSA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSBmaWVsZFRvU2NoZW1hTWFwW2ZpZWxkLnR5cGVdXG5cbiAgICBpZiAodHlwZW9mIGZpZWxkU2NoZW1hICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gaW5wdXRPYmplY3RUeXBlQ29uZmlnXG4gICAgfVxuXG4gICAgY29uc3Qgc2NoZW1hID0gZmllbGRTY2hlbWEoaW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZClcbiAgICBpZiAoT2JqZWN0LmtleXMoc2NoZW1hKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgLi4uZmllbGRTY2hlbWEoaW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZCksXG4gICAgfVxuICB9LCB7fSlcblxuICBpZiAoT2JqZWN0LmtleXMoZmllbGRTY2hlbWFzKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICBuYW1lOiBgbXV0YXRpb24ke2ZpZWxkTmFtZX1JbnB1dGAsXG4gICAgZmllbGRzOiBmaWVsZFNjaGVtYXMsXG4gIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGVcbiJdLCJuYW1lcyI6WyJnZXRDb2xsZWN0aW9uSURUeXBlIiwiaWRGaWVsZFR5cGVzIiwibnVtYmVyIiwiR3JhcGhRTEludCIsInRleHQiLCJHcmFwaFFMU3RyaW5nIiwicGF5bG9hZCIsImNvbGxlY3Rpb24iLCJpZEZpZWxkIiwiZmllbGRzIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJ0eXBlIiwiYnVpbGRNdXRhdGlvbklucHV0VHlwZSIsInBhcmVudE5hbWUiLCJmb3JjZU51bGxhYmxlIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiaW5wdXRPYmplY3RUeXBlQ29uZmlnIiwiZnVsbE5hbWUiLCJjb21iaW5lUGFyZW50TmFtZSIsInRvV29yZHMiLCJHcmFwaFFMTGlzdCIsIndpdGhOdWxsYWJsZVR5cGUiLCJibG9ja3MiLCJHcmFwaFFMSlNPTiIsImNoZWNrYm94IiwiR3JhcGhRTEJvb2xlYW4iLCJjb2RlIiwiY29sbGFwc2libGUiLCJyZWR1Y2UiLCJhY2MiLCJzdWJGaWVsZCIsImFkZFN1YkZpZWxkIiwiZGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJyZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCIsImdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkIiwiR3JhcGhRTE5vbk51bGwiLCJqc29uIiwiR3JhcGhRTEZsb2F0IiwiaGFzTWFueSIsInBvaW50IiwicmFkaW8iLCJyZWxhdGlvbnNoaXAiLCJyZWxhdGlvblRvIiwiQXJyYXkiLCJpc0FycmF5IiwiR3JhcGhRTElucHV0T2JqZWN0VHlwZSIsIkdyYXBoUUxFbnVtVHlwZSIsInZhbHVlcyIsIm9wdGlvbiIsImZvcm1hdE5hbWUiLCJ2YWx1ZSIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJmb3JtYXR0ZWROYW1lIiwib3B0aW9ucyIsIm9wdGlvbklzT2JqZWN0IiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJzdWJGaWVsZFNjaGVtYSIsInRleHRhcmVhIiwidXBsb2FkIiwiZmllbGROYW1lIiwiZmllbGRTY2hlbWFzIiwiZmllbGRTY2hlbWEiLCJzY2hlbWEiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7Ozs7Ozs7Ozs7O0lBcUQxQkEsbUJBQW1CO2VBQW5CQTs7SUF5UWIsT0FBcUM7ZUFBckM7Ozt5QkFsVE87aUNBQ3FCO3VCQTRCaUM7OEJBQ3JDOytDQUNzQjswRUFDaEI7bUVBQ1A7eUVBQ007Ozs7OztBQUU3QixNQUFNQyxlQUFlO0lBQ25CQyxRQUFRQyxtQkFBVTtJQUNsQkMsTUFBTUMsc0JBQWE7QUFDckI7QUFFTyxNQUFNTCxzQkFBc0IsQ0FDakNNLFNBQ0FDO0lBRUEsTUFBTUMsVUFBVUQsV0FBV0UsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsUUFBVUMsSUFBQUEsdUJBQWdCLEVBQUNELFVBQVVBLE1BQU1FLElBQUksS0FBSztJQUU1RixJQUFJLENBQUNMLFNBQVM7UUFDWixPQUFPUCxZQUFZLENBQUNLLFFBQVFRLEVBQUUsQ0FBQ0MsYUFBYSxDQUFDO0lBQy9DO0lBRUEsT0FBT2QsWUFBWSxDQUFDTyxRQUFRUSxJQUFJLENBQUM7QUFDbkM7QUFNQSxTQUFTQyx1QkFDUFgsT0FBZ0IsRUFDaEJPLElBQVksRUFDWkosTUFBZSxFQUNmUyxVQUFrQixFQUNsQkMsZ0JBQWdCLEtBQUs7SUFFckIsTUFBTUMsbUJBQW1CO1FBQ3ZCQyxPQUFPLENBQUNDLHVCQUE4Q1g7WUFDcEQsTUFBTVksV0FBV0MsSUFBQUEsMEJBQWlCLEVBQUNOLFlBQVlPLElBQUFBLHFCQUFPLEVBQUNkLE1BQU1FLElBQUksRUFBRTtZQUNuRSxJ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
@@ -1 +1 @@
1
- {"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildObjectType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAE9D,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAuB5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,UAAe,EACf,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,GACR,EAAE,IAAI,GAAG,iBAAiB,CAojB1B;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema/buildObjectType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAE9D,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAQV,KAAK,EAcN,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAuB5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,UAAe,EACf,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,GACR,EAAE,IAAI,GAAG,iBAAiB,CA0jB1B;AAED,eAAe,eAAe,CAAA"}