obsidian-dev-utils 62.0.0 → 62.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/cjs/array.cjs +1 -1
  3. package/dist/lib/cjs/array.d.cts +2 -0
  4. package/dist/lib/cjs/async.cjs +1 -1
  5. package/dist/lib/cjs/async.d.cts +2 -0
  6. package/dist/lib/cjs/codemirror/state-field-spec.cjs +1 -1
  7. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +2 -0
  8. package/dist/lib/cjs/enum.cjs +1 -1
  9. package/dist/lib/cjs/enum.d.cts +2 -0
  10. package/dist/lib/cjs/html-element.cjs +1 -1
  11. package/dist/lib/cjs/html-element.d.cts +2 -0
  12. package/dist/lib/cjs/library.cjs +1 -1
  13. package/dist/lib/cjs/object-utils.cjs +1 -1
  14. package/dist/lib/cjs/object-utils.d.cts +14 -0
  15. package/dist/lib/cjs/obsidian/app.cjs +1 -1
  16. package/dist/lib/cjs/obsidian/app.d.cts +3 -0
  17. package/dist/lib/cjs/obsidian/async-with-notice.cjs +1 -1
  18. package/dist/lib/cjs/obsidian/async-with-notice.d.cts +3 -1
  19. package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +2 -1
  20. package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +2 -1
  21. package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +6 -1
  22. package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +6 -1
  23. package/dist/lib/cjs/obsidian/components/async-component.cjs +3 -3
  24. package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +2 -1
  25. package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +2 -1
  26. package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +3 -1
  27. package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +2 -1
  28. package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +2 -1
  29. package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +3 -1
  30. package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +2 -1
  31. package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +2 -1
  32. package/dist/lib/cjs/obsidian/dataview.cjs +1 -1
  33. package/dist/lib/cjs/obsidian/dataview.d.cts +10 -2
  34. package/dist/lib/cjs/obsidian/frontmatter.cjs +1 -1
  35. package/dist/lib/cjs/obsidian/frontmatter.d.cts +1 -0
  36. package/dist/lib/cjs/obsidian/loop.cjs +1 -1
  37. package/dist/lib/cjs/obsidian/loop.d.cts +3 -0
  38. package/dist/lib/cjs/obsidian/modals/modal.cjs +1 -1
  39. package/dist/lib/cjs/obsidian/modals/modal.d.cts +3 -0
  40. package/dist/lib/cjs/obsidian/modals/select-item.cjs +1 -1
  41. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +3 -0
  42. package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +2 -1
  43. package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +2 -1
  44. package/dist/lib/cjs/obsidian/plugin/components/i18n-component.cjs +2 -1
  45. package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +2 -1
  46. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +2 -1
  47. package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +2 -1
  48. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +1 -1
  49. package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.d.cts +8 -0
  50. package/dist/lib/cjs/obsidian/plugin/plugin.cjs +2 -2
  51. package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +5 -5
  52. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +4 -1
  53. package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +1 -0
  54. package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +4 -2
  55. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +230 -0
  56. package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -0
  57. package/dist/lib/cjs/strict-proxy.cjs +1 -1
  58. package/dist/lib/cjs/strict-proxy.d.cts +1 -0
  59. package/dist/lib/cjs/string.cjs +1 -1
  60. package/dist/lib/cjs/string.d.cts +8 -2
  61. package/dist/lib/cjs/transformers/group-transformer.cjs +3 -1
  62. package/dist/lib/cjs/two-way-map.cjs +1 -1
  63. package/dist/lib/cjs/two-way-map.d.cts +2 -0
  64. package/dist/lib/cjs/type-guards.cjs +1 -1
  65. package/dist/lib/cjs/type-guards.d.cts +4 -0
  66. package/dist/lib/esm/array.d.mts +2 -0
  67. package/dist/lib/esm/array.mjs +1 -1
  68. package/dist/lib/esm/async.d.mts +2 -0
  69. package/dist/lib/esm/async.mjs +1 -1
  70. package/dist/lib/esm/codemirror/state-field-spec.d.mts +2 -0
  71. package/dist/lib/esm/enum.d.mts +2 -0
  72. package/dist/lib/esm/enum.mjs +1 -1
  73. package/dist/lib/esm/html-element.d.mts +2 -0
  74. package/dist/lib/esm/html-element.mjs +1 -1
  75. package/dist/lib/esm/library.mjs +1 -1
  76. package/dist/lib/esm/object-utils.d.mts +14 -0
  77. package/dist/lib/esm/object-utils.mjs +1 -1
  78. package/dist/lib/esm/obsidian/app.d.mts +3 -0
  79. package/dist/lib/esm/obsidian/app.mjs +1 -1
  80. package/dist/lib/esm/obsidian/async-with-notice.d.mts +3 -1
  81. package/dist/lib/esm/obsidian/async-with-notice.mjs +1 -1
  82. package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +2 -1
  83. package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +2 -1
  84. package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +6 -1
  85. package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +6 -1
  86. package/dist/lib/esm/obsidian/components/async-component.mjs +3 -3
  87. package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +2 -1
  88. package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +2 -1
  89. package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
  90. package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +2 -1
  91. package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +2 -1
  92. package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
  93. package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +2 -1
  94. package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +2 -1
  95. package/dist/lib/esm/obsidian/dataview.d.mts +10 -2
  96. package/dist/lib/esm/obsidian/dataview.mjs +1 -1
  97. package/dist/lib/esm/obsidian/frontmatter.d.mts +1 -0
  98. package/dist/lib/esm/obsidian/frontmatter.mjs +1 -1
  99. package/dist/lib/esm/obsidian/loop.d.mts +3 -0
  100. package/dist/lib/esm/obsidian/loop.mjs +1 -1
  101. package/dist/lib/esm/obsidian/modals/modal.d.mts +3 -0
  102. package/dist/lib/esm/obsidian/modals/modal.mjs +1 -1
  103. package/dist/lib/esm/obsidian/modals/select-item.d.mts +3 -0
  104. package/dist/lib/esm/obsidian/modals/select-item.mjs +1 -1
  105. package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +2 -1
  106. package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +2 -1
  107. package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +2 -1
  108. package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +2 -1
  109. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +2 -1
  110. package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +2 -1
  111. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.d.mts +8 -0
  112. package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +1 -1
  113. package/dist/lib/esm/obsidian/plugin/plugin.mjs +2 -2
  114. package/dist/lib/esm/script-utils/linters/eslint-config.mjs +5 -5
  115. package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +1 -0
  116. package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
  117. package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +4 -2
  118. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -0
  119. package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +128 -0
  120. package/dist/lib/esm/strict-proxy.d.mts +1 -0
  121. package/dist/lib/esm/strict-proxy.mjs +1 -1
  122. package/dist/lib/esm/string.d.mts +8 -2
  123. package/dist/lib/esm/string.mjs +1 -1
  124. package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
  125. package/dist/lib/esm/two-way-map.d.mts +2 -0
  126. package/dist/lib/esm/two-way-map.mjs +1 -1
  127. package/dist/lib/esm/type-guards.d.mts +4 -0
  128. package/dist/lib/esm/type-guards.mjs +1 -1
  129. package/package.json +1 -1
  130. package/script-utils/linters/eslint-rules/require-super-call/package.json +6 -0
@@ -529,7 +529,9 @@ function getObsidianDevUtilsPluginConfigs(context) {
529
529
  "obsidian-dev-utils": import_obsidian_dev_utils_plugin.obsidianDevUtilsPlugin
530
530
  },
531
531
  rules: {
532
- "obsidian-dev-utils/no-used-underscore-variables": "error"
532
+ "obsidian-dev-utils/no-async-callback-to-unsafe-return": "error",
533
+ "obsidian-dev-utils/no-used-underscore-variables": "error",
534
+ "obsidian-dev-utils/require-super-call": "error"
533
535
  }
534
536
  }
535
537
  ]);
@@ -679,9 +681,7 @@ function getTseslintConfigs(context) {
679
681
  varsIgnorePattern: "^_"
680
682
  }
681
683
  ],
682
- "@typescript-eslint/prefer-readonly": "error",
683
- "obsidian-dev-utils/no-async-callback-to-unsafe-return": "error",
684
- "obsidian-dev-utils/no-used-underscore-variables": "error"
684
+ "@typescript-eslint/prefer-readonly": "error"
685
685
  }
686
686
  },
687
687
  {
@@ -708,4 +708,4 @@ function getTseslintConfigs(context) {
708
708
  EslintConfigContext,
709
709
  defineEslintConfigs
710
710
  });
711
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29tcGF0JztcbmltcG9ydCBlc2xpbnQgZnJvbSAnQGVzbGludC9qcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBzdHlsaXN0aWMgZnJvbSAnQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlciB9IGZyb20gJ2VzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBmbGF0Q29uZmlncyBhcyBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MgfSBmcm9tICdlc2xpbnQtcGx1Z2luLWltcG9ydC14Jztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IG9ic2lkaWFubWQgZnJvbSAnZXNsaW50LXBsdWdpbi1vYnNpZGlhbm1kJztcbmltcG9ydCB7IGNvbmZpZ3MgYXMgcGVyZmVjdGlvbmlzdENvbmZpZ3MgfSBmcm9tICdlc2xpbnQtcGx1Z2luLXBlcmZlY3Rpb25pc3QnO1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAnZXNsaW50L2NvbmZpZyc7XG5pbXBvcnQgZ2xvYmFscyBmcm9tICdnbG9iYWxzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgdHNlc2xpbnQgZnJvbSAndHlwZXNjcmlwdC1lc2xpbnQnO1xuXG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBnZXRSb290Rm9sZGVyIH0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBidWlsZHMgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBjdXN0b21Db25maWdzPyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZWRpdHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBlZGl0Q29udGV4dD8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludENvbmZpZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290Q29uZmlnRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JpcHQgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRlc3RGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGFsbCBmaWxlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFsbCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhbGxGaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnRlc3RGaWxlcywgLi4udGhpcy5zY3JpcHRGaWxlcywgLi4udGhpcy5yb290Q29uZmlnRmlsZXMsIC4uLnRoaXMuc291cmNlRmlsZXNdO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKHBhcmFtczogRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBFc2xpbnRDb25maWdDb250ZXh0KCk7XG4gIGNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLnB1c2goXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ29tbWl0bGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WaXRlc3RDb25maWdUc1xuICApO1xuICBjb250ZXh0LnNjcmlwdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgKTtcbiAgY29udGV4dC5zb3VyY2VGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeClcbiAgKTtcbiAgY29udGV4dC50ZXN0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUZXN0VHMpXG4gICk7XG5cbiAgaWYgKHBhcmFtcy5lZGl0Q29udGV4dCkge1xuICAgIHBhcmFtcy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBwYXJhbXMuY3VzdG9tQ29uZmlncz8uKGNvbnRleHQpID8/IFtdO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uZ2V0R2l0SWdub3JlQ29uZmlncygpLFxuICAgIC8vIE9ic2lkaWFubWQgY29uZmlncyBydW4gZmlyc3Qgc28gb3VyIHN0cmljdGVyIHJ1bGVzIG92ZXJyaWRlIHRoZWlyIHJlbGF4ZWQgZGVmYXVsdHNcbiAgICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKS4gSW5pdGlhbGl6ZSB0aGUgZmllbGQgb3IgbWFrZSBpdCBvcHRpb25hbC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcGFyYW1ldGVycy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gSWRlbnRpZmllciBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcmV0dXJuIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJ1RTTWV0aG9kU2lnbmF0dXJlIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBhcyB0eXBlIGFyZ3VtZW50cy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhbm5vdGF0aW9ucy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhc3NlcnRpb25zLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0FzRXhwcmVzc2lvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZG91YmxlIHR5cGUgYXNzZXJ0aW9ucyAoYXMgWCBhcyBZKS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0FzRXhwcmVzc2lvbiA+IFRTQXNFeHByZXNzaW9uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdNZXRob2REZWZpbml0aW9uW2tleS5uYW1lPS9eXy9dOm5vdChbb3ZlcnJpZGU9dHJ1ZV0pJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdGdW5jdGlvbkRlY2xhcmF0aW9uW2lkLm5hbWU9L15fL10nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHJlbmFtZSBpbXBvcnRzIHdpdGggXCJNb2NrXCIgaW4gdGhlIGFsaWFzLiBNb2NrIGNsYXNzZXMgYXJlIHRoZSBjYW5vbmljYWwgdHlwZXMgXHUyMDE0IHVzZSB0aGUgb3JpZ2luYWwgbmFtZS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdBdm9pZCBkeW5hbWljIGltcG9ydCgpLiBVc2Ugc3RhdGljIGltcG9ydHMgaW5zdGVhZC4gT25seSB1c2UgZHluYW1pYyBpbXBvcnRzIGZvciBsYXp5L2NvbmRpdGlvbmFsIGxvYWRpbmcuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnSW1wb3J0RXhwcmVzc2lvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVjbGFyZT10cnVlXSdcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1yZXR1cm4tYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNjcmlwdC11cmwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VsZi1jb21wYXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNlcXVlbmNlcyc6ICdlcnJvcicsXG4gICAgICAgICduby1zaGFkb3cnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXRocm93LWxpdGVyYWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5tb2RpZmllZC1sb29wLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby11bm5lZWRlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVucmVhY2hhYmxlLWxvb3AnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW51c2VkLWV4cHJlc3Npb25zJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNhbGwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb21wdXRlZC1rZXknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25jYXQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJlbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tdm9pZCc6ICdlcnJvcicsXG4gICAgICAgICdvYmplY3Qtc2hvcnRoYW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ29wZXJhdG9yLWFzc2lnbm1lbnQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWFycm93LWNhbGxiYWNrJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1jb25zdCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItZXhwb25lbnRpYXRpb24tb3BlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW5hbWVkLWNhcHR1cmUtZ3JvdXAnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW51bWVyaWMtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1oYXMtb3duJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1vYmplY3Qtc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlZ2V4LWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1yZXN0LXBhcmFtcyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdyYWRpeCc6ICdlcnJvcicsXG4gICAgICAgICdyZXF1aXJlLWF0b21pYy11cGRhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXdhaXQnOiAnZXJyb3InLFxuICAgICAgICAnc3ltYm9sLWRlc2NyaXB0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ3VuaWNvZGUtYm9tJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ZhcnMtb24tdG9wJzogJ2Vycm9yJyxcbiAgICAgICAgJ3lvZGEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICAnaW1wb3J0LXgvcmVzb2x2ZXItbmV4dCc6IFtcbiAgICAgICAgICBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIoe1xuICAgICAgICAgICAgYWx3YXlzVHJ5VHlwZXM6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0R2l0SWdub3JlQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihnZXRSb290Rm9sZGVyKCkgPz8gJycsICcuZ2l0aWdub3JlJyk7XG4gIGlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW2luY2x1ZGVJZ25vcmVGaWxlKGdpdGlnbm9yZVBhdGgpXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLndhcm5pbmdzXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNjcmlwdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIC4uLmNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLFxuICAgICAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpblRzKVxuICAgICAgXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IG9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5tZC5jb25maWdzLnJlY29tbWVuZGVkO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICBpZiAoY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJykpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAgLi4uc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MsXG4gICAge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgZ2xvYmFsczoge1xuICAgICAgICAgIC4uLmdsb2JhbHMuYnJvd3NlcixcbiAgICAgICAgICAuLi5nbG9iYWxzLm5vZGUsXG4gICAgICAgICAgYWN0aXZlRG9jdW1lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgYWN0aXZlV2luZG93OiAncmVhZG9ubHknLFxuICAgICAgICAgIGFqYXg6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheFByb21pc2U6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRGl2OiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZUVsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZUZyYWdtZW50OiAncmVhZG9ubHknLFxuICAgICAgICAgIGNyZWF0ZVNwYW46ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3ZnOiAncmVhZG9ubHknLFxuICAgICAgICAgIERvbUVsZW1lbnRJbmZvOiAncmVhZG9ubHknLFxuICAgICAgICAgIGZpc2g6ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaEFsbDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBpc0Jvb2xlYW46ICdyZWFkb25seScsXG4gICAgICAgICAgbmV4dEZyYW1lOiAncmVhZG9ubHknLFxuICAgICAgICAgIE5vZGVKUzogJ3JlYWRvbmx5JyxcbiAgICAgICAgICByZWFkeTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBzbGVlcDogJ3JlYWRvbmx5J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW3tcbiAgICBleHRlbmRzOiBbcGVyZmVjdGlvbmlzdENvbmZpZ3NbJ3JlY29tbWVuZGVkLWFscGhhYmV0aWNhbCddXSxcbiAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpXG4gIH1dKTtcbn1cblxuZnVuY3Rpb24gZ2V0U3R5bGlzdGljQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5yZWNvbW1lbmRlZCxcbiAgICAgICAgc3R5bGlzdGljLmNvbmZpZ3MuY3VzdG9taXplKHtcbiAgICAgICAgICBhcnJvd1BhcmVuczogdHJ1ZSxcbiAgICAgICAgICBicmFjZVN0eWxlOiAnMXRicycsXG4gICAgICAgICAgY29tbWFEYW5nbGU6ICduZXZlcicsXG4gICAgICAgICAgc2VtaTogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHN0eWxpc3RpYy9nZW5lcmF0b3Itc3Rhci1zcGFjaW5nJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudCc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9pbmRlbnQtYmluYXJ5LW9wcyc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9qc3gtb25lLWV4cHJlc3Npb24tcGVyLWxpbmUnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvbm8tZXh0cmEtc2VtaSc6ICdlcnJvcicsXG4gICAgICAgICdAc3R5bGlzdGljL29iamVjdC1jdXJseS1uZXdsaW5lJzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgRXhwb3J0RGVjbGFyYXRpb246IHtcbiAgICAgICAgICAgICAgbWluUHJvcGVydGllczogMixcbiAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgSW1wb3J0RGVjbGFyYXRpb246IHtcbiAgICAgICAgICAgICAgbWluUHJvcGVydGllczogMixcbiAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHN0eWxpc3RpYy9vcGVyYXRvci1saW5lYnJlYWsnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnYmVmb3JlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgICAgICAgJz0nOiAnYWZ0ZXInXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHN0eWxpc3RpYy9xdW90ZXMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnc2luZ2xlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd1RlbXBsYXRlTGl0ZXJhbHM6ICduZXZlcidcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUc2VzbGludENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgICAgLi4udHNlc2xpbnQuY29uZmlncy5zdHJpY3RUeXBlQ2hlY2tlZCxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBfZGVmYXVsdGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgICAgLi4udHNlc2xpbnQuY29uZmlncy5zdHlsaXN0aWNUeXBlQ2hlY2tlZFxuICAgICAgXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBsYW5ndWFnZU9wdGlvbnM6IHtcbiAgICAgICAgcGFyc2VyT3B0aW9uczoge1xuICAgICAgICAgIGVjbWFGZWF0dXJlczoge1xuICAgICAgICAgICAganN4OiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcm9qZWN0U2VydmljZTogdHJ1ZSxcbiAgICAgICAgICB0c2NvbmZpZ1Jvb3REaXI6IGdldFJvb3RGb2xkZXIoKSA/PyAnJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1mdW5jdGlvbi1yZXR1cm4tdHlwZSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbWVtYmVyLWFjY2Vzc2liaWxpdHknOiAnZXJyb3InLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLWludmFsaWQtdm9pZC10eXBlJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd0FzVGhpc1BhcmFtZXRlcjogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd2VkTmFtZXM6IFtcbiAgICAgICAgICAgICd0aGF0J1xuICAgICAgICAgIF1cbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhcmdzOiAnYWxsJyxcbiAgICAgICAgICAgIGFyZ3NJZ25vcmVQYXR0ZXJuOiAnXl8nLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzOiAnYWxsJyxcbiAgICAgICAgICAgIGNhdWdodEVycm9yc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBkZXN0cnVjdHVyZWRBcnJheUlnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBpZ25vcmVSZXN0U2libGluZ3M6IHRydWUsXG4gICAgICAgICAgICB2YXJzSWdub3JlUGF0dGVybjogJ15fJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItcmVhZG9ubHknOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2RvdC1ub3RhdGlvbic6IFsnZXJyb3InLCB7XG4gICAgICAgICAgYWxsb3dQcml2YXRlQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZSxcbiAgICAgICAgICBhbGxvd1Byb3RlY3RlZENsYXNzUHJvcGVydHlBY2Nlc3M6IHRydWVcbiAgICAgICAgfV0sXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgcmVhY3Q6IHtcbiAgICAgICAgICB2ZXJzaW9uOiAnZGV0ZWN0J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuLyogZXNsaW50LWVuYWJsZSBuby1tYWdpYy1udW1iZXJzIC0tIFdlIGRpc2FibGVkIG1hZ2ljIG51bWJlcnMgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGFsbCBvdmVyIHRoZSBjb25maWdzLiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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UUFFUCxHQUFHLHlCQUFBQyxRQUFTLFFBQVE7QUFBQTtBQUFBLFFBRXBCLEdBQUcseUJBQUFBLFFBQVMsUUFBUTtBQUFBLE1BQ3RCO0FBQUEsTUFDQSxPQUFPLFFBQVEsU0FBUztBQUFBLE1BQ3hCLGlCQUFpQjtBQUFBLFFBQ2YsZUFBZTtBQUFBLFVBQ2IsY0FBYztBQUFBLFlBQ1osS0FBSztBQUFBLFVBQ1A7QUFBQSxVQUNBLGdCQUFnQjtBQUFBLFVBQ2hCLHFCQUFpQiwyQkFBYyxLQUFLO0FBQUEsUUFDdEM7QUFBQSxNQUNGO0FBQUEsTUFDQSxPQUFPO0FBQUEsUUFDTCxvREFBb0Q7QUFBQSxRQUNwRCxvREFBb0Q7QUFBQSxRQUNwRCwyQ0FBMkMsQ0FBQyxTQUFTO0FBQUEsVUFDbkQsc0JBQXNCO0FBQUEsUUFDeEIsQ0FBQztBQUFBLFFBQ0Qsb0NBQW9DLENBQUMsU0FBUztBQUFBLFVBQzVDLGNBQWM7QUFBQSxZQUNaO0FBQUEsVUFDRjtBQUFBLFFBQ0YsQ0FBQztBQUFBLFFBQ0QscUNBQXFDO0FBQUEsVUFDbkM7QUFBQSxVQUNBO0FBQUEsWUFDRSxNQUFNO0FBQUEsWUFDTixtQkFBbUI7QUFBQSxZQUNuQixjQUFjO0FBQUEsWUFDZCwyQkFBMkI7QUFBQSxZQUMzQixnQ0FBZ0M7QUFBQSxZQUNoQyxvQkFBb0I7QUFBQSxZQUNwQixtQkFBbUI7QUFBQSxVQUNyQjtBQUFBLFFBQ0Y7QUFBQSxRQUNBLHNDQUFzQztBQUFBLFFBQ3RDLHlEQUF5RDtBQUFBLFFBQ3pELG1EQUFtRDtBQUFBLE1BQ3JEO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLE9BQU8sUUFBUTtBQUFBLE1BQ2YsT0FBTztBQUFBLFFBQ0wsbUNBQW1DLENBQUMsU0FBUztBQUFBLFVBQzNDLGlDQUFpQztBQUFBLFVBQ2pDLG1DQUFtQztBQUFBLFFBQ3JDLENBQUM7QUFBQSxRQUNELHFDQUFxQztBQUFBLE1BQ3ZDO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLFVBQVU7QUFBQSxRQUNSLE9BQU87QUFBQSxVQUNMLFNBQVM7QUFBQSxRQUNYO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsiY29tbWVudHNDb25maWdzIiwgImVzbGludCIsICJlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MiLCAib2JzaWRpYW5tZCIsICJnbG9iYWxzIiwgInBlcmZlY3Rpb25pc3RDb25maWdzIiwgInN0eWxpc3RpYyIsICJ0c2VzbGludCJdCn0K
711
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgY29uZmlndXJhdGlvbiBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cyB3aXRoIHZhcmlvdXMgcGx1Z2lucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBleHBvcnRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqIHN1Y2ggYXMgYEB0eXBlc2NyaXB0LWVzbGludC9wYXJzZXJgLCBgQHR5cGVzY3JpcHQtZXNsaW50L2VzbGludC1wbHVnaW5gLFxuICogYGVzbGludC1wbHVnaW4tbW9kdWxlcy1uZXdsaW5lc2AsIGBAc3R5bGlzdGljL2VzbGludC1wbHVnaW5gLlxuICogSXQgc2V0cyB1cCBwYXJzZXJzLCBwbHVnaW5zLCBhbmQgcnVsZXMgZm9yIG1haW50YWluaW5nIGNvZGUgcXVhbGl0eSBhbmQgY29uc2lzdGVuY3kuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIERlY2xhcmF0aXZlIEVTTGludCBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIEVTTGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgTGludGVyIH0gZnJvbSAnZXNsaW50JztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cbmltcG9ydCBjb21tZW50c0NvbmZpZ3MgZnJvbSAnQGVzbGludC1jb21tdW5pdHkvZXNsaW50LXBsdWdpbi1lc2xpbnQtY29tbWVudHMvY29uZmlncyc7XG5pbXBvcnQgeyBpbmNsdWRlSWdub3JlRmlsZSB9IGZyb20gJ0Blc2xpbnQvY29tcGF0JztcbmltcG9ydCBlc2xpbnQgZnJvbSAnQGVzbGludC9qcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBzdHlsaXN0aWMgZnJvbSAnQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luJztcbmltcG9ydCB7IGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlciB9IGZyb20gJ2VzbGludC1pbXBvcnQtcmVzb2x2ZXItdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBmbGF0Q29uZmlncyBhcyBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MgfSBmcm9tICdlc2xpbnQtcGx1Z2luLWltcG9ydC14Jztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgcGx1Z2luYCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IG9ic2lkaWFubWQgZnJvbSAnZXNsaW50LXBsdWdpbi1vYnNpZGlhbm1kJztcbmltcG9ydCB7IGNvbmZpZ3MgYXMgcGVyZmVjdGlvbmlzdENvbmZpZ3MgfSBmcm9tICdlc2xpbnQtcGx1Z2luLXBlcmZlY3Rpb25pc3QnO1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAnZXNsaW50L2NvbmZpZyc7XG5pbXBvcnQgZ2xvYmFscyBmcm9tICdnbG9iYWxzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQteC9uby1yZW5hbWUtZGVmYXVsdCAtLSBUaGUgZGVmYXVsdCBleHBvcnQgbmFtZSBgX2RlZmF1bHRgIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgdHNlc2xpbnQgZnJvbSAndHlwZXNjcmlwdC1lc2xpbnQnO1xuXG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uLy4uL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vLi4vcGF0aC50cyc7XG5pbXBvcnQgeyBnZXRSb290Rm9sZGVyIH0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQgeyBvYnNpZGlhbkRldlV0aWxzUGx1Z2luIH0gZnJvbSAnLi9lc2xpbnQtcnVsZXMvb2JzaWRpYW4tZGV2LXV0aWxzLXBsdWdpbi50cyc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZpbmVFc2xpbnRDb25maWdzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBidWlsZHMgY3VzdG9tIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gY29udGV4dC5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICBjdXN0b21Db25maWdzPyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZWRpdHMgdGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqL1xuICBlZGl0Q29udGV4dD8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIGNvbnRleHQgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEVzbGludENvbmZpZ0NvbnRleHQge1xuICAvKipcbiAgICogVGhlIHJvb3QgY29uZmlndXJhdGlvbiBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290Q29uZmlnRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzY3JpcHQgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXN0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRlc3RGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogVGhlIGFsbCBmaWxlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFsbCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhbGxGaWxlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnRlc3RGaWxlcywgLi4udGhpcy5zY3JpcHRGaWxlcywgLi4udGhpcy5yb290Q29uZmlnRmlsZXMsIC4uLnRoaXMuc291cmNlRmlsZXNdO1xuICB9XG59XG5cbi8qKlxuICogQnVpbGQgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYnVpbGRzIEVTTGludCBjb25maWd1cmF0aW9ucyBmb3IgVHlwZVNjcmlwdCBwcm9qZWN0cywgaW50ZWdyYXRpbmcgbXVsdGlwbGUgRVNMaW50IHBsdWdpbnNcbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIGRlZmluaW5nIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVFc2xpbnRDb25maWdzKHBhcmFtczogRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyA9IHt9KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3QgY29udGV4dCA9IG5ldyBFc2xpbnRDb25maWdDb250ZXh0KCk7XG4gIGNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLnB1c2goXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ29tbWl0bGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WaXRlc3RDb25maWdUc1xuICApO1xuICBjb250ZXh0LnNjcmlwdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TY3JpcHRzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcylcbiAgKTtcbiAgY29udGV4dC5zb3VyY2VGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzeClcbiAgKTtcbiAgY29udGV4dC50ZXN0RmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlRlc3RzLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUcyksXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Nb2NrcywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUZXN0VHMpXG4gICk7XG5cbiAgaWYgKHBhcmFtcy5lZGl0Q29udGV4dCkge1xuICAgIHBhcmFtcy5lZGl0Q29udGV4dChjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnN0IGN1c3RvbUNvbmZpZ3MgPSBwYXJhbXMuY3VzdG9tQ29uZmlncz8uKGNvbnRleHQpID8/IFtdO1xuXG4gIHJldHVybiBkZWZpbmVDb25maWcoXG4gICAgLi4uZ2V0R2l0SWdub3JlQ29uZmlncygpLFxuICAgIC8vIE9ic2lkaWFubWQgY29uZmlncyBydW4gZmlyc3Qgc28gb3VyIHN0cmljdGVyIHJ1bGVzIG92ZXJyaWRlIHRoZWlyIHJlbGF4ZWQgZGVmYXVsdHNcbiAgICAuLi5nZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldEVzbGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0VHNlc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFN0eWxpc3RpY0NvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKS4gSW5pdGlhbGl6ZSB0aGUgZmllbGQgb3IgbWFrZSBpdCBvcHRpb25hbC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcGFyYW1ldGVycy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gSWRlbnRpZmllciBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcmV0dXJuIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJ1RTTWV0aG9kU2lnbmF0dXJlIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBhcyB0eXBlIGFyZ3VtZW50cy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhbm5vdGF0aW9ucy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhc3NlcnRpb25zLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0FzRXhwcmVzc2lvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZG91YmxlIHR5cGUgYXNzZXJ0aW9ucyAoYXMgWCBhcyBZKS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0FzRXhwcmVzc2lvbiA+IFRTQXNFeHByZXNzaW9uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdNZXRob2REZWZpbml0aW9uW2tleS5uYW1lPS9eXy9dOm5vdChbb3ZlcnJpZGU9dHJ1ZV0pJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgXyBwcmVmaXggb24gbWV0aG9kcyBvciBmdW5jdGlvbnMuIFRoZSBfIHByZWZpeCBpcyBmb3IgdW51c2VkIHBhcmFtZXRlcnMgb25seS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdGdW5jdGlvbkRlY2xhcmF0aW9uW2lkLm5hbWU9L15fL10nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHJlbmFtZSBpbXBvcnRzIHdpdGggXCJNb2NrXCIgaW4gdGhlIGFsaWFzLiBNb2NrIGNsYXNzZXMgYXJlIHRoZSBjYW5vbmljYWwgdHlwZXMgXHUyMDE0IHVzZSB0aGUgb3JpZ2luYWwgbmFtZS4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdJbXBvcnRTcGVjaWZpZXJbbG9jYWwubmFtZT0vTW9jay9dOm5vdChbaW1wb3J0ZWQubmFtZT0vTW9jay9dKSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdBdm9pZCBkeW5hbWljIGltcG9ydCgpLiBVc2Ugc3RhdGljIGltcG9ydHMgaW5zdGVhZC4gT25seSB1c2UgZHluYW1pYyBpbXBvcnRzIGZvciBsYXp5L2NvbmRpdGlvbmFsIGxvYWRpbmcuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnSW1wb3J0RXhwcmVzc2lvbidcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdEbyBub3QgdXNlIGBkZWNsYXJlYCBvbiBjbGFzcyBwcm9wZXJ0aWVzLiBJbml0aWFsaXplIHRoZSBwcm9wZXJ0eSBvciB1c2UgYSByZWd1bGFyIHR5cGUgYW5ub3RhdGlvbi4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVjbGFyZT10cnVlXSdcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1yZXR1cm4tYXNzaWduJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNjcmlwdC11cmwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VsZi1jb21wYXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNlcXVlbmNlcyc6ICdlcnJvcicsXG4gICAgICAgICduby1zaGFkb3cnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXRocm93LWxpdGVyYWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5tb2RpZmllZC1sb29wLWNvbmRpdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby11bm5lZWRlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVucmVhY2hhYmxlLWxvb3AnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW51c2VkLWV4cHJlc3Npb25zJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNhbGwnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb21wdXRlZC1rZXknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25jYXQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1jb25zdHJ1Y3Rvcic6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJlbmFtZSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tdm9pZCc6ICdlcnJvcicsXG4gICAgICAgICdvYmplY3Qtc2hvcnRoYW5kJzogJ2Vycm9yJyxcbiAgICAgICAgJ29wZXJhdG9yLWFzc2lnbm1lbnQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWFycm93LWNhbGxiYWNrJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1jb25zdCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItZXhwb25lbnRpYXRpb24tb3BlcmF0b3InOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW5hbWVkLWNhcHR1cmUtZ3JvdXAnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW51bWVyaWMtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1oYXMtb3duJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1vYmplY3Qtc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1wcm9taXNlLXJlamVjdC1lcnJvcnMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlZ2V4LWxpdGVyYWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1yZXN0LXBhcmFtcyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItc3ByZWFkJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci10ZW1wbGF0ZSc6ICdlcnJvcicsXG4gICAgICAgICdyYWRpeCc6ICdlcnJvcicsXG4gICAgICAgICdyZXF1aXJlLWF0b21pYy11cGRhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXdhaXQnOiAnZXJyb3InLFxuICAgICAgICAnc3ltYm9sLWRlc2NyaXB0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ3VuaWNvZGUtYm9tJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ZhcnMtb24tdG9wJzogJ2Vycm9yJyxcbiAgICAgICAgJ3lvZGEnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC50ZXN0RmlsZXMsXG4gICAgICBydWxlczoge1xuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICAnaW1wb3J0LXgvcmVzb2x2ZXItbmV4dCc6IFtcbiAgICAgICAgICBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIoe1xuICAgICAgICAgICAgYWx3YXlzVHJ5VHlwZXM6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0R2l0SWdub3JlQ29uZmlncygpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBnaXRpZ25vcmVQYXRoID0gam9pbihnZXRSb290Rm9sZGVyKCkgPz8gJycsICcuZ2l0aWdub3JlJyk7XG4gIGlmICghZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW2luY2x1ZGVJZ25vcmVGaWxlKGdpdGlnbm9yZVBhdGgpXTtcbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGV4dGVuZHM6IFtcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MudHlwZXNjcmlwdCxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLndhcm5pbmdzXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9jb25zaXN0ZW50LXR5cGUtc3BlY2lmaWVyLXN0eWxlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L2V4dGVuc2lvbnMnOiBbJ2Vycm9yJywgJ2lnbm9yZVBhY2thZ2VzJ10sXG4gICAgICAgICdpbXBvcnQteC9maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9pbXBvcnRzLWZpcnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25ld2xpbmUtYWZ0ZXItaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFic29sdXRlLXBhdGgnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tYW1kJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFub255bW91cy1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jb21tb25qcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1jeWNsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kZXByZWNhdGVkJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR1cGxpY2F0ZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZHluYW1pYy1yZXF1aXJlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWVtcHR5LW5hbWVkLWJsb2Nrcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1pbXBvcnQtbW9kdWxlLWV4cG9ydHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbXV0YWJsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVkLWRlZmF1bHQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tbmFtZXNwYWNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlbGF0aXZlLXBhY2thZ2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXJlc3RyaWN0ZWQtcGF0aHMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tc2VsZi1pbXBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW5hc3NpZ25lZC1pbXBvcnQnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnKiovKi5jc3MnLFxuICAgICAgICAgICAgICAnKiovKi5zYXNzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2NzcydcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdpbXBvcnQteC9uby11bnVzZWQtbW9kdWxlcyc6ICdvZmYnLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdXNlbGVzcy1wYXRoLXNlZ21lbnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXdlYnBhY2stbG9hZGVyLXN5bnRheCc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNjcmlwdEZpbGVzLFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ2ltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzJzogJ29mZidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIC4uLmNvbnRleHQucm9vdENvbmZpZ0ZpbGVzLFxuICAgICAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFpblRzKVxuICAgICAgXSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1kZWZhdWx0LWV4cG9ydCc6ICdvZmYnXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5EZXZVdGlsc1BsdWdpbkNvbmZpZ3MoY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMnOiBvYnNpZGlhbkRldlV0aWxzUGx1Z2luXG4gICAgICB9LFxuICAgICAgcnVsZXM6IHtcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ29ic2lkaWFuLWRldi11dGlscy9yZXF1aXJlLXN1cGVyLWNhbGwnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfVxuICBdKTtcbn1cblxuZnVuY3Rpb24gZ2V0T2JzaWRpYW5MaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgY29uc3Qgb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhbm1kLmNvbmZpZ3MucmVjb21tZW5kZWQ7XG5cbiAgY29uc3Qgc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MgPSBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncy5tYXAoKGNvbmZpZykgPT4ge1xuICAgIGlmIChjb25maWcuZmlsZXM/LmluY2x1ZGVzKCdwYWNrYWdlLmpzb24nKSkge1xuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmlsZXM6IGNvbnRleHQuc291cmNlRmlsZXNcbiAgICB9O1xuICB9KTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICAuLi5zY29wZWRPYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyxcbiAgICB7XG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIG9ic2lkaWFubWRcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbe1xuICAgIGV4dGVuZHM6IFtwZXJmZWN0aW9uaXN0Q29uZmlnc1sncmVjb21tZW5kZWQtYWxwaGFiZXRpY2FsJ11dLFxuICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKClcbiAgfV0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2dlbmVyYXRvci1zdGFyLXNwYWNpbmcnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50JzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudC1iaW5hcnktb3BzJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2pzeC1vbmUtZXhwcmVzc2lvbi1wZXItbGluZSc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9uby1leHRyYS1zZW1pJzogJ2Vycm9yJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb2JqZWN0LWN1cmx5LW5ld2xpbmUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFeHBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL29wZXJhdG9yLWxpbmVicmVhayc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdiZWZvcmUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAnPSc6ICdhZnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL3F1b3Rlcyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdzaW5nbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93VGVtcGxhdGVMaXRlcmFsczogJ25ldmVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVzOiBjb250ZXh0LnRlc3RGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvZG90LW5vdGF0aW9uJzogWydlcnJvcicsIHtcbiAgICAgICAgICBhbGxvd1ByaXZhdGVDbGFzc1Byb3BlcnR5QWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGFsbG93UHJvdGVjdGVkQ2xhc3NQcm9wZXJ0eUFjY2VzczogdHJ1ZVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICByZWFjdDoge1xuICAgICAgICAgIHZlcnNpb246ICdkZXRlY3QnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O0FBQUEsTUFDRSxTQUFTO0FBQUE7QUFBQSxRQUVQLEdBQUcseUJBQUFDLFFBQVMsUUFBUTtBQUFBO0FBQUEsUUFFcEIsR0FBRyx5QkFBQUEsUUFBUyxRQUFRO0FBQUEsTUFDdEI7QUFBQSxNQUNBLE9BQU8sUUFBUSxTQUFTO0FBQUEsTUFDeEIsaUJBQWlCO0FBQUEsUUFDZixlQUFlO0FBQUEsVUFDYixjQUFjO0FBQUEsWUFDWixLQUFLO0FBQUEsVUFDUDtBQUFBLFVBQ0EsZ0JBQWdCO0FBQUEsVUFDaEIscUJBQWlCLDJCQUFjLEtBQUs7QUFBQSxRQUN0QztBQUFBLE1BQ0Y7QUFBQSxNQUNBLE9BQU87QUFBQSxRQUNMLG9EQUFvRDtBQUFBLFFBQ3BELG9EQUFvRDtBQUFBLFFBQ3BELDJDQUEyQyxDQUFDLFNBQVM7QUFBQSxVQUNuRCxzQkFBc0I7QUFBQSxRQUN4QixDQUFDO0FBQUEsUUFDRCxvQ0FBb0MsQ0FBQyxTQUFTO0FBQUEsVUFDNUMsY0FBYztBQUFBLFlBQ1o7QUFBQSxVQUNGO0FBQUEsUUFDRixDQUFDO0FBQUEsUUFDRCxxQ0FBcUM7QUFBQSxVQUNuQztBQUFBLFVBQ0E7QUFBQSxZQUNFLE1BQU07QUFBQSxZQUNOLG1CQUFtQjtBQUFBLFlBQ25CLGNBQWM7QUFBQSxZQUNkLDJCQUEyQjtBQUFBLFlBQzNCLGdDQUFnQztBQUFBLFlBQ2hDLG9CQUFvQjtBQUFBLFlBQ3BCLG1CQUFtQjtBQUFBLFVBQ3JCO0FBQUEsUUFDRjtBQUFBLFFBQ0Esc0NBQXNDO0FBQUEsTUFDeEM7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsT0FBTyxRQUFRO0FBQUEsTUFDZixPQUFPO0FBQUEsUUFDTCxtQ0FBbUMsQ0FBQyxTQUFTO0FBQUEsVUFDM0MsaUNBQWlDO0FBQUEsVUFDakMsbUNBQW1DO0FBQUEsUUFDckMsQ0FBQztBQUFBLFFBQ0QscUNBQXFDO0FBQUEsTUFDdkM7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsVUFBVTtBQUFBLFFBQ1IsT0FBTztBQUFBLFVBQ0wsU0FBUztBQUFBLFFBQ1g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogWyJjb21tZW50c0NvbmZpZ3MiLCAiZXNsaW50IiwgImVzbGludFBsdWdpbkltcG9ydFhGbGF0Q29uZmlncyIsICJvYnNpZGlhbm1kIiwgImdsb2JhbHMiLCAicGVyZmVjdGlvbmlzdENvbmZpZ3MiLCAic3R5bGlzdGljIiwgInRzZXNsaW50Il0KfQo=
@@ -138,18 +138,21 @@ __export(eslint_rules_exports, {
138
138
  no_async_callback_to_unsafe_return: () => no_async_callback_to_unsafe_return,
139
139
  no_used_underscore_variables: () => no_used_underscore_variables,
140
140
  obsidian_dev_utils_plugin: () => obsidian_dev_utils_plugin,
141
+ require_super_call: () => require_super_call,
141
142
  rule_tester_helper: () => rule_tester_helper
142
143
  });
143
144
  module.exports = __toCommonJS(eslint_rules_exports);
144
145
  var no_async_callback_to_unsafe_return = __toESM(__extractDefault(require('./no-async-callback-to-unsafe-return.cjs')), 1);
145
146
  var no_used_underscore_variables = __toESM(__extractDefault(require('./no-used-underscore-variables.cjs')), 1);
146
147
  var obsidian_dev_utils_plugin = __toESM(__extractDefault(require('./obsidian-dev-utils-plugin.cjs')), 1);
148
+ var require_super_call = __toESM(__extractDefault(require('./require-super-call.cjs')), 1);
147
149
  var rule_tester_helper = __toESM(__extractDefault(require('./rule-tester-helper.cjs')), 1);
148
150
  // Annotate the CommonJS export names for ESM import in node:
149
151
  0 && (module.exports = {
150
152
  no_async_callback_to_unsafe_return,
151
153
  no_used_underscore_variables,
152
154
  obsidian_dev_utils_plugin,
155
+ require_super_call,
153
156
  rule_tester_helper
154
157
  });
155
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIG5vX2FzeW5jX2NhbGxiYWNrX3RvX3Vuc2FmZV9yZXR1cm4gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmV4cG9ydCAqIGFzIG5vX3VzZWRfdW5kZXJzY29yZV92YXJpYWJsZXMgZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcbmV4cG9ydCAqIGFzIG9ic2lkaWFuX2Rldl91dGlsc19wbHVnaW4gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzIHJ1bGVfdGVzdGVyX2hlbHBlciBmcm9tICcuL3J1bGUtdGVzdGVyLWhlbHBlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEseUNBQW9EO0FBQ3BELG1DQUE4QztBQUM5QyxnQ0FBMkM7QUFDM0MseUJBQW9DOyIsCiAgIm5hbWVzIjogW10KfQo=
158
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIG5vX2FzeW5jX2NhbGxiYWNrX3RvX3Vuc2FmZV9yZXR1cm4gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmV4cG9ydCAqIGFzIG5vX3VzZWRfdW5kZXJzY29yZV92YXJpYWJsZXMgZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcbmV4cG9ydCAqIGFzIG9ic2lkaWFuX2Rldl91dGlsc19wbHVnaW4gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzIHJlcXVpcmVfc3VwZXJfY2FsbCBmcm9tICcuL3JlcXVpcmUtc3VwZXItY2FsbC50cyc7XG5leHBvcnQgKiBhcyBydWxlX3Rlc3Rlcl9oZWxwZXIgZnJvbSAnLi9ydWxlLXRlc3Rlci1oZWxwZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEseUNBQW9EO0FBQ3BELG1DQUE4QztBQUM5QyxnQ0FBMkM7QUFDM0MseUJBQW9DO0FBQ3BDLHlCQUFvQzsiLAogICJuYW1lcyI6IFtdCn0K
@@ -1,4 +1,5 @@
1
1
  export * as no_async_callback_to_unsafe_return from './no-async-callback-to-unsafe-return.cjs';
2
2
  export * as no_used_underscore_variables from './no-used-underscore-variables.cjs';
3
3
  export * as obsidian_dev_utils_plugin from './obsidian-dev-utils-plugin.cjs';
4
+ export * as require_super_call from './require-super-call.cjs';
4
5
  export * as rule_tester_helper from './rule-tester-helper.cjs';
@@ -130,14 +130,16 @@ __export(obsidian_dev_utils_plugin_exports, {
130
130
  module.exports = __toCommonJS(obsidian_dev_utils_plugin_exports);
131
131
  var import_no_async_callback_to_unsafe_return = require('./no-async-callback-to-unsafe-return.cjs');
132
132
  var import_no_used_underscore_variables = require('./no-used-underscore-variables.cjs');
133
+ var import_require_super_call = require('./require-super-call.cjs');
133
134
  const obsidianDevUtilsPlugin = {
134
135
  rules: {
135
136
  "no-async-callback-to-unsafe-return": import_no_async_callback_to_unsafe_return.noAsyncCallbackToUnsafeReturn,
136
- "no-used-underscore-variables": import_no_used_underscore_variables.noUsedUnderscoreVariables
137
+ "no-used-underscore-variables": import_no_used_underscore_variables.noUsedUnderscoreVariables,
138
+ "require-super-call": import_require_super_call.requireSuperCall
137
139
  }
138
140
  };
139
141
  // Annotate the CommonJS export names for ESM import in node:
140
142
  0 && (module.exports = {
141
143
  obsidianDevUtilsPlugin
142
144
  });
143
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHBsdWdpbiBmb3IgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzLlxuICovXG5pbXBvcnQgdHlwZSB7IEVTTGludCB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCB7IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuIH0gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmltcG9ydCB7IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXMgfSBmcm9tICcuL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMudHMnO1xuXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc1BsdWdpbjogRVNMaW50LlBsdWdpbiA9IHtcbiAgcnVsZXM6IHtcbiAgICAnbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybic6IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuLFxuICAgICduby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzJzogbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlc1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsZ0RBQThDO0FBQzlDLDBDQUEwQztBQUVuQyxNQUFNLHlCQUF3QztBQUFBLEVBQ25ELE9BQU87QUFBQSxJQUNMLHNDQUFzQztBQUFBLElBQ3RDLGdDQUFnQztBQUFBLEVBQ2xDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
145
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRVNMaW50IHBsdWdpbiBmb3IgT2JzaWRpYW4gZGV2ZWxvcG1lbnQgdXRpbGl0aWVzLlxuICovXG5pbXBvcnQgdHlwZSB7IEVTTGludCB9IGZyb20gJ2VzbGludCc7XG5cbmltcG9ydCB7IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuIH0gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmltcG9ydCB7IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXMgfSBmcm9tICcuL25vLXVzZWQtdW5kZXJzY29yZS12YXJpYWJsZXMudHMnO1xuaW1wb3J0IHsgcmVxdWlyZVN1cGVyQ2FsbCB9IGZyb20gJy4vcmVxdWlyZS1zdXBlci1jYWxsLnRzJztcblxuZXhwb3J0IGNvbnN0IG9ic2lkaWFuRGV2VXRpbHNQbHVnaW46IEVTTGludC5QbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgJ25vLWFzeW5jLWNhbGxiYWNrLXRvLXVuc2FmZS1yZXR1cm4nOiBub0FzeW5jQ2FsbGJhY2tUb1Vuc2FmZVJldHVybixcbiAgICAnbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6IG5vVXNlZFVuZGVyc2NvcmVWYXJpYWJsZXMsXG4gICAgJ3JlcXVpcmUtc3VwZXItY2FsbCc6IHJlcXVpcmVTdXBlckNhbGxcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLGdEQUE4QztBQUM5QywwQ0FBMEM7QUFDMUMsZ0NBQWlDO0FBRTFCLE1BQU0seUJBQXdDO0FBQUEsRUFDbkQsT0FBTztBQUFBLElBQ0wsc0NBQXNDO0FBQUEsSUFDdEMsZ0NBQWdDO0FBQUEsSUFDaEMsc0JBQXNCO0FBQUEsRUFDeEI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,230 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function initCjs() {
7
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
8
+ const globalThisRecord = globalThis;
9
+ globalThisRecord['__name'] ??= name;
10
+ const originalRequire = require;
11
+ if (originalRequire && !originalRequire.__isPatched) {
12
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
13
+ require = Object.assign(
14
+ (id) => requirePatched(id),
15
+ originalRequire,
16
+ {
17
+ __isPatched: true
18
+ }
19
+ );
20
+ }
21
+
22
+ const newFuncs = {
23
+ __extractDefault() {
24
+ return extractDefault;
25
+ },
26
+ process() {
27
+ const browserProcess = {
28
+ browser: true,
29
+ cwd() {
30
+ return '/';
31
+ },
32
+ env: {},
33
+ platform: 'android'
34
+ };
35
+ return browserProcess;
36
+ }
37
+ };
38
+
39
+ for (const key of Object.keys(newFuncs)) {
40
+ globalThisRecord[key] ??= newFuncs[key]?.();
41
+ }
42
+
43
+ function name(obj) {
44
+ return obj;
45
+ }
46
+
47
+ function extractDefault(module) {
48
+ return module && module.__esModule && 'default' in module ? module.default : module;
49
+ }
50
+
51
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
52
+ 'obsidian',
53
+ '@codemirror/autocomplete',
54
+ '@codemirror/collab',
55
+ '@codemirror/commands',
56
+ '@codemirror/language',
57
+ '@codemirror/lint',
58
+ '@codemirror/search',
59
+ '@codemirror/state',
60
+ '@codemirror/text',
61
+ '@codemirror/view',
62
+ '@lezer/common',
63
+ '@lezer/lr',
64
+ '@lezer/highlight'];
65
+
66
+
67
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
68
+ '@codemirror/closebrackets',
69
+ '@codemirror/comment',
70
+ '@codemirror/fold',
71
+ '@codemirror/gutter',
72
+ '@codemirror/highlight',
73
+ '@codemirror/history',
74
+ '@codemirror/matchbrackets',
75
+ '@codemirror/panel',
76
+ '@codemirror/rangeset',
77
+ '@codemirror/rectangular-selection',
78
+ '@codemirror/stream-parser',
79
+ '@codemirror/tooltip'];
80
+
81
+
82
+ function requirePatched(id) {
83
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
84
+ return originalRequire?.(id);
85
+ }
86
+
87
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
88
+ if (globalThis.app.isMobile) {
89
+ if (id === 'process' || id === 'node:process') {
90
+ // eslint-disable-next-line no-console -- Valid usage.
91
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
92
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
93
+ return globalThis.process;
94
+ }
95
+ } else {
96
+ const module = originalRequire?.(id);
97
+ if (module) {
98
+ return extractDefault(module);
99
+ }
100
+ }
101
+
102
+ // eslint-disable-next-line no-console -- Valid usage.
103
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
104
+ return {};
105
+ }
106
+ })();
107
+
108
+ "use strict";
109
+ var __defProp = Object.defineProperty;
110
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
111
+ var __getOwnPropNames = Object.getOwnPropertyNames;
112
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
113
+ var __export = (target, all) => {
114
+ for (var name in all)
115
+ __defProp(target, name, { get: all[name], enumerable: true });
116
+ };
117
+ var __copyProps = (to, from, except, desc) => {
118
+ if (from && typeof from === "object" || typeof from === "function") {
119
+ for (let key of __getOwnPropNames(from))
120
+ if (!__hasOwnProp.call(to, key) && key !== except)
121
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
122
+ }
123
+ return to;
124
+ };
125
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
126
+ var require_super_call_exports = {};
127
+ __export(require_super_call_exports, {
128
+ MESSAGE_ID: () => MESSAGE_ID,
129
+ requireSuperCall: () => requireSuperCall
130
+ });
131
+ module.exports = __toCommonJS(require_super_call_exports);
132
+ var import_typescript = require('typescript');
133
+ var import_type_guards = require('../../../type-guards.cjs');
134
+ const MESSAGE_ID = "requireSuperCall";
135
+ const requireSuperCall = {
136
+ create(context) {
137
+ const services = context.sourceCode.parserServices;
138
+ const checker = services.program.getTypeChecker();
139
+ const methodStack = [];
140
+ return {
141
+ "CallExpression"(node) {
142
+ const current = methodStack[methodStack.length - 1];
143
+ if (!current) {
144
+ return;
145
+ }
146
+ const callNode = node;
147
+ if (checkIsSuperMethodCall(callNode, current.methodName)) {
148
+ current.hasSuperCall = true;
149
+ }
150
+ },
151
+ "MethodDefinition"(node) {
152
+ const methodNode = node;
153
+ if (!methodNode.override) {
154
+ return;
155
+ }
156
+ if (methodNode.key.type !== "Identifier") {
157
+ return;
158
+ }
159
+ methodStack.push({
160
+ hasSuperCall: false,
161
+ methodName: methodNode.key.name,
162
+ node: methodNode,
163
+ reportNode: node
164
+ });
165
+ },
166
+ "MethodDefinition:exit"() {
167
+ const info = methodStack[methodStack.length - 1];
168
+ if (!info) {
169
+ return;
170
+ }
171
+ methodStack.pop();
172
+ if (info.hasSuperCall) {
173
+ return;
174
+ }
175
+ if (checkIsParentMethodAbstract(services, checker, info.node, info.methodName)) {
176
+ return;
177
+ }
178
+ context.report({
179
+ data: { methodName: info.methodName },
180
+ messageId: MESSAGE_ID,
181
+ node: info.reportNode
182
+ });
183
+ }
184
+ };
185
+ },
186
+ meta: {
187
+ docs: {
188
+ description: "Require `override` methods to call `super.methodName()`"
189
+ },
190
+ messages: {
191
+ [MESSAGE_ID]: "Override method `{{ methodName }}` must call `super.{{ methodName }}()`."
192
+ },
193
+ schema: [],
194
+ type: "problem"
195
+ }
196
+ };
197
+ function checkIsAbstract(decl) {
198
+ (0, import_type_guards.assert)((0, import_typescript.canHaveModifiers)(decl), "Expected method declaration to support modifiers");
199
+ const modifiers = (0, import_typescript.getModifiers)(decl);
200
+ return modifiers?.some((mod) => mod.kind === import_typescript.SyntaxKind.AbstractKeyword) ?? false;
201
+ }
202
+ function checkIsParentMethodAbstract(services, checker, methodNode, methodName) {
203
+ const classDecl = methodNode.parent.parent;
204
+ const tsClassNode = services.esTreeNodeToTSNodeMap.get(classDecl);
205
+ const classType = checker.getTypeAtLocation(tsClassNode);
206
+ const baseTypes = classType.getBaseTypes();
207
+ (0, import_type_guards.assertNonNullable)(baseTypes, "Expected class with override method to have base types");
208
+ for (const baseType of baseTypes) {
209
+ const prop = baseType.getProperty(methodName);
210
+ (0, import_type_guards.assertNonNullable)(prop, `Expected base type to have property '${methodName}'`);
211
+ const declarations = prop.getDeclarations();
212
+ (0, import_type_guards.assertNonNullable)(declarations, `Expected property '${methodName}' to have declarations`);
213
+ for (const decl of declarations) {
214
+ if (checkIsAbstract(decl)) {
215
+ return true;
216
+ }
217
+ }
218
+ }
219
+ return false;
220
+ }
221
+ function checkIsSuperMethodCall(node, methodName) {
222
+ const callee = node.callee;
223
+ return callee.type === "MemberExpression" && callee.object.type === "Super" && callee.property.type === "Identifier" && callee.property.name === methodName;
224
+ }
225
+ // Annotate the CommonJS export names for ESM import in node:
226
+ 0 && (module.exports = {
227
+ MESSAGE_ID,
228
+ requireSuperCall
229
+ });
230
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1zdXBlci1jYWxsXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWBcbiAqIGFueXdoZXJlIGluIGl0cyBib2R5LiBPdmVycmlkaW5nIGEgbWV0aG9kIHdpdGhvdXQgY2FsbGluZyBgc3VwZXJgIGlzIGFsbW9zdFxuICogYWx3YXlzIGEgbWlzdGFrZSB0aGF0IHNpbGVudGx5IGJyZWFrcyBwYXJlbnQtY2xhc3MgYmVoYXZpb3IgKGxpZmVjeWNsZSBob29rcyxcbiAqIGluaXRpYWxpemF0aW9uLCBldmVudCB3aXJpbmcsIGV0Yy4pLlxuICpcbiAqIFRoZSBzdXBlciBjYWxsIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1ldGhvZCBib2R5IFx1MjAxNCBhcyBhIHN0YW5kYWxvbmVcbiAqIHN0YXRlbWVudCwgYXdhaXRlZCwgYXNzaWduZWQgdG8gYSB2YXJpYWJsZSwgb3IgbmVzdGVkIGluIGFueSBleHByZXNzaW9uLlxuICpcbiAqIFRoZSBydWxlIGF1dG9tYXRpY2FsbHkgc2tpcHMgbWV0aG9kcyB3aGVyZSB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIGlzXG4gKiBgYWJzdHJhY3RgLCBzaW5jZSB0aGVyZSBpcyBubyBjb25jcmV0ZSBgc3VwZXJgIHRvIGNhbGwuXG4gKlxuICogSWYgdGhlIG92ZXJyaWRlIGludGVudGlvbmFsbHkgcmVwbGFjZXMgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiwgZGlzYWJsZSB0aGVcbiAqIHJ1bGUgb24gdGhhdCBsaW5lIHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUge1xuICBEZWNsYXJhdGlvbixcbiAgVHlwZUNoZWNrZXJcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7XG4gIGNhbkhhdmVNb2RpZmllcnMsXG4gIGdldE1vZGlmaWVycyxcbiAgU3ludGF4S2luZFxufSBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtcbiAgYXNzZXJ0LFxuICBhc3NlcnROb25OdWxsYWJsZVxufSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0lEID0gJ3JlcXVpcmVTdXBlckNhbGwnO1xuXG5pbnRlcmZhY2UgT3ZlcnJpZGVNZXRob2RJbmZvIHtcbiAgaGFzU3VwZXJDYWxsOiBib29sZWFuO1xuICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIG5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gIHJlcG9ydE5vZGU6IFJ1bGUuTm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVTdXBlckNhbGw6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb247XG4gICAgY29uc3QgY2hlY2tlciA9IHNlcnZpY2VzLnByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgICBjb25zdCBtZXRob2RTdGFjazogT3ZlcnJpZGVNZXRob2RJbmZvW10gPSBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAnQ2FsbEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICghY3VycmVudCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNhbGxOb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGNoZWNrSXNTdXBlck1ldGhvZENhbGwoY2FsbE5vZGUsIGN1cnJlbnQubWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBjdXJyZW50Lmhhc1N1cGVyQ2FsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1ldGhvZE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG5cbiAgICAgICAgaWYgKCFtZXRob2ROb2RlLm92ZXJyaWRlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy5cbiAgICAgICAgaWYgKG1ldGhvZE5vZGUua2V5LnR5cGUgIT09ICdJZGVudGlmaWVyJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGhvZFN0YWNrLnB1c2goe1xuICAgICAgICAgIGhhc1N1cGVyQ2FsbDogZmFsc2UsXG4gICAgICAgICAgbWV0aG9kTmFtZTogbWV0aG9kTm9kZS5rZXkubmFtZSxcbiAgICAgICAgICBub2RlOiBtZXRob2ROb2RlLFxuICAgICAgICAgIHJlcG9ydE5vZGU6IG5vZGVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgJ01ldGhvZERlZmluaXRpb246ZXhpdCcoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZm8gPSBtZXRob2RTdGFja1ttZXRob2RTdGFjay5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKCFpbmZvKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucG9wKCk7XG5cbiAgICAgICAgaWYgKGluZm8uaGFzU3VwZXJDYWxsKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrSXNQYXJlbnRNZXRob2RBYnN0cmFjdChzZXJ2aWNlcywgY2hlY2tlciwgaW5mby5ub2RlLCBpbmZvLm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGRhdGE6IHsgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lIH0sXG4gICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lELFxuICAgICAgICAgIG5vZGU6IGluZm8ucmVwb3J0Tm9kZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGBvdmVycmlkZWAgbWV0aG9kcyB0byBjYWxsIGBzdXBlci5tZXRob2ROYW1lKClgJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ092ZXJyaWRlIG1ldGhvZCBge3sgbWV0aG9kTmFtZSB9fWAgbXVzdCBjYWxsIGBzdXBlci57eyBtZXRob2ROYW1lIH19KClgLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBkZWNsYXJhdGlvbiBoYXMgdGhlIGBhYnN0cmFjdGAgbW9kaWZpZXIuXG4gKlxuICogQHBhcmFtIGRlY2wgLSBUaGUgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc0Fic3RyYWN0KGRlY2w6IERlY2xhcmF0aW9uKTogYm9vbGVhbiB7XG4gIGFzc2VydChjYW5IYXZlTW9kaWZpZXJzKGRlY2wpLCAnRXhwZWN0ZWQgbWV0aG9kIGRlY2xhcmF0aW9uIHRvIHN1cHBvcnQgbW9kaWZpZXJzJyk7XG5cbiAgY29uc3QgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzKGRlY2wpO1xuICByZXR1cm4gbW9kaWZpZXJzPy5zb21lKChtb2QpID0+IG1vZC5raW5kID09PSBTeW50YXhLaW5kLkFic3RyYWN0S2V5d29yZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHBhcmVudCBjbGFzcydzIHZlcnNpb24gb2YgdGhlIG1ldGhvZCBpcyBgYWJzdHJhY3RgLlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlcyAtIFRoZSBwYXJzZXIgc2VydmljZXMgd2l0aCB0eXBlIGluZm9ybWF0aW9uLlxuICogQHBhcmFtIGNoZWNrZXIgLSBUaGUgVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gbWV0aG9kTm9kZSAtIFRoZSBvdmVycmlkZSBtZXRob2QgZGVmaW5pdGlvbiBBU1Qgbm9kZS5cbiAqIEBwYXJhbSBtZXRob2ROYW1lIC0gVGhlIG1ldGhvZCBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIHBhcmVudCBjbGFzcy5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcGFyZW50IG1ldGhvZCBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0KFxuICBzZXJ2aWNlczogUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uLFxuICBjaGVja2VyOiBUeXBlQ2hlY2tlcixcbiAgbWV0aG9kTm9kZTogVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbixcbiAgbWV0aG9kTmFtZTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgY2xhc3NEZWNsID0gbWV0aG9kTm9kZS5wYXJlbnQucGFyZW50O1xuICBjb25zdCB0c0NsYXNzTm9kZSA9IHNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcC5nZXQoY2xhc3NEZWNsKTtcbiAgY29uc3QgY2xhc3NUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NsYXNzTm9kZSk7XG4gIGNvbnN0IGJhc2VUeXBlcyA9IGNsYXNzVHlwZS5nZXRCYXNlVHlwZXMoKTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUoYmFzZVR5cGVzLCAnRXhwZWN0ZWQgY2xhc3Mgd2l0aCBvdmVycmlkZSBtZXRob2QgdG8gaGF2ZSBiYXNlIHR5cGVzJyk7XG5cbiAgZm9yIChjb25zdCBiYXNlVHlwZSBvZiBiYXNlVHlwZXMpIHtcbiAgICBjb25zdCBwcm9wID0gYmFzZVR5cGUuZ2V0UHJvcGVydHkobWV0aG9kTmFtZSk7XG4gICAgYXNzZXJ0Tm9uTnVsbGFibGUocHJvcCwgYEV4cGVjdGVkIGJhc2UgdHlwZSB0byBoYXZlIHByb3BlcnR5ICcke21ldGhvZE5hbWV9J2ApO1xuXG4gICAgY29uc3QgZGVjbGFyYXRpb25zID0gcHJvcC5nZXREZWNsYXJhdGlvbnMoKTtcbiAgICBhc3NlcnROb25OdWxsYWJsZShkZWNsYXJhdGlvbnMsIGBFeHBlY3RlZCBwcm9wZXJ0eSAnJHttZXRob2ROYW1lfScgdG8gaGF2ZSBkZWNsYXJhdGlvbnNgKTtcbiAgICBmb3IgKGNvbnN0IGRlY2wgb2YgZGVjbGFyYXRpb25zKSB7XG4gICAgICBpZiAoY2hlY2tJc0Fic3RyYWN0KGRlY2wpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgZXhwcmVzc2lvbiBpcyBgc3VwZXIubWV0aG9kTmFtZSguLi4pYC5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBjYWxsIGV4cHJlc3Npb24gbm9kZS5cbiAqIEBwYXJhbSBtZXRob2ROYW1lIC0gVGhlIGV4cGVjdGVkIG1ldGhvZCBuYW1lLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGEgbWF0Y2hpbmcgc3VwZXIgbWV0aG9kIGNhbGwuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNTdXBlck1ldGhvZENhbGwobm9kZTogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb24sIG1ldGhvZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBjYWxsZWUgPSBub2RlLmNhbGxlZTtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gY2FsbGVlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIGNhbGxlZS5vYmplY3QudHlwZSA9PT0gJ1N1cGVyJ1xuICAgICYmIGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkubmFtZSA9PT0gbWV0aG9kTmFtZTtcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBSZS1lbmFibGUgYWZ0ZXIgbXVsdGktbGluZSBzdHJpbmcgY29tcGFyaXNvbiBibG9jay4gKi9cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -0,0 +1,3 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const MESSAGE_ID = "requireSuperCall";
3
+ export declare const requireSuperCall: Rule.RuleModule;
@@ -190,4 +190,4 @@ function wrapProxy(value) {
190
190
  bypassStrictProxy,
191
191
  strictProxy
192
192
  });
193
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3N0cmljdC1wcm94eS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZhY3RvcnkgdmlhIGBQcm94eWAuIFRocm93cyBhIGRlc2NyaXB0aXZlIGVycm9yXG4gKiB3aGVuIGFueSB1bm1vY2tlZCBwcm9wZXJ0eSBpcyBhY2Nlc3NlZCwgcHJldmVudGluZyBzaWxlbnQgYHVuZGVmaW5lZGAgcmV0dXJucy5cbiAqXG4gKiBUaGUgcHJveHkgaW1wbGVtZW50YXRpb24gbWlycm9ycyB0aGUgZGVzaWduIG9mXG4gKiBgb2JzaWRpYW4tdGVzdC1tb2Nrcy9zcmMvaW50ZXJuYWwvc3RyaWN0LXByb3h5LnRzYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuY29uc3QgU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdzdHJpY3RQcm94eVRhcmdldCcpO1xuXG5jb25zdCBQQVNTVEhST1VHSF9QUk9QUyA9IG5ldyBTZXQ8c3RyaW5nIHwgc3ltYm9sPihbXG4gIFN5bWJvbC5pdGVyYXRvcixcbiAgU3ltYm9sLnRvUHJpbWl0aXZlLFxuICBTeW1ib2wudG9TdHJpbmdUYWcsXG4gICd0aGVuJyxcbiAgJ3RvSlNPTidcbl0pO1xuXG4vKipcbiAqIEJ5cGFzc2VzIHN0cmljdCBwcm94eSB0byBhY2Nlc3MgdGhlIHVuZGVybHlpbmcgb2JqZWN0LlxuICpcbiAqIElmIHRoZSBvYmplY3QgaXMgd3JhcHBlZCBpbiBhIHN0cmljdCBwcm94eSwgcmV0dXJucyB0aGUgdW53cmFwcGVkIHRhcmdldC5cbiAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgb2JqZWN0IGFzLWlzLiBUaGlzIGFsbG93cyBzYWZlbHkgYWNjZXNzaW5nXG4gKiBvcHRpb25hbCBwcm9wZXJ0aWVzIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUgcHJveHkncyBlcnJvciBvbiBtaXNzaW5nIHByb3BzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSBvYmplY3QgdHlwZS5cbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGJ5cGFzcy5cbiAqIEByZXR1cm5zIFRoZSB1bndyYXBwZWQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnlwYXNzU3RyaWN0UHJveHk8VD4ob2JqOiBUKTogVCB7XG4gIGlmICghaXNPYmplY3RMaWtlKG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIGlmICghKFNUUklDVF9QUk9YWV9UQVJHRVRfU1lNQk9MIGluIG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIHJldHVybiBvYmpbU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0xdIGFzIFQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZyb20gYSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uLlxuICogVXNlcyBhIGBQcm94eWAgdGhhdCB0aHJvd3MgYSBkZXNjcmlwdGl2ZSBlcnJvciB3aGVuIGFueSB1bm1vY2tlZFxuICogcHJvcGVydHkgaXMgYWNjZXNzZWQsIHByZXZlbnRpbmcgc2lsZW50IGB1bmRlZmluZWRgIHJldHVybnMuXG4gKlxuICogLSBJZGVtcG90ZW50OiBkb3VibGUtd3JhcHBpbmcgaXMgYSBuby1vcC5cbiAqIC0gUGFzc3Rocm91Z2ggZm9yIHdlbGwta25vd24gcHJvcHMgKGB0aGVuYCwgYHRvSlNPTmAsIGBTeW1ib2wuaXRlcmF0b3JgLCBldGMuKS5cbiAqIC0gUmVjdXJzaXZlIHByb3h5aW5nIG9mIG5lc3RlZCBwbGFpbiBvYmplY3RzLlxuICpcbiAqIEBwYXJhbSBwYXJ0aWFsIC0gQSBwYXJ0aWFsIG9iamVjdCBjb250YWluaW5nIG9ubHkgdGhlIG1vY2tlZCBtZW1iZXJzLlxuICogQHJldHVybnMgQSBwcm94eSB0eXBlZCBhcyBgVGAgdGhhdCB0aHJvd3Mgb24gdW5tb2NrZWQgcHJvcGVydHkgYWNjZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaWN0UHJveHk8VD4ocGFydGlhbDogUGFydGlhbERlZXA8VD4pOiBUIHtcbiAgcmV0dXJuIHdyYXBQcm94eTxUPihwYXJ0aWFsKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhbiBvYmplY3QtbGlrZSB2YWx1ZSAobm90IG51bGwpLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIG9iamVjdC1saWtlLlxuICovXG5mdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBvYmplY3Qge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jztcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdCAobm90IGEgY2xhc3MgaW5zdGFuY2UsIGFycmF5LCBudWxsLCBldGMuKS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSA9PT0gT2JqZWN0LnByb3RvdHlwZTtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIHZhbHVlIGluIGEgc3RyaWN0IHByb3h5LiBJZGVtcG90ZW50IFx1MjAxNCBkb3VibGUtd3JhcHBpbmcgaXMgYSBuby1vcC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gd3JhcC5cbiAqIEByZXR1cm5zIFRoZSBwcm94aWVkIHZhbHVlIHR5cGVkIGFzIGBUYC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gVCBwcm92aWRlcyByZXR1cm4gdHlwZSBpbmZlcmVuY2UgYXQgY2FsbCBzaXRlcy5cbmZ1bmN0aW9uIHdyYXBQcm94eTxUPih2YWx1ZTogdW5rbm93bik6IFQge1xuICBpZiAoIWlzT2JqZWN0TGlrZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgVDtcbiAgfVxuXG4gIGlmIChTVFJJQ1RfUFJPWFlfVEFSR0VUX1NZTUJPTCBpbiB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wsIHsgdmFsdWUgfSk7XG5cbiAgY29uc3QgcHJveGllZENoaWxkcmVuID0gbmV3IE1hcDxzdHJpbmcgfCBzeW1ib2w+KCk7XG5cbiAgcmV0dXJuIG5ldyBQcm94eSh2YWx1ZSwge1xuICAgIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTogdW5rbm93biB7XG4gICAgICBpZiAocHJvcCBpbiB0YXJnZXQpIHtcbiAgICAgICAgaWYgKHByb3hpZWRDaGlsZHJlbi5oYXMocHJvcCkpIHtcbiAgICAgICAgICByZXR1cm4gcHJveGllZENoaWxkcmVuLmdldChwcm9wKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbDogdW5rbm93biA9IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gd3JhcFByb3h5PHVua25vd24+KHZhbCk7XG4gICAgICAgICAgcHJveGllZENoaWxkcmVuLnNldChwcm9wLCByZXN1bHQpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3ltYm9sJyB8fCBQQVNTVEhST1VHSF9QUk9QUy5oYXMocHJvcCkpIHtcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVubW9ja2VkIHByb3BlcnR5IFwiJHtwcm9wfVwiIHdhcyBhY2Nlc3NlZCBvbiBtb2NrIG9iamVjdGApO1xuICAgIH1cbiAgfSkgYXMgVDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEsTUFBTSw2QkFBNkIsdUJBQU8sSUFBSSxtQkFBbUI7QUFFakUsTUFBTSxvQkFBb0Isb0JBQUksSUFBcUI7QUFBQSxFQUNqRCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUCxPQUFPO0FBQUEsRUFDUDtBQUFBLEVBQ0E7QUFDRixDQUFDO0FBYU0sU0FBUyxrQkFBcUIsS0FBVztBQUM5QyxNQUFJLENBQUMsYUFBYSxHQUFHLEdBQUc7QUFDdEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLEVBQUUsOEJBQThCLE1BQU07QUFDeEMsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLElBQUksMEJBQTBCO0FBQ3ZDO0FBY08sU0FBUyxZQUFlLFNBQTRCO0FBQ3pELFNBQU8sVUFBYSxPQUFPO0FBQzdCO0FBUUEsU0FBUyxhQUFhLE9BQWlDO0FBQ3JELFNBQU8sVUFBVSxRQUFRLE9BQU8sVUFBVTtBQUM1QztBQVFBLFNBQVMsY0FBYyxPQUFrRDtBQUN2RSxTQUFPLGFBQWEsS0FBSyxLQUFLLE9BQU8sZUFBZSxLQUFLLE1BQU0sT0FBTztBQUN4RTtBQVNBLFNBQVMsVUFBYSxPQUFtQjtBQUN2QyxNQUFJLENBQUMsYUFBYSxLQUFLLEdBQUc7QUFDeEIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJLDhCQUE4QixPQUFPO0FBQ3ZDLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxlQUFlLE9BQU8sNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0FBRWxFLFFBQU0sa0JBQWtCLG9CQUFJLElBQXFCO0FBRWpELFNBQU8sSUFBSSxNQUFNLE9BQU87QUFBQSxJQUN0QixJQUFJLFFBQVEsTUFBTSxVQUFtQjtBQUNuQyxVQUFJLFFBQVEsUUFBUTtBQUNsQixZQUFJLGdCQUFnQixJQUFJLElBQUksR0FBRztBQUM3QixpQkFBTyxnQkFBZ0IsSUFBSSxJQUFJO0FBQUEsUUFDakM7QUFFQSxjQUFNLE1BQWUsUUFBUSxJQUFJLFFBQVEsTUFBTSxRQUFRO0FBQ3ZELFlBQUksY0FBYyxHQUFHLEdBQUc7QUFDdEIsZ0JBQU0sU0FBUyxVQUFtQixHQUFHO0FBQ3JDLDBCQUFnQixJQUFJLE1BQU0sTUFBTTtBQUNoQyxpQkFBTztBQUFBLFFBQ1Q7QUFDQSxlQUFPO0FBQUEsTUFDVDtBQUVBLFVBQUksT0FBTyxTQUFTLFlBQVksa0JBQWtCLElBQUksSUFBSSxHQUFHO0FBQzNELGVBQU8sUUFBUSxJQUFJLFFBQVEsTUFBTSxRQUFRO0FBQUEsTUFDM0M7QUFFQSxZQUFNLElBQUksTUFBTSxzQkFBc0IsSUFBSSwrQkFBK0I7QUFBQSxJQUMzRTtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
193
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3N0cmljdC1wcm94eS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZhY3RvcnkgdmlhIGBQcm94eWAuIFRocm93cyBhIGRlc2NyaXB0aXZlIGVycm9yXG4gKiB3aGVuIGFueSB1bm1vY2tlZCBwcm9wZXJ0eSBpcyBhY2Nlc3NlZCwgcHJldmVudGluZyBzaWxlbnQgYHVuZGVmaW5lZGAgcmV0dXJucy5cbiAqXG4gKiBUaGUgcHJveHkgaW1wbGVtZW50YXRpb24gbWlycm9ycyB0aGUgZGVzaWduIG9mXG4gKiBgb2JzaWRpYW4tdGVzdC1tb2Nrcy9zcmMvaW50ZXJuYWwvc3RyaWN0LXByb3h5LnRzYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhcnRpYWxEZWVwIH0gZnJvbSAndHlwZS1mZXN0JztcblxuY29uc3QgU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdzdHJpY3RQcm94eVRhcmdldCcpO1xuXG5jb25zdCBQQVNTVEhST1VHSF9QUk9QUyA9IG5ldyBTZXQ8c3RyaW5nIHwgc3ltYm9sPihbXG4gIFN5bWJvbC5pdGVyYXRvcixcbiAgU3ltYm9sLnRvUHJpbWl0aXZlLFxuICBTeW1ib2wudG9TdHJpbmdUYWcsXG4gICd0aGVuJyxcbiAgJ3RvSlNPTidcbl0pO1xuXG4vKipcbiAqIEJ5cGFzc2VzIHN0cmljdCBwcm94eSB0byBhY2Nlc3MgdGhlIHVuZGVybHlpbmcgb2JqZWN0LlxuICpcbiAqIElmIHRoZSBvYmplY3QgaXMgd3JhcHBlZCBpbiBhIHN0cmljdCBwcm94eSwgcmV0dXJucyB0aGUgdW53cmFwcGVkIHRhcmdldC5cbiAqIE90aGVyd2lzZSwgcmV0dXJucyB0aGUgb2JqZWN0IGFzLWlzLiBUaGlzIGFsbG93cyBzYWZlbHkgYWNjZXNzaW5nXG4gKiBvcHRpb25hbCBwcm9wZXJ0aWVzIHdpdGhvdXQgdHJpZ2dlcmluZyB0aGUgcHJveHkncyBlcnJvciBvbiBtaXNzaW5nIHByb3BzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSBvYmplY3QgdHlwZS5cbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGJ5cGFzcy5cbiAqIEByZXR1cm5zIFRoZSB1bndyYXBwZWQgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnlwYXNzU3RyaWN0UHJveHk8VD4ob2JqOiBUKTogVCB7XG4gIGlmICghaXNPYmplY3RMaWtlKG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIGlmICghKFNUUklDVF9QUk9YWV9UQVJHRVRfU1lNQk9MIGluIG9iaikpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIHJldHVybiBvYmpbU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0xdIGFzIFQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cmljdGx5LXR5cGVkIG1vY2sgb2JqZWN0IGZyb20gYSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uLlxuICogVXNlcyBhIGBQcm94eWAgdGhhdCB0aHJvd3MgYSBkZXNjcmlwdGl2ZSBlcnJvciB3aGVuIGFueSB1bm1vY2tlZFxuICogcHJvcGVydHkgaXMgYWNjZXNzZWQsIHByZXZlbnRpbmcgc2lsZW50IGB1bmRlZmluZWRgIHJldHVybnMuXG4gKlxuICogLSBJZGVtcG90ZW50OiBkb3VibGUtd3JhcHBpbmcgaXMgYSBuby1vcC5cbiAqIC0gUGFzc3Rocm91Z2ggZm9yIHdlbGwta25vd24gcHJvcHMgKGB0aGVuYCwgYHRvSlNPTmAsIGBTeW1ib2wuaXRlcmF0b3JgLCBldGMuKS5cbiAqIC0gUmVjdXJzaXZlIHByb3h5aW5nIG9mIG5lc3RlZCBwbGFpbiBvYmplY3RzLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0YXJnZXQgdHlwZSB0byBtb2NrLlxuICogQHBhcmFtIHBhcnRpYWwgLSBBIHBhcnRpYWwgb2JqZWN0IGNvbnRhaW5pbmcgb25seSB0aGUgbW9ja2VkIG1lbWJlcnMuXG4gKiBAcmV0dXJucyBBIHByb3h5IHR5cGVkIGFzIGBUYCB0aGF0IHRocm93cyBvbiB1bm1vY2tlZCBwcm9wZXJ0eSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpY3RQcm94eTxUPihwYXJ0aWFsOiBQYXJ0aWFsRGVlcDxUPik6IFQge1xuICByZXR1cm4gd3JhcFByb3h5PFQ+KHBhcnRpYWwpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGFuIG9iamVjdC1saWtlIHZhbHVlIChub3QgbnVsbCkuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdmFsdWUgaXMgb2JqZWN0LWxpa2UuXG4gKi9cbmZ1bmN0aW9uIGlzT2JqZWN0TGlrZSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIG9iamVjdCB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0IChub3QgYSBjbGFzcyBpbnN0YW5jZSwgYXJyYXksIG51bGwsIGV0Yy4pLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0LlxuICovXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09PSBPYmplY3QucHJvdG90eXBlO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgdmFsdWUgaW4gYSBzdHJpY3QgcHJveHkuIElkZW1wb3RlbnQgXHUyMDE0IGRvdWJsZS13cmFwcGluZyBpcyBhIG5vLW9wLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0YXJnZXQgdHlwZSBmb3IgdGhlIHByb3h5LlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gKiBAcmV0dXJucyBUaGUgcHJveGllZCB2YWx1ZSB0eXBlZCBhcyBgVGAuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFQgcHJvdmlkZXMgcmV0dXJuIHR5cGUgaW5mZXJlbmNlIGF0IGNhbGwgc2l0ZXMuXG5mdW5jdGlvbiB3cmFwUHJveHk8VD4odmFsdWU6IHVua25vd24pOiBUIHtcbiAgaWYgKCFpc09iamVjdExpa2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlIGFzIFQ7XG4gIH1cblxuICBpZiAoU1RSSUNUX1BST1hZX1RBUkdFVF9TWU1CT0wgaW4gdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgYXMgVDtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIFNUUklDVF9QUk9YWV9UQVJHRVRfU1lNQk9MLCB7IHZhbHVlIH0pO1xuXG4gIGNvbnN0IHByb3hpZWRDaGlsZHJlbiA9IG5ldyBNYXA8c3RyaW5nIHwgc3ltYm9sPigpO1xuXG4gIHJldHVybiBuZXcgUHJveHkodmFsdWUsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik6IHVua25vd24ge1xuICAgICAgaWYgKHByb3AgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGlmIChwcm94aWVkQ2hpbGRyZW4uaGFzKHByb3ApKSB7XG4gICAgICAgICAgcmV0dXJuIHByb3hpZWRDaGlsZHJlbi5nZXQocHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWw6IHVua25vd24gPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodmFsKSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHdyYXBQcm94eTx1bmtub3duPih2YWwpO1xuICAgICAgICAgIHByb3hpZWRDaGlsZHJlbi5zZXQocHJvcCwgcmVzdWx0KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N5bWJvbCcgfHwgUEFTU1RIUk9VR0hfUFJPUFMuaGFzKHByb3ApKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbm1vY2tlZCBwcm9wZXJ0eSBcIiR7cHJvcH1cIiB3YXMgYWNjZXNzZWQgb24gbW9jayBvYmplY3RgKTtcbiAgICB9XG4gIH0pIGFzIFQ7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVlBLE1BQU0sNkJBQTZCLHVCQUFPLElBQUksbUJBQW1CO0FBRWpFLE1BQU0sb0JBQW9CLG9CQUFJLElBQXFCO0FBQUEsRUFDakQsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1AsT0FBTztBQUFBLEVBQ1A7QUFBQSxFQUNBO0FBQ0YsQ0FBQztBQWFNLFNBQVMsa0JBQXFCLEtBQVc7QUFDOUMsTUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHO0FBQ3RCLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxFQUFFLDhCQUE4QixNQUFNO0FBQ3hDLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxJQUFJLDBCQUEwQjtBQUN2QztBQWVPLFNBQVMsWUFBZSxTQUE0QjtBQUN6RCxTQUFPLFVBQWEsT0FBTztBQUM3QjtBQVFBLFNBQVMsYUFBYSxPQUFpQztBQUNyRCxTQUFPLFVBQVUsUUFBUSxPQUFPLFVBQVU7QUFDNUM7QUFRQSxTQUFTLGNBQWMsT0FBa0Q7QUFDdkUsU0FBTyxhQUFhLEtBQUssS0FBSyxPQUFPLGVBQWUsS0FBSyxNQUFNLE9BQU87QUFDeEU7QUFVQSxTQUFTLFVBQWEsT0FBbUI7QUFDdkMsTUFBSSxDQUFDLGFBQWEsS0FBSyxHQUFHO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSw4QkFBOEIsT0FBTztBQUN2QyxXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sZUFBZSxPQUFPLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztBQUVsRSxRQUFNLGtCQUFrQixvQkFBSSxJQUFxQjtBQUVqRCxTQUFPLElBQUksTUFBTSxPQUFPO0FBQUEsSUFDdEIsSUFBSSxRQUFRLE1BQU0sVUFBbUI7QUFDbkMsVUFBSSxRQUFRLFFBQVE7QUFDbEIsWUFBSSxnQkFBZ0IsSUFBSSxJQUFJLEdBQUc7QUFDN0IsaUJBQU8sZ0JBQWdCLElBQUksSUFBSTtBQUFBLFFBQ2pDO0FBRUEsY0FBTSxNQUFlLFFBQVEsSUFBSSxRQUFRLE1BQU0sUUFBUTtBQUN2RCxZQUFJLGNBQWMsR0FBRyxHQUFHO0FBQ3RCLGdCQUFNLFNBQVMsVUFBbUIsR0FBRztBQUNyQywwQkFBZ0IsSUFBSSxNQUFNLE1BQU07QUFDaEMsaUJBQU87QUFBQSxRQUNUO0FBQ0EsZUFBTztBQUFBLE1BQ1Q7QUFFQSxVQUFJLE9BQU8sU0FBUyxZQUFZLGtCQUFrQixJQUFJLElBQUksR0FBRztBQUMzRCxlQUFPLFFBQVEsSUFBSSxRQUFRLE1BQU0sUUFBUTtBQUFBLE1BQzNDO0FBRUEsWUFBTSxJQUFJLE1BQU0sc0JBQXNCLElBQUksK0JBQStCO0FBQUEsSUFDM0U7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -29,6 +29,7 @@ export declare function bypassStrictProxy<T>(obj: T): T;
29
29
  * - Passthrough for well-known props (`then`, `toJSON`, `Symbol.iterator`, etc.).
30
30
  * - Recursive proxying of nested plain objects.
31
31
  *
32
+ * @typeParam T - The target type to mock.
32
33
  * @param partial - A partial object containing only the mocked members.
33
34
  * @returns A proxy typed as `T` that throws on unmocked property access.
34
35
  */