geonetwork-ui 2.7.0-dev.7a5d403cf → 2.7.0-dev.7cec835f7

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 (61) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
  2. package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
  3. package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
  4. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
  5. package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
  6. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
  7. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +4 -4
  8. package/esm2022/libs/api/repository/src/index.mjs +2 -2
  9. package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
  10. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +9 -10
  11. package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
  12. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
  13. package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
  14. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +3 -3
  15. package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
  16. package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
  17. package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
  18. package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
  19. package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
  20. package/fesm2022/geonetwork-ui.mjs +96 -497
  21. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  22. package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
  23. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
  24. package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
  25. package/libs/api/repository/src/index.d.ts +1 -1
  26. package/libs/api/repository/src/index.d.ts.map +1 -1
  27. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +0 -1
  28. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  29. package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
  30. package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
  31. package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
  32. package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
  33. package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
  34. package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
  37. package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
  38. package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
  39. package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
  40. package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
  41. package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
  42. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +3 -3
  43. package/src/libs/api/repository/src/index.ts +1 -1
  44. package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
  45. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +15 -11
  46. package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
  47. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
  48. package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
  49. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +2 -2
  50. package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
  51. package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
  52. package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
  53. package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
  54. package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
  55. package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
  56. package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
  57. package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
  58. package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
  59. package/libs/util/app-config/src/lib/constants.d.ts +0 -2
  60. package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
  61. package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
@@ -1,19 +1,31 @@
1
1
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
2
+ /**
3
+ * Taken from https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
4
+ * Note: some languages have multiple 3-char codes, like 'fre' and 'fra'; in that case, the one to be used
5
+ * in priority is the one defined last
6
+ */
2
7
  const LANG_3_TO_2_MAPPER = {
3
8
  eng: 'en',
9
+ nld: 'nl', // duplicate for "dut"
4
10
  dut: 'nl',
11
+ fra: 'fr', // duplicate for "fre"
5
12
  fre: 'fr',
13
+ deu: 'de', // duplicate for "ger"
6
14
  ger: 'de',
7
15
  kor: 'ko',
8
16
  spa: 'es',
17
+ ces: 'cs', // duplicate for "cze"
9
18
  cze: 'cs',
10
19
  cat: 'ca',
11
20
  fin: 'fi',
21
+ isl: 'is', // duplicate for "ice"
12
22
  ice: 'is',
13
23
  ita: 'it',
14
24
  por: 'pt',
15
25
  rus: 'ru',
26
+ zho: 'zh', // duplicate for "chi"
16
27
  chi: 'zh',
28
+ slk: 'sk', // duplicate for "slo"
17
29
  slo: 'sk',
18
30
  roh: 'rm',
19
31
  ara: 'ar',
@@ -24,8 +36,10 @@ const LANG_3_TO_2_MAPPER = {
24
36
  tur: 'tr',
25
37
  arm: 'hy',
26
38
  aze: 'az',
39
+ kat: 'ka', // duplicate for "geo"
27
40
  geo: 'ka',
28
41
  ukr: 'uk',
42
+ cym: 'cy', // duplicate for "wel"
29
43
  wel: 'cy',
30
44
  };
31
45
  export const LANGUAGE_NAMES = {
@@ -60,15 +74,42 @@ export const LANGUAGE_NAMES = {
60
74
  export const LANG_2_TO_3_MAPPER = Object.entries(LANG_3_TO_2_MAPPER).reduce((mapperObject, langEntry) => {
61
75
  return { ...mapperObject, [langEntry[1]]: langEntry[0] };
62
76
  }, {});
63
- export function getLang3FromLang2(lang2) {
64
- return LANG_2_TO_3_MAPPER[lang2] ?? lang2;
77
+ /**
78
+ * Converts a language code in any format to the ISO 639-2 format (3 characters)
79
+ * Returns the given string if the corresponding language code could not be recognized
80
+ */
81
+ export function toLang3(lang) {
82
+ if (!lang) {
83
+ // also handle falsy values just in case
84
+ return lang;
85
+ }
86
+ if (lang.length === 3) {
87
+ return LANG_2_TO_3_MAPPER[LANG_3_TO_2_MAPPER[lang.toLowerCase()]] ?? lang;
88
+ }
89
+ const lang2 = lang.toLowerCase().substring(0, 2);
90
+ return LANG_2_TO_3_MAPPER[lang2] ?? lang;
65
91
  }
66
- export function getLang2FromLang3(lang3) {
67
- return LANG_3_TO_2_MAPPER[lang3] ?? lang3;
68
- }
69
- export function getLocalizedIndexKey(lang2) {
70
- const lang3 = getLang3FromLang2(lang2);
71
- return lang3 ? `lang${lang3}` : null;
92
+ /**
93
+ * Converts a language code in any format to the ISO 639-1 format (2 characters)
94
+ * Returns the given string if the corresponding language code could not be recognized
95
+ */
96
+ export function toLang2(lang) {
97
+ if (!lang) {
98
+ // also handle falsy values just in case
99
+ return lang;
100
+ }
101
+ if (lang.length === 3) {
102
+ return LANG_3_TO_2_MAPPER[lang.toLowerCase()] ?? lang;
103
+ }
104
+ const lang2 = lang.toLowerCase().substring(0, 2);
105
+ if (lang2 in LANG_2_TO_3_MAPPER) {
106
+ return lang2;
107
+ }
108
+ if (lang.match(/[a-z]{2}_[A-Z]{2}/)) {
109
+ // remove locale code even if the language code is not known
110
+ return lang2;
111
+ }
112
+ return lang;
72
113
  }
73
114
  marker('language.en');
74
115
  marker('language.nl');
@@ -97,4 +138,4 @@ marker('language.az');
97
138
  marker('language.ka');
98
139
  marker('language.uk');
99
140
  marker('language.cy');
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvbGliL2xhbmd1YWdlLWNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUVoRSxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtDQUNWLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsRUFBRSxFQUFFLFNBQVM7SUFDYixFQUFFLEVBQUUsWUFBWTtJQUNoQixFQUFFLEVBQUUsVUFBVTtJQUNkLEVBQUUsRUFBRSxTQUFTO0lBQ2IsRUFBRSxFQUFFLEtBQUs7SUFDVCxFQUFFLEVBQUUsU0FBUztJQUNiLEVBQUUsRUFBRSxTQUFTO0lBQ2IsRUFBRSxFQUFFLFFBQVE7SUFDWixFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxVQUFVO0lBQ2QsRUFBRSxFQUFFLFVBQVU7SUFDZCxFQUFFLEVBQUUsV0FBVztJQUNmLEVBQUUsRUFBRSxTQUFTO0lBQ2IsRUFBRSxFQUFFLElBQUk7SUFDUixFQUFFLEVBQUUsWUFBWTtJQUNoQixFQUFFLEVBQUUsV0FBVztJQUNmLEVBQUUsRUFBRSxTQUFTO0lBQ2IsRUFBRSxFQUFFLE9BQU87SUFDWCxFQUFFLEVBQUUsT0FBTztJQUNYLEVBQUUsRUFBRSxRQUFRO0lBQ1osRUFBRSxFQUFFLFNBQVM7SUFDYixFQUFFLEVBQUUsUUFBUTtJQUNaLEVBQUUsRUFBRSxTQUFTO0lBQ2IsRUFBRSxFQUFFLGlCQUFpQjtJQUNyQixFQUFFLEVBQUUsU0FBUztJQUNiLEVBQUUsRUFBRSxZQUFZO0lBQ2hCLEdBQUcsRUFBRSxTQUFTO0NBQ2YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQ3pFLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxFQUFFO0lBQzFCLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0FBQzFELENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQTtBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFBO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBYTtJQUM3QyxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQTtBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWE7SUFDaEQsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUN0QyxDQUFDO0FBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5cbmNvbnN0IExBTkdfM19UT18yX01BUFBFUiA9IHtcbiAgZW5nOiAnZW4nLFxuICBkdXQ6ICdubCcsXG4gIGZyZTogJ2ZyJyxcbiAgZ2VyOiAnZGUnLFxuICBrb3I6ICdrbycsXG4gIHNwYTogJ2VzJyxcbiAgY3plOiAnY3MnLFxuICBjYXQ6ICdjYScsXG4gIGZpbjogJ2ZpJyxcbiAgaWNlOiAnaXMnLFxuICBpdGE6ICdpdCcsXG4gIHBvcjogJ3B0JyxcbiAgcnVzOiAncnUnLFxuICBjaGk6ICd6aCcsXG4gIHNsbzogJ3NrJyxcbiAgcm9oOiAncm0nLFxuICBhcmE6ICdhcicsXG4gIGRhbjogJ2RhJyxcbiAgbm9yOiAnbm8nLFxuICBwb2w6ICdwbCcsXG4gIHN3ZTogJ3N2JyxcbiAgdHVyOiAndHInLFxuICBhcm06ICdoeScsXG4gIGF6ZTogJ2F6JyxcbiAgZ2VvOiAna2EnLFxuICB1a3I6ICd1aycsXG4gIHdlbDogJ2N5Jyxcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdVQUdFX05BTUVTID0ge1xuICBlbjogJ0VuZ2xpc2gnLFxuICBubDogJ05lZGVybGFuZHMnLFxuICBmcjogJ0ZyYW7Dp2FpcycsXG4gIGRlOiAnRGV1dHNjaCcsXG4gIGtvOiAn7ZWc6rWt7Ja0JyxcbiAgZXM6ICdFc3Bhw7FvbCcsXG4gIGNzOiAnxIxlxaF0aW5hJyxcbiAgY2E6ICdDYXRhbMOgJyxcbiAgZmk6ICdTdW9taScsXG4gIGlzOiAnw41zbGVuc2thJyxcbiAgaXQ6ICdJdGFsaWFubycsXG4gIHB0OiAnUG9ydHVndcOqcycsXG4gIHJ1OiAn0KDRg9GB0YHQutC40LknLFxuICB6aDogJ+S4reaWhycsXG4gIHNrOiAnU2xvdmVuxI1pbmEnLFxuICBybTogJ1J1bWFudHNjaCcsXG4gIGFyOiAn2KfZhNi52LHYqNmK2KknLFxuICBkYTogJ0RhbnNrJyxcbiAgbm86ICdOb3JzaycsXG4gIHBsOiAnUG9sc2tpJyxcbiAgc3Y6ICdTd2VkaXNoJyxcbiAgdHI6ICdUw7xya8OnZScsXG4gIGh5OiAn1bDVodW11aXWgNWl1bYnLFxuICBhejogJ0F6yZlyYmF5Y2FuIGRpbGknLFxuICBrYTogJ+GDpeGDkOGDoOGDl+GDo+GDmuGDmCcsXG4gIHVrOiAn0YPQutGA0LDRl9C90YHRjNC60LAnLFxuICB3ZWw6ICdDeW1yYWVnJyxcbn1cblxuZXhwb3J0IGNvbnN0IExBTkdfMl9UT18zX01BUFBFUiA9IE9iamVjdC5lbnRyaWVzKExBTkdfM19UT18yX01BUFBFUikucmVkdWNlKFxuICAobWFwcGVyT2JqZWN0LCBsYW5nRW50cnkpID0+IHtcbiAgICByZXR1cm4geyAuLi5tYXBwZXJPYmplY3QsIFtsYW5nRW50cnlbMV1dOiBsYW5nRW50cnlbMF0gfVxuICB9LFxuICB7fVxuKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFuZzNGcm9tTGFuZzIobGFuZzI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBMQU5HXzJfVE9fM19NQVBQRVJbbGFuZzJdID8/IGxhbmcyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5nMkZyb21MYW5nMyhsYW5nMzogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIExBTkdfM19UT18yX01BUFBFUltsYW5nM10gPz8gbGFuZzNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsaXplZEluZGV4S2V5KGxhbmcyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYW5nMyA9IGdldExhbmczRnJvbUxhbmcyKGxhbmcyKVxuICByZXR1cm4gbGFuZzMgPyBgbGFuZyR7bGFuZzN9YCA6IG51bGxcbn1cblxubWFya2VyKCdsYW5ndWFnZS5lbicpXG5tYXJrZXIoJ2xhbmd1YWdlLm5sJylcbm1hcmtlcignbGFuZ3VhZ2UuZnInKVxubWFya2VyKCdsYW5ndWFnZS5kZScpXG5tYXJrZXIoJ2xhbmd1YWdlLmtvJylcbm1hcmtlcignbGFuZ3VhZ2UuZXMnKVxubWFya2VyKCdsYW5ndWFnZS5jcycpXG5tYXJrZXIoJ2xhbmd1YWdlLmNhJylcbm1hcmtlcignbGFuZ3VhZ2UuZmknKVxubWFya2VyKCdsYW5ndWFnZS5pcycpXG5tYXJrZXIoJ2xhbmd1YWdlLml0Jylcbm1hcmtlcignbGFuZ3VhZ2UucHQnKVxubWFya2VyKCdsYW5ndWFnZS5ydScpXG5tYXJrZXIoJ2xhbmd1YWdlLnpoJylcbm1hcmtlcignbGFuZ3VhZ2Uuc2snKVxubWFya2VyKCdsYW5ndWFnZS5ybScpXG5tYXJrZXIoJ2xhbmd1YWdlLmFyJylcbm1hcmtlcignbGFuZ3VhZ2UuZGEnKVxubWFya2VyKCdsYW5ndWFnZS5ubycpXG5tYXJrZXIoJ2xhbmd1YWdlLnBsJylcbm1hcmtlcignbGFuZ3VhZ2Uuc3YnKVxubWFya2VyKCdsYW5ndWFnZS50cicpXG5tYXJrZXIoJ2xhbmd1YWdlLmh5Jylcbm1hcmtlcignbGFuZ3VhZ2UuYXonKVxubWFya2VyKCdsYW5ndWFnZS5rYScpXG5tYXJrZXIoJ2xhbmd1YWdlLnVrJylcbm1hcmtlcignbGFuZ3VhZ2UuY3knKVxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvaTE4bi9zcmMvbGliL2xhbmd1YWdlLWNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJLEVBQUUsc0JBQXNCO0lBQ2pDLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUksRUFBRSxzQkFBc0I7SUFDakMsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSSxFQUFFLHNCQUFzQjtJQUNqQyxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSSxFQUFFLHNCQUFzQjtJQUNqQyxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSSxFQUFFLHNCQUFzQjtJQUNqQyxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJLEVBQUUsc0JBQXNCO0lBQ2pDLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUksRUFBRSxzQkFBc0I7SUFDakMsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUs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QUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7UUFDcEMsNERBQTREO1FBQzVELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQ3JCLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7QUFDckIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuXG4vKipcbiAqIFRha2VuIGZyb20gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGlzdF9vZl9JU09fNjM5X2xhbmd1YWdlX2NvZGVzXG4gKiBOb3RlOiBzb21lIGxhbmd1YWdlcyBoYXZlIG11bHRpcGxlIDMtY2hhciBjb2RlcywgbGlrZSAnZnJlJyBhbmQgJ2ZyYSc7IGluIHRoYXQgY2FzZSwgdGhlIG9uZSB0byBiZSB1c2VkXG4gKiBpbiBwcmlvcml0eSBpcyB0aGUgb25lIGRlZmluZWQgbGFzdFxuICovXG5jb25zdCBMQU5HXzNfVE9fMl9NQVBQRVIgPSB7XG4gIGVuZzogJ2VuJyxcbiAgbmxkOiAnbmwnLCAvLyBkdXBsaWNhdGUgZm9yIFwiZHV0XCJcbiAgZHV0OiAnbmwnLFxuICBmcmE6ICdmcicsIC8vIGR1cGxpY2F0ZSBmb3IgXCJmcmVcIlxuICBmcmU6ICdmcicsXG4gIGRldTogJ2RlJywgLy8gZHVwbGljYXRlIGZvciBcImdlclwiXG4gIGdlcjogJ2RlJyxcbiAga29yOiAna28nLFxuICBzcGE6ICdlcycsXG4gIGNlczogJ2NzJywgLy8gZHVwbGljYXRlIGZvciBcImN6ZVwiXG4gIGN6ZTogJ2NzJyxcbiAgY2F0OiAnY2EnLFxuICBmaW46ICdmaScsXG4gIGlzbDogJ2lzJywgLy8gZHVwbGljYXRlIGZvciBcImljZVwiXG4gIGljZTogJ2lzJyxcbiAgaXRhOiAnaXQnLFxuICBwb3I6ICdwdCcsXG4gIHJ1czogJ3J1JyxcbiAgemhvOiAnemgnLCAvLyBkdXBsaWNhdGUgZm9yIFwiY2hpXCJcbiAgY2hpOiAnemgnLFxuICBzbGs6ICdzaycsIC8vIGR1cGxpY2F0ZSBmb3IgXCJzbG9cIlxuICBzbG86ICdzaycsXG4gIHJvaDogJ3JtJyxcbiAgYXJhOiAnYXInLFxuICBkYW46ICdkYScsXG4gIG5vcjogJ25vJyxcbiAgcG9sOiAncGwnLFxuICBzd2U6ICdzdicsXG4gIHR1cjogJ3RyJyxcbiAgYXJtOiAnaHknLFxuICBhemU6ICdheicsXG4gIGthdDogJ2thJywgLy8gZHVwbGljYXRlIGZvciBcImdlb1wiXG4gIGdlbzogJ2thJyxcbiAgdWtyOiAndWsnLFxuICBjeW06ICdjeScsIC8vIGR1cGxpY2F0ZSBmb3IgXCJ3ZWxcIlxuICB3ZWw6ICdjeScsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRV9OQU1FUyA9IHtcbiAgZW46ICdFbmdsaXNoJyxcbiAgbmw6ICdOZWRlcmxhbmRzJyxcbiAgZnI6ICdGcmFuw6dhaXMnLFxuICBkZTogJ0RldXRzY2gnLFxuICBrbzogJ+2VnOq1reyWtCcsXG4gIGVzOiAnRXNwYcOxb2wnLFxuICBjczogJ8SMZcWhdGluYScsXG4gIGNhOiAnQ2F0YWzDoCcsXG4gIGZpOiAnU3VvbWknLFxuICBpczogJ8ONc2xlbnNrYScsXG4gIGl0OiAnSXRhbGlhbm8nLFxuICBwdDogJ1BvcnR1Z3XDqnMnLFxuICBydTogJ9Cg0YPRgdGB0LrQuNC5JyxcbiAgemg6ICfkuK3mlocnLFxuICBzazogJ1Nsb3ZlbsSNaW5hJyxcbiAgcm06ICdSdW1hbnRzY2gnLFxuICBhcjogJ9in2YTYudix2KjZitipJyxcbiAgZGE6ICdEYW5zaycsXG4gIG5vOiAnTm9yc2snLFxuICBwbDogJ1BvbHNraScsXG4gIHN2OiAnU3dlZGlzaCcsXG4gIHRyOiAnVMO8cmvDp2UnLFxuICBoeTogJ9Ww1aHVtdWl1oDVpdW2JyxcbiAgYXo6ICdBesmZcmJheWNhbiBkaWxpJyxcbiAga2E6ICfhg6Xhg5Dhg6Dhg5fhg6Phg5rhg5gnLFxuICB1azogJ9GD0LrRgNCw0ZfQvdGB0YzQutCwJyxcbiAgd2VsOiAnQ3ltcmFlZycsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIExhbmd1YWdlQ29kZTMgPSBrZXlvZiB0eXBlb2YgTEFOR18zX1RPXzJfTUFQUEVSXG5leHBvcnQgdHlwZSBMYW5ndWFnZUNvZGUyID0gKHR5cGVvZiBMQU5HXzNfVE9fMl9NQVBQRVIpW0xhbmd1YWdlQ29kZTNdXG5cbmV4cG9ydCBjb25zdCBMQU5HXzJfVE9fM19NQVBQRVIgPSBPYmplY3QuZW50cmllcyhMQU5HXzNfVE9fMl9NQVBQRVIpLnJlZHVjZShcbiAgKG1hcHBlck9iamVjdCwgbGFuZ0VudHJ5KSA9PiB7XG4gICAgcmV0dXJuIHsgLi4ubWFwcGVyT2JqZWN0LCBbbGFuZ0VudHJ5WzFdXTogbGFuZ0VudHJ5WzBdIH1cbiAgfSxcbiAge31cbikgYXMgUmVjb3JkPExhbmd1YWdlQ29kZTIsIExhbmd1YWdlQ29kZTM+XG5cbi8qKlxuICogVGhpcyBjYW4gYmU6XG4gKiAtIGFuIElTTyA2MzktMiBsYW5ndWFnZSBjb2RlIGluIDMgY2hhcmFjdGVycyAoZS5nLiAnZW5nJywgJ2ZyZScsICdnZXInKVxuICogLSBhbiBJU08gNjM5LTEgbGFuZ3VhZ2UgY29kZSBpbiAyIGNoYXJhY3RlcnMgKGUuZy4gJ2VuJywgJ2ZyJywgJ2RlJylcbiAqIC0gYSAyLWNoYXJhY3RlciBsYW5ndWFnZSBjb2RlIHdpdGggbG9jYWxlIChlLmcuICdmcl9GUicsICdmcl9DQScpXG4gKi9cbmV4cG9ydCB0eXBlIExhbmd1YWdlQ29kZUxpa2UgPSBMYW5ndWFnZUNvZGUyIHwgTGFuZ3VhZ2VDb2RlMyB8IHN0cmluZ1xuXG4vKipcbiAqIENvbnZlcnRzIGEgbGFuZ3VhZ2UgY29kZSBpbiBhbnkgZm9ybWF0IHRvIHRoZSBJU08gNjM5LTIgZm9ybWF0ICgzIGNoYXJhY3RlcnMpXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbGFuZ3VhZ2UgY29kZSBjb3VsZCBub3QgYmUgcmVjb2duaXplZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9MYW5nMyhsYW5nOiBMYW5ndWFnZUNvZGVMaWtlKTogTGFuZ3VhZ2VDb2RlMyB8IHN0cmluZyB7XG4gIGlmICghbGFuZykge1xuICAgIC8vIGFsc28gaGFuZGxlIGZhbHN5IHZhbHVlcyBqdXN0IGluIGNhc2VcbiAgICByZXR1cm4gbGFuZ1xuICB9XG4gIGlmIChsYW5nLmxlbmd0aCA9PT0gMykge1xuICAgIHJldHVybiBMQU5HXzJfVE9fM19NQVBQRVJbTEFOR18zX1RPXzJfTUFQUEVSW2xhbmcudG9Mb3dlckNhc2UoKV1dID8/IGxhbmdcbiAgfVxuICBjb25zdCBsYW5nMiA9IGxhbmcudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwgMilcbiAgcmV0dXJuIExBTkdfMl9UT18zX01BUFBFUltsYW5nMl0gPz8gbGFuZ1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGFuZ3VhZ2UgY29kZSBpbiBhbnkgZm9ybWF0IHRvIHRoZSBJU08gNjM5LTEgZm9ybWF0ICgyIGNoYXJhY3RlcnMpXG4gKiBSZXR1cm5zIHRoZSBnaXZlbiBzdHJpbmcgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbGFuZ3VhZ2UgY29kZSBjb3VsZCBub3QgYmUgcmVjb2duaXplZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9MYW5nMihsYW5nOiBMYW5ndWFnZUNvZGVMaWtlKTogTGFuZ3VhZ2VDb2RlMiB8IHN0cmluZyB7XG4gIGlmICghbGFuZykge1xuICAgIC8vIGFsc28gaGFuZGxlIGZhbHN5IHZhbHVlcyBqdXN0IGluIGNhc2VcbiAgICByZXR1cm4gbGFuZ1xuICB9XG4gIGlmIChsYW5nLmxlbmd0aCA9PT0gMykge1xuICAgIHJldHVybiBMQU5HXzNfVE9fMl9NQVBQRVJbbGFuZy50b0xvd2VyQ2FzZSgpXSA/PyBsYW5nXG4gIH1cbiAgY29uc3QgbGFuZzIgPSBsYW5nLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKDAsIDIpXG4gIGlmIChsYW5nMiBpbiBMQU5HXzJfVE9fM19NQVBQRVIpIHtcbiAgICByZXR1cm4gbGFuZzJcbiAgfVxuICBpZiAobGFuZy5tYXRjaCgvW2Etel17Mn1fW0EtWl17Mn0vKSkge1xuICAgIC8vIHJlbW92ZSBsb2NhbGUgY29kZSBldmVuIGlmIHRoZSBsYW5ndWFnZSBjb2RlIGlzIG5vdCBrbm93blxuICAgIHJldHVybiBsYW5nMlxuICB9XG4gIHJldHVybiBsYW5nXG59XG5cbm1hcmtlcignbGFuZ3VhZ2UuZW4nKVxubWFya2VyKCdsYW5ndWFnZS5ubCcpXG5tYXJrZXIoJ2xhbmd1YWdlLmZyJylcbm1hcmtlcignbGFuZ3VhZ2UuZGUnKVxubWFya2VyKCdsYW5ndWFnZS5rbycpXG5tYXJrZXIoJ2xhbmd1YWdlLmVzJylcbm1hcmtlcignbGFuZ3VhZ2UuY3MnKVxubWFya2VyKCdsYW5ndWFnZS5jYScpXG5tYXJrZXIoJ2xhbmd1YWdlLmZpJylcbm1hcmtlcignbGFuZ3VhZ2UuaXMnKVxubWFya2VyKCdsYW5ndWFnZS5pdCcpXG5tYXJrZXIoJ2xhbmd1YWdlLnB0Jylcbm1hcmtlcignbGFuZ3VhZ2UucnUnKVxubWFya2VyKCdsYW5ndWFnZS56aCcpXG5tYXJrZXIoJ2xhbmd1YWdlLnNrJylcbm1hcmtlcignbGFuZ3VhZ2Uucm0nKVxubWFya2VyKCdsYW5ndWFnZS5hcicpXG5tYXJrZXIoJ2xhbmd1YWdlLmRhJylcbm1hcmtlcignbGFuZ3VhZ2Uubm8nKVxubWFya2VyKCdsYW5ndWFnZS5wbCcpXG5tYXJrZXIoJ2xhbmd1YWdlLnN2Jylcbm1hcmtlcignbGFuZ3VhZ2UudHInKVxubWFya2VyKCdsYW5ndWFnZS5oeScpXG5tYXJrZXIoJ2xhbmd1YWdlLmF6Jylcbm1hcmtlcignbGFuZ3VhZ2Uua2EnKVxubWFya2VyKCdsYW5ndWFnZS51aycpXG5tYXJrZXIoJ2xhbmd1YWdlLmN5JylcbiJdfQ==