geonetwork-ui 2.7.0-dev.8ac6cd7aa → 2.7.0-dev.9895bd35c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +4 -7
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +20 -20
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +4 -4
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +8 -4
- package/esm2022/libs/api/repository/src/index.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +5 -5
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +55 -12
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +3 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +20 -6
- package/esm2022/libs/api/repository/src/lib/metadata-language.token.mjs +3 -0
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +15 -1
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +3 -3
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +2 -2
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.mjs +79 -0
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +8 -3
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/index.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +77 -1
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +1 -4
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +7 -7
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -2
- package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
- package/esm2022/libs/util/app-config/src/lib/parse-utils.mjs +5 -4
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +50 -9
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -2
- package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +9 -8
- package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
- package/esm2022/translations/de.json +41 -7
- package/esm2022/translations/en.json +40 -6
- package/esm2022/translations/es.json +40 -6
- package/esm2022/translations/fr.json +41 -7
- package/esm2022/translations/it.json +40 -6
- package/esm2022/translations/nl.json +40 -6
- package/esm2022/translations/pt.json +40 -6
- package/esm2022/translations/sk.json +40 -6
- package/fesm2022/geonetwork-ui.mjs +3005 -2836
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/index.d.ts +1 -1
- package/libs/api/repository/src/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -2
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/metadata-language.token.d.ts +5 -0
- package/libs/api/repository/src/lib/metadata-language.token.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +4 -0
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts +28 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts +1 -0
- package/libs/feature/editor/src/lib/components/record-form/form-field/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +8 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +0 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/model.d.ts +1 -0
- package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/parse-utils.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/language-codes.d.ts +91 -31
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
- package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
- package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
- package/package.json +11 -10
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +3 -6
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +47 -22
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +7 -3
- package/src/libs/api/repository/src/index.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +4 -4
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +65 -14
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +2 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +21 -8
- package/src/libs/api/repository/src/lib/metadata-language.token.ts +8 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +20 -0
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +2 -5
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
- package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +1 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.css +0 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.html +20 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-inspire-field/form-field-inspire-theme.component.ts +85 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.html +6 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +5 -0
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/index.ts +1 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +85 -1
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +3 -1
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +4 -1
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +0 -4
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -6
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
- package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -1
- package/src/libs/util/app-config/src/lib/model.ts +1 -0
- package/src/libs/util/app-config/src/lib/parse-utils.ts +4 -7
- package/src/libs/util/i18n/src/lib/language-codes.ts +62 -11
- package/src/libs/util/shared/src/lib/links/link-utils.ts +2 -1
- package/src/libs/util/shared/src/lib/record/quality-score.util.ts +13 -10
- package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
- package/translations/de.json +41 -7
- package/translations/en.json +40 -6
- package/translations/es.json +40 -6
- package/translations/fr.json +41 -7
- package/translations/it.json +40 -6
- package/translations/nl.json +40 -6
- package/translations/pt.json +40 -6
- package/translations/sk.json +40 -6
- package/esm2022/libs/api/repository/src/lib/metadata-language.mjs +0 -3
- package/esm2022/libs/util/app-config/src/lib/constants.mjs +0 -439
- package/libs/api/repository/src/lib/metadata-language.d.ts +0 -3
- package/libs/api/repository/src/lib/metadata-language.d.ts.map +0 -1
- package/libs/util/app-config/src/lib/constants.d.ts +0 -2
- package/libs/util/app-config/src/lib/constants.d.ts.map +0 -1
- package/src/libs/api/repository/src/lib/metadata-language.ts +0 -3
|
@@ -50,6 +50,10 @@ export const RECORD_KEYWORDS_FIELD = {
|
|
|
50
50
|
model: 'keywords',
|
|
51
51
|
formFieldConfig: {},
|
|
52
52
|
};
|
|
53
|
+
export const RECORD_TOPICS_FIELD = {
|
|
54
|
+
model: 'topics',
|
|
55
|
+
formFieldConfig: {},
|
|
56
|
+
};
|
|
53
57
|
export const RECORD_RESOURCE_CREATED_FIELD = {
|
|
54
58
|
model: 'resourceCreated',
|
|
55
59
|
formFieldConfig: {
|
|
@@ -195,6 +199,12 @@ export const CLASSIFICATION_SECTION = {
|
|
|
195
199
|
hidden: false,
|
|
196
200
|
fields: [RECORD_KEYWORDS_FIELD],
|
|
197
201
|
};
|
|
202
|
+
export const INSPIRE_SECTION = {
|
|
203
|
+
labelKey: marker('editor.record.form.section.inspire.label'),
|
|
204
|
+
descriptionKey: marker('editor.record.form.section.inspire.description'),
|
|
205
|
+
hidden: false,
|
|
206
|
+
fields: [RECORD_TOPICS_FIELD],
|
|
207
|
+
};
|
|
198
208
|
export const USE_AND_ACCESS_CONDITIONS_SECTION = {
|
|
199
209
|
labelKey: marker('editor.record.form.section.useAndAccessConditions.label'),
|
|
200
210
|
hidden: false,
|
|
@@ -229,6 +239,7 @@ export const DEFAULT_CONFIGURATION = {
|
|
|
229
239
|
sections: [
|
|
230
240
|
TITLE_SECTION,
|
|
231
241
|
CLASSIFICATION_SECTION,
|
|
242
|
+
INSPIRE_SECTION,
|
|
232
243
|
ABOUT_SECTION,
|
|
233
244
|
GEOGRAPHICAL_COVERAGE_SECTION,
|
|
234
245
|
],
|
|
@@ -291,4 +302,69 @@ export const SPATIAL_SCOPES = [
|
|
|
291
302
|
type: 'theme',
|
|
292
303
|
},
|
|
293
304
|
];
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVFoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixH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QUE7QUFDOUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDM0MsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFFNUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFBO0FBQ3BDOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBYztJQUN2QztRQUNFLEdBQUcsRUFBRSxxRUFBcUU7UUFDMUUsS0FBSyxFQUFFLFVBQVU7UUFDakIsV0FBVyxFQUFFLEVBQUU7UUFDZixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxHQUFHLEVBQUUscUVBQXFFO1FBQzFFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLE9BQU87S0FDZDtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBFZGl0b3JDb25maWcsXG4gIEVkaXRvckZpZWxkLFxuICBFZGl0b3JTZWN0aW9uLFxufSBmcm9tICcuL21vZGVscy9lZGl0b3ItY29uZmlnLm1vZGVsJ1xuaW1wb3J0IHsgS2V5d29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGZpZWxkcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBlZGl0b3IuXG4gKiBUbyBhZGQgYSBuZXcgZmllbGQsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBFZGl0b3JGaWVsZCBvYmplY3QgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIFRoZW4gYWRkIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIHNlY3Rpb24gaW4gdGhlIHNlY3Rpb25zIHBhcnQgb2YgdGhpcyBmaWxlLlxuICogRmluYWxseSwgYWRkIHRoZSBzZWN0aW9uIHRvIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHBhZ2VzIHBhcnQgb2YgdGhpcyBmaWxlLlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgICAgIEZJRUxEUyAgICAgICAgICAgKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VOSVFVRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd1bmlxdWVJZGVudGlmaWVyJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnVuaXF1ZUlkZW50aWZpZXInKSxcbiAgfSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgQ09OU1RSQUlOVFNfU0hPUlRDVVRTOiBFZGl0b3JGaWVsZCA9IHtcbiAgY29tcG9uZW50TmFtZTogJ2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmNvbnN0cmFpbnRzU2hvcnRjdXRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBMRUdBTF9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGVnYWxDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5sZWdhbENvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5leHBvcnQgY29uc3QgU0VDVVJJVFlfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3NlY3VyaXR5Q29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuc2VjdXJpdHlDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvdGhlckNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm90aGVyQ29uc3RyYWludHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9MSUNFTlNFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdsaWNlbnNlcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5saWNlbnNlJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfS0VZV09SRFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2tleXdvcmRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9SRVNPVVJDRV9DUkVBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZUNyZWF0ZWQnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VDcmVhdGVkJyksXG4gIH0sXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxufVxuXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfSURFTlRJRklFUl9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VJZGVudGlmaWVyJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlSWRlbnRpZmllcicpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1JFU09VUkNFX1VQREFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlVXBkYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZVVwZGF0ZWQnKSxcbiAgfSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVVBEQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVjb3JkVXBkYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZWNvcmRVcGRhdGVkJyksXG4gIH0sXG4gIG9uU2F2ZVByb2Nlc3M6ICcke2RhdGVOb3coKX0nLFxuICBncmlkQ29sdW1uU3BhbjogMSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VQREFURV9GUkVRVUVOQ1lfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3VwZGF0ZUZyZXF1ZW5jeScsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudXBkYXRlRnJlcXVlbmN5JylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9URU1QT1JBTF9FWFRFTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd0ZW1wb3JhbEV4dGVudHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGVtcG9yYWxFeHRlbnRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVElUTEVfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RpdGxlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnRpdGxlJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfQUJTVFJBQ1RfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2Fic3RyYWN0JyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmFic3RyYWN0JyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBDT05UQUNUU19GT1JfUkVTT1VSQ0VfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2NvbnRhY3RzRm9yUmVzb3VyY2UnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogJycsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBDT05UQUNUUzogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnY29udGFjdHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogJycsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfR1JBUEhJQ0FMX09WRVJWSUVXX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvdmVydmlld3MnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub3ZlcnZpZXdzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfU1BBVElBTF9UT0dHTEVfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBjb21wb25lbnROYW1lOiAnZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9TUEFUSUFMX0VYVEVOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3NwYXRpYWxFeHRlbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5zcGF0aWFsRXh0ZW50cycpXG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfT05MSU5FX1JFU09VUkNFUzogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb25saW5lUmVzb3VyY2VzJyxcbiAgbW9kZWxTcGVjaWZpZXI6ICdvbmxpbmVSZXNvdXJjZVR5cGU6IWxpbmsnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlcycpXG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfT05MSU5FX0xJTktfUkVTT1VSQ0VTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvbmxpbmVSZXNvdXJjZXMnLFxuICBtb2RlbFNwZWNpZmllcjogJ29ubGluZVJlc291cmNlVHlwZTpsaW5rJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVMaW5rUmVzb3VyY2VzJylcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICBTRUNUSU9OUyAgICAgICAgICAqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbmV4cG9ydCBjb25zdCBUSVRMRV9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtcbiAgICBSRUNPUkRfVElUTEVfRklFTEQsXG4gICAgUkVDT1JEX0FCU1RSQUNUX0ZJRUxELFxuICAgIFJFQ09SRF9HUkFQSElDQUxfT1ZFUlZJRVdfRklFTEQsXG4gIF0sXG59XG5cbmV4cG9ydCBjb25zdCBBQk9VVF9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hYm91dC5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hYm91dC5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtcbiAgICBSRUNPUkRfVU5JUVVFX0lERU5USUZJRVJfRklFTEQsXG4gICAgUkVTT1VSQ0VfSURFTlRJRklFUl9GSUVMRCxcbiAgICBSRUNPUkRfUkVTT1VSQ0VfQ1JFQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfUkVTT1VSQ0VfVVBEQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfVVBEQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfVVBEQVRFX0ZSRVFVRU5DWV9GSUVMRCxcbiAgICBSRUNPUkRfVEVNUE9SQUxfRVhURU5UU19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IEdFT0dSQVBISUNBTF9DT1ZFUkFHRV9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5nZW9ncmFwaGljYWxDb3ZlcmFnZS5sYWJlbCcpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfU1BBVElBTF9UT0dHTEVfRklFTEQsIFJFQ09SRF9TUEFUSUFMX0VYVEVOVFNfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgQVNTT0NJQVRFRF9SRVNPVVJDRVNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYXNzb2NpYXRlZFJlc291cmNlcy5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKFxuICAgICdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hc3NvY2lhdGVkUmVzb3VyY2VzLmRlc2NyaXB0aW9uJ1xuICApLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfT05MSU5FX1JFU09VUkNFU10sXG59XG5cbmV4cG9ydCBjb25zdCBBTk5FWEVTX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFubmV4ZXMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYW5uZXhlcy5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfT05MSU5FX0xJTktfUkVTT1VSQ0VTXSxcbn1cblxuZXhwb3J0IGNvbnN0IENMQVNTSUZJQ0FUSU9OX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmNsYXNzaWZpY2F0aW9uLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmNsYXNzaWZpY2F0aW9uLmRlc2NyaXB0aW9uJ1xuICApLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfS0VZV09SRFNfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgVVNFX0FORF9BQ0NFU1NfQ09ORElUSU9OU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi51c2VBbmRBY2Nlc3NDb25kaXRpb25zLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9MSUNFTlNFX0ZJRUxELFxuICAgIENPTlNUUkFJTlRTX1NIT1JUQ1VUUyxcbiAgICBMRUdBTF9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBTRUNVUklUWV9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBPVEhFUl9DT05TVFJBSU5UU19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IERBVEFfTUFOQUdFUlNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmRhdGFNYW5hZ2Vycy5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtDT05UQUNUU19GT1JfUkVTT1VSQ0VfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5tZXRhZGF0YVBvaW50T2ZDb250YWN0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTXSxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICAgUEFHRVMgICAgICAgICAgICAqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUdVUkFUSU9OOiBFZGl0b3JDb25maWcgPSB7XG4gIHBhZ2VzOiBbXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UuZGVzY3JpcHRpb24nKSxcbiAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgIFRJVExFX1NFQ1RJT04sXG4gICAgICAgIENMQVNTSUZJQ0FUSU9OX1NFQ1RJT04sXG4gICAgICAgIEFCT1VUX1NFQ1RJT04sXG4gICAgICAgIEdFT0dSQVBISUNBTF9DT1ZFUkFHRV9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5wYWdlLnJlc291cmNlcycpLFxuICAgICAgc2VjdGlvbnM6IFtBU1NPQ0lBVEVEX1JFU09VUkNFU19TRUNUSU9OLCBBTk5FWEVTX1NFQ1RJT05dLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UuYWNjZXNzQW5kQ29udGFjdCcpLFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgVVNFX0FORF9BQ0NFU1NfQ09ORElUSU9OU19TRUNUSU9OLFxuICAgICAgICBEQVRBX01BTkFHRVJTX1NFQ1RJT04sXG4gICAgICAgIE1FVEFEQVRBX1BPSU5UX09GX0NPTlRBQ1RfU0VDVElPTixcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICAgTElDRU5TRVMgICAgICAgICAgICAqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQkxFX0xJQ0VOU0VTOiBzdHJpbmdbXSA9IFtcbiAgJ2NjLWJ5JyxcbiAgJ2NjLWJ5LXNhJyxcbiAgJ2NjLXplcm8nLFxuICAnZXRhbGFiJyxcbiAgJ2V0YWxhYi12MicsXG4gICdvZGJsJyxcbiAgJ29kYy1ieScsXG4gICdwZGRsJyxcbiAgJ3Vua25vd24nLFxuXVxuXG5leHBvcnQgY29uc3QgT1BFTl9EQVRBX0xJQ0VOU0UgPSAnZXRhbGFiJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnktc2EnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy16ZXJvJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuZXRhbGFiJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuZXRhbGFiLXYyJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RibCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLm9kYy1ieScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnBkZGwnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS51bmtub3duJylcblxuZXhwb3J0IGNvbnN0IE1BWF9VUExPQURfU0laRV9NQiA9IDEwXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICBTUEFUSUFMIFNDT1BFICAgICAgICAgICAgKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFNQQVRJQUxfU0NPUEVTOiBLZXl3b3JkW10gPSBbXG4gIHtcbiAgICBrZXk6ICdodHRwOi8vaW5zcGlyZS5lYy5ldXJvcGEuZXUvbWV0YWRhdGEtY29kZWxpc3QvU3BhdGlhbFNjb3BlL25hdGlvbmFsJyxcbiAgICBsYWJlbDogJ05hdGlvbmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgdHlwZTogJ3RoZW1lJyxcbiAgfSxcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvcmVnaW9uYWwnLFxuICAgIGxhYmVsOiAnUmVnaW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuXVxuIl19
|
|
305
|
+
/************************************************************
|
|
306
|
+
*************** INSPIRE THEMES **************
|
|
307
|
+
************************************************************
|
|
308
|
+
*/
|
|
309
|
+
export const INSPIRE_THEMES = [
|
|
310
|
+
{ value: 'biota', label: 'editor.record.form.inspire.biota' },
|
|
311
|
+
{ value: 'boundaries', label: 'editor.record.form.inspire.boundaries' },
|
|
312
|
+
{
|
|
313
|
+
value: 'climatologyMeteorologyAtmosphere',
|
|
314
|
+
label: 'editor.record.form.inspire.climatology',
|
|
315
|
+
},
|
|
316
|
+
{ value: 'economy', label: 'editor.record.form.inspire.economy' },
|
|
317
|
+
{ value: 'elevation', label: 'editor.record.form.inspire.elevation' },
|
|
318
|
+
{ value: 'environment', label: 'editor.record.form.inspire.environnement' },
|
|
319
|
+
{ value: 'farming', label: 'editor.record.form.inspire.farming' },
|
|
320
|
+
{
|
|
321
|
+
value: 'geoscientific information',
|
|
322
|
+
label: 'editor.record.form.inspire.geoscientific',
|
|
323
|
+
},
|
|
324
|
+
{ value: 'health', label: 'editor.record.form.inspire.health' },
|
|
325
|
+
{
|
|
326
|
+
value: 'imageryBaseMapsEarthCover',
|
|
327
|
+
label: 'editor.record.form.inspire.imagery',
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
value: 'intelligenceMilitary',
|
|
331
|
+
label: 'editor.record.form.inspire.intelligence',
|
|
332
|
+
},
|
|
333
|
+
{ value: 'Location', label: 'editor.record.form.inspire.location' },
|
|
334
|
+
{ value: 'Oceans', label: 'editor.record.form.inspire.oceans' },
|
|
335
|
+
{
|
|
336
|
+
value: 'planningCadastre',
|
|
337
|
+
label: 'editor.record.form.inspire.planning',
|
|
338
|
+
},
|
|
339
|
+
{ value: 'Society', label: 'editor.record.form.inspire.society' },
|
|
340
|
+
{ value: 'Structure', label: 'editor.record.form.inspire.structure' },
|
|
341
|
+
{
|
|
342
|
+
value: 'Transportation',
|
|
343
|
+
label: 'editor.record.form.inspire.transportation',
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
value: 'utilitiesCommunication',
|
|
347
|
+
label: 'editor.record.form.inspire.utilities',
|
|
348
|
+
},
|
|
349
|
+
{ value: 'inlandWaters', label: 'editor.record.form.inspire.waters' },
|
|
350
|
+
];
|
|
351
|
+
marker('editor.record.form.inspire.biota');
|
|
352
|
+
marker('editor.record.form.inspire.boundaries');
|
|
353
|
+
marker('editor.record.form.inspire.climatology');
|
|
354
|
+
marker('editor.record.form.inspire.economy');
|
|
355
|
+
marker('editor.record.form.inspire.elevation');
|
|
356
|
+
marker('editor.record.form.inspire.environnement');
|
|
357
|
+
marker('editor.record.form.inspire.farming');
|
|
358
|
+
marker('editor.record.form.inspire.geoscientific');
|
|
359
|
+
marker('editor.record.form.inspire.health');
|
|
360
|
+
marker('editor.record.form.inspire.imagery');
|
|
361
|
+
marker('editor.record.form.inspire.intelligence');
|
|
362
|
+
marker('editor.record.form.inspire.location');
|
|
363
|
+
marker('editor.record.form.inspire.oceans');
|
|
364
|
+
marker('editor.record.form.inspire.planning');
|
|
365
|
+
marker('editor.record.form.inspire.society');
|
|
366
|
+
marker('editor.record.form.inspire.structure');
|
|
367
|
+
marker('editor.record.form.inspire.transportation');
|
|
368
|
+
marker('editor.record.form.inspire.utilities');
|
|
369
|
+
marker('editor.record.form.inspire.waters');
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVdoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixH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O0FBQzFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO0FBQy9DLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0FBQ2hELE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO0FBQ2xELE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO0FBQ2xELE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO0FBQ2pELE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0FBQzdDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO0FBQzdDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBQzVDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFBO0FBQ25ELE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRWRpdG9yQ29uZmlnLFxuICBFZGl0b3JGaWVsZCxcbiAgRWRpdG9yU2VjdGlvbixcbn0gZnJvbSAnLi9tb2RlbHMvZWRpdG9yLWNvbmZpZy5tb2RlbCdcbmltcG9ydCB7XG4gIElOU1BJUkVfdGhlbWUsXG4gIEtleXdvcmQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGZpZWxkcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBlZGl0b3IuXG4gKiBUbyBhZGQgYSBuZXcgZmllbGQsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBFZGl0b3JGaWVsZCBvYmplY3QgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIFRoZW4gYWRkIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIHNlY3Rpb24gaW4gdGhlIHNlY3Rpb25zIHBhcnQgb2YgdGhpcyBmaWxlLlxuICogRmluYWxseSwgYWRkIHRoZSBzZWN0aW9uIHRvIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHBhZ2VzIHBhcnQgb2YgdGhpcyBmaWxlLlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgICAgIEZJRUxEUyAgICAgICAgICAgKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VOSVFVRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd1bmlxdWVJZGVudGlmaWVyJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnVuaXF1ZUlkZW50aWZpZXInKSxcbiAgfSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgQ09OU1RSQUlOVFNfU0hPUlRDVVRTOiBFZGl0b3JGaWVsZCA9IHtcbiAgY29tcG9uZW50TmFtZTogJ2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmNvbnN0cmFpbnRzU2hvcnRjdXRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBMRUdBTF9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGVnYWxDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5sZWdhbENvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5leHBvcnQgY29uc3QgU0VDVVJJVFlfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3NlY3VyaXR5Q29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuc2VjdXJpdHlDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvdGhlckNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm90aGVyQ29uc3RyYWludHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9MSUNFTlNFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdsaWNlbnNlcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5saWNlbnNlJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfS0VZV09SRFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2tleXdvcmRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9UT1BJQ1NfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RvcGljcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfUkVTT1VSQ0VfQ1JFQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VDcmVhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlQ3JlYXRlZCcpLFxuICB9LFxuICBncmlkQ29sdW1uU3BhbjogMSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFU09VUkNFX0lERU5USUZJRVJfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlSWRlbnRpZmllcicsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZUlkZW50aWZpZXInKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9SRVNPVVJDRV9VUERBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZVVwZGF0ZWQnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VVcGRhdGVkJyksXG4gIH0sXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VQREFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3JlY29yZFVwZGF0ZWQnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVjb3JkVXBkYXRlZCcpLFxuICB9LFxuICBvblNhdmVQcm9jZXNzOiAnJHtkYXRlTm93KCl9JyxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VUERBVEVfRlJFUVVFTkNZX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd1cGRhdGVGcmVxdWVuY3knLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnVwZGF0ZUZyZXF1ZW5jeScpXG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVEVNUE9SQUxfRVhURU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndGVtcG9yYWxFeHRlbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnRlbXBvcmFsRXh0ZW50cycpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1RJVExFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd0aXRsZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC50aXRsZScpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX0FCU1RSQUNUX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdhYnN0cmFjdCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5hYnN0cmFjdCcpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgQ09OVEFDVFNfRk9SX1JFU09VUkNFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdjb250YWN0c0ZvclJlc291cmNlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6ICcnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgQ09OVEFDVFM6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2NvbnRhY3RzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6ICcnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX0dSQVBISUNBTF9PVkVSVklFV19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb3ZlcnZpZXdzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm92ZXJ2aWV3cycpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1NQQVRJQUxfVE9HR0xFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgY29tcG9uZW50TmFtZTogJ2Zvcm0tZmllbGQtc3BhdGlhbC10b2dnbGUnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxuICBoaWRkZW46IHRydWUsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfU1BBVElBTF9FWFRFTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdzcGF0aWFsRXh0ZW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuc3BhdGlhbEV4dGVudHMnKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX09OTElORV9SRVNPVVJDRVM6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ29ubGluZVJlc291cmNlcycsXG4gIG1vZGVsU3BlY2lmaWVyOiAnb25saW5lUmVzb3VyY2VUeXBlOiFsaW5rJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZXMnKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX09OTElORV9MSU5LX1JFU09VUkNFUzogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb25saW5lUmVzb3VyY2VzJyxcbiAgbW9kZWxTcGVjaWZpZXI6ICdvbmxpbmVSZXNvdXJjZVR5cGU6bGluaycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lTGlua1Jlc291cmNlcycpXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgICAgU0VDVElPTlMgICAgICAgICAgKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgVElUTEVfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbXG4gICAgUkVDT1JEX1RJVExFX0ZJRUxELFxuICAgIFJFQ09SRF9BQlNUUkFDVF9GSUVMRCxcbiAgICBSRUNPUkRfR1JBUEhJQ0FMX09WRVJWSUVXX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgQUJPVVRfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYWJvdXQubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYWJvdXQuZGVzY3JpcHRpb24nKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbXG4gICAgUkVDT1JEX1VOSVFVRV9JREVOVElGSUVSX0ZJRUxELFxuICAgIFJFU09VUkNFX0lERU5USUZJRVJfRklFTEQsXG4gICAgUkVDT1JEX1JFU09VUkNFX0NSRUFURURfRklFTEQsXG4gICAgUkVDT1JEX1JFU09VUkNFX1VQREFURURfRklFTEQsXG4gICAgUkVDT1JEX1VQREFURURfRklFTEQsXG4gICAgUkVDT1JEX1VQREFURV9GUkVRVUVOQ1lfRklFTEQsXG4gICAgUkVDT1JEX1RFTVBPUkFMX0VYVEVOVFNfRklFTEQsXG4gIF0sXG59XG5cbmV4cG9ydCBjb25zdCBHRU9HUkFQSElDQUxfQ09WRVJBR0VfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZ2VvZ3JhcGhpY2FsQ292ZXJhZ2UubGFiZWwnKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbUkVDT1JEX1NQQVRJQUxfVE9HR0xFX0ZJRUxELCBSRUNPUkRfU1BBVElBTF9FWFRFTlRTX0ZJRUxEXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFTU09DSUFURURfUkVTT1VSQ0VTX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFzc29jaWF0ZWRSZXNvdXJjZXMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYXNzb2NpYXRlZFJlc291cmNlcy5kZXNjcmlwdGlvbidcbiAgKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbUkVDT1JEX09OTElORV9SRVNPVVJDRVNdLFxufVxuXG5leHBvcnQgY29uc3QgQU5ORVhFU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hbm5leGVzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFubmV4ZXMuZGVzY3JpcHRpb24nKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbUkVDT1JEX09OTElORV9MSU5LX1JFU09VUkNFU10sXG59XG5cbmV4cG9ydCBjb25zdCBDTEFTU0lGSUNBVElPTl9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5jbGFzc2lmaWNhdGlvbi5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKFxuICAgICdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5jbGFzc2lmaWNhdGlvbi5kZXNjcmlwdGlvbidcbiAgKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbUkVDT1JEX0tFWVdPUkRTX0ZJRUxEXSxcbn1cblxuZXhwb3J0IGNvbnN0IElOU1BJUkVfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uaW5zcGlyZS5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5pbnNwaXJlLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9UT1BJQ1NfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgVVNFX0FORF9BQ0NFU1NfQ09ORElUSU9OU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi51c2VBbmRBY2Nlc3NDb25kaXRpb25zLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9MSUNFTlNFX0ZJRUxELFxuICAgIENPTlNUUkFJTlRTX1NIT1JUQ1VUUyxcbiAgICBMRUdBTF9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBTRUNVUklUWV9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBPVEhFUl9DT05TVFJBSU5UU19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IERBVEFfTUFOQUdFUlNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmRhdGFNYW5hZ2Vycy5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtDT05UQUNUU19GT1JfUkVTT1VSQ0VfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5tZXRhZGF0YVBvaW50T2ZDb250YWN0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTXSxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICAgUEFHRVMgICAgICAgICAgICAqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUdVUkFUSU9OOiBFZGl0b3JDb25maWcgPSB7XG4gIHBhZ2VzOiBbXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UuZGVzY3JpcHRpb24nKSxcbiAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgIFRJVExFX1NFQ1RJT04sXG4gICAgICAgIENMQVNTSUZJQ0FUSU9OX1NFQ1RJT04sXG4gICAgICAgIElOU1BJUkVfU0VDVElPTixcbiAgICAgICAgQUJPVVRfU0VDVElPTixcbiAgICAgICAgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT04sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UucmVzb3VyY2VzJyksXG4gICAgICBzZWN0aW9uczogW0FTU09DSUFURURfUkVTT1VSQ0VTX1NFQ1RJT04sIEFOTkVYRVNfU0VDVElPTl0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5hY2Nlc3NBbmRDb250YWN0JyksXG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT04sXG4gICAgICAgIERBVEFfTUFOQUdFUlNfU0VDVElPTixcbiAgICAgICAgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBMSUNFTlNFUyAgICAgICAgICAgICoqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFJTEFCTEVfTElDRU5TRVM6IHN0cmluZ1tdID0gW1xuICAnY2MtYnknLFxuICAnY2MtYnktc2EnLFxuICAnY2MtemVybycsXG4gICdldGFsYWInLFxuICAnZXRhbGFiLXYyJyxcbiAgJ29kYmwnLFxuICAnb2RjLWJ5JyxcbiAgJ3BkZGwnLFxuICAndW5rbm93bicsXG5dXG5cbmV4cG9ydCBjb25zdCBPUEVOX0RBVEFfTElDRU5TRSA9ICdldGFsYWInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnknKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy1ieS1zYScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLXplcm8nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWItdjInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5vZGJsJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UucGRkbCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnVua25vd24nKVxuXG5leHBvcnQgY29uc3QgTUFYX1VQTE9BRF9TSVpFX01CID0gMTBcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgIFNQQVRJQUwgU0NPUEUgICAgICAgICAgICAqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgU1BBVElBTF9TQ09QRVM6IEtleXdvcmRbXSA9IFtcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvbmF0aW9uYWwnLFxuICAgIGxhYmVsOiAnTmF0aW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuICB7XG4gICAga2V5OiAnaHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21ldGFkYXRhLWNvZGVsaXN0L1NwYXRpYWxTY29wZS9yZWdpb25hbCcsXG4gICAgbGFiZWw6ICdSZWdpb25hbCcsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHR5cGU6ICd0aGVtZScsXG4gIH0sXG5dXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgICAgIElOU1BJUkUgVEhFTUVTICAgICAgICAgICAgKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgSU5TUElSRV9USEVNRVM6IElOU1BJUkVfdGhlbWVbXSA9IFtcbiAgeyB2YWx1ZTogJ2Jpb3RhJywgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5iaW90YScgfSxcbiAgeyB2YWx1ZTogJ2JvdW5kYXJpZXMnLCBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmJvdW5kYXJpZXMnIH0sXG4gIHtcbiAgICB2YWx1ZTogJ2NsaW1hdG9sb2d5TWV0ZW9yb2xvZ3lBdG1vc3BoZXJlJyxcbiAgICBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmNsaW1hdG9sb2d5JyxcbiAgfSxcbiAgeyB2YWx1ZTogJ2Vjb25vbXknLCBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmVjb25vbXknIH0sXG4gIHsgdmFsdWU6ICdlbGV2YXRpb24nLCBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmVsZXZhdGlvbicgfSxcbiAgeyB2YWx1ZTogJ2Vudmlyb25tZW50JywgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5lbnZpcm9ubmVtZW50JyB9LFxuICB7IHZhbHVlOiAnZmFybWluZycsIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuZmFybWluZycgfSxcbiAge1xuICAgIHZhbHVlOiAnZ2Vvc2NpZW50aWZpYyBpbmZvcm1hdGlvbicsXG4gICAgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5nZW9zY2llbnRpZmljJyxcbiAgfSxcbiAgeyB2YWx1ZTogJ2hlYWx0aCcsIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuaGVhbHRoJyB9LFxuICB7XG4gICAgdmFsdWU6ICdpbWFnZXJ5QmFzZU1hcHNFYXJ0aENvdmVyJyxcbiAgICBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmltYWdlcnknLFxuICB9LFxuICB7XG4gICAgdmFsdWU6ICdpbnRlbGxpZ2VuY2VNaWxpdGFyeScsXG4gICAgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5pbnRlbGxpZ2VuY2UnLFxuICB9LFxuICB7IHZhbHVlOiAnTG9jYXRpb24nLCBsYWJlbDogJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmxvY2F0aW9uJyB9LFxuICB7IHZhbHVlOiAnT2NlYW5zJywgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5vY2VhbnMnIH0sXG4gIHtcbiAgICB2YWx1ZTogJ3BsYW5uaW5nQ2FkYXN0cmUnLFxuICAgIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUucGxhbm5pbmcnLFxuICB9LFxuICB7IHZhbHVlOiAnU29jaWV0eScsIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuc29jaWV0eScgfSxcbiAgeyB2YWx1ZTogJ1N0cnVjdHVyZScsIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuc3RydWN0dXJlJyB9LFxuICB7XG4gICAgdmFsdWU6ICdUcmFuc3BvcnRhdGlvbicsXG4gICAgbGFiZWw6ICdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS50cmFuc3BvcnRhdGlvbicsXG4gIH0sXG4gIHtcbiAgICB2YWx1ZTogJ3V0aWxpdGllc0NvbW11bmljYXRpb24nLFxuICAgIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUudXRpbGl0aWVzJyxcbiAgfSxcbiAgeyB2YWx1ZTogJ2lubGFuZFdhdGVycycsIGxhYmVsOiAnZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUud2F0ZXJzJyB9LFxuXVxuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmJpb3RhJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuYm91bmRhcmllcycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmNsaW1hdG9sb2d5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuZWNvbm9teScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmVsZXZhdGlvbicpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmVudmlyb25uZW1lbnQnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5mYXJtaW5nJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuZ2Vvc2NpZW50aWZpYycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmhlYWx0aCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLmltYWdlcnknKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5pbnRlbGxpZ2VuY2UnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uaW5zcGlyZS5sb2NhdGlvbicpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLm9jZWFucycpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLnBsYW5uaW5nJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUuc29jaWV0eScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLnN0cnVjdHVyZScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5pbnNwaXJlLnRyYW5zcG9ydGF0aW9uJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUudXRpbGl0aWVzJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmluc3BpcmUud2F0ZXJzJylcbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { extend } from 'ol/extent';
|
|
3
|
-
import
|
|
3
|
+
import { getGeometryBoundingBox } from '../../../../../../libs/util/shared/src';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
const GEOJSON = new GeoJSON();
|
|
6
5
|
export class MapUtilsService {
|
|
7
6
|
getRecordExtent(record) {
|
|
8
7
|
if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
|
|
@@ -13,8 +12,7 @@ export class MapUtilsService {
|
|
|
13
12
|
if ('bbox' in curr)
|
|
14
13
|
return extend(prev, curr.bbox);
|
|
15
14
|
else if ('geometry' in curr) {
|
|
16
|
-
|
|
17
|
-
return extend(prev, geom.getExtent());
|
|
15
|
+
return extend(prev, getGeometryBoundingBox(curr.geometry));
|
|
18
16
|
}
|
|
19
17
|
return prev;
|
|
20
18
|
}, [Infinity, Infinity, -Infinity, -Infinity]);
|
|
@@ -28,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
28
26
|
providedIn: 'root',
|
|
29
27
|
}]
|
|
30
28
|
}] });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWxDLE9BQU8sRUFBZSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOztBQUs1RixNQUFNLE9BQU8sZUFBZTtJQUMxQixlQUFlLENBQUMsTUFBOEI7UUFDNUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0Qsd0RBQXdEO1FBQ3hELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQ2pDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2IsSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBZ0IsQ0FBQTtpQkFDNUQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sTUFBTSxDQUNYLElBQUksRUFDSixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3ZCLENBQUE7WUFDbEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxFQUNELENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQzsrR0FuQlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGV4dGVuZCB9IGZyb20gJ29sL2V4dGVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBCb3VuZGluZ0JveCwgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVXRpbHNTZXJ2aWNlIHtcbiAgZ2V0UmVjb3JkRXh0ZW50KHJlY29yZDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPik6IEJvdW5kaW5nQm94IHtcbiAgICBpZiAoISgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCkgfHwgcmVjb3JkLnNwYXRpYWxFeHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGFsbCB0aGUgc3BhdGlhbCBleHRlbnRzIGludG8gYW4gaW5jbHVkaW5nIGJib3hcbiAgICByZXR1cm4gcmVjb3JkLnNwYXRpYWxFeHRlbnRzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIGlmICgnYmJveCcgaW4gY3VycikgcmV0dXJuIGV4dGVuZChwcmV2LCBjdXJyLmJib3gpIGFzIEJvdW5kaW5nQm94XG4gICAgICAgIGVsc2UgaWYgKCdnZW9tZXRyeScgaW4gY3Vycikge1xuICAgICAgICAgIHJldHVybiBleHRlbmQoXG4gICAgICAgICAgICBwcmV2LFxuICAgICAgICAgICAgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveChjdXJyLmdlb21ldHJ5KVxuICAgICAgICAgICkgYXMgQm91bmRpbmdCb3hcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfSxcbiAgICAgIFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XVxuICAgIClcbiAgfVxufVxuIl19
|
|
@@ -245,7 +245,9 @@ export class MapViewComponent {
|
|
|
245
245
|
link.accessServiceProtocol === 'tms') {
|
|
246
246
|
// FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
|
|
247
247
|
return of({
|
|
248
|
-
url: link.url
|
|
248
|
+
url: link.url
|
|
249
|
+
.toString()
|
|
250
|
+
.replace(/\/?$/, `/${link.name}/{z}/{x}/{y}.pbf`),
|
|
249
251
|
type: 'xyz',
|
|
250
252
|
tileFormat: 'application/vnd.mapbox-vector-tile',
|
|
251
253
|
name: link.name,
|
|
@@ -333,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
333
335
|
type: ViewChild,
|
|
334
336
|
args: ['mapContainer']
|
|
335
337
|
}] } });
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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QUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0IsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUNjLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzt3TUFHOUIsWUFBWTtzQkFBeEIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQUdPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBV0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ29CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0lkLCBnZXRMaW5rTGFiZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1kVmlld0ZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL21kdmlldy5mYWNhZGUnXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7XG4gIERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIGNyZWF0ZVZpZXdGcm9tTGF5ZXIsXG4gIE1hcENvbnRleHQsXG4gIE1hcENvbnRleHRMYXllcixcbiAgU291cmNlTG9hZEVycm9yRXZlbnQsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHtcbiAgRmVhdHVyZURldGFpbENvbXBvbmVudCxcbiAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIHByaW9yaXRpemVQYWdlU2Nyb2xsLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRDbG9zZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gIFBvcHVwQWxlcnRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBGZXRjaEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMnXG5cbm1hcmtlcignbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJylcbm1hcmtlcignd2ZzLmZlYXR1cmUubGltaXQnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxubWFya2VyKCdtYXAuc2VsZWN0LnN0eWxlJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hcExlZ2VuZENvbXBvbmVudCxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IG1hdENsb3NlIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBzZXQgZXhjZWVkc0xpbWl0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5leGNsdWRlV2ZzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGxpbmtGcm9tQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgX3NlbGVjdGVkQ2hvaWNlID0gbnVsbFxuICBfc3R5bGVGcm9tQ29uZmlnID0gbnVsbFxuXG4gIGxpbmtNYXA6IE1hcDxzdHJpbmcsIERhdGFzZXRPbmxpbmVSZXNvdXJjZT4gPSBuZXcgTWFwKClcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUpXG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGF2aXpDb25maWcodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZS52aWV3ID09PSAnbWFwJykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUudmlldylcbiAgICAgIGlmICh2YWx1ZS5zdHlsZVRNU0luZGV4KSB7XG4gICAgICAgIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA9IHZhbHVlLnN0eWxlVE1TSW5kZXhcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5zb3VyY2UpIHtcbiAgICAgICAgdGhpcy5saW5rRnJvbUNvbmZpZyQubmV4dCh2YWx1ZS5zb3VyY2UpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGRpc3BsYXlTb3VyY2UgPSB0cnVlXG4gIEBPdXRwdXQoKSBsaW5rU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRPbmxpbmVSZXNvdXJjZT4oKVxuICBAT3V0cHV0KCkgc3R5bGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpXG4gIEBWaWV3Q2hpbGQoJ21hcENvbnRhaW5lcicpIG1hcENvbnRhaW5lcjogTWFwQ29udGFpbmVyQ29tcG9uZW50XG5cbiAgZXhjbHVkZVdmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICBoaWRlUHJldmlldyA9IGZhbHNlXG4gIHNlbGVjdGlvbjogRmVhdHVyZVxuICBzaG93TGVnZW5kID0gdHJ1ZVxuICBsZWdlbmRFeGlzdHMgPSBmYWxzZVxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG5cbiAgc2VsZWN0TGlua1RvRGlzcGxheShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZExpbmtJZCQubmV4dChpZClcbiAgfVxuXG4gIHNlbGVjdFN0eWxlVG9EaXNwbGF5KGk6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KGkpXG4gICAgdGhpcy5zdHlsZVNlbGVjdGVkLmVtaXQoaSlcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZCgpIHtcbiAgICB0aGlzLnNob3dMZWdlbmQgPSAhdGhpcy5zaG93TGVnZW5kXG4gIH1cbiAgb25MZWdlbmRTdGF0dXNDaGFuZ2UodjogYm9vbGVhbikge1xuICAgIHRoaXMubGVnZW5kRXhpc3RzID0gdlxuICB9XG5cbiAgY29tcGF0aWJsZU1hcExpbmtzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLm1hcEFwaUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnkkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW21hcEFwaUxpbmtzLCBnZW9EYXRhTGlua3NXaXRoR2VvbWV0cnldKSA9PiBbXG4gICAgICAuLi5tYXBBcGlMaW5rcyxcbiAgICAgIC4uLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeSxcbiAgICBdKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+IHtcbiAgICAgIHRoaXMubGlua01hcC5jbGVhcigpXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgIHRoaXMubGlua01hcC5zZXQoZ2V0TGlua0lkKGxpbmspLCBsaW5rKVxuICAgICAgKVxuICAgICAgcmV0dXJuIGxpbmtzLmxlbmd0aFxuICAgICAgICA/IGxpbmtzLm1hcCgobGluaykgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogZ2V0TGlua0lkKGxpbmspLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IFt7IGxhYmVsOiAnbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJywgdmFsdWU6ICcnIH1dXG4gICAgfSlcbiAgKVxuXG4gIHNlbGVjdGVkVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkTGlua0lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgc2VsZWN0ZWRTdHlsZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcblxuICBzZWxlY3RlZFNvdXJjZUxpbmskID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb21wYXRpYmxlTWFwTGlua3MkLFxuICAgIHRoaXMubGlua0Zyb21Db25maWckLFxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmVycm9yID0gbnVsbFxuICAgIH0pLFxuICAgIG1hcCgoW2NvbXBhdGlibGVMaW5rcywgY29uZmlnTGluaywgaWQsIHZpZXddKSA9PiB7XG4gICAgICBpZiAodmlldyA9PT0gJ21hcCcpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbmZpZ0xpbmsgJiZcbiAgICAgICAgICAhaWQgJiZcbiAgICAgICAgICBjb21wYXRpYmxlTGlua3Muc29tZShcbiAgICAgICAgICAgIChsaW5rKSA9PiBnZXRMaW5rSWQobGluaykgPT09IGdldExpbmtJZChjb25maWdMaW5rKVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaG9pY2UgPSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbmZpZ0xpbmspXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZ0xpbmtcbiAgICAgICAgfSBlbHNlIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gaWRcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMubGlua01hcC5nZXQoaWQpKVxuICAgICAgICAgIHJldHVybiB0aGlzLmxpbmtNYXAuZ2V0KGlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlua1NlbGVjdGVkLmVtaXQoY29tcGF0aWJsZUxpbmtzWzBdKVxuICAgICAgICAgIHJldHVybiBjb21wYXRpYmxlTGlua3NbMF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIClcblxuICBzdHlsZUxpbmtzJCA9IHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc3JjKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHNyYyAmJlxuICAgICAgICBzcmMudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgIHNyYy5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgLy8gV0FSTklORzogd2hlbiB1c2luZyBcImdldEdlb2RhdGFMaW5rc0Zyb21UbXNcIiwgbWFrZSBzdXJlIHRvIGFkZCBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IHRoZSByZXN0IG9mIHRoZSBsb2dpYyBmcm9tIGZhaWxpbmdcbiAgICAgICAgICAvLyB0aGlzIG1heSBoYXBwZW4gd2hlbiBUTVMgZW5kcG9pbnQgaXMgaW4gZXJyb3JcbiAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEdlb2RhdGFMaW5rc0Zyb21UbXMoXG4gICAgICAgICAgICBzcmMgYXMgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgZm9yIG1hcGxpYnJlLXN0eWxlIGxpbmtzIGJlY2F1c2Ugd2hlbiBhIFRNUyBzZXJ2aWNlIGhhcyBubyBzdHlsZXMsXG4gICAgICAgICAgLy8gZ2V0R2VvZGF0YUxpbmtzRnJvbVRtcyByZXR1cm5zIHRoZSBvcmlnaW5hbCBUTVMgbGluaywgd2hpY2ggaXNuJ3QgYSBtYXBsaWJyZS1zdHlsZSBsaW5rXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKGxpbmtzKSA9PlxuICAgICAgICAgICAgICBsaW5rcz8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChsaW5rKSA9PlxuICAgICAgICAgICAgICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnbWFwbGlicmUtc3R5bGUnXG4gICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICAgICAgcmV0dXJuIG9mKHNyYylcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoW10pXG4gICAgfSksXG4gICAgdGFwKChzdHlsZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLl9zdHlsZUZyb21Db25maWcgJiYgdGhpcy5fc3R5bGVGcm9tQ29uZmlnIDw9IHN0eWxlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQodGhpcy5fc3R5bGVGcm9tQ29uZmlnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQoMClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgc3R5bGVEcm9wZG93bkNob2ljZXMkID0gdGhpcy5zdHlsZUxpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnXFx1MDBBMFxcdTAwQTBcXHUwMEEwXFx1MDBBMCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgKVxuICApXG5cbiAgc2VsZWN0ZWRMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJCxcbiAgICB0aGlzLnN0eWxlTGlua3MkLFxuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3NyYywgc3R5bGVzLCBzdHlsZUlkeF0pID0+IChzdHlsZXMubGVuZ3RoID8gc3R5bGVzW3N0eWxlSWR4XSA6IHNyYykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjdXJyZW50TGF5ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0ZWRMaW5rJCwgdGhpcy5leGNsdWRlV2ZzJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbbGluaywgZXhjbHVkZVdmc10pID0+IHtcbiAgICAgIGlmICghbGluaykge1xuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICBpZiAoZXhjbHVkZVdmcyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgICAgdGhpcy5oaWRlUHJldmlldyA9IHRydWVcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgdGhpcy5oaWRlUHJldmlldyA9IGZhbHNlXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgICBpZiAobGluay5hY2Nlc3NSZXN0cmljdGVkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgIClcbiAgICB9KVxuICApXG5cbiAgbWFwQ29udGV4dCQ6IE9ic2VydmFibGU8TWFwQ29udGV4dD4gPSB0aGlzLmN1cnJlbnRMYXllcnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChsYXllcnMpID0+XG4gICAgICBmcm9tKGNyZWF0ZVZpZXdGcm9tTGF5ZXIobGF5ZXJzWzBdKSkucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksIC8vIGNvdWxkIG5vdCB6b29tIG9uIHRoZSBsYXllcjogdXNlIHRoZSByZWNvcmQgZXh0ZW50XG4gICAgICAgIG1hcCgodmlldykgPT4gKHtcbiAgICAgICAgICBsYXllcnMsXG4gICAgICAgICAgdmlldyxcbiAgICAgICAgfSkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICksXG4gICAgc3RhcnRXaXRoKHtcbiAgICAgIGxheWVyczogW10sXG4gICAgICB2aWV3OiBudWxsLFxuICAgIH0pLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMubWRWaWV3RmFjYWRlLm1ldGFkYXRhJCksXG4gICAgbWFwKChbY29udGV4dCwgbWV0YWRhdGFdKSA9PiB7XG4gICAgICBpZiAoY29udGV4dC52aWV3KSByZXR1cm4gY29udGV4dFxuICAgICAgY29uc3QgZXh0ZW50ID0gdGhpcy5tYXBVdGlscy5nZXRSZWNvcmRFeHRlbnQobWV0YWRhdGEpXG4gICAgICBjb25zdCB2aWV3ID0gZXh0ZW50ID8geyBleHRlbnQgfSA6IG51bGxcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHZpZXcsXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWRWaWV3RmFjYWRlOiBNZFZpZXdGYWNhZGUsXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLm1hcENvbnRhaW5lci5vcGVubGF5ZXJzTWFwXG4gICAgcHJpb3JpdGl6ZVBhZ2VTY3JvbGwobWFwLmdldEludGVyYWN0aW9ucygpKVxuICB9XG5cbiAgb25NYXBGZWF0dXJlU2VsZWN0KGZlYXR1cmVzOiBGZWF0dXJlW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGZlYXR1cmVzPy5sZW5ndGggPiAwICYmIGZlYXR1cmVzWzBdXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgb25Tb3VyY2VMb2FkRXJyb3IoZXJyb3I6IFNvdXJjZUxvYWRFcnJvckV2ZW50KSB7XG4gICAgaWYgKGVycm9yLmh0dHBTdGF0dXMgPT09IDQwMyB8fCBlcnJvci5odHRwU3RhdHVzID09PSA0MDEpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgZGF0YXNldC5lcnJvci5mb3JiaWRkZW5gKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuaHR0cGAsIHtcbiAgICAgICAgaW5mbzogZXJyb3IuaHR0cFN0YXR1cyxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKG51bGwpXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbFxuICB9XG5cbiAgZ2V0TGF5ZXJGcm9tTGluayhsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3RtcydcbiAgICApIHtcbiAgICAgIC8vIEZJWE1FOiBoZXJlIHdlJ3JlIGFzc3VtaW5nIHRoYXQgdGhlIFRNUyBzZXJ2ZXMgdmVjdG9yIHRpbGVzIG9ubHk7IHNob3VsZCBiZSBjaGVja2VkIHdpdGggb2djLWNsaWVudCBmaXJzdFxuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLnJlcGxhY2UoL1xcLz8kLywgJy97en0ve3h9L3t5fS5wYmYnKSxcbiAgICAgICAgdHlwZTogJ3h5eicsXG4gICAgICAgIHRpbGVGb3JtYXQ6ICdhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnbWFwbGlicmUtc3R5bGUnXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB0eXBlOiAnbWFwbGlicmUtc3R5bGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICAgIHN0eWxlVXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cydcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtdHMnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAobGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJyB8fFxuICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnZXNyaVJlc3QnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpKSB8fFxuICAgICAgbGluay50eXBlID09PSAnZG93bmxvYWQnXG4gICAgKSB7XG4gICAgICBjb25zdCBjYWNoZUFjdGl2ZSA9IHRydWUgLy8gVE9ETyBpbXBsZW1lbnQgd2hldGhlciBzaG91bGQgYmUgdHJ1ZSBvciBmYWxzZVxuICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVhZEFzR2VvSnNvbihsaW5rLCBjYWNoZUFjdGl2ZSkucGlwZShcbiAgICAgICAgbWFwKChkYXRhKSA9PiAoe1xuICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG4gIGhhbmRsZUVycm9yKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IgfCBzdHJpbmcpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBGZXRjaEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGBkYXRhc2V0LmVycm9yLiR7ZXJyb3IudHlwZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgaW5mbzogZXJyb3IuaW5mbyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLm1lc3NhZ2UpXG4gICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IubWVzc2FnZSlcbiAgICAgIGNvbnNvbGUud2FybihlcnJvci5zdGFjayB8fCBlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yKVxuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGZsZXgtY29sIGdhcC1bMTNweF1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtNCBweS00IHB4LTUgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1jb2xvci1ib3JkZXIgcm91bmRlZC1sZyBtdC02XCJcbiAgPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgKm5nSWY9XCJkaXNwbGF5U291cmNlXCJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wXCJcbiAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkXCJcbiAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5sYXllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRDaG9pY2VcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNlbGVjdExpbmtUb0Rpc3BsYXkoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHN0eWxlTGlua3MkIHwgYXN5bmMpPy5sZW5ndGggPiAwOyBlbHNlIHN0eWxlRGlzYWJsZWRcIj5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMFwiXG4gICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkXCJcbiAgICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LnN0eWxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cInN0eWxlRHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zdHlsZUZyb21Db25maWdcIlxuICAgICAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0U3R5bGVUb0Rpc3BsYXkoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3N0eWxlRGlzYWJsZWQ+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTAgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkIHRleHQtZ3JheS00MDBcIlxuICAgICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3Quc3R5bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwic3R5bGVEcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cInNlbGYtZW5kIG1kOm1sLTJcIj5cbiAgICAgIDxnbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJ3LVs0NHB4XSBoLVs0NHB4XVwiXG4gICAgICAgIFtsaW5rXT1cInNlbGVjdGVkTGluayQgfCBhc3luY1wiXG4gICAgICA+XG4gICAgICA8L2duLXVpLWV4dGVybmFsLXZpZXdlci1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGlkZVByZXZpZXc7IGVsc2UgbWFwVmlld1wiPlxuICAgIDxnbi11aS1wb3B1cC1hbGVydFxuICAgICAgdHlwZT1cIndhcm5pbmdcIlxuICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJibG9jayBoLTEyIHAtMVwiXG4gICAgPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5mZWF0dXJlLmxpbWl0PC9zcGFuPlxuICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI21hcFZpZXc+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgaC1mdWxsIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS1tYXAtY29udGFpbmVyXG4gICAgICAgICNtYXBDb250YWluZXJcbiAgICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgIChmZWF0dXJlc0NsaWNrKT1cIm9uTWFwRmVhdHVyZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHNvdXJjZUxvYWRFcnJvcik9XCJvblNvdXJjZUxvYWRFcnJvcigkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLW1hcC1jb250YWluZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9wLVsxZW1dIHJpZ2h0LVsxZW1dIHAtMyBiZy13aGl0ZSBhYnNvbHV0ZSBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWF4LWgtNzIgdy01NlwiXG4gICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNlbGVjdGlvblwiXG4gICAgICA+XG4gICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJyZXNldFNlbGVjdGlvbigpXCJcbiAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgLS1nbi11aS1idXR0b24tcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgXCJcbiAgICAgICAgICBleHRyYUNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtWzAuNWVtXSBtbC1bOHB4XSBtci1bMTBweF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlXCIgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1zbVwiPjwvbmctaWNvbj5cbiAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDxnbi11aS1mZWF0dXJlLWRldGFpbFxuICAgICAgICAgIFtmZWF0dXJlQ2F0YWxvZ109XCJtZFZpZXdGYWNhZGUuZmVhdHVyZUNhdGFsb2ckIHwgYXN5bmNcIlxuICAgICAgICAgIFtmZWF0dXJlXT1cInNlbGVjdGlvblwiXG4gICAgICAgID48L2duLXVpLWZlYXR1cmUtZGV0YWlsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAncmlnaHQtWzFlbV0nOiAhc2VsZWN0aW9uLCAncmlnaHQtWzE2ZW1dJzogc2VsZWN0aW9uIH1cIlxuICAgICAgICBbaGlkZGVuXT1cIiFzaG93TGVnZW5kIHx8ICFsZWdlbmRFeGlzdHNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtYm9sZFwiIHRyYW5zbGF0ZT5tYXAubGVnZW5kLnRpdGxlPC9kaXY+XG4gICAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVMZWdlbmQoKVwiXG4gICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgZXh0cmFDbGFzcz1cIm1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlXCIgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1zbVwiPjwvbmctaWNvbj5cbiAgICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxnbi11aS1tYXAtbGVnZW5kXG4gICAgICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgKGxlZ2VuZFN0YXR1c0NoYW5nZSk9XCJvbkxlZ2VuZFN0YXR1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvZ24tdWktbWFwLWxlZ2VuZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIXNob3dMZWdlbmQgJiYgbGVnZW5kRXhpc3RzICYmICFzZWxlY3Rpb25cIlxuICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVMZWdlbmQoKVwiXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcm91bmRlZCBwLTEgdGV4dC14cyBiZy13aGl0ZVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgPlxuICAgICAgICBtYXAubGVnZW5kLnRpdGxlXG4gICAgICA8L2duLXVpLWJ1dHRvbj5cblxuICAgICAgPGduLXVpLWxvYWRpbmctbWFza1xuICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgICBbbWVzc2FnZV09XCInbWFwLmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvZ24tdWktbG9hZGluZy1tYXNrPlxuICAgICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixpQkFDYyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7d01BRzlCLFlBQVk7c0JBQXhCLEtBQUs7Z0JBUU8sWUFBWTtzQkFBeEIsS0FBSztnQkFHTyxhQUFhO3NCQUF6QixLQUFLO2dCQVdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYydcbmltcG9ydCB7IGdldExpbmtJZCwgZ2V0TGlua0xhYmVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHRocm93RXJyb3IsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBjcmVhdGVWaWV3RnJvbUxheWVyLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG4gIFNvdXJjZUxvYWRFcnJvckV2ZW50LFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgTWFwTGVnZW5kQ29tcG9uZW50LFxuICBwcmlvcml0aXplUGFnZVNjcm9sbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0Q2xvc2UgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnQsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlUGlwZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi9leHRlcm5hbC12aWV3ZXItYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgRmV0Y2hFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuXG5tYXJrZXIoJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJlLmxpbWl0Jylcbm1hcmtlcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbm1hcmtlcignbWFwLnNlbGVjdC5zdHlsZScpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBGZWF0dXJlRGV0YWlsQ29tcG9uZW50LFxuICAgIFBvcHVwQWxlcnRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRDbG9zZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBsaW5rRnJvbUNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIF9zZWxlY3RlZENob2ljZSA9IG51bGxcbiAgX3N0eWxlRnJvbUNvbmZpZyA9IG51bGxcblxuICBsaW5rTWFwOiBNYXA8c3RyaW5nLCBEYXRhc2V0T25saW5lUmVzb3VyY2U+ID0gbmV3IE1hcCgpXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZpZXcodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlKVxuICB9XG4gIEBJbnB1dCgpIHNldCBkYXRhdml6Q29uZmlnKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUudmlldyA9PT0gJ21hcCcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlLnZpZXcpXG4gICAgICBpZiAodmFsdWUuc3R5bGVUTVNJbmRleCkge1xuICAgICAgICB0aGlzLl9zdHlsZUZyb21Db25maWcgPSB2YWx1ZS5zdHlsZVRNU0luZGV4XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUuc291cmNlKSB7XG4gICAgICAgIHRoaXMubGlua0Zyb21Db25maWckLm5leHQodmFsdWUuc291cmNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBASW5wdXQoKSBkaXNwbGF5U291cmNlID0gdHJ1ZVxuICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0T25saW5lUmVzb3VyY2U+KClcbiAgQE91dHB1dCgpIHN0eWxlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuICBAVmlld0NoaWxkKCdtYXBDb250YWluZXInKSBtYXBDb250YWluZXI6IE1hcENvbnRhaW5lckNvbXBvbmVudFxuXG4gIGV4Y2x1ZGVXZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgaGlkZVByZXZpZXcgPSBmYWxzZVxuICBzZWxlY3Rpb246IEZlYXR1cmVcbiAgc2hvd0xlZ2VuZCA9IHRydWVcbiAgbGVnZW5kRXhpc3RzID0gZmFsc2VcbiAgbG9hZGluZyA9IGZhbHNlXG4gIGVycm9yID0gbnVsbFxuXG4gIHNlbGVjdExpbmtUb0Rpc3BsYXkoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLm5leHQoaWQpXG4gIH1cblxuICBzZWxlY3RTdHlsZVRvRGlzcGxheShpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQubmV4dChpKVxuICAgIHRoaXMuc3R5bGVTZWxlY3RlZC5lbWl0KGkpXG4gIH1cblxuICB0b2dnbGVMZWdlbmQoKSB7XG4gICAgdGhpcy5zaG93TGVnZW5kID0gIXRoaXMuc2hvd0xlZ2VuZFxuICB9XG4gIG9uTGVnZW5kU3RhdHVzQ2hhbmdlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxlZ2VuZEV4aXN0cyA9IHZcbiAgfVxuXG4gIGNvbXBhdGlibGVNYXBMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5tYXBBcGlMaW5rcyQsXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFttYXBBcGlMaW5rcywgZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5XSkgPT4gW1xuICAgICAgLi4ubWFwQXBpTGlua3MsXG4gICAgICAuLi5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnksXG4gICAgXSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVNYXBMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PiB7XG4gICAgICB0aGlzLmxpbmtNYXAuY2xlYXIoKVxuICAgICAgbGlua3MuZm9yRWFjaCgobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKSA9PlxuICAgICAgICB0aGlzLmxpbmtNYXAuc2V0KGdldExpbmtJZChsaW5rKSwgbGluaylcbiAgICAgIClcbiAgICAgIHJldHVybiBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0TGlua0xhYmVsKGxpbmspLFxuICAgICAgICAgICAgdmFsdWU6IGdldExpbmtJZChsaW5rKSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9XVxuICAgIH0pXG4gIClcblxuICBzZWxlY3RlZFZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxuICBzZWxlY3RlZExpbmtJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkU3R5bGVJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG5cbiAgc2VsZWN0ZWRTb3VyY2VMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJCxcbiAgICB0aGlzLmxpbmtGcm9tQ29uZmlnJCxcbiAgICB0aGlzLnNlbGVjdGVkTGlua0lkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JCxcbiAgXSkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICB9KSxcbiAgICBtYXAoKFtjb21wYXRpYmxlTGlua3MsIGNvbmZpZ0xpbmssIGlkLCB2aWV3XSkgPT4ge1xuICAgICAgaWYgKHZpZXcgPT09ICdtYXAnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjb25maWdMaW5rICYmXG4gICAgICAgICAgIWlkICYmXG4gICAgICAgICAgY29tcGF0aWJsZUxpbmtzLnNvbWUoXG4gICAgICAgICAgICAobGluaykgPT4gZ2V0TGlua0lkKGxpbmspID09PSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gZ2V0TGlua0lkKGNvbmZpZ0xpbmspXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChjb25maWdMaW5rKVxuICAgICAgICAgIHJldHVybiBjb25maWdMaW5rXG4gICAgICAgIH0gZWxzZSBpZiAoaWQpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZENob2ljZSA9IGlkXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdCh0aGlzLmxpbmtNYXAuZ2V0KGlkKSlcbiAgICAgICAgICByZXR1cm4gdGhpcy5saW5rTWFwLmdldChpZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbXBhdGlibGVMaW5rc1swXSlcbiAgICAgICAgICByZXR1cm4gY29tcGF0aWJsZUxpbmtzWzBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgc3R5bGVMaW5rcyQgPSB0aGlzLnNlbGVjdGVkU291cmNlTGluayQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNyYykgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzcmMgJiZcbiAgICAgICAgc3JjLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICBzcmMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAndG1zJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgIC8vIFdBUk5JTkc6IHdoZW4gdXNpbmcgXCJnZXRHZW9kYXRhTGlua3NGcm9tVG1zXCIsIG1ha2Ugc3VyZSB0byBhZGQgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCB0aGUgcmVzdCBvZiB0aGUgbG9naWMgZnJvbSBmYWlsaW5nXG4gICAgICAgICAgLy8gdGhpcyBtYXkgaGFwcGVuIHdoZW4gVE1TIGVuZHBvaW50IGlzIGluIGVycm9yXG4gICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5nZXRHZW9kYXRhTGlua3NGcm9tVG1zKFxuICAgICAgICAgICAgc3JjIGFzIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICApXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGZvciBtYXBsaWJyZS1zdHlsZSBsaW5rcyBiZWNhdXNlIHdoZW4gYSBUTVMgc2VydmljZSBoYXMgbm8gc3R5bGVzLFxuICAgICAgICAgIC8vIGdldEdlb2RhdGFMaW5rc0Zyb21UbXMgcmV0dXJucyB0aGUgb3JpZ2luYWwgVE1TIGxpbmssIHdoaWNoIGlzbid0IGEgbWFwbGlicmUtc3R5bGUgbGlua1xuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgIChsaW5rcykgPT5cbiAgICAgICAgICAgICAgbGlua3M/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAobGluaykgPT5cbiAgICAgICAgICAgICAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgICAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ21hcGxpYnJlLXN0eWxlJ1xuICAgICAgICAgICAgICApIHx8IFtdXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICAgIHJldHVybiBvZihzcmMpXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKFtdKVxuICAgIH0pLFxuICAgIHRhcCgoc3R5bGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5fc3R5bGVGcm9tQ29uZmlnICYmIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA8PSBzdHlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KHRoaXMuX3N0eWxlRnJvbUNvbmZpZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KDApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHN0eWxlRHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuc3R5bGVMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PlxuICAgICAgbGlua3MubGVuZ3RoXG4gICAgICAgID8gbGlua3MubWFwKChsaW5rLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogaW5kZXgsXG4gICAgICAgICAgfSkpXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ1xcdTAwQTBcXHUwMEEwXFx1MDBBMFxcdTAwQTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgIClcbiAgKVxuXG4gIHNlbGVjdGVkTGluayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnNlbGVjdGVkU291cmNlTGluayQsXG4gICAgdGhpcy5zdHlsZUxpbmtzJCxcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtzcmMsIHN0eWxlcywgc3R5bGVJZHhdKSA9PiAoc3R5bGVzLmxlbmd0aCA/IHN0eWxlc1tzdHlsZUlkeF0gOiBzcmMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY3VycmVudExheWVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdGVkTGluayQsIHRoaXMuZXhjbHVkZVdmcyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2xpbmssIGV4Y2x1ZGVXZnNdKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgaWYgKGV4Y2x1ZGVXZnMgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSB0cnVlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSBmYWxzZVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKGxpbmsuYWNjZXNzUmVzdHJpY3RlZCkge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRMYXllckZyb21MaW5rKGxpbmspLnBpcGUoXG4gICAgICAgIG1hcCgobGF5ZXIpID0+IFtsYXllcl0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbShjcmVhdGVWaWV3RnJvbUxheWVyKGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLCAvLyBjb3VsZCBub3Qgem9vbSBvbiB0aGUgbGF5ZXI6IHVzZSB0aGUgcmVjb3JkIGV4dGVudFxuICAgICAgICBtYXAoKHZpZXcpID0+ICh7XG4gICAgICAgICAgbGF5ZXJzLFxuICAgICAgICAgIHZpZXcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIHN0YXJ0V2l0aCh7XG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdmlldzogbnVsbCxcbiAgICB9KSxcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLm1kVmlld0ZhY2FkZS5tZXRhZGF0YSQpLFxuICAgIG1hcCgoW2NvbnRleHQsIG1ldGFkYXRhXSkgPT4ge1xuICAgICAgaWYgKGNvbnRleHQudmlldykgcmV0dXJuIGNvbnRleHRcbiAgICAgIGNvbnN0IGV4dGVudCA9IHRoaXMubWFwVXRpbHMuZ2V0UmVjb3JkRXh0ZW50KG1ldGFkYXRhKVxuICAgICAgY29uc3QgdmlldyA9IGV4dGVudCA/IHsgZXh0ZW50IH0gOiBudWxsXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3LFxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbWFwID0gYXdhaXQgdGhpcy5tYXBDb250YWluZXIub3BlbmxheWVyc01hcFxuICAgIHByaW9yaXRpemVQYWdlU2Nyb2xsKG1hcC5nZXRJbnRlcmFjdGlvbnMoKSlcbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZVtdKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbigpXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBmZWF0dXJlcz8ubGVuZ3RoID4gMCAmJiBmZWF0dXJlc1swXVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZSh0aGlzLnNlbGVjdGlvblN0eWxlKVxuICAgIH1cbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG9uU291cmNlTG9hZEVycm9yKGVycm9yOiBTb3VyY2VMb2FkRXJyb3JFdmVudCkge1xuICAgIGlmIChlcnJvci5odHRwU3RhdHVzID09PSA0MDMgfHwgZXJyb3IuaHR0cFN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuZm9yYmlkZGVuYClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBkYXRhc2V0LmVycm9yLmh0dHBgLCB7XG4gICAgICAgIGluZm86IGVycm9yLmh0dHBTdGF0dXMsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZShudWxsKVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogT2JzZXJ2YWJsZTxNYXBDb250ZXh0TGF5ZXI+IHtcbiAgICBpZiAobGluay50eXBlID09PSAnc2VydmljZScgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6ICd3bXMnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgKSB7XG4gICAgICAvLyBGSVhNRTogaGVyZSB3ZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBUTVMgc2VydmVzIHZlY3RvciB0aWxlcyBvbmx5OyBzaG91bGQgYmUgY2hlY2tlZCB3aXRoIG9nYy1jbGllbnQgZmlyc3RcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmxcbiAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC8/JC8sIGAvJHtsaW5rLm5hbWV9L3t6fS97eH0ve3l9LnBiZmApLFxuICAgICAgICB0eXBlOiAneHl6JyxcbiAgICAgICAgdGlsZUZvcm1hdDogJ2FwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdtYXBsaWJyZS1zdHlsZSdcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHR5cGU6ICdtYXBsaWJyZS1zdHlsZScsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgICAgc3R5bGVVcmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXRzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiAnd210cycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJykpIHx8XG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCdcbiAgICApIHtcbiAgICAgIGNvbnN0IGNhY2hlQWN0aXZlID0gdHJ1ZSAvLyBUT0RPIGltcGxlbWVudCB3aGV0aGVyIHNob3VsZCBiZSB0cnVlIG9yIGZhbHNlXG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBtYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00IHB5LTQgcHgtNSBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWNvbG9yLWJvcmRlciByb3VuZGVkLWxnIG10LTZcIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAqbmdJZj1cImRpc3BsYXlTb3VyY2VcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTBcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LmxheWVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY2hvaWNlc109XCJkcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZENob2ljZVwiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0TGlua1RvRGlzcGxheSgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc3R5bGVMaW5rcyQgfCBhc3luYyk/Lmxlbmd0aCA+IDA7IGVsc2Ugc3R5bGVEaXNhYmxlZFwiPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3Quc3R5bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwic3R5bGVEcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3N0eWxlRnJvbUNvbmZpZ1wiXG4gICAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RTdHlsZVRvRGlzcGxheSgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3R5bGVEaXNhYmxlZD5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGQgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5zdHlsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbY2hvaWNlc109XCJzdHlsZURyb3Bkb3duQ2hvaWNlcyQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZi1lbmQgbWQ6bWwtMlwiPlxuICAgICAgPGduLXVpLWV4dGVybmFsLXZpZXdlci1idXR0b25cbiAgICAgICAgZXh0cmFDbGFzcz1cInctWzQ0cHhdIGgtWzQ0cHhdXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgID5cbiAgICAgIDwvZ24tdWktZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoaWRlUHJldmlldzsgZWxzZSBtYXBWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjbWFwVmlldz5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gICAgPlxuICAgICAgPGduLXVpLW1hcC1jb250YWluZXJcbiAgICAgICAgI21hcENvbnRhaW5lclxuICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgKGZlYXR1cmVzQ2xpY2spPVwib25NYXBGZWF0dXJlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAoc291cmNlTG9hZEVycm9yKT1cIm9uU291cmNlTG9hZEVycm9yKCRldmVudClcIlxuICAgICAgPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2VsZWN0aW9uXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInJlc2V0U2VsZWN0aW9uKClcIlxuICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi13aWR0aDogMjRweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICBcIlxuICAgICAgICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSByaWdodC1bMC41ZW1dIG1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgICAgPGduLXVpLWZlYXR1cmUtZGV0YWlsXG4gICAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwic2VsZWN0aW9uXCJcbiAgICAgICAgPjwvZ24tdWktZmVhdHVyZS1kZXRhaWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdyaWdodC1bMWVtXSc6ICFzZWxlY3Rpb24sICdyaWdodC1bMTZlbV0nOiBzZWxlY3Rpb24gfVwiXG4gICAgICAgIFtoaWRkZW5dPVwiIXNob3dMZWdlbmQgfHwgIWxlZ2VuZEV4aXN0c1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sZWdlbmQudGl0bGU8L2Rpdj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBleHRyYUNsYXNzPVwibWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGduLXVpLW1hcC1sZWdlbmRcbiAgICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAobGVnZW5kU3RhdHVzQ2hhbmdlKT1cIm9uTGVnZW5kU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9nbi11aS1tYXAtbGVnZW5kPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhc2hvd0xlZ2VuZCAmJiBsZWdlbmRFeGlzdHMgJiYgIXNlbGVjdGlvblwiXG4gICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHRvcC1bMWVtXSByaWdodC1bMWVtXSByb3VuZGVkIHAtMSB0ZXh0LXhzIGJnLXdoaXRlXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIG1hcC5sZWdlbmQudGl0bGVcbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuXG4gICAgICA8Z24tdWktbG9hZGluZy1tYXNrXG4gICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMFwiXG4gICAgICAgIFttZXNzYWdlXT1cIidtYXAubG9hZGluZy5kYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgICAgKm5nSWY9XCJlcnJvclwiXG4gICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIG0tMiBpbnNldC0wXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -35,7 +35,8 @@ export class RouterFacade {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
goToOrganization(organizationName) {
|
|
38
|
-
const
|
|
38
|
+
const safeOrgName = organizationName.replace('/', '');
|
|
39
|
+
const path = `${this.routerService.getOrganizationPageRoute()}/${safeOrgName}`;
|
|
39
40
|
this.go({
|
|
40
41
|
path,
|
|
41
42
|
queryParamsHandling: '',
|
|
@@ -69,4 +70,4 @@ export class RouterFacade {
|
|
|
69
70
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterFacade, decorators: [{
|
|
70
71
|
type: Injectable
|
|
71
72
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.RouterService }] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yb3V0ZXIvc3JjL2xpYi9kZWZhdWx0L3N0YXRlL3JvdXRlci5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3hFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsR0FFbkIsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFVBQVUsRUFDVixhQUFhLEVBQ2IsUUFBUSxHQUVULE1BQU0sa0JBQWtCLENBQUE7QUFDekIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7Ozs7QUFHNUUsTUFBTSxPQUFPLFlBQVk7SUFrQnZCLFlBQ1UsS0FBZ0MsRUFDaEMsYUFBNEI7UUFENUIsVUFBSyxHQUFMLEtBQUssQ0FBMkI7UUFDaEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFuQnRDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQTtRQUMzRCxnQkFBVyxHQUFHLElBQUks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USxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDdEMsQ0FBQzsrR0ExRVUsWUFBWTttSEFBWixZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNZFZpZXdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMnXG5pbXBvcnQgeyBSb3V0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vcm91dGVyLnNlcnZpY2UnXG5pbXBvcnQgeyBSb3V0ZXJSZWR1Y2VyU3RhdGUgfSBmcm9tICdAbmdyeC9yb3V0ZXItc3RvcmUnXG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7XG4gIFJPVVRFUl9ST1VURV9EQVRBU0VULFxuICBST1VURVJfUk9VVEVfU0VBUkNILFxuICBST1VURVJfUk9VVEVfU0VSVklDRSxcbiAgUk9VVEVSX1JPVVRFX1JFVVNFLFxuICBTZWFyY2hSb3V0ZVBhcmFtcyxcbn0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHtcbiAgYmFja0FjdGlvbixcbiAgZm9yd2FyZEFjdGlvbixcbiAgZ29BY3Rpb24sXG4gIFJvdXRlckdvQWN0aW9uUGF5bG9hZCxcbn0gZnJvbSAnLi9yb3V0ZXIuYWN0aW9ucydcbmltcG9ydCB7IHNlbGVjdEN1cnJlbnRSb3V0ZSwgc2VsZWN0Um91dGVQYXJhbXMgfSBmcm9tICcuL3JvdXRlci5zZWxlY3RvcnMnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgZXhwYW5kUXVlcnlQYXJhbXMsIGZsYXR0ZW5RdWVyeVBhcmFtcyB9IGZyb20gJy4vcXVlcnktcGFyYW1zLnV0aWxzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyRmFjYWRlIHtcbiAgY3VycmVudFJvdXRlJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3Qoc2VsZWN0Q3VycmVudFJvdXRlKSlcbiAgcGF0aFBhcmFtcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHNlbGVjdFJvdXRlUGFyYW1zKSlcblxuICBzZWFyY2hQYXJhbXMkID0gdGhpcy5jdXJyZW50Um91dGUkLnBpcGUoXG4gICAgZmlsdGVyKChyb3V0ZSkgPT4gISFyb3V0ZSksXG4gICAgZmlsdGVyKChyb3V0ZSkgPT4gcm91dGUudXJsWzBdPy5wYXRoLnN0YXJ0c1dpdGgoUk9VVEVSX1JPVVRFX1NFQVJDSCkpLFxuICAgIG1hcCgocm91dGUpID0+IHJvdXRlLnF1ZXJ5UGFyYW1zKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IEpTT04uc3RyaW5naWZ5KGIpKSxcbiAgICBtYXAoZXhwYW5kUXVlcnlQYXJhbXMpXG4gIClcblxuICByb3V0ZU1hcCA9IHtcbiAgICBkYXRhc2V0OiBST1VURVJfUk9VVEVfREFUQVNFVCxcbiAgICBzZXJ2aWNlOiBST1VURVJfUk9VVEVfU0VSVklDRSxcbiAgICByZXVzZTogUk9VVEVSX1JPVVRFX1JFVVNFLFxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8Um91dGVyUmVkdWNlclN0YXRlPixcbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IFJvdXRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIGdvVG9NZXRhZGF0YShtZXRhZGF0YTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGNvbnN0IHNlbGVjdGVkUm91dGUgPSB0aGlzLnJvdXRlTWFwW21ldGFkYXRhLmtpbmRdIHx8IFJPVVRFUl9ST1VURV9EQVRBU0VUXG4gICAgdGhpcy5wYXRoUGFyYW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIGZpbHRlcigocGFyYW1zKSA9PiBwYXJhbXMubWV0YWRhdGFVdWlkICE9PSBtZXRhZGF0YS51bmlxdWVJZGVudGlmaWVyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZ28oe1xuICAgICAgICAgIHBhdGg6IGAke3NlbGVjdGVkUm91dGV9LyR7bWV0YWRhdGEudW5pcXVlSWRlbnRpZmllcn1gLFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIE1kVmlld0FjdGlvbnMuc2V0SW5jb21wbGV0ZU1ldGFkYXRhKHsgaW5jb21wbGV0ZTogbWV0YWRhdGEgfSlcbiAgICAgICAgKVxuICAgICAgfSlcbiAgfVxuXG4gIGdvVG9Pcmdhbml6YXRpb24ob3JnYW5pemF0aW9uTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2FmZU9yZ05hbWUgPSBvcmdhbml6YXRpb25OYW1lLnJlcGxhY2UoJy8nLCAnJylcbiAgICBjb25zdCBwYXRoID0gYCR7dGhpcy5yb3V0ZXJTZXJ2aWNlLmdldE9yZ2FuaXphdGlvblBhZ2VSb3V0ZSgpfS8ke3NhZmVPcmdOYW1lfWBcbiAgICB0aGlzLmdvKHtcbiAgICAgIHBhdGgsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnJyxcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlU2VhcmNoKHF1ZXJ5PzogU2VhcmNoUm91dGVQYXJhbXMpIHtcbiAgICB0aGlzLmdvKHtcbiAgICAgIHBhdGg6IHRoaXMucm91dGVyU2VydmljZS5nZXRTZWFyY2hSb3V0ZSgpLFxuICAgICAgLi4uKHF1ZXJ5ICYmIHsgcXVlcnk6IGZsYXR0ZW5RdWVyeVBhcmFtcyhxdWVyeSkgfSksXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgIH0pXG4gIH1cblxuICBzZXRTZWFyY2gocXVlcnk/OiBTZWFyY2hSb3V0ZVBhcmFtcykge1xuICAgIHRoaXMuZ28oe1xuICAgICAgcGF0aDogdGhpcy5yb3V0ZXJTZXJ2aWNlLmdldFNlYXJjaFJvdXRlKCksXG4gICAgICAuLi4ocXVlcnkgJiYgeyBxdWVyeTogZmxhdHRlblF1ZXJ5UGFyYW1zKHF1ZXJ5KSB9KSxcbiAgICB9KVxuICB9XG5cbiAgZ28ocGF5bG9hZDogUm91dGVyR29BY3Rpb25QYXlsb2FkKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChnb0FjdGlvbihwYXlsb2FkKSlcbiAgfVxuXG4gIGJhY2soKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChiYWNrQWN0aW9uKCkpXG4gIH1cblxuICBmb3J3YXJkKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goZm9yd2FyZEFjdGlvbigpKVxuICB9XG59XG4iXX0=
|