From bbad5ca7d3f42f5ca9f7153b557dc49f02c4f962 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Mon, 20 Apr 2020 11:27:34 +0200 Subject: [PATCH 01/54] Migrate rollup client side code (#63227) (#63869) --- x-pack/.i18nrc.json | 2 +- x-pack/legacy/plugins/rollup/README.md | 12 ++--- x-pack/legacy/plugins/rollup/common/index.ts | 22 +------- x-pack/legacy/plugins/rollup/index.ts | 26 +-------- x-pack/legacy/plugins/rollup/public/legacy.ts | 13 ----- x-pack/plugins/rollup/common/index.ts | 27 ++++++++++ .../plugins/rollup/common/ui_metric.ts | 0 .../plugins/rollup/fixtures/index.js | 0 .../plugins/rollup/fixtures/job.js | 2 +- x-pack/plugins/rollup/kibana.json | 5 +- .../plugins/rollup/public/application.tsx | 6 ++- .../rollup/public/crud_app/_crud_app.scss | 0 .../plugins/rollup/public/crud_app/app.js | 3 +- .../rollup/public/crud_app/constants/index.js | 0 .../crud_app/constants/metrics_config.js | 0 .../rollup/public/crud_app/constants/paths.js | 0 .../components/field_list/field_list.js | 0 .../sections/components/field_list/index.js | 0 .../crud_app/sections/components/index.js | 0 .../confirm_delete_modal.js | 0 .../confirm_delete_modal/index.js | 0 .../components/job_action_menu/index.js | 0 .../job_action_menu.container.js | 0 .../job_action_menu/job_action_menu.js | 0 .../sections/components/job_details/index.js | 0 .../components/job_details/job_details.js | 0 .../components/job_details/tabs/index.js | 0 .../job_details/tabs/tab_histogram.js | 0 .../components/job_details/tabs/tab_json.js | 0 .../job_details/tabs/tab_metrics.js | 0 .../job_details/tabs/tab_request.js | 0 .../job_details/tabs/tab_summary.js | 0 .../components/job_details/tabs/tab_terms.js | 0 .../sections/components/job_status/index.js | 0 .../components/job_status/job_status.js | 0 .../rollup/public/crud_app/sections/index.js | 0 .../crud_app/sections/job_create/index.js | 0 .../job_create/job_create.container.js | 0 .../sections/job_create/job_create.js | 2 +- .../sections/job_create/navigation/index.js | 0 .../job_create/navigation/navigation.js | 0 .../steps/components/field_chooser.js | 0 .../job_create/steps/components/index.js | 0 .../job_create/steps/components/step_error.js | 0 .../sections/job_create/steps/index.js | 0 .../job_create/steps/step_date_histogram.js | 2 +- .../job_create/steps/step_histogram.js | 0 .../job_create/steps/step_logistics.js | 4 +- .../sections/job_create/steps/step_metrics.js | 0 .../sections/job_create/steps/step_review.js | 0 .../sections/job_create/steps/step_terms.js | 0 .../sections/job_create/steps_config/index.js | 4 +- .../validate_date_histogram_field.js | 0 .../validate_date_histogram_interval.js | 2 +- .../validate_histogram_interval.js | 0 .../job_create/steps_config/validate_id.js | 0 .../steps_config/validate_index_pattern.js | 2 +- .../steps_config/validate_metrics.js | 0 .../steps_config/validate_rollup_cron.js | 0 .../steps_config/validate_rollup_delay.js | 2 +- .../steps_config/validate_rollup_index.js | 0 .../steps_config/validate_rollup_page_size.js | 0 .../detail_panel/detail_panel.container.js | 0 .../job_list/detail_panel/detail_panel.js | 3 +- .../detail_panel/detail_panel.test.js | 7 ++- .../sections/job_list/detail_panel/index.js | 0 .../crud_app/sections/job_list/index.js | 0 .../sections/job_list/job_list.container.js | 0 .../crud_app/sections/job_list/job_list.js | 2 +- .../sections/job_list/job_list.test.js | 8 ++- .../sections/job_list/job_table/index.js | 0 .../job_list/job_table/job_table.container.js | 0 .../sections/job_list/job_table/job_table.js | 3 +- .../job_list/job_table/job_table.test.js | 7 ++- .../rollup/public/crud_app/services/api.js | 0 .../public/crud_app/services/api_errors.ts | 0 .../public/crud_app/services/breadcrumbs.js | 0 .../crud_app/services/documentation_links.js | 0 .../public/crud_app/services/filter_items.js | 0 .../crud_app/services/flatten_panel_tree.js | 0 .../public/crud_app/services/format_fields.js | 0 .../public/crud_app/services/http_provider.ts | 2 +- .../rollup/public/crud_app/services/index.js | 2 +- .../rollup/public/crud_app/services/jobs.js | 0 .../crud_app/services/noticeable_delay.js | 0 .../public/crud_app/services/query_params.js | 0 .../crud_app/services/retype_metrics.js | 0 .../public/crud_app/services/routing.js | 0 .../public/crud_app/services/sort_table.js | 0 .../crud_app/services/track_ui_metric.ts} | 10 ++-- .../public/crud_app/store/action_types.js | 0 .../store/actions/change_job_status.js | 0 .../crud_app/store/actions/clone_job.js | 0 .../crud_app/store/actions/create_job.js | 0 .../crud_app/store/actions/delete_jobs.js | 0 .../crud_app/store/actions/detail_panel.js | 0 .../public/crud_app/store/actions/index.js | 0 .../crud_app/store/actions/load_jobs.js | 0 .../crud_app/store/actions/refresh_jobs.js | 0 .../crud_app/store/actions/table_state.js | 0 .../rollup/public/crud_app/store/index.js | 0 .../crud_app/store/middleware/clone_job.js | 0 .../crud_app/store/middleware/detail_panel.js | 0 .../public/crud_app/store/middleware/index.js | 0 .../crud_app/store/reducers/clone_job.js | 0 .../crud_app/store/reducers/create_job.js | 0 .../crud_app/store/reducers/detail_panel.js | 0 .../public/crud_app/store/reducers/index.js | 0 .../public/crud_app/store/reducers/jobs.js | 0 .../crud_app/store/reducers/table_state.js | 0 .../crud_app/store/reducers/update_job.js | 0 .../public/crud_app/store/selectors/index.js | 0 .../rollup/public/crud_app/store/store.js | 0 .../public/extend_index_management/index.ts | 0 .../plugins/rollup/public/index.scss | 3 -- .../rollup/public/index.ts} | 4 +- .../components/rollup_prompt/index.js | 0 .../components/rollup_prompt/rollup_prompt.js | 0 .../rollup_index_pattern_creation_config.js | 2 +- .../rollup_index_pattern_list_config.js | 2 +- .../plugins/rollup/public/kibana_services.ts | 19 ++++++- .../plugins/rollup/public/plugin.ts | 40 +++++++++----- .../public/search/rollup_search_strategy.ts | 4 +- .../plugins/rollup/public/shared_imports.ts | 2 +- .../client_integration/helpers/constants.js | 0 .../test}/client_integration/helpers/index.js | 0 .../helpers/job_clone.helpers.js | 6 +-- .../helpers/job_create.helpers.js | 4 +- .../helpers/job_list.helpers.js | 6 +-- .../helpers/setup_context.tsx | 0 .../helpers/setup_environment.ts | 0 .../job_create_clone.test.js | 19 ++++--- .../job_create_date_histogram.test.js | 23 ++++---- .../job_create_histogram.test.js | 27 +++++----- .../job_create_logistics.test.js | 25 +++++---- .../job_create_metrics.test.js | 25 +++++---- .../job_create_review.test.js | 53 +++++++++++-------- .../job_create_terms.test.js | 21 ++++---- .../test}/client_integration/job_list.test.js | 27 ++++++---- .../client_integration/job_list_clone.test.js | 27 ++++++---- .../public/visualize/agg_type_field_filter.js | 0 .../public/visualize/agg_type_filter.js | 0 x-pack/plugins/rollup/server/plugin.ts | 23 +++++++- 143 files changed, 288 insertions(+), 254 deletions(-) delete mode 100644 x-pack/legacy/plugins/rollup/public/legacy.ts create mode 100644 x-pack/plugins/rollup/common/index.ts rename x-pack/{legacy => }/plugins/rollup/common/ui_metric.ts (100%) rename x-pack/{legacy => }/plugins/rollup/fixtures/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/fixtures/job.js (95%) rename x-pack/{legacy => }/plugins/rollup/public/application.tsx (87%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/_crud_app.scss (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/app.js (93%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/constants/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/constants/metrics_config.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/constants/paths.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/field_list/field_list.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/field_list/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/confirm_delete_modal.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_action_menu/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.container.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/job_details.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_histogram.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_json.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_metrics.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_request.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_summary.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_terms.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_status/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/components/job_status/job_status.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/job_create.container.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/job_create.js (99%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/navigation/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/components/field_chooser.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/components/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/components/step_error.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js (99%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_histogram.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js (99%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_metrics.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_review.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps/step_terms.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js (96%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_field.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js (95%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_histogram_interval.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_id.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js (95%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_metrics.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_cron.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js (95%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_page_size.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.container.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js (98%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js (98%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/detail_panel/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_list.container.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_list.js (98%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js (90%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_table/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.container.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js (99%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js (96%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/api.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/api_errors.ts (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/breadcrumbs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/documentation_links.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/filter_items.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/flatten_panel_tree.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/format_fields.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/http_provider.ts (91%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/index.js (95%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/jobs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/noticeable_delay.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/query_params.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/retype_metrics.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/routing.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/services/sort_table.js (100%) rename x-pack/{legacy/plugins/rollup/public/crud_app/services/track_ui_metric.js => plugins/rollup/public/crud_app/services/track_ui_metric.ts} (70%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/action_types.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/change_job_status.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/clone_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/create_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/delete_jobs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/detail_panel.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/load_jobs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/refresh_jobs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/actions/table_state.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/middleware/clone_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/middleware/detail_panel.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/middleware/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/clone_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/create_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/detail_panel.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/jobs.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/table_state.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/reducers/update_job.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/selectors/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/crud_app/store/store.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/extend_index_management/index.ts (100%) rename x-pack/{legacy => }/plugins/rollup/public/index.scss (67%) rename x-pack/{legacy/plugins/rollup/public/legacy_imports.ts => plugins/rollup/public/index.ts} (72%) rename x-pack/{legacy => }/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/index.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/rollup_prompt.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js (97%) rename x-pack/{legacy => }/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js (93%) rename x-pack/{legacy => }/plugins/rollup/public/kibana_services.ts (57%) rename x-pack/{legacy => }/plugins/rollup/public/plugin.ts (73%) rename x-pack/{legacy => }/plugins/rollup/public/search/rollup_search_strategy.ts (96%) rename x-pack/{legacy => }/plugins/rollup/public/shared_imports.ts (76%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/constants.js (100%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/index.js (100%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/job_clone.helpers.js (83%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/job_create.helpers.js (96%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/job_list.helpers.js (74%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/setup_context.tsx (100%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/helpers/setup_environment.ts (100%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_clone.test.js (93%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_date_histogram.test.js (88%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_histogram.test.js (91%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_logistics.test.js (96%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_metrics.test.js (95%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_review.test.js (71%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_create_terms.test.js (93%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_list.test.js (77%) rename x-pack/{legacy/plugins/rollup/__jest__ => plugins/rollup/public/test}/client_integration/job_list_clone.test.js (74%) rename x-pack/{legacy => }/plugins/rollup/public/visualize/agg_type_field_filter.js (100%) rename x-pack/{legacy => }/plugins/rollup/public/visualize/agg_type_filter.js (100%) diff --git a/x-pack/.i18nrc.json b/x-pack/.i18nrc.json index cb124cc54e5abe..c8715ac3447bd8 100644 --- a/x-pack/.i18nrc.json +++ b/x-pack/.i18nrc.json @@ -32,7 +32,7 @@ "xpack.remoteClusters": "plugins/remote_clusters", "xpack.painlessLab": "plugins/painless_lab", "xpack.reporting": ["plugins/reporting", "legacy/plugins/reporting"], - "xpack.rollupJobs": "legacy/plugins/rollup", + "xpack.rollupJobs": ["legacy/plugins/rollup", "plugins/rollup"], "xpack.searchProfiler": "plugins/searchprofiler", "xpack.security": ["legacy/plugins/security", "plugins/security"], "xpack.server": "legacy/server", diff --git a/x-pack/legacy/plugins/rollup/README.md b/x-pack/legacy/plugins/rollup/README.md index 6d04973de591e1..3647be38b6a09e 100644 --- a/x-pack/legacy/plugins/rollup/README.md +++ b/x-pack/legacy/plugins/rollup/README.md @@ -14,7 +14,7 @@ The rest of this doc dives into the implementation details of each of the above ## Create and manage rollup jobs -The most straight forward part of this plugin! A new app called Rollup Jobs is registered in the Management section and follows a typical CRUD UI pattern. This app allows users to create, start, stop, clone, and delete rollup jobs. There is no way to edit an existing rollup job; instead, the UI offers a cloning ability. The client-side portion of this app lives [here](public/crud_app) and uses endpoints registered [here](server/routes/api/jobs.js). +The most straight forward part of this plugin! A new app called Rollup Jobs is registered in the Management section and follows a typical CRUD UI pattern. This app allows users to create, start, stop, clone, and delete rollup jobs. There is no way to edit an existing rollup job; instead, the UI offers a cloning ability. The client-side portion of this app lives [here](../../../plugins/rollup/public/crud_app) and uses endpoints registered [here](server/routes/api/jobs.js). Refer to the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-getting-started.html) to understand rollup indices and how to create rollup jobs. @@ -22,22 +22,22 @@ Refer to the [Elasticsearch documentation](https://www.elastic.co/guide/en/elast Kibana uses index patterns to consume and visualize rollup indices. Typically, Kibana can inspect the indices captured by an index pattern, identify its aggregations and fields, and determine how to consume the data. Rollup indices don't contain this type of information, so we predefine how to consume a rollup index pattern with the type and typeMeta fields on the index pattern saved object. All rollup index patterns have `type` defined as "rollup" and `typeMeta` defined as an object of the index pattern's capabilities. -In the Index Pattern app, the "Create index pattern" button includes a context menu when a rollup index is detected. This menu offers items for creating a standard index pattern and a rollup index pattern. A [rollup config is registered to index pattern creation extension point](public/index_pattern_creation/rollup_index_pattern_creation_config.js). The context menu behavior in particular uses the `getIndexPatternCreationOption()` method. When the user chooses to create a rollup index pattern, this config changes the behavior of the index pattern creation wizard: +In the Index Pattern app, the "Create index pattern" button includes a context menu when a rollup index is detected. This menu offers items for creating a standard index pattern and a rollup index pattern. A [rollup config is registered to index pattern creation extension point](../../../plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js). The context menu behavior in particular uses the `getIndexPatternCreationOption()` method. When the user chooses to create a rollup index pattern, this config changes the behavior of the index pattern creation wizard: 1. Adds a `Rollup` badge to rollup indices using `getIndexTags()`. 2. Enforces index pattern rules using `checkIndicesForErrors()`. Rollup index patterns must match **one** rollup index, and optionally, any number of regular indices. A rollup index pattern configured with one or more regular indices is known as a "hybrid" index pattern. This allows the user to visualize historical (rollup) data and live (regular) data in the same visualization. 3. Routes to this plugin's [rollup `_fields_for_wildcard` endpoint](server/routes/api/index_patterns.js), instead of the standard one, using `getFetchForWildcardOptions()`, so that the internal rollup data field names are mapped to the original field names. 4. Writes additional information about aggregations, fields, histogram interval, and date histogram interval and timezone to the rollup index pattern saved object using `getIndexPatternMappings()`. This collection of information is referred to as its "capabilities". -Once a rollup index pattern is created, it is tagged with `Rollup` in the list of index patterns, and its details page displays capabilities information. This is done by registering [yet another config for the index pattern list](public/index_pattern_list/rollup_index_pattern_list_config.js) extension points. +Once a rollup index pattern is created, it is tagged with `Rollup` in the list of index patterns, and its details page displays capabilities information. This is done by registering [yet another config for the index pattern list](../../../plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js) extension points. ## Create visualizations from rollup index patterns This plugin enables the user to create visualizations from rollup data using the Visualize app, excluding TSVB, Vega, and Timelion. When Visualize sends search requests, this plugin routes the requests to the [Elasticsearch rollup search endpoint](https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-search.html), which searches the special document structure within rollup indices. The visualization options available to users are based on the capabilities of the rollup index pattern they're visualizing. -Routing to the Elasticsearch rollup search endpoint is done by creating an extension point in Courier, effectively allowing multiple "search strategies" to be registered. A [rollup search strategy](public/search/register.js) is registered by this plugin that queries [this plugin's rollup search endpoint](server/routes/api/search.js). +Routing to the Elasticsearch rollup search endpoint is done by creating an extension point in Courier, effectively allowing multiple "search strategies" to be registered. A [rollup search strategy](../../../plugins/rollup/public/search/register.js) is registered by this plugin that queries [this plugin's rollup search endpoint](server/routes/api/search.js). -Limiting visualization editor options is done by [registering configs](public/visualize/index.js) to various vis extension points. These configs use information stored on the rollup index pattern to limit: +Limiting visualization editor options is done by [registering configs](../../../plugins/rollup/public/visualize/index.js) to various vis extension points. These configs use information stored on the rollup index pattern to limit: * Available aggregation types * Available fields for a particular aggregation * Default and base interval for histogram aggregation @@ -47,6 +47,6 @@ Limiting visualization editor options is done by [registering configs](public/vi In Index Management, similar to system indices, rollup indices are hidden by default. A toggle is provided to show rollup indices and add a badge to the table rows. This is done by using Index Management's extension points. -The toggle and badge are registered on client-side [here](public/extend_index_management/index.js). +The toggle and badge are registered on client-side [here](../../../plugins/rollup/public/extend_index_management/index.js). Additional data needed to filter rollup indices in Index Management is provided with a [data enricher](rollup_data_enricher.js). diff --git a/x-pack/legacy/plugins/rollup/common/index.ts b/x-pack/legacy/plugins/rollup/common/index.ts index 42298034622034..526af055a3ef65 100644 --- a/x-pack/legacy/plugins/rollup/common/index.ts +++ b/x-pack/legacy/plugins/rollup/common/index.ts @@ -16,24 +16,4 @@ export const PLUGIN = { }, }; -export const CONFIG_ROLLUPS = 'rollups:enableIndexPatterns'; - -export const API_BASE_PATH = '/api/rollup'; - -export { - UIM_APP_NAME, - UIM_APP_LOAD, - UIM_JOB_CREATE, - UIM_JOB_DELETE, - UIM_JOB_DELETE_MANY, - UIM_JOB_START, - UIM_JOB_START_MANY, - UIM_JOB_STOP, - UIM_JOB_STOP_MANY, - UIM_SHOW_DETAILS_CLICK, - UIM_DETAIL_PANEL_SUMMARY_TAB_CLICK, - UIM_DETAIL_PANEL_TERMS_TAB_CLICK, - UIM_DETAIL_PANEL_HISTOGRAM_TAB_CLICK, - UIM_DETAIL_PANEL_METRICS_TAB_CLICK, - UIM_DETAIL_PANEL_JSON_TAB_CLICK, -} from './ui_metric'; +export * from '../../../../plugins/rollup/common'; diff --git a/x-pack/legacy/plugins/rollup/index.ts b/x-pack/legacy/plugins/rollup/index.ts index 621667f3618b2c..f33ae7cfee0a22 100644 --- a/x-pack/legacy/plugins/rollup/index.ts +++ b/x-pack/legacy/plugins/rollup/index.ts @@ -4,40 +4,16 @@ * you may not use this file except in compliance with the Elastic License. */ -import { resolve } from 'path'; -import { i18n } from '@kbn/i18n'; import { PluginInitializerContext } from 'src/core/server'; import { RollupSetup } from '../../../plugins/rollup/server'; -import { PLUGIN, CONFIG_ROLLUPS } from './common'; +import { PLUGIN } from './common'; import { plugin } from './server'; export function rollup(kibana: any) { return new kibana.Plugin({ id: PLUGIN.ID, configPrefix: 'xpack.rollup', - publicDir: resolve(__dirname, 'public'), require: ['kibana', 'elasticsearch', 'xpack_main'], - uiExports: { - styleSheetPaths: resolve(__dirname, 'public/index.scss'), - managementSections: ['plugins/rollup/legacy'], - uiSettingDefaults: { - [CONFIG_ROLLUPS]: { - name: i18n.translate('xpack.rollupJobs.rollupIndexPatternsTitle', { - defaultMessage: 'Enable rollup index patterns', - }), - value: true, - description: i18n.translate('xpack.rollupJobs.rollupIndexPatternsDescription', { - defaultMessage: `Enable the creation of index patterns which capture rollup indices, - which in turn enable visualizations based on rollup data. Refresh - the page to apply the changes.`, - }), - category: ['rollups'], - }, - }, - indexManagement: ['plugins/rollup/legacy'], - visualize: ['plugins/rollup/legacy'], - search: ['plugins/rollup/legacy'], - }, init(server: any) { const { core: coreSetup, plugins } = server.newPlatform.setup; const { usageCollection, visTypeTimeseries, indexManagement } = plugins; diff --git a/x-pack/legacy/plugins/rollup/public/legacy.ts b/x-pack/legacy/plugins/rollup/public/legacy.ts deleted file mode 100644 index 83945110c2c760..00000000000000 --- a/x-pack/legacy/plugins/rollup/public/legacy.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { npSetup, npStart } from 'ui/new_platform'; -import { RollupPlugin } from './plugin'; - -const plugin = new RollupPlugin(); - -export const setup = plugin.setup(npSetup.core, npSetup.plugins); -export const start = plugin.start(npStart.core, npStart.plugins); diff --git a/x-pack/plugins/rollup/common/index.ts b/x-pack/plugins/rollup/common/index.ts new file mode 100644 index 00000000000000..aeffa3dc3959fd --- /dev/null +++ b/x-pack/plugins/rollup/common/index.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export const CONFIG_ROLLUPS = 'rollups:enableIndexPatterns'; + +export const API_BASE_PATH = '/api/rollup'; + +export { + UIM_APP_NAME, + UIM_APP_LOAD, + UIM_JOB_CREATE, + UIM_JOB_DELETE, + UIM_JOB_DELETE_MANY, + UIM_JOB_START, + UIM_JOB_START_MANY, + UIM_JOB_STOP, + UIM_JOB_STOP_MANY, + UIM_SHOW_DETAILS_CLICK, + UIM_DETAIL_PANEL_SUMMARY_TAB_CLICK, + UIM_DETAIL_PANEL_TERMS_TAB_CLICK, + UIM_DETAIL_PANEL_HISTOGRAM_TAB_CLICK, + UIM_DETAIL_PANEL_METRICS_TAB_CLICK, + UIM_DETAIL_PANEL_JSON_TAB_CLICK, +} from './ui_metric'; diff --git a/x-pack/legacy/plugins/rollup/common/ui_metric.ts b/x-pack/plugins/rollup/common/ui_metric.ts similarity index 100% rename from x-pack/legacy/plugins/rollup/common/ui_metric.ts rename to x-pack/plugins/rollup/common/ui_metric.ts diff --git a/x-pack/legacy/plugins/rollup/fixtures/index.js b/x-pack/plugins/rollup/fixtures/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/fixtures/index.js rename to x-pack/plugins/rollup/fixtures/index.js diff --git a/x-pack/legacy/plugins/rollup/fixtures/job.js b/x-pack/plugins/rollup/fixtures/job.js similarity index 95% rename from x-pack/legacy/plugins/rollup/fixtures/job.js rename to x-pack/plugins/rollup/fixtures/job.js index 3889cc6087d836..310244a5031e7a 100644 --- a/x-pack/legacy/plugins/rollup/fixtures/job.js +++ b/x-pack/plugins/rollup/fixtures/job.js @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { getRandomString } from '../../../../test_utils'; +import { getRandomString } from '../../../test_utils'; const initialValues = { dateHistogramField: 'timestamp', diff --git a/x-pack/plugins/rollup/kibana.json b/x-pack/plugins/rollup/kibana.json index 6ab2fc8907c0db..8f832f6c6a345a 100644 --- a/x-pack/plugins/rollup/kibana.json +++ b/x-pack/plugins/rollup/kibana.json @@ -2,5 +2,8 @@ "id": "rollup", "version": "8.0.0", "kibanaVersion": "kibana", - "server": true + "server": true, + "ui": true, + "optionalPlugins": ["home", "indexManagement", "indexPatternManagement", "usageCollection"], + "requiredPlugins": ["management", "data"] } diff --git a/x-pack/legacy/plugins/rollup/public/application.tsx b/x-pack/plugins/rollup/public/application.tsx similarity index 87% rename from x-pack/legacy/plugins/rollup/public/application.tsx rename to x-pack/plugins/rollup/public/application.tsx index df17d37bc34656..1bdf940d746b28 100644 --- a/x-pack/legacy/plugins/rollup/public/application.tsx +++ b/x-pack/plugins/rollup/public/application.tsx @@ -5,15 +5,17 @@ */ import React from 'react'; +import { ChromeBreadcrumb, CoreSetup } from 'kibana/public'; import { render, unmountComponentAtNode } from 'react-dom'; import { Provider } from 'react-redux'; -import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; -import { ChromeBreadcrumb, CoreSetup } from '../../../../../src/core/public'; +import { KibanaContextProvider } from '../../../../src/plugins/kibana_react/public'; // @ts-ignore import { rollupJobsStore } from './crud_app/store'; // @ts-ignore import { App } from './crud_app/app'; +import './index.scss'; + /** * This module will be loaded asynchronously to reduce the bundle size of your plugin's main bundle. */ diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/_crud_app.scss b/x-pack/plugins/rollup/public/crud_app/_crud_app.scss similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/_crud_app.scss rename to x-pack/plugins/rollup/public/crud_app/_crud_app.scss diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/app.js b/x-pack/plugins/rollup/public/crud_app/app.js similarity index 93% rename from x-pack/legacy/plugins/rollup/public/crud_app/app.js rename to x-pack/plugins/rollup/public/crud_app/app.js index da35c8a56f2d20..0ef3253eeb94ea 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/app.js +++ b/x-pack/plugins/rollup/public/crud_app/app.js @@ -10,7 +10,8 @@ import { HashRouter, Switch, Route, Redirect, withRouter } from 'react-router-do import { UIM_APP_LOAD } from '../../common'; import { CRUD_APP_BASE_PATH } from './constants'; -import { registerRouter, setUserHasLeftApp, trackUiMetric, METRIC_TYPE } from './services'; +import { registerRouter, setUserHasLeftApp, METRIC_TYPE } from './services'; +import { trackUiMetric } from '../kibana_services'; import { JobList, JobCreate } from './sections'; class ShareRouterComponent extends Component { diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/constants/index.js b/x-pack/plugins/rollup/public/crud_app/constants/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/constants/index.js rename to x-pack/plugins/rollup/public/crud_app/constants/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/constants/metrics_config.js b/x-pack/plugins/rollup/public/crud_app/constants/metrics_config.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/constants/metrics_config.js rename to x-pack/plugins/rollup/public/crud_app/constants/metrics_config.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/constants/paths.js b/x-pack/plugins/rollup/public/crud_app/constants/paths.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/constants/paths.js rename to x-pack/plugins/rollup/public/crud_app/constants/paths.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/field_list/field_list.js b/x-pack/plugins/rollup/public/crud_app/sections/components/field_list/field_list.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/field_list/field_list.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/field_list/field_list.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/field_list/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/field_list/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/field_list/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/field_list/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/confirm_delete_modal.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/confirm_delete_modal.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/confirm_delete_modal.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/confirm_delete_modal.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/confirm_delete_modal/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.container.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.container.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.container.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.container.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_action_menu/job_action_menu.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/job_details.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/job_details.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/job_details.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/job_details.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_histogram.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_histogram.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_histogram.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_histogram.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_json.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_json.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_json.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_json.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_metrics.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_metrics.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_metrics.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_metrics.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_request.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_request.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_request.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_request.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_summary.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_summary.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_summary.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_summary.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_terms.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_terms.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_terms.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_details/tabs/tab_terms.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_status/index.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_status/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_status/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_status/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_status/job_status.js b/x-pack/plugins/rollup/public/crud_app/sections/components/job_status/job_status.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/components/job_status/job_status.js rename to x-pack/plugins/rollup/public/crud_app/sections/components/job_status/job_status.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/index.js b/x-pack/plugins/rollup/public/crud_app/sections/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/job_create.container.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.container.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/job_create.container.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.container.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/job_create.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js similarity index 99% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/job_create.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js index d45e28d7c5456c..0f6fb8dbfee14f 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/job_create.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js @@ -14,7 +14,7 @@ import first from 'lodash/array/first'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import { withKibana } from '../../../../../../../../src/plugins/kibana_react/public/'; +import { withKibana } from '../../../../../../../src/plugins/kibana_react/public'; import { EuiCallOut, diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/navigation/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/navigation/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/field_chooser.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/field_chooser.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/field_chooser.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/field_chooser.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/step_error.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/step_error.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/components/step_error.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/components/step_error.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js similarity index 99% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js index ba65d082c0b4b8..c327e51a6b7eeb 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_date_histogram.js @@ -24,7 +24,7 @@ import { EuiTitle, } from '@elastic/eui'; -import { search } from '../../../../../../../../../src/plugins/data/public'; +import { search } from '../../../../../../../../src/plugins/data/public'; const { parseEsInterval } = search.aggs; import { getDateHistogramDetailsUrl, getDateHistogramAggregationUrl } from '../../../services'; diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_histogram.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_histogram.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_histogram.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_histogram.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js similarity index 99% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js index 5462a46bf59b96..0fd76e572b2e50 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js @@ -24,8 +24,8 @@ import { EuiTitle, } from '@elastic/eui'; -import { CronEditor } from '../../../../../../../../../src/plugins/es_ui_shared/public'; -import { indexPatterns } from '../../../../../../../../../src/plugins/data/public'; +import { CronEditor } from '../../../../../../../../src/plugins/es_ui_shared/public'; +import { indexPatterns } from '../../../../../../../../src/plugins/data/public'; import { indices } from '../../../../shared_imports'; import { getLogisticalDetailsUrl, getCronUrl } from '../../../services'; diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_metrics.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_metrics.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_metrics.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_metrics.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_review.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_review.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_review.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_review.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_terms.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_terms.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps/step_terms.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_terms.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js similarity index 96% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js index e1efcfdd24627b..4a55c4679c3d86 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/index.js @@ -8,7 +8,7 @@ import cloneDeep from 'lodash/lang/cloneDeep'; import get from 'lodash/object/get'; import pick from 'lodash/object/pick'; -import { WEEK } from '../../../../../../../../../src/plugins/es_ui_shared/public'; +import { WEEK } from '../../../../../../../../src/plugins/es_ui_shared/public'; import { validateId } from './validate_id'; import { validateIndexPattern } from './validate_index_pattern'; @@ -42,7 +42,7 @@ export const stepIds = [ * 1. getDefaultFields: (overrides) => object * 2. fieldValidations * - * See x-pack/legacy/plugins/rollup/public/crud_app/services/jobs.js for more information on override's shape + * See x-pack/plugins/rollup/public/crud_app/services/jobs.js for more information on override's shape */ export const stepIdToStepConfigMap = { [STEP_LOGISTICS]: { diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_field.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_field.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_field.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_field.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js similarity index 95% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js index b6c824bc8c553a..819c814e373d59 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_date_histogram_interval.js @@ -6,7 +6,7 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { search } from '../../../../../../../../../src/plugins/data/public'; +import { search } from '../../../../../../../../src/plugins/data/public'; const { InvalidEsIntervalFormatError, InvalidEsCalendarIntervalError, diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_histogram_interval.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_histogram_interval.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_histogram_interval.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_histogram_interval.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_id.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_id.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_id.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_id.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js similarity index 95% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js index 206cc325813c0d..534fcaa744744a 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_index_pattern.js @@ -7,7 +7,7 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { indexPatterns } from '../../../../../../../../../src/plugins/data/public'; +import { indexPatterns } from '../../../../../../../../src/plugins/data/public'; export function validateIndexPattern(indexPattern, rollupIndex) { if (!indexPattern || !indexPattern.trim()) { return [ diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_metrics.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_metrics.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_metrics.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_metrics.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_cron.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_cron.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_cron.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_cron.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js similarity index 95% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js index 37c2ca9a1d775d..66bfd43bc3d1bd 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_delay.js @@ -6,7 +6,7 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { search } from '../../../../../../../../../src/plugins/data/public'; +import { search } from '../../../../../../../../src/plugins/data/public'; const { InvalidEsIntervalFormatError, InvalidEsCalendarIntervalError, diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_page_size.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_page_size.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_page_size.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_create/steps_config/validate_rollup_page_size.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.container.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.container.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.container.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.container.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js similarity index 98% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js index f774b1d7f63b72..3f168a66feed84 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.js @@ -34,7 +34,8 @@ import { UIM_DETAIL_PANEL_METRICS_TAB_CLICK, UIM_DETAIL_PANEL_JSON_TAB_CLICK, } from '../../../../../common'; -import { trackUiMetric, METRIC_TYPE } from '../../../services'; +import { METRIC_TYPE } from '../../../services'; +import { trackUiMetric } from '../../../../kibana_services'; import { JobActionMenu, diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js similarity index 98% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js index 9ac8e6075e4cf3..cea5b3c3e96e57 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/detail_panel.test.js @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { registerTestBed } from '../../../../../../../../test_utils'; +import { registerTestBed } from '../../../../../../../test_utils'; import { getJob } from '../../../../../fixtures'; import { rollupJobsStore } from '../../../store'; import { DetailPanel } from './detail_panel'; @@ -17,9 +17,8 @@ import { tabToHumanizedMap, } from '../../components'; -jest.mock('ui/new_platform'); -jest.mock('../../../services', () => { - const services = require.requireActual('../../../services'); +jest.mock('../../../../kibana_services', () => { + const services = require.requireActual('../../../../kibana_services'); return { ...services, trackUiMetric: jest.fn(), diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/detail_panel/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/detail_panel/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.container.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.container.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.container.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.container.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.js similarity index 98% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.js index 98329a687217a7..011becded148cf 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.js @@ -25,7 +25,7 @@ import { EuiCallOut, } from '@elastic/eui'; -import { withKibana } from '../../../../../../../../src/plugins/kibana_react/public/'; +import { withKibana } from '../../../../../../../src/plugins/kibana_react/public'; import { CRUD_APP_BASE_PATH } from '../../constants'; import { getRouterLinkProps, extractQueryParams, listBreadcrumb } from '../../services'; diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js similarity index 90% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js index 725789fc584de5..8c3bffd223ca9c 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_list.test.js @@ -5,16 +5,14 @@ */ import React from 'react'; -import { registerTestBed } from '../../../../../../../test_utils'; +import { registerTestBed } from '../../../../../../test_utils'; import { rollupJobsStore } from '../../store'; import { JobList } from './job_list'; -import { KibanaContextProvider } from '../../../../../../../../src/plugins/kibana_react/public'; -import { coreMock } from '../../../../../../../../src/core/public/mocks'; +import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; +import { coreMock } from '../../../../../../../src/core/public/mocks'; const startMock = coreMock.createStart(); -jest.mock('ui/new_platform'); - jest.mock('../../services', () => { const services = require.requireActual('../../services'); return { diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/index.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/index.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.container.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.container.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.container.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.container.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js similarity index 99% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js index 4dbe396ab8410f..f47992e1b501ae 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.js @@ -30,7 +30,8 @@ import { } from '@elastic/eui'; import { UIM_SHOW_DETAILS_CLICK } from '../../../../../common'; -import { trackUiMetric, METRIC_TYPE } from '../../../services'; +import { METRIC_TYPE } from '../../../services'; +import { trackUiMetric } from '../../../../kibana_services'; import { JobActionMenu, JobStatus } from '../../components'; const COLUMNS = [ diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js similarity index 96% rename from x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js rename to x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js index c688343d5f7681..c6a3d3a8f69add 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_list/job_table/job_table.test.js @@ -6,14 +6,13 @@ import { Pager } from '@elastic/eui'; -import { registerTestBed } from '../../../../../../../../test_utils'; +import { registerTestBed } from '../../../../../../../test_utils'; import { getJobs, jobCount } from '../../../../../fixtures'; import { rollupJobsStore } from '../../../store'; import { JobTable } from './job_table'; -jest.mock('ui/new_platform'); -jest.mock('../../../services', () => { - const services = require.requireActual('../../../services'); +jest.mock('../../../../kibana_services', () => { + const services = require.requireActual('../../../../kibana_services'); return { ...services, trackUiMetric: jest.fn(), diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/api.js b/x-pack/plugins/rollup/public/crud_app/services/api.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/api.js rename to x-pack/plugins/rollup/public/crud_app/services/api.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/api_errors.ts b/x-pack/plugins/rollup/public/crud_app/services/api_errors.ts similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/api_errors.ts rename to x-pack/plugins/rollup/public/crud_app/services/api_errors.ts diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/breadcrumbs.js b/x-pack/plugins/rollup/public/crud_app/services/breadcrumbs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/breadcrumbs.js rename to x-pack/plugins/rollup/public/crud_app/services/breadcrumbs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/documentation_links.js b/x-pack/plugins/rollup/public/crud_app/services/documentation_links.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/documentation_links.js rename to x-pack/plugins/rollup/public/crud_app/services/documentation_links.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/filter_items.js b/x-pack/plugins/rollup/public/crud_app/services/filter_items.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/filter_items.js rename to x-pack/plugins/rollup/public/crud_app/services/filter_items.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/flatten_panel_tree.js b/x-pack/plugins/rollup/public/crud_app/services/flatten_panel_tree.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/flatten_panel_tree.js rename to x-pack/plugins/rollup/public/crud_app/services/flatten_panel_tree.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/format_fields.js b/x-pack/plugins/rollup/public/crud_app/services/format_fields.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/format_fields.js rename to x-pack/plugins/rollup/public/crud_app/services/format_fields.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/http_provider.ts b/x-pack/plugins/rollup/public/crud_app/services/http_provider.ts similarity index 91% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/http_provider.ts rename to x-pack/plugins/rollup/public/crud_app/services/http_provider.ts index dd84328084d050..93898610b844ed 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/services/http_provider.ts +++ b/x-pack/plugins/rollup/public/crud_app/services/http_provider.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HttpStart } from 'src/core/public'; +import { HttpStart } from 'kibana/public'; let _http: HttpStart | null = null; diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/index.js b/x-pack/plugins/rollup/public/crud_app/services/index.js similarity index 95% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/index.js rename to x-pack/plugins/rollup/public/crud_app/services/index.js index 790770b9b6a9f4..0b45b1bdb6b5fb 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/services/index.js +++ b/x-pack/plugins/rollup/public/crud_app/services/index.js @@ -47,4 +47,4 @@ export { sortTable } from './sort_table'; export { retypeMetrics } from './retype_metrics'; -export { trackUiMetric, METRIC_TYPE } from './track_ui_metric'; +export { METRIC_TYPE } from './track_ui_metric'; diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/jobs.js b/x-pack/plugins/rollup/public/crud_app/services/jobs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/jobs.js rename to x-pack/plugins/rollup/public/crud_app/services/jobs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/noticeable_delay.js b/x-pack/plugins/rollup/public/crud_app/services/noticeable_delay.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/noticeable_delay.js rename to x-pack/plugins/rollup/public/crud_app/services/noticeable_delay.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/query_params.js b/x-pack/plugins/rollup/public/crud_app/services/query_params.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/query_params.js rename to x-pack/plugins/rollup/public/crud_app/services/query_params.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/retype_metrics.js b/x-pack/plugins/rollup/public/crud_app/services/retype_metrics.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/retype_metrics.js rename to x-pack/plugins/rollup/public/crud_app/services/retype_metrics.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/routing.js b/x-pack/plugins/rollup/public/crud_app/services/routing.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/routing.js rename to x-pack/plugins/rollup/public/crud_app/services/routing.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/sort_table.js b/x-pack/plugins/rollup/public/crud_app/services/sort_table.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/sort_table.js rename to x-pack/plugins/rollup/public/crud_app/services/sort_table.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/services/track_ui_metric.js b/x-pack/plugins/rollup/public/crud_app/services/track_ui_metric.ts similarity index 70% rename from x-pack/legacy/plugins/rollup/public/crud_app/services/track_ui_metric.js rename to x-pack/plugins/rollup/public/crud_app/services/track_ui_metric.ts index 69a5995386bd74..aa1cc2dfea323d 100644 --- a/x-pack/legacy/plugins/rollup/public/crud_app/services/track_ui_metric.js +++ b/x-pack/plugins/rollup/public/crud_app/services/track_ui_metric.ts @@ -4,20 +4,16 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - createUiStatsReporter, - METRIC_TYPE, -} from '../../../../../../../src/legacy/core_plugins/ui_metric/public'; -import { UIM_APP_NAME } from '../../../common'; +import { METRIC_TYPE } from '@kbn/analytics'; +import { trackUiMetric } from '../../kibana_services'; -export const trackUiMetric = createUiStatsReporter(UIM_APP_NAME); export { METRIC_TYPE }; /** * Transparently return provided request Promise, while allowing us to track * a successful completion of the request. */ -export function trackUserRequest(request, actionType) { +export function trackUserRequest(request: Promise, actionType: string) { // Only track successful actions. return request.then(response => { trackUiMetric(METRIC_TYPE.LOADED, actionType); diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/action_types.js b/x-pack/plugins/rollup/public/crud_app/store/action_types.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/action_types.js rename to x-pack/plugins/rollup/public/crud_app/store/action_types.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/change_job_status.js b/x-pack/plugins/rollup/public/crud_app/store/actions/change_job_status.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/change_job_status.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/change_job_status.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/clone_job.js b/x-pack/plugins/rollup/public/crud_app/store/actions/clone_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/clone_job.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/clone_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/create_job.js b/x-pack/plugins/rollup/public/crud_app/store/actions/create_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/create_job.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/create_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/delete_jobs.js b/x-pack/plugins/rollup/public/crud_app/store/actions/delete_jobs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/delete_jobs.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/delete_jobs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/detail_panel.js b/x-pack/plugins/rollup/public/crud_app/store/actions/detail_panel.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/detail_panel.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/detail_panel.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/index.js b/x-pack/plugins/rollup/public/crud_app/store/actions/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/index.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/load_jobs.js b/x-pack/plugins/rollup/public/crud_app/store/actions/load_jobs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/load_jobs.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/load_jobs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/refresh_jobs.js b/x-pack/plugins/rollup/public/crud_app/store/actions/refresh_jobs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/refresh_jobs.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/refresh_jobs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/actions/table_state.js b/x-pack/plugins/rollup/public/crud_app/store/actions/table_state.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/actions/table_state.js rename to x-pack/plugins/rollup/public/crud_app/store/actions/table_state.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/index.js b/x-pack/plugins/rollup/public/crud_app/store/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/index.js rename to x-pack/plugins/rollup/public/crud_app/store/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/clone_job.js b/x-pack/plugins/rollup/public/crud_app/store/middleware/clone_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/clone_job.js rename to x-pack/plugins/rollup/public/crud_app/store/middleware/clone_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/detail_panel.js b/x-pack/plugins/rollup/public/crud_app/store/middleware/detail_panel.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/detail_panel.js rename to x-pack/plugins/rollup/public/crud_app/store/middleware/detail_panel.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/index.js b/x-pack/plugins/rollup/public/crud_app/store/middleware/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/middleware/index.js rename to x-pack/plugins/rollup/public/crud_app/store/middleware/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/clone_job.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/clone_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/clone_job.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/clone_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/create_job.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/create_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/create_job.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/create_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/detail_panel.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/detail_panel.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/detail_panel.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/detail_panel.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/index.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/index.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/jobs.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/jobs.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/jobs.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/jobs.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/table_state.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/table_state.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/table_state.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/table_state.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/update_job.js b/x-pack/plugins/rollup/public/crud_app/store/reducers/update_job.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/reducers/update_job.js rename to x-pack/plugins/rollup/public/crud_app/store/reducers/update_job.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/selectors/index.js b/x-pack/plugins/rollup/public/crud_app/store/selectors/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/selectors/index.js rename to x-pack/plugins/rollup/public/crud_app/store/selectors/index.js diff --git a/x-pack/legacy/plugins/rollup/public/crud_app/store/store.js b/x-pack/plugins/rollup/public/crud_app/store/store.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/crud_app/store/store.js rename to x-pack/plugins/rollup/public/crud_app/store/store.js diff --git a/x-pack/legacy/plugins/rollup/public/extend_index_management/index.ts b/x-pack/plugins/rollup/public/extend_index_management/index.ts similarity index 100% rename from x-pack/legacy/plugins/rollup/public/extend_index_management/index.ts rename to x-pack/plugins/rollup/public/extend_index_management/index.ts diff --git a/x-pack/legacy/plugins/rollup/public/index.scss b/x-pack/plugins/rollup/public/index.scss similarity index 67% rename from x-pack/legacy/plugins/rollup/public/index.scss rename to x-pack/plugins/rollup/public/index.scss index 0ad0eac50f7b93..cbbedcebb043e1 100644 --- a/x-pack/legacy/plugins/rollup/public/index.scss +++ b/x-pack/plugins/rollup/public/index.scss @@ -1,6 +1,3 @@ -// Import the EUI global scope so we can use EUI constants -@import 'src/legacy/ui/public/styles/_styling_constants'; - // Index management plugin styles // Prefix all styles with "rollup" to avoid conflicts. diff --git a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts b/x-pack/plugins/rollup/public/index.ts similarity index 72% rename from x-pack/legacy/plugins/rollup/public/legacy_imports.ts rename to x-pack/plugins/rollup/public/index.ts index e82a41f60b1cae..4c965fc38f4e7d 100644 --- a/x-pack/legacy/plugins/rollup/public/legacy_imports.ts +++ b/x-pack/plugins/rollup/public/index.ts @@ -4,4 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -export { PluginsStart } from 'ui/new_platform/new_platform'; +import { RollupPlugin } from './plugin'; + +export const plugin = () => new RollupPlugin(); diff --git a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/index.js b/x-pack/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/index.js rename to x-pack/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/index.js diff --git a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/rollup_prompt.js b/x-pack/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/rollup_prompt.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/rollup_prompt.js rename to x-pack/plugins/rollup/public/index_pattern_creation/components/rollup_prompt/rollup_prompt.js diff --git a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js b/x-pack/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js similarity index 97% rename from x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js rename to x-pack/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js index f4de2a30981276..c29fba44285be0 100644 --- a/x-pack/legacy/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js +++ b/x-pack/plugins/rollup/public/index_pattern_creation/rollup_index_pattern_creation_config.js @@ -8,7 +8,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { RollupPrompt } from './components/rollup_prompt'; -import { IndexPatternCreationConfig } from '../../../../../../src/plugins/index_pattern_management/public'; +import { IndexPatternCreationConfig } from '../../../../../src/plugins/index_pattern_management/public'; const rollupIndexPatternTypeName = i18n.translate( 'xpack.rollupJobs.editRollupIndexPattern.createIndex.defaultTypeName', diff --git a/x-pack/legacy/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js b/x-pack/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js similarity index 93% rename from x-pack/legacy/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js rename to x-pack/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js index 809a76d1868b22..e61287d303643c 100644 --- a/x-pack/legacy/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js +++ b/x-pack/plugins/rollup/public/index_pattern_list/rollup_index_pattern_list_config.js @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { IndexPatternListConfig } from '../../../../../../src/plugins/index_pattern_management/public'; +import { IndexPatternListConfig } from '../../../../../src/plugins/index_pattern_management/public'; function isRollup(indexPattern) { return ( diff --git a/x-pack/legacy/plugins/rollup/public/kibana_services.ts b/x-pack/plugins/rollup/public/kibana_services.ts similarity index 57% rename from x-pack/legacy/plugins/rollup/public/kibana_services.ts rename to x-pack/plugins/rollup/public/kibana_services.ts index 335eeb90282ca9..edbf69568f5e50 100644 --- a/x-pack/legacy/plugins/rollup/public/kibana_services.ts +++ b/x-pack/plugins/rollup/public/kibana_services.ts @@ -4,7 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NotificationsStart, FatalErrorsSetup } from 'src/core/public'; +import { NotificationsStart, FatalErrorsSetup } from 'kibana/public'; +import { UiStatsMetricType } from '@kbn/analytics'; +import { createGetterSetter } from '../../../../src/plugins/kibana_utils/common'; let notifications: NotificationsStart | null = null; let fatalErrors: FatalErrorsSetup | null = null; @@ -28,3 +30,18 @@ export function getFatalErrors() { export function setFatalErrors(newFatalErrors: FatalErrorsSetup) { fatalErrors = newFatalErrors; } + +export const [getUiStatsReporter, setUiStatsReporter] = createGetterSetter< + (type: UiStatsMetricType, eventNames: string | string[], count?: number) => void +>('uiMetric'); + +// default value if usageCollection is not available +setUiStatsReporter(() => {}); + +export function trackUiMetric( + type: UiStatsMetricType, + eventNames: string | string[], + count?: number +) { + getUiStatsReporter()(type, eventNames, count); +} diff --git a/x-pack/legacy/plugins/rollup/public/plugin.ts b/x-pack/plugins/rollup/public/plugin.ts similarity index 73% rename from x-pack/legacy/plugins/rollup/public/plugin.ts rename to x-pack/plugins/rollup/public/plugin.ts index 17ec8a5a4aedf1..fd1b90fbc98557 100644 --- a/x-pack/legacy/plugins/rollup/public/plugin.ts +++ b/x-pack/plugins/rollup/public/plugin.ts @@ -6,7 +6,6 @@ import { i18n } from '@kbn/i18n'; import { CoreSetup, CoreStart, Plugin } from 'kibana/public'; -import { PluginsStart } from './legacy_imports'; import { rollupBadgeExtension, rollupToggleExtension } from './extend_index_management'; // @ts-ignore import { RollupIndexPatternCreationConfig } from './index_pattern_creation/rollup_index_pattern_creation_config'; @@ -16,35 +15,49 @@ import { RollupIndexPatternListConfig } from './index_pattern_list/rollup_index_ import { initAggTypeFilter } from './visualize/agg_type_filter'; // @ts-ignore import { initAggTypeFieldFilter } from './visualize/agg_type_field_filter'; -import { CONFIG_ROLLUPS } from '../common'; +import { CONFIG_ROLLUPS, UIM_APP_NAME } from '../common'; import { FeatureCatalogueCategory, HomePublicPluginSetup, -} from '../../../../../src/plugins/home/public'; +} from '../../../../src/plugins/home/public'; // @ts-ignore import { CRUD_APP_BASE_PATH } from './crud_app/constants'; -import { ManagementSetup } from '../../../../../src/plugins/management/public'; -import { IndexManagementPluginSetup } from '../../../../plugins/index_management/public'; -import { IndexPatternManagementSetup } from '../../../../../src/plugins/index_pattern_management/public'; -import { search } from '../../../../../src/plugins/data/public'; +import { ManagementSetup } from '../../../../src/plugins/management/public'; +import { IndexManagementPluginSetup } from '../../index_management/public'; +import { IndexPatternManagementSetup } from '../../../../src/plugins/index_pattern_management/public'; +import { DataPublicPluginStart, search } from '../../../../src/plugins/data/public'; // @ts-ignore -import { setEsBaseAndXPackBase, setHttp } from './crud_app/services'; -import { setNotifications, setFatalErrors } from './kibana_services'; -import { renderApp } from './application'; +import { setEsBaseAndXPackBase, setHttp } from './crud_app/services/index'; +import { setNotifications, setFatalErrors, setUiStatsReporter } from './kibana_services'; +import { UsageCollectionSetup } from '../../../../src/plugins/usage_collection/public'; export interface RollupPluginSetupDependencies { home?: HomePublicPluginSetup; management: ManagementSetup; indexManagement?: IndexManagementPluginSetup; indexPatternManagement: IndexPatternManagementSetup; + usageCollection?: UsageCollectionSetup; +} + +export interface RollupPluginStartDependencies { + data: DataPublicPluginStart; } export class RollupPlugin implements Plugin { setup( core: CoreSetup, - { home, management, indexManagement, indexPatternManagement }: RollupPluginSetupDependencies + { + home, + management, + indexManagement, + indexPatternManagement, + usageCollection, + }: RollupPluginSetupDependencies ) { setFatalErrors(core.fatalErrors); + if (usageCollection) { + setUiStatsReporter(usageCollection.reportUiStats.bind(usageCollection, UIM_APP_NAME)); + } if (indexManagement) { indexManagement.extensionsService.addBadge(rollupBadgeExtension); @@ -79,7 +92,7 @@ export class RollupPlugin implements Plugin { id: 'rollup_jobs', title: i18n.translate('xpack.rollupJobs.appTitle', { defaultMessage: 'Rollup Jobs' }), order: 3, - mount(params) { + async mount(params) { params.setBreadcrumbs([ { text: i18n.translate('xpack.rollupJobs.breadcrumbsTitle', { @@ -87,6 +100,7 @@ export class RollupPlugin implements Plugin { }), }, ]); + const { renderApp } = await import('./application'); return renderApp(core, params); }, @@ -94,7 +108,7 @@ export class RollupPlugin implements Plugin { } } - start(core: CoreStart, plugins: PluginsStart) { + start(core: CoreStart, plugins: RollupPluginStartDependencies) { setHttp(core.http); setNotifications(core.notifications); setEsBaseAndXPackBase(core.docLinks.ELASTIC_WEBSITE_URL, core.docLinks.DOC_LINK_VERSION); diff --git a/x-pack/legacy/plugins/rollup/public/search/rollup_search_strategy.ts b/x-pack/plugins/rollup/public/search/rollup_search_strategy.ts similarity index 96% rename from x-pack/legacy/plugins/rollup/public/search/rollup_search_strategy.ts rename to x-pack/plugins/rollup/public/search/rollup_search_strategy.ts index 4709c0aa498f81..d1c3b9cba5f9de 100644 --- a/x-pack/legacy/plugins/rollup/public/search/rollup_search_strategy.ts +++ b/x-pack/plugins/rollup/public/search/rollup_search_strategy.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HttpSetup } from 'src/core/public'; +import { HttpSetup } from 'kibana/public'; import { SearchError, getSearchErrorType, @@ -12,7 +12,7 @@ import { SearchStrategyProvider, SearchResponse, SearchRequest, -} from '../../../../../../src/plugins/data/public'; +} from '../../../../../src/plugins/data/public'; function serializeFetchParams(searchRequests: SearchRequest[]) { return JSON.stringify( diff --git a/x-pack/legacy/plugins/rollup/public/shared_imports.ts b/x-pack/plugins/rollup/public/shared_imports.ts similarity index 76% rename from x-pack/legacy/plugins/rollup/public/shared_imports.ts rename to x-pack/plugins/rollup/public/shared_imports.ts index 6bf74da6db6fe5..1ac25a1a0e5f8e 100644 --- a/x-pack/legacy/plugins/rollup/public/shared_imports.ts +++ b/x-pack/plugins/rollup/public/shared_imports.ts @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export { indices } from '../../../../../src/plugins/es_ui_shared/public'; +export { indices } from '../../../../src/plugins/es_ui_shared/public'; diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/constants.js b/x-pack/plugins/rollup/public/test/client_integration/helpers/constants.js similarity index 100% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/constants.js rename to x-pack/plugins/rollup/public/test/client_integration/helpers/constants.js diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/index.js b/x-pack/plugins/rollup/public/test/client_integration/helpers/index.js similarity index 100% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/index.js rename to x-pack/plugins/rollup/public/test/client_integration/helpers/index.js diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_clone.helpers.js b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_clone.helpers.js similarity index 83% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_clone.helpers.js rename to x-pack/plugins/rollup/public/test/client_integration/helpers/job_clone.helpers.js index a8376bb31b23ff..fa9929a2076158 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_clone.helpers.js +++ b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_clone.helpers.js @@ -5,10 +5,10 @@ */ import { registerTestBed } from '../../../../../../test_utils'; -import { createRollupJobsStore } from '../../../public/crud_app/store'; -import { JobCreate } from '../../../public/crud_app/sections'; +import { createRollupJobsStore } from '../../../crud_app/store'; +import { JobCreate } from '../../../crud_app/sections'; import { JOB_TO_CLONE } from './constants'; -import { deserializeJob } from '../../../public/crud_app/services'; +import { deserializeJob } from '../../../crud_app/services'; import { wrapComponent } from './setup_context'; diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_create.helpers.js b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_create.helpers.js similarity index 96% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_create.helpers.js rename to x-pack/plugins/rollup/public/test/client_integration/helpers/job_create.helpers.js index 2395fd014dd1e5..7ddcfa9eb83ff5 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_create.helpers.js +++ b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_create.helpers.js @@ -5,8 +5,8 @@ */ import { registerTestBed } from '../../../../../../test_utils'; -import { rollupJobsStore } from '../../../public/crud_app/store'; -import { JobCreate } from '../../../public/crud_app/sections'; +import { rollupJobsStore } from '../../../crud_app/store'; +import { JobCreate } from '../../../crud_app/sections'; import { JOB_TO_CREATE } from './constants'; diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_list.helpers.js b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_list.helpers.js similarity index 74% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_list.helpers.js rename to x-pack/plugins/rollup/public/test/client_integration/helpers/job_list.helpers.js index bcad8c29c87c03..fda1ec8cfed22d 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/job_list.helpers.js +++ b/x-pack/plugins/rollup/public/test/client_integration/helpers/job_list.helpers.js @@ -5,9 +5,9 @@ */ import { registerTestBed } from '../../../../../../test_utils'; -import { registerRouter } from '../../../public/crud_app/services'; -import { createRollupJobsStore } from '../../../public/crud_app/store'; -import { JobList } from '../../../public/crud_app/sections/job_list'; +import { registerRouter } from '../../../crud_app/services'; +import { createRollupJobsStore } from '../../../crud_app/store'; +import { JobList } from '../../../crud_app/sections/job_list'; import { wrapComponent } from './setup_context'; diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/setup_context.tsx b/x-pack/plugins/rollup/public/test/client_integration/helpers/setup_context.tsx similarity index 100% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/setup_context.tsx rename to x-pack/plugins/rollup/public/test/client_integration/helpers/setup_context.tsx diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/setup_environment.ts b/x-pack/plugins/rollup/public/test/client_integration/helpers/setup_environment.ts similarity index 100% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/helpers/setup_environment.ts rename to x-pack/plugins/rollup/public/test/client_integration/helpers/setup_environment.ts diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_clone.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_clone.test.js similarity index 93% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_clone.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_clone.test.js index b7c98ed179c7ab..7b61a03dcde456 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_clone.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_clone.test.js @@ -4,11 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers, nextTick } from './helpers'; import { JOB_TO_CLONE, JOB_CLONE_INDEX_PATTERN_CHECK } from './helpers/constants'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -23,23 +22,23 @@ describe('Cloning a rollup job through create job wizard', () => { let form; let table; let actions; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: JOB_CLONE_INDEX_PATTERN_CHECK }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: JOB_CLONE_INDEX_PATTERN_CHECK }); ({ exists, find, form, actions, table } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); it('should have fields correctly pre-populated', async () => { diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_date_histogram.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_date_histogram.test.js similarity index 88% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_date_histogram.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_date_histogram.test.js index b8ec7d9f85d009..095609ac2b2d77 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_date_histogram.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_date_histogram.test.js @@ -6,10 +6,9 @@ import moment from 'moment-timezone'; -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers } from './helpers'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -22,23 +21,23 @@ describe('Create Rollup Job, step 2: Date histogram', () => { let goToStep; let form; let getEuiStepsHorizontalActive; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, form, getEuiStepsHorizontalActive, goToStep } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); describe('layout', () => { @@ -73,7 +72,7 @@ describe('Create Rollup Job, step 2: Date histogram', () => { describe('Date field select', () => { it('should set the options value from the index pattern', async () => { const dateFields = ['field1', 'field2', 'field3']; - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { dateFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { dateFields } }); await goToStep(2); @@ -85,7 +84,7 @@ describe('Create Rollup Job, step 2: Date histogram', () => { it('should sort the options in ascending order', async () => { const dateFields = ['field3', 'field2', 'field1']; - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { dateFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { dateFields } }); await goToStep(2); diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_histogram.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_histogram.test.js similarity index 91% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_histogram.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_histogram.test.js index c4b5d753f1a262..141aa068435567 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_histogram.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_histogram.test.js @@ -4,10 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers } from './helpers'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -21,24 +20,24 @@ describe('Create Rollup Job, step 4: Histogram', () => { let goToStep; let table; let form; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, getEuiStepsHorizontalActive, goToStep, table, form } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); const numericFields = ['a-numericField', 'b-numericField']; @@ -111,7 +110,7 @@ describe('Create Rollup Job, step 4: Histogram', () => { describe('when no histogram fields are availalbe', () => { it('should indicate it to the user', async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields: [] } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields: [] } }); await goToStepAndOpenFieldChooser(); const { tableCellsValues } = table.getMetaData('rollupJobHistogramFieldChooser-table'); @@ -122,7 +121,7 @@ describe('Create Rollup Job, step 4: Histogram', () => { describe('when histogram fields are available', () => { beforeEach(async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields } }); await goToStepAndOpenFieldChooser(); }); @@ -156,7 +155,7 @@ describe('Create Rollup Job, step 4: Histogram', () => { it('should have a delete button on each row to remove an histogram field', async () => { // First let's add a term to the list - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields } }); await goToStepAndOpenFieldChooser(); const { rows: fieldChooserRows } = table.getMetaData('rollupJobHistogramFieldChooser-table'); fieldChooserRows[0].reactWrapper.simulate('click'); @@ -183,7 +182,7 @@ describe('Create Rollup Job, step 4: Histogram', () => { }; beforeEach(async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields } }); await goToStep(4); addHistogramFieldToList(); }); diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_logistics.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_logistics.test.js similarity index 96% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_logistics.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_logistics.test.js index a032adacdda433..c66b3a698a0f95 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_logistics.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_logistics.test.js @@ -13,10 +13,9 @@ import { YEAR, } from '../../../../../../src/plugins/es_ui_shared/public'; import { indexPatterns } from '../../../../../../src/plugins/data/public'; -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers } from './helpers'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -28,24 +27,24 @@ describe('Create Rollup Job, step 1: Logistics', () => { let actions; let form; let getEuiStepsHorizontalActive; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, form, getEuiStepsHorizontalActive } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); it('should have the horizontal step active on "Logistics"', () => { @@ -97,14 +96,14 @@ describe('Create Rollup Job, step 1: Logistics', () => { }); it('should not allow an unknown index pattern', async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { doesMatchIndices: false } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { doesMatchIndices: false } }); await form.setInputValue('rollupIndexPattern', 'unknown', true); actions.clickNextStep(); expect(form.getErrorsMessages()).toContain("Index pattern doesn't match any indices."); }); it('should not allow an index pattern without time fields', async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { dateFields: [] } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { dateFields: [] } }); await form.setInputValue('rollupIndexPattern', 'abc', true); actions.clickNextStep(); expect(form.getErrorsMessages()).toContain( @@ -113,7 +112,7 @@ describe('Create Rollup Job, step 1: Logistics', () => { }); it('should not allow an index pattern that matches a rollup index', async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { indxPatternVldtResp: { doesMatchRollupIndices: true }, }); await form.setInputValue('rollupIndexPattern', 'abc', true); diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_metrics.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_metrics.test.js similarity index 95% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_metrics.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_metrics.test.js index a72dc8b25c0839..1e9dd88648da65 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_metrics.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_metrics.test.js @@ -4,10 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers } from './helpers'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -21,24 +20,24 @@ describe('Create Rollup Job, step 5: Metrics', () => { let goToStep; let table; let metrics; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, getEuiStepsHorizontalActive, goToStep, table, metrics } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); const numericFields = ['a-numericField', 'c-numericField']; @@ -112,7 +111,7 @@ describe('Create Rollup Job, step 5: Metrics', () => { describe('table', () => { beforeEach(async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields, dateFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields, dateFields } }); await goToStepAndOpenFieldChooser(); }); @@ -169,7 +168,7 @@ describe('Create Rollup Job, step 5: Metrics', () => { describe('when fields are added', () => { beforeEach(async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields, dateFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields, dateFields } }); await goToStepAndOpenFieldChooser(); }); @@ -260,7 +259,7 @@ describe('Create Rollup Job, step 5: Metrics', () => { let getFieldListTableRows; beforeEach(async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields, dateFields } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields, dateFields } }); await goToStep(5); await addFieldToList('numeric'); diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_review.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js similarity index 71% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_review.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js index 0fa9509368d3f7..d625b8f11208f7 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_review.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_review.test.js @@ -6,13 +6,20 @@ import { pageHelpers, mockHttpRequest } from './helpers'; import { first } from 'lodash'; -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { JOBS } from './helpers/constants'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); +jest.mock('../../kibana_services', () => { + const services = require.requireActual('../../kibana_services'); + return { + ...services, + getUiStatsReporter: jest.fn(() => () => {}), + }; +}); + const { setup } = pageHelpers.jobCreate; describe('Create Rollup Job, step 6: Review', () => { @@ -23,23 +30,23 @@ describe('Create Rollup Job, step 6: Review', () => { let goToStep; let table; let form; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, getEuiStepsHorizontalActive, goToStep, table, form } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); - npStart.core.http.post.mockClear(); - npStart.core.http.put.mockClear(); + startMock.http.get.mockClear(); + startMock.http.post.mockClear(); + startMock.http.put.mockClear(); }); describe('layout', () => { @@ -84,7 +91,7 @@ describe('Create Rollup Job, step 6: Review', () => { }); it('should have a "Summary", "Terms" & "Request" tab if a term aggregation was added', async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields: ['my-field'] } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields: ['my-field'] } }); await goToStep(3); selectFirstField('Terms'); @@ -96,7 +103,7 @@ describe('Create Rollup Job, step 6: Review', () => { }); it('should have a "Summary", "Histogram" & "Request" tab if a histogram field was added', async () => { - mockHttpRequest(npStart.core.http, { indxPatternVldtResp: { numericFields: ['a-field'] } }); + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields: ['a-field'] } }); await goToStep(4); selectFirstField('Histogram'); form.setInputValue('rollupJobCreateHistogramInterval', 3); // set an interval @@ -108,7 +115,7 @@ describe('Create Rollup Job, step 6: Review', () => { }); it('should have a "Summary", "Metrics" & "Request" tab if a histogram field was added', async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields: ['a-field'], dateFields: ['b-field'], @@ -130,28 +137,28 @@ describe('Create Rollup Job, step 6: Review', () => { describe('without starting job after creation', () => { it('should call the "create" Api server endpoint', async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { createdJob: first(JOBS.jobs), }); await goToStep(6); - expect(npStart.core.http.put).not.toHaveBeenCalledWith(jobCreateApiPath); // make sure it hasn't been called - expect(npStart.core.http.get).not.toHaveBeenCalledWith(jobStartApiPath); // make sure it hasn't been called + expect(startMock.http.put).not.toHaveBeenCalledWith(jobCreateApiPath); // make sure it hasn't been called + expect(startMock.http.get).not.toHaveBeenCalledWith(jobStartApiPath); // make sure it hasn't been called actions.clickSave(); - // Given the following anti-jitter sleep x-pack/legacy/plugins/rollup/public/crud_app/store/actions/create_job.js + // Given the following anti-jitter sleep x-pack/plugins/rollup/public/crud_app/store/actions/create_job.js // we add a longer sleep here :( await new Promise(res => setTimeout(res, 750)); - expect(npStart.core.http.put).toHaveBeenCalledWith(jobCreateApiPath, expect.anything()); // It has been called! - expect(npStart.core.http.get).not.toHaveBeenCalledWith(jobStartApiPath); // It has still not been called! + expect(startMock.http.put).toHaveBeenCalledWith(jobCreateApiPath, expect.anything()); // It has been called! + expect(startMock.http.get).not.toHaveBeenCalledWith(jobStartApiPath); // It has still not been called! }); }); describe('with starting job after creation', () => { it('should call the "create" and "start" Api server endpoints', async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { createdJob: first(JOBS.jobs), }); @@ -161,14 +168,14 @@ describe('Create Rollup Job, step 6: Review', () => { target: { checked: true }, }); - expect(npStart.core.http.post).not.toHaveBeenCalledWith(jobStartApiPath); // make sure it hasn't been called + expect(startMock.http.post).not.toHaveBeenCalledWith(jobStartApiPath); // make sure it hasn't been called actions.clickSave(); - // Given the following anti-jitter sleep x-pack/legacy/plugins/rollup/public/crud_app/store/actions/create_job.js + // Given the following anti-jitter sleep x-pack/plugins/rollup/public/crud_app/store/actions/create_job.js // we add a longer sleep here :( await new Promise(res => setTimeout(res, 750)); - expect(npStart.core.http.post).toHaveBeenCalledWith(jobStartApiPath, expect.anything()); // It has been called! + expect(startMock.http.post).toHaveBeenCalledWith(jobStartApiPath, expect.anything()); // It has been called! }); }); }); diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_terms.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_create_terms.test.js similarity index 93% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_terms.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_create_terms.test.js index f111a7df2c2501..61993f30928400 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_create_terms.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_create_terms.test.js @@ -4,10 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { setHttp } from '../../public/crud_app/services'; +import { setHttp } from '../../crud_app/services'; import { pageHelpers, mockHttpRequest } from './helpers'; - -jest.mock('ui/new_platform'); +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); @@ -20,22 +19,22 @@ describe('Create Rollup Job, step 3: Terms', () => { let getEuiStepsHorizontalActive; let goToStep; let table; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(() => { // Set "default" mock responses by not providing any arguments - mockHttpRequest(npStart.core.http); + mockHttpRequest(startMock.http); ({ find, exists, actions, getEuiStepsHorizontalActive, goToStep, table } = setup()); }); afterEach(() => { - npStart.core.http.get.mockClear(); + startMock.http.get.mockClear(); }); const numericFields = ['a-numericField', 'c-numericField']; @@ -109,7 +108,7 @@ describe('Create Rollup Job, step 3: Terms', () => { describe('when no terms are available', () => { it('should indicate it to the user', async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields: [], keywordFields: [], @@ -125,7 +124,7 @@ describe('Create Rollup Job, step 3: Terms', () => { describe('when terms are available', () => { beforeEach(async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields, keywordFields, @@ -171,7 +170,7 @@ describe('Create Rollup Job, step 3: Terms', () => { it('should have a delete button on each row to remove a term', async () => { // First let's add a term to the list - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { indxPatternVldtResp: { numericFields, keywordFields, diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js similarity index 77% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_list.test.js index a9e474cf0b5598..c6988236d6b7c9 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_list.test.js @@ -4,20 +4,27 @@ * you may not use this file except in compliance with the Elastic License. */ -import { getRouter, setHttp } from '../../public/crud_app/services'; +import { getRouter, setHttp } from '../../crud_app/services'; import { mockHttpRequest, pageHelpers, nextTick } from './helpers'; import { JOBS } from './helpers/constants'; +import { coreMock } from '../../../../../../src/core/public/mocks'; -jest.mock('ui/new_platform'); - -jest.mock('../../public/crud_app/services', () => { - const services = require.requireActual('../../public/crud_app/services'); +jest.mock('../../crud_app/services', () => { + const services = require.requireActual('../../crud_app/services'); return { ...services, getRouterLinkProps: link => ({ href: link }), }; }); +jest.mock('../../kibana_services', () => { + const services = require.requireActual('../../kibana_services'); + return { + ...services, + getUiStatsReporter: jest.fn(() => () => {}), + }; +}); + const { setup } = pageHelpers.jobList; describe('', () => { @@ -25,15 +32,15 @@ describe('', () => { let component; let table; let exists; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(async () => { - mockHttpRequest(npStart.core.http, { jobs: JOBS }); + mockHttpRequest(startMock.http, { jobs: JOBS }); ({ component, exists, table } = setup()); @@ -42,7 +49,7 @@ describe('', () => { }); afterEach(() => { - npStart.core.http.get.mockClear(); + startMock.http.get.mockClear(); }); test('should open the detail panel when clicking on a job in the table', () => { diff --git a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list_clone.test.js b/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js similarity index 74% rename from x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list_clone.test.js rename to x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js index 8a36af83def4c8..bdf57a555cdad6 100644 --- a/x-pack/legacy/plugins/rollup/__jest__/client_integration/job_list_clone.test.js +++ b/x-pack/plugins/rollup/public/test/client_integration/job_list_clone.test.js @@ -6,14 +6,21 @@ import { mockHttpRequest, pageHelpers, nextTick } from './helpers'; import { JOB_TO_CLONE, JOB_CLONE_INDEX_PATTERN_CHECK } from './helpers/constants'; -import { getRouter } from '../../public/crud_app/services/routing'; -import { setHttp } from '../../public/crud_app/services'; -import { CRUD_APP_BASE_PATH } from '../../public/crud_app/constants'; - -jest.mock('ui/new_platform'); +import { getRouter } from '../../crud_app/services/routing'; +import { setHttp } from '../../crud_app/services'; +import { CRUD_APP_BASE_PATH } from '../../crud_app/constants'; +import { coreMock } from '../../../../../../src/core/public/mocks'; jest.mock('lodash/function/debounce', () => fn => fn); +jest.mock('../../kibana_services', () => { + const services = require.requireActual('../../kibana_services'); + return { + ...services, + getUiStatsReporter: jest.fn(() => () => {}), + }; +}); + const { setup } = pageHelpers.jobList; describe('Smoke test cloning an existing rollup job from job list', () => { @@ -21,15 +28,15 @@ describe('Smoke test cloning an existing rollup job from job list', () => { let find; let component; let exists; - let npStart; + let startMock; beforeAll(() => { - npStart = require('ui/new_platform').npStart; // eslint-disable-line - setHttp(npStart.core.http); + startMock = coreMock.createStart(); + setHttp(startMock.http); }); beforeEach(async () => { - mockHttpRequest(npStart.core.http, { + mockHttpRequest(startMock.http, { jobs: JOB_TO_CLONE, indxPatternVldtResp: JOB_CLONE_INDEX_PATTERN_CHECK, }); @@ -41,7 +48,7 @@ describe('Smoke test cloning an existing rollup job from job list', () => { }); afterEach(() => { - npStart.core.http.get.mockClear(); + startMock.http.get.mockClear(); }); it('should navigate to create view with default values set', async () => { diff --git a/x-pack/legacy/plugins/rollup/public/visualize/agg_type_field_filter.js b/x-pack/plugins/rollup/public/visualize/agg_type_field_filter.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/visualize/agg_type_field_filter.js rename to x-pack/plugins/rollup/public/visualize/agg_type_field_filter.js diff --git a/x-pack/legacy/plugins/rollup/public/visualize/agg_type_filter.js b/x-pack/plugins/rollup/public/visualize/agg_type_filter.js similarity index 100% rename from x-pack/legacy/plugins/rollup/public/visualize/agg_type_filter.js rename to x-pack/plugins/rollup/public/visualize/agg_type_filter.js diff --git a/x-pack/plugins/rollup/server/plugin.ts b/x-pack/plugins/rollup/server/plugin.ts index fa05b8d1307d61..ea6d197e22029d 100644 --- a/x-pack/plugins/rollup/server/plugin.ts +++ b/x-pack/plugins/rollup/server/plugin.ts @@ -4,7 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Plugin, PluginInitializerContext } from 'src/core/server'; +import { CoreSetup, Plugin, PluginInitializerContext } from 'src/core/server'; +import { i18n } from '@kbn/i18n'; +import { schema } from '@kbn/config-schema'; +import { CONFIG_ROLLUPS } from '../common'; export class RollupPlugin implements Plugin { private readonly initContext: PluginInitializerContext; @@ -13,7 +16,23 @@ export class RollupPlugin implements Plugin { this.initContext = initContext; } - public setup() { + public setup(core: CoreSetup) { + core.uiSettings.register({ + [CONFIG_ROLLUPS]: { + name: i18n.translate('xpack.rollupJobs.rollupIndexPatternsTitle', { + defaultMessage: 'Enable rollup index patterns', + }), + value: true, + description: i18n.translate('xpack.rollupJobs.rollupIndexPatternsDescription', { + defaultMessage: `Enable the creation of index patterns which capture rollup indices, + which in turn enable visualizations based on rollup data. Refresh + the page to apply the changes.`, + }), + category: ['rollups'], + schema: schema.boolean(), + }, + }); + return { __legacy: { config: this.initContext.config, From 87984230df74b64f23c32c9548f2aa68916d85d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Mon, 20 Apr 2020 11:59:37 +0100 Subject: [PATCH 02/54] [APM] Reparenting spans to support inferred spans (#63695) (#63939) * reparening spans * adding unit test * adding unit test --- .../waterfall_helpers.test.ts | 206 ++++++ .../waterfall_helpers/waterfall_helpers.ts | 27 +- .../WaterfallContainer.stories.tsx | 22 +- .../waterfallContainer.stories.data.ts | 664 ++++++++++++++++++ .../apm/typings/es_schemas/raw/span_raw.ts | 1 + 5 files changed, 918 insertions(+), 2 deletions(-) diff --git a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.test.ts b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.test.ts index 416eb879d5974f..d844ac8b5988dd 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.test.ts +++ b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.test.ts @@ -166,6 +166,212 @@ describe('waterfall_helpers', () => { expect(waterfall.errorsCount).toEqual(0); expect(waterfall).toMatchSnapshot(); }); + it('should reparent spans', () => { + const traceItems = [ + { + processor: { event: 'transaction' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-node' }, + transaction: { + duration: { us: 49660 }, + name: 'GET /api', + id: 'myTransactionId1' + }, + timestamp: { us: 1549324795784006 } + } as Transaction, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + timestamp: { us: 1549324795825633 }, + span: { + duration: { us: 481 }, + name: 'SELECT FROM products', + id: 'mySpanIdB' + }, + child_ids: ['mySpanIdA', 'mySpanIdC'] + } as Span, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 6161 }, + name: 'Api::ProductsController#index', + id: 'mySpanIdA' + }, + timestamp: { us: 1549324795824504 } + } as Span, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 532 }, + name: 'SELECT FROM product', + id: 'mySpanIdC' + }, + timestamp: { us: 1549324795827905 } + } as Span, + { + parent: { id: 'myTransactionId1' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-node' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 47557 }, + name: 'GET opbeans-ruby:3000/api/products', + id: 'mySpanIdD' + }, + timestamp: { us: 1549324795785760 } + } as Span + ]; + const entryTransactionId = 'myTransactionId1'; + const waterfall = getWaterfall( + { + trace: { items: traceItems, errorDocs: [], exceedsMax: false }, + errorsPerTransaction: {} + }, + entryTransactionId + ); + const getIdAndParentId = (item: IWaterfallItem) => ({ + id: item.id, + parentId: item.parent?.id + }); + expect(waterfall.items.length).toBe(5); + expect(getIdAndParentId(waterfall.items[0])).toEqual({ + id: 'myTransactionId1', + parentId: undefined + }); + expect(getIdAndParentId(waterfall.items[1])).toEqual({ + id: 'mySpanIdD', + parentId: 'myTransactionId1' + }); + expect(getIdAndParentId(waterfall.items[2])).toEqual({ + id: 'mySpanIdB', + parentId: 'mySpanIdD' + }); + expect(getIdAndParentId(waterfall.items[3])).toEqual({ + id: 'mySpanIdA', + parentId: 'mySpanIdB' + }); + expect(getIdAndParentId(waterfall.items[4])).toEqual({ + id: 'mySpanIdC', + parentId: 'mySpanIdB' + }); + expect(waterfall.errorItems.length).toBe(0); + expect(waterfall.errorsCount).toEqual(0); + }); + it("shouldn't reparent spans when child id isn't found", () => { + const traceItems = [ + { + processor: { event: 'transaction' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-node' }, + transaction: { + duration: { us: 49660 }, + name: 'GET /api', + id: 'myTransactionId1' + }, + timestamp: { us: 1549324795784006 } + } as Transaction, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + timestamp: { us: 1549324795825633 }, + span: { + duration: { us: 481 }, + name: 'SELECT FROM products', + id: 'mySpanIdB' + }, + child_ids: ['incorrectId', 'mySpanIdC'] + } as Span, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 6161 }, + name: 'Api::ProductsController#index', + id: 'mySpanIdA' + }, + timestamp: { us: 1549324795824504 } + } as Span, + { + parent: { id: 'mySpanIdD' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-ruby' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 532 }, + name: 'SELECT FROM product', + id: 'mySpanIdC' + }, + timestamp: { us: 1549324795827905 } + } as Span, + { + parent: { id: 'myTransactionId1' }, + processor: { event: 'span' }, + trace: { id: 'myTraceId' }, + service: { name: 'opbeans-node' }, + transaction: { id: 'myTransactionId1' }, + span: { + duration: { us: 47557 }, + name: 'GET opbeans-ruby:3000/api/products', + id: 'mySpanIdD' + }, + timestamp: { us: 1549324795785760 } + } as Span + ]; + const entryTransactionId = 'myTransactionId1'; + const waterfall = getWaterfall( + { + trace: { items: traceItems, errorDocs: [], exceedsMax: false }, + errorsPerTransaction: {} + }, + entryTransactionId + ); + const getIdAndParentId = (item: IWaterfallItem) => ({ + id: item.id, + parentId: item.parent?.id + }); + expect(waterfall.items.length).toBe(5); + expect(getIdAndParentId(waterfall.items[0])).toEqual({ + id: 'myTransactionId1', + parentId: undefined + }); + expect(getIdAndParentId(waterfall.items[1])).toEqual({ + id: 'mySpanIdD', + parentId: 'myTransactionId1' + }); + expect(getIdAndParentId(waterfall.items[2])).toEqual({ + id: 'mySpanIdA', + parentId: 'mySpanIdD' + }); + expect(getIdAndParentId(waterfall.items[3])).toEqual({ + id: 'mySpanIdB', + parentId: 'mySpanIdD' + }); + expect(getIdAndParentId(waterfall.items[4])).toEqual({ + id: 'mySpanIdC', + parentId: 'mySpanIdB' + }); + expect(waterfall.errorItems.length).toBe(0); + expect(waterfall.errorsCount).toEqual(0); + }); }); describe('getWaterfallItems', () => { diff --git a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts index 58d9134c4d787b..8a873b2ddf1c91 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts +++ b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts @@ -236,6 +236,29 @@ const getWaterfallItems = (items: TraceAPIResponse['trace']['items']) => } }); +/** + * Changes the parent_id of items based on the child_ids property. + * Solves the problem of Inferred spans that are created as child of trace spans + * when it actually should be its parent. + * @param waterfallItems + */ +const reparentSpans = (waterfallItems: IWaterfallItem[]) => { + return waterfallItems.map(waterfallItem => { + if (waterfallItem.docType === 'span') { + const { child_ids: childIds } = waterfallItem.doc; + if (childIds) { + childIds.forEach(childId => { + const item = waterfallItems.find(_item => _item.id === childId); + if (item) { + item.parentId = waterfallItem.id; + } + }); + } + } + return waterfallItem; + }); +}; + const getChildrenGroupedByParentId = (waterfallItems: IWaterfallItem[]) => groupBy(waterfallItems, item => (item.parentId ? item.parentId : ROOT_ID)); @@ -306,7 +329,9 @@ export function getWaterfall( const waterfallItems: IWaterfallItem[] = getWaterfallItems(trace.items); - const childrenByParentId = getChildrenGroupedByParentId(waterfallItems); + const childrenByParentId = getChildrenGroupedByParentId( + reparentSpans(waterfallItems) + ); const entryWaterfallTransaction = getEntryWaterfallTransaction( entryTransactionId, diff --git a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/WaterfallContainer.stories.tsx b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/WaterfallContainer.stories.tsx index 938962cc9dd189..f681f4dfc675ad 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/WaterfallContainer.stories.tsx +++ b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/WaterfallContainer.stories.tsx @@ -14,7 +14,8 @@ import { urlParams, simpleTrace, traceWithErrors, - traceChildStartBeforeParent + traceChildStartBeforeParent, + inferredSpans } from './waterfallContainer.stories.data'; import { getWaterfall } from './Waterfall/waterfall_helpers/waterfall_helpers'; @@ -74,3 +75,22 @@ storiesOf('app/TransactionDetails/Waterfall', module).add( }, { info: { source: false } } ); + +storiesOf('app/TransactionDetails/Waterfall', module).add( + 'inferred spans', + () => { + const waterfall = getWaterfall( + inferredSpans as TraceAPIResponse, + 'f2387d37260d00bd' + ); + return ( + + ); + }, + { info: { source: false } } +); diff --git a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts index 835183e73b298b..306c8e4f3fedbc 100644 --- a/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts +++ b/x-pack/legacy/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts @@ -1645,3 +1645,667 @@ export const traceChildStartBeforeParent = { }, errorsPerTransaction: {} }; + +export const inferredSpans = { + trace: { + items: [ + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + source: { + ip: '172.18.0.8' + }, + processor: { + name: 'transaction', + event: 'transaction' + }, + url: { + path: '/api/products/2', + scheme: 'http', + port: 3000, + domain: '172.18.0.7', + full: 'http://172.18.0.7:3000/api/products/2' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.786Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + client: { + ip: '172.18.0.8' + }, + http: { + request: { + headers: { + Accept: ['*/*'], + 'User-Agent': ['Python/3.7 aiohttp/3.3.2'], + Host: ['172.18.0.7:3000'], + 'Accept-Encoding': ['gzip, deflate'] + }, + method: 'get', + socket: { + encrypted: false, + remote_address: '172.18.0.8' + } + }, + response: { + headers: { + 'Transfer-Encoding': ['chunked'], + Date: ['Thu, 09 Apr 2020 11:36:01 GMT'], + 'Content-Type': ['application/json;charset=UTF-8'] + }, + status_code: 200, + finished: true, + headers_sent: true + }, + version: '1.1' + }, + user_agent: { + original: 'Python/3.7 aiohttp/3.3.2', + name: 'Other', + device: { + name: 'Other' + } + }, + transaction: { + duration: { + us: 237537 + }, + result: 'HTTP 2xx', + name: 'APIRestController#product', + span_count: { + dropped: 0, + started: 3 + }, + id: 'f2387d37260d00bd', + type: 'request', + sampled: true + }, + timestamp: { + us: 1586432160786001 + } + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: 'f2387d37260d00bd' + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + processor: { + name: 'transaction', + event: 'span' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.810Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + span: { + duration: { + us: 204574 + }, + subtype: 'inferred', + name: 'ServletInvocableHandlerMethod#invokeAndHandle', + id: 'a5df600bd7bd5e38', + type: 'app' + }, + timestamp: { + us: 1586432160810441 + } + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: 'a5df600bd7bd5e38' + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + processor: { + name: 'transaction', + event: 'span' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + type: 'apm-server', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.810Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + timestamp: { + us: 1586432160810441 + }, + span: { + duration: { + us: 102993 + }, + stacktrace: [ + { + library_frame: true, + exclude_from_grouping: false, + filename: 'InvocableHandlerMethod.java', + line: { + number: -1 + }, + function: 'doInvoke' + }, + { + exclude_from_grouping: false, + library_frame: true, + filename: 'InvocableHandlerMethod.java', + line: { + number: -1 + }, + function: 'invokeForRequest' + } + ], + subtype: 'inferred', + name: 'APIRestController#product', + id: '808dc34fc41ce522', + type: 'app' + } + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: 'f2387d37260d00bd' + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + processor: { + name: 'transaction', + event: 'span' + }, + labels: { + productId: '2' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.832Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + timestamp: { + us: 1586432160832300 + }, + span: { + duration: { + us: 99295 + }, + name: 'OpenTracing product span', + id: '41226ae63af4f235', + type: 'unknown' + }, + child_ids: ['8d80de06aa11a6fc'] + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: '808dc34fc41ce522' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + processor: { + name: 'transaction', + event: 'span' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.859Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + timestamp: { + us: 1586432160859600 + }, + span: { + duration: { + us: 53835 + }, + subtype: 'inferred', + name: 'Loader#executeQueryStatement', + id: '8d80de06aa11a6fc', + type: 'app' + } + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: '41226ae63af4f235' + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + destination: { + address: 'postgres', + port: 5432 + }, + processor: { + name: 'transaction', + event: 'span' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.903Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + timestamp: { + us: 1586432160903236 + }, + span: { + duration: { + us: 10211 + }, + subtype: 'postgresql', + destination: { + service: { + resource: 'postgresql', + name: 'postgresql', + type: 'db' + } + }, + name: 'SELECT FROM products', + action: 'query', + id: '3708d5623658182f', + type: 'db', + db: { + statement: + 'select product0_.id as col_0_0_, product0_.sku as col_1_0_, product0_.name as col_2_0_, product0_.description as col_3_0_, product0_.cost as col_4_0_, product0_.selling_price as col_5_0_, product0_.stock as col_6_0_, producttyp1_.id as col_7_0_, producttyp1_.name as col_8_0_, (select sum(orderline2_.amount) from order_lines orderline2_ where orderline2_.product_id=product0_.id) as col_9_0_ from products product0_ left outer join product_types producttyp1_ on product0_.type_id=producttyp1_.id where product0_.id=?', + type: 'sql', + user: { + name: 'postgres' + } + } + } + }, + { + container: { + id: 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + parent: { + id: '41226ae63af4f235' + }, + process: { + pid: 6, + title: '/opt/java/openjdk/bin/java', + ppid: 1 + }, + agent: { + name: 'java', + ephemeral_id: '1cb5c830-c677-4b13-b340-ab1502f527c3', + version: '1.15.1-SNAPSHOT' + }, + destination: { + address: 'postgres', + port: 5432 + }, + processor: { + name: 'transaction', + event: 'span' + }, + observer: { + hostname: '7189f754b5a3', + id: 'f32d8d9f-a9f9-4355-8370-548dfd8024dc', + ephemeral_id: 'bff20764-0195-4f78-aa84-d799fc47b954', + type: 'apm-server', + version: '8.0.0', + version_major: 8 + }, + trace: { + id: '3b0dc77f3754e5bcb9da0e4c15e0db97' + }, + '@timestamp': '2020-04-09T11:36:00.859Z', + ecs: { + version: '1.5.0' + }, + service: { + node: { + name: + 'fc2ae281f56fb84728bc9b5e6c17f3d13bbb7f4efd461158558e5c38e655abad' + }, + environment: 'production', + name: 'opbeans-java', + runtime: { + name: 'Java', + version: '11.0.6' + }, + language: { + name: 'Java', + version: '11.0.6' + }, + version: 'None' + }, + host: { + hostname: 'fc2ae281f56f', + os: { + platform: 'Linux' + }, + ip: '172.18.0.7', + name: 'fc2ae281f56f', + architecture: 'amd64' + }, + transaction: { + id: 'f2387d37260d00bd' + }, + timestamp: { + us: 1586432160859508 + }, + span: { + duration: { + us: 4503 + }, + subtype: 'postgresql', + destination: { + service: { + resource: 'postgresql', + name: 'postgresql', + type: 'db' + } + }, + name: 'empty query', + action: 'query', + id: '9871cfd612368932', + type: 'db', + db: { + rows_affected: 0, + statement: '(empty query)', + type: 'sql', + user: { + name: 'postgres' + } + } + } + } + ], + exceedsMax: false, + errorDocs: [] + }, + errorsPerTransaction: {} +}; diff --git a/x-pack/plugins/apm/typings/es_schemas/raw/span_raw.ts b/x-pack/plugins/apm/typings/es_schemas/raw/span_raw.ts index 7fc17151c8a892..eaa2fb683ecb2d 100644 --- a/x-pack/plugins/apm/typings/es_schemas/raw/span_raw.ts +++ b/x-pack/plugins/apm/typings/es_schemas/raw/span_raw.ts @@ -54,4 +54,5 @@ export interface SpanRaw extends APMBaseDoc { id: string; }; observer?: Observer; + child_ids?: string[]; } From 6ee7111ca5f9e6f0c0d7d422ce94145275263c73 Mon Sep 17 00:00:00 2001 From: Liza Katz Date: Mon, 20 Apr 2020 15:11:50 +0300 Subject: [PATCH 03/54] [7.x] [SEARCH] Cleanup fetch soon (#63320) (#63929) * [SEARCH] Cleanup fetch soon (#63320) * move old code to legacy folder * Use search service directly from search source * Move get search params to fetch folder * Delete search strategy folder * Doc update * Minor cleanups * Moved es client to legacy folder * Clean up some unused code (isViable, old search function) * Updated tests * strings update * Fix jest test * re-arrange runSearch function * re-arrange runSearch function * fix jest tests Co-authored-by: Elastic Machine * remove file (bad merge) Co-authored-by: Elastic Machine --- .../kibana-plugin-plugins-data-public.md | 1 - ...s-data-public.searchstrategyprovider.id.md | 11 --- ...-public.searchstrategyprovider.isviable.md | 11 --- ...gins-data-public.searchstrategyprovider.md | 20 ------ ...ta-public.searchstrategyprovider.search.md | 11 --- .../lib/get_indices.test.ts | 2 +- src/plugins/data/public/index.ts | 1 - src/plugins/data/public/public.api.md | 45 ++++-------- .../aggs/test_helpers/mock_data_services.ts | 11 ++- .../search/fetch/get_search_params.test.ts | 70 +++++++++++++++++++ .../get_search_params.ts | 14 +--- src/plugins/data/public/search/fetch/index.ts | 13 +++- .../fetch/{errors.ts => request_error.ts} | 0 .../search_error.ts | 0 src/plugins/data/public/search/fetch/types.ts | 3 + src/plugins/data/public/search/index.ts | 12 ++-- .../{fetch => legacy}/call_client.test.ts | 11 +-- .../search/{fetch => legacy}/call_client.ts | 7 +- .../default_search_strategy.test.ts | 24 +------ .../default_search_strategy.ts | 38 ++-------- .../{ => legacy}/es_client/get_es_client.ts | 0 .../search/{ => legacy}/es_client/index.ts | 2 +- .../search/{ => legacy}/es_client/types.ts | 3 +- .../{fetch => legacy}/fetch_soon.test.ts | 6 +- .../search/{fetch => legacy}/fetch_soon.ts | 4 +- .../get_msearch_params.test.ts} | 45 +----------- .../search/legacy/get_msearch_params.ts | 29 ++++++++ .../{search_strategy => legacy}/index.ts | 7 +- .../{search_strategy => legacy}/types.ts | 13 ++-- .../data/public/search/search_service.ts | 6 +- .../search_source/search_source.test.ts | 55 ++++++++++++++- .../search/search_source/search_source.ts | 53 ++++++++++---- .../search_strategy/no_op_search_strategy.ts | 55 --------------- src/plugins/data/public/search/types.ts | 11 +-- .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 36 files changed, 276 insertions(+), 322 deletions(-) delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md create mode 100644 src/plugins/data/public/search/fetch/get_search_params.test.ts rename src/plugins/data/public/search/{search_strategy => fetch}/get_search_params.ts (81%) rename src/plugins/data/public/search/fetch/{errors.ts => request_error.ts} (100%) rename src/plugins/data/public/search/{search_strategy => fetch}/search_error.ts (100%) rename src/plugins/data/public/search/{fetch => legacy}/call_client.test.ts (91%) rename src/plugins/data/public/search/{fetch => legacy}/call_client.ts (89%) rename src/plugins/data/public/search/{search_strategy => legacy}/default_search_strategy.test.ts (83%) rename src/plugins/data/public/search/{search_strategy => legacy}/default_search_strategy.ts (64%) rename src/plugins/data/public/search/{ => legacy}/es_client/get_es_client.ts (100%) rename src/plugins/data/public/search/{ => legacy}/es_client/index.ts (91%) rename src/plugins/data/public/search/{ => legacy}/es_client/types.ts (94%) rename src/plugins/data/public/search/{fetch => legacy}/fetch_soon.test.ts (96%) rename src/plugins/data/public/search/{fetch => legacy}/fetch_soon.ts (95%) rename src/plugins/data/public/search/{search_strategy/get_search_params.test.ts => legacy/get_msearch_params.test.ts} (60%) create mode 100644 src/plugins/data/public/search/legacy/get_msearch_params.ts rename src/plugins/data/public/search/{search_strategy => legacy}/index.ts (78%) rename src/plugins/data/public/search/{search_strategy => legacy}/types.ts (89%) delete mode 100644 src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md index fc0dab94a0f656..bf29c883e4eb96 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md @@ -88,7 +88,6 @@ | [SavedQuery](./kibana-plugin-plugins-data-public.savedquery.md) | | | [SavedQueryService](./kibana-plugin-plugins-data-public.savedqueryservice.md) | | | [SearchSourceFields](./kibana-plugin-plugins-data-public.searchsourcefields.md) | | -| [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) | | | [TabbedAggColumn](./kibana-plugin-plugins-data-public.tabbedaggcolumn.md) | \* | | [TabbedTable](./kibana-plugin-plugins-data-public.tabbedtable.md) | \* | | [TimeRange](./kibana-plugin-plugins-data-public.timerange.md) | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md deleted file mode 100644 index d60ffba6a05ca8..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) - -## SearchStrategyProvider.id property - -Signature: - -```typescript -id: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md deleted file mode 100644 index aa8ed49051ee9a..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) - -## SearchStrategyProvider.isViable property - -Signature: - -```typescript -isViable: (indexPattern: IndexPattern) => boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md deleted file mode 100644 index b271a921906a71..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md +++ /dev/null @@ -1,20 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) - -## SearchStrategyProvider interface - -Signature: - -```typescript -export interface SearchStrategyProvider -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) | string | | -| [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) | (indexPattern: IndexPattern) => boolean | | -| [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) | (params: SearchStrategySearchParams) => SearchStrategyResponse | | - diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md deleted file mode 100644 index 6e2561c3b0ad00..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) - -## SearchStrategyProvider.search property - -Signature: - -```typescript -search: (params: SearchStrategySearchParams) => SearchStrategyResponse; -``` diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts index 40583af7177fee..b1500f8303b666 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts @@ -20,7 +20,7 @@ import { getIndices } from './get_indices'; import { IndexPatternCreationConfig } from '../../../../../../../../../plugins/index_pattern_management/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search'; +import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search/legacy'; export const successfulResponse = { hits: { diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 06a46065baa847..b62b728beca35f 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -363,7 +363,6 @@ export { SearchRequest, SearchResponse, SearchError, - SearchStrategyProvider, ISearchSource, SearchSource, createSearchSource, diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 7d902c88616c51..78659720fe09a7 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -1736,21 +1736,6 @@ export interface SearchSourceFields { version?: boolean; } -// Warning: (ae-missing-release-tag) "SearchStrategyProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export interface SearchStrategyProvider { - // (undocumented) - id: string; - // (undocumented) - isViable: (indexPattern: IndexPattern) => boolean; - // Warning: (ae-forgotten-export) The symbol "SearchStrategySearchParams" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "SearchStrategyResponse" needs to be exported by the entry point index.d.ts - // - // (undocumented) - search: (params: SearchStrategySearchParams) => SearchStrategyResponse; -} - // Warning: (ae-missing-release-tag) "SortDirection" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1901,21 +1886,21 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:404:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts index d1d591771743c7..e807e084c683a2 100644 --- a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts +++ b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts @@ -18,8 +18,8 @@ */ // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { coreMock } from '../../../../../../../src/core/public/mocks'; -import { dataPluginMock } from '../../../../public/mocks'; +import { coreMock } from '../../../../../../core/public/mocks'; +import { dataPluginMock } from '../../../mocks'; import { setFieldFormats, setIndexPatterns, @@ -29,7 +29,7 @@ import { setQueryService, setSearchService, setUiSettings, -} from '../../../../public/services'; +} from '../../../services'; /** * Testing helper which calls all of the service setters used in the @@ -49,4 +49,9 @@ export function mockDataServices() { setQueryService(data.query); setSearchService(data.search); setUiSettings(core.uiSettings); + + return { + core, + data, + }; } diff --git a/src/plugins/data/public/search/fetch/get_search_params.test.ts b/src/plugins/data/public/search/fetch/get_search_params.test.ts new file mode 100644 index 00000000000000..edf18405e8ff71 --- /dev/null +++ b/src/plugins/data/public/search/fetch/get_search_params.test.ts @@ -0,0 +1,70 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { getSearchParams } from './get_search_params'; +import { IUiSettingsClient } from 'kibana/public'; + +function getConfigStub(config: any = {}) { + return { + get: key => config[key], + } as IUiSettingsClient; +} + +describe('getSearchParams', () => { + test('includes rest_total_hits_as_int', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.rest_total_hits_as_int).toBe(true); + }); + + test('includes ignore_unavailable', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.ignore_unavailable).toBe(true); + }); + + test('includes ignore_throttled according to search:includeFrozen', () => { + let config = getConfigStub({ 'search:includeFrozen': true }); + let searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(false); + + config = getConfigStub({ 'search:includeFrozen': false }); + searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(true); + }); + + test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { + let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); + let searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(undefined); + + config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); + searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(5); + }); + + test('includes timeout according to esShardTimeout if greater than 0', () => { + const config = getConfigStub(); + let searchParams = getSearchParams(config, 0); + expect(searchParams.timeout).toBe(undefined); + + searchParams = getSearchParams(config, 100); + expect(searchParams.timeout).toBe('100ms'); + }); +}); diff --git a/src/plugins/data/public/search/search_strategy/get_search_params.ts b/src/plugins/data/public/search/fetch/get_search_params.ts similarity index 81% rename from src/plugins/data/public/search/search_strategy/get_search_params.ts rename to src/plugins/data/public/search/fetch/get_search_params.ts index 9fb8f2c728c6f0..f0c43bd2e74cd1 100644 --- a/src/plugins/data/public/search/search_strategy/get_search_params.ts +++ b/src/plugins/data/public/search/fetch/get_search_params.ts @@ -17,18 +17,10 @@ * under the License. */ -import { IUiSettingsClient } from '../../../../../core/public'; +import { IUiSettingsClient } from 'kibana/public'; const sessionId = Date.now(); -export function getMSearchParams(config: IUiSettingsClient) { - return { - rest_total_hits_as_int: true, - ignore_throttled: getIgnoreThrottled(config), - max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), - }; -} - export function getSearchParams(config: IUiSettingsClient, esShardTimeout: number = 0) { return { rest_total_hits_as_int: true, @@ -40,11 +32,11 @@ export function getSearchParams(config: IUiSettingsClient, esShardTimeout: numbe }; } -function getIgnoreThrottled(config: IUiSettingsClient) { +export function getIgnoreThrottled(config: IUiSettingsClient) { return !config.get('search:includeFrozen'); } -function getMaxConcurrentShardRequests(config: IUiSettingsClient) { +export function getMaxConcurrentShardRequests(config: IUiSettingsClient) { const maxConcurrentShardRequests = config.get('courier:maxConcurrentShardRequests'); return maxConcurrentShardRequests > 0 ? maxConcurrentShardRequests : undefined; } diff --git a/src/plugins/data/public/search/fetch/index.ts b/src/plugins/data/public/search/fetch/index.ts index 8a80b716add321..39845ec31bfaaa 100644 --- a/src/plugins/data/public/search/fetch/index.ts +++ b/src/plugins/data/public/search/fetch/index.ts @@ -18,5 +18,14 @@ */ export * from './types'; -export { fetchSoon } from './fetch_soon'; -export { RequestFailure } from './errors'; +export { + getSearchParams, + getPreference, + getTimeout, + getIgnoreThrottled, + getMaxConcurrentShardRequests, +} from './get_search_params'; + +export { SearchError, getSearchErrorType } from './search_error'; +export { RequestFailure } from './request_error'; +export { handleResponse } from './handle_response'; diff --git a/src/plugins/data/public/search/fetch/errors.ts b/src/plugins/data/public/search/fetch/request_error.ts similarity index 100% rename from src/plugins/data/public/search/fetch/errors.ts rename to src/plugins/data/public/search/fetch/request_error.ts diff --git a/src/plugins/data/public/search/search_strategy/search_error.ts b/src/plugins/data/public/search/fetch/search_error.ts similarity index 100% rename from src/plugins/data/public/search/search_strategy/search_error.ts rename to src/plugins/data/public/search/fetch/search_error.ts diff --git a/src/plugins/data/public/search/fetch/types.ts b/src/plugins/data/public/search/fetch/types.ts index e8de0576b8a72f..475b2abbc019f4 100644 --- a/src/plugins/data/public/search/fetch/types.ts +++ b/src/plugins/data/public/search/fetch/types.ts @@ -20,6 +20,9 @@ import { IUiSettingsClient } from '../../../../../core/public'; import { ISearchStart } from '../types'; +export type SearchRequest = any; +export type SearchResponse = any; + export interface FetchOptions { abortSignal?: AbortSignal; searchStrategyId?: string; diff --git a/src/plugins/data/public/search/index.ts b/src/plugins/data/public/search/index.ts index cce973d632f417..75c0eb8b6f0229 100644 --- a/src/plugins/data/public/search/index.ts +++ b/src/plugins/data/public/search/index.ts @@ -44,9 +44,13 @@ export { esSearchStrategyProvider, getEsPreference } from './es_search'; export { IKibanaSearchResponse, IKibanaSearchRequest } from '../../common/search'; -export { LegacyApiCaller, SearchRequest, SearchResponse } from './es_client'; - -export { SearchError, SearchStrategyProvider, getSearchErrorType } from './search_strategy'; +export { + SearchError, + FetchOptions, + SearchRequest, + SearchResponse, + getSearchErrorType, +} from './fetch'; export { ISearchSource, @@ -59,5 +63,3 @@ export { export { SearchInterceptor } from './search_interceptor'; export { RequestTimeoutError } from './request_timeout_error'; - -export { FetchOptions } from './fetch'; diff --git a/src/plugins/data/public/search/fetch/call_client.test.ts b/src/plugins/data/public/search/legacy/call_client.test.ts similarity index 91% rename from src/plugins/data/public/search/fetch/call_client.test.ts rename to src/plugins/data/public/search/legacy/call_client.test.ts index 7a99b7c064515b..f919187d46784d 100644 --- a/src/plugins/data/public/search/fetch/call_client.test.ts +++ b/src/plugins/data/public/search/legacy/call_client.test.ts @@ -18,16 +18,17 @@ */ import { callClient } from './call_client'; -import { handleResponse } from './handle_response'; -import { FetchHandlers } from './types'; -import { SearchStrategySearchParams, defaultSearchStrategy } from '../search_strategy'; +import { SearchStrategySearchParams } from './types'; +import { defaultSearchStrategy } from './default_search_strategy'; +import { FetchHandlers } from '../fetch'; +import { handleResponse } from '../fetch/handle_response'; const mockAbortFn = jest.fn(); -jest.mock('./handle_response', () => ({ +jest.mock('../fetch/handle_response', () => ({ handleResponse: jest.fn((request, response) => response), })); -jest.mock('../search_strategy', () => { +jest.mock('./default_search_strategy', () => { return { defaultSearchStrategy: { search: jest.fn(({ searchRequests }: SearchStrategySearchParams) => { diff --git a/src/plugins/data/public/search/fetch/call_client.ts b/src/plugins/data/public/search/legacy/call_client.ts similarity index 89% rename from src/plugins/data/public/search/fetch/call_client.ts rename to src/plugins/data/public/search/legacy/call_client.ts index b3c4c682fa60c0..c484c46aa4879f 100644 --- a/src/plugins/data/public/search/fetch/call_client.ts +++ b/src/plugins/data/public/search/legacy/call_client.ts @@ -17,10 +17,9 @@ * under the License. */ -import { handleResponse } from './handle_response'; -import { FetchOptions, FetchHandlers } from './types'; -import { defaultSearchStrategy } from '../search_strategy'; -import { SearchRequest } from '..'; +import { FetchOptions, FetchHandlers, handleResponse } from '../fetch'; +import { defaultSearchStrategy } from './default_search_strategy'; +import { SearchRequest } from '../index'; export function callClient( searchRequests: SearchRequest[], diff --git a/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts b/src/plugins/data/public/search/legacy/default_search_strategy.test.ts similarity index 83% rename from src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts rename to src/plugins/data/public/search/legacy/default_search_strategy.test.ts index 210a0e5fd1ac78..835b02b3cd5c74 100644 --- a/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts +++ b/src/plugins/data/public/search/legacy/default_search_strategy.test.ts @@ -17,10 +17,10 @@ * under the License. */ -import { IUiSettingsClient } from '../../../../../core/public'; -import { SearchStrategySearchParams } from './types'; +import { IUiSettingsClient } from 'kibana/public'; import { defaultSearchStrategy } from './default_search_strategy'; import { searchStartMock } from '../mocks'; +import { SearchStrategySearchParams } from './types'; const { search } = defaultSearchStrategy; @@ -38,12 +38,6 @@ const searchMockResponse: any = Promise.resolve([]); searchMockResponse.abort = jest.fn(); const searchMock = jest.fn().mockReturnValue(searchMockResponse); -const newSearchMockResponse: any = Promise.resolve([]); -newSearchMockResponse.abort = jest.fn(); -const newSearchMock = jest.fn().mockReturnValue({ - toPromise: () => searchMockResponse, -}); - describe('defaultSearchStrategy', function() { describe('search', function() { let searchArgs: MockedKeys>; @@ -58,7 +52,6 @@ describe('defaultSearchStrategy', function() { const searchService = searchStartMock; searchService.aggs.calculateAutoTimeExpression = jest.fn().mockReturnValue('1d'); - searchService.search = newSearchMock; searchService.__LEGACY.esClient.search = searchMock; searchService.__LEGACY.esClient.msearch = msearchMock; @@ -112,18 +105,5 @@ describe('defaultSearchStrategy', function() { search({ ...searchArgs, config }).abort(); expect(msearchMockResponse.abort).toHaveBeenCalled(); }); - - test('should call new search service', () => { - const config = getConfigStub(); - search({ ...searchArgs, config }); - expect(newSearchMock).toHaveBeenCalledTimes(1); - }); - - test('should properly abort with new search service', async () => { - const abortSpy = jest.spyOn(AbortController.prototype, 'abort'); - const config = getConfigStub({}); - search({ ...searchArgs, config }).abort(); - expect(abortSpy).toHaveBeenCalled(); - }); }); }); diff --git a/src/plugins/data/public/search/search_strategy/default_search_strategy.ts b/src/plugins/data/public/search/legacy/default_search_strategy.ts similarity index 64% rename from src/plugins/data/public/search/search_strategy/default_search_strategy.ts rename to src/plugins/data/public/search/legacy/default_search_strategy.ts index 2bd88f51587a8a..1552410f9090ca 100644 --- a/src/plugins/data/public/search/search_strategy/default_search_strategy.ts +++ b/src/plugins/data/public/search/legacy/default_search_strategy.ts @@ -17,23 +17,19 @@ * under the License. */ +import { getPreference, getTimeout } from '../fetch'; +import { getMSearchParams } from './get_msearch_params'; import { SearchStrategyProvider, SearchStrategySearchParams } from './types'; -import { isDefault } from '../../index_patterns'; -import { getSearchParams, getMSearchParams, getPreference, getTimeout } from './get_search_params'; +// @deprecated export const defaultSearchStrategy: SearchStrategyProvider = { id: 'default', search: params => { - return params.config.get('courier:batchSearches') ? msearch(params) : search(params); - }, - - isViable: indexPattern => { - return indexPattern && isDefault(indexPattern); + return msearch(params); }, }; -// @deprecated function msearch({ searchRequests, searchService, @@ -65,29 +61,3 @@ function msearch({ abort: searching.abort, }; } - -function search({ - searchRequests, - searchService, - config, - esShardTimeout, -}: SearchStrategySearchParams) { - const abortController = new AbortController(); - const searchParams = getSearchParams(config, esShardTimeout); - const promises = searchRequests.map(({ index, indexType, body }) => { - const params = { - index: index.title || index, - body, - ...searchParams, - }; - const { signal } = abortController; - return searchService - .search({ params, indexType }, { signal }) - .toPromise() - .then(({ rawResponse }) => rawResponse); - }); - return { - searching: Promise.all(promises), - abort: () => abortController.abort(), - }; -} diff --git a/src/plugins/data/public/search/es_client/get_es_client.ts b/src/plugins/data/public/search/legacy/es_client/get_es_client.ts similarity index 100% rename from src/plugins/data/public/search/es_client/get_es_client.ts rename to src/plugins/data/public/search/legacy/es_client/get_es_client.ts diff --git a/src/plugins/data/public/search/es_client/index.ts b/src/plugins/data/public/search/legacy/es_client/index.ts similarity index 91% rename from src/plugins/data/public/search/es_client/index.ts rename to src/plugins/data/public/search/legacy/es_client/index.ts index b1e0ce31168242..78ac83af642d83 100644 --- a/src/plugins/data/public/search/es_client/index.ts +++ b/src/plugins/data/public/search/legacy/es_client/index.ts @@ -18,4 +18,4 @@ */ export { getEsClient } from './get_es_client'; -export { SearchRequest, SearchResponse, LegacyApiCaller } from './types'; +export { LegacyApiCaller } from './types'; diff --git a/src/plugins/data/public/search/es_client/types.ts b/src/plugins/data/public/search/legacy/es_client/types.ts similarity index 94% rename from src/plugins/data/public/search/es_client/types.ts rename to src/plugins/data/public/search/legacy/es_client/types.ts index 3ca0513a14238d..7a56b9b0cb00a8 100644 --- a/src/plugins/data/public/search/es_client/types.ts +++ b/src/plugins/data/public/search/legacy/es_client/types.ts @@ -17,8 +17,7 @@ * under the License. */ -export type SearchRequest = any; -export type SearchResponse = any; +import { SearchRequest, SearchResponse } from '../../fetch'; export interface LegacyApiCaller { search: (searchRequest: SearchRequest) => LegacyApiCallerResponse; diff --git a/src/plugins/data/public/search/fetch/fetch_soon.test.ts b/src/plugins/data/public/search/legacy/fetch_soon.test.ts similarity index 96% rename from src/plugins/data/public/search/fetch/fetch_soon.test.ts rename to src/plugins/data/public/search/legacy/fetch_soon.test.ts index a8d593c8501f68..b2e17798ccc9fa 100644 --- a/src/plugins/data/public/search/fetch/fetch_soon.test.ts +++ b/src/plugins/data/public/search/legacy/fetch_soon.test.ts @@ -19,9 +19,9 @@ import { fetchSoon } from './fetch_soon'; import { callClient } from './call_client'; -import { IUiSettingsClient } from '../../../../../core/public'; -import { FetchHandlers, FetchOptions } from './types'; -import { SearchRequest, SearchResponse } from '..'; +import { IUiSettingsClient } from 'kibana/public'; +import { FetchHandlers, FetchOptions } from '../fetch/types'; +import { SearchRequest, SearchResponse } from '../index'; function getConfigStub(config: any = {}) { return { diff --git a/src/plugins/data/public/search/fetch/fetch_soon.ts b/src/plugins/data/public/search/legacy/fetch_soon.ts similarity index 95% rename from src/plugins/data/public/search/fetch/fetch_soon.ts rename to src/plugins/data/public/search/legacy/fetch_soon.ts index b1405747426ee9..18fa410a5bef03 100644 --- a/src/plugins/data/public/search/fetch/fetch_soon.ts +++ b/src/plugins/data/public/search/legacy/fetch_soon.ts @@ -18,8 +18,8 @@ */ import { callClient } from './call_client'; -import { FetchHandlers, FetchOptions } from './types'; -import { SearchRequest, SearchResponse } from '..'; +import { FetchHandlers, FetchOptions } from '../fetch/types'; +import { SearchRequest, SearchResponse } from '../index'; /** * This function introduces a slight delay in the request process to allow multiple requests to queue diff --git a/src/plugins/data/public/search/search_strategy/get_search_params.test.ts b/src/plugins/data/public/search/legacy/get_msearch_params.test.ts similarity index 60% rename from src/plugins/data/public/search/search_strategy/get_search_params.test.ts rename to src/plugins/data/public/search/legacy/get_msearch_params.test.ts index 76f3105d7f942e..9f16d5b408178d 100644 --- a/src/plugins/data/public/search/search_strategy/get_search_params.test.ts +++ b/src/plugins/data/public/search/legacy/get_msearch_params.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { getMSearchParams, getSearchParams } from './get_search_params'; +import { getMSearchParams } from './get_msearch_params'; import { IUiSettingsClient } from '../../../../../core/public'; function getConfigStub(config: any = {}) { @@ -64,46 +64,3 @@ describe('getMSearchParams', () => { expect(msearchParams.hasOwnProperty('timeout')).toBe(false); }); }); - -describe('getSearchParams', () => { - test('includes rest_total_hits_as_int', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.rest_total_hits_as_int).toBe(true); - }); - - test('includes ignore_unavailable', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.ignore_unavailable).toBe(true); - }); - - test('includes ignore_throttled according to search:includeFrozen', () => { - let config = getConfigStub({ 'search:includeFrozen': true }); - let searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(false); - - config = getConfigStub({ 'search:includeFrozen': false }); - searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(true); - }); - - test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { - let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); - let searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(undefined); - - config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); - searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(5); - }); - - test('includes timeout according to esShardTimeout if greater than 0', () => { - const config = getConfigStub(); - let searchParams = getSearchParams(config, 0); - expect(searchParams.timeout).toBe(undefined); - - searchParams = getSearchParams(config, 100); - expect(searchParams.timeout).toBe('100ms'); - }); -}); diff --git a/src/plugins/data/public/search/legacy/get_msearch_params.ts b/src/plugins/data/public/search/legacy/get_msearch_params.ts new file mode 100644 index 00000000000000..48d13903c972fe --- /dev/null +++ b/src/plugins/data/public/search/legacy/get_msearch_params.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { IUiSettingsClient } from 'kibana/public'; +import { getIgnoreThrottled, getMaxConcurrentShardRequests } from '../fetch'; + +export function getMSearchParams(config: IUiSettingsClient) { + return { + rest_total_hits_as_int: true, + ignore_throttled: getIgnoreThrottled(config), + max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), + }; +} diff --git a/src/plugins/data/public/search/search_strategy/index.ts b/src/plugins/data/public/search/legacy/index.ts similarity index 78% rename from src/plugins/data/public/search/search_strategy/index.ts rename to src/plugins/data/public/search/legacy/index.ts index e3de2ea46e3eca..e2ae72824f3f49 100644 --- a/src/plugins/data/public/search/search_strategy/index.ts +++ b/src/plugins/data/public/search/legacy/index.ts @@ -17,8 +17,5 @@ * under the License. */ -export { SearchError, getSearchErrorType } from './search_error'; - -export { SearchStrategyProvider, SearchStrategySearchParams } from './types'; - -export { defaultSearchStrategy } from './default_search_strategy'; +export { fetchSoon } from './fetch_soon'; +export { getEsClient, LegacyApiCaller } from './es_client'; diff --git a/src/plugins/data/public/search/search_strategy/types.ts b/src/plugins/data/public/search/legacy/types.ts similarity index 89% rename from src/plugins/data/public/search/search_strategy/types.ts rename to src/plugins/data/public/search/legacy/types.ts index 764370d8ff6497..3812cec7a2aa20 100644 --- a/src/plugins/data/public/search/search_strategy/types.ts +++ b/src/plugins/data/public/search/legacy/types.ts @@ -17,21 +17,20 @@ * under the License. */ -import { IndexPattern } from '../..'; -import { FetchHandlers } from '../fetch/types'; +import { FetchHandlers } from '../fetch'; import { SearchRequest, SearchResponse } from '..'; +export interface SearchStrategySearchParams extends FetchHandlers { + searchRequests: SearchRequest[]; +} + +// @deprecated export interface SearchStrategyProvider { id: string; search: (params: SearchStrategySearchParams) => SearchStrategyResponse; - isViable: (indexPattern: IndexPattern) => boolean; } export interface SearchStrategyResponse { searching: Promise; abort: () => void; } - -export interface SearchStrategySearchParams extends FetchHandlers { - searchRequests: SearchRequest[]; -} diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index a539736991adb4..916278a96659b4 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -22,12 +22,12 @@ import { Plugin, CoreSetup, CoreStart, PackageInfo } from '../../../../core/publ import { SYNC_SEARCH_STRATEGY, syncSearchStrategyProvider } from './sync_search_strategy'; import { ISearchSetup, ISearchStart, TSearchStrategyProvider, TSearchStrategiesMap } from './types'; import { TStrategyTypes } from './strategy_types'; -import { getEsClient, LegacyApiCaller } from './es_client'; +import { getEsClient, LegacyApiCaller } from './legacy'; import { ES_SEARCH_STRATEGY, DEFAULT_SEARCH_STRATEGY } from '../../common/search'; -import { esSearchStrategyProvider } from './es_search/es_search_strategy'; +import { esSearchStrategyProvider } from './es_search'; import { IndexPatternsContract } from '../index_patterns/index_patterns'; import { createSearchSource } from './search_source'; -import { QuerySetup } from '../query/query_service'; +import { QuerySetup } from '../query'; import { GetInternalStartServicesFn } from '../types'; import { SearchInterceptor } from './search_interceptor'; import { diff --git a/src/plugins/data/public/search/search_source/search_source.test.ts b/src/plugins/data/public/search/search_source/search_source.test.ts index 6bad093d31402b..6e878844664ad2 100644 --- a/src/plugins/data/public/search/search_source/search_source.test.ts +++ b/src/plugins/data/public/search/search_source/search_source.test.ts @@ -20,8 +20,26 @@ import { SearchSource } from './search_source'; import { IndexPattern, SortDirection } from '../..'; import { mockDataServices } from '../aggs/test_helpers'; +import { setSearchService } from '../../services'; +import { searchStartMock } from '../mocks'; +import { fetchSoon } from '../legacy'; +import { CoreStart } from 'kibana/public'; +import { Observable } from 'rxjs'; -jest.mock('../fetch', () => ({ +// Setup search service mock +searchStartMock.search = jest.fn(() => { + return new Observable(subscriber => { + setTimeout(() => { + subscriber.next({ + rawResponse: '', + }); + subscriber.complete(); + }, 100); + }); +}) as any; +setSearchService(searchStartMock); + +jest.mock('../legacy', () => ({ fetchSoon: jest.fn().mockResolvedValue({}), })); @@ -44,8 +62,11 @@ const indexPattern2 = ({ } as unknown) as IndexPattern; describe('SearchSource', function() { + let uiSettingsMock: jest.Mocked; beforeEach(() => { - mockDataServices(); + const { core } = mockDataServices(); + uiSettingsMock = core.uiSettings; + jest.clearAllMocks(); }); describe('#setField()', function() { @@ -151,6 +172,36 @@ describe('SearchSource', function() { }); }); + describe('#legacy fetch()', () => { + beforeEach(() => { + uiSettingsMock.get.mockImplementation(() => { + return true; // batchSearches = true + }); + }); + + afterEach(() => { + uiSettingsMock.get.mockImplementation(() => { + return false; // batchSearches = false + }); + }); + + it('should call msearch', async () => { + const searchSource = new SearchSource({ index: indexPattern }); + const options = {}; + await searchSource.fetch(options); + expect(fetchSoon).toBeCalledTimes(1); + }); + }); + + describe('#search service fetch()', () => { + it('should call msearch', async () => { + const searchSource = new SearchSource({ index: indexPattern }); + const options = {}; + await searchSource.fetch(options); + expect(searchStartMock.search).toBeCalledTimes(1); + }); + }); + describe('#serialize', function() { it('should reference index patterns', () => { const indexPattern123 = { id: '123' } as IndexPattern; diff --git a/src/plugins/data/public/search/search_source/search_source.ts b/src/plugins/data/public/search/search_source/search_source.ts index c70db7bb82ef7f..9d2bb889953cf2 100644 --- a/src/plugins/data/public/search/search_source/search_source.ts +++ b/src/plugins/data/public/search/search_source/search_source.ts @@ -70,17 +70,19 @@ */ import _ from 'lodash'; +import { map } from 'rxjs/operators'; import { SavedObjectReference } from 'kibana/public'; import { normalizeSortRequest } from './normalize_sort_request'; import { filterDocvalueFields } from './filter_docvalue_fields'; import { fieldWildcardFilter } from '../../../../kibana_utils/public'; import { IIndexPattern, SearchRequest } from '../..'; import { SearchSourceOptions, SearchSourceFields } from './types'; -import { fetchSoon, FetchOptions, RequestFailure } from '../fetch'; +import { FetchOptions, RequestFailure, getSearchParams, handleResponse } from '../fetch'; import { getSearchService, getUiSettings, getInjectedMetadata } from '../../services'; import { getEsQueryConfig, buildEsQuery, Filter } from '../../../common'; import { getHighlightRequest } from '../../../common/field_formats'; +import { fetchSoon } from '../legacy'; export type ISearchSource = Pick; @@ -185,18 +187,29 @@ export class SearchSource { } /** - * Fetch this source and reject the returned Promise on error - * - * @async + * Run a search using the search service + * @return {Observable>} */ - async fetch(options: FetchOptions = {}) { - await this.requestIsStarting(options); - - const searchRequest = await this.flatten(); - this.history = [searchRequest]; + private fetch$(searchRequest: SearchRequest, signal?: AbortSignal) { + const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; + const searchParams = getSearchParams(getUiSettings(), esShardTimeout); + const params = { + index: searchRequest.index.title || searchRequest.index, + body: searchRequest.body, + ...searchParams, + }; + return getSearchService() + .search({ params, indexType: searchRequest.indexType }, { signal }) + .pipe(map(({ rawResponse }) => handleResponse(searchRequest, rawResponse))); + } + /** + * Run a search using the search service + * @return {Promise>} + */ + private async legacyFetch(searchRequest: SearchRequest, options: FetchOptions) { const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; - const response = await fetchSoon( + return await fetchSoon( searchRequest, { ...(this.searchStrategyId && { searchStrategyId: this.searchStrategyId }), @@ -208,6 +221,24 @@ export class SearchSource { esShardTimeout, } ); + } + /** + * Fetch this source and reject the returned Promise on error + * + * @async + */ + async fetch(options: FetchOptions = {}) { + await this.requestIsStarting(options); + + const searchRequest = await this.flatten(); + this.history = [searchRequest]; + + let response; + if (getUiSettings().get('courier:batchSearches')) { + response = await this.legacyFetch(searchRequest, options); + } else { + response = this.fetch$(searchRequest, options.abortSignal).toPromise(); + } if (response.error) { throw new RequestFailure(null, response); @@ -246,7 +277,6 @@ export class SearchSource { /** * Called by requests of this search source when they are started - * @param {Courier.Request} request * @param options * @return {Promise} */ @@ -430,7 +460,6 @@ export class SearchSource { * and `kibanaSavedObjectMeta.searchSourceJSON.filter[].meta.index`. * * Using `createSearchSource`, the instance can be re-created. - * @param searchSource The search source to serialize * @public */ public serialize() { const references: SavedObjectReference[] = []; diff --git a/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts b/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts deleted file mode 100644 index dc7331e614a0e4..00000000000000 --- a/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { i18n } from '@kbn/i18n'; -import { SearchError } from './search_error'; -import { SearchStrategyProvider } from './types'; - -export const noOpSearchStrategy: SearchStrategyProvider = { - id: 'noOp', - - search: () => { - const searchError = new SearchError({ - status: '418', // "I'm a teapot" error - title: i18n.translate( - 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle', - { - defaultMessage: 'No search strategy registered', - } - ), - message: i18n.translate( - 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription', - { - defaultMessage: `Couldn't find a search strategy for the search request`, - } - ), - type: 'NO_OP_SEARCH_STRATEGY', - path: '', - }); - - return { - searching: Promise.reject(searchError), - abort: () => {}, - }; - }, - - isViable: () => { - return true; - }, -}; diff --git a/src/plugins/data/public/search/types.ts b/src/plugins/data/public/search/types.ts index ba6e44f47b75eb..2122e4e82ec1d7 100644 --- a/src/plugins/data/public/search/types.ts +++ b/src/plugins/data/public/search/types.ts @@ -22,7 +22,7 @@ import { createSearchSource } from './search_source'; import { SearchAggsSetup, SearchAggsStart, SearchAggsStartLegacy } from './aggs'; import { ISearch, ISearchGeneric } from './i_search'; import { TStrategyTypes } from './strategy_types'; -import { LegacyApiCaller } from './es_client'; +import { LegacyApiCaller } from './legacy/es_client'; import { SearchInterceptor } from './search_interceptor'; export interface ISearchContext { @@ -38,15 +38,6 @@ export interface ISearchStrategy { search: ISearch; } -/** - * Search strategy provider creates an instance of a search strategy with the request - * handler context bound to it. This way every search strategy can use - * whatever information they require from the request context. - */ -export type TSearchStrategyProviderEnhanced = ( - search: ISearchGeneric -) => Promise>; - export type TSearchStrategiesMap = { [K in TStrategyTypes]?: TSearchStrategyProvider; }; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 7f5bd0eda809b3..d67a9dbf960eca 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -850,8 +850,6 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", "data.search.searchSource.indexPatternIdLabel": "インデックスパターン ID", "data.search.searchSource.indexPatternLabel": "インデックスパターン", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "検索リクエストの検索方法が見つかりませんでした", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "検索方法が登録されていません", "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザでのパースの時間は含まれません。", "data.search.searchSource.queryTimeLabel": "クエリ時間", "data.search.searchSource.queryTimeValue": "{queryTime}ms", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 6fc2e1f146086a..e29bf8b6d94984 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -851,8 +851,6 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} 索引中的 ID。", "data.search.searchSource.indexPatternIdLabel": "索引模式 ID", "data.search.searchSource.indexPatternLabel": "索引模式", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "无法为该搜索请求找到搜索策略", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "未注册任何搜索策略", "data.search.searchSource.queryTimeDescription": "处理查询所花费的时间。不包括发送请求或在浏览器中解析它的时间。", "data.search.searchSource.queryTimeLabel": "查询时间", "data.search.searchSource.queryTimeValue": "{queryTime}ms", From 4bde4a89b793013bd513807b45dab9b43cf14807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Mon, 20 Apr 2020 14:41:44 +0100 Subject: [PATCH 04/54] [Telemetry] Use staging if it's not a distributable release (#63875) (#63955) * [Telemetry] Use staging if it's not a distributable release (instead of 'dev' vs. 'prod' approach) * Rename isProd to isDistributable and useProdKey --- src/plugins/telemetry/server/config.ts | 8 ++++---- .../server/encryption/encrypt.test.ts | 18 +++++++++--------- .../server/encryption/encrypt.ts | 11 +++++++---- .../server/plugin.ts | 10 ++++------ .../server/types.ts | 1 - .../telemetry_collection/get_all_stats.test.ts | 2 -- .../get_stats_with_xpack.test.ts | 1 - 7 files changed, 24 insertions(+), 27 deletions(-) diff --git a/src/plugins/telemetry/server/config.ts b/src/plugins/telemetry/server/config.ts index 9621a8b5619b2b..99dde0c3b3d966 100644 --- a/src/plugins/telemetry/server/config.ts +++ b/src/plugins/telemetry/server/config.ts @@ -36,8 +36,8 @@ export const configSchema = schema.object({ config: schema.string({ defaultValue: getConfigPath() }), banner: schema.boolean({ defaultValue: true }), url: schema.conditional( - schema.contextRef('dev'), - schema.literal(true), + schema.contextRef('dist'), + schema.literal(false), // Point to staging if it's not a distributable release schema.string({ defaultValue: `https://telemetry-staging.elastic.co/xpack/${ENDPOINT_VERSION}/send`, }), @@ -46,8 +46,8 @@ export const configSchema = schema.object({ }) ), optInStatusUrl: schema.conditional( - schema.contextRef('dev'), - schema.literal(true), + schema.contextRef('dist'), + schema.literal(false), // Point to staging if it's not a distributable release schema.string({ defaultValue: `https://telemetry-staging.elastic.co/opt_in_status/${ENDPOINT_VERSION}/send`, }), diff --git a/src/plugins/telemetry_collection_manager/server/encryption/encrypt.test.ts b/src/plugins/telemetry_collection_manager/server/encryption/encrypt.test.ts index c04625eb1dd427..6d64268569e06b 100644 --- a/src/plugins/telemetry_collection_manager/server/encryption/encrypt.test.ts +++ b/src/plugins/telemetry_collection_manager/server/encryption/encrypt.test.ts @@ -22,14 +22,14 @@ import { encryptTelemetry, getKID } from './encrypt'; describe('getKID', () => { it(`returns 'kibana_dev' kid for development`, async () => { - const isProd = false; - const kid = getKID(isProd); + const useProdKey = false; + const kid = getKID(useProdKey); expect(kid).toBe('kibana_dev'); }); it(`returns 'kibana_prod' kid for development`, async () => { - const isProd = true; - const kid = getKID(isProd); + const useProdKey = true; + const kid = getKID(useProdKey); expect(kid).toBe('kibana'); }); }); @@ -41,19 +41,19 @@ describe('encryptTelemetry', () => { it('encrypts payload', async () => { const payload = { some: 'value' }; - await encryptTelemetry(payload, { isProd: true }); + await encryptTelemetry(payload, { useProdKey: true }); expect(createRequestEncryptor).toBeCalledWith(telemetryJWKS); }); - it('uses kibana kid on { isProd: true }', async () => { + it('uses kibana kid on { useProdKey: true }', async () => { const payload = { some: 'value' }; - await encryptTelemetry(payload, { isProd: true }); + await encryptTelemetry(payload, { useProdKey: true }); expect(mockEncrypt).toBeCalledWith('kibana', payload); }); - it('uses kibana_dev kid on { isProd: false }', async () => { + it('uses kibana_dev kid on { useProdKey: false }', async () => { const payload = { some: 'value' }; - await encryptTelemetry(payload, { isProd: false }); + await encryptTelemetry(payload, { useProdKey: false }); expect(mockEncrypt).toBeCalledWith('kibana_dev', payload); }); }); diff --git a/src/plugins/telemetry_collection_manager/server/encryption/encrypt.ts b/src/plugins/telemetry_collection_manager/server/encryption/encrypt.ts index 44f053064cfcbd..89f34d794f0593 100644 --- a/src/plugins/telemetry_collection_manager/server/encryption/encrypt.ts +++ b/src/plugins/telemetry_collection_manager/server/encryption/encrypt.ts @@ -20,12 +20,15 @@ import { createRequestEncryptor } from '@elastic/request-crypto'; import { telemetryJWKS } from './telemetry_jwks'; -export function getKID(isProd = false): string { - return isProd ? 'kibana' : 'kibana_dev'; +export function getKID(useProdKey = false): string { + return useProdKey ? 'kibana' : 'kibana_dev'; } -export async function encryptTelemetry(payload: any, { isProd = false } = {}): Promise { - const kid = getKID(isProd); +export async function encryptTelemetry( + payload: any, + { useProdKey = false } = {} +): Promise { + const kid = getKID(useProdKey); const encryptor = await createRequestEncryptor(telemetryJWKS); const clusters = [].concat(payload); return Promise.all(clusters.map((cluster: any) => encryptor.encrypt(kid, cluster))); diff --git a/src/plugins/telemetry_collection_manager/server/plugin.ts b/src/plugins/telemetry_collection_manager/server/plugin.ts index f2f20e215c5351..0b57fae83c0fb4 100644 --- a/src/plugins/telemetry_collection_manager/server/plugin.ts +++ b/src/plugins/telemetry_collection_manager/server/plugin.ts @@ -50,12 +50,12 @@ export class TelemetryCollectionManagerPlugin private readonly collections: Array> = []; private usageGetterMethodPriority = -1; private usageCollection?: UsageCollectionSetup; - private readonly isDev: boolean; + private readonly isDistributable: boolean; private readonly version: string; constructor(initializerContext: PluginInitializerContext) { this.logger = initializerContext.logger.get(); - this.isDev = initializerContext.env.mode.dev; + this.isDistributable = initializerContext.env.packageInfo.dist; this.version = initializerContext.env.packageInfo.version; } @@ -158,7 +158,7 @@ export class TelemetryCollectionManagerPlugin if (config.unencrypted) { return optInStats; } - return encryptTelemetry(optInStats, { isProd: !this.isDev }); + return encryptTelemetry(optInStats, { useProdKey: this.isDistributable }); } } catch (err) { this.logger.debug(`Failed to collect any opt in stats with registered collections.`); @@ -176,7 +176,6 @@ export class TelemetryCollectionManagerPlugin ) => { const context: StatsCollectionContext = { logger: this.logger.get(collection.title), - isDev: this.isDev, version: this.version, ...collection.customContext, }; @@ -206,7 +205,7 @@ export class TelemetryCollectionManagerPlugin return usageData; } - return encryptTelemetry(usageData, { isProd: !this.isDev }); + return encryptTelemetry(usageData, { useProdKey: this.isDistributable }); } } catch (err) { this.logger.debug( @@ -225,7 +224,6 @@ export class TelemetryCollectionManagerPlugin ): Promise { const context: StatsCollectionContext = { logger: this.logger.get(collection.title), - isDev: this.isDev, version: this.version, ...collection.customContext, }; diff --git a/src/plugins/telemetry_collection_manager/server/types.ts b/src/plugins/telemetry_collection_manager/server/types.ts index e23d6a4c388f41..d3a47694d38a76 100644 --- a/src/plugins/telemetry_collection_manager/server/types.ts +++ b/src/plugins/telemetry_collection_manager/server/types.ts @@ -101,7 +101,6 @@ export interface ESLicense { export interface StatsCollectionContext { logger: Logger; - isDev: boolean; version: string; } diff --git a/x-pack/plugins/monitoring/server/telemetry_collection/get_all_stats.test.ts b/x-pack/plugins/monitoring/server/telemetry_collection/get_all_stats.test.ts index 1a9f2a4da32c20..f0ad6399c6c72d 100644 --- a/x-pack/plugins/monitoring/server/telemetry_collection/get_all_stats.test.ts +++ b/x-pack/plugins/monitoring/server/telemetry_collection/get_all_stats.test.ts @@ -182,7 +182,6 @@ describe('get_all_stats', () => { }, { logger: coreMock.createPluginInitializerContext().logger.get('test'), - isDev: true, version: 'version', maxBucketSize: 1, } @@ -208,7 +207,6 @@ describe('get_all_stats', () => { }, { logger: coreMock.createPluginInitializerContext().logger.get('test'), - isDev: true, version: 'version', maxBucketSize: 1, } diff --git a/x-pack/plugins/telemetry_collection_xpack/server/telemetry_collection/get_stats_with_xpack.test.ts b/x-pack/plugins/telemetry_collection_xpack/server/telemetry_collection/get_stats_with_xpack.test.ts index f2a9995098e594..5dfe3d3e99a7f3 100644 --- a/x-pack/plugins/telemetry_collection_xpack/server/telemetry_collection/get_stats_with_xpack.test.ts +++ b/x-pack/plugins/telemetry_collection_xpack/server/telemetry_collection/get_stats_with_xpack.test.ts @@ -31,7 +31,6 @@ const kibana = { const getContext = () => ({ version: '8675309-snapshot', - isDev: true, logger: coreMock.createPluginInitializerContext().logger.get('test'), }); From dfccf4f92b7cc9c833e878fc8003071175d56b56 Mon Sep 17 00:00:00 2001 From: Aleh Zasypkin Date: Mon, 20 Apr 2020 16:15:14 +0200 Subject: [PATCH 05/54] =?UTF-8?q?[7.x]=20Upgrade=20`papaparse`=20dependenc?= =?UTF-8?q?y=20(`4.6.3`=20=E2=86=92=20`5.2.0`).=20(#63957)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- x-pack/package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/x-pack/package.json b/x-pack/package.json index 1724f9633b9e28..e057889bd222fd 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -85,7 +85,7 @@ "@types/node-fetch": "^2.5.0", "@types/nodemailer": "^6.2.1", "@types/object-hash": "^1.3.0", - "@types/papaparse": "^4.5.11", + "@types/papaparse": "^5.0.3", "@types/pngjs": "^3.3.2", "@types/prop-types": "^15.5.3", "@types/proper-lockfile": "^3.0.1", @@ -291,7 +291,7 @@ "oboe": "^2.1.4", "oppsy": "^2.0.0", "p-retry": "^4.2.0", - "papaparse": "^4.6.3", + "papaparse": "^5.2.0", "pdfmake": "^0.1.63", "pluralize": "3.1.0", "pngjs": "3.4.0", diff --git a/yarn.lock b/yarn.lock index 260ba05a3d2b44..e832380ee9dfc4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4415,10 +4415,10 @@ dependencies: "@types/node" "*" -"@types/papaparse@^4.5.11": - version "4.5.11" - resolved "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-4.5.11.tgz#dcd4f64da55f768c2e2cf92ccac1973c67a73890" - integrity sha512-zOw6K7YyA/NuZ2yZ8lzZFe2U3fn+vFfcRfiQp4ZJHG6y8WYWy2SYFbq6mp4yUgpIruJHBjKZtgyE0vvCoWEq+A== +"@types/papaparse@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-5.0.3.tgz#7cedc1ebc9484819af8306a8b42f9f08ca9bdb44" + integrity sha512-SgWGWnBGxl6XgjKDM2eoDg163ZFQtH6m6C2aOuaAf1T2gUB3rjaiPDDARbY9WlacRgZqieRG9imAfJaJ+5ouDA== dependencies: "@types/node" "*" @@ -22446,10 +22446,10 @@ pako@~1.0.5: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== -papaparse@^4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-4.6.3.tgz#742e5eaaa97fa6c7e1358d2934d8f18f44aee781" - integrity sha512-LRq7BrHC2kHPBYSD50aKuw/B/dGcg29omyJbKWY3KsYUZU69RKwaBHu13jGmCYBtOc4odsLCrFyk6imfyNubJQ== +papaparse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/papaparse/-/papaparse-5.2.0.tgz#97976a1b135c46612773029153dc64995caa3b7b" + integrity sha512-ylq1wgUSnagU+MKQtNeVqrPhZuMYBvOSL00DHycFTCxownF95gpLAk1HiHdUW77N8yxRq1qHXLdlIPyBSG9NSA== parallel-transform@^1.1.0: version "1.1.0" From 1ab454c0c8f17f202ee0d1f5a9455d0aa171bbd5 Mon Sep 17 00:00:00 2001 From: kqualters-elastic <56408403+kqualters-elastic@users.noreply.github.com> Date: Mon, 20 Apr 2020 11:00:56 -0400 Subject: [PATCH 06/54] =?UTF-8?q?[7.x]=20[Endpoint]=20Update=20cli=20mappi?= =?UTF-8?q?ng=20to=20match=20endpoint=20package=E2=80=A6=20(#63895)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update cli mapping to match endpoint package --- x-pack/plugins/endpoint/scripts/alert_mapping.json | 3 ++- x-pack/plugins/endpoint/scripts/event_mapping.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/endpoint/scripts/alert_mapping.json b/x-pack/plugins/endpoint/scripts/alert_mapping.json index a21e48b4bc95fc..2e0041d0af9867 100644 --- a/x-pack/plugins/endpoint/scripts/alert_mapping.json +++ b/x-pack/plugins/endpoint/scripts/alert_mapping.json @@ -394,7 +394,8 @@ "type": "nested" }, "file_extension": { - "type": "long" + "ignore_above": 1024, + "type": "keyword" }, "project_file": { "properties": { diff --git a/x-pack/plugins/endpoint/scripts/event_mapping.json b/x-pack/plugins/endpoint/scripts/event_mapping.json index 59d1ed17852b16..f410edc7abe5ef 100644 --- a/x-pack/plugins/endpoint/scripts/event_mapping.json +++ b/x-pack/plugins/endpoint/scripts/event_mapping.json @@ -386,7 +386,8 @@ "type": "nested" }, "file_extension": { - "type": "long" + "ignore_above": 1024, + "type": "keyword" }, "project_file": { "properties": { From 486e9e1bec7040c2f34fe51305006b2a84761133 Mon Sep 17 00:00:00 2001 From: gchaps <33642766+gchaps@users.noreply.github.com> Date: Mon, 20 Apr 2020 09:56:50 -0700 Subject: [PATCH 07/54] [DOCS] Alerting PagerDuty benefits (#63652) (#63973) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [DOCS] Alerting PagerDuty benefits * [DOCS] Fixes broken link * [DOCS] Organization changes * [DOCS] Changes to meet template and incorporate review comments * [DOCS] Fixed formatting of bulleted list * [DOCS] Incorporates review comments * Update docs/user/alerting/action-types/pagerduty.asciidoc Co-Authored-By: Mike Côté * [DOCS] Fixes naming and other formatting issues Co-authored-by: Mike Côté Co-authored-by: Mike Côté --- .../alerting/action-types/pagerduty.asciidoc | 133 +++++++++++++++++- .../alerting/images/pagerduty-integration.png | Bin 0 -> 88629 bytes 2 files changed, 128 insertions(+), 5 deletions(-) create mode 100755 docs/user/alerting/images/pagerduty-integration.png diff --git a/docs/user/alerting/action-types/pagerduty.asciidoc b/docs/user/alerting/action-types/pagerduty.asciidoc index 50a1f31e4a9ae1..da34c6e0855d76 100644 --- a/docs/user/alerting/action-types/pagerduty.asciidoc +++ b/docs/user/alerting/action-types/pagerduty.asciidoc @@ -4,19 +4,142 @@ The PagerDuty action type uses the https://v2.developer.pagerduty.com/docs/events-api-v2[v2 Events API] to trigger, acknowledge, and resolve PagerDuty alerts. +* <> +* <> +* <> + +[float] +[[pagerduty-benefits]] +=== PagerDuty + Elastic integration benefits + +By integrating PagerDuty with alerts, you can: + +* Route your alerts to the right PagerDuty responder within your team, based on your structure, escalation policies, and workflows. +* Automatically generate incidents of different types and severity based on each alert’s context. +* Tailor the incident data to match your needs by easily passing the alerting context from Kibana to PagerDuty. + +[float] +[[pagerduty-how-it-works]] +==== How it works + +{kib} allows you to create alerts to notify you of a significant move +in your dataset. +You can create alerts for all your Observability, Security, and Elastic Stack use cases. +Alerts will trigger a new incident on the corresponding PagerDuty service. + +[float] +==== Requirements + +In the `kibana.yml` configuration file, you must add the <>. +This is required to encrypt parameters that must be secured, for example PagerDuty’s integration key. + +If you have security enabled: + +* You must have +application privileges to access Metrics, APM, Uptime, or SIEM. +* If you are using a self-managed deployment with security, you must have +Transport Security Layer (TLS) enabled for communication <>. +Alerts uses API keys to secure background alert checks and actions, +and API keys require {ref}/configuring-tls.html#tls-http[TLS on the HTTP interface]. + +Although not a requirement, to harden the integrations security you might want to +review the <> that are available to you. + +[float] +[[pagerduty-support]] +==== Support +If you need help with this integration, get in touch with the {kib} team by visiting +https://support.elastic.co[support.elastic.co] or by using the *Ask Elastic* option in the {kib} Help menu. +You can also select the {kib} category at https://discuss.elastic.co/[discuss.elastic.co]. + +[float] +[[pagerduty-integration-walkthrough]] +==== Integration with PagerDuty walkthrough + +[float] +[[pagerduty-in-pagerduty]] +===== In PagerDuty + +. From the *Configuration* menu, select *Services*. +. Add an integration to a service: ++ +* If you are adding your integration to an existing service, +click the name of the service you want to add the integration to. +Then, select the *Integrations* tab and click the *New Integration* button. +* If you are creating a new service for your integration, +go to +https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations[Configuring Services and Integrations] +and follow the steps outlined in the *Create a New Service* section, selecting *Elastic* as the *Integration Type* in step 4. +Continue with the <> section once you have finished these steps. + +. Enter an *Integration Name* in the format Elastic-service-name (for example, Elastic-Alerting or Kibana-APM-Alerting) +and select Elastic from the *Integration Type* menu. +. Click *Add Integration* to save your new integration. ++ +You will be redirected to the *Integrations* tab for your service. An Integration Key is generated on this screen. ++ +[role="screenshot"] +image::user/alerting/images/pagerduty-integration.png[PagerDuty Integrations tab] + +. Save this key, as you will use it when you configure the integration with Elastic in the next section. + +[float] +[[pagerduty-in-elastic]] +===== In Elastic + +. Create a PagerDuty Connector in Kibana. You can: ++ +* Create a connector as part of creating an alert by selecting PagerDuty in the *Actions* +section of the alert configuration and selecting *Add new*. +* Alternatively, create a connector by navigating to *Management* from the {kib} navbar and selecting +*Alerts and Actions*. Then, select the *Connectors* tab, click the *Create connector* button, and select the PagerDuty option. + +. Configure the connector by giving it a name and optionally entering the API URL and Routing Key, or using the defaults. ++ +See <> for how to obtain the endpoint and key information from PagerDuty and +<> for more details. + +. Save the Connector. + +. Create an alert using *Management > Alerts and Actions* or the application of your choice. + +. Set up an action using your PagerDuty connector, by determining: ++ +* The action’s type: Trigger, Resolve, or Acknowledge. +* The event’s severity: Info, warning, error, or critical. +* An array of different fields, including the timestamp, group, class, component, and your dedup key. +Depending on your custom needs, assign them variables from the alerting context. +To see the available context variables, click on the *Add alert variable* icon next +to each corresponding field. For more details on these parameters, see the +<> and the PagerDuty +https://v2.developer.pagerduty.com/v2/docs/send-an-event-events-api-v2[API v2 documentation]. + + +[float] +[[pagerduty-uninstall]] +==== How to uninstall +To remove a PagerDuty connector from an alert, simply remove it +from the *Actions* section of that alert, using the remove (x) icon. +This will disable the integration for the particular alert. + +To delete the connector entirely, go to *Management > Alerts and Actions*. +Select the *Connectors* tab, and then click on the delete icon. +This is an irreversible action and impacts all alerts that use this connector. + + [float] [[pagerduty-connector-configuration]] -==== Connector configuration +=== Connector configuration PagerDuty connectors have the following configuration properties: Name:: The name of the connector. The name is used to identify a connector in the management UI connector listing, or in the connector list when configuring an action. -API URL:: An optional PagerDuty event URL. Defaults to `https://events.pagerduty.com/v2/enqueue`. If you are using the <> setting, make sure the hostname is whitelisted. +API URL:: An optional PagerDuty event URL. Defaults to `https://events.pagerduty.com/v2/enqueue`. If you are using the <> setting, make sure the hostname is whitelisted. Routing Key:: A 32 character PagerDuty Integration Key for an integration on a service or on a global ruleset. [float] [[pagerduty-action-configuration]] -==== Action configuration +=== Action configuration PagerDuty actions have the following properties: @@ -26,8 +149,8 @@ Dedup Key:: All actions sharing this key will be associated with the same Pa Timestamp:: An *optional* https://v2.developer.pagerduty.com/v2/docs/types#datetime[ISO-8601 format date-time], indicating the time the event was detected or generated. Component:: An *optional* value indicating the component of the source machine that is responsible for the event, for example `mysql` or `eth0`. Group:: An *optional* value indicating the logical grouping of components of a service, for example `app-stack`. -Source:: An *optional* value indicating the affected system, preferably a hostname or fully qualified domain name. Defaults to the {kib} saved object id of the action. +Source:: An *optional* value indicating the affected system, preferably a hostname or fully qualified domain name. Defaults to the {kib} saved object id of the action. Summary:: An *optional* text summary of the event, defaults to `No summary provided`. The maximum length is 1024 characters. Class:: An *optional* value indicating the class/type of the event, for example `ping failure` or `cpu load`. -For more details on these properties, see https://v2.developer.pagerduty.com/v2/docs/send-an-event-events-api-v2[PagerDuty v2 event parameters]. \ No newline at end of file +For more details on these properties, see https://v2.developer.pagerduty.com/v2/docs/send-an-event-events-api-v2[PagerDuty v2 event parameters]. diff --git a/docs/user/alerting/images/pagerduty-integration.png b/docs/user/alerting/images/pagerduty-integration.png new file mode 100755 index 0000000000000000000000000000000000000000..0a270de866b36e6d602ecc06d07bc0c3780d9e9e GIT binary patch literal 88629 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 b`hZ;$PZ5QcGLilW^-_>gep@1C{N?`uD)C+% literal 0 HcmV?d00001 From 5498a2302f0c3479db2da1ac634a75fdeab9fe15 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 20 Apr 2020 10:05:25 -0700 Subject: [PATCH 08/54] Revert "[7.x] [SEARCH] Cleanup fetch soon (#63320) (#63929)" This reverts commit 6ee7111ca5f9e6f0c0d7d422ce94145275263c73. --- .../kibana-plugin-plugins-data-public.md | 1 + ...s-data-public.searchstrategyprovider.id.md | 11 +++ ...-public.searchstrategyprovider.isviable.md | 11 +++ ...gins-data-public.searchstrategyprovider.md | 20 ++++++ ...ta-public.searchstrategyprovider.search.md | 11 +++ .../lib/get_indices.test.ts | 2 +- src/plugins/data/public/index.ts | 1 + src/plugins/data/public/public.api.md | 45 ++++++++---- .../aggs/test_helpers/mock_data_services.ts | 11 +-- .../{legacy => }/es_client/get_es_client.ts | 0 .../search/{legacy => }/es_client/index.ts | 2 +- .../search/{legacy => }/es_client/types.ts | 3 +- .../{legacy => fetch}/call_client.test.ts | 11 ++- .../search/{legacy => fetch}/call_client.ts | 7 +- .../fetch/{request_error.ts => errors.ts} | 0 .../{legacy => fetch}/fetch_soon.test.ts | 6 +- .../search/{legacy => fetch}/fetch_soon.ts | 4 +- .../search/fetch/get_search_params.test.ts | 70 ------------------- src/plugins/data/public/search/fetch/index.ts | 13 +--- src/plugins/data/public/search/fetch/types.ts | 3 - src/plugins/data/public/search/index.ts | 12 ++-- .../search/legacy/get_msearch_params.ts | 29 -------- .../data/public/search/search_service.ts | 6 +- .../search_source/search_source.test.ts | 55 +-------------- .../search/search_source/search_source.ts | 53 ++++---------- .../default_search_strategy.test.ts | 24 ++++++- .../default_search_strategy.ts | 38 ++++++++-- .../get_search_params.test.ts} | 45 +++++++++++- .../get_search_params.ts | 14 +++- .../{legacy => search_strategy}/index.ts | 7 +- .../search_strategy/no_op_search_strategy.ts | 55 +++++++++++++++ .../search_error.ts | 0 .../{legacy => search_strategy}/types.ts | 13 ++-- src/plugins/data/public/search/types.ts | 11 ++- .../translations/translations/ja-JP.json | 2 + .../translations/translations/zh-CN.json | 2 + 36 files changed, 322 insertions(+), 276 deletions(-) create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md rename src/plugins/data/public/search/{legacy => }/es_client/get_es_client.ts (100%) rename src/plugins/data/public/search/{legacy => }/es_client/index.ts (91%) rename src/plugins/data/public/search/{legacy => }/es_client/types.ts (94%) rename src/plugins/data/public/search/{legacy => fetch}/call_client.test.ts (91%) rename src/plugins/data/public/search/{legacy => fetch}/call_client.ts (89%) rename src/plugins/data/public/search/fetch/{request_error.ts => errors.ts} (100%) rename src/plugins/data/public/search/{legacy => fetch}/fetch_soon.test.ts (96%) rename src/plugins/data/public/search/{legacy => fetch}/fetch_soon.ts (95%) delete mode 100644 src/plugins/data/public/search/fetch/get_search_params.test.ts delete mode 100644 src/plugins/data/public/search/legacy/get_msearch_params.ts rename src/plugins/data/public/search/{legacy => search_strategy}/default_search_strategy.test.ts (83%) rename src/plugins/data/public/search/{legacy => search_strategy}/default_search_strategy.ts (64%) rename src/plugins/data/public/search/{legacy/get_msearch_params.test.ts => search_strategy/get_search_params.test.ts} (60%) rename src/plugins/data/public/search/{fetch => search_strategy}/get_search_params.ts (81%) rename src/plugins/data/public/search/{legacy => search_strategy}/index.ts (78%) create mode 100644 src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts rename src/plugins/data/public/search/{fetch => search_strategy}/search_error.ts (100%) rename src/plugins/data/public/search/{legacy => search_strategy}/types.ts (89%) diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md index bf29c883e4eb96..fc0dab94a0f656 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md @@ -88,6 +88,7 @@ | [SavedQuery](./kibana-plugin-plugins-data-public.savedquery.md) | | | [SavedQueryService](./kibana-plugin-plugins-data-public.savedqueryservice.md) | | | [SearchSourceFields](./kibana-plugin-plugins-data-public.searchsourcefields.md) | | +| [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) | | | [TabbedAggColumn](./kibana-plugin-plugins-data-public.tabbedaggcolumn.md) | \* | | [TabbedTable](./kibana-plugin-plugins-data-public.tabbedtable.md) | \* | | [TimeRange](./kibana-plugin-plugins-data-public.timerange.md) | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md new file mode 100644 index 00000000000000..d60ffba6a05ca8 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) + +## SearchStrategyProvider.id property + +Signature: + +```typescript +id: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md new file mode 100644 index 00000000000000..aa8ed49051ee9a --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) + +## SearchStrategyProvider.isViable property + +Signature: + +```typescript +isViable: (indexPattern: IndexPattern) => boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md new file mode 100644 index 00000000000000..b271a921906a71 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) + +## SearchStrategyProvider interface + +Signature: + +```typescript +export interface SearchStrategyProvider +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) | string | | +| [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) | (indexPattern: IndexPattern) => boolean | | +| [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) | (params: SearchStrategySearchParams) => SearchStrategyResponse | | + diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md new file mode 100644 index 00000000000000..6e2561c3b0ad00 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) + +## SearchStrategyProvider.search property + +Signature: + +```typescript +search: (params: SearchStrategySearchParams) => SearchStrategyResponse; +``` diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts index b1500f8303b666..40583af7177fee 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts @@ -20,7 +20,7 @@ import { getIndices } from './get_indices'; import { IndexPatternCreationConfig } from '../../../../../../../../../plugins/index_pattern_management/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search/legacy'; +import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search'; export const successfulResponse = { hits: { diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index b62b728beca35f..06a46065baa847 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -363,6 +363,7 @@ export { SearchRequest, SearchResponse, SearchError, + SearchStrategyProvider, ISearchSource, SearchSource, createSearchSource, diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 78659720fe09a7..7d902c88616c51 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -1736,6 +1736,21 @@ export interface SearchSourceFields { version?: boolean; } +// Warning: (ae-missing-release-tag) "SearchStrategyProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface SearchStrategyProvider { + // (undocumented) + id: string; + // (undocumented) + isViable: (indexPattern: IndexPattern) => boolean; + // Warning: (ae-forgotten-export) The symbol "SearchStrategySearchParams" needs to be exported by the entry point index.d.ts + // Warning: (ae-forgotten-export) The symbol "SearchStrategyResponse" needs to be exported by the entry point index.d.ts + // + // (undocumented) + search: (params: SearchStrategySearchParams) => SearchStrategyResponse; +} + // Warning: (ae-missing-release-tag) "SortDirection" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1886,21 +1901,21 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:404:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts index e807e084c683a2..d1d591771743c7 100644 --- a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts +++ b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts @@ -18,8 +18,8 @@ */ // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { coreMock } from '../../../../../../core/public/mocks'; -import { dataPluginMock } from '../../../mocks'; +import { coreMock } from '../../../../../../../src/core/public/mocks'; +import { dataPluginMock } from '../../../../public/mocks'; import { setFieldFormats, setIndexPatterns, @@ -29,7 +29,7 @@ import { setQueryService, setSearchService, setUiSettings, -} from '../../../services'; +} from '../../../../public/services'; /** * Testing helper which calls all of the service setters used in the @@ -49,9 +49,4 @@ export function mockDataServices() { setQueryService(data.query); setSearchService(data.search); setUiSettings(core.uiSettings); - - return { - core, - data, - }; } diff --git a/src/plugins/data/public/search/legacy/es_client/get_es_client.ts b/src/plugins/data/public/search/es_client/get_es_client.ts similarity index 100% rename from src/plugins/data/public/search/legacy/es_client/get_es_client.ts rename to src/plugins/data/public/search/es_client/get_es_client.ts diff --git a/src/plugins/data/public/search/legacy/es_client/index.ts b/src/plugins/data/public/search/es_client/index.ts similarity index 91% rename from src/plugins/data/public/search/legacy/es_client/index.ts rename to src/plugins/data/public/search/es_client/index.ts index 78ac83af642d83..b1e0ce31168242 100644 --- a/src/plugins/data/public/search/legacy/es_client/index.ts +++ b/src/plugins/data/public/search/es_client/index.ts @@ -18,4 +18,4 @@ */ export { getEsClient } from './get_es_client'; -export { LegacyApiCaller } from './types'; +export { SearchRequest, SearchResponse, LegacyApiCaller } from './types'; diff --git a/src/plugins/data/public/search/legacy/es_client/types.ts b/src/plugins/data/public/search/es_client/types.ts similarity index 94% rename from src/plugins/data/public/search/legacy/es_client/types.ts rename to src/plugins/data/public/search/es_client/types.ts index 7a56b9b0cb00a8..3ca0513a14238d 100644 --- a/src/plugins/data/public/search/legacy/es_client/types.ts +++ b/src/plugins/data/public/search/es_client/types.ts @@ -17,7 +17,8 @@ * under the License. */ -import { SearchRequest, SearchResponse } from '../../fetch'; +export type SearchRequest = any; +export type SearchResponse = any; export interface LegacyApiCaller { search: (searchRequest: SearchRequest) => LegacyApiCallerResponse; diff --git a/src/plugins/data/public/search/legacy/call_client.test.ts b/src/plugins/data/public/search/fetch/call_client.test.ts similarity index 91% rename from src/plugins/data/public/search/legacy/call_client.test.ts rename to src/plugins/data/public/search/fetch/call_client.test.ts index f919187d46784d..7a99b7c064515b 100644 --- a/src/plugins/data/public/search/legacy/call_client.test.ts +++ b/src/plugins/data/public/search/fetch/call_client.test.ts @@ -18,17 +18,16 @@ */ import { callClient } from './call_client'; -import { SearchStrategySearchParams } from './types'; -import { defaultSearchStrategy } from './default_search_strategy'; -import { FetchHandlers } from '../fetch'; -import { handleResponse } from '../fetch/handle_response'; +import { handleResponse } from './handle_response'; +import { FetchHandlers } from './types'; +import { SearchStrategySearchParams, defaultSearchStrategy } from '../search_strategy'; const mockAbortFn = jest.fn(); -jest.mock('../fetch/handle_response', () => ({ +jest.mock('./handle_response', () => ({ handleResponse: jest.fn((request, response) => response), })); -jest.mock('./default_search_strategy', () => { +jest.mock('../search_strategy', () => { return { defaultSearchStrategy: { search: jest.fn(({ searchRequests }: SearchStrategySearchParams) => { diff --git a/src/plugins/data/public/search/legacy/call_client.ts b/src/plugins/data/public/search/fetch/call_client.ts similarity index 89% rename from src/plugins/data/public/search/legacy/call_client.ts rename to src/plugins/data/public/search/fetch/call_client.ts index c484c46aa4879f..b3c4c682fa60c0 100644 --- a/src/plugins/data/public/search/legacy/call_client.ts +++ b/src/plugins/data/public/search/fetch/call_client.ts @@ -17,9 +17,10 @@ * under the License. */ -import { FetchOptions, FetchHandlers, handleResponse } from '../fetch'; -import { defaultSearchStrategy } from './default_search_strategy'; -import { SearchRequest } from '../index'; +import { handleResponse } from './handle_response'; +import { FetchOptions, FetchHandlers } from './types'; +import { defaultSearchStrategy } from '../search_strategy'; +import { SearchRequest } from '..'; export function callClient( searchRequests: SearchRequest[], diff --git a/src/plugins/data/public/search/fetch/request_error.ts b/src/plugins/data/public/search/fetch/errors.ts similarity index 100% rename from src/plugins/data/public/search/fetch/request_error.ts rename to src/plugins/data/public/search/fetch/errors.ts diff --git a/src/plugins/data/public/search/legacy/fetch_soon.test.ts b/src/plugins/data/public/search/fetch/fetch_soon.test.ts similarity index 96% rename from src/plugins/data/public/search/legacy/fetch_soon.test.ts rename to src/plugins/data/public/search/fetch/fetch_soon.test.ts index b2e17798ccc9fa..a8d593c8501f68 100644 --- a/src/plugins/data/public/search/legacy/fetch_soon.test.ts +++ b/src/plugins/data/public/search/fetch/fetch_soon.test.ts @@ -19,9 +19,9 @@ import { fetchSoon } from './fetch_soon'; import { callClient } from './call_client'; -import { IUiSettingsClient } from 'kibana/public'; -import { FetchHandlers, FetchOptions } from '../fetch/types'; -import { SearchRequest, SearchResponse } from '../index'; +import { IUiSettingsClient } from '../../../../../core/public'; +import { FetchHandlers, FetchOptions } from './types'; +import { SearchRequest, SearchResponse } from '..'; function getConfigStub(config: any = {}) { return { diff --git a/src/plugins/data/public/search/legacy/fetch_soon.ts b/src/plugins/data/public/search/fetch/fetch_soon.ts similarity index 95% rename from src/plugins/data/public/search/legacy/fetch_soon.ts rename to src/plugins/data/public/search/fetch/fetch_soon.ts index 18fa410a5bef03..b1405747426ee9 100644 --- a/src/plugins/data/public/search/legacy/fetch_soon.ts +++ b/src/plugins/data/public/search/fetch/fetch_soon.ts @@ -18,8 +18,8 @@ */ import { callClient } from './call_client'; -import { FetchHandlers, FetchOptions } from '../fetch/types'; -import { SearchRequest, SearchResponse } from '../index'; +import { FetchHandlers, FetchOptions } from './types'; +import { SearchRequest, SearchResponse } from '..'; /** * This function introduces a slight delay in the request process to allow multiple requests to queue diff --git a/src/plugins/data/public/search/fetch/get_search_params.test.ts b/src/plugins/data/public/search/fetch/get_search_params.test.ts deleted file mode 100644 index edf18405e8ff71..00000000000000 --- a/src/plugins/data/public/search/fetch/get_search_params.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { getSearchParams } from './get_search_params'; -import { IUiSettingsClient } from 'kibana/public'; - -function getConfigStub(config: any = {}) { - return { - get: key => config[key], - } as IUiSettingsClient; -} - -describe('getSearchParams', () => { - test('includes rest_total_hits_as_int', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.rest_total_hits_as_int).toBe(true); - }); - - test('includes ignore_unavailable', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.ignore_unavailable).toBe(true); - }); - - test('includes ignore_throttled according to search:includeFrozen', () => { - let config = getConfigStub({ 'search:includeFrozen': true }); - let searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(false); - - config = getConfigStub({ 'search:includeFrozen': false }); - searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(true); - }); - - test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { - let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); - let searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(undefined); - - config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); - searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(5); - }); - - test('includes timeout according to esShardTimeout if greater than 0', () => { - const config = getConfigStub(); - let searchParams = getSearchParams(config, 0); - expect(searchParams.timeout).toBe(undefined); - - searchParams = getSearchParams(config, 100); - expect(searchParams.timeout).toBe('100ms'); - }); -}); diff --git a/src/plugins/data/public/search/fetch/index.ts b/src/plugins/data/public/search/fetch/index.ts index 39845ec31bfaaa..8a80b716add321 100644 --- a/src/plugins/data/public/search/fetch/index.ts +++ b/src/plugins/data/public/search/fetch/index.ts @@ -18,14 +18,5 @@ */ export * from './types'; -export { - getSearchParams, - getPreference, - getTimeout, - getIgnoreThrottled, - getMaxConcurrentShardRequests, -} from './get_search_params'; - -export { SearchError, getSearchErrorType } from './search_error'; -export { RequestFailure } from './request_error'; -export { handleResponse } from './handle_response'; +export { fetchSoon } from './fetch_soon'; +export { RequestFailure } from './errors'; diff --git a/src/plugins/data/public/search/fetch/types.ts b/src/plugins/data/public/search/fetch/types.ts index 475b2abbc019f4..e8de0576b8a72f 100644 --- a/src/plugins/data/public/search/fetch/types.ts +++ b/src/plugins/data/public/search/fetch/types.ts @@ -20,9 +20,6 @@ import { IUiSettingsClient } from '../../../../../core/public'; import { ISearchStart } from '../types'; -export type SearchRequest = any; -export type SearchResponse = any; - export interface FetchOptions { abortSignal?: AbortSignal; searchStrategyId?: string; diff --git a/src/plugins/data/public/search/index.ts b/src/plugins/data/public/search/index.ts index 75c0eb8b6f0229..cce973d632f417 100644 --- a/src/plugins/data/public/search/index.ts +++ b/src/plugins/data/public/search/index.ts @@ -44,13 +44,9 @@ export { esSearchStrategyProvider, getEsPreference } from './es_search'; export { IKibanaSearchResponse, IKibanaSearchRequest } from '../../common/search'; -export { - SearchError, - FetchOptions, - SearchRequest, - SearchResponse, - getSearchErrorType, -} from './fetch'; +export { LegacyApiCaller, SearchRequest, SearchResponse } from './es_client'; + +export { SearchError, SearchStrategyProvider, getSearchErrorType } from './search_strategy'; export { ISearchSource, @@ -63,3 +59,5 @@ export { export { SearchInterceptor } from './search_interceptor'; export { RequestTimeoutError } from './request_timeout_error'; + +export { FetchOptions } from './fetch'; diff --git a/src/plugins/data/public/search/legacy/get_msearch_params.ts b/src/plugins/data/public/search/legacy/get_msearch_params.ts deleted file mode 100644 index 48d13903c972fe..00000000000000 --- a/src/plugins/data/public/search/legacy/get_msearch_params.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { IUiSettingsClient } from 'kibana/public'; -import { getIgnoreThrottled, getMaxConcurrentShardRequests } from '../fetch'; - -export function getMSearchParams(config: IUiSettingsClient) { - return { - rest_total_hits_as_int: true, - ignore_throttled: getIgnoreThrottled(config), - max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), - }; -} diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index 916278a96659b4..a539736991adb4 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -22,12 +22,12 @@ import { Plugin, CoreSetup, CoreStart, PackageInfo } from '../../../../core/publ import { SYNC_SEARCH_STRATEGY, syncSearchStrategyProvider } from './sync_search_strategy'; import { ISearchSetup, ISearchStart, TSearchStrategyProvider, TSearchStrategiesMap } from './types'; import { TStrategyTypes } from './strategy_types'; -import { getEsClient, LegacyApiCaller } from './legacy'; +import { getEsClient, LegacyApiCaller } from './es_client'; import { ES_SEARCH_STRATEGY, DEFAULT_SEARCH_STRATEGY } from '../../common/search'; -import { esSearchStrategyProvider } from './es_search'; +import { esSearchStrategyProvider } from './es_search/es_search_strategy'; import { IndexPatternsContract } from '../index_patterns/index_patterns'; import { createSearchSource } from './search_source'; -import { QuerySetup } from '../query'; +import { QuerySetup } from '../query/query_service'; import { GetInternalStartServicesFn } from '../types'; import { SearchInterceptor } from './search_interceptor'; import { diff --git a/src/plugins/data/public/search/search_source/search_source.test.ts b/src/plugins/data/public/search/search_source/search_source.test.ts index 6e878844664ad2..6bad093d31402b 100644 --- a/src/plugins/data/public/search/search_source/search_source.test.ts +++ b/src/plugins/data/public/search/search_source/search_source.test.ts @@ -20,26 +20,8 @@ import { SearchSource } from './search_source'; import { IndexPattern, SortDirection } from '../..'; import { mockDataServices } from '../aggs/test_helpers'; -import { setSearchService } from '../../services'; -import { searchStartMock } from '../mocks'; -import { fetchSoon } from '../legacy'; -import { CoreStart } from 'kibana/public'; -import { Observable } from 'rxjs'; -// Setup search service mock -searchStartMock.search = jest.fn(() => { - return new Observable(subscriber => { - setTimeout(() => { - subscriber.next({ - rawResponse: '', - }); - subscriber.complete(); - }, 100); - }); -}) as any; -setSearchService(searchStartMock); - -jest.mock('../legacy', () => ({ +jest.mock('../fetch', () => ({ fetchSoon: jest.fn().mockResolvedValue({}), })); @@ -62,11 +44,8 @@ const indexPattern2 = ({ } as unknown) as IndexPattern; describe('SearchSource', function() { - let uiSettingsMock: jest.Mocked; beforeEach(() => { - const { core } = mockDataServices(); - uiSettingsMock = core.uiSettings; - jest.clearAllMocks(); + mockDataServices(); }); describe('#setField()', function() { @@ -172,36 +151,6 @@ describe('SearchSource', function() { }); }); - describe('#legacy fetch()', () => { - beforeEach(() => { - uiSettingsMock.get.mockImplementation(() => { - return true; // batchSearches = true - }); - }); - - afterEach(() => { - uiSettingsMock.get.mockImplementation(() => { - return false; // batchSearches = false - }); - }); - - it('should call msearch', async () => { - const searchSource = new SearchSource({ index: indexPattern }); - const options = {}; - await searchSource.fetch(options); - expect(fetchSoon).toBeCalledTimes(1); - }); - }); - - describe('#search service fetch()', () => { - it('should call msearch', async () => { - const searchSource = new SearchSource({ index: indexPattern }); - const options = {}; - await searchSource.fetch(options); - expect(searchStartMock.search).toBeCalledTimes(1); - }); - }); - describe('#serialize', function() { it('should reference index patterns', () => { const indexPattern123 = { id: '123' } as IndexPattern; diff --git a/src/plugins/data/public/search/search_source/search_source.ts b/src/plugins/data/public/search/search_source/search_source.ts index 9d2bb889953cf2..c70db7bb82ef7f 100644 --- a/src/plugins/data/public/search/search_source/search_source.ts +++ b/src/plugins/data/public/search/search_source/search_source.ts @@ -70,19 +70,17 @@ */ import _ from 'lodash'; -import { map } from 'rxjs/operators'; import { SavedObjectReference } from 'kibana/public'; import { normalizeSortRequest } from './normalize_sort_request'; import { filterDocvalueFields } from './filter_docvalue_fields'; import { fieldWildcardFilter } from '../../../../kibana_utils/public'; import { IIndexPattern, SearchRequest } from '../..'; import { SearchSourceOptions, SearchSourceFields } from './types'; -import { FetchOptions, RequestFailure, getSearchParams, handleResponse } from '../fetch'; +import { fetchSoon, FetchOptions, RequestFailure } from '../fetch'; import { getSearchService, getUiSettings, getInjectedMetadata } from '../../services'; import { getEsQueryConfig, buildEsQuery, Filter } from '../../../common'; import { getHighlightRequest } from '../../../common/field_formats'; -import { fetchSoon } from '../legacy'; export type ISearchSource = Pick; @@ -187,29 +185,18 @@ export class SearchSource { } /** - * Run a search using the search service - * @return {Observable>} + * Fetch this source and reject the returned Promise on error + * + * @async */ - private fetch$(searchRequest: SearchRequest, signal?: AbortSignal) { - const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; - const searchParams = getSearchParams(getUiSettings(), esShardTimeout); - const params = { - index: searchRequest.index.title || searchRequest.index, - body: searchRequest.body, - ...searchParams, - }; - return getSearchService() - .search({ params, indexType: searchRequest.indexType }, { signal }) - .pipe(map(({ rawResponse }) => handleResponse(searchRequest, rawResponse))); - } + async fetch(options: FetchOptions = {}) { + await this.requestIsStarting(options); + + const searchRequest = await this.flatten(); + this.history = [searchRequest]; - /** - * Run a search using the search service - * @return {Promise>} - */ - private async legacyFetch(searchRequest: SearchRequest, options: FetchOptions) { const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; - return await fetchSoon( + const response = await fetchSoon( searchRequest, { ...(this.searchStrategyId && { searchStrategyId: this.searchStrategyId }), @@ -221,24 +208,6 @@ export class SearchSource { esShardTimeout, } ); - } - /** - * Fetch this source and reject the returned Promise on error - * - * @async - */ - async fetch(options: FetchOptions = {}) { - await this.requestIsStarting(options); - - const searchRequest = await this.flatten(); - this.history = [searchRequest]; - - let response; - if (getUiSettings().get('courier:batchSearches')) { - response = await this.legacyFetch(searchRequest, options); - } else { - response = this.fetch$(searchRequest, options.abortSignal).toPromise(); - } if (response.error) { throw new RequestFailure(null, response); @@ -277,6 +246,7 @@ export class SearchSource { /** * Called by requests of this search source when they are started + * @param {Courier.Request} request * @param options * @return {Promise} */ @@ -460,6 +430,7 @@ export class SearchSource { * and `kibanaSavedObjectMeta.searchSourceJSON.filter[].meta.index`. * * Using `createSearchSource`, the instance can be re-created. + * @param searchSource The search source to serialize * @public */ public serialize() { const references: SavedObjectReference[] = []; diff --git a/src/plugins/data/public/search/legacy/default_search_strategy.test.ts b/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts similarity index 83% rename from src/plugins/data/public/search/legacy/default_search_strategy.test.ts rename to src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts index 835b02b3cd5c74..210a0e5fd1ac78 100644 --- a/src/plugins/data/public/search/legacy/default_search_strategy.test.ts +++ b/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts @@ -17,10 +17,10 @@ * under the License. */ -import { IUiSettingsClient } from 'kibana/public'; +import { IUiSettingsClient } from '../../../../../core/public'; +import { SearchStrategySearchParams } from './types'; import { defaultSearchStrategy } from './default_search_strategy'; import { searchStartMock } from '../mocks'; -import { SearchStrategySearchParams } from './types'; const { search } = defaultSearchStrategy; @@ -38,6 +38,12 @@ const searchMockResponse: any = Promise.resolve([]); searchMockResponse.abort = jest.fn(); const searchMock = jest.fn().mockReturnValue(searchMockResponse); +const newSearchMockResponse: any = Promise.resolve([]); +newSearchMockResponse.abort = jest.fn(); +const newSearchMock = jest.fn().mockReturnValue({ + toPromise: () => searchMockResponse, +}); + describe('defaultSearchStrategy', function() { describe('search', function() { let searchArgs: MockedKeys>; @@ -52,6 +58,7 @@ describe('defaultSearchStrategy', function() { const searchService = searchStartMock; searchService.aggs.calculateAutoTimeExpression = jest.fn().mockReturnValue('1d'); + searchService.search = newSearchMock; searchService.__LEGACY.esClient.search = searchMock; searchService.__LEGACY.esClient.msearch = msearchMock; @@ -105,5 +112,18 @@ describe('defaultSearchStrategy', function() { search({ ...searchArgs, config }).abort(); expect(msearchMockResponse.abort).toHaveBeenCalled(); }); + + test('should call new search service', () => { + const config = getConfigStub(); + search({ ...searchArgs, config }); + expect(newSearchMock).toHaveBeenCalledTimes(1); + }); + + test('should properly abort with new search service', async () => { + const abortSpy = jest.spyOn(AbortController.prototype, 'abort'); + const config = getConfigStub({}); + search({ ...searchArgs, config }).abort(); + expect(abortSpy).toHaveBeenCalled(); + }); }); }); diff --git a/src/plugins/data/public/search/legacy/default_search_strategy.ts b/src/plugins/data/public/search/search_strategy/default_search_strategy.ts similarity index 64% rename from src/plugins/data/public/search/legacy/default_search_strategy.ts rename to src/plugins/data/public/search/search_strategy/default_search_strategy.ts index 1552410f9090ca..2bd88f51587a8a 100644 --- a/src/plugins/data/public/search/legacy/default_search_strategy.ts +++ b/src/plugins/data/public/search/search_strategy/default_search_strategy.ts @@ -17,19 +17,23 @@ * under the License. */ -import { getPreference, getTimeout } from '../fetch'; -import { getMSearchParams } from './get_msearch_params'; import { SearchStrategyProvider, SearchStrategySearchParams } from './types'; +import { isDefault } from '../../index_patterns'; +import { getSearchParams, getMSearchParams, getPreference, getTimeout } from './get_search_params'; -// @deprecated export const defaultSearchStrategy: SearchStrategyProvider = { id: 'default', search: params => { - return msearch(params); + return params.config.get('courier:batchSearches') ? msearch(params) : search(params); + }, + + isViable: indexPattern => { + return indexPattern && isDefault(indexPattern); }, }; +// @deprecated function msearch({ searchRequests, searchService, @@ -61,3 +65,29 @@ function msearch({ abort: searching.abort, }; } + +function search({ + searchRequests, + searchService, + config, + esShardTimeout, +}: SearchStrategySearchParams) { + const abortController = new AbortController(); + const searchParams = getSearchParams(config, esShardTimeout); + const promises = searchRequests.map(({ index, indexType, body }) => { + const params = { + index: index.title || index, + body, + ...searchParams, + }; + const { signal } = abortController; + return searchService + .search({ params, indexType }, { signal }) + .toPromise() + .then(({ rawResponse }) => rawResponse); + }); + return { + searching: Promise.all(promises), + abort: () => abortController.abort(), + }; +} diff --git a/src/plugins/data/public/search/legacy/get_msearch_params.test.ts b/src/plugins/data/public/search/search_strategy/get_search_params.test.ts similarity index 60% rename from src/plugins/data/public/search/legacy/get_msearch_params.test.ts rename to src/plugins/data/public/search/search_strategy/get_search_params.test.ts index 9f16d5b408178d..76f3105d7f942e 100644 --- a/src/plugins/data/public/search/legacy/get_msearch_params.test.ts +++ b/src/plugins/data/public/search/search_strategy/get_search_params.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { getMSearchParams } from './get_msearch_params'; +import { getMSearchParams, getSearchParams } from './get_search_params'; import { IUiSettingsClient } from '../../../../../core/public'; function getConfigStub(config: any = {}) { @@ -64,3 +64,46 @@ describe('getMSearchParams', () => { expect(msearchParams.hasOwnProperty('timeout')).toBe(false); }); }); + +describe('getSearchParams', () => { + test('includes rest_total_hits_as_int', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.rest_total_hits_as_int).toBe(true); + }); + + test('includes ignore_unavailable', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.ignore_unavailable).toBe(true); + }); + + test('includes ignore_throttled according to search:includeFrozen', () => { + let config = getConfigStub({ 'search:includeFrozen': true }); + let searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(false); + + config = getConfigStub({ 'search:includeFrozen': false }); + searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(true); + }); + + test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { + let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); + let searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(undefined); + + config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); + searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(5); + }); + + test('includes timeout according to esShardTimeout if greater than 0', () => { + const config = getConfigStub(); + let searchParams = getSearchParams(config, 0); + expect(searchParams.timeout).toBe(undefined); + + searchParams = getSearchParams(config, 100); + expect(searchParams.timeout).toBe('100ms'); + }); +}); diff --git a/src/plugins/data/public/search/fetch/get_search_params.ts b/src/plugins/data/public/search/search_strategy/get_search_params.ts similarity index 81% rename from src/plugins/data/public/search/fetch/get_search_params.ts rename to src/plugins/data/public/search/search_strategy/get_search_params.ts index f0c43bd2e74cd1..9fb8f2c728c6f0 100644 --- a/src/plugins/data/public/search/fetch/get_search_params.ts +++ b/src/plugins/data/public/search/search_strategy/get_search_params.ts @@ -17,10 +17,18 @@ * under the License. */ -import { IUiSettingsClient } from 'kibana/public'; +import { IUiSettingsClient } from '../../../../../core/public'; const sessionId = Date.now(); +export function getMSearchParams(config: IUiSettingsClient) { + return { + rest_total_hits_as_int: true, + ignore_throttled: getIgnoreThrottled(config), + max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), + }; +} + export function getSearchParams(config: IUiSettingsClient, esShardTimeout: number = 0) { return { rest_total_hits_as_int: true, @@ -32,11 +40,11 @@ export function getSearchParams(config: IUiSettingsClient, esShardTimeout: numbe }; } -export function getIgnoreThrottled(config: IUiSettingsClient) { +function getIgnoreThrottled(config: IUiSettingsClient) { return !config.get('search:includeFrozen'); } -export function getMaxConcurrentShardRequests(config: IUiSettingsClient) { +function getMaxConcurrentShardRequests(config: IUiSettingsClient) { const maxConcurrentShardRequests = config.get('courier:maxConcurrentShardRequests'); return maxConcurrentShardRequests > 0 ? maxConcurrentShardRequests : undefined; } diff --git a/src/plugins/data/public/search/legacy/index.ts b/src/plugins/data/public/search/search_strategy/index.ts similarity index 78% rename from src/plugins/data/public/search/legacy/index.ts rename to src/plugins/data/public/search/search_strategy/index.ts index e2ae72824f3f49..e3de2ea46e3eca 100644 --- a/src/plugins/data/public/search/legacy/index.ts +++ b/src/plugins/data/public/search/search_strategy/index.ts @@ -17,5 +17,8 @@ * under the License. */ -export { fetchSoon } from './fetch_soon'; -export { getEsClient, LegacyApiCaller } from './es_client'; +export { SearchError, getSearchErrorType } from './search_error'; + +export { SearchStrategyProvider, SearchStrategySearchParams } from './types'; + +export { defaultSearchStrategy } from './default_search_strategy'; diff --git a/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts b/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts new file mode 100644 index 00000000000000..dc7331e614a0e4 --- /dev/null +++ b/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts @@ -0,0 +1,55 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { i18n } from '@kbn/i18n'; +import { SearchError } from './search_error'; +import { SearchStrategyProvider } from './types'; + +export const noOpSearchStrategy: SearchStrategyProvider = { + id: 'noOp', + + search: () => { + const searchError = new SearchError({ + status: '418', // "I'm a teapot" error + title: i18n.translate( + 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle', + { + defaultMessage: 'No search strategy registered', + } + ), + message: i18n.translate( + 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription', + { + defaultMessage: `Couldn't find a search strategy for the search request`, + } + ), + type: 'NO_OP_SEARCH_STRATEGY', + path: '', + }); + + return { + searching: Promise.reject(searchError), + abort: () => {}, + }; + }, + + isViable: () => { + return true; + }, +}; diff --git a/src/plugins/data/public/search/fetch/search_error.ts b/src/plugins/data/public/search/search_strategy/search_error.ts similarity index 100% rename from src/plugins/data/public/search/fetch/search_error.ts rename to src/plugins/data/public/search/search_strategy/search_error.ts diff --git a/src/plugins/data/public/search/legacy/types.ts b/src/plugins/data/public/search/search_strategy/types.ts similarity index 89% rename from src/plugins/data/public/search/legacy/types.ts rename to src/plugins/data/public/search/search_strategy/types.ts index 3812cec7a2aa20..764370d8ff6497 100644 --- a/src/plugins/data/public/search/legacy/types.ts +++ b/src/plugins/data/public/search/search_strategy/types.ts @@ -17,20 +17,21 @@ * under the License. */ -import { FetchHandlers } from '../fetch'; +import { IndexPattern } from '../..'; +import { FetchHandlers } from '../fetch/types'; import { SearchRequest, SearchResponse } from '..'; -export interface SearchStrategySearchParams extends FetchHandlers { - searchRequests: SearchRequest[]; -} - -// @deprecated export interface SearchStrategyProvider { id: string; search: (params: SearchStrategySearchParams) => SearchStrategyResponse; + isViable: (indexPattern: IndexPattern) => boolean; } export interface SearchStrategyResponse { searching: Promise; abort: () => void; } + +export interface SearchStrategySearchParams extends FetchHandlers { + searchRequests: SearchRequest[]; +} diff --git a/src/plugins/data/public/search/types.ts b/src/plugins/data/public/search/types.ts index 2122e4e82ec1d7..ba6e44f47b75eb 100644 --- a/src/plugins/data/public/search/types.ts +++ b/src/plugins/data/public/search/types.ts @@ -22,7 +22,7 @@ import { createSearchSource } from './search_source'; import { SearchAggsSetup, SearchAggsStart, SearchAggsStartLegacy } from './aggs'; import { ISearch, ISearchGeneric } from './i_search'; import { TStrategyTypes } from './strategy_types'; -import { LegacyApiCaller } from './legacy/es_client'; +import { LegacyApiCaller } from './es_client'; import { SearchInterceptor } from './search_interceptor'; export interface ISearchContext { @@ -38,6 +38,15 @@ export interface ISearchStrategy { search: ISearch; } +/** + * Search strategy provider creates an instance of a search strategy with the request + * handler context bound to it. This way every search strategy can use + * whatever information they require from the request context. + */ +export type TSearchStrategyProviderEnhanced = ( + search: ISearchGeneric +) => Promise>; + export type TSearchStrategiesMap = { [K in TStrategyTypes]?: TSearchStrategyProvider; }; diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index d67a9dbf960eca..7f5bd0eda809b3 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -850,6 +850,8 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", "data.search.searchSource.indexPatternIdLabel": "インデックスパターン ID", "data.search.searchSource.indexPatternLabel": "インデックスパターン", + "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "検索リクエストの検索方法が見つかりませんでした", + "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "検索方法が登録されていません", "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザでのパースの時間は含まれません。", "data.search.searchSource.queryTimeLabel": "クエリ時間", "data.search.searchSource.queryTimeValue": "{queryTime}ms", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e29bf8b6d94984..6fc2e1f146086a 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -851,6 +851,8 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} 索引中的 ID。", "data.search.searchSource.indexPatternIdLabel": "索引模式 ID", "data.search.searchSource.indexPatternLabel": "索引模式", + "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "无法为该搜索请求找到搜索策略", + "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "未注册任何搜索策略", "data.search.searchSource.queryTimeDescription": "处理查询所花费的时间。不包括发送请求或在浏览器中解析它的时间。", "data.search.searchSource.queryTimeLabel": "查询时间", "data.search.searchSource.queryTimeValue": "{queryTime}ms", From 87fb21feaf2137934a71a4199a4e6849b5e66946 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Mon, 20 Apr 2020 14:59:18 -0400 Subject: [PATCH 09/54] [ML] DF Analytics Classification exploration: replace table with data grid (#63757) (#63970) * update classification result to use datagrid * consider isTraining in docCount fetch * fix translations Co-authored-by: Elastic Machine --- .../data_frame_analytics/common/analytics.ts | 22 +- .../classification_exploration_data_grid.tsx | 135 +++++ .../evaluate_panel.tsx | 60 ++- .../results_table.tsx | 470 +++--------------- .../use_explore_data.ts | 226 ++++++--- .../use_explore_data.ts | 4 +- .../translations/translations/ja-JP.json | 7 - .../translations/translations/zh-CN.json | 7 - 8 files changed, 419 insertions(+), 512 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration_data_grid.tsx diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts index 3c959b827bb1c7..fb3b2b35199477 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/common/analytics.ts @@ -52,7 +52,7 @@ export interface ClassificationAnalysis { classification: Classification; } -export interface LoadRegressionExploreDataArg { +export interface LoadExploreDataArg { filterByIsTraining?: boolean; searchQuery: SavedSearchQuery; } @@ -409,11 +409,11 @@ export function getEvalQueryBody({ ignoreDefaultQuery, }: { resultsField: string; - isTraining: boolean; + isTraining?: boolean; searchQuery?: ResultsSearchQuery; ignoreDefaultQuery?: boolean; }) { - let query; + let query: any; const trainingQuery: ResultsSearchQuery = { term: { [`${resultsField}.is_training`]: { value: isTraining } }, @@ -426,19 +426,25 @@ export function getEvalQueryBody({ searchQueryClone.bool.must = []; } - searchQueryClone.bool.must.push(trainingQuery); + if (isTraining !== undefined) { + searchQueryClone.bool.must.push(trainingQuery); + } + query = searchQueryClone; } else if (isQueryStringQuery(searchQueryClone)) { query = { bool: { - must: [searchQueryClone, trainingQuery], + must: [searchQueryClone], }, }; + if (isTraining !== undefined) { + query.bool.must.push(trainingQuery); + } } else { // Not a bool or string query so we need to create it so can add the trainingQuery query = { bool: { - must: [trainingQuery], + must: isTraining !== undefined ? [trainingQuery] : [], }, }; } @@ -456,7 +462,7 @@ interface EvaluateMetrics { } interface LoadEvalDataConfig { - isTraining: boolean; + isTraining?: boolean; index: string; dependentVariable: string; resultsField: string; @@ -535,7 +541,7 @@ interface TrackTotalHitsSearchResponse { interface LoadDocsCountConfig { ignoreDefaultQuery?: boolean; - isTraining: boolean; + isTraining?: boolean; searchQuery: SavedSearchQuery; resultsField: string; destIndex: string; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration_data_grid.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration_data_grid.tsx new file mode 100644 index 00000000000000..424fc002795caa --- /dev/null +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/classification_exploration_data_grid.tsx @@ -0,0 +1,135 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { Dispatch, FC, SetStateAction, useCallback, useMemo } from 'react'; + +import { i18n } from '@kbn/i18n'; + +import { EuiDataGrid, EuiDataGridPaginationProps, EuiDataGridSorting } from '@elastic/eui'; + +import { euiDataGridStyle, euiDataGridToolbarSettings } from '../../../../common'; + +import { mlFieldFormatService } from '../../../../../services/field_format_service'; + +import { IndexPattern } from '../../../../../../../../../../src/plugins/data/public'; + +const PAGE_SIZE_OPTIONS = [5, 10, 25, 50]; + +type Pagination = Pick; +type TableItem = Record; + +interface ExplorationDataGridProps { + colorRange?: (d: number) => string; + columns: any[]; + indexPattern: IndexPattern; + pagination: Pagination; + resultsField: string; + rowCount: number; + selectedFields: string[]; + setPagination: Dispatch>; + setSelectedFields: Dispatch>; + setSortingColumns: Dispatch>; + sortingColumns: EuiDataGridSorting['columns']; + tableItems: TableItem[]; +} + +export const ClassificationExplorationDataGrid: FC = ({ + columns, + indexPattern, + pagination, + resultsField, + rowCount, + selectedFields, + setPagination, + setSelectedFields, + setSortingColumns, + sortingColumns, + tableItems, +}) => { + const renderCellValue = useMemo(() => { + return ({ rowIndex, columnId }: { rowIndex: number; columnId: string; setCellProps: any }) => { + const adjustedRowIndex = rowIndex - pagination.pageIndex * pagination.pageSize; + + const fullItem = tableItems[adjustedRowIndex]; + + if (fullItem === undefined) { + return null; + } + + let format: any; + + if (indexPattern !== undefined) { + format = mlFieldFormatService.getFieldFormatFromIndexPattern(indexPattern, columnId, ''); + } + + const cellValue = + fullItem.hasOwnProperty(columnId) && fullItem[columnId] !== undefined + ? fullItem[columnId] + : null; + + if (format !== undefined) { + return format.convert(cellValue, 'text'); + } + + if (typeof cellValue === 'string' || cellValue === null) { + return cellValue; + } + + if (typeof cellValue === 'boolean') { + return cellValue ? 'true' : 'false'; + } + + if (typeof cellValue === 'object' && cellValue !== null) { + return JSON.stringify(cellValue); + } + + return cellValue; + }; + }, [resultsField, rowCount, tableItems, pagination.pageIndex, pagination.pageSize]); + + const onChangeItemsPerPage = useCallback( + pageSize => { + setPagination(p => { + const pageIndex = Math.floor((p.pageSize * p.pageIndex) / pageSize); + return { pageIndex, pageSize }; + }); + }, + [setPagination] + ); + + const onChangePage = useCallback(pageIndex => setPagination(p => ({ ...p, pageIndex })), [ + setPagination, + ]); + + const onSort = useCallback(sc => setSortingColumns(sc), [setSortingColumns]); + + return ( + + ); +}; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx index 91dae49ba5c497..af90547606f82d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/evaluate_panel.tsx @@ -117,13 +117,7 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) const resultsField = jobConfig.dest.results_field; let requiresKeyword = false; - const loadData = async ({ - isTrainingClause, - ignoreDefaultQuery = true, - }: { - isTrainingClause: { query: string; operator: string }; - ignoreDefaultQuery?: boolean; - }) => { + const loadData = async ({ isTraining }: { isTraining: boolean | undefined }) => { setIsLoading(true); try { @@ -134,19 +128,18 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) } const evalData = await loadEvalData({ - isTraining: false, + isTraining, index, dependentVariable, resultsField, predictionFieldName, searchQuery, - ignoreDefaultQuery, jobType: ANALYSIS_CONFIG_TYPE.CLASSIFICATION, requiresKeyword, }); const docsCountResp = await loadDocsCount({ - isTraining: false, + isTraining, searchQuery, resultsField, destIndex: jobConfig.dest.index, @@ -225,29 +218,46 @@ export const EvaluatePanel: FC = ({ jobConfig, jobStatus, searchQuery }) }, [confusionMatrixData]); useEffect(() => { - const hasIsTrainingClause = - isResultsSearchBoolQuery(searchQuery) && - searchQuery.bool.must.filter( - (clause: any) => clause.match && clause.match[`${resultsField}.is_training`] !== undefined - ); - const isTrainingClause = - hasIsTrainingClause && - hasIsTrainingClause[0] && - hasIsTrainingClause[0].match[`${resultsField}.is_training`]; + let isTraining: boolean | undefined; + const query = + isResultsSearchBoolQuery(searchQuery) && (searchQuery.bool.should || searchQuery.bool.filter); - const noTrainingQuery = isTrainingClause === false || isTrainingClause === undefined; + if (query !== undefined && query !== false) { + for (let i = 0; i < query.length; i++) { + const clause = query[i]; - if (noTrainingQuery) { + if (clause.match && clause.match[`${resultsField}.is_training`] !== undefined) { + isTraining = clause.match[`${resultsField}.is_training`]; + break; + } else if ( + clause.bool && + (clause.bool.should !== undefined || clause.bool.filter !== undefined) + ) { + const innerQuery = clause.bool.should || clause.bool.filter; + if (innerQuery !== undefined) { + for (let j = 0; j < innerQuery.length; j++) { + const innerClause = innerQuery[j]; + if ( + innerClause.match && + innerClause.match[`${resultsField}.is_training`] !== undefined + ) { + isTraining = innerClause.match[`${resultsField}.is_training`]; + break; + } + } + } + } + } + } + if (isTraining === undefined) { setDataSubsetTitle(SUBSET_TITLE.ENTIRE); } else { setDataSubsetTitle( - isTrainingClause && isTrainingClause.query === 'true' - ? SUBSET_TITLE.TRAINING - : SUBSET_TITLE.TESTING + isTraining && isTraining === true ? SUBSET_TITLE.TRAINING : SUBSET_TITLE.TESTING ); } - loadData({ isTrainingClause }); + loadData({ isTraining }); }, [JSON.stringify(searchQuery)]); const renderCellValue = ({ diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx index 9758dd969b443f..bf63dfe68fe9e5 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/results_table.tsx @@ -4,71 +4,39 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { Fragment, FC, useEffect, useState } from 'react'; -import moment from 'moment-timezone'; - +import React, { Fragment, FC, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { - EuiBadge, - EuiButtonIcon, EuiCallOut, - EuiCheckbox, EuiFlexGroup, EuiFlexItem, EuiFormRow, EuiPanel, - EuiPopover, - EuiPopoverTitle, EuiProgress, EuiSpacer, EuiText, - EuiToolTip, - Query, } from '@elastic/eui'; -import { Query as QueryType } from '../../../analytics_management/components/analytics_list/common'; -import { ES_FIELD_TYPES } from '../../../../../../../../../../src/plugins/data/public'; -import { mlFieldFormatService } from '../../../../../services/field_format_service'; import { IndexPattern } from '../../../../../../../../../../src/plugins/data/public'; - -import { - ColumnType, - mlInMemoryTableBasicFactory, - OnTableChangeArg, - SortingPropType, - SORT_DIRECTION, -} from '../../../../../components/ml_in_memory_table'; - -import { formatHumanReadableDateTimeSeconds } from '../../../../../util/date_utils'; -import { Field } from '../../../../../../../common/types/fields'; -import { SavedSearchQuery } from '../../../../../contexts/ml'; import { BASIC_NUMERICAL_TYPES, EXTENDED_NUMERICAL_TYPES, - isKeywordAndTextType, sortRegressionResultsFields, } from '../../../../common/fields'; import { - toggleSelectedField, - EsDoc, DataFrameAnalyticsConfig, - EsFieldName, MAX_COLUMNS, - getPredictedFieldName, INDEX_STATUS, SEARCH_SIZE, defaultSearchQuery, - getDependentVar, } from '../../../../common'; import { getTaskStateBadge } from '../../../analytics_management/components/analytics_list/columns'; import { DATA_FRAME_TASK_STATE } from '../../../analytics_management/components/analytics_list/common'; -import { useExploreData, TableItem } from './use_explore_data'; +import { useExploreData } from './use_explore_data'; // TableItem import { ExplorationTitle } from './classification_exploration'; - -const PAGE_SIZE_OPTIONS = [5, 10, 25, 50]; - -const MlInMemoryTableBasic = mlInMemoryTableBasicFactory(); +import { ClassificationExplorationDataGrid } from './classification_exploration_data_grid'; +import { ExplorationQueryBar } from '../exploration_query_bar'; const showingDocs = i18n.translate( 'xpack.ml.dataframe.analytics.classificationExploration.documentsShownHelpText', @@ -94,307 +62,65 @@ interface Props { export const ResultsTable: FC = React.memo( ({ indexPattern, jobConfig, jobStatus, setEvaluateSearchQuery }) => { - const [pageIndex, setPageIndex] = useState(0); - const [pageSize, setPageSize] = useState(25); - const [selectedFields, setSelectedFields] = useState([] as Field[]); - const [docFields, setDocFields] = useState([] as Field[]); - const [depVarType, setDepVarType] = useState(undefined); - const [isColumnsPopoverVisible, setColumnsPopoverVisible] = useState(false); - const [searchQuery, setSearchQuery] = useState(defaultSearchQuery); - const [searchError, setSearchError] = useState(undefined); - const [searchString, setSearchString] = useState(undefined); - - const predictedFieldName = getPredictedFieldName( - jobConfig.dest.results_field, - jobConfig.analysis - ); - - const dependentVariable = getDependentVar(jobConfig.analysis); - - function toggleColumnsPopover() { - setColumnsPopoverVisible(!isColumnsPopoverVisible); - } - - function closeColumnsPopover() { - setColumnsPopoverVisible(false); - } - - function toggleColumn(column: EsFieldName) { - if (tableItems.length > 0 && jobConfig !== undefined) { - // spread to a new array otherwise the component wouldn't re-render - setSelectedFields([ - ...toggleSelectedField(selectedFields, column, jobConfig.dest.results_field, depVarType), - ]); - } - } - const needsDestIndexFields = indexPattern && indexPattern.title === jobConfig.source.index[0]; - + const resultsField = jobConfig.dest.results_field; const { errorMessage, - loadExploreData, - sortField, - sortDirection, - status, - tableItems, - } = useExploreData( - jobConfig, - needsDestIndexFields, + fieldTypes, + pagination, + searchQuery, selectedFields, + rowCount, + setPagination, + setSearchQuery, setSelectedFields, - setDocFields, - setDepVarType - ); + setSortingColumns, + sortingColumns, + status, + tableFields, + tableItems, + } = useExploreData(jobConfig, needsDestIndexFields); - const columns: Array> = selectedFields - .sort(({ name: a }, { name: b }) => sortRegressionResultsFields(a, b, jobConfig)) - .map(field => { - const { type } = field; - let format: any; + useEffect(() => { + setEvaluateSearchQuery(searchQuery); + }, [JSON.stringify(searchQuery)]); - if (indexPattern !== undefined) { - format = mlFieldFormatService.getFieldFormatFromIndexPattern(indexPattern, field.id, ''); - } + const columns = tableFields + .sort((a: any, b: any) => sortRegressionResultsFields(a, b, jobConfig)) + .map((field: any) => { + // Built-in values are ['boolean', 'currency', 'datetime', 'numeric', 'json'] + // To fall back to the default string schema it needs to be undefined. + let schema; + let isSortable = true; + const type = fieldTypes[field]; const isNumber = type !== undefined && (BASIC_NUMERICAL_TYPES.has(type) || EXTENDED_NUMERICAL_TYPES.has(type)); - const column: ColumnType = { - field: field.name, - name: field.name, - sortable: true, - truncateText: true, - }; - - const render = (d: any, fullItem: EsDoc) => { - if (format !== undefined) { - d = format.convert(d, 'text'); - return d; - } - - if (Array.isArray(d) && d.every(item => typeof item === 'string')) { - // If the cells data is an array of strings, return as a comma separated list. - // The list will get limited to 5 items with `…` at the end if there's more in the original array. - return `${d.slice(0, 5).join(', ')}${d.length > 5 ? ', …' : ''}`; - } else if (Array.isArray(d)) { - // If the cells data is an array of e.g. objects, display a 'array' badge with a - // tooltip that explains that this type of field is not supported in this table. - return ( - - - {i18n.translate( - 'xpack.ml.dataframe.analytics.classificationExploration.indexArrayBadgeContent', - { - defaultMessage: 'array', - } - )} - - - ); - } - - return d; - }; - if (isNumber) { - column.dataType = 'number'; - column.render = render; - } else if (typeof type !== 'undefined') { - switch (type) { - case ES_FIELD_TYPES.BOOLEAN: - column.dataType = ES_FIELD_TYPES.BOOLEAN; - column.render = d => (d ? 'true' : 'false'); - break; - case ES_FIELD_TYPES.DATE: - column.align = 'right'; - if (format !== undefined) { - column.render = render; - } else { - column.render = (d: any) => { - if (d !== undefined) { - return formatHumanReadableDateTimeSeconds(moment(d).unix() * 1000); - } - return d; - }; - } - break; - default: - column.render = render; - break; - } - } else { - column.render = render; + schema = 'numeric'; } - return column; - }); - - const docFieldsCount = docFields.length; - - useEffect(() => { - if ( - jobConfig !== undefined && - columns.length > 0 && - selectedFields.length > 0 && - sortField !== undefined && - sortDirection !== undefined && - selectedFields.some(field => field.name === sortField) - ) { - let field = sortField; - // If sorting by predictedField use dependentVar type - if (predictedFieldName === sortField) { - field = dependentVariable; + switch (type) { + case 'date': + schema = 'datetime'; + break; + case 'geo_point': + schema = 'json'; + break; + case 'boolean': + schema = 'boolean'; + break; } - const requiresKeyword = isKeywordAndTextType(field); - - loadExploreData({ - field: sortField, - direction: sortDirection, - searchQuery, - requiresKeyword, - }); - } - }, [JSON.stringify(searchQuery)]); - - useEffect(() => { - // By default set sorting to descending on the prediction field (`_prediction`). - // if that's not available sort ascending on the first column. Check if the current sorting field is still available. - if ( - jobConfig !== undefined && - columns.length > 0 && - selectedFields.length > 0 && - !selectedFields.some(field => field.name === sortField) - ) { - const predictedFieldSelected = selectedFields.some( - field => field.name === predictedFieldName - ); - - // CHECK IF keyword suffix is needed (if predicted field is selected we have to check the dependent variable type) - let sortByField = predictedFieldSelected ? dependentVariable : selectedFields[0].name; - - const requiresKeyword = isKeywordAndTextType(sortByField); - - sortByField = predictedFieldSelected ? predictedFieldName : sortByField; - - const direction = predictedFieldSelected ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC; - loadExploreData({ field: sortByField, direction, searchQuery, requiresKeyword }); - } - }, [ - jobConfig, - columns.length, - selectedFields.length, - sortField, - sortDirection, - tableItems.length, - ]); - - let sorting: SortingPropType = false; - let onTableChange; - - if (columns.length > 0 && sortField !== '' && sortField !== undefined) { - sorting = { - sort: { - field: sortField, - direction: sortDirection, - }, - }; - - onTableChange = ({ - page = { index: 0, size: 10 }, - sort = { field: sortField, direction: sortDirection }, - }: OnTableChangeArg) => { - const { index, size } = page; - setPageIndex(index); - setPageSize(size); - if (sort.field !== sortField || sort.direction !== sortDirection) { - let field = sort.field; - // If sorting by predictedField use depVar for type check - if (predictedFieldName === sort.field) { - field = dependentVariable; - } - - loadExploreData({ - ...sort, - searchQuery, - requiresKeyword: isKeywordAndTextType(field), - }); + if (field === `${resultsField}.feature_importance`) { + isSortable = false; } - }; - } - const pagination = { - initialPageIndex: pageIndex, - initialPageSize: pageSize, - totalItemCount: tableItems.length, - pageSizeOptions: PAGE_SIZE_OPTIONS, - hidePerPageOptions: false, - }; - - const onQueryChange = ({ query, error }: { query: QueryType; error: any }) => { - if (error) { - setSearchError(error.message); - } else { - try { - const esQueryDsl = Query.toESQuery(query); - setSearchQuery(esQueryDsl); - setSearchString(query.text); - setSearchError(undefined); - // set query for use in evaluate panel - setEvaluateSearchQuery(esQueryDsl); - } catch (e) { - setSearchError(e.toString()); - } - } - }; + return { id: field, schema, isSortable }; + }); - const search = { - onChange: onQueryChange, - defaultQuery: searchString, - box: { - incremental: false, - placeholder: i18n.translate( - 'xpack.ml.dataframe.analytics.regressionExploration.searchBoxPlaceholder', - { - defaultMessage: 'E.g. avg>0.5', - } - ), - }, - filters: [ - { - type: 'field_value_toggle_group', - field: `${jobConfig.dest.results_field}.is_training`, - items: [ - { - value: false, - name: i18n.translate( - 'xpack.ml.dataframe.analytics.regressionExploration.isTestingLabel', - { - defaultMessage: 'Testing', - } - ), - }, - { - value: true, - name: i18n.translate( - 'xpack.ml.dataframe.analytics.regressionExploration.isTrainingLabel', - { - defaultMessage: 'Training', - } - ), - }, - ], - }, - ], - }; + const docFieldsCount = tableFields.length; if (jobConfig === undefined) { return null; @@ -426,11 +152,6 @@ export const ResultsTable: FC = React.memo( ); } - const tableError = - status === INDEX_STATUS.ERROR && errorMessage.includes('parsing_exception') - ? errorMessage - : searchError; - return ( = React.memo( {docFieldsCount > MAX_COLUMNS && ( {i18n.translate( - 'xpack.ml.dataframe.analytics.regressionExploration.fieldSelection', + 'xpack.ml.dataframe.analytics.classificationExploration.fieldSelection', { defaultMessage: '{selectedFieldsLength, number} of {docFieldsCount, number} {docFieldsCount, plural, one {field} other {fields}} selected', @@ -466,52 +187,6 @@ export const ResultsTable: FC = React.memo( )} - - - - } - isOpen={isColumnsPopoverVisible} - closePopover={closeColumnsPopover} - ownFocus - > - - {i18n.translate( - 'xpack.ml.dataframe.analytics.regressionExploration.selectFieldsPopoverTitle', - { - defaultMessage: 'Select fields', - } - )} - -
- {docFields.map(({ name }) => ( - field.name === name)} - onChange={() => toggleColumn(name)} - disabled={ - selectedFields.some(field => field.name === name) && - selectedFields.length === 1 - } - /> - ))} -
-
-
-
@@ -520,28 +195,39 @@ export const ResultsTable: FC = React.memo( )} {(columns.length > 0 || searchQuery !== defaultSearchQuery) && ( - - - - - - - + + + + + + + + + + + + + + + + )}
); diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/use_explore_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/use_explore_data.ts index 9527a9adb98ced..c8809ca5e471bd 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/use_explore_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/classification_exploration/use_explore_data.ts @@ -3,113 +3,158 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -import React, { useEffect, useState } from 'react'; +import { useEffect, useState, Dispatch, SetStateAction } from 'react'; +import { EuiDataGridPaginationProps, EuiDataGridSorting } from '@elastic/eui'; import { SearchResponse } from 'elasticsearch'; import { cloneDeep } from 'lodash'; -import { SortDirection, SORT_DIRECTION } from '../../../../../components/ml_in_memory_table'; +import { SORT_DIRECTION } from '../../../../../components/ml_in_memory_table'; import { ml } from '../../../../../services/ml_api_service'; import { getNestedProperty } from '../../../../../util/object_utils'; import { newJobCapsService } from '../../../../../services/new_job_capabilities_service'; -import { Field } from '../../../../../../../common/types/fields'; +import { isKeywordAndTextType } from '../../../../common/fields'; +import { Dictionary } from '../../../../../../../common/types/common'; import { ES_FIELD_TYPES } from '../../../../../../../../../../src/plugins/data/public'; import { defaultSearchQuery, ResultsSearchQuery, isResultsSearchBoolQuery, + LoadExploreDataArg, } from '../../../../common/analytics'; import { getDefaultFieldsFromJobCaps, + getDependentVar, getFlattenedFields, + getPredictedFieldName, DataFrameAnalyticsConfig, EsFieldName, INDEX_STATUS, - SEARCH_SIZE, - SearchQuery, } from '../../../../common'; import { SavedSearchQuery } from '../../../../../contexts/ml'; -interface LoadClassificationExploreDataArg { - direction: SortDirection; - filterByIsTraining?: boolean; - field: string; - searchQuery: SavedSearchQuery; - requiresKeyword?: boolean; - pageIndex?: number; - pageSize?: number; -} - export type TableItem = Record; +type Pagination = Pick; export interface UseExploreDataReturnType { errorMessage: string; - loadExploreData: (arg: LoadClassificationExploreDataArg) => void; - sortField: EsFieldName; - sortDirection: SortDirection; + fieldTypes: { [key: string]: ES_FIELD_TYPES }; + pagination: Pagination; + rowCount: number; + searchQuery: SavedSearchQuery; + selectedFields: EsFieldName[]; + setFilterByIsTraining: Dispatch>; + setPagination: Dispatch>; + setSearchQuery: Dispatch>; + setSelectedFields: Dispatch>; + setSortingColumns: Dispatch>; + sortingColumns: EuiDataGridSorting['columns']; status: INDEX_STATUS; + tableFields: string[]; tableItems: TableItem[]; } +type EsSorting = Dictionary<{ + order: 'asc' | 'desc'; +}>; + +// The types specified in `@types/elasticsearch` are out of date and still have `total: number`. +interface SearchResponse7 extends SearchResponse { + hits: SearchResponse['hits'] & { + total: { + value: number; + relation: string; + }; + }; +} + export const useExploreData = ( - jobConfig: DataFrameAnalyticsConfig | undefined, - needsDestIndexFields: boolean, - selectedFields: Field[], - setSelectedFields: React.Dispatch>, - setDocFields: React.Dispatch>, - setDepVarType: React.Dispatch> + jobConfig: DataFrameAnalyticsConfig, + needsDestIndexFields: boolean ): UseExploreDataReturnType => { const [errorMessage, setErrorMessage] = useState(''); const [status, setStatus] = useState(INDEX_STATUS.UNUSED); + + const [selectedFields, setSelectedFields] = useState([] as EsFieldName[]); + const [tableFields, setTableFields] = useState([]); const [tableItems, setTableItems] = useState([]); - const [sortField, setSortField] = useState(''); - const [sortDirection, setSortDirection] = useState(SORT_DIRECTION.ASC); + const [fieldTypes, setFieldTypes] = useState<{ [key: string]: ES_FIELD_TYPES }>({}); + const [rowCount, setRowCount] = useState(0); + + const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 25 }); + const [searchQuery, setSearchQuery] = useState(defaultSearchQuery); + const [filterByIsTraining, setFilterByIsTraining] = useState(undefined); + const [sortingColumns, setSortingColumns] = useState([]); + + const predictedFieldName = getPredictedFieldName( + jobConfig.dest.results_field, + jobConfig.analysis + ); + const dependentVariable = getDependentVar(jobConfig.analysis); const getDefaultSelectedFields = () => { const { fields } = newJobCapsService; - if (selectedFields.length === 0 && jobConfig !== undefined) { - const { - selectedFields: defaultSelected, - docFields, - depVarType, - } = getDefaultFieldsFromJobCaps(fields, jobConfig, needsDestIndexFields); - - setDepVarType(depVarType); - setSelectedFields(defaultSelected); - setDocFields(docFields); + const { selectedFields: defaultSelected, docFields } = getDefaultFieldsFromJobCaps( + fields, + jobConfig, + needsDestIndexFields + ); + + const types: { [key: string]: ES_FIELD_TYPES } = {}; + const allFields: string[] = []; + + docFields.forEach(field => { + types[field.id] = field.type; + allFields.push(field.id); + }); + + setFieldTypes(types); + setSelectedFields(defaultSelected.map(field => field.id)); + setTableFields(allFields); } }; const loadExploreData = async ({ - field, - direction, - searchQuery, - requiresKeyword, - }: LoadClassificationExploreDataArg) => { + filterByIsTraining: isTraining, + searchQuery: incomingQuery, + }: LoadExploreDataArg) => { if (jobConfig !== undefined) { setErrorMessage(''); setStatus(INDEX_STATUS.LOADING); try { const resultsField = jobConfig.dest.results_field; - const searchQueryClone: ResultsSearchQuery = cloneDeep(searchQuery); + const searchQueryClone: ResultsSearchQuery = cloneDeep(incomingQuery); let query: ResultsSearchQuery; + const { pageIndex, pageSize } = pagination; + // If filterByIsTraining is defined - add that in to the final query + const trainingQuery = + isTraining !== undefined + ? { + term: { [`${resultsField}.is_training`]: { value: isTraining } }, + } + : undefined; - if (JSON.stringify(searchQuery) === JSON.stringify(defaultSearchQuery)) { - query = { + if (JSON.stringify(incomingQuery) === JSON.stringify(defaultSearchQuery)) { + const existsQuery = { exists: { field: resultsField, }, }; + + query = { + bool: { + must: [existsQuery], + }, + }; + + if (trainingQuery !== undefined && isResultsSearchBoolQuery(query)) { + query.bool.must.push(trainingQuery); + } } else if (isResultsSearchBoolQuery(searchQueryClone)) { if (searchQueryClone.bool.must === undefined) { searchQueryClone.bool.must = []; @@ -121,33 +166,37 @@ export const useExploreData = ( }, }); + if (trainingQuery !== undefined) { + searchQueryClone.bool.must.push(trainingQuery); + } + query = searchQueryClone; } else { query = searchQueryClone; } - const body: SearchQuery = { - query, - }; - - if (field !== undefined) { - body.sort = [ - { - [`${field}${requiresKeyword ? '.keyword' : ''}`]: { - order: direction, - }, - }, - ]; - } + const sort: EsSorting = sortingColumns + .map(column => { + const { id } = column; + column.id = isKeywordAndTextType(id) ? `${id}.keyword` : id; + return column; + }) + .reduce((s, column) => { + s[column.id] = { order: column.direction }; + return s; + }, {} as EsSorting); - const resp: SearchResponse = await ml.esSearch({ + const resp: SearchResponse7 = await ml.esSearch({ index: jobConfig.dest.index, - size: SEARCH_SIZE, - body, + body: { + query, + from: pageIndex * pageSize, + size: pageSize, + ...(Object.keys(sort).length > 0 ? { sort } : {}), + }, }); - setSortField(field); - setSortDirection(direction); + setRowCount(resp.hits.total.value); const docs = resp.hits.hits; @@ -199,10 +248,45 @@ export const useExploreData = ( }; useEffect(() => { - if (jobConfig !== undefined) { - getDefaultSelectedFields(); - } + getDefaultSelectedFields(); + }, [jobConfig && jobConfig.id]); + + // By default set sorting to descending on the prediction field (`_prediction`). + useEffect(() => { + const sortByField = isKeywordAndTextType(dependentVariable) + ? `${predictedFieldName}.keyword` + : predictedFieldName; + const direction = SORT_DIRECTION.DESC; + + setSortingColumns([{ id: sortByField, direction }]); }, [jobConfig && jobConfig.id]); - return { errorMessage, loadExploreData, sortField, sortDirection, status, tableItems }; + useEffect(() => { + loadExploreData({ filterByIsTraining, searchQuery }); + }, [ + filterByIsTraining, + jobConfig && jobConfig.id, + pagination, + searchQuery, + selectedFields, + sortingColumns, + ]); + + return { + errorMessage, + fieldTypes, + pagination, + searchQuery, + selectedFields, + rowCount, + setFilterByIsTraining, + setPagination, + setSelectedFields, + setSortingColumns, + setSearchQuery, + sortingColumns, + status, + tableItems, + tableFields, + }; }; diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/use_explore_data.ts b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/use_explore_data.ts index c68fe5b2cbee86..978aafd10de11f 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/use_explore_data.ts +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_exploration/components/regression_exploration/use_explore_data.ts @@ -29,7 +29,7 @@ import { Dictionary } from '../../../../../../../common/types/common'; import { isKeywordAndTextType } from '../../../../common/fields'; import { ES_FIELD_TYPES } from '../../../../../../../../../../src/plugins/data/public'; import { - LoadRegressionExploreDataArg, + LoadExploreDataArg, defaultSearchQuery, ResultsSearchQuery, isResultsSearchBoolQuery, @@ -120,7 +120,7 @@ export const useExploreData = ( const loadExploreData = async ({ filterByIsTraining: isTraining, searchQuery: incomingQuery, - }: LoadRegressionExploreDataArg) => { + }: LoadExploreDataArg) => { if (jobConfig !== undefined) { setErrorMessage(''); setStatus(INDEX_STATUS.LOADING); diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 7f5bd0eda809b3..faa3e211a03fe3 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -9492,8 +9492,6 @@ "xpack.ml.dataframe.analytics.classificationExploration.evaluateJobIdTitle": "分類ジョブID {jobId}の評価", "xpack.ml.dataframe.analytics.classificationExploration.firstDocumentsShownHelpText": "予測がある最初の{searchSize}のドキュメントを示す", "xpack.ml.dataframe.analytics.classificationExploration.generalizationDocsCount": "{docsCount, plural, one {# doc} other {# docs}}が評価されました", - "xpack.ml.dataframe.analytics.classificationExploration.indexArrayBadgeContent": "配列", - "xpack.ml.dataframe.analytics.classificationExploration.indexArrayToolTipContent": "この配列ベースの列の完全なコンテンツは表示できません。", "xpack.ml.dataframe.analytics.classificationExploration.jobCapsFetchError": "結果を取得できません。インデックスのフィールドデータの読み込み中にエラーが発生しました。", "xpack.ml.dataframe.analytics.classificationExploration.jobConfigurationFetchError": "結果を取得できません。ジョブ構成データの読み込み中にエラーが発生しました。", "xpack.ml.dataframe.analytics.classificationExploration.jobConfigurationNoResultsMessage": "結果が見つかりませんでした。", @@ -9588,8 +9586,6 @@ "xpack.ml.dataframe.analytics.regressionExploration.generalizationDocsCount": "{docsCount, plural, one {# doc} other {# docs}}が評価されました", "xpack.ml.dataframe.analytics.regressionExploration.generalizationErrorTitle": "一般化エラー", "xpack.ml.dataframe.analytics.regressionExploration.indexError": "インデックスデータの読み込み中にエラーが発生しました。", - "xpack.ml.dataframe.analytics.regressionExploration.isTestingLabel": "テスト", - "xpack.ml.dataframe.analytics.regressionExploration.isTrainingLabel": "トレーニング", "xpack.ml.dataframe.analytics.regressionExploration.jobCapsFetchError": "結果を取得できません。インデックスのフィールドデータの読み込み中にエラーが発生しました。", "xpack.ml.dataframe.analytics.regressionExploration.jobConfigurationFetchError": "結果を取得できません。ジョブ構成データの読み込み中にエラーが発生しました。", "xpack.ml.dataframe.analytics.regressionExploration.meanSquaredErrorText": "平均二乗エラー", @@ -9601,9 +9597,6 @@ "xpack.ml.dataframe.analytics.regressionExploration.queryParsingErrorMessage": "クエリをパースできません。", "xpack.ml.dataframe.analytics.regressionExploration.rSquaredText": "R の二乗", "xpack.ml.dataframe.analytics.regressionExploration.rSquaredTooltipContent": "適合度を表します。モデルによる観察された結果の複製の効果を測定します。", - "xpack.ml.dataframe.analytics.regressionExploration.searchBoxPlaceholder": "例: 平均>0.5", - "xpack.ml.dataframe.analytics.regressionExploration.selectColumnsAriaLabel": "列を選択", - "xpack.ml.dataframe.analytics.regressionExploration.selectFieldsPopoverTitle": "フィールドを選択", "xpack.ml.dataframe.analytics.regressionExploration.tableJobIdTitle": "回帰ジョブID {jobId}のデスティネーションインデックス", "xpack.ml.dataframe.analytics.regressionExploration.trainingDocsCount": "{docsCount, plural, one {# doc} other {# docs}}が評価されました", "xpack.ml.dataframe.analytics.regressionExploration.trainingErrorTitle": "トレーニングエラー", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 6fc2e1f146086a..9641428b86dc61 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -9495,8 +9495,6 @@ "xpack.ml.dataframe.analytics.classificationExploration.evaluateJobIdTitle": "分类作业 ID {jobId} 的评估", "xpack.ml.dataframe.analytics.classificationExploration.firstDocumentsShownHelpText": "正在显示有相关预测存在的前 {searchSize} 个文档", "xpack.ml.dataframe.analytics.classificationExploration.generalizationDocsCount": "{docsCount, plural, one {# 个文档} other {# 个文档}}已评估", - "xpack.ml.dataframe.analytics.classificationExploration.indexArrayBadgeContent": "数组", - "xpack.ml.dataframe.analytics.classificationExploration.indexArrayToolTipContent": "此基于数组的列的完整内容无法显示。", "xpack.ml.dataframe.analytics.classificationExploration.jobCapsFetchError": "无法提取结果。加载索引的字段数据时发生错误。", "xpack.ml.dataframe.analytics.classificationExploration.jobConfigurationFetchError": "无法提取结果。加载作业配置数据时发生错误。", "xpack.ml.dataframe.analytics.classificationExploration.jobConfigurationNoResultsMessage": "未找到结果。", @@ -9591,8 +9589,6 @@ "xpack.ml.dataframe.analytics.regressionExploration.generalizationDocsCount": "{docsCount, plural, one {# 个文档} other {# 个文档}}已评估", "xpack.ml.dataframe.analytics.regressionExploration.generalizationErrorTitle": "泛化误差", "xpack.ml.dataframe.analytics.regressionExploration.indexError": "加载索引数据时出错。", - "xpack.ml.dataframe.analytics.regressionExploration.isTestingLabel": "测试", - "xpack.ml.dataframe.analytics.regressionExploration.isTrainingLabel": "培训", "xpack.ml.dataframe.analytics.regressionExploration.jobCapsFetchError": "无法提取结果。加载索引的字段数据时发生错误。", "xpack.ml.dataframe.analytics.regressionExploration.jobConfigurationFetchError": "无法提取结果。加载作业配置数据时发生错误。", "xpack.ml.dataframe.analytics.regressionExploration.meanSquaredErrorText": "均方误差", @@ -9604,9 +9600,6 @@ "xpack.ml.dataframe.analytics.regressionExploration.queryParsingErrorMessage": "无法解析查询。", "xpack.ml.dataframe.analytics.regressionExploration.rSquaredText": "R 平方", "xpack.ml.dataframe.analytics.regressionExploration.rSquaredTooltipContent": "表示拟合优度。度量模型复制被观察结果的优良性。", - "xpack.ml.dataframe.analytics.regressionExploration.searchBoxPlaceholder": "例如 avg>0.5", - "xpack.ml.dataframe.analytics.regressionExploration.selectColumnsAriaLabel": "选择列", - "xpack.ml.dataframe.analytics.regressionExploration.selectFieldsPopoverTitle": "选择字段", "xpack.ml.dataframe.analytics.regressionExploration.tableJobIdTitle": "回归作业 ID {jobId} 的目标索引", "xpack.ml.dataframe.analytics.regressionExploration.trainingDocsCount": "{docsCount, plural, one {# 个文档} other {# 个文档}}已评估", "xpack.ml.dataframe.analytics.regressionExploration.trainingErrorTitle": "训练误差", From 9a4cc5e681d222b90b2b91af917940d8a49c9f76 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 20 Apr 2020 13:04:56 -0600 Subject: [PATCH 10/54] [Maps] fix date labels (#63909) (#63980) * [Maps] fix date labels * review feedback Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../maps/public/elasticsearch_geo_utils.js | 12 +++++++- .../public/elasticsearch_geo_utils.test.js | 29 +++++++++++++++---- .../es_search_source/es_search_source.js | 12 +++++++- .../properties/dynamic_style_property.js | 4 +++ 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/x-pack/plugins/maps/public/elasticsearch_geo_utils.js b/x-pack/plugins/maps/public/elasticsearch_geo_utils.js index 617cf537fd5c31..417c5d84f8916e 100644 --- a/x-pack/plugins/maps/public/elasticsearch_geo_utils.js +++ b/x-pack/plugins/maps/public/elasticsearch_geo_utils.js @@ -64,7 +64,7 @@ function ensureGeometryType(type, expectedTypes) { * @param {string} geoFieldType Geometry field type ["geo_point", "geo_shape"] * @returns {number} */ -export function hitsToGeoJson(hits, flattenHit, geoFieldName, geoFieldType) { +export function hitsToGeoJson(hits, flattenHit, geoFieldName, geoFieldType, epochMillisFields) { const features = []; const tmpGeometriesAccumulator = []; @@ -80,6 +80,16 @@ export function hitsToGeoJson(hits, flattenHit, geoFieldName, geoFieldType) { geoShapeToGeometry(properties[geoFieldName], tmpGeometriesAccumulator); } + // There is a bug in Elasticsearch API where epoch_millis are returned as a string instead of a number + // https://github.com/elastic/elasticsearch/issues/50622 + // Convert these field values to integers. + for (let i = 0; i < epochMillisFields.length; i++) { + const fieldName = epochMillisFields[i]; + if (typeof properties[fieldName] === 'string') { + properties[fieldName] = parseInt(properties[fieldName]); + } + } + // don't include geometry field value in properties delete properties[geoFieldName]; diff --git a/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js b/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js index 5db7556be4639d..fc02e191738432 100644 --- a/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js +++ b/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js @@ -66,7 +66,7 @@ describe('hitsToGeoJson', () => { }, }, ]; - const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point'); + const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point', []); expect(geojson.type).toBe('FeatureCollection'); expect(geojson.features.length).toBe(2); expect(geojson.features[0]).toEqual({ @@ -94,7 +94,7 @@ describe('hitsToGeoJson', () => { _source: {}, }, ]; - const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point'); + const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point', []); expect(geojson.type).toBe('FeatureCollection'); expect(geojson.features.length).toBe(1); }); @@ -111,7 +111,7 @@ describe('hitsToGeoJson', () => { }, }, ]; - const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point'); + const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point', []); expect(geojson.features.length).toBe(1); const feature = geojson.features[0]; expect(feature.properties.myField).toBe(8); @@ -128,7 +128,7 @@ describe('hitsToGeoJson', () => { }, }, ]; - const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point'); + const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point', []); expect(geojson.type).toBe('FeatureCollection'); expect(geojson.features.length).toBe(2); expect(geojson.features[0]).toEqual({ @@ -159,6 +159,23 @@ describe('hitsToGeoJson', () => { }); }); + it('Should convert epoch_millis value from string to integer', () => { + const hits = [ + { + _id: 'doc1', + _index: 'index1', + _source: { + [geoFieldName]: '20,100', + myDateField: '1587156257081', + }, + }, + ]; + const geojson = hitsToGeoJson(hits, flattenHitMock, geoFieldName, 'geo_point', ['myDateField']); + expect(geojson.type).toBe('FeatureCollection'); + expect(geojson.features.length).toBe(1); + expect(geojson.features[0].properties.myDateField).toBe(1587156257081); + }); + describe('dot in geoFieldName', () => { const indexPatternMock = { fields: { @@ -184,7 +201,7 @@ describe('hitsToGeoJson', () => { }, }, ]; - const geojson = hitsToGeoJson(hits, indexPatternFlattenHit, 'my.location', 'geo_point'); + const geojson = hitsToGeoJson(hits, indexPatternFlattenHit, 'my.location', 'geo_point', []); expect(geojson.features[0].geometry).toEqual({ coordinates: [100, 20], type: 'Point', @@ -199,7 +216,7 @@ describe('hitsToGeoJson', () => { }, }, ]; - const geojson = hitsToGeoJson(hits, indexPatternFlattenHit, 'my.location', 'geo_point'); + const geojson = hitsToGeoJson(hits, indexPatternFlattenHit, 'my.location', 'geo_point', []); expect(geojson.features[0].geometry).toEqual({ coordinates: [100, 20], type: 'Point', diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js index 96679f0e859412..34fed37933e138 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js +++ b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js @@ -387,11 +387,21 @@ export class ESSearchSource extends AbstractESSource { }); return properties; }; + const epochMillisFields = searchFilters.fieldNames.filter(fieldName => { + const field = getField(indexPattern, fieldName); + return field.readFromDocValues && field.type === 'date'; + }); let featureCollection; try { const geoField = await this._getGeoField(); - featureCollection = hitsToGeoJson(hits, flattenHit, geoField.name, geoField.type); + featureCollection = hitsToGeoJson( + hits, + flattenHit, + geoField.name, + geoField.type, + epochMillisFields + ); } catch (error) { throw new Error( i18n.translate('xpack.maps.source.esSearch.convertToGeoJsonErrorMsg', { diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js b/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js index ea521f8749d80a..8cef78f9a8f210 100644 --- a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js +++ b/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js @@ -279,6 +279,10 @@ export class DynamicStyleProperty extends AbstractStyleProperty { } getNumericalMbFeatureStateValue(value) { + if (typeof value === 'number') { + return value; + } + const valueAsFloat = parseFloat(value); return isNaN(valueAsFloat) ? null : valueAsFloat; } From 84531a08c1b8a5c62bb6fdd1689a3be4499e9ecf Mon Sep 17 00:00:00 2001 From: Wylie Conlon Date: Mon, 20 Apr 2020 15:08:20 -0400 Subject: [PATCH 11/54] [TSVB] Use default Kibana palette for split series (#62241) (#63979) * [TSVB] Rainbow palette shares colors with dashboard * Add migration * Add charts as NP dependency Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- src/plugins/vis_type_timeseries/kibana.json | 2 +- .../components/vis_types/timeseries/config.js | 15 ++- .../visualizations/views/timeseries/index.js | 14 ++- .../public/metrics_type.ts | 1 + .../vis_type_timeseries/public/plugin.ts | 6 +- .../vis_type_timeseries/public/services.ts | 5 + .../lib/vis_data/helpers/get_split_colors.js | 4 +- .../lib/vis_data/helpers/get_splits.test.js | 117 +++++++++++++----- .../visualization_migrations.test.ts | 58 +++++++++ .../saved_objects/visualization_migrations.ts | 33 +++++ .../apps/visualize/_tsvb_time_series.ts | 9 +- .../page_objects/visual_builder_page.ts | 4 + 12 files changed, 218 insertions(+), 50 deletions(-) diff --git a/src/plugins/vis_type_timeseries/kibana.json b/src/plugins/vis_type_timeseries/kibana.json index 38662c6a7ff89b..9053d2543e0d0e 100644 --- a/src/plugins/vis_type_timeseries/kibana.json +++ b/src/plugins/vis_type_timeseries/kibana.json @@ -4,6 +4,6 @@ "kibanaVersion": "kibana", "server": true, "ui": true, - "requiredPlugins": ["data", "expressions", "visualizations"], + "requiredPlugins": ["charts", "data", "expressions", "visualizations"], "optionalPlugins": ["usageCollection"] } diff --git a/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js b/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js index 024f59c3abb1c3..d29b795b10ec83 100644 --- a/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js +++ b/src/plugins/vis_type_timeseries/public/application/components/vis_types/timeseries/config.js @@ -53,7 +53,7 @@ export const TimeseriesConfig = injectI18n(function(props) { point_size: '', value_template: '{{value}}', offset_time: '', - split_color_mode: 'gradient', + split_color_mode: 'kibana', axis_min: '', axis_max: '', stacked: STACKED_OPTIONS.NONE, @@ -140,10 +140,10 @@ export const TimeseriesConfig = injectI18n(function(props) { const splitColorOptions = [ { label: intl.formatMessage({ - id: 'visTypeTimeseries.timeSeries.gradientLabel', - defaultMessage: 'Gradient', + id: 'visTypeTimeseries.timeSeries.defaultPaletteLabel', + defaultMessage: 'Default palette', }), - value: 'gradient', + value: 'kibana', }, { label: intl.formatMessage({ @@ -152,6 +152,13 @@ export const TimeseriesConfig = injectI18n(function(props) { }), value: 'rainbow', }, + { + label: intl.formatMessage({ + id: 'visTypeTimeseries.timeSeries.gradientLabel', + defaultMessage: 'Gradient', + }), + value: 'gradient', + }, ]; const selectedSplitColorOption = splitColorOptions.find(option => { return model.split_color_mode === option.value; diff --git a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js index b1c3c7ac6b67ad..5cf1619150e5c7 100644 --- a/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js +++ b/src/plugins/vis_type_timeseries/public/application/visualizations/views/timeseries/index.js @@ -33,7 +33,7 @@ import { import { EuiIcon } from '@elastic/eui'; import { getTimezone } from '../../../lib/get_timezone'; import { eventBus, ACTIVE_CURSOR } from '../../lib/active_cursor'; -import { getUISettings } from '../../../../services'; +import { getUISettings, getChartsSetup } from '../../../../services'; import { GRID_LINE_CONFIG, ICON_TYPES_MAP, STACKED_OPTIONS } from '../../constants'; import { AreaSeriesDecorator } from './decorators/area_decorator'; import { BarSeriesDecorator } from './decorators/bar_decorator'; @@ -94,6 +94,12 @@ export const TimeSeries = ({ // apply legend style change if bgColor is configured const classes = classNames('tvbVisTimeSeries', getChartClasses(backgroundColor)); + // If the color isn't configured by the user, use the color mapping service + // to assign a color from the Kibana palette. Colors will be shared across the + // session, including dashboards. + const { colors } = getChartsSetup(); + colors.mappedColors.mapKeys(series.filter(({ color }) => !color).map(({ label }) => label)); + return ( ; visualizations: VisualizationsSetup; + charts: ChartsPluginSetup; } /** @internal */ @@ -56,10 +59,11 @@ export class MetricsPlugin implements Plugin, void> { public async setup( core: CoreSetup, - { expressions, visualizations }: MetricsPluginSetupDependencies + { expressions, visualizations, charts }: MetricsPluginSetupDependencies ) { expressions.registerFunction(createMetricsFn); setUISettings(core.uiSettings); + setChartsSetup(charts); visualizations.createReactVisualization(metricsVisDefinition); } diff --git a/src/plugins/vis_type_timeseries/public/services.ts b/src/plugins/vis_type_timeseries/public/services.ts index d93a376584eac9..9aa84478fb78bf 100644 --- a/src/plugins/vis_type_timeseries/public/services.ts +++ b/src/plugins/vis_type_timeseries/public/services.ts @@ -19,6 +19,7 @@ import { I18nStart, SavedObjectsStart, IUiSettingsClient, CoreStart } from 'src/core/public'; import { createGetterSetter } from '../../kibana_utils/public'; +import { ChartsPluginSetup } from '../../charts/public'; import { DataPublicPluginStart } from '../../data/public'; export const [getUISettings, setUISettings] = createGetterSetter('UISettings'); @@ -36,3 +37,7 @@ export const [getCoreStart, setCoreStart] = createGetterSetter('CoreS export const [getDataStart, setDataStart] = createGetterSetter('DataStart'); export const [getI18n, setI18n] = createGetterSetter('I18n'); + +export const [getChartsSetup, setChartsSetup] = createGetterSetter( + 'ChartsPluginSetup' +); diff --git a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_split_colors.js b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_split_colors.js index ff8d9077b08711..cad8c8f2025a17 100644 --- a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_split_colors.js +++ b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_split_colors.js @@ -19,7 +19,7 @@ import Color from 'color'; -export function getSplitColors(inputColor, size = 10, style = 'gradient') { +export function getSplitColors(inputColor, size = 10, style = 'kibana') { const color = new Color(inputColor); const colors = []; let workingColor = Color.hsl(color.hsl().object()); @@ -49,7 +49,7 @@ export function getSplitColors(inputColor, size = 10, style = 'gradient') { '#0F1419', '#666666', ]; - } else { + } else if (style === 'gradient') { colors.push(color.string()); const rotateBy = color.luminosity() / (size - 1); for (let i = 0; i < size - 1; i++) { diff --git a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js index 0874d944033f5c..376d32d0da13f6 100644 --- a/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js +++ b/src/plugins/vis_type_timeseries/server/lib/vis_data/helpers/get_splits.test.js @@ -106,7 +106,7 @@ describe('getSplits(resp, panel, series)', () => { ]); }); - test('should return a splits for terms group bys', () => { + describe('terms group bys', () => { const resp = { aggregations: { SERIES: { @@ -126,38 +126,89 @@ describe('getSplits(resp, panel, series)', () => { }, }, }; - const series = { - id: 'SERIES', - color: '#F00', - split_mode: 'terms', - terms_field: 'beat.hostname', - terms_size: 10, - metrics: [ - { id: 'AVG', type: 'avg', field: 'cpu' }, - { id: 'SIBAGG', type: 'avg_bucket', field: 'AVG' }, - ], - }; - const panel = { type: 'timeseries' }; - expect(getSplits(resp, panel, series)).toEqual([ - { - id: 'SERIES:example-01', - key: 'example-01', - label: 'example-01', - meta: { bucketSize: 10 }, - color: 'rgb(255, 0, 0)', - timeseries: { buckets: [] }, - SIBAGG: { value: 1 }, - }, - { - id: 'SERIES:example-02', - key: 'example-02', - label: 'example-02', - meta: { bucketSize: 10 }, - color: 'rgb(147, 0, 0)', - timeseries: { buckets: [] }, - SIBAGG: { value: 2 }, - }, - ]); + + test('should return a splits with no color', () => { + const series = { + id: 'SERIES', + color: '#F00', + split_mode: 'terms', + terms_field: 'beat.hostname', + terms_size: 10, + metrics: [ + { id: 'AVG', type: 'avg', field: 'cpu' }, + { id: 'SIBAGG', type: 'avg_bucket', field: 'AVG' }, + ], + }; + const panel = { type: 'timeseries' }; + expect(getSplits(resp, panel, series)).toEqual([ + { + id: 'SERIES:example-01', + key: 'example-01', + label: 'example-01', + meta: { bucketSize: 10 }, + color: undefined, + timeseries: { buckets: [] }, + SIBAGG: { value: 1 }, + }, + { + id: 'SERIES:example-02', + key: 'example-02', + label: 'example-02', + meta: { bucketSize: 10 }, + color: undefined, + timeseries: { buckets: [] }, + SIBAGG: { value: 2 }, + }, + ]); + }); + + test('should return gradient color', () => { + const series = { + id: 'SERIES', + color: '#F00', + split_mode: 'terms', + split_color_mode: 'gradient', + terms_field: 'beat.hostname', + terms_size: 10, + metrics: [ + { id: 'AVG', type: 'avg', field: 'cpu' }, + { id: 'SIBAGG', type: 'avg_bucket', field: 'AVG' }, + ], + }; + const panel = { type: 'timeseries' }; + expect(getSplits(resp, panel, series)).toEqual([ + expect.objectContaining({ + color: 'rgb(255, 0, 0)', + }), + expect.objectContaining({ + color: 'rgb(147, 0, 0)', + }), + ]); + }); + + test('should return rainbow color', () => { + const series = { + id: 'SERIES', + color: '#F00', + split_mode: 'terms', + split_color_mode: 'rainbow', + terms_field: 'beat.hostname', + terms_size: 10, + metrics: [ + { id: 'AVG', type: 'avg', field: 'cpu' }, + { id: 'SIBAGG', type: 'avg_bucket', field: 'AVG' }, + ], + }; + const panel = { type: 'timeseries' }; + expect(getSplits(resp, panel, series)).toEqual([ + expect.objectContaining({ + color: '#68BC00', + }), + expect.objectContaining({ + color: '#009CE0', + }), + ]); + }); }); test('should return a splits for filters group bys', () => { diff --git a/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts b/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts index 26f8278cd3d434..83d53d27e41fdc 100644 --- a/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts +++ b/src/plugins/visualizations/server/saved_objects/visualization_migrations.test.ts @@ -1460,4 +1460,62 @@ describe('migration visualization', () => { expect(migratedParams.gauge_color_rules[1]).toEqual(params.gauge_color_rules[1]); }); }); + + describe('7.8.0 tsvb split_color_mode', () => { + const migrate = (doc: any) => + visualizationSavedObjectTypeMigrations['7.8.0']( + doc as Parameters[0], + savedObjectMigrationContext + ); + + const generateDoc = (params: any) => ({ + attributes: { + title: 'My Vis', + type: 'visualization', + description: 'This is my super cool vis.', + visState: JSON.stringify(params), + uiStateJSON: '{}', + version: 1, + kibanaSavedObjectMeta: { + searchSourceJSON: '{}', + }, + }, + }); + + it('should change a missing split_color_mode to gradient', () => { + const params = { type: 'metrics', params: { series: [{}] } }; + const testDoc1 = generateDoc(params); + const migratedTestDoc1 = migrate(testDoc1); + const series = JSON.parse(migratedTestDoc1.attributes.visState).params.series; + + expect(series[0].split_color_mode).toEqual('gradient'); + }); + + it('should not change the color mode if it is set', () => { + const params = { type: 'metrics', params: { series: [{ split_color_mode: 'gradient' }] } }; + const testDoc1 = generateDoc(params); + const migratedTestDoc1 = migrate(testDoc1); + const series = JSON.parse(migratedTestDoc1.attributes.visState).params.series; + + expect(series[0].split_color_mode).toEqual('gradient'); + }); + + it('should not change the color mode if it is non-default', () => { + const params = { type: 'metrics', params: { series: [{ split_color_mode: 'rainbow' }] } }; + const testDoc1 = generateDoc(params); + const migratedTestDoc1 = migrate(testDoc1); + const series = JSON.parse(migratedTestDoc1.attributes.visState).params.series; + + expect(series[0].split_color_mode).toEqual('rainbow'); + }); + + it('should not migrate a visualization of unknown type', () => { + const params = { type: 'unknown', params: { series: [{}] } }; + const doc = generateDoc(params); + const migratedDoc = migrate(doc); + const series = JSON.parse(migratedDoc.attributes.visState).params.series; + + expect(series[0].split_color_mode).toBeUndefined(); + }); + }); }); diff --git a/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts b/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts index 80783e41863eaf..94473e35a942d5 100644 --- a/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts +++ b/src/plugins/visualizations/server/saved_objects/visualization_migrations.ts @@ -602,7 +602,39 @@ const migrateMatchAllQuery: SavedObjectMigrationFn = doc => { }; } } + return doc; +}; + +// [TSVB] Default color palette is changing, keep the default for older viz +const migrateTsvbDefaultColorPalettes: SavedObjectMigrationFn = doc => { + const visStateJSON = get(doc, 'attributes.visState'); + let visState; + + if (visStateJSON) { + try { + visState = JSON.parse(visStateJSON); + } catch (e) { + // Let it go, the data is invalid and we'll leave it as is + } + if (visState && visState.type === 'metrics') { + const series: any[] = get(visState, 'params.series') || []; + series.forEach(part => { + // The default value was not saved before + if (!part.split_color_mode) { + part.split_color_mode = 'gradient'; + } + }); + + return { + ...doc, + attributes: { + ...doc.attributes, + visState: JSON.stringify(visState), + }, + }; + } + } return doc; }; @@ -639,4 +671,5 @@ export const visualizationSavedObjectTypeMigrations = { '7.3.1': flow(migrateFiltersAggQueryStringQueries), '7.4.2': flow(transformSplitFiltersStringToQueryObject), '7.7.0': flow(migrateOperatorKeyTypo), + '7.8.0': flow(migrateTsvbDefaultColorPalettes), }; diff --git a/test/functional/apps/visualize/_tsvb_time_series.ts b/test/functional/apps/visualize/_tsvb_time_series.ts index fa79190a5bf940..ac89c2b55e5140 100644 --- a/test/functional/apps/visualize/_tsvb_time_series.ts +++ b/test/functional/apps/visualize/_tsvb_time_series.ts @@ -25,7 +25,6 @@ export default function({ getPageObjects, getService }: FtrProviderContext) { const retry = getService('retry'); const log = getService('log'); const kibanaServer = getService('kibanaServer'); - const testSubjects = getService('testSubjects'); describe('visual builder', function describeIndexTests() { beforeEach(async () => { @@ -126,20 +125,18 @@ export default function({ getPageObjects, getService }: FtrProviderContext) { expect(actualCountMin).to.be('3 hours'); }); - // --reversed class is not implemented in @elastic\chart - describe.skip('Dark mode', () => { + describe('Dark mode', () => { before(async () => { await kibanaServer.uiSettings.update({ 'theme:darkMode': true, }); }); - it(`viz should have 'reversed' class when background color is white`, async () => { + it(`viz should have light class when background color is white`, async () => { await visualBuilder.clickPanelOptions('timeSeries'); await visualBuilder.setBackgroundColor('#FFFFFF'); - const classNames = await testSubjects.getAttribute('timeseriesChart', 'class'); - expect(classNames.includes('tvbVisTimeSeries--reversed')).to.be(true); + expect(await visualBuilder.checkTimeSeriesIsLight()).to.be(true); }); after(async () => { diff --git a/test/functional/page_objects/visual_builder_page.ts b/test/functional/page_objects/visual_builder_page.ts index b8e6c812b46bd5..12962b3a5cdef7 100644 --- a/test/functional/page_objects/visual_builder_page.ts +++ b/test/functional/page_objects/visual_builder_page.ts @@ -71,6 +71,10 @@ export function VisualBuilderPageProvider({ getService, getPageObjects }: FtrPro } } + public async checkTimeSeriesIsLight() { + return await find.existsByCssSelector('.tvbVisTimeSeriesLight'); + } + public async checkTimeSeriesLegendIsPresent() { const isPresent = await find.existsByCssSelector('.echLegend'); if (!isPresent) { From 3e6a1a26f5ea186d2ccd5763fee4d47580390207 Mon Sep 17 00:00:00 2001 From: Andrea Del Rio Date: Mon, 20 Apr 2020 12:11:34 -0700 Subject: [PATCH 12/54] [Alerting] "Create alert" and alert list design improvements (#63515) (#63899) * added header to actions section * adjusted some spacing in Create Alert * lighter text in Actions section headings * fixed bulk actions dropdown * improve alert collapsed item actions * improve dropdown and adjust some buttos * adjust font size of steps to match hierarchy * need to check master * improve collapsed actions menu * added periods to help texts * going back to EuiButtonEmpty to be able to use isLoading * fix prop * remove Fragment * remove translations we're not using * Fix functional tests Co-authored-by: Mike Cote Co-authored-by: Mike Cote Co-authored-by: Elastic Machine --- .../translations/translations/ja-JP.json | 5 +- .../translations/translations/zh-CN.json | 7 +- .../threshold/expression.scss | 12 +- .../threshold/expression.tsx | 8 +- .../components/prompts/empty_prompt.tsx | 2 - .../action_connector_form/action_form.tsx | 381 ++++++++++-------- .../components/actions_connectors_list.tsx | 2 - .../alerts_list/components/alerts_list.tsx | 2 - .../components/collapsed_item_actions.scss | 23 ++ .../components/collapsed_item_actions.tsx | 143 ++++--- .../components/alert_quick_edit_buttons.scss | 5 + .../components/alert_quick_edit_buttons.tsx | 123 +++--- .../components/bulk_operation_popover.tsx | 11 +- .../apps/triggers_actions_ui/alerts.ts | 30 +- 14 files changed, 426 insertions(+), 328 deletions(-) create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alerts_list/components/collapsed_item_actions.scss create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.scss diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index faa3e211a03fe3..c00c576f31a369 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -15965,7 +15965,7 @@ "xpack.triggersActionsUI.sections.alertAdd.saveButtonLabel": "保存", "xpack.triggersActionsUI.sections.alertAdd.saveErrorNotificationText": "アラートを作成できません。", "xpack.triggersActionsUI.sections.alertAdd.saveSuccessNotificationText": "「{alertName}」 を保存しました", - "xpack.triggersActionsUI.sections.alertAdd.selectIndex": "インデックスを選択してください。", + "xpack.triggersActionsUI.sections.alertAdd.selectIndex": "インデックスを選択してください", "xpack.triggersActionsUI.sections.alertAdd.threshold.closeIndexPopoverLabel": "閉じる", "xpack.triggersActionsUI.sections.alertAdd.threshold.fixErrorInExpressionBelowValidationMessage": "下の表現のエラーを修正してください。", "xpack.triggersActionsUI.sections.alertAdd.threshold.howToBroadenSearchQueryDescription": "* で検索クエリの範囲を広げます。", @@ -16049,7 +16049,6 @@ "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.muteAllTitle": "ミュート", "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.unmuteAllTitle": "ミュート解除", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.deleteTitle": "削除", - "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.enableTitle": "有効にする", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.muteTitle": "ミュート", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.popoverButtonTitle": "アクション", "xpack.triggersActionsUI.components.emptyPrompt.emptyButton": "アラートの作成", @@ -16771,4 +16770,4 @@ "xpack.watcher.watchEdit.thresholdWatchExpression.aggType.fieldIsRequiredValidationMessage": "フィールドを選択してください。", "xpack.watcher.watcherDescription": "アラートの作成、管理、監視によりデータへの変更を検知します。" } -} +} \ No newline at end of file diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 9641428b86dc61..b4b61b29151d70 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -15962,7 +15962,7 @@ "xpack.triggersActionsUI.sections.addModalConnectorForm.updateSuccessNotificationText": "已创建“{connectorName}”", "xpack.triggersActionsUI.sections.alertAdd.betaBadgeTooltipContent": "{pluginName} 为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束。", "xpack.triggersActionsUI.sections.alertAdd.cancelButtonLabel": "取消", - "xpack.triggersActionsUI.sections.alertAdd.conditionPrompt": "定义条件。", + "xpack.triggersActionsUI.sections.alertAdd.conditionPrompt": "定义条件", "xpack.triggersActionsUI.sections.alertAdd.errorLoadingAlertVisualizationTitle": "无法加载告警可视化", "xpack.triggersActionsUI.sections.alertAdd.flyoutTitle": "创建告警", "xpack.triggersActionsUI.sections.alertAdd.loadingAlertVisualizationDescription": "正在加载告警可视化……", @@ -15970,7 +15970,7 @@ "xpack.triggersActionsUI.sections.alertAdd.saveButtonLabel": "保存", "xpack.triggersActionsUI.sections.alertAdd.saveErrorNotificationText": "无法创建告警。", "xpack.triggersActionsUI.sections.alertAdd.saveSuccessNotificationText": "已保存“{alertName}”", - "xpack.triggersActionsUI.sections.alertAdd.selectIndex": "选择索引。", + "xpack.triggersActionsUI.sections.alertAdd.selectIndex": "选择索引", "xpack.triggersActionsUI.sections.alertAdd.threshold.closeIndexPopoverLabel": "关闭", "xpack.triggersActionsUI.sections.alertAdd.threshold.fixErrorInExpressionBelowValidationMessage": "表达式包含错误。", "xpack.triggersActionsUI.sections.alertAdd.threshold.howToBroadenSearchQueryDescription": "使用 * 可扩大您的查询范围。", @@ -16054,7 +16054,6 @@ "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.muteAllTitle": "静音", "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.unmuteAllTitle": "取消静音", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.deleteTitle": "删除", - "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.enableTitle": "启用", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.muteTitle": "静音", "xpack.triggersActionsUI.sections.alertsList.collapsedItemActons.popoverButtonTitle": "操作", "xpack.triggersActionsUI.components.emptyPrompt.emptyButton": "创建告警", @@ -16776,4 +16775,4 @@ "xpack.watcher.watchEdit.thresholdWatchExpression.aggType.fieldIsRequiredValidationMessage": "此字段必填。", "xpack.watcher.watcherDescription": "通过创建、管理和监测警报来检测数据中的更改。" } -} +} \ No newline at end of file diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.scss b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.scss index d0a7039ae24e17..3734cf5d5218bf 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.scss +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.scss @@ -1,3 +1,13 @@ .actAlertVisualization__chart { - height: $euiSize * 15; + height: $euiSize * 14; +} + +.actAddAlertSteps { + .euiStep__titleWrapper { + align-items: center; + } + + .euiStep__title { + @include euiTitle('xs'); + } } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx index 7557b17f5b67dd..43955db97f2957 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx @@ -283,7 +283,7 @@ export const IndexThresholdAlertTypeExpression: React.FunctionComponent @@ -396,7 +396,7 @@ export const IndexThresholdAlertTypeExpression: React.FunctionComponent @@ -445,12 +445,10 @@ export const IndexThresholdAlertTypeExpression: React.FunctionComponent ) : null} - - +
{canShowVizualization ? ( - void }) => ( data-test-subj="createFirstAlertButton" key="create-action" fill - iconType="plusInCircle" - iconSide="left" onClick={onCTAClicked} > - - - - - -
- - - - - - {checkEnabledResult.isEnabled === false && ( - - - - )} - - -
-
-
- - } - extraAction={ - { - const updatedActions = actions.filter((_item: AlertAction, i: number) => i !== index); - setAlertProperty(updatedActions); - setIsAddActionPanelOpen( - updatedActions.filter((item: AlertAction) => item.id !== actionItem.id).length === 0 - ); - setActiveActionItem(undefined); - }} - /> - } - paddingSize="l" - > - {accordionContent} - + + + + + + + +

+ + + + + + {checkEnabledResult.isEnabled === false && ( + + + + )} + + +

+
+
+ + } + extraAction={ + { + const updatedActions = actions.filter( + (_item: AlertAction, i: number) => i !== index + ); + setAlertProperty(updatedActions); + setIsAddActionPanelOpen( + updatedActions.filter((item: AlertAction) => item.id !== actionItem.id).length === + 0 + ); + setActiveActionItem(undefined); + }} + /> + } + paddingSize="l" + > + {accordionContent} +
+ +
); }; @@ -341,96 +349,103 @@ export const ActionForm = ({ const actionTypeRegistered = actionTypeRegistry.get(actionItem.actionTypeId); if (!actionTypeRegistered || actionItem.group !== defaultActionGroupId) return null; return ( - - - - - - -
- -
-
-
- - } - extraAction={ - { - const updatedActions = actions.filter((_item: AlertAction, i: number) => i !== index); - setAlertProperty(updatedActions); - setIsAddActionPanelOpen( - updatedActions.filter((item: AlertAction) => item.id !== actionItem.id).length === 0 - ); - setActiveActionItem(undefined); - }} - /> - } - paddingSize="l" - > - actionItem.id === emptyId) ? ( - - ) : ( - - ) + + + + + + + +

+ +

+
+
+ } - actions={[ - { - setActiveActionItem({ actionTypeId: actionItem.actionTypeId, index }); - setAddModalVisibility(true); + const updatedActions = actions.filter( + (_item: AlertAction, i: number) => i !== index + ); + setAlertProperty(updatedActions); + setIsAddActionPanelOpen( + updatedActions.filter((item: AlertAction) => item.id !== actionItem.id).length === + 0 + ); + setActiveActionItem(undefined); }} - > - - , - ]} - /> -
+ /> + } + paddingSize="l" + > + actionItem.id === emptyId) ? ( + + ) : ( + + ) + } + actions={[ + { + setActiveActionItem({ actionTypeId: actionItem.actionTypeId, index }); + setAddModalVisibility(true); + }} + > + + , + ]} + /> +
+ +
); }; @@ -537,19 +552,34 @@ export const ActionForm = ({ ) : ( - {alertActionsList} - - {isAddActionPanelOpen === false ? ( - setIsAddActionPanelOpen(true)} - > + +

- +

+
+ + {alertActionsList} + {isAddActionPanelOpen === false ? ( +
+ + + + setIsAddActionPanelOpen(true)} + > + + + + +
) : null} {isAddActionPanelOpen ? ( @@ -558,7 +588,7 @@ export const ActionForm = ({
@@ -571,6 +601,7 @@ export const ActionForm = ({ - + {isLoadingActionTypes ? ( { data-test-subj="createActionButton" key="create-action" fill - iconType="plusInCircle" - iconSide="left" onClick={() => setAddFlyoutVisibility(true)} > { key="create-alert" data-test-subj="createAlertButton" fill - iconType="plusInCircle" - iconSide="left" onClick={() => setAlertFlyoutVisibility(true)} > = ({ isOpen={isPopoverOpen} closePopover={() => setIsPopoverOpen(false)} ownFocus + panelPaddingSize="none" data-test-subj="collapsedItemActions" > - - { - if (item.enabled) { - await disableAlert(item); - } else { - await enableAlert(item); + +
+ { + if (item.enabled) { + await disableAlert(item); + } else { + await enableAlert(item); + } + onAlertChanged(); + }} + label={ + } - onAlertChanged(); - }} - label={ + /> + + - } - /> - - - { - if (item.muteAll) { - await unmuteAlert(item); - } else { - await muteAlert(item); + +
+
+ { + if (item.muteAll) { + await unmuteAlert(item); + } else { + await muteAlert(item); + } + onAlertChanged(); + }} + label={ + } - onAlertChanged(); - }} - label={ + /> + + - } - /> - - - - setAlertsToDelete([item.id])} - > - - - - + +
+ + setAlertsToDelete([item.id])} + > +
+
+ +
+
+ +

+ +

+
+
+
+
+
); }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.scss b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.scss new file mode 100644 index 00000000000000..a5b4cc258c1b59 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.scss @@ -0,0 +1,5 @@ +.actBulkActionPopover__deleteAll { + .euiButtonEmpty__text { + padding-top: $euiSizeXS; + } +} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.tsx index eeae0cf54f1a19..26bc8b869a06bd 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/alert_quick_edit_buttons.tsx @@ -5,9 +5,9 @@ */ import { i18n } from '@kbn/i18n'; -import React, { useState, Fragment } from 'react'; +import React, { useState } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiButtonEmpty } from '@elastic/eui'; +import { EuiButtonEmpty, EuiFlexItem, EuiFlexGroup } from '@elastic/eui'; import { Alert } from '../../../../types'; import { useAppDependencies } from '../../../app_context'; @@ -15,6 +15,7 @@ import { withBulkAlertOperations, ComponentOpts as BulkOperationsComponentOpts, } from './with_bulk_alert_api_operations'; +import './alert_quick_edit_buttons.scss'; export type ComponentOpts = { selectedItems: Alert[]; @@ -147,72 +148,84 @@ export const AlertQuickEditButtons: React.FunctionComponent = ({ } return ( - + {!allAlertsMuted && ( - - - + + + + + )} {allAlertsMuted && ( - - - + + + + + )} {allAlertsDisabled && ( - - - + + + + + )} {!allAlertsDisabled && ( + + + + + + )} + - )} - - - - - + +
); }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/bulk_operation_popover.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/bulk_operation_popover.tsx index d0fd0e17928183..935b0bd8985ca8 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/bulk_operation_popover.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/bulk_operation_popover.tsx @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { useState } from 'react'; +import React, { useState, Fragment } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { EuiButton, EuiFormRow, EuiPopover } from '@elastic/eui'; +import { EuiButton, EuiPopover } from '@elastic/eui'; export const BulkOperationPopover: React.FunctionComponent = ({ children }) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); @@ -16,6 +16,7 @@ export const BulkOperationPopover: React.FunctionComponent = ({ children }) => { isOpen={isPopoverOpen} closePopover={() => setIsPopoverOpen(false)} data-test-subj="bulkAction" + panelPaddingSize="s" button={ { > {children && React.Children.map(children, child => - React.isValidElement(child) ? ( - {React.cloneElement(child, {})} - ) : ( - child - ) + React.isValidElement(child) ? {React.cloneElement(child, {})} : child )} ); diff --git a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts index 701ca0eba581fb..7bc9b502ec67c4 100644 --- a/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts +++ b/x-pack/test/functional_with_es_ssl/apps/triggers_actions_ui/alerts.ts @@ -343,15 +343,15 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('collapsedItemActions'); - await pageObjects.triggersActionsUI.toggleSwitch('enableSwitch'); + await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); await testSubjects.click('collapsedItemActions'); - const enableSwitchAfterDisable = await testSubjects.find('enableSwitch'); - const isChecked = await enableSwitchAfterDisable.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + const disableSwitchAfterDisable = await testSubjects.find('disableSwitch'); + const isChecked = await disableSwitchAfterDisable.getAttribute('aria-checked'); + expect(isChecked).to.eql('true'); }); it('should re-enable single alert', async () => { @@ -361,21 +361,21 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('collapsedItemActions'); - await pageObjects.triggersActionsUI.toggleSwitch('enableSwitch'); + await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); await testSubjects.click('collapsedItemActions'); - await pageObjects.triggersActionsUI.toggleSwitch('enableSwitch'); + await pageObjects.triggersActionsUI.toggleSwitch('disableSwitch'); await pageObjects.triggersActionsUI.searchAlerts(createdAlert.name); await testSubjects.click('collapsedItemActions'); - const enableSwitchAfterReEnable = await testSubjects.find('enableSwitch'); - const isChecked = await enableSwitchAfterReEnable.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + const disableSwitchAfterReEnable = await testSubjects.find('disableSwitch'); + const isChecked = await disableSwitchAfterReEnable.getAttribute('aria-checked'); + expect(isChecked).to.eql('false'); }); it('should mute single alert', async () => { @@ -504,9 +504,9 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('collapsedItemActions'); - const enableSwitch = await testSubjects.find('enableSwitch'); - const isChecked = await enableSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('false'); + const disableSwitch = await testSubjects.find('disableSwitch'); + const isChecked = await disableSwitch.getAttribute('aria-checked'); + expect(isChecked).to.eql('true'); }); it('should enable all selection', async () => { @@ -529,9 +529,9 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { await testSubjects.click('collapsedItemActions'); - const enableSwitch = await testSubjects.find('enableSwitch'); - const isChecked = await enableSwitch.getAttribute('aria-checked'); - expect(isChecked).to.eql('true'); + const disableSwitch = await testSubjects.find('disableSwitch'); + const isChecked = await disableSwitch.getAttribute('aria-checked'); + expect(isChecked).to.eql('false'); }); it('should delete all selection', async () => { From 567df0d568099bc8b36d770d3c0edab45ff5451f Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Mon, 20 Apr 2020 14:23:24 -0500 Subject: [PATCH 13/54] [7.x] [Metrics Alerts] Fix saving doc count alerts (#63880) --- .../infra/public/components/alerting/metrics/expression.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx index 7de52840777f9c..8353158d3a9c8b 100644 --- a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx +++ b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx @@ -378,7 +378,11 @@ export const ExpressionRow: React.FC = props => { const updateAggType = useCallback( (at: string) => { - setAlertParams(expressionId, { ...expression, aggType: at as MetricExpression['aggType'] }); + setAlertParams(expressionId, { + ...expression, + aggType: at as MetricExpression['aggType'], + metric: at === 'count' ? undefined : expression.metric, + }); }, [expressionId, expression, setAlertParams] ); From e6f1fc9c2145b526d10f776dba995b30f11e0913 Mon Sep 17 00:00:00 2001 From: Yara Tercero Date: Mon, 20 Apr 2020 16:22:43 -0400 Subject: [PATCH 14/54] [SIEM][Detection Engine] - Move All Rules tabs to match other tabs UI (#63920) (#63972) ### Summary Restructure All Rules table tabs to be outside of the table, similar to other tabbed tables in UI. --- .../detection_engine/rules/all/index.test.tsx | 192 +++++++++++++++++- .../detection_engine/rules/all/index.tsx | 52 ++++- .../all_rules_tables/index.test.tsx | 74 +++++++ .../components/all_rules_tables/index.tsx | 51 +---- 4 files changed, 323 insertions(+), 46 deletions(-) diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx index f4955c2a93b8dd..59b3b02ff3587a 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx @@ -5,10 +5,138 @@ */ import React from 'react'; -import { shallow } from 'enzyme'; +import { shallow, mount } from 'enzyme'; +import { act } from 'react-dom/test-utils'; +import { createKibanaContextProviderMock } from '../../../../mock/kibana_react'; +import { TestProviders } from '../../../../mock'; +import { wait } from '../../../../lib/helpers'; import { AllRules } from './index'; +jest.mock('./reducer', () => { + return { + allRulesReducer: jest.fn().mockReturnValue(() => ({ + exportRuleIds: [], + filterOptions: { + filter: 'some filter', + sortField: 'some sort field', + sortOrder: 'desc', + }, + loadingRuleIds: [], + loadingRulesAction: null, + pagination: { + page: 1, + perPage: 20, + total: 1, + }, + rules: [ + { + actions: [], + created_at: '2020-02-14T19:49:28.178Z', + created_by: 'elastic', + description: 'jibber jabber', + enabled: false, + false_positives: [], + filters: [], + from: 'now-660s', + id: 'rule-id-1', + immutable: true, + index: ['endgame-*'], + interval: '10m', + language: 'kuery', + max_signals: 100, + name: 'Credential Dumping - Detected - Elastic Endpoint', + output_index: '.siem-signals-default', + query: 'host.name:*', + references: [], + risk_score: 73, + rule_id: '571afc56-5ed9-465d-a2a9-045f099f6e7e', + severity: 'high', + tags: ['Elastic', 'Endpoint'], + threat: [], + throttle: null, + to: 'now', + type: 'query', + updated_at: '2020-02-14T19:49:28.320Z', + updated_by: 'elastic', + version: 1, + }, + ], + selectedRuleIds: [], + })), + }; +}); + +jest.mock('../../../../containers/detection_engine/rules', () => { + return { + useRules: jest.fn().mockReturnValue([ + false, + { + page: 1, + perPage: 20, + total: 1, + data: [ + { + actions: [], + created_at: '2020-02-14T19:49:28.178Z', + created_by: 'elastic', + description: 'jibber jabber', + enabled: false, + false_positives: [], + filters: [], + from: 'now-660s', + id: 'rule-id-1', + immutable: true, + index: ['endgame-*'], + interval: '10m', + language: 'kuery', + max_signals: 100, + name: 'Credential Dumping - Detected - Elastic Endpoint', + output_index: '.siem-signals-default', + query: 'host.name:*', + references: [], + risk_score: 73, + rule_id: '571afc56-5ed9-465d-a2a9-045f099f6e7e', + severity: 'high', + tags: ['Elastic', 'Endpoint'], + threat: [], + throttle: null, + to: 'now', + type: 'query', + updated_at: '2020-02-14T19:49:28.320Z', + updated_by: 'elastic', + version: 1, + }, + ], + }, + ]), + useRulesStatuses: jest.fn().mockReturnValue({ + loading: false, + rulesStatuses: [ + { + current_status: { + alert_id: 'alertId', + bulk_create_time_durations: ['2235.01'], + gap: null, + last_failure_at: null, + last_failure_message: null, + last_look_back_date: new Date().toISOString(), + last_success_at: new Date().toISOString(), + last_success_message: 'it is a success', + search_after_time_durations: ['616.97'], + status: 'succeeded', + status_date: new Date().toISOString(), + }, + failures: [], + id: '12345678987654321', + activate: true, + name: 'Test rule', + }, + ], + }), + }; +}); + jest.mock('react-router-dom', () => { const originalModule = jest.requireActual('react-router-dom'); @@ -37,4 +165,66 @@ describe('AllRules', () => { expect(wrapper.find('[title="All rules"]')).toHaveLength(1); }); + + it('renders rules tab', async () => { + const KibanaContext = createKibanaContextProviderMock(); + const wrapper = mount( + + + + + + ); + + await act(async () => { + await wait(); + + expect(wrapper.exists('[data-test-subj="monitoring-table"]')).toBeFalsy(); + expect(wrapper.exists('[data-test-subj="rules-table"]')).toBeTruthy(); + }); + }); + + it('renders monitoring tab when monitoring tab clicked', async () => { + const KibanaContext = createKibanaContextProviderMock(); + + const wrapper = mount( + + + + + + ); + const monitoringTab = wrapper.find('[data-test-subj="allRulesTableTab-monitoring"] button'); + monitoringTab.simulate('click'); + + await act(async () => { + wrapper.update(); + await wait(); + + expect(wrapper.exists('[data-test-subj="monitoring-table"]')).toBeTruthy(); + expect(wrapper.exists('[data-test-subj="rules-table"]')).toBeFalsy(); + }); + }); }); diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.tsx index e96ed856208bde..18ca4d42bd018d 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/all/index.tsx @@ -4,7 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EuiBasicTable, EuiContextMenuPanel, EuiLoadingContent, EuiSpacer } from '@elastic/eui'; +import { + EuiBasicTable, + EuiContextMenuPanel, + EuiLoadingContent, + EuiSpacer, + EuiTab, + EuiTabs, +} from '@elastic/eui'; import React, { useCallback, useEffect, useMemo, useReducer, useRef, useState } from 'react'; import { useHistory } from 'react-router-dom'; import uuid from 'uuid'; @@ -75,6 +82,24 @@ interface AllRulesProps { setRefreshRulesData: (refreshRule: (refreshPrePackagedRule?: boolean) => void) => void; } +export enum AllRulesTabs { + rules = 'rules', + monitoring = 'monitoring', +} + +const allRulesTabs = [ + { + id: AllRulesTabs.rules, + name: i18n.RULES_TAB, + disabled: false, + }, + { + id: AllRulesTabs.monitoring, + name: i18n.MONITORING_TAB, + disabled: false, + }, +]; + /** * Table Component for displaying all Rules for a given cluster. Provides the ability to filter * by name, sort by enabled, and perform the following actions: @@ -114,6 +139,7 @@ export const AllRules = React.memo( const history = useHistory(); const [, dispatchToaster] = useStateToaster(); const mlCapabilities = useMlCapabilities(); + const [allRulesTab, setAllRulesTab] = useState(AllRulesTabs.rules); // TODO: Refactor license check + hasMlAdminPermissions to common check const hasMlPermissions = @@ -271,6 +297,25 @@ export const AllRules = React.memo( return false; }, [loadingRuleIds, loadingRulesAction]); + const tabs = useMemo( + () => ( + + {allRulesTabs.map(tab => ( + setAllRulesTab(tab.id)} + isSelected={tab.id === allRulesTab} + disabled={tab.disabled} + key={tab.id} + > + {tab.name} + + ))} + + ), + [allRulesTabs, allRulesTab, setAllRulesTab] + ); + return ( <> ( exportSelectedData={exportRules} /> + {tabs} + <> @@ -321,7 +368,7 @@ export const AllRules = React.memo( )} {showRulesTable({ rulesCustomInstalled, rulesInstalled }) && !initLoading && ( <> - + @@ -352,6 +399,7 @@ export const AllRules = React.memo( { it('renders correctly', () => { @@ -16,6 +17,7 @@ describe('AllRulesTables', () => { return ( { expect(wrapper.dive().find('[data-test-subj="rules-table"]')).toHaveLength(1); }); + + it('renders rules tab when "selectedTab" is "rules"', () => { + const Component = () => { + const ref = useRef(); + + return ( + + ); + }; + const wrapper = shallow(); + + expect(wrapper.dive().find('[data-test-subj="rules-table"]')).toHaveLength(1); + expect(wrapper.dive().find('[data-test-subj="monitoring-table"]')).toHaveLength(0); + }); + + it('renders monitoring tab when "selectedTab" is "monitoring"', () => { + const Component = () => { + const ref = useRef(); + + return ( + + ); + }; + const wrapper = shallow(); + + expect(wrapper.dive().find('[data-test-subj="rules-table"]')).toHaveLength(0); + expect(wrapper.dive().find('[data-test-subj="monitoring-table"]')).toHaveLength(1); + }); }); diff --git a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx index 31aaa426e4f3b8..8ea5606d0082c0 100644 --- a/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx +++ b/x-pack/legacy/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx @@ -7,13 +7,11 @@ import { EuiBasicTable, EuiBasicTableColumn, - EuiTab, - EuiTabs, EuiEmptyPrompt, Direction, EuiTableSelectionType, } from '@elastic/eui'; -import React, { useMemo, memo, useState } from 'react'; +import React, { useMemo, memo } from 'react'; import styled from 'styled-components'; import { EuiBasicTableOnChange } from '../../types'; @@ -23,6 +21,7 @@ import { RuleStatusRowItemType, } from '../../../../../pages/detection_engine/rules/all/columns'; import { Rule, Rules } from '../../../../../containers/detection_engine/rules'; +import { AllRulesTabs } from '../../all'; // EuiBasicTable give me a hardtime with adding the ref attributes so I went the easy way // after few hours of fight with typescript !!!! I lost :( @@ -57,27 +56,10 @@ interface AllRulesTablesProps { }; tableOnChangeCallback: ({ page, sort }: EuiBasicTableOnChange) => void; tableRef?: React.MutableRefObject; + selectedTab: AllRulesTabs; } -enum AllRulesTabs { - rules = 'rules', - monitoring = 'monitoring', -} - -const allRulesTabs = [ - { - id: AllRulesTabs.rules, - name: i18n.RULES_TAB, - disabled: false, - }, - { - id: AllRulesTabs.monitoring, - name: i18n.MONITORING_TAB, - disabled: false, - }, -]; - -const AllRulesTablesComponent: React.FC = ({ +export const AllRulesTablesComponent: React.FC = ({ euiBasicTableSelectionProps, hasNoPermissions, monitoringColumns, @@ -88,34 +70,17 @@ const AllRulesTablesComponent: React.FC = ({ sorting, tableOnChangeCallback, tableRef, + selectedTab, }) => { - const [allRulesTab, setAllRulesTab] = useState(AllRulesTabs.rules); const emptyPrompt = useMemo(() => { return ( {i18n.NO_RULES}} titleSize="xs" body={i18n.NO_RULES_BODY} /> ); }, []); - const tabs = useMemo( - () => ( - - {allRulesTabs.map(tab => ( - setAllRulesTab(tab.id)} - isSelected={tab.id === allRulesTab} - disabled={tab.disabled} - key={tab.id} - > - {tab.name} - - ))} - - ), - [allRulesTabs, allRulesTab, setAllRulesTab] - ); + return ( <> - {tabs} - {allRulesTab === AllRulesTabs.rules && ( + {selectedTab === AllRulesTabs.rules && ( = ({ selection={hasNoPermissions ? undefined : euiBasicTableSelectionProps} /> )} - {allRulesTab === AllRulesTabs.monitoring && ( + {selectedTab === AllRulesTabs.monitoring && ( Date: Mon, 20 Apr 2020 14:23:18 -0600 Subject: [PATCH 15/54] [SIEM][Detections Engine] - Update rule.lists to be rule.exceptions_list (#63717) (#63962) ### Summary [63717] This PR updates the rules lists param to be `exceptions_list`. This is done in an attempt to make the terminology less confusing as lists will generally be referring to the big lists values. It should also make it more clear that the `exceptions_list` logic is being applied as a double not. --- .../routes/__mocks__/request_responses.ts | 2 +- .../routes/__mocks__/utils.ts | 2 +- .../routes/rules/create_rules_bulk_route.ts | 4 +-- .../routes/rules/create_rules_route.ts | 4 +-- .../routes/rules/import_rules_route.ts | 6 ++-- .../routes/rules/update_rules_bulk_route.ts | 4 +-- .../routes/rules/update_rules_route.ts | 4 +-- .../detection_engine/routes/rules/utils.ts | 2 +- .../routes/rules/validate.test.ts | 2 +- .../add_prepackaged_rules_schema.test.ts | 24 ++++++++-------- .../schemas/add_prepackaged_rules_schema.ts | 2 +- .../schemas/create_rules_schema.test.ts | 24 ++++++++-------- .../routes/schemas/create_rules_schema.ts | 2 +- .../schemas/import_rules_schema.test.ts | 24 ++++++++-------- .../routes/schemas/import_rules_schema.ts | 2 +- .../routes/schemas/patch_rules_schema.test.ts | 28 +++++++++---------- .../routes/schemas/patch_rules_schema.ts | 2 +- .../schemas/response/__mocks__/utils.ts | 2 +- .../schemas/response/rules_schema.test.ts | 6 ++-- .../routes/schemas/response/rules_schema.ts | 4 +-- .../schemas/update_rules_schema.test.ts | 24 ++++++++-------- .../routes/schemas/update_rules_schema.ts | 2 +- .../detection_engine/rules/create_rules.ts | 8 +++--- .../create_rules_stream_from_ndjson.test.ts | 20 ++++++------- .../rules/get_export_all.test.ts | 2 +- .../rules/get_export_by_object_ids.test.ts | 4 +-- .../rules/install_prepacked_rules.ts | 4 +-- .../lib/detection_engine/rules/patch_rules.ts | 6 ++-- .../detection_engine/rules/update_rules.ts | 8 +++--- .../scripts/rules/patches/update_list.json | 2 +- .../rules/queries/lists/query_with_and.json | 2 +- .../queries/lists/query_with_excluded.json | 2 +- .../queries/lists/query_with_exists.json | 2 +- .../rules/queries/lists/query_with_list.json | 2 +- .../rules/queries/lists/query_with_match.json | 2 +- .../queries/lists/query_with_match_all.json | 2 +- .../rules/queries/lists/query_with_or.json | 2 +- .../scripts/rules/updates/update_list.json | 2 +- .../signals/__mocks__/es_results.ts | 2 +- .../signals/build_bulk_body.test.ts | 8 +++--- .../signals/build_exceptions_query.ts | 2 +- .../signals/build_rule.test.ts | 6 ++-- .../detection_engine/signals/build_rule.ts | 2 +- .../detection_engine/signals/get_filter.ts | 4 +-- .../signals/signal_params_schema.ts | 2 +- .../signals/signal_rule_alert_type.ts | 4 +-- .../siem/server/lib/detection_engine/types.ts | 2 +- .../security_and_spaces/tests/utils.ts | 4 +-- 48 files changed, 141 insertions(+), 141 deletions(-) diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/request_responses.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/request_responses.ts index 469f91c8211cc7..8c97d4436a561f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/request_responses.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/request_responses.ts @@ -448,7 +448,7 @@ export const getResult = (): RuleAlertType => ({ references: ['http://www.example.com', 'https://ww.example.com'], note: '# Investigative notes', version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/utils.ts index c929b0718207d6..6f628170271f31 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/__mocks__/utils.ts @@ -138,7 +138,7 @@ export const getOutputRuleAlertForRest = (): Omit< ], }, ], - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index a40952c078a379..2d7ddb79e5af55 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -86,7 +86,7 @@ export const createRulesBulkRoute = (router: IRouter) => { timeline_id: timelineId, timeline_title: timelineTitle, version, - lists, + exceptions_list, } = payloadRule; const ruleIdOrUuid = ruleId ?? uuid.v4(); try { @@ -143,7 +143,7 @@ export const createRulesBulkRoute = (router: IRouter) => { references, note, version, - lists, + exceptions_list, actions: throttle === 'rule' ? actions : [], // Only enable actions if throttle is set to rule, otherwise we are a notification and should not enable it, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts index 19c5d479deb720..1f0896686aca05 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -66,7 +66,7 @@ export const createRulesRoute = (router: IRouter): void => { type, references, note, - lists, + exceptions_list, } = request.body; const siemResponse = buildSiemResponse(response); @@ -131,7 +131,7 @@ export const createRulesRoute = (router: IRouter): void => { references, note, version: 1, - lists, + exceptions_list, actions: throttle === 'rule' ? actions : [], // Only enable actions if throttle is rule, otherwise we are a notification and should not enable it, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts index 58da27916c1985..527fab786910fc 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -138,7 +138,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { timeline_id: timelineId, timeline_title: timelineTitle, version, - lists, + exceptions_list, } = parsedRule; try { @@ -195,7 +195,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { references, note, version, - lists, + exceptions_list, actions: [], // Actions are not imported nor exported at this time }); resolve({ rule_id: ruleId, status_code: 200 }); @@ -232,7 +232,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { references, note, version, - lists, + exceptions_list, anomalyThreshold, machineLearningJobId, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 8f319063b2a9a9..6db91d74294fc6 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -81,7 +81,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { references, note, version, - lists, + exceptions_list, } = payloadRule; const finalIndex = outputIndex ?? siemClient.signalsIndex; const idOrRuleIdOrUnknown = id ?? ruleId ?? '(unknown id)'; @@ -121,7 +121,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { references, note, version, - lists, + exceptions_list, actions, }); if (rule != null) { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts index 7d69af4bcbd9bf..7dbbe5a22ab46a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -67,7 +67,7 @@ export const updateRulesRoute = (router: IRouter) => { references, note, version, - lists, + exceptions_list, } = request.body; const siemResponse = buildSiemResponse(response); @@ -117,7 +117,7 @@ export const updateRulesRoute = (router: IRouter) => { references, note, version, - lists, + exceptions_list, actions: throttle === 'rule' ? actions : [], // Only enable actions if throttle is rule, otherwise we are a notification and should not enable it }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts index 49d40354e68afa..67b0c4462655c2 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/utils.ts @@ -148,7 +148,7 @@ export const transformAlertToRule = ( last_failure_message: ruleStatus?.attributes.lastFailureMessage, last_success_message: ruleStatus?.attributes.lastSuccessMessage, // TODO: (LIST-FEATURE) Remove hasListsFeature() check once we have lists available for a release - lists: hasListsFeature() ? alert.params.lists : null, + exceptions_list: hasListsFeature() ? alert.params.exceptions_list : null, }); }; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts index 3de801a5b6b173..9069202d4d3aa5 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.test.ts @@ -71,7 +71,7 @@ export const ruleOutput: RulesSchema = { }, }, ], - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.test.ts index 346da53736ad6c..226dea7c20344b 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.test.ts @@ -1542,8 +1542,8 @@ describe('add prepackaged rules schema', () => { // on demand. Since they are per module, we have a an issue where the ENV variables do not take effect. It is better we change all the // schema's to be function calls to avoid global side effects or just wait until the feature is available. If you want to test this early, // you can remove the .skip and set your env variable of export ELASTIC_XPACK_SIEM_LISTS_FEATURE=true locally - describe.skip('lists', () => { - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and lists] does validate', () => { + describe.skip('exceptions_list', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and exceptions_list] does validate', () => { expect( addPrepackagedRulesSchema.validate>({ rule_id: 'rule-1', @@ -1558,7 +1558,7 @@ describe('add prepackaged rules schema', () => { risk_score: 50, note: '# some markdown', version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1594,7 +1594,7 @@ describe('add prepackaged rules schema', () => { ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty exceptions_list] does validate', () => { expect( addPrepackagedRulesSchema.validate>({ rule_id: 'rule-1', @@ -1608,15 +1608,15 @@ describe('add prepackaged rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [], + exceptions_list: [], version: 1, }).error ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid lists] does NOT validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid exceptions_list] does NOT validate', () => { expect( - addPrepackagedRulesSchema.validate>>({ + addPrepackagedRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1628,17 +1628,17 @@ describe('add prepackaged rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [{ invalid_value: 'invalid value' }], + exceptions_list: [{ invalid_value: 'invalid value' }], version: 1, }).error.message ).toEqual( - 'child "lists" fails because ["lists" at position 0 fails because [child "field" fails because ["field" is required]]]' + 'child "exceptions_list" fails because ["exceptions_list" at position 0 fails because [child "field" fails because ["field" is required]]]' ); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent lists] does validate with empty lists', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent exceptions_list] does validate with empty exceptions_list', () => { expect( - addPrepackagedRulesSchema.validate>>({ + addPrepackagedRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1651,7 +1651,7 @@ describe('add prepackaged rules schema', () => { risk_score: 50, note: '# some markdown', version: 1, - }).value.lists + }).value.exceptions_list ).toEqual([]); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.ts index 006fc81e3ee87a..0e82a9b979c7b9 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/add_prepackaged_rules_schema.ts @@ -114,5 +114,5 @@ export const addPrepackagedRulesSchema = Joi.object({ version: version.required(), // TODO: (LIST-FEATURE) Remove the hasListsFeatures once this is ready for release - lists: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), + exceptions_list: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.test.ts index 0d7b562b97b2cc..1e2941015b7355 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.test.ts @@ -1510,8 +1510,8 @@ describe('create rules schema', () => { // on demand. Since they are per module, we have a an issue where the ENV variables do not take effect. It is better we change all the // schema's to be function calls to avoid global side effects or just wait until the feature is available. If you want to test this early, // you can remove the .skip and set your env variable of export ELASTIC_XPACK_SIEM_LISTS_FEATURE=true locally - describe.skip('lists', () => { - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and lists] does validate', () => { + describe.skip('exceptions_list', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and exceptions_list] does validate', () => { expect( createRulesSchema.validate>({ rule_id: 'rule-1', @@ -1525,7 +1525,7 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1561,7 +1561,7 @@ describe('create rules schema', () => { ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty exceptions_list] does validate', () => { expect( createRulesSchema.validate>({ rule_id: 'rule-1', @@ -1575,14 +1575,14 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [], + exceptions_list: [], }).error ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid lists] does NOT validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid exceptions_list] does NOT validate', () => { expect( - createRulesSchema.validate>>({ + createRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1594,16 +1594,16 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [{ invalid_value: 'invalid value' }], + exceptions_list: [{ invalid_value: 'invalid value' }], }).error.message ).toEqual( - 'child "lists" fails because ["lists" at position 0 fails because [child "field" fails because ["field" is required]]]' + 'child "exceptions_list" fails because ["exceptions_list" at position 0 fails because [child "field" fails because ["field" is required]]]' ); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent lists] does validate with empty lists', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent exceptions_list] does validate with empty exceptions_list', () => { expect( - createRulesSchema.validate>>({ + createRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1615,7 +1615,7 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - }).value.lists + }).value.exceptions_list ).toEqual([]); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.ts index 5213f3faaf4865..dec8b5ccbc790e 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/create_rules_schema.ts @@ -98,5 +98,5 @@ export const createRulesSchema = Joi.object({ version: version.default(1), // TODO: (LIST-FEATURE) Remove the hasListsFeatures once this is ready for release - lists: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), + exceptions_list: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.test.ts index b8d601b7438954..d28530ffb789e3 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.test.ts @@ -1729,8 +1729,8 @@ describe('import rules schema', () => { // on demand. Since they are per module, we have a an issue where the ENV variables do not take effect. It is better we change all the // schema's to be function calls to avoid global side effects or just wait until the feature is available. If you want to test this early, // you can remove the .skip and set your env variable of export ELASTIC_XPACK_SIEM_LISTS_FEATURE=true locally - describe.skip('lists', () => { - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and lists] does validate', () => { + describe.skip('exceptions_list', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and exceptions_list] does validate', () => { expect( importRulesSchema.validate>({ rule_id: 'rule-1', @@ -1744,7 +1744,7 @@ describe('import rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1780,7 +1780,7 @@ describe('import rules schema', () => { ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty exceptions_list] does validate', () => { expect( importRulesSchema.validate>({ rule_id: 'rule-1', @@ -1794,14 +1794,14 @@ describe('import rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [], + exceptions_list: [], }).error ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid lists] does NOT validate and lists is empty', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid exceptions_list] does NOT validate and exceptions_list is empty', () => { expect( - importRulesSchema.validate>>({ + importRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1813,16 +1813,16 @@ describe('import rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [{ invalid_value: 'invalid value' }], + exceptions_list: [{ invalid_value: 'invalid value' }], }).error.message ).toEqual( - 'child "lists" fails because ["lists" at position 0 fails because [child "field" fails because ["field" is required]]]' + 'child "exceptions_list" fails because ["exceptions_list" at position 0 fails because [child "field" fails because ["field" is required]]]' ); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent exceptions_list] does validate', () => { expect( - importRulesSchema.validate>>({ + importRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1834,7 +1834,7 @@ describe('import rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - }).value.lists + }).value.exceptions_list ).toEqual([]); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.ts index 56aa45659fda7e..d3c728ebac1a9d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/import_rules_schema.ts @@ -119,7 +119,7 @@ export const importRulesSchema = Joi.object({ updated_by, // TODO: (LIST-FEATURE) Remove the hasListsFeatures once this is ready for release - lists: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), + exceptions_list: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), }); export const importRulesQuerySchema = Joi.object({ diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.test.ts index 02655e3972d819..755c0b2ccaa3f9 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.test.ts @@ -1213,8 +1213,8 @@ describe('patch rules schema', () => { // on demand. Since they are per module, we have a an issue where the ENV variables do not take effect. It is better we change all the // schema's to be function calls to avoid global side effects or just wait until the feature is available. If you want to test this early, // you can remove the .skip and set your env variable of export ELASTIC_XPACK_SIEM_LISTS_FEATURE=true locally - describe.skip('lists', () => { - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and lists] does validate', () => { + describe.skip('exceptions_list', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and exceptions_list] does validate', () => { expect( patchRulesSchema.validate>({ rule_id: 'rule-1', @@ -1228,7 +1228,7 @@ describe('patch rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1264,11 +1264,11 @@ describe('patch rules schema', () => { ).toBeFalsy(); }); - test('lists can be patched', () => { + test('exceptions_list can be patched', () => { expect( patchRulesSchema.validate>({ rule_id: 'some id', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1301,7 +1301,7 @@ describe('patch rules schema', () => { ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty exceptions_list] does validate', () => { expect( patchRulesSchema.validate>({ rule_id: 'rule-1', @@ -1315,14 +1315,14 @@ describe('patch rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [], + exceptions_list: [], }).error ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid lists] does NOT validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid exceptions_list] does NOT validate', () => { expect( - patchRulesSchema.validate>>({ + patchRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1334,16 +1334,16 @@ describe('patch rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [{ invalid_value: 'invalid value' }], + exceptions_list: [{ invalid_value: 'invalid value' }], }).error.message ).toEqual( - 'child "lists" fails because ["lists" at position 0 fails because [child "field" fails because ["field" is required]]]' + 'child "exceptions_list" fails because ["exceptions_list" at position 0 fails because [child "field" fails because ["field" is required]]]' ); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent lists] does validate with empty lists', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent exceptions_list] does validate with empty exceptions_list', () => { expect( - patchRulesSchema.validate>>({ + patchRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1355,7 +1355,7 @@ describe('patch rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - }).value.lists + }).value.exceptions_list ).toEqual([]); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.ts index 52aefa29884c3d..503bc64df237c8 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/patch_rules_schema.ts @@ -78,5 +78,5 @@ export const patchRulesSchema = Joi.object({ version, // TODO: (LIST-FEATURE) Remove the hasListsFeatures once this is ready for release - lists: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), + exceptions_list: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), }).xor('id', 'rule_id'); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts index d5ea950d163f57..21f18f9db55fba 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts @@ -63,7 +63,7 @@ export const getBaseResponsePayload = (anchorDate: string = ANCHOR_DATE): RulesS language: 'kuery', rule_id: 'query-rule-id', interval: '5m', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts index fb9ff2c28dc44e..4bfc51c1a66aab 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts @@ -207,7 +207,7 @@ describe('rules_schema', () => { }); // TODO: (LIST-FEATURE) Remove this test once the feature flag is deployed - test('it should remove lists when we need it to be removed because the feature is off but there exists a list in the data', () => { + test('it should remove exceptions_list when we need it to be removed because the feature is off but there exists a list in the data', () => { const payload = getBaseResponsePayload(); const decoded = rulesSchema.decode(payload); const listRemoved = removeList(decoded); @@ -246,9 +246,9 @@ describe('rules_schema', () => { }); }); - test('it should work with lists that are not there and not cause invalidation or errors', () => { + test('it should work with exceptions_list that are not there and not cause invalidation or errors', () => { const payload = getBaseResponsePayload(); - const { lists, ...payloadWithoutLists } = payload; + const { exceptions_list, ...payloadWithoutLists } = payload; const decoded = rulesSchema.decode(payloadWithoutLists); const listRemoved = removeList(decoded); const message = pipe(listRemoved, foldLeftRight); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.ts index 1574e8f5aa6e1c..fb1ee8e670e312 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.ts @@ -87,7 +87,7 @@ export const requiredRulesSchema = t.type({ updated_at, created_by, version, - lists: ListsDefaultArray, + exceptions_list: ListsDefaultArray, }); export type RequiredRulesSchema = t.TypeOf; @@ -172,7 +172,7 @@ export const removeList = ( ): Either => { const onLeft = (errors: t.Errors): Either => left(errors); const onRight = (decodedValue: RequiredRulesSchema): Either => { - delete decodedValue.lists; + delete decodedValue.exceptions_list; return right(decodedValue); }; const folded = fold(onLeft, onRight); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.test.ts index 78fa7d6cc71add..b89df0fc0f3ab2 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.test.ts @@ -1536,8 +1536,8 @@ describe('create rules schema', () => { // on demand. Since they are per module, we have a an issue where the ENV variables do not take effect. It is better we change all the // schema's to be function calls to avoid global side effects or just wait until the feature is available. If you want to test this early, // you can remove the .skip and set your env variable of export ELASTIC_XPACK_SIEM_LISTS_FEATURE=true locally - describe.skip('lists', () => { - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and lists] does validate', () => { + describe.skip('exceptions_list', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and exceptions_list] does validate', () => { expect( updateRulesSchema.validate>({ rule_id: 'rule-1', @@ -1551,7 +1551,7 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -1584,7 +1584,7 @@ describe('create rules schema', () => { ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty lists] does validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and empty exceptions_list] does validate', () => { expect( updateRulesSchema.validate>({ rule_id: 'rule-1', @@ -1598,14 +1598,14 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [], + exceptions_list: [], }).error ).toBeFalsy(); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid lists] does NOT validate', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and invalid exceptions_list] does NOT validate', () => { expect( - updateRulesSchema.validate>>({ + updateRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1617,16 +1617,16 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - lists: [{ invalid_value: 'invalid value' }], + exceptions_list: [{ invalid_value: 'invalid value' }], }).error.message ).toEqual( - 'child "lists" fails because ["lists" at position 0 fails because [child "field" fails because ["field" is required]]]' + 'child "exceptions_list" fails because ["exceptions_list" at position 0 fails because [child "field" fails because ["field" is required]]]' ); }); - test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent lists] does validate with empty lists', () => { + test('[rule_id, description, from, to, index, name, severity, interval, type, filter, risk_score, note, and non-existent exceptions_list] does validate with empty exceptions_list', () => { expect( - updateRulesSchema.validate>>({ + updateRulesSchema.validate>>({ rule_id: 'rule-1', description: 'some description', from: 'now-5m', @@ -1638,7 +1638,7 @@ describe('create rules schema', () => { type: 'query', risk_score: 50, note: '# some markdown', - }).value.lists + }).value.exceptions_list ).toEqual([]); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.ts index f842c14f41ae6b..b1b37801b644f5 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/update_rules_schema.ts @@ -107,5 +107,5 @@ export const updateRulesSchema = Joi.object({ version, // TODO: (LIST-FEATURE) Remove the hasListsFeatures once this is ready for release - lists: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), + exceptions_list: hasListsFeature() ? lists.default([]) : lists.forbidden().default([]), }).xor('id', 'rule_id'); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules.ts index 76cfffdfe9f408..a007fe35b407ed 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules.ts @@ -42,11 +42,11 @@ export const createRules = async ({ references, note, version, - lists, + exceptions_list, actions, }: CreateRuleParams): Promise => { - // TODO: Remove this and use regular lists once the feature is stable for a release - const listsParam = hasListsFeature() ? { lists } : {}; + // TODO: Remove this and use regular exceptions_list once the feature is stable for a release + const exceptionsListParam = hasListsFeature() ? { exceptions_list } : {}; return alertsClient.create({ data: { name, @@ -79,7 +79,7 @@ export const createRules = async ({ references, note, version, - ...listsParam, + ...exceptionsListParam, }, schedule: { interval }, enabled, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules_stream_from_ndjson.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules_stream_from_ndjson.test.ts index 695057ccc2f70c..8044692ab90b15 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules_stream_from_ndjson.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/create_rules_stream_from_ndjson.test.ts @@ -66,7 +66,7 @@ describe('create_rules_stream_from_ndjson', () => { immutable: false, query: '', language: 'kuery', - lists: [], + exceptions_list: [], max_signals: 100, tags: [], threat: [], @@ -92,7 +92,7 @@ describe('create_rules_stream_from_ndjson', () => { immutable: false, query: '', language: 'kuery', - lists: [], + exceptions_list: [], max_signals: 100, tags: [], threat: [], @@ -158,7 +158,7 @@ describe('create_rules_stream_from_ndjson', () => { language: 'kuery', max_signals: 100, tags: [], - lists: [], + exceptions_list: [], threat: [], throttle: null, references: [], @@ -183,7 +183,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -230,7 +230,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -256,7 +256,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -303,7 +303,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -330,7 +330,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -376,7 +376,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, @@ -405,7 +405,7 @@ describe('create_rules_stream_from_ndjson', () => { query: '', language: 'kuery', max_signals: 100, - lists: [], + exceptions_list: [], tags: [], threat: [], throttle: null, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts index df902854962b13..6df250f1cf513f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_all.test.ts @@ -79,7 +79,7 @@ describe('getExportAll', () => { throttle: 'no_actions', note: '# Investigative notes', version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts index ce6819462aa276..092a9a8faf395b 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/get_export_by_object_ids.test.ts @@ -87,7 +87,7 @@ describe('get_export_by_object_ids', () => { throttle: 'no_actions', note: '# Investigative notes', version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -215,7 +215,7 @@ describe('get_export_by_object_ids', () => { throttle: 'no_actions', note: '# Investigative notes', version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts index 46d5b5fdf452e5..3d3ed52b2feb2f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/install_prepacked_rules.ts @@ -46,7 +46,7 @@ export const installPrepackagedRules = ( references, note, version, - lists, + exceptions_list, } = rule; return [ ...acc, @@ -82,7 +82,7 @@ export const installPrepackagedRules = ( references, note, version, - lists, + exceptions_list, actions: [], // At this time there is no pre-packaged actions }), ]; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts index 347b370c89e077..c23f539b581606 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts @@ -44,7 +44,7 @@ export const patchRules = async ({ references, note, version, - lists, + exceptions_list, anomalyThreshold, machineLearningJobId, }: PatchRuleParams): Promise => { @@ -78,7 +78,7 @@ export const patchRules = async ({ references, version, note, - lists, + exceptions_list, anomalyThreshold, machineLearningJobId, }); @@ -110,7 +110,7 @@ export const patchRules = async ({ references, note, version: calculatedVersion, - lists, + exceptions_list, anomalyThreshold, machineLearningJobId, } diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_rules.ts index 183b81f3a3c77e..7ddbbd76b06618 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_rules.ts @@ -44,7 +44,7 @@ export const updateRules = async ({ references, version, note, - lists, + exceptions_list, anomalyThreshold, machineLearningJobId, actions, @@ -83,8 +83,8 @@ export const updateRules = async ({ machineLearningJobId, }); - // TODO: Remove this and use regular lists once the feature is stable for a release - const listsParam = hasListsFeature() ? { lists } : {}; + // TODO: Remove this and use regular exceptions_list once the feature is stable for a release + const exceptionsListParam = hasListsFeature() ? { exceptions_list } : {}; const update = await alertsClient.update({ id: rule.id, @@ -120,7 +120,7 @@ export const updateRules = async ({ version: calculatedVersion, anomalyThreshold, machineLearningJobId, - ...listsParam, + ...exceptionsListParam, }, }, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/patches/update_list.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/patches/update_list.json index 4db8724db4e13d..8d831f3a961d8d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/patches/update_list.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/patches/update_list.json @@ -1,6 +1,6 @@ { "rule_id": "query-with-list", - "lists": [ + "exceptions_list": [ { "field": "source.ip", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_and.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_and.json index 33ae8df87e3c82..1575a712e2cbaa 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_and.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_and.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_excluded.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_excluded.json index 8ce9440fce2193..4e6d9403a276f4 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_excluded.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_excluded.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_exists.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_exists.json index 4ec014422a61b2..97beace37633fd 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_exists.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_exists.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.action", "values_operator": "included", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_list.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_list.json index ce4bf80b0a7222..ad0585b5a2ec50 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_list.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_list.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match.json index e1abac19b51e5a..6e6880cc28f24a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "included", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match_all.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match_all.json index 1afbb1fee4785d..44cc26ac3315e4 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match_all.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_match_all.json @@ -8,7 +8,7 @@ "query": "host.name: *", "interval": "30s", "language": "kuery", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "included", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_or.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_or.json index 08e38e9ffa53d3..9c4eda559d5bc0 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_or.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/queries/lists/query_with_or.json @@ -7,7 +7,7 @@ "type": "query", "query": "host.name: *", "interval": "30s", - "lists": [ + "exceptions_list": [ { "field": "event.module", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/updates/update_list.json b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/updates/update_list.json index 66b198974f5743..df22dff5c046e9 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/updates/update_list.json +++ b/x-pack/plugins/siem/server/lib/detection_engine/scripts/rules/updates/update_list.json @@ -6,7 +6,7 @@ "severity": "high", "type": "query", "query": "user.name: root or user.name: admin", - "lists": [ + "exceptions_list": [ { "field": "source.ip", "values_operator": "excluded", diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts index d361e424f01e3f..8a5da8e8597216 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/__mocks__/es_results.ts @@ -44,7 +44,7 @@ export const sampleRuleAlertParams = ( meta: undefined, threat: undefined, version: 1, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts index f1729e35ce1f07..bbd01cfaafc624 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_bulk_body.test.ts @@ -90,7 +90,7 @@ describe('buildBulkBody', () => { version: 1, created_at: fakeSignalSourceHit.signal.rule?.created_at, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -216,7 +216,7 @@ describe('buildBulkBody', () => { created_at: fakeSignalSourceHit.signal.rule?.created_at, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, throttle: 'no_actions', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -340,7 +340,7 @@ describe('buildBulkBody', () => { created_at: fakeSignalSourceHit.signal.rule?.created_at, updated_at: fakeSignalSourceHit.signal.rule?.updated_at, throttle: 'no_actions', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -457,7 +457,7 @@ describe('buildBulkBody', () => { updated_at: fakeSignalSourceHit.signal.rule?.updated_at, created_at: fakeSignalSourceHit.signal.rule?.created_at, throttle: 'no_actions', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_exceptions_query.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_exceptions_query.ts index 22a57db87afb03..7a1564bb695467 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_exceptions_query.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_exceptions_query.ts @@ -185,7 +185,7 @@ export const buildQueryExceptions = ({ }: { query: string; language: Language; - lists: RuleAlertParams['lists']; + lists: RuleAlertParams['exceptions_list']; }): Query[] => { if (lists && lists !== null) { const exceptions = buildExceptions({ lists, language, query }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts index e5183ed4df7bd9..b3586c884d0c7f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.test.ts @@ -79,7 +79,7 @@ describe('buildRule', () => { query: 'host.name: Braden', }, ], - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -162,7 +162,7 @@ describe('buildRule', () => { updated_at: rule.updated_at, created_at: rule.created_at, throttle: 'no_actions', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', @@ -244,7 +244,7 @@ describe('buildRule', () => { updated_at: rule.updated_at, created_at: rule.created_at, throttle: 'no_actions', - lists: [ + exceptions_list: [ { field: 'source.ip', values_operator: 'included', diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.ts index 9c375d7d45d5e7..93d4e5e7719b22 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/build_rule.ts @@ -72,7 +72,7 @@ export const buildRule = ({ version: ruleParams.version, created_at: createdAt, updated_at: updatedAt, - lists: ruleParams.lists, + exceptions_list: ruleParams.exceptions_list, machine_learning_job_id: ruleParams.machineLearningJobId, anomaly_threshold: ruleParams.anomalyThreshold, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/get_filter.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/get_filter.ts index c685ce4567afa3..d8fdab55bddebc 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/get_filter.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/get_filter.ts @@ -22,7 +22,7 @@ export const getQueryFilter = ( language: Language, filters: PartialFilter[], index: string[], - lists: RuleAlertParams['lists'] + lists: RuleAlertParams['exceptions_list'] ) => { const indexPattern = { fields: [], @@ -53,7 +53,7 @@ interface GetFilterArgs { savedId: string | undefined | null; services: AlertServices; index: string[] | undefined | null; - lists: RuleAlertParams['lists']; + lists: RuleAlertParams['exceptions_list']; } interface QueryAttributes { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_params_schema.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_params_schema.ts index 58dd53b6447c51..81a6ce9b08f02d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_params_schema.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_params_schema.ts @@ -39,5 +39,5 @@ export const signalParamsSchema = () => type: schema.string(), references: schema.arrayOf(schema.string(), { defaultValue: [] }), version: schema.number({ defaultValue: 1 }), - lists: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), + exceptions_list: schema.maybe(schema.arrayOf(schema.object({}, { unknowns: 'allow' }))), }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts index efb1338fd480ee..137603741dc8f2 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -66,7 +66,7 @@ export const signalRulesAlertType = ({ query, to, type, - lists, + exceptions_list, } = params; const searchAfterSize = Math.min(maxSignals, DEFAULT_SEARCH_AFTER_PAGE_SIZE); let hasError: boolean = false; @@ -201,7 +201,7 @@ export const signalRulesAlertType = ({ savedId, services, index: inputIndex, - lists, + lists: exceptions_list, }); const noReIndex = buildEventsSearchQuery({ diff --git a/x-pack/plugins/siem/server/lib/detection_engine/types.ts b/x-pack/plugins/siem/server/lib/detection_engine/types.ts index 357a2ab39e3fb4..f2026804da51ab 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/types.ts @@ -68,7 +68,7 @@ export interface RuleAlertParams { type: RuleType; version: number; throttle: string | undefined | null; - lists: ListsDefaultArraySchema | null | undefined; + exceptions_list: ListsDefaultArraySchema | null | undefined; } export type RuleTypeParams = Omit< diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts index cebe24dc5ccc28..e508cf1aaa2e03 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts @@ -154,7 +154,7 @@ export const getSimpleRuleOutput = (ruleId = 'rule-1'): Partial Date: Mon, 20 Apr 2020 13:43:44 -0700 Subject: [PATCH 16/54] [Metrics UI] Remove remaining field filtering (#63398) (#63985) Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../components/metrics_explorer/group_by.tsx | 15 +-------------- .../components/metrics_explorer/kuery_bar.tsx | 3 +-- .../components/metrics_explorer/metrics.tsx | 5 +---- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx b/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx index 750894fd0188bc..3246a2aa4a7310 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx +++ b/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx @@ -10,7 +10,6 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; import { IFieldType } from 'src/plugins/data/public'; import { MetricsExplorerOptions } from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { isDisplayable } from '../../utils/is_displayable'; interface Props { options: MetricsExplorerOptions; @@ -27,18 +26,6 @@ export const MetricsExplorerGroupBy = ({ options, onChange, fields }: Props) => [onChange] ); - const metricPrefixes = options.metrics - .map( - metric => - (metric.field && - metric.field - .split(/\./) - .slice(0, 2) - .join('.')) || - null - ) - .filter(metric => metric) as string[]; - return ( singleSelection={true} selectedOptions={(options.groupBy && [{ label: options.groupBy }]) || []} options={fields - .filter(f => isDisplayable(f, metricPrefixes) && f.aggregatable && f.type === 'string') + .filter(f => f.aggregatable && f.type === 'string') .map(f => ({ label: f.name }))} onChange={handleChange} isClearable={true} diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx b/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx index dcc160d05b6ad9..7c3e0444dbeea6 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx +++ b/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx @@ -9,7 +9,6 @@ import { i18n } from '@kbn/i18n'; import React, { useEffect, useState } from 'react'; import { WithKueryAutocompletion } from '../../containers/with_kuery_autocompletion'; import { AutocompleteField } from '../autocomplete_field'; -import { isDisplayable } from '../../utils/is_displayable'; import { esKuery, IIndexPattern } from '../../../../../../src/plugins/data/public'; interface Props { @@ -51,7 +50,7 @@ export const MetricsExplorerKueryBar = ({ const filteredDerivedIndexPattern = { ...derivedIndexPattern, - fields: derivedIndexPattern.fields.filter(field => isDisplayable(field)), + fields: derivedIndexPattern.fields, }; const defaultPlaceholder = i18n.translate( diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx b/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx index 79d4122733c551..a49e42c9cac0e2 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx +++ b/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx @@ -12,7 +12,6 @@ import { IFieldType } from 'src/plugins/data/public'; import { colorTransformer, MetricsExplorerColor } from '../../../common/color_palette'; import { MetricsExplorerMetric } from '../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions } from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { isDisplayable } from '../../utils/is_displayable'; interface Props { autoFocus?: boolean; @@ -54,9 +53,7 @@ export const MetricsExplorerMetrics = ({ options, onChange, fields, autoFocus = [onChange, options.aggregation, colors] ); - const comboOptions = fields - .filter(field => isDisplayable(field)) - .map(field => ({ label: field.name, value: field.name })); + const comboOptions = fields.map(field => ({ label: field.name, value: field.name })); const selectedOptions = options.metrics .filter(m => m.aggregation !== 'count') .map(metric => ({ From 97a0edc6ac6c3e40dd80e9e411b339cb999f04c7 Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 20 Apr 2020 21:55:36 +0100 Subject: [PATCH 17/54] [ML] Fixing single metric viewer page padding (#63839) (#63988) Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../public/application/timeseriesexplorer/timeseriesexplorer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js index 5e505757dd2aa3..42742f6efcb2a5 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js @@ -150,7 +150,7 @@ function getTimeseriesexplorerDefaultState() { }; } -const containerPadding = 24; +const containerPadding = 34; export class TimeSeriesExplorer extends React.Component { static propTypes = { From 99371c67060d7a7cb72311ea0f5b859f0b751462 Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Mon, 20 Apr 2020 15:55:59 -0500 Subject: [PATCH 18/54] [7.x] [DOCS] 7.7 Release Notes (#63544) (#64004) * [DOCS] 7.7 Release Notes * Update docs/CHANGELOG.asciidoc Co-Authored-By: Dave Snider * Update docs/CHANGELOG.asciidoc Co-Authored-By: Larry Gregory * Update docs/CHANGELOG.asciidoc Co-Authored-By: Larry Gregory * Update docs/CHANGELOG.asciidoc Co-Authored-By: Lukas Olson * Review comments * Combined Lens and visualizations sections * Added 49864 * Added SIEM known issues Co-authored-by: Dave Snider Co-authored-by: Larry Gregory Co-authored-by: Lukas Olson --- docs/CHANGELOG.asciidoc | 307 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index d0c30d7c4e5ae4..2f7dd0ba7fd478 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -10,6 +10,7 @@ This section summarizes the changes in each release. +* <> * <> * <> * <> @@ -35,6 +36,312 @@ This section summarizes the changes in each release. * <> -- + +[[release-notes-7.7.0]] +== {kib} 7.7.0 + +See <>. + +[float] +[[known-issues-7.7.0]] +=== Known issues + +SIEM:: +* When you deactivate an action within a rule, the rule fails {issue}620[#620] +* When you add a timestamp to the PagerDuty action, the rule fails {issue}607[#607] + +[float] +[[enhancement-7.7.0]] +=== Enhancements +Alerting:: +* Notifies user when security is enabled but TLS is not {pull}60270[#60270] +* Displays warning when a permanent encryption key is missing and hides alerting UI appropriately {pull}62772[#62772] +* Edits alert flyout {pull}58964[#58964] +* Moves index params fields to connector config {pull}60349[#60349] +* Adds the AlertDetails page {pull}55671[#55671] +* License checks for actions plugin {pull}59070[#59070] +APM:: +* Updates monospace font family variable {pull}57555[#57555] +* Shows missing permissions message to the user on the Services overview {pull}56374[#56374] +* Settings list page for managing custom actions {pull}56853[#56853] +* Divides "Actions menu" into sections to improve readability {pull}56623[#56623] +* Creates settings page to manage Custom Links {pull}57788[#57788] +* Creates custom link from Trace summary {pull}59648[#59648] +* Writes tests for the Custom Link API {pull}60899[#60899] +* Threshold alerts {pull}59566[#59566] +* Adds additional (java) options {pull}59860[#59860] +* Sync badge {pull}55113[#55113] +* Client.ip to metadata for RUM transactions {pull}56546[#56546] +Canvas:: +* Adds Lens embeddables {pull}57499[#57499] +* Switches to using EUI SuperDatePicker in time filter element {pull}59249[#59249] +* Adds Visualize embeddable {pull}60859[#60859] +* Adds argument to open all links in new tab within markdown element {pull}57017[#57017] +* Updates esdocs datasource {pull}59512[#59512] +* Improves expression autocomplete {pull}52035[#52035] +Dashboard:: +* Use Elasticsearch `_async_search` instead of `_search` when it is available (excluding TSVB, Timelion, and Vega) {pull}59224[#59224} +* When queries run more than 10 seconds, show a pop-up to allow users to run the queries beyond the configured timeout or cancel the queries {pull}60706[#60706] +* Dashboard/add panel flow {pull}59918[#59918] +* Moves the "Create New" button in add panel flyout to the top to make it more visible to the user {pull}56428[#56428] +Lens and visualizations:: +* Creates Lens filters on click with bar, line, area charts {pull}57261[#57261] +* Allows number formatting within Lens {pull}56253[#56253] +* Shows a warning when you have partially configured a visualization, such as a bar chart with only an X axis {pull}58279[#58279] +* Improves suggestion logic when dragging fields into the chart {pull}60687[#60687] +* Disallows duplicate percentiles {pull}58299[#58299] +* EUICodeEditor for Visualize JSON {pull}58679[#58679] +* Supports Histogram Data Type {pull}59387[#59387] +* Median aggregation labels now show "Median" instead of "50th percentile of" in Visualize. Custom labels are also used {pull}58521[#58521] +* Adds positive_rate as a new aggregation to TSVB {pull}59843[#59843] +* Makes linked saved search work when user navigates back using browser back button {pull}59690[#59690] +* Visualization editor UI has been updated to the new styles, consistent with the rest of the platform and a more logical left-to-right flow of creating content {pull}49864[#49864] +Logs:: +* Uses the Super date picker in the log stream {pull}54280[#54280] +* Adds expandable rows with category examples {pull}54586[#54586] +* Shows navigation bar while loading source configuration {pull}59997[#59997] +Machine Learning:: +* Processes delimited files like semi-structured text {pull}56038[#56038] +* Supports multi-line JSON notation {pull}58870[#58870] +* Validates manual model memory input {pull}59056[#59056] +* Clones analytics job {pull}59791[#59791] +* Uses a new ML endpoint to estimate a model memory {pull}60376[#60376] +* Module setup with dynamic model memory estimation {pull}60656[#60656] +* Adds text fields to datafeed start modal {pull}55560[#55560] +* Categorization examples privilege check {pull}57375[#57375] +* Adds filebeat config to file dataviz {pull}58152[#58152] +* Global calendars {pull}57890[#57890] +* Adds indices_options to datafeed {pull}59119[#59119] +* Displays multi-class results in evaluate panel {pull}60760[#60760] +* Adds support for date_nanos time field in anomaly job wizard {pull}59017[#59017] +* Uses EuiDataGrid for outlier result page {pull}58235[#58235] +* Supports multi-line JSON notation in advanced editor {pull}58015[#58015] +* Adds support for percentiles aggregation to Transform wizard {pull}60763[#60763] +* Adds clone feature to transforms list {pull}57837[#57837] +* Uses EuiDataGrid for transform wizard {pull}52510[#52510] +* Replaces KqlFilterBar with QueryStringInput {pull}59723[#59723] +Management:: +* The Remote Clusters UI added support for enabling "proxy" mode when creating or editing a remote cluster {pull}59221[#59221] +* Adds filter for ILM phase to Index Management {pull}57402[#57402] +* Creates Painless Lab app {pull}57538[#57538] +* Moves out of legacy {pull}55331[#55331] +* Moves out of legacy and migrates server side to New Platform {pull}55690[#55690] +* Updates Console progress bar {pull}56628[#56628] +* Auto follow pause & resume {pull}56615[#56615] +* Supports triple quoted JSON strings and Painless highlighting to Watcher and SearchProfiler {pull}57563[#57563] +* Server-side batch reindexing {pull}58598[#58598] +* Better handling of closed indices {pull}58890[#58890] +* Advanced settings UI change to centralize save state {pull}53693[#53693] +* The autocomplete in the dev console now supports many different types of Elasticsearch pipeline processors {pull}60553[#60553] +Maps:: +* Improves Layer Style UI {pull}58406[#58406] +* Shows field type icons in data driven styling field select {pull}55166[#55166] +* Style icons by category {pull}55747[#55747] +* Adds type icons to SingleFieldSelect component {pull}56313[#56313] +* Disables style forms when they are not applied due to other style settings {pull}55858[#55858] +* Autocompletes for custom color palettes and custom icon palettes {pull}56446[#56446] +* Allows simultaneous opening of multiple tooltips {pull}57226[#57226] +* Adds Top term aggregation {pull}57875[#57875] +* Direct Discover "visualize" to open Maps application {pull}58549[#58549] +* Top term percentage field property {pull}59386[#59386] +* Adds UI to disable style meta and get top categories from current features {pull}59707[#59707] +* Adds draw control to create distance filter {pull}58163[#58163] +* Blended layer that switches between documents and clusters {pull}57879[#57879] +* Default ES document layer scaling type to clusters and show scaling UI in the create wizard {pull}60668[#60668] +* Disables add layer button when flyout is open {pull}54932[#54932] +* Supports categorical styling for numbers and dates {pull}57908[#57908] +Metrics:: +* Setup commonly used time ranges in timepicker {pull}56701[#56701] +* Custom Metrics for Inventory View {pull}58072[#58072] +* Alerting for metrics explorer and inventory {pull}58779[#58779] +* Creates a new menu for observability links {pull}54847[#54847] +* Creates Metric Threshold Alert Type and Executor {pull}57606[#57606] +Monitoring:: +* Supports shipping directly to the monitoring cluster {pull}57022[#57022] +Platform:: +* Improves validation in truncate field formatter editor {pull}56521[#56521] +* Variable support for interpreter {pull}54788[#54788] +Reporting:: +* Handles page setup errors and capture the page, don't fail the job {pull}58683[#58683] +* Adds the ability to search and delete historical reports in Management > Kibana > Reporting {pull}60077[#60077] +SIEM:: +* Recent cases widget {pull}60993[#60993] +* Adds custom reputation link {pull}57814[#57814] +* Exports timeline {pull}58368[#58368] +* Rule activity monitoring {pull}60816[#60816] +* Removes has manage api keys requirement {pull}62446[#62446] +* Adds release notes link and updates one UI section {pull}60825[#60825] +* Adds rule notifications {pull}59004[#59004] +* Version 7.7 rule import {pull}61903[#61903] +* Creates ML Rules {pull}58053[#58053] +* Case workflow api schema {pull}51535[#51535] +* Service Now {kib} Action {pull}53890[#53890] +* API with io-ts validation {pull}59265[#59265] +* Status / Batch update {pull}59856[#59856] +* Imports timeline {pull}60880[#60880] +* Bug/clean up phase I {pull}61354[#61354] +* Cases clean up Phase II {pull}61750[#61750] +* Modifies gap detection util to accept all dateMath formats {pull}56055[#56055] +* Adds note markdown field to backend {pull}59796[#59796] +* Adds rule markdown field to rule create, detail, and edit flows {pull}60108[#60108] +* Adds rule markdown to timeline global notes {pull}61026[#61026] +* ServiceNow executor {pull}58894[#58894] +* ServiceNow action improvements {pull}60052[#60052] +Security:: +* Uses links instead of click handlers when switching spaces {pull}57730[#57730] +* Introduce a login selector screen when multiple auth providers are enabled {pull}53010[#53010] +* Warn when using deprecated roles {pull}57209[#57209] +* Support for subfeature privileges {pull}60563[#60563] +Telemetry:: +* Application Usage implemented in @kbn/analytics {pull}58401[#58401] +* Server-side Migration to NP {pull}60485[#60485] +* Use EuiTokens for ES field types {pull}57911[#57911] +* Adds 7 day metrics to Application Usage telemetry {pull}59846[#59846] +Uptime:: +* Adds Settings Page {pull}53550[#53550] +* Adds Alerting UI {pull}57919[#57919] +* Adds configurable page size to monitor list {pull}60573[#60573] +* Adds Green Icon for all up Monitors {pull}56770[#56770] +* Implements drag and select on charts {pull}57089[#57089] +* Fix/filter group autocomplete {pull}57686[#57686] +* Ml detection of duration anomalies {pull}59785[#59785] + +[float] +[[bug-7.7.0]] +=== Bug fixes +Alerting:: +* Retains empty AlertsList when filter has removed all items {pull}60501[#60501] +* Fixes alert threshold line disappears {pull}61499[#61499] +* Cleanup action task params objects after successful execution {pull}55227[#55227] +* Disables action plugin functionality when ESO plugin is using an ephemeral encryption key {pull}56906[#56906] +* Makes slack param validation handle empty messages {pull}60468[#60468] +* Makes user and password secrets optional {pull}56823[#56823] +APM:: +* Changes "url" to "urls" in APM agent instructions {pull}60790[#60790] +* Uses ES Permission API to check if a user has permissions to read from APM indices {pull}57311[#57311] +* Filters are not prefilled when the custom link flyout is opened from a transaction page {pull}61650[#61650] +* .apm-agent-configuration is not created if {kib} is started while ES is not ready {pull}61610[#61610] +* Don’t include UI filters when fetching a specific transaction {pull}57934[#57934] +* Uses docLinks API for APM doc links {pull}61880[#61880] +* Updates APM index pattern {pull}61265[#61265] +Canvas:: +* Toggles footer editable controls when you turn off edit mode #52786 {pull}58044[#58044] +* Fixes map embeddables not showing up on PDF reports {pull}61149[#61149] +* Limits rows in debug element {pull}60804[#60804] +Dashboard:: +* Puts embed param into short url instead of behind it {pull}58846[#58846] +* Allows markdown in error embeddable {pull}62427[#62427] +Discover:: +* Removes flickering when opening filter bar popover {pull}56222[#56222] +* Retains pinned filters when loading and clearing saved queries {pull}54307[#54307] +Graph:: +* Specifies valid licenses for the Graph feature {pull}55911[#55911] +* Improves graph missing workspace error message {pull}58876[#58876] +Lens and visualizations:: +* Filters out pinned filters from saved object of Lens {pull}57197[#57197] +* Adds using queries/filters for field existence endpoint {pull}59033[#59033] +* Fixes display single bar in XYChart Bar Vis {pull}61452[#61452] +* Resetting a layer generates new suggestions {pull}60674[#60674] +* Fixes disabled switches in the editor {pull}62911[#62911] +* Fixes broken Handlebar documentation links {pull}55866[#55866] +* Shows timepicker in Timelion and TSVB {pull}58857[#58857] +* Makes Vega remove filter work {pull}58871[#58871] +* Makes d3 place nicely with object values {pull}62004[#62004] +* Fixes position calculation of ticks in non-horizontal axes {pull}62309[#62309] +Logs:: +* Correctly update the expanded log rate table rows {pull}60306[#60306] +Machine Learning:: +* Handles Empty Partition Field Values in Single Metric Viewer {pull}61649[#61649] +* Fixes job wizard model memory limit warnings {pull}62331[#62331] +* Files data viz fix index pattern warning after index change {pull}57807[#57807] +* Uses real datafeed ID for datafeed preview {pull}60275[#60275] +* Disables start trial option when license management ui is disabled {pull}60987[#60987] +* Fixes jobs list filter in url {pull}61822[#61822] +* Fixes job ID in edit job flyout {pull}61840[#61840] +* Fixes reporting of http request errors {pull}61811[#61811] +* Ensures confusion matrix label column is correct {pull}60308[#60308] +* Ensures column in correct position after reselect {pull}61342[#61342] +* Ensures query bar syntax errors are shown {pull}61333[#61333] +* Ensures job state is up to date {pull}61678[#61678] +* Increases number of items that can be paged in calendars and filters lists {pull}61842[#61842] +* Uses index pattern field format if one exists {pull}61709[#61709] +* Ensures filter works as expected {pull}62041[#62041] +* Ensures destination index pattern created {pull}62450[#62450] +* Fixes page heading structure {pull}56741[#56741] +* Fixes handling of index pattern with special characters {pull}59884[#59884] +* Fixes to error handling for analytics jobs and file data viz {pull}60249[#60249] +* Fixes Anomaly Explorer swimlane label and chart tooltips {pull}61327[#61327] +* Prevents training_percent of 0 for analytics job {pull}61789[#61789] +* Removes duplicate page main landmarks {pull}56883[#56883] +* Fixes license check {pull}58343[#58343] +* Clears {kib} index pattern cache on creation or form reset {pull}62184[#62184] +Management:: +* Adds support for additional watch action statuses {pull}55092[#55092] +* Fixes the Upgrade Assistant where the reindexing of an index was incorrectly marked as "Done", when it still required to be reindexed. This scenario could occur if a user reindexed an index, deleted it, then restored a snapshot of the index of an older version {pull}60789[#60789] +* Fixes several invalid documentation links in the Snapshot and Restore UI {pull}61331[#61331] +* Fixes for console error handling and loading of autocomplete {pull}58587[#58587] +* Fixes a bug that caused Grokdebugger simulation to break in non-Default Kibana spaces {pull}61423[#61423] +* Fixes an issue where Console would not render the request output if localStorage quota was reached {pull}62424[#62424] +* Fixes a bug with Console's Copy As cURL functionality that would not properly escape single quotes in JSON string values which created issues with copying SQL queries from Console to cURL {pull}63229[#63229] +* System index templates can't be edited {pull}55229[#55229] +* Not possible to edit a watch that was created with the API if the ID contains a dot {pull}59383[#59383] +* Fixes console a11y failures {pull}57520[#57520] +Maps:: +* Do not show border color for icon in legend when border width is zero {pull}57501[#57501] +* Uses blended layer when linking discover to maps {pull}61467[#61467] +* Fixes tooltip overflow {pull}61564[#61564] +* Cleans up unsaved state check {pull}61705[#61705] +* Fixes regression in loading left join fields {pull}63325[#63325] +* Fixes cross origin error for icon spritesheets when Kibana secured via OAuth proxy {pull}53896[#53896] +* Correctly open layer settings from add layer wizard {pull}48971[#48971] +Metrics:: +* Limits group by selector to only 2 fields {pull}56800[#56800] +* Uses CPU Usage limits for Kubernetes pods when available {pull}58424[#58424] +* Fixes toolbar popover for metrics table row {pull}56796[#56796] +Monitoring:: +* Handles setup mode if security is disabled {pull}53306[#53306] +* Protects against no monitoring data near end of time series {pull}61273[#61273] +* Adds new config for logging index name {pull}56920[#56920] +Platform:: +* Rollup index pattern error: must match one rollup index {pull}56732[#56732] +* In scripted fields, unable to switch the `Type` {pull}59285[#59285] +* Duplicates query filters in es request {pull}60106[#60106] +* Bugfix dashboard unpins filters {pull}62301[#62301] +* Fixes plugin enabled config options {pull}60998[#60998] +* Fixes tabifyAggResponse {pull}61214[#61214] +* Fixes parse interval {pull}62267[#62267] +* Avoid 'app not found' flickering while awaiting for mount {pull}56483[#56483] +* Creates empty string filters when value not specified {pull}57442[#57442] +* Range aggregations now use the field formatter from the index pattern, instead of no formatter {pull}58651[#58651] +Reporting:: +* Fixes error handling for job handler in route {pull}60161[#60161] +Security:: +* Handling a 404 when the space's telemetry collector runs {pull}55921[#55921] +SIEM:: +* Allows Import timeline for authorised users {pull}61438[#61438] +* Imports timeline schema update {pull}61622[#61622] +* Fixes bug with timeline templates not working {pull}60476[#60476] +* Fixes export of single rule and the icons {pull}62394[#62394] +* Updates process and TLS tables to use ECS 1.5 fields {pull}60854[#60854] +Telemetry:: +* Fixes bug introduced in #55859 {pull}57441[#57441] +* UI Metrics use findAll to retrieve all Saved Objects {pull}59891[#59891] +Uptime:: +* Updates heartbeat index name for 7.7 {pull}62172[#62172] +* Shows only total in snapshot heading {pull}58376[#58376] +* Fixes PingList pagination {pull}61481[#61481] +* Fixes es query function null reference errors {pull}61465[#61465] +* Fixes issue with Kibana Icon in Uptime App {pull}56837[#56837] +* Adds tests for pages {pull}56736[#56736] + +[float] +[[deprecation-7.7.0]] +=== Deprecations +Monitoring:: +* Changes all configs to `monitoring.*` {pull}54919[#54919], {pull}56215[#56215] +Platform:: +* Migrates Vega and Graph configs to new platform {pull}57011[#57011] + [[release-notes-7.6.2]] == {kib} 7.6.2 From 164c483c32a5d8131de93ff455b5aa6e5e184254 Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Mon, 20 Apr 2020 16:47:45 -0500 Subject: [PATCH 19/54] Vega doc changes (#63889) (#64008) * Vega doc changes * Final changes * Review comments --- docs/images/vega_lite_default.png | Bin 0 -> 291544 bytes docs/visualize/vega.asciidoc | 224 +++++++++++++----------------- 2 files changed, 100 insertions(+), 124 deletions(-) create mode 100644 docs/images/vega_lite_default.png diff --git a/docs/images/vega_lite_default.png b/docs/images/vega_lite_default.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce1592d0738c6636157430522562bf0bbdea344 GIT binary patch literal 291544 zcmZ_01yo&2(l&g6g9dkZ2(H030RjXM?ry=|HMm1?4<6itYj8cdTX1*R|B!oU-nld1 z&swa_?!CLay1Kf%o~LRPDlaRJgn*9#0059AB}6|106<>=08$MO23&%Vl|c>wKzuS6 z5s{Y^5h0bgw=prdGzI`@Vh#25&?OmY`t|ko^!i8WX%XyQK8J)veAe^%)$xn8zhg9e zh%_NtOKS}mbqz}C7a&)mv)%$Rg7m(cslRj`&v=sggwc4>F!PynSY)54z#X$AAxg`uM!rR&P8$ERc} zaES4GJV6Lcho zi0J=C5v#>Fyy8#{TbI^-SNLR z#w%~`YHX=4YHnq0?En@{kdvF0|4%pn^W^^o{g0Yz|5uZhorU{9tNzEM|ET&Z3a^~K zxiMHvueuNfclSSKf4|Sq{Hmz`P~2a$@~0F$ErJOA%>SNZL4^I*bSnTr7$7P7Uda{W zP#ZQGvu8%Ya+Ki>!(kkI2qd}^3w`owio+;^zj_wvRLBAO#E)mKi%_^HBrGgWNtn%l zlaQ-p8~7r?p(%25I9jc5(lyN3mfu`bV!iB9T-bbYS*9s-{mGwNOc+fbhzaqZmq%Y= zg)?F$ie0+FXX*e_~(oNx)VaBnWw<`(QOes`D6DdF8Ty8(yvVgvY$lt>!8wq$%Es8hw3!p*nFH~&&FR9BlrYQF3;g#Z1AMkH6Rj7RT?>~)S|8qp(yKF+p z?E^O`68;254ffajanj1*&VDWF8Y$DpJ*D7ER%Kd|V?`mxl`t%e$x8Y{0IaiBsNqAc zm{GqDro?c~et)UO={p#CZHn?E+W#JwFb`1cYl;1Q>i0i7DnldfB*Y>POD?j#A&D;e zMnl2>4%jH>aSD>d)*B4c-d&}@BVn5J_h}P?J(#dZV`M`bS0d_kQmYFshg1nRvrq)9 zZ7dtLGMsc_`eO@`qB)37R^*V!l-LyLF$%0ZkK`Xk-&PcjW6$bS$sDQJoy#q8o;Kq0C{ z;O5>uFEKr*@p=}?Xy4P$b&uW|zh)>ocO6)KCgnmyJn{ztr{4b58H!>jn z>*Z-{9*&XY#p--6%lspSdqacz!6Q2*&TJ z2lri53whl;MiB8ix7W$b!t2)NA1^o^*!~X0$uTz|f4)Cp&ZL_RQY2Zdquo>(bsKH8 zdFY<`J(F3lxovD}n)Zkycni?1x9*XAn-P#^-30IE=EiS@e%AVQy=XgcoTR_V=@ueY z&32gRRwt9zckml5D5rC|ZhNNK;1oMv6hFvN&MjVw%Ru$EJ!8R3DDiA5 zG1N(GXsWkdN4RAB#b(Lt44~!lnR!?@&CfwMHT0>nSIDDL`d?Hc9%K~lz;G375l5qj2Z5>Z{x7B%0$C(xS>E?}THbfc z4R)I}5rlTRcg^OPBMoc*QZbpCQKzT2n3$NUb`XY`^EaxC*}Z^jiCq=2F+d_itekT1 z?u?xF64;2AsFca8shLScX9{@WGsi_lAl90V|5{>DPxLuEI}5>PP6n$O*Wb6J5^?f) zxmiI;$;i4RzK1g|E-s=pTJRnYBydC6_VVn3NWeL)J*yP|QWV?@|1ARH%^P-O33oMr z3MK2QkyH-$I|e!b0^^~?ZE9I4`2 z@1#4##KrlquNzb{kr4j27nIy&S4fIMopte@|DfY_`#ZQ{eULsvz%q^P2g(5z0;?#| z4|M2*ZijRU_+h2Jb8u5Yb|pqRB;4ap8qkR1!5^1WV_FWG+wj zn}-q^*@2lokvn@=lZ_6homBHyLRaM21uHt^_2xNyiiw59mPzi`t8L4dP!}oA$4ll5 z-!m+;w$w7ODc`;&h;Su3sj>Gt%(!w=>9k)NPCIoWJD{Hpcm8=%!TY1a2m_(zU7plYU0+8)KkEi z(vT;G-lkrS6?lH^vQI`7OMO?Pdem(WweWik`!}0POmyNo@@}Lw9dqj!9#7Mq=9dhY zmEXj2N=o01!RsuleUs>ZJMCl2jq*ch($+Lo5&6_RxmPoQgh1Yw3}MNz>&0tW52Lpo zph{X>u&C%k6DRb$S@A&m@#BYDi)$6_#pR?NL7Z7{1m5j-nhhd^@Ohw*qIbH%;8=~x z=~`#Q<%ARxZMVa!&kGc_T&86|33k)fjAoV50J;cu46a^|Dl$9}UGkBD%Q~HmUTcM+ zKCMoIyK-1g=*eh*$-9|83zm`!S?JMr$$QZ%$QPg8B;toiS`m~nlWrTKuIE`GnU4fH zkLGGWL}nPzSyD)v-hXdVJO5>H~cnfraY{nP3tinupgs1x}_WSXmH%twHleUNQ@gGhl zGp0quZm+X`#x_Tbe9o0>G_V9QCLV}Q} zVBH34`uTt7ptr=E{oVs$1`OFCZH6n1+wGr2wX+%3dXnQTT{9>e-6=qpZkyD zfQ?g81fGkP;h(rM=+SRbP9nrCoY$xE4p{d4M_uhF3`(`yF=mNpp%~Z6S${`6g@mmI z%biTgID4~3?WKnlR`4T+&l<0_)W39ZEu-5xR;ctQkIk9AgHJ+f;g7p+l`2j-@~n>t z4;B4j89&?Z$|K~sTh%`_&~tlsk{X@rdGhll{}W&u(W5LMe1Jv*A>1ulkZ@T5c6N3_ zG}(oHK}ZBFW@Drd#~`7XccL(%Ne&=^*%-*KV3aev$>Gy zAd(nuxn8hvy`DFXghiGN_%0HR&z5JkSoe|mg~A~#EsfqoCISbcRXTZ&sW5|8CYc2S zeBf|wV!~6zDQg;sP4&l8L`v5=owVNIuLotaO-25YN@8+7?S!qe{r#cke2~7kIf$|s zMd(ov4k=C>d?K-Cx~{{w+)jiC(dhHlFWJA@9?h_5(GJ-`;#va4iC+5Vz)swrZ6H;N z7?^AXMHVoYhY5db~bh8@C)V(pQ>mw#k=0CSndpBno-IFKz4e{e;vOxwK z#YbH9ou-3wsEV($8NB+JGPzZHosfnbhS35hmq#nDd>^CntqO)S+_qC-xaw|pbE8w8 zOI4E;WM35jc~ z5&MLxqO^L_ky~wEO;4Sy=5m-=4u2?$VAg3lqv5yzfTQ&k-4+s!*mXUu^;ktqV5QMJ z6klU`=S%D7ONXu^0=$(SzIi!mdx0nMKBuMjybpXh`6l=FXfcZ$Ua{aYq|Qo_b-jsx zQ{Wb*TU5MZwJHHntPg9(0d^wI2;tP?Hn2kPM9u>#;ROV^wZn9XDLo~!V-88xr%F_r z*_A_Pj7>}sBx}$dwuf1JpSgRspu3^mOHZR$ge_*vIYgyTR$3!rQ7+KY(Ifa1Gq`Ms zxq2yr1AetXUoo@jptd^Fq}hey?gSBYQAQ_o=MUU1`*y<#s5VfA+l0n>95?p4E{)}e z>PS#3OOUgULxotejBkW&!W>L!_PI}wnHapE2;G}fl;d#Pl@Xl?%R`i;j? z`)vs1e$GWo_r}7*Ge4~2j%>1v4?XGHbGcke;j~I6TSeyCM9qD3Wth`S8929diJEJb z#%05~V=|g<&f*E){UU?W3KPZ;f&*|{LzB6wEW7TJZjb6$BM7ZQf)AFS;8kQYh<}v5 zJSF$-pYXtojFd#y;msJY;4h$?tW4PZh8Ui{)?0#d!X=0!&9{TF-2xJlF&A#oOjLnp zXVQh}T){*pE;3BhTrnP06L4aX~_q*}O*si=oF z!W(v3vdZClUG&u(1^uzH5LlJfOtMHm-ZA0hFrVy{=c5cQ9C{N@==C)0PQtg@y?9S)=IvRO2n3F!#fE~5b?_aMuaYG@+f{$i*P=%;h&yv|ZQWHQ%wmk}N{ z?pI$39fnzr+o)r*v+Lz7ElbIqih{5BzcZi{V!V~^9<9v?0&GkbVaRfK_LJEeIvE{O zP!ntfLnO=bY+;I+foE|b-Qih0nv#0o+{r|mq}c|`Zct#+vBn62|=Ep{@uH!C7ctU3|=YXH`F3Ua}h9C zP$xieygE7A_5LuPbgYjsIm`jJPQ)+1al1c?`=%B8oQau4E_y$#bm@Z|tn&oRbf5pp z_e*~g??HI1Kw7%Drz0<|!8lp%njhXFzPBb`bcv*o2hhPLn7pD>QZl_l*kzYhub>bz zJYf*A`@on~;G{>g#9<8X-bz_>n(I6{CDH(#>b|qv&v7ePWwkN`}K)CMm~C0e7Il)um#PQRC^aH`0JDIl;SbeqpuQ#Gji%UfidI zBy7@@{JR|8qHGcFY(<=g=n6jWi!3|`8sz=fR(uTN(s&fX_Ipo8hAb&;`MTQD0`sQo zQbkqeGE*axj;vW;?}sflr&4tIF7IfI z+zJsy-MGS+!~3i4?PQ^9S+mfRxwPwOAJ-!xdiK!7PM8MsbS~*OriA`NdNh#JqP`TB z3z6T7=d-a@ftY^2qQb`%RO`zQu34CmHVgQK3qJ!r8xY@@cb^Sl{wfd-A?bbmE%ih& zIlG2a_065GlC3_s2pR7ar|B%8;Nl_%4ajQv{a{; zo+1{G-55$TXn;s0E4NY0&|CQ3TdUW5tmA!wz)D9hd9KyoIdn#%NmW8rnp~2?RWJ>m+<65fNu=%=S11cLQyp-L(|<)`4{zx1!@~?9+JH} z4Bf?8tB9B$o;RX}{1vxC$lz0lBcutvhR02c36fIU!LB!=de<6=@(6b-HPnbOlu0(+ zFe^@!vS66PPnto0k#(>F6@1xUgkdI++HPP+ndK>rY^n6G-LfA(qKqVI+r~xf{kS;s zx9CDCR05pv)=PgJ?O$6&t`AY~S}rGW@kA)4X#7Qt80;I|Dt5#bABbg}Q~QS+&K%E8 z^0w(;2^rK$;HoI-JB^j6zlh!6h$0RilGyl4XuaeRrsRXdIRcgM@>>ts_a z0s^5s{d3>UNIOOB4ShoE9TN>TDFY<@S*)CME}Cb|}KowT?)kC?jC*k}AO+A|yTgwS)kdcGFyPr;q2N-uRwE{h#ZjGr7q-)`hU zRhe1wX5M>K6}+snc(QnL)LBV%QOpvB4qL+GkOe4Mp$n{xG&3wF3av1g%{-zG+4*{z z8moiOzM>2Ne6M>z_dm>5KAciGpx6lEV}9hW?u~Mw z_ZdgO2$pJHRH6)EFZ2pcla3r9p${(!r3wi~YxR+RvL&$-E1nr!Hrk}0xZ#_Vp=0%Ik z#kIts#p-K)G(zRJOUBt|K;htPQ)^~-ppt$ z3yMr?z`JC<0;h1_x`ID;wjthO3XI9P#v&$;A{KBbrKcZ?j1u5-J2!gu7<(Ufo*z#7 zzdM5J$DU@Uvub@+~bbe6#Zr z+m0zHGcq!blboM{u&1YIjYpO?_ib#UY0Qtcofip%apaQrtTYST^-vEn9d#sG1rj<; zY;2Qq0g^DwcR7bA5njZWw73r$H=HXQ{%6m<&jrg@XIeihR#jMpK>layCKWY$`!{;k z)7KTt_Z#?c=P{^3Ay;nARZM(H%bIoXv*MAr+ayc9Qij>sv;_Lbq{_vNJ!y4~|M-%q zhj6zM0P+~;Fzi;JL#R$`3=9l35|WeAosM%~C}d$B9pdwg3mKtPsur0vPLnKFe*;6q z5y8R$ug9~#S9DM29~Kt2WG@XN^de3GW(H#u6HV4J733_EveL?3&ImE>e7omlz>J89 zk&%%+V!YW+BBN%0yW)N;%Km4F#nnX@OK~GnN-%I6UgK6PcUeioZI3wXZy?!qu4(5{ zn``x`Z|q}bB7naUu1{;HHT006;j~%_*xWSwDx&>7vtPn^&1iUHY-E&tz@L1d2C6R8 ztWR}8Yf}Xd)hs=aIyg9t*kq8bLH=Adr(YGjvmSWRAYI&dL-~HR?PWD&Ldhv3s-%Q@ zeVDM5jPmH%kZu?68Kd3i#le(u1GRF@H4I)@ytnJgo}bN%JmXLOR@%nIjsNUEsAh1t z@qqQNVCEz;Hm+pmWNFUV-1n5uV3IBf4CeLLyX9iRye*h+T?1o& zCs;r0*>Y{X(mT{0y?AD;t5`Ewf#ls~%!tr#6evfBFx^T@ourm+f7TwOzT{O67M&A9 z+;64G1)|mAqAgU*Uk9957H|E?aV3}+D+qDzeF-C;WES0YcR1(J2OzwK-voI_hlH@? zIkU{|yAg?tfeAtmgSCSx>C8xxjkp+GtRsu@^)rfYISGu-Z7luiULv?}(HI}5J#2yt z=^O-$H(L-@H#1MP9gR)DD9$pfE^zHn%fr?a{sq>uVP3~weH0uNh;M^N?65zZ8!Z^d zchZ7^qvJ~UF`76Mmc$daFvA-^if0>F(Rivzp|>XB%j&j>*V&`fEl35lf%N zmiyb0Y4Nlz?;VJxlWY9?cGGK~3rK-^i*!w0q4qo3?&#*b52V}2Xv_*izUD@QQg9D+ zKaCY@EwO{w(XTT|@Jsw9Jf65Wh?T#mHcME0$GYkzcx5iQFz^}vy8hN2cl^g5o)} zWQ|24?kU6i+g5Ya7yDJW!<$|Ld8p1WT+O6o56koQe%2PoLbPv@6A~6zc^oQe{1yotvnrY^xFsQrY;0KqESk}7dOwvhPR-KuZrqV%jeC()aHsVkbp?^KOvrxxY8?tH1HW; zsDk%BpzA~W;TW{{uhlC11y55s~xM`U&uUSW1jU6dbdT8(KTHdXtfq#G_evGodm@Pzrkh1@4v3k@Nr zhx7~deeQ)S5i*aw{^9dbo17Q?4sE4dh}HM8#A|Ef=qCo*&@zeJ?e_xPQ26AN&dq*2 z;!mITdNO9+vO~Kyjb!29 z_9~)jU8|eyl%bS4+%-2I3y23L!E(KW$x^3OQEyCU{b{$1B0xr6Knr*7q4%JoJt~9G zC3QNS%Vs6wcUSPnX%`CDipb@qzOiPVs0zDggDoqy+%xzja1@>_kV$y_Q6Z(is0{Rn zgIM{xTa}X1_(m$JOxRPaw6PsJ6U7wOsW^3C97w3s;%zA=#-#^5ob7-q%_-i70$L`^ zl7xIl1N$KIt8no|RkQV+5VL}+5ENBt)SDqfieByh32x6Gceif)KMFrdXXU#d{hT$@ zP$w$eAeD z&^@AeYC zEO$e(`CkeBK{NXR2n>M6v3SedJU%Fp%{=``}=}A`3cDtVgZIk;nVdm{%6h8MDr2 zRX;HhwDfav?)XQR$6ylA!7WH3rn(Ul1db`?3Bzgp{Pa=UD4FaVA%~;tYc$c1_r0)y z?>^APN)&vHPXu}OgjYQdF~f~@ece-Mr;)3n3JY=cu%A86J@_T-zCH_=FlB%UN}@#r zl4{=KEiWBBl3G8@HzbpC#-e3`~i$FL9os>HWz1jaSz zr;~Ybz&DWiQsffu8a5X1C&sr%rl`7x3@7FszOYN!9M(N3zEHQwA+Xnot3YfdZAdUV z91pTB3O__kbv*Dk_UE?ZvSgFo-<-S+kgsxoxy3h1Cc-&zEC{30VKF6b z3sq)(bQSELj%>1t(Z`l~^$Qo8xAGaFWDMT>g@2;SLl!N>K-)oku|V7Hz-H|=rAnV( zHENW;!WQsqCWbhmQ732hCI0~Fao$0EX8%bJ)RA?8qdy3mtTNcbXV)&_r{fr^$^+Si zZyQXGmW6~x2&?EIdu!gmJr74fCB{B}k2qaQ^e0#s=F0_!nCC$e+ezXbZ4mK7x!{c# ztdw`3fbqK)@ypu;`B%9?HnvK%5Rtx5DPs@8KEJ&~q9;)SwcXPC`eZN^?1}x`q4Y*} zExzW9>a*du73&4;6{3rYWvr%qp8Pk{d}i2S|40b`t2lEDyjSxzXGxix(zM7Q0X+SE zLGYw<&P#6WOB5)`Oe6zolr}m1eT)Zl1Qj(catumjZ6dx;g_3A+=)ibfxVR{lR}$eh zCyVaA?}>LJVBxE+5EF!MD7up~ostSS`vy8*ZmCu)HoJFPxaLP4^956YC3Tdx+9>&YAtM8#D%N$eHVYFs z*0BD6%&+YO7-7axIi(M>f@E&t&M08FYezQfa?*+vgO0gSfuA1A{mgQ|{IQ=`M9v}J z;k{nb2rT;n2NZ;4dN$31l~;3Hr-%`*G)yU5bk-ZD->`dDFI>xB5zrz7-z0?HUn*+)g&V4iy%vcuu zu_IDS(Y}pHU7;?tz;$Zn)tLJ{)jNy_yFZ1*NZ_K>U+%ZPERE z5zR6}2q!=>A&I~rF7DNe!2=cskjvMaGKX#DS_4Bv0bV4vo1^8+>aJ%$&v4x@_0nx0 z#|yZQq@fpoeuY8$70I;{f<(Z%7QsF$T%prCm`LB#kNW8YAyz2tn8&JY2S;CKm*74YNJS7@bSekxp;aC1exRq=T1G2w*Yq8F%E1A_0 z@w*7y&XNPDr^63wyg-H^G+Q?S41OTMiA`^LU5+h7$l`>-2}m5qOpTl9U@TA0Mn2*D zK1DiH^PBlg%}p;t+j>=I$}fdZ9?fM3i~X^oKzpf!#tZ&8e9=-vi`CAW1rk5r#-ISUR zDc4@9)a7_?v%0N=_(A8HeGD6JWh!dDn5Ap&2&eV#O7cz8iB^4<7JltmpLj-%w)ifJ zn@-BC#qR2~EnFJeuqkXJPfl9u-J>2;Ta1#%Cq;tUb_kD@Y7fdvP1|H*UM|p2N>ZWqZeXTOXzIxFRkxW;2 zA``@(^&s8W+aA$&ogL=BxIS8@xMNSW$3XL7Jg9P(Zc0@09xY_r7}LHbMYDvKh(Z=g2qs_5ExxO^A2bX4W4|22+3TUj)0o|9 zxESiEd3lr~w|RMaq-12Bn`eaZWY1Wbn90HP%TzlfX~B^MTqv<{mxKoE@2XN?z3n&w$f|T9oi$b3JK>;AFf-Ln+_7|3@?sm zymXxD1|2e8j#UdwYjk9;=MzmmMh$n`GKzPG9gb_fKpS*>n|@jKf@Knk=Ahgx`iai% zc`LE%bhlA^aQY&i?xA9xV%ttt4U#F3i#L{~OVZU+l@rnJB4@+Tvj)q|nx+wUP5Q!G zUx6J4n;QX;8?kDAI^)TbiZb;WtHxZh1r!VoA-s22Z~6 zQDa!KduC1Fp#?Zea=AjH_xZeKx{PMErp(@$-;#dz`gt^|q>{O-j%r551HZb=BF}AC zetW5Hn{Mgi?}@IYtCPc1i8A%kbQ@*k1X){Ydsx=h9Zi&(;(<004iZgNH0q?qqIV*u z^@Z$9J+0}R>lGpxEz+*|>+Vc6N3Msa5}*n#kNKiAjOmB#txjNlG-vOKG03fWzA@&+Pws@X7;<|m(tU_s0*m5GSg!<5{_|Ynghj7kNGui}#$< zX*I{tNq-cy7Pvy7e9M88Q`jHbPUV5HCBpMfzHe-@Bu(W|o}d+-bghXmRaTNqNn8vX>rb zQ+Lky_6{#(U~)#!EvSmwO~{nw;wi=XVI6;mPrkvm$f)0|THYuq@ZqM(&g*me1HGaS zgfuz4W$cq4~IiOuXC=b@x`3shmAq zWn|0)>6ryqE#4=Vd@-1ZbZfgla6*mZzGV>&5{o~3{!vWG`0AX8`7)!O;z4wGLKXVN zp1SSt6>dV)!$QFzvUHDrMG*|KsA$EuX@BCJn3%8~dk>qEbR_6?zXtXhxJ2banF2_5 zQ{P2k4Oe5xL^_1hZdojrn>bQAEKF+l9i<=xCZ};hG`N%ZR|m1Fsr#96IEc8VI;{&@ zX`Ol{g^`yX8-v*3{MO7u$Y)nD?`*bMVAZj>_b!Gwkr4G;9!g#Ja{+-53ze+UT(z5& zyda2kKq+E-B#nZO?iM?34bxM$9VO@{8O*0&tn}C-dg^ZXDe4w1Eyu!XW7CzWk8kA1 z1Ahm{6q)D7iuqint!iq(t#L4^l?R^a#a z4{A!JCB8@R&A`y-)Z0~J=0-btR<7uAnwJNWHqn#;!`R{v*vxK2JEeu_4n`@ovAbe6 z-$ zF9~iA2ZT>t7W-=X#;mRmH7#l!G!;^cx77#zMdd?Lh5hh>O~tNCjf8&mRDS8Rh6x82 z@Bi$Zj{&|QIMV$-g7h6#DiD91=x~iLo!UwYe<;Zg&vJz+Fz@6YEo7&^Z>uVFcx&eu z(@JPJlo{{xe(R@5)qqbMqmzPHx-aA5`D!arU4+EKEk3+LG50x6UXz#5VRRyYaOKG> zTWr9Ng~mO~Kjgnyc9HJFaV7m#IC~1J=>2ZaCmKlaj~y$yk4q6@;0`?nTz{B4)ZTp| z&2B&Y;yW!71||Y3a=D*MMB%besUHk}1J|Fv4R!8p8W|ql%b-7h$JOTjDLxqhe1Ry5 z`?F6K83H|J0n=5_3+aFP(|^0wua{diKlHOXX0+(65cwBmqQiK0q14ac%?<<-!P)&N zf++zbn)MXYDjX|y6h!q=P52pnbzC(#@kXVnf+OIsMEpJm`1+izN5a7=EB_B@PKUGo zoCu6&js@(m6Je+rGcN@t>jcL? z=-W?&EE_0awl+EVcL45R7hydL`RaO6e&0tDV3VLi9uBIAA~?QeFw%52N3J70@(tbg zyfQaZgN*Fc^OWg}*&?{&8o?_*MvCer6Z4rZE> z3Gm$2J3zC*_&N6i5T^Pz%S$aE*}RZVM$~<;tu#`5EFObPKY?K^m(o5L9>vtFE@ z!KZ)(TNCSb>b{mD@KQuqCU(+2OgLA#L-x)LbFerL%vL;r(=n7wP$h{A&}AVoAZZvV zrxM6sU>6K0bcBu;^49K4n7W5Rf~3U4lCBR=a?6|t_3~VpO}XIhG!hen$`{|fZ#sP8 znlW1kfA-_w;Ph{PVjl_u?8$!8`%UQ!8F_aGc&Fqq)YmPV>vmy+>wfrqE;cb}S)C_8 zQ}~|k5F&~A71B_M2p9TtR3n$DI;HK3ROp<|_Ws?bXE1=o96~VWib#!)b`Fh2vBLQa{mS{gD*yPkmt)phY_QzfXryCC z6%8;&F2WSMw8{#9Sz*U2T!Vmb>LG>i<5@^4^9rTty4J*-BAHJXOLmh;b8Uui$#cnL z9{6b0d`m{p%9xkAvep32X!Knr!hbTB&7GB4ve7SqTLjfJ&5AHJ}M!X zX8!q<1T2>8QZ(2Wxz-@4R#&4RgP;;+pUkhS| z^|Vy*ocRR9BH)W40f6UOKdG%CxH-COmZ4vDziS8~`R-jj@)-XqXP@{h(_+wHeo2uc zkl#B0xjlULhtoo`F4}2>>*GQqf+}#I0K&_zO!?rLTWHd0q%$T2k#S;qS_Y=wVlR; z+D{c5e~NUpyPPfT75pT?hwMeF`%b$>;&oZDOQNM*Og^@TTC^qQ{od?F7lP{Q zarW*K@CieuivjAS-2~C5`lPPK1{5uGuU$L2SXrF+IhjF>gcv)ja;$OzO~Jdq+ysf6 zwF7uQcf2UiLqfgtnBbb_xVP5M>G`91=jXcH;ZPl z*1LoVf{@VZ&N>mxWV&D7iNEWl`Jy<}?-+Jyv)nkVN-tWx;DAVwRBWhm zXehrP`Jqe60AI3RHdeDjJcwN<5HBrtl&>~~=VRc-pc@{p`dCfJvyy8pA)+2xuKxj4%&q`t)R2NAb@tbEI1~&2t zovDHRk^_?wPVSgGPJ1aEyb|`-FP22d9#XaQ>s@T6auI65oToN3>pXLmK*{7aV>nb= z)5WO7>ECn6TP)Gl4f%xS)TYKsldAhMV)HEy1m5Z_Z@Aho5bLa0sgIiAa22`8fqN-< zYIP>i=UWT<1o4Is{R=ym-@3V?k9hWfd9PG@v9CP+W>3-~?xt!@=f7ySOVO599b|1!_^fFKu`WD6 z6@6vS{?cG`4$QS}^tQB5SiO0uy}N3?YW$ek`ZEa4HqCX^8S%oky!yN@^RLb7m1*}O z)zdwEB-1qJv;+>Tid}>)R$eI`VfqF6c4P`r1p&fhAY@73mOJ+ znv9KB+)vAR1or>ds}ZxzaZT8y;3@>XNt6|}Uct3QM_=>3UXJK@JiDIzNk19$j+Rk# zNRJH@2ZawQ_=*>otL?e6QL2#!H3{ZB8{BfW1ATQ(%?N3|x&eE)SRXzXm-S*qOACK@ zPw#iJn(hA4k@umOM2kCm0)m{xdw6?hGYs%&3atGJk20SNi;Cdlzs1LxwJ4~~uyeqh z`?vgp^yIoxeHR`EV z2ajvFU~GntWI5jk&G^f3j43~(%Ed)Car|5N$BVq}5Y&`Q!69a*?(0jU-d?y)&iDLz z>xKqBy#jNM^hERO>Sp9mIP`9z>l|At63(a?akc}Jj7v~%bxF*1M_3--46ytz z9cK%lGbtHN7}=)nVYoPif_FlWFWnNJpOsjl{?+=3*KiHu$*3tmJZ7VjW1Y3zJMY<& zoq-=Q^h^ecskGj~G<7$@qCB`DZdLl;PH{oSQ_zrYltFp9L3r;FQ@k`TXX|;K~vCK6!4X^CYjRnAmsa3!|`ix2LJ}m=!;4 ztD=+7Q+Hffam=Ip2QUzMsAQ!%?>Dix2s}ch7LE~(5cILh?h9(oj1QS(yociiqas6N zEoi!26@JEB(D2eN%vD)mxMN~s=j89=znz6|gxk5Y?kBlJIv!jx_9kJ(NNa{uY;D)rDo!pWo8?nD&O)m$RiDRzgb8m21+wSy7qcb7JD*$U?hS75HMHB! zLS~k;8(O#oJB`^HBHI&VE;6Q1Fg+8qGdfYfxd9;5xcz+Qm5&9M?Jo}aDwdke#)h`X zRWBX;krs9*w>!e_wo=a29|?V!Mg@*ZOoU~%${5@mF|iZY##Wxr&Oo{b%QKPdtm9~_ zBWXb!$lSmqO{zE4X|G`){oEKW3zwtrj6$t2hp3leGArt*b4HzHUI+nn#Y(*ce15mH zGVZf6!_&ST9#_X-^b&Bd&Ic%WyD6vVDB0U*JIfWcdj*>4D>5-YAkW$@L&H6AesMw&+}r3Im8Ct zZ^SL-cGis|h9+Pk(uUt3r=ksInb)zS+KJ$F&VyNRX&FQ=*Uz#3Fu|O)-m!gDsdqug z@3E!LtyAD!#XJmKG=aR0%frQm!VK4@mh}7;PDjDW7`bIK!2~ArB(vRa9jX zZRgB5>*jEw_~}OP$$Le>FSG@9i7CCJ%LXm9a*uCdV95I13_nMKGm)m-%Dg#2Ot|R6 z!dqt^9qn_6K=Q;29qcR!kkfr&CM*6mg6nlwY}|0Oyo0t(iAnEr)X`d~V{ZH6HISA3 z?uhSl&l%7w^MW8bvBMngiF%}2-(xyKqPPtbws%xySZYKztY}494(uRT=x-~xT6a<; zZU34vVM^J?%@Nfu=Dt&^(T*=C<0)f1)B|&O#P9f92G_kGZLZRo;+f+ak8tS+&UTr0 z5GWDUdBY_X-t|E24=V5uuP^Y9vQ4p?YjomU^4S|Pvo2VR-F4U-I>@kkYPCZ;e$o5? z03|`%z6{|Y>$5QA_jLl2&Wu54EK(E3ahtmL~cnDj_GkQ?!V$T%=>F0 zzMeA`4_$o+V#QPJ?H?u@;^($=uXFvLeSk@AF=c(95kS1D@#0;%awTTZo^6aBFmM2R zbnjtqoV;OemLK%IdGnAZ>};1VT`*|SAZ*>b71O3oGt6_}zI}1P0SCA{z!wIp3?CvO zKL|~VK(HWS9|XZ-Z?M|gWN+eebZ#zar0<=^~+>D_xU&+c0hlbQX|ufJT7LA zv(m+*;I{Ek;tnB2PCs_I@h%CK0r7@yn`ChM5*|BeB#s_91Rs7o5ifr>9)k|-k53oQ zz+2bckJrC=7i(p}`p|I~V0UIF7Oz^4hbF&+Pj7k(smZM|`uY3t^Pe+u_R*&p@}kWB zQTm_Lt=c9gV@c?8G>?u)`(~{WBBTjDA|8HktdJ62anps@V6BObHUA=GQ-G;l&?6!Bav~_3d#GZvXGU zOGyAJ>p=w2yC+&aY#zMob{sbC2W%3LC{sq{QReLzjzEZzlgrkwz`XT;Cnq#|oWu-Q4Y1E@qjSylfB}wZ3 zHP>9D;gMn3DV{XXO?Vy0ckhp@&bkb<7tO`Z;~vMsJr9yP@pxv(4T zSp2%+H=LC?99K^qgBONhiz`mQ2pQs8Mo%qz8To?z5wp=muDR(#^u6-+d*YQ8g}*ng zL5JAp$SKIh8()8bZY|p3rb}+XXH&k!^OMHm=z|B#l&mOxHvb#6jEu*BM*JVTeDu1+ z&nm_$At|4dGH>1Tgn00@#OVLrhegYm;P}Bui_Yw2SK{xCai9js^*gY2SDErS8Kcj+ z3OmKyXNgRGyyeWRFiD7{zqYKyTem(Tgk}-Wd-_%koY@C$#rNqs6~qw_}9PwC2m}qwa`SXDgugtBH$YYc+b)l1PJJ0F$g+YO$-(U8sdv~W5?d! zB8z1i_(bs(2-IWNdMd|#}T{o=sEs}v$P z5FH(Z&sWVgM9Gle12IcHDx$(7LE`3vg}-1|)-JsD>AUz@;==s6X_=YMWGXuv;Ts9t zU$lA|`nBwUGlcw+aNKCqqBT0VX@hwymY}J4qYNE%BwEDB$@VC$$lN03|H5U54#Qy* z(6~i>5-vUYJhW++41W9AA;ih1wDsaS^b_9w>LYx4JGXjl_u$TX@CH!Q+X@uq4i*U!-dhTyPvJu!F1A{0n0qH70VgsV@#1gS|f zO;E0b?1DU*>J@=kP9K3+rhba&-Wn^U)n+rz%6T8A_g78dr+L{hM$v$zRGcY<*A>T| zh2dgrWLSiFqh*M<(+s4EC*4~U-@z}7e#iG4mzlQMC*4vG#C2y}hW0I6%5=)Ja8TC+ zFmuUVq==`|cXGYI_w^@Oo4Fn9c5ITVe}%@Y$f+myBc(5g4L%l=X8(k3GBxg3xn7R% z*56DWo4tGiZaw7^bWCZ7Zf!f^oPo!Qqsu1w?Fb<%Ix`X7Fd;}AV)7XQMB`SiT4m-q zo_F4PIP0vlWIp0fEMLCd*v*T2{rdGd^UO1G;)y3BRxZ9b-gv_hLYH28DNZ=y1aSV` zx^?RsB2KCk5%9c$D=LaW03%TDg(ZM(RnruKU_?NFyKKA4uF8kt-w&{Tw*uiFs_BZIBFc zEA9Y`vbeex+a=NS=!Y+2K5>MvX=SSh^-=~>aLs?=g%Y{m@ zg=>}}O5zqV#?ay|YtSjVoy78icwTM7uH3A09&|4G`*bXperNmipy4?tdZcjr(cP~- zj*czbVC30X$W+WwnbsxK1oI2fL8fBy8ej~dFP6?S9x$wzCGnUjD@(kUvT_TIrwWZ? zJu{_K$~fDQjx^p{ynfg}?8gWpTjITVg=Qx?l zIQq29vFzdZ4Jk<7dp1u+oRDd``9AuA=AcsikH#2uRp|>GL`bseuK<3SbD=Teim2e<8Llct^w9zV!Sl# z0kv*3r+#t@q&d}K{__a|WUb-UE_(hjC>aBgrKYBu3&@^7{`li@@x>S8w%cyQh7B7` z$B?}(6y}YI9YtnRQv*dneuSD7fnY(P$}f4r0!V<`sr?+F9a{ynwC}3`QX?y(ed^l| z<6EB{w-m`BCZ4V#eonSMKQ~iOydAvt?{^Tcz2X8~dcm1EO=1AW$Hn5ROU^})Zkd+PIv(oVHk0vWufq@-d=#%2>Rx_|G3kR!o%w@N@`Z#L3Pia~QbH*bU0 zvPxN@unsFXuQ3Dt?x~&d?aV3IA@PC!km*BjF8LWf+I4ZQqUAAuAThugL+x9&F@cu9 z-S`)JcIhre!(KE`Xo_xaI$`Qxvn8fZSAz?^G&ntKNcV#=VdiAaUAYYZ`QTM7msmg1 zLZr15InT_OxIL@?#=GB5#Iv)%GY$z}y2M~W&zNh5or_!EdDxIuy}I_4F{>+95%nXP zW^fmrNMLM{K+e-;x>biZ?QqTM7vqNhC*!Zx%gwZ;9PuI|A@}pV+4$#2FPQi@%_QjW z&|ZgN^4woU-{lzd@f-L%qOq)Jd^j#HNY3uG^uQ{M%1RlkxmF;w7_E;!7PO1Pcic2DfH=G7HU+O4O49kAIvq z%}n#V@!YF%Zuh}hEFNm?TdtIqDFKrod3%g3IloH0X@t}y8(PgoJ+lf0Bf)~?Q=WJp zWr=rHq6E1~SR7ffklO(a|eYY}wi(KdV zIJ8ecWJxe-{x(R4R+M-h(3|TYLi|1X%S5z_O2D844whiw;U+fJ17E*|_3}GdA)am@ z&Hn}M+jlf#W^Gtz`e)pi@8gyEKbfhMyq7kl{5elvfQ!Ibzr=d~Uz{cgT^ z$m_jz(PbdLU`f_?{?6%n8cg@LV1AzQ_sw?+Zv&h_zW(_;=O6EH_WBQ0d!4ohs*T?4 zGVf~=bJKo-_ExSc`Mg&!?U7gRjO;AL%KLbRglb^m-#|?a0v#IaT0%WGIvPpM5@e9? zIj7*`qR6Hog$a3fx+;^Sv97&aF zNJDxLpd*Z#PLd*n&Q~V9g;uRoaL4)An^l&^-Sjvfdgnj5`PqB0S%M^AbJF=Z_2`pu z>v`8qVS1Rh$xhoz#^(x%;+GA)M z5seVh=du&emTO16W8@z_b!_4@lJABjVvd(7SWkTT5@sy=14T{t;?+Bz#C;c!#{Z3b z+APt%EhhsLu6`74#TEuT_V#?G^kc;nBOx*x{d@K??_VT=E+Zl%sI8=zCKk&#K&*6-tPsaL;ZN`pvUE1O9K_}zBH=e}dGS%&cv#!VAvWz;h zuPE`lW~>^LW~s?ta6+HM(O$@~90|fq;({2pj7h+MKY9(z2OW(|g>+$Gekaqd-Vl-{ zMhLtZnf`U?!G}l?=9akbsMB%xxF^v$xhZXsG8 zxacMmWO}iXC<(E$qMBepy%{7t(yXYp7a#oexe1^hCH6KEFCcp3kTjte486M^`u0`y z>Ci(w-+Ewgfz+;;Yat}%65C>bv`uJXcm=K=N6)!fxnAO={mV}}5C5I;CeFY2TC)Nh z2~>KrnOId#rH+})$QZ>g!m*RYe){LR*W>QjpFrFA7TBJ@8+V^~1G-8)Dsd~?$99)$ z!s~$7(6JJi;VW)@}-;vlVLD!G$d=Ty& z`=F3T{c-QH=a?1x3~;4#8^WfE{0N9|trJ;cK5VYI;tE`T`Q>Kt_{}#GmHheVF?H%x z3?4k#>>qT{LFnGSJ05=cVG|SRsi&U8!3Q5~h@yM%z1I*woE~NqfoBK2_10TB_0&_* zQs(keWp6hVThG^95?g#}?AWnmy|nLZd#WnWV$A_kt5&UCZmd85#}6(Rhd{U8+DY%@q@*M>4c+Diy6x6JOX~B(T%g-dGCM6T&HT0l-B#Pb z)=q|7;JY%P;k8Yc1SpjFKTl8l0zai~!aIkbi+CA;#mjV=>ZBqWbnb7&!FPLlx)e#Q zlcc6Gro3d;OXA?DHcjWq)F|fwi(?t~5&yW)lXj&o9;e9?=Fub;gk0ma9VWKV=~cF# z$&~*%z~#6rU1A4C%5)+I_mJ%~2gwwp_ABh~c#dgfNNUf35D$Z z9J7oy+hBfWiE{YyWQXY7JieJ(nTmZ!*<2c%-Zime2R%pjmkbtC$Y~>GF`phLBx<%n_RHub zC)pSDCdm;Gl$MFIguK*Y8F~nD33>)g<|O=WlTAj8;$qII~!<3ae79&o-lGcr#ync4e)HZt9Fiw%hgmsvgAxo(@i%T%15bdvS zvU=LSbRKh`Ium>1%Rl?uG1xk6v+c4^a)sQYcU5zVWn}TP=bc+l@1o9gmd=w^*xtiS zw>=?kL>ap&pSGv%PB&ggO$9HKUYwR$B&&kayNbU{I`eb&UY;J$$%m3Ty;w@lp?@a zaCr}C?@L`I|T0W8b0ItP!Q z$p)ECl4(XPWCy*>=b*He#QEWX(+=3}bI!Kw9E`Fqrv)WR`&AutQ4ZTlO=@M@U_D!x z0fK2qu@FQY7w#`vot)(?CW%5ExMa)JA0c<%`QcMD4XTqY-~Gqm3vu3&C!fo}O zwe}_3=gi@Gn@nE{%n1@ps*K&G(6b)T@sRCtyvH(frMZNb&UFET_V`2+k1r+h-S{5ch;XOB(KKKrcQHJwIppf_HB!=0x)4H$van@I!KP*qa|6ahs*5l{pa0YyL& z@F4;v;!QvjC`!J1>#Lv-fpv)DfU>&DTb&Y-Ro#B_CaW@?N@TF>*^XOI7092;Wb>Sr z#esG+8E9YokBiMR=xMSX_pts)pjXFkCa|&nSXWb$VSjo!&zoMVps%d1&a&LEey@5; zsM@i&_KgmrZ*}yjOjbqO80lUbaFLLnS4l-uYMxhJeJv(lTNHIktdUq6)TuWPKKTN4 zlxdq>?%gwaYrA@gdrI~HvCjw~s>&ZASu@LwF^|L$**QxP*>VJoZc(1>8_Q{Gpa^*R zaW_zHRV_t85l{s7i$D{ug{w&sPy_-30lr(>!C*ib)If|VmVrM1B4zr70BpW&`%ATe zdDW~(Lu&d|vxC{H{)Rl;;hMd{22mBn&2ScUrBGt{z7*Dayey($vNF<|Fv8t zcug=)O{h#KV<2+hdq8kX)gH4nH)V4e?Hp@XRnNv$j`uV6iJewfneM(Kia33Vfza8e zC4(w!cYo*DPf;=ru89O{}fFe*Y2yhBm zk^DtU3?P3KH2UZ*-^JcA;Xu+!#@Txs%iI0((kjlOtW}%W%TnPRO$-y~Ahp8w*>9owMI)foc*e(cwo zA=;24uwMlB%F?Eq6ahsba1qeye}UV#YME~kuunk~1X`wmMTlpBzf-`xY5K?z4(u7U zmfiy#klMt-dbq4O6&}7XpJiDhT((?3+mZ&hPPuJq2eTe!O`P@(rp*3T_Fb!J(ffpQ z!h~>fCfjxdbt(c%{7O&iqRVV|=- z?(-a1_i|34F)~C)4yKJ9;vqVj6|5Kbq^rDB$>yZ4&b^sl)pG3-bu(?$T3MSCc;EGUjjoFv0Yt(N}Qfc_X6~ zU$##<-V%uqmPyM@$EY#)OEBdb_Fd z9_^Mt+RHYnlf~Iv`^;w@m#lqQ+4An|n(dU@!SeQxzbUrI>&K;+*kAe^v6%2T`PaI? z@%`Lij8~JDW7`Oo^6Yck!fkd=HXfVs3f693Z~E5A7kld~`FsjkeHo(d)&T~X|*(j*D?RNta_ouBjKPoMq=RD!Eu%hC<`SniHu;)vg;h6?#kMYxY#&T zhw)eAoRullGU6GWf|#c#K}_Z_Ib&6 z3S^mUE{o13-?=K*)}6A9y_9=l6002IQX5QBTU-E%mv)JO|Izg?Wt4k`NbfrYsRFiQbE-Xwg^NpnQ6u#ITOY=ae1> zl#UTSIUT7`Y@^PZ8R-Uxc)`vPR~5V$PzSE`v|BtlibQUV;6XWDnx2FZ$%ah9g)*oY zr@`?hlKsYI+H(YBF2@}weOTEPJGMhT8Q+KmN_KvZ*h)e}2sTbh%G+)9AgK@~tDdpl zWgAxEmpRjM+L0$#nsV@YN=u2=JygOQOXCjXD_Tdud?4!0VQt;fh z_aIjAqaBpN^LestIurFE{v?DV#qNrdR55t|v1~rtCA7p7Bkq%a5*?&(^MuT@xbNDv z%T%Xc)F)rA^Bn0zvkI5s%f8MM+<0vePuk2a`ypOdHnZ1bIUPiSJZUc{N3fHBk#c>~ z9@;|PcS#@S=NHJn>-uH?(MFy(_U7i8K8+NeXk)&3wB_dINlatWL1a;n*qBHmfL7xB z1v7BeL5CVVP`daWWf03;!Hncqf~?j@J#s`2vEP-QC%@HQXqwQ}5L)H*uY(LFfa(Bb zZ9)-H1R5U#IxuW}eO42VwV!K(n$}SS8YlwF{rIJ0iaFS(2apW@6yhpETnnCzRXK?K zdG1U+_4ymD;OTQlqkWrpciu}f~nk^K%WB`jPl6!qkQd()1sxP9E?xaZ94FsOGwAxMhw#mpbDc*RmYeEr>c z``b_O)-RtUCNu)wQ#*>jx1m4=?YF=FIG!7Mzvz{WAH=)q2N|$Gdc_^sw0#Snc<)7= zbm*~o@%xW3YxCb&_~5(f)w#Qn2W5jxQwR3PcfU`?(_j7%aUtQdym<>ecJ*EO;+M(j z+NL8qw(p3WUVH%K?|cS-tzBWrfh1YEY{S+~C=pZsH|tvr>(&nsUwx-|+PIdhFLNcC z{s_g6%rw08`FPA*zZ_8|(raNZZz2*+FMj?%OkX}9k+OJ2iFj$fGV(zz6B6Pl@vuqT zosRdu|ICmpM;vqrdbIC^84Ks)xi8+r-oj#hvE^@kc){)967R44@R1?vxUyQV5He4E z@DjSFc0jBUN@KryAKg;hANy9xK}^STD1`Q*|~V*u4jZG z5*$nWhFEf+1YU*^nXiBSfq2`j6M`-q-8y!~ZD(JDL?L2kFP)DEKOBpc=%!ekwF5T| zzYN2N9FOB z0Am7(3bW+yzg3uAxMQ6e8sNjvEv^QNiw4{fuwpXP?qjW(O!U!W>V@7dMN0$TMsCrP z?$k-6U*r`A=Eq;p-I7NQoTNQxj97-3Y>C~5ejh%L+xra1%XdAA7q7k_wW`*@#_d~h z`$x}WNV{HmhQP<89s40QHI>FM=n<5TXMXqqk6(T}o)~x&zWH;q$>|~xMs#h_e99|g z&6W*#m~T~q1RA~T_^rE4H*ab69oAU zCHEi1qoeM_mk<9RTGwxCK*7s<4Z=f1Z^W+TJ;sAWk5_qo#O>LIyFYpko$5BnOE*1& z2YL)cGCgJX)0<*b%vQ`L(DcH{2Qaw(`Ix9hdTydi^Pn5#*^qkMke<2 z?-0SY%zbG{NlrHN5giwc`#yRey_U#9+6vFX2 zo#5M{0|$-n)063iL~j^*?#LT$EqgK09{C;qjl|!Kh2F#K#Z6 zhO4+XwcZn$qiWRqPhe2H9(d)>C-M3Xk5G;}hJ?IzUi{-H)F#OFJb}pMgYpn6jjzbV zAFCD+oV*)PUU@f?Qj^WvmCg@pTX^1AnQ7@rBiN&b6Hh=$fLhCl`gr&L7YPzRfDVmX z8(l{4-hp|`{=taz2jG({?!_BZzA|f439<{j9Id&+=D;2A%+Y}3%j3*p+U3;Mz{zRA zH6%_>Z*DJF180f`oWC5NDLlJ;9!CSR8Vmnj`Z!FT`Ii;4l1UFBPZH>YRdB&lKmF%I zfX9JD2cYno`&*rl3mDdOkRV3$I*m-Y$XnlkhAvS}aruRVnac&J65{dFujqpwuq43n8&3}n$*HiP2d}sd4I*nIW$#{0oITAG?nV^mkO+uzLrb0=CDFNc z2fX(Bx44>KHJOyH)WO4O!|}hF`Xe6ib_LqgJF0wuKl*p+jUQ)CF*N8blSPC45FAiG zBUMQ+T_c<0&LP*MUPLY2(r*N+RS9Q!7k7Q~bjj)`52O-Ux@I{dDptjL^kON?@Sjl^ zjlk>QeT=ATkqD&@*R9)#Ud=jS=90MvtU9ZHbHr@lhW}prGA{3PDFPS@7DC`6l^|V~ zSlOd!ZsawSl9Gbw=1#_p+g?DETD6%oX9vpB%SB!~)BgDbH}$^)XEkVq`Kwl-B0Xv{ z=&5w!x!sXj@-RJRX5ofG!|CnCTtviaKmKt%$^-`B%6^v_pri(Qm-kLYrAoM_ZEyTA z`&Trp*BIZ-oP>@|&qB>A)y%WAYK2PVPyQj|N)dI3nX@LqtdpProQj!i=rKlcss=s1 z4(w-`n^Re)2Yd2)aapg6uqQ1U`;zwJ#=#@#4JLXF)5Kj2~+%Q**vtZQX4~i4@8*~rRc3w*Q`^s9@y`;Ha#%B z??CKIh(~3Dc4?Vu2B5ru@F;rTwIpa3Yo3G3|I?%W*+^tK-jv0E;-(=Z366V&|7-C= z%#7QBr>?mdmCBVzS%QFp0c8lP#$i8mi{3;~>bzEMv1t8T)Z%^N1ZK0;S11R~uv=UW zxEgRZ;A+521E=bt?8SzATEH4`=ed9t?2>miP>32RY&ZHs6z!A_rMwmU zaHCOVT>?nj%Ke}xv_wFP*Q6+MSxWMMd&r^WJ##Az9?n zq})LV$tKfSBZYHQoj{0k!K~l84OjFWh;{TR>=&%hhb0gDM{E(uab%k*Q(1fEtP%rfZDugCrT0N(L5@LlK`#s z%tOpWlx*6hvP~O?F=;z@<@Z^*VWk1Ubg?bN1*fi@hlOjFVgp06E7qH!&QtOCP*D?Q7io_LI!rl+3jfjC6)2Dld{`(>ytW78If z=amWD&?urVv@&B7cA^B=sfzyHmzqYv@PNr-rMy16q#Rwkmz3v7=K`w8l3APK<--gJ zC_PIC=|gl*MR5V3Q=#=Ubxd{~4Yw++1-&tH5U?wQUo78<*DOo3Da3@<~wQ0I6uI! zHi1R^m;_j$koPl0=K__KM`jzrw-uXKGcj{I#!UYnEo;<6M|vIY+7pi^k@ZlAxqy@~ z`v4OR3rsLcsu^}BgWt1zlxJvf0d-wP3A~pl#$v10az{0gL*qqUVX`U1Q0+iH=;TR<#=5SoAwK$8P0X--}PCe``R- zYLq>LV@X9?GwhNDny|(Y)D=(Bsn*jw@WWS**B2&WvKE7fACYBzj0|L0T2pge%e z@K<>0w;-RIGOYAhT#E;A*pG;+)$!x4ui>fj@8I{jv#??Jc09o3v%Q$}=9l?1FyP4> zaecQz7(L=mEZ@8aEgQEm+j|RmvBiW@*%OCWjmOXa!=_Kg`M=@TS06%S=6Sj8ydfrm zZrvI+@Y0}LaMy>=pkY`I>`Y6-kn{Q(ua@5z&Bo|)@1tggDu_vr#}|WdH~CfM<)9F& z)w{OizBiu0HGPMo_u1VT?$QyH{+^DjUbqYW+xNg@7vIY*vG<`$6@yao8GMA_V|^bB zKu9C7(!Oa+bg0=FQB`W73cX17(*>q!y+(NTg6nb5yH6Xw(n=h}e=oX|fJ!h1w(g31 z-h2X0qZ*=f)3y+BA%MdcJHEVoe0?7X98wOV_Dn#0bFX1|?DNqG^Dm1G0%XsOywB*Q z5<}-YHEzw_%>vP(@mWaRy&Itncat}Y`U_N0(eue;^n1?jzXo(5z!t)gp-WUs ziD9>+OY4qI!aN0|UVRWP>NLh%*M5kd1P(Ll;i5cG?OV3N+Y6@P4Tea0cv8L}4;GTd z5WRcfc%0!@7oz`peXwxdGA!M>iFuCZn~*5wQ5wi=gS+)Jo=``$nI)0rWu?)l6+Y{d zIXJ$11u&(hXQC^^2_KJMhkM_BieXa$466&l;GX?4;rB@>8R`k!vwV6;*{6g(X4P`M zZM$Oe#)MDNsA43N8OHT!_o1jjutqz>O~2zM{O7ZmnKx<$qT^#Rvd>Ul#6;;wipSGS zYq4@jD7y20dvyHUI4iu4Nf@jl}v)t??m!+Z8K-f}N9 z(e=C)3#9~{-J(4PoqK`NuXY8q#dCiiIk)wNaV$XrkD9l_7&xzE2p!e~<&#f7LBD?e zP`R=vUe4D|npc`9(@t@gv9Ym;ii$GmVquSeGCb!;A1x2b8XX;ts^Q_xaxUb&c$AGB zH=<6RI>kfSEGg}LYpnZu6BD^5W;()okK4MUzVNM_ zn>KAiWMrh-O0}rVY~|Bj$1xtgR;^maZoao}-HI^g2MDHNpchn!O=Q(mWREfy5)u;3 zdbjJps0yp3xbgAv#X?p)hjvc4Y}sPomGvF|Z;Qt(pd^;;+=@H@_zqXrZ-ag{8WRXA zh0qG2Cq#Zf4bS6Q9D3i>?oOEus|X7TGVNJ)MwWdvYL6%H@dPuTDGXWK&F#R;Gb}~h zovTh;Tx%<9g<)yl1vDtU$l6TOqvq}qtyI}ix!Nq!H)(0BZS9aG5JX0)!dO&N7)G>* z+f|1#rR17aBL`uL%DYJW*XlN%XZ38Y3msiHVjdt~0 zpnvy%CX`8I8GiZxC7yjH_7!cr7Ui*VA47T`8gVa&X zDQ;QLdJ1Q}UqoBy(y`_+x1zpDOp-0y+A>~!p(axsp)}+*58H zwbOR>N=jUj;D=%lp8etecL0=Vv1u3Ce|OIGmRC&;W(*8?a&v|C(g z@WynDtAS#pfnsJH7MpqX64djHl2@gBS}Zi6xp%!qip5mBLjFq)m=G`;68;8E_?N`o z?s?XLjJIHVEy#00uOu=W^%q2AR9j#RtdSAwM`Kj=7Ld>YGLB0#_e@SNAg`g>CxH1_ z0!d5#Rb>9!&jNSK3*gDBQ@sEKB{LTIqk8dZi+J(R`k`3$0(ZV;zMkb<)}d*w2He4H zvkB*E*Sw7eF#wV6D+5~p*|BZC&ix5OY>bJ7BV)W^&-zpcXPkz&WO_4Zsm)Z{L4(uUL@kWX9*fPIjI(Hb0}AZ3o66~&N9CoT2U+V`$EeW`D?HTNxPdFx+&3!}IIP+@4<9mCattAR641A4%_ z#^D(^Z70ld3A;te3HNk6xEgRZaJp&0eQxLPj93FpIbG8Er$nso_hKG(Y?YVC=D9Vq zK!)?WF&cf)w??jQE2H{&#Tv4{+W8v$SnWl_*+(8HL%Ls#W}DV9kIW`?ZP^j+nzTX~ zL#CA1#p%J}&AXEyNudPSWlQ_x+6#wq>-lD89m*3V8vx2O$esQ4`B?lOYfNuC$D-w= zliO$YKbiTkGpJ{q5@p+R}Pv)bj|V67aeB<;CLD^fUbK_A5Tpud|gI;n!-g00C~#M z2G0o-&834V7aa9m1}#F>#$creo#4u;5>N9O#1Ndbo3+I`E!z?tQj%&WD(0U;X!247 z@F)zZMwRNgX#lqq=QiyM^OCoS1%L8FC%@Ww^efMh{D06m!3N28D&)&AJ>?f2yPow> z@Yab1a=h#FI<{!56h}SVCwX3V<+dx%8p!`=-D#^$gLI#^+_{Xo8gMm`Um9@l_59N0 z8AzuXeW#s)vvYDRyK{PSddsbs>?7(_zh-Cf&yQOU6^4qBjFH7aZv46RM`^%>AkkY! zpvmcA*lO)4|BwByRrrq0<8l=9xl~9F<-$3X!JI~vO`$X#QO#7;%tO$UgW9l000TNnLvtr<^9nkO%ha!FYaGwDUiv9&e?1lb%udDV*M z*pvT=9y~%OeG~&ev7HmFG~;vd(*a=h!E&CfTmUG~s&X5m7==o>F3#?HKOJ72+*v4i z4Y>Du!Rz>R9l@RZ({*NCzD^qrWLcjwu##vb`N=pf0MCcqUh z79|4S$-h<%lTu>fQ~fTZ@%1NTTHw#NoiRAT^;ENR^*rZ4kt!927#+LaB&AkD>iXQe z+~$PIXEhpNKwF?^GK9^!0wu@#?a>B=s234s5&-9yenlshThXuGy3xp5gGrF9R|+>k zSALC=-+C%YdKREbU=r)iaofzjRHJe=RANGF=|ceL+HIS#j|s_@9K9wz#PYfx>{^W8 zu?;1e!>0!GBw1j|%A__*fL*#&2?Ch=q0Bv63rZxeYw}_{ljkLG{&!Xzc|1xn=Fi8I zPxUJHXg}LN=A!%0X{v!j{w6z3wcxVlYQWV%(b0hOyQt_$uD31oYs@6cHW-@{7Pcs$|ack z_wU)iDd)nDTUQG)7`eW%_y!zcoc;fTd3|OKam7J!grR9`Eb@tEFbMj^7&{0L9 zT>@cdESh5yFgw2|GZZ@CqXo5-ErKKSK- zc!=AS&sn;F;DmTOvXIQYd+FVdW!Hqxoki!8+bO%RHnxv*ZoR|YvT1p(6SZ^Fx3rFR zbn4y7u^mH4KPEBP4qNa4`Zb>U@(s*hHqUq?YMl!#o5U^IM{_;AJ>hfg-Irp#g`D$c z<@Uvg*5Yi=@vMcjkGibqT~MGurq7*;``&pLsTpZp3*1GG9!MYl_$7Xx@r${xcGbHh&b;)>#=;ucD*9mfb$EF_E`=5ClaOeKao3rC`?6f3~+t_W8R}GjXr!;nyh}W1f?)%{J zRrfE~qC#5iHrg6Y36(VuA}in_om*LJJNAssjO-uXQ`1w?y>(|iFydBZI`ZsTPax4y zKN+s}`KP1CNu!ag#LUhyeF>@d3JB1+3hff@;}sd=3TaBuJcJY)>Lw(NvdEBEf61Y7 z4Qv?J}a01_jI#-M!S&4vV-&@sv@nLYe+ zYjzgtQGMh|V*2nXyHsG)(v7PyW%e`z5Lxyt+o`{{w7c1G?u@4fG_OL%&XW>6aH$2fCiC@vzC5@%N z^3u~dIrM1sPPsKcb*O8S(e&j}#dE&j95sgc)fl3st<-hhf=kk=>ZM=NQV|HJc4=v8 zM(2ixx#IgD(NY_YVb(8?HaWKH%{s{%dmoSTw0if}r_ix>GwkBl?E+2ICO9w{cMZA@ z*Y+HYt%)EQWC0FtA=vr${EEcBqW#{OWVa&u3Xu3!xVt9F3EqX zfvktczog=JcQtTEXuv+x&Io2*CQn)enrF8ZPYt;Dc+s18cTNjtPR-6YG;sWA9B0`$ z1v3z-7MUmVNeW_&M;g~3PWlQJgUjQJK7;6ikck(@yor9Dd!lut=J@)zA2DO`-`Kl* zO?CJH06+jqL_t({FDlV)x^KuRR168jQ=g8;!YymjuT>Y^HEa~UBnSv_-k$knG|p+! z5z`j`iNDq_#Z5hjU<84T!zB)5$+{JIf66%QNlZWzft9Pf4Z!8S2AIAEz{r|u-CF`j z1cHqFZ33n&`~v~p()%#IR6e--1q5kZdIAyNMV>Niw`{~46Fx&?auU|;h{kPwh8rV! z{r1gx<(u~z+O-XhBkSVc%WmYB?Nza#`FYOJv%XX)gtWPvl|os`pww2oteZsB_kDYeDg6j z?TW#`&b%QA`1M=-zHAN-?h#~ zu|$)nQoJ$0n==(%8nnW#gGM5vN;Rz9v=;AA8jI~acVNw)SUh~;)#%#p96U1SRop-D z1~jY{h1JoU@cP#u;Kf@W#Q}m~-_M$Y@v|p$ZaomeYqvdt@UY5;*8ffT6v-*cNZOZ- z;XN+FQ10-ixqV^$d)URW!=|+w;O-$epbCL33p!dEbktnQt7+zYWQ0d;h5A6|Tlf3y2Bv)ga-ZziT4j_JMYp()c3z^GxlPQ@ z@G>4g07fR?#Fu}-JKx(c;&~#q6Ln%d8gJYYv$&7hKcVg4nT6bWUil$I3S|6VQnJ9h zwkqwS7EGdANcqo!&D?v3Zs>o2B><-FOV$d0Z}~qGy7`|jl;eW=WgUqZzj;OO9dLW} z&~JE*@G>G|*%q_*QL!Zv(ZDmD2A)gjnlJwiEM{=J^&(6EXQlV{@_$x(ShdYq55GElW?C$ zg0=PrT8>Ocr+H?2I3$h7cYghG9((=l=bhr;UY)oaSVx!Hv+vY-CHmw@LOo~S)Ba|K zcWwpZYfOag##deqXdLOA-?aSe3%I;po^3I7^}E}q|3{IVX!$ND-iui>l^J0b_=M^? zyKZ$ysBHSr`&}i4?FXV+)p~WCMIfE>M2#TG>$0*{CDQP_vXQUwwBrgwJv{&FLmlY1 z4|p9qW_jZMUE0*shpkmj_;+v0^ysEhPb7F$H8S<9Mzh4#?3d$aPYlTqM956_DxKah z^xQQj)|%*K>5a#+{mc2P=7d9+z!T8TwwF73A&bi}!O&&2WceIrU8uLkVYU8mrfR-z zfaLAx7Q-0puk}VBEd?8CSg5OTd%dM{#v8iX$bp+ z$*2`Q&i@vfsC!pQK)Jh@1*A4~v1a4d1Iiv%>6N1(>OOQtwA=dj`a?}HM-$ny+3|jo z{`>ZyHMC~dlU$vV%wrs)bu^JGaq1La`j7qzVZUfSc*B^U1J*Y&5x4%+Vyft?Rpu=T zStiZu;aHe`k9k)c;Uo9AJ7Un_xe@5vg4;}@Ry2H1&@rc4dW#R)5#bO_szKQNxHks7 zg9*V!V_y3Ch3M9X|flG41O|(*Xht~G14X_3sZc^ZU zi%Ovs(i3}qY9uCE2cIolHh1K0qm6#wr!^_hs9ONjcD^#N_gKce*f4-@STx|3gciAh z4@W2VdAdU-%WXSp@p-kpu;6ZWx>Zf{=%|3AvXwz;wR-a5c(a8j8)x~7oqsDso*(d& zUl{hvpwyh#A~4P>#?jqbE{%3u^a8(?ZOsf4#dmy6UWp%|Y3VDVa|jmE$|EC5LyDA` zccbJm7_@GII7ysPS2fvw-mlgw;N70zJl+oev&;tJb&Eo&;9GIpM9lmor5Y!zu!Tva z*AmyaS9pLxC`Dhn>9=?^m3b5jUv2-6*v9tdHj(af?)@X-s;g+=zBA= zdDrOZ)sSMMaQ}WKalW+b_erB}bgYnZpPce(iLFZj` zd+oBb{z5T7*YHSzXfZyOg00uq2hEAmmrn+x-(PDwBD{@6uEY6%qOp{#RZ~@j{p%b~ zgwSrvTyXfk!`NXu9+Fq>eF)mdpw`?DGW#z6GD$Bp)2o{4Dp8F3mdgmD*_!N zgCKtMLnq}@qq3Jl{x=)V=WH9;0renXBeuMB!4kOm)8|ieVXUAJ(MHiXN5Y@kkS^2J z>jPdx3?y)z)Gpt92tKH87hz0yPAUH>$g=Z+=ucQbz2#jE<;f}P7`oMVLA-)BIYfT+ zOs5-Io#>ARSt8uX4FR`4>JQ9One9qo=s?1H6;)hXHi;cBZ;1M;|7LMQ(R#ji;!`Sj zS}>YBY2fOdU3RP0f=6pUO{>(P+wyq5o*%MG{CJ~^u-i*+FHnuz^Z>}?$92vL^A$E< zGZ|lIt#K4Bv-rB4+;$e$>D|V`d`8V~WRBO`pqz?phF`X0y<3>@%#6znN3;?<*=}bk zf0>Mf2Gx~bU9`h%KTw*40!i!?W|Iw%YNZb(verX~5nm#$mml zkRKjSX}uXab=Xl9ZuzBcDyse@{gafgi_TKLEL_kRBVGihlfT68w+**Y-1MDC#^5W- zZz8h{EB5t;I2M%6TTLs=Jg66HBM6d-^~=pp)$$*d=j*Ki7Gg9slY#E@d$8x)^m@Dh z&~2s8gla=RPZdvS;lEZr!K`CevymCfaR7}7l6zuBS&aUhdQsK@6aJRczjEB(x`XCD zopkr6msa-{MOA^dKXNXA7kL9U4Xa&zudqt*nbNcQoKH(=0$Lj69Qgqc+L#CKUkki80=LParmZ-kFCzHmGunvY&dQqM%KaIs2H(;B;%QR|VqH3Tc5!J`vJ8N| zafn!ttt*p~I%jwy)q^c4q={J)&4+_W;=G5yvk$i@i`5|p5;mBxbeYkM!KsA8rWR|B zLx!n1NGIQzd`U_;&};US+{<=_6t}k3jA9w7J062b6|EAExiDbhp>?LB5<>o!;UNX* z`Ky2&1UAIMgriE~ zc4%QsV#*d-4*vC8?=?@CWl&2w0B>1@mM3rWPmQMA>;cU_V*5=JtxDG1Yrb#VA5~Rw zAV}_J1;ptD#je3oJHj6WJ{*tTDV-YDCa*fkztwE^z;hnE6aj8R*h8r;ffwGI&Bzt4 zfn#^T3I+dA7#MO=SK$%;dzOp^#~>7{820=isKAGx0WCwLWFa{Q1Osop|6CLfxpvoV z3|m>r=+s9txBNru=0vTRi<)gp>X{H~0ngMd@^}F~4|p6^^AMHGwIdgd9cm>I<4``z z7aWGRHzl@)HEiRlD6H?WZ5JD<=3pm|4+``5eZcEnqVRa?W!BsKI^Y=rBH5~e;s64D z-X|X!8Cgn_ER^o2&Fev`QM4!c%olULpQvm)oyF?~HkK%K6^i73W9~xD^gqJFX|XD4A(#xB&4UxQSCt z#WMv%yWwi<9(UqW^hGVdb|Qu0Vj0cuZOl^dWxumk%bsXjUzZH0v6^RKhr3;VU}@I4 zubgYOm5mkEK^# z+IQ<0=H6Z`rXR7-n!6rXP-&%PDLLqr(BdjgLuM4%Lx?YR7YL?lA*D7|Pl*I!cG_Wn zRJrqG>0hshi=0?IPB=CMpL~4ChH&$wbLb4#+@-cgYlb@%&s3?|63%iuS!bOWZ)3b| zW4=xYga}(4M-={UGnLH??sM`!`lpoHX${L%Dm}eH`R#gj;KW+3wA^IPm&lEHj7Xjw zBB72N^6ZJ=Imlb7W%gBkdvKPjX_O|e0y{#|F2#i3_4KXLl$9vs3428Uwh5B`Elr$; zjVvKYi18RJY1|#0kYyt>Z05_!cw+sMwVn!Oz=*U@oZ|ZU)23s zx>MQR*#ZijoBD{+f-Jn{%i_b9Z21_Rg|7z(P#enPtu1PyUpxRtd~P=1Tdyfo10~M? zg$`eGK~m6Bl~_cj(9sJF131Fx2$bT4z>7HKS)~x)GdW=hminbs*?J!)naHe)PTRox zY)}+k4u@UL!jX7Ao&feHeLD_^x<;>8YYN(zFP&auac1h$Nv6SMt76++rLfTNI7eKo zHEJ{!0gq~i2IfG>i)N7hcY5NF zs%0M<$WQT)#Ikk;dbU1Ee>$kC=&0ds%g&vqwxH}2(iVSr+c$Er-g4) zM!PHPYqJ8hk1B%Wk9~1hJHiHkGA<6w`F=SS5lr?yTX`P5&;zPZ_Y`m~Ra96krE4Xi zmI1rX6QEsU;oaHGU+sqPe`Q1%gGE*|9P~i_L-kqT!@Pd<7Sk?I|K3dFu;QDxTSarX zT@cf?>_}IR`}_Rq)B_>nf%dIUHGZ~?87yrWKa*zuZen60^^ec}R3uOig0b#sg1J`$ zTmprPg=Mi;X;|#I*+He+gzbrH&~N@XnNe?PX7-zc3ASP^A_Zk-3ISKCs>zKr-6%R; zdHcc!jf65vN`ZbAecqCDC<0bwa(tfmV$>kGF(sNhM`Uxi0eDZ)7*>CIThKFoAz1aQ z2e22^f?b(#rel%>cx)b#l9C>dhV2^D$XN;k+>LNruh<3G@5B>;lue?NF72c4!gfH| zfD^5yf`D8cYMt)fMW38Ae~l|UIjUEuu#_QBG<*R)ZY?6-vS(}nOpM*qAo=oUXxTp+9~<@IduCu%7{}6A zcOK&PT~nGf(!Jt@6CCi#?6o@x1`?CJ<8c&vGVpFbWNWtjV70Ak&tdWcfrB7D7NYk7?WfGWIY%d0xtQIKWxceFCv(3UB{!1pWv(APge z^AS1atvJ^;kAba9ocvGmX^+w6vX5M*4xHxg!t>Y5{l(;-;Yx&@C-$r&zip2WMd9+ixz&|D|ykvRyB31tvSn{;fxYaXSmP#zLIIaO2 zn4zw-IO2+RMg4#QG^Jc-Uz2LG2sk?fKCGAPiXlIdS+{09GgC;Prb=fjT)su02Ey{S z+Q&WHrRF{Qrxq$oh`-@A;uCM&!T2-@el@dF=<6GG6cP5x+T7SdADWMvn*0^#UVC5Q zxjW6cM*h|cveqxnhb-C`^#JN**SQVSA^M(Tb5s#Ta7OSu1A^kMHCo|qT^Z%BZpJ%< zUy`|XXdv4=rwM~T{T>=*R|4R#vKM+woRt!e-LdQwV&i2l< zF+;3{D1;*7@7T(jbHHs#LvJTwbvMWNl2yvR+vooJyb)mf z_5?ay0iVQME^N`oqGCOt!4J;V8ui-8kzJj^`q#jckbv*7bzub;Y-EKqfZB_AT6W@; zO7c{<>E&RU1;36hcPs~O-<$&83kyPhL(V13^J0>Qq{w!$V%VW0#?uBfFzEW8OjA9X z6k7GMEg+B9QBs%+9s&*g)cWVO>Am3s{OgLYH&n3nKsML6KhVze{`NX-JhCQ@p{@O4PJ}5A}&NWv*jkz)z z49z@gdi}r@gkrPapHLGCYicRfG}VD5K+~w0?+orVwV;(FHC)@F5f>pDtO>ylXi60k zC4m$@0LA;Kh@t!y@sTKtvZiGBt{rH)G-)_A+z>sF1VYEH!A{B*d_c+V$#Chsg$h$r(|`h*`H7r>{Naxz-Vj6W zx!{4_eaYheJp{ZeBBiS;6vGl~Wix$`56UljDnINgQMAId2d-g^4?Na&NoeBzhUeDH z5G>#+iFL(w;He&etgP})-n{063#ilk zlOi*FE+lPUnn*iAyiW=1aKXpqT#xGfoai!^>cjo&c(lwJs%F|(+UNP{mANkWCZ^-g zHc|UsTj1b6!z-2P|DZ85XUzYqQvE;>=or{d?S~n5&i$}BxRhthlC&q_LL=_w1Jb+K ztKRR*_zuvuLd%A}jNmz`QxaMRmKvSUX(`#rq7p_qfUd)m$nBy3)GRrjOE*BM29HeW zV@#C0GPipE>7~l_tU0t8QI?>_Ues+@c7VW ziC5V7anU;`GWA0V=7wX>cdC(FdAEOQbr1CPgJ17vZL~!=zL0SAbnA6Pc7mE%r=#)0 zucaQRJFcZx{L_}qP~xcUb!v7i)-2Y0ruV}3^}r)XuiI02eR`R-wWa4&qtx`imeVoH z)A!1Ce)^Q9G7-R)lJ_|K;C{Syv$MJIx&eOWb6((7vvv83nW6VsOl#MIZ=A*c&dUUo zrt~V7A#tqdW@Y>BLTs_oB*)c@*tA`}zoIWQ(NBGT|A-^X6(Frw%XfA~$be#R zW^?S-#p$SR+-Y_qQDk91_B3C69Zk#b)@V4~-8SAkPhQFPX`K_F#3Ot|GNaXXIA7b8 z@IglcKT;@eNXS>eWuhtN5YNOS;#vuoA|3b}U%}&Lu)Q^(&1)t0_9uY-gb@*5IIQ}V z;Q`+T*K_3uJ$eDn`K&Nxk{XY1UL>{As3G4{S`PZX)!WKP=DE)Qz=s?QL*krPvb4%6 zj8_Q{GM`Dv=Y_S5)QF-Md=VutgdP*iror3X zk;szEGG~t7`-EeKQDu!y;kN|6H^NG|D*6dx6Ilvh!(A~GE*|qOD{cPlo?+|3mA)vXULJpqjY%>VK>I#(f;IP~Iz@?V z8G7h*V8&Vv=4W)K5M*U*l{Eih{7WQIU+?j9sGHDnny8g8xbIYBpwYXrgAL2@)0!Zd zX2+fxV)j(l2j?F(GdugAq}kluMZ+VDbbEc{w6sKI&agw_pd0zCfA zX`;9c8o?Vf)QbxzlvRgSUu>9MbX zk-!R{uKq!iuWMLGXc+lhsC968+U7^*pgI@i&x`UzPqc=o!RCTZeO>SYYnT~ zBaf+0;OoW%V1l)^r{}c$tP2qL%23BQ`OWNkh3adrp}>BdM;0r%l-1zMKj)V{(Wo$0 z3`5AM?cQw$A^+L&=E&=t`P205C{Aw5SEFS=caMdGkzDW|+5QX0>4m^bT2SqLal@MD zEIZdh*!RwRD%PLi{q@wYlPIyL``CR_6cD8nYiIc0rTl+CLWyV;5EIr2eC8d+6##)> zknMiw2;MxuN-i=ryeC_D`FudTlB1R7PCaq#B?pp47e~;DjS$@k=GK;a;9uxq-Wv!M zyRoSYp}1v+RrSP6?}>yJ^fO2#^>^+Si6Do_U0ZKgC!S4iop>hfoJ*uf{N5^A=6myy?Mq@94qB7uUtRI@>_@uPIz&cYrEA>$ z--^?&q{sT26ITz8Q1YbJ4$hnH-HT_D5wxjQXX8D$_EI;)QYPb*Mg%lq;Xka;p&)}K zRv0B!pr@0KV1`{Ke}b92yeFGJvl&d`c7q6m{|R+D`+-w2ZvP<#PLiMBgE zwmC^_KizItMx{Au3-zSxKFqa!qOS+3ynps89W^QiMYZs61?oG66F{E~nM4!2PpOiU zYi+fTLcUen9S5fw=pWL)6Z#5{f+*aQ`Tf!P zzjSZB9&8_{QMV^P>d)dr6^_qiR8zYm-Jdu!bw|4?dyC!qp##Y1f?BA$H_MEDti2PG zUhQ+^l9?cq;>O)%|HJvfNw)vXB>p!kra{23lLA2ILnA`EPQY7>jNjhS@dg8*f$Dv6 z9?)tv_7 z+M`&H$)7%i2kHOdxj1sP&iC#<{vOH0Paz!$#gn0=MT@6T!XD`So_hw}IYKgf|KW`~ zop1C=WGCV-^8cM8rX<)`(5P(UmlCbpIc=&o$8#3@xH_{lRiVPHSL7KSExq5Q73+^F zJU$qTG1EDs(pE4Y5$kF1__Oy^Xv%dt#&`Jt|91cT>x$IR2Tju1{k#+&`ujaJ2#=hj zv|r;K)Ab7i10d61A*>3f7m54~zZN-y^a}Za6>Xd3>Td{*uJ~6QOsDA0aq~_{g?|&9 zQa0x~W%=~v{&s$d3F*;V-a%yPz0wh0-H<_Ve?_}wna}WUFbAs_?3@`A`_`&H-*Ef6 zV;X{UU>4RYfDl3pdaEP{Sf&X!hrfB_$?zuMGo^Eir4J0~G$IXYvgtwx|32q*N`{}W>bZ=T?Syx;*p9Y%zg zpB6M>_<3l9m{l9;hp4tZ0ffw989Zi^ORh?WX#Y*?3UlMQ#;ho#Pn*}5QraBSdM)e6 zdViowm3f@bDQN=&Z;3v%1yVcxSkv1~&2F@ZN(ET=gKy44(!G4nGrcS)KV7uSI1)!` zdUN;Yg1dx2xE;Vvz;Et;ck8WbF96~VN`}qr_^mzO#p?rR;q5@R01@Y)UMrz+M?aw* zyGf&VoZVv& zI@`y3rxL}XuNXaS;^VKh4uO2Y*GqW@gT{?x$%{x`aHOt)s}PnJ#fb;J5owt4XPC_# zUH&_u9NXrRL}wRNGHNyKmO=tNw?)G|;UMUw%>cMw!^&u-5~e4*BV~v#kR;RBnBE3y zb{#p3RNPdO(w#WXHOq)s8!zfD+`kaL0(*aG_fz!eD!nfK)}WP`6vC0z%DvA8S^skg zs`6>(^!IXn0qGC3#}eldxlsGG@Tc-BwRNH$fc_;7_lgtAkB(c3`N+r-@rrjE{?25^ zjb)7Bw>h4tXS73%F|)P=*?T`OSe>Z)jK8S)J4)tBQMH7TF0m zPNarm2=9Uen1%c7uI3iT*@RoMse3Z3{#ecMyVDkCmI@*Y1CEVRs~y#u*DL$VD*5)| zAdhj;Wl`z-xzxq%So6tilV=WrGGJwRVE5&CqNT4sqGe6m736WlT4V}D!FCXdK;YCn zPo>MZFeIO!@X54lYxWi&FTa)J|1s{ppQKxi9O5b&POj`T3rA9*0un0aCy;TSKO}J* zx3%0Hfyjkl3>-!{?Nau<%^wI{2{Ri?=LcQxn9bmCEKoP-VhA^uJ`Rn9cU-R^u;>HR|{SW@1~mRL(&6vLe+99ZnbD~G&X78gGz8Be9)QGqjxlsr_tHHS6nO=ucP z&a^sTxB{&Y2qVqpGj_q|(NI|2Jw48Lh`PSjyAd7M=>GQoVi1=@*oj}b#l&{&x93N= zA4vShg59XaEOo1U?{amW86#S&&osg9&^ORLVSRl`R^4vtd(F3KTi`QXF;Z#v79H_V zMo}Ez=R&~s9lA_iXc8KEMYJK7EhG^R!jA<+Zy&cAcH!$`y4~*2T6Pwy-QkD@P5@`Y zuj9{MkX>>tAqNClT<@S5u~pO|9#(6IwMbQY)^lhFOq5VJO3wMV8XZ4oo-bcY6hp2$O+a+GhPdLp;yK%@$PJgzJM z%VTN|eUet|k*eg20p+5#vJx=bA}Sw!&W*@fsXl_EMwRAELFrE%ki$-BwQLt*nC-ir+bkcS)P)np zRWtNYNSwv-6yvny2SAJZ_1^S*8u$Om6EEb$_b=#|Bq;k9se?Xn*la0Y56hp>wAr>Q5nq zC_|&3{!$uc+N~UKy_=C@8Yld%SKQr&Gjhv_{a~_cwF-3umwU3!osiks7R{);=WS5s zOh*7aw3v-Uba8;$uBl5n-FG)7Bg7LR&IFgE@%v+V?CN;wkqOoAWu%GV%lGUorYizz z>uc zFjsA`4i19MIN5E9cS6WNkl6NQ(ds;_7QW1F;H_ESI@Tx13GW>&@EH|8OCkNW zqdtE$HL%}XLMlWH$qM3UIc+?0acq3>`go9Ly$P9!{;K3CoEE;dh5Z&GoH{i)C0;vx z%PkZQUYK^lDH<%3CimG7O*N6faU8mgWhcVW7>8Qh((f>Flr zb-5&>%gdKyF?5SAs(*;Sz(pyp*oYudu3%l!f!|wxCG@D*=llI&;q`vmSF~<3da4i3 z#UKq?7&}M&S18x#^F9&$<4O;QU=M?v`?pl-(KW{J*RQ+1b+XQMZgrN?8jg#{7;`#oV2R)54lM6CpaU*x( zqfMGMnNi;ZI9-C)d~#%voevmhd#_=jLtnk$!w?qO6~s4k>_{2=Sj`z@Q& zS21PB>bkSVGszXmtP=#!UTUlsy<`d>{dpk`ts>-hZ*V-@Kn{F9`F6f7@QjA|bG(LC zspUMC;BIXe`vOm&-F)z09X%^#tN$z4lGA$hSEf#QHSB3JxE3S?X*X=hH7H2>(BJv! zt?i$_Cw_aLWi%AkKq+`m3RJ6Z#Umpi-Y9Y-wd{iRmbC%gdMe$@_v7icOa86o+j9|Z|`R$ay zQ^3Z@XY^O+31@%=Yc9DU4D?zoloG_fvT`^Q4?kne@Huy+SuSgUse5xZ-5@I&%0qh- z8RXBz)_&DcKs(=}9jPOL>8)oQg*~uC8S~Oz5==5_ap7(OGGnbA-%tdD-i}qF;8fb% zOnl#XKDiy04WN;17diEU?Y=S_NdjhN9L>5p9Z&+Y-@mu^U50((JYyME!Q0E8uTmnH z_^mni@Mi1^_3bOjI+uQ?T<80FbktzXo%M4Nkn^ifE$3q(&Zfw=HC)2O<#1-NzgbXv zS%pSpKQuY51-(HDrU#q3)p;ZyPpysbdF)oqJ~Uoh$38RSxd&-*EaJwjH)>7qKEgQ= zBaV*aAz4CqJE>9T3*|sho*DN-agX8ije~&iZJ=tx)Z4qi?ogfFs$%qoch z*E!e5%`AHx-_Fl4Y1jhyY***2x=f@oHy?uJdlU(6XC3`jPnMF&j7ZCS{CU?RTB^yk zqR!(ovh?J*!?{LZjII}~dF<)_tyy{($=rTKak_{rtIv=xi*{zpVj+-DLOOSXL~EYk zELlEdTZldZ$*tru#xjMcsw15?O#RWaom^y>!iBQj5Z^SJ`yoTb=x)d|+D(bXR+T$5 zo6ENda6I-~4!$Jqp4LgXV6k9{IhRXzQ$ZFhUj?~NOMef;23{Wqx;!3$1GrwC zK3}{O#FcYi`3J=4NmyOtz?Zf+v~8{c8TC?bwZni*f)UoD+pga@_$9YDC|L9vP_38t zTVGp|i6RgVCQJ@DbXJmabEi7FX+vc^95&(E58s0sVNj?Yw4+In48s@Rzt)=$+DfRG zg=B*|Q567{o~cU1guaeL=Z11PFSW zvlLnW$~HHqWV+FBuGX*|-N0_jpqDyi7L4$qO z{F#i`u+4BoM!uc;`r5q|ZsKAbagLaK{Yj}gyR9NlAkj0+!^~~|vn%&*lu-{SuZHjIT*=P-|Av?|)E4JKMdt<%+#sIlIJA&SA|6HyEqRPo`8dzKjM zYDKKE6zEr^-mf!gw0gQgD`46OWZUve#$B%q@ttPlDF|N z)Cp)-8NmzRd`$hrQEi9v4B9Ke@W1dX$r8;;K30(+60XP{na!nIyFSp-J@nSdHP)dF z5yngZsu~7h3TEnw^oj=q=RnBL2g(fRTA_Hw**Xt@3W^KxZX~{QKxg`Xh_uq`MBLN+ zp#x=gP#;BdV&Tw{DRHX%2P$n2w*&`6nYoVZ2!n#bX(?g=b~v*{R64leVB$*#ffNzY z-$mov-NW%)0EH)v7W98dEA0LOWD`SOG@-#0E7cw~fF(xDo_=m#>dYRWs!@S3hSXaNvJ`&hTMU0Ol&ON zJZCZz78h8%%Oa=o>TQX?@;l{^D<^M($P1p z@YfMlL=jl5nW*0ZDjYY$7rDZ-jZ$XnNR?Tz&fWua6qP|}SZAALx+7=51|o7d44GkL zVPL-&s{PV@vcHtLbDT{lmB{Im#~Pq3&}`0VvpCjhGnqNC9_*4`YZ2t3!Sy}1AfGvJ zeGc3{i>Un$e20RnbALoGvMkwAzU<-hxv>sm>bJC}{MmC@AfJwMET#`E73M?j+Ecpy zLV_;i{`a<^o%b*761->v1Jqxr` zbkQAmKbstYVX`&pp0swGQ~DfVGx0R3`>xD^gB;3`AH_(*kT7>pG|buk+Gp|NB8BGY zTOG z`O4%6yn0-5s2E!@)O?Eq9`rF z-OP?YpS$X1bc9>!T{Lz%tu1W;JESmikd9y14Q?a@TJF*Ju>bq>MuvacSm)iM{t=es zF~~|JvQW$FFeUsflqCNb|F0-b-*!h&>Q2gI&Jc91a4aJ{zXFYBDfWd*NQY4u`y%>LST&=m@wpGsm#Iy~;^zV{4?Rp8aA3mI z%EB?7Ku&=ruXl%Op$%{>3Db(cr(D@Srwdh#Va->eoj`AN#X-BhQTJOAkQ0UUFHmP! zI07irl0+u<^Y7zi$q>)rEz#krYFYB%!nUDJp)JN@Y425a#PT2|Bt2;68Y#vQB}j#? zEGd%n9QoQoPQ>Q5J_5;d7((>;2&sd`8M= zf#T@>Ec%-T=CX^*K_TR43~8V3>RK|co4=C+A^-Qofa$`G1ae_{cs4g(;gN$S>ix_A zr!Dz;a2_$PEJ+ZTvg=}IW`>4^S!U({Gp1a(HOzSa&o~FBNBr?M11E193|WtD)%4>(<+`17g3Q>LFv!`m1rg`mc>;j5J{~ zHnxU;0AE{My4}6KsL(2p`ZdlTiwW%8nyRboKsAQ$?6=~V_Eq88jUtdIu$X7az+)c| zRg?7m_rI%BQ4fJAaVc%7!vG&20+Ijdkif|ELX3ndEwj+Utg2uOpy1O>y&b@@G4U@% ze#c}vIWu9X(D3ZHV!!qqOFPG@c~Io>Md2SAa58hy?V;WYu7VXOD%!_;mj-m3aeV)U zz(%{0$o1b0eK;u-KTmA*2OO1IO+U;?d+4mSAEh2p5kN}0jb!4b&Ui>Sr=&-B^Ac|5 zkAEd^`IK)ZgLFAJLt^k$Q#y#d$ zX3bc7&8weG>am0|G8Q@#pBghz?!jslKa!dnSK8AgYu=r#*PLpS37);8$>k|rc&b{S zaC1;#D#!XmL*r(+$;JU!+T1fiJmB`C_9l;q_|I{Ib>FFDeZB-OIf2o|_CsBu4pcsP zR-l$Z&P%xpA<0=OiC@dqO+Nvx2tS_K-g4@iO}8-Z)p;H{s7WQCBCUZ$m5;4m)XZ?z zK)Io#U=ny^3l1<(MX4#z)h`_=)u>iOS8I6>l-GEeC+QFuXvLq2G{^{pC7#kwL{6)W z22(K*vw{jgt2ZR)I^FU(TN1sC!Crj{lw1)o{kK}BVS+KIA<$i0p;G$!d`Ed_4MZdN zK^d^TBr9R9)Tpr?S?tjI4q}A3JwY)P?L4&FF%2WPHNY{CM@;ZPsNmG@GKbyrhr5%l z2_aZ0HW=dQ%l!ABF*oK*WV(yC{o$hgOabzZcf?r^ABPHoh~b~M;l0Awjp-q^P{%k-WqFz|iIT zJ<>HWiaZYo;E-w^D5#i0O%1Ln@Dr(+Z&_2ls{&y*KTD+w#C&TMk+W>2OpW()=BlxherhHyAPwc z(iCon*;Kn%i=A|E=;!$Bb$_;h`#^?_Iub07HyO@xXsZEYeQ|5FTgOp`)j5I^fi2%Gka~r2 znkk^_p;rdY^+g1bVliK|&2`}O+;Xbmj-0307PBjaU^J3Xv+O7#b+VbV*<2?vj!|@l z=52}L7C2+liZ&qbCKAp-!7kbL_oV(?@Angev>1b!<|$*rRjzMxOR9Iw`BPL{uTG7E z4Pc)$J6wNg>3vik5p*z`U(PgYPG)EcPw7MAFS!qqp-v-5iSIwU-@7!lfctR1n1#Rz zGLJ%ZrF>|XY`QCDtv1Zs)7w7vdeigaTVu`gztb^}`#AUFI|YQ$flYRWiDB`aXBpSo-zv@rRF?qoo|+RwqUbo zJJc#7=dRk+=6knn>L{Mb4e|b3!#e}gkw4AzKGs6JyYySLALNHFUtH(;;{K&Gv`RA2 z5bFAv47MhTpfIB3h3F8Jj^@cGtx*k*CKZ~HW`kWhq_iC}h=ZYe`jPK9G)y-gKZ&X# zUnxEAuv$xKY)D>*%V^*a#uKQKtS{p}<wJ8~9-Fw?)>KR%2BlBfpoyg=+HN%S>XLu!*#(9>30q9bK3ePzX z*X$_6tQ#KhhWng)K|`e!%ZJ&{UvaMYtxbOV4>}enzD9R7k3y{%-J`C*h&=zV3t+N3 zyLwqQaL#v%juX{AfC2!UF-|^_NIurmY{nCJ<6*1XT3^nVSILK?3GyLo2Wy9DfrLlV zbA9!W+w5|vsjG=gL7iWeblt7grH`U!@rK(bs{V6fNZaM1Zk5Inby+WYL6A5WGeFQN ztMv6Q560UF+?;HwF`6ToZcZH2nIp&YW@)PtVbqti6sl>ME4(U9+B2T{87qYK1X1)> z36!w)RD-S*4ch~nFj8vlN;&yM=aO&st$$z{QlaDyFwG?c6|=8Ozjzq~DfF_I?Xz!b z4D5~=NpY~7oDGH30dvW#yfKD)P~y=6jhw06k*CZ+Wj97!qC0)QoDHCUxK$&0=HV^R z*;Xl#w`PFAffX>aCs4yta#!1IEf8vdG{EBnI)oAl&3E&R2Ah^TWH*0waprM47Z}kD z>zP@V++B7DSWah7G*?3A;?HQcE=Sb>JRB`@IE}@0p3YiUVJGkCo*oOy$+P+~d?dmJ z&N}MwPkoigekHroh5h*CJy7C z)xHM{)7q5(GbX!2J(RgQxId5=yT3oezUHGtWUjqBx2?Ue-Ry_?XZ>C|t)<%i^AYau zcA7M486>gHZfQf|EX@;|M9b@ykIf8{EDtnG8@RSCivMFQt^acK z@|!nC@*lk&^-r~<z^l}5Id(7jAJSem z=&d0jpZS>E-T$8G`9<)C_LGv{IPx>W9nz^G-oE}JVY-^o!hvpmk z)O!MZcT_l#Q*S7-tbW%1J7G7NOPtp^+62l@EL%BD3Hq)Ia{y0l$aS83Js@9AZ@5=F z%rZf3pcIhA$jq9?z>dQP@7b8L;qb&(V7T<>W67$CeAHxg`fysbZ?K^7bWWsnuNR?{ z|0}%d?jB+pNuBY1%DvZfCkklcsMc(xpf~0*sj-*&S^a2#nYVP>hng^xN82I0VM5+w z_>gnoW>nQoUP&BK8Rv>PrWJNG%;o~(7Y>Y|rX6i%r^dTV?GoV5Zer-=8)vr#S3P*W z4W_cZlq!QZTCXw*f$C1{I-AEEOF9O}+F`CuZtnY`2x!qR~RTUkdpCo^~F{Fb2);<0&0N6k$zuq8w$x?8SI$KxO ze}`IsYFn+fwN|ZlR%<~-1s5tHD9GM>?;S#R0%V6I=>PLMF9$Bqup|V?dq>H=@7{CI z`Hpk%yWh|I4#`pg)xtGPv1r}$su9T zwyeX`6aGcOi&g9#GBRV8^5>kxUVq+Ox93s0dH{)F_eErn*{xNob@y}jccbmRdG!uZ z&Jv)0z0E5DPmw^CANfS`K9nlGx-0q@yh<<7%ZNeyUUC_c>?PGJfeM#^3jksjFd8e) zclHZKNTqqxJWodC{Zdj|NlQZsoRGmQ?}6&flT)>->oOKfPn{~kN-+LbU zM+=O1iso)ow*ej>^Gm$+={q=>mUPx$D$;@EYnzpeKo5DosA*nX4a$c)RA`p;C(%nD z+DiW8W_^wUt-GU9ow@`NP5>k-S*~z3%_EjIhiG=nO4mzPH9{lt|E|6hlV*L1tqHqN z0yIR+shay(8ehDLz6rCxM8g{OaOc&x;850K1kroTJ=wMNVZ-a>t>foIc^mzaPDZ3< zvAq21{aX#+0e;m0e~zPPs{Zrg{b!%Ac0IU{QJ$YqtjO~mRl<-^Cr_S?Y15{e1vPBg zFx-6e%|?M*l&e>-#*`^j%uO8~9gW}o<~LZjY#ILZpZ}N|^*wv`#2t6sang-)o@9A1 zFINftbU~Nv@ZQ0^61apU@M9Hkg4jz)9T$w0vc9M<*ks;;FDVIlb$>~z!%NI1Dgha8 zg*3u^uAqT(iPCsUk|kluvOLEoTdJV20Dq&0#uz3;ZriA(F)&we--yMVSK+>qw_?Hi z<(NY64OMy?*=q={>fYakv%Eib68_&!zd~qG5Vq{uiSO4g!fivYLnsY$_r$;=s|w4q zhX;q^>xJK9&WZ)BBGmx*j=tT5;Us1xTs! z*=hiR=!lw#j;h6dU*r_#;o-P(z}0BO zdB0mW7gH9^L^T3b!>=4{ba*8D2tFn-)3HT6e79r{QjcWdcQ@UK`q42gAHEg)=oPgq zY%f;rAW%a78b;SQfWsS~{ttt@_rn+SzQN9ed+^BUyV1W(cY1ft#W#z;r+kXgk0r{l z?Kj*2T{Xi)S)x4}N!giayr=a&Nq-y6S-l98=YIoc>cLe#2V!Wqen##~xF*-^+lJfw zj6@Q>i)w^~8~Iw0MEcNv07Ly2(A(xfdJ;xcmv4Xd0eZFVV%F5mRojr2myL#z(U{G7 z7Oh=sO4i>s>K4S+s%O^rx69{Y^|p0ptoDst1=!}?uYk;w5BI<|V}7L+izQ`?3u zezF$qnvl#=7+yH>`>&BfT37Aaf?tpLg;`hf(E0THsaU^b6Y?02){W)e`*!RJRT@hm z;I}hjFKUKI5h(RT9LvuK`UlYaXcuKX6NxEF2FDoLYcTrqK2ZfXtv@vjd@0=WwJ$zF zdPW9%wC#+6VG*o&NAQUKG~Y+xe2Msk{Wz4Hg^^bd!H}-~3}B|~FGMSs5HS5ZAV!mu zlkx7m@8X3QUcf7_yneH94@T*$JBpFVv$TDNYEM<0FE06*V;`z_vo|9#wl|NRC8 z`t;LJ%^2z{hP7ZU<94faYWiGJ|6DVk{I{a!zUcFu#I|b@UUZr+udbCk(@C0*N2S&Q$J^z8vW zTmG%i?N+~X+jEtDYk9WY%FM5L6o0l=W?tQSvpn0a`}uSIta0>fbUp!~>ih*;#-PTy zkU-Fd9NWs}Qr=3w@(wAXK{{jMOg*KHjWuWaeE2bM&Bndk@z+Ujm@?Ed6mJ;!48uy+ zqxgps%-_1w*iN!NbMx{rf6FT4DWRms?oD@yKLMPlroLkUC5<(8{UXe#@ts?kNATr; zSg>g&M)w~<$BG{euu#8d9sFkYM-125#vDEV29Wq{(R4Jf8%N`O174my7GnmCL{|bB zPkr<+q!C!L9zu40!ygUbbu_d;{C+ZWiwX>I@zQ7SVl$0+dAW~5-w`la~iM{i-l zhULbyW9jxaIGCQy`M~@@g_yZ%DGJ$NqsTK!>)tkjO9IdekCvEgopaef&aDA|=uxyM zDIQOa{U>t?MdIO`??vb49ZY%qO*^(=%>SOjP=YoCy7tB&C%uNXl!v^o9-lrA&wltC zS~P5m7=ko!O!)wN6XP*??l(Ae3D;c|d3j>WP&|_>gNy>p`I52m*|?!Xq(r%_0NbUBPFnfT!837GO4y{bJ-zxPQzY z1_X7=?LzFAj|Y%$Ix=|h;6c==QNtjdx`87iB9NGrh?x2@hW2*t+F{I?F$fI}#qGD> zj)n~zA}1#YaYS47u#1U_L1H5Nb1Q-ApGDB*L8LL&biAUQam6d0_hQUn(fr!^tfa;B z#gxCLr=qsbUxqzV-@5NSN#Ax|S)TRTlk{$$Z~W3yJKN-YrgJ6u<7v+}sm$djUaD_d z3Lenx{p^YQw(2$adFgwMeYdjbD%;kRc(uAK?=@ca_*$ugY=R5^47aGpV_G}M9LBbt zzr40i?_{Lo>t(ZyM?{_ANE+WRZWW#qz;GhI&6LT$IjX)v;dtiG-=S7y4b0!X(tsZa z4kqCB^|P_<*$HSK8)rOp@@a6_jH-#pI}XB%^()b{bvw*kxd?IePN@@B8*h9)9xZCt zN6nB3WCUhn?#_9%@v>33W-Xxj1PNL{1@w>@(Q^>Gw(Nk%-uw%mz2`AR1cw=8Sm2A8 z_(j(t`0b7NB8y%z@6Y=RX-6`#bN_BM53Pj&|3G@_gkn+ZKCIcf38Q)pqEUX-0F;_Z z_kz5F_;44opJMH%~)hSbsiHvPl>0(GS!)crk3Ae`(1bC0ph z*{GJc3w98Mk$ro|@EZ+(En}M)u<6g^UdC%z{gNIzBN#>mY}>N~pAh(X`qqc}5_Sb1 zyy_O*GGruXEL(^-XHH_t@j7_nfv51$TYtu|4t;Rbz~RWwFC^Gd)r7PK5iq-(fIOa`Fzm~yx8v+ zTu<*MAM&+_USa>8`3c^C>}9 zZRL*j=wG)9(&>$}k0FRL;kAu-&Bk1MVmvU&ynawvjJ*dB;K>=UW8?Ev(56XK zqr30Y<`Ptkz`q~)3*P?Ze~4xX*bPHQF~X>rYsmG(j^)p8r8|?miTZxwfhSRi7)AX4 zy#)G>A?0v7X0Kh0zuo>j4DHej%QvjY{B5hyvVId>)ww6`fAL8S?AF(KE=eB2fqwXQ z!7Lmp&c{3VynsM@i%nZGyVPUMt|B`#J)lUF4*{U|jhY}eB^i4%l1kUAYh6XqYie6o z3N{m19ni5C!kK(rYf$UdKG#o-Rz7>>0|1rMA|gesb@vk(z-Cj zt0y%3{PHxtOW%3?rBKgRPkX)@Lx$`7$dMxk@brXxT|Ddl_QdZqt#z$)J=e9Z?B8Y1 z=eG2&cP&r2&pnA(r;fGnT;qDDKA$x%qa~0)#1Y;vbQmzt4eb~3*M2{LfA^`qpWP)O zEa7z4wR?ZZXBnln2)5kat}j+@T#ewMVDxI#77+{^$)FdAK$l}B^eSMEoZ8_vF=zWK z19-^mMTVoME>><6p&O@Zg#=sv(&t))unJO9Q87Jl{0%^n#PF|2I}JsRh$wTlo*jks z#tHKG!L_}v!tXwK5xu(hVwl-B+|qxf0Xb3$&_w!$VCK>}2FUr>n5PL`h4Q=Rr!<)N zEz%}FtI{(=-Zsj&BG5|rZ#F%U?i(_i-a}PPm|FII4atv~AYP z3@HFcCEGQZ%Oi<)HuvShBWA?2?$a>JXHb{E1Z#>hoWNQD6MTQqP`uVLjrkt$@{Vf6 z%4bTnEU&1rzyMyZ|HS)=Xd8Dv#F})JNP1gFH=q}b@(Tfx5s}E+yTQ<+^Bly;m7+HE zSn$}6Cpwj*C_1txLaO=E+hs9sBw)2@<4UYuFa-|}y%j%FE;qL9#t^$G!)x^`SVgSr zkNm#QLbupX2x8fz8!DA`6g=CtcfjKwqW1Beema(h|Z~P+_(|S4WyQml487p zG?qXI87O)H$w1NA71_j}S!Cox^V^3kvpUbGK_fYMg3iUW z?r-ya^RVwT^IgVuu6GHocTdo_z0s}SJ>fq0Bwnq4?N)1C_qN{G^lp7VYg~rakJXEz z=VO74L>lt>`muoD7hV9!O8hiimu+{N4rQOx`qh0JL@$k7`d@=b#y)TIki2&Hlg9I) zUadOVuxm4l=#^D`^a{-1v>e?Vw4t|47{k4&ui`@Fq~IBmJ<%liUAuiNrmdWdp&fhEivy_3Fr%Ig+u~)0Q$^BPZyMW}AVoE_ zifxL(sy=w)&R-kGQVt*CSWGNU`$0VYq;Y)(GdEFoL9VHY6jQSX4rS+>yhMIX#_L+Y zuFxGB%(a+*B`qwP;{h{VW=^g#zJH*+%AA9}G_`M4B@jO0?W(?c4Es{T>mq^{ zvzE@o;=QX%!_{1r22cj_H1a2yB12s=Qd20TAH%!+e2Cs~9MS1Mx9DZ$5^B(^>h({) z#XZAsM!UvMkWb)1n&{oQJ(g`&@-ET$x_}myc^A#0Az}Dn={NWlb4CRR24VWD`G^j$VLXwfN6q8U z97TZvfgBgeFQ5mNgym>@1}KEDXXAEQ&Rj~@4IOO~C2u0V?dmr@E>ndj3V1nH)3^e# z!kI@Yiry}hSI@;$w>^xs!x?yQ#v=SNEZkHMQ$8fksiq|7KWI%7bxO)}m95{Kl#JJ> ze}rCfE`ZFJ=R&9>fieEnM-D+I0iUXNR#wy8nVIR-eF>IsScxa*euA&=e9Gi};>0Y` zo@H|Id^Gb5MED0AnuRX?NMP_Vz1e~T2#DtupgPw=0M~%#Jxcwr*suy8ZCQcAZF};5 zD{JNx$0R2KtpSv~FWsqf`K(SSs5|n?K^Wa<5C+Zt7B`Li6Lz=gfEeZ)l0Mz_a$>Zf zzgM<|&T%}WST5GEurM@h)(n6C^Pi0&p`^}wxIFR16L|RHhcSBeXp{K4OP4NKxpF1O zj~|bjGiTy&fBTyOg?jYpfk2{?YU-nZwxy+|nLbLObupT5MuoW5u3h_LOn=emEILqR zcvt9vr?kC$_o7a89ZzBRBtBD9Q;p|cFx`$ltqGX6K(wduE{_Nq#RBI&tx4Z?>(=!s zw)LWzl$7L=-)9OlkBo{mFYq3vbTTW?uk`eEkI=g(@#?;gqypdW4JuVcOT> z1KiMWB$n;ifIq+U4+9=7jNgn2Ot>u11|R0-dHTQqpod2Y60$Ol5p6s)jE}@mXUoaY zMOyYDb3)`EWGGCHpfEJ;(gzDu_u~(5`~^Q$zXEae9#O?80Zdv41Kan+h%5VH+QK;q zBhVmlzm!K#kyVOx?a5V}Jcu#74)IX~ar20=Zf=Xo?pop@-}?daUJt??jo zH{CZ~?YK)%|!47C|v)U`!> z6aEuPK1H(;%*iB6MO^>Lg-L89*49e~v=5%`Iy?-K-;c|0! zufqoqJa1Nly^jRK89gt1fLcr zY{R`wP+kSKF@P1oUZC8IbMui=n2ozf+>EYmI-%Dqk03oW1BXlUaaH~1*qyMC@|POR zkO2=#?poJxEdAWb{rW+pcyGnx3x?PwCMTjx!&X?oe>)!PI*M`*B=G232bPEO+*Tox zWl(wUQ)n0|EQ8stSFIw7O0OLOI11U?x^*k!;#_%tPx`1mC@ZrnJG8a2w~7}7E40zG$X&+Q7$CF4kRi;s$)|J)J z5a{^$c+{%J%>2}6IW3v;CA6GJ(@n9ThGByS4a#}sOM5u0ZzXh>cb-69Pg?KdRcl@O z$vlB?tM9{y4;$l9MuR8tt-H|jE}&O==VUB-!m~}^XYvlvk1DaTu^y*y8OQn|DTq~a zJY}tGy-V-%Y*aYC)_Y~<-SV2rsyp@T*RRyPO1HMzXWD@S2M`q%Wq!mtpJ$p3C>hEd zlJ}$i%=a<7_w^Xqs11KX&ou9a=lX+eF+GURWO11HZH6Kh(K915lwm3|nq)OyhAoe| zX3odJ@>BE!LEC4UFQ#kbHn@K9)vOLyXbf^yCE63e*LViCY0`qBS~ZNBwH5on>#SpmEj5H`2w1iuSbSm+& zaij>Bx zLEcg_)3Aj(Ulan@IIa=u%iDwc-j^7Uy0z;t$##$l_e*DJU4!WQ#;#Tf(q>j+OGr&J zytirG(&Y5pm$2W+O?p;4u3v&GJNE4~;d?C!w29theC;Y3S8WDSGXik%x-bN)7TBL6Gc}WAHkGQwK@ALgQ3%u7En&pLhTb>o+hF z7l)YdN#TuhHV}Qqd=|vjt8don_IAHU17$dh7&Xq{Hq*2Do zTh+W#QT<5x!`de8W0H`(rAiBJHN|RwIAi$HF z)wdG>vd26@4tgf--@o5u^lo*l95@2G1pwJ&m0jPKPk8{zAoe8hM(J8!egc5396Uwe z0)SMYA}~-1KRv5C0iepRcZDqpsL;J#*?G0A*zzd=NI5w5BhL9W8L%?y*C+2shj0If zg#&IwZzh#JM7gST@r43_j+O#I5tlmvRH&2*=dJ1bV|fd(We$ zT(-(xE6hirip(uDJpTx=kp5NPTqk6S>3v3FT?$drIrpYx3hz+}kw6eN0SGdj<>{jz zMU)eV%YfIr>@@)px=wbPAH!Ev70ZTr>A1?Cvrf1nj8pS`*>ju8O8>|xHsL-b(Rhe( z4mlB&FiuI}jqF5UpXv;?I%d3l#QPPBuVT|w0t=lLyUYp4ANACD$_1o6L)L!NxB^1d zl*6S8CqF(X*S()_bsiJ%@}6Yav;@H>84(wC(OT@Pre()89UOlIgjJ`kd?>3DCIzZS zx|I`2@)aK^5IN34kiqh5c%uC)`jiJoI<)%qp)5*BZ#B}Zemd^w>%;3$mi2M{N{6IL za*!>n^Ux`)I97)~djzu)fo+2LqBxuau#5 z%gZ?j*Bte#H6S?&doXioEa4DbE0X&$UZeTMr+6_mYAhvuQY)qRR5EZ~Q;qa8*A*u! zD%P4TF>_PR9N#5ktr4yL@@Qs#$QfrF0iX>h0HAV>=MlqV&e?QKlUrfvyzQq&Q&xZH z_1^tUNCGFT_7Wnj{7G?Nm*qc$cf?Cw0`^&TsnhAD@BAd-z1PoAewXvr-h2FV)?V4P zdv#j2Tz<|``^u-ps`#PAT_`S2V&a@8k&UDh*IzB3iB64M zGu-4RL^5}YDqeBepZ)8Qgj#mPgfCTLNyaY(`l5mkE;9Ub3N$?dstyj+#EO761UI|=4 z33%`4@)xeL8)yLe=qKt5XtJ$Nn4%~4Dq!mJoubr8Jl8>G6f2bFl?VQK+(2~xkgoBZ z>)a_J=W)}|AxS44GGf)&{B!hiUhmvD{oVRG&)c!BQEuku_-E6cTv_|h{?6-8+P4>yJbV1Oj@;yK zyV`#GELzoHcaBr)&OXjFuD<8S%c;h)^J{xHP2*Tv%zmj3oyRrKN%Ohs*?F;VapCzMa-+B00ig4x&wIUB z0$vGtC2%Q7z#Wah6ln6&Q2r9IFGA%%vUfzU1iTWcXbI?kc7M69Xc{Wbd@g&EhNa5` zNY#%jqPa};ikRsF&vBlNDEvoj*;b&^J4typg%xSsvmH|agNqhd7*u)DQBmXA=Yk3U z;iU35xfH+qC1YE`N?s>6?99qZp9M^m^^7x>z?h5aOnm8D>0jd<<9GrWz3tQzkUpe~ zv%ObNJ<_Fh#tQ&lTKc%Osc}OOFKuGakGjfsqo1ENJoM_)mtPO%-ecG<>qW|AnD=x> zJ?J~lQ&jD}pUYp<#-LjP)Q^1X3=U^M!!)$Sa{S zo1LF)N>MA9&)GDEP?Zo|2x7A3%dKhsD#u?j*YLiicmt5sWv}or^i=#^ zh~w$mhY@V?>bxv|f~J%X+q1kEZgS#XDLhm4JN&RZ{jGZ0RBCZJsRw=a;Kz zOTx>&R|1t&0^a9*<&{Kk*=@k}u1Mx5unJbnWqT+_%kmdT{J)0!#0G^Dz=LQcRLz z)7OsW=r2$~LtDFV$I@r@Rnxxui$3Qutw(## z{dzl&-Re4lKWT^3@!F^F;V+Zkz~d8MHr1A72pi9iQa&}8a~?Cd=#>W?o8~g}k{-K% zy7@Jh?Pqz=R`koO&Uvl&CFhK+!}#mOH}Ukim#}j4T2v+N>}=*2t$UKzO!QiHXhJrE{3ILOui#i$ZBEH;@>zI|Z?PEXNbM`uIZL`NT-bu%GFYuWD*>UW+mM&+1JKpKGb{v6* z6J~s7Dz;HQW)7#^Pol}OPNXsQv-4_e$2{G<7wVj7FJ|7M?Ce}t1I=f}wLDyU@aKi% z-aD>W0$vGtCE%5SR|0MlsMue#-6r>b^h&@h0j~ruQ3=RsP?N_9uAsT_GXV|PC?5Ft zXS(aiP!u@bzikiH4vN6vrj5gxUPEd0Qvn=P-&wvaFYZ&_rI2D(qM}!any&SySBIQi zbe1+TliL;>?;TY+^7CQ&^8!Ci-LM!#yYw^j$P>n26|Z;!a}Jy8P67l3kf>4>3s@nQ z-X$CMZsnk^B)Cq%z)XCGKdSH)=v$4seH4D>nj?UfiR8^9+C{hK3-tHnc~!|OGTtfG zIk&`EROG5K$NkI^_{Fd*wo8WgWqDxBZso-g8)DJH#aPHS=*0 zzW|rljH;R`X|v{Gp()c;sY#w#Iwm@+vXYnNDqbWrQ|Zi5c|r*4r+Fn?^&xBIiFvfD zE7`GYVMw2~GC#?AZ;y<2w1HCGO#7msTk zRmk%9^TFS5{Vl>n!(D(G$J81zdLk{=xmHx^OBJ-j14D6p|Izqt&J?U6V02^uQ3ecf zjpn+}uC2nOE&$FDd5S**m3&#%N_?tW87g72TNpqb!^E;F5b45_; zIQQzbJXPxY0+bOX0Lc5SEKk{CN=VoE_aMnz8Z{7jzn>NF=CG)Ug%@T&+1Yval z5opn%3BH;)1JO~npuV$L%t!aOU2q-G3FLBrmTUDYd}`y~?O3#RHTt#c3LigT)CmYg zXizW?q$FbT`sL`@vOOlxo<=|=7Y|+kOT^Wwi!T>^hc%nm8I)&O&q3(hp)=>6$?N^G zeb06@ZqOK6*;y#a&&QZSqY%V!EqUmO20eoWwk4z{5;WUp`s_*EPo4*1&N9;6zALH_ z_{z@B!SLP#2`2r3$#cI!ZSvKL zE_aVnwU<%Plt4wkgn6cfE1qkwPRmc`_A9WMzg*Mma=AO0;RywK-v`euXe+=o_bjuA zN@C~J@Re7AKm|2bv)W8R<4+U*g&H+$qItun82Z)|*sy&Q^Tqh!JE!nsRzaRGxhCdk!!opN z(h_55eMWigFrGG6Mxs&s0>kon&A%s)C3q5#ua|$1-@fsz0mxjXxQlQPX?f|BcMu#F zim5wRF+3(0->+Vbzkcx!8WH5FL4c~?n~!5>LIP6K(=hTsPhxxO0sM<&e!k>8e79v8 z;*%2SVdDzBGIJAHlXs8uCOz@#8(6w+Etc$Dk3UidTT=I9&gwUyMV>p$yDhw+zp{|0+JA2amj&Vr$2sb(0qO z=gg0AfS{A+R=)QA$q9J)!Rw*nhJPw9f&}!ADb@&ah z>DI0bh^XN26J9r-D`kPdqFbS7fBER&257r(@HJ>yFV4`+R5N&G;yakNehIpE=!)Hx z|34@F2Z!?tuyNNG97szn^^Q4;50}kgh+c*PyH@R3k6*p^B=)2x;0L;Rt=zKK$Y}b) zS@`XzuNi={d%Lb?Ey$Z{{kDyG==~SaxpfEl1_t1n_g|sze=s2D;~&3@4lUbZc%LB% z2?>#E&ap8Rlj}&{J5T)YA2@g<4biot@y6HVk(Hl=6$DgAy!U4`YuJQ9W(~ah`TsC? z-4e{-w%UM;0`cyc@K++ryb|zApmIr|$b^8oss>dq&Ms|kWVBVGF>jjy0U6z&&;JH(>ovx& zN8e?tIOXN!;OnKc5FK5Io(A*qmm7bL>-!DG>dl+6VEbw?GYV!en}<;y`r?V(evLy% z4&m)NpPLY?t-H42^8=gl@HKZLEI1TtMfupYdmDm%{PBkw?_kxRK0@aft&l~aVJ86! zHPI!&K>w zuOOd#InFkBTvTX|Jtc+s_0@M651fSTbPS|N%XiD>8jmNF(7E)oK!rDnCSEF;3iMIa zNIwvOjUxc}&j+5yAI83b!EFhm(d$X`%F`&EGOZg`8=ozhe*8M2Funw(67#e0++B|% zCb}MS=?%1N?=DeM%$ zMdpIiKd!5RT!K{z>B$Uz3gEgMVaD2*oQPGsH{t2q9>Ks)-O!9)Iqjag8IPvki<)7P zhE9sx&=5f#D8HE2cR+PNbZ*cRPu})0*6i4b6as$9hmYXZSrakgoDFfbZ^-SUFq?q^=NbQXkX3Bz|3`+u)hAG=Ft9VtSq2&9a>#w&la_3`%-|iQ@=BoehN-*^dO7n-;DiM17sQDp z-o45w0k57bqgKz3C$H|$PEMCoFRxC^Pg~YtDEWa_OjYHGu_j;n%~94!F4L^6Gnd)1 za%4p7`bUNhsbypxLW8=o#-R117epKl%jB#KY}mckoE027L|E9C%2 zbstEtpDSq4GT(~4ir7oxG4-qX;Jc-B@WD5qU{td%XjHd8(lXNUi`D~Bw{{)ZSoHLe zH-uJzXc4fZd@aiJa=Lp?YbKuF9@PnM%wM?(A99Z9;0V;KT^F?o1axlN7GEy<7Rl+U zSiOH6dNPD5m7zomT`D5LG4b0k@a>ZC@%w()nMzEDa*p8s!8f8#jT*=E1S#3>saB@u z_aP7>Kt<)el@rF5mxtA`7&dl8<4)+^p*xNdEE1qrkNjpb^r{sBg&!E26~L-zT^hAE zGEbx22e$7CUxGC?!Xg;X)CdLiYLX0$FpZ>Ke?(6SJ*IAM*w%Ov33M9TrLW1Uq|)oQ z86%vX%gPNSxe9xgo&@{}?74z+RJc)f=E!k>Bh_G)9=2-+!YIOSNGutOgZVI(u)=H=FgC-*B^Wap?-n5 z{iWaI&rDu@gyDJ8QwYQ2n$&Axa^{4EgyG8Q7ARqEC*^Na6KJM&lud6m(JL|La{sO& z*E7FUb#!jl7B>wZg;cJ^!zD)%6&}fZz?IWV=kp5lk#Lyjm^k~hSzlomfwfbmWj3l2+^9+m+?PpgTi0oTC-3o0N?2R?bJ82F=WRkY|g^$S2YpB94Z(KMj3(NtAW(2{dX>prmS* zs(9?qhnWbvI`Wy&xqx9|%6)T9-(mRUyDwn;x1VBo%kF5*5F!B*AuPMyob%l?@_Hkh z!@2UZp#d(iheWXp7w3;Aj7{K<=q#%V^N`W)W0ElwtYRm9)_6 zq&z{Zwy(#v{e~e|-c@Vohhm2CD8!0X^V~55K!_iO z^aXI8C|R+ZjtT7YWAbX{JDRw9HlDruUYGoMUSN{Kn}X=|#Aq+$EfpJH8_l^M?jC)k z86z_%&wzK5yL;2}Rub#5piunt;U}5zCJm3i_6%k%pNE0n`ynGg8|!v$X2R+LNM+@* z#Yvmt!}*E{0_BnSBFcR^bM&lFjyKiGq$|nO=!YM)4hrcxQzIe@U87>Lnx16M8#ksG zSpY-d3Yf{B=}UPX0!>7lDvP~T*r*37N3ElPyO^SG9(=J=yf%7-D33X*2k<%<(V4NwkPV< zh{pCg(-3p_Q>f8vFrH?(=7@Gza(J!2OQ(4Opi4&=UP` zHF)67KjY;IZ!&DC8YXO-k14--*(BDj6TtxP)Xj4w3U1e0`DKkEoAO_(|flUB{b=vF<^ zw{uU*q0m&S5+FEk%^Wlgk7k~yrs%`u)YtVLj(gsF7MVGR8G09t#d|m4*#qQ$Be|J)oMCCB+xJBX6ocxw#*=saKLdOzNwU_&$<1{a?qtp<7r;r~a6L~=*o5b~`1*J0jo-fb0P0SP zq9<4(4(4QHXwLyS#IQ3IFuah!T1V!QN+oUbfO6f@C(m#(KUIB}?P3yernz04`EN$vE@fm%i1Z{@_wIS-@f%@MjEOYhqE1irh(Y_nGvaot@2J)A_47Uk3Gh=P7GlOI0BO zstly{u2va&x6f@);MFM6?T>V-_cgsM>pT2>n#>^?qZ?B8WBs8d+})%jLp=gaVq(3Q z+xLUBokJzR&(uVJ2>~Y=TK=V;3_NsMwqn(=KF=l(j^Pd4qgH67F|O;?szc+tCOS22 zg&+7FS6Ip8SKo~|0tCv&)0CCEYWRnu6GN+R7%&R`8?{AUCW97$&@M6-aW(7W)*;to zXp1h0;eKrzKNRqH*Tb%-M&E!)Zp=B z)MEsV@WP{2`OXkbPo2i6#nHt>ho-Gjlap+ z8A?sxPYT7lu0>a*AI>mUz3wjW7&J(id<_+ zD^B4#EutHs5yO#!0z!@h8P(}+(t$kHu2IYMQGcy>d06#i*jE8VqH2am;rG`tG>plA zLwK!1?;;6UHLusmB&%*&I}Q!%#27Cq=luL;F&-ve>$hOIT5UsjUFuHPw&1m@$kjBe zF8r!gGgZuP?>dwfqGF9#i@ulSVbZi#EWL)Rm~gpZ=0Q?ZxL@6{8aSAq!s=Wxrm~d0 zk<@y{wm?ioZS(yWTcsp==+CgbC4dtZ zNB83OEqfq`eAlF0e>wC9G&7a*s$j%b*P6AW98^7GTe7NMD?^7J|5Dg8=M|-K2{!>R zO6K(b`|o4q$dRbQxKHOzR#BwO^)ER&8F6uO7iIp6;?sQ|E9?09c+{#@n_u|8?p-SF z=e>LPqG7{^m6pG<7_<7;T9=U|z|$TptAAxXrkBqB`}e!_t|#M(?}N(5s^Q1#R-l(a zpxU)-dyKv<@B8-cLk!F9R%2Yfr!?t0mDOKjV`Du|-wCYd5)lz$3}m|oJVoyU{SF;E zWY&9S=RKe0nKLspJ%U%eeyvUq95`U!mGvF|bDRD8D`M!!gmnw>=I*taHuNsU5Qxa2 zTxIy#A4Jb~j^YyKC^>y^8CXY)ikUa01QDSDrauo|mMyP<9v|mHx%4Uf$B%J93JX%p zXNZ=(A_Dm1+>extAUjjlpP?hIOihm#oc!de0ks+(Gh}+T2hT~SF2Mo_2 zWjKxuXZ54=jR^%R;&FMem>e_8mCQL50i@I|`GrSK_)>gI0-kvPpLp`R`_ZvQTN4Uo zjb_p5Y@*BL-|?wRzy}P+0_Szjp?(Unp)(1?!itVxrfd9ZZ%BUf+RzdxWOc0S4AGJi zuS!Om&!1syCFG~bd2n7amn;S#=Zgrtzz>^j8tD6+kPQ63;Mt;jo4e^$|Gb z%aA`cRqWFE8dEy-Wp%7#(ovmCE@C*H4ZjPZEF>%8jtc4e-;__WDRH++g6%Ipk1F?5 zG5auNj$>)9C?}F;kzS-*dA|E`93ywqrgKWVto~&+@f=8?mgG<`7+?r{7W8I&RR3NACH#G-L6q{ z8EGuwyOsIzoC+vpAL%VHz|X8v?O#gGbKZC_C8=Mwv~YEMNITWT&O_MuvPlV;F9h@T z=M_g~mVor^ZC(j@CE%5SR{~B6=(#A52pVRzQ2lB6xEr|6-sQQknNK{GU38S^_?OFA zlDCOI$a5uZrfq9HG30%vFdnN9y|3z+J}du^jCk`7%g+K2%s9NZh@cKnxU5=YEjlhE zT_6yvL%Xi$c^yA7mg^ELGac7lNg1j5<)G`)wn-~qtBY-qpKf)Hl1>-pyFiixt|@^K zI<8hgnx$}!Yn#sH7r1z|@8ddFQs~MxWUtN3clEKK?e)&BuFoqS%h^vLLosP`&a3Ox z$Ih+KR=&<-GUjz%S>xIZF9AlF^lzFJ0!6i<$tf!Xm*P0x(>%()C&o zc>vcyD8Kn7=9s`)9kb)+QWkoj5xqgo1tc#ZKbA&Uo}QADs%8p1zOE@`V()^Zn%Jd2 zD+kM`mAgG|I=cN47?;I-JcM)1Ao?t@(a=gnOEhW!D35Eau?!Gmu#gjPUpl9Mr_?8x zij}oUusYHH@q2-Dh#Spu%*fA0i{(S(3qVtTpb&zuI(|Asr$n{CHc#7-c#Hlmm@1@qWM%0gEL*{ zJzsew;9UciN0+DLgkR&QJMBGJi6!8@$1AaNy{wgs1Z30*019BPnTon!^h7@KR6em+ zE(}%VAR^smU;pe`CG)c6?mX^1?=lG?BT4(&Ay#uu>F2V?DrKY8h!;4~i3y8U zw%k^pa$Z*!vrc-I5Zc+C^PhB_#cP6tldYqTw^pOYqMU-$lYPUje99djSU zIliuS0ukn1=_)txAP#+K9G!QUlRbWX?ozPG&g-O4-Y(r*bug!nuL*t<4JWSWq;@^n zLAbT!*nW;vKiL)8@`|xdA#1kjdOL=;PX1l2|Mcz4&TYrA+taOsq zQv%R}m|%QN@2d>m)_cm%Q`XjwZ)Io4RbP8f`*t4Z-0pq!xvXYoqjPqgvig zd5-EGt8z+!4-QXh&YRIwc=qynvIM+q;ADAJ)=yqNS60oQnJ=&I&n%@^e0tY_XK3B4XV1`cSzLN`UzSuZ z?_*w_mXrQUU-x9>AEgJ7AC0#wlwhL*nr1mM(}}$bn7VwYCQcp~ zjP|(3jwd5l|1{tEwqvZ2bvQTse1|bczIbaoQQNT*s_TB9=k{qIQx6=A`$4F)++(81iTXPO28`tuLQgj@Jisk zBvAUkC*wp0n6E;>E`afKUNlzni)A0FWcb0fWE$-*drEfGx}BTx^}=syLscah#2?V9 zAE(_UyUYHlZhvUk^#@XujFG9n&izc+T9jyva2A2l6MIh27^ zR_;=6A*cOk#v+}^=^`L-s;0i;ee=E@c`=2y7c|BdznicSokd}nJ(lYBB zU(M2Fw&X#yxu3K2>iD_z7vP~LT2)?t?bZ!={^Qs2*at7-)A`c~k|`;*Lmm!3bdCAP zG0gmwo5nMIYhUL}&z(eX>3BMCo6ej5JhpW6YRp}^h!wV&wAsg{*$Lqrd#Ljyy8_&^Xs^6 z?qfTzQQs0~Uw?PTMErf?o4l{TGeDv4S0|5ltn%EJn;)7O(t~NsmMvJaWQifXM~@z8 z+qSLQmzU4{`SX#Kl!SnQ03)y_O`4!yy?U53Wr`_3tdf$d^riBw-gXH}p!|W)OOQz~ zNnQ!KB%p_{9{k?sm4H_QUI}<5;FW+UNj!|f=0Q&uO9&hm)uyO zib;TrSV5^eKAt%lom#ZR&@O!qsOL0N-K8wO%ZT=4DR7OIke-CKyEfy-0au%@svu>n zRH^z?VUeObe#F$Jvk>VYg4>2&!vw%C0oZq`AXcSQbuu+u*~<0lp zqg<7;SZ$1s3gXc^y(uBHfQA4bQ#C6;R@D+kg{-V4KtfIofsXzZ2hSCnF_JP<@Z2YF z;_iN<(ImF9k-e_*V}Cy%mmh`_Lkp-9AL36<^!u=qm3UO8GkM_A%%+?LtdKXJ%V%XY zjpf5q@P4H{6tS-ob89U93uHAlU6(}fqx6(i7f%j(n#s=aN3>||1+q$)m5FpHnfMT- zQPn>G09VyERjRXV%ZEUhKdWX{t$GC}uAYTHEC*ke186*}Gwn-$0o8pe1Im)m8dVKb z(q}(av14_z_m+Kw5#0uub-@~JI7+?+&=?tU4(UTpI??>Ttj@M>`$ohQJo@!@cTgU# zg!ZPB+aHag3U9htxsz-Q;xSc@lMb53G&D)ib&omemJW4ZO>^h6GMUTM?g}Q@c2(x{ zC$^!cWZb&e{hI9D0t{~73!8Rq!S`zyVsN*<2&0U2?_Nj?q+9?X2~XfpPEHPPTZ+B$`><-)Mnu=F?E+)S*81IBuzJ&40u#ju4i3S!{YM}zD-(N@ z;!zk9iNr&Pke{E28evh!AkJlI%Zz1nkerfaDuVUvd?i{oY{nAkZdNYk^#kQLdG2>e zNl!yuz4`{IvES1IJ63L8ht-?cnrj=zHo&MWhZs<$EDyCjh7QH29>m)HJ1~e~fcUS% zIif-%j9k}k--K38T4Ltn*)-S-aP!b>QHOlWTWaZsmB`G@z>fqYhV>X|oEMgET!q$+ zTVT=ZrRF{u(7i7j)Q&+Sb+l~bO6-f@PteQ{J=%9ghbFB}$kk$wQ-vT&yB2K`9vX(Q zfMDafwRzumELgqRBzx}Bu`Aj&Ze@Uz#T-WfN^n3B<}P1=`gLN^IJO}U(E}!prOTs2 z!cjA-CT6c#fLlm!-I}$qGhrVVlBPphhauT^Xx_#+TI93B+Pt+(uxI}sEZDjV16p@K z=asMZARtE}P*WByLTXy7vGIGf?}E^v5Nz7H6>Yf2rp}!Xe}a5txE3Np!VEyOHGUU1 zY~PIiiSY>dk$k+7}Rf`*verN&@(Z#)W>)x}ZlZiJ!T(!rZ%euVHfd@ZlITWC(I| zbFpjJE;FhW+@?(%$SWu@F%gp{O@cgtwr<;s4I4J#64wb~rBy$kRdw=o?>-!w(?)*Q9r`JvAP4RxiRI7*;jzn@I$Ca*bDqwc$jx_GNb!6d%Rc^QPlBAO8zg z>5b#hvf`pi2KNSrpxyBA$B~+Q2-zit`0MoXEOnia7e0Ig8}@F){4J~S)VnX>g-`y2 zER#0{c#-E`pYaj=f`hPd`x@ifq^dIZM;kbMEd*sU^9WO zr#^YzfL@K_8X>1NtV;&7d(-$EcT;u@t*J(jkqHbzdhG4zF=g>A1CA&p?7H{=ikBw6 zjikK8_{ZX}ka;*0IRvYo9s4rAS~Z*W2IBX#K0p!yp+hVm{@mB^;g9dVh@_khOy9T| z-w`B`ht#(VXJN{!xoF>#hJ09<$)qFW}L)o--kG@$}*v z`R_+jOf)L*$09sF_8-_y5Jzlm*s~3{zV$RdU+@j~XQyGpl5en%fZJ1+f3Y$y2h zDA(GCgq?_rs(~W}*vitA=%FtU-k&oW*&Oftl?x27S@}7bxn?1fk7OX5JU+(|x`Rj3 zFm2NkjGy)iy^*Su&t16v-+#cS1H0hElJ{fhPDc8XOuWf^XUfVsShaUEo_qgQJp9&Q zkj1eD;JB}MeJ^Geu1$*q3jkhybTR!?g!@;>FM3HP1kKJ;}3d z8|VJxhp!UUi$JTUEsLd}wP z9N|6s>^I{K_CZG@6Z&Ona{yH5qN{W5dotQ`u2;MD&&$g*3r@g~fSfvY>Ku0i6PhW( zA3S)_cm*w7xDfey`G~0(gFyoa83BwMH40m|ZZ#f53K^3ibe*rSui09cGP`w~{(^nf zL&Q0!ZXi#2k&+JV4P#|sw--#{m&m|&{aqsDR0tWKtZ(7%&b95_uMpv1gh{Nv^>U?s zHSz5U&o|4vw&K~mjF!saBB-LmrgZ;4^F)0+*LsBs{vuE0NqV=uI`!;n&on3RKWFL5 z5LYOM-gl4cmumh>ZpXCSpEK^+TvLWEe>Rt0dVPK-BQh}cqxoYu-H(||=3)l{oQH3^ zmmWYzjR#2~y*m7>`QV=6H=#$n&ItY3&*Vu-&&kCnbEn|{M%|6ut{RQCn>XQ=ug9WM zbba)?^S5~H^=HwwO-GFEKFHYN0R#jzm-F6`Ze;-P*tZM!Pk9@Qe*14+*}fCr`ubzz zl_4Yg=}E8Q>A}Ci{ny`y74+^{zHPnntoYk6pTHYmjYI9A2;6n`tp@yw42!_rwM(&f z?^aBB{3X<@RfmWo?K^(wa^jzOIfxd~aAmu0@MY-I!Q_PF>yEe>fu=mHNZMvXs|I)N zYYcLQ0y%lG3qjv)9h$VlKkj-Q|2OefJTT%`bY%JZqfBTmyGB5pXc*L?7rjP?!jE1q z@*w$o{tO&EoQf%b9gD(}BCI9&B7y0-5{Rm}vF`|aJdHHoC{q{BWRi5y10)|?QVyUl z`Rm)Ur=eLPOathR^E}UewtOc3e*2?{3=KyWf&}kP{TL5*z6!s&@m>>dmYI=`j|fox zk$S4ec{%v?R+cx=@Tip1}3c>q_w_-hRB+8^!fH)BqxBb4tFY$Le$ z^c}xJA%VNs7EDGm0Ssmf!vD=0kDY(}9QEqd=8eC_$bMI$ z`I7H3YsnnsGVF2ucVFPvPJ{5k4fim7s}RdKtTJoy@tYsS)Oj=L$(4u)uD{#dJHbK0 zI7V#2$**);#L&B|7+&`2>?xGxVqD*UI9Aci>=&(iqjjSe#*0UQ=!9=RA^l=o;cyJU zqlaB$_8}bOJ=C{TFH?4&5o-qj2=P;Brk&l1s>tO-qfKX%Qzyhf$N(8T5A1>t@;0y_5QWTH*;*5qntOYjQ1n$FIK+{W`b+7ekQSAAdR!DC|nKhY$dW3=L)upkf35C{NCvO}b)8j{#sw zBK+?9UojVqKVJLnJzUkLAH(eYP@G+2yrB%Sq$iO27{nY(%1skYJ_WKAahx%Ouf`#I zkv#a?(`Z?*5q^K;eW+inE&}L170P+5l3&pg86JX+BiY!Pv>P{f9)du6Z7~Nha|1Op zAzA_#6t*_JLmxD+A4?Fe0FR8h2h*3$MqSD;JUA4C<65Fw!=?mb5=?^Wgp`BkUj6S^ zADHmEHlfj|8Ce5+;`d@i@HV~B zs$mn;(}Hd~*C(zuMiD?$Qx4xM1lDA$A7(h(Xofdc=VFw675>EGPHI|jT3i0?6kDqv zK4h}z2=dsiWk*b2@*TQ2XwA^An&?oc0Xi^*PI8wAToCVx96FoK+P5CBb^9H4;bSUk zX$}E<;q=^+t^x^ihMRlGl}KCfKJHD&e0h%yVm=IkSfsuC!gT8*IqM}D`(IRH{5`G@4Xj|8Z|Nig9VI+4jl^pvu*tN@y4U*LVoGk zxyst=1`z;a=_{*GWj+=kACKthXpc(JEn~Q0L)VvIW!7z3ya{YoEU(GmRaS>edQ1;q z8AqO`_pGceCfX}B&+JO7+EcP6ee1cd?=eql0zgtzQ=uPiJgvzKIU*v$x+n4Ku1o>i`e9YMNY1zUGfW73mLq~jtiBh6`Aha8=6AV}?ZTTr7m|9% z*s=hBCNp{$p;<+P*9Ym$t)pR7^~;1|aVyUY*!%mML@ogL<+8Qg$xBTQQH` z89@d_5mf>!a_B+hN*?U`QM;_~J&hm(Uz6&5a^_*oU9*@uYG}C9U}rjTZd^%fzh6Ed z+YTigKu3nWZ&e=y7-&9)^{6tEXcLe?3=x}mZO7~LC*y_d9xSCxLi%ZQaUuSF4Je}? z0&HZ9-7x5CTtE04d^ztMyfE=ClPo%pd3ZFx=yJ9nC=Y?b^7_%fnhbLBrM{A{noE|Y z9!WeddKH$ll_6&z&3_pW4ZF?sljoH{FP-DCObYF9=n7%}rRVQ|49Wb_^cjYay*BY3 zy#Dw<47j8DeF(IOzG5a$7WmaBx{>jUDI)kIlJ_wDE4D@*?z{A8ypuSifB>Bry}C~F z4D|6c^a+&^#nCmQ(Ih$+e}DK-^fqBQQ+^?VCqIV2ZAD-;CT3=sSt9fHyz>30_`m)) zNv&qhDBS4?^9t37h%%oIgKmG+SF==S6~JO9&t`67tY%)G)q6IfQJn0fD#lyKtXF;# zodW$tr});IWS(rS+qMz&33^rIImwNeozw&j3P2pYVLry)`Y0OLYrxRL_b{|&50mpq z{p~#=c?h^t^P{Jb`2myrUoDt{{q)>273esJ>)zqBiv2}bQ4u}AxOHz9gc{XzFcvbG z(EIfCX&n)Rw#=hcAf8LFF>8^4o|0edKFrO_H6C6gdi7&yKj}Hl zX-v>9AvMK#G7YDPkq9xh6v+Vdh-2omxk$*$IL?biqV=RuJwKmn3<+bW3)sp90CLjz z;DZlh;>3w2Z0n(i9ybKBxL@$JSQ-+b{W3^>-e( z*Xo#azpT&B>)iLqaRZeQ0q&!27_=Q&*?=@}!KhFl^4Ri|Of!A!T)jp-cc=kCi8^7JMR z$k?t&FOsiztwz_`-E0O>Nmoc_?@_> z&oGA9^v50l`U772=syIe4x?`MKy2o@fkpk`Yruk^hH!}*(KRPwD<+foxVkau+PWR4 zFJ*Md{+*_3QdMS)R!Ef$Zo4)O6OKOud&1~Z(z#w!0~i?(rnG|$^BKwS{bSh8eZ#XR zB;Ts8b!Gc*c=ikCd!fm*YX4S*)gHhy=IMxL1+4E&<G7Df<}9W4KWo%bM%Cy`5tTpvz^FZiN-~>(UEfFa8d%PW%r#H*SN;D`(>u z{jWjyc3tq~H)HYN$sb^I@?Q9Jy<{+CNlg{bzG9;7yC%JaMZbR&9sfUjR{>b%b+#WQ zZUhJk5fUH-cWtRqFD<3I)w|l(RkyCP>Q-6h-)gj5-JN2 z;p1`>5=a8cy{8TLyXQOd%K79x_Z6-U=kvid;y) zuw@fEw2MP(=2p{O&`KdK#8R`i8|#~%4DzkGISW@U!C1yq3MaTxOg{-l;mFA^Vy3-7vlb^(N1spp0SWEncBg>srPB{evcw`PXWXKTni<{=@*RP*( z>(a59ii(Od0i#EZ7=gIBI5UpU>0xRgsCqG9xNsp-Qc@}bB70t+o{By1>0DKHb}aj; zcJ^36lwupnqRCnBJhpA^r)gO6kEc54dFOF$+B*9k%CY8hpU=~GSqOyk7a(J{>5#dn zwzZ|hj^X}UlX29?_OtEXzpLKX*-zWHs!z3(`%`2j{dFDuR@MGc>ovA>eE09pah>gK zy?dSeciYa>r)}%$Q)^xBm-ZJ#+s2M#zw6T;yPvb)ou4&rThn&VvF)*Y-|Fhs*1dgB zPL9#L9!@-KyC2X_C*1qGf3NK9;lQ?a|MbxGfGTGndu$uIf4BAe^mI;jvIvpefU-1J z)y|x#!9SknsA^2Lb+&gNSJlT!f_r=CxtbiSe|Ao`v2?2q0OXw4d0Z2kopibPwddUH z-M`y*p608nt?KPL>*DGDJae{j&f#euXPq6_e%ik7-)+6KudS=Dt!-mJoo$`Rp2oF( z?76(WJY(HxOx0Z%xwDBmuI-r40o?oAb2X_~o0_z9AJg`+pH-dLujjIiv6h|A_ReG5 zzp77XTj#ObyMM20jOyCDkKz8^Ii~wL`@K3|tLm@5w!gDYRkYf+?w_`=t+(HupYG?} zzdPHyA3NJRkJV1!^}ePbQ}qmYKkpo?s&lqppZVNueYS29Qo`C`a9n5j^A~-sA)S+z zaBYgUz^JZ|##NRbZE%&kT!mGQvM62np%x>NwqAO1rWvooJG4I(S8RblI9UajIS1}IJ$mIS8 z{0R&QqN`dY+6FN*6zP@KOJ4#)@dS=KwQi40T8^E2+!;7`_~~Y&oIskZeD0Et76cs! z$0nP=%%P0Ulhi(eK*3%V@%>cUrS{MY2U}bK2;l^I>Jt?#($;`$4huB~H{Uzm?ePd*oy4m;g|18pMPU_@*RIwvF% zv~jIXS?wgnCcvL|QCoIw!-}-E=tbF|aqKAwrwbA#YqEUx=d~l*wWKADcxXj$nNzy- z!>069p)9!i^b0AgUPc#T0l`LRF|_QlR!y?NNg}Orl4WF!v3d#%458ek(TU(#_rw(B zaL=-ynX>vNbwvtg5+B_j!?<>KFq7FSOfxP}D86kBv$@3@3zksMlbe=COO=)wn9|$K zZDr^FDObdvZR1f&m$Y-3W$X8YPeDAv#zcZFoud;>rm|+uXqm?QLpQo>#Y@JNd1Q+~ zy1518n$s`B+1&=2_Q73UrIojr=3xTHh9{p)pt2V;#}PZ|d;)sY>MWAk>W+^| zHsb{t>!;>OiAgd#OdtT&jPeX7V0QJnm*Mn|eGn7Xjv4V<@%|Bn!SP+Nl!3qnCidZ2 z%AQwM5j_G#Pab$C2KDSu@P)u4iQ`kjSlsoG>4crxJIxx`wWs^pE?#RZ8KX-X+O9eI zd=q0zfYC5ocZGJ3bCKAETdP4DVPh+6xqwB-#1IJ$XoOrG z8p+=10%rBCwXT;tZ4hnUp-HiE_0s)Fai3)Bu3u|(<8R8v>QV_nVDX}tJR^^sa(MH<7#aI8as|Y?O0n2a&YN{_i#a63jR3gWCU^JE4k{O zUO$l4rj+ke42|l0=-s-6t{Uas1htM(Al1eT02MN3%|Y0$UKl(pc_=7zIYF5gbSc?G z-y_v2wn!1(Q=})om+MVM0FgG)atv3jQ zY3^VKbe0bRyBL7akLQXRi%0KSo{DOfiax+!(POw*WJLj8o3yzm3*>=uTR1Pbh=y-Z zJlJt1BLNC6*j{TeKyx#$i`=XN0t9I8uP0YMJx@5NQpSrG741g@nAxj{bn9JF0IT>Y zS;GC=WZgWTZLu-4uQVGQN!FP?0z#Tk#Rd&A&=<#djV1bFLON zohjwDp}91c>NH%5GFMS9dWDhBB^S*v%NfaC?rJ2{$V!HMMGQ`@_nmFDYPxaEeR%8- zcQLk4S7WiHx!j9rmR|js?#vhhQjyY$jfVl?S{2;=&Q9|6LF(i1beNe9xUAJ=t3VF~B+H?CH^H0a``b8?e( zS!d}UrE8~*{iP?ZRmr5fB8x4pxf1%VDSnptRIzJO#~hB9PMSNwxKql-&9KRO=}_01 z%UGg9PV6HQNS^{Dn^#^tF1kt?6kV2T>Jvo%Rn%VVOme8NQs-~H61XY4Q&bcusN+1= zX|)%F?u)_p^?e>i5~#<8cocEzBgH2HBY|dmi`sV^^GT(tN}&FpuT52AO@=RT0C}5? zvTDeP?|rg{f~sLNxl0ssBjnFbO+&q>`yRXdl%w^m&8B2uUdD$NKUJs4mg1SHzL!h36n%=#BydVC zWl2<8LcTe^j@3?qk_E`@$1fQa5To-du6Q}F{j=&-M58Todon6z`~0F}GnUaiyBoPk zS8Ss3N;tpjbX>r(L`R8(4=K{0V8aq-_PYJN>*#LOrAqKe^J^T*WLL>9OHSpd&I#-j zZ)R@NAvtJm3iwkNGh3{D)Xu%APVE)v$>Icgv^Hu+&`ba2QBQUqJLOqQ*-Eb}E?V}r zlZB4>Z=tcd-gMs6+^*iPf6JKltyI@ch5YO}SrAEwDjGxQ4INAYr{hv{O}f^!t}|I# z+akWjvDz6u+7qmFUZ3idOa4{t9JXnFeAYPtbSOj~Od*Fdrms(ZNZ`PWwmxR@jp>uX zQ6T}}az856P~SxOo?78YbO+QZVq|1zNOq}-bY2~C^9XpGY9@F3CTVp$i z4xDZ57?O#5u`*G;Knh!&^_6wH_9~j#v7GIk$Ikg}&|`N#WJz>F-=VZ(p$j0d?}HU9 z6WtHo$FlTj3@077&%wsF=hc2c+6lDT;+(^@tB|MFtLJu-tLxgR=~}Vt%Z_J1-Dy+3 z>Y9s2%A}@zJKLGD_o>~C=j7kcU0foW>7}@sGyiWqoUw-!0 z`i`2K1YEx%HZ`t%{M1MSzWaQQ#N=z_y%NxKFq^50l@i|Nj8p%zXfl^&9WvtBC%QI@ z1RS(kb=KEZGnL>_O*?pKr*%=?JJO-hNU?7q5#$!cHA zLpu@>p}*P`z4rt#!NsvS&>)Wd7DTxH~vqoTMewcWUy zj)(b==9Sx$f^|0;ebrJX#x06^P^_e?iogn+vfS#ds;$emK+ySQ~5oY4a-=lIct5;JMG=z?-#=y5>IohttXk-F(gCjVbj($d_DEYO8(WyS@d1)atd;p zIz6XS7q(4RbKCRopBi0rTlwl(x}ULRE`DA3+di7916!Q>(|jsct~%CODx%e%Hx-V5 zbWR{o0n?Q~^VzFdw0fBdL~YwE7S48N$110#pxWxME{eucVB{=jYF)Z+6#*bue4yNd ze5_o*#?YiTqQlC>(xmxyuCm@?LF7)G;f?9*KltzwFdS!jG zG%4GY>TI7Nrn?Ugpam4clV9de^_YTQZ3SY51o~n6!rAzG`UFFRwHDHN8rRbtW+D&& zNS5NIvJZ8m%wY3ZFTv!+zfoVV@x+t(5CCE2r#@N(ste|M$=8fmp;xT|$=mYjK79b! zLqu2vj_W=U?OL^Az-AYiq%2&y`FVKuv)7SZm~XPsN!E2yw3d|>Yw_x(=>N>E1k&9WX=XF3!R)O}8~a}u%)+`2YZ2A99gZJx z3^I0XMRrjhGBS1=iJxb zP9`G5TVcVnh1}2v;nZO#n*Q5p?Xhg*YIKe6fQ*7dloS^ulHh=-_<7z;Y)(%zDbRZ) zcSo<}ZiYr}j6D_-K6B|jY)ac?fRwHsQ!uc5U#v-6kIcMmw2p|x;^j+daT0+3J^CVv z^sY+Vh*^u~7}vLfy$7IE`wqr3#(jKk)bj`${JdfzhV~wW@ZeCa-Mj%?Gk0Kc_kPB0 zXEJ4#x|ws+y{J2B?M<2k85ntU##YQ-GM}l&3oxY5AfzOAW}5LbW05j%)ncTjr()Uq zRfua7T_tF;mmoo2Nf|a1q}!Oa6+3b>4PX@-7;MH7kD5a+e0_WLK^N*p0F9?2P^FyL z;rBCt#n!D`3@9;}y!WNP0tqBVHjlu8;yy-PQi$Q!?BaP-n@MahV~k0GF4enPqb(qu1VW~Ii$5+>$V6D z2^GR(0Iecs{o0X}fqCneVN2Ey^5tjTwSozf9d6OPnO2Qb+>egwVgfpA841kk92Lj2 z%)Yg&1oH@ht&v3#|4UBli~;0PG;bw6GkEPtZ^sT8iUeLep4Xv^m#FYalrUS|=M%p- z7Cpmx?Zij5H+;@pu^3Be`P7Q*T-Qxhcx&|Q+6&z}rC`d!nPyy#El_XGrghBJR)Dau zaLipi4>8d(7}jf$$&7ZmGO5e{zB_tdO4B!%PXay(G#Lr_EJK=%DywD0r{`+L)3i@k zu_tNTO#8U=NucHuFdHVhnp9W-`R5yclUTTE6;^NCgulJ| zFJo;{&X6y8bc2ygjNQ=6+C=U^-%Oo=$3A@t1-r}e*tj<_lh!9|(l_At*Pp&hFy`yG;7==z{IX)C5=0T8 zVZkY71z^q*+4)C^14uf*N&K7~i#eHODfEWyp6K98Nb zS=dPM<95nn~lca>t(jxEA9kVW9>KOg)LzpY(@O&MEo|2t1(16}Q888V(OUst{O zAm(pciGp&v3#o$}%BQ(yxurQ@`0NdgpEnt+QrF=hZ$6EGzV);Lg0>KpyZpJku{3=x z7NoAkJ#Rcom$JV_(9O zE$eW>>knZqL5Nh&@!;D}W9q8;Si3U~*Sz!(ELpq4ocoP{-||gsaNZmL#A;g9ELyva zZe%kFu8^B5K&TCwTQTybJFt4=S^^y|i@+adO~(Iy@(P;m-h-FEd%>a&>T%UKn`Z$(uUW?^h z*5j_%o7wa)dQ7v`I1@> z`(Wa6$Bt&n(#3`_|wA}*s~vg{_R)%wsgK}C|9Z3ncMK#CAXn_r>^j)Wkq;s80PZ4 zHtUz2aiOuyxblg=V$quAIKJ-?l+lXE>3*d9yJGOfhqdOIu2m%fAlyILe9IJ|M3AaO zYzJI)%4n39meNfs0AEf09xDi%y>riVbPX!RXV2V0E1^_G(i-Xc@$ccOi*Lp0$DE8s zvx9sP=8bV5;Ed#fxbN!Q zjl0<$&pwFvCw_tZuDI1X)V^bqznV0a6Zq)Sr8`EQa0W^UK)6Eq?8RyVVqe}p2C?nq zkomuCgTm-~)h;xC$B(0lM0J z#U}wTk%03>!b@28PBwkFHSg3rx%OS-UaNW^<296k*~BrptAC{hPz^gCMl)}}B?~kW zn6Wf6oK+jvAg3@7 zJv(-zMN1CO?SCTLwTWWvnjoBY?5X&bv1|0(M*-cwP>_Q+zxlw#KM88#XW9r{xbU=_ zF_i94GWG}!2{D!{iVf5;AqfF=%ZZ_jS$uR9U4~r2rbi4o7OOU|!@Vy*fe!8BaMO8L zp>LO-2e>uK3Zf+~oR-stDm*02vd%Q4AxUJC5MRl_!kCKVJVg;@ZaGhS67G zIQd;kkZl*|f9}JV=weikpuNo*%O%`^Z`pJ?8s29pf@pnGT`|@m1e@A~hoUXrt@8Gk zA~CK5LKr(JGp_)%HY~#>gHK1RV8vVldQ(mlm&`P>5@_YgQsjnnuD~-Tui?i3{2jfL zQgFk$SE6rn3fIGKTs-VF^z7UXMO-H_5p9i&m~=a;&vA_X6lOrC(+3=9z`b@+(b$%k ziPSA=xc;;Y@yq-fNQzHHuf!D6!o}pFC<$~63Qu&IKegd;yVk7;M8z9-y7=f=y5q&t zT~S%;_PMgzm^q$!@-Wo_RnndAL$0}rNAp;;?Ao;#{pdRP_^3bQ@2@_AE-?wX^`h(0 zF*XrP)7BV(Y|KZmnrkO2IGpQ*bX5escArFJhtl=$=JT&Hx|KCuL~t0=XcZ<)uC(m! zc=YwBn0br#L^nWBYt)^NhWzdW zfErTTjeRbybYJmFz)K{c2abJd@Di52k_1riXvL!miwI0C zS-l*)NVo3&N@sri#W&!Oqp!qU<3GZwFW!qa55H$DVX_FGJ#q5`hNnUT0J4yoF#A_T z1caD=S^0(d_}6dHCal!~7EX3@&7q=fT?&xwIwmPZ3A#kZn*iSBY(g@ynbtaSt=qYH zsOV=pRQw}1sL-HbJbA;t*p{^u&l3Q9^5YjV=9WjGm_qrq!V(Z<05py#UC3%`{)QC> zDARgcym2LhS_UAwLnmV?R!*?(^uZ_MhZ&QQ%9uv+XT_Q^Jjqd<7$A+bE6$DJFSRQp z2%~k7OA9k&fyH|1wYltsNQe65(G5?1S`gT(ZPC2VTQtYo+zhiONLud*C9b5@g}Q0fpsmLw=^-T0_aMpwz5Eq2nwZ(njd2cm0>om z)=nLAVzqNuMN@s&`v9Q&lx|ZSTPxmId=l^y3HZPt?@+W)&)%VDPh5I>(e>2MSJ!wX z;JcpdMpyQ2uauiP5GZJN2%EP`BI|Xz9jPICI#^_~y5X2yE_$!6|)Arn1%yy6ov5>#}g# zZG!c_`r}x<`|T&##tr_?%$->2w*f`mGz-uXe+H!Iwz_;zIRcvbVOa0M820>~=u9h* zSn@n|*&K}McMSS=?rwl6=X~m`j7(cg^BKEmg5lxe8DHUo&V7s((6`fmX6%~17}BjT z>1~7Vp#*aX*2t3Sv+3XClZju`(xxlECZA^yKFI_~4*mKay!GwJDA`qpsf?R6tYa_I zxX;>UzqQ9bldO9>#3kUdNgv`If@-C-R%+ia1{aSw2Sc9y3*y_y8-U~cm9z2ub@v%S z!DAq3UKB5mdl$V32zKj`jKsFFSjWK9iZvu~DTBJPTQq@J*^D36uV)`z`^A6p>BO(l zHlj7|o%kWfU-yU!Y+OkF4@>E5tdk<>`j^R=Pq7RNy_;yCQ-)4{1THBRykh(WFwT=) z$pq|#&^j!XYjD!c$;i#=3(Y^Y=K!vgP^4~6LzhRd!S~lagwqBeM?j>c=0Fg6mX%Ko zEtY}_Ku(@L702`$jF-Rr2%`p`XkuWEpZOD-QO3i%^*5kTY-E%Ht4|+z0!Xc5Xr-Gp(I8@HkvQ_E~(+AkoSe zwmf|u&f#^K$e_|1E1mI}rp}*04{vkLY!v@#Ss!>+ML%K=+%RoE)#x zyYww{Z<$l;8dquP`|FX?xA>I4BO)TqbLL3V(a`fs*M)_JUiUnczVq_(jGw=LIrp}r zU+#+;Q$*`sr72(M-o&eO9ZRQrU(=>c&+x-38fyy!;=a6Q4*t|-5aJ@*7|RnqFLchn zAJlY?Jyp1uIQwf{fedmX31SLu6;?IMQZCb(Ln-7}?;_#MA~dK|Ps}68vw~T-+B2q4 zFJ`II##%r{n-)RX&A2t|wxuDN8KlDKveJugK#DmtWx)&+ptdKoYQ?o}4{eM)#&$qZ z3x8UGbf%?4OJ?qBMKCD^eLHl+(lskEf7KGSrqz!!cZCLqAUY(H8|GvNw)HnwGf7dg z#yUozgWQ^S5;T~~O>T4gk`1QCk+LnVTDuCB z3}bN-Q4CDH979t2;p($4=4O5`x+WzXONzu+?KnTPKXDJJKC&EGE?tE>AUVFHv1D4cZZ)P8(2(2C zt)s3$65X`gGQ(2}c!Huel_{q=9 z$MSV6N$(tE;d8^N%aA}YsfeITr|1OZ`Xpe`pAbeYUE2D0?T(?*ow0oFN^Ig9x#RRp zF=Ehh1W1~rO+cv0gw{SP##nl##3WLV-3&NrW$2_ub+Ryu3<@(~Q5pkG_hu|2xk~9i z(cx`^rB!_)ZAx$Lo>Q<>lfCv;fi7y)7_8gJ_r|`damK4lontsxaMYX&F$s&cG>9{Af9VP*Un(Zu~OzT#m$lqb?umS zV(wzDSqv?@-nj1CQYPIxbs?w~$hBOKWUkH5af#%US@%NPV)FcH*g=r8OI$}@Lmf>v zG6AHKv(;H!2HCEGqw!u;A2bQ{ z%gV|^LIO8se8$!EMZ7*}sjo3DU)s=RW@a{NUfpGAc~4DEHSfxLh97FNW6fn2ox$I~ zjyWT*#~^OcoNK5?)eht^~XH(%vUb=5k8!Fn61qo}0ZfHew^tTBq1)?9S?(WS_b zzGp>rGYg@GgT|K23q8u{ZnKByn=>8}UDFttx~igaf&&9+-6MB2&A*#-a?Ij#L!TdM z(y>4dTl9`5dhJ$P@rexY+$&mH*tYtVMW8^Sy=0bCm^R|On0y5=bJTwHa?nzOSX$$j z-!iUQ$)tobDI+hzw0zlBL2o&&Q$%C2Wa6CE?O1dL1^QEWlso07i$L>O-gUkuEwzdm z+o-yGvh=F9S_8pkyi{(18izEg-uBmA(s>cV{*d4x@*_92JzPJ{QCRGnLv1KB_AfPS zj9yli=QxzdBH98eGqqJItXLbGTb4k3cp%G}0PYe#FYnEQ1V=}PUpzvAb`Gx5-${!W)W z-Ou)2oBK_AgunP)z>cs28rAf=YkEnk?k4OdBJg@PeQUrwmVi&s-l1ntT>5nHNh*!I z&ZpD5(VvxLxptEL5w;mONDWo?f79ImTSL)MC-aE(>X3nhOd=g9)wGI^OG@aTLKH^F z+Fa)q6jzSmtXCW#ZA=B^SeHnVAxoNk_EFni+`y{%QMV=9FqaAtZq8KKt~qp0{q+O9 z<|`r{b_{(N*d%aARvraKv@?m3i+WM}3ky_!q(O135BQ)5+E zG^cc;F-j>n4q(QxysK{s$2-_K8beAD9k~R4M2DqGb7*`OfqJ4%ax4_RtW#UX!m)GM zHtH{4wVu?zx}r9s*&r%xXxE1Nm{?5w)I3E5Z#Axp`ZOnThYJ2^46O_4N@EAorO&Ky zj&J6wpk4FH>eIBZnA@%swJYI$Ol@@RsVGiUUV$s7kJ`uuQR`oQ^p{VWijFe!qyNlU zl&tvEH6{7W6)=L}R3L%(cCDjOMzE^9)HR>lA8o}403B@_IhyI=LiZJ)1iVE8y0KUF zu<#Zccmto(v#)rk1bo+c)6=_8r**5-GG?7(kdg*{7B-nXavd;YH;x+0eS_})U7FWB zOAE$JG41*3UTh!xZliXUbMRSc&#RyF*tW6bRnEgc_MD9qWj4s%EZ3w6w9qwcfeAaO zHrqImd^4n-uO{QGjcxC~^|$qEW96Y^6?;zdk;|Jcwq7!>O%Y$_-sAuREMTK?YBHXc zk&%}Nnk+rGof)@6zOLhaG&|c^o^1c>KAki>+u1Qhn?1JYB|~@l+H*Di)R-Du7GQRb zsIQ&N)0#7V*hYGH_EA6gV%D=mrtaS*FLSMU0FWxj-YYP57kbjwEQM~2P8qw;cQkyj za{x#Rau%o3-OoAO*<)vWTj%>cN+jT6;U6WG`N;4|pw1=WyBF2DNRP?^eR@7B)zTnD z*g{-*&eit5TDgg@C6AVd>OSqh(@E#Scyf++C~|c6cOE-waMsuMxTfP6 zJ&*ylw{ocMT(xcQPMcKfUU#rDtI|((<5acgbl<8e@0H_|W&uj><)CYU4dfQ4jB#|t ztkT`gecal7w|sh{uQubTZJh!@o|NXSs}yc+sr0o!IwVjJH|L{+F&`B^3HT)7wGue+ zIq$Wi@HWQv5@lbgyp8v!%CAqSb*tGj2C=1oPpvm`heO3dH(G}?ctiHBqi2h(9;g6g z$8(Zt3 za!zJ^$Mr0MCi7ITXF2(X_esDffyN^N-+is|=&Ft>t&5kaIwr|C++j+f;kU_$N$^qJ zov;G~^fGX5^Oh$5#ZgRZlOs)grj`txyFF_sKKx}I(~yra*{&38#kfb2V;3;vf@V~w z`}RInC#SRYaL94v+i1&hM@{bTtWFaOp{7nD3-V#mSHTZs)do z)Ht?CMuuC5LMoW~~*7>=Zv1oB$Zwqj1Tx8u9yE;lPP zikV7vcD>oTYx*fV3W|%2ZUO|v@w=s4pRW1#=UwZq#01DzU~AW!QakmvdQ!dBx9Tg$ z<*_87_I@q=ur+f#KAQXu&K-6Nx^_rrplH{%WBZua?4!WkTiEu8*^^B&ls?RccGAG% zCJvQ&H|?A{uferrdGjPI=eib$c0H4D1B4o#@Yu>-^qQ=Q3~D`d@mvU|I;Ph^qkm81 z*R-xq03Z>kqR+=4f7}oypE#u(efsIA4RcBlIBnWAtXsd%Ad(L}@Blvl{Bx6fZ``AOP4-XsGjuX@;2{Yuk73$UK2vHEuM?L4mM>5u5}PTuvvRq+Pi z&GU?F+ZJ!&+3MCl%Ph~{aE)6%Ti)$=D+BwzDSi6Z_`ZADq3T(iEWUxGoLPNhmG-CN zVW{yAbdhDZN!2L^WUYxoajwkH*n@rg95uQug@0nB(sIck0d1Qs}<62y#D zqFaS*@!bA%yUw`&)n;E{gmkH*Y+}lkC4Ep775ZT|G<}!882nl#kaPG~%)#vD)TKZu z1$K7nRq_d7b~0t+^7GSJuJfWxS=dCgGHWXU}eMBG>j$S zdDq2%HXxm>v}Bnhqmj^nmgY9Zu3Qf;IVoG0u~MV(BoFbewPLQF&~QYDMjH7WP(}AN z&M*Fzflb$e+MBrC{A?8%iZ2(;M1F1#P8)h0_A)TKCe-Q(;Ps$vV=B_Q2`tWWYFjkF zz%YN(s@_a2#<57RGTTw7;zjc)!#v3M8=kI_2dnny__wL;*(LEbn$xrD8xd2ow@@Kv@&_7yaS~Mz0V*UnV^MGkA z&-%3Tw{-_JZh{rw#H-Y2`PCY?*Pb`6ckx^)gG0QjHm1wK@+!Wqp6zF2;^R<;Gu&JB?oGVfHDPtDPhI0Gw$8Sx z%_pA<&=w?=8#8TMRJ1{{?*^u#9{$m$tVxu^U_^RbuzDr7ZQq80U3#H)tJWrylH?+A zt{D-Y8H?s2W9JUEpsu@i>Vmka_RKO>jydxdAS)*u?c2qe`hb@Hv>cd^&Iui{F?|!Z zXY4??&Rx+tF0s-o!d>2F+>CCeRm6lPzu~-Lrx8>N66(Zs+(85w$}n}o9OQD2Py$o~ zdh}%)_m;*=VZZez{<&?Mv2ZRD+Q*}9L~E{}7RW8g!-g%X2oDLv)*ai>Dku!?qhq+y zce(3mBP?)Y&E^eQwSF~^gV3LID67(z%pK^{r6=YsUyP{MZ4pU;WAWM*=-H`j%4Qmk@(F%RL^)`T;K$#V*S0gn&)yOj;HUV7|lPya%{uD5gTU>ydD;L7Q zSxe;6`=^BZYek*UUAD;RF1Bq9vwIa|(c0yR<8c(Nv^HmK#mp7+kz16HAOdB2Mu!E5 zAR{*m)8;QnF|%<+bFK90(!+pvvgXPv$VGT)7*?-aW7_xa-W#h@cVOF&?HEWIh`(Jz zvRGtQBdf;WmM%a}b~g4>F5Riygm!W0JTe|7yUVeKAd9mI1YfdZB{px_j21*^I(O)V z6zWZY;C}1f*{ODGFdF2Z=6pPz>`&eM}?H8v{7g;0^kc`Fy8 zu%H0*Rxd_(u61P`WA$N`Ist$z1zA~Hh>VQn0xd8?iI0ybGx_GUE(9@NSXhX^{`Iez zJb5y5b92$QZCi8UsZs0Jt&x|PXWGx1Gsn1+=|Q6hnSi0~+qWA(PNkD;$RfIRVabX~ zZfv@Eys3!)Qlir0T{l#3;a}@)%a$$Pq-w*fHb_N9MaC3T*Rr?hTg;1B`HFkfb#AV2 z{-UOPwEgpzMK9iUou{X#*ZM);SY>2+HqWzde4d$KUK=YnwWC}2Hd!X`*uKNOS9sIC zO?ub8O?uz9ZCmAgSM4O&I9l5^UdsDgQ|HxPBLW62--q+Qrj3_CfE_tm2%`(wHokwi zDPwwUZhCfc9VvW6eU-!A*whzYwH{ZD9O8CC_of_LtBjvJ885Dwf~hw@g=2aTU|Mf( zifNYe!H-|yrJp~;6~oTJ$}JmEw5J>iG4c3l{Kt5H>K8b_$FUgu)&KD9MYrMjLBsLN zH}9iOXashY=A)eVfY`+|@xV2=BiNso2b@dSjEeb}$3M-Uf|tg>5C4+g81va11kL?$ z_Ry0tqW`h@>euh^;!mIA#FYM+wss*d9d;(J8Fi@v44n5=0U5G>`QNu6pl`>nxczs3 zGL{cB7Ouemej1D0&%GL})7RscAK%5J$DfbCUv?AuD>mTI(se8G;QP;_XKY8z+_(bQ zW{);jEU*9c2_C-s4!rRBn;1eXi1UV@ju*dr2d~}plyM((y3I)T0*SVl7h%o%H3k4$ zwQd!TPw59gx`4?&?2&h#Lo0$QSzPB+me0lAm)>ZC_`dq(yZCUyFF2>iFg!W+6MS{; zW9Y~*C7=KN6Yl%+Wt`q+05fH#y0BZZEW6_j!8@%zi`6}v~S%Gw_SKG-v8k?uWEbFXA3lRI zm*0sssq65_*cTDX^lwjm@L!Y?c)9S{GccSW*Gpf%gPCiWpie><{4#Dn{&~Tlao&li zVm$%P2R<5uPEm1)piAF(i)P^CJD)MY=GU_(;+54iG4r-(Ft~dk%6T{W--B1bd=GEU z{vH?fIUeuMo`7dB{tM#TwP$+yQlks4TNSy&1qb+J^8D#|ed6ahwfkVK-j2`~cdvYJ)e&eSl|qt)JKDSggxPN6*gPxmR&rs{(@$wbUs9qz6I?Q9fM&0&RpC zw`KcZc8>Y*AI7G}U8dy&`k)JJ@Hb1_p#dTEwxp8RH2=M6>cQ|rx}ioHo`lOSD- ze}MwtQuJ`pS~vF|FIeaH`j&q6YliM`x(|E9{Y|{ALG8q<0aFi^r5as8Op)UR``alKb+Z8vpZoomqC&-n|r zo?%+w0kl3)U2TiryXB5is_TP(5&^tVhVmY%=VA*!CyIE_Jd|;3OGl$`UwhH-$MUhg z1|zmj4AS4uG?oiGsb|*aom=tZgpcu`tMA5f{e~hZKi6!!SI{!$^`Ae-J2yXy0o?Eo zpEdvwe)baHj88*1aD(P)2g8Fmuk=9bP*Db+azyC7==w9~eFXQ#%gNLs98&(s1IQE&_as9}Pu`pu`-kv%h-~IDd zgfWh-ELQ?(CA=jo8;^hS8lL+7Z8%}@aLicn8>TOuZFb_C)~Rk?AAY21?y`m0n7Iuv z-})%O`{NIf-G+sr^QYWWai}IzW1KR#e+`8jla7V zKg^hfadRe_A8JDOw!}NvJ&5Coy7k3}jOA31 zj-3fo2$UjiBu+Fb25)X*KHi`3Ij$IT1}+(SAqLFri?<0JUN-V~$e^{-xV7`~=v9AX z+?>vQKPqrnXSLrYcg+(?_p8fCoQrKa85oe%9V3UFL_kNbS%D@dk?3#r+~o>3PL9=0`y3{>yG5$XaP8CR*$^}fozneNqx`VLbk0Fb?Lq;yF!jAUeFR6cxV1+;PFM)PZd03x}E zSywPw3+aU{Gb0l_B6ncw)TxMwh%h2kKW9-}J;((@9EqYA30X6F8z5k1otc?w0(x7s zVq4#oKedh(#M~Q;EPpKE>TUdIWfFboy~dl0Kt64Z1%!B8(RHrpj(v`K1OEbmEb!$G z{5pB`%l0$Raoyj%t;p3;KV*5sb*^_6Z{gK_9cQ=9Ht#O_5$AAin`mK16 z38cR&H90KJAil3^%#5=25`k zkU)R@G0A!EJ@aEbayU!ip zE{d)(Dezk`3BBmH6x+6q@p4+ZZXJ$qoq%2`JBOQ;u@eE_f z6r&~A@-B`cD~~Uy|A^lWABl+!+B=nFwrN9865>wooantKn1I8{eUHJvKK?KKe-1|B z-d$)P6-_{84`#1fgi?aynxmk!h*k(?21uJlm#NVMPC#-(0$q`0)Bwg`@yDu7YiNzr z49E2!iU`I)l6BKAfu#J;c{Lb52yo=kU27AqgvtrXjv4!!xo*VAc3S@^{>-@}$OA1_ zxDh6hH;mRPV9;;6^ieOTAA2$_L|ldw;!HnIrX(dJnJ!}ICiTRS-h=S#%qb|Nm5f}` z9z6LX4CvMi1q8lj4WnngSua)@{1jaZc)U4n3(|6TVAra0tV~^NEPW#Q&bu=^0|RMg zcH7{yaO;={a9p$t0U^8A7+ss;+i9hr>0Z9ad0w~v$7|{AB zT0LzixTJVWXAb`(P9An5f_Trr@5 z;|)5u>)i6HYh86sy@+4EXzEiut5_K{b>79FH|gD*cy+E_=NdoU_hrdYu`fz!DHz1f z%U*#6EP6f&IFLnIeU*K0U-dOZ1C4u_jA$dR&8hBN+W563XrR!y@$F)#dX z#JFfbN3Mhu>bRLB$s zH!dPztj)R9uRz3dYnqzFxGRkR(>%U|0S!_KCMXuq0h?&nXiaM0a2c&ZzMD1?8#;Eu zbpy{pN5&s2B3NPLNh#x*0zQ)!L@*YLtTrw^X*A9neyRaDv{4sG^C4pfeLwegyl~?~ zCZ5r|Q^w)`3vV#%l3flcn!io!Ht?q<(A#w5x%QNcOso}MAJLIfNa!4mTj-V~3zSD$ zCmCik-b`D@-O-BQx^p|8o&G5Sr?ZeNW>7o5?{M6B(KUuVT|eSQ@}19EIAyeok#43k`0(fx&oC}XZGyuQN?pmtXfKxuksL*51kcHWrpy3VTofF$6)kSKOt6#S**nXpVo&!W?valgvebJY#D;bIU^}Zq>g(c?qw6_BQUm`Zl9m$=4Np-34SBCOrJ3S1i4E zboC21W%H3n%OZh80ux>PYu#h@PUae~cE z|FoTLz5U+MpGSKB2IH4HaxdP%yKVxucmuzdS3O8P6>pJ&lTWh-_ALWXVrlesx(BQ5 z&-eb{8$FX%FyN7Q`_!$XPgAMhPv7L(`Ms&|SR+1oeLL^ zpvMtNW^9)ZZQJA7PhP`4m)t}UW+(h<>C&IUqPxW;;W@fnU4HU;c=@{zaR0!Ow7`g? z`%}7c^R~F%T3LWpSg#yF7U>o!5lxGpz1+mh1xK6jOuD1=NJ_!wUHapr311lNn)iSF z3}FoHo5(o?5O^wDgJ%pGfvZ1!8u9BFVC-%GXDmC^TIUK05Nu^I-xc&02@eTnFzdF= zax@5!e)|@>b3Sc|=dE3eQwJSyvN|C&o}d5&Id|@cN2Y#GK&-vlTpw^RCm+hB)P@1H zPwp`UpTGVBhTQZhA~=UKTb+B%sd$>QI==5v#z%@Y8P6^`=^Vyd8jSyZ{U&-QcENbM zt6`6yag*yt@T!E?JmaSQh;6i%nX-HyPGCGCr8+m@8f9jS-Y@)U<};AiPs9Fu7l!s6 zU;;D$x_B1j(ey=eVG%BR<8CZ^_%meX<=~{pFUN0DpQ96jv8CBt@Y$qqOi<<*XN*H~ zM6`(qm0#j=z1)(QWn`k*tOA5|ZAyM~mMy{atvlnbgs=C9?@Ig_^ZAtXqGq+mdPkj?f@K zT0<4!*^gf#2o{7}2x!TjO8|_=dkmE;Yoi|Vo$(uijuEulQSj`+J^Itqr!9V(Hn1FtrCSKY&nS@k+uwbHl-MK_`1#C!Ct$+7U(L0nS;}^o;cmK} zb*5$3UoN`d=*6x9=cnAvgoz~5g>m9w~A7jwxOhusf6%TS7*?rDQWg zyj%~xtw`Tm>q4V-ZK`<7de{9XCnv|HcixD-p-8tjUWNtjy+z;RQ~H(*nBCxbgUU~Y`%6f($T5-jd z(B^CE=GDli<;7`?ps&y3TA!U5_0EV3d(5gcdzY1D%$hW&+gCU%42aV-w8=wM#-LlMQJSvt4y;7mrKN zxRAkjqmac^=!&1xik3RsG`D1MnBJXxm{=`xF>~GvTsok;6@x}6gtx_4(|#};a#_a+ z(CFK#8&+*x%PeHG2?hk>E(T6+OOVA{R(fJto9nKjZE$MJKpZ!K?oM0_Qmf`toSA&S zZ!cq}uEf|5q$!da%aRb)G8muz{0*~Rtu&T7np>7=ePer?6z*~_N^BN{;f#Y6Kua6< z;sOC&mN*K+930&qrw~L6rR9id?GPP@@PH6}$9O}^vJ}eotvEEjle@#8);CKStLNl_ z$0If<0?}cuacrOd42T|tU*=6im-b1x_57=mL-3{tq-S`rsW6?D%0m}%G4DCG--P?7*90qBYCDgUF(rFtg zfGr+T;jI~nIuW~RIVIgGrkgU8$yILZvN_m6>!_|wxqkVX7a@_n2_TYZP66)+Y3Zq0 zm%b5-sS`yjnRtHgH;bH(+zOV#toP>=U3>O%4c@6i%&ftDa@#6Eu1!N-bib(iMWc_nx`W9 z2*mWKxzh&G)*UID8ggE}6l~(KNX%vVT)$yGIwW-P zDsWr6R#wf##6+*tcUoGS$vCPFvRwm5V*MS7IR*MDTWbPeYMUzWmM(9hUT<{ZF93%OyqlSur>5dQVa8lt2Pxg(c<2bw}=D zMJ1)i-K7P;$h|6*@9Sms4U@Y~2xHci>X_iaz?h)GmXz~uVu%J1DIfqhg%hIN*ajf!!m{Cck*hFi#wIF}~bhmMRFDct&tTFU0nCaR} zIIiLZQ3Twamopm~=VoA-V#>CeWWYEvC6s}{m#T{RkQ-2-KeIs6D#n5qs@ELll&54G z%t_>S_1mI3bOB?E`Bsqx-ZtR&cm9JHuDh4uS0Bzpt0Kx%Iw_|-{pq4q!p*ui_@0X9 zkhPKkO;M;AIA!Ef0iuazF~*FX`apdIP%ogRRhgkx>B;2=r=`y&VA|?fphIAQpIHZH zZE&0iUU>=;r1h`AyUw@?mJl#BE>^s7G{1CjEx)XM1uh2Bs;8isG2uA3isb0em|xOG zKI?-?x7aEnkfNf%+2f}CfFBo5!y|wAn{oTAE)}}wcDb%G{tZE60hfEYr&rla+O%F; z>XUr$;=Mth~am9x4KBL~kjt1Ibi+RRC~Z7n;u&9UJ*@eQ*;c1tQ7L!N{5k#}%A8gqB8JYRF?esPJH2Q+xSGOCuJ| z@#W<2FpUAppStmZDs13PQ}d5pC|xdIxaFuY=Q!9+<8Ybu_4i4@Cjp-XYApdh0eq#&OQ4zFw0y-U0iOh# zgamx=lXalRid&*KQQCMY2($nPU#X=8_U%V&+0oTpYgs>n=NEC~%CYoaRu!h68^e6Y zp)poM+@xxYu5*eD12&hw3TQc?7@lfx+E(`6&5T6lrmxObRdh}uk3NOZ6ly$8Rk# zIi~Yi^b4pcCGg^Gt9mnssN(0h$GCXS|-kit{rRp{eONOf9ah_;ke*sM@Ru+=2lx%pc09;H1Q|q#7(RYoP zPe4TN1Wpjfp%qY!Nsv@Z`im;)Q#)sSi%eMl1wv>|$la=tz=o*Nnh~uAJmL68w-s{= zXxW;%!=!ir^T^ALMOJm-kDXgUl-kLSR6jgfx;TlMQ!s|+w(C^=_N_TuhmkhRtInyN z03pdxV;Q}c3lOb95Y>o9=ghUkb*>5YUA%Kzmp=Htr~+_Od#eYzVeKsuMeIXhNcGZ< z1(fm%T-J{oPjl|b&SY$!RQ&0j%MBo@;NsO4>8!F)MSIKW_<0s4wh0^TBlsvhXx!oSz>>AS6YjjG)l)k~bO_$1(y zKvfdhixS4(@TY5pO$Jg`OJBVQ3F!9X+Dm#kS+gp$(WLy{i>=qj)NWqYMjJ?>4X#c6 zKA=UG3bxq3_Iq`oc5LT7>aRa%U3FvFb5((eb`IOleyY7-0>e{9rL(Q!!@-yB=jpSm zwoaN9vqpfzC1+fKle3OD?p>|v+9uZ|K|BI~wCQ)s)+tv{^Qz8Cv)qhSM31vL>2S7p zwz0={3|ZI68tL5Q&!8oWOV{o|i28V{Gx8uU?mDz{yVr|%rCh)4^a~hZoWaBizPa;Y z>2rRnjsD!nV`UYP**^fMnV^y}RAi?TX^^%Np9#fQS3#$~;*)@v zNI*CDsvl8aA_OmB)Ac))7clB$@c;?vh0fDU-~kPN6^%v$KAqN`s`SREAke|wFgZ8j zbvJ|Ok($h#W&^!3!oQ(aBQs*5)6 zbGu{`gkZ|#VAfEFKmUPX)!~lm1Aq=!g1-Jf3HT(?G$o*yx4OUQHceSIX096GCA~3= z$49$Q0*y)nzI*oJtE=MKrwxu=z#>cx8lPYfU$AvIf`AdZs3=CrennOdLIWDGXk)Ck zax@mvCJPF=i2ha(?xgv&3q^_sY4bIYpA-lCps)re4USa3Dn>Q zc+~SyLjoKAR#ij7e9e3k@JXOfB~Y7}nL3@=H`tMvz`@_?k35Y&3Th<**DHUmy7(Gb zB?0c6igz+Yl^|yIDGW^tTRskyldGzN5SrnAn#1o--Y`tRCd^ckf1KPS` zmbmw+YAmyf)jZtbyZ5PzTH7a&slmVdZITH}D>p$)tEX{1opaLUsZUk&*R)=i8M*m+ zCSb6h^$Iks?^b4(XXo6NkA+IvR=);yR^v$@CfKvU4*tniN!h+uG7FXhXA5-Fe6~1w zxAfR^?w>ku+gMs{o%piHR>roiK5dp6Hup({xzP0K;hn?S9zh9leCkHR~Ty-=E7!#1E;%r~rajKg`=Njuf zMPeC#T-#8 zbIql8I#*TExt8o7#yJX0i}BJo@6%0+8|{j*G=}Cd7BLm$sE;y+X?{D0#upvRvSjK- zFL|qO?y6`ypq}Jwto3OdaMhE4WeV~fX72LC!nI3r&f_Kf>0G?M8lz=_6a9nTuv)#kv(H`&U>|6zy`@t<0}S`vR0`ssG?4?6hCS!ookNZ3i*mZ&7o^qI#++Ia~-Rg z^W@#qrST-E)tlB~%ABdBlQfeL(NJxn{FQ0W(98^9S|`?x)XYJ;tbFw;T?wet+O~6x zXVr-|=}G6*R)6BF%0eF1ckaqX_;&h4_VwRyZqa0Qt}&~UdzIrikrO@_uqL9&hGD~d zAH)qKU*9Z8lLQ(os(&=eurbi$0|6R?mV7k&B;b=kgGr#`RZkE=DFL9C+-%9+sG*A4 zP&d?M^*N6isTxPAc4i|3%6&6|o~_%qq8WqyCMR}cTI>)L_%|~r3rp9oKtUO^5^2NR z(gg&B1%@!iHn3pDa%NL1Lgx;hOn_Q#m^bg(inJ|hCeu}7LL$P0LQ%wx`5J;GF;UUj zwqu(CMxuEf8x`X@&@cJXSUH7xSh0Q^)@|8ncoayWzm=QTA}2c=eoXnElGxb*4NAMN z4gT^CYmk+dY1+jxzD{)OD5eK5ARnpBdX!I~A_N^`;}IF&%JbaSO3dw~1jy2y08^Wg z@JcHU0Z!2&5eBf)@tU;t$jIDDpkc3(L2SGBOgZm|+@gGJT(!wq^>pgc5$zZV+Ebht zy(jJ^&{9O}t0ileVR-Msko@EdrnKn-YC_0YdPWA;tY3?$wo&L9muP@DS!yj_y$t2- zD|y7UY3C7)5S<&gq#Cd%A~f949M2d{LfL?p)+IFd)+7pz!^GG<&03k^f( zq|Szqu#hlh)jrVI^j&S)&xjNURpm|cT3l< zWR|Z20y-h2o$Dd84YpoATtS1Uz!xo%nv%FPJ!g8n)!@#F$TB!xnC6 zZyWswv?pkztWaYoe1*wt7BJO&J}ww^GX8wQ)mW3d4*z_A3|a?=V!_r8xZ%X}arLN+ zv15BC9{OMmy0+_p?S(mbd-WVVb;_mq>+i2a0bOXU<(JlyHu?exwq|U@!|y$Z^xRA& zwTea-K^$%D=PX}~X!5W^MFs5f83Z?#-}v^9DTf!Sm>o z&;_a6)6qAjH!ePTG{Jyfc;(A?u^??V0{1pIfYg0g+={jltxcvU`{SUjQ)EfAXzg-* zJb4^;^;FCEMkr>t%X}KBr?@bR8fNPG2KYS{5yN>_> zKmbWZK~w?pVQr9IT8LTX^Qyt8;qO=8jP043cxvn`*svoNz2cLxK5HBParte=I%?_0 zRe1i>*D-7TGOouwJb(QI=$+i%BWNWVOO(SS;)_>s*~kkq ze#!*2Z`BqL5kOk8ZWSJVZwyWwHiDo6-D;Zq6GYm9dkJ#%o7V$=+(fH5^&lWZmMF#C zP`~!g2MBK#fG6*K3aJ@evE|LDO$?wX#=eBJdmoFNFTNfNRxZYfF@M8pgHEL7Nqao} z=}UOT3FrlM7cL z$ycgbxoM4wQFH&5x1no%CuHa55YP$04+PkLTsRFM-v5H3<;rL7GBP{unBxdWlvjdc zMo+YmYeUfHl)lFzb#p2PC-+8tRIEvrF3YDdTK_yd{R4b|=bISVy)XXwe|KO_`g*hr zYmEnf{S4FZcn%$DeRJEt@4-yQ*g1RnsRuA7>!jrNiI}>0wsHN#wzbIOddSJoMaQT( zT66`Y89}4@8VG-E8H68CS{2H(He-d|I zeiI&l{b|ftJ{LVZcjG#dJojJh0;MEeQ}pNJy`gzt(vC3NRdhaM@2+ZttOK`_2mmn%Q7*Qd?IPJt?_hs|S8i4=US9eg-oET_NQjO?20bej zilYR`drEgMQHfY=H?gpUNhcfEks3oqOWMMV)cmzwg6{uKjV^kTGZ! z9cet7lt;)Cp$E z3+wrF@5PAT0~rZ%accL8R@R4-0==hAW4SN9(3dk)L18d6Xcx8iGan zxNYbaIB(RM2oF>)sW5_+WQfm*^1eiMS~-V;n7hY>&asvO5gXQHc-gNQc6={}ceOBb zZ4wht5X;YmAYRgQ1e(V;B~avta|VsYtY3b>){Ha^ZP^uPoHP!Jaj~3tjS%ctehwl} z&Y%Y9-?cloXYN4ImLv@6(aStfic9w3r&WtEtor~oij1P%fYbVpY<*=wltI@vAR-%~4+-GLaoSC`K zbq)AqmRpL$6KFJ)DbCoSPn<~BE_Qd*MM`~<;IzP~MY;KI=prng3wdk4X1tLtloz9Y z8sNj)j$f&X!h7aD!`5F_HkR??fq!i5rIbzkWQgko8q zB#N&$FN4CilBF99a?YowH3N0CPz*dBUfb>_W|1aPsJDj+>4yJ32Igx)fDR{_wzgP4dUnkEK5t+CPfWEe5xJcC6ECvT z;-b^ug6`9Lax%k?_ zKY7wbKz<`LZ-0t}h^zn6xmC>hb*F{nxjrJ7(8?OJ%_+L)vi=N= zXe_I-fwdb)x91TA^TB8jacRv@J*#OxAbV&KGE+cJVdcR7GX`zpT+$wv%f@Ts#O#nS zU&)1lUN6(+nDd{$z43f~i~FhAfrN}ml)10mP}QpDgIO%kOL;^Gubvdxe&Tu<4wujN z7)|ioaTNbfRZ?8Dtv`~HUU-&dQTm9m+JmL z8pm~YUGnr~X%Avx(Bbj$-2}r|B8#=nqfN*FWjF&h;B0(*B_-%aOJ_Fr{f*Xkg02q! z7wBb9O2A_L=}9xMO&2k#zYnRV%#iE@lYvbFxd*Fjt3 zMUJCNL)Xi^6hV)h@6a|_%Cw|x2f0-D^PG{Qol$MYF%m4rX`0Q=l4Yn>r7Iju-rfTq z=mKu%*+KU=gf%0h+##A!Z_~@?nrTwMw7BD|p8l@U@tIabwq{%3^b`ZByGzFpRw-Lv zsvwZdI8&+*gzvBwudLq>t1mtO)vP0Zz9LnKrT-GnpM&7U?MwlcxXYmXyIZq5W}+BU z(%gn`wDyCjFAv#)iF^1)h&qw#$&n&p%ckity%H4m=(C$p-Lgo*$2|uVpX#JGW_KjW zVvzi4cBf5YwmL2qr%{Id>fqHk@g@As^Nlqh_^y|iwi$^UkjAXl6w_CrdN@_3h$hzT z6qzZ=KCrfr9TgWfP>)EfIXlEI2i{R%Qc{q7%kPR+`*hfoufZ=)s6{PpjBlbF}!C6;oqFulqUk5)ep#P2bc#Qn#m@%13~65?vsPa3F@^}y0W z+Sgc|aJuq)WqivV2>otWc&3;&@c^Z9UOz&YV32eN5Mnp8mw<$^zME*}wNNYBz6LM^DF%IZvA@ z4;=ey_|cabtoAUXo37j<#@9bFiiyKsYb=gwD|hXDhylwH&Xv3&B^@c?Yqq;wJ7~Xa z9-oOEl3Lc{rNYz-lDSWMFq6y|!_LoX6HqE_D{~RB{D8vwD=Td$O6$0Sk10&9ECwz~OL zz6(gjMG~%@x?;G!s;DaaG>E%pL3D+@$#>3s*nEs0&M>-X{rYM!fX_7pLq;?iqnMn> zqz<&dP^>44fr&Z1!Fa`!9bM={L{y?!;WEQ&4C8mmUx^V(@TLc-{22B3kcCePR~f$I zr2H%R8P7@U7j(~~&S&^M>NB%0G8962e0&5hVlxtQjP6kr z!ykd8%pV3vdZAVhMCu=`$!(XdyP0CODH-dix)iEkr#RYT^Q%a+0i(%m`!MQGAEGBG=~IDT55vZ2xbLoPzol1F{`L^>ZhVe#Cg1-S6N7m z&M7^m20+!qW6N_Z`m;HUi9`|wb-#S-$2voV1pTjex4k#S#I_sF-;I?9^9HJ_s_a&O z*u=+~>#+V1datdGzq_}0hm0a1ui=%@W!aC`?6TP@8d-DMSkoi0eB=JEZys3fw);I4 zsoTP7t$Eb;+Qp0Q&3hV6S=q1CN9(X2%RMxH4X1OR?N-nHA@dERX1g7aM|CA78Bfn< zo}@F1$_T}A9-eQ~y%Q6v3@}E}6s%6jsHdNp``8xEpt))u3C)E`;0A;V6MbrHJP%4YYFc$Bb{6idOVd5(#-3bPQF>9V@a_QXF0E zI(#_z>KF!$B-F3JYnT#nbnMGVSIBos8~y#!m~JAPA|=gomt<#vhhEZKOM+3&?#(|%^5Tv-%o|GX=%qNQKSou?M?$Pd_E^7BNuo%~8_3H)>X^fNW$AW!ZN2Z=DpX|R+TMHGlEIJ0qi*Ay>K|dou z@JJ+BmUZ`3dT_pNNz%$Rfg@i9Cna6o&zi_3BQ}$QFoJ2C4xr9rQXRD?u-y&>Oo%A2 zE$XvnW0-um>rsA zJN^Y8#*xa@pPb+He;!$L>ku7Kvzfthg8u?~2SHXtUQNIpy@qCBRNqgtkCk^9>Y zHfJj%80-U0EM72KjaM@>bld zM)13NGLJKv*z?B{^LaV`3%$`e+Pwf`xkRjxKAsrLkdzMn0iuHeOk@&dw%x%5%D#ru z06$0J<2N*K7-C`3$_e>zNFm9o;NK(lA%toU$ghna1BnTkVwt)Lj&cr* z)(%oQbFHe1Wflvt^D!~8XlHhi15i0DsoB<1PWoVWKgEyVcQ!)U$mG0qOEr*L7)v)# zmX1t4`rWQR=G^iIr}gy*L;`C!^b|eDo4Im@-lFQbyQ&bss8^NXYh$23(XbMMSOGj$ zd>&p>X^xK;93~B6GhLKZm;M%*d^c*|7jIp5nTL?@D$VI-x{F&J7~xM!noapU#PXA8BxZ< z`>?5{0j2T>z8@X0XBbU5K5mPhecMf0vlf_3=L=Jh+no&q@*A7B&ch9#C9m^!QSdtKM0i@S*%e-OZ9MO63#) z@q+X`UP>-?gb}R|`TI9`ch(8AzAE|q1>XAf-F00bo^JYEI3oyZ1@S$Y-3gq6udIUo zx0bwIx=(dIe{T-W)j!@E0i3(*0o3b)U`ThOb2qG&XpsX7nyUKvcy?KId%9V1=LUFM z@o25PTQZZHSz1-NVSid{TW*G$vUZkVO=)XM*yhLFvN;%o0b+G!TU`lvjdxkEy3S2| zK~^eqfMr%u2*q+o{Udmo=*F$E6CCJEEe5~tISh0Ifd5>IB25I;R2`uOx3>{F#UU=edjjJV!MKSkz+CP&{a9gMiw=R%@rXpjI#h zl$h_;eV6Z*4?nm$-CP3v-dr-fl7u2YWPci{))xpsOZ1UgkGuli>aiL>d$U89MCzve zsl`tHpkk+@cipGQ_tML_o@&l2?M67^I~eI&=Au=_`K-;KzBf3^1+_e_zH6YT))HN- z*A(^+5~~-1)Z7ZWs14zczoqGIe^YTwneY}PS{46~|D1_!psf@$D^%T~+c@R$%DpOH&y)tbi8q8-WFo@I@bct53n*B){ zn5r&{(I0^=he$-ne(EgW19$t&RV&+zEFFwz?lsS=_lrRCtbPo?a$glBVk5ChGr$We zB{v^5YclqjJDm=#1L$q~*sZVBa;^l%yWX8G2{sRdjr})Q6R%9<;jINRbq0qIupxJ# z$GHj`>y*b-Ak?uOM*F8R(AO2W=s2i(<*}98zou5gwr$Gs;7sgP{sm1Q zCQp9mSCWzoq6f1_PLA-F^_UZ}>Ge);W3T{3qzh`gMWwRrz2)MZ+rO#5&;z;xLvXx* ztHt^RLQh|bwmP?Xojgf9{}x!+AD()GB{=88TEWiFl+Y{ia4WDCybMZoHibOIT%Xlg zt*<%*mVb*t&qCL9JtuE1>#6NdYfcfp9%{9oC{ceF3UofWv0Pv4$@@=lXgx2=t4H(_ zev#=_Z|_ryatUZaVk7TGons+fX{Qw<>IqBOnD z=m^9_9y~RL;h(ZqFV08 z1NSQ!Z#54Z>#)mylW1z9q$2JxSZz^9mXVq0-wmgHk&w zv$lNMVgw;gQU}c1Qb8tqalad+H1OTlTR~?~54XhR(8EE_+7rEukA~Gwqwlx6*HfJg z-L=mdCX2c$G=xJv7`Y|~(Xhp(lMkEiw5g5C#!>8x`}6kx@GXz8{bs_Q3l*AH?;Px{ z!_?VU(8=@wdqC|t;ST_y&0OtJ8mFGpRFt+k-XJt5&DuXmn~TcM+EfW(Hz6Qk@X+*c?(t%)vQt4p7vNOsu19;I_qxtDv3|nis%$_H?>g?P z1(MrSQ3~DIFu6MTjVWp%iCeq9+tAg`zOUzFjBpPMO{VJ&v{6EOuh&h ztQU7PaDQ{2Up4Sn7nE%Wd7G%_A@h4mdMT0>(-$XY_h1kHaX~+D-|>THTGrUgvv+@4 zQ1`Q+xYTQ|c}$p~{4CFdjG;y@pn!4u7xWn;Cw$n_wICD?RjX1T5dJy+SmSBJOq|#j zo6-?1G)ZOxVt#(IyKn^q6XNnoqv8|fRjv6`blT?ZIQwq)xa4%-my*g|fytIngp1-YorxPZ!4!J(@He*QoHsg&Red$Dy>)T0%)F@$;a!O$h^f)*6W1p*A-JV!j_Bj4v2bC$)`csP*K=EKJ zTXCh=MVdvGnuma#+_8_`t0MA)pPwk|bsUuh+1-W*?&qnzXmVE&UUG6W+8M>qq(;oC zUZm*g=#_T2l1qH;0$y34^9}nrx3gtbBQ1u@y=#hA~X4}-m2q)OUxW_dq; z{BQ_QU`_q7+4c5fp<5qJtYVYk!+yhPRtpXccfBeeCC0uybDS1}JI$+v-v$x=sBjVYy&eV<;7ZpqG4bMU>eL_m)6(*aoz_e$g+%@QhEL;u0qqXRJ)oTe z62D!f0P#~y)yHR@Z%bEv5xf1FTT1<6Z&Q1G$(u4K700uf+JonMXKVEo<0!dNFf+M+ zV%JMW?9t&j@H(_dI*yNN%+g zY9zFy&Kqz^OZfQ&{JG0)@PZ49UxNQOh;m>gKmYugnjJ%m3;HT_Jlfc2IU8QsI-l z-)ms+GcteqY;WeCNGwX|zWmj0MQWqx6Duk~z&-IXk!i6|ipAQgd3S7m=A^uYAC;Fq zm@2sYp2=x?O1i$nWw5!L`aN{7YY(iXQKSK{BbjLtlFWJ{YK0(_ur`9O#(nG-D@muw z0p$;k@>^n&+6>gk&#BOgU2}5{h4Cnb4_p(2Qk)Fz4G0Yz?^G<(d?R%3VO7F-8c!38}^eU@BkUgzP+n|_vu8zT4X zuck`^-;3*ib{R~CY(-c~ydvuxKT!&drUEoOO{)&eLB%60`!x57h_}lIn=U4f4faml zh*JtpLJrXa6!-tAAD$d*Y%BmYKI?_G&(TA|P z#6yzMo>!8(UIdc`FilY-1gGvU$?Y`EI4L|bX8%S^=3Xod0SB5E_B!`(+M(SLyffms zg^hgQ-59A7$6R%^(v3v3Id*_bFZBi0LoX?`#5^{klpf;_=>Hf_El^qKn5*(4#v z4||rbm4~YL)+In9_-%&M$LOllw^q`!lb>j35 z*dsWe$qNRy&jT-)gs4BAq)^ia7a#KcK8^5i4A^7^iJraSk5%hSDP8<9I@(7rBoR~2 zgW-D^mKn$KbnrF%V-5%n4>gUG#EnVNN$Ho=)?XZ+vFOrxdXSCdd^z^DV<^ZM6?`Pj%KCaTS7Hu`D`Kk0PM1DuCC3Sn=d{ zT&l@Y5NnN4Qc>Z%t2tLOXG19nJd-pKt^>}))~;LV0#6lRnX~e4@8_R7UYUq4`75fb z#%Yi>`1Q`=x~b(ZJl&BX90zL8WUwL>jR-5p7qvTHkN|yOGFPo$+a* z5YJAjUw~B@YqkjQXs(%qOmWcim4x2&(@(bcpbKAB5--uizmJ$MfG0Okr$CCYB;E(T z6;y`^xv^eTcg#*Mc(xff;6n*S_U?X(WWG$wB@0G^K%xiV`wkIbr;QA-p=QTi!FZ0B zfA!lm(rW&&p44uRag2HN zKc!`5_(gJ46#BE>`GhUYV>$TP9xo>M*R+#;O^5!^b^lJ*^~@3yaH zO5Bc1Bi)9!Q{xraBc+1klPMob5-TFXK{%OMl0+5xp1i=oI~&#K#~0#(S7F!9ER1=O z`^$t>HP70WW-_0kKPZyz&v@4-8`$zWR7KSh*r_qgsSJT~8e;>AON(ln|j!H3;6kTh~m+Sg; z__l`MwMnVb@RAuwx)IBaKYWOa`YBfMj5)n=%j?p!hw%r}oq747G4D2RXt3S>E#u=f zyiMtSO|}P&Roi!cx;n!`40-DnXD=m2vfIemC@+<@-a}q3Khg&zC0}3RPS4}7>(F+} zhX7&bS4m8N^L@Y=i~&7I#j#(WZkFYMl4Ho%BT`g9=QSj-N!J{f+uf|1?Ph;%5O=x_ zw6{Lu&tp~xb!dxh6vsxO>id`;4(QqmTz-pB|IW)`4|Z|u`}Lz) zAc9KLXR8a<3+n4tGwyK5(hYy4sE@PFvHmDs|GF0Cb1!+Ct-=n)V~?cM2bZzY8NEKYFeNfa^?6p4dkNtd4~Id=CN^NaX$ z*nVIS;Zld`RgtTqudK-QlYomic&|mRE7MO_iZ!!7MYMTAzla<0+b0}j2KTMdmf)#P zzbUuo*<;f^EMcRP{>%A}h9k@ZCzLf%3idDwaY)>&SPA$!pM6U0B{ZM&F*lO<-AJBzb4UW};8veGFT@WaK za2P?C)f= zvvHE|A%I*}op>4&e-;#yoCg8 z6@uZhUZAeA)s=Mz`Oyd|Qb7oWmM*7x_5?ZN|GHZkzEe5;BsZqOu4Wip?C1XmpK8dD zlKbdekMItB33WPRr_IX|yD(*vyFz6M7^`rNg=x2r2k|;e#LgAmUeMZ`VFO`gaI@Dt zuJ7?UJ_Lvd_lK=Ci(r_$8io=GwhkY%7+?0Ug`*ciavxwB+CjFP8@OZ3rJ4h|{`p@+ z-(4Rj<__8|ws$1Y;*Jwrcuvz!a4cqd;I})i`2J})A$}hrzndphv3;+9HroqOjH4EO zJAXLAUAUc87Z~?SzvP0%MEH??!uG2>cCLC7KLGMM;P%OYp@^!ytadQ`IxVK;mC@gy zkiCuBz2nfggAJpoPJ0hWQQUdKFvG02AeQdP$JzPX$PUFcjY@L}@cvJxVLRkOkvrl# z{zz;AlzL(+-zl8-V09B*xvq>H!k_iTJHu*bw5rna3H9Wt?C~(yRl&rB!l=z9-lqZ- zn>NW}x7E{)8~_Y}DX|+hk1WiKs4?3HABF_yrE0;atc)vI+tj}`G7Z%$gK;{bKXPk2 zZGuOx^Pn! zTW0zng_>6ee*JPH2TLqn)@_iwnt#K8G*euQQAE&w8x|vNt8|!9JS;=&nc|>eZZ~A?VSgHsu3#YtW{2<%CyCb$T~mIB z2}~NxbV>FV1QOF{fbCwBPL>6PRlS>KHS}Q3?#Qah`}SKZ3w?3>{Ms+)884#TS;oK* z!^>q6O^U-bZmKbwWXy3gYx#HqnLfLXd0}Mp6K;mtY`q81b&%2f#G3pCMLX%F?A{=d z>;6vq^aBUg$M`$FB9V8{YCA+`bxUO-_lVf!QQ8v*VS0_O;?vtCFj{g>V&6T^3lR+k z67ah`Pu3h>sfAxQv0r4HybqsQSQfD^2*3Z_*CVJbabtvkmA#ekG!k%j>8rEBqSg`K z%xj6gyc>spdM^1=V&zf)BX>*{%QWJZ5iB8qEnN8m4-b!o-|o%h^>Gu|ZJJ zh9tu@6{~cN@DBInKB7>urv#~FfV?+Ne20AJTv$xonlxPgemuw9RXkFCnc3ySf zlSWq7)h=1rlm6G+qraL9dKEKgJ~lf~5mNqc%Ch7~F+_c9&j!uIM?pp5K}|!SNq%Cg zryzy>s-`<0l;^eN zhMRXB3%&5RTVxH@+ck_OvXkeEuU(voGw@!;os}=;$pzHGvfmpi1iG(%p4g2s;~;yt zi%=Pr>n%TPw3w_X!gf3&+MX3G5(!e-d@mYHLe`QEsQ(e?qrfYdenQYJl0ZevLb@JT zk!pRpzYjTPbf*A=9(ev7_XqFfb~LF<(uaDY*am$T&g~Nle<0*V(70DmY_N+zJ_d8= z7isO571Q;7pkjtPnS~x-_3k;?imm=ty{5~e>0rZ`-+r<9>AIL<97Ub=L}x}$=dcKG z8$ofM$_as3c+D|2t2;%z@o-$6O>fcW1A4%Dx3oswTbi~Js5yXb`4Z-GKealhy~)Ah z(8n|%gIp$#h7Rsn*j5aIsJHAWc=H3DZ;6PV0lJRMyGdNe27R-HKNf6MYjhb`IQfC$rkAW(Cw9JxBMOMYcqJqwA#@}I|;|_ z{fqA!e3cxjhuA&66rL(u{U!yqi#AM`KB+A~DxRM^Bb*!qwR`o~;^V@f#XXX~ zy$sJ0q1oe!Gb1<13!()E{w4ZzT;NlL92&nqY%ago&GIvc&@;}_>}_CC(uyCy#VI|f z_!>zoia}bY;8QRbYnkGzeugOO7!X_!jS4|7f}8-RD1#1a*HQ z1?m|oMn z_y*9m9@@-d?$KUD1L&s6#c}TbY?Yu}R_aUv@x{kV`@=ow!eTL2gUCFz*wADn|MO`KGA7-{;^)n0ap32<188=sXqaUJ0bn}rOz10Htn-juy|}%si7Vw7Q9tkF zQ0qGGr4W_YSdD`(_`xWSMtl_+_yX1D2lI0`%uE=W#71qcXBXS;Y;MzRiS*xq#@I)f zp5x!Dv1nEpc$b=I1F+w1F*0hE$AiWdZb@S*Dz~5{g6}js-?@Sc06DEza}X%aH!5wT zQD`mZbIj2Q^GOozDe8QXwM!k%;din{D1!&}>!@9%;O)O()ED;DXf~;uEON%=L5**Q=Z5TNxU%+3ExYpuBSoxpL138@RBBb3AG{J}#Lo z!y=7}rh!*4MUGSe^GwgOvfXf$tqeuRn*}a1Pw1Pr}#)X5I zt=D&Xu{3X)tsO-pYmxxaXId&FUd+GbzD$pT&Q?LA8OWswjM;X-XvOs= z6M4Z@vb=DTa{9$UcZJCr2lub-J|)EZIy z_h*agI;}GuOwPvf7aNbX$&r~!ukW>f*q9PHhyK1wpWYfe;UK@5vGK{W>DB8k{-M#P zIz*{tsx(!sB$`Gc0Nx?I$y7@uM5cE`%_3A_$gZBwzXr!}zHrF98te+b++7I0>U`8L z09;#OATa4bJOx)&_PZo~HokD899cx*YG(T-!4B|`mSk#1m>xl&=y6jOf6aj8sd%g2 zq@0@{3&a`!3l~ciL6woi3aJ!fkaR!FF7GJvmk}kHWTo2lKkPXCvCm;9epPUX1qroV z-bi(kxGEi(AmA{lCxVn3wzP=bo2UNdb8T-Z-X9Da2*&Ck=Wq3_J{2)>F|+gzRV}gV z?=B7Aq=qfUB4+NQ!G-WqZg=!x*2Nb`Z-zXo7d~SgVQeEnQj&C`W4?WlQI#fwrWgy# z7$XgCvHzl=1C_#W3d%It1dbGX%V)dbbgICS3-)PxIfL3+G9_FZsOZp_^4TLqUYg#` zyRdn(<`cz;8Xtd+zcva?>yElSHe&B)HWt@&%REqtG)QM2Y z&PSMFN+_q}DpRi>CFz1X*b_;krzZ3pc}C5pbR>P?f7jn)7%yRNVHiyUoF6TBK{C12*Kgd$;%b-@= zGw85#4~BQvi8O;3J*h|zkcd0^LHJwkVYczbS?@M7X50p!w&-~%YP9($ zQg>q|wosYm>nA8!&!k-#xFJiAb!g`gl8C|47G|G^W_nbH9}|YhYP4Cqe-DHu=$WR7 zr?@4QPRfu<4!l<1dwP?r`*HHNtQI8oDZMT7Hud(bc048RDRRdp`0Xd}Kd9H&1uM7Hy)Xw&`4gEXrKd|AFu< zf-wjQkWyaF^f1hL{ejO!;Jzg!+-+$C569>s1Vr#6@(nwV=9}0!yDunG*@o&WTY8%} z=>Mlk3se~GNSbG}=_*zK9LOSbC~UW^+RfLe(jg_J8sdQ8EEf0gLdypf6Z=S|!WR6L zdPJbwaWZM#y3SnhBbYnPS}6plmnx%{0|5~mTbz_5D zfF;n!31K%Hsa@cr|% z>j=ApowzA60TN6H|HuIcxw^{LOw0!c!)ySY3et~kcHLPl{q8`=#I~U-)NFd4bwl`F zT&YW<<3H}N(2sHZ5b3)apsVEH2~8D-?VkNbeEAOR|GG!%GL=H#X{v7m_moI5qR0#o zC_ohm!{g=Ul~H8=U1SaIJTRg+zw0iXtH@q2`d3B)ntygdF6xr|_YO@=hQb2cz=Qa< zx0NN|KX}SLeOLbB()+JLEEr*2!0Ua543Mud-}gHpEThBQw5=Xc@^Qm$USLI*s}R8e zP1|TlK=8;|VPRZRZs$4d^&g)tZS&z@o0W@kq5jW{Brw{yH8$t%0Tdm6oEog>B8Xm~ zjlx-IEaISpQz*+6s*kWd!ZgQ_gAm6@2U-*uN0R24cJykf8Lta!?GZJO=Sw26~qFW_RMpfR^&2t5;D* za?L7sWgn!?a5&L*S&BWys>1M@H<~c9AJpp;>)*nkG}ECdugI;Y&7Qy11-D!)e!R5x zE$uKMzZcGu#DSPqPW0f|ZiFpv%H=QAe|_+*f%$U-?sspLUxcvFG}+D4P2>oSZ~T^v zz>-0zZ8hZf(xKmvPD~6`6a>XIH}f|;Y?9gL1&M06mG7o%Nbz_f7KOr)U!X0lMdop- z7j}*{A<|Iwo=tlGi$Ly6mo`le>FIK;E()kQrZcY&S#-2;N7B0!n}wQ5uT^JL$JCnA zcT>!Q9`iBgd&Egk6g_$)up8G&C3dpVbHX0g3S64}@R;&<`uhUG?tWlsHM&GRQqkd8lM!RBJ%6n)WSWk0 z8fzyp@S~~e62UfJVml2y+Uk`$?|@Lfc>GvjDDH#p~?zd!?}e2lVbNhXw2?r_2Oyo|jkp?7w7T z$=SJT(*)&zh0$baaJz4mp!%hy6=XDfb_^vCO|$}}#@?k`K0yM%n&ukr;SZ#O0|n>n zDRbI2%4U(EUjeCG)x4fXlBm`$;~$2HoJaGPVRaIMu{un{_~9u9Nd03o!$lW*EL76o z+Rhv8$#Xs)6$(zb~;yRp@KEaTA08yk-Ihz04UHBHc4p07(Mh01-KWqxF6?egm0Dg4?l1 zBYRQUo;Agny2GW%+e?1ON1a1+B%O71xVS|5I&9$jp3B>b6^xQ`ud%Sm_9ELUxOY6(Gjr4cM(~O( zw`)kHg4X7FFwcIae=m0ml;==?wQgXdy>-QKcs#aq=i0-r^^ zKA)0fR8qsrL?2z@P1mBs4ZPa^e2^-|W6djnKI9&o)8*~`o_?HFozaA%Xa0na;P)!4 z5@lD##{7mopofM>9siq(;H7Gfvmm+;WWT9HfRvpu5lxT=^rVYb`5)S{0g*6ybjZTY z%q{!2kUl~Wc6F7Un;TnM$(-l4WSGTokH3FLKuw)UN4LQ$BO?P(Q3$@86dIEI5RyXJ zYBT<}6hTee^O9X8-I2`TlKQepvlSs7sC)Tg`14&#ho|PId%co<+BxfuVW4B(DNt{v zoQr4^l5^VQUXaU07ld&pDS@M%owHAjl+a7L)LC;AYmu7*qB7R^*>Nkk$FW!(VBcu=eXK zG*^584pKCgmZBopaOG;mzHmEvDvH7dxL!EFl;1bKGPx}RIjTziHvaL(jy6ZWzGDbk zMJaMf6EFU|!NhG!Y~01%oT)-YF-LC{RK}##j(D2*%QKt%fu^|c`&5u4>TYGc)WfVu z=!Y(E0?jfPFEg;kt~rv7Oc5lXEyN;vpUYx~9r#|z#^%=} zwB3?MS%tty`J*AhLWrnlXgPe|$uCzkyFh zyG#!L+Km{Q8kfP5h^?vHx7nZ7=@0Z!U*^Yn9sBz3SkpZje0M>wK|<7>3wT|GKW2s7 zPgCZq(Y{Z`XYOh0QJWPKUH9@bDA{CD-$UoDRAZAmCEYq#fr~M;u>_8N;DuYME2!B) zJ}UG701`p%zR$dZ;sPTZ>BM;JkWP)Q{?$)F**qzs4n>3JjEdz$V;Aqzylj9{>Q;RQ zmg$`u#`J}=(Jn3#eUI;2E*+J9vizBIxT8qIEb{2l4d!`BaFX#M(5h7{b1ft!geZC; zZoKhEbn4Uz3l}cL(xpog78Yg{r%HM$Yu3!O?BbX)W1x>FqJ%HNs4=~S;$mY>f7Sg* zlS}lqY}wLGY$@9pif&Z#Dg!AYAprqpUmCu^yIzu8Ggp-_6{~N}b-jcrJkytoo;RB| zZSontTYYC`Wf>q|_qaV**Y$4slox9A=FQE^LtW?D@~0nNl#5T_*;WqrT3y{*K2uUs z5FH&2y_5J_5x|>~k%7d-#5%8cU*gryV>`!_lamcVqaRg|w8)s>IHw3PVG(HBBGDLK z)*Gm<{xD?ijkW7GV(F@NxbM$5(10&CwoF7s_~DCEWvtelU3oO1(C8#oHH7XO6Tzx{xo6al!K9u-~Nb~NV zWS@bUGVK$5xAJE^dCfhB*z2CX7gvp(fH8fCVDZ|O`0p2!k&%^wYytvj4;X_J+jhar zUr#|qU??JjLeL=4A1}}T9G_2o7E@+@hQvlquxit9_-54tOdNL^&KPnsLTHo=3=;6+ z@mkVQ9#Cpk(mFi(!Asb>Jr!*lH^*NtyaCPPnhX@@Yx$!y?GdFy^EG={A+8#8F2?pBVcsjY6Xg5P`>){D*`Hx#$DVlL@;l7D zc$<9nlVWGrrc?NPjO^JAF1>}S*`Xwb1mJ3L1n z?kX(8ysc~T@VPeO=>H z(&J(YsR*?B2T@-!1$R|M}ug z#Q29G7p3^eCDc=T8opbxfOGj;0~WnM<4ctAU8Q+^Q%qYj2iZB<1QJic{PoL`$39=2 z_$0C!QuxAWZ(`|&)dp00__90Dp+#G~!+R+$V>@CaqVee0lX30|L-3aiZoneyY4(zN zNXyQ^=RbaH?u((_`XMo%bIwbSmQMjVQ>K54PdOI?>or6|qXgVc?=a1WXFq%u-;y>m zj5B)=$1UevfjNs8;k#uEaOVYoqDN04UioT@(Z{&H!}0WoFQYl<_Zo)aeZBe@Jj#20 zOy84?em141peVlpAN?@RJadMg&<`QOAx8GUYu8eB^xI1L2~0P%CY-{!Vq#+O$tR!S z%{SjfV)I0VhliVey>tv8J{-?J`z(I=;Rno^F$33JbB*x`nmTnV-hKC7(}(v1549?N0P zF9##?Y@h>!v2%74G?3THE*{HEA%&q)(-wS>)B2CZLuda9Pk;8B`7wQ1kN&u0!qvzs zDc}#~MFd1t-{X~aMj@2}1*KXN}=f8Xl13UM^{p0_HKY#ub(&=r{ zprO1@JYL2g8J6)u@0Um3_%{KMo_Ouc}w?EFL7ZB&1Lw0H-K7s=S@bk*Wm^kI% zIJ4JqJa)}r5$Yd=eD4XiyK|{x}0U1oNJ}^+7y)(?jUgvb_O|Vi@vw^IH>5BJat!J&yGRMHUi- zSg`CDJU8Z7M zfR6{R`wKp~=fCLG>Nw*?;sk#zZS^@>cJADX&1qZByx6>TGd84bLKXoN)o(!9>9y$} z;^f{#@c`%C)H%~BuM$jW$lCYI7vTBZ{((EjUunQO$+!G5==nqW-uwDf*ju^>4`2Cb zoICIoQs&vYIc9$j!#zL!;cJ}MZxkLFe=VN={0(}66_S=M#*;{OlT(tBL@=n7 z-bDs5b>bl2L>|TQA2~jX&eT*MKC4%+MtXWWuD{`W&%=&xPI-BG7(aeI1`Qeng?Fi5 z_wLYa>Y2|3KgvJLg7890IIXxbFFE#z9sZfsf8UFIl$&JM!p#Oau6b zUw$%1`^wGhXfWp)&lwB0N!ki;D`r&5;+0Er-igC;KF4p}xH*$*2b*~+pfZ~P!vDtK zfbqjl#)$3%asJTLkhwDxZ~r=*o*7r8YpXWK154pXDgr64JLxQ(H*y?$lisoMZA}Q? zZtC~4u0wIn_)Dpe4jA0JD?Kvk`D0q`$Bj8dw$Zs=C%n0SF{XU=A+iY|$`eZT3m}w}*(5GW(jPElFpV7mlUE>x8Alk5F3tCZ* zs|W^d+?HbI!SL<_@M~rYUi;)NCMHj(cT1GHKdqb$G5jN0czIjVT(qmAePaC!-DNYd=jy?53i0mG3&Z>@Y{0dtrB zi~;RVz{p-h5E&9~#%~f6ZRql6Tg?xRB`+q;UwNZkl`XQE^Dxwi%x; z`JNzPAm%NekM(KEcxTOg6H2CediQ|SaMc+XvHx!9me?NK>B%->*ce=T%DHHl&;qw# zbPXQ8{?7!KTADCK@9z$2T2R!loO72BI|C=QJ07vT4+eGZZ9>TwtzC+TPrZugJ2Pyn z2hQ$31nV}gLqpDOi(rZm@g$w-j%Uy&Zsxr{rZ4aHHXRWY5Mub8cp1Ie*w4rw199sG zSK^j)uSO*AX@NlAbg}bFDU}lfMpDF_813A-v-vowyX>;d_8neu!3F#Fh3GbI+7$QQ zci+Bq?#?kR0qWN+t^|BV0&@0S{%6oQX3E!|hu%axCcw8q(XpWBtA z0xdf(bfTiXGL4CgKTdB;OGk^urX*VL!hZw; zj)WWKHEG6hpO~mGM~&Gj`7vJndtGvb$Iu@yD)zESObjp zR@fCiN%9JcOzs$Yh7?mD;z|9|iHd+%efUw9?diSr+KQjhtxYHV?aZqTFqg`3v|#4w z8PT&J{ul5!%wG5t`aW|rUODpyoH=x?0T^UY?~@lP)f^}+-bD|hT;sKrOW;LzdN6bP z=)G3?s1q5Aq`O?ep^ChlatYFOiEo9N&`1Q-Z-}Wk{1c7ImvrXrU-dOF<%QEBp(R=; zBpN<)C`VQ{a#P5te?xzUR_R?DNMP8Y+St5Hn(LaI9`7!jUy8b7w zckMMEV;VavuK@Kaf19>OJb4%CN7t3FM<3-g(rlB?l~c>)93nk?cuo1bR5X(QYTJmFfW`rAaZ)kHjFM zc^+V%M9R9ZbDE6Ky4rWkF)RUnleoo|fR9L^Dj&Q)BEnk1ruR!ttsvSZvQi}A>b_FM zcuaNTKDR4J9VIl7{Q1tO_jF$=dLGDD5$MyrSv-DOywtFsoU)b1=591=lHd`=QM?Ol zj0TQy6Ln>5BKEKSdJNsMxt3%>s=kc*`ZQ{p2F6^Ir-s0gvqzka|1jJrl?i>Km8rk?TE38yDZ zSN8eS%7sWy-;P)53A1W@%Dy?;kbNusM@6*A@Q5wjQl zgcrV@Vt_SyXJrvk{D#Sv1vaf%zZ#3PQxV9#WbIqFW8R@fShjHubKC@?ptK0t`GqE_ z^KaCr5`}*~cP9QbbFxVaEFs$y)+p~{goHleMMh_f;pwLi5rS2I6 zF0qN`r`o6}T(1#jvUKYPCUq_}_tj2@Yn4|7R{HUtYudOOUMJ9+nz@~01yP1OP2Q(2 zoWIYJUxjU@Q?8#bp3U5AjSQVDw{7IS%EM=~r{k@K3~S_^*8RNSy-u18SW6m}0KI8c zBYNv)a-P7nE#$nBZmOzOng@_2u)Hq|-5|C&_jOM7rBtgNThHAdgA(8*b&D$jR|2jC zTnV@ma3$bMz?DGVl|U(%fDfbbu@8)>yR7cxOs1CgbQnH#FrNAEBy8B2#5^`x7&Brp zni2pK_@VqNhgV+2EH zE*^6>GHGx=F!^6-AJv2jb@!ro%Z_N(yd{B)KiX0nn7l5q;|5F$O$2^P%hT%7<^@tWl?mL8J0a#)QJe@vpjK>ykdLjZD{+AdNOYfRi zNXboSn2GBg$kVg2Kaa>#&O%{v}Tse{2@RyJYkP17OZxJQuqt=MVy$PcUbdJb+5;`|T5p=ALvYAWj}Qom;fWUH`t{=eqjki1W)H`YFly3f9^wKcpP>SM7otBZ(|3KHVM?Pe{!OkFMW9* zj_NZE+X)nfGs*V#Awa-#tUIlE! z#tmrB90zjq^_AkT0_Ir-Ouz7X%mm-id_I?z)(TGUDqwX}-}ZT48LNP;&De&aU%!ec zx(vpJT|KJ+SujX*NI%}{{ors)DLpR^W^w3UL(82DG>DD}Hub%1+rt_1sOn}h#Aw}y zBs6IpkH!g&4%_a?FDluOUp;HIx|LQNQYemOC>uvhu`5(cxl>HI7L(Fy*>{0A0*vHA zVpe)0@MMxbQ;3B$j5Fwopm&z0agE`}Wv(lFmT6un+(`LowxrVwgGp+m80Mug8zsxt zR%1)QGPsrRCX|M!^2qGus!-8P_^f5#Jxi-=S@PXx$!i(a%F`mlS{^euKYu?)G55|W z0#yP40vQq`-D!M%j1kVh#ZxH5#l*9o!3xXT!j-xb2xcg!k9XLZlqlXLn^GF~T25Vp z)iUc>J@IGUbMZ|$v3*x4>`c6vetF#%Ev=rBm1#Vl#8-*o*&jD@#j^n&PsAx)g-QC* zlHBsRkeoDPAagB=KFLVlMP{jTN58gz@utung+FByn2`6B#*xR5cvheC@K8PVEnO(j zlw_tP&AKj7MB_`gYNIeI9qYSVAwt^M7~)-em$yzda{y@$X%1BMj;`}+m%3xS>9SnfJ|YC3fa?~lsp8u>R)}j#%Ps0 z^(`4`RXL3(fOIqGbtuCUm4iq*vOI~MVdQ4!9_6Uz*VU(r?m?3vo3d57V0m*+_0(2l z=pM}Cy|9CPHf1=M?oa7Zvfa#_TGDAeL(wEFft8wz@(hv(mUO9pG)5u4jX^MxhM& zu;4IbI9t~fC4x&r-f_c8Ugkd%`&;?{P zi*H0wpw#rsVN4MXmJi#%#uXSKKJ<~1um07yvlzM1c+X@Wn^(V_V!SrmC$`4SMRT}< zS62i6hz@}WYOngvqC7E)H1dt8cs+piOo$hOg#_l5X~rM73yVGU%A?98mSzVASRqXc zl~bSI{n|0ao9cv89*yH@w3oG2eE~}vS9GaJ29l?|Su_`vYe+?PEs*1>U9Eo0yBcM?q6&;HnX-D8tY;=tI7`=0B$w+iXFvpbo@zi8x$G#FOt8dLs z@uL1D6D|EN&`!r@PVxtA6^*G9$}lloU&jLX+O=qHcr0(usg8=dcL<0D&mE`Y0a5aP6C>hRMYPy^UHbx!_TB5OBsB^|)5ob_PwUG6>jFTP zFVni);{hHrb(d+EGhdZ}9>8v?`w}?N%TwLw-nTh)bzk@N?>@IHN2dk=;ya)9`l*~= z53QFv^UW(pto2vMx-n2`Bsz;Ryq(wg{(fENqw~6|Swqv=$HDgXtdr5Hf6lVoF_!8$ z$NEG4GF~*kimfYfNo}theJ+|av2+nb&eYcX`D*Js$5&4RwGLF&j|}T5CMLdU)LHmt z^%A6I{6Blw0a#U$wLgTALJJA$5PI)bL_twOQ4|41v0*_`T-V>St`*zruDkZNH`KLY zM+8Adl&bV1y#^8j2?R(;NJuFE_sx6ra`SkPUXwdY?!9wo&YW{*?t6E>cgiMQ)%{YO z&g@GTTnR*9bj^Lo5PQh4$_?jVPV1?7T6Yxlt0@!j&fdd=4I@KniScoIyTmXiE&13OCqR&A4zAI}a zTb%V8_dsK-Z?{&b8=ywPg`Ko4%>x}RAHm1kiv*@o?|1e^bej^mu-C*bvi%N3-+5nS zoW*qB%ETmaAkdiF#H&8gJtwWhIk!9?3)+Xn&#BNy7CibSaCLTcX3GVDj*cE(Dy2*V z?gvaMo6y4$$6W)5p|n%5i(ahV;%dOvKq=9{DU27KOfyhOD~S+peii$~l;ij@X*PL2 zWgN$WePbS_6S01TAduce&nDc*~$eS#HPQ0yx3Sn#M#ImSt%iVmwN+mycl1HJ2s zq~tKE>dD)Ylt5sQ^rYB7CKK1;3UDM$9jCr_-2~EcAQq%6{qqM9RToP4Fa2P*zx5G_ zrdtrJI4dm93dEC<&lo{`InxRfq5$z=1rj5!j>vxNDf= zet)0Kx+ieJ{^R9g7X{f4G?wa=?QH()B__aepf(3PsDKLv{8eyjTQshM39n-SXayKn zo6=frpyq=`LInaUW|6a49j;7Yi&O@CcFWPxfC~T}9X*x}Do653TQ)T0N?D3D;97>1 zqRDhcaW&v-z}0}OfrHk7(iVGMz>a?q=p)$EAGCZYdqZt{D-bx?!YoSnee@hwr>$ic zs-p-NkiG(Z&tAF!Pk#O?o?z;4fj;F3u4og!GA#v9fB7cvfA3#do1SJeFzpwp5YQ1) z0h^e?>96lUgAGg>FF@#Etd`6MpMBSG%uj#%#-yp&8rbi6`nB*fKPdq;vWB{E z__J6ztG;}TN7X=AkOd4~SFEsKPizDiI_TqUMH+8(pOckiF>JFCQVEs>I zy`8@qOXgzL`VeOa9%BDicGga%wouY*uhDQ)7;eJPz-SF9t}Kp|ai z%5x(uFhJ#0-i#ixGEM*iZE%(Hx&|`>y+8CRG_Bi^!Ig`At}(hVD;T|}==?w%V%uJ# z*gm`I+I4QbE_mVQ2buBhG?VUJ?PR^vs(ur^GUQP-j!t6g@$F`FzCSgnU%}2oX4Fc= zXLmn`c*g3H`;<2ID!%c>ul{3uyXjXOZ7+5f7Geu6W3=J77C!bpOx95B;ORrTRn$+k ziraYVjoT61YYfxQ+g`DLY+G|9$RD|x$#Ui6yZ?h0^_mzrE%Bq`lf&EBj^Vv5aoEf8 zh}mKO(uEj1^EdMlDHXZcQtI>_JMt()G08PwMDUOZypGfPhk z(($+&XaaW!x(G+;l-j|FX)=Ez7r3HT{Jx)xx!?+qa`7|IG zunK%ODrkr5mgA}cvyo@u=bvUy#FxL0Ms#EpZtZ;yn$~G(EK`1)I}J0K39Dt@Ciw5D zkI*W)A?~{37SxJOAZS$N+k`rq7BKMj#2*Y0QM7X>vvnonw#x>geqwFylu;!t!Zg>| z+V_Pqb$S@njw=nkSpoZ526|Ug_M-QG_zctjoK3zOXLS|1laR)F!`!(IBZd(l=+~!ymuIqLk%G`c1KL^)kFk`stY)sH;Y}=gM16TJb+u zEj7FqH;UuxRaaWbMeoFHBn>M*3|VwKQOd z+|0h6_#<8%IUFrHhmTx$7h*VO#+FTZVPiRHz zYCJpQ4U{X|jn&&X;U$84Ik~x*wQ3=5BWNOU)MaC7g0 zNZGIsBYql*^E!3IzrTD7Rhgds$wBubJ~|dt|D1`n8`BXPS{XmioN7Qdt=WjsaFapK zzGDmMlHQlm)p0V{Nj|}`-{wuD)meEorCtQcz5LDl*tTse`Z56c1)a`8rLa&eOIe9e zIUiL+Bd~r;CRz}*9QXSK+&_U;=Ph&FW_%cBR<^cz8wVo*fZ>sVGkfrI`F}|q zd{4Kfs{vO7r-TOfv#B{H_;;CfHE@hHP)HXrhN-0$kjDbZf0$$W{aEs+#*$b5e4NzR zhsnBq|2(5bdknhp3e4NM8o7D71VTL0X7l{j-$vrM*;DcGHGe@?&Q|=nY@u=A^4Ev< zZDAEF;;Uc3$16X4jLWE^fXLRLol7{@}8% z7vY-o`rwb13yd|70yL{+6Nq?k${74K{Wsiy)$Q1^Gaqvo&&O_l{{H)u*NmIh?c5yS z$~5wlrAnpB_mfBKx+6L*dLFDB2PX8JZHfYq*HQ>1O$ zh-W@~onTmF{QJ(wu#w=NWsVfYKVl8rVNoyKin%)`x39dT751Q9*hzWm8Wb$`Ub}Bn>l3Dv^1(}|?Xbx6w zSc|OeEtoRrcTAl-9ox2N6IiQ?VPjr4Aj!XO{yVnk(ED_r5n9;Al&B7FKRt>oep~yr(T& zvkZxy1Tt=adk8WKz}v%G^5ub#hG5!)nFd(PF3dN&N@whytKWPSeb4BD zr-wX*p9##(H*RgfzoveRx2Tf`t{RF)G07M;c^opfZpN&Ia|yoWASFE&zs;D8IZGB8 zITYyIS+ssaDx8KCx;Y9o+Dl+;+Ps(So%hs&GU;p(@rU{s!K@q7Gt+-JD*oZh&j&-IwKcBv=GIkV6WedQWtWNpI3 zSKomdDT^^_?(f*nm|6cB@g_1hW#VrfyD!(l--E8=z94+8IsS;-4d4M^ClC9jT5s^i>StRE%_Bu-;# z4bmjJ0iq&kh2v0zEF!umH^JYoy#ux5;;?4TDrC^IK-rO;?=9Ns3N*+f;4q2S3J>_gOToSqs1KDaX3`40ydA%TrdMCPACj4Qa~vj?YqNV=w`S zbK7>pSA(BHuh$;HHBCF?FSPyS27!|>#>|;YibyUU#gP`Fcnhah*Penx(?+s(Xm}y+zG{f6zqRK8R1U91aAXe< zcP9RJHGzxdWZc5~s+Fr?>FVXEw)Zs7O)jz+=Sf)tCoP(Zp0ot&9#r86M+`i_Hvuu?3!F>;bt;|a(mLznZs#ICK7sM5Uc_U! z+=mFtu(NQF354FbRx*-f5|L9>VEEU<6jsr*`Ng=FAnE@`eTH*8bVbJYEm)qm1``+j zfiuY0R$42`QmcUcE+?2&la^F=ZF&g#$Qgj~hGt#xmn#RG^(3HBAl}3|)A0C!q3GAG z2jgLFFmaniL(f;+R+r90zM&|?XWb`PW`v4#TKk{)~wrm+b z`Q#Hk{q)o5+O;d%w{LHTd+DW@@b0_s8URQ_9}nh^qMR-%R|BpFTn)Gya5dm+z}0}O z0apXA1`eQsLgNC)H1O8!Ql1NBgBkNVBi3SOUCf4W|n7B zQ~!kOv8Y)i0mJ|duqbn;^>o!Df4n6&1e41BCc1Iesu7RT zzmLa5Bj3b(H$RFFblVD6WDO;dLaH!&=b+pkv+PAB0z>s^btHZTqG-d;Qx;u$&djB* zq&FTF%Sm&Vle?W@ODHPP-DwB;?%Jpwl43ZAMIIL<=}BYP4XuhQbZc6?howQS5pC5 z2Ho1aJE~Qw$~Z+u7|`PqTD$Bfh`1F^qidof!HH!AgKq6H0FCN5GO>)B#3iFS-TpNH z3L-ApQ0{ekbmiL3O2u|6;6l|=u2zAHtgLpjOHm!ha#w1`XUF{TmYAZp+YN3?~Nakbf_HB6n@;lMcxLO6aXwzJ44jb35 zPuJJe5XIPAm!8=jb5<g7*{cmI7_S;*Y zi%JBAM0WGGEvD~o>QQqN!i;e1Xcd)QJr3UueUW+(F|vtf1lLCq0Yc4ViMciuj_#j; zGhu@r<>lou>U>4BaG!kQN%ZK^!;G%Qb*vdXx?;N2j*136PsmXr6=z}PLIxQ{@y3cAmf4-LWV-+X{@($of8MXxy_r&VCg zpD=`mRzQBfU<*$XZPkZ`oW>3LzJY;lI~_$wZeNOX6B-&yo(W8GQ!hSrPvZ%w5U;y- z7a@k0IH7bi%*@Hcmb7iS|MOQc`1FeqSG@+JD@WqA(2BVEva3XzZdB<6ifSM=V6Hu{>07(cp{uM|^LDxeG4pgmH4NdAcLhm!r!A{~8 zsTVMmb5Jd&^V^7SYDp+FmX%deus1oZSQy1qKQW$jRG5>y`*KNUVbuIhp8j=6MA3B9WO*poQ_K z){!@T<`xm;ilClk%_CVvSngH=yz*!@6vnlXy@Nc_GD>v9STeys~L3+7-)JH0zOuR7QSL5illzOIBCnC6aNgnk3f6SE(tu{K88hpkr-jCc-LI z^z;cZwgwP=o3&2IT<>Wt**2NWL>A2TY{(boJgleW&)G5 z(^i;yUd}j0Z%-bDTh8o_N|h?%bXxA!ic7+vi~AXHXn9(y(UtmYT}+-oow2d%m^K0q zk0sXP1Ar{()3|YCJpAy(=+mbUs#mXW6fNZnwTp_1l8(%xFemPxGNu9hQBlUkcExoy z;A+6tfU5yl1Fi;6dJP=Q7v_^*_@l^R5jTO%!DC!ojw0EEBDL?<@SwVt!bTofqSURK z_~%D2FI&gK5emJ*NSK~&rk->5W4rv!5%ZUtvK381O7jkGK9(d_-oJJJyvU4vX__EssCpLR;c9ms`WUNB#reRkM#cl8X15+61C_Q^KYQ)Ck zfh&g^a7e(2Ed~H0=+TgX!Gry8!OibJiJNAhk69^8aMxuwqI2txcxCJ-xaY-3K)43i zw!avg4Zk4Ru!A5Otyxq!zQ7MjAa|*B&XpaeJT0{Z^fXAWkAbK6#Kn)^jEkFf#viFm zF!bVU5K}eE1VZ*${(u%)`DSez+<*X3pVQCBUGM!9o9Q;TA#a@-5W76 zj4JQt@pz1H$BGcpt5<*REZQxcGR45e+XZW%cUSs8_FESrOOB zY3EyOJv=-dk&%&QYQ5_VBqb%qGw=Fj^n9+D+BIP3d)u~cC@3hP|8;zsnQtrmnl)=s zt5&U`rpcvo@-^2P85t(dpVdQYl+!7bl`}Op)%=*HU*oi~@ch>6Y*~8GW!1f9%NDcV ztv*Vtv^#d}Kvq^(nUK}ap`Fup>(-ffWqpSqZh3juc!C7W@Q<#Sp=FIEvw@MDhKkmZ z_6hot_)v;m8%pjt_U$dY1%*Z2bnc=XMucha9d_TwCwWaC-u;OnT?k}Q&|rOL zm*)@haZxd5lPz}|Wd~Eq;igmLC{|0LB06%FTDKvU))(Q3i-|=x1KrA>3tw(Wk#IM$n zXlip^y;`Jkmq{UCNu*tw!JqXR6-f&ixy5Xw1<&gBYiTu9(PWiU9NHZ6Ejr2?rG02d zR;F2-NwM+VFc%uPGFgqp&@CvMF_gl&5tk*Vn6Y|Y+A_o;G- zqy>!hxM5Rnxxkw$mFSOSsCW+oS?V7gbIY_8{Z zjQu35q$YI9s?If}qI#`S;R3M)W+b=9j;vbEtfMLsl^I{D(8LBZ@p}j|t)dl>08<5$ z);wul1uD|H)`^PxTK-foeTW~$S&FR@W1f|&)Y~osV~T|&t0fin*K<>~N)_{bN%wL? zeEF;Q5Kb$w2L|3@05(0(De3DBy%_35b1vO0{?ig>!>bvaXx6*2(Bk;Vs`xB`>;Mv4 z0>AmzoA~sTPw~)051B<{H-n~~Rzwh|LH2Nt)kkw27ac=jB+l&7iU_2by&BsJY>ADoVaRH1@er(NvoBz#R)PZUDt5DC z>FhG8*drNJM*Pb4ry4ixdbbh)B7n#PWO?G>R3_k|c8Y7G6zCl|zS?SB@f*q5KcXoa zWS=B3M@8U_HqrHK)kVEpbxa>CpX5?I(UANacYkt-p4w^iF3?3WXVfR0R#BA+GVJ2H zz>o+6tW^kdnR!sBAVqUigB$&`2;@jFd(1phDqctyl^RhDOilhoOZ7G56U{%5?1~BF zX=fVy{gEC7z9c8sr0$bEU=7C**ponDOmc{}M`p^;d9at#d#gi#>9m)7)NL!o*z2QWC2rq z0eZ3I*RE@;JAp(Uo3}NzwZ7E$SeAVNAUjwD1%C9=NAbiHPZ$NLUdWvDXf7Oo%w+p9 zZ0qdNUmOW|tc7&2=$;;l2K*=QNNBlzT@9S%8qkNcTU-se8YsmYa3AqfJh`rDN1_4! zvaJ|E6;415pi=W#N|4}q$w5tz_D%vfY|(y68*lETJ$ol!3oKCywwF@9Hpk_-nf2_& z1kQM4^YETn^u#hTWJ=J{=9I=*rUaw!xy!$lSM=rLWsBk008Jk7MfFa8MPF^~9?{8{ z^Pc*72gjqNXoudm;U1rnTn3?0(8<4SH@bk8{l&iY_7sgD3P1!}f@nK9Ve zsS^W+*tN-f8rPpMhZgM6zN2Vb5KNWM`7$7w-&(iekUg3>K-8@0h?jD^IhuD}T7G?l z`JHIJsW{siI-F-Be!Sz+p>NI!464SqSO3!(D5!1I*4Rlmvp-iXGI6e6`RkLYMXMg^ zRz+)8ee9g*++N#xF%6ILpP&Gc0$)A#)Kl2Hbt|Hyqp^PddJG;s7^k0px)H*HL6$!| zNiq$U>x@d>x^+!o39a^WGgzOV4x!630c+T>p)s#hdkL?)MvWR76xY&qk0+4^93LPj z5mzoNt_F^c2Fxe>u_5hJbv58>;KXadzPFrsPFxOL4V+vW5MUtd2U!-V>~GU{v^g){ zsvd31rzSn^k4hA67#$V++;`lwr?yS;(cbYKZGFkw;?1ppy*@kjU!ZUx{QXLD6^&FUXJeQ@?rDyg)xw9@XAdf&P3;t+KJB~g2 z^Krbcg91P;Teigg_up@T8zG27r7SY#&$L|tLd66cMMZo3Bjtzu-~ayCC+s)he1j!R zmY_?QE=IoEwQJ+&pMS>a(W7zgwbvSd?fQ(lA~QZIOLTSAwH-qpo#)3xQFc=8SjT&O zJMM`%O4eZWeIocdUSrx9kg_z_(rsCtZ@aFX^KHLi?Y+`?wDawh+j(9ZWwtUoWw$ch zqis_fk7f1y%+9yw)XuX#md1JZm#Hj$kJ~kF=hq(nbyC`{C8wQdE3-Wwimakh$W2QH z9<2+QrDJt#$2k}#(jl_=hbirp`1uXH?$)`BuUY16Ct zK?f=V5fuPh8{t4j{QDaf1ZsDz>p~b~NwJCSS`Rkf@#I%}k)EBp6To4zUePK=^@sZ` zN)Gis*#6Rs{yFDL=URu#>UK1q(?DZr9#k)PNFANJ2sTHDTQB<3M;J4e@jz=Gx*Jl* zl2e)6l;+(Q#eve=76{~Y(Gv|>oypx%?r?!XQcL4R9`^x&>_TYOs+9>MC#xI@o}Ha- z0)z%)R>G>yiWMu2_0NkhzG#{W=vlmYF+@v6!MhYoD3pqA-KI4vSFUXOC;+F%>E69N zDtdzqi=K-8K+}C?B2%&V%*Ao~qw%e7PQ>`fNz8qQu`=su^>6F;X!{Cn6kTyapP95s|Lht>@ve zI#BVv48Y>fM)441pqhkdOL$ey;W3PYqWKX6M}^hJV>zM?(PnO;7)KS zP`FDVXyNYe6z&?_wQ#q>-SyT!r=9=4^RQauTT*k5(YrD|yw2yK2+bV(n`R>4$JczD z!+R}Id@s0P2qp#}TtK(80KI(-0?$fR@|C-MeJB)ikPXfZ!T245+}sP^+H)1!vl7lt z5+B`g3H^raZ>`+V9w8Sq^330|RX~YWmNNyi?z^$l7qdTvQ!(qTW{cQ}CUxpiz@sf} z4YsSz(-QxZsea~Mp7IQCm!Kq*=Id=SSbH)I@Ge;zqdHLeisZ|!exmmEt7x?eojHe7!5{POFNdlwuBbtk)Z68FFi zgMV8!q287w?lbF#639cgt^i)_qiTDfS=CPN(|njJl3qY|9fC)`IppOb)l*km)!ta^ z&!@Wor7T+8)gUSTHQu(u(=p(I3Nus|z@^@*-zo9__25;3iRiQvbZ(6dT~dEY%N?GX zW&LEBl=c1^RGKUR$Jd0nyLGBUx|4RzWKw-1HN;GlTC{pq9q*)6%uq?h#jU}kB*^Ch z0NOnx@$o$$be?`MkG}~2mC|HSCH3~kerA?-UzS*w@~WlbiWJg${Ut=-m3{*1MOnGV z_X>IDSXr2vYY@DTs-g=NpIqYsFIV~o>R_HW*98cpE4?;qZiHWgnr9&0vi#H`T8S^o?(1R%)GFJoDVg=*B|d#2}(2_*Lp@YSMwhf zd~Un4))dpZrU^mhvjiIG&FlBv6S=FX^YdNn@2x4vK9hkB=o;q*IhaL2twPIB+%}m@vR7`qCeN-# ztam~X*L6;4W3||o?%AfT%PVWW-!G`)7IfdmR8)PQ>QjYy!)pfCJPNoeb5z5av)@n= zS0G9S3@y=T}#iJapHagc9&;ye~FRn)@l3rt(>SX!I+$#UM# z4D0P?_+?n1=oVW>Pa436{*~d8)CsYQ*Yr(Xk=i-H51)icg+B**q8lag7B=5E zeph9O~OE({2Aa zW>$v!vzNH+u94cI;xza3EWh;5I8je^wEbhI<_!ODkiYMx9XG|Sr;wD&y5rR~6nT+`kB>-voK`{R4TQh-8u#F0BQ2T^BL^Ceel2>v zZwY)!@kEU&GOrjc-x2EZvv-F9KWMiDiffZRgv2?c^M36|_7&1cRdQ0k9z0@6r_m2P zSI8;D$dE-chJyjql6ceP-}}`(NLsg<;Zew`5tn6HUOlUr4HNtNB;fC$ldP>?OkoMg zMCNq62jKdORzzBR;OYK6+B5PsU(o_;7CXcvBC-J9MRy~2R1>I5gVIwv+ysDdb-PI4 z@fvHj>RC7q=hgEV4n&UIKdTBP_2+qDK$0D`_0FHZ&R8gF(=D@nccV#n91vY9VKp8(s%9sr^##nyjR~oT=64 zp7D~p#dB1POfM1<_~k9){@3&@L%UC2*lk^GIA?2I8g_^8!t z&$&(|5-aLP4a>o8;Eh9$@>%ftvb^~+k6z_FE6OoD+vWNqR`c1v(O7&O3xBw_=-D=3 zk~MwbRCYuHU2c=D5vt~+cA*p=H$w81JI~+QHkaGU=VU%RNEy>*@JuITQ^c#yHh^+A zlS4h7KQI2|Z$mMv&G3_GzTH|>R*G+Y5V!XG*WwaI?zEL>j69CL6!PaEI@Pv=8GC*+ zKgs7VRGGgmH4{AgeIEty&ysdYF|17>(D?{HBHvhU;BeoPSo-^O63uV*))xst{v2j^Au-?jRGMnh!NUTo3BkcgGb3}Ih6ny~z0E^S9v4Ci@wBHZvQwK!q z0_Y~FzkZ1Ig{`4!CTLJCLaL7MwuZ+nk$@r!m-W_WzK3y6RqvJ%>EEa zgkS75d$q=Y>*YogXuGM%LQ;PIy_#$pr-lh};e*dFdJ9LXD>eemo6m*+VDq*jNiL|8 zz`d=dF(dfsibu{s`GxVA>#`D&J@sWr`=1vIuyAXVQ$9Af0j17rnri9z`#e{7@C2tH z$nO>QvFuM9G8$`=B;wf6-6gZ3$w<5Kho8aQ^YS1``oJVaJ)$S?M#-m7$_Zj*R(Ds3 zL*~sX+5*<&a}l6DL=@ox`#^m>=R+WSxy!Z=TK|ZP%|-7GO6Uia-T}MxsRDZng$!Oq zZUeTM9gbe;f!nFe?h>^($kIMuTh975pP^sw>P;M${EK8TgXP_=z5@J-Hhn%{r&;7i z`Q`rFZM?myY~jyS+k`(9=VY~WOM<1|k`|qCllYG`HQ~vpcVE%mN7A7Ts8toOQzMIz z*l4o5>zKmk#z!~Za8gB&lyC6UjzOp4OV@a6h^wOR)+;MTGm`73usA6d58nAG;XctW zP3D(L|KuD=h<(Sc2BsKP(#oVG{Bi-my)BRvxy*xC|GGK#2Lqo4rfJQU2)f1>isw`? z{4y#0-u?)#R4rC=f4LlVyaj9K>$kZ!UyabClW{m7D5DXuAwVgMZI5Ph6*4VP7QRvY z4WeIot2!XOTZZR<%cBDKMSLDsWd<&Egd15auAOg1sGxQ` zA8F)ox)z~`4?Fq&UK5Rt>+hDbCF^g+e2|v+hBMv>EBUOId=jqsQ zj&}_=-uLZ0rR&-!4T8%nLOSdFcb!1dcWl3XzaOYkCWj>hxQ3bHBpV&@^{R&Qqa>L= zf^LE)yp!O8rFD<9W9DUytTCiGRN^ERYWRXQnY=OBNQ&%zK28@|r}by(JM zYO>IL2-z?=Z8v$+YT&y8njEIQz1ekSdUMzso=-0=+}%fN2~?dgk47B!zBR7jTwhi4 z>7G0anYgc5SDgwHpSHwfLa*3|!zaIdV0K}>&JLZJd2)YsG@W>~v1x~p&)UR=qILZ} zgTrNGfqTlw!DMB?&(;enx(7N8UXaetuzIgtwhJJ%;~9C&uS60XRb|}n>+QI&JXW19 zW_<({s^YB74`QA#dwNa2KaX)-+%bMjKRWTlAVCwHzK!9Mo}F+2p1OD5VR&|SwhkK) z-s*Y0E!Ws({-8eR*?%It1sU$EaR9ID#^)YccP8(J7Hl0nR5UkQk~`yzI`Be6tRQ=% zS>>6plQXOfK-WeClXPR3%~PB671q<~#|&K`ciOLj*A>SM>Ct3xY=_0M%PDgkI12RR z)9dqSE2bjoN^VZxZ&2i21H+4>eWgW}DuQ?cu=i+V*5IOHzA`^kb9$0-)Cq`M@l65> zmSu)_IDpiPIWB4uW!!72tsOzawhk>I=HE)4^RNM7Vbkvq<=DgIuk*o>wWZQ_~TGJMyV#KZ%?LZ_JQ^W4-^jQ4&K z3k-u`=x!2eb;>{{##(3D3I1Qm)RX1*$m7GqAZV)TxnHZ+7pgGSGVcC6>Gw+F;oR`( zdll_&vMa4sYfbPdJZ>RMo^{fi;G#gHkIn4ys8q3Bjmv%4`q}UYk@STbZ{yDa3t=zf zSS%T&cBN?|3SkbB5&eZ#rO`LB!$Rb9vM@7#08?o4f+rkuocU~~oej5zh z58dkoeh_Ki%7f)8*2nX1GbOBTMB#x;!cNf1>KqUN%}k%Dqt*oFNb}XXcU^$_|I<#A z5PLJXy77!^F`^7T$#kopalvDByuVtcu=vC+IF(aQE^pXOeE;13>^M((LdHY$783pT z)dt0tw&?tzko^Kqw8wYu7eY^&!}quD$!KzK?mcOpxtBoQXLPYqz9>uH+nTU^ii^>S z(uZV3h5m47`U3hLNc?~i^L?7(>y@C;!xriocj=tXW*W(>N_}xC*&=zJK?CrXz-{9@ zrpZzWCqli(mY=XsRHY<8ivyUvLP@b_(=DryYOK$t|Iz2d@7)U{6#;}m$2&OxKqtBD zcC(vZos`6ns=?TUn%xn6h!Df^7vgdh65{MdBLDp=I^LJVvwdeIJ@yk$kcD*nuPkYwq4n$jE|v_KqJ04> z3wH5?lMC%1VT1YlcQr7z@XiNQu(ivvwe>IwS!?F!PJzOW9o?j~g$^5?&6|O!3c}js zCGF2=ZTmEYCWAoE9AJkVG|H8BH{cC4Su!5H5MF-Xw^sF?XuCllZ z0wOM#FdQK%NyzyXLQgU~ z2B4h~odjA$zX?1Yb@+JKpEM+=fHJ8z1)dtfjPip^lbU!&LYQ+CcbxT^aMl&#&36vR zyXp|Si5daUtga%EcvGhrknf!iN1B$E{&Y+~!PN<+FI{i8LGVYrqKFq3=DoJd zn|wN?-)nqMzan_My!l|Nz9-!Xneb;}Z=^KVWPg2LZEAmP!W3a&Y!*t>;Kq2Ai`ny8 znJ1B7z28w!ezt>bvMTGYG$CwYkSLG}69ycVDD}_OI14uP-xfug-XHb2*%5it$qnuP zn4M|7Es}>J2?DRYL9y$-d=IsJ7m(TaG~%Ec)b4mtC6Z~)f|7P$awWH2;0*1f@iEnb zAP+v62ZJ!Aaic*32OA9e3qV~auJJUP|iB9PR4*XH0+%OUuh zsY&%%?Z$Bawm@~TRMQb9w_4}2%cNXmcTX^w``6!zH;j1hfocx`wD9;O3uz(#w=nX~?DH1bq8uabDBe#tE=+0rJs_NLtvLqfAho?i0=QTbSz&)MjFvpeGgsS zAEGP{;2N;UkLUKHpA=bz?Sehbca7Eho))D1{^aU2^=BqyiqTb)@=>`P4~)DP*_$$) zb?sx^RsLx3E4vRNqbi=s)G?x zdw;fx(ccf{cgpI*aG6NQh$Ap{1b|MFF&)WdOMejka&(U;+&z!n+@TxSiVc$rQsInS z_R8Ftm}6Ce@zR*p`)#te=qBNi(P)CI39+VNy*3Ut7v7nOl$cp zS?G$!E5aBvZ>j~`d(ee{Q~S&I%HzeBHgD_Sh_0KGGaY3`aCh`B81!uD8M!%|craB# z)thm`c4j^gp8T{)8ZeS4*nE#;nWRPvnyx%7)qMwA>LlV!`&exq6^5Fy9PvM|`vaDp z`+ymz{}C=1cI+eb`PCUJa}E%sj;nsR^ZPMC)2h)AC4>lq0<8HQzz_&Qd z+`H&#!=5^EQdWZxB+0${mK!A~Mc|6)4Dwc;QtWq{btP!}lz_g8*%Hx3svNkO)|JWn zXMRgFFg|nVDEH&q%~h!%FNBdwIq4G-=>@<*8yvFcjOn!QNk~l8*oWTnH2oRK%F3&$ zh+<$ju@v~2!OkQSWgnhJIv(&aEj;;V#r%{xJKG2UbYF6R*|*vC?OQ8SKz~Pl$;zK5 zYTpQ<@kxotjy=mTy)YZsuLi4}W6CnX(!aUM`VJMzt}_i)pBWQxD@enu*y1{a~gv#|dyHU3{j zb`#%{Y!T@IA8juVTFa2L60zDGz0MT+lkRoD_QFzphJU(-uw%)LLqrhl6zrwKTS3l! z?iC}hS*Cmj`jRf?DE}{Iuau<6U(C)QC3G>Wtb)A)Y(qBuMOf;L7L4yn@z-A>Iw>;> zH7<F%oJ_M7LSF4tC|>l&JDf0gX$Fq?OoU1ka;QeUOK4ayI1BD)G4 zY$*<^2;)y9X<|nH4`^x#N~WprOeh60O)?4+3|up}jDqZ$-6BLB zMe;F6MCwMk-*x(4IPBm)mxH^pI~?|TiV5g5$`Tb)s$DGvBEKAm^CtZTl{Cm`=BT zA>~+S)i6%88P4P5cO}y=&3-GbF4cDP?25rlaHje_S>bq9QDKi=ioNFNw<$hgROFvz z?L(LiG`}TGcjcaHRU~V#xV__MHt+6zsl$Y!jHjdZUTte+(iSM12y{@0)|*jHhU+B*bQMLFa!n%eS%V?w z+<(ug>3{Q8@@cRnx_Afw?gNLK1$7{Nb~VCgU1oIM3*PITa@wW=OHQ_`iU6IuzjrErOb?qx{*CASg$<41}g+dmw~%UF3_4b8=DB!Yt5 z#abfv(sCx$KbS&A(A2FBhyLUv>Ch>-@zVz~>@JUbUjlv?C_IZN9A=pXp63gFFM!&& zpo~rdyDMm(0B+@ok}}4@tS>@}%cQNqyg(%c-y}@E(wpXdfh{LY71swslck(V7}?+F zKge6}8utta$(!ezM7ScM$xN)Y*7>brB>c!`tIxK92lrtSgzfHa%3M)_WBd_{9?Tvm*Xk8uR`C;)Vn9Rm2 ztLA1}0FfT&ptT`w-Y6|7^x~8G$rX$$(kBXKEG#;CNmU7t(*RwNwd|^E^OO_lGZ(2>PLuJ0uRS}n+RTwyg;JoU@v1W@tkyTnSr`Uoc zAQCOnem>>qNRPj$SLMIsY>MpleA=X_m(_OGI*Jg{e*FH1+4c5R4(l%vs`tBoYKBKk z2(#g}XU1g(nhkaV97kD#{82}+`ncXPY~{_ULcMx!GR_R{j^Rg;-lA7 ze)2R&Cx)@f_HVPvQRRSnqBoe1#-VhpwVwbBI8iFhZ2H<6#gS7cM*dADb1|Zq?F~om zl{(gJQJ^lTZAh+9)u4Ft>YtT$kB{7$>!>zt3;CaSs07{jPVu|7r0(C&J;tsj1knDh*-4<%+H~PBo7LxiRm%h| z+7miIJjx z;gI=+nVIi1d62_WXn@sUL4oZ&o z;KFnXP;EZ3heT!F(pP!DC^=Uwz)|2S_Fr?aI?Rls(tK3A!7qrrM|x}+=VP?bkJM{p z@m_MC^FH=~V$V?^t|!(Exu!lzt(@5J?&pZt8R*S9AXw)wi!D~pj4#K%n#%FGn(7Cl zE~8YMI|J9xJ3Y~cea1*WN#KQAyTgZzbqJdBL9C=s0Tq}P$&W*dmx+4#guZpIfF>!r z*7Fr2{LYH1Wwkjec(1qWI7p0?TYu_J96cQ-+S{!B7n2mY-r<$b@N3Yi~7-&`@E=~lbi*`?#!-}Tp(4OItsPS5o&W}?16mxU}V zxwW6K&~xS-C{I@DsN6+GVYhd7M#sE$mli4vf^>!(#_n~rwRYlE0F3wcW)JnAG^e$? zysE0ISp9SJBXOq3a&0FXodT_*w!bP+TW*pymQDxkko}e>x0zoHwKe!bca{)mXlQ6( z|51i*?e^h{sy;fhx62cagGk9v#&();Mkv?w_NehF2Pj!@O4G8l*pz;NI~7IH{quuwIWzGogOaDP>e1h%#cu|GofaI_i^`)S^{SW$| z8ssLrxH{}!s-N{;`UZu9)rr{H4_tA=E#a8MVe66zy2?HYgqeuwn~wE4o6`cDHOFNFpssB+C#Wtka1so&?%0YtY*{E;E8Jk+^ zGaBRa!)AufWzQ$p5+M_=T;<)I&Hxw|;xCZL6W_v;6(em5(SEZgd`rC=>G;jP);Ys_ z*LY$_U8ftwhaOo`>%Tl^aWa`0G5!#B%)x>C3(lI`cG+mYRF4z8S&9?lp(i|Jr#ORN zeZ}Y{ecOx)Q-G{RN**n6^&!jm$tu1^zLcZu^-fnIg9i(Gl-V&umcK@C!-))vkM;~! zGk;-%`JyLXcnHjNz=I)&Q9}yPJZD3Psr&}hhhFoUBq0&{r%W)W*{?IL`}#06123Tf zp6j-V^fUv*jzFcc@S7VCO%gX48CLd>`Y;Fns>O3lbX-cISypxe;t%@NqX;byC^D)i zxZ3_hQIbsTZ76+-_X7?pw%C3Zl0?c4cp`aT%jd&{GG`2Y*4ZWJqv2zbR15*nMs)!` z`$5UmP&t4JF(D)QC~BQd-}aB;~IyAAb@}KRXUM z#1PG&Ut8eI7a|jg=$t9RHQO3fVXp6n#pgc=<>HhwV_o6)7t|!fnZ0-F zWi1HBIlf#Ek1?J{REgm0qgK?(#W0zo)OSJAyH)Bn(FR8^ac&Hg0~BCNxvcH+H)>TuJE~G9MsoZRSk))XJlbL!0bg34R2CV?IaNh(G^-NFkkIh_j~sVy84kN zKwy#OQM5H$ny}Mf!apIK11os*Ki}j3kzoF-sENR5X%7D+3#AV%56CZpeU+<359boJ z=Y>O;2^*}|%IP~BcAksgpLgo9uWta=8AX`=_4+l5#MN!nu?THotQgcIIvdbrwPK5RaqucakztJZRHuG-*YGMK-G8yaCoQnz379>PUL#xK z+Lo0h^3!hF#rssh-JsrKSIl7Wb_=KE>h(-S{$lc2zYqX~BmCnT*0`sc6AKHJ>Ct&z zta-J<7osWd#(&Qf%5xa_y_x_tBdCj^JwK+JGu|%`K;x=Z(EItd2VIzVPQCu>qkxm{ zPo*qx0sh_U(?H_WG{Ab3f9hX1o%740iCg9=KBv1|VNFv0kcmoPu+l9*L7(iC>OL*BcdjXN0yx?i#}}HHjLFQ5;bm3x~c!) zfV%&y2s6cYk~S;nq&;mqAq%tFzDup`h#_I2t8i1aw??9w>*pd!1c z$$l`<-RxK6Lj-(^FI1`C{yOMEQqge)ov^-lzTduCu6Rudy+M@LJSDD&ELN8Cg+UX( zt{EcI7Jd*PaC$7x3CjYGj(MRY_9XGoJ z9uAAM(Ma#$ceGgdW?VRb=W*sl1^iFM`v1DW0jkpQ6L_bpe~;sXRG;TnWkx?_(&tZx z(Iw%%x*8@$%-1=Zp;Y$>sCCe|R|DRQ00G|8$A5ja=PWU4H>DvHH5iEtJJVUVgd*bF z85l*D@l5i?Mv}Fp@~L)ZP-v%-ck^u(5{4AKsPGy)zNLIXj&8kWfKn#k7Bqj?KT{Z~ zb9$@JpA_+8gzpB0Sp2`Mg2I9>NQZza_45A%SlX$8z4s6@4)$X37l74{PDzp9tmY)U zkgockiUzE()sr@+$`RDX54zHU5nq7wO9<45wI4NRtua2(sQ-mpr$OsK3LCB$UYiok zprwn5DWswSKsH+IIJGt+MMpsN|HIRDJ;9I9Y5fJ-JNgA2`IIjr|Fp>yhneTo{F`10 z3q2u|oBm$2Pt{bm)wcEjT_yBxmsW(AjI64d- zod$9B%QK04=aKoJuD4o}n&SQf|91X0oc^E&;?qT_U#zj~sEghkU$1+8iJo_oI?cF2 z2%%kBiUJ9Zo#+!q7A7LPo$wHfUjo0R@S2$ru7AB1#=e#`2~Ao~_478~XWfZs`(xE# zb|%sf{AG;g_;qDa8+2(`bIbR%yQ!#qK9}rAy0Sj6n~88_veG;_QyJi6yTnj^eUKlW zXTR18Z8b(u`?Ce!oAuc%60@Cixd*s};J_tQO>N;CbV{|~78UH%6HoJ9GHM|a= z5|Lg?zUTx5*b~?$XOTGV#Mx+B${@xcMx<=QvVRHw8%&U8N}I2s{HtAqiyM(;zQG^k z(#DGRICg-=>5no-t>Ms#5*!s}1e*-)aeN;gxyeU&hN&XBx@Z*qSl?X&O)ZHSDOk^- zgzE5L?G!m7+WBH51U@(?rj3j~p`h>t{nWI+WZ+7QhWEcb zg66jOaWwn!6O)P!T3=3BQ`3hOEPSWKhEQOIy}L^w_gjUm(4nMutNSOflbvB9s!h%W zz_+E7)$k;?oYLq_w_(-lx=<%~c0g>XX`HVjF54Xn$6rES+GW`+?^$rX&k4`7uJ{{U z^FnbWQXrfNRBP7%0Fp5U8>w_ zAVMn`|HHBR25X;>gmV=UlYTF_=+@xgJ&1lFAy}Y02(giIC`Pjy{|K3@Nw9Op=+mKoEFqHpH!e$19z&F3?r5=IWPB^^QT&W0dDvq z#tc6cO$MqFEe)EmIg|i_XLUqEE3#+bLavV-G;mSHsNwb zR@i7dywGwwhc>TF`qAJXL8Edd0m!O4Kmkxia*DWO-Ho$BC*`D5?~R*N$A8~*FmH#} zV#USO7&Hos$s(#e>E}T`_HSAwI=SRf;uVq6$Z-5a+#ACFP^rdIwKq|#?5bH@qEF8(3*&4ps~gnPoP zG6g|zL6nAr~KJC3Fyjhwo4&5kT*v|W*C!E>Q%AqK*K&r3)vzG6XSnNwwZ`=4(FWB}6!xncVWHQzrt)kTJCn0LkF} zPQ1W&-5*NV>=PFDK+leT2VVMp{M6&K4lnHOAFJvs(PnOU(NjO2!gKGoz5;|uwGVTw z2RA=tpkA)kXJ3w<(88)(jao}R51d=PhtG}Oe#IW5I=ERP-BDIn7J;!8e0zGNe}FpN za_uWyn{QV%YuL(ADR)+-gl4{GK2`QoE3=#_bgrjyKM(cE&O5> zo+07 zabK7Jo*@>ICkCg&7zs3de*~DUQLre`C~Hh`3Eb?nYo#@QJk@RJO>mK~j&*bt|FCSk z_wfF3U?#B;+S7WXppg0cH~0OVd0lM(uJXZp+ftza8Lr;6bQd$}P$%h!F3&(0FXr~? zRhG|myRT~RvFm{8)3MDD{8yJ_Z(Lt}7Gj6!ypv!=YTP-+Y@xqUA|VpWW!QuB<(J*P z^KQC88+ajiqTf5TReA6SKEgUl$Z9W*$)aSys4X{F|Ce* zPwj7Rk=yN!CfU;f>ePhOdAK79f%~(RK}~on2LE~%#0wg`RUk1x+5yEiD^4l`-H#5D zZ%xp)*D2w}J2~y?RqGYvl>hoajB7+D7|y06O0fTPMRox;;OpY&q2taA5@g9X@eD%3 z3tz}-o=t2x!#5=fETSg}ZSe)3W6dXx6mdQ-nKC;DS*eM)@sm;SUH6$%DYm!saNVh* zUnXDn_ORV$xxF|b(KlD~G5kpkDp^E)X!o5QXqh?<(op)(0l8YJHP){I#*cfhTf;zD3eHrm0sNn2P^g22BH0E)j0{DA_lM40vni#c(?tGk ziJmI4F)fb4?*OKN6l4&7AZlwy6mA`%(QbibbFHRuJK(6FPK_o%(2AKzuRZ`})mKNDyti1Rtm_I8blrKQ zsF$gUqCJlpw!-*K9{##P8hJv1bnqQ>o12kmFuC3N4C%loW?1;it{$su!wbO-1qwrj zQb;w4&kIWy*-_V%!W#nJ4qdNYpFe;8&q91nCS&RLD`P~}55FCojDfunElkIJe-393 zEJB9fJn2bRnGnS{-hq0RRMygXURx+vvcnMR0?V(0D>A6P8t=*jOH1tz;-&`rAZqI8 z_wiY(fLPDrv2c1-MCdWwJnr#iyf|NzK#Oc}1kQ}3WIi{0c)L3_0D`6vCgrvdo`10W zrr8TfUsZBH?tfxQ>HN(_I7o%v4#gn)ya;ogYL59Zq`KIi8vQ?-9a!d6g;%+N>3vu*#T z%@Q_wRbQ(UpJcpRA|^J14U;GN=@Bc1xy~P+s>kCpY&kdU`HqjE5a2^WmoY`r)|1O!=%1M z7jwn!q%UTDVJ5Mny#|*Lq=+|XltH8YQSy&_ZLHl|BTm?sdK7q)>1v6sk!hLJ%8qCH zMQGW_-;pt1a%N3)O-|4&P)8o4r9}3;7HJhv3-DnlE32090#-!qx!xa-LCc>>zZE|K z>I_`_92iBwKA?B}Z3@m&o?sS6cy2@v zSq8~t#xmK|x4|hyh35~ivz_8Zil?+EtB2)H564XpCqq>HU>bJ@t$!al{>;tNjHVA_P zr;WhIQpASKU>NfKyKmTZlOVjP20w}(?VBPUBXIq3PyWWikA#qlk|33Dit02;9>fu3 zXDskFfSZWhB9Bd!Zh99kk6trYo7?p?VRsBrSTT=OxK*h458;hRo~p!--{J6t%pYX%wW%V?j%mpE>;37IcI2MZEyPP3kj~h@rCVDCps3|W`^QD z-=QQ~V%-OPY!O^yf?#IN7hvwO#!f~fv5K;D+E%%*nB9xr-YCArr!tdxbFCIvPF!4j zhyXoV!#-5_%sh=UGaX(o7W|vtkWe0wpVz&{7abiX?F6=bG23Jet<*?l`sEdgn6Rvd zR%&_RktL2)M_uW(tG@a%R5!j8qXwLB<)}_e6GO#k&kHS?LRl+0svrYFg)|Nn==eNi z_z7I9`aN6w*KCnuRKc^?l#;%Ba|Wq0{1cL6M0o&P9_+nlG#lG=Rf?Ggyyv6KhK1bH z%`vBB+qb5#jY#1SqhVyGe*KGhGqM1Wy}=&_Yk(`#@^ zeTCtUe+U!luQ*Ey1>ov4eQ^0d7C`^?v_`I|8o%DRHpu+60p}J0@Nz=vd8hQ*F^!O1?I3D2 zYk|Rww>R$h-g{K)Z>2iu&cYq#+Nkgo$3dtDul$YJ4_H^VrT{vUR%;sABEbi0AA&3} zA?KAma?gC^(LFf@Kk6^BE-khEJDni9+L=esX#|d!R%*{oM08+fKVYdHsltOb>kbUw-g9 z9wO|R(Vif+fkufycIMj__+B9o0`97gFWLyeBXCv3^>SwL=!$dy4wOYB&*waNjNLUr z4bZaoj}e4%d{e`=-SrGYW9jG@uVc>kY1) z=yQ;_$OX*0j;Xm)?R>TCkvft*E&OsxMOIGUQyol;I{iqxuvM=6CYhP>y?*#$~JAF8oGfO^qH2^s0KlanK$03gw&Zd)&aQ{?->Hyli;$yhvJDhdsA z5a3OpwN1LWzfaD_Hlv34-d!UoH>pxEG=S0V zy!Otg=y76rn6(Ctp3PTGTjw}Vy(ZBZ{iG*hv56+%{!;KeF>wHcU2{ z%y}Mp>an62es@;MM?uRJJ1@U=u+f~KOYeVWv_5M+NJ)6#P?ks$wHMX4t)qWtXivBFls4$Lw8If*Q?Foa&o@nxAmZspvVQ z1(bG_^!ncBW5>!G6{>fbhZt(ZSTX3HH2*qTDNv%Qm#G+pnOmBZM#m_i*z3r~ z)*$?IHR(?6nCj@&9tbSckx;L9Sd8*wb1N%WXtEL4RTLM00; z4yMf!#{?(Ps{TIjxHpDAA%%v8pHJ8+zkkPL7T6%ZFHo@TzWk;^z3UR}{9n3c&Zhg( zN#iKk1(6{a*6mEbBwtOh8Q{4)dr$*o{59TW6Rt?HN$v>=sV9>K7LwsZ-AO8lbb0A0 zBNw^z_OI7ZyNP$oSMRw-PCj?4-~}<8{|l%E}34 z*-#~Bqw4gBG^8=}KuiPZ=&F3#t^e5q{nD7t?(tXtdw8tg$S&zIPI!6XwT_5j!zBmGK;xG%S~?>)O~<`ZZJ%H(KjASg-M@ z%#kxSqAhtjh>4K}oe*!nzfSl-_V)J><6?G$-6jLtz0O-Kyf@A>_$SVNA^h8VOTKZct`5 zG^mX&@rd_GFfUSek>4{&+#R;v!%QPFzWT);@EX{U1C0nj6M6FsFWvAyb^X$2$p7bZ z&QCW6a~|ZWr^&Fx9XM&CBwS8YrFK8`Q}YRXjal9E8>OY_zvGy_nSVuHTCFi(>2RY* zaJH|dGx4ZPA}aW}Jo;L!2?+;N&?+?bd-F8IY#4^!87WXc#)&Jqk!z<&BP)rkx-$MO z5@dOYT0!--c8z^^DJ%DpA`-^}73o>rUNLI}b;z^YPesiH3s*!J^c8VSbH$vQ@uZgp z3=Lcr>`rf&?zOpB8gpcp#qTO{p@DYlQdJd(J(l$leiV|ZAf|{tWnovC`O$7JQvuD( zd|}c!#k<;+DzyyBmFvY(6VH7M{nfP1><@Ef{`G0_NN6HbQb^l>tkm&}ZeTrQK#bKC zb*deA%Qh*(ew}izcZ+q7_snM+k>te~K2X%w!%5v_OiD^g5#g%$^|-b50$@_`ue&4L ze3zf!s^9zT5uEAZ4tkU>QinRS0no);)wV+)ChLkrvV$>KA@AJdkzdj+sw@8Hc7DCD z2L=BCIm_Oy_~5j(xOJ!Xtj(1nqx!th_Y5J^h1Bh;ZdKK-%ihhys^-{Y;~w&ie=Csa zIzQ>B2&2vjKiShBoZ+kFIj?G{r=9hNuV67ywXM#2_xhCN#aD1YujJZNo|)WvawwCs zxN@mEcn4>_)C8G*Jarr^l0`UMnLNCS1TmJ}RAIrR;JsN8WiPqWFw1bh%0*MiCQ*LB zlgMTgEITx2UQxx(sv9-^;g#p}x9?Qu8X-Dy6~7 zVum}Dwv#)7yI1Q&JBmu{OD?zp5(j4KL(M|5N;}K%9|ZsV2MD5h+6Y_Ry&?zbpyY`E z#n^%(K?dusW>=Seq05=({WP07M7#6Vv=>=f*&Zm@nAKzeO>#TK=WeO_;9tZP6m_OP zaJJUg(|oxzNdNg@D3&58czWaQjvI}T<3qBZ6G~O*leP2t`dVu>rKZg{AifNlRm3+# zXSw;xW3Vn&O7{DK*GHE-s<+NROJS$u$17o{l`c@~$7r0wlmShb|$vju`#i2 ze?8Cpe&?L){Os;)_pZHG?OKJq?yBqLIOv$-K>pagP?%M3uCZVH`QY^4CE3loeh4p# zm;+&HvX)$!nJT7!5lnJo{(dbW+=7r0$cm;JBHthz#!9F#8d{y9!OzhVPckA0odDZri6X1oJYKl2{nJwbCw`> zRYswBpXB7G)f}AG+hwDA%$2Z7ltBIADgl&-{PQAI{e_(Kz&o&cp*L6a30{#7cc%ALw(ZT;AQ5c5}Qh zl;^sM{ho{gOyYgvC>YRwDU>S%!aH7<&=T2LRnlckd^2f*}Q^c!YOS@7r%}@bplivn6vi^F8?4?|Af^ zH(7H&H(ri0h;=nnT<|>8J!lT8wKBNi6R#g@Wdbr=dQ>F=Owv@pb3T-MjagdrQR5?ZW-5 z^&CWh@7!yR>cu(VsZO!z^4i%Ny70|;wN83$$ z<;HLcz`TS(2)uD4GPoU+F1Aowt`MjYsPdTkKB^f?ljKn)mYo;BUM5pBr*Z5+Rc8$_ z)-Wu&$o#tqbXG5qkpp#oXv{jvus_#Hop)b%*99?3IkHJ*a$xl5avVWh?06b-Faj1zKMl84G zF;=w5R;H=oNZ0?7J@mCXc1~B;9^1IHpq|rai%Oc}&Yynp759}x^JM3>g{!0S%u5!J z4r;$9nT|R1E`$6FNy?iKcH) z$pRYarjOB{C+1_@^eU!bWV~|6+`#2VvUt86K0ei|WNZ%v{xHqVxHTt}CPYO!UfA;b ztfygpg$4@_5XnPBEfx844Ltxe0%C=U5qjH3u`XW(InP%&BO0poAo~ z)B90_8K-0BIy4g{7G$(5d=vSsVCGP9NJ_ETt$rUi*1BIB z3^(yHkxSLy5}!8qJQUxTC5eKlnB;`gFGddWgcz^Ik}zxiC%Q+9`uWGVOB~b5shDLiOQHID)|qy1<}9H%LZ?5rzK#e8 zaJ{oJ71x)obJq_L{!2UQRU$p4MyQsqkk&+#HM-5nae^Ftl~uslBUs2j)oIQ(q;C$E1EYPC_PA zByR=tZavipWdJ+!By|W1gL7hah;}pAD|d|*G|j#HN%@){Xmp_8OTpSNJNXT~tl3Q+ zcY9C&Lu)DpOBX?)C0xFnn~t}t;bVJ9qwg&;ldn64^7%#m+1=ymx^&yBw_1~TW(Ql+ zm)WIO0e!pIEUy78=_0+ax^CzUMeoESw$B}Zy^RZ?G&D{_wN4|xR~X=kZ{X(VlRI69 zVz{ykrhf>nyWX22;!kUCYg=q+XI*J#Jq+%zO9Om6t?67gRys$R3VJ z!rxwlNSt?Qvh0ZST>6(H7;L4 zM1F^Wm#0nd%Rx}GVLrG-F;{S`rf)Y+sG8B+?`1BR9%h|QXxBn+nMQZGL*Qv0I z6il%L#x%4=mebEzR^9*p!U*+$f|dVFMGp+D+K8lq#Fq$l8P(9dJYjJO$%>t0W;Ope zJGecRVQNZ$WTMo#t=!2zU!iU!<9b}A-Fw`!sTL`o#xIeuNW;FG8?jirOD01oTiX$* zmm-czwe>f~E5CkR4*Zfe-znlFmS`bN8*`oXT2i<8EhqX{+ZP6Q!tUB@{~5B<$}Agjg8sTkrn-Fr>F?0oDc81a~pZeV)l8 zlJKJXzTT;kbBJ?V_umAWMY7-w^LSrLWvw{S_63QpTc<{hUpH;iCo$X3`+ZY zM)mYE<*l%Q!n`-+K>Q>Rp3W%a)kdpu>>oMe(;$~GWo`hE&AilwH-`7>X@*P6{`^&L z2qrSNIrldDmUfo#4<@8ePjG9Iu<_oNKjhP_c@RkF|8~P3J)(XtOk0|xmI{HVR0Fmk z@aKSWI4suQLoYX@vKdk;05hWAuJ^KZ=b2{%${N$;F!C|?#16?Y=+F`C0#+!6AzhK) zK&?NaXZJbcT+9ZI_dOC*Kz977+W1s9Z8B zoAiCu776@+6ai%M{x^sX6fWwxz4bN}#!vvWDU(Y0vV(hgwT)=I+y;ZTZ5;FU#3=*5 z*DGj1+C8!|_U-O-b3jb6=jPXqiYlA*c>1VWsy&}2@@ zsxWVKSlUcoIKu~p%m4oy2L=530-sDLt8w+-Sb5N=;s5tynG88jz%@+=x{L0_T%Zwr zY(gN&=DU2~6_}W^nu_^IZt<73WGj&5^TK&UnBTI4iX$C5uA#l|j(&d}b$C8xt(>^p zng8OgS^4jVfpbJ)@8lkBr^b6+|3&N|5rp;8YGLy<1RK8GP;Cqx3J!BS)v@66nJ1$P z2fBq;nYSg;_Mw~#U?e$$#`}?#%2#de+N9c;{3m`79l6pek;P2D1o!9L?LWd$T9=X8 zS(PKKj)|TlOl2YchHM|ZoLH8k0PHuIk^=Gfj zw_V#i{mH-h!{}P2(Jva^u;IGU=pXk}5W3szr z2R(RJWI!vBuW3JKlSVX81s1OBoTCZj2xC;~{*QK(d;VRFZ|vhwRdW9m+G%B{mPw-v z2{*_IN;c4y_)vj5B>?~ni@*xM7-9i@3>pRT;gHyLHuu=_c`ZqH_=gfhGMeX1rx!Xi zN>14M*Z@zm3L*l3-u?wT`TuKp5Wo`AeLkSFBJaoP0#?v3Mtn9F7>Hda=JK2ri7?5g z4)k|1d80EB{0bcJMr zIx-meJpZ2;rj!f33wL8tS1PHObebR5a;HdT2&@-u@kEoi+LQ9imnrK(;>PB^ z-x~2~3B%Bb1Lio4?W$n>tHxX(JI@alE4ZBdjkiK+dGP;Ma60Q>zU40Fd`6OF5JbXM zSqU=yydi7$?ef}?%G_cf>=qbJd2Le2nMSCN@Zjc-N8zdV@eVMOq`RLo&M&!jUv6uD z9NgP(DibUg-<;z}LJ67R(k^~>!FT!0%>#p(bek#2$qCaGTVczN@uYYhm3n^zm*5Bt z=~ZaJVx`XU&gub?Yy?leB^lHRD+ZLwzC-x#eaW1Cy_u;H3Q}x+0_VTo z@xR_v1r}6xfIn`!Re)>cYQh{0|7ZBJivOKSoo_ee>4Lsq98J)OxOuTn5oS$E2mgFQ z(1xRd5ApWI;m?(tpkDn9V3y3>++%Tq1|y;9q55kDg*m^P32u%iCWt)-vv9lXPLKi5 z>GFUs$L)-;v`Wh^$)2wtWgI1I9m?fXm_VzVnTX;e#Ygr zO-Gk1v2s3^gJMDiyQQ=-Mlu<&l7WPneoct=)S?t2z?piDwEbKyV zBydF!fT}g64Dhi8+pCbQ$pLe^J7VehoI$*kzX){@^pw~B()lq3bMJs?NT=d2Esy+f zxsCr@ZiE?-ZT@E52WbWX81I*-9Bp+AArm(q^vr^fK*EqauKRp-GpgXz0I;R>)X6(w zy2FAW;JZtS5pXER21Hesa(k)CgCSUgLhI{6-CX9A!g{Z_q|DS-hA;$|T6qSA|LP0)DkQDS@Ep7p2H!6( zhoPOpD69xJ^9fvlL?JL?*|;kd0VfD@4ix^ycD_ECTx7MvA|a{!S8~zPN<|s}VS)#v z>4a~j{TuV`pPFKj89_(OL!MbFRa(8y3WXZ}_VbJN%>ftIzs;Qt5RT#Np#EXsas7QC@&)AX^+)5e)mi|FK^#xw z5qq8x^8*T?Zmt}U9XQwXRS=iP!@wno<797tzm+L49YiML%YE5#dj$f?l+_@iUKAy-pK^=WByDSApJ9F4+znI_9*fFirrGn_*`w zWr>fLali{kvT4oK+5cMWkbl-1K{ASv*SDAhc(PETtfN!T=-R>Z_a#s^F?<_TF&Kiv z(F^G76FpmRRUJ%tGsa`?yhAtey;qk&y@r-OB~SeX(O~80=Znh2sN(4fWybIPrp~!r z%&9JWJa=1t{MELZs@A1?Z!c{(tyf=L<>q~A=d!S&a^e)UsW4sl=cCZ=P~&nbb#dSo z1^nU9pUc;{pG`J9kiOY@rsqsP@D_UJT#|9^8elH+V0@wI1X(Frk$=E>jlJ72JZog^ z&o!oXy;&Wc{@fCJPp3cy@6YDb2e<3xR7M^s-#g~JEU0Eu{Ev=R!p^6I7nj&{J|FyQ zd4E_-`PP93n$DH<^znM>G{tlH?^n1ykb#DThNj;M^YaDu^%bVOVE6rc`j>KOnBqk^ zUu)JJK+P6nn;eM1P}WwC00qsMS)$lPL{)@hs@NZ)At9wqk9Z?PxmUmQR5&(KPG{X- z^FM~>3O}go?4GZ7HB9rG@0ri<#*CMq?-Dz%`?_peDCobu zq~)#s@^Z-yeEq2Ax}R@z85f*7%o++feCJS7+yIspV65pj-zsb0tkTW(xVGDDyti&- z7goFrf`ZATSA1V*=#h2He{%vg8Qn%~9(?rl zDBk8qVYl#<=DeN#j*=l>Ux?pV8Vl09%NPopQOXZ^4-|^&o%+KkZ4ZeL;$M!v`yysN z_?FsII-&?`E@+l@+g5k*S4#-!9qgR5s;@aETeazYqUq_`x>m+!_zibBJ~j0x=zK99jKrd4V1P)=ID|J9>N*~Vjf2(X zl2(8)>OHNL1kuExb%*KI-f%AU6P{&bmSv)^&TkdL{ z%9lvDw=o=_C%m8A<|$$1WvY#lo=Tja9G$eva6pn@rae3Dm?Fa1qw|t`BfKI$9C#&o zeF>b0xbZrC&OGiG=qUrTy)*9e!EP~RVRMfN9mGH4mOMCZ4n2vaT#ny+8d4Yp*57$s zZyHOmV@5!IessQ?@oG(i;ctbSnwtK)yD>JbD*ZdWNnJH0yG_VQqPmMKh|xl?W7Aut z5?=QLiDo#aOsL{puP!^z35Sd*EUg`i-ys>PdZM!A*A(K$U5YBOIx_#qJnR;-J|Uj8 z%g)+r4@9ql;3>2n$Kc2;d}s7mZSVlLBQ_aPCAX`1nR8w9Q0Gaq0UmF>F+uPQ4}4H5 z7?Rm-M#LX;#_Qy1_0PmO|K?Z?Q(P=_4Wp!yuu;>?eQS~(UG9gYdwt`>ty zOpoO`9^-Cku)>ss6GKEE9-b3sZf-3iZ*MCT!qFTM5R8n`L3GdQKBH#;dTp&`aN(e<`G*|0LvhN5+(?D=QoBHV z2`WC!C{MO6K!&H*Xfrr~rJQedlfc2j#X3(<(!~gP-C2SiadpG`cA3^njkShJ!#Ywh=cg;1tTaNj)%+ovom929~Hv&L5F+Y1G34{GsVnXK`yU9Bn}_!l$E8U zG#OCXzEw#$N-0-+_{z1TrB=m;3X(?*ZqiR{HpK zvtg-*J)-5RHbU2(%syK}4LzZf(N{7jB;$=RGvSB?ej^*kO*c3l_qbpSOjRE(+);C; z3$E9GeNz_?5^ubDq7^<({@Y_zSXg4R^e?OPi5LPMR(dz4qku?^ZKoAToIP-9cW6(W z7AL(b8s!_BVtGp7#^_duoIRA70jp{ti!wIUb9dn}vu}1uvoL1TE-Mhd+b0j4^dO>m z%?_*!o>JQjD_6J!P5~v-kNVl=3^fdXwpQR2XdY7DUFJmZ%%U$;^OrEX>FrxT<92fi zK>d2K?N>jPS3broc@0u2OwFChvgQALCV0B%aL?B_OI|}?v1aI1I5BCj=Lhz%BP=mW z)Km+^<8Dd6G(=_HkC-w?0UXU|w<$8TK%5oT#6l8H6ua7C7cTJb4_KOO*Zkwky3fi> zK~?^@SuZY4zZaTqvt{>fGlV$e7a})(#wR_l2XPjn(202c-|v?qRn`b7_hp8HrSKOW9joV?oLh8B3sv@hVZtS9XJ4*H^P33^C7_UsHf$GEOK_U9rg!wuCw^i?)n8+7TpNEa_9 zbET&GxtptF&1qIOs+Vlt$PbOYn=Ypcr>O(Q?VXHEp2bT5wQ*T}y_>dOypqqADbJmn zvBqpoPySeSe7bSs^eN(+)0(=bBA4-k{aM|yF`*?P^=et@q2s^We_}O{6%!TGE;BSp zG%MDq!vuj$!TQ7uLknqV>7Fx^hfU+gz{^bwq=$N2uVeN$#-;`Cl|Q`Q<>SPc^s=Yr zfSF@gpC)I!dz%fnXB}dosl#=-Ewfkac;V)cXIrZj{+BGK%`viW^pekXjYp>xAe+Ek z+t`jLbo<*$r6e(f`n{q4&#BYag|e#EazDIFLFdtYz|u8+%s=t+9^LdWJTzDFAGuHj zT>Y}+bcu%Tn*6`6oLQ-R>2~lj@19-P*UX-v3&c@v5|{70?bqcly|xJwpZdl?#ksYg za(fGAZ?ZA(E(oQ)@n)w=ldRqTE8i?xC|1n2-z|E&@jlj7*k>>17?vzJT`=v>d#pZG z;drN--CGpTe5z#$I`6B)Wu$(d?YG9_T~1kyt1@k-F6rk~82Fxj?N`qc)X>$`VG3S7 z@v=K~)#k6cS9@vQa~^l75KD6aR?L;TBx-!lS$S3lD^!36-)d$*u)6wr8&Ks|Kzr-x zSMxE=E#Dal@Ye9 zXU?l1#utZG;J4t3(z*dy9lIi|EN9hsJGr~4=f9u1Ul~)i!n=&z)fgYGI`s6dZ04RHY({ z5#+TWB8rNu2@$cevA1^>&5h1q?nlNZ`fiy!$)k48)JTNm79<~4l|muqfB3O{u-M>r zE$95iYM;9vs;{C&tDwz6NIdpZ-X;r=j2Egy%vVROFeQP-G6^}%-`6Wd{f_0lGk3WZ zCE*U%CkC$W6JGecOOAw;_q0A;GhYqQxHphK2f3F*Oj{$Kci5*_RJ4p=MNyY$n2dRs zN376JytFTJcoW=I`|yJT>ghQM$&%{Wa${a&%!I!xh+H)2YB3*4tAjxvwq}t&r~YRY z;#T!mD4vab*&lL|0WWX~;xU4=zR-GBCCD8tENX5v=4XWDn@X2dER_ACgkXIG^C z02aW*Zt-ZIwcZ;H>S|fhA~~Jm=~-%- zlfQWmC@j^#wV_Xy)&&=x~O`!M^ zjP5P%-73Z28+<=&a(K@yBs}(;9a6S4FyF>Xf=5vA4Qm#K2$Kh@VdPs#i{o$G-}yI!po8Ej#cXARtR*%l3)h8+mni zAu1}cCn`_|g@9A;eFd0=X+o-HYnD1Jgf9L5a^J72C;(8be#nUJb*UiN7kbH(DQU}c z6V<2H_<^w2~cb}j&pOdtQG{`ryHj8l#r@R|6uU^3^hUd(HHa*Q7Yryio+P?RfZS7paML=6K=euhbJ&@R8 z&3!!o^mab!x|&v8MqJy{ zOJ4Dj#a-`rCL`~xsVv(0@!7q4lu*K1j@Rm*bDFVi!O0bWG2vIl`|nXFU&SPs=h}8$ zH?6Jg+^%9K+0DX+r&kRA~#`-C-YaB23WiBE|VaDTdi<%_Xu>T6xB)kr9z@#8DB>t%Fj;$cfX zlW9_W{*4F2+33_TXF|*zQa^dW)1QGbNT|p`wck%s`UOML`t8)^EQMT^%Ue=9*&Cdg z+En`>ba^wm_0-X?kfXdWd#UOsr<<;g39OQ78hK5$M3l!-3~{EPy^Mvj1!l5c!Vyu} zqGU`AC>i;Za;}t%b}PY_b*{V(7C3dp*1>P}&J&xpFwc_CXr%iwc*_`0cKuipVzRx1 zQEA~=j+(BQIh6Kt^y}|gcD0rZtb`MzJ;7XWdg1g@MikNsDc+Eu&o2=CKX!d-(HZKp zU)@cOYW&7TLrmAy*SKUhL~v(m@Lp%<>deQzBwUfChy%Vl!9{Y@(lPXAo)aV&ndG55 zY+$rUaVT>gI}F!(ZXp*I7LT-O7wZlU7z+ctBHykaViof93-d86nyYXSfQ*Dmeq5DX zs1kxzYk$y)OnFJmT=J6v2?{CXhQ>}{4@DPZ-|abhvG>XH)Cs7(T`eJF;fe{|FZ)u7 zbf;?+h3*v20<-D7lhyb01R?f591(4b)v}iJ!p|4PHZ(Ry$mxPPhcx?|TA>eX-z5m~841oUbOL zKX=@h-oc$_&f^XBLMBZD8@T|vZOuQx}Y?l)AK9!hVLDXnp>UJd233 zj_b%5ozSjVsgC#(P0TI|+XCxG#k|#s4Ku5Pih~jN`yE==pSC|RI#`BSXY^6}Bs7IU zv!J_CGPhcqn=)07uc#YfZc(m{Ay9~v#7iCYRlMWgTU{FAx$OIwIxwld=@mBLFIYG@ z46|XyJD^Zm(>#GUhU>YE5!ikaPY*Y4O7l0>A5pG9wuc}^rpBb|S2>sSsN1ToPfS2s z8iiq$*$EdcI~F*l&^>~?>VokY2Poy|6DBO{FLF!7TH-KSEU#E~eq@=BEqn*F_sbE! zQknuzt^x^J?LPgdDXzk=NlcqOP+K7_NkoiV%94rH)iiyv#Ub|@X5a3(gXVTjnJF5z zpi}H9cexa7%&@r+^V}Wzj5?#&;`z8Ri8KKXHorH+=Op=%%qO~2&*fPi6-3pBUqRHd&Q8e;BjVQ$h z?m+vXUs}>0Eckgllz}(!GFM@72fu|G<-0cBaW7MnjYCk`Ki}**4laQMn>)^o%butf zKdj@%zf+nXytt)Pvwnv=z8yz7AQOeY^6&H_oMm%yoYHmq<|fQ_#>6-%L)P2XX3Rfz zu>n=Xq!$NJc_{MbHGZfTV-3HIMpoXoq|jjT^n7kP3c7x}B)BAPbw|m7cZdn*LAnZm z>hW=zqG_=hn+&&F!w!|8ioE)(bhP_ym~SZR9*zGEmSi#~bhz6K!-e<*g*Vcn@@$>_ z?cm&h=en%B=Xa$o|J#eI6zQ>&PPD_~*CE48A1$P$t=AvW2725OT!=y>hBf*jHo%PN z+)=f9b=}47B@kOegEtbI&y8a#C5pq=r+Y{wmO`l3k>}=ai}TiLu3|r*&B0&E;GrEL zg3!Rk+Go(FfS2j;@AsC2&TiAy7?ho{IvhH5tF^94570DBN7BP@n;-VPu|TWPZRz)` z-O(j-es07|A3pu{s)6mEgnr9zbF!TFOGPdEMTIcr64QZzK-QQ_Btf+Ib_B555*K${ z!CC~M{~dnn`BqS4mfYLxgQVj@0NecX)@Coy1x-Q{nFcokCsTir;-b-kX$|QgJ3fi! zGoVzzD#@E}@e>vW885b?|LxZg&vCJ!>u;E;m>X z=5|CQz{HA(IFUKiM}2E?_rFe2k1P>-Lg6G{4y5Y`4rW!24?1XPX{CmmI+)|Gf?e-{p zABkFtNkq~@raW8@!k!%8!QU+ZYIU@|@Vz}Ju1(V@hl^*VYW#9w;G^zZcgGOUT-I)N zraFqw*#1di-;+osdo@B4SGv%40L+aO^nIb7{hq{=)7QRhXBK!kc&R{<(F#=9UimFB z&N0mN1xzpnR7U594Ai(uk;Ns&cq0UJ(1`V`u2%+z26#Sx)9)o!A_7Y!ajhoUV*@X3 z|J#{+rlkEX&id`r+TY zIGn#_H5z1`U!nWk-Njo`x#!Ys`(2t9`|Ngq{^c$?k7z;;_1>-k;3i?l3F*7!B-Tj1 z9Zfrzh=zAEyU5gDY)aGOkns8%ypep+?u~r}<9QgbiBz_oq7O7j4aC$;4RGnIDA9{g zG>j6VC85Us64D9bK+y}t5zL_}6e06_T#(^kXTpwK{|3jPiflUfo6u9eKI?}|e5c=> zMjd1X+Tp?u#_;`iH?&r@(-t*ZiaqfvQL`d`Xib_OCPOM_7FWKIpYNv89`P8uAv;`) zk0T1%US%0qbL>gf>;wgO(BjhyPw;>*rS|*4jW|EkSA;dn@xx?Mv1wIg& zxlfk>RzG==(@KkRi?YWge4Wk?dxL5HUzqp#>a9lkKQs28bZpYyC4cYnqta$?RZGe*gT96h}^S~#7i)3w}| z>t0RHdZz!eG)H>E?LEXPA@ptVA>Pz^qcRtKA<-5u%TDZ+lj;+U(7zt9a2W3GhgnEg zSm+K-KVrm|>TcPi=Ks95NoPF)r*uCrt8}nz>XQHuDw^=FX;Clc4BhQ2@sE?M`(dJ2 z7*AuJUy2AtVYaGnbovD_+DOg^m9!>5aM;`tttsS(kjwZYqs^F5o8Oc`yoJ%unqmH9 z`{){X(fwO&#~aRlr2I$VTwiLn_D`%bzN^80W-^`XW|}QOWW%p78kHH)42BXF%?^FT z42OTS4M!`UZ}`8cz1ip4&KWr^9(TOd;wqd8~6k5~R+xW=Q zdx`cLVD!yZPjwak8=)Kiu%fZWv8~gXx%u@^Zx@-SE zYdZEg9vQ5k>ptMb6qRUrX&h#nE>aGC=WH|EY3r$1D^oL)Z}V4_fK^6#L}bq|cm3$C zDg9uE&j;eJwH8S1DqIIUp#t-ue&;r*T;7SR%tq-F#@Cxl;*AHN?4cy?<)aLggpPjgM6% zmkElcj%#SYF<5yP-al@_bK=Uw;H@I(y}#=IflU;NOw(tECt>)LEVDQR&(H zo(q6jLW&yMZ`frJ0Mdj$+MT8Em3}i~ zObTf*ktuS8a*ro;i}b+*wFPN%fu^2NfWa2~H^5Quync9-RLW1kcw8;$amwp_2%!Fg z1*LuGo=(QiqRuK6^6Ox|)bk~lcEuh*fnmBEmkIIsGfa~k==h64wdpH~GqOp+S`?KE z?N@xK>P){h-FRlm1LY2mQ?YffXKD!}CwzQOIKp)YQsN9p2x5MjoFJt+>V=wVwWjI40sTfyk;@Ygh5IZ7J_>~qYq*jrHO}OPqx?ZLl6z$7f#_w`4h2u|yR!<#=LX__B-#O$p?g{vAhiQg{M2G4Ajz=0$#z56W$%a(;s=s9=njg z*CGyM(nH9DmAsKC?ulGyKLA@(BZW zf8tjae%wk%W95qznnW#3JO>Z|-L&y9uN0F~K;2#HN-u^@RhsdSdxBj}t(UC~+X)?^ z|E?w#!cB}U5s}<(_sCf%NUx$=LJP6afFa9XEjlEO$S_b&&8k-E0-19+(eL4WjX3c( zN&-cY$f?opBx4#c2S*7upx&S}-pKODG)K-K9ao*iw7Xa^&~8AvX^#ro)&;8umf$*$ z^12_jFRVzK-aRn+=tK9};=w49ld6wMCJWbP(3m<}44LS8=xXgnw z4Y{QG!k}cYpuu(#jl80EaJX^!(53skf&|=`KPvScsg<2Xhg7lh_ZKMgK$pjqX5-o? zXL=ktEBz+GmI7gl$Ais-1#f>fs*rL=walOpsxL0fR_}x>BeraQ!waJNa#^I#lOhs$ z_!rO|V?>9DdlWcQPTVvxy*iUnf)4EJB($0`)cCG{2qKn$2%_|2&PZMiuy@fDx$~Gs z=)g=^N8t&u<{#ktY!a%&%Oo8S@5R+i^tq2A@EQ06+NiFu@`j}dU53%)#d?)*$1yhgg!`^H7k3_q|c?f0# zSZBy7kT^Vd6tn6#+<820swkbP{hh1~s!EBRhG+gKZj?ATqn|VU0INwJx9^AX1@we= z0};hwzWL|}B4j9Jfw)v6tF$6(s6r;*gZVhUi3yKuDtE+(?I<)O4$ZVf%~kVWGikm6cQgEHL;o9Hi2x@r4BypwSdjh3DDXzj1h7h(?=q19rHH-wBA0cXO(ev{!nBls1YVBq*V2x4u1 zzOb9u4TLRU*kp5ehR-SE z#|~#p3Nvwh^wXm9x*_IN%3>$^I*OBjuK)HFR8h<3hSD~E^T3~$!w_4K#X{|?wOTCYpH9l?lvX~Se z6WLp-ep_2sDC{E$DDCng-%0ZL6Ec0^1cw=dh?`LhLWJys&>>JnLcnY;oG2Wop=$m1 z_{_}6+_ya%&?JF08QnvIzjW4R`#R0`**8LkX%P<9pdo-}@(6>NjJ&)$5*+UDI>?5$ zWi~nK2NEG+6)<_sW>*r~pmMskUoG>=10dVh;lT~P#|O;BQO5u9ofpcDL~mZ;ek#$gpY=jna_Vvy*RsbI5)& zkV&)C*x%wxb^|coKNCgas$Qk_9%eW8$kD}M!|-uJ*FiFq7-aa$WkEd9C+6*B)%i=b0JV%z|A>L*N|k6xi!g}q}D(b6q7yxain z%b+l;Wm-ZRmUcrz+xb=edr6DISo~qnt6we(6^($_D#3==S&}Ut1ft7oO-w-t`i~?!;h2*;yTv% z;%@F(V$zTiPojd*FRKweHtyx>4bZNq0UmYOCuFKseSkHMO1?zCKa!zZ`O!ydA#8yA zT8_2HDCXa+{65cGh;}&S6`F%(MH2|{@U~MI}ffk^(k!>FpyLv6+axo$$hTFf(VODCND?B?2 zk|c&08VNrD)VLHyu}w}!+BG`#l*`!v zbxCh4?*|<5~fO*W@Ow0JCd81tPQMAw6EX1#?^`)Gad$P7&J7_ zco}88{J(xgiLOEZHUyeMMkdHHlST3l=uAz;ML}U}lAdBNDQ~7Y*P8F@=#eif;@lAh zPvz^DEXUTP>w{_7>C-5bi(O4GxaT!LVVblj5f+5bRA;Y!6MwsPJ*BMZV=-9GS;|c3 zHm<4+!lwR+e{sE}ntRy!M%zW;w_J<<>xaYO#-ZL%*5|;r5Ab z>>588NR*eIjArwQj=6B5vM9(JqrXs8S>qZqU}y1{gyCg&#G3 zFL&55eC4$PuO{+BUL9?0Gn3Y(TdHpMs|j%+6WX!NsWL(n#^ltOn_(R=lj$bBCfptM zazCDx=&&5-Je9?Wz{xE9hgnMpfg^X!s*Bu`?1xH%jD+7K6;CYqp2#gLA1}A! zkcs%{F$4@pwxf6-&sGYuz+Uq04HwGRe)(oIyAzV0a2t-!XWh?&Cw5I8LC(T?*$_zw z#Y3LZF15tkD6IP`r!Bf%ZgyHXjeqe3bCWUBy`@lWw!hgqLq!)q_59ldmN7;q2)zf` zunH{PN}!Nb^I!6KVt^)G28@sUn3&}6zHnD*K2__H1pPD|;z2ThS;X>iei!ZFy`Yai zoA0-IG$Pq)2|#u|#h@R^9Kd&)&ykHx5y{s=CLB%ct#H4|dsr{=`w2n*684*7MYPqR zZ%-gxT&I)KzYy_cg{-=Yd;y_jCa9?k+5ERh+TL*%B?#HS4LrxhIr zeV67DgyhggxrvTDtn**YdMPJLRdUcMIng~-MV*z}?EbxUY!QGcsv|yniBJms#daX; zx$I7Qu_&YKGVwZd!b|^vvIAV2!J!&mglfSzyaK3jDx{KS+9=$Jl8a$0A2@ceINKVxO}8>K*Vr9$Ka=kX}rLLw&+H0=g$ zqPTXq9t~pth|(()e>DZN9vNxr5zs|ZoJfLKsnizOpA9F+U-}KSi-#AHYm3k;jNlkx z@G32x1?e@W&`DBOczia(5W9>iDdkDn9v^>?KAfl4iT@@Wp2dt>Q5e(S93Gb|+%$$6 zk@9Nj2d=pO#z58p9W@d3dqhHjE(^DP_I}Wkf*NEyP63v(b|&b8_+27y8}ghWY~ar7&)~| ziOdX>$uwNQ)JT)wGrhAZdQbu(qn^f&nZI-*NQD&&u6UMlR#B>hB&mZ{J^F7Ocu69Z ztp1O%X?_xFhGiBk9wPKE#NRs{5rjpo5>vCx!dF%lOF!@QdEC|LcU;H*8XcR?#$`}z6}w8OsV>2~QOpdVl8e8P z*By3-ztjOk!uk2lN$vM%hnF8$s%;sH>fVxJwXK#60hWP67hDEzXyMo(7}-e;r#9U3 zah{gl%`cDtz@kbxkQ2VuUuiSg{{uMpkUFkXBHwyN;dvO?#~@hV{AY&o;#G7JZB>VPd}|%>F^|&NV69wF)?yiDXOET^|Y6w%f>yQ zFn~2;l=;e^D_KE>SLL$*jktjjx%O6Xn6jPQ_p}9-pT0ABkljm3ma+xt3RQiqM@U*B zML*W)Ji%M(L&@ukH*qc?#VIje%Xl)-L0KvzflSP%q=5bf%sCbkcJ3-p>MkacYW zW1bo}uwF;ELkm$o5=*%&nF*aXgAUAzf_UPW=J(1Q0>_MtM#@&&reSv#o@!qxFp9*Q`jk7euus z!`3I<`mo)i>W7qi+>mP38|iKMM~EH&13PWHXhG{(IH#MdeIaEHJ}S}5nSdZl)KNs} z7dQ0t6umpB0rd$fA156w02A|{7lg-*qP*IHjmOqiLMl=L$$IfLRh{qo@xI@8Aax(0 zykRW?qvPzn-|V`QCwn}6eX+)yig)27Ws=|YsB<2v6mPE37AEcN+! zbyw?teaSac`zd?{Wc#KNeBwDp$Oj3={NCrlQR4~sR8{_+u;CQ}-t>vm)}7J^9uW)~gU1-Ce^x!`as6kIhdSdtI7KnmkE zttrGW4uMmA|9_Zz3$C`hHtZHC?rsHwQ{3I%-Q7zm#i6*nyB2A2cMb0D?hxGF?c{mS zcO*X`V~?G&R`$NvHRm;^osxM8XbAsDg*G`lGGc1o!Wg7%|~p!BD>DwfL`$> zX)R7Ryyp7+ctJ*Y-~^CrneuNiQZ2mAQs89iKI>QcUCn-_$FC9DRtADfOkHNnS`ed6 zu8|?%wvjF?!!VL#={~hl|AdW+DLGOuf{VMNuD}-rcv$;G{OWMDTIy?LBL4D6WLotR zrZriLsezh3(Yi7{5^~GN(pa|rNckG}jS+Zg*Er`CN%?Gg8iPRReqN`XWSj*qy~;ev z%rJ|TUX5@v`+&nItLplgc+LkAC|S6|=HcQdKDDL?j;0@vRjEtFJFC~J%BM;hcOHq3 z$T|0HlQ~A0>^T9)rE!MBgQrfd)vMzR^S_8Cp*iPyEFuSm8PXq`{m4 zQrDkmJGxC&9Blh-)JLzVH~yY%khLU8IAA_cf- zcSN1tpZoc<-cP?~B)Ug!Pc5Hs-hU2IyuME=RX7-9_=)*0&!Kbjkt`k_QAopi<*dqJ z746)WH}Z4uoZAa0>@RfnfAm?~>1r6N?J?-OT0e}2jMCP2d|)~bDhP8%*AF=xj}`1T zb|%L;W_{ef0|EV?$^p159hOE#BY0c<`j2Pb++%nq&qWKM-NK`SeuUdu@>7!o)3?|9 z<^jhh9)aHrrIxe%r-%`Mgo^j~wem-Na_rq}-~pqS;klvtM-5q_5KekgUwy#rX#gLY zLwky^z!Gh%tV<@j%01!lOgfW(F7PRO89GbzIUNIG%}|P)ECkGG_r~K6hrI&8N1QwZ z{Tsd7xxz}2w6MF87Aqq5;o!nr61|qAE1h1~G>u#^13Q3#B+w+HISI>P_0P2cfR3KJ zR?(C^t5CR6zRoMD-O#SRnz7SQ^jX# z6|~GVh3u(iOlp~4zRw&&S?Ds1_6twpw3eW0CuVk-krnwo(wgP1mM*l0BUFB&^-8aB zmsG$VzS#yVchUJDF8Yyj+XK4VU)$rwVC;lh%EZ>J= zsqn5XJ)aYB3IiFC_lYd6+Ix*bw8FP6)pGXbQ(#&)6BCjhrh<0nzPZllj^!36`n$>z z(!9P-w)dQ)O0K=>5%(XSgDBm4(Ty8Awk5YQn|=#l>fuy#SWy`3$-S zkD8cFE?EM0!x{KsZ_y(0a%t8>BHqqjRYg0+a#9^yM?vRuy3Qk=@}0T((9$0_+m!w3 z0Mj}SKG{47vH-E*;L+iU!QW)It1{1mzynM>|kSUMvJ9&d)(P!fHx`l?q|$`ezQscmTzFL@$Y&%Wq$8PVt-3Gc-?x( zB`%^7!MyOgi2NyW3z?SQd@3<{w*m4^yiZcI{#iCJ7`l zY@?9UYUCqLRhefeXF%3>vz6A+zA(u z+$Cc$?1FOZc*H&senaFNaE-TC4SAY_V+OT%QcP3S@*90_z3SwWQ%cC-%Y_U-&7F6N zhW&N~SAO&Q^1s7mZ8QS73N8j~?0l}zHa^1);U0D#?cc={*k^inp4=b#&isA?9MeR>p~?ItHs9H3ce)hj~LpH)aMt5#W$U3sD^7JCt&48zP#KTX8(Ov?J**>34<~ zLVeT=Q7uQ3rn9YxNzmR?6F8Dk%>wZAy@b&S&mstE#h-7*^YxnB7_AHS;g%Urvo=;7 zf)O7wbEy7szicDWY4u>t0X}|WW4K%mo36i)0P&#aUZ#MHmd4k(ZR(iAuv};}cQ>XwBa1B#J~k znm{(**X350v^PBKAM^G#PGfvow7C4u9k*@*&d=E`-n|y>&--CAV|>ARiI{JvbD!j` zK2`!QYd(=#V7o430Sq`c_2c;oBQIFU9UMeOOu#NL(r={xcSNq)av~7%uj)GcYRtw? zn_dfsu2(gS3n>DN05>2iG_J3zqiwoF9&_@mfS&G_M5we`(J+wvl+@^XKZ$OO*v}9B z&*Me+^yZiTOll49=Zb;Ejjva;%sJ?4C7hE0E?nk`51HpD@Zw@kf82PKQ93GO$VmS3 zL)Y{z7w{pi$p3mhur$ne6A)Q)^9CW)8%gh~D0J$rK;Q-W5OqH%yyd6MiH$eDR%44L z*B^MYNNk5hSg^s_?)Stku ztsD8bt**~VKvR{dQ}ZT@y?4?asR|l2GNcAtje^>LFCn7vSL~YiaU!T{o4jR&^yr5T zjm1Tjp9-&Dd1kTM(GZnfbUYgaR%6|-GvZ5dm*|vCn>b-(;=qTVj4zYu^nb`3Y`(_U zhsO4Py%icruBQP-0lu3XZ0&@{#rF1y!zCo<#<+F9pbuH{-b}O}e`BH-4dvmzz#xga zrkGNduYemabGXx1SJCm;Zf5Lzd=v_XmL&n$@Jm;J$J)|(%%Z{QD} znDowHt6Ruv)ZB#RSJU_Qis*_%1y)*{w&T&89pSHz+*L3+*2??<#O1JA{#?Ie-)D%Y z2p;Y1gHzEm2s{+_RP4yX8J^WXmS$t&bNI$~>vUbGbFLPp?w|(H0$%guR`+hE=FyDY{%aP*?Gr zPT{QR_tqVdV^R(1-L~bmbjxfu+_B}M7eGeC3|IeHF@VG^82o$36dnz=Z{>Xwz4s@- z)B{0a81;HAJ&l5>d;F6aVw}p{@edn|K+(UvV2=*eu=7P8O_W?=y427Tm5(!o=}E~K zsDdZ34}b?6lAXszO8hGlsZ~S0HsiC*ZT@wUHZd`-^~GB8;&zG|7t|#hePw9-qIdN>@++qI=V|W;xnpj#i|i#KN_bvhWatX^>LU}IT}pz zF3EIfh;e!=up@4dFiUgqXFt)>?7A$LdDc0e33Wm5_`VeV8u9Te@oabu#=+o@m}o)s zWWFJ%qpRne8LaC#Wn;&rMGLu&UO3`4xYvNr<%q51)S8YD#+2V^@f5 zM`1x2eHr+k*Kql&ln1-C9u2C0m+K$7?h^9FX;uR2Rd|`QmFW+R!FPYxH_?)EcjG8o1JDPlR(vozE|!Bu&~^`;bBeM%qfSF+tc z3Nsv+?HU~-;zX#?8NunOP_g_ht83L0)r*2RZehe_9+}{)`AG(ziLn&ns$|nZr8)D!Zf;j(<61Ll zZU45Gh8<-$G&c1`UPVWba&Os@Y|5XUwbVwvv#R=1#jP%6TE*HXAtoGf}_|pA`$A z&OB0VUcO-bT_{b#;TzPim+wRcyx9BSHTAo!xNHiGJuDx_{89h*r3m91(^_@`)~Ie% z1Q@%FFa`eA_0FFG4oHo%xQ(3_B_vILsKu>0>3)9))l-+08YT@YsLXYY20P%dwh4bY zZTLL>n8X8Be}@J2TPY9SGKqd}`dod)eWGnKWyYumNrS4cwaKL!bdPcmAGJ3F9y_0* zy)5|_&AB(ikd~OV=LX5+B+F`vDt+c{Q>L_54%@I9V+J1yLW#j%CH+yQb;lLOqq)Z7 zOs9n|dFG1M7DQ&B8@{TpD>~$OoB=t@kUIGxB{3~6+zY=Q*1MB=6!1l753@mCDs}*- zyzcdg?cVS&YTKEC`=LOYx3TgDF-1 z9~(+^s{D{8rJ;dFw3YBvT)f!O0Ids=9X1kGmBH^1-9s{EZ;JQZjI-;)5n__&r z$x>&h*uQRRBn`pnPNg`BmcjDIkg%OH3Gv_C_yZtjZRN#sEWD*#2VJwenw$SORhLmv&^S2x zsH$I#vzA8Q-{?LgEt?2$`6rPBHp~0wu{e?GG|9e*1CF2V2Hum zM^(9tT)kT!en|icspH47%x~a58 zs7-e3sl){`X~i*XOz@yI9uCOgLsJ?P5#;Z0Y-BLW)cMlHKO{@Z(_1icY%{3;*HW?O z=}&3$?`;dQ_8 zH(_&gIN-7&Sl!++kI@KmSx(V!@YIi$3HRG9xn&yz#-nw(9sZoB&|hJ z7%ItdHC&ng7O`V=BJ6OeRshB!X)V+2*vuRP=TK_#KX_KgX0S*p6Ei@n76KH~ zgXH=ed%oQ6!Tx%%?%5ZPz>afpqm1yzJ%7U6?+sUeeo?o3fqFsV?7!@< z0e1Es_FGO{TS2e97i#mlYa4ft z)j68?DsoG0C7yuC_3CqP+eGV152Ligxs$p(t)bJ(Nt>y|46WiBk4!uHXdbP+eT3%5 zg>kf#kb#uQFBT z3NiG07i|s&kCfNA)rJBE$vU>w)EM=?24n-ls40`w5guY?58g%w1qPoM%WdAGC2Pb; z`IOHrXx&-E=Ys@mFx5D^Ju1!?s=g^>bbLD?MmQ}Tldm1_@7C-up*h_KR09^Vmia{9Fo`82j(V=yvK4QMz~W|C z5b7y6*eXN>&w&V80JE5K6#87YW3R~^Vh6&PbewT5UUcYLsqCP9 z1#BN&OZ8dz>1eGQI1t}(<5acUIPg5>x6bVRUP*Dk_{iB|`?BhzAGDaQzqv)=l4Vb2 z^Rnu}yaeQ{>?p0q%C$VxRQl;gb6j?b|B`voB;>PBIC}d*6J$sL9X4vB$^4~yY~Iyj z>@dXFzIljyvUA^fKV6~iA60zw%h%$ZB1Xv_iuFK_5YknFfK+A^t%D_33NPG<;n_rY6bQAI!B$_3Ct2vyF1L{T}wMuPD z4|jTiLjF0gavc!EM&)&Zk{Pq~&`R?VZ?`>IIGn(a~C7+?d|c%`rOAK z_zcsYR~gGKFL}i6x=vPNUD)fnf$hRAe4Cn3z>`y5`}^BJJ_6?^nK#OLQ`tYtZ$|iCKW3cvMjCP#*}zBkez|&xIl=LV zYh0JaSyC$;|59|E!U1{Hq?G+qqwf(6a&z{O7})Zx9Z=;HhG)AfQL~s zULxVKPL`(ma~x?(6~#=hi&Tm}mcQp@pA}~jdVxuleCA8hL?_Rl=VIP zkrg%c_%r;G;DVp*>gC`)h57#Ma&;bjCvP{E%=oFfq$=Nbf^7_wNE?DXNnYt0U0-#n{+DA=%6y?hRzx|A({vqb=b|YFBX+o=+~D{d|`QNO1He6 zC>)RbmFZl)5;bp`wh}fuC-<{k$e)gxN#qM=2RYRUeSZlKy8``n- zvn5S;C^1X>r=@EsjK!VL%gnsl@-Wu;n^tE5PaFsQ(8LO--KQS-P;C>X|xMam8WmQ(9jbF?p~d@d>$j5t4QC@?ft|pEDAw((+FP-Tn;Pc}yb~voIiaQ}l$L6lqIHtQD>{vL!k1LVpSSigk>or|E0?Rq$8@Pk zBUitey+Isb1rJuu^H|7BDda3tm{DglLOmF!*s@|NQw^zbz)&{|FNm3jjE@K_v5n5K zL1a9C1ZK3-QFXr+^Oz@lXf3sXZA7c8y%6sBU(dgvxyP;q^I<$TZY1l6!YN^hz{zsr z3$HAG&vnj)39%K!Dy2)?^3!eJDbIDF{Knf*16_6)LvoiK9NFxVefXyapJN`AP(wcz z7k$l5+wY&{YjT?J+NYz-F>uXh50eAms=oCoOB=OMCr59o zmt~vz*Xmhdl6IsotXz0#f}&c=U8Uuxd0RUnTnzW^l|Y=j^IR>XIUduQS5=~Db`mDO zi`P+|i?8dr%}~Cgi>DibT6CN6JS4s5vGvQ`4+TVHYJ#e+3r~ek_d0UxyPrm2wWJiM zyHp$r%15o}U>qRs`S!3}YGF}Wq2g;Cnq#VBplrR5K=Ic`y&gq}zo%v!dep>A&qw(hkl|Ju4C$hC5!r^`FGq?tXK?)6PlJq%OF&$#tt~ zN2OUq<3pvn4TPmuJN1pO?B$_SXP=jr{iTp{`w<8u*mP00Ve=2J#&s;tK}FZ8nhOQZ z!nVP=3;4&{&6&0TyZM8z?m^n~GK3P{(;i&=K^m!}f+5+1<7LR-)Oe}a{CrxqX0R4% zh+#boEg5M7R{$SOC?+E#=4rntyw$F71J9h2wzuCwfbzHremy+!wzA8(%yup+3briv z{9w8b;iK7$cMfMGQ|L8<CWMjhQm`7_%}A{ii6|kLg{f0bh06aIPy%o3o1{l+{!^ewM4f(+hQR!XWqpqjvT;&W+qn4LcQN_1PQx zW%fH%sOvd}MS+3FR805F`ySlT8Hla`AQ-4X76{exg|eoF>PY~BF{GYmzknf+29fI1 zJrdQYeZyf}1as5io|=h}L-shqd_;bfJtZ|#sGz1gn)W2o^FYpZ(`lSXwLhfvB0axK zX47LN($-U;1n0QG+efD~lJ83RH-&!%>)$mQ^+ebOEe{{1CG|(0!{&#kj#XRRRy_^j zT-ZbdNG$F6T1oTn5GJQW)@`}EMdIEn$~O8DJ?*KcSVI^z?Sv%0-&DG`F~>lUiJp8h zYK46^Q6$Q1^(p8oyZ1_PuZGQ^>WzAB{j6Zjw4g9l^Qq1EbPiJvwf_4*5qrvJYHSC7 zotSZgSNeA+E5yn|x8y?EpS&;k=Y`aVFE3KBeO2WvHu+S_bfmw({Ux5*X<#^8Pm4~x z?hDq~rd&axT>%q1*O2lF*puDfQpYx~L z>5xAS+X{>1ll$bqw>>-g^d@K|rzA&yb;mageAk4q`*_Ov&7n8|{6|j}=MhsWp;lZ| z0UsCBg5=k^gCD>tKNt$pJg3==}uy=IKTH6Zq#XjDN;L!_nO^Jb_sA8r7}aF{`N zfPuQA{^zd9s;C5_V=`^kC~vFo5fM%le3uGQ+P~IE6)3ebCl-%w33pdasPUf-%O_u7 zvyIXt<{K!yMZ!6?SwLdu^B}Z{4B6o%owN(K>r31X#R^sLgk)EV1jdAboyaFyZ2B~j zTnI_M+O32h4AA$Cij&Bg=#bnnW<)yqtMkRi^l9^kex*pPJjr2tgtEzp*;}^w#Du)% zWD)B&FKC387Y7${aO^_s%pitaxeKpZsa5L=??(1RKFL#V07yN|3?D{i_pdnK*-@+? z`WYG|bD@e*o2c{~#ZlD|{RA&Mh#<_u!_!zdnig&6AI7lEn16LK8mQMC2Se>~MPviB z9BRf~?q_6ObbjM619u`OA_v^iAv8%b-#YTY5)6{wF~?j)eL&>IC)0tSDeU@Brvi)0 zV)n|Tkh+|e@NQXtU&9?kbX*c#Mj6I&6RQ=5zXFI9qGwc>-fTjIoKJvc^|6P5 zT$?I~WnwA*|LI`=(@YW(L+Yu0LxRuH&{b!N-Ml<_P*(PSy+20yu-(e=hl#QfGtS1u zO4_C|r2(}K?xflBJ91E{8-ToP-L@c+3FeJ4uz{#PF@nt%eJW*S)2c|HB(MfR6{DY2rO&m=>Wb07PdDmER_DR%Q6 zW@?PCuoJ^1Ft9vmarE_9X)(v*-4=iK@OL4Okg1=vh#0@UpUA=|Jjpk(J#Vc!U#-t6 z!^7&*QB(GLE+-l)4u)I}(~kDk=85g?9l~3Ks)r-iQUyZBUKIxgvFtQb3574WqBCra zyW_e%-f ze%)31uUCJb(a2WWA-3?ScQZ`uui9=edb_yCMbpu-;*^0%V25D(`v8E|>u3Q}nE^FP zxD$)pO%N_>&bL3OK~u+j&>==4z{!$Va?wr^>kskG?X<-E^be zftf*FLc&1@`h)je_m2eOMp0z&n}^57SDl7OdSs;IkPRd>bBT3y1GYVZij7A`BZF7M zBD5BWsq-hDar4=l^VDjUBjdof1Ho89n9^a4I&-}xR(Ge-FYf23&9$7Lq>C1m+qI%| z*J;KieTo|--SYKD{&@X?GVla3c$Mito|9AEkf$o%z8(;*_}@Z#?u=2K)*g1+Lt6>= zRO>Lf4xcR~)-@!OS6PA{mUPU#3=AFaH)Gt*hoH_Tm3lV4grw8$YwCW#e&2d@-%WcC ze?aVwJqub^tpSV`bwtvNQ-g+l)*RMGt!88|qSOeCgW7|;v3$>EzQd9jKWncPnFS^L zInLWV9XO?rdJ`WVYdaX5H~C5OApK7PcmhJJ(s%;yJVZi{_~e7C9H(l0!-V zi2@ZH1YxX2{eS$i;8R2#bkb*aCM;2AGXK?E=jw^g_63xb$o(i+P#&`*=p}`T)nDlO z%z54Qlyh_-B5I9;zEKB#a0n7s3ff#G9AM@x$V$hBZRLibohk%g1=pkF5$WrKYUxB( ztJaPS2$-|qEe=(J!(WxUY9JJj2xFg2ggHkJC5)9HRv49@-V5H)yppclF0rm2#_L%w zFUI1t^utru&_;vT)z|;fIUE5eSE`&-4=REFh2w`QlAdBLz|fFeSIo+FQtizU z&bLb!B0&L)>vgm^(6elP?R`<}(@8h?vhx|KlmwbYoIg+hQ<%BJ;Xix~PL;v(0n0JZ z={n&CI@7nTt}0)gj`qCk6_`~4q$JipkwBMn;1OmL|t8N9T5oA0LMc zBC5)d*zKVWO8DbN(8+Rqy>VOC0EZKG%>E6KljU9A8>BJco16NVha2E*?}ugcy(2(+ z@tv4Aq_xEhG=YDH7gj9fP5Ak^-*w&7f5`f+3aw7kZ4PfU1aEL71m>|b%!W_7J1{pb z{A}oY6%9Z-$&Rf&;fX1{@j)x)LYya~&P^aanH~)j&;GNq(cD8(MA>$5b2g2D?QeN4?tXmk#fVGaK_rjI zJ`bMT=mh-bE;J|S8;iWH@$l!0CYY^>hDp=6LL}wW5H*CBbNX7tq8Ne_ppK3j(J)3X<>R?)wb(b|Zg> zn4#R;%|dy5?1#ZWK8X8jmO|5AgskUzQx?;JN^dX33$!7m9t2RD?=xb8lLd#Xzexqh z#fvyGJ1~@_>nuc`VdDo%GkZXE^xxA_00D~^25~x$WWb;691I`6WYlPaaN@vwRVIhC zrRk@hmYs$$$Awq7oldf@o_Tg=Nelm$16p}Pn~?Z1{;Kudq8K3l7*}deTDk^Nxb$8k}CcQaREGyPb4&^`PcgkFV?CI_r{h`n0#Y*WuhsjUa|yB=MOb+ zzMZacBvkb!SoasQauzh3BwvvbhF@1Vvwq~-AcTJ>_^9FfTP>Ru*W>fjtZ&c0E#|%E zEe=l}bl+z$?m8Ukp;9m35D`Y&YPs&MfM++fQfH*f^=@VXw(biLs&6; z4^noJVflT|>mNRCV!+}-URUR&p|XxXVjorDPLbh)E5B_H+sKH1Qz-IascV^GH5Qx& zoe~ezpk&%*Z7oJ0jp=w;#=t0Es#CEy8fi@FJF3Z&vl{1?x*KVh(ykO-in&7b5H--a z3rnAO96LfWurVRM?#WOd$@+~Wh@D&FV_3H|%FYJo2$zugg2Tr;z2F01C!^Nyg6R1x z!+Hxkg(vEexZ_gfng$xtYBrSHrO3L_1>g12%^;(>71^>d{-)WCIwh+sFw6zROd9Gn z(o0o@2BFhHF>|_%rmGIUHAJ$EAqaL&?u>o6SEPb3*3t@I1~-c2A&E&4rUZSK)c6WJ zP`)B*R=%!3Z&14i+a`T?A5=xndmMQt41KJjQU0YMrb&l*TN$4`{ZTAkd711$v|>p2P6_!I?Szl>Hk_km zlE^wHHc-vQ({xKVozB9*M8t7dBhdJBJN6yD@2(z0E z+He{m5@plsAox6Dmv18fcobU7t&B(Msk9rIfv^!H;?vTY%e8RwTUsRE@6YFuYC%w3 z2X}MW0W9`AY{+M8SR1=-!@=uyWok*8{4k>KrD-}JE+}ZdW3rgtJnYJWSchbipwFWb zw}0qDx-gQU8?`d(&n$+dEBKVc&1NbRP0GoO{FPxmwQyX?6fvd(yc9BuE_9egHv^sM ziw(0{reYPvbgzCXkctt;gVi3QwF(S?3`(o|gAhDUOGSiVpN2M$pmPrPIetxu_r({c zx#+%Vc&Fn+rg>V*^5xxJ|8QGxJ>XR!@yKb>fE3?_1+{N?K5=;$Y}pfsdKl70&kK?=cXRIa6dOl zuO0e3qROppWj6zMv&$T0yJVlP+LRqx=y7b^yn_a4FU>{Le8aEM`VRKam#O!24IdIE zvT;E&FFh}@GUNE06#bc7sFe9fN_ceTNs{6B6TmN96kRP4U88l!zjj~02%C@X5c70A z!nZs0^gU6ri(UyAS79nm zzq%`WtfhBF^W|+p@mqa?esTK>AsqfSH(osj)1tM&KnA;qvbbGl!RFtupZY}u`ZYS- zh8S$P!soa)6@pv4%Jd(hf-75O%^b#h&BOYnS~9vYD`r0GB`0K)XQ<{7tit*iG>Z%9 zy1mX$8RYBXlA^K!y-7EPDd7tVZ_;^*L(gKNAz{)Gk`c?E4sHE9df|B5!jWf*2D%uN zc-oI$_y8h<041|?96X$`T(u?y5AD!OxF++(x<6MFw)76K@dP~Y?@IX>#U8FSivsPh>kp!w8 zl)*ncX~w>y;CRZvwA91DHe(W8&42$wkdcvuD6cZQE)@=9O&+Ft}w7wX}fk-#7Y`^tLN=h=HX%jFb^o&?QGJ)e4-C%2i^gG@a zoZO>(DavY}YQ?k^2Q(8a6vq5c12QF}@o0PHs&0AI-Go(p^Ei2!Q)?5PCZ|9eL=6;5 zRJWf**SUeFo^QJ7hvl*t73XQYmYyotHPWb*w%s>WBeHAhthr%>rA##xlzV@$J0jN# zT;?B8>Tz?V>ev^i`%Dv#EDeF2sC0iTp24lHw0fa!dLNoo4$GMs-E`ESMJ;^8Tu}lD zVJBdiK6$>o>2%)MI1=;5o>pg*l}mG8zUweSPtZ~YjH!3_2=u?7#ZY}^eLNJzUus4I z2E&c@cVfb!74NKF`VKVR{X#z9)Rlp^$0;w-{sFQ1{1a=_xI?!>R*t3J4G$VAbwrGW zcsVY*uOdMNR1me!{~>w5Uz8orLv*n=KaH3 ztTYUJMoKezxf_!Jq!uz0`2a92q<&9DP#y;=8{yBpO9+qc=}(_PNScX8)I#IH@}?s29+HEZ$` z%_yTdhk}jF(Z8a{pzEqud^=|OP==2LVEOj{B?+2gl+fD56x4lGgyF)aPxx?rchJz9 z_PibAu6Y}>TsC&VPI^`D&JdI`-Pp9R{c&zkq4b7ZZSbO;#Z+a20m^H%o6}BzoP&x! z=7**5iV@$cx!6WDvZf7l82Nh(jbvP4Wl74&kFpCFgI6|y)F~QZw$B0hGG^zXy5BcuTnQ|zE8 zj14W{;Lc<6FG8y3YClXoVHvyUC`Y1kZJMMhEtSMm0v~cD}k`eP89Or=bx%KCV!l+E|s@cn0oHKGAP2 zg+`$nZD3o@N(~<3Vj3LJ5qBK3#ya(RcSOGKm{|u5j}BDk*Al>;?$7QtOd=#f3^Fk5 zo+r`;Tkuj}Tk%QD*X-jKh-I{MQQMm@sJWok+VN1J@Nx=ffX8xUQZn>Fx#i6@6Fteg4oFWoCUf13YST^6jh9hNJ)BS6h6yP{ zF*Y8H3pfe%{4kxil)Q6@rT&~r1P|3;h|(0I+50reuzqf653=SVXMlRKna0}LRgh#+ zQVWsL5B-V$2z)ne_`Xvc_9u+t+*iRM+dE|qcWg0j8PA^Vscs-sg6NRaS1sOY#Y`}3 z*-HKlpDFHw#?>*ym1#?fBWeIhqcd9f`715^fbC%4OjG=kAJq3T_a0T}DVN()@XV?^ zDWFyn?oP~DeH59Z8XqDOA-YGwq-*KqV;*s#h)b;b&08nuY1Xh-VVKCQ2y6fL>Po~8 zfzg#O!aHE}W+;&0I?>>nLJIj~Jf*Ec$%S~GE$%uNQPQqypV22C$x?u2Ffm?o;oPCz zg5&eVsibeQE9!N3u>BbqVigI9V-~k!9VK1hG7;Yb=vPgYON_+cNio4Uu;+ z!)RjRHi5*dv5X|9az&KSPUjEZ7(fh7b#=01ys=(5=_Leb4o}lJuhN!jjG=D`Y(}(; z!Y@WPGO4kill>4UC7JB+|KU%1cmb=AHm6PIKkc=lD})PH8!3t$!CCk1c?_1Rb6oRb z1WawnU5O?^b^X%mMap!i+w5*$$6W@r;7?%$K@g}-(| zOOCyh7TMZlNxu+r$*~+U>0jC{os27yXjRG#(s?eMk3uQs(&P5wpyAU}VvMoTS^<*f&J)u#Uhk*tre}6pxiSi76%g1qpqs-^j0gBlE*H z6&nu`AZtY@uZ>;K=>&gHycIEP?Xnr3a>4;qszRgv?!pQ#Rv=eBr9>}<@m)HDMb|Q{ zh0hWjXl>@!PuebOGx*Hj4j{1)%GfE;MfV}3U(Y;ZUrv%{o$juH2_%uvYe+Nlm6`;L z8xVma$yTQD;Ud&LUzuvSE5G7Ouz))hN4Y53%w&xlfJqbavg-##Nj3HVxtPEIJ%_#M z!Dp18B2S4?{XA&6bbzCm02&(d-HgqIhZ}0XUKZ@86&6r*VuFrV(yvlh(i_{Giqaxy ziocVXOD%a>r%e$4?b%qv+_11SC->VX@xokD>OQtm;hs|q@8~UQOrMTQS*2NNwAv^^ z>wK}p2%uk8*=4c;^vDJp?_&~Azw`s|W=7u43@J5QY)1vF*NWusglx3$!~OdQfh2}f z_O8kmag|`>|N74*x)kZk+UgtQjT-@D<2ubnt(?xB!#jt${S!M~t;6Hf6T5qlj>=1K zpXWvVMMm|ud{$BrUo#OIP$%k!LFvfmBJzh_^@f%9ddy#nHJ~{uF!Xe-4Qk!3QvL|5Nx?# zsj8-ej=vswYAM1QOUqi9;-PCZPR5#bTP!meds?ZMmQS)f2I}t>P3fn!jFqV3oR;-d z)sK~>JDM0>_TiWDp@uOUrd40MjiD6Sz{>($85ZpS5;7OD$C}6S1@czT23ChSzoa!+ zzlvtxh>TU?2+Ayx7@cJbkKg}C*?%V^dS4*LAsS)Jl=O>tQnR%hrD~EeSo+>A6tY-` zjJnAA$T*ak6K6VZOP7xt_WAbNb}Vm-Qv>WhI1l7v{GUUoW&T$Pyln#JgNA#s&49b4 z@ae{OL=qV1ODMPUPOqk0sf>T{MQkIQf*LJzZc&TS=dyo`{(TWLQAja+&PUSmDry2U z670E;EfTjp?i63o(pS?av_cE2drDD%+`f3VfJ1AJq}Mg0HV@pQ`UrWRRv-TrjUq#V zbz|rvibJExE`{z02Wel^0G9`87EAb0RiMjr!qs0z$p^e!3f&5hR#N_~{x|#89YG?^ z54NRgB}&U)5H?GGVVxabe@j|)N*5;-wUiSrkF+aZ2u)3Uep1yS>RtdPOB-RVRg1?Z z!MKyZCNOlA4^1uD8Q)% zJ!zt;0u9iI^EO~+9JJ`e@_(AHIWbtERc!KXPX605`52%EIZOJ=s&t9DJ?(G}CN-De zN_GrhIA*gjp(4*pj9@>K=}t`W*7QEsnV7Z@o@aZc0*|XiyIs+1_#rJOQuQyf)J}JS zuL4bz&crzQvj26XN=tO>g!1HRoo&(NTfLgEn*QYIns&q2%!q9gf{KQO#`!Y5kS88r z%KA(3G>&ENf0Xq%_~mQ}avP;N*$-XzBT6^-aaV@Q5pV{5do{>23vN18<1% zr|-xu{rKP;!}RYv#eesE8Xju&To(TC!*56%aAE2pg~5G!MLQ8rN~*{d4o(Up6|C<8 zFUg#wLR&B=)J{b4np`}VKBx5me!st}&}UM&w>wAF9}NKSD@d&hoqypuBS|#72Y>8S z;eLc5mT~!gcwd1lt?jPv?*{-MS8(7A6}LP1T!F=IoyT?JY^8o@cX#f`kRlj=Do07sQNhnzYA1=9(V4{@Xr8EM*Hg#%XjW~tgpHeJS}!I#sR7mpXF!} zKC=8hkkZJz{))iofaU1j>O58;f)lb zCi+db_PUw+0L#jREZ+7-XKw%Ke7T=D=QBw@S;#O*c8yQ+P|p z>U-a8GbQJvvfV6TrAL~k%^c2MC0rH#h}~ezqUT(v@tu!~t3icvKh$u3=KAz=V`D_V z#=TeFg?k;7bJ;76?|JS|TN-1qalv}{uP;8wUuM1$R&Chwii!qzitsmXW51La5(hUo z?O?Rm0&O%K%;$VPme2oo09eQ&iEbw7cw9y*Di~E&)hiq%5+Tx7zq=zy7m!teR zGq8r{Kiv(`?K1Z0=*O?MCKPaeR4+~L_`vgFZrs-Uh1-cP(pur$D0nMyv(fj&` z?up$>r=9j=sU3lpz#^NoJaW2A4*RH$JhgVB_Sh)vX3pauM!^QjoWzwI+atBzET_}M z%*`g4&DiNsdZ9IgYoGs%s&@>Iw2Rh;C+36`P3(y^v2EM7opfy5=ERuTHYT=h+j%?B zIp?eT{-!F`-S=Mi+Iz1{MLE`4T6fEX9#M}igFVZajwyJ%HysO^k4+)>O%1Vp-W%vt zp4=)YJjLowG!7*;Ey;MQUH+N?_k`*K&x?zOO7n3wkQ`Kwh9@0!YcfgKssBkL=3_$s zO9j#&LLP?qaqWkNj11!A<1aGuti}qca z@l*z|)5Yqcg-T6i9Gu9dB{g6^U%usH70_Wx)%jWj1;H~80|TR+<0)?>YtyDC|b7!q;SppoRo4>gRK3G=Tn32()yk!^fY z)b(CJ)pQtdWk%0TU?}C%Z(8G+*N|u^yg1M)c-4msI9O0_^0ZvgZlZCtLNc=jHo$M! zLETF{f*}Y4U2E%A7 zqn+FNRTa2=QVW#bv zrda3i8n9k#=qSR%@WduEv|qY{L(&x+7Xw^t+p9i8yq6-0kh2U}b=vn9GnBqoRq%SFed zj_{Km#9yG{<}ZUh+pbP#a4_=R_K{{|+=XP`m%J&;(4~?@*4B@K#NuUg)t2WlX6G>) z1_F?|g{M_H@eJdZ_zH04(+oqc&(Wb2{ZnuMhBOXrYcXEe-{?^~Q$28IUW$u}StH8X zwi+%r+Q-X98>ai{a0IGztV68#|Af}tBpm)+Vyec^1Ku=vXP^E7CvaX~+ND|rG`>f$ zCa3GNR?nSNn{Nx}tCn3fU94tnhIvB2k&Vo=91bEZon&P2fHrkSy^`E?shfNK`7VI| zzw7a}3Wdh_f?94)|C-odb-dd_Lzn`m5D^ldq&xFj$J*9fb9AzG@|iT+HL^WO;_f&% zTQl!@h9E|A-b+LNT5rmLze4Sd_Y`bh?nVTZhQ!5Xgb{K>iDA7C1sbfTpH08-rAo4S z$~A0~*47c_r2j#*+%9`8#VadS*nn$`ccHQp1QV1ayokAr$W(XX*I8f2Xztc zwgE@7{ju@a>G&tF_Zti@&`#0z-?e#hmP*}Z3Y=HsB-?IeI#-9{K^0AqCeVqh_Vj4ToW8&OwNLi6RBy5MI-_P>AP;G%Sa`ip zat-#hWdHgb{0%c%Kypd~`Ms~@87Mi|gnD>^=(h_5n5K`&)`Wt>0atJ)_3&#rThq; z*gc;bed1&rosdmkj~pU*N-FAFd6AP^wF(!VtVb4>%Vo0tfT;pYSE&p;5Wt|5U|REg zO9XaGMl9RgLV>4M%;L-Qi{9}I-E|HfPw$jXtwwqx_Ok6S0kHSj_+)=}OZ1&dR$l+B zTsdRq(I>^9s;$AtfZsS5Hpv8cBu-XwO077jR}VLXW%!Hvj%q(3T`tQ{_M4v!c2$p7 z|3Co-2j=(8{X-WQ>j@2)Idm7jW>i*)*psyrLq2H%h>tn|u>9U$pa{10$FG^cC)J5G z$kZ4Wntl|fnFXQ0EG-EQ{%vi;ic+kqz2f*}p5EXUI46HhE05&e^|&{@VN$u3a#2XW zU-9aU@vaBAWg4=tn;xKwk~Qkv&l~3KRi_ge;Z4@yI2*@X66&#nhW@puKLIJ$uTLtT zyf&#(*2!Vj6cx;+(HV;-tQ$~TV0bYAO!GirE%zU$h)+cMwk&38c6}FDofp5bzi-)) zqi~!c*cyjc+i)~M{gq6T6dD(1`j4hZw$lXwvEXgJ(uJDdznt_J@fL$ll~<@3Pr6#3 zk;a&o>(WZ9%PL%B{;8pfw_nw=Qyv_Nd{2OBF45YqSS1uPg4roP0l-_+yxeNa%JZ@f z*Y0vycNK>}alCW1yB{D}TI%LJPyV!CuZe_=5}v<g}Go$e^9L* z-sN-0k==Q&F9hwbNLHf?*S}J#fZn}DIYA=yq%}@K-Ms@$PbsCk>|fe0NXlS4l^z@A z@4E21@@e8B+xJ3K?|lOXCK`ViA}Ua-NP6>p+nSgUDDV1n69Fp+bYq35)3a}?J(upW zrIT&3`X{@oC%5T`xm1VGL9qii3LCy@{KvRfOwtCS{ZCh?e}H!kh8T7v=_x5Viv27& z%&RHW$P?`^S|w-Pu`vZlh4*DuAYsFoT-Htq{Mpa-a{YS8yHg z*pTRU@wJG$;Pj1`!dL|dLHWLagK;!y&VS#Ooek3@jwoYQ_+VM*a@mhU!@DDtS_%w> zaXX27{poAD*9o^YP7%vjMkhd>I4tzO zONX(2P)8@))a-_a5`c~`z^zxR)*pG!4o(~bkD*X9et;8sa)%}mSjeZPL{gRh`#TdW zuWuFtFjJGAT??j*CE`k@%LSC zzN$PvQ0~v}n5(v!7diIW0s;N=5@PUC6#Jy+_SCF!5G8U0BaI!d1~H`8(^8F^~gHZ9Ms2uuT%c4KheVlD%I^ zKOXNv13g|0M|!NE3XZbP?0yca1hw>w0MJf zH86^}0}Lg=;4jyK~)K-wC;g`ceu5c_GyN zztr^qW4DGOmyrE3Yv9A6=Oy&D;Juge>tKTzwpis2l1R6sFeG7^PWRsnkOAbNqgQv_ z^8j2T`h+pE%VlOA@+;$sd<$dh1KHzU;SZzIN}L3DdIhPaT+Y_RCRwWok`8rX>87#8 zxukz*PKhE%p))EwU82b5$O!mCggYZt+PmN^#S~+-M{jD|V{f<}(Jj@xLa|uA%g-ky z$3aSDBxOb2MLHQB9#VoHWFNEcF5FfL-PHW<`FGRDyDH6-9NyHG9>es4IJDa31vy#u z4xgr;CU9i5>&NahxQ?M4;fnW)?SjYdE6v#$nlwIA6QCwr+N^GDf~RN%PNT#aV=P8p zWR-+Z7C7v6DG9$k^=sVg$e55Gsm}{&AXh8Wm>!e&KO5g zDDeY1H#ackUbt2R?`kmrF)lGZl6U=z9xul|1c@tXw05Xf`ob~MJ$QhB(Kx2~4O;e;?6{R^BED|c za=5af_H$;Z$^O%rb!QtUMe?<_DyJEg=lwwvbJmdl!~PTQ=@D0!3I&MHz4qM5Zj)uX zA6|FumR)0PpHK2C>=xVj{HwVo(sP9)I1CyUE6Ub_gbeU4C+KE%*7OQ%g)I`13Gf9Y z>=uu!0d*hb^|@B(4v@_R&obDFP*$(lds$MX-H z<|oR#lNDiT%rHOVD(&eW{!oOdAH7%o%?!r9wCfD+WL23?gz-iVJ-3E{@{2c;WcF>H z4>mUv)Q3-n~)VX!{pwvJG+0yK-YN%s-;<+}V*oi9i&UgVWD z{MLFsxme$2n_Wheu3|A+_(A+m(ya)M7Vw_%FyMa%RCj5HXk&%M>BNVumRE7Zpfn1; zcXqrmt#O(|(&BJ}P^bfi0+?klb$hExsSHl-NS2C$?W3YG!)(IcncOe%PUmY7kL`Du zHXUyqLNEwY8U5V0&sF$WJ!f4&vnQP;=PNyCELVlulZ09UOkxe*bq)&-9nA;A@EbUK zlO?fzlZSG(J*`bIa9S?MTJS=IzPUQu?uJhQFh8buAa_YBp9jrySo3a3r~?2)_;fVh z#$ev8CLUI~RDPeru5{Zj+iAjGVjYXL{# z`}qva$;R5@IcSIZTn*9|NhWw~b@NvJBh9qR`D|}6s&+gNM;s<_TGO|9%3`3}>&^AB zr40=qt42p7{-eL_qDZC3dwL)OT`Z?k-M^=%gWh4vuI2=(R|uNp;dv})p+K%emKM{s z%1RQOtfcI<=d_)hI`Q$N;1|^w!(cY`<|?9Z}!n#)qhosEFh$3byFZGJWUw z-OZL;@-CuT++WsJg{fP$9- zQK@z!zU)kIPNF`dJsb}Yhx}{`T_vMLjx=%x*9G#+9{j?nUVqTL^99LJq_Nt^P129> z2vHfOGNW-kvesI6Sa-C&OSg}lCGQQM6D@%oka=BAI*d`#79v67t2JrF?Y2r@ zar$$J)Yo-~_P5nyB_HK8JfNOCwz8{YSQJayt5y(EWYCu*(^2X;YYEEjIUjg(^S7l4 ze#9lZ&RetFGK)uQO-36NJ4p;PMiVDdNzzq`>}23Zq6w5OMAA)(>EbhjiFG7D5ri@N zu$KT|nMj_d*k%&=qWn#Sf731dKi)SVlt4FEqh?`+1Ot^GJVEQkQhIY^i9$$ciA%m@ z$}edFw{Q;`8y%ix+RvXUx&Xqr_xCx6EBO4?GbdQXI1;|zy!R)->SMFbD7^7`uPsVz z?)19(#Hf4oV|d0^H7NMvs6k!K45E(cSjKr6)SQK?VF5rNXhL>{21;Ds4&4WZkdVq? z;Eb}W42`ouo>x^qLMGe^O<|%gKFY`uis4RLi(HYhzsx(>rO#7Yf@v8hG#1Je5T}wF z037dVu^fZm9W5k`2iG>%%l$M>lkKmnr?;=c``tf^_0i3v^51oae+7)$}gXvj#c z!6Cy*V`Bxb4e|upUmh=FC`$`@(Ed)^Z)e420>DFNX0JcO-Ptn#YK`C!_0&I-;Uc9p zI(gPRfOxOmg%PDMsSffHMUMN(YJ6tT!hGBtk+`kPvRsa z!Qzqm{^2NEb_eRIzaOlcVHoyGhwERE>XN(9IKe;%L5H#GmsA)_ioGzP1J z+MDV?S4!Lq4p~4~uG34id)ah`q+&FpeSsKKV3q?2swIqV+R>QSbZLSPgw<;`jM~++ z1J2mE$^uE9&*SfjoZlcFuXiX^Q4*dcV|{dQo^hkY`4o`F!D5|GS!}cP~``ajGsnq4n6S`GZa4Z2?xiHoBfI-A+W#c zCI1u&1hqkxfkzs%8*$PAy^lH$Tb{M)kL;Ql45S6S zHayXJ(;v(_LP0C1jyyqNGmw0vLpd!X|9tdm-hW;e=!e*95^%f589^9e48t28IH#5k z&AYJIzDl9G=2YuX46} z=q@h7Zc~#kSJjRB!*jmF&3PGWczg`f5WRFsY93e4dW?I}O`_@J@sUmP>WG9RDk@qz z5C@FI$L?Q&+rh5S_U*l{-fNAZ+jG$n648Aow*gM}=aufLGZhyXim|~zVM_`Fc?FxA z2?Hh^UMq4f6*oh^OY#jbtks7zJ`HblT0CYLR~>hnsx~*WZ12xYwK{j=(P-6N)07Lh zot4)znzD4Z&PsmfS6l=?8AdUUD>n;Hc5{>A9xl@f94&_t($L6AtCzmT==H)DZ3_!Z z;9P!#_Iy=7(L{M*y9eqbPcQ^&y~QzL>?ce44uafMw;$NivZ8mXU0xxOgmOXE)fyNW z*gWTUSgjlu7Dij(T6vk7iPO+;Y1%U6oLz_LL37A|y?9B<@S_>Nyu1+QnVFM@=KGgN z4!ajVk0++SzCL4~S)QgS6dp-XP|$F^8V1fK;LQ~nQ*{Q2YaTK(F=-8~_z7J(3$*RI zuN-%EGZfcN(9!bkveEMQtl@ZiU1r**yB20+CkT;e1rkx(=#>m+ev>Cjo+S*L;8Zl# zS7=pWQ5rcD$J30u<+1J&7v}U( zU0V8g&*-L*VzD-g2!^fwyxYc@dzbW*jDxYpxb@_{-UA!b`LbMPG5_PIB(*$k?ew2W zXSXm<0G7){HQVIq#26Y8sjk6LV7XpD-gru5D9D&bf>cF;Koz0R+RS~#bzpM^+gKcl zJ}(WeXto8y5Rb{>KJ;~5!48ytnoHxf91%j0aL}j)se;NaELutfEMc&jcERRiy-Oav zRf5AoI462oiXEZUn~`vB@QU7hi$MPm*oCaVf<#Mn8Z$N4l!Qq%*XoIFCv#L->CW%Y zQ+A`tX$e8pEi5`>)U;g_?MgM6`3(rWDE3KovOR$dij62;%*&5=nNsQ$<6y{n+pvNs z2_(8j6@kf$sUc$1qOrQU!(>J&N0+IIre`^NVaI~1j3>e9R>uC^&T_7vH>qRYOr0?? z{g6aGdo+fb5ge+++{q-@J_3cbwC0ni(hj)bT89yf&Q2?Uc$RJ9SwK`q`gc(4$ZuU_ zPk#*Kfk@pJ(Dk`sMGb`gk42Q6v=Cp{0oyWNf_Q0)l&|)F!w^hI_8clLzJ1;FNLFF+ zTZ1SO%oY_ep#myOPNgY7=0*=Vi) z>vi&t8)8@KPDj=RXBXsKa1!EbDe=8Yi@SDAK2X?8fh;PCq zBg_x%BT{sTgLPL%zVp}u7{6BO#T4D9%zJyU#n_VVy)Lqnx_My|bTRrRiIa4Wa^HFD zzL(U(?_kKRtm=zBmdjPnGlvvVijJ!U_Js+~>#ZB^9rz)_hxVZtOTq-FF7y?2pt^IXT zlz_=^uC8N}eE5p@B&@Ko5lU0rv0L5AQIIN@P$*)p6p~JD`mz87fwy*~?aAD}d(|^y z$z@d~7M#x_V^H-fBALjn{sH2Lv*n1jHLgf(R`iXH4FqEbXG+F&%kQ8Q(Y}Pfnc961 ziPe4>(cBsKfvr#eOd}1*e?KsttVuF80glz2P2Sk?6KlKQ^JW<)v9cPaY)O6qe^Umn z-uas$epjbOS9i0iPqI!-!XB|GgU>aiP;iLBg7Pey8;SP;okln==VO`o-NiH-5HH8+ z;jjIfur+72)2tGjO!4P{l2EIioBr}NhaumGRg0~?8a%ADK3AcV>LDU*_0KATo>_`m zKjf<iX!|*ihSLd&ob{#sb?-9w3Y`4U4fJ zvqCkV{nbZ8zlbl$4F)fB7tnLWnZ*SnPN$qrOaXOqHf!fx{J7slvel< za{*zwkQ7nzM&^Ke-mZT#!%0aEzO-73Mr_0d50{*#V#Jh{;YRJ~9Vin|CIN<97Z+M) zT@CT_ltUN1yojf`vuzN$p2~6-zP>|P2nk>*{1e(BU^N6`(Xo9qH4;U<9CbQY;{ovw| zsJ`%wh-US#Q-YCopDQGu)HY~f)=;?PU{v=}T%VFU3PJjwxP*j%NJvO+Cj}K%Ku!)m z5fPEa1Qmhi)$+KkwJf45NukkJW|PX!v;DjMG*$r8{WK-vAIi9N&CnX#%5K!YR>Kov z!zr&3$UT!oVqz}v&2t$6d2=k3_?bAMt(yKir=d}`T6@z0#`uQ?98Vep2y*8}^K+f8 z9OVKZN#CgOWrxSTQXq!0C3RAAGAu)KQ232Q7_*Wetn*|;cJ|NH7( zPz_$bBdW3lo?`r5uHsuKtkWBgNh@4%5LG}Y>j#1p(w|hDdUViwP$m*N%RI|3Z6z=0 z!H10x?otO-)m@f>=oKb-tC&_d*E$=GnGe$H18PMhGmX2H(~qjQ69+ANbI^@fH$tBD zM|PW3XW{!dk!&0VyMO7-&DVq2_6zE!gv`unIi5FRK=8g=-Z5>(BI6GQ!Ps#LT`PaU@?-|2N8bTek=}wLat39V^Xt zultyJfMm;W)7{I<5FPF|{j=1#W|M>8BqV3T-u!XtLr1a!*fz}|k}0&pPENmpq$fY1 z=U|B%8#Av_lN_|ShY~Es?QM;xJvW@{o~(#GRy>^KyoH_zlLOK^Gweq#KwZZi;^7dz zN0d5PV&DgPbu)ODQK#~+vD!nl#1j1FW0Xd=CUC0pz-&gF1Op>LHo!gC4xG29t4@kODFK{m}t0NH$su3SoJBhF$@| z)F8o-n3CI%+P79_^?paiA}Ri+CmREp*>aPrzBfhjH+lct!r5NXSTZA7fIY;9ZXFiB zHBVqhe=Ru=$+wKgOHmDRh~&?9xKHhd@22aHaTQO_TF^wUdl8x%Cj1Qkpq{am*M0*1 z`<7+Ea5%|-B7ds!KWgp3di%Y~wY0i_#iSHtc)yq@Y;A?{2SAGHymyex&sFQ%-kmL@ zp4xPQg&^XKCaVv#L= zsf#Z6#YF}U1sC&}<*i)r48J878k|`7r~zto#AMhhg(T6l0T04bY>qzwkHn|M3*?+B{itcfQ(S za|A)|KB{I%Ne&|P?_YWbIqnEB6uIIY93*X-x!{R7!HA|+_&=PKSC8P(;^$1f^I<_U z-|0|OmGc1r!NZ#{Jw1fXDvIPV28>@QONj6nv0x-U01Ak?-FF(^O?-6xO_skrt$f#XtoYfGxpv|; zbfOR3FEmV4$_Iaj^17TB{zZk1 zG759<y{t2D;o1i0D0@jm46eyWd}+1g(-GBuxFZfxfyP41T2*)KI~D=~rKC z4JVn1Db^CD$~`82HE>!KD-_c^vWX+SdbI09GlVi!n#8mxzvU|gkLYxqv3mlz=PC{3 z?_3`hAW~70@1s1p3j9wg>vzw2!|KYW#H>pS?!jfA$1Lt^+%ebGpQksg*1|28 z?UN;%?^d%nj^muK+*Lz$3vGD26M!5?&{J9)sh5nX8_x0yjV3_(5L*)<@|MT;R~-En zI!4J&xC3*VYr=B7_v4}~?&%!w#DZ!O@!sq6Gwk-R=IXpf3Y|&6Ym}l-1NrGP>dYVJ zY{EH0n!Hxw;Cw|VOw5wy#j(j7FCva`nD0VXYIgq|*L1}Q<3&6J+=rPun~(%M_F|ls zhDY`B1VF#X8t*Kto-ER_eM`EDQdA#tDVr*`#TN#*U;CZ-L^F&w`Bd<(%tSX7fXE$w zvEI71#;`%4H?e}@>iLaxcb%?JvOs>rh(pG>U@S>ki9}`BWr}3fXvTU5nWQu_2 z{iOfJn1zOc;Wt+=rF7gIM(!UPDu2JJ^`n#7L3bsZAk2^d_?1BxGVzL={#AjAxI0eCg>AU|e>! zxo)U6>eiGh) z;{^|tRm59P9M9<1TiwRNR>!otJ zGrC-EL^W*y;D|+|`;%!juVy6awt+pV`^I>z=02qo7G48{Ai&4C+&-kjy6x|vBkd;B=H38L-&ZZv_y?4OziCHUd2-o>+>j=*Ff6m2qlkprjC

$3leMP*^AFPcZfmZlR1+lK*u;d*RlApLwGvtxUm#}cTC#QRZgm`$B&zT2{2 z!okDGx>cc%;akePN7uT>GoNcl>h}H1r~~en-4q1C-Ez3~-Q%JK3J#rGjxM|HvQraT z@MUp-)uv5a9VG6~{j6q)-t)=sJ|6IT-c;jysnh;;GiEU}@-nP)TiPEI>LM?P_=DXQ z#n5)$Pi5(_PjamLWEoM_Jr~*XoeJfD=z2~55*f;Ws7A`~|5%ZlXY5h^_9E}2LI#KuZT13{|;C*SEYNho!w~X)Axo1|AJ-^LO2(MObs_su=yu%g_)pU3k|9PR-Ve@4PYp*~CVRLBWOrMDe=9!oD4iEFzU6ZLOKwW{T!CMo7O0ppOpa_0^j$QsZ`Lji+U*~q zUFM|O4q#q(q-Mg#_vFHtOsQ5dLb^@6d&XzA9(WTT3;bcuU#(#m7MxdGYkW(%?xP*U zQ>1oMtm&wWqa^J%(R zOq^Xq*FNFvid9bx>f$rAYB0v!rqhR_2~$B6VwF`#Y2tzl>W3=Lg_|!4{JwrF0>1c6 zFRF7Y7QITAU;jl8dXTh`ebgkedZ1Zr{I^W};~LhjMZE}Ok9Ots!R*|Hf@)}F<2}sn zv*3And_>SUhn2SF=n5J#(b>6Pkmun^*Ao_C~jB-XC2)| z4NaCqLa$1so6vtV2|)e`!0n9IC}v<@Qs$R0X?@V!5sy0`SFlr5Z`P-FsV+MDfS%0Z#T}Ci@OytrdvfBwhFv2P08&=I$w1O)Hlt8mi$>~JI-64 z2_JW^jO4@a9MMomQSA6{O$b20d(Zt0&BO-koE&Z5e;%ht`qq9sA<_2@`fYYOr_yA6 zcqGR4vW44xyh4S9xmDf2u!mG>yy5LbE0WEEq-{`O6jYwzF@PT$n(|=?LEbJa(^;sT zYpg5&PAOHmvi+x;Wj7%QmHr+7)_&D8A}%&N zz)T&XQ_=`JAJkLk2)l#X)3d{<;UFrN<6gqZ*q9lITy~`xBcw}fw#$e22Ri!5s9q;! z)hSGB=2STQmk4VG4kU!YcSX`|7O1xYR$B=oh~c{;KI25vB{VADp}?G&A(9y{xW-=D ztoOS0V>0um;sg@B%7yN^I9P+r>PwpJ%+Tg$7YDST zicVBUhBiDR!m_ITxNQ0Bc7_8A989tY{^SrNze^E-I<7h{;@?U{GCPtyOr&JNzy=;F zqJ4b{-EsNh9?k=%%^k1n+mA+DU{jlY%pD4&B2}$i8Y@>-7G&qS1nfEVEhB#<<;fYnTnj$iHil}{?7}bj`?dbfuoS2 zZx%jrQi%V@)A~;-_S?TZ%rRR8He(hNJ84qt)znkmDb;WkVMywQ@g7;Bf2_Qyl%YT**EVP4 z>h7*PuTS)^*$77S{tFf~41$7jebNs^U^)U&sR39b^H~vyJ<+M7pd++c3+f(0%c(Xr zXMZ{j$DdX;xQU&y$LMGsVQ;OA8=|15Q7tp!Noe}Z;_Z!6H#CGAG+Opi~Et6*IOT(AFjfhi&Ir)*+(IUQ2)*#2)0fsZ)>FC6wR?j9)`>iPnoskbkX%XNqox zQLa0pD#R=#w*v*jSPRsKnm?1r&{neKV4rA(TYJY^js0#@s`I>4kgS%LR) zFiF-z26}+!%F}_J#Ufhl`5-QZtxqx9?;n897mXxXTA4j8AGZzEtfi%TMsot?9C5mG zB^91d@c8jRr)w3K>SVccq4Dr;WyysB!>;;f68tG&b`m30bTD}Fe9^tI6{SJ~9RTst%ktE+h96o^Fi zk5(^Gp5kddtBqAtmVSgh;-*9%GG2v+h4jPz`uSlXt)!%pcU41c`S7KveE3p_o>vD% z&jzeK>I@y%9hdUw20_m~=FRq=j2k0_`%c#dP!@e}HFnyBBxtfn6)FA)mFdYB6pP87 z2qAY{-Smi7`CdB0AkgbitG!ZL&VzM?cR)oe4FunmFH;K$Xh{6bre`zzizq3}kuZMx zHeZ3*B?POBD#hZD8ae+JgBf01rjesT)@{;3tbsg1#)gThnjWPrDXf=r&M-o#^lo)I zF9YSXG^n_^=OTk72|c=D*6(%Wx|>2(YkI)ea(#E+fprP4l$83y8K$CvI710;&!wGo z)0ObT_TFz?7HA}p=*NW*6lSp|PS8x~)V*|QOiSd$SjUQ<(mZ2u}Kn96}(fj*N^f-7=T>)#z6+zq$p(RuTKx z#vMSQH=KizU!r(g^s&UvE4m@-sBmA0~d894j}mwm9HuB&@Gws?Qr-ofMkOH@pZ9_V3{_?i;0 z$ZFL1^=1kZ=s^>N$O%Fn2euRZuL}Bq-&mk+83OnZ5G8jl&`*v*NX*YdP#DhqieVpfCC=4Q}xv49HSCE8QsbA{4mgOrE;rCJHqq-IB449U!3O4l>T z?=2DRE|b!i@Ss(Gz?Vo%a8g9#e~*V>oA`gtz8ePm7Y4mL#Q37L3JB+Rq$7T;l|5>* zaP@|;f{5m5Y-DLh#pELQ;+kQjqLxZHW!UWQ#n7*X01=}YCKadYL%QrRiR*8YW z<$8B)gi#9>k`M_A3FJ*?goFva>WZLrYZxOzf_QF6be~YTA!(7EDsH>q#1K?IS|MXY zx}kpw?6cyVrEIcf$nva|jDhMJ;HUG|eL)>{gpS*A<8&yr6`qTz>)@!)-?K7wHM9jM z8w=|X>0TO7Slz8-e5cKC8OTlc4Z?OvjY1lI&An-G4`I1Q5XkTbUvsFtKl+V?f+46t zLvvctQ0Uz^^7kDuS}W;bV(%S*;GOV&hlEyUZpaqy6-o?9>Ur z@A8c3&vYUo!|k8)4q))w88{*-cdTg_|DWfx@rA{0gmO4~;Vu&{r`;PES)zfTVW89~ zx0+Hmpo0E;$!${1DEc|X*L}3XaHlt^0~}}K|JyaVS0J-DYacidqm{3U7ZC8b8=_g< z@0goWwvKj1tk3ikwg}lBye2&BEj(apW54u$t9?|B#G+s82d#z49r+C` z?K3~%AK@M0$zarvp8r&=1U(3f{MLB1+22J$K8=% zXlQ79uDP(V@RQF&6#WL^g^%)u^}Nc} zR{Jd>VdPi}kIN3wv_R(#Hh z5^yr}rJqz+R~G{|uXis`2p`3L#OMiRQ@q}34TY3(dJoe(uN|e8k^>s&d=b5XKax&`yMk-2yG3Nv!V^rqw>y)|?J|zld#5GSYd=UT15( zu!$3%Ba(?YIWY(c`Tvxvf60OOnj-Oe@#s3A@4a?0@T&pjnOo10dX9&#j5q1 z3{z>lv&dty?l@m!kgs1TL9$io>s~|QCfkBar&8PZ5=N5i`eab#`|N=A^x{JJ#Nlln zYKjd~GDpkHt9qgWJnl*%oB0`Z^3Y-&LwjWypa&zs!cs%{R7hPm?;`9rW%_(P^Txd8 z!N;J;&2ZgAQ+jb5f^sz3gy7+}rgyr)*X?^={Kj=1f8P1;OZZtN^EH6*QQ{OIW#htd zUd@crVKG7>;zdSbv*wG&;2n4X0lcd#V#GS=bVPJIok$2c^i*s^M|5>m10JiTzcX*@ zga;Pr(yRmt%eya=w{5F=7N2JLC@x#G>`hs9jg7|KvF%ZxEAd{|y01sZjFdu>etJ3%tS(7 z7uze{9`?e~QQs>^?`l3`JiuH%4#hK5(d+-yYWJFCg5ILkd#=FWYsvJK9=&60&7}LP z54Vo5`lwYf)VE#PL zUc8~geiZT2%qDfEikPhom}Sq|m-k$KO<&KJ;jl2I9cya@be1f8HSkX!XDYsF=-_(g z$c!vrXthps2w#539NDI6*C?-jv(QZQNI$1*8#etJ&wB|cVXjba#!P=-jigo!p0&NY zwZ&Jz&3K8sGO(Sls}mU+DfQd>r{AD{9;SnguGI>PtZy;lhTAm*Efl_`n@g9jgm-*^ zcZtj9uC+V$8iOElqWvGaqWua1tEdo4$6%-WOPx45o6wD(x z778zcNEO%~>|7-r9Uy5wFCU~``f{epji;9=x7EiZq0<c;+q(E#bLFU@0|}c7nw*jmBD4Vq z)^bT7ljJHo*Fj7~)a$iUcT#6WvXN1%74$J`q21;b__3y`J_&tJW!d%W-g@xjbOEDl z!i%%d?3Vv=ambN_3&RF{PI9OyCFtM8See$Pl)FUvWF;(MZ*Fh?Nz-z0`~)iaMT=#! z=uO5k6A)a066}m$Il!o|Z6Lxq0K6ZY!wOukw=MpNLN7SXbVPW$J2s5H-`djieA*5< z@I%Ey3){)xnFWBM`2cb+R+}b;n2)y)X;|%!l{utk#93OeA8#LjLdpB4oGoUg-&N{< zbGD{Lsg^Gg8I-?6_ehx~$ZZvlK-bYfe0Y%oPEvDozIlKUZRFZsSK(vCCnWqsMEibx z=O)Mz>x&5DRn}7cOWW2xd)Xrc$55CO3IYO)z8~94dy@WGJ8lsR3+q6%xz#hv1GW0% zlKjED$`#}N?@vrjvyHs<*JdA;ENmZtl;>lfUwYtjZg$X{?&+xCZV0~#<>uo+i?Jvr zoF9gn&huted5lQM)@bc$^7NWA$|^yr@e8tKdtvY6`q|EPMW;7Gssi#Nt(V%xTj znQ&s;w$*Vawr$&(*mlRZZR6xyzxvlX=b|tAs;jH^`|iEhv({%NHtbjV9*izXAHE;` z@1-|K#=h`t|uF`2M=oEoN>`MIoK)_q`Uep_PPY zzUKiq8C&mAI&IFqoll!uuN8lV2%ipzGc~x2%Oh*1n}GKqvHiJ%c2;7S+Jim8(4OF5 z9_F;+leihy+C4e{R@!x;irnn#omT!mFVrNq4KFNyG&NVV-Z@U0js5A|UcvyDaMfH| zZNBoMZq>VOY~3HpOrCDwRy*14F3bfN>D}mQyglAL{2~C&1*rzZ*d_#_2)(U&S5?c7 zX?r@WsZ_0jc(1#HFnQqK5#Y4`vmK);6CjwB_m9O}c4Y03^Gt{3!RR|#aOI*>xhRA2 z%`)Pj`Wj2}I!$Qatk+tnF#owcUtT?zNfVoX_RG<;g;|wkJZ+~^+f=E^1<`h^#+)xb zAphr4C+%_pbaZIRaa9JOYNI=PFqJ4Uxc{b_S$V} z)xpMP#khy-QjPB7IU<%zmf3iY+SwYM&Bp1*2ez(SjnjBabMuP#qo>YB+ug~OFW~)0 zqI?x0y8o16osklRrsJN#2Ie^UH$8#c?p$fbmuKs8Fe2F}rGPU3M z=mKW84d>5cV!YE+>j3I2thg&`x)boH zSG5t+>5??_3>F)KyGUjouqb6GC|$x%`SXy19^urmmeZLG04>U>Xg+>jZDNZfV1pc| zzMp=+WkdGhu-V_7o&=~1Nnl0q?*ckz!5B_T?>@XgG~i%HMj3eyZupK;`cu=gqGo!w z9la@l_C&P!zdrquwjJsxV}OQWQwYF3K~vU)m|_5{Q^RB?Xo(3v#kuu`6&8t{ z?ifM{RrBm}4p8loXo8_B@AjWP7zC@SuaCTCb+V?mD^@poyOLSuPucJJU}$x|Og4Ee zJeBi3wpnDtK;@j=(aV6hi7_`BoFFIkj#GN_UGXf~8ReeP1Jarqm1&k(!(M6T>vKOsJXYe`>eE&aR1i zlSkH#(mDUH?V)fLtDD|oz3qp80t0=b;}bUt-zPrkMn!WKr)U{_^rIH^ zYJ#9tLSDpOX_;MLH5%9-Xemdj~%-AU5y!9V$Q0my0H86iQRdwq=5RYq^uptSmHYj&>gzk^2Io7 zwqxNi0?aIq$r)MbdNW#m)*qt4P<64^H%O8`JAXEsI5C+W{4N+LS!|kjZ^jl_cQHqF zw_cFT-F$2`?)dnil$ajt$=LFaWWT|kY$|Bo7+x@=^}N&AdNC7H93x?+gk$vjK*%Qi z?nzeM_xkvrA?fYZmNPhW$!oVRgO__*-NBD>mm)3l~W621)VyPsC zw4NnnZGN*Wkj9K0^$!xuePNzN*?#ovRd;~bDbT~Klho*W{|?YL0*IMGK((09s%t`s zQ8R&|3lOQ-(>w55*qQeP+#aJ>g)hUJ!7uZQ=|*f`v?HU*7eZMfq6ESmKJ!%H2>J$+XLa7Ljqw29j}6!z_|=JSVhDDDjrsWGGNvnHCbl(2efo4MpH`?m!@?_yly~OY@>hP!R?~t5&>$uaf&9xN=UEYAP78IIB*@P=w!1>M zHo8h``R{(#=rwUL3I@vlEc)~U^GfYP-odoD_1lW3pW;4-t-9^AUabp!Jb-JAE zpu(gZEw4B7$85yWE%~e{oG^16UmdmbDZ>~@|uCq`}kD5 zeM)V5nJ{QtxlWYjjCO1f+P?tJq4oFsdH z$lD@jXm&YCbtJeL(=Xzsz4>)ST~21QrCWHu71V{P8?<7DS>S!v9H~7rkhu^6%-3)l zK$TyKOZTe~*Y%I)E4~}E{MPTSwZpijj`CuG@cq-=gaK_&tkGTxv0_}YS^kJvuw*^^ z^?3y|Why^0Y}BK;X)$(TtoR4n?7~3v3?gOqC2{bVtEks*_WojzOiT>)Y=Se@Z@uuj zVgaO))46qz(NJq22mxs{-TU!u@TpvQu^NV8!?P=STkXLo z>5|^+D8OO6Vf-9!g&z_D9nAz1oG)%lpAq8?{b+D;DFR;n=iG5(BSR{rYgz0=T7wB6 zdKNKX?TDboe%s!uvk-qd=EW*GS8c7@6jGq*ip}6hDoGAs4LR>(_PzJB!;bXonr;JA z?~IS|Oh7%A)D;eC4H2Q<#4`ak1V>>8ZLn_Sr;Z11#%eRGzk-5AsGO82@lm8T+Akqy zEF((afG!pxn;PoSm3xQS~NYVR^Yj@>QYkk7Jy;d^Ke5DXwJtCl=slIGb71*{y;L z8as!24NQZ29Ry_tUg>d>P*DCV2#e)gSwo|tVeZ~hZ{?W{+p2fE@Gst8b?AaSjJA@F zdj7Hqj5$QbB45$elFp|WW3w4UDl0IT+zj{#uum+@f?KQ_dQKC}{m%N%FF;aM(YSos zdI?&gxO8o4^MV5|VBT-7R|`VxRb?`ahUamRe+=tyiDSw`dT`+UIJ+dkk|JI_+<^k&hR;{)==(&8xggz9`5Lqc3*b zZZppKACdjL2%L$PM})gCyqxdOK}HrTnF?m@vxpPI#vHLoTS^;<6QY;sxy#dmBjZxa zhJxkt5P<(JAY5Ya>>EsTh&JNrtckwUnn|!{&yv-fBHOCDQY)-7#NX5<=r$;8!#CYf z6~$(S;o3A-0G!#MX7UiZBx zEGZb%I~HgyxdZMahVh=-kR3`Frl2pJWbDauHMs7J?N6l?j$JCihsO{^$J5*r z6k50iw$YG4YFf0Q@3mc_)7wS9Mdq1k2k!~166Iim?x<7;CxT7jBCzWEN<+_(e$EVs zrAc(y71pYK)1w z-2jDCTaAzt$fa0Y(s|t8)6;qKb~7KsxD#^FK=l-@UJD>! zq_o|cH___ee^`mUN$s%a5JMn{uD)o;A{q>dNc{eypXsHwlLuu8oikc6B>sa~8_A0$^C-CuanP)A}wdI>nO zbNB31Uo`|BLVX9^w!6*vKQ@Qx9|#I~Z!8!1O}?BZ?>^P=2eXfA#Q{n|B9^L%2#3cN zSkUzAGhRIdn^SXA#J#`#hPOOHbEKVaP(=uaV;85*d_qD;Bs!Q3e$GB#au6*QT=B)M z3kMy~=CNMBUjxo1Wc8h+Ej96LJUu%riWfhY)@6n0k-7;0?5iT}LOaie7wVnf1#$l7 z@eKcp$a0_UnN4f7BDcC8Ijto&g7-7Q58G`k2TFd%n#u0^Dp&mJg@Z@v-ALICEY90$ z@mMB5MqA20N$-G`XJlWUGIh)~X#QP5&re~YY^wzHY1cO1nQ8f}mxu*4QeMltP4 zPY3&W#0;cmbz|BY+JPYKjB+oTKula@f_1F!oOc2Yfol|~$77Rl)eJTcF(0q@YdH6G zqW+{0@oh{9()u)%0_U9D9#m0zHf*%$R@@Y3{*%-->LZTO`|q+<_{dwVXbU*Aj8!Vh zKBbLhz*~HjlNZo0kAhwTGWyGBobcwcg&Cry-eEfFUoPkY@ex4y9pl|;$KA_mP3d^9 z4qB5wEy@By@U`(OTC3X!d~4%Y?fv#0`PuZ5?R;X@&aaGF&?iiQo@cx0ExYIP9z3`$X8Z2?FxbUhm!&Gcf3 z?Gwx5$a4Tbe0Ojf`*rq6+m#Fe$k)fm-tkO5x~iR~k!gZ#=^=|2^IYJgF(DgI_wBoa z>G}I#!*#(|gaIUdtr3_)->oM%rK3M5;^m-&T!k&nI zzZM%`91gUNjM5bw3AmlHmL6OE9-T_UZd=a?5sCRJQNJbffr-iSn@{lR0#5&o!mLrA zUeS`s(E!uYbAPK#eN9!QTUdgRlf$<-Df{|V>SU#q>0TqXb$?u+8>ydH{1BLYPM91v zYk|?sb>D6C7a7CbH+q8lr^?j$;r^BkMlO@4#uZd0iwg8i$<5EtshDYF95?|U@cMZt zUf_%9wTmj#7&h?m%s~1&R`xVx!?)O$kR|q)F7qCygf4cbdU&f>YoTF|3*X|3_>&2W zL`P*dc_g@Bv^r8Uko^&7v_7+gUQ7`@?Xy>>!lR8TPdMRkHC_0$&6VsxM=*R9J6*>` zY*pjOHq|%_(TkP7g;l+Ti{&Ksga$67|B1NUbO}N#y0=p-i+GOz36{AKnO5t};NoD1 zzx5x!9b-is2Q#A=v2tolT7V_rISOP7^y9;`ngQ+)&%I0^{+n&RY;vT;NT1Gjwa+et z4n8q2B)mUs{}7$j_x3tuKVayJjO1i_4y!aG^|HqkDT~*svPQN_x!uAGC{>8k@{Gb(i&Jv=DPVy5XcN3i=tIu8 zT{f7WSbN+a=A>n#0efu*5_6qA5tyPKkSs8FxB-wYw|}LuG?XHjy1WU$-Vf>dyypmK zYLw(q@yYD_uR?1awjrr3(Et7BdFNV1f?HxRx!Hn*Df-#obn%z1_)Qyk19XGenVC)s zBZL~-hO@|ac<>__naLiQD*TcJdmg83fPXTtb%k*ueStaJCFA_F+2kUKBmu1`9|ofc z77`LF?S?(X4AqZP-xOG!gtg!evx@w#pd9L~c(_guKB8*ZeGjEn_yG`mL1Vo=O4IuS z?c{Y15j>lq%BmyoWn0Jw;(=j@r!AJXUbdZ@8U+Zajs;ylM0%-=AC=zsIuzla{Ep+} zj%;hKKavpPupMCQ&|X!FEu(MpI@8qN*z(<Ww360y&FOgjZEs6w0yEo}A7|q|Q~UWLK=*^m`|-AQ(~fkc`Q@miU0xVG7My!48;* z9BMr~AyUg;I{d0+!m_97Ap6R^gkn-u+!depd7_z6xiEjF?}K3bG1wH@0mpJ;B;5AI zso-54@R_hKwQu*da#l~*UgurzbOs`{Kt0(epc)2Ta^b-L#DkRpYb)cO{J*=@6bbC{ z#(JxZ+8=|%g=pCXISXg8iyy!PU6rsP8aG#HUohp`BvC&bE9?zC`gBhA?q@4KWYR#d zMo*3Wp%$}vYuFn^l(RV?aSnalT;Ae$og}2T z=-5#*bdKW>34v<{Chs2i)+^cfkl078R8%l&5DLZgSy2Wy9>kIe45XIMI#|$47q8bw z#9Np2YrA#4gkt7?glhdX94T@?&i*~KTK_@Dx;PPmu4{2bP_j|xQx}2aFun)RvSvpg zML(7&@FVsFZ zPaKS?iI>U&SLG1|{V{vl;M5ogpR6eNUbMa@m}Q=fz8nNDtWbbxXLHS@8F6$p@*M&O ztZnSJ{xFL~ib~8zQD?373w8eYe-yMIU?d<|@Tr&BpVAN1yS(|^n5(2*HB?clV&%5? z^UmysH8B3sl!pQWyNdFo;xhZdHww0~xQU(a;W`6}yYe z)Vj0F!bp*ZVzvv$F}x>Ll|wP~Zpp66W9wxpw!)3Inp{{9ZPkO}-Vo^{=4ZY0H9Ahc z!ju(sWct)ILVI?1qbk(j%D@YT9hq!~HMLjGN=Mj)lFs}7k{*l-CxjBN=m>%9fxm__ z`U~z(hUkB@yV_^5>iI#%F0f!R`$`Lkecxb634Sr1BFzb6mkl~hH0Ak^o13h13{OoM z{W2eO;4e5dZK%B?_ntah5tkuLI7Htn@{5Kso>TY#^rtAAh;cqZZ}B5t0?s{kgM(xV zXykmb0?q%^q^!ucQ`?tHR}JQQ$>k5FvfRS+FYPbZ|5a2H?>~=-ai)Y1`7$za$yU6wG{+AugA2EqMTZ6KQNrF2_q0L*03&V zJhx&=Ps1g+#xyC$XKGZ$`8>bAenl@eXO*?wyg&nU-cVVdP_ON|{lQdxB-bo6Rpk^c zb-8bsvVEy9eb1;nZeP}*8a*vvj4OTiT~NJQ_$~Om-fy%jW!EFQVZSQ?b>xUb^@RyY zY0>fwGZkjZ%~II`z;1E9NIf3>FRVM3S7sf{&14m>ltFJsTsD;NoHuVa!57CPo_?Gm z7%V_M++l8n7WsE>nQsUIR>3Q?bIVel?zoQHx;06FWR?!+Zjsz5UzC>*=ao1(%+K@9 zln%V1L=@c>zaMA}eI{D66Sy4}d9+9Zj--%}V-VjjBgrJZJX!T#-f~y1RjtdYmYq_ z37g+ZHNi+zIvzT4U%Met3=&&YYpM6-1+;^_g#xihe#Df{SD42G69@7N66;BReUkVw zUb!}3lXqxy>{YZ4Lms9mYE=AuL#hOj(;F%{M7N%Zt}TNDZ#xaW54@#y8T$y!K)G1ei#m&KUwRygTBC6^I1tSy?}zX0!q^D+Xw{G zhiw9}{2R@g7j(9pf`f(rzrw(79nKEH2dRYBrlg>btCn{Pypho!g;QxS%i6{O&$PeE zWt$9#BO^k1+A8VOcdO1swIvEjKk1P5tQsmXNF-J;gLpIEPR$p;d@ znG1Sh;%}Bu`Ts!q@kK|WB+QJNd}*^G+hjETcKhq2Q`)|24xepY5fw(uTM{XiXI-II zBNl>yPh_k$xsgiCyI6KVH%UTC2_1#Q&eETG`63tesKl?(he;7wIF{!2L;lYE$ zI=!@(eowEZ7RMfxTn>onJo8D2i`!B0NU=rtspv4(+1o6%yJ7GS2?|O(iZs}S`%I{I za&qdt1WF*{WhYDlsaopbTp=~!_&u+jhS`D zlscMBV11S>i1J$;6X=H#nl$JP8OmVQ>MxfFs@_W^mcIlM7ywGp0 z<;u>=teL#Ei1-6u0&lp)H1*V)Oh2fKO~@8)mj5oNCb#V8?<7(yWj#mdI?>LBhpNKx z#rBsZQWtFp*4s)msOc#htjH=bYde%-i?PttMW2ZHgZ37GK{{*z(`j8spKh$vyRq>f zbhS08bDr$0Bp>h5{}s?jV9_=mXcx~Jvv^m?+$}y|3@#NIS$l#TT5#Lwi3L*yokiqy z4cBG|%w(3C8T=wXUaRH}KcTzY8!c=p_1Zwxel6V`K4{viy&d_KFD;7*^{8ZM9)aN*cVLSj@x4d;n?E7D?*vQW%TXYHEd_LU4YS zOojSSyNw{x7PkU#XFS`&b1m^^B0^DfVR?}b>L#fVxp_1lv`LuK+~7~?D@n2TQmn>r zwNpY2$AY}m-rs57#A!A5luUGn;C1%fuOo0_N_+_l!QVc!iO#RKLZL7J#8M>gYJ+3c zGjJB76TNj$I0{pMr6g4$Zj86u7)ef8?JTqsJD!bIH(*|FP|1JLZ>2E3Yq}#tn`mHi zQf}Gpfp#56uDzg8QP=H6{#3*2fX232Hx$w_ghtUm;@1hGQ^Dz=z z6EXa|?5zgazECBEW+t_2E>qT|ACl*s?G`$d(g>8 zaN+axLhBjL&zaIB^(^^IKEy&tnpvq(jCf9_@(Tqk_nva;CV!W7C{8Ugn(*wjw58^d zw!*>}B+IU7uQXz4+6*Vmi`-XmDW-9K@J3sK9Sls(M#D^TsQG+3+)jh(wNw1d2n1eK z;kluw4pGSuO{d?QeeAPTBYtgOofu}g=jS3tJ^@$pX`Q)`FeNXhVu>Un%l(gSr4p8O zS1BlRlj7Lnd0bI(YJSBiEA&z#98TDl?Rx~zP3aF)f|#j6-x#x z$Cbz;cE8)AmI?J;aRrlK(r2{0H1;8EVOps0KJUl_AszM-W3%M6lL`~R5@o-8)yxaH z0YRyC)(pS;NSrOUu&FJm-Crv>Zyvp;(-#KzOH!8DLUtk^El!m6SP^aXTwPM{{`i6+ zMSX+fMi^-4214@ZjJv-Ziw}`}AJbirwC-spfrW~W-{vfdBiF9g#SNH zi-*`>_%|_@Ke70XR(d82w^4N))xPG$UHjuW@&fb6%5;20J88)krL~t?vQnvnw18;ZEiv zkJ8Q?D+)U;PeOi@wC8tAz|c76^m@3gKZ{0dC3*i<(0WaA9bMKSpxUI|=~&3h7nb%? zDaEIm1*rl2V6}L?y=6FU=Lxx4cBR(m~*znCtD>-@` zN8Gz9e?ISTP5_=*v`N;0H%)X^@f{o$>P^jbvxU!_4$G`VR)M!`_eI4O*zheJ;G$uH z)XwB#y7+TJElvS7Wuj*SUP^{P*LUO5tkDWxTximz3xCOpmcP99j(n9)XQ;YRYXwou zmis0Yn*BQBdosa`nNX+3{rN;{Q8P=0dst0gDF2HW^gs zA#K_VollNE@M5PLzL{hGfW?}5EKHZBz4=*1dMY5RK@<~FeA`Rt+4bh0+;uyJUhDV~ zs<)e-my%9}EBX#YSAT>J-54n9251>_!mstdczgs}(>m!%2MElGCUDIki5v z6w@x`gxFqqHQSjqU)DE%{}%t&M|)jKJOKWSJZt^Idb+~=OrR#|-^G# z(*_<$X*0V$$0Vc3hD9_)hX~k@8?>>j#x{D;>6C=F$*TUWc8K!Vz9XONyO)VXKc}tg z4&BNtl|nQG9x_MisX$kXPK)e#=_w*HWp}QgZnD!q$a*Eq`y%6EHO@QhKMr~EpLUee zgn_>m4^|$li9Gl%lKJ5>k>vgwDuZl_^s3|%;w!SHDwe#bb`^S7Qa&qXd(kiNtb9St zEsPmdp{e3OYSRwn3=|@OIHUZ&TUDBhO#!b->h6EGNb&>!%v5z)S~V`Y|Ep)E%!{fP z0)e-o7J@ci$(;G-s&c;r=7oT7K=UI4=pm-5Y*Ki7?rGX1zt9th#VssEv`}M!oNH;( zW=CTq-Qy49uVjG|XPI9r?<&I%JktcdurKOCkmI>k$q6{NgI(ekPa^NkXOGB5v$&khuK zHcOZS0V^^drcDP20R*MvQ~am(m6k({y@?i-?{R(n_mzv4d|MS2z{@{*-) zFXICzz&9k7fZJi`XQR#Lx2kGi#I-=c0%SeB-}`hTj6h8kS-}$wdHdXxeSB72RFAJ3 z;kYFNTz0hQRPRYLN>7g(_Z})2nib#SiM`6_W~GghNBNE=Z9BHE+D*IaIIQF%Q;?5F zj{6&{iOZN+FO_oWj5>Ai6RjzN9^Icyi`YZ{5(SoGzr-&_!D?Oa+}GT!qsGm zLM{TTFKW2Qtf~RgE9LpS#u|@aS!OTu?vL%!6)W7@do9&BMjyB>`zo_?9~WMa>5E+n zHs33=KK^d#PV(m>u7;cYqX6tOCdAd=`p$BkUy6j#l|F-Dj}+D;7zciq>Yq^*wK_az zZid_BOxGa^qFA8_-S#31;b&CVyDZ+U-k1+SWH%9^;`4Bk#cb;q-1B{8bt5YzLTJw z4N519;j4C3)%|ZR9hFWwf~pNAST{+gsmh{8WLNm5p}yoK+1zGlVcq9IU+3&_I$GQ^ zfpvz=(6q6qJ6PQ3>AdZ|wJI^0ZJ=ng*mGHn;$)qzU8j19Mrjnu)bILqqqJI8sy_c-*y=XZj@x{rHGgg`&+{(b3K8 z1ucs4SvlE^{GP{nF;o-2NCk2ruo|Jy5R7RdPfduXjeLT)lH^zm%Pi%YvsA3qX|@PJ zU-PKa>cmBEHA!Y^R_lPu(Ix=x5#zANr3fMdp)E`}tHy?4xM?|8DyuD?cyz0Q<&VB$ ze^f8XO8)(C0C(C3ai8n<4N-4P#{cZl0E_O|f^O2gCDDcEu0T${&!jc{q3-+$a2 z5C8{KH}hlIsgF9H+|TA|H@iY=iijHN$9zWChV_)&WYi{)_nI9UlLiY3g|xUX%MEi< zGREwk4!r>$FRubw6 zW%~N+ye=g7L=aEeL2R@d`(E+an9N>&|HXJ>aP0Fc^?nXyJZrR?&@bBRnyD^XZgh|bKL}3Ob~x|R&~4R*)0*Oo zogJ%UvAYL49Bv%sO}Ak{Qo%rIwfJy1UoKmkhuLm|9X(?CrHvov>6~$>ce{|fqO89_ zo-9ae)7)OX(9NlXjft^E4PN=W@Pd-3v@^;}d*H9O3o24S72TXsajP}(Y-T5il3S&a z3JMbD_2#vhkJyWOLmEnrxzedOK?Fg*z`$7rj!)y7Slb+ZZY;+(qEo-QVapHY+yz4g zZO>6}k;XJHw916cmf}q2IoCCUdor7?co`d;<|-5nMOL52$TBl)SJ~1gSLuaGU)o^+ ze;z&HMjl_Aexsp>CJtzka**VZD##f~t{%)4>qi4O%G4*U$a9<^S;o%l?-=tDe$-i> zc}O5ua8xtjX}e#-3~<c6SXZiDF5fQnAqY*5<>yqV#<)@X zM%%n8UC$=UL6wb${~rq=Dxt+|j%WR;yQG%H0W}mEh;L&)oQC|l&LrFc}D{c_`(5#Ks_3aZONlk4J*Uo8MXzrj^fA9I@WK-(+T&gHn23MnYwLJd0cJY{-aSwJVsCSUI2ME`od^@X@b zz!5q)x=$*6N0v_SbVSCmRu3r3;Kb4ha|8VafN->KiGKG= zSr2@I*LRM!FplxPMM=?^7S}%GI-io|WXbHZX83$qSd(8~*7~-}zUg}Yb*=3ikh5{w79>eU7P%SawSOCrG3-rVpvvFOq3Gm(X^qsR>9HH) z3+eX028&0$97>5O(f5?huNC~yb%S*`_s@K#9vuN=U!Ss9JbtkBAJ}`q(n9$@y?R0; zWRC0y&I*7V%FiXGMgZqT-0q7wH2DSuX#le`tJL+w zt~hkc8+=u7G{w&T+=Yh-gfco@6?Hf3QwM)GnQdl#+1kQ_e?n-+m*@vi*rJrr2!bzL zyV(qsn|wGvS^_z1w(dE)qs#z17i7()xh#!?$p!nNJK0TkKAJ^Aob(;}5_!i-x~wks zwV*r_zK{}93!VGl^;|xMYfg)KMhpfgIqNhw}J zmXlItI@6cGxaT=qIm5|j_|oCh5SK8mo6&y8 zT+xO@u0G|0g7XSB=OPBkd}4ym9bNEuFLpPSX#1}x2oHucZvujjOIf@LiQykS&*4Zb z;vhR$YMW727GbGPw#>TScg!8q&>9LP`M=`eUYVtHbb6u~t%iOE2}T6_a@gfN9E&zC zPmGR>8ot`H89I-M9{ptfm;~ImZKP)&{eJ!1?|~@Rj#20SSdelv;^Iac*%a6~(4y!C z22)Ok90@pB6bEMO3wetv20}p^4ZbeGJizymAL&Zyp6#3-T@IRx6^lRw?L2LD`fDI| z1sZrmVWle}od1sD$hw)R`3fEGa))%&y{EmuT;33Qqsrfl&_G4PUWVcP+_kipi5`ah z>O}M%?+8&)9MB5`_t+g*Dpm{UUU^p!zMv9=Vx$Pp#X1iP#dVKymYj zH#RlhSO`oso=!s3Ur^VPm4VN!G)&V08g)Iyx@V-?dT|!8-;i>%Z1Qg>S*m&n@y^U( zsUv^_OcYse5|^`I>gf~zY?pJV3-QZ;;+#$-n3LFB#CgmdRJ!QxzT}2txW>kqwz2D$ zQ@Y6Tl&D{@5Ssl&9kQSS%j9k+(V?YmE2!n}bc>0f8c}Mgim9HCq=&=c%`ws#ZK1Uj z+F;)=PprHD?dPwvYbrjm*t5?HTj2_dNuVFHKz))F)(IN!3d+~pqj1Ux(ujiP+I|pg z-QG4sf8-b}EW*%ZR^#0_ zOny<+j zEkn00hX;ulGM4_Py)l?hrkhaUvlzqt*F>72RA%3C)%`{A{SnyR-Q6CJc*_eR==(OS zUVp9~FjNN***e2iGrSLlv_aOlaXWt*Q)w0A9et@zbSgyctx zpHl7uS@nXbfhRKW1SNKyJDveQjgS7zv$~>+X1yOzRlFVXj8;M`UB0*ZJ|3%@b$L`| zN&PFDu1B%)2Flv*d*rH)c6XJgFl zr_m2-U|w-?vvfmfvAOi8@|CC)fx%9O0={PfZkFx>gJRu@7tb^ABUytbfO+#XSb@9} z+sQWLa{quzF%88<>xlSxHn}NmIXV{l21~>zgZV43jByRTRCjZ{KO$&;mUNM3PA4?~s+&ok z(W3nB`fbP^w!vJ9l$@9IxRd)?h}`w#K;3iy!avpzOZzkypvu3DG6nqK>8XwUOWM_j zTTsrqwqgxpQG!@chAq1XuZcWFGY}#&I5Z zemaNA>jE*Ur&N3$Wi%-O)=6?BDV%^AUn7xsS>zdJKdxF6g|F=^eeLGZjc_L=X2YL$ z3fuope9PY%ELrO=35)}gRdqrXs=(1>*p=dWkgfBg;(F_hz*sUz&=r5e&EGT9Sh;pI zRF;&f@vC(mdfn$Gs<>+=k-TB16?=}*Xq7pss%JhgURp#8$$yZSv3+ztHs0$jk&T;BMzbyhH5N${(M8}BWwZZx|AU1i21;w|5I7yC1m%+O^;|s zC6IRY(RJlVL5$DZ8%ZRQ#IaHhC_(3qu5iZrai6X*Qw*}{FCWllFMG<*Z)fHbH1t0R zi`fM81uzheYszn6(cVy0|2L@DN(c{B=o@tNd#%|9-Xeq3Zs@G0JNmn=dT%F$a0rf3 z9z?mvX_`Mox6@9nw$U()m~^eKt|s zxna*!;FlQLj#pIk2GN$Uc$XM`u4ebIws787p_9*_^DlYb{QWZCQoY(VJoCub)a?}A zO4hTR|JNBA;~4|YaL2dZ9H>y)8(nty?piB{aVGi~-X*WZpAw#KOdC>Gym~|0-mc5e zZUi6Y$w#V^Ey9BFoYx%QWFnv~i0HH{0{eVycYPBaLYpmj8T?aTRD7_`_Qy zq{W7=O>LRIgy^HX9RS1HJNgXu=EgRa1*Hkl*fJIQBCc#`{ORlUrqO74zf#*30KZ+N zT;3n~JARGm#nO5u=@V@fb%ZM2BU8(Cg{6&LAcGfJXc@$cUhc;MNNmmxE!fQR*d8y@ z9nO!ka`>={$v1H?EJK{BUkP~vxk990wLnbtPqLWoXi%{HO-~i#y7jA{ zDQ@ucH&yJlIhOKFaNqe&SQm%v26`AaCLeP9wk*T@kT-@T-LoyRTUV!D7(gU?l52!W z9%ZDZhODGYw%297BUzLiB%T%lC16vtwKa#&xeMz^n(!yk^dhJ zjR_Z%1P1~>_Zcs>{aBS`Zg-r|1mMUsyPYcsvcm1I4=FD^+59TnYyrXJE;lP{0{WJ> z6d^{F*t|u$I;Z5#xs1$fvXlAv^-9e7&{mO8$DRl}Iv0(8JCZYzh{#jObFu!TnH*ItodE%v3X5 zew)ITwPxry=0U$vQc$V#WtGz;N@nWIfXy&&Lw9n`aJRz(s&KiB5>oBw3#3?%FYM=gZ#NbIC1^xU z=K3Mt;`#2l{o8UvsEkF!Vf{n8kfTGhD)OOP%-><%U$1|-5}etubQycFYE<_h`wYUyfw5qZh* zYzm*E{^Ya5u781ls=tJ_Yp@(2SK`W+&MYwUhja*Qmi=n>g?saW9wxrWX2r-;X*KxG z{Ic40O2y?ad+ZR&IQQ#Emne*_PgdyNTV zshtkkQx@xeetI;Q?+Sf1Kl5cOMjrS1*JfBN;4YZZ{$+bYZtCNtR@*G-r+3?+XSY5W z>=~6@wop`n{RHtHaXVba50QI8dO-(%O+SN6t&$4%WBk~40 zh*!(ESMbXRnR4L;2Z+eJ}cj;T9xt^;$)K&fK*`@1SdiE-P>)yuq3BAx+ zfZLnyZPL5m&%EI}_a{8hIW^bDT`INsSxmSA234U%rzrwqGXbEOJuUFpOK!mhTvaN7ktJQ@ zI^nTv?#3pr5_SCrSKy`*R}u)?ZC05Y*?R~b{UQV89P?9-;u=PwXw{`){~-M5caLE! zi~XvuP*hkG1CX54xi=az3`F%|?!Nd210a;;U+Oto$YrSo7`%J&ok&kVfOLXL%~*$~ zS8OM)g0&t$ESPSVbbs-dKbf?vidHHT;Pl7QcVPin_4;YmLJaS7uCd!LaUJl-fE&#Z zlIo*-w^G_Vvu?}e`(NPdNL&Gpj(+!+?aYc^T6Jpb@Bf80o7Umd{ukiZQP&}D*G>bJ z7@nBgGjaYjOj8OF#}FSq+I7LxH~oRDr7h>GT4}hTbAQ9XRt|ga>U&ruIuZ9=aue=i z?I5M!6%&Kf^<|sns};M#dF;Wf@8Bw3bGc$wB<{ZAX3Sr)&^Y;VT!ktrH32_z-Vm;& z^`~opOAw+J={kP(CXJ<4!u+_B)PHV!6pOgpR*T4JTsiC#>|jkH`PUC#ehXrnMN_{( z(?${a;FrJS^6riJJhvc)i!v8oN6d2X<8JyB4x}GMPIitdZe76pf+A#!$xQ!Fy%5~c z-=s3>dhSX<fW*~fty9FV^q(`q<4qzM!u@! z^VAIwU>c*aX0d>^Y6RK90oldhFTca2eYI!3C)sr@`G54Ld(G-=Ggr(rt62%~5icE@ zwZby4m?nVn;ZZlEe~-RkZD-tc@wHg6axrGFT7byLP0_zycViRR4Zi|YSX1Z_?@539 z^}QHL`w5~AhtM9zT&vVDMsiU{l8NqxvZFuWd>^LFpNWO*mKlL{bsZ% z7+~bvylEt!Cf&CFk3dMGa|uS~u;x=-t5|$}{UhcY zyY}2ma09PVov&5PMl!`qE2^#7yoPhK{t>|_9gB*H#BEHga|Plbn@u&Q0{ne>yctHb zc92pc^I7w&qWiO@^F-Tv6o~Y3N=-vZxN;V6z4can@WBVhD1Lj_UHJIpkIls_An1!P zzQB$hJ522#6^NE|ef#aV%hY*eQ$$vDbhNn{dkg=v)i!O~cniD7@u^5Wg^gMO_qc;~{7XVY0^;K0 z>NuCjv!{p%0lcck=55Uz^(_D>EiKKYV|$yv^}|v`lL)Td!tih}YXZLZF(kcZ%a(PX zb8q6+Q<*6#DTs=SDoyF~JnsITvA+1{f*%mi0<13#AImhGT#Xgz&nP(##E)9YiE`tQpNw$v_osX{29NP{j!#}Z(%39b8ec1cvAdCP zq0-p6?0NyW^$9rmQPxUx@};~)R~~^@>A1WmKI(B|0S4+%Y{Zos$1#gJj-pc(Fd;q) zO6nPTjwhM~s`#;w`%Gk?V-=dIMYHTdP5k9B;3 zCo7siD#ZGk^rcN_WV zbxJyUs8s$|??C~+l%oo7v-|*$OOBG0FXwZ=?gTETF~ToCWd~mPZVaBk`HvXXy$}1l zKs?cKDy>=~fFu|JBtbzz=-00we*4?s8gS=|E3Pp6|MaIn;Vyzf^XARNx^?Rey-7() zxbC{^aN~_Pnqzuc{pwf0LU4$RT1l9CP`E<2l$WeuuJqDsj&Z-cL7Sa5_@DR_S}S_Y z{G_ccW2iwAYHetHv1lv#>!xGnP-{e;#)-X&SBcf?Ti2hiX*GTJ7JIk%9r5iAy0`k4 zuEo2Wx9HpQuC4CxdfYZ8d&Q{;<{q)&JKq{K2fOg?S59+YILpDXpmG=v?WUJ?e=5bohNkDS$ z7T3|#yivqQE|<2Jlc@c=c5~?j$`5jRC3KYeS&AWFPmY{gy|`F^}}B+5Lqqv~7(_`*gnTpIO3_kqOUJl#lwT zX$f^TeJ?K2p*{=9%*=7oP>+1u`-)N%^Vv_ulQRicy3e8W^e0eH{OTNmA$I=40+&ys zbKLpUIqvjY9caI8W?bqyD<|K~SyW=DvSGVVeRMq(5^S^bw&%NVMN?jZQt(9I5p-i= z_K4s{JXhBj?WfqKXJbD+QS?f7b{?g1>7Q)e&S&ji6pNQPS#+Ck=Xmn^dricVK%^7d zk2{SOeXbS&NE2A)-GBf6P_bu)tF>?6-WbT^k3ViA2~_M^zZ}??5T%GI<*QYzRz`q| z0usRBKA!o)|Bh3j$9LPOCbt$n)EuJ4ot~PU_lz35%CORltEqRwJbGT{_VD`K6YObom4+MT5`tJP9(3&jA_R{nXStuJ()AluygeOa1zWI zP=mU-lB+SP88A6z&!cWy#-@wiETSGI2l8Q||73*w1Cj#E#|3XL&S~_7?!+W^ekeG1M#=qR+?1 zIljLgM}5>h$8zmG{{LfRxyH3e-On|B+~jThxNp@*e`?b4Rp*W}-&Jc#U~O5=&Mn}_ z+PeCA&L;_|0Q@7@-eqdJg$9S>D5I+styW#FYzj|ebP+G5DQ!flT<%T9oo#E>=;!HO zy?ghzhn?-2EP<1Fke$iwIJ7wus7L}w8Gq}o&S6DzagI3>s4EgsErXxEW!Dwv96lTg zR3rht&(Zw#-d=E|n5zYG*<b0bO0y2M^n0rBFdEA`xt0d& z@7eF}TUn6Oo~lZ-#;6Lda@G|IRn_J>hoScbV_E)77X}{Z_J#P1z6P*9fPzhA!HgJZr z;E?4=pt2Hh%)PRbI;;EH=hRuvghTvENx;$lNr~-@KFPjsp3y{}3B;B7QF_c3s%{6J z4f~69&AM1;0`sSdhEo)z0FKHylb+lN98rB2_XrBlK9%_{pH6jT+?`e3Gv$nycby%k zv#JP)nr^B&R2~ggnOpUfl+IRBQyPNuzM5dt8Pkz~BLPPORh59fe^vE7r~la{ z0Y}egm%bco9SKw<0sFpLQ6J|RB~aqm$q6hv;;I2;>vK5rIlCp0!zIhNCT?e)pgiMm zN!6-RB3;X|HZ}iBqKf3Sx&s0FtbJ+%01k46ui_H0KoJRAy88PCQ<1z!t2A>pDLSWe zdUc+h=VY$D^~|TQ;y`A)%bDeVJFgj=z=r3XmL~UFgoXf*|8%~t@7)LYngZGBSsA6k zik(BWXdL}%pPHGMJh|`JJ~`aG_U*<~V_(MJ^!?_$`#GXZyiZ#;2b&YOnj+WQS4wY* zOg+df{i?A9s%CLzsLb3fLx=VWpj)?nGv=)1N@0|lWN2k>&Y@gqEuW8%r+j6i^ehin zkM4YwPFBtbcX{YM@qCbS8$WLfb#%~_Z*d2MG{3$J`1$we|HH<_ZKVK?j@h{-1NT-c z6V73eseeXJrm;iy)%S{;WFP?K&G8>$&YH!>zHEOpw}%exv9h+J!TgojgQZD*-DTpr ze?RS3wRbe%iRdkzgL6qP?)_c#9I{+j` zoaRX2Y?pvgd#8D~1RNXi68$@ux|b;0Vbd!l;9SpDQnQ|O`E*`X1o}(@fR3s0*rzHn zb|!SL1=8g(&R9MV-5wf_MH^OdbtV=9r-K?C=x?0sAa28g1Gt}6@YzCx0*(P6q*owM z5SIiGGT z0T(=?RlWkba+d%i%^eaLVCIo{el!R`!2dy(ugt4Ci&|ZN@tWKKYnA z{78$&3FV(;q4C9&__T9~4mE$Sx}@c``^R=MeMybkuXA*6XpldGSk`3G`W0r?Osz_# zV?hBfdV{%Dzw(-#_#o0dfAtcAX46bxEjGaqNZ6T#)tlCs6~Y=*hLVY;RjX#Tw@%xh%V7O>z`4bi58#;J&PpT>C_y{`@(nXp;S@*?BA*1Ae-bd1&R8xPa zqWhs}5}!I>^H{z$zWxOK$v*5n>ZASstdFb}NUdIEroXQ41Q)vpn@CSnL%LnQQ<@dRG%!*+L6kCuAj9mIfR!X0Y}ee2*o>gRrEsY z9TKR6Tsqftm6S@Kgf)N;!IuS3Z3L zkd>8%PI2w&{01^A!nOLv|-mB$pn_vcIl97>)j4ufq#c?;K z#N!t|hZt3=BF>zZOOTYBgt(S5=+(K0S)#lwT?%;1|Ax zIRI5zVyDEM?&hIr4%?V_(3@B|h&<A=9NKJXP>A87bmD6M(BMh7Y96y%hcieT4Q%!5)#%WngIQ``6L=a> zwN6^bU<&Wbp#j?>)~9>^GDtdYyTof|W+sAzf=X9uJ8hHK;za4`>1f=zaV=6%J5x*F zvUNRF{Yy}DZ?SjXZ?saO(K~Pc-oUqbEZ}mWTAeXCIM^7SH}EY+#b-u(2ExL^T))E9 z&Lwx+XO*sVb924!c_w|!K?&e5+*+wr*Sojax{OS#3FYVK8++IHy3D&b@hV-~CY|bi zEr{=HdWKij)Hjcg{Fm{o&_1Lw&S}|>wSZhJKviTLvLPMUbySshAuCuZgAFBSstrZDE4)4B;E72ephwdfbRytUsHNpg3{|u$$|yZ23-3<+98*`$HBmQ9H?P6M z^~=#Ywu5o-znDD%n^SfmC1Vf1TKFTnx9&h1!m()cYJ58P2W0VGbYPGE1`O48F>&Dx zjG6W|x^ublb;(=Ngni?hw>AKg`}L~%1sv_zm5k>5f@kJ_jmBIKeQ2Nl1pW46+19nlFD}51V_(3fo%$j!x)qmT&&G>i{159A zHzS__#z#Mm$57gqR;QXmd;8b7Z=*E<#a#qyG7DVb#T(y#h)qfH*n4mv=F$dsq$Q(M z>vknz8*3_Ac@gL_>39eBU^Bs)yFY&k9UDg(Fh%xWK!D}r$zNghj!lSe5{1n>69`_m zAUM_JXS_=X0?NkCo{0a9f8V6|ZQPxJaSNy7qTc6H4!QX2d;i2<+Q>epz`Z!>V_eqz zd?fDOiT`}{4)z?}ZvfIsOJ|{&%hUfqd)EP2RgtwnN_rq6A*4VGgx--3(i9dEdtG~7 zv8}o)YgzSI*RHGXigg#TB3MwGsDMfbY0`T_3n4%P3F)Ey-#70~xI97x4MlQC!@YOz z%xN?Cy*uAK=Zt_XKZecO`6qb<$jK9J?9}fuWZZ|CpRyclw{66Pc|V~;<5mW^`C`gg zJov>B#D~|$Co?Cau&4li+jqrGdiXs0!M~8k(8FbEDHt|w46g1m5Kn#Z8rG$4z~;ft$;$Kn4^#H0UOS*Ji3%C|Itt{Yrft^;vc|>LOE0bGX3%C|I zO)Q|t`40*hoRkruz4E*vU{&a4;Fb!szzO_n(E_z97pgM|XhhYDL~nY(JTYM?R;R8d zh|mF%Az@gxa}$Q%{}RKv3UTGj_nAfgMZM2O$Jg$|HGMBey_mWfHGMoT>wXS;6VTa1 zu>8ZBfH!+>#Xcc!6VgLb(8y1NX>aL?OM8E|=Ex86vMio+J>)Ny)~ z={%T0Eq`j?1App%Hs1Yg7&fGBLP|yhy!-8^c=^h|qF>iOm`^W~G1I=~UlD_9*$QQ%#^XgyFw_{JtUAq(s zHKWkGOHW+bdw}u4P@bD}y7WP#xFoC_wguHFqim?0Jm1Wif(gIOz}HW_i$I2E?aawC zlVTeIng34u3{PBr58Ah22pR#_sS9VKXNT?v{IMW`WEFrJOfQk^`dxzR#ru%9XD4pz zeST2V^IOQca_`(8lcT81>M<8KOl`m7y==hq+U6-dX2jJHd|* z^lG|=ysqAqf>%C$3!8WBK!dnM+;QRc^qlcW3cXdtyIQp>*huhZ)Z*#*^zP@3C)tCq zJ&qYm=HY@fYvGwM-^D{0+>A@k9*DgBd=s{&{7`>6_s`h*`EGQm-vZ}%>u2&Qg$9Ql z254x0$SWq9VQ(#xn3%mab zt&^G>&mBJ>AkqlMf5az(9$XWb4a0(0mLq{4J~#hsFqW-b2|x0_ZS;Te!(U&+nP+rH z^%2!fo+l2A@qqey>jFG`{rzY}kGy9I(D`#t+#gcE8%Vg65(^lAM4_S$s8))tIDa4)fL2qG!mS!aTIAlZed(TB@+WLQI~x z>aVC0q@3H~ixp?=l z&i)Y${Q{OT5i(QfqG!9V2&Na07Vdiwu&?H!2lMdKvD8G*v$)^O&>#bh5TH==LgpsA zxW}F7*|8hLtg4_!NT~4yQOMEbSKp1aoE^CFsk`y&$aj%TFA(K3l59p^@)SD*cFeCxb;at99TUK^`9}{ab<6wW7Q-bWs8sWJ9+$)Ti z&UH`TjW<5~9}1YD{7B#5B!hg0xAmuIPnTA05keqNbFP4OtLbsou~|EUa{-754MF!7 z9WZPC5?%+PNrOfv4^cdU(54OQqi%GZv4fS*dDNWH7(RF9+i1bivKj=~YSW8SHr%pp zD{gAu18thNy%Dh=gc) zb`UEefZ<14)sVR-7oSa^fQaClCTaDN+!Mr4`YQKK02lH81e8=%7akPKBXb@RLlR&n z5JR3m@@o0u;n%sN)fznW;p^BpZXfQs>=x5k`CI}hgFId&uc8zcA}zp1`fO&%*}rFv z#wA_)Gvulky;%0)!K>~--IzGDOPT;Ng)d2O-}gm3RthQ8?oRT|*|(oE2_T~}LI^s@ zCbG3?SddRLsIL+Q2L|||xUj^4F|}&c#4C5ulZD|!{~q-o{>8s1Z+-w#3`dg(jg!Ad zMD|&B3xop$AFR=){8ec~;GluPl*@RyOtkgCUSxDSPVHf-pflbC2I43FIn z04dw3E;20KjHv*~Vk)nkN6C?OjqM63XVLx=v(p{Bnfb3gKt~c-0GYgi^ekjDmB5^} zOK?f|{>WjtTtrAs0* z1?Zu7-K*bhfg`PSkAk2UzS{XniF6-$_Zf_uG^X^M%J&;fZ3CEScJj~Duql5RhCTLg zy!YsfcE8`h1-z?NO{!e?(|EprWxpE1eg<+0--T89)WOZ)@z zarH2M)zA24#bV4@G>3_qQw=DQ#pKH>l6N;fwB)sAi|oH({W8p6v;evJ^jP9tczf(e z_-X!3R3o3}^^&oxD9@{f?d3TN>=3A=1jlnWuf~`kzhM&WpYZqZK0v1yXP9K(6Su9! za)v9tKj90!GHDdf@6q1?U>ZN;p~Iu-Se2SGZ_%3F+c1(jkQ9#f>Etn(xqP0<19o?h zi}2Qjk1?IH&R@O=Q-7IbKpTNLZ4#T{r$w`|A|-`Mx2ItTa|C&S8B5t$b|8zkSg?9A z$84FIPfA8UjB{kc@?Q)@ zJ#RnBXQ(ZD(VHzHHXi?)HvwPpnSJ(?H?SacGeZ{B&GVtTzbiMpl$4$yljxd&X&Z)} zO<6jNIknc}o0*f1ca?y_vUryg_#G#166m8eo(8GXCxNEBoZ@3EOL3DxSMns#oap*O zINghMtjtNEcX1aGHwpCVKhO0XYpy$!K{8*AeYbT&r zR?fy{(e=?bHjyN>&?*0y=i{9OdM{Va0x2qc5@; zTJPrC9jg-)$0pO`MV>zLtZ5Vyhs2nACIm)15rr|FrkHtTYF7zB%j9OpgF#!BFJltr zXnNmV+2?!%04V$@j9v`&BjYe-0TTu@k51j%u||fl1J%(ik%^Re8Z40u~VbTFcO<`}$sCaxH16w^qTmjs2vp= zGeNSFWnacTISTDMtWbA-f+<&0z1nd|q8tL#_A;TffSGoUTOzJzZGuUQ43PEMc{f12 zsp$Bd7d^pZK?>t0BF;>=*kH!JGU#n})XrxDfns7}D$RIX-Bb9>R6;^Rr2@A#))^TYNK8zu zbmP5w^JYXuM3`NY>>T(5e`Fn#=-T-$D=Q1}@$skaxXXJ$@I^k8k!EIQp4Phh4!)hw zn>KAS@5<%v(q-Fb8Qm&97 z+JLfXSGHg#N6s(WYdn`kTkFeUue|csk?mw(6M97j{OK7-mIMH#OQ9K$K(@~-DnTg2 zv$WA$Aw!hPD|(iK0{u-Ne~zaOD^loC0TVf^XzavCw4|d6f%5Y_g@sHaEpR4;d6`rr z`6aU*gRXexXwh#<*6(h~?0$UIAV1x3bw8Z(Vgb=pY7oliN$cU#tWW78BSV!oHV zvrT&9zle^ELNP%%g`_FZR0$0g#Mr^&y`Jza@ed91=gwgsP)B2%U%>f5{+bU8)63)7 z2L&($kxYF7E6Hk$WC#ulFu8zKmtW`!8w(DsZsZm3K=Lls7)tOX6!9V{jwiz>*(QiI z_flSkSjpBU98hCt>Z38YMLT{~rBMnv4#AwK`WzAt;k2=?!$O0Y%={zlWzwQSmtG6a z_yWqLd{+W)jk5$9+Zn96DBEjWdYxSb5wzD#BVW zjY?yIbm@RtSTIddfNM*^yC9zhcUpjv?HS_|-;+yaIed3KUgh@a}U zfGsGh!X&~O_}_P<%ogSUxcqiBXPA!`qPD1QK7TCGQ6-PE2$T^`9aS%xa&n8!;?;A# zkGqR`^2q2~?F#8-c7O|REpSyQZ=L-F6O_nV+jH-smy>dybZOWU{ka=hadFuomt?R! zi^MxrMd)r3+WeZ<<1%Tz|Q%BmXxY%P4SwQ`? zz|Wz6I=6InUS1J}J*1}u%f()>$lBTV&E?ox9+Fc)MPZQ#;7}XY?IB<%rF1PBG_K`^ zZEDUahm+`<{-h~e*)da{l|z7qK%N;4^BcElDyovtbC=(ZNG22)&>}v{#iOEr*_6%l z*PN3rB$wzBb1`;TJK3u^zr^q@kdCa=-;s*$}>wr>u3Tbmq-j?A1DaAT*-2hydkF?P zi*%4K0ufb2-&w>*b8*ix*vi@ex175G&~LGt+sCzlYXR2+t_4mD3+Rj2EtS&(?%1Dx zv5lz~Z(tH=CDrv5ExbhH_5tU4>J?pgWlB3yO09FZ17k)*fp&Um(cS+p$8vW@~? z)JOeQ?9sM$f)Mt;mHS{DFG%YJ6Ks8XM@!epOBqzG4$gkMU!C{+b?C`3!Zs$_BQDD0 z5w3eG)~332$|iq7UF)-ikQB%JAZ5c#wqz&U|KQ!S&#cV$u2Wv4hn>^5K^aG18nVAF z<{srS<6HW<=ecX=+qZjx7jWff;T-}_EmY3IJODfssK?bj{< z^xJJ$`Fb8gZa)wSa2@*8-Km0$K$*J%Dt5yjLE-Vpg#~ z$s+uUghzQ>O30qSv;5k-h!(9{2jF1;002M$NklMO-&i~z756SDXW#oS!esGPM#9lkt(8Qn2}xHPQM2J*#2c5Eg#F*w~f8; zTYseM!!2>J<+0LI&)?GLAjgAezlF}x^ii8A=5>l?$d^LiLQCfPiYkM}N>_^snB8RV@K9vVhs2aK1~ZGQ!5=U@ zLIA?4QuL;I@NH9Pr;cnV+D2Nq${4bOfDOHq*g2k^%N>Ij&cyun%h5145tsHHU_5G+ zcg6YcVlAlMp9IP%1WR;7xWmvqZcUzBl#kBM+Lfwi!&Jn_`Tc0?OB*^)v{kt_%Lxyo zR|FY~M-JsHq!&p<&2S@+1!y#ymX_p{EM|G3cP__0U;b+A)JyEuM)_;B%hk8sX-Y|a z&+XJ3iQ0Wk`IFd3#oEza@E`Fvi+1nS5*@X*Aexi6z9*dZR(9LQUYEr~{A@eR+v;&h zJ>{@GY`b4Os=vRVAEx~>mr14r(T2N)ncb?`Q8F3&4%v--w6Nxp?(N~2slN@6vT_}X zua(!#C$GG=PJJyu(JSJ(e>rU;bNA$+DR*M)+o6Z?lo4&UbMmq@tQ~#%``&k6d&W?M zsJZHKG_rP7J9(J}GV$`n**_w=UJ@GePu@F*2776G*!HF4$2voc_pMBJ?n*YvZlA?s z<_uDfBqhi;g?;r-A^O(dP99cv`|jbigW9Wa0drRBj8nbD(mMzpK4#0oMY5Knu8E-N!U&#qz%3f=vlhPo;8j7!RJE zO7b0*EWcB9Efxd)0#Gv~(EJI!QJugQEo}cgZUm+-oQ3X9+9875s_$3a4i}Jz7534t zNFyeFg@xSCU5kEZY9Sq9ZOR&aJNHLaBZwkC!2}Wn;E0bFzoEe%-U1j@S60!2KV|Di z41DrdY}&rnNT8jchK~6dZ+!i}SqRJ9M6|-lLpyX?S~>>#dwA%c!qT(|)`HuQ+mVNQ zbq@&&JS6YTA#!Np&;R_%WAuz~uzA}S%6>3kj(7x;M-9@_pL9`s@zTOw$FPtfo_lst zQ+t5|;;HsEc~2md>>kWI^;H|mCt51HR)0@>+R@uifQ;-D;}x3Q9__Y~2bjK7-MwQ46-;NAQ8$igWDcWw4Q;$(Ajf5Ed4W77d$n zS2%6mU4TWamLNMj8!<7lW|uH6e0_`fwy572Q8jB}HW%70&c6aF>FHRqc`fe0R% zLB`u;{)%4=t>mNzh>xku$U}lW1f$l_dnY|3o!fNpMctS<-m7Q4lhSr>!^X5t+>I$8 zwJ2Bpx=CC#ha9qIl&;db5xq=WBsWC%?%kv#4=9h6Hq2?=mQQTQ$Y)s$G-QEh(fakK4yrjs0 zc1(n1TC-s-=T2MHEsEn<5YX@=P*K*}hfD;TWMu8Ys+85-#=Z*bC)PJQWaaF_ww>Fl zQ(eqhxCDN*OPeMw5gHhR>jzwnM)ewC)c0Q*;6(t(&g?8~+`0*^8a5|*MNo}4-A=li z&y8s>g`(QW#sVpsyR*1G{SGvUOE7@e7S4<8oNP2oXn>{bRw9hMacK-UaSW3Z>Lb2R zoB`bmON#Kznq?>{F2a_~ZRjO1jPs(9yP3^fzQ_P9jq5i;T%8!BlkB7CK?(6wHl}i( zL?Ai7K7p_5q_f=2QDGE`brX<8SqeE{Q>e>~6$^3knFA2CpCBdeEFftI6PvGCw~BNR zATF*h8rH3E##WwDbCxW`o}3(L7qQljTbR&Ejd6B9=gI1g*t#Pfd%WIy))wW>f!}(s zLIEHloth-hB5=pn*$*^(UxTZA_P(>;_XEt{bC0eCPJ{*Am&g-gWtWF*fm6T&$MYNZ z6j09kTvVaTRAKhr%cbvU^M+bN5Ih8zsw01uT`5ZhuI?YaxRtEgpvH=ebe-SZZ zwXvI_G+|Ri@zS72v6&0tx4-^CD_MLv@pHU6_Cq{)@hxc8sJRCK@>);8j65|`2?TsT zbv)K(Y)0;aLd>VvLPG6W{Ppr%%MGFHBp9|K9!-T62N^<&WbrVZk&s ztWy_DzgdSDZ+!?&2!3c?cSzB9C>OrHTXw?A^{dUT^_x<#G&>E^QPJjy|Ka0DV#B%;U46iGWKg-k}h1m6c2s;3R=}|h@Auzs?s~@ ztvjE_@b5oI8bO>OdL(TpkP*y<`>TTJMqXxx1w+7 zUIY;LA+I3MNG>{NR5(wb`1o}^cy;T^UApfsF5r{s8k*mm?;$7E-?(fj94X3JvPjqxaain74L`dEPc>rbAHY z|L%JM>o%>&YvVsepGIe3?e@*+S=0&j8A>+d`_ULhn^vQ0&wu=e0W+`ddok+Oj=?{M zy~O-l1q3pKv6FM)*&7~U2wHuNnLZIiz8{5d^;=?A>Qda+=TcmI&Sls|Ao1xBU&E>$ zThO6i6Fxf`9y{2HY^+$Z|5O+NWPzSpvu5GD@4hp}@7uR8diLyTCbK4J2@&Ycn>S;^ zgbBFeh8s|`W=*VIxe}vBjY93(wavD3*IjoV0{Aex#kGKI0oMYq1zZapcMDX`^~G^F ztINQ(z{#+HT|Ar&-hV`%CHuJbxA`H~{UEIH@smk^!vaooSov$-`(^~1M#kf*J03Q` z#a~~06hCm`+w+XBxUAbbcroL@=+AAtV{1hbw20ywnw~FS@JG7nT;4ymYJ}mEZvBzE zDHW}fo1sU`&L-MIp)>*X*!XP95PbLYbhK~L77x7r3|4MjYXFKtONtM+*O z?dS0IjPLRAHI2;r&iS0lYs9ab9|m^pjl17@8mrT`AT2!&7dPu}Ja?9+tingr$6+WJ z({a(Uc7-vFz1o~8=4cGnW zF)uJcqn0sMC66Z&_Q9L-F3H}LgNHwU6@TvVC;a7->oH-*B#fQ^gQ2yTYtmi2GV%D` zPolcNAFg`k0qkM>bz3*!?H|6xH;=u8uv)dab}dE~Mz07MiSYA=I8i2f7sV2s+mW4v zAz!_ZKX>ehEBhGcfD#Z=z0A9o+KzBUqcdmf=LfsP6En@u$a) ztW!HY0$2CC07J)pg0ot6VP2dD1X}zKn?DjnYxlkM`kF9vGD50U#|w8pVM6#GeC-L0 znEW*cbUq8)3-%bDK6&JId^~m}eq1^SXSVBt(4Y`wGtCc;kHSssa;<+w_jB>i#1ZJ% zu_w0g*nzJXPs3~152oi0P(aYK8Ubl%kylVK=c+C8(5gYuOvNA7%=p~Y|8fXCyXVzM zkwLI(9ld#`5^x+waHlD~e4c#!1@la4E^7RTKJXI4nVV|xkf*VP;8}zCdZbhZsoT=< z=oNPw@4I1>zc3z0^H=_Ybb@6UoOQ18ddkboMKQgIdba9}?eu@m>TKptds z7SG4pj4k+pJfi4b_t2aF#7Nreu1jvhji0`RFK>DZ=l1v$=i>KxWaJy@-?^lzhAPlbS$gx_j5Y+C|Eu9l5EdU zJt*#-*^}tjwzEl~97S+I3vjK+khuY0Gm-Cv znUm;Uu^t^5zEoE6cy|D?3~Q2i&DiPRn((SiyPkuZK>?VzdNINnUi8s7pBeCIY1(@9 z=HhuSJvjsp4Cr5ffYg?TXuw7#+rXR`*BRo=kd*>@xN-jQEen&)U}3m335D-eYH7hE6Tpl6E1Q z$0V7A+>+Jc2NYPe6v`wIDdnH(+NL7}vbAW~4DA{>CCEeYg`sH9`6FHeTeMT$v^5Jj z|GFYJqLwjT*VY~J&7$e()w&D%)o+7aFT57P^wtRt4#hs%$ZIdByaLb)=(RTR%zhX% z^E*sm`ZEgh^3f%>5#?x3Z=plIk8EFA++%%DjoEdJK#^qKMX=eb? zBk6UOjmf{vGG0mTn>3TzIk)@_m0#AcKxp*&^YVygYM%?%cUpx^yWnzW8Fq$HyD(^g$-CBK-w2`I0`wtXrJU zeJ5$fndERv;$?a3?uq7qxI`zeMh~$bHXUUH^B{68Pxm5ytw)0%qIzQd#x%707x7EM0jJws{ z`JA7w<6fC`)x35VtGkYNj@zTNojuocUqqmR9}1POPkA|f~pk6iy(ehv#n*>7?gjh*>D_LHWP6$@w? zKkobX* z9=Yxw-lMQyx%F(>a*qr{S7D7n(dY1@vAL@KZ>g#x9(StLO=( zC0qf+lQbCGrK^P4S~0z$%6g_Hj>bK@Mg+akGL3!$zjkJ2n#AK|jnIG~lj~?7+nTu} zL2TiD<@)hc#&H^2-bB&#)cF&4YI|wqJE&JD7X8|EW6mHyrW49 z`}XZ2?;j1=fB^%rWXTdlMn+=Flqp!Ta)mLNXr!g3VcWKCC?Hy`51!564m*^0(k0IUGoT}ps=@cXDzm_l=1&v~UOe593( zQJ-s-@$*e{ean_Dm1el5Xl4CAv)^S!d{@~)*YnC&D$}@ECS85!u|CuEzFgk>n%?9N z@VkD?_HC%oopW~X+=;DKHY1;lRxP5+EAlv~9a+1)Choo8VSxi&A1OKVwLQ+m&`F=u zd!#kTDIL!({1yuazsYrxew5vhP4pV!iCGvMY~%<$HJbWMh>ORMi)YdMrV}z02gfu>>CWqD%Ak_~5%QF>cl*4D8YuKP{S#1SaZj)2Jo(jsF;981|LP96X=S zorGJ@JReD1aQAG~4*&ah6#JfmcgKH%^nz?;QBISeM(?C$O;Oe>$?ke4e6GhN(*myQ z$0p#1^feeiZIS_=-kUuh2?Wvfj0hyq;@wX79l5*BTBjv*DZTR5P_%E{5@TmiCR&nj zLg~Vpw08?bxE8Hiip8m`@b77#uKL&b8eOiZEKd$2%|rI9{rchM>l%oOkX^g-XBru(4>tS`zhQx>tExT zE9tJMkw|+ep|R23X?U+0@(46!rsptG@hS`%^8s#1?!biB$;ermi6*+%wU|yS5sp|-Igd&n2W&)co z?R73b`tfVj2?;}YdY|PNmXxWVrkWf}mh9YWl9+$ZJUwqLn1n&i&Ls5%$jZ+#AdIGi z#&KKrP6OWbYttQHGv7{py#!2|Hx-lDOv6J52BBMv_87`}^*#0O)2(@6Aj})*kTB=jgwTvT_O(?M~0)T9r-o1O9 zFD(H;{rmSff41HG@4t__b?X{%$kv_6qXj?`6BAD)+f#(h>+#*~VSFd_0dE%dFY_35mCWzyAm95-#+ggSNV9P+O1+s0n6 z*`I?w>-M8=TpV|+iRW87-`DNUBOG__;txZ|u}B8}dCJj9WZRx%$Ad~7lVDna3p^Ou ztuH+^_F(wf5e9S_d(&e`<}OEj_cG@W0fs-fJIgF2Jqz|DkD6JJ5%9Q}i|*X9Ie6%u zXVEY&(d<$c$FQx|^mXy9(SY{#o1+F7_|dh(@$!v-#|I4Cn$3`?2zv4K>D04)Jt(&l zDBp3*W9Zhr14E5M81_<#$go;?^2Yn|@q|&BOTa^37V+fUG$9cWUUUm4&YFVG42OC7 z+WXCYCC)vkdtZD)&}hNZg?Q}RdoY{%aTFp}UeThxQ?quMx^N~|a0jn@ufCo6ZX)s4 zRrg~ebN?s@&l@*Cf~BjM8!}xQwx$P492eR!;cw@*Iny{D^zYIKThq7V`@x|n^CJd{4`>q7r zwqWY)X}G@sW!N`yKX-V_L*3{YjKAx73?2U|CKEWSMf+aRdw>}Sfm5>4538n|TuRA` zj47tbWel-oZ%q%Q`P|j&e_wrsB}-i1+rFowcP#DGekX$Do|NitHT+m|x`gQGN91LS>*Fmeq zMrfPV3~>aL_v9b${i8XlA8WL0*{c@}!pKQqqiIqjeD#;7uwy%uB=f)CP1~FNSK_Vq zy;^kQysLp;lub#xKl^SpZoc3ew2W^=PoY4>MApGGH$I4uIj^VApFul^qDg!*pMV2s zRxjD8EuBT%{7;&J+!0UVi}Iigr-#}t1Fu3IdR%FjytWKoyQ9zLcy-jf1fKkG#aZX$ ztd2eK^=&VigwOsA@4K%1KwQ|PKcCegJbU8<7&dMM{`2X32n`9vb2kq*!0FXzUx?x3 zKINR7f?LkH0==l0yrJ}LAFsk4$|{Ds23jxBci(-t2?105sD5F4?6Jr2$tRznPoF+W zPEIzcpwK*dlc@c9=beXv0|%mE!-g0>d^kS;{ByJLv|`EYMu5_=VZ(6#`RAK(GBY?F z6x+u0!R0ZM22DVd{r0f;%wT%0XzqK@52=?a^nmF=`YM)}UYOIltzlA9l83M7Hk*6p zaP+f%Ea2s&V~CdV&ym{Ndf%fZp?X_Nb!Uau%ig#5Y`yxJd*1F=UsG@G;Av!RApl5= zLxFczKik&!we+0VN8;QbOBKyvi(AeV_4=43fv{>r2~7>qzY^5TL#!R4R+5 zDH=v+FEOXAw#^~59r9TIhBhxsZDt=whdyd+_()f;9I8{XdYN;!(*LEj%HU_)8Cl88 z*vWC!ebs5M3jhia4=W9c^(X12Y+h^r@U(Kd#ySZXT8S3-Odh5DW53l`IXG$4%QoW(;oxi1hy}U%)ckWnP z#x@QfzVuuw_Z)k`&|FiY>+>V`qUI8Kcp0Rb#emXC!ulSl`$HLpr>ZyCa{Y-nu zKbD`B$=ip4C;FCODK9&(ygFOjrk(n5o@;TuefxF;eA(}A(X(x=Zic>? zo0|t^@LV30%gSJy+OgDykKELp z(I~YE8Q8wowpp23CUl|}6XYICDPeq!HSv-9iEkknrzItO5fK(_+Oz5pS@M{Z#PbCG zHu0r)AoKs^@w-`okUzhpw1u_CL5uLf06$)P(q$YC2ldhSoOX%|CCDPLjjE(ujbSjN zs}jf`c_niJe-Kh=R&{3P75|XH04NQQJZz3sJaSb-P+)a>PsoG96IP^pg-vOTZEZ_l zllgw+*|BsTw-hI_FeZam(9o*{30fvK!42nKY2L-OL!J5^pcjcB^A(j4_>xzKottIJ zp`1Jl|5C}P_mRMh>RgyBFOBqM5D~+17*fYvEdfmYEICa0j_k>60SWV$EktBQBx({w z(Kht=41XT~x$$A^k1)s&0WEgKL_ zZyRk3zh&zdJn+Bg@aA9tiKN(g6B?ywx`gkYAskCRAF`Q%giTB${Ezqlh5IkO37uNC zH9%TfKT^rI+Qm$U6dmoFRaCUkgf6MQfI^K~kjB+J85IsD8!9wQZF1-dCGQ-CM3o0P zXfEp6^zh_)5j|uyFPZyBxqVbG`U&&WoTxe~u?}VW|ye6DX(VWGhs--G;gUo!0B^P*(cYO6Ue z51%3edHcven01m>_R-i@tHx)FVTb}cwdPRhn(7sfCQmw(tef%`^E1#Sc0W!ZfaSxf z((EXU9XKU^)-GS#$?MKL?=-#jvgPy~88c>#xz;amBS((J=+UFiONo+0TkjxC&-dsQ z$KF$&{emhz*XVnT^PZ}FuS?rmBRl)rI@`#5bkZo5!`shZm)XXLj=elmTU+mYEUTaD zY`e1VmwC^jYiS>c&d!&uvhG`5bm0h3w*QrOwy&Y%XnU;JzIHJEedKZSvhtPkDM#0`+LXnwv>i_@FXvGoP-PWM z%N|S3P>xKcZN^e6P!@H+>y^N@-b|rNVgmINFL{X?usQZJnd5VSR`^4m!Rv z9E+T`tvy=amY46*x1GJ#(e^Es+aaTES4yw6(ZPQ9o^5N7zV*)QQl7T4_h{?wvGjHs zGU;AfG@W(MHl;MZv`Vi_nRrf|{g2ef&@ICjmXx!flb&xs=k+1&eDpo!o|lP}hvjSN z+0QjgA#EKzO`D?_N3~P2bPnU=pyAZR^s!1C3I}O; zFD3M0MOBuUZaVoLQt#kviIleWq3e{Zl!l{?^S+bk5$To3+bfLiTguNv*ow;I;dA_u zww8{AS20&*L0kk1^f848XCKQ`_e$#>dU`rl?7zpEe8mb|9yKX)_>h#>rUU;ma&iHilgn@(ubjH4dVwQCAhbx{y(iCjJ(#es=@X3iO@46!n$$@^ z|88f|!$~=d6pH9cDWYe(u-FsoCR*hc0ay9n_gE`~(UqM%ntFyrU|2qFE860tci%k( zjf3c=p+v!Rrz~e~n_znD-0$n<2Tx<~^@s(_brg+g?M2q`*YnEWf z>P3jG5sq!#o$B5TZ#1Dq#k8#e2+a@m(^%@L1l$U>)3)yYnH#5Bauf0`J3o*38=l@V z)3r&(LitoLkYAqNrj3uhYOC>;-a+(IQ9C;abg!%;-9$@8=V~uKOY#qnx4i(a~>a~c0A&ysk{&bEk0uH<07l`EI?)P9y} zZmWLp0nR-Zo$F8Gbh5j~Jv*1r5b3DiIrl9O9aXQjupa@lJk)1QPUSnb8An>DS->H}QRCK9O07$|&YSak#-FM$1a$a)D zCFa^H*RNkcbFB}sIJ%w6Ysf9G1zZcb7C5CWpikiP-!)Dtab014n+3`Oxqllax0h=H z*8(Tq0`BMbF$@8{54fNW;-XWYAS$QASDuFOv?vvzh!&G}N^5cGEM+Ckb>8x)|-2_JtYw6aWqBrwQ-DZF$-odZ+Sb&)1_;x4rrW^jPxDbjMG4TbY0^W zVREn7`N%$|94e+S`O<5r{I=58`I4~pww*j;v_QXhz~wl5XHV?P-i6u>VTy^2qUVr8 zoCy9qGJ&gQRk?@AJMjSMbB9T7PP zJNBo{P*j*8?wB6EDfOCOyq_K+d_R|$$Ei|I9Z60Ni&V5dj`bPglC{DNVR`GQ^QEkKqaVFq6atl8 zFNq+5yn+r59V+ebV_vO;Ycp?>$7Acr-an=N?THVaU#YgYOV{S573H1?z$mvtnKxw* z=~Jgx6zbNAW*8N{ljzlRGS~daI_zwS(eRH=RX>vJHN<)s{2pzz))E~{OY1NJF!tK_zWrRZ_kR!X^7`74 z7_|}4ikgR_rPsIea@xqg%1h*Fsi%SM`8=qjmCNdH?IAgjrO3t#L9@k|j<4NqJB3cE z__nwAPxR5sVeRo-_=|?MtIq!j>wn3pIca8xcTJ%AqL4OuYH6+<$tJenk?#K%8&+hW zLw%%bpQY**l8w17L#$7nFOxoZK}0;i1yiW%18 zZ*p3kI?DkAdX!pNSCy*>xX?T3!nMn>V#6AftXGi}_Pta`doIi9Tno}86wfN6C1-z=RU;zCUpk6Az~uz(EOjH*MR3S=@Qc!)yOx(He#)`w8H%ygh9_vN^#e z@wE3$d-l<_iUk6+(6%6hxxs%759(FQ!>hNGmZf9+sIBO%-JFU!D;L@7GLH(yk{x#L z&P3+!EMzg{i=8oJ>CYH3`D<W8u1 zwtj<2o@{AZVGSRLtyFJl$>u)wrmfdjPCDjU(){r0qc--h)V^NEhL*Rz?rCgNwr;|l zy%A`6glkMlc)_q$9?CGA0Z7X`Eb>4b&uME4Gj=%DcWYu${ z`LQc|H}f>*Vs}n9wrA}ykxa^G^b4O+@vwYEQez~Weeu(HEK6B+h|`O`UzYB_B2I(}K7bEeZki=VC=W_jrmuo;(#L!9ghwo}E02ej{gz?pdQA8v!mnwL{nF852=I zG7cS^w%{T%$Sj!U8KNDh1PCdlMr&Z@CGqoP{u(BaRh}CA?xOM4xwfw!JmhIye%1vz zr&~|_@bfI(_2G;7Lu?qrVb&G5{8H=PmcgAEwKIk7*@n2)dEt;z|0xR5XfDpep$a9GnUUsXKo8Gd3}rI z89i+xUi*4D&T7)033&?;$xyU=FaHY{{RK!#+lWzX$08xN9wKWp97}fPf1>5t9nCW@ z_cBCGz?$R{ZBfIHL&a1W~`JrSsNpja9g!30#AFrJFr<9 zJ@)k@Jr5`=-IYjLC5XFA86G^>PHWmSUhOpp{Qb47m+bD@)k-=_N`L==(ms+`$*0Xu zSd^1ZIF6nz+!cZ+U_#zu0i>mS8ryyJbXlEBuw(TS^l9IjW2@Z-Ju>O2c1J3K;_XEm z6!xY0>(P(%$GcsdXP$TxHmkkbXg=GpIq^^**;zX2Jc#Wy4^*eQ=ucW~#vQyo&w%Vv zoiy~E=$;HAK6*Zmrl?(La1bWXor)1tzCsNq1fR2UCEC_aMn-lfp1Ag2WbE95pVu!% zyT&cK>lb&vqtlkc+RQv4&;6`W9x2&WBVnEm%5TQdi??f@SZ}YRk*gxxxByT^TGOTF zTEMly>0<$Xo0Rj#cKRslYT{bJwSa4Z)5HSq=k_rTq(Z>_xmc>G(3@jo?lvyh0{%>v z?9Xk*cVy>aUFv$o#l#_!xnWjsScmYM;Rp|{X}o#zit>@Mbq8W2>zG}vw9vH0^9sZ5 zxe2}~sqnJ(Ytiq$$1&yhXVIZaGkTwF!H%p<^y}IO(d=K^m(NiIcdp82^5V5A83^RA z%?UB}%qx+=j;uY|*tUI}SzrfnOY}tE+q!cbcXAFw5qCh^K`)7Vv2{_4;E6#CxbR(1 zP-PE2D6|E4Y*Y*)sEZc!zC|(wGWl`lp54gUkzsbI3Jnc4eX_E*abX@}01<&yk&(5L zz{J8@=+iF-X-p`+XHO0`ZQYC@>U^XkAVGk~#qE0IpLY%}#p&`3OK`!NeQ|dCGjZk9 zcN+VOh6R5Fj!4g)nLCZGBEut$Tmqp|so$>MyUm!zL`5Tlx(jaDxMd^OXQrV~hwj{g zP1~ebMf%PR+AjkGyY@vLCYlzwWs7+1pw~%SdYY-KS+geU5tyq^pkwvM_1H}wO2S+> zrY>rezdX7$2UewSF#tq-T)e5@M<9hhG1!>CnQ~>ZPc?2wAHf_vaoCcvmB5TAS-0#M z!i3dzIlqFr3)-H7JS<((HI^$ooBWsRW(*KS#B zH>Z&IE@QvAm{`gcX#kQPlqYSQ^s9n|xO%8nBg|}LzmA?;Q5@5q+cL46UN;exS7W95 z8&#{e0dVwLCAyM1IwA^LIlHhaZLL(-_9r6k2Wp2+x80n^So)!~~OJrWB8r<$) zKN9>}5rC9mP=r76xfsyBFS7IZV9*N>;{I#yM2o~ml&30&jvi@pSZ(86-??KuLPKjH zIiWsw?#jgG^eyPrq8*}ZM;j1Wb6WYJN;pqf5=_$^6^~dZ!`3r>GKvcToeZnHJY5U8 z7C7ZCaG;9&OY$i{NUngc1zZcb7I0X=^P9J$!aY5r1+)y(Ht>F2P&s$cIbw$sbmP~T zXD3LI-^=EAC?Z@$AjsU6zaWL-ST8M_j4R`tM?$f$#Nh=*9Yjlu&6MP z#|S1xVBzv#@Yu*VkPu#*;6V-=5C{?FvW7u*0upxRc3`8ujzk@@eFx&%y5iaJ_WNL{s5g?w?iJcFc%>q-p1_BMPwdkPk$uE0JTXg58-6yo&B<3o%` z(JLe0#d6xVMO*`H%-)WtuKOFkssgcU^Lh;VVmN+SIiFjp7vhb-JnoquBDOwOY)!$Rd!LWK9eR`_#qqo40zk*lwx=Iu$A|Rkr`(|$IY0Ohz2jb0 z8Vl&t`rvy>rBT~e)U`mRv4H!0pMFE_j_J{lDHm?V2N-U_g|NH`PR&v|zlb#)2N*iC zbn{v~)%!f$aPF13?>|pqMapX2dhVa`z?)CuvOecQTc=N3G#l4<=#QA%bx^{^sS{Aq zmb^Ih zq?ZqO4XYV}2flm`-wyr|k6d#XZhi3qtl=WOA@4o#;VZbg+j+S9+{^IEq|sQ${7ITU zWft<0SIL4+tML4YHw{Q|U9Ssp7CnCiUg*yj$s_=6>(1?Xe$-pIxyOYV(4#NrE}4%x z1ccOd{<1~1eF^TlW)Ol2mJ~3IOrbw*>Ni75%6jZ9%tp5+?Tju0xSA(5!85lEMzx^~ zX<~?#o<8xEC(%1&KSp#&Ej)7beMV;i9+Gv;>`4gRUj;W^avkm?ShXiN*YulB0C3c- zZ!zMLe;XQCze1bP%OtjG>nU8_?-B#nO+Qc-#8w3vPk9fy;iTOSo#u(-NqxSYs z&GcN#vq|~}((~=zanIrFrzfF9t9BUt?sNEY;Y{2#@G87`+arkmD2(%5K41sO_U9D~ z5mcob{&M*ZCaf$sFV8%m$10a0`aAzQIKzJ@A-8)auz;TGN>UF0TB;<9yK0tNz?}o7 zrf^SO3!I)7s61b3r|0;Up_LYEZaF#&$WlcNNl*ybspJ84C=_+*)zN8oinRJ&qE|ry zbG2OAZ251gHM081Rg*9oZXcXT7br@naZNV&LWNycot7f5X(^ja?u%NPbz0%@R z`DmUWa4WXaYv&t!g@gtLF|Q5t>@ciIo-b;1fF2GiBx3-gOV7Ov7o9Z_aghugVz|*R zhJ7h?<@F^$;Ih6KA||31!HysUj_A2lXxCL|UxZH0Tha?90&Sw=4InXd*?gRt)B5J8w<12v1;zGX~(3>t719=zaYw5s2N zTZ9XGor9S0aMYyTN|-B#|D$iWKJ);|!r<5b596nP%Unm*3<%M=MJu#QZiaY<$o21W z7XH+YHemRkLbyT$>90eu%l_aj0H~0mOJi5eLBB42P%9)D0ZgFNAU45_({+6>MQ)Y7 zxc^`Oz{rWC>A|I3K2_*xv&evVpAcAkck~DNdE-0-tu0%#9DV4;)2ri|v`J0!qun{? zDw+?s40sf0cj;|Bg`T}>u$cq1N$bvjf94!ZzyX44i5z!@4(8Fz=$_uU;FtyyQb~g-r;t4Q1~3oQmfTDXe)S2A z`tB=3OY_=e$D2tFJFh&x>uFK0xrmV z`i=6*_$Bp^Y{eojO#HYQt;S!q-Et~ffLq!DX8!%(tFBo`cKPKq)!(9Wf z#Sn&Pr7^tas#d+2MH=SFafkp|*cy#2ykr*3~c8yv>xl*)* z*MePMF4pr!37Q+$i8mfA``BRphV`f)pJY5zng!N`^8To--mn&Hv(gQKs2nvRlvhqB zCMS;EfB+>JSA)1-h6b7ZD@cRM!+#2&RUaP*8^-x!$XVeC1W(h#hNBj zFE)|5g-W*UZLSb8*~9Y(BbRa<$#W`?xq^OJJO^O}pp=MMo>X5x`X=Vm!{hIx{)0`- z-*fNPgShY)%|c`6+`N2(0R9Gqkr#kKcU1$M439z(=V^Z7UNhfiL)l!V8t0A1*9PV=8n&z zsoR(j=ZpU_A#bQz*b5bDlGxBB)P3rw&*^b<20ab}&0^LU0FqW(R%)@VZQsvfQrk<< z=wrgRHt*Q#S$MKVA-#<<=y{W6685Uo0i^EOV!UyNjvI;T%;9n#6BY*q2B3CGn8~*@ zZq`p2I{8a%V;&vlN69TJFg(msflA~Q<{OZuZQ~Xuf6R;}3-Qs!&oN^DINr-+5@rEb z^nmd$d?mZ;;M2j07*na zR87wm^{*2dh4TRQiRUM*_RPoI1gH%JgX01%K&tDZXE`z|4>CZ8{+>lZmNwcbP=qOE<1YYWgNL ztltn5R?fr1RZB2r^l(h3eKe<3v=doQfhUAa??8E!J&3?!$7XHu#H3-EO7Al1vt->0 z<8>ulDLM3hUqfJd~U}uz^TkD zB`>M48a1(K{R(94+F<~vT=JA>jQ}QrPud}?fMDAh&D$`Xt3K}d?*mMneYOEsYKGLn zxo7mmm|v!v(7AAis>y@N&X0`T-K7AQc0QBN0&xWTd@%7deEjX_W*$j)I|qIBICy;k zyN&*WBt1p)X=```{g7?}Z6YvGMRnq*d`CO7b{Y^(Z56(j!+G3?d4aCz(jQaTE~W<= zcL`(v6J1;npc8HJKQcdkTDirwKxMIjru&KiOs*`}b@g;DaMCTH1+WVMp7ddG1vpt2 z;CGxnfI_Qrdu}ecRNSw;lQkFz`Pw(_W_252&XRdp@n7z`#2toSy5(WBV~`e>5n*9C zyIprKsP~|Gqo&4VqO6_VL`(IJ;yk+}$z$f;%WlCvZ#;on3+LieCSu;lt*DzPG{Ue6 zpE9q_JUn~XL#WAxc@D$9Ui;`x>?a`d`mK+kep~_<&-?Mng|}eX_)ihKCKQkU`3}rn zFq;XC^Ux$Z(RicClSW=LXE0fDRmS{iEA~!}TI0##|H94vufW&$zJ=9kDJFzSTXh?R zN^_5kV0ldh69nns?QFa^{$p(BZeI6XaxVuIHPGBynWeS1{^u^!v25>+3~Mh9j|@zw#ma&HP8=#zv@mC@}%dXU2HNw zVRGeUhTL5@@Cp+mc6Il2@!FUFLmzsbO#SOM0c6mEB?Ji?eXn|qfSFPVB5$Dn<) zHn{POv+=KyZ=*+>F8J!+AxPbrLcTy9?Wk3qM7+R*JXP`wiww~6)$K3iqwl`J$Vp$B zFtrD+yPG@Cg`qAzhV%)c@s)R0RRTt)*a_>oGXH8UwFUa~AN<>Z%loM78`nN)c7^NT zxi`|7==#xjo-=c^9(Ny0=G;)w}6u# z9lDuq+3)@LKZ-mcx$c) zF-AO`an81`G8jT1+8Z`(s5Ikl$5z{l7IN#>n3$MKGu~GB)YMeO$H$v3Rx86CmyR0i zjEoE@_WxTDPc}zH&m6c`YyPf~`-syJC=P&h{3^&oUeY)#v z$Ij}xY11b2uB`9y@=76pt-ksDkC4EGuz#o5LPS9DQQ1m!NblgaY8~75#U%t9er?4e zx<&N1C@vAmA$dyIsO710O5V#WC^iel-zuDTMN;UE)tWgNJr6CAH74#3qm|}PaYham)deXpB_S?oNH>M95`BtmsQl>pYq9T z$-jC4<)~ulDWR_VX-t6VX&Y9fdK8uK*1#(~rbMe3hd`eVj$@jeOFLHdnFy zJaYLPPnb}Kv>Be{&QrJ^AL$kstuO0>~ zuf|v5cDk;~ut7cVYHQ{x>!i1{h^J((t}$k)m~^p4w#ue=jY8H09_sT$NVa%LUf;Y} z0)rHmr@2y#z?Pj$mR?y$Ar6`k8aLV1%A+5UtPR9Z^|GlQbIn&3*<3}>lEN4@PA2yj z>vVlGit7P%GOYfG<>{Hoe^~Kd!Cea+g9Y?Kt`BjyxE63N;99`7fNO!%%>r6P6>{-m zLcqAVJ5|cTrQN9_(aDiRK#VQ<1nso|S18aBZUw%6`xf-07m7R}1T^Vhc|{9eEmrkT zqjww8)46@e(S5t77A=7qT4t+Hv616oTNAn^W@fP~kW1~@$A^c)jVuo>#I^gC)yV@! zlr6LRXc1k#N_Bz{0=>k_`#$D%)Nslz8Fg(y6`p%!-^()(_;Mt>XyIO5a_DT6?xLmI z0@}zF5|ZbL=t=$n0wmfBT&3iICuD42u}3f^c6QoYZ6v$uY8ntmpb2FY57rA9&{4(m z)_Fc{CqRSgZwwIT0WFG*4BFAn0C2prcF>rpXa};qf`fJ!fF}^h-d7uAE85qdn-j-B zwrwbrbxU8_*B15FpKW9L+xyO==Bj!s`E-eq@1VTWTlXZJb1wSY&eF3o7Z(%6@|o+h zRX}xul(eILPGnMzpKn{yvp|z_2^|giqds;%SpBU$x@T=*K^}W88#%{TZU3LWtAMkr z_`)B#-NnMf(jeV}bV`UQV4xz33I^(55wS3^#cnaM6~Q7zLJ$N5>24M_*j=`}i2wQK zy;<%)-YyGlvF{GQ<<`uZ6LVv}cg~qCt4>_3eH+_zzbuOh0F|Y-FZI5x52;IC43mFT z1I5z7nRi~Xs+*NAO$``-NxC#8FuA@^4e;Ykf2>_74YOUv(tu?$YCgP+Wfe}62mr~1 zs=7>YD@v&})}tVnx%~yH*7$7F`_&~PqGyXvxVq~AG?69Qt4sbShOg-Bg>|GuVDxp{ ziLttFP(10KnfMzn2m#x^bUlJV#$xP4x5?icKm}tPy>DAjAM5LSYm|$1I8BkwIjCD& zvwmT8S;NS`?oZdZ-RchMZDQm}x8phO-J{#`8uyLI#`?DVItek~Tef{@8VXo503^DN zzOHH79_#bm>T89`Vyt6qXS=Waw#Z#@Z0J6Cdl>a>E0>Wb+vs-2^OiQ2ce%dK5z8d% zMHPDT==w#~)7OlA@|J&imX_lErV3TgzesKw1;#_S_n<+}Y=@R|#sUhh8O+!xZ7dHDLadeBrvg zlvwi?jGp3lBas|OJCy;PJ!{?t5DF{HVzDBPU~ zA7_L(k48mT<+o{irX@6qlgNrNkt~|yihGsbRGii@B&Z@4<|bkep7JalSLB0$8a-uf zbMh3%8=oU=Q{4K6(J{}Lz6MMHsPuJQiF$CLFJ%W3wGs_bQxsDJrUpz66kh}8bH4bx zGHX^E4H$=gnk0_picM-6c+Q567b}g#m$o3rA0&;Sj|PAAb=zY~ZSS1c2Cvz+-xs?YAD(1L)S6(Z;wtsO}S_smb$%d8+~kVtNUVGy}wPCANP`#phAN} zR5D_o&+n7>f}!a1hEoN0ZF%BF-H+bq)?PiHXJLpDmoVRQU?)1sN@mOf#A58**xvR$ zy>yH}Xc@07LN@=|qs4Os#^O>Ev3AEs#3sk1tE}SIrqN}hqryWCRl;fUPCFEJR1zF# zpn1K`o1B{JXh4Dly$i}v*JnmVKQCaH&;T^yfSgJv2RsL z{^QD59Q#KtUR$F%F1(v74mjQ4vVcUZA4a)kFx6atY@)> z#fFN$^hG(GWm)yCtSr3u%Pgd2W(Z$mL)t>w&}v(;HQQ)ik*?8ZJkRUKK5hBV=fyg% z^lE1+IkM1?ijT$fv);sd(G3BqsQ8#d#{+5cPmPC~Rk8cf9(=j%XIZh1E5T7O7JVpw ztz(gztRmMmuiSDh5O~TT*HVY$M2{7oCoRgwt>&41vmIsTAL+8FcGhvm^O`Q(AB~N| z?7!wIT9(w_s)^FG=GUUb!tKs}E%#kDHExW3@EUEV?^})mo@3z{L5 zLW>cNH>y6T1+;g~cuvtkt4qvdtvWEIeQ0zX~hL=l7pws&syBDrD`85QK9l1 zfxdxiVjG(nhm4F2wIAdksJvK`(^Hg(jjt?^E)zr~q$DZOhm-iU%{*w1iZ+h&@qMd6Kg=D*aTzCLDk-H3qGhbssA?HE94ArIN0y8+C(%WK=$B)PNufD@SvNaJR#lU6 z;OFC~#&wS9-CLGsC(ns8hShizehE%-B{>(afF@&)E4>AX-3cCYN%iBRSIQL>5TwQr z$5>VApXU-1#5Nut@b>Uh_e;Fk4ZQL?;YChq>bkj zc_Qe<`;KFn_e`?%=OMcC_V85WnDWKM#3DO82cDju@b~gja;K!FDjO37A|Koa`2`lh zO;m+4_^-qOAS#3gi;0QB-o1O3(V91Jj^N;6wXX*t9}Ii;>_O|+trg;$l9Gb$+qWxY zHg4P)b?eqG1F_96E=U9BMCpRmW;QZ4U}~V^YJeYbW-&EjYQWThqi8@s@l*)LNm*`N zCP}Kucf5Sam%AFupMw%o0R^!|P>MmCX0UkWoWk#`7UQiYKj1RII{5a$Ml8GU6@jqq{`rN#42R``yD}40u%Zhb9wFeGQJLCSd06PoP=-CiwoZ-*6yC!ii4gAW5fld0!zTJsoKhY7|zjIgy;kc$7VSC*>@dRxc;z(#WS~9SgOV$s!!=_T z4tsIy6}R;b0Dy$lwi@Iv+FcOSg#^~QO)+dk+A*iD^3crPL}VDhi=`&7V09ldhej{6|} z2u^c&Bll`N{TtAw<^OSBFpY4;HsML%2}8*YLt! zdah2RxvG!f4rgmGuAFMGrwj$&cb`!J!#K|kwhOw@G{o)>{c{e6;SP!(5fm0pQc!yikHaU2&8HC&;7OHy4_x@2bBHUx_||U7&}I& zs&=I!z}va$>kiVwKpi7W zRIPoP6uc)vdcl}~dOEEJg9phETW!uaJIP%R#=6y%1w;G#ByMXSuX@oj$;qps@|1-h z;W#WO)U60{MO)UeB=67*rqOj< z1p)1qq=wzvnNdSr&f*z8}?^uGy@w#L=5&N3RQC|MRa+9{Koh zLFs9x>y94x_Skyd6zaD%BNIylWve`&-uD+!=#57!MIWLS7v2b!P#R)n<<_ke3;PCr zzRlbPo(`C8K!n*n9(}lKt5quzeh%+Fy<%d62eOs7`gzHzW!i)gJT8J;JA5_hS_D(@ zhdh}4#4j}swsyC}=3x^_}niFMV60b;W-2zRitF&HR$$=B{lQr{a<-p`jp z2I|^;SkeYTV4HYO219vR;m??!OmV6(C+uEP#e|gz|&p=hdVFL1p?*H9hs%CIr z#G5L&xh=bLxfV0H6lq#;)yxyq;nmS@x8&Gp+I5N{_kxw`y`V-Zl zL`QbHz%0Eubj1>^xj^~hvmg9hCf^SJt+hqXo8V(0kdT-e$Y%)ci2aI>fHK=kr_okU z_I~1aW3xhrEwvH#G3M8OaMeCEGCUv;a}jH`NW2@i8L@w=xxG?t*wgW(h?#^Fo_63L z=s*s@RXpV$NHE(jA=V}ik0Tq91^+bN<|b_SDT|so%1ffpa}sC0jAlz6>!)6f8FYr` zh#zX=b+i(u>bE^i8m>n9LKIfq`6tjX+eS8c67i{s#Pxt?cta6&E#_QGCQG zG9VfPU~r0Q)^gD#lW+47dc8)RyG0vlK#t!j{P@?}8=1f*lTca}n|+RyUTweJj3NhS z#UqOkZUv$jn?*yFR1$OcQVX|-qYns0O;qx4f$wwhGnu=63kDeC^U?7;1L7}UKiAW> z2OM_z>8s5GdrJ4EA5Hr}JfH2&b&oZz%k%zEewXX#S1CPr-SL zR6B9hied^l0pQa{9um^H`N2CTbfOh^nc&nNT29?Ss@bYe{Emx_E4zbWGH5i~&C#Fx z&6q9%MDhB5@0p~ahY2JiJkk=lL6YGGo!p$d-|e#^p2V0g030tJKO+N_4GE?# z14briTRfT8=KTMJhz+Zxgw|%D9J$zLiUNKvoD!_x%H1@#6(?q!@PR^KxzN#4YO-u= ztlkkmoh)ee3};X(mmLi42}!r<+vD>h7;ccNB1aw(t!WRpncU+|e}x;7b!F5uf2j1Ul&)qv(4wD^P)a`lZBm9TUi z876wJo}*{<-BO!nc>o#xbdeI%8b8FHvsw>5yntxS1#CQwwdGJ9V6Snc4_>|JA@IeC z&UgRPaa1euL2ny{wOVW{4Nyv)l@WV&c2?f^UraDk4PQIez`!L9^<6GKn$IJC5nTJ) zHb~*q{GxTn?}Z`WdM5!;=W!?F56KLRRo{&R%F9vGm@-qXc1KV;}9_;DagL5GYm(SB*S-FYXh3D=m$1tq1h)>i(R zey(_K&ul(79NqELHeTELvZ6OYEKpG5p1^ykNeB-{LLs2P&Us&sgwIu`z3+jFx=Erd zVsSZ+8y69IROh+j&wk>52Fa4kwWaqf#Xrv4?{zaYb_U@uGrbG~0s`+@9e+VHu;CR4 zp|AVodJ#Ftqata(1gO@vd)Gy5kOq?%hLx81*#*?P={AB>Af>7b`UxJ#5kn`C=*-!? zDV4g)BOxK-k-PXn`82?eOVC&GAH6c9`pc^=P(!fXU@|}NR;;^X$Ht)c66OiC!j;3F z(3|T1#s#sfROZXj0`Br~tYj|QMVI*pKGCz>_2%!-58{2T45|wfMIbvd-FvOzqp_pt z{yy;JWpq32g{PSuYwZwbOGitKyEiST_K#B3wzk}#vgAx@qhC>HzP2{@Ake(wV!k6* zaVS$&+RMnzVgIA)2D@qFz zI0CIP@;j*^`5I_}nLt16I8`BR?-NA3&VQSp4z&+C;yPJvRx5LSjjPM2a_45W=L-R6P5+Jgwys#4x=8oo@5)M&myy_vkq z^H>+jRo!qmjoO+VHlsId2&Lq4tnY|$C9In$D{*{mL+m$e&q8PDW|>}1goW*TiFph7 zxUamNca^Ip9hCyLjHlq$V6&`CXTiwv#d7tUVm0dOs4>YSqk9XJ!7`5Wc8K+8TrDtl zzC?btMeb*L#iLzHMj?8y_MyiguWHF5j~E}v6Wf`&e6`-D8Q;BGHTuF8_!Fbk1sSc? z5wRBY+iHv0hzOP4Y+nM4VRCYdTz{7OgKnO`CBca^oqs3qJ=E3J-w5b^EB)tl)c30I zBbUEM^hLidBGI^8*W}OY#{LAW?C~yg3#yjz#*;SSH+1OgT{yRb`t2+d0zp z$79G6diRHRu7rZI6_O4Wa!};wXwc@oXtv~M%)O!Wz_oC;9%6Y3kf=N;8vJg3l$hip z2Oc>T%?RL0oRB&WT0GX?8eLGZIg0G7iQMO7ife0#vn7-lToW zg51MyuKG{}9nmtuEopHfos1*I zVUrYZb^=YXq~;TuL~ioaXHJq6FMy zr*WP_zk79?QQzLNso^ zW(G60f(Okmc;y|}t3)^cRiLui*zD_L0-{qFFWV+_kF?u3SpkkgSEtn_TGzOw!g15N zVz9PB!<%IqIh-Z<(xDKT;RuXEbYy)3Sc(69?>yXZXs^-6oKB`1?Z zyVYZ_J5cESKM&xccEcMl2$}Pm*No(_!mPTzpl8xHKYD<6K*Ffcb7r<%y*?60t^l@fE2XCLSpflWh{~6=yOZ_kt4r%gpyE)<0 zBeRQB(=^2OMmJl%!8`5QAA0KxUUfq)@I)&ywWc$azCx=H`iJp~FI6@7zs$5iZA)bM z#)kq=!fA%f=%dXi`}ZFLlfB*J+~AtC5B8jL3JF^GKa`d18`pK870EN4l5)?Q4~9Y| z5>cDFw!!K(Xb^sA00bOtN(QGMVs-1Rddb!`=WYVU} zq@><4&v#x-OPQ&NiPx*O$(-C!8Y_DSO2M&zSh`Gbib3MFR^vuiY(UcY^R*Zq{`Vg2 zL~L5=2TFDk^rB4~hmqoFBh44cVG&a^K3zPUV3_=YX>%rdcd9WRf+Ae49c=TFL!4VBs3O0Y@vyLqqHu-j@E03v!pa*Roa&y`H&Hcj!+05k4Kv0L$Ji&V z9mw)2Wv3zjdg%7Nv#n z6Im>!q!L+2yimyokv4vr=Z-wo-~*Aap()$WY%9nD6-0tIITaEWJb$@$EB6bCuAI!3 z#ddeN)%wiZ#6UWTgqhz-Daksl)@#ytf+_HOSC~a&1nB#O#1srT-lU&MGa3e-Q9CdV zxxc&$HC&+zEIjLiKbO;Q$Z34_==YiX+=Ol0Scz!zS<7>wA(?i6^I=!-rQNM^q#q~S zQ9po+Ek(lHWe=K=39S9kj8Ny|-570NJte=Omzvfv&5Hh^Ph z4E5A_8)k6NB*Pmk6Ak=AHMwH9OX``%!~A?3I!yfd|%QmY@~2_p$WE_4pyZGMd?h2j`FXw8>ipZ<-ApjSv>k|;+hyCP<5KSg21+iihLb`l!XP@oDquc*bSSUX12yk6%H6H%HjnDDEDVf( zD!Rf_S%`#wJnmvjI%;H>3oo6n zVqF`qx*S@DOFOn#^j^OEet9$D-{e`4WG#6+Hh)5|Eb%DmIDjjlrK#M^3m5IuiT0<@ zGqkq}AzzFS~60hv$m#Ch0|?Vg8kRaCce9!T7BHp0PS3?3O5EP!6_9 zhAa~bom?`W1ow`mSBT&Vj|e9yTzVtY!#_Ke_Wc!2OgD-4)1)5McgW-+bYOyy-O7>1 zFzfqtbc2#{4dfu>+chonFmcE+>|lfjv!S~35C9$AkW+nZ}H7C{3+24i;5~OC*VyBz*TnfRGX;USks$Rky_P@q#))R1dnuDbM2dl zP7Z6LjT97!7}%^QFx!S}#eIA5tlne4c%mdn1{oEQojaFx@}#QaDUM?_|5cV&2wHc>T~bq+3}oYTa{tXd%9eZuiUSPmvgl_ZPeem z4&|>>I8bjdTLsnD%)~*n=uzj-V@E&VS+E!KP2s~R-W^t{gzpE8<5C- zt^&P|m9qJ8S@b}C9FqdUs}7w8`*$WDvwszP_lA>jhr}I^Y6r>GMn3STzE58aIrR!h zGf$$~I=Zg5doeLEa_v=CiC^>Kc@Uw!pr$!;{a&B;XWn_2nEs76z`BiNAP0HI!9=KB z)YPzZ{#vS;bJfE{w)J+YaQQK2gn8Q>HRK?B-FG;iKrNlT{?QL+p%!E&Bx}i1cZjd0H-9*ikv4OoJlaoA`DkWlkvgxLrt2QYeyx{&>F7HFVvR?q9mod<#e>bl zMVs~@QUMhDaEEY6 zM>;*oR(AeI0z3&ZbBO}y+%q^$PMneSKj4hwYJmS~|p zSfv7h8>BklI@4b^>Ipcmh>*1sFz~#5vI^My!bi(zlS1V~U4B$SR*@9v8x>a8&GY4} z@nFzzs$>&tYN3$rOgWJ}%_)uc#4m|G&G{i%OtLA{Rt;wFo*LG#Wkc)kjJp9BlC^i6@j zVCB)_Yi0pyPmRKuEK@8C7`#ufGltS_6Ny;~WnCC-VAniL)aVOkQk-4kh2lXhEu8B# zABjD+YX?H6MDh)rg8U%{UO47qEQ9863i3d5I9vwwd+T?J<6zIIEZWk>1?pLVLO3dYJ6CZMxYx=US&z~L$buOW@FXdz-ej?3#2>$MBdJK z%sX1XpCcF%TCB*QcMwC$OUsFt4bPh|SFml(;OcnoGJ&~k;an>=fkcWVv%+CJ4YH2} zC9g};s>>$jUH*9l+==Be{{+ht}U7S7V2T$H|p{o$1NFm4;r0l zj-IF)X<){YR>E+kg=uNKc$9b}=c)GJUq#EkMWT9@SF|GXZo}z4B)kexV2%{O1~ALB!x;qZFQ;!V1rI_I#?$IbUySh=cBOQIxS1|tRO z+pA!1w5?DLn11)NbMltShh!KF0tUA3c+@WGQxbqH;Ahj8*?}?^5dd?bqXyl!l@5v(x{zO*v~HKYWcb6yt{U(`p)Xr#M~FkVy}Xp|G|wt0-FTegIfq`gsx#Imn|CbjVP zF}I%Cw?5_qbymbGh+MR5(PpEd_A;w$BV1(qYm8=3a>uj!Sig-QLSeH{$InwEjTfU~ z>dhpn1W*ze3_Q3ZoN;0hX zwk@WhNK7*!I879;Y5yu8t!?>v*e2B9Ow?{EX3?LolsH)AJG&5-oY8D(~loRM#MyR`^`F}Ja9&(R*3atK_ zS430CLSu&;OCb~aE3cKYIu}s`eAn@23ap>h;nPrgN*|^` z_W$}4N(1F`1M}C;m;wQx8N@8IekG?;y3l^Du2(RRF?=kVUwoXZ6W$e>Z`&q91Zg)ChtyRq*Fu{N#+CWd zeb<=FV{xO?qf;D@Z~uNbQThbxJJaCIG9!LV@Mq=d^tmRgSgONAPK3(LJ$Qr|Qy3U8 zl99@9!k6iMo=`*3Ln)NsGWYMJ{Dtw1HCMOV8Ji+24W>DazBa5c@?5ATeFC-NxhX(7 zjs|ASq=rnaH5OH`;)QD&EY`KN!{aabi>@4c6khgU+iE!3WJ0O**Gl#uN*LmOSTnZ1 z5PgZo4=Xsj_>p-1A}qp6d#qrnh{ltO@Stj+x?@eD)e~u>DT1E6fLYczeKK;i6dS5GK$;6ezXd1P^ds?( zl|do+EZ9wXw7tRaneG>VlRV3L<*A+(Du8AS?zl9v=BB4k7pefw8zkp!r4y8?K!nmw zxj=7cfP_~o=xG{cYq(23NsMYS-IZ9>F@<$W1KNEgfDZ7}=OtJ6yQcdrO(v>wd}@kP zl;<;_4$wQx&0%VB@RDNCshA`-Fan$ZR$Ud{W!Oupv*P{7vV=d$@HAh(V+%|>ajZ!MAIR$o0=%~-zKW+<)QL9z)3?Tb6 z^uItFWt!dLonu%Or|dQhg;f(*qpEqgL)UWdBNi!>GEs}#X`zcBy_)QvyX7e7<&~P6 zr#Sbw7&lTyXSI#%MUigH$Hzu)z5lMn+#u`R3WIs3KM!>L|FK>2lpr)Eswpb9nTwT0 zSpfHQS4se;E?A^wxPjT>_ogC?8+h1}?M*LUAm-NBz1aKi{$-uiPm^j%W~}&=-+8eZ zr6_`u4uA0;p6rxqHtf_L9M7aeC1hr1E*Z4RpXI`3ogJcF{RUV+H9`wqz&Vf`HF zk@T6v+7}b%=8z8U1~j#nNAik~XxbUY^8w%L^0n#Vb&rPm8)ZuwhLUOsJ&sppH5aK$ zMEz_QDoT%3=pZ9d-@-nBmHlU*laxm7`CF-Ezb_pkYZ9Xw>s0 z)63EqlENxKd96Jvzl!g3eaX5oEvGKI!f=x`G0Wvr)| zVgXxOHlDa z`$LY{znG$Powyj_7pM;j`UCSn>p%xs6KrQJ@4?K=g z+Mhzt?G+2{dT;8TMC_~Gx=q|GN8g<7C34)b`@U8x0TyWGcwmHRwl|Z=b}{a?(+vOz z@B9JZKrAEQ>HG=cJ_uVtawm8u&_d48ybMS@Z@JM72)uitC{LB`;JEvU zB)B2p91L8NX>(gGIGVtXH?JU3jvb8Q2^k$%MZnVotDQ zunRt)@w7p{X5znB9kpZIY#?%&d`HnqPd}Qffu}PPhNct^{PVW2SAwmA+DeUXa&gB6 z__@Vmg|Py~kv85P?janl+W|d<95~xi&d1qHxv>wS0%6-Qyy99bTj-j^Zs9c> zUwFS-$alCp_MN02ViSR?XI6N>GjPQxb+_5TOA_|QOeZ9inHU|IEw~uSt@6D(9g&QP zjsBpjW2?_xHTu24QFi}x%8rpnTc|-dbHbeZxw!570O=u|J;Vz_=&7CpkUd5 zyf^;+4LQ*KcXC=JzP%?>Irm#M0%cy)-$@ntA7p}fam9TFr$yj+Dz$;}Xkp)oy*+by z{dOKd6r#DR;(x(krQ8)S?aKm#_{hTGH{}LH zP+19BRYM@gJ>;@C3hmukVH5Mg^{fDJIC+WtCxJS5NOt=+XD7eL=@3tnO^@#G{Ta-qzurvVLGn)Xd4NQ+^=IW)bjDJLe_BW$bmXwC zc9SQrmq(k}lR@<1hwmgjJgz^+J0~co9ADy_zwkm}8C0bEXNT^$I{s&r~1k($<+t~2h_Ua!DT?#zZ8{f8Wu zzyvZCv&lBhygAeTbbmj^fi_JBw^a}~{8BS>E~}8YD*_qWcRaNYFEq@- zc;sAXEDf{JxDmH^iU*(fFP{%sI zxnFTzU0-#_1-E{6no}GpAzc1+U&cr#DC(GkQNR&uqE_tqy8k*|ZlKj*w1C9@sRhCR ztsY0ZkLio12tg1>v?iNm9gXapkTd-SW*22iv#`=$)|V}=-Zw(`-Q8noHZ62XEk(#< z4gtL~2tBR|_rrwQeb*a~v2#%_)^*Wt&z$HygGohcyj#`r*>lIL+q(B`{~F_q$T%4o zftLg`Y;TP7Oc*arzgbCTXE_i1YlSztL?2mr_>I=$B)RX3$Kas6Uov}1m3FfosTY@3 z?33HccB}BgR;?)aZkb`Q<5M4ldXgih22QZ1olFkMEaK8r9!LYmsMD-pulXz<;`e^2 z9AmYLP3?s);v+|7^9+XsWts=r-}ePWW-hmNdf|QfZbf#z&}bFTIQc*}@#vifQGZ>2 z=J_8QTCKMI(q#Ouvpw({lu804Xz|Os* z#x8>UgLdx>@2&tYb^Mx|KHq3?lr{#8vGM?4o^rSli8w>rUNw-iql)V(@VOh~nsvSEr}3(Ss-_s$GyLahln{!=O6B-aX<%-iLmxeRWTD7RAR5)FkYqxqhCGnUaq+ zadTOGiF|&J>4`9W?GHYqX)_Q^(Nf79ScD_7(yIkNeJ*^E|1sBdaVP(SAjw({R?=3a zy)UZD)UXnci2Yn2IR+3&^#{}`(yy`glkP#yXV;MsAiK>(hJwq)CPjHYvV*FrYGas7 zk&1j{Z9dY+#Y8W!xH4PkoRA1C3V>4TNoSK}abrb(IsBCitraWJK}$R2Mpx7s*WZ3X3r#hU!lX>l8Ubb;pE9vuiq{V zukLPs7zY?0Wcn7Hn}1|ZzdKVX_6N%f@P>S@_WW?;`0i?!5UUVRZazR&oeQcfZpb!z z2LFZ8-|LxN)e;-$qvm*q^Fq2(Gk^k)Kf7<;yNym=LN<0HlOxd*o~OhFL~KURxcI<4 z-z0_M5+ErQH_1{BKLE@E?1M4k<Szb-Ky#FvGfcd9fpOQ zKkV2|sPjj8BfB`71rh&bc_sV+Ac(2u@Et9+6%kFQJuYApo>Fqwe7+!eMm5a53fT)_ zMAA>h{tWMBKq?y%Rvcbz$|~12*$Y->e8;f(7A*-&2W1`?vSS;7PW+!yIUKYdMm%`w+h2CeV~`V%Db1nDlp@m-$ z5$q`otO(zCtznp6=rO{;i7-ijq(gn{;)0M0QIaSZvDwgJINDPG04uQW4Ous6zt&xz z?^1hOKT(xv*5r5lv=zgXjNmpO5sGIhn2+!6p#_OgHS6#zJUSz+mCs8oYLaRMZTTtk znT}V*F3|%yE+-#9;`Rzs?3qz&YGnN+zG*zfSSD^)KD+O{HXBju2q-qSwXa)tUMa}J zz6RG^4ndPd#ttk-9~h7R7|*mJNYgJaHaV?IItD{xVd{T$OON{ zSJWl5`aRC;7mP@p%_C~U>c+Y|rR&)DzX+`GXiJ{W`Y69L1%NpSQBSz1FJIFCv2meY znJqE@MIh0DZHCPHxItr;p&A=A;O_dB5a=g&l{CqSDn&#~L_krBZum9%52&v_j+lo? zlBPtmrNJX+!OJ`VHWmRk2evXYvUPwg?c!a$DXF&BLRLY`flq{?W-wzhUZzw70=^%p z!zbAQRGr~cb~u?n`lhawBw)@fG+q05jeROALHE3zY?PP0v5#W+LLX($81^OLy_*~{;Yu8-b6s`ZR`=qmQN@5l&yQHV;y z$fY|o2liNy1vSlqC%aR*wdVmdEB!{wl?B_VKOws)5mYQ}I@TwlSVJ!aW0sRivrC7%$a!AqOrjds^R)d(Wm9Vb1ug`M;I6$5-*34FMorj@ zY@@@EU=xJ@5&Hw51)UM8_~8(QTV$O7Dsl#-^DH`fSnOHXS`UhUe}Lu|^c5cHd|^+u z*DmV0EtCxuBXz#5R}~C1?(c{t;Ci)huwEiTzi&f+rbcJ-#UF5h7W?d|B8iYw`No*M zBoRWG#B002tnW6jfrNxqLr@bVyw+4<>gvjQ@%3;{7m3=idF>%iB{o ztVs6k3`ZxI>J391ZQF!=)F_!|*%zf78ylawHXgfO_J%MmJp7i_-5o_%GntqiA7^x( z<4;}oc|VWlJFr-4YZII-RF?a3F-H3_iIF$B{rbf$CN54ovGEaAc9lYcs*j*Eo34w*$ONlprN7R38~QaU-`Sey?yebbzS9;v=YDf)J6CL@&@Ov zurW;0z&!V8-Cz4I#mK=&JUNN<0RzoHNeVNQGU>5bv9E5OHE#FkXm!5PRFu-tX=foy z_Dhx*)xg4kqLLA7`Q*mS5CGpzHu`NB?{x-NW<0wOJIL*Uv>A zGc{4_rvJ{8DTogXxe*VRZ0b3y4$4CQJ|EXWR}8w`yltuNqgdUc9jEL*D z*@G{z42FcxMOW+mS>LPLg01MS?>p1kw#a0u1SQ%kW6A>q?pR$}908G>qrks;r5{*1vXZGxd>XA$BagVS{*YYP8+F zkN0;sn%{m1&mlH?QgKAiy2uO8?yXsGM;lX|9~~YSw8d+8*5p50@KBwLt|#CPmg+En zG^kDD;Ql*={lDF6FsEar5;N(f%HO`Cyg&igOoJ}i5>78({|s8_j4c1^qN$+CG%SoT zN)~-cMkuzwAVZbxm1rC3oM-xj7G^vJo+15KZ;K@q%4qzt8?3F~>F))?OJcW~3IDT9 zY$v=RR5+wR6dA(58HDC))r44pF1Xcsbcy2OZk%1+EbT6Bv~V(w^FBW$*BZ6{j7lvY zx-C%u&cB0~n1&qRfnMs!x)W~sx$`XArL1V=#}0?&w37>J#B`GbH%Lc!uVzS>IC_d zIJ+h8Q!u%pbr}kaWpM_;;|@JySmp75 zOjrBC1U%LvZtgbRh<)0`!_QPre&?zC^i%cDrQnq&y>1RuTRPkFwI_;*-Z}f7dG}z9 z2MjtmGdDz5`_L+6gz z=%}&&=OMAm!TLa__y3DyGdw zK;L+hk+pcp1I-o_$6~Pib=8XKsSWrC-|H7V+KpTLzQh{HO2}^V)NHi_&;dnC{BH>& z-+cV)q|^KJXnh;yVPr&StXLiA!v{*9L3pP)HTG9oV{-s6j1K-`Uh%pSp_RzZgeklz zKIqAe)N6G8yHCuBqU((|oYXBz5U38Wy|_Gc$nFy%f3GT6^P#w}t;t%KDr0Hgd6WtK zjrU)jygK4CoTY#NvcXL?LNX%5_R_Qk2DWac}x{Qx9-%Q*I4S>-oNYv01^a8{QZ&(|s;_I7~r|+du zPMN^@<4{nZ>u4=D4(d7GI!w2Ql6$+#J&}0+%=vV9y84Eqe%gn@BlBQhWpEXKiyXzy zhKa2+i!B#kh&w>+roKF=YEq|lcTESSzRaSZ2+<+0p_QE}w6MwTvFU>IXRNT6Oa3}L zL0dK$T_@*Nl-9cs8=YN(%sXA}YRi9L6$lq>ILJg!I z>K2gn8WB@EhVL`oOQV$YF`T*%6Ol3LFY!0?UVW;NW{(=q7_C#;sL1+7E4)t`F9}Z1 zW^!{OkoqaxWPnpWhv`;&ZlG;&^1Ci`e`Z>wKj@W>w4Il(cmc7)48`H2cK=_oFhv&j z@TsIyp)TX2%TY5g0#qO=A1#cPSFKl1K3UV&xZqzGXjW zEtT7vawtvMp;iyl448aqOpL-x)`Gi#%pye8tfw1OMgbMB6v1w*-3EW|Cx4uwtX2oq zo+QFrKj*DS@Q@V&>g~)>qs~69hQHta>KD>UQ1I*_ASSr$HKlSCVCYcs)jd6$ahD6skvxAsfEP#KI1e=7!MofofQ^zaV}?k+-CqXlmQ>8 z3@R&w+XJ3GXjqKUI-ry8e_p`Ak@CPDA1E!uW5r<-1K2TWbwxV6d1iTL4FWgy47PDp zoRB0NI;evaRb@X2iqPY^Z5#KYOB-bTxei97rQ$&Yd%7-TG3Qh>3m4cM`MP32{MGx| z0fs_H(};>#Y7&ENHSG544@J;9hic9T2_l<}(%-=#oPC(LHwE-dlp-Zp+sZl~1GFtn zwhGC6ruJ<&S`txz9kN_TCTz@khoBjzzhdIqy&}HY}|6tmUE|WYzT*A+S+9+@^vtR%IMB0jehN;6+?yw9QY*FGW z-!+oud<6$x;-Y;Vqx*Bc)6RRhwv5d#MsjwG_hNOX*3L}ez|Z7-E>!Go_FU-kmWd=f zUW4f$;qei;D`cGE*jl^65B`IEgX5qZUe+;x0TRHUsq}35#HF%BY0T+kV^fCJ-PQ?dc6jqK3Wd(oQsors2HFj90a2|Dd_VAmpZ-v_e!!cInD_qwjqtx8uPq`K}Kj=+%hIwPma2)%?aTT?;v(bJvs z$~y7GSOa~Y>VKJM*E@YbqTx5ivEUBNcnP$+cV14CL*!&NEG`9*(F?*c=?`8?ndsT1 zLzU)ns;Pjpq1$3v#R>Eahqq%%IuF+KF#4Nz?7Ey*0cQeCLtRoc%2jT>&NC*&VOCD> z=D-+k=ub++Gq-!vU!3^dU$9B?*yX@ zb(Lw9vzrZkiXr$40~dbLdMN}Ca}3?r-J9Qd(lt>lWJIL5+HEr`Z+)YqYV~8m=MlA5 zQgZuW!-J!?H!;o$65kYCxlir>^zIi!5vgaQ`)fDVNROBgNDx!`5NLM|)BG|&WAN4`N?HDgp$Oq}`q6Y9hfjMu_$AH3 zM841OlkFlb`UblwG_=3n3*ss*r*+y3<`wZ$9^!`n71{=YFs|ULd*93aD0sgvCxH=2 z0=r@m=qVH>x}|C zeA;s#Ki}^}=TOTE+T5Gw_>Xl5 zI4+^Q-qh2kYQ`V-;>n%F0*ZJMxpz)jUs>+MXG*X%z8^+yQ3Iuo8 zpv5T^DNb>BD^@%>6m5~|gCV=5O;fZMTwV(F*nzTZzsh5=ns@y1!Hqhx}2bd}?i zjKxp$fpz^kv&e-iT{$UUblV)bX3Ez`Y}j-K>h~y~&KSQv{=L-n`nDkqHSyu@HQ4j1 zew^{9@U^*MWMjj^B;x3`&h`tdY=6WMe}&TCov&9qO2nrNdvX|oHjzg&1l85{Z_Ni{ zOraN>0KRV;V$hyQvWREe@4emZaTbJYC6*5ZVv8NS@TQyPY)_mM?KX&nS2+%9S+;`APb?RmyzUB5#~i#?op$NPPs=SDUO%cC`6jw|=sD(}j--WO9f50Von*Zm)U0HE zvkxx~`{1)3$hO&h+YkMY@*!uf(`P9)LN@>+AEMjWB7Ymiu)x{apP99MDNz_xao5s| z;SPKbXDKq(&nNmMi6g0d$QUkq3@-!f_;Id6xKG`!#Ti`YJ33b>T# zalBZI_05-s7HiaL?&*!AlV3mQqxvRe+VIFp**!jZ?Sd(2)%V9fS85sJQJW0rVF%>v zC-6ta2|aa#&6ZRsO}b;#FYXGgt9_q@>=$aWtK+Y&b_6O-Y>LG|0Y{~&9@mIle%pC8 z{0-;J^c2F2zve3ZTC0s+4)7#&nk~sG-YyMSctBWZ?RQ$2Snn%IA0i{cJ=yxNpBnd0 zfj$o+GlZ3y7ri=UQ9?hIo*K|6>oC-1*6Eu|{+jPTYI5J#Ix%`@_M$U+$aPY9=bpq@ zm5GMm{k&IV`SyUiStv{?y&T&=Ec~kme_?2FxcAuADla*lQY`I?Bn@S*XFhVD1x$M< zxq3kP7~waquxp|LID0w}ys@1^S9fg36=*!+h{5vGI@pg=^U9tq?bnw83nOD4E*G(O zo6$%U5w`JYjQ{agQiN{#Bg^=CykW+xTUQPXe_pfi(*41f5*g#a`cfHET^?MV9%z7o zQVw2-Y=Q3r?TyS&b$0Nt`EKYMOf|7nWZkml;lpZKsWk1sX4DAmZx4KK6pwFK?CKO49DDtC-5sCx-{WMHWa$e8h@#g-hqdGe~+bq>F!#Fi#GcvFk85!w~ z6Bv}fA52ou#C|qgZg5av`ve;xKalR!{>O*|6_-N80Tc{mi*j4Y;&gARNwTEIbqhD| z*!kqcm_(1eyGSJdfjPj;EUzZzRH{_Oi*>C1!7OJqMhogJdv88GAudaDPPUx*dxBM# zcpuWi!_7T&%}!4*J#@}wo>lX2?eg;SsBIgKfBu|D>>v55U%xe}coefh2P@g(Vt@7c zzIR1PsK(t>Mh$m;Ano9{r?Lu`Txv+;15PP(v)PI0KPcA5!wG)#RtI&*)d(H8EJHyC z7a_mk%*!MX9W4){<5rL=f1gk~NBTI6A}6c{QZ_FvmMY<-&@Op`?3s8C8kdS zpMuCK8O`_OJtllOLy&m1^+^00+4)UH38Tp;`*?~O=uEHLw(Z?t4rdc_NmlP|35^dVP^96HwIQHYfoH9m*lGqe zxUgH|DBXbZq^c72i}x26N9Xl-DhvA+bA1Xg`tVxU2)HPeubB;vpq!#-62^(^B ze#L3W=genxe4|{+u#;Q&I?`R^Eui@3g(??A6=U(L<3wD_(^%12XOv&%aL@mle!x@> ziX+110s+-$5cfbRp|U1>^8v4)izi38Hq(G|L!*)<0aX`fxxXtlj&Woe6H4Z>u_Vdi zb8-5^Mu@YLUXdqr8UO9DQg&z3ItI0dR6c;bX*I7t{`_c7fXv|KW&Sl=4QjW#4w$Sb z;>Uz@b8V!Kz;~*|-|}+3PRgIkt2p>Op9FH-CG$$5XRa)Rtf)WSx0EhKh8l7eoaCz| zaJ8)CoqTMfWR5>(QaO?KJCbZZ97?3xG;*D1>%V!2&-M2W&r3V&!*Xkh=GdJa_d!fo zG^}W48Sh~CPjZ$uM^RVGy~HufnDf3cc=K$kk(QSWZ?TzC6T0vpamNVU`~fGI+22ZThqs`ZeTd_J1Pfq16&akY$BB{r zFvWRixu*>CwamwjkhPv6rM4#@RAZFlZ+tVNwHI^6s>NF5Fhp`A_xQZ~ zXzXoE0o_nu_n9058r2bhJtRJFrW!> zzu6@euq}yvw$mU&=!5*wE3u}R)d8U08hC-+6-nLOh#4M~XS~_jH>4|B%7*@Txdp_m z_Z()fOudJlC*o6})RCOR>fcP~2P5cF*4 z?GVS6+PBf$3+T<;{q4-IJ25D*w5H1W7F(n5Ez=_5qnSvg=UtSt737rwJ5nZVOnGLp zuX&`4`m+zUp>8RZrX{ro4{KT;T-+9CDJ>}SNO03(`Ng>6Wza3lJnL6Jn@I^THR$7G zo>sZuN0%M6AHl(zHUN04J-DOUQX(|GOCsb`y`>_hbcF73a`fPijsUS7jSVwmGS!N~ zK{+JYY>7`!1eKV3))*fww8P~!L~s#>9BY`QYPSTwkkGNW@sU4$D^pyw!!f{m$fSmSW7sMi3DZk_H-1 z`L=<<#w(VR#4cGA;;$b^&^>LFrt=N-$Wqu0!v;WuJBy2B1fRrSLAP0d28V@1{Sg$Q zm?n~(1OY0PCqG61CLi2gUVM%Rd4M9rk@wA?P4inoc(Y~Ws-(;=F|Ggv8pWDXKfd|* zq~1fgx6H*ZQQIBwPL;Xm1bPw+{DWbaa6%+|=;vY-y3HRpQrD!0QBRg={1tG%Y-&&5wVz@`d;n z%=U>D{5!AbSLkbmGn4ZB^GxA2kpigCk5oG85fqD&cBt5Bx0s24ll?Ar$^1|kp~h&G zm4$|l(^YlmhtxDE)f8f@rsADZ?eC5rTxNK?91iy8&+|R1H;I+C>u>1fJ{Xk- z;>ba-@GQlusXH2a)wbCEhVJAZb#J%VhxlM)3d@*|KWe|6VPV-OaaEnn^5Yv$H9@Ih;!Zy;+nzURYRivy<XW~%M+m#!rk{WYAu_8bu&~}1$SgbUT2R1 zEtTPl1wCA!AptFo9R}?hf91NZjq6J0k<{0Hl;h0eO}sJR&E`b=Cu!E08Oe19=bx#r zaVYMM#KqE?U^g0UGBa#`tRUsZqFui0P93OaNhlqacX4h{q;d0~2`(0fn|T$)-lX{{dBbO~oM@5s+2 zGw5oShw4DA&hA`4-XS%`gJSf**of?w7gvit!u5NS{|MT8iI20?Z7bsHY zQ@nvt!(GpS&rSRKXF;!L0~?Iq-mhU#z{ALtDxKsA@nn`Y(OXjUnjNw&Ugg7Y^B7J3 zs)qD2?WUb*Sm$DR`0G9x+s0mU@E-(jy;QwKbt6ZvF-=K^Xw2pK11*@oImx4pZuESi%!gZMBE8fUl3Iw|1JWR z2Q3YyxhU z%8LN6EqT%ZhBIKNZ`|byY<}9-BfJXk@fWS-egIF48j`3@Y2lT=;6m70lTV>VYxjt}BG^*Kp+Imml zW~Hh6ip%7F6#27BkYF&ho13uR1|;QrTUA=oBLCvj$4^#esSCAx9{?;j?r7h&V%dHj z`Ko1ZtT&G}h8b`CGoxHEBg&oSSZn~;^N#$F4Xo?%8ZpE)<1vHwAc(T-=4-*~gL8L^ zl_keggRjiBwz+rrfoqbk<8aaL&K5F^t5WkkXPBcl8Qfqs-aa`w=_`6*m*if0O8)L0 zyfcFDp!uS3>zXdnAF5mh-R%mw z9pW|>BO|YH8LG3N#L7COI9j7O^iKZ#Syukw-xuBzb(K(5wf&nLlaIKSK0iJ2_Ekj& z2r5%MhBO-l-^ce{ZqeV=(5Z}F_JS0+E!W|iA{lW9B*Q|S`-Z*dO6h;5!{NN(%cYFGE1}1-^#p$RqLhSooMcz2UB?FH-nz339Hxa{-sL#vLY0 z(Fv*wkM2ocd66(q(I_VSn1SojQmM4Ftrs(Wupjs5D2ZPk;OxGCa!Xt(?=3H5`P;Xo zciCR>@HWA)>01sD?@Gd^o%n|GljyvQecgkAk!laZF;JeQLxATv?uxG^ zPIpr0B*PgD6ayLiU&p)qQBt&w@6K6te;x}!_&2|xr(dh(yu;TRh$I4NM_gZDN#|5{ z^yMoYFbqBv)LCo_^m=n@tNFQD3RquW<&*zn`4CB=Sm#s#5`TB{7go69=4IU!v4Ul& zZX|Pfh=#M{xy5YB=>4ebv2<4g(gGfOl!QDvXH3VCY2S!oUfim0kNycum=^s634Zr} zar>0k1*zn&p@Hp}@%2)lUCzNfXZV{#j5&zcH3IvgW4Qv%cz1~tu3_EMh7gp&)j8#T0Yv>ak zt&x9$-u1=}30pZ} zR04tGmo&q$P9tK>_f#up%No4&35)2I2rkjrDm(+udF>MjpHv^?!YJpLoCPiIK3hqQ(ZN*4O~Y2K1&L z|MY5)ImOD`7+m{vB&!LcZ?jcaRmGaUV=k0WX0~U3$Ei?57D>b$g`v%Eq3F8BrhZ&Y z_cg)(xYs~@TRFQ1G<$&FTFAbCk^H?=9brQUgSf%XMseIu7`%N+yvF7*BgiUOV8eW| zizU~2++wkxC9xfg0uVnCLUucR=1ns;oLHMfpjpV)&Z2MC^kh`#9(q{(MW=$4r4!{x z+C^Vum~l9v>xZf2O+y?RS8*wFzbLMKn0G%Wn^2Um_MM5l)|G7ooRNQr_Ko;q=IQR> zilnV)JXsIzrK9Z{uBxMvn zs>YoX&8Ad#kBI5U&;nm@7OXwGFis&pC3tKaJ6uQJbxcu)iAV)o>iIOv_qI5TD`SUV=1$S>X$VG6N z@dOnuQnzA*@rH)&glEaP5Vo7Ct>C=MnXRxQ`%K#o9lN^p|7v4=L_0H*=F4v(JsD)C zpntx_C|>>c2NJ$VJ~qs=LAOzOb)c_|hm5EysFuI-^q!%{rC9aAm;#6gLA;6><*vXG z3Rleppsmp)$=-80TFd@xfC^H$KYHbz3~T6dY!i&vQZMlQ@-#HO%7hO* z>YTzC^~UpYnLGY1*o%a91CQ7RH-owpng@^g|CbkZMB$I=QrP6X_ZT|B69%h6-CB>f zrvdS|Q<-S8&6t3v^rVpEIj8Re>n`c~t&VME8U~e>ANX->-NGrJg#`TW4QI_u$R?DJ zRGx_*Nx1O1RQ0fs5LIn2DfMsxXaFX4tdP||-1LfBtpo=d)*)d>2q^MDgQ|S82=4TS z&BOmO7{RmBLI_$|t)9IcrxebH#SM@79TxXUQ0GeFBkFR^P6RIkUvAZp5O+=^91&3dlbRk0E;!5Z;#f?q&p5Q0a_F!d_#Zi_1fcbI zyvjGvyx>^F74}DGPqP@GbcvaUOAsv`Y&9Al`6N6ICG@veX1sj4zxlDhD(=*5*cu9N zGno_Q*zfjG;4Wg|)5CsNcb~aY#HWP5CLWgf9UJ!V2lD_llpKGhb{bEyj3hOSknlbE zpYY4{Y?hRg%b^2sZaBF@Ks*b`)d7V~T2@h%2f#;fmsJrkax`**cVHGhC`Cd_pqtV9 z{-wA6a!NCxd2Lo;rnwPvIH&^~M#xvL6KFHhtbIi;| z>a-=X7C21NTk+C3U|WzG8MwpkKr`8{i2g6!5jo8&95Sc;fRS2uI6MWXVeeEhuH23= zM=%P#zTuf@_Bjg}^gDQAbf>@Dt5^uUDRQEA`fnXgb1D#=Cf@_%#eeGZhsz|gQ{#|Y z%!KOylbirksy)P+{{6pH?a>XCfa_3+bUR?8TOs~4R*Vw#z6N7s|O*I z%wFSwf8|>bJQLC6JWK9!l1`_BdfH?$A|9d|1Tc-k4p@My&UqbZMpK_+lVh*y6rY!-$}gyOY%Iybqdj&l5S zJyJ^%eO^e1H+JVc4pYkRgNlZ#rg>s212{}@K8b5{EHVUvqUh&p-S ziHQR*FdXVDBzd zN8;9REu0IAe>K+lw*;K0C=ochFC_VfDEiesK9?FRv;LenzxQ7y9N^Q1%-TKVO=yij z+CDVtWf-zY?^|>oHL!X;KiLqAM?cxf&BYjpJ^#)sAJ=$bTkH7BKt8%d|M@9}ZS5#J z>0r@#iyfTQ2$@4|eZ2HIH-7Ohb0XZ|uk{gUU*h*F!x@>FO;XYv-+E!SobFOI zlB^3D+A3eu`I+^?xOS!EHDc#iRZ8h}|H@~i!UgvrhkkzuR8?vPsKG0Mf5++t0Xnfo z06{FVRqtZEe^b8;(U>xiJs+m^h}~D@jV^!HUtT5)51gA%no!GO0}2ZZtpr{xLY^+`P3d6HuGvJDeM_s;147HXNPfM zrc6U<<-Q}ibO@2@TlHzc42CEU>^&SrK#|Q(MZo-pr+Pxio)~8(gyx_|wUfv7tY|t@_3WBAUP6S8q%ozFojoXe3rn@Z2qU3w?pPl%t#HQeK+G?4|%O;tuHm4MxXN6@nx&GZt0V~ z)-@d3%D1iiB4)QdyukDD;`Sy;;$&;U4!za)Z`GrC`(|r^?k{czTn$Lrt^GJcT;4Oy zF7{}@d-Cm2M4wn;`>0r7 zQi|N+KjNf4vTe-H4hZxu3wa6*`cFQhbSt~KS4rl$x=#v9=+XnKW*w3O(^*p;9x+lu za6|BeyM$EKl~$G{>A;nlnL+S$Mz&lPsEtA4m|{K)N}{7}cnYIg{Ok48gE_10>}+9@+OSt>Kdn9 zruOSXYZVpsio2}l*^Y-3*=_Z|GHF8QtYNCh_uj7oN_SgWzRpV27M&a^CVRbql~Jc0 zJXX=Hkx`&H-9Tsj7gXN;Xrf&z@MwSegX74_G#A)Z=hv*FP{~i+Z zAwe6&Uuk-YninPZX=p`wiT*pZgs^fFi#j-Ncc{f;Gm;V{%d_4oaa zA{*^$c*QwJo<6tksAzd6-xjbem%l2yOE0Nt@@tCt$rVT+U8O7UT+*Jd4KMP+8f4e_ z^o(y7N7C;2^*A0g8onq0{Bq2zbDCyp_`8PQK>?%i*ZgA{u1CF0-UMNGL3`b;&u-rT z-3OajgRF!(+p0yrlwS#nUzU=06bLFcbzr-8E0fJG_QlWk_94{TU#Y7~hr3&nXDN+Le`%?szc$i!F7H?V@Fc2Et#xu$3NM(0y113i}EuZ2^WOH=k+94oX&#m_d z2T`nzzCKC39?N|*NTPHTioCxr>JCYcWRN+IbF&aob9xs10*vMsY$l{4De0f-?{Bvpt~Twes}SgNLi6ZP?C^oB_XM~KD++^0+lwUmKH8LT%asoB zW1|~!vfb1R0|cr`p#e(XV=XLb(r;+7r;^{@+Mj9&R> z+{%YaNjTx5fkFN;L1AHG8CdUL$WG!tv)w=I>$l#}KGoA5@lvEpq43>QrGG%6dYoU8 zr)-s6!;%19nLIbY+%2yv39J?vi4KstMhQP2V zdoI})H#25|x(&Vhl72KOdqOwETN~R>9hl=x8%nEs{z-S5tsz5*@Rti6Fm;dP8>jCI zHOlwRrZ_c?rCOWKbBcJP?3>Li-;(N_qqDS0cl{QgD0d~n*FWKJ;o_BaMJ`9Ud$Bbw z7aJ%41O{<;!`aOyClfY83sY9^PM1eYtY@c^J_VyRe@S2zt^fpcBiGE#&o#bUP zikxQ|RSnPfu4fHvG&CLx?c>^f52vh(6n^AOSe3BV9-r6VuY>>s;Q-qcE$+uF5Bu5Y z98DVt+Q!D`VmGCh)r7yE(kpPI>MI==Hty2+MzBdl zKAtW_T*}&WIriM~d#+JZxRpl-uMB`!m$6AzQyL67Ca3p>i04xr9G&-H&4cvoy%U}` zfVI8HwdyhfK*`;&wslze@c82+oE;}JQGm_61#?_JG*fJS2&lRTuFheZ|9&fyvxR3u z=wCFYz}i@r=(3^bi+hFbw*(mZ*UJj@a(k7d^<*oV!|*Rkj+N;_Lj%7kt<7L8b%oSQ zit_XE#A-yQOtbQ+wlo%qadxV_&IeP#cEH4-*!It)R z?*y&QD#GAK-MO>*xU$D8Da67XI>kyVx-QXA_{V9>;+scJR3_WXYYx|<2UyAG4pIw6 zvP|2;%B>CUBJDotF0@;g+BvSA=?R+|BS+2=`B{~N^M+bPLjF6XrcL2iNv$I-^8{!U zJ}S-(x}x>g;So}#Ba}8T!9|cgJqFcXW*^zC$dUSy7eqQd&p0CVDlL&En z5UTRJQe^4QpJ{0yb5JZEj6+B8&vH`cTj!N2_Z#>d_XglB{CZ6gC!6xR5&`~A??KpD zbnYI#T8p%@F>X>M;U&2?Ff2a}HF(OTI_uruMD{r$o6ZIb7GOh&3p(iIa{ed%N~7jFUEX^S9wl;Wh3dp=$9tJN@L8VFL$IiEnVfZ&_SgO|sDs1E(y;zp zeY%KOJk}PV;bkW4eo82RLR7)6@AI`xcB{)Bq!!|F`kU5Ek+);G5%2`FRwd>u3)SYc z7dRWl5-Mwfy)w&HQGd4BGwt}j9^*UobvJMIbh*lP+E=1U1(XR@Zog3tqMWVW{d1b{ zP|;L@Eo%SwNyG9dBUd(1)+v^}^e1R0~u<^khnTM7%Q=xwG%Sz!@^P1`uhaBv262XU^gj)9ZSI97b^8*^AR8%{1es2@TESnwK40|7=<>RGH%JnvEp0 zFO||OBscZo2#<>1&Zq-JrOb%f^%7N^z(Pk%1IEorkAAna+Q-e(yVJ#HciUGZoSp-e z0T8x~aH879_y+gQP@)#F?@d1asnj2mj@vo?)tNu)t5L)}^0T4w^-m*_{)gkxL0S1Z ze`XSYnU!$u3WLM7i!g!2yodOPhf?F0;Y{a#;$0s?8ThK}qteP2QYXk%+uO@Ir^M;5 zA^kNpH=JVWRP*}k%=y*3@!Rb;&wE49<^*LS=76MRTP3@>GH1^fXIV`WmWq}mmI307 zd|5Du`ca7EfBU(Ei1_UST_)Q%hnv&g!Y7(LN!fy%WcI*{{}!jB zauyrjj@Ai<%7d8e;skO%eg?CET2d2hKIi4(G|mi@KI>0LqR0ENE3T;IZn3TB?N2Ml zuUACw`mHB5BW|c3HDq}fj)gPY96|S)Ui4#VBjd!*vv@g(D54b`a4^7Ssz{ZWOV73b zNwQv3`Ie+@)A@R|$A|O2>rY0G!a9+OM(Q>x(=1%$6lqhgV6I-jKrs1(mHj{M=n zFB9d>#Y?_c+n`bijXGl`oR+sl)};ZQBY!d4EY)@=I{4Zf&RUx8fFs@Aqo2l$g&t5g z=!P)&ZPVGyvh|bE8w(0pdxWIv>kdulyZ_uzWx$5zYN~*BwYPMnfBLOr@`LJGSM z1DmHGR%~#~)xywcKRaz$8VCq!3uQlXJD`Y*+&tt(xzEW z=q3S?!Q#oFLeHYHQyR$vUxIV|dw%PM+4Eo7X9FomYbig!-cr};1F&-P`s-%8XR__e z4?!H1S8-q=mr!;~L7TXrfJ@+5&8~TbIz?>u5;Xkp*E=whosQ%67X0T-tRHwG^D@xK z6w0-mA^~~|u;|@FuPElb@uV&^jfyT5PY;~*w6wZ(LhTB_aqA8&tpg04zsx7?PiM18 z72V%%_7p!DEz{{_h-pA^G1T~`R&64!vz_4ne&=Qdp$J!UXy?&n#Dry(56BXsg@wC4 zuu_k0^!{5ICn-Z}@z61*igq(R-qEZ<>9TcIn76X3`So$}pOcE1 z==#)el>)9#)$Dhnp?sffkQ?3wu{x(23lkhC?<&kaeC?l7@%UBh{z?K0laeHcM!=KXFEIx){3KJb+k2a&Xo& zW-;noPwcgcwL=yxC$`^pLza>~(>|zAKVjWJ?}5C$f}aDtI%Rboy3#db*Z3qpNv<2d z&MK;bU#6zlz0G8@+hAnp&{O+yX*p|Ra0h4N7-AiBVrGV+a)jb%NN*UuqhJ3mNuP$@%o{^Z9@auSD;s_j=ME#-LX(_X_|g zWpG}*j`8sdEFr)35fKFQIa|ihl=OGX-#LxLCfqfr?38Y`Mwlaz&JO0UzuByR*#`TD zVhp~;QcJC#2%?rm6&|Uy`p$goo&0pRqHyjkJD#Ytjxna4fUf1aG-2ZcQ{X=Aj*g;VY=Qt;-HWt zehe<8^0OYq5dR?|##hVku<{1Kkc&7U9y8MUmDHf{+FWna zFMg{s-UV!{U`!~y0TDqMYOY@ZHU?N$b^}few1NfiPciLvmgh6NkuO7u%NfRbMMSIP zGbdp8?-3_}8?;ng=vr82ob{3CHB}McntJ$n#`g3pSWLmnSgfq9-hASrT~EAZzN68j z&dK@lo%PFZRw!#1=l=fv^*5P^pZx?RVs--Fw@->`cls4#*kw)yx|2S+xC%#W)bC_r=2h{#nz%G5bo^2moQZKIO000>!4Ap z1=(&sOToR~e<8^qdat$}p1rr8^7pN|jx^t$h*OVT23AqIgwU}@OMSJzmG6FWg4z?^ zw_KZDJadmBm0_$~3tzg~`M7t@=?rW#cMaJ+tke!(x3Rw<7TJ~KIo1c4Uf3H;rTbRT z&x^mmMaQ2RJbusQut7%(u}|P+zjUv6-tIs0ZT|FOQS)juWS@}3&DH2$NWcn)Hlnuo zz^?7clWFJUYGd{uXQR>Pe|$bdZC{fW3gTt8+XXfF++M|52mfY8Sx;isI;bY|8z@kxMIHkqn^H!S`9SfHyR;SzUnz9?{)=vlUO{HpA&?s0Ocy;!0$F}!6`+Q zQ4@a{m-uhr5B_5yojIPXaNq6+tN5l4T67*sX+iU&Q;0Y{IDd5=bk27e&HD_tA(y7? zmz?NkL5yf60bVCli8+!GpKq&=V`FDEK1MG0A}yoXDbD4V3wQ!f>tD{IyjmmoCvfg> zwzTWm9@Im7(|}pj=O{TE*!STe!1emuYvZ!#x}TxCdV+^nC{_k+!c>Xy^F`0>^Z`#~ z7g9dUwpCsM0aH(D*G2Z*vusD~7G@E8Ax7%FX9%+Ijd_)OEPO>hcPf_ziOj$y?`gSK zBua`7PO+%=GJWC-Uz*qE{VZ2h3XsVU)H0k7$Yw0}?)!$J;_(!A{UXR%X&FF3H|lDa z2bu}ioIHn>OCL9h8xh9k%S3;*#M5&Haa9(90l+*13HclIT&8qi!KBVq1xj2osEJ`Z z6at+|P-#{Zj+TddwabXCqKS} z1&x3SOfsZnV_XWbXQEeT3(Pbo#QLz}Pkg;2nxijMS%>xuuw=7hZ(opRo?vi+ekdku z!x4?>1oA@ z@JqQVCG#;WwZH+&!wa!rT>VAld2k+X9tWl6o&5%bEn$x(l+r8v!HVC*ZjQR(eBs|r zpBMGVkNfcIOnX>|dq53cb{AIs&r%e%;xm}%g)E5RZ$^Jejif0+j!FJA@`BTwhDq;^ zqV|JR###$wgtjd5L~Jiayu4(Tn-G@yF9BvovN-57DpZ`8{=`a5J78+25q^}2%l)-b zyOr=tui>_U%IdQp|8QMe!Q@+62Gv7`u5V`dgYnpo-5WuVp_OcaKP_rdEJ9-T+DWwZdY5M z>61Ewn;$G<&>-A!GDzLDbG2lkd{!o@fs0XaLgHlU80oBb%i-A3= z&Q}-D@|>^IEBX$bp3u@`XE07^s!YFeoL#?t)M2eo_sQ>{l0Y-%8+1V4^N3CypBjRt zf+*}eA<7NUNwp0K3%CfTY&!f`%*xS;d({oNf;6>v3v5_kCyyt#ql?n*IzweXlOBjC^#l&)6x|k&^}HU9A>HPAly{0 z`1h!6Gr{kXM-?GE)$Kc^GDo#7w#StLFQq>F!t001A2*T05pYMDe#rh>7TqRrqoJ(I zr|YWignz5~-miMM(!HO^xPfg#6%82_pHN8Q(A4YE7k?O1(NGHs=)}Es!4>-h=1DAz zfd#!s9Qe<%;J~P9GDET0Mz!Q5H;6ob5*ZagHV9Bkfj{-|95QxJS8Vj;qBzQwSP zP3sM5qXXe*#I-?OEaRu8`4ud+3?^$XTGR^x?WIpzv7G5o8`)ox^mEM6L|~yG0ZuzF zhA)$y?->QCi&EybINM)uf&$5S-oQ0FoyzfO@O9BTyF4t<_<4)yk=S8_qxj-!{cUa4 z_j-(_5#_qh_Fp2!4P}e@&g1I2e{p~G&jf}RB~k%q%AU$e0&nv&#?Jha6wY}!EQ=Xa zb0U#X{@>9uy%sf-A0-*$;CIOM{BQCpXT@lbeNO9Bmd(MUZfEc^doC95 zUvDhqz0h@H(fdXCKgUwf`3~Z52Ufa$ASr5}ajFYf5p;DuTWOA|9nGQsXv!uf6Ew7y zLv4;0mJP$X45EV}FuLQ;VsI_`4mY57h;l5LtdnQ(^(!%|04B%9WUewa5E!k5WPwTx zxI9F--Mp;Tf<|5^0f?A-nuZs;K$30$iq6<%3X50XUZ0E`j~!cK%t6GQ`!Hn2D6#oR zbpkM)KTfoNWuPx`0EN(;=WuY5=}@5N_D7WU{bM};6Uu{thHXHu1(s+l7o!(0-Wfa?JZS8hQ-CP^%KR|d41WW=7%

U&*GybW0pAF0>OgT!#%2y{eeqy>|>PT~!aaJlxI1~Poz)BPk;Y1}c+ z9$TG$`MXlHyA%c2UG#Oqe0aOe?ttg|gA1?5+;)@$=FY8Rls2n{n7RD`9G~723eFtz zAj|QrRTsXU%wB{v_d0cJ-Oy6_ywGm}7xd2YmhX87TE9>a&1)ozDrA$JZ1KZe znek;?$jgU1>Y^^aPm8Ps&OLEkOO=-f{A|uB9KTCt0*1b=&cSY-!W^YphWa5>rQB`V z0?nuARo&nkr~T_%n}gkTfC{H4Z8(k_Pg=iCdKcngeykD#7(E||S6dS3tfSh+*73Z{ z>CWXyHeDjD+Pg}R$Q6l}2xfizUf8-bpHh+o*!G@HIW6ysRt5eB2Kip6ue+^3t=(%t z)lh&~xk%Lu*44dv+hw)mUqkV`XqBUWI##fKepI(fnJ6MDPZe1-g&gjs!}5Liewr8l zceUBgu*U8Lq2~OHj$^~~uTqo5#o4+2A0R)b(S4dXen^W)W>LOggtwp-tam)lR(?n} zj}esF7Azx|zH8c!afJczc_i)tu7{d+r+_DY_P5*0fK|UO{Os>A%px48=;96Re?$9n zMHxwqVr?KC8H#Ta%de&Z>^IplGoyO_#ai(l0OIoSJ#)?e*Y^UmPR^da?_^7Au*ei; zI`3c+x!$E&O#sZG9)$#L?%e!SnSY*)52eIFl;6vKyIM>)B(D5+#Sl=VbG#F-=*a&l(W>#5+rz>oWDsGa)`3dMsLc`zaftWK6{1=>R2jSGmho{4^ghF?vlwBOM0@_ewlaz>tjxrh7Y zwhak(FLUGfo8jKEBlqq1ZF-oL8i5TrxYDsefF*7|rSBu`OO?Z(t!QVgZKkVXGnid| zh++A`6#d_W(+o>%6o^!~{b)!w^>$p*s(kspFaD-`Y=L7^Ate(lh*dc#!ey?}<&)eX zPn;u8ne_3nAR)16kmH(^f_Bt=^f2J(wypEg6CZc@F}2a8Sk=CBN?( ztY4zv3u2Qx@t>w21Ns;GGGZ>VM4TNFuaG%5g-Lz#Uf5=8FXzSI9#nSqEs_F1g*QK8 z8bg0{_X4m2YW#!mE`;kkj{cVNit~!Wu*Fr_X=Im4w9wfEOB%Vejif-nNg+Sxf(I$; zx>I{TMqEB+`J6dNVGeR$;bZ}}hm3QC#IJsk_E=J6XKrKx3MtD4f=ufq z8(cAd_s2UPu2Qt{$zIpH^PR=F8o3#JpVA39&3(TAo3R|MR$>JCL7_*rmK{0Q+#jYV zV1Gb$-=2RrBb9SZ(@)v)l{o2HcHYO;v~erxwiE6t2-jcYXCC)P9*o> z(@_jKF{k_&%1wd%!p=K0@PW{zzN@^V!Hy^$J|vVdQWk}=tdHrQEyqhU7Os7m4}hJE z|BE{SSNyrkgD7<1VEjjH-;ns{=Dt=0^EKtmOd#R>Ob_MN#TF)KOTf#qaf?)p8Xo-) zA|*6XjFxur*Q`DhB+&Js52xorT*w%k9dZ^_jT0L21!)&hxCe6t8d=~baenv3Mmpo~ z!u1hU2F{U}f1CM{qK38bshENx{CYy%STuxdt7^f@B?$E*PeQF*Y6mv}8r+i3gEPq> zgF?8$v%5(j?yfm`@|W=y@70wihs%%&?=J@l%OJ{OBAtzf=t;*gp9Ui zD)+-5Kp@wn50@pe2K)d|+0W50x`WU+o!BKw9I!#VZTTp(JQ;fD*tCg~^l4hx-n=(V z9C#t1ct#-){Pw|K_p!yQT2P z<)3qbK-77@*5N$q*okmj(=mIhT-hOEF3lFo;46lS3 z&;&;*MeR-^>1BEC{T324FEFW-US$NDBS%+e)OfCyrcW z3uKsDjUCJxCN4sS7Ihusd)26wx-~#paUo_dK!MM81O!30$x= z1fwrgg>(Ws5s|P&c#0-INP89SnYMM=@mAt*pYQ_D&f5ogGxN<~CTTVqO{nNmHZ)(W zQEU?HZ;fgf43@vl&zEXfPP^w`deq3jPm7&Na0nF874EDo(_Bpau|7XcCM^yq)@?Lh z=|T%Ri6Ixpp;lka6G2s?besHC@#oK%fzKiV5!NU9j*yU8;=LAAGdME`@Bpqk916{x z9Z0;os5=-4yN&~`@zwbysc}g&s+Mvv-s)zZIEGBaBWD=X^`f4hdd8nei5oRyYt5`*-oZzi40gmNFlud%8z&w8w^z@pP{KCa@#Ln(`pTPUq!GU z)lC9T;%tJfO$00vnjES_XNl=!Lm68OnIJ`MIu9=GE=8CDL;ib>GhvEv-kINcBGx1MlYO1LiXJ2@s%(+p6Ts zoX1UkTUU%Hi=bd?1$0&_JRcmf*>#Qo?HW`K+AZ@k(Op7x5nz?Qmp}3aMI*)-qkxI_ z{-Gh#-ViRy9HUI^WfpjNTv$5CtAS%3%(%tw*bPpFHXDw-JdZ?xxMScfRvaeFbHLSZ zt>kG=UppLAI$SBw`=cHyGM~j9s!KU!o^Y^tcIMNjW0v)dNo0t+~ zZ=q;sKae|Sma8fT3PET<*I0d{m<>%v{gUX|&4Td(jmV zfcS;U##W=Pp*KB#%65v50h1(ry^D6m#a7%_P<(tUQ4ZtvmO)!0(u7Qhcs*-(kPEny z>EOrZPi~JvU_Q6C&n7%g0Py#1EOF0D6EAF%@i|>WUe|~ozZAzV=h{>7IT9ljAo)55 ze-*=j;Qv}}S;-+(5!_(1?>`45!w69nz)U`793fg2|4FFI&WoCdpc4Y0f%VIC!%r95 zIxe&n#bcTi+0t=%vm7Q;)HSgMbu2J;6B2qhho;m)iO@Oqf?d0x;u}*V|e>UZi>cxjNP& zm2-p9l~J2qEkx>X%hbtyY^~2acM&~G2Ft@2g7WOz2E*sY3Mp&48O_uqO^2T+@qK1} zpUH2swam5_@HI~YUCVm->DUHkQKUG5Uq==!XnsTpRi4uYqNT8}7`3%SoM3q}mQ6B+ z{o27P#SQG^7M<=%%CV9aQwl3pzip>$v@zU`4u&Ix?3Pi)%j;K^3g>(v(-2?^r#AKnxBl81uE#_ofPyB;w!3TFE$}ifh9CaHcFlQZ; zwY`(oXQZ5gpUah5Y`71=L}(gy`K{7~angu999QhTbTJK{OqXC|u)M|sT2;s2q>H&l zoz~`4l_cj%+*X&Y=Lbv=fGDBo_-e<3u$JWr6D zWgxH+W!v3UK$k#|iA;>M1Y2wo8~rJsr&X##x(ed<`0?EcM*3`~h!)g=U8OrS4N`*+ zEcSB?#SW109l=LTKTXc5McaGYPCE|+Wj)9@i1KH@54XxaW9H+6-_y246_+IJ4W)ToV~|CzwII7pcZ2b#%!n z@{{vot8}d9q;CgK-bzh(a&W{v_7RCE+dt0nfhhdC;@kc3moE8;6M*^?jcZ5r-$#_Z zqvGLUm|s2tCaVx<_l5M3q#QTj_b`Y^M3N3zTP^d{Y?T@k1&{)od+;N936kY3WBMjQ z%Ple!HZdLIjW6LmVghHw% z!03QA&-(ZdDBiLhBkGaL?$zriy6)9UVXjEZ^&MiUJ=b_QRkZ zq`?Um7NUq|I%hh9v(->dTX$5Isx~8@UO4?G%g5DIvUwC87NR276>=$&c3dT{P-y-hV_aN)!*UA!6cBI;pJUZOnmO2~c6@U-+>qa3~tv1fM6 z6N;A8U2X9AnMI#V@xOwi7kBUJ$Pl6mx<0aX;ss0~;nRu|cdzU4hykK{Dhsc=|3)~% zTIxo=(-_1hRR4*d@1=>35H*{6Jz?Hn+!@+ft>AQDCmkB56|M*LSa4#C!zkvd(}Q@B zkJ=phq|7yS`F>i7H;&kjTGch!AMw;`4o?>p{6eft;M**s&cXlSJJlQ&j{c=0Zr!l0(n^ zy6*-=DDZGV0`o;sJScV#O=F_PEbStXVCQ(d)n{d6bF%v^;{GC;@Yi7K*g=bw?#&+` zm5nS3^bocLpZ?T2MX7CZ8Hvx1$#>Fg4I35Zct#~kZzKf$&KJ;?ap0|x1i$Lrro-eI z-dId&#QPYPK!J3*`-%kyA%uYp8%Qq_z5s#%R8tsSU z>jDMr_mYr2)ikrr{!ugW&o$G`5L8*^D{treko-P2Xp9obqA}U5E#r9OuJ{tZ!uTXE*x%f}P*R?|P{>4X;i}*bOj+B;q9c|}>iEPwYcr2I zDX~V3j%!TcYH>OYg}n zBc(xd=bUGNZB2I3*D@@V5Noz#oAnt*-tWsyQcbSwPulATt}ex1nRPV{-w`z*gH{ar zTN96AYxkxrI9_>QY%_Iymx@W~!GX0s2ZX{TQnltEBHCPjHgGV^q1jixERiaKYoB7uIAo%8iCOlk;A{UewLg&I-3h~L~z}R`}igaX# zUG+W67x74F3I2d(^PdHvT!_LA?YvAYpbPBe=Ral3eEz8K-;uv)q7O zudM2Og`7W2Wo{Jm4R48QgfwBa1HS@CeQMxn*KdNe6Xxc0ta&F=iI!EJk<3(=0 zpWLC6`3+fTcS^Rvxe9*T*U3t@^YK_ZkI+6EIse2E%3U|S8dpIOE$gcL3~Vq$;g&Ll zD;Sm@bV~PtZ@)Ocwy#8<)qt~Up4t6TGCmC^^MXxIev;O?la=HS^Dqv<3OXPng%Z)r z;dbp&ObdQi~c)jyysy9hIZ>Q%X8FgK+b_E zPo`SwB@^4kG(-FM9Q69J@en^{gVa4ri>eW^W3JY6srK7Ym5O#_N|ll=Sj|f5@+zCn zo~Yb96zSEL1av$o(^4lsANR1$x>=sqB_XiA!I&|&=`dg7;P)KAKiJNi)+9kDBk-AW zI1vU+V<^Mu)l8joHg4@<>M_tgqrh%>k>@q-8i(} zr1v;3N&q?EccIkXg^PdwSW~?!V$6dki|U)iX| zvHDGewzIKMW_>5CUme0XLg|V8gAdyUf2Qq5bejfR9F4y&fs~%jmDE}zPh5SRPnVuv zL+=Rt^nRMe2JG?0%1nEv}buF`L5xysy0)3LGe^>^ZbQ zp>43v922iqU+C~{u<$szl&FLoV`Nw;urd?<;O`S^ri)9vDPGZ3*=xmw_p+pbwD5Ku z5Usy~IafQLmv)gHVgI1+RWzj!X|gK1m!yQgrMKdq$H2d(-sp zn5@a2tgz^PiQSw$!jQ65-jx>A3~*k;5MFIgf<5eZM02F^w4U|dH%=V3hkp!qP(~`? zfB{=Tz&)@Agw;zCU{~D19tLz=8@}Xr+_2drN4QjzcpJwvaTQea7Wse0GdY4(t;OTQHz9EnfG zQoY${i{Bf0@8!R6a+eYw>Ea1OCGj_E>w4l<(6lB~5ELj+y8}>jDFO%ug_Kz~KW+Xq zFC^%@{&;=*(~5z2bNnOk{SPuWuwaLX>yJO$?uSTz_I3UAs^A_BfbXWE1DQhP!+Smf z!XRN>cwoVBvP4)kzK>fW#rP}0?w>#*=8k@Y`YnfR)|K#iFW&H{V9ejjfsnFpM*VwG- zwxb>zA5ohQ>dAACs+6_`T3Rr+?43BD^&OWhAFRQS0-ItNi<2<@W^=9u7Aj)lV-DhX zQ=EUW=6k{bt-D`o8C^+ldOOw`jQI%~5Y(*RLcJCIH4%Eu*7`9J({I<&#u8~J{%Aqd ze+feSV`fWV{8#lHq3=N6es}ikq%hG?I4+4eRPM~HWOkT~Aq{`i9qQz>SV<&j> z6F*qdEN%S)>Zpfzc#g(*RgnH{NIqy_5VZVZvGjGst}wE3Y@>Z;PVyN8kKn*t?aQ<# zn?V@U{YsnHq;S}M7|rhOt=)GcN-El3rn9w)+l@7WSFYXJgUo1V<$;`IT zi*^TF3MGi_(#*#q+)w@zVtn=OLlOGy6-ToDZ85pE!3>3GHGIgRj%_Inr%Bvlwe9Yt zR|5!)1CC=RYaTHP-c#GhTsD)Dk|W2aKrHRCQosCtP>`Y<$mu$N^72J=n)6q^S6SU$ zkG`O)a9G=8P1QpGu1wiDv(78i8+=R50>iv+E`0ZD>yk>^KlrqE|8Ai5z2*J(KB1Ke zA_IpS!)*aQ^k^h6N<;4Q)B_j@l6P4JAQYw)k^(|kGVJLuCjl(~ZYdwTyy4|A{UT&% zpBG&Ec5YWP6HmtQ3Ar16IP%u=B}3U2!BTMiX^_%daPXPh9i@o*v6T7}p$8IH(rmOD z1jY#senps*sYE8inmC?xc55L;TFnB_!#5BdT=G4BdxI*!H$(UwNLBtR-zmSU-ru^> zb4Sn*j(NP8v@yRnGPQft?r7@zg0Y_w6DV&h&wceKNn^q`FN@)0mFC^mzy8(re~)&s z1f6JU1MU1#9R4&GkA0?JId)RljW9&S!){Y9qbmQHaK7`aZ`*mt0!JCE6$_x1Ah>{t z(*%`&bHM-Nf&bTN2By4oI5oJ~xL5FONuSa6%ig_-jq3A>uk)!i(*IX(5STQ9$ISmGx&H$O|LYDa1JbE9`^0%3tJ10vK99nUjfw81 z)MOW!m4i|yGR2Le+GEjUEvB&CWZeG;gyb|mtVLLSx2o-8L z=ktHPbBBZWC$dB`%C0ZiJj175JE2R9OVR{yI9^n0P(bmrKIn ziyZV#^|D5_)8Wgp^-jRfPQlmTeXTdvjJ`RS^1*R(FiCWU`_tOtnHN{eeh=%JH4S`l z3(ZswPDf9O=9kMOj*({%Ihkz@imwuPc?IFwlu2q&(oU@o6;3CR+qTU2`t+nxt9U2A zI>qKcx#n{@LBX-#h9-CY_h)ukTqp)2_B}JJz5{ zlEjBL-!8s?aOQur=KrY#MG*DVqwhr!fVAc)fMSkrAUKi(JJYM_C*UF9YC5 zUq-(+sJ6JI7HJzs4HC>MRaL)PHxoHQC-U?Pzte|6?eRh@>ZWN$Uwa$XcgpJOW}doR zgPj46A2EOZZGiCK1!V;tKlwFZ1F>L&tfoO=Vmf+;Z%Wpa&7v1={5CfYX`R#nU&^g2 zX+2UFbOm1r{oCx>U9z0!}O>r7KFy-BG;mwLbZ{@cfbmkI^f9UnNXai<+mMnt&; z4ESCF9dEz8|FMem%FD%!PXR$A|lBi^sf8` z)fgfo#^Y}U_P@(SADpgh+M^a;M+-V)0rfEs*&Oj5z0Ji}l&z#x_Ep4Qps_w<^UYsR UQE=@G1W>PAH;r`4wQNKG2kW!8(*OVf literal 0 HcmV?d00001 diff --git a/docs/visualize/vega.asciidoc b/docs/visualize/vega.asciidoc index b8c0d1dbe3ddaf..e0d9955f0c3dbf 100644 --- a/docs/visualize/vega.asciidoc +++ b/docs/visualize/vega.asciidoc @@ -1,81 +1,80 @@ [[vega-graph]] -== Vega Graphs -experimental[] +== Vega -You can build https://vega.github.io/vega/examples/[Vega] and -https://vega.github.io/vega-lite/examples/[Vega-Lite] data visualizations -into Kibana, either standalone, or on top of a map. To see Vega in action, -watch this -https://www.youtube.com/watch?v=lQGCipY3th8[short introduction video]. +experimental[] -Currently Vega version 4.3 and Vega-Lite version 2.6 are supported. +Build custom visualizations from multiple data sources using Vega +and Vega-Lite. -NOTE: In Vega it is possible to load data dynamically, e.g. by setting signals as data urls. This is not supported in Kibana as all data is fetched at once prior to passing it to the Vega renderer. +* *Vega* — A declarative format to create visualizations using JSON. + Generate interactive displays using D3. +* *Vega-Lite* — An easier format to use than Vega that enables more rapid + data analysis. Compiles into Vega. -[[vega-quick-demo]] -=== Getting Started with Vega +For more information about Vega and Vega-Lite, refer to +<>. -* To experiment using sample data, first click the {kib} logo in the upper left hand corner -and then click the link next to *Sample Data*. -* Once you have data loaded, go to *Visualize*, click *+*, and select *Vega* to see an example graph. -*Note*: The default graph is written in Vega-Lite, but you can build visualizations -in either language. See <> for more information. -* Try changing `mark` from `line` to `point`, `area`, `bar`, `circle`, -or `square`. Check out the -https://vega.github.io/vega-lite/docs/mark.html#mark-def[Vega-Lite docs] for more information. -* Explore other available https://vega.github.io/vega/examples/[Vega] or -https://vega.github.io/vega-lite/examples/[Vega-Lite] visualizations. -*Note*: You might need to make URLs absolute, for example, replace -`"url": "data/world-110m.json"` with -`"url": "https://vega.github.io/editor/data/world-110m.json"`. -See <>. -* For more information on getting started, check out this https://www.elastic.co/blog/getting-started-with-vega-visualizations-in-kibana[blog post]. +[float] +[[create-vega-viz]] +=== Create Vega visualizations +You create Vega visualizations by using the text editor, which is +preconfigured with the options you need. -[[vega-vs-vegalite]] -=== Vega vs Vega-Lite +[role="screenshot"] +image::images/vega_lite_default.png[] -The Vega visualization in {kib} supports both Vega and Vega-Lite. You can use the -`schema` value to define which language you would like to use and its minimum -required version. +[float] +[[vega-schema]] +==== Change the Vega version -For example: +The default visualization uses Vega-Lite version 2. To use Vega version 4, edit +the `schema`. -* Vega-Lite v2: `$schema: https://vega.github.io/schema/vega-lite/v2.json` -* Vega v4: `$schema: https://vega.github.io/schema/vega/v4.json` +Go to `$schema`, enter `https://vega.github.io/schema/vega/v4.json`, then click +*Update*. -The `schema` URL is only used for identification, and does not need to be accessible by {kib}. +[float] +[[vega-type]] +==== Change the visualization type -Vega-Lite is a simplified version of Vega; it automates some constructions and has -much shorter specifications than Vega. Vega-Lite is automatically converted into -Vega before rendering, but it has some limitations, and there are some visualizations -that can be expressed in Vega that cannot be expressed in Vega-Lite. You can learn more -in the https://vega.github.io/vega-lite/[Vega-Lite documentation]. +The default visualization is a line chart. To change the visualization type, +change the `mark` value. The supported visualization types are listed in the +text editor. -You can use https://vega.github.io/editor/[this editor] to convert Vega-Lite into -Vega. +Go to `mark`, change the value to a different visualization type, then click +*Update*. -When you create a Vega visualization in {kib}, you can edit the `schema` -value in the dev tools to the left of the graph to define which of the two expression -languages you would like to use. +[float] +[[vega-sizing-and-positioning]] +==== Change the layout +By default, Vega visualizations use the `autosize = { type: 'fit', contains: 'padding' }` layout. +`fit` uses all available space, ignores `width` and `height` values, +and respects the padding values. To override this behavior, change the +`autosize` value. [[vega-querying-elasticsearch]] -=== Querying Elasticsearch +=== Query {es} -By default, Vega's https://vega.github.io/vega/docs/data/[data] element -can use embedded and external data with a `"url"` parameter. Kibana adds support for the direct Elasticsearch queries by overloading +experimental[] Vega https://vega.github.io/vega/docs/data/[data] elements +use embedded and external data with a `"url"` parameter. {kib} adds support for +direct {es} queries by overloading the `"url"` value. -Here is an example of an Elasticsearch query that counts the number of documents in all indexes. The query uses *@timestamp* field to filter the time range, and break it into histogram buckets. +NOTE: With Vega, you dynamically load your data by setting signals as data URLs. +Since {kib} is unable to support dynamically loaded data, all data is fetched +before it's passed to the Vega renderer. + +For example, count the number of documents in all indices: [source,yaml] ---- -// An object instead of a string for the url value +// An object instead of a string for the URL value // is treated as a context-aware Elasticsearch query. url: { - // Specify the time filter (upper right corner) with this field + // Specify the time filter. %timefield%: @timestamp // Apply dashboard context filters when set %context%: true @@ -88,8 +87,8 @@ url: { time_buckets: { date_histogram: { // Use date histogram aggregation on @timestamp field - field: @timestamp - // interval value will depend on the daterange picker + field: @timestamp <1> + // interval value will depend on the time filter // Use an integer to set approximate bucket count interval: { %autointerval%: true } // Make sure we get an entire range, even if it has no data @@ -109,7 +108,10 @@ url: { } ---- -The full result has this kind of structure: +<1> `@timestamp` — Filters the time range and breaks it into histogram +buckets. + +The full result includes the following structure: [source,yaml] ---- @@ -118,23 +120,24 @@ The full result has this kind of structure: "time_buckets": { "buckets": [{ "key_as_string": "2015-11-30T22:00:00.000Z", - "key": 1448920800000, + "key": 1448920800000,<1> "doc_count": 28 }, { "key_as_string": "2015-11-30T23:00:00.000Z", - "key": 1448924400000, + "key": 1448924400000, <1> "doc_count": 330 }, ... ---- -Note that `"key"` is a unix timestamp, and can be used without conversions by the +<1> `"key"` — The unix timestamp you can use without conversions by the Vega date expressions. -For most graphs we only need the list of the bucket values, so we use `format: {property: "aggregations.time_buckets.buckets"}` expression to focus on just the data we need. +For most visualizations, you only need the list of bucket values. To focus on +only the data you need, use `format: {property: "aggregations.time_buckets.buckets"}`. -Query may be specified with individual range and dashboard context as -well. This query is equivalent to `"%context%": true, "%timefield%": "@timestamp"`, -except that the timerange is shifted back by 10 minutes: +Specify a query with individual range and dashboard context. The query is +equivalent to `"%context%": true, "%timefield%": "@timestamp"`, +except that the time range is shifted back by 10 minutes: [source,yaml] ---- @@ -185,9 +188,9 @@ on the currently picked range: `"interval": {"%autointerval%": 10}` will try to get about 10-15 data points (buckets). [[vega-esmfiles]] -=== Elastic Map Files +=== Access Elastic Map Service files -It is possible to access Elastic Map Service's files via the same mechanism +experimental[] Access the Elastic Map Service files via the same mechanism: [source,yaml] ---- @@ -203,11 +206,8 @@ url: { format: {property: "features"} ---- -[[vega-with-a-map]] -=== Vega with a Map - -Kibana's default map can be used as a base of the Vega graph. To enable, -the graph must specify `type=map` in the host configuration: +To enable Elastic Maps, the graph must specify `type=map` in the host +configuration: [source,yaml] ---- @@ -247,42 +247,47 @@ the graph must specify `type=map` in the host configuration: } ---- -This visualization will automatically inject a projection called -`"projection"`. Use it to calculate positioning of all geo-aware marks. -Additionally, you may use `latitude`, `longitude`, and `zoom` signals. +The visualization automatically injects a `"projection"`, which you can use to +calculate the position of all geo-aware marks. +Additionally, you can use `latitude`, `longitude`, and `zoom` signals. These signals can be used in the graph, or can be updated to modify the -positioning of the map. +position of the map. + +Vega visualization ignore the `autosize`, `width`, `height`, and `padding` +values, using `fit` model with zero padding. [[vega-debugging]] -=== Debugging +=== Debugging Vega [[vega-browser-debugging-console]] -==== Browser Debugging console +==== Browser debugging console -Use browser debugging tools (e.g. F12 or Ctrl+Shift+J in Chrome) to +experimental[] Use browser debugging tools (for example, F12 or Ctrl+Shift+J in Chrome) to inspect the `VEGA_DEBUG` variable: -* `view` - access to the Vega View object. See https://vega.github.io/vega/docs/api/debugging/[Vega Debugging Guide] - on how to inspect data and signals at runtime. For Vega-Lite, `VEGA_DEBUG.view.data('source_0')` gets the main data set. - For Vega, it uses the data name as defined in your Vega spec. -* `vega_spec` - Vega JSON graph specification after some modifications by Kibana. In case ++ +* `view` — Access to the Vega View object. See https://vega.github.io/vega/docs/api/debugging/[Vega Debugging Guide] +on how to inspect data and signals at runtime. For Vega-Lite, `VEGA_DEBUG.view.data('source_0')` gets the main data set. +For Vega, it uses the data name as defined in your Vega spec. + +* `vega_spec` — Vega JSON graph specification after some modifications by {kib}. In case of Vega-Lite, this is the output of the Vega-Lite compiler. -* `vegalite_spec` - If this is a Vega-Lite graph, JSON specification of the graph before + +* `vegalite_spec` — If this is a Vega-Lite graph, JSON specification of the graph before Vega-Lite compilation. [[vega-data]] ==== Data -If you are using Elasticsearch query, make sure your resulting data is -what you expected. The easiest way to view it is by using "networking" -tab in the browser debugging tools (e.g. F12). Modify the graph slightly +experimental[] If you are using an {es} query, make sure your resulting data is +what you expected. The easiest way to view it is by using the "networking" +tab in the browser debugging tools (for example, F12). Modify the graph slightly so that it makes a search request, and view the response from the server. Another approach is to use -https://www.elastic.co/guide/en/kibana/current/console-kibana.html[Kibana -Dev Tools] tab - place the index name into the first line: -`GET /_search`, and add your query as the following lines -(just the value of the `"query"` field) +https://www.elastic.co/guide/en/kibana/current/console-kibana.html[Dev Tools]. Place the index name into the first line: +`GET /_search`, then add your query as the following lines +(just the value of the `"query"` field). -If you need to share your graph with someone, you may want to copy the +If you need to share your graph with someone, copy the raw data response to https://gist.github.com/[gist.github.com], possibly with a `.json` extension, use the `[raw]` button, and use that url directly in your graph. @@ -292,9 +297,11 @@ to your kibana.yml file. [[vega-notes]] [[vega-useful-links]] -=== Useful Links +=== Resources and examples + +experimental[] To learn more about Vega and Vega-List, refer to the resources and examples. -==== Vega Editor +==== Vega editor The https://vega.github.io/editor/[Vega Editor] includes examples for Vega & Vega-Lite, but does not support any {kib}-specific features like {es} requests and interactive base maps. @@ -308,28 +315,15 @@ The https://vega.github.io/editor/[Vega Editor] includes examples for Vega & Veg * https://vega.github.io/vega/docs/[Docs] * https://vega.github.io/vega/examples/[Examples] -==== Elastic blog posts -* https://www.elastic.co/blog/getting-started-with-vega-visualizations-in-kibana[Getting Started with Vega Visualizations in Kibana] -* https://www.elastic.co/blog/custom-vega-visualizations-in-kibana[Custom Vega Visualizations in Kibana] -* https://www.elastic.co/blog/sankey-visualization-with-vega-in-kibana[Sankey Visualization with Vega in Kibana] - - -[[vega-using-vega-and-vegalite-examples]] -==== Using Vega and Vega-Lite examples - -When using https://vega.github.io/vega/examples/[Vega] and -https://vega.github.io/vega-lite/examples/[VegaLite] examples, you may +TIP: When you use the examples, you may need to modify the "data" section to use absolute URL. For example, replace `"url": "data/world-110m.json"` with -`"url": "https://vega.github.io/editor/data/world-110m.json"`. Also, -regular Vega examples use `"autosize": "pad"` layout model, whereas -Kibana uses `fit`. Remove all `autosize`, `width`, and `height` -values. See link:#sizing-and-positioning[sizing and positioning]. +`"url": "https://vega.github.io/editor/data/world-110m.json"`. [[vega-additional-configuration-options]] ==== Additional configuration options -These options are specific to the Kibana. link:#vega-with-a-map[Map support] has +These options are specific to the {kib}. link:#vega-with-a-map[Map support] has additional configuration options. [source,yaml] @@ -351,21 +345,3 @@ additional configuration options. /* the rest of Vega code */ } ---- - -[[vega-sizing-and-positioning]] -==== Sizing and positioning - -[[vega-and-vegalite]] -===== Vega and Vega-Lite - -By default, Kibana Vega graphs will use -`autosize = { type: 'fit', contains: 'padding' }` layout model for Vega -and Vega-Lite graphs. The `fit` model uses all available space, ignores -`width` and `height` values, but respects the padding values. You may -override this behaviour by specifying a different `autosize` value. - -[[vega-on-a-map]] -===== Vega on a map - -All Vega graphs will ignore `autosize`, `width`, `height`, and `padding` -values, using `fit` model with zero padding. From 37e9dced109c518375d922262b6a88540ab2b3ea Mon Sep 17 00:00:00 2001 From: Spencer Date: Mon, 20 Apr 2020 15:16:24 -0700 Subject: [PATCH 20/54] [7.x] [SEARCH] Cleanup fetch soon (#63320) (#63983) * move old code to legacy folder * Use search service directly from search source * Move get search params to fetch folder * Delete search strategy folder * Doc update * Minor cleanups * Moved es client to legacy folder * Clean up some unused code (isViable, old search function) * Updated tests * strings update * Fix jest test * re-arrange runSearch function * re-arrange runSearch function * fix jest tests Co-authored-by: Elastic Machine Co-authored-by: Liza Katz Co-authored-by: Elastic Machine --- .../kibana-plugin-plugins-data-public.md | 1 - ...s-data-public.searchstrategyprovider.id.md | 11 -- ...-public.searchstrategyprovider.isviable.md | 11 -- ...gins-data-public.searchstrategyprovider.md | 20 ---- ...ta-public.searchstrategyprovider.search.md | 11 -- .../lib/get_indices.test.ts | 2 +- src/plugins/data/public/index.ts | 1 - src/plugins/data/public/public.api.md | 45 +++----- .../aggs/test_helpers/mock_data_services.ts | 11 +- .../search/fetch/get_search_params.test.ts | 70 ++++++++++++ .../get_search_params.ts | 14 +-- src/plugins/data/public/search/fetch/index.ts | 13 ++- .../fetch/{errors.ts => request_error.ts} | 0 .../search_error.ts | 0 src/plugins/data/public/search/fetch/types.ts | 3 + src/plugins/data/public/search/index.ts | 12 +- .../{fetch => legacy}/call_client.test.ts | 11 +- .../search/{fetch => legacy}/call_client.ts | 7 +- .../default_search_strategy.test.ts | 24 +--- .../default_search_strategy.ts | 38 +------ .../{ => legacy}/es_client/get_es_client.ts | 0 .../search/{ => legacy}/es_client/index.ts | 2 +- .../search/{ => legacy}/es_client/types.ts | 3 +- .../{fetch => legacy}/fetch_soon.test.ts | 6 +- .../search/{fetch => legacy}/fetch_soon.ts | 4 +- .../get_msearch_params.test.ts} | 45 +------- .../search/legacy/get_msearch_params.ts | 29 +++++ .../{search_strategy => legacy}/index.ts | 7 +- .../{search_strategy => legacy}/types.ts | 13 +-- .../data/public/search/search_service.ts | 6 +- .../search_source/search_source.test.ts | 55 ++++++++- .../search/search_source/search_source.ts | 53 +++++++-- .../search_strategy/no_op_search_strategy.ts | 55 --------- src/plugins/data/public/search/types.ts | 11 +- .../public/search/rollup_search_strategy.ts | 104 ------------------ .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - 37 files changed, 276 insertions(+), 426 deletions(-) delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md create mode 100644 src/plugins/data/public/search/fetch/get_search_params.test.ts rename src/plugins/data/public/search/{search_strategy => fetch}/get_search_params.ts (81%) rename src/plugins/data/public/search/fetch/{errors.ts => request_error.ts} (100%) rename src/plugins/data/public/search/{search_strategy => fetch}/search_error.ts (100%) rename src/plugins/data/public/search/{fetch => legacy}/call_client.test.ts (91%) rename src/plugins/data/public/search/{fetch => legacy}/call_client.ts (89%) rename src/plugins/data/public/search/{search_strategy => legacy}/default_search_strategy.test.ts (83%) rename src/plugins/data/public/search/{search_strategy => legacy}/default_search_strategy.ts (64%) rename src/plugins/data/public/search/{ => legacy}/es_client/get_es_client.ts (100%) rename src/plugins/data/public/search/{ => legacy}/es_client/index.ts (91%) rename src/plugins/data/public/search/{ => legacy}/es_client/types.ts (94%) rename src/plugins/data/public/search/{fetch => legacy}/fetch_soon.test.ts (96%) rename src/plugins/data/public/search/{fetch => legacy}/fetch_soon.ts (95%) rename src/plugins/data/public/search/{search_strategy/get_search_params.test.ts => legacy/get_msearch_params.test.ts} (60%) create mode 100644 src/plugins/data/public/search/legacy/get_msearch_params.ts rename src/plugins/data/public/search/{search_strategy => legacy}/index.ts (78%) rename src/plugins/data/public/search/{search_strategy => legacy}/types.ts (89%) delete mode 100644 src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts delete mode 100644 x-pack/plugins/rollup/public/search/rollup_search_strategy.ts diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md index fc0dab94a0f656..bf29c883e4eb96 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md @@ -88,7 +88,6 @@ | [SavedQuery](./kibana-plugin-plugins-data-public.savedquery.md) | | | [SavedQueryService](./kibana-plugin-plugins-data-public.savedqueryservice.md) | | | [SearchSourceFields](./kibana-plugin-plugins-data-public.searchsourcefields.md) | | -| [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) | | | [TabbedAggColumn](./kibana-plugin-plugins-data-public.tabbedaggcolumn.md) | \* | | [TabbedTable](./kibana-plugin-plugins-data-public.tabbedtable.md) | \* | | [TimeRange](./kibana-plugin-plugins-data-public.timerange.md) | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md deleted file mode 100644 index d60ffba6a05ca8..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.id.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) - -## SearchStrategyProvider.id property - -Signature: - -```typescript -id: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md deleted file mode 100644 index aa8ed49051ee9a..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) - -## SearchStrategyProvider.isViable property - -Signature: - -```typescript -isViable: (indexPattern: IndexPattern) => boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md deleted file mode 100644 index b271a921906a71..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.md +++ /dev/null @@ -1,20 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) - -## SearchStrategyProvider interface - -Signature: - -```typescript -export interface SearchStrategyProvider -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [id](./kibana-plugin-plugins-data-public.searchstrategyprovider.id.md) | string | | -| [isViable](./kibana-plugin-plugins-data-public.searchstrategyprovider.isviable.md) | (indexPattern: IndexPattern) => boolean | | -| [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) | (params: SearchStrategySearchParams) => SearchStrategyResponse | | - diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md deleted file mode 100644 index 6e2561c3b0ad00..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.searchstrategyprovider.search.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [SearchStrategyProvider](./kibana-plugin-plugins-data-public.searchstrategyprovider.md) > [search](./kibana-plugin-plugins-data-public.searchstrategyprovider.search.md) - -## SearchStrategyProvider.search property - -Signature: - -```typescript -search: (params: SearchStrategySearchParams) => SearchStrategyResponse; -``` diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts index 40583af7177fee..b1500f8303b666 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/create_index_pattern_wizard/lib/get_indices.test.ts @@ -20,7 +20,7 @@ import { getIndices } from './get_indices'; import { IndexPatternCreationConfig } from '../../../../../../../../../plugins/index_pattern_management/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search'; +import { LegacyApiCaller } from '../../../../../../../../../plugins/data/public/search/legacy'; export const successfulResponse = { hits: { diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 06a46065baa847..b62b728beca35f 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -363,7 +363,6 @@ export { SearchRequest, SearchResponse, SearchError, - SearchStrategyProvider, ISearchSource, SearchSource, createSearchSource, diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 7d902c88616c51..78659720fe09a7 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -1736,21 +1736,6 @@ export interface SearchSourceFields { version?: boolean; } -// Warning: (ae-missing-release-tag) "SearchStrategyProvider" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export interface SearchStrategyProvider { - // (undocumented) - id: string; - // (undocumented) - isViable: (indexPattern: IndexPattern) => boolean; - // Warning: (ae-forgotten-export) The symbol "SearchStrategySearchParams" needs to be exported by the entry point index.d.ts - // Warning: (ae-forgotten-export) The symbol "SearchStrategyResponse" needs to be exported by the entry point index.d.ts - // - // (undocumented) - search: (params: SearchStrategySearchParams) => SearchStrategyResponse; -} - // Warning: (ae-missing-release-tag) "SortDirection" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1901,21 +1886,21 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:404:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts index d1d591771743c7..e807e084c683a2 100644 --- a/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts +++ b/src/plugins/data/public/search/aggs/test_helpers/mock_data_services.ts @@ -18,8 +18,8 @@ */ // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { coreMock } from '../../../../../../../src/core/public/mocks'; -import { dataPluginMock } from '../../../../public/mocks'; +import { coreMock } from '../../../../../../core/public/mocks'; +import { dataPluginMock } from '../../../mocks'; import { setFieldFormats, setIndexPatterns, @@ -29,7 +29,7 @@ import { setQueryService, setSearchService, setUiSettings, -} from '../../../../public/services'; +} from '../../../services'; /** * Testing helper which calls all of the service setters used in the @@ -49,4 +49,9 @@ export function mockDataServices() { setQueryService(data.query); setSearchService(data.search); setUiSettings(core.uiSettings); + + return { + core, + data, + }; } diff --git a/src/plugins/data/public/search/fetch/get_search_params.test.ts b/src/plugins/data/public/search/fetch/get_search_params.test.ts new file mode 100644 index 00000000000000..edf18405e8ff71 --- /dev/null +++ b/src/plugins/data/public/search/fetch/get_search_params.test.ts @@ -0,0 +1,70 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { getSearchParams } from './get_search_params'; +import { IUiSettingsClient } from 'kibana/public'; + +function getConfigStub(config: any = {}) { + return { + get: key => config[key], + } as IUiSettingsClient; +} + +describe('getSearchParams', () => { + test('includes rest_total_hits_as_int', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.rest_total_hits_as_int).toBe(true); + }); + + test('includes ignore_unavailable', () => { + const config = getConfigStub(); + const searchParams = getSearchParams(config); + expect(searchParams.ignore_unavailable).toBe(true); + }); + + test('includes ignore_throttled according to search:includeFrozen', () => { + let config = getConfigStub({ 'search:includeFrozen': true }); + let searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(false); + + config = getConfigStub({ 'search:includeFrozen': false }); + searchParams = getSearchParams(config); + expect(searchParams.ignore_throttled).toBe(true); + }); + + test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { + let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); + let searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(undefined); + + config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); + searchParams = getSearchParams(config); + expect(searchParams.max_concurrent_shard_requests).toBe(5); + }); + + test('includes timeout according to esShardTimeout if greater than 0', () => { + const config = getConfigStub(); + let searchParams = getSearchParams(config, 0); + expect(searchParams.timeout).toBe(undefined); + + searchParams = getSearchParams(config, 100); + expect(searchParams.timeout).toBe('100ms'); + }); +}); diff --git a/src/plugins/data/public/search/search_strategy/get_search_params.ts b/src/plugins/data/public/search/fetch/get_search_params.ts similarity index 81% rename from src/plugins/data/public/search/search_strategy/get_search_params.ts rename to src/plugins/data/public/search/fetch/get_search_params.ts index 9fb8f2c728c6f0..f0c43bd2e74cd1 100644 --- a/src/plugins/data/public/search/search_strategy/get_search_params.ts +++ b/src/plugins/data/public/search/fetch/get_search_params.ts @@ -17,18 +17,10 @@ * under the License. */ -import { IUiSettingsClient } from '../../../../../core/public'; +import { IUiSettingsClient } from 'kibana/public'; const sessionId = Date.now(); -export function getMSearchParams(config: IUiSettingsClient) { - return { - rest_total_hits_as_int: true, - ignore_throttled: getIgnoreThrottled(config), - max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), - }; -} - export function getSearchParams(config: IUiSettingsClient, esShardTimeout: number = 0) { return { rest_total_hits_as_int: true, @@ -40,11 +32,11 @@ export function getSearchParams(config: IUiSettingsClient, esShardTimeout: numbe }; } -function getIgnoreThrottled(config: IUiSettingsClient) { +export function getIgnoreThrottled(config: IUiSettingsClient) { return !config.get('search:includeFrozen'); } -function getMaxConcurrentShardRequests(config: IUiSettingsClient) { +export function getMaxConcurrentShardRequests(config: IUiSettingsClient) { const maxConcurrentShardRequests = config.get('courier:maxConcurrentShardRequests'); return maxConcurrentShardRequests > 0 ? maxConcurrentShardRequests : undefined; } diff --git a/src/plugins/data/public/search/fetch/index.ts b/src/plugins/data/public/search/fetch/index.ts index 8a80b716add321..39845ec31bfaaa 100644 --- a/src/plugins/data/public/search/fetch/index.ts +++ b/src/plugins/data/public/search/fetch/index.ts @@ -18,5 +18,14 @@ */ export * from './types'; -export { fetchSoon } from './fetch_soon'; -export { RequestFailure } from './errors'; +export { + getSearchParams, + getPreference, + getTimeout, + getIgnoreThrottled, + getMaxConcurrentShardRequests, +} from './get_search_params'; + +export { SearchError, getSearchErrorType } from './search_error'; +export { RequestFailure } from './request_error'; +export { handleResponse } from './handle_response'; diff --git a/src/plugins/data/public/search/fetch/errors.ts b/src/plugins/data/public/search/fetch/request_error.ts similarity index 100% rename from src/plugins/data/public/search/fetch/errors.ts rename to src/plugins/data/public/search/fetch/request_error.ts diff --git a/src/plugins/data/public/search/search_strategy/search_error.ts b/src/plugins/data/public/search/fetch/search_error.ts similarity index 100% rename from src/plugins/data/public/search/search_strategy/search_error.ts rename to src/plugins/data/public/search/fetch/search_error.ts diff --git a/src/plugins/data/public/search/fetch/types.ts b/src/plugins/data/public/search/fetch/types.ts index e8de0576b8a72f..475b2abbc019f4 100644 --- a/src/plugins/data/public/search/fetch/types.ts +++ b/src/plugins/data/public/search/fetch/types.ts @@ -20,6 +20,9 @@ import { IUiSettingsClient } from '../../../../../core/public'; import { ISearchStart } from '../types'; +export type SearchRequest = any; +export type SearchResponse = any; + export interface FetchOptions { abortSignal?: AbortSignal; searchStrategyId?: string; diff --git a/src/plugins/data/public/search/index.ts b/src/plugins/data/public/search/index.ts index cce973d632f417..75c0eb8b6f0229 100644 --- a/src/plugins/data/public/search/index.ts +++ b/src/plugins/data/public/search/index.ts @@ -44,9 +44,13 @@ export { esSearchStrategyProvider, getEsPreference } from './es_search'; export { IKibanaSearchResponse, IKibanaSearchRequest } from '../../common/search'; -export { LegacyApiCaller, SearchRequest, SearchResponse } from './es_client'; - -export { SearchError, SearchStrategyProvider, getSearchErrorType } from './search_strategy'; +export { + SearchError, + FetchOptions, + SearchRequest, + SearchResponse, + getSearchErrorType, +} from './fetch'; export { ISearchSource, @@ -59,5 +63,3 @@ export { export { SearchInterceptor } from './search_interceptor'; export { RequestTimeoutError } from './request_timeout_error'; - -export { FetchOptions } from './fetch'; diff --git a/src/plugins/data/public/search/fetch/call_client.test.ts b/src/plugins/data/public/search/legacy/call_client.test.ts similarity index 91% rename from src/plugins/data/public/search/fetch/call_client.test.ts rename to src/plugins/data/public/search/legacy/call_client.test.ts index 7a99b7c064515b..f919187d46784d 100644 --- a/src/plugins/data/public/search/fetch/call_client.test.ts +++ b/src/plugins/data/public/search/legacy/call_client.test.ts @@ -18,16 +18,17 @@ */ import { callClient } from './call_client'; -import { handleResponse } from './handle_response'; -import { FetchHandlers } from './types'; -import { SearchStrategySearchParams, defaultSearchStrategy } from '../search_strategy'; +import { SearchStrategySearchParams } from './types'; +import { defaultSearchStrategy } from './default_search_strategy'; +import { FetchHandlers } from '../fetch'; +import { handleResponse } from '../fetch/handle_response'; const mockAbortFn = jest.fn(); -jest.mock('./handle_response', () => ({ +jest.mock('../fetch/handle_response', () => ({ handleResponse: jest.fn((request, response) => response), })); -jest.mock('../search_strategy', () => { +jest.mock('./default_search_strategy', () => { return { defaultSearchStrategy: { search: jest.fn(({ searchRequests }: SearchStrategySearchParams) => { diff --git a/src/plugins/data/public/search/fetch/call_client.ts b/src/plugins/data/public/search/legacy/call_client.ts similarity index 89% rename from src/plugins/data/public/search/fetch/call_client.ts rename to src/plugins/data/public/search/legacy/call_client.ts index b3c4c682fa60c0..c484c46aa4879f 100644 --- a/src/plugins/data/public/search/fetch/call_client.ts +++ b/src/plugins/data/public/search/legacy/call_client.ts @@ -17,10 +17,9 @@ * under the License. */ -import { handleResponse } from './handle_response'; -import { FetchOptions, FetchHandlers } from './types'; -import { defaultSearchStrategy } from '../search_strategy'; -import { SearchRequest } from '..'; +import { FetchOptions, FetchHandlers, handleResponse } from '../fetch'; +import { defaultSearchStrategy } from './default_search_strategy'; +import { SearchRequest } from '../index'; export function callClient( searchRequests: SearchRequest[], diff --git a/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts b/src/plugins/data/public/search/legacy/default_search_strategy.test.ts similarity index 83% rename from src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts rename to src/plugins/data/public/search/legacy/default_search_strategy.test.ts index 210a0e5fd1ac78..835b02b3cd5c74 100644 --- a/src/plugins/data/public/search/search_strategy/default_search_strategy.test.ts +++ b/src/plugins/data/public/search/legacy/default_search_strategy.test.ts @@ -17,10 +17,10 @@ * under the License. */ -import { IUiSettingsClient } from '../../../../../core/public'; -import { SearchStrategySearchParams } from './types'; +import { IUiSettingsClient } from 'kibana/public'; import { defaultSearchStrategy } from './default_search_strategy'; import { searchStartMock } from '../mocks'; +import { SearchStrategySearchParams } from './types'; const { search } = defaultSearchStrategy; @@ -38,12 +38,6 @@ const searchMockResponse: any = Promise.resolve([]); searchMockResponse.abort = jest.fn(); const searchMock = jest.fn().mockReturnValue(searchMockResponse); -const newSearchMockResponse: any = Promise.resolve([]); -newSearchMockResponse.abort = jest.fn(); -const newSearchMock = jest.fn().mockReturnValue({ - toPromise: () => searchMockResponse, -}); - describe('defaultSearchStrategy', function() { describe('search', function() { let searchArgs: MockedKeys>; @@ -58,7 +52,6 @@ describe('defaultSearchStrategy', function() { const searchService = searchStartMock; searchService.aggs.calculateAutoTimeExpression = jest.fn().mockReturnValue('1d'); - searchService.search = newSearchMock; searchService.__LEGACY.esClient.search = searchMock; searchService.__LEGACY.esClient.msearch = msearchMock; @@ -112,18 +105,5 @@ describe('defaultSearchStrategy', function() { search({ ...searchArgs, config }).abort(); expect(msearchMockResponse.abort).toHaveBeenCalled(); }); - - test('should call new search service', () => { - const config = getConfigStub(); - search({ ...searchArgs, config }); - expect(newSearchMock).toHaveBeenCalledTimes(1); - }); - - test('should properly abort with new search service', async () => { - const abortSpy = jest.spyOn(AbortController.prototype, 'abort'); - const config = getConfigStub({}); - search({ ...searchArgs, config }).abort(); - expect(abortSpy).toHaveBeenCalled(); - }); }); }); diff --git a/src/plugins/data/public/search/search_strategy/default_search_strategy.ts b/src/plugins/data/public/search/legacy/default_search_strategy.ts similarity index 64% rename from src/plugins/data/public/search/search_strategy/default_search_strategy.ts rename to src/plugins/data/public/search/legacy/default_search_strategy.ts index 2bd88f51587a8a..1552410f9090ca 100644 --- a/src/plugins/data/public/search/search_strategy/default_search_strategy.ts +++ b/src/plugins/data/public/search/legacy/default_search_strategy.ts @@ -17,23 +17,19 @@ * under the License. */ +import { getPreference, getTimeout } from '../fetch'; +import { getMSearchParams } from './get_msearch_params'; import { SearchStrategyProvider, SearchStrategySearchParams } from './types'; -import { isDefault } from '../../index_patterns'; -import { getSearchParams, getMSearchParams, getPreference, getTimeout } from './get_search_params'; +// @deprecated export const defaultSearchStrategy: SearchStrategyProvider = { id: 'default', search: params => { - return params.config.get('courier:batchSearches') ? msearch(params) : search(params); - }, - - isViable: indexPattern => { - return indexPattern && isDefault(indexPattern); + return msearch(params); }, }; -// @deprecated function msearch({ searchRequests, searchService, @@ -65,29 +61,3 @@ function msearch({ abort: searching.abort, }; } - -function search({ - searchRequests, - searchService, - config, - esShardTimeout, -}: SearchStrategySearchParams) { - const abortController = new AbortController(); - const searchParams = getSearchParams(config, esShardTimeout); - const promises = searchRequests.map(({ index, indexType, body }) => { - const params = { - index: index.title || index, - body, - ...searchParams, - }; - const { signal } = abortController; - return searchService - .search({ params, indexType }, { signal }) - .toPromise() - .then(({ rawResponse }) => rawResponse); - }); - return { - searching: Promise.all(promises), - abort: () => abortController.abort(), - }; -} diff --git a/src/plugins/data/public/search/es_client/get_es_client.ts b/src/plugins/data/public/search/legacy/es_client/get_es_client.ts similarity index 100% rename from src/plugins/data/public/search/es_client/get_es_client.ts rename to src/plugins/data/public/search/legacy/es_client/get_es_client.ts diff --git a/src/plugins/data/public/search/es_client/index.ts b/src/plugins/data/public/search/legacy/es_client/index.ts similarity index 91% rename from src/plugins/data/public/search/es_client/index.ts rename to src/plugins/data/public/search/legacy/es_client/index.ts index b1e0ce31168242..78ac83af642d83 100644 --- a/src/plugins/data/public/search/es_client/index.ts +++ b/src/plugins/data/public/search/legacy/es_client/index.ts @@ -18,4 +18,4 @@ */ export { getEsClient } from './get_es_client'; -export { SearchRequest, SearchResponse, LegacyApiCaller } from './types'; +export { LegacyApiCaller } from './types'; diff --git a/src/plugins/data/public/search/es_client/types.ts b/src/plugins/data/public/search/legacy/es_client/types.ts similarity index 94% rename from src/plugins/data/public/search/es_client/types.ts rename to src/plugins/data/public/search/legacy/es_client/types.ts index 3ca0513a14238d..7a56b9b0cb00a8 100644 --- a/src/plugins/data/public/search/es_client/types.ts +++ b/src/plugins/data/public/search/legacy/es_client/types.ts @@ -17,8 +17,7 @@ * under the License. */ -export type SearchRequest = any; -export type SearchResponse = any; +import { SearchRequest, SearchResponse } from '../../fetch'; export interface LegacyApiCaller { search: (searchRequest: SearchRequest) => LegacyApiCallerResponse; diff --git a/src/plugins/data/public/search/fetch/fetch_soon.test.ts b/src/plugins/data/public/search/legacy/fetch_soon.test.ts similarity index 96% rename from src/plugins/data/public/search/fetch/fetch_soon.test.ts rename to src/plugins/data/public/search/legacy/fetch_soon.test.ts index a8d593c8501f68..b2e17798ccc9fa 100644 --- a/src/plugins/data/public/search/fetch/fetch_soon.test.ts +++ b/src/plugins/data/public/search/legacy/fetch_soon.test.ts @@ -19,9 +19,9 @@ import { fetchSoon } from './fetch_soon'; import { callClient } from './call_client'; -import { IUiSettingsClient } from '../../../../../core/public'; -import { FetchHandlers, FetchOptions } from './types'; -import { SearchRequest, SearchResponse } from '..'; +import { IUiSettingsClient } from 'kibana/public'; +import { FetchHandlers, FetchOptions } from '../fetch/types'; +import { SearchRequest, SearchResponse } from '../index'; function getConfigStub(config: any = {}) { return { diff --git a/src/plugins/data/public/search/fetch/fetch_soon.ts b/src/plugins/data/public/search/legacy/fetch_soon.ts similarity index 95% rename from src/plugins/data/public/search/fetch/fetch_soon.ts rename to src/plugins/data/public/search/legacy/fetch_soon.ts index b1405747426ee9..18fa410a5bef03 100644 --- a/src/plugins/data/public/search/fetch/fetch_soon.ts +++ b/src/plugins/data/public/search/legacy/fetch_soon.ts @@ -18,8 +18,8 @@ */ import { callClient } from './call_client'; -import { FetchHandlers, FetchOptions } from './types'; -import { SearchRequest, SearchResponse } from '..'; +import { FetchHandlers, FetchOptions } from '../fetch/types'; +import { SearchRequest, SearchResponse } from '../index'; /** * This function introduces a slight delay in the request process to allow multiple requests to queue diff --git a/src/plugins/data/public/search/search_strategy/get_search_params.test.ts b/src/plugins/data/public/search/legacy/get_msearch_params.test.ts similarity index 60% rename from src/plugins/data/public/search/search_strategy/get_search_params.test.ts rename to src/plugins/data/public/search/legacy/get_msearch_params.test.ts index 76f3105d7f942e..9f16d5b408178d 100644 --- a/src/plugins/data/public/search/search_strategy/get_search_params.test.ts +++ b/src/plugins/data/public/search/legacy/get_msearch_params.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { getMSearchParams, getSearchParams } from './get_search_params'; +import { getMSearchParams } from './get_msearch_params'; import { IUiSettingsClient } from '../../../../../core/public'; function getConfigStub(config: any = {}) { @@ -64,46 +64,3 @@ describe('getMSearchParams', () => { expect(msearchParams.hasOwnProperty('timeout')).toBe(false); }); }); - -describe('getSearchParams', () => { - test('includes rest_total_hits_as_int', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.rest_total_hits_as_int).toBe(true); - }); - - test('includes ignore_unavailable', () => { - const config = getConfigStub(); - const searchParams = getSearchParams(config); - expect(searchParams.ignore_unavailable).toBe(true); - }); - - test('includes ignore_throttled according to search:includeFrozen', () => { - let config = getConfigStub({ 'search:includeFrozen': true }); - let searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(false); - - config = getConfigStub({ 'search:includeFrozen': false }); - searchParams = getSearchParams(config); - expect(searchParams.ignore_throttled).toBe(true); - }); - - test('includes max_concurrent_shard_requests according to courier:maxConcurrentShardRequests', () => { - let config = getConfigStub({ 'courier:maxConcurrentShardRequests': 0 }); - let searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(undefined); - - config = getConfigStub({ 'courier:maxConcurrentShardRequests': 5 }); - searchParams = getSearchParams(config); - expect(searchParams.max_concurrent_shard_requests).toBe(5); - }); - - test('includes timeout according to esShardTimeout if greater than 0', () => { - const config = getConfigStub(); - let searchParams = getSearchParams(config, 0); - expect(searchParams.timeout).toBe(undefined); - - searchParams = getSearchParams(config, 100); - expect(searchParams.timeout).toBe('100ms'); - }); -}); diff --git a/src/plugins/data/public/search/legacy/get_msearch_params.ts b/src/plugins/data/public/search/legacy/get_msearch_params.ts new file mode 100644 index 00000000000000..48d13903c972fe --- /dev/null +++ b/src/plugins/data/public/search/legacy/get_msearch_params.ts @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { IUiSettingsClient } from 'kibana/public'; +import { getIgnoreThrottled, getMaxConcurrentShardRequests } from '../fetch'; + +export function getMSearchParams(config: IUiSettingsClient) { + return { + rest_total_hits_as_int: true, + ignore_throttled: getIgnoreThrottled(config), + max_concurrent_shard_requests: getMaxConcurrentShardRequests(config), + }; +} diff --git a/src/plugins/data/public/search/search_strategy/index.ts b/src/plugins/data/public/search/legacy/index.ts similarity index 78% rename from src/plugins/data/public/search/search_strategy/index.ts rename to src/plugins/data/public/search/legacy/index.ts index e3de2ea46e3eca..e2ae72824f3f49 100644 --- a/src/plugins/data/public/search/search_strategy/index.ts +++ b/src/plugins/data/public/search/legacy/index.ts @@ -17,8 +17,5 @@ * under the License. */ -export { SearchError, getSearchErrorType } from './search_error'; - -export { SearchStrategyProvider, SearchStrategySearchParams } from './types'; - -export { defaultSearchStrategy } from './default_search_strategy'; +export { fetchSoon } from './fetch_soon'; +export { getEsClient, LegacyApiCaller } from './es_client'; diff --git a/src/plugins/data/public/search/search_strategy/types.ts b/src/plugins/data/public/search/legacy/types.ts similarity index 89% rename from src/plugins/data/public/search/search_strategy/types.ts rename to src/plugins/data/public/search/legacy/types.ts index 764370d8ff6497..3812cec7a2aa20 100644 --- a/src/plugins/data/public/search/search_strategy/types.ts +++ b/src/plugins/data/public/search/legacy/types.ts @@ -17,21 +17,20 @@ * under the License. */ -import { IndexPattern } from '../..'; -import { FetchHandlers } from '../fetch/types'; +import { FetchHandlers } from '../fetch'; import { SearchRequest, SearchResponse } from '..'; +export interface SearchStrategySearchParams extends FetchHandlers { + searchRequests: SearchRequest[]; +} + +// @deprecated export interface SearchStrategyProvider { id: string; search: (params: SearchStrategySearchParams) => SearchStrategyResponse; - isViable: (indexPattern: IndexPattern) => boolean; } export interface SearchStrategyResponse { searching: Promise; abort: () => void; } - -export interface SearchStrategySearchParams extends FetchHandlers { - searchRequests: SearchRequest[]; -} diff --git a/src/plugins/data/public/search/search_service.ts b/src/plugins/data/public/search/search_service.ts index a539736991adb4..916278a96659b4 100644 --- a/src/plugins/data/public/search/search_service.ts +++ b/src/plugins/data/public/search/search_service.ts @@ -22,12 +22,12 @@ import { Plugin, CoreSetup, CoreStart, PackageInfo } from '../../../../core/publ import { SYNC_SEARCH_STRATEGY, syncSearchStrategyProvider } from './sync_search_strategy'; import { ISearchSetup, ISearchStart, TSearchStrategyProvider, TSearchStrategiesMap } from './types'; import { TStrategyTypes } from './strategy_types'; -import { getEsClient, LegacyApiCaller } from './es_client'; +import { getEsClient, LegacyApiCaller } from './legacy'; import { ES_SEARCH_STRATEGY, DEFAULT_SEARCH_STRATEGY } from '../../common/search'; -import { esSearchStrategyProvider } from './es_search/es_search_strategy'; +import { esSearchStrategyProvider } from './es_search'; import { IndexPatternsContract } from '../index_patterns/index_patterns'; import { createSearchSource } from './search_source'; -import { QuerySetup } from '../query/query_service'; +import { QuerySetup } from '../query'; import { GetInternalStartServicesFn } from '../types'; import { SearchInterceptor } from './search_interceptor'; import { diff --git a/src/plugins/data/public/search/search_source/search_source.test.ts b/src/plugins/data/public/search/search_source/search_source.test.ts index 6bad093d31402b..6e878844664ad2 100644 --- a/src/plugins/data/public/search/search_source/search_source.test.ts +++ b/src/plugins/data/public/search/search_source/search_source.test.ts @@ -20,8 +20,26 @@ import { SearchSource } from './search_source'; import { IndexPattern, SortDirection } from '../..'; import { mockDataServices } from '../aggs/test_helpers'; +import { setSearchService } from '../../services'; +import { searchStartMock } from '../mocks'; +import { fetchSoon } from '../legacy'; +import { CoreStart } from 'kibana/public'; +import { Observable } from 'rxjs'; -jest.mock('../fetch', () => ({ +// Setup search service mock +searchStartMock.search = jest.fn(() => { + return new Observable(subscriber => { + setTimeout(() => { + subscriber.next({ + rawResponse: '', + }); + subscriber.complete(); + }, 100); + }); +}) as any; +setSearchService(searchStartMock); + +jest.mock('../legacy', () => ({ fetchSoon: jest.fn().mockResolvedValue({}), })); @@ -44,8 +62,11 @@ const indexPattern2 = ({ } as unknown) as IndexPattern; describe('SearchSource', function() { + let uiSettingsMock: jest.Mocked; beforeEach(() => { - mockDataServices(); + const { core } = mockDataServices(); + uiSettingsMock = core.uiSettings; + jest.clearAllMocks(); }); describe('#setField()', function() { @@ -151,6 +172,36 @@ describe('SearchSource', function() { }); }); + describe('#legacy fetch()', () => { + beforeEach(() => { + uiSettingsMock.get.mockImplementation(() => { + return true; // batchSearches = true + }); + }); + + afterEach(() => { + uiSettingsMock.get.mockImplementation(() => { + return false; // batchSearches = false + }); + }); + + it('should call msearch', async () => { + const searchSource = new SearchSource({ index: indexPattern }); + const options = {}; + await searchSource.fetch(options); + expect(fetchSoon).toBeCalledTimes(1); + }); + }); + + describe('#search service fetch()', () => { + it('should call msearch', async () => { + const searchSource = new SearchSource({ index: indexPattern }); + const options = {}; + await searchSource.fetch(options); + expect(searchStartMock.search).toBeCalledTimes(1); + }); + }); + describe('#serialize', function() { it('should reference index patterns', () => { const indexPattern123 = { id: '123' } as IndexPattern; diff --git a/src/plugins/data/public/search/search_source/search_source.ts b/src/plugins/data/public/search/search_source/search_source.ts index c70db7bb82ef7f..9d2bb889953cf2 100644 --- a/src/plugins/data/public/search/search_source/search_source.ts +++ b/src/plugins/data/public/search/search_source/search_source.ts @@ -70,17 +70,19 @@ */ import _ from 'lodash'; +import { map } from 'rxjs/operators'; import { SavedObjectReference } from 'kibana/public'; import { normalizeSortRequest } from './normalize_sort_request'; import { filterDocvalueFields } from './filter_docvalue_fields'; import { fieldWildcardFilter } from '../../../../kibana_utils/public'; import { IIndexPattern, SearchRequest } from '../..'; import { SearchSourceOptions, SearchSourceFields } from './types'; -import { fetchSoon, FetchOptions, RequestFailure } from '../fetch'; +import { FetchOptions, RequestFailure, getSearchParams, handleResponse } from '../fetch'; import { getSearchService, getUiSettings, getInjectedMetadata } from '../../services'; import { getEsQueryConfig, buildEsQuery, Filter } from '../../../common'; import { getHighlightRequest } from '../../../common/field_formats'; +import { fetchSoon } from '../legacy'; export type ISearchSource = Pick; @@ -185,18 +187,29 @@ export class SearchSource { } /** - * Fetch this source and reject the returned Promise on error - * - * @async + * Run a search using the search service + * @return {Observable>} */ - async fetch(options: FetchOptions = {}) { - await this.requestIsStarting(options); - - const searchRequest = await this.flatten(); - this.history = [searchRequest]; + private fetch$(searchRequest: SearchRequest, signal?: AbortSignal) { + const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; + const searchParams = getSearchParams(getUiSettings(), esShardTimeout); + const params = { + index: searchRequest.index.title || searchRequest.index, + body: searchRequest.body, + ...searchParams, + }; + return getSearchService() + .search({ params, indexType: searchRequest.indexType }, { signal }) + .pipe(map(({ rawResponse }) => handleResponse(searchRequest, rawResponse))); + } + /** + * Run a search using the search service + * @return {Promise>} + */ + private async legacyFetch(searchRequest: SearchRequest, options: FetchOptions) { const esShardTimeout = getInjectedMetadata().getInjectedVar('esShardTimeout') as number; - const response = await fetchSoon( + return await fetchSoon( searchRequest, { ...(this.searchStrategyId && { searchStrategyId: this.searchStrategyId }), @@ -208,6 +221,24 @@ export class SearchSource { esShardTimeout, } ); + } + /** + * Fetch this source and reject the returned Promise on error + * + * @async + */ + async fetch(options: FetchOptions = {}) { + await this.requestIsStarting(options); + + const searchRequest = await this.flatten(); + this.history = [searchRequest]; + + let response; + if (getUiSettings().get('courier:batchSearches')) { + response = await this.legacyFetch(searchRequest, options); + } else { + response = this.fetch$(searchRequest, options.abortSignal).toPromise(); + } if (response.error) { throw new RequestFailure(null, response); @@ -246,7 +277,6 @@ export class SearchSource { /** * Called by requests of this search source when they are started - * @param {Courier.Request} request * @param options * @return {Promise} */ @@ -430,7 +460,6 @@ export class SearchSource { * and `kibanaSavedObjectMeta.searchSourceJSON.filter[].meta.index`. * * Using `createSearchSource`, the instance can be re-created. - * @param searchSource The search source to serialize * @public */ public serialize() { const references: SavedObjectReference[] = []; diff --git a/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts b/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts deleted file mode 100644 index dc7331e614a0e4..00000000000000 --- a/src/plugins/data/public/search/search_strategy/no_op_search_strategy.ts +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { i18n } from '@kbn/i18n'; -import { SearchError } from './search_error'; -import { SearchStrategyProvider } from './types'; - -export const noOpSearchStrategy: SearchStrategyProvider = { - id: 'noOp', - - search: () => { - const searchError = new SearchError({ - status: '418', // "I'm a teapot" error - title: i18n.translate( - 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle', - { - defaultMessage: 'No search strategy registered', - } - ), - message: i18n.translate( - 'data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription', - { - defaultMessage: `Couldn't find a search strategy for the search request`, - } - ), - type: 'NO_OP_SEARCH_STRATEGY', - path: '', - }); - - return { - searching: Promise.reject(searchError), - abort: () => {}, - }; - }, - - isViable: () => { - return true; - }, -}; diff --git a/src/plugins/data/public/search/types.ts b/src/plugins/data/public/search/types.ts index ba6e44f47b75eb..2122e4e82ec1d7 100644 --- a/src/plugins/data/public/search/types.ts +++ b/src/plugins/data/public/search/types.ts @@ -22,7 +22,7 @@ import { createSearchSource } from './search_source'; import { SearchAggsSetup, SearchAggsStart, SearchAggsStartLegacy } from './aggs'; import { ISearch, ISearchGeneric } from './i_search'; import { TStrategyTypes } from './strategy_types'; -import { LegacyApiCaller } from './es_client'; +import { LegacyApiCaller } from './legacy/es_client'; import { SearchInterceptor } from './search_interceptor'; export interface ISearchContext { @@ -38,15 +38,6 @@ export interface ISearchStrategy { search: ISearch; } -/** - * Search strategy provider creates an instance of a search strategy with the request - * handler context bound to it. This way every search strategy can use - * whatever information they require from the request context. - */ -export type TSearchStrategyProviderEnhanced = ( - search: ISearchGeneric -) => Promise>; - export type TSearchStrategiesMap = { [K in TStrategyTypes]?: TSearchStrategyProvider; }; diff --git a/x-pack/plugins/rollup/public/search/rollup_search_strategy.ts b/x-pack/plugins/rollup/public/search/rollup_search_strategy.ts deleted file mode 100644 index d1c3b9cba5f9de..00000000000000 --- a/x-pack/plugins/rollup/public/search/rollup_search_strategy.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { HttpSetup } from 'kibana/public'; -import { - SearchError, - getSearchErrorType, - IIndexPattern, - SearchStrategyProvider, - SearchResponse, - SearchRequest, -} from '../../../../../src/plugins/data/public'; - -function serializeFetchParams(searchRequests: SearchRequest[]) { - return JSON.stringify( - searchRequests.map(searchRequestWithFetchParams => { - const indexPattern = - searchRequestWithFetchParams.index.title || searchRequestWithFetchParams.index; - const { - body: { size, aggs, query: _query }, - } = searchRequestWithFetchParams; - - const query = { - size, - aggregations: aggs, - query: _query, - }; - - return { index: indexPattern, query }; - }) - ); -} - -// Rollup search always returns 0 hits, but visualizations expect search responses -// to return hits > 0, otherwise they do not render. We fake the number of hits here -// by counting the number of aggregation buckets/values returned by rollup search. -function shimHitsInFetchResponse(response: SearchResponse[]) { - return response.map(result => { - const buckets = result.aggregations - ? Object.keys(result.aggregations).reduce((allBuckets, agg) => { - return allBuckets.concat( - result.aggregations[agg].buckets || [result.aggregations[agg].value] || [] - ); - }, []) - : []; - return buckets && buckets.length - ? { - ...result, - hits: { - ...result.hits, - total: buckets.length, - }, - } - : result; - }); -} - -export const getRollupSearchStrategy = (fetch: HttpSetup['fetch']): SearchStrategyProvider => ({ - id: 'rollup', - - search: ({ searchRequests }) => { - // Serialize the fetch params into a format suitable for the body of an ES query. - const serializedFetchParams = serializeFetchParams(searchRequests); - - const controller = new AbortController(); - const promise = fetch('../api/rollup/search', { - signal: controller.signal, - method: 'POST', - body: serializedFetchParams, - }); - - return { - searching: promise.then(shimHitsInFetchResponse).catch(error => { - const { - body: { statusCode, error: title, message }, - res: { url }, - } = error; - - // Format fetch error as a SearchError. - const searchError = new SearchError({ - status: statusCode, - title, - message: `Rollup search error: ${message}`, - path: url, - type: getSearchErrorType({ message }) || '', - }); - - return Promise.reject(searchError); - }), - abort: () => controller.abort(), - }; - }, - - isViable: (indexPattern: IIndexPattern) => { - if (!indexPattern) { - return false; - } - - return indexPattern.type === 'rollup'; - }, -}); diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index c00c576f31a369..92251c0c25f9ca 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -850,8 +850,6 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", "data.search.searchSource.indexPatternIdLabel": "インデックスパターン ID", "data.search.searchSource.indexPatternLabel": "インデックスパターン", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "検索リクエストの検索方法が見つかりませんでした", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "検索方法が登録されていません", "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザでのパースの時間は含まれません。", "data.search.searchSource.queryTimeLabel": "クエリ時間", "data.search.searchSource.queryTimeValue": "{queryTime}ms", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index b4b61b29151d70..3533cea4fce60b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -851,8 +851,6 @@ "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} 索引中的 ID。", "data.search.searchSource.indexPatternIdLabel": "索引模式 ID", "data.search.searchSource.indexPatternLabel": "索引模式", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageDescription": "无法为该搜索请求找到搜索策略", - "data.search.searchSource.noSearchStrategyRegisteredErrorMessageTitle": "未注册任何搜索策略", "data.search.searchSource.queryTimeDescription": "处理查询所花费的时间。不包括发送请求或在浏览器中解析它的时间。", "data.search.searchSource.queryTimeLabel": "查询时间", "data.search.searchSource.queryTimeValue": "{queryTime}ms", From 197b7a5ddb9c9dda38febd9123fc29f771c70242 Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Mon, 20 Apr 2020 18:50:26 -0400 Subject: [PATCH 21/54] Duplicate panel feature (#61367) (#63969) Added a new cloning feature for panels on a dashboard. --- .../actions/clone_panel_action.test.tsx | 155 ++++++++++++++++ .../actions/clone_panel_action.tsx | 158 +++++++++++++++++ .../public/application/actions/index.ts | 5 + .../embeddable/dashboard_container.tsx | 60 ++++++- .../panel/create_panel_state.test.ts | 14 +- .../embeddable/panel/create_panel_state.ts | 113 ++++-------- .../panel/dashboard_panel_placement.ts | 167 ++++++++++++++++++ .../embeddable/placeholder/index.ts | 21 +++ .../placeholder/placeholder_embeddable.tsx | 52 ++++++ .../placeholder_embeddable_factory.ts | 45 +++++ src/plugins/dashboard/public/plugin.tsx | 13 ++ .../apps/dashboard/panel_controls.js | 48 +++++ .../services/dashboard/panel_actions.js | 25 ++- 13 files changed, 783 insertions(+), 93 deletions(-) create mode 100644 src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx create mode 100644 src/plugins/dashboard/public/application/actions/clone_panel_action.tsx create mode 100644 src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts create mode 100644 src/plugins/dashboard/public/application/embeddable/placeholder/index.ts create mode 100644 src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx create mode 100644 src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx new file mode 100644 index 00000000000000..17943333d25b04 --- /dev/null +++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.test.tsx @@ -0,0 +1,155 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { isErrorEmbeddable, IContainer } from '../../embeddable_plugin'; +import { DashboardContainer, DashboardPanelState } from '../embeddable'; +import { getSampleDashboardInput, getSampleDashboardPanel } from '../test_helpers'; +import { + CONTACT_CARD_EMBEDDABLE, + ContactCardEmbeddableFactory, + ContactCardEmbeddable, + ContactCardEmbeddableInput, + ContactCardEmbeddableOutput, +} from '../../embeddable_plugin_test_samples'; +import { coreMock } from '../../../../../core/public/mocks'; +import { CoreStart } from 'kibana/public'; +import { ClonePanelAction } from '.'; + +// eslint-disable-next-line +import { embeddablePluginMock } from 'src/plugins/embeddable/public/mocks'; + +const { setup, doStart } = embeddablePluginMock.createInstance(); +setup.registerEmbeddableFactory( + CONTACT_CARD_EMBEDDABLE, + new ContactCardEmbeddableFactory((() => null) as any, {} as any) +); +const start = doStart(); + +let container: DashboardContainer; +let embeddable: ContactCardEmbeddable; +let coreStart: CoreStart; +beforeEach(async () => { + coreStart = coreMock.createStart(); + coreStart.savedObjects.client = { + ...coreStart.savedObjects.client, + get: jest.fn().mockImplementation(() => ({ attributes: { title: 'Holy moly' } })), + find: jest.fn().mockImplementation(() => ({ total: 15 })), + create: jest.fn().mockImplementation(() => ({ id: 'brandNewSavedObject' })), + }; + + const options = { + ExitFullScreenButton: () => null, + SavedObjectFinder: () => null, + application: {} as any, + embeddable: start, + inspector: {} as any, + notifications: {} as any, + overlays: coreStart.overlays, + savedObjectMetaData: {} as any, + uiActions: {} as any, + }; + const input = getSampleDashboardInput({ + panels: { + '123': getSampleDashboardPanel({ + explicitInput: { firstName: 'Kibanana', id: '123' }, + type: CONTACT_CARD_EMBEDDABLE, + }), + }, + }); + container = new DashboardContainer(input, options); + + const contactCardEmbeddable = await container.addNewEmbeddable< + ContactCardEmbeddableInput, + ContactCardEmbeddableOutput, + ContactCardEmbeddable + >(CONTACT_CARD_EMBEDDABLE, { + firstName: 'Kibana', + }); + + if (isErrorEmbeddable(contactCardEmbeddable)) { + throw new Error('Failed to create embeddable'); + } else { + embeddable = contactCardEmbeddable; + } +}); + +test('Clone adds a new embeddable', async () => { + const dashboard = embeddable.getRoot() as IContainer; + const originalPanelCount = Object.keys(dashboard.getInput().panels).length; + const originalPanelKeySet = new Set(Object.keys(dashboard.getInput().panels)); + const action = new ClonePanelAction(coreStart); + await action.execute({ embeddable }); + expect(Object.keys(container.getInput().panels).length).toEqual(originalPanelCount + 1); + const newPanelId = Object.keys(container.getInput().panels).find( + key => !originalPanelKeySet.has(key) + ); + expect(newPanelId).toBeDefined(); + const newPanel = container.getInput().panels[newPanelId!]; + expect(newPanel.type).toEqual(embeddable.type); +}); + +test('Clones an embeddable without a saved object ID', async () => { + const dashboard = embeddable.getRoot() as IContainer; + const panel = dashboard.getInput().panels[embeddable.id] as DashboardPanelState; + const action = new ClonePanelAction(coreStart); + // @ts-ignore + const newPanel = await action.cloneEmbeddable(panel, embeddable.type); + expect(newPanel.type).toEqual(embeddable.type); +}); + +test('Clones an embeddable with a saved object ID', async () => { + const dashboard = embeddable.getRoot() as IContainer; + const panel = dashboard.getInput().panels[embeddable.id] as DashboardPanelState; + panel.explicitInput.savedObjectId = 'holySavedObjectBatman'; + const action = new ClonePanelAction(coreStart); + // @ts-ignore + const newPanel = await action.cloneEmbeddable(panel, embeddable.type); + expect(coreStart.savedObjects.client.get).toHaveBeenCalledTimes(1); + expect(coreStart.savedObjects.client.find).toHaveBeenCalledTimes(1); + expect(coreStart.savedObjects.client.create).toHaveBeenCalledTimes(1); + expect(newPanel.type).toEqual(embeddable.type); +}); + +test('Gets a unique title ', async () => { + coreStart.savedObjects.client.find = jest.fn().mockImplementation(({ search }) => { + if (search === '"testFirstTitle"') return { total: 1 }; + else if (search === '"testSecondTitle"') return { total: 41 }; + else if (search === '"testThirdTitle"') return { total: 90 }; + }); + const action = new ClonePanelAction(coreStart); + // @ts-ignore + expect(await action.getUniqueTitle('testFirstTitle', embeddable.type)).toEqual( + 'testFirstTitle (copy)' + ); + // @ts-ignore + expect(await action.getUniqueTitle('testSecondTitle (copy 39)', embeddable.type)).toEqual( + 'testSecondTitle (copy 40)' + ); + // @ts-ignore + expect(await action.getUniqueTitle('testSecondTitle (copy 20)', embeddable.type)).toEqual( + 'testSecondTitle (copy 40)' + ); + // @ts-ignore + expect(await action.getUniqueTitle('testThirdTitle', embeddable.type)).toEqual( + 'testThirdTitle (copy 89)' + ); + // @ts-ignore + expect(await action.getUniqueTitle('testThirdTitle (copy 10000)', embeddable.type)).toEqual( + 'testThirdTitle (copy 89)' + ); +}); diff --git a/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx new file mode 100644 index 00000000000000..4d15e7e899fa89 --- /dev/null +++ b/src/plugins/dashboard/public/application/actions/clone_panel_action.tsx @@ -0,0 +1,158 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { i18n } from '@kbn/i18n'; +import { CoreStart } from 'src/core/public'; +import uuid from 'uuid'; +import { ActionByType, IncompatibleActionError } from '../../ui_actions_plugin'; +import { ViewMode, PanelState, IEmbeddable } from '../../embeddable_plugin'; +import { SavedObject } from '../../../../saved_objects/public'; +import { PanelNotFoundError, EmbeddableInput } from '../../../../embeddable/public'; +import { + placePanelBeside, + IPanelPlacementBesideArgs, +} from '../embeddable/panel/dashboard_panel_placement'; +import { DashboardPanelState, DASHBOARD_CONTAINER_TYPE, DashboardContainer } from '..'; + +export const ACTION_CLONE_PANEL = 'clonePanel'; + +export interface ClonePanelActionContext { + embeddable: IEmbeddable; +} + +export class ClonePanelAction implements ActionByType { + public readonly type = ACTION_CLONE_PANEL; + public readonly id = ACTION_CLONE_PANEL; + public order = 11; + + constructor(private core: CoreStart) {} + + public getDisplayName({ embeddable }: ClonePanelActionContext) { + if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { + throw new IncompatibleActionError(); + } + return i18n.translate('dashboard.panel.clonePanel', { + defaultMessage: 'Clone panel', + }); + } + + public getIconType({ embeddable }: ClonePanelActionContext) { + if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { + throw new IncompatibleActionError(); + } + return 'copy'; + } + + public async isCompatible({ embeddable }: ClonePanelActionContext) { + return Boolean( + embeddable.getInput()?.viewMode !== ViewMode.VIEW && + embeddable.getRoot() && + embeddable.getRoot().isContainer && + embeddable.getRoot().type === DASHBOARD_CONTAINER_TYPE + ); + } + + public async execute({ embeddable }: ClonePanelActionContext) { + if (!embeddable.getRoot() || !embeddable.getRoot().isContainer) { + throw new IncompatibleActionError(); + } + + const dashboard = embeddable.getRoot() as DashboardContainer; + const panelToClone = dashboard.getInput().panels[embeddable.id] as DashboardPanelState; + if (!panelToClone) { + throw new PanelNotFoundError(); + } + + dashboard.showPlaceholderUntil( + this.cloneEmbeddable(panelToClone, embeddable.type), + placePanelBeside, + { + width: panelToClone.gridData.w, + height: panelToClone.gridData.h, + currentPanels: dashboard.getInput().panels, + placeBesideId: panelToClone.explicitInput.id, + } as IPanelPlacementBesideArgs + ); + } + + private async getUniqueTitle(rawTitle: string, embeddableType: string): Promise { + const clonedTag = i18n.translate('dashboard.panel.title.clonedTag', { + defaultMessage: 'copy', + }); + const cloneRegex = new RegExp(`\\(${clonedTag}\\)`, 'g'); + const cloneNumberRegex = new RegExp(`\\(${clonedTag} [0-9]+\\)`, 'g'); + const baseTitle = rawTitle + .replace(cloneNumberRegex, '') + .replace(cloneRegex, '') + .trim(); + + const similarSavedObjects = await this.core.savedObjects.client.find({ + type: embeddableType, + perPage: 0, + fields: ['title'], + searchFields: ['title'], + search: `"${baseTitle}"`, + }); + const similarBaseTitlesCount: number = similarSavedObjects.total - 1; + + return similarBaseTitlesCount <= 0 + ? baseTitle + ` (${clonedTag})` + : baseTitle + ` (${clonedTag} ${similarBaseTitlesCount})`; + } + + private async cloneEmbeddable( + panelToClone: DashboardPanelState, + embeddableType: string + ): Promise> { + const panelState: PanelState = { + type: embeddableType, + explicitInput: { + ...panelToClone.explicitInput, + id: uuid.v4(), + }, + }; + let newTitle: string = ''; + if (panelToClone.explicitInput.savedObjectId) { + // Fetch existing saved object + const savedObjectToClone = await this.core.savedObjects.client.get( + embeddableType, + panelToClone.explicitInput.savedObjectId + ); + + // Clone the saved object + newTitle = await this.getUniqueTitle(savedObjectToClone.attributes.title, embeddableType); + const clonedSavedObject = await this.core.savedObjects.client.create( + embeddableType, + { + ..._.cloneDeep(savedObjectToClone.attributes), + title: newTitle, + }, + { references: _.cloneDeep(savedObjectToClone.references) } + ); + panelState.explicitInput.savedObjectId = clonedSavedObject.id; + } + this.core.notifications.toasts.addSuccess({ + title: i18n.translate('dashboard.panel.clonedToast', { + defaultMessage: 'Cloned panel', + }), + 'data-test-subj': 'addObjectToContainerSuccess', + }); + return panelState; + } +} diff --git a/src/plugins/dashboard/public/application/actions/index.ts b/src/plugins/dashboard/public/application/actions/index.ts index 23c26dbd280f8e..d7a84fb79f6af3 100644 --- a/src/plugins/dashboard/public/application/actions/index.ts +++ b/src/plugins/dashboard/public/application/actions/index.ts @@ -27,3 +27,8 @@ export { ReplacePanelActionContext, ACTION_REPLACE_PANEL, } from './replace_panel_action'; +export { + ClonePanelAction, + ClonePanelActionContext, + ACTION_CLONE_PANEL, +} from './clone_panel_action'; diff --git a/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx b/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx index 50089f1f061f4e..8346fd900caef8 100644 --- a/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx +++ b/src/plugins/dashboard/public/application/embeddable/dashboard_container.tsx @@ -23,6 +23,7 @@ import { I18nProvider } from '@kbn/i18n/react'; import { RefreshInterval, TimeRange, Query, Filter } from 'src/plugins/data/public'; import { CoreStart } from 'src/core/public'; import { Start as InspectorStartContract } from 'src/plugins/inspector/public'; +import uuid from 'uuid'; import { UiActionsStart } from '../../ui_actions_plugin'; import { Container, @@ -32,6 +33,7 @@ import { EmbeddableFactory, IEmbeddable, EmbeddableStart, + PanelState, } from '../../embeddable_plugin'; import { DASHBOARD_CONTAINER_TYPE } from './dashboard_constants'; import { createPanelState } from './panel'; @@ -42,6 +44,8 @@ import { KibanaReactContext, KibanaReactContextValue, } from '../../../../kibana_react/public'; +import { PLACEHOLDER_EMBEDDABLE } from './placeholder'; +import { PanelPlacementMethod, IPanelPlacementArgs } from './panel/dashboard_panel_placement'; export interface DashboardContainerInput extends ContainerInput { viewMode: ViewMode; @@ -120,7 +124,61 @@ export class DashboardContainer extends Container = {} ): DashboardPanelState { const panelState = super.createNewPanelState(factory, partial); - return createPanelState(panelState, Object.values(this.input.panels)); + return createPanelState(panelState, this.input.panels); + } + + public showPlaceholderUntil( + newStateComplete: Promise>, + placementMethod?: PanelPlacementMethod, + placementArgs?: TPlacementMethodArgs + ): void { + const originalPanelState = { + type: PLACEHOLDER_EMBEDDABLE, + explicitInput: { + id: uuid.v4(), + disabledActions: [ + 'ACTION_CUSTOMIZE_PANEL', + 'CUSTOM_TIME_RANGE', + 'clonePanel', + 'replacePanel', + 'togglePanel', + ], + }, + } as PanelState; + const placeholderPanelState = createPanelState( + originalPanelState, + this.input.panels, + placementMethod, + placementArgs + ); + this.updateInput({ + panels: { + ...this.input.panels, + [placeholderPanelState.explicitInput.id]: placeholderPanelState, + }, + }); + newStateComplete.then((newPanelState: Partial) => { + const finalPanels = { ...this.input.panels }; + delete finalPanels[placeholderPanelState.explicitInput.id]; + const newPanelId = newPanelState.explicitInput?.id + ? newPanelState.explicitInput.id + : uuid.v4(); + finalPanels[newPanelId] = { + ...placeholderPanelState, + ...newPanelState, + gridData: { + ...placeholderPanelState.gridData, + i: newPanelId, + }, + explicitInput: { + ...newPanelState.explicitInput, + id: newPanelId, + }, + }; + this.updateInput({ + panels: finalPanels, + }); + }); } public render(dom: HTMLElement) { diff --git a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts index 409cae8b49a531..7c11ac8a5031bf 100644 --- a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts +++ b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.test.ts @@ -26,7 +26,7 @@ import { CONTACT_CARD_EMBEDDABLE } from '../../../embeddable_plugin_test_samples interface TestInput extends EmbeddableInput { test: string; } -const panels: DashboardPanelState[] = []; +const panels: { [key: string]: DashboardPanelState } = {}; test('createPanelState adds a new panel state in 0,0 position', () => { const panelState = createPanelState( @@ -34,7 +34,7 @@ test('createPanelState adds a new panel state in 0,0 position', () => { type: CONTACT_CARD_EMBEDDABLE, explicitInput: { test: 'hi', id: '123' }, }, - [] + panels ); expect(panelState.explicitInput.test).toBe('hi'); expect(panelState.type).toBe(CONTACT_CARD_EMBEDDABLE); @@ -44,7 +44,7 @@ test('createPanelState adds a new panel state in 0,0 position', () => { expect(panelState.gridData.h).toBe(DEFAULT_PANEL_HEIGHT); expect(panelState.gridData.w).toBe(DEFAULT_PANEL_WIDTH); - panels.push(panelState); + panels[panelState.explicitInput.id] = panelState; }); test('createPanelState adds a second new panel state', () => { @@ -58,7 +58,7 @@ test('createPanelState adds a second new panel state', () => { expect(panelState.gridData.h).toBe(DEFAULT_PANEL_HEIGHT); expect(panelState.gridData.w).toBe(DEFAULT_PANEL_WIDTH); - panels.push(panelState); + panels[panelState.explicitInput.id] = panelState; }); test('createPanelState adds a third new panel state', () => { @@ -74,17 +74,17 @@ test('createPanelState adds a third new panel state', () => { expect(panelState.gridData.h).toBe(DEFAULT_PANEL_HEIGHT); expect(panelState.gridData.w).toBe(DEFAULT_PANEL_WIDTH); - panels.push(panelState); + panels[panelState.explicitInput.id] = panelState; }); test('createPanelState adds a new panel state in the top most position', () => { - const panelsWithEmptySpace = panels.filter(panel => panel.gridData.x === 0); + delete panels['456']; const panelState = createPanelState( { type: CONTACT_CARD_EMBEDDABLE, explicitInput: { test: 'bye', id: '987' }, }, - panelsWithEmptySpace + panels ); expect(panelState.gridData.x).toBe(DEFAULT_PANEL_WIDTH); expect(panelState.gridData.y).toBe(0); diff --git a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts index f3a48368fe1b3d..79116a57869d35 100644 --- a/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts +++ b/src/plugins/dashboard/public/application/embeddable/panel/create_panel_state.ts @@ -19,98 +19,45 @@ import _ from 'lodash'; import { PanelState, EmbeddableInput } from '../../../embeddable_plugin'; -import { - DASHBOARD_GRID_COLUMN_COUNT, - DEFAULT_PANEL_HEIGHT, - DEFAULT_PANEL_WIDTH, -} from '../dashboard_constants'; +import { DEFAULT_PANEL_HEIGHT, DEFAULT_PANEL_WIDTH } from '../dashboard_constants'; import { DashboardPanelState } from '../types'; - -// Look for the smallest y and x value where the default panel will fit. -function findTopLeftMostOpenSpace( - width: number, - height: number, - currentPanels: DashboardPanelState[] -) { - let maxY = -1; - - currentPanels.forEach(panel => { - maxY = Math.max(panel.gridData.y + panel.gridData.h, maxY); - }); - - // Handle case of empty grid. - if (maxY < 0) { - return { x: 0, y: 0 }; - } - - const grid = new Array(maxY); - for (let y = 0; y < maxY; y++) { - grid[y] = new Array(DASHBOARD_GRID_COLUMN_COUNT).fill(0); - } - - currentPanels.forEach(panel => { - for (let x = panel.gridData.x; x < panel.gridData.x + panel.gridData.w; x++) { - for (let y = panel.gridData.y; y < panel.gridData.y + panel.gridData.h; y++) { - const row = grid[y]; - if (row === undefined) { - throw new Error( - `Attempted to access a row that doesn't exist at ${y} for panel ${JSON.stringify( - panel - )}` - ); - } - grid[y][x] = 1; - } - } - }); - - for (let y = 0; y < maxY; y++) { - for (let x = 0; x < DASHBOARD_GRID_COLUMN_COUNT; x++) { - if (grid[y][x] === 1) { - // Space is filled - continue; - } else { - for (let h = y; h < Math.min(y + height, maxY); h++) { - for (let w = x; w < Math.min(x + width, DASHBOARD_GRID_COLUMN_COUNT); w++) { - const spaceIsEmpty = grid[h][w] === 0; - const fitsPanelWidth = w === x + width - 1; - // If the panel is taller than any other panel in the current grid, it can still fit in the space, hence - // we check the minimum of maxY and the panel height. - const fitsPanelHeight = h === Math.min(y + height - 1, maxY - 1); - - if (spaceIsEmpty && fitsPanelWidth && fitsPanelHeight) { - // Found space - return { x, y }; - } else if (grid[h][w] === 1) { - // x, y spot doesn't work, break. - break; - } - } - } - } - } - } - return { x: 0, y: maxY }; -} +import { + IPanelPlacementArgs, + findTopLeftMostOpenSpace, + PanelPlacementMethod, +} from './dashboard_panel_placement'; /** * Creates and initializes a basic panel state. */ -export function createPanelState( +export function createPanelState< + TEmbeddableInput extends EmbeddableInput, + TPlacementMethodArgs extends IPanelPlacementArgs = IPanelPlacementArgs +>( panelState: PanelState, - currentPanels: DashboardPanelState[] + currentPanels: { [key: string]: DashboardPanelState }, + placementMethod?: PanelPlacementMethod, + placementArgs?: TPlacementMethodArgs ): DashboardPanelState { - const { x, y } = findTopLeftMostOpenSpace( - DEFAULT_PANEL_WIDTH, - DEFAULT_PANEL_HEIGHT, - currentPanels - ); + const defaultPlacementArgs = { + width: DEFAULT_PANEL_WIDTH, + height: DEFAULT_PANEL_HEIGHT, + currentPanels, + }; + const finalPlacementArgs = placementArgs + ? { + ...defaultPlacementArgs, + ...placementArgs, + } + : defaultPlacementArgs; + + const gridDataLocation = placementMethod + ? placementMethod(finalPlacementArgs as TPlacementMethodArgs) + : findTopLeftMostOpenSpace(defaultPlacementArgs); + return { gridData: { - w: DEFAULT_PANEL_WIDTH, - h: DEFAULT_PANEL_HEIGHT, - x, - y, + ...gridDataLocation, i: panelState.explicitInput.id, }, ...panelState, diff --git a/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts b/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts new file mode 100644 index 00000000000000..70a6c83418587d --- /dev/null +++ b/src/plugins/dashboard/public/application/embeddable/panel/dashboard_panel_placement.ts @@ -0,0 +1,167 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PanelNotFoundError } from '../../../embeddable_plugin'; +import { DashboardPanelState, GridData, DASHBOARD_GRID_COLUMN_COUNT } from '..'; + +export type PanelPlacementMethod = ( + args: PlacementArgs +) => Omit; + +export interface IPanelPlacementArgs { + width: number; + height: number; + currentPanels: { [key: string]: DashboardPanelState }; +} + +export interface IPanelPlacementBesideArgs extends IPanelPlacementArgs { + placeBesideId: string; +} + +// Look for the smallest y and x value where the default panel will fit. +export function findTopLeftMostOpenSpace({ + width, + height, + currentPanels, +}: IPanelPlacementArgs): Omit { + let maxY = -1; + + const currentPanelsArray = Object.values(currentPanels); + currentPanelsArray.forEach(panel => { + maxY = Math.max(panel.gridData.y + panel.gridData.h, maxY); + }); + + // Handle case of empty grid. + if (maxY < 0) { + return { x: 0, y: 0, w: width, h: height }; + } + + const grid = new Array(maxY); + for (let y = 0; y < maxY; y++) { + grid[y] = new Array(DASHBOARD_GRID_COLUMN_COUNT).fill(0); + } + + currentPanelsArray.forEach(panel => { + for (let x = panel.gridData.x; x < panel.gridData.x + panel.gridData.w; x++) { + for (let y = panel.gridData.y; y < panel.gridData.y + panel.gridData.h; y++) { + const row = grid[y]; + if (row === undefined) { + throw new Error( + `Attempted to access a row that doesn't exist at ${y} for panel ${JSON.stringify( + panel + )}` + ); + } + grid[y][x] = 1; + } + } + }); + + for (let y = 0; y < maxY; y++) { + for (let x = 0; x < DASHBOARD_GRID_COLUMN_COUNT; x++) { + if (grid[y][x] === 1) { + // Space is filled + continue; + } else { + for (let h = y; h < Math.min(y + height, maxY); h++) { + for (let w = x; w < Math.min(x + width, DASHBOARD_GRID_COLUMN_COUNT); w++) { + const spaceIsEmpty = grid[h][w] === 0; + const fitsPanelWidth = w === x + width - 1; + // If the panel is taller than any other panel in the current grid, it can still fit in the space, hence + // we check the minimum of maxY and the panel height. + const fitsPanelHeight = h === Math.min(y + height - 1, maxY - 1); + + if (spaceIsEmpty && fitsPanelWidth && fitsPanelHeight) { + // Found space + return { x, y, w: width, h: height }; + } else if (grid[h][w] === 1) { + // x, y spot doesn't work, break. + break; + } + } + } + } + } + } + return { x: 0, y: maxY, w: width, h: height }; +} + +interface IplacementDirection { + grid: Omit; + fits: boolean; +} + +export function placePanelBeside({ + width, + height, + currentPanels, + placeBesideId, +}: IPanelPlacementBesideArgs): Omit { + // const clonedPanels = _.cloneDeep(currentPanels); + if (!placeBesideId) { + throw new Error('Place beside method called without placeBesideId'); + } + const panelToPlaceBeside = currentPanels[placeBesideId]; + if (!panelToPlaceBeside) { + throw new PanelNotFoundError(); + } + const beside = panelToPlaceBeside.gridData; + const otherPanels: GridData[] = []; + _.forOwn(currentPanels, (panel: DashboardPanelState, key: string | undefined) => { + otherPanels.push(panel.gridData); + }); + + const possiblePlacementDirections: IplacementDirection[] = [ + { grid: { x: beside.x + beside.w, y: beside.y, w: width, h: height }, fits: true }, // right + { grid: { x: beside.x - width, y: beside.y, w: width, h: height }, fits: true }, // left + { grid: { x: beside.x, y: beside.y + beside.h, w: width, h: height }, fits: true }, // bottom + ]; + + for (const direction of possiblePlacementDirections) { + if ( + direction.grid.x >= 0 && + direction.grid.x + direction.grid.w <= DASHBOARD_GRID_COLUMN_COUNT && + direction.grid.y >= 0 + ) { + const intersection = otherPanels.some((currentPanelGrid: GridData) => { + return ( + direction.grid.x + direction.grid.w > currentPanelGrid.x && + direction.grid.x < currentPanelGrid.x + currentPanelGrid.w && + direction.grid.y < currentPanelGrid.y + currentPanelGrid.h && + direction.grid.y + direction.grid.h > currentPanelGrid.y + ); + }); + if (!intersection) { + return direction.grid; + } + } else { + direction.fits = false; + } + } + // if we get here that means there is no blank space around the panel we are placing beside. This means it's time to mess up the dashboard's groove. Fun! + const [, , bottomPlacement] = possiblePlacementDirections; + for (const currentPanelGrid of otherPanels) { + if (bottomPlacement.grid.y <= currentPanelGrid.y) { + const movedPanel = _.cloneDeep(currentPanels[currentPanelGrid.i]); + movedPanel.gridData.y = movedPanel.gridData.y + bottomPlacement.grid.h; + currentPanels[currentPanelGrid.i] = movedPanel; + } + } + return bottomPlacement.grid; +} diff --git a/src/plugins/dashboard/public/application/embeddable/placeholder/index.ts b/src/plugins/dashboard/public/application/embeddable/placeholder/index.ts new file mode 100644 index 00000000000000..7c65d50ce3fea1 --- /dev/null +++ b/src/plugins/dashboard/public/application/embeddable/placeholder/index.ts @@ -0,0 +1,21 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from './placeholder_embeddable'; +export * from './placeholder_embeddable_factory'; diff --git a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx new file mode 100644 index 00000000000000..1a5c3386bdeda0 --- /dev/null +++ b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable.tsx @@ -0,0 +1,52 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; +import { EuiLoadingChart } from '@elastic/eui'; +import classNames from 'classnames'; +import { Embeddable, EmbeddableInput, IContainer } from '../../../embeddable_plugin'; + +export const PLACEHOLDER_EMBEDDABLE = 'placeholder'; + +export class PlaceholderEmbeddable extends Embeddable { + public readonly type = PLACEHOLDER_EMBEDDABLE; + private node?: HTMLElement; + + constructor(initialInput: EmbeddableInput, parent?: IContainer) { + super(initialInput, {}, parent); + this.input = initialInput; + } + public render(node: HTMLElement) { + if (this.node) { + ReactDOM.unmountComponentAtNode(this.node); + } + this.node = node; + + const classes = classNames('embPanel', 'embPanel-isLoading'); + ReactDOM.render( +

+ +
, + node + ); + } + + public reload() {} +} diff --git a/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts new file mode 100644 index 00000000000000..30a93989649a7a --- /dev/null +++ b/src/plugins/dashboard/public/application/embeddable/placeholder/placeholder_embeddable_factory.ts @@ -0,0 +1,45 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { i18n } from '@kbn/i18n'; + +import { + EmbeddableFactoryDefinition, + EmbeddableInput, + IContainer, +} from '../../../embeddable_plugin'; +import { PlaceholderEmbeddable, PLACEHOLDER_EMBEDDABLE } from './placeholder_embeddable'; + +export class PlaceholderEmbeddableFactory implements EmbeddableFactoryDefinition { + public readonly type = PLACEHOLDER_EMBEDDABLE; + + public async isEditable() { + return false; + } + + public async create(initialInput: EmbeddableInput, parent?: IContainer) { + return new PlaceholderEmbeddable(initialInput, parent); + } + + public getDisplayName() { + return i18n.translate('dashboard.placeholder.factory.displayName', { + defaultMessage: 'placeholder', + }); + } +} diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index 322d734d9f39f4..203c784d9df4e3 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -67,9 +67,12 @@ import { ExpandPanelActionContext, ReplacePanelAction, ReplacePanelActionContext, + ClonePanelAction, + ClonePanelActionContext, ACTION_EXPAND_PANEL, ACTION_REPLACE_PANEL, RenderDeps, + ACTION_CLONE_PANEL, } from './application'; import { DashboardAppLinkGeneratorState, @@ -78,6 +81,7 @@ import { } from './url_generator'; import { createSavedDashboardLoader } from './saved_dashboards'; import { DashboardConstants } from './dashboard_constants'; +import { PlaceholderEmbeddableFactory } from './application/embeddable/placeholder'; declare module '../../share/public' { export interface UrlGeneratorStateMapping { @@ -115,6 +119,7 @@ declare module '../../../plugins/ui_actions/public' { export interface ActionContextMapping { [ACTION_EXPAND_PANEL]: ExpandPanelActionContext; [ACTION_REPLACE_PANEL]: ReplacePanelActionContext; + [ACTION_CLONE_PANEL]: ClonePanelActionContext; } } @@ -173,6 +178,9 @@ export class DashboardPlugin const factory = new DashboardContainerFactory(getStartServices); embeddable.registerEmbeddableFactory(factory.type, factory); + const placeholderFactory = new PlaceholderEmbeddableFactory(); + embeddable.registerEmbeddableFactory(placeholderFactory.type, placeholderFactory); + const { appMounted, appUnMounted, stop: stopUrlTracker } = createKbnUrlTracker({ baseUrl: core.http.basePath.prepend('/app/kibana'), defaultSubUrl: `#${DashboardConstants.LANDING_PAGE_PATH}`, @@ -297,6 +305,11 @@ export class DashboardPlugin ); uiActions.registerAction(changeViewAction); uiActions.attachAction(CONTEXT_MENU_TRIGGER, changeViewAction); + + const clonePanelAction = new ClonePanelAction(core); + uiActions.registerAction(clonePanelAction); + uiActions.attachAction(CONTEXT_MENU_TRIGGER, clonePanelAction); + const savedDashboardLoader = createSavedDashboardLoader({ savedObjectsClient: core.savedObjects.client, indexPatterns, diff --git a/test/functional/apps/dashboard/panel_controls.js b/test/functional/apps/dashboard/panel_controls.js index 52c4a11360355b..6e24b9f3570a3b 100644 --- a/test/functional/apps/dashboard/panel_controls.js +++ b/test/functional/apps/dashboard/panel_controls.js @@ -113,6 +113,50 @@ export default function({ getService, getPageObjects }) { }); }); + describe('panel cloning', function() { + before(async () => { + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.timePicker.setHistoricalDataRange(); + await dashboardAddPanel.addVisualization(PIE_CHART_VIS_NAME); + }); + + after(async function() { + await PageObjects.dashboard.gotoDashboardLandingPage(); + }); + + it('clones a panel', async () => { + const initialPanelTitles = await PageObjects.dashboard.getPanelTitles(); + await dashboardPanelActions.clonePanelByTitle(PIE_CHART_VIS_NAME); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.dashboard.waitForRenderComplete(); + const postPanelTitles = await PageObjects.dashboard.getPanelTitles(); + expect(postPanelTitles.length).to.equal(initialPanelTitles.length + 1); + }); + + it('appends a clone title tag', async () => { + const panelTitles = await PageObjects.dashboard.getPanelTitles(); + expect(panelTitles[1]).to.equal(PIE_CHART_VIS_NAME + ' (copy)'); + }); + + it('retains original panel dimensions', async () => { + const panelDimensions = await PageObjects.dashboard.getPanelDimensions(); + expect(panelDimensions[0]).to.eql(panelDimensions[1]); + }); + + it('gives a correct title to the clone of a clone', async () => { + const initialPanelTitles = await PageObjects.dashboard.getPanelTitles(); + const clonedPanelName = initialPanelTitles[initialPanelTitles.length - 1]; + await dashboardPanelActions.clonePanelByTitle(clonedPanelName); + await PageObjects.header.waitUntilLoadingHasFinished(); + await PageObjects.dashboard.waitForRenderComplete(); + const postPanelTitles = await PageObjects.dashboard.getPanelTitles(); + expect(postPanelTitles.length).to.equal(initialPanelTitles.length + 1); + expect(postPanelTitles[postPanelTitles.length - 1]).to.equal( + PIE_CHART_VIS_NAME + ' (copy 1)' + ); + }); + }); + describe('panel edit controls', function() { before(async () => { await PageObjects.dashboard.clickNewDashboard(); @@ -137,6 +181,7 @@ export default function({ getService, getPageObjects }) { await dashboardPanelActions.expectExistsEditPanelAction(); await dashboardPanelActions.expectExistsReplacePanelAction(); + await dashboardPanelActions.expectExistsDuplicatePanelAction(); await dashboardPanelActions.expectExistsRemovePanelAction(); }); @@ -151,6 +196,7 @@ export default function({ getService, getPageObjects }) { await dashboardPanelActions.openContextMenu(); await dashboardPanelActions.expectExistsEditPanelAction(); await dashboardPanelActions.expectExistsReplacePanelAction(); + await dashboardPanelActions.expectExistsDuplicatePanelAction(); await dashboardPanelActions.expectExistsRemovePanelAction(); // Get rid of the timestamp in the url. @@ -166,6 +212,7 @@ export default function({ getService, getPageObjects }) { await dashboardPanelActions.openContextMenu(); await dashboardPanelActions.expectMissingEditPanelAction(); await dashboardPanelActions.expectMissingReplacePanelAction(); + await dashboardPanelActions.expectMissingDuplicatePanelAction(); await dashboardPanelActions.expectMissingRemovePanelAction(); }); @@ -174,6 +221,7 @@ export default function({ getService, getPageObjects }) { await dashboardPanelActions.openContextMenu(); await dashboardPanelActions.expectExistsEditPanelAction(); await dashboardPanelActions.expectExistsReplacePanelAction(); + await dashboardPanelActions.expectExistsDuplicatePanelAction(); await dashboardPanelActions.expectMissingRemovePanelAction(); await dashboardPanelActions.clickExpandPanelToggle(); }); diff --git a/test/functional/services/dashboard/panel_actions.js b/test/functional/services/dashboard/panel_actions.js index baea2a52208c16..b155d747f3b939 100644 --- a/test/functional/services/dashboard/panel_actions.js +++ b/test/functional/services/dashboard/panel_actions.js @@ -20,6 +20,7 @@ const REMOVE_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-deletePanel'; const EDIT_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-editPanel'; const REPLACE_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-replacePanel'; +const CLONE_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-clonePanel'; const TOGGLE_EXPAND_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-togglePanel'; const CUSTOMIZE_PANEL_DATA_TEST_SUBJ = 'embeddablePanelAction-ACTION_CUSTOMIZE_PANEL'; const OPEN_CONTEXT_MENU_ICON_DATA_TEST_SUBJ = 'embeddablePanelToggleMenuIcon'; @@ -97,6 +98,16 @@ export function DashboardPanelActionsProvider({ getService, getPageObjects }) { await testSubjects.click(REPLACE_PANEL_DATA_TEST_SUBJ); } + async clonePanelByTitle(title) { + log.debug(`clonePanel(${title})`); + let panelOptions = null; + if (title) { + panelOptions = await this.getPanelHeading(title); + } + await this.openContextMenu(panelOptions); + await testSubjects.click(CLONE_PANEL_DATA_TEST_SUBJ); + } + async openInspectorByTitle(title) { const header = await this.getPanelHeading(title); await this.openInspector(header); @@ -123,7 +134,12 @@ export function DashboardPanelActionsProvider({ getService, getPageObjects }) { } async expectExistsReplacePanelAction() { - log.debug('expectExistsEditPanelAction'); + log.debug('expectExistsReplacePanelAction'); + await testSubjects.existOrFail(REPLACE_PANEL_DATA_TEST_SUBJ); + } + + async expectExistsDuplicatePanelAction() { + log.debug('expectExistsDuplicatePanelAction'); await testSubjects.existOrFail(REPLACE_PANEL_DATA_TEST_SUBJ); } @@ -133,7 +149,12 @@ export function DashboardPanelActionsProvider({ getService, getPageObjects }) { } async expectMissingReplacePanelAction() { - log.debug('expectMissingEditPanelAction'); + log.debug('expectMissingReplacePanelAction'); + await testSubjects.missingOrFail(REPLACE_PANEL_DATA_TEST_SUBJ); + } + + async expectMissingDuplicatePanelAction() { + log.debug('expectMissingDuplicatePanelAction'); await testSubjects.missingOrFail(REPLACE_PANEL_DATA_TEST_SUBJ); } From 98369bb3449627b03eb92eafca8f22851fdec34f Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 20 Apr 2020 18:40:12 -0600 Subject: [PATCH 22/54] [Maps] Do not fetch geo_shape from docvalues (#63997) (#64013) --- .../public/layers/sources/es_search_source/es_search_source.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js index 34fed37933e138..aaa56b30c735a4 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js +++ b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js @@ -51,7 +51,7 @@ function getDocValueAndSourceFields(indexPattern, fieldNames) { lang: field.lang, }, }; - } else if (field.readFromDocValues) { + } else if (field.type !== ES_GEO_FIELD_TYPE.GEO_SHAPE && field.readFromDocValues) { const docValueField = field.type === 'date' ? { From 695cda47db0a9321252c22f10bb143e22dcc87da Mon Sep 17 00:00:00 2001 From: Matthew Kime Date: Mon, 20 Apr 2020 19:56:23 -0500 Subject: [PATCH 23/54] [7.x] Index Pattern Field class - factor out copy_field code for future typescripting (#63083) (#63461) * Index Pattern Field class - factor out copy_field code for future typescripting (#63083) --- ...plugin-plugins-data-public.field.__spec.md | 11 ++ ...lugins-data-public.field._constructor_.md} | 4 +- ...-plugins-data-public.field.aggregatable.md | 11 ++ ...-plugin-plugins-data-public.field.count.md | 11 ++ ...n-plugins-data-public.field.displayname.md | 11 ++ ...lugin-plugins-data-public.field.estypes.md | 11 ++ ...in-plugins-data-public.field.filterable.md | 11 ++ ...plugin-plugins-data-public.field.format.md | 11 ++ ...-plugins-data-public.field.indexpattern.md | 11 ++ ...a-plugin-plugins-data-public.field.lang.md | 11 ++ ...kibana-plugin-plugins-data-public.field.md | 40 ++++++ ...a-plugin-plugins-data-public.field.name.md | 11 ++ ...plugin-plugins-data-public.field.script.md | 11 ++ ...ugin-plugins-data-public.field.scripted.md | 11 ++ ...in-plugins-data-public.field.searchable.md | 11 ++ ...ugin-plugins-data-public.field.sortable.md | 11 ++ ...lugin-plugins-data-public.field.subtype.md | 11 ++ ...a-plugin-plugins-data-public.field.type.md | 11 ++ ...-plugins-data-public.field.visualizable.md | 11 ++ ...ns-data-public.indexpatternfield.__spec.md | 11 -- ...a-public.indexpatternfield.aggregatable.md | 11 -- ...ins-data-public.indexpatternfield.count.md | 11 -- ...ta-public.indexpatternfield.displayname.md | 11 -- ...s-data-public.indexpatternfield.estypes.md | 11 -- ...ata-public.indexpatternfield.filterable.md | 11 -- ...ns-data-public.indexpatternfield.format.md | 11 -- ...a-public.indexpatternfield.indexpattern.md | 11 -- ...gins-data-public.indexpatternfield.lang.md | 11 -- ...n-plugins-data-public.indexpatternfield.md | 41 ------ ...gins-data-public.indexpatternfield.name.md | 11 -- ...ns-data-public.indexpatternfield.routes.md | 11 -- ...ns-data-public.indexpatternfield.script.md | 11 -- ...-data-public.indexpatternfield.scripted.md | 11 -- ...ata-public.indexpatternfield.searchable.md | 11 -- ...-data-public.indexpatternfield.sortable.md | 11 -- ...s-data-public.indexpatternfield.subtype.md | 11 -- ...gins-data-public.indexpatternfield.type.md | 11 -- ...a-public.indexpatternfield.visualizable.md | 11 -- ...ugins-data-public.indexpatternfieldlist.md | 2 +- ...ata-public.indexpatternfieldlist.update.md | 2 +- .../kibana-plugin-plugins-data-public.md | 2 +- .../create_edit_field/create_edit_field.js | 1 - .../edit_index_pattern/edit_index_pattern.js | 10 +- .../indexed_fields_table.test.tsx.snap | 5 - .../indexed_fields_table.test.tsx | 3 +- .../indexed_fields_table.tsx | 5 +- .../scripted_fields_table.tsx | 2 +- .../ui/public/field_editor/field_editor.js | 13 +- .../lib/__tests__/copy_field.test.js | 48 ------- .../ui/public/field_editor/lib/copy_field.js | 82 ----------- .../ui/public/field_editor/lib/index.js | 1 - src/plugins/data/public/index.ts | 1 + .../public/index_patterns/fields/field.ts | 7 - .../index_patterns/fields/field_list.ts | 13 +- src/plugins/data/public/public.api.md | 136 +++++++++--------- 55 files changed, 324 insertions(+), 479 deletions(-) create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md rename docs/development/plugins/data/public/{kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md => kibana-plugin-plugins-data-public.field._constructor_.md} (68%) create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md delete mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md delete mode 100644 src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js delete mode 100644 src/legacy/ui/public/field_editor/lib/copy_field.js diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md new file mode 100644 index 00000000000000..43ff9a930b974d --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.__spec.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md) + +## Field.$$spec property + +Signature: + +```typescript +$$spec: FieldSpec; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md similarity index 68% rename from docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md rename to docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md index cf7470c035a533..c3b2ac8d30b5a9 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field._constructor_.md @@ -1,8 +1,8 @@ -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [(constructor)](./kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md) +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [(constructor)](./kibana-plugin-plugins-data-public.field._constructor_.md) -## IndexPatternField.(constructor) +## Field.(constructor) Constructs a new instance of the `Field` class diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md new file mode 100644 index 00000000000000..fcfd7d73c8b0ce --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.aggregatable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md) + +## Field.aggregatable property + +Signature: + +```typescript +aggregatable?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md new file mode 100644 index 00000000000000..4f51d88a3046ed --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.count.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [count](./kibana-plugin-plugins-data-public.field.count.md) + +## Field.count property + +Signature: + +```typescript +count?: number; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md new file mode 100644 index 00000000000000..0846a7595cf907 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.displayname.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [displayName](./kibana-plugin-plugins-data-public.field.displayname.md) + +## Field.displayName property + +Signature: + +```typescript +displayName?: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md new file mode 100644 index 00000000000000..efe1bceb43361a --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.estypes.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [esTypes](./kibana-plugin-plugins-data-public.field.estypes.md) + +## Field.esTypes property + +Signature: + +```typescript +esTypes?: string[]; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md new file mode 100644 index 00000000000000..fd7be589e87a79 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.filterable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [filterable](./kibana-plugin-plugins-data-public.field.filterable.md) + +## Field.filterable property + +Signature: + +```typescript +filterable?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md new file mode 100644 index 00000000000000..431e043d1fecc6 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.format.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [format](./kibana-plugin-plugins-data-public.field.format.md) + +## Field.format property + +Signature: + +```typescript +format: any; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md new file mode 100644 index 00000000000000..59420747e0958e --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.indexpattern.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [indexPattern](./kibana-plugin-plugins-data-public.field.indexpattern.md) + +## Field.indexPattern property + +Signature: + +```typescript +indexPattern?: IndexPattern; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md new file mode 100644 index 00000000000000..d51857090356fe --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.lang.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [lang](./kibana-plugin-plugins-data-public.field.lang.md) + +## Field.lang property + +Signature: + +```typescript +lang?: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md new file mode 100644 index 00000000000000..84c22c47a5e2fc --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.md @@ -0,0 +1,40 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) + +## Field class + +Signature: + +```typescript +export declare class Field implements IFieldType +``` + +## Constructors + +| Constructor | Modifiers | Description | +| --- | --- | --- | +| [(constructor)(indexPattern, spec, shortDotsEnable)](./kibana-plugin-plugins-data-public.field._constructor_.md) | | Constructs a new instance of the Field class | + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [$$spec](./kibana-plugin-plugins-data-public.field.__spec.md) | | FieldSpec | | +| [aggregatable](./kibana-plugin-plugins-data-public.field.aggregatable.md) | | boolean | | +| [count](./kibana-plugin-plugins-data-public.field.count.md) | | number | | +| [displayName](./kibana-plugin-plugins-data-public.field.displayname.md) | | string | | +| [esTypes](./kibana-plugin-plugins-data-public.field.estypes.md) | | string[] | | +| [filterable](./kibana-plugin-plugins-data-public.field.filterable.md) | | boolean | | +| [format](./kibana-plugin-plugins-data-public.field.format.md) | | any | | +| [indexPattern](./kibana-plugin-plugins-data-public.field.indexpattern.md) | | IndexPattern | | +| [lang](./kibana-plugin-plugins-data-public.field.lang.md) | | string | | +| [name](./kibana-plugin-plugins-data-public.field.name.md) | | string | | +| [script](./kibana-plugin-plugins-data-public.field.script.md) | | string | | +| [scripted](./kibana-plugin-plugins-data-public.field.scripted.md) | | boolean | | +| [searchable](./kibana-plugin-plugins-data-public.field.searchable.md) | | boolean | | +| [sortable](./kibana-plugin-plugins-data-public.field.sortable.md) | | boolean | | +| [subType](./kibana-plugin-plugins-data-public.field.subtype.md) | | IFieldSubType | | +| [type](./kibana-plugin-plugins-data-public.field.type.md) | | string | | +| [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md) | | boolean | | + diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md new file mode 100644 index 00000000000000..d2a9b9b86aefc9 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.name.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [name](./kibana-plugin-plugins-data-public.field.name.md) + +## Field.name property + +Signature: + +```typescript +name: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md new file mode 100644 index 00000000000000..676ff9bdfc35a7 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.script.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [script](./kibana-plugin-plugins-data-public.field.script.md) + +## Field.script property + +Signature: + +```typescript +script?: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md new file mode 100644 index 00000000000000..1f6c8105e3f618 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.scripted.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [scripted](./kibana-plugin-plugins-data-public.field.scripted.md) + +## Field.scripted property + +Signature: + +```typescript +scripted?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md new file mode 100644 index 00000000000000..186d344f503788 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.searchable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [searchable](./kibana-plugin-plugins-data-public.field.searchable.md) + +## Field.searchable property + +Signature: + +```typescript +searchable?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md new file mode 100644 index 00000000000000..0cd4b14d0e1e5c --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.sortable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [sortable](./kibana-plugin-plugins-data-public.field.sortable.md) + +## Field.sortable property + +Signature: + +```typescript +sortable?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md new file mode 100644 index 00000000000000..bef3b2131fa475 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.subtype.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [subType](./kibana-plugin-plugins-data-public.field.subtype.md) + +## Field.subType property + +Signature: + +```typescript +subType?: IFieldSubType; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md new file mode 100644 index 00000000000000..490615edcf097e --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [type](./kibana-plugin-plugins-data-public.field.type.md) + +## Field.type property + +Signature: + +```typescript +type: string; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md new file mode 100644 index 00000000000000..f32a5c456dc5db --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.field.visualizable.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [Field](./kibana-plugin-plugins-data-public.field.md) > [visualizable](./kibana-plugin-plugins-data-public.field.visualizable.md) + +## Field.visualizable property + +Signature: + +```typescript +visualizable?: boolean; +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md deleted file mode 100644 index f52a3324af36f7..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.__spec.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md) - -## IndexPatternField.$$spec property - -Signature: - -```typescript -$$spec: FieldSpec; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md deleted file mode 100644 index 267c8f786b5dd2..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md) - -## IndexPatternField.aggregatable property - -Signature: - -```typescript -aggregatable?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md deleted file mode 100644 index 8e848276f21c4c..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.count.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [count](./kibana-plugin-plugins-data-public.indexpatternfield.count.md) - -## IndexPatternField.count property - -Signature: - -```typescript -count?: number; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md deleted file mode 100644 index ed9630f92fc975..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.displayname.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [displayName](./kibana-plugin-plugins-data-public.indexpatternfield.displayname.md) - -## IndexPatternField.displayName property - -Signature: - -```typescript -displayName?: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md deleted file mode 100644 index dec74df099d43a..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.estypes.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [esTypes](./kibana-plugin-plugins-data-public.indexpatternfield.estypes.md) - -## IndexPatternField.esTypes property - -Signature: - -```typescript -esTypes?: string[]; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md deleted file mode 100644 index 4290c4a2f86b3b..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.filterable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [filterable](./kibana-plugin-plugins-data-public.indexpatternfield.filterable.md) - -## IndexPatternField.filterable property - -Signature: - -```typescript -filterable?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md deleted file mode 100644 index d5df8ed628cb08..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.format.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [format](./kibana-plugin-plugins-data-public.indexpatternfield.format.md) - -## IndexPatternField.format property - -Signature: - -```typescript -format: any; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md deleted file mode 100644 index d1a1ee0905c6e3..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [indexPattern](./kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md) - -## IndexPatternField.indexPattern property - -Signature: - -```typescript -indexPattern?: IndexPattern; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md deleted file mode 100644 index f731be8f613cfa..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.lang.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [lang](./kibana-plugin-plugins-data-public.indexpatternfield.lang.md) - -## IndexPatternField.lang property - -Signature: - -```typescript -lang?: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md deleted file mode 100644 index ae458c553421a9..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.md +++ /dev/null @@ -1,41 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) - -## IndexPatternField class - -Signature: - -```typescript -export declare class Field implements IFieldType -``` - -## Constructors - -| Constructor | Modifiers | Description | -| --- | --- | --- | -| [(constructor)(indexPattern, spec, shortDotsEnable)](./kibana-plugin-plugins-data-public.indexpatternfield._constructor_.md) | | Constructs a new instance of the Field class | - -## Properties - -| Property | Modifiers | Type | Description | -| --- | --- | --- | --- | -| [$$spec](./kibana-plugin-plugins-data-public.indexpatternfield.__spec.md) | | FieldSpec | | -| [aggregatable](./kibana-plugin-plugins-data-public.indexpatternfield.aggregatable.md) | | boolean | | -| [count](./kibana-plugin-plugins-data-public.indexpatternfield.count.md) | | number | | -| [displayName](./kibana-plugin-plugins-data-public.indexpatternfield.displayname.md) | | string | | -| [esTypes](./kibana-plugin-plugins-data-public.indexpatternfield.estypes.md) | | string[] | | -| [filterable](./kibana-plugin-plugins-data-public.indexpatternfield.filterable.md) | | boolean | | -| [format](./kibana-plugin-plugins-data-public.indexpatternfield.format.md) | | any | | -| [indexPattern](./kibana-plugin-plugins-data-public.indexpatternfield.indexpattern.md) | | IndexPattern | | -| [lang](./kibana-plugin-plugins-data-public.indexpatternfield.lang.md) | | string | | -| [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md) | | string | | -| [routes](./kibana-plugin-plugins-data-public.indexpatternfield.routes.md) | | Record<string, string> | | -| [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md) | | string | | -| [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md) | | boolean | | -| [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md) | | boolean | | -| [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md) | | boolean | | -| [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md) | | IFieldSubType | | -| [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md) | | string | | -| [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md) | | boolean | | - diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md deleted file mode 100644 index cb24621e732093..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.name.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [name](./kibana-plugin-plugins-data-public.indexpatternfield.name.md) - -## IndexPatternField.name property - -Signature: - -```typescript -name: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md deleted file mode 100644 index 664a7b7b7ca0e5..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.routes.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [routes](./kibana-plugin-plugins-data-public.indexpatternfield.routes.md) - -## IndexPatternField.routes property - -Signature: - -```typescript -routes: Record; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md deleted file mode 100644 index 132ba25a476374..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.script.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [script](./kibana-plugin-plugins-data-public.indexpatternfield.script.md) - -## IndexPatternField.script property - -Signature: - -```typescript -script?: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md deleted file mode 100644 index 1dd6bc865a75d9..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.scripted.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [scripted](./kibana-plugin-plugins-data-public.indexpatternfield.scripted.md) - -## IndexPatternField.scripted property - -Signature: - -```typescript -scripted?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md deleted file mode 100644 index 42f984d851435b..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.searchable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [searchable](./kibana-plugin-plugins-data-public.indexpatternfield.searchable.md) - -## IndexPatternField.searchable property - -Signature: - -```typescript -searchable?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md deleted file mode 100644 index 72d225185140be..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.sortable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [sortable](./kibana-plugin-plugins-data-public.indexpatternfield.sortable.md) - -## IndexPatternField.sortable property - -Signature: - -```typescript -sortable?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md deleted file mode 100644 index 2d807f8a5739ce..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.subtype.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [subType](./kibana-plugin-plugins-data-public.indexpatternfield.subtype.md) - -## IndexPatternField.subType property - -Signature: - -```typescript -subType?: IFieldSubType; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md deleted file mode 100644 index c8483c9b83c9a1..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.type.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [type](./kibana-plugin-plugins-data-public.indexpatternfield.type.md) - -## IndexPatternField.type property - -Signature: - -```typescript -type: string; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md deleted file mode 100644 index dd661ae779c117..00000000000000 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) > [visualizable](./kibana-plugin-plugins-data-public.indexpatternfield.visualizable.md) - -## IndexPatternField.visualizable property - -Signature: - -```typescript -visualizable?: boolean; -``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md index 4b7184b7dc151e..478b73f5f85813 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.md @@ -24,5 +24,5 @@ export declare class FieldList extends Array implements IFieldList | [getByName](./kibana-plugin-plugins-data-public.indexpatternfieldlist.getbyname.md) | | (name: string) => Field | undefined | | | [getByType](./kibana-plugin-plugins-data-public.indexpatternfieldlist.getbytype.md) | | (type: string) => any[] | | | [remove](./kibana-plugin-plugins-data-public.indexpatternfieldlist.remove.md) | | (field: IFieldType) => void | | -| [update](./kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md) | | (field: Field) => void | | +| [update](./kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md) | | (field: Record<string, any>) => void | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md index ca03ec4b728932..d5156ed41e493e 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.indexpatternfieldlist.update.md @@ -7,5 +7,5 @@ Signature: ```typescript -update: (field: Field) => void; +update: (field: Record) => void; ``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md index bf29c883e4eb96..3713827f75386d 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md @@ -11,9 +11,9 @@ | [AggParamType](./kibana-plugin-plugins-data-public.aggparamtype.md) | | | [AggTypeFieldFilters](./kibana-plugin-plugins-data-public.aggtypefieldfilters.md) | A registry to store which are used to filter down available fields for a specific visualization and . | | [AggTypeFilters](./kibana-plugin-plugins-data-public.aggtypefilters.md) | A registry to store which are used to filter down available aggregations for a specific visualization and . | +| [Field](./kibana-plugin-plugins-data-public.field.md) | | | [FilterManager](./kibana-plugin-plugins-data-public.filtermanager.md) | | | [IndexPattern](./kibana-plugin-plugins-data-public.indexpattern.md) | | -| [IndexPatternField](./kibana-plugin-plugins-data-public.indexpatternfield.md) | | | [IndexPatternFieldList](./kibana-plugin-plugins-data-public.indexpatternfieldlist.md) | | | [IndexPatternSelect](./kibana-plugin-plugins-data-public.indexpatternselect.md) | | | [OptionedParamType](./kibana-plugin-plugins-data-public.optionedparamtype.md) | | diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js index d8b3196d48fd18..95d6cb6878e532 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js @@ -56,7 +56,6 @@ const renderFieldEditor = ( indexPattern={indexPattern} field={field} helpers={{ - Field: IndexPatternField, getConfig, $http, fieldFormatEditors, diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js index 156f4d5a71e63f..9474c5a0e5112d 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js @@ -50,6 +50,8 @@ const TAB_INDEXED_FIELDS = 'indexedFields'; const TAB_SCRIPTED_FIELDS = 'scriptedFields'; const TAB_SOURCE_FILTERS = 'sourceFilters'; +const EDIT_FIELD_PATH = '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}'; + function updateSourceFiltersTable($scope) { $scope.$$postDigest(() => { const node = document.getElementById(REACT_SOURCE_FILTERS_DOM_ELEMENT_ID); @@ -98,8 +100,8 @@ function updateScriptedFieldsTable($scope) { fieldFilter={$scope.fieldFilter} scriptedFieldLanguageFilter={$scope.scriptedFieldLanguageFilter} helpers={{ - redirectToRoute: (obj, route) => { - $scope.kbnUrl.changeToRoute(obj, route); + redirectToRoute: field => { + $scope.kbnUrl.changePath(EDIT_FIELD_PATH, field); $scope.$apply(); }, getRouteHref: (obj, route) => $scope.kbnUrl.getRouteHref(obj, route), @@ -141,8 +143,8 @@ function updateIndexedFieldsTable($scope) { fieldWildcardMatcher={$scope.fieldWildcardMatcher} indexedFieldTypeFilter={$scope.indexedFieldTypeFilter} helpers={{ - redirectToRoute: (obj, route) => { - $scope.kbnUrl.changeToRoute(obj, route); + redirectToRoute: field => { + $scope.kbnUrl.changePath(EDIT_FIELD_PATH, field); $scope.$apply(); }, getFieldInfo: $scope.getFieldInfo, diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap index e6c81a3f67ec82..db2a032b1e4d9c 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/__snapshots__/indexed_fields_table.test.tsx.snap @@ -18,7 +18,6 @@ exports[`IndexedFieldsTable should filter based on the query bar 1`] = ` "indexPattern": undefined, "info": Array [], "name": "Elastic", - "routes": undefined, "searchable": true, "type": "name", }, @@ -46,7 +45,6 @@ exports[`IndexedFieldsTable should filter based on the type filter 1`] = ` "indexPattern": undefined, "info": Array [], "name": "timestamp", - "routes": undefined, "type": "date", }, ] @@ -73,7 +71,6 @@ exports[`IndexedFieldsTable should render normally 1`] = ` "indexPattern": undefined, "info": Array [], "name": "Elastic", - "routes": undefined, "searchable": true, "type": "name", }, @@ -84,7 +81,6 @@ exports[`IndexedFieldsTable should render normally 1`] = ` "indexPattern": undefined, "info": Array [], "name": "timestamp", - "routes": undefined, "type": "date", }, Object { @@ -94,7 +90,6 @@ exports[`IndexedFieldsTable should render normally 1`] = ` "indexPattern": undefined, "info": Array [], "name": "conflictingField", - "routes": undefined, "type": "conflict", }, ] diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx index 8e877c4fe8a16e..e7e7a8b89c73d1 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.test.tsx @@ -21,6 +21,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { IndexPatternField, IIndexPattern } from '../../../../../../../../../plugins/data/public'; import { IndexedFieldsTable } from './indexed_fields_table'; +import { IndexedFieldItem } from './types'; jest.mock('@elastic/eui', () => ({ EuiFlexGroup: 'eui-flex-group', @@ -37,7 +38,7 @@ jest.mock('./components/table', () => ({ })); const helpers = { - redirectToRoute: (obj: any, route: string) => {}, + redirectToRoute: (field: IndexedFieldItem) => {}, getFieldInfo: () => [], }; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx index 93d5ccf39b2839..650b7fa8c5b16a 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx @@ -30,7 +30,7 @@ interface IndexedFieldsTableProps { fieldFilter?: string; indexedFieldTypeFilter?: string; helpers: { - redirectToRoute: (obj: any, route: string) => void; + redirectToRoute: (field: IndexedFieldItem) => void; getFieldInfo: (indexPattern: IIndexPattern, field: string) => string[]; }; fieldWildcardMatcher: (filters: any[]) => (val: any) => boolean; @@ -73,7 +73,6 @@ export class IndexedFieldsTable extends Component< return { ...field, displayName: field.displayName, - routes: field.routes, indexPattern: field.indexPattern, format: getFieldFormat(indexPattern, field.name), excluded: fieldWildcardMatch ? fieldWildcardMatch(field.name) : false, @@ -113,7 +112,7 @@ export class IndexedFieldsTable extends Component< this.props.helpers.redirectToRoute(field, 'edit')} + editField={field => this.props.helpers.redirectToRoute(field)} /> ); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx index ba044296a693a9..e8dfbd6496057f 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx @@ -155,7 +155,7 @@ export class ScriptedFieldsTable extends Component<
this.props.helpers.redirectToRoute(field, 'edit')} + editField={field => this.props.helpers.redirectToRoute(field)} deleteField={this.startDeleteField} /> diff --git a/src/legacy/ui/public/field_editor/field_editor.js b/src/legacy/ui/public/field_editor/field_editor.js index 43461c4c689be6..e90cb110ac3048 100644 --- a/src/legacy/ui/public/field_editor/field_editor.js +++ b/src/legacy/ui/public/field_editor/field_editor.js @@ -66,7 +66,7 @@ import { ScriptingHelpFlyout } from './components/scripting_help'; import { FieldFormatEditor } from './components/field_format_editor'; import { FIELD_TYPES_BY_LANG, DEFAULT_FIELD_TYPES } from './constants'; -import { copyField, executeScript, isScriptValid } from './lib'; +import { executeScript, isScriptValid } from './lib'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -100,7 +100,6 @@ export class FieldEditor extends PureComponent { indexPattern: PropTypes.object.isRequired, field: PropTypes.object.isRequired, helpers: PropTypes.shape({ - Field: PropTypes.func.isRequired, getConfig: PropTypes.func.isRequired, $http: PropTypes.func.isRequired, fieldFormatEditors: PropTypes.object.isRequired, @@ -111,11 +110,7 @@ export class FieldEditor extends PureComponent { constructor(props) { super(props); - const { - field, - indexPattern, - helpers: { Field }, - } = props; + const { field, indexPattern } = props; this.state = { isReady: false, @@ -125,7 +120,7 @@ export class FieldEditor extends PureComponent { fieldTypes: [], fieldTypeFormats: [], existingFieldNames: indexPattern.fields.map(f => f.name), - field: copyField(field, indexPattern, Field), + field: { ...field, format: field.format }, fieldFormatId: undefined, fieldFormatParams: {}, showScriptingHelp: false, @@ -730,7 +725,7 @@ export class FieldEditor extends PureComponent { }; saveField = async () => { - const field = this.state.field.toActualField(); + const field = this.state.field; const { indexPattern } = this.props; const { fieldFormatId } = this.state; diff --git a/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js b/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js deleted file mode 100644 index 2cee45742ab81d..00000000000000 --- a/src/legacy/ui/public/field_editor/lib/__tests__/copy_field.test.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { copyField } from '../copy_field'; - -const field = { - name: 'test_field', - scripted: true, - type: 'number', - lang: 'painless', -}; - -describe('copyField', () => { - it('should copy a field', () => { - const copiedField = copyField(field, {}, {}); - copiedField.name = 'test_name_change'; - - // Check that copied field has `toActualField()` method - expect(typeof copiedField.toActualField).toEqual('function'); - - // Check that we did not modify the original field object when - // modifying copied field - expect(field.toActualField).toEqual(undefined); - expect(field.name).toEqual('test_field'); - - expect(copiedField).not.toEqual(field); - expect(copiedField.name).toEqual('test_name_change'); - expect(copiedField.scripted).toEqual(field.scripted); - expect(copiedField.type).toEqual(field.type); - expect(copiedField.lang).toEqual(field.lang); - }); -}); diff --git a/src/legacy/ui/public/field_editor/lib/copy_field.js b/src/legacy/ui/public/field_editor/lib/copy_field.js deleted file mode 100644 index bfc1cb8480d5d4..00000000000000 --- a/src/legacy/ui/public/field_editor/lib/copy_field.js +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { has } from 'lodash'; - -/** - * Fully clones a Field object, so that modifications can be performed on - * the copy without affecting original field. Field objects contain - * enumerable and non-eumerable properties that may or may not be writable. - * The function copies all properties as property descriptors into - * `newFieldProps`, overrides getter and setter, and returns a new object - * created from that. - * - * @param {object} field - Field object to copy - * @param {object} indexPattern - index pattern object the field belongs to - * @param {object} Field - Field object type - * @return {object} the cloned object - */ -export const copyField = (field, indexPattern, Field) => { - const changes = {}; - const newFieldProps = { - // When we are ready to save the copied field back into the index pattern, - // we use `toActualField()` to retrieve an actual `Field` type object, using - // its original properties with our "changes" applied. - toActualField: { - value: () => { - return new Field(indexPattern, { - ...field.$$spec, - ...changes, - }); - }, - }, - }; - - // Index pattern `Field` objects are created with custom property - // descriptors using `ObjDefine`. - // - // Each property of a `Field` type object could be enumerable/non-enumerable, - // writable/not writable, configurable/not configurable, and have custom - // getter and setter. We can't use the original `field` object directly for - // creating a new field or editing a new field, since we need all the - // properties to be editable. - // - // A normal copy of `field` (i.e. `const newField = { ...field }`) will only - // copy enumerable properties and copy each property's descriptors (not - // writable, etc). - // - // So we copy `field`'s **property descriptors** into `newFieldProps` - // and modify them so that they are "writable" with a getter/setter that - // stores and retrieves changes into/from another object (`changes`). - Object.getOwnPropertyNames(field).forEach(function(prop) { - const desc = Object.getOwnPropertyDescriptor(field, prop); - - newFieldProps[prop] = { - enumerable: desc.enumerable, - get: function() { - return has(changes, prop) ? changes[prop] : field[prop]; - }, - set: function(v) { - changes[prop] = v; - }, - }; - }); - - return Object.create(null, newFieldProps); -}; diff --git a/src/legacy/ui/public/field_editor/lib/index.js b/src/legacy/ui/public/field_editor/lib/index.js index c74bb0cc2ef8ab..c9dd9d03b74f7b 100644 --- a/src/legacy/ui/public/field_editor/lib/index.js +++ b/src/legacy/ui/public/field_editor/lib/index.js @@ -17,5 +17,4 @@ * under the License. */ -export { copyField } from './copy_field'; export { executeScript, isScriptValid } from './validate_script'; diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index b62b728beca35f..7a93a42400c18f 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -255,6 +255,7 @@ export { AggregationRestrictions as IndexPatternAggRestrictions, // TODO: exported only in stub_index_pattern test. Move into data plugin and remove export. FieldList as IndexPatternFieldList, + Field, } from './index_patterns'; export { diff --git a/src/plugins/data/public/index_patterns/fields/field.ts b/src/plugins/data/public/index_patterns/fields/field.ts index 03a5b61f9b116b..0fb92393d56f71 100644 --- a/src/plugins/data/public/index_patterns/fields/field.ts +++ b/src/plugins/data/public/index_patterns/fields/field.ts @@ -46,9 +46,6 @@ export class Field implements IFieldType { displayName?: string; indexPattern?: IndexPattern; format: any; - routes: Record = { - edit: '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}', - }; $$spec: FieldSpec; constructor( @@ -147,7 +144,3 @@ export class Field implements IFieldType { return obj.create(); } } - -Field.prototype.routes = { - edit: '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}', -}; diff --git a/src/plugins/data/public/index_patterns/fields/field_list.ts b/src/plugins/data/public/index_patterns/fields/field_list.ts index 03214a8c96427a..d6067280fd7b67 100644 --- a/src/plugins/data/public/index_patterns/fields/field_list.ts +++ b/src/plugins/data/public/index_patterns/fields/field_list.ts @@ -70,11 +70,12 @@ export class FieldList extends Array implements IFieldList { this.splice(fieldIndex, 1); }; - update = (field: Field) => { - const index = this.findIndex(f => f.name === field.name); - this.splice(index, 1, field); - this.setByName(field); - this.removeByGroup(field); - this.setByGroup(field); + update = (field: FieldSpec) => { + const newField = new Field(this.indexPattern, field, this.shortDotsEnable); + const index = this.findIndex(f => f.name === newField.name); + this.splice(index, 1, newField); + this.setByName(newField); + this.removeByGroup(newField); + this.setByGroup(newField); }; } diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index 78659720fe09a7..f4ee93360585ac 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -460,6 +460,53 @@ export interface FetchOptions { searchStrategyId?: string; } +// Warning: (ae-missing-release-tag) "Field" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +class Field implements IFieldType { + // Warning: (ae-forgotten-export) The symbol "FieldSpec" needs to be exported by the entry point index.d.ts + // + // (undocumented) + $$spec: FieldSpec; + constructor(indexPattern: IndexPattern, spec: FieldSpec | Field, shortDotsEnable?: boolean); + // (undocumented) + aggregatable?: boolean; + // (undocumented) + count?: number; + // (undocumented) + displayName?: string; + // (undocumented) + esTypes?: string[]; + // (undocumented) + filterable?: boolean; + // (undocumented) + format: any; + // (undocumented) + indexPattern?: IndexPattern; + // (undocumented) + lang?: string; + // (undocumented) + name: string; + // (undocumented) + script?: string; + // (undocumented) + scripted?: boolean; + // (undocumented) + searchable?: boolean; + // (undocumented) + sortable?: boolean; + // (undocumented) + subType?: IFieldSubType; + // (undocumented) + type: string; + // (undocumented) + visualizable?: boolean; +} + +export { Field } + +export { Field as IndexPatternField } + // Warning: (ae-missing-release-tag) "FieldFormatConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -836,19 +883,19 @@ export class IndexPattern implements IIndexPattern { }[]; }; // (undocumented) - getFieldByName(name: string): IndexPatternField | void; + getFieldByName(name: string): Field | void; // (undocumented) getIndex(): string; // (undocumented) - getNonScriptedFields(): IndexPatternField[]; + getNonScriptedFields(): Field[]; // (undocumented) - getScriptedFields(): IndexPatternField[]; + getScriptedFields(): Field[]; // (undocumented) getSourceFiltering(): { excludes: any[]; }; // (undocumented) - getTimeField(): IndexPatternField | undefined; + getTimeField(): Field | undefined; // (undocumented) id?: string; // (undocumented) @@ -931,66 +978,21 @@ export interface IndexPatternAttributes { typeMeta: string; } -// Warning: (ae-missing-release-tag) "Field" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export class IndexPatternField implements IFieldType { - // Warning: (ae-forgotten-export) The symbol "FieldSpec" needs to be exported by the entry point index.d.ts - // - // (undocumented) - $$spec: FieldSpec; - constructor(indexPattern: IndexPattern, spec: FieldSpec | IndexPatternField, shortDotsEnable?: boolean); - // (undocumented) - aggregatable?: boolean; - // (undocumented) - count?: number; - // (undocumented) - displayName?: string; - // (undocumented) - esTypes?: string[]; - // (undocumented) - filterable?: boolean; - // (undocumented) - format: any; - // (undocumented) - indexPattern?: IndexPattern; - // (undocumented) - lang?: string; - // (undocumented) - name: string; - // (undocumented) - routes: Record; - // (undocumented) - script?: string; - // (undocumented) - scripted?: boolean; - // (undocumented) - searchable?: boolean; - // (undocumented) - sortable?: boolean; - // (undocumented) - subType?: IFieldSubType; - // (undocumented) - type: string; - // (undocumented) - visualizable?: boolean; -} - // Warning: (ae-missing-release-tag) "FieldList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export class IndexPatternFieldList extends Array implements IFieldList { +export class IndexPatternFieldList extends Array implements IFieldList { constructor(indexPattern: IndexPattern, specs?: FieldSpec[], shortDotsEnable?: boolean); // (undocumented) add: (field: Record) => void; // (undocumented) - getByName: (name: string) => IndexPatternField | undefined; + getByName: (name: string) => Field | undefined; // (undocumented) getByType: (type: string) => any[]; // (undocumented) remove: (field: IFieldType) => void; // (undocumented) - update: (field: IndexPatternField) => void; + update: (field: Record) => void; } // Warning: (ae-missing-release-tag) "indexPatterns" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) @@ -1886,21 +1888,21 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:382:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:404:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts From a10ae66e077648adfd491a8b0f24a2a54b0b7388 Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Mon, 20 Apr 2020 20:00:19 -0600 Subject: [PATCH 24/54] [SIEM] Adds recursive exact key checks for validation and formatter (#64023) ## Summary * Adds exact check to cause failures whenever a schema is using t.exact({}) and that schema has extra keys at any level of the schema hierarchy. * Fixes the exact check to work with unknown in a safe way and only do recursive checks for keys only when the unknown is an Object. * Changes the output to use a format error mechanism which pushes all the errors onto one line to be consistent with the response errors. We can change this as a team to whatever we want I just put it to a comma separator as that is what the responses type checks were using downstream. * Moves the downstream code up higher to be used within SIEM for timeline and detection engine. * Adds tests in TDD/red light/green light fashion where I fail the extra key checks first and then pass them second. ### Checklist Delete any items that are not applicable to this PR. - [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios --- .../detection_engine/routes/rules/validate.ts | 4 +- .../schemas/response/__mocks__/utils.ts | 37 ----------- .../response/check_type_dependents.test.ts | 10 +-- .../schemas/response/error_schema.test.ts | 5 +- .../response/find_rules_schema.test.ts | 10 +-- .../response/import_rules_schema.test.ts | 27 ++++++-- .../response/prepackaged_rules_schema.test.ts | 4 +- .../prepackaged_rules_status_schema.test.ts | 4 +- .../response/rules_bulk_schema.test.ts | 10 +-- .../schemas/response/rules_schema.test.ts | 5 +- .../type_timeline_only_schema.test.ts | 4 +- .../schemas/types/iso_date_string.test.ts | 2 +- .../schemas/types/lists_default_array.test.ts | 2 +- ...positive_integer_greater_than_zero.test.ts | 2 +- .../schemas/types/postive_integer.test.ts | 2 +- .../types/references_default_array.test.ts | 2 +- .../routes/schemas/types/risk_score.test.ts | 2 +- .../routes/schemas/types/uuid.test.ts | 2 +- .../routes/export_timelines_route.test.ts | 8 +-- .../routes/import_timelines_route.test.ts | 5 +- .../utils/build_validation/__mocks__/utils.ts | 43 +++++++++++++ .../build_validation}/exact_check.test.ts | 21 +++---- .../build_validation}/exact_check.ts | 59 ++++++++--------- .../build_validation/format_errors.test.ts} | 11 +--- .../build_validation/format_errors.ts} | 0 .../build_validation/route_validation.test.ts | 63 ++++++++++++++++--- .../build_validation/route_validation.ts | 6 +- 27 files changed, 199 insertions(+), 151 deletions(-) create mode 100644 x-pack/plugins/siem/server/utils/build_validation/__mocks__/utils.ts rename x-pack/plugins/siem/server/{lib/detection_engine/routes/schemas/response => utils/build_validation}/exact_check.test.ts (94%) rename x-pack/plugins/siem/server/{lib/detection_engine/routes/schemas/response => utils/build_validation}/exact_check.ts (59%) rename x-pack/plugins/siem/server/{lib/detection_engine/routes/schemas/response/utils.test.ts => utils/build_validation/format_errors.test.ts} (94%) rename x-pack/plugins/siem/server/{lib/detection_engine/routes/schemas/response/utils.ts => utils/build_validation/format_errors.ts} (100%) diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts index c207d075331b6e..cfba40fc225a24 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/validate.ts @@ -9,8 +9,9 @@ import { fold } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; import * as t from 'io-ts'; +import { formatErrors } from '../../../../utils/build_validation/format_errors'; +import { exactCheck } from '../../../../utils/build_validation/exact_check'; import { PartialAlert, FindResult } from '../../../../../../alerting/server'; -import { formatErrors } from '../schemas/response/utils'; import { isAlertType, IRuleSavedAttributesSavedObjectAttributes, @@ -19,7 +20,6 @@ import { import { OutputRuleAlertRest } from '../../types'; import { createBulkErrorObject, BulkError } from '../utils'; import { rulesSchema, RulesSchema } from '../schemas/response/rules_schema'; -import { exactCheck } from '../schemas/response/exact_check'; import { transformFindAlerts, transform, transformAlertToRule } from './utils'; import { findRulesSchema } from '../schemas/response/find_rules_schema'; import { RuleActions } from '../../rule_actions/types'; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts index 21f18f9db55fba..fef6bcf42e49f0 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/__mocks__/utils.ts @@ -4,32 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import * as t from 'io-ts'; -import { fold } from 'fp-ts/lib/Either'; import { RulesSchema } from '../rules_schema'; import { RulesBulkSchema } from '../rules_bulk_schema'; import { ErrorSchema } from '../error_schema'; import { FindRulesSchema } from '../find_rules_schema'; -import { formatErrors } from '../utils'; -import { pipe } from 'fp-ts/lib/pipeable'; - -interface Message { - errors: t.Errors; - schema: T | {}; -} - -const onLeft = (errors: t.Errors): Message => { - return { schema: {}, errors }; -}; - -const onRight = (schema: T): Message => { - return { - schema, - errors: [], - }; -}; - -export const foldLeftRight = fold(onLeft, onRight); export const ANCHOR_DATE = '2020-02-20T03:57:54.037Z'; @@ -127,18 +105,3 @@ export const getFindResponseSingle = (): FindRulesSchema => ({ total: 1, data: [getBaseResponsePayload()], }); - -/** - * Convenience utility to keep the error message handling within tests to be - * very concise. - * @param validation The validation to get the errors from - */ -export const getPaths = (validation: t.Validation): string[] => { - return pipe( - validation, - fold( - errors => formatErrors(errors), - () => ['no errors'] - ) - ); -}; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.test.ts index 0eda2a7a13d96f..fbd2382e2826d4 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.test.ts @@ -15,17 +15,13 @@ import { addQueryFields, addMlFields, } from './check_type_dependents'; -import { - foldLeftRight, - getBaseResponsePayload, - getPaths, - getMlRuleResponsePayload, -} from './__mocks__/utils'; +import { getBaseResponsePayload, getMlRuleResponsePayload } from './__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; -import { exactCheck } from './exact_check'; import { RulesSchema } from './rules_schema'; import { TypeAndTimelineOnly } from './type_timeline_only_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; describe('check_type_dependents', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/error_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/error_schema.test.ts index 11d8b85f259206..6e159a792edb66 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/error_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/error_schema.test.ts @@ -7,10 +7,11 @@ import { left } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { exactCheck } from './exact_check'; -import { foldLeftRight, getErrorPayload, getPaths } from './__mocks__/utils'; +import { getErrorPayload } from './__mocks__/utils'; import { errorSchema, ErrorSchema } from './error_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('error_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/find_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/find_rules_schema.test.ts index f5c1970ee8c55c..68b67db595d76d 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/find_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/find_rules_schema.test.ts @@ -5,17 +5,13 @@ */ import { findRulesSchema, FindRulesSchema } from './find_rules_schema'; -import { exactCheck } from './exact_check'; import { pipe } from 'fp-ts/lib/pipeable'; -import { - foldLeftRight, - getFindResponseSingle, - getBaseResponsePayload, - getPaths, -} from './__mocks__/utils'; +import { getFindResponseSingle, getBaseResponsePayload } from './__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; import { RulesSchema } from './rules_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { getPaths, foldLeftRight } from '../../../../../utils/build_validation/__mocks__/utils'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; describe('find_rules_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/import_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/import_rules_schema.test.ts index ce4bbf420a634b..b0b863ebbbc0b2 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/import_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/import_rules_schema.test.ts @@ -4,13 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { exactCheck } from './exact_check'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from './__mocks__/utils'; -import { left } from 'fp-ts/lib/Either'; +import { left, Either } from 'fp-ts/lib/Either'; import { ImportRulesSchema, importRulesSchema } from './import_rules_schema'; import { ErrorSchema } from './error_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { getPaths, foldLeftRight } from '../../../../../utils/build_validation/__mocks__/utils'; +import { Errors } from 'io-ts'; describe('import_rules_schema', () => { beforeAll(() => { @@ -79,13 +80,31 @@ describe('import_rules_schema', () => { }); test('it should NOT validate a success that is not a boolean', () => { + type UnsafeCastForTest = Either< + Errors, + { + success: string; + success_count: number; + errors: Array< + { + id?: string | undefined; + rule_id?: string | undefined; + } & { + error: { + status_code: number; + message: string; + }; + } + >; + } + >; const payload: Omit & { success: string } = { success: 'hello', success_count: 0, errors: [], }; const decoded = importRulesSchema.decode(payload); - const checked = exactCheck(payload, decoded); + const checked = exactCheck(payload, decoded as UnsafeCastForTest); const message = pipe(checked, foldLeftRight); expect(getPaths(left(message.errors))).toEqual(['Invalid value "hello" supplied to "success"']); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_schema.test.ts index 46667826416e1f..827167c63fd58e 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_schema.test.ts @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { exactCheck } from './exact_check'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from './__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; import { PrePackagedRulesSchema, prePackagedRulesSchema } from './prepackaged_rules_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('prepackaged_rules_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_status_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_status_schema.test.ts index 1c270ff402f75e..a864667583c0a8 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_status_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/prepackaged_rules_status_schema.test.ts @@ -4,15 +4,15 @@ * you may not use this file except in compliance with the Elastic License. */ -import { exactCheck } from './exact_check'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from './__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; import { PrePackagedRulesStatusSchema, prePackagedRulesStatusSchema, } from './prepackaged_rules_status_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('prepackaged_rules_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_bulk_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_bulk_schema.test.ts index 8dc97d727c4d1d..9a7cf5e2c2871c 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_bulk_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_bulk_schema.test.ts @@ -7,17 +7,13 @@ import { left } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { exactCheck } from './exact_check'; -import { - foldLeftRight, - getBaseResponsePayload, - getErrorPayload, - getPaths, -} from './__mocks__/utils'; +import { getBaseResponsePayload, getErrorPayload } from './__mocks__/utils'; import { RulesBulkSchema, rulesBulkSchema } from './rules_bulk_schema'; import { RulesSchema } from './rules_schema'; import { ErrorSchema } from './error_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('prepackaged_rule_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts index 4bfc51c1a66aab..82a6682e6461f9 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/rules_schema.test.ts @@ -7,10 +7,11 @@ import { left } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { exactCheck } from './exact_check'; import { rulesSchema, RulesSchema, removeList } from './rules_schema'; -import { foldLeftRight, getBaseResponsePayload, getPaths } from './__mocks__/utils'; +import { getBaseResponsePayload } from './__mocks__/utils'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; export const ANCHOR_DATE = '2020-02-20T03:57:54.037Z'; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/type_timeline_only_schema.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/type_timeline_only_schema.test.ts index 68a3c8b3038239..85fb124464487a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/type_timeline_only_schema.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/type_timeline_only_schema.test.ts @@ -7,10 +7,10 @@ import { left } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { exactCheck } from './exact_check'; -import { foldLeftRight, getPaths } from './__mocks__/utils'; import { TypeAndTimelineOnly, typeAndTimelineOnlySchema } from './type_timeline_only_schema'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { exactCheck } from '../../../../../utils/build_validation/exact_check'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('prepackaged_rule_schema', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/iso_date_string.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/iso_date_string.test.ts index fbafaf7f52ecb6..ff62ea4443f3f6 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/iso_date_string.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/iso_date_string.test.ts @@ -6,8 +6,8 @@ import { IsoDateString } from './iso_date_string'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('ios_date_string', () => { test('it should validate a iso string', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/lists_default_array.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/lists_default_array.test.ts index e8a9c7b0886a19..2a97c8a4a143e8 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/lists_default_array.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/lists_default_array.test.ts @@ -6,8 +6,8 @@ import { ListsDefaultArray } from './lists_default_array'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('lists_default_array', () => { test('it should validate an empty array', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/positive_integer_greater_than_zero.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/positive_integer_greater_than_zero.test.ts index bc17303f242038..d6f21681df88fe 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/positive_integer_greater_than_zero.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/positive_integer_greater_than_zero.test.ts @@ -6,8 +6,8 @@ import { PositiveIntegerGreaterThanZero } from './positive_integer_greater_than_zero'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('positive_integer_greater_than_zero', () => { test('it should validate a positive number', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/postive_integer.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/postive_integer.test.ts index cee451279663a7..26441745a7f29e 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/postive_integer.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/postive_integer.test.ts @@ -6,8 +6,8 @@ import { PositiveInteger } from './positive_integer'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('positive_integer_greater_than_zero', () => { test('it should validate a positive number', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/references_default_array.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/references_default_array.test.ts index 3ae8415b4f170f..76f722274ce23a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/references_default_array.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/references_default_array.test.ts @@ -6,8 +6,8 @@ import { ReferencesDefaultArray } from './references_default_array'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('references_default_array', () => { test('it should validate an empty array', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/risk_score.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/risk_score.test.ts index ab3f80944489fe..76e3445358dd9b 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/risk_score.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/risk_score.test.ts @@ -6,8 +6,8 @@ import { RiskScore } from './risk_score'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('risk_score', () => { test('it should validate a positive number', () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/uuid.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/uuid.test.ts index 342e6f2db2e16d..7b68dbcef2d7ed 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/uuid.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/types/uuid.test.ts @@ -6,8 +6,8 @@ import { UUID } from './uuid'; import { pipe } from 'fp-ts/lib/pipeable'; -import { foldLeftRight, getPaths } from '../response/__mocks__/utils'; import { left } from 'fp-ts/lib/Either'; +import { foldLeftRight, getPaths } from '../../../../../utils/build_validation/__mocks__/utils'; describe('uuid', () => { test('it should validate a uuid', () => { diff --git a/x-pack/plugins/siem/server/lib/timeline/routes/export_timelines_route.test.ts b/x-pack/plugins/siem/server/lib/timeline/routes/export_timelines_route.test.ts index 47ca25e16bd50d..2bccb7c393837b 100644 --- a/x-pack/plugins/siem/server/lib/timeline/routes/export_timelines_route.test.ts +++ b/x-pack/plugins/siem/server/lib/timeline/routes/export_timelines_route.test.ts @@ -85,7 +85,7 @@ describe('export timelines', () => { const result = server.validate(request); expect(result.badRequest.mock.calls[0][0]).toEqual( - 'Invalid value undefined supplied to : { ids: Array }/ids: Array' + 'Invalid value "undefined" supplied to "ids"' ); }); @@ -98,11 +98,7 @@ describe('export timelines', () => { const result = server.validate(request); expect(result.badRequest.mock.calls[1][0]).toEqual( - [ - 'Invalid value undefined supplied to : { file_name: string, exclude_export_details: ("true" | "false") }/file_name: string', - 'Invalid value undefined supplied to : { file_name: string, exclude_export_details: ("true" | "false") }/exclude_export_details: ("true" | "false")/0: "true"', - 'Invalid value undefined supplied to : { file_name: string, exclude_export_details: ("true" | "false") }/exclude_export_details: ("true" | "false")/1: "false"', - ].join('\n') + 'Invalid value "undefined" supplied to "file_name",Invalid value "undefined" supplied to "exclude_export_details",Invalid value "undefined" supplied to "exclude_export_details"' ); }); }); diff --git a/x-pack/plugins/siem/server/lib/timeline/routes/import_timelines_route.test.ts b/x-pack/plugins/siem/server/lib/timeline/routes/import_timelines_route.test.ts index 3931bf0e5bea51..9f41943cfa27f7 100644 --- a/x-pack/plugins/siem/server/lib/timeline/routes/import_timelines_route.test.ts +++ b/x-pack/plugins/siem/server/lib/timeline/routes/import_timelines_route.test.ts @@ -332,10 +332,7 @@ describe('import timelines', () => { const result = server.validate(request); expect(result.badRequest).toHaveBeenCalledWith( - [ - 'Invalid value undefined supplied to : { file: (ReadableRt & { hapi: { filename: string } }) }/file: (ReadableRt & { hapi: { filename: string } })/0: ReadableRt', - 'Invalid value undefined supplied to : { file: (ReadableRt & { hapi: { filename: string } }) }/file: (ReadableRt & { hapi: { filename: string } })/1: { hapi: { filename: string } }', - ].join('\n') + 'Invalid value "undefined" supplied to "file",Invalid value "undefined" supplied to "file"' ); }); }); diff --git a/x-pack/plugins/siem/server/utils/build_validation/__mocks__/utils.ts b/x-pack/plugins/siem/server/utils/build_validation/__mocks__/utils.ts new file mode 100644 index 00000000000000..578972dda5aeff --- /dev/null +++ b/x-pack/plugins/siem/server/utils/build_validation/__mocks__/utils.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import * as t from 'io-ts'; +import { fold } from 'fp-ts/lib/Either'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { formatErrors } from '../format_errors'; + +interface Message { + errors: t.Errors; + schema: T | {}; +} + +const onLeft = (errors: t.Errors): Message => { + return { schema: {}, errors }; +}; + +const onRight = (schema: T): Message => { + return { + schema, + errors: [], + }; +}; + +export const foldLeftRight = fold(onLeft, onRight); + +/** + * Convenience utility to keep the error message handling within tests to be + * very concise. + * @param validation The validation to get the errors from + */ +export const getPaths = (validation: t.Validation): string[] => { + return pipe( + validation, + fold( + errors => formatErrors(errors), + () => ['no errors'] + ) + ); +}; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.test.ts b/x-pack/plugins/siem/server/utils/build_validation/exact_check.test.ts similarity index 94% rename from x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.test.ts rename to x-pack/plugins/siem/server/utils/build_validation/exact_check.test.ts index cae4365d06856f..1e70deaeed4386 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.test.ts +++ b/x-pack/plugins/siem/server/utils/build_validation/exact_check.test.ts @@ -5,22 +5,13 @@ */ import * as t from 'io-ts'; -import { left, right } from 'fp-ts/lib/Either'; +import { left, right, Either } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; import { foldLeftRight, getPaths } from './__mocks__/utils'; import { exactCheck, findDifferencesRecursive } from './exact_check'; -import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; describe('exact_check', () => { - beforeAll(() => { - setFeatureFlagsForTestsOnly(); - }); - - afterAll(() => { - unSetFeatureFlagsForTestsOnly(); - }); - test('it returns an error if given extra object properties', () => { const someType = t.exact( t.type({ @@ -36,14 +27,22 @@ describe('exact_check', () => { }); test('it returns an error if the data type is not as expected', () => { + type UnsafeCastForTest = Either< + t.Errors, + { + a: number; + } + >; + const someType = t.exact( t.type({ a: t.string, }) ); + const payload = { a: 1 }; const decoded = someType.decode(payload); - const checked = exactCheck(payload, decoded); + const checked = exactCheck(payload, decoded as UnsafeCastForTest); const message = pipe(checked, foldLeftRight); expect(getPaths(left(message.errors))).toEqual(['Invalid value "1" supplied to "a"']); expect(message.schema).toEqual({}); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.ts b/x-pack/plugins/siem/server/utils/build_validation/exact_check.ts similarity index 59% rename from x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.ts rename to x-pack/plugins/siem/server/utils/build_validation/exact_check.ts index 6fa04729501892..9484765f9973df 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/exact_check.ts +++ b/x-pack/plugins/siem/server/utils/build_validation/exact_check.ts @@ -25,10 +25,7 @@ import { isObject, get } from 'lodash/fp'; * @param decoded The decoded either which has either an existing error or the * decoded object which could have additional keys stripped from it. */ -export const exactCheck = ( - original: object, - decoded: Either -): Either => { +export const exactCheck = (original: T, decoded: Either): Either => { const onLeft = (errors: t.Errors): Either => left(errors); const onRight = (decodedValue: T): Either => { const differences = findDifferencesRecursive(original, decodedValue); @@ -47,7 +44,7 @@ export const exactCheck = ( return pipe(decoded, fold(onLeft, onRight)); }; -export const findDifferencesRecursive = (original: object, decodedValue: T): string[] => { +export const findDifferencesRecursive = (original: T, decodedValue: T): string[] => { if (decodedValue == null) { try { // It is null and painful when the original contains an object or an array @@ -56,29 +53,33 @@ export const findDifferencesRecursive = (original: object, decodedValue: T): } catch (err) { return ['circular reference']; } + } else if (typeof original !== 'object' || original == null) { + // We are not an object or null so do not report differences + return []; + } else { + const decodedKeys = Object.keys(decodedValue); + const differences = Object.keys(original).flatMap(originalKey => { + const foundKey = decodedKeys.some(key => key === originalKey); + const topLevelKey = foundKey ? [] : [originalKey]; + // I use lodash to cheat and get an any (not going to lie ;-)) + const valueObjectOrArrayOriginal = get(originalKey, original); + const valueObjectOrArrayDecoded = get(originalKey, decodedValue); + if (isObject(valueObjectOrArrayOriginal)) { + return [ + ...topLevelKey, + ...findDifferencesRecursive(valueObjectOrArrayOriginal, valueObjectOrArrayDecoded), + ]; + } else if (Array.isArray(valueObjectOrArrayOriginal)) { + return [ + ...topLevelKey, + ...valueObjectOrArrayOriginal.flatMap((arrayElement, index) => + findDifferencesRecursive(arrayElement, get(index, valueObjectOrArrayDecoded)) + ), + ]; + } else { + return topLevelKey; + } + }); + return differences; } - const decodedKeys = Object.keys(decodedValue); - const differences = Object.keys(original).flatMap(originalKey => { - const foundKey = decodedKeys.some(key => key === originalKey); - const topLevelKey = foundKey ? [] : [originalKey]; - // I use lodash to cheat and get an any (not going to lie ;-)) - const valueObjectOrArrayOriginal = get(originalKey, original); - const valueObjectOrArrayDecoded = get(originalKey, decodedValue); - if (isObject(valueObjectOrArrayOriginal)) { - return [ - ...topLevelKey, - ...findDifferencesRecursive(valueObjectOrArrayOriginal, valueObjectOrArrayDecoded), - ]; - } else if (Array.isArray(valueObjectOrArrayOriginal)) { - return [ - ...topLevelKey, - ...valueObjectOrArrayOriginal.flatMap((arrayElement, index) => - findDifferencesRecursive(arrayElement, get(index, valueObjectOrArrayDecoded)) - ), - ]; - } else { - return topLevelKey; - } - }); - return differences; }; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/utils.test.ts b/x-pack/plugins/siem/server/utils/build_validation/format_errors.test.ts similarity index 94% rename from x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/utils.test.ts rename to x-pack/plugins/siem/server/utils/build_validation/format_errors.test.ts index c1eb32be4895c2..f9dd9e76a1d9c6 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/utils.test.ts +++ b/x-pack/plugins/siem/server/utils/build_validation/format_errors.test.ts @@ -5,18 +5,9 @@ */ import * as t from 'io-ts'; -import { formatErrors } from './utils'; -import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../../feature_flags'; +import { formatErrors } from './format_errors'; describe('utils', () => { - beforeAll(() => { - setFeatureFlagsForTestsOnly(); - }); - - afterAll(() => { - unSetFeatureFlagsForTestsOnly(); - }); - test('returns an empty error message string if there are no errors', () => { const errors: t.Errors = []; const output = formatErrors(errors); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/utils.ts b/x-pack/plugins/siem/server/utils/build_validation/format_errors.ts similarity index 100% rename from x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/utils.ts rename to x-pack/plugins/siem/server/utils/build_validation/format_errors.ts diff --git a/x-pack/plugins/siem/server/utils/build_validation/route_validation.test.ts b/x-pack/plugins/siem/server/utils/build_validation/route_validation.test.ts index d17a8457ff81be..866dbe9480ca59 100644 --- a/x-pack/plugins/siem/server/utils/build_validation/route_validation.test.ts +++ b/x-pack/plugins/siem/server/utils/build_validation/route_validation.test.ts @@ -9,9 +9,33 @@ import * as rt from 'io-ts'; import { RouteValidationResultFactory } from '../../../../../../src/core/server/http'; describe('buildRouteValidation', () => { - const schema = rt.type({ - ids: rt.array(rt.string), - }); + const schema = rt.exact( + rt.type({ + ids: rt.array(rt.string), + }) + ); + type Schema = rt.TypeOf; + + /** + * If your schema is using exact all the way down then the validation will + * catch any additional keys that should not be present within the validation + * when the route_validation uses the exact check. + */ + const deepSchema = rt.exact( + rt.type({ + topLevel: rt.exact( + rt.type({ + secondLevel: rt.exact( + rt.type({ + thirdLevel: rt.string, + }) + ), + }) + ), + }) + ); + type DeepSchema = rt.TypeOf; + const validationResult: RouteValidationResultFactory = { ok: jest.fn().mockImplementation(validatedInput => validatedInput), badRequest: jest.fn().mockImplementation(e => e), @@ -22,18 +46,41 @@ describe('buildRouteValidation', () => { }); test('return validation error', () => { - const input = { id: 'someId' }; + const input: Omit & { id: string } = { id: 'someId' }; const result = buildRouteValidation(schema)(input, validationResult); - expect(result).toEqual( - 'Invalid value undefined supplied to : { ids: Array }/ids: Array' - ); + expect(result).toEqual('Invalid value "undefined" supplied to "ids"'); }); test('return validated input', () => { - const input = { ids: ['someId'] }; + const input: Schema = { ids: ['someId'] }; const result = buildRouteValidation(schema)(input, validationResult); expect(result).toEqual(input); }); + + test('returns validation error if given extra keys on input for an array', () => { + const input: Schema & { somethingExtra: string } = { + ids: ['someId'], + somethingExtra: 'hello', + }; + const result = buildRouteValidation(schema)(input, validationResult); + expect(result).toEqual('invalid keys "somethingExtra"'); + }); + + test('return validation input for a deep 3rd level object', () => { + const input: DeepSchema = { topLevel: { secondLevel: { thirdLevel: 'hello' } } }; + const result = buildRouteValidation(deepSchema)(input, validationResult); + expect(result).toEqual(input); + }); + + test('return validation error for a deep 3rd level object that has an extra key value of "somethingElse"', () => { + const input: DeepSchema & { + topLevel: { secondLevel: { thirdLevel: string; somethingElse: string } }; + } = { + topLevel: { secondLevel: { thirdLevel: 'hello', somethingElse: 'extraKey' } }, + }; + const result = buildRouteValidation(deepSchema)(input, validationResult); + expect(result).toEqual('invalid keys "somethingElse"'); + }); }); diff --git a/x-pack/plugins/siem/server/utils/build_validation/route_validation.ts b/x-pack/plugins/siem/server/utils/build_validation/route_validation.ts index bfcd0998fe6900..30b95dcfa94ee3 100644 --- a/x-pack/plugins/siem/server/utils/build_validation/route_validation.ts +++ b/x-pack/plugins/siem/server/utils/build_validation/route_validation.ts @@ -7,12 +7,13 @@ import { fold } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; import * as rt from 'io-ts'; -import { failure } from 'io-ts/lib/PathReporter'; import { RouteValidationFunction, RouteValidationResultFactory, RouteValidationError, } from '../../../../../../src/core/server'; +import { exactCheck } from './exact_check'; +import { formatErrors } from './format_errors'; type RequestValidationResult = | { @@ -32,8 +33,9 @@ export const buildRouteValidation = >( ) => pipe( schema.decode(inputValue), + decoded => exactCheck(inputValue, decoded), fold>( - (errors: rt.Errors) => validationResult.badRequest(failure(errors).join('\n')), + (errors: rt.Errors) => validationResult.badRequest(formatErrors(errors).join()), (validatedInput: A) => validationResult.ok(validatedInput) ) ); From 4aa9bf6ea302fe65f440c13935e3c9192444fddb Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Tue, 21 Apr 2020 08:37:35 +0200 Subject: [PATCH 25/54] Add redirect function to kibana_legacy legacy application service (#63702) (#63964) --- .../core_plugins/kibana/public/kibana.js | 5 +- .../local_application_service.ts | 25 ++++++-- .../new_platform/new_platform.karma_mock.js | 2 + src/plugins/kibana_legacy/public/mocks.ts | 2 + src/plugins/kibana_legacy/public/plugin.ts | 60 +++++++++++++++++-- 5 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/legacy/core_plugins/kibana/public/kibana.js b/src/legacy/core_plugins/kibana/public/kibana.js index 20c46765dcb302..ea0d5ad3790b13 100644 --- a/src/legacy/core_plugins/kibana/public/kibana.js +++ b/src/legacy/core_plugins/kibana/public/kibana.js @@ -49,8 +49,9 @@ import { showAppRedirectNotification } from '../../../../plugins/kibana_legacy/p import 'leaflet'; import { localApplicationService } from './local_application_service'; -npSetup.plugins.kibanaLegacy.forwardApp('doc', 'discover', { keepPrefix: true }); -npSetup.plugins.kibanaLegacy.forwardApp('context', 'discover', { keepPrefix: true }); +npSetup.plugins.kibanaLegacy.registerLegacyAppAlias('doc', 'discover', { keepPrefix: true }); +npSetup.plugins.kibanaLegacy.registerLegacyAppAlias('context', 'discover', { keepPrefix: true }); + localApplicationService.attachToAngular(routes); routes.enable(); diff --git a/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts b/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts index 14564cfd9ee784..f38c410e6832f7 100644 --- a/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts +++ b/src/legacy/core_plugins/kibana/public/local_application_service/local_application_service.ts @@ -98,14 +98,29 @@ export class LocalApplicationService { } }); - npStart.plugins.kibanaLegacy.getForwards().forEach(({ legacyAppId, newAppId, keepPrefix }) => { - angularRouteManager.when(matchAllWithPrefix(legacyAppId), { - resolveRedirectTo: ($location: ILocationService) => { - const url = $location.url(); - return `/${newAppId}${keepPrefix ? url : url.replace(legacyAppId, '')}`; + npStart.plugins.kibanaLegacy.getForwards().forEach(forwardDefinition => { + angularRouteManager.when(matchAllWithPrefix(forwardDefinition.legacyAppId), { + outerAngularWrapperRoute: true, + reloadOnSearch: false, + reloadOnUrl: false, + template: '', + controller($location: ILocationService) { + const newPath = forwardDefinition.rewritePath($location.url()); + npStart.core.application.navigateToApp(forwardDefinition.newAppId, { path: newPath }); }, }); }); + + npStart.plugins.kibanaLegacy + .getLegacyAppAliases() + .forEach(({ legacyAppId, newAppId, keepPrefix }) => { + angularRouteManager.when(matchAllWithPrefix(legacyAppId), { + resolveRedirectTo: ($location: ILocationService) => { + const url = $location.url(); + return `/${newAppId}${keepPrefix ? url : url.replace(legacyAppId, '')}`; + }, + }); + }); } } diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index f577a29ce90b91..f14f26613ef019 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -242,6 +242,7 @@ export const npSetup = { }, kibanaLegacy: { registerLegacyApp: () => {}, + registerLegacyAppAlias: () => {}, forwardApp: () => {}, config: { defaultAppId: 'home', @@ -362,6 +363,7 @@ export const npStart = { kibanaLegacy: { getApps: () => [], getForwards: () => [], + getLegacyAppAliases: () => [], config: { defaultAppId: 'home', }, diff --git a/src/plugins/kibana_legacy/public/mocks.ts b/src/plugins/kibana_legacy/public/mocks.ts index 8e9a05b186191f..2fdd0d8b4be590 100644 --- a/src/plugins/kibana_legacy/public/mocks.ts +++ b/src/plugins/kibana_legacy/public/mocks.ts @@ -25,6 +25,7 @@ export type Start = jest.Mocked>; const createSetupContract = (): Setup => ({ forwardApp: jest.fn(), + registerLegacyAppAlias: jest.fn(), registerLegacyApp: jest.fn(), config: { defaultAppId: 'home', @@ -37,6 +38,7 @@ const createSetupContract = (): Setup => ({ const createStartContract = (): Start => ({ getApps: jest.fn(), + getLegacyAppAliases: jest.fn(), getForwards: jest.fn(), config: { defaultAppId: 'home', diff --git a/src/plugins/kibana_legacy/public/plugin.ts b/src/plugins/kibana_legacy/public/plugin.ts index 2ad620f355848a..831fc3f0d4a71f 100644 --- a/src/plugins/kibana_legacy/public/plugin.ts +++ b/src/plugins/kibana_legacy/public/plugin.ts @@ -28,12 +28,18 @@ import { Observable } from 'rxjs'; import { ConfigSchema } from '../config'; import { getDashboardConfig } from './dashboard_config'; -interface ForwardDefinition { +interface LegacyAppAliasDefinition { legacyAppId: string; newAppId: string; keepPrefix: boolean; } +interface ForwardDefinition { + legacyAppId: string; + newAppId: string; + rewritePath: (legacyPath: string) => string; +} + export type AngularRenderedAppUpdater = ( app: AppBase ) => Partial | undefined; @@ -54,7 +60,8 @@ export interface AngularRenderedApp extends App { export class KibanaLegacyPlugin { private apps: AngularRenderedApp[] = []; - private forwards: ForwardDefinition[] = []; + private legacyAppAliases: LegacyAppAliasDefinition[] = []; + private forwardDefinitions: ForwardDefinition[] = []; constructor(private readonly initializerContext: PluginInitializerContext) {} @@ -94,17 +101,55 @@ export class KibanaLegacyPlugin { * renaming or nesting plugins. For route changes after the prefix, please * use the routing mechanism of your app. * + * This method just redirects URLs within the legacy `kibana` app. + * * @param legacyAppId The name of the old app to forward URLs from * @param newAppId The name of the new app that handles the URLs now * @param options Whether the prefix of the old app is kept to nest the legacy * path into the new path */ - forwardApp: ( + registerLegacyAppAlias: ( legacyAppId: string, newAppId: string, options: { keepPrefix: boolean } = { keepPrefix: false } ) => { - this.forwards.push({ legacyAppId, newAppId, ...options }); + this.legacyAppAliases.push({ legacyAppId, newAppId, ...options }); + }, + + /** + * Forwards URLs within the legacy `kibana` app to a new platform application. + * + * @param legacyAppId The name of the old app to forward URLs from + * @param newAppId The name of the new app that handles the URLs now + * @param rewritePath Function to rewrite the legacy sub path of the app to the new path in the core app + * path into the new path + * + * Example usage: + * ``` + * kibanaLegacy.forwardApp( + * 'old', + * 'new', + * path => { + * const [, id] = /old/item\/(.*)$/.exec(path) || []; + * if (!id) { + * return '#/home'; + * } + * return '#/items/${id}'; + * } + * ); + * ``` + * This will cause the following redirects: + * + * * app/kibana#/old/ -> app/new#/home + * * app/kibana#/old/item/123 -> app/new#/items/123 + * + */ + forwardApp: ( + legacyAppId: string, + newAppId: string, + rewritePath: (legacyPath: string) => string + ) => { + this.forwardDefinitions.push({ legacyAppId, newAppId, rewritePath }); }, /** @@ -132,7 +177,12 @@ export class KibanaLegacyPlugin { * @deprecated * Just exported for wiring up with legacy platform, should not be used. */ - getForwards: () => this.forwards, + getLegacyAppAliases: () => this.legacyAppAliases, + /** + * @deprecated + * Just exported for wiring up with legacy platform, should not be used. + */ + getForwards: () => this.forwardDefinitions, config: this.initializerContext.config.get(), dashboardConfig: getDashboardConfig(!application.capabilities.dashboard.showWriteControls), }; From 013aeee650315f665a1f45cb504263e4e20511b0 Mon Sep 17 00:00:00 2001 From: Ben Skelker <54019610+benskelker@users.noreply.github.com> Date: Tue, 21 Apr 2020 09:43:21 +0300 Subject: [PATCH 26/54] [Docs]Adds saved object key setting to load balancing kib instances (#63935) (#64038) * adds saved object key setting to load balancing kib instances * SIEM section doc updates * Revert "SIEM section doc updates" - wrong PR This reverts commit fc55d90a6d1fe30b2f9f06e3bf6b7efee52c84d5. * corrections --- docs/setup/production.asciidoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/setup/production.asciidoc b/docs/setup/production.asciidoc index eef2b11e53d85f..19f9d64d13623d 100644 --- a/docs/setup/production.asciidoc +++ b/docs/setup/production.asciidoc @@ -133,7 +133,8 @@ server.port Settings that must be the same: -------- xpack.security.encryptionKey //decrypting session cookies -xpack.reporting.encryptionKey //decrypting reports stored in Elasticsearch +xpack.reporting.encryptionKey //decrypting reports +xpack.encryptedSavedObjects.encryptionKey // decrypting saved objects -------- Separate configuration files can be used from the command line by using the `-c` flag: From 41ff32a8e1459f36d729fe33fe8b74c21d4b4baa Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Tue, 21 Apr 2020 08:45:34 +0200 Subject: [PATCH 27/54] [Discover] Allow user to generate a report after saving a modified saved search (#63623) (#63989) * Fix missing reset of initial state when saving saved searches * Fix invalid setting of docTitle * Add functional test --- .../discover/np_ready/angular/discover.js | 6 ++++-- x-pack/test/reporting/functional/reporting.js | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js index 72276a38f6ac21..56966d6294c9a4 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js @@ -57,7 +57,6 @@ const { core, chrome, data, - docTitle, history, indexPatterns, filterManager, @@ -214,6 +213,7 @@ function discoverController( isAppStateDirty, kbnUrlStateStorage, getPreviousAppState, + resetInitialAppState, } = getState({ defaultAppState: getStateDefaults(), storeInSessionStorage: config.get('state:storeInSessionStorage'), @@ -373,6 +373,8 @@ function discoverController( // If the save wasn't successful, put the original values back. if (!response.id || response.error) { savedSearch.title = currentTitle; + } else { + resetInitialAppState(); } return response; }); @@ -758,7 +760,7 @@ function discoverController( } else { // Update defaults so that "reload saved query" functions correctly setAppState(getStateDefaults()); - docTitle.change(savedSearch.lastSavedTitle); + chrome.docTitle.change(savedSearch.lastSavedTitle); } } }); diff --git a/x-pack/test/reporting/functional/reporting.js b/x-pack/test/reporting/functional/reporting.js index b3ef1ab2b54b4f..86fe2fd0393efc 100644 --- a/x-pack/test/reporting/functional/reporting.js +++ b/x-pack/test/reporting/functional/reporting.js @@ -14,6 +14,7 @@ export default function({ getService, getPageObjects }) { const esArchiver = getService('esArchiver'); const browser = getService('browser'); const log = getService('log'); + const filterBar = getService('filterBar'); const PageObjects = getPageObjects([ 'reporting', 'common', @@ -123,7 +124,27 @@ export default function({ getService, getPageObjects }) { expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); }); + it('becomes available/not available when a saved search is created, changed and saved again', async () => { + // create new search, csv export is not available + await PageObjects.discover.clickNewSearchButton(); + await PageObjects.reporting.openCsvReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + // save search, csv export is available + await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2'); + await PageObjects.reporting.openCsvReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + // add filter, csv export is not available + await filterBar.addFilter('currency', 'is', 'EUR'); + await PageObjects.reporting.openCsvReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + // save search again, csv export is available + await PageObjects.discover.saveSearch('my search - expectEnabledGenerateReportButton 2'); + await PageObjects.reporting.openCsvReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + }); + it('generates a report with data', async () => { + await PageObjects.discover.clickNewSearchButton(); await PageObjects.reporting.setTimepickerInDataRange(); await PageObjects.discover.saveSearch('my search - with data - expectReportCanBeCreated'); await PageObjects.reporting.openCsvReportingPanel(); From 653eb4f4d6d3bae7042a77289c8b19c4985b78ad Mon Sep 17 00:00:00 2001 From: Pierre Gayvallet Date: Tue, 21 Apr 2020 11:45:30 +0200 Subject: [PATCH 28/54] kbn/config-schema: Consider maybe properties as optional keys in ObjectType (#63838) (#64036) * consider optional properties as optional keys in ObjectType * fix type on security config * fix ObjectTypeOptions --- .../src/types/object_type.test.ts | 24 +++++++++++++++++++ .../src/types/object_type.ts | 23 ++++++++++++++---- .../server/http/router/validator/validator.ts | 17 +++++++++---- 3 files changed, 55 insertions(+), 9 deletions(-) diff --git a/packages/kbn-config-schema/src/types/object_type.test.ts b/packages/kbn-config-schema/src/types/object_type.test.ts index 47a0f5f7a5491c..5ab59d1c020779 100644 --- a/packages/kbn-config-schema/src/types/object_type.test.ts +++ b/packages/kbn-config-schema/src/types/object_type.test.ts @@ -18,6 +18,7 @@ */ import { schema } from '..'; +import { TypeOf } from './object_type'; test('returns value by default', () => { const type = schema.object({ @@ -350,3 +351,26 @@ test('unknowns = `ignore` affects only own keys', () => { }) ).toThrowErrorMatchingInlineSnapshot(`"[foo.baz]: definition for this key is missing"`); }); + +test('handles optional properties', () => { + const type = schema.object({ + required: schema.string(), + optional: schema.maybe(schema.string()), + }); + + type SchemaType = TypeOf; + + let foo: SchemaType = { + required: 'foo', + }; + foo = { + required: 'hello', + optional: undefined, + }; + foo = { + required: 'hello', + optional: 'bar', + }; + + expect(foo).toBeDefined(); +}); diff --git a/packages/kbn-config-schema/src/types/object_type.ts b/packages/kbn-config-schema/src/types/object_type.ts index 5a50e714a59311..fee2d02c1bfb96 100644 --- a/packages/kbn-config-schema/src/types/object_type.ts +++ b/packages/kbn-config-schema/src/types/object_type.ts @@ -26,9 +26,26 @@ export type Props = Record>; export type TypeOf> = RT['type']; +type OptionalProperties = Pick< + Base, + { + [Key in keyof Base]: undefined extends TypeOf ? Key : never; + }[keyof Base] +>; + +type RequiredProperties = Pick< + Base, + { + [Key in keyof Base]: undefined extends TypeOf ? never : Key; + }[keyof Base] +>; + // Because of https://github.com/Microsoft/TypeScript/issues/14041 // this might not have perfect _rendering_ output, but it will be typed. -export type ObjectResultType

= Readonly<{ [K in keyof P]: TypeOf }>; +export type ObjectResultType

= Readonly< + { [K in keyof OptionalProperties

]?: TypeOf } & + { [K in keyof RequiredProperties

]: TypeOf } +>; interface UnknownOptions { /** @@ -40,9 +57,7 @@ interface UnknownOptions { unknowns?: 'allow' | 'ignore' | 'forbid'; } -export type ObjectTypeOptions

= TypeOptions< - { [K in keyof P]: TypeOf } -> & +export type ObjectTypeOptions

= TypeOptions> & UnknownOptions; export class ObjectType

extends Type> { diff --git a/src/core/server/http/router/validator/validator.ts b/src/core/server/http/router/validator/validator.ts index 6c766e69f0f37f..a2299b47ae253d 100644 --- a/src/core/server/http/router/validator/validator.ts +++ b/src/core/server/http/router/validator/validator.ts @@ -17,7 +17,14 @@ * under the License. */ -import { ValidationError, Type, schema, ObjectType, isConfigSchema } from '@kbn/config-schema'; +import { + ValidationError, + Type, + schema, + ObjectType, + TypeOf, + isConfigSchema, +} from '@kbn/config-schema'; import { Stream } from 'stream'; import { RouteValidationError } from './validator_error'; @@ -85,7 +92,7 @@ type RouteValidationResultType | undefined> = T extends RouteValidationFunction ? ReturnType['value'] : T extends Type - ? ReturnType + ? TypeOf : undefined >; @@ -170,7 +177,7 @@ export class RouteValidator

{ * @internal */ public getParams(data: unknown, namespace?: string): Readonly

{ - return this.validate(this.config.params, this.options.unsafe?.params, data, namespace); + return this.validate(this.config.params, this.options.unsafe?.params, data, namespace) as P; } /** @@ -178,7 +185,7 @@ export class RouteValidator

{ * @internal */ public getQuery(data: unknown, namespace?: string): Readonly { - return this.validate(this.config.query, this.options.unsafe?.query, data, namespace); + return this.validate(this.config.query, this.options.unsafe?.query, data, namespace) as Q; } /** @@ -186,7 +193,7 @@ export class RouteValidator

{ * @internal */ public getBody(data: unknown, namespace?: string): Readonly { - return this.validate(this.config.body, this.options.unsafe?.body, data, namespace); + return this.validate(this.config.body, this.options.unsafe?.body, data, namespace) as B; } /** From 21be1c08da3d3ca397c4b7ff751762368eb1e4c6 Mon Sep 17 00:00:00 2001 From: Matthias Wilhelm Date: Tue, 21 Apr 2020 12:04:16 +0200 Subject: [PATCH 29/54] Migrate vis_type_table to kibana/new platform (#63105) (#64042) * Move vis_type_table to Kibana Platform * Adapt mocha tests * Adapt SCSS --- .i18nrc.json | 2 +- .../__tests__/vis_type_table}/agg_table.js | 16 ++- .../vis_type_table}/agg_table_group.js | 15 ++- .../__tests__/vis_type_table}/legacy.ts | 18 +-- .../vis_type_table}/tabified_data.js | 0 .../core_plugins/vis_type_table/index.ts | 44 ------- .../core_plugins/vis_type_table/package.json | 4 - .../public/agg_table/_index.scss | 1 - .../public/paginated_table/_index.scss | 1 - .../vis_type_table/public/table_vis_type.ts | 98 ---------------- .../vis_type_table/public/vis_controller.ts | 104 ----------------- .../public/angular/angular_config.tsx | 6 +- .../vis_type_table/config.ts} | 8 +- src/plugins/vis_type_table/kibana.json | 11 ++ .../__snapshots__/table_vis_fn.test.ts.snap | 0 .../vis_type_table/public/_table_vis.scss | 0 .../public/agg_table/_agg_table.scss | 0 .../public/agg_table/_index.scss | 1 + .../public/agg_table/agg_table.html | 0 .../public/agg_table/agg_table.js | 4 +- .../public/agg_table/agg_table_group.html | 0 .../public/agg_table/agg_table_group.js | 0 .../public/components/table_vis_options.tsx | 8 +- .../vis_type_table/public/components/utils.ts | 0 .../public/get_inner_angular.ts | 8 +- .../vis_type_table/public/index.scss | 6 +- .../vis_type_table/public/index.ts | 4 +- .../public/paginated_table/_index.scss | 1 + .../paginated_table/_table_cell_filter.scss | 0 .../paginated_table/paginated_table.html | 0 .../public/paginated_table/paginated_table.js | 0 .../paginated_table/paginated_table.test.ts | 11 +- .../public/paginated_table/rows.js | 0 .../paginated_table/table_cell_filter.html | 0 .../vis_type_table/public/plugin.ts | 17 +-- .../vis_type_table/public/services.ts | 4 +- .../vis_type_table/public/table_vis.html | 0 .../public/table_vis_controller.js | 0 .../public/table_vis_controller.test.ts | 31 +++-- .../public/table_vis_fn.test.ts | 2 +- .../vis_type_table/public/table_vis_fn.ts | 6 +- .../public/table_vis_legacy_module.ts | 0 .../public/table_vis_response_handler.ts | 0 .../vis_type_table/public/table_vis_type.ts | 100 ++++++++++++++++ .../vis_type_table/public/types.ts | 2 +- .../vis_type_table/public/vis_controller.ts | 109 ++++++++++++++++++ src/plugins/vis_type_table/server/index.ts | 34 ++++++ 47 files changed, 353 insertions(+), 323 deletions(-) rename src/legacy/core_plugins/{vis_type_table/public/agg_table/__tests__ => kibana/public/__tests__/vis_type_table}/agg_table.js (94%) rename src/legacy/core_plugins/{vis_type_table/public/agg_table/__tests__ => kibana/public/__tests__/vis_type_table}/agg_table_group.js (81%) rename src/legacy/core_plugins/{vis_type_table/public => kibana/public/__tests__/vis_type_table}/legacy.ts (69%) rename src/legacy/core_plugins/{vis_type_table/public/agg_table/__tests__ => kibana/public/__tests__/vis_type_table}/tabified_data.js (100%) delete mode 100644 src/legacy/core_plugins/vis_type_table/index.ts delete mode 100644 src/legacy/core_plugins/vis_type_table/package.json delete mode 100644 src/legacy/core_plugins/vis_type_table/public/agg_table/_index.scss delete mode 100644 src/legacy/core_plugins/vis_type_table/public/paginated_table/_index.scss delete mode 100644 src/legacy/core_plugins/vis_type_table/public/table_vis_type.ts delete mode 100644 src/legacy/core_plugins/vis_type_table/public/vis_controller.ts rename src/{legacy/core_plugins/vis_type_table/public/legacy_imports.ts => plugins/vis_type_table/config.ts} (79%) create mode 100644 src/plugins/vis_type_table/kibana.json rename src/{legacy/core_plugins => plugins}/vis_type_table/public/__snapshots__/table_vis_fn.test.ts.snap (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/_table_vis.scss (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/agg_table/_agg_table.scss (100%) create mode 100644 src/plugins/vis_type_table/public/agg_table/_index.scss rename src/{legacy/core_plugins => plugins}/vis_type_table/public/agg_table/agg_table.html (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/agg_table/agg_table.js (98%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/agg_table/agg_table_group.html (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/agg_table/agg_table_group.js (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/components/table_vis_options.tsx (96%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/components/utils.ts (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/get_inner_angular.ts (91%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/index.scss (61%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/index.ts (92%) create mode 100644 src/plugins/vis_type_table/public/paginated_table/_index.scss rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/_table_cell_filter.scss (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/paginated_table.html (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/paginated_table.js (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/paginated_table.test.ts (98%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/rows.js (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/paginated_table/table_cell_filter.html (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/plugin.ts (80%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/services.ts (86%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis.html (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_controller.js (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_controller.test.ts (89%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_fn.test.ts (95%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_fn.ts (94%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_legacy_module.ts (100%) rename src/{legacy/core_plugins => plugins}/vis_type_table/public/table_vis_response_handler.ts (100%) create mode 100644 src/plugins/vis_type_table/public/table_vis_type.ts rename src/{legacy/core_plugins => plugins}/vis_type_table/public/types.ts (94%) create mode 100644 src/plugins/vis_type_table/public/vis_controller.ts create mode 100644 src/plugins/vis_type_table/server/index.ts diff --git a/.i18nrc.json b/.i18nrc.json index 4a516f23ebf05d..d4286a7bd50e0f 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -48,7 +48,7 @@ "visDefaultEditor": "src/plugins/vis_default_editor", "visTypeMarkdown": "src/plugins/vis_type_markdown", "visTypeMetric": "src/plugins/vis_type_metric", - "visTypeTable": "src/legacy/core_plugins/vis_type_table", + "visTypeTable": "src/plugins/vis_type_table", "visTypeTagCloud": "src/legacy/core_plugins/vis_type_tagcloud", "visTypeTimeseries": ["src/legacy/core_plugins/vis_type_timeseries", "src/plugins/vis_type_timeseries"], "visTypeVega": "src/legacy/core_plugins/vis_type_vega", diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table.js b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table.js similarity index 94% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table.js rename to src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table.js index a23407a599ae27..b212ecf578dd1f 100644 --- a/src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table.js +++ b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table.js @@ -22,11 +22,18 @@ import moment from 'moment'; import ngMock from 'ng_mock'; import expect from '@kbn/expect'; import sinon from 'sinon'; -import { npStart } from '../../legacy_imports'; +import './legacy'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { npStart } from 'ui/new_platform'; import { round } from 'lodash'; -import { getAngularModule } from '../../get_inner_angular'; -import { initTableVisLegacyModule } from '../../table_vis_legacy_module'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInnerAngular } from '../../../../../../plugins/vis_type_table/public/get_inner_angular'; + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { initTableVisLegacyModule } from '../../../../../../plugins/vis_type_table/public/table_vis_legacy_module'; import { tabifiedData } from './tabified_data'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { configureAppAngularModule } from '../../../../../../plugins/kibana_legacy/public/angular'; describe('Table Vis - AggTable Directive', function() { let $rootScope; @@ -34,7 +41,8 @@ describe('Table Vis - AggTable Directive', function() { let settings; const initLocalAngular = () => { - const tableVisModule = getAngularModule('kibana/table_vis', npStart.core); + const tableVisModule = getInnerAngular('kibana/table_vis', npStart.core); + configureAppAngularModule(tableVisModule, npStart.core, true); initTableVisLegacyModule(tableVisModule); }; diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table_group.js b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table_group.js similarity index 81% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table_group.js rename to src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table_group.js index 40a0993ccb0175..3cd7de393d66a8 100644 --- a/src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/agg_table_group.js +++ b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/agg_table_group.js @@ -20,17 +20,24 @@ import $ from 'jquery'; import ngMock from 'ng_mock'; import expect from '@kbn/expect'; -import { npStart } from '../../legacy_imports'; -import { getAngularModule } from '../../get_inner_angular'; -import { initTableVisLegacyModule } from '../../table_vis_legacy_module'; +import './legacy'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInnerAngular } from '../../../../../../plugins/vis_type_table/public/get_inner_angular'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { initTableVisLegacyModule } from '../../../../../../plugins/vis_type_table/public/table_vis_legacy_module'; import { tabifiedData } from './tabified_data'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { npStart } from 'ui/new_platform'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { configureAppAngularModule } from '../../../../../../plugins/kibana_legacy/public/angular'; describe('Table Vis - AggTableGroup Directive', function() { let $rootScope; let $compile; const initLocalAngular = () => { - const tableVisModule = getAngularModule('kibana/table_vis', npStart.core); + const tableVisModule = getInnerAngular('kibana/table_vis', npStart.core); + configureAppAngularModule(tableVisModule, npStart.core, true); initTableVisLegacyModule(tableVisModule); }; diff --git a/src/legacy/core_plugins/vis_type_table/public/legacy.ts b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/legacy.ts similarity index 69% rename from src/legacy/core_plugins/vis_type_table/public/legacy.ts rename to src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/legacy.ts index 3d5f8c1b3efe92..c6467a5beae686 100644 --- a/src/legacy/core_plugins/vis_type_table/public/legacy.ts +++ b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/legacy.ts @@ -16,19 +16,23 @@ * specific language governing permissions and limitations * under the License. */ - import { PluginInitializerContext } from 'kibana/public'; -import { npSetup, npStart } from './legacy_imports'; -import { plugin } from '.'; - -import { TablePluginSetupDependencies } from './plugin'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { npStart, npSetup } from 'ui/new_platform'; +import { + TableVisPlugin, + TablePluginSetupDependencies, + // eslint-disable-next-line @kbn/eslint/no-restricted-paths +} from '../../../../../../plugins/vis_type_table/public/plugin'; const plugins: Readonly = { expressions: npSetup.plugins.expressions, visualizations: npSetup.plugins.visualizations, }; -const pluginInstance = plugin({} as PluginInitializerContext); +const pluginInstance = new TableVisPlugin({} as PluginInitializerContext); export const setup = pluginInstance.setup(npSetup.core, plugins); -export const start = pluginInstance.start(npStart.core, { data: npStart.plugins.data }); +export const start = pluginInstance.start(npStart.core, { + data: npStart.plugins.data, +}); diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/tabified_data.js b/src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/tabified_data.js similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/__tests__/tabified_data.js rename to src/legacy/core_plugins/kibana/public/__tests__/vis_type_table/tabified_data.js diff --git a/src/legacy/core_plugins/vis_type_table/index.ts b/src/legacy/core_plugins/vis_type_table/index.ts deleted file mode 100644 index 04ca9da7de32b8..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { resolve } from 'path'; -import { Legacy } from 'kibana'; - -import { LegacyPluginApi, LegacyPluginInitializer } from '../../../../src/legacy/types'; - -const tableVisPluginInitializer: LegacyPluginInitializer = ({ Plugin }: LegacyPluginApi) => - new Plugin({ - id: 'table_vis', - require: ['kibana', 'elasticsearch'], - publicDir: resolve(__dirname, 'public'), - uiExports: { - styleSheetPaths: resolve(__dirname, 'public/index.scss'), - hacks: [resolve(__dirname, 'public/legacy')], - injectDefaultVars: server => ({}), - }, - init: (server: Legacy.Server) => ({}), - config(Joi: any) { - return Joi.object({ - enabled: Joi.boolean().default(true), - }).default(); - }, - } as Legacy.PluginSpecOptions); - -// eslint-disable-next-line import/no-default-export -export default tableVisPluginInitializer; diff --git a/src/legacy/core_plugins/vis_type_table/package.json b/src/legacy/core_plugins/vis_type_table/package.json deleted file mode 100644 index 2809b0e0478365..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "table_vis", - "version": "kibana" -} diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/_index.scss b/src/legacy/core_plugins/vis_type_table/public/agg_table/_index.scss deleted file mode 100644 index b19d4a887a7f39..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/public/agg_table/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import 'agg_table'; diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/_index.scss b/src/legacy/core_plugins/vis_type_table/public/paginated_table/_index.scss deleted file mode 100644 index 9473b847d3c2bd..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/public/paginated_table/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './table_cell_filter'; diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_type.ts b/src/legacy/core_plugins/vis_type_table/public/table_vis_type.ts deleted file mode 100644 index 43816121bc23bc..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/public/table_vis_type.ts +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { i18n } from '@kbn/i18n'; -import { AggGroupNames } from '../../../../plugins/data/public'; -import { Schemas } from '../../../../plugins/vis_default_editor/public'; -import { Vis } from '../../../../plugins/visualizations/public'; -import { tableVisResponseHandler } from './table_vis_response_handler'; -// @ts-ignore -import tableVisTemplate from './table_vis.html'; -import { TableOptions } from './components/table_vis_options'; -import { TableVisualizationController } from './vis_controller'; - -export const tableVisTypeDefinition = { - type: 'table', - name: 'table', - title: i18n.translate('visTypeTable.tableVisTitle', { - defaultMessage: 'Data Table', - }), - icon: 'visTable', - description: i18n.translate('visTypeTable.tableVisDescription', { - defaultMessage: 'Display values in a table', - }), - visualization: TableVisualizationController, - visConfig: { - defaults: { - perPage: 10, - showPartialRows: false, - showMetricsAtAllLevels: false, - sort: { - columnIndex: null, - direction: null, - }, - showTotal: false, - totalFunc: 'sum', - percentageCol: '', - }, - template: tableVisTemplate, - }, - editorConfig: { - optionsTemplate: TableOptions, - schemas: new Schemas([ - { - group: AggGroupNames.Metrics, - name: 'metric', - title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.metricTitle', { - defaultMessage: 'Metric', - }), - aggFilter: ['!geo_centroid', '!geo_bounds'], - aggSettings: { - top_hits: { - allowStrings: true, - }, - }, - min: 1, - defaults: [{ type: 'count', schema: 'metric' }], - }, - { - group: AggGroupNames.Buckets, - name: 'bucket', - title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.bucketTitle', { - defaultMessage: 'Split rows', - }), - aggFilter: ['!filter'], - }, - { - group: AggGroupNames.Buckets, - name: 'split', - title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.splitTitle', { - defaultMessage: 'Split table', - }), - min: 0, - max: 1, - aggFilter: ['!filter'], - }, - ]), - }, - responseHandler: tableVisResponseHandler, - hierarchicalData: (vis: Vis) => { - return Boolean(vis.params.showPartialRows || vis.params.showMetricsAtAllLevels); - }, -}; diff --git a/src/legacy/core_plugins/vis_type_table/public/vis_controller.ts b/src/legacy/core_plugins/vis_type_table/public/vis_controller.ts deleted file mode 100644 index 5bb730d2f9b105..00000000000000 --- a/src/legacy/core_plugins/vis_type_table/public/vis_controller.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import angular, { IModule, auto, IRootScopeService, IScope, ICompileService } from 'angular'; -import $ from 'jquery'; - -import { VisParams, ExprVis } from '../../../../plugins/visualizations/public'; -import { npStart } from './legacy_imports'; -import { getAngularModule } from './get_inner_angular'; -import { initTableVisLegacyModule } from './table_vis_legacy_module'; - -const innerAngularName = 'kibana/table_vis'; - -export class TableVisualizationController { - private tableVisModule: IModule | undefined; - private injector: auto.IInjectorService | undefined; - el: JQuery; - vis: ExprVis; - $rootScope: IRootScopeService | null = null; - $scope: (IScope & { [key: string]: any }) | undefined; - $compile: ICompileService | undefined; - - constructor(domeElement: Element, vis: ExprVis) { - this.el = $(domeElement); - this.vis = vis; - } - - getInjector() { - if (!this.injector) { - const mountpoint = document.createElement('div'); - mountpoint.setAttribute('style', 'height: 100%; width: 100%;'); - this.injector = angular.bootstrap(mountpoint, [innerAngularName]); - this.el.append(mountpoint); - } - - return this.injector; - } - - initLocalAngular() { - if (!this.tableVisModule) { - this.tableVisModule = getAngularModule(innerAngularName, npStart.core); - initTableVisLegacyModule(this.tableVisModule); - } - } - - async render(esResponse: object, visParams: VisParams) { - this.initLocalAngular(); - - return new Promise(async (resolve, reject) => { - if (!this.$rootScope) { - const $injector = this.getInjector(); - this.$rootScope = $injector.get('$rootScope'); - this.$compile = $injector.get('$compile'); - } - const updateScope = () => { - if (!this.$scope) { - return; - } - this.$scope.vis = this.vis; - this.$scope.visState = { params: visParams }; - this.$scope.esResponse = esResponse; - - this.$scope.visParams = visParams; - this.$scope.renderComplete = resolve; - this.$scope.renderFailed = reject; - this.$scope.resize = Date.now(); - this.$scope.$apply(); - }; - - if (!this.$scope && this.$compile) { - this.$scope = this.$rootScope.$new(); - this.$scope.uiState = this.vis.getUiState(); - updateScope(); - this.el.find('div').append(this.$compile(this.vis.type!.visConfig.template)(this.$scope)); - this.$scope.$apply(); - } else { - updateScope(); - } - }); - } - - destroy() { - if (this.$rootScope) { - this.$rootScope.$destroy(); - this.$rootScope = null; - } - } -} diff --git a/src/plugins/kibana_legacy/public/angular/angular_config.tsx b/src/plugins/kibana_legacy/public/angular/angular_config.tsx index 71cd57ef2d72ec..295cf27688c805 100644 --- a/src/plugins/kibana_legacy/public/angular/angular_config.tsx +++ b/src/plugins/kibana_legacy/public/angular/angular_config.tsx @@ -92,9 +92,9 @@ export const configureAppAngularModule = ( ) => { const core = 'core' in newPlatform ? newPlatform.core : newPlatform; const packageInfo = - 'injectedMetadata' in newPlatform - ? newPlatform.injectedMetadata.getLegacyMetadata() - : newPlatform.env.packageInfo; + 'env' in newPlatform + ? newPlatform.env.packageInfo + : newPlatform.injectedMetadata.getLegacyMetadata(); if ('injectedMetadata' in newPlatform) { forOwn(newPlatform.injectedMetadata.getInjectedVars(), (val, name) => { diff --git a/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts b/src/plugins/vis_type_table/config.ts similarity index 79% rename from src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts rename to src/plugins/vis_type_table/config.ts index 1030e971d64504..6749bd83de39f9 100644 --- a/src/legacy/core_plugins/vis_type_table/public/legacy_imports.ts +++ b/src/plugins/vis_type_table/config.ts @@ -17,4 +17,10 @@ * under the License. */ -export { npSetup, npStart } from 'ui/new_platform'; +import { schema, TypeOf } from '@kbn/config-schema'; + +export const configSchema = schema.object({ + enabled: schema.boolean({ defaultValue: true }), +}); + +export type ConfigSchema = TypeOf; diff --git a/src/plugins/vis_type_table/kibana.json b/src/plugins/vis_type_table/kibana.json new file mode 100644 index 00000000000000..bb0f6478a42408 --- /dev/null +++ b/src/plugins/vis_type_table/kibana.json @@ -0,0 +1,11 @@ +{ + "id": "visTypeTable", + "version": "kibana", + "server": true, + "ui": true, + "requiredPlugins": [ + "expressions", + "visualizations", + "data" + ] +} diff --git a/src/legacy/core_plugins/vis_type_table/public/__snapshots__/table_vis_fn.test.ts.snap b/src/plugins/vis_type_table/public/__snapshots__/table_vis_fn.test.ts.snap similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/__snapshots__/table_vis_fn.test.ts.snap rename to src/plugins/vis_type_table/public/__snapshots__/table_vis_fn.test.ts.snap diff --git a/src/legacy/core_plugins/vis_type_table/public/_table_vis.scss b/src/plugins/vis_type_table/public/_table_vis.scss similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/_table_vis.scss rename to src/plugins/vis_type_table/public/_table_vis.scss diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/_agg_table.scss b/src/plugins/vis_type_table/public/agg_table/_agg_table.scss similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/_agg_table.scss rename to src/plugins/vis_type_table/public/agg_table/_agg_table.scss diff --git a/src/plugins/vis_type_table/public/agg_table/_index.scss b/src/plugins/vis_type_table/public/agg_table/_index.scss new file mode 100644 index 00000000000000..340e08a76f1bdb --- /dev/null +++ b/src/plugins/vis_type_table/public/agg_table/_index.scss @@ -0,0 +1 @@ +@import './agg_table'; diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table.html b/src/plugins/vis_type_table/public/agg_table/agg_table.html similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table.html rename to src/plugins/vis_type_table/public/agg_table/agg_table.html diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table.js b/src/plugins/vis_type_table/public/agg_table/agg_table.js similarity index 98% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table.js rename to src/plugins/vis_type_table/public/agg_table/agg_table.js index b9e79f96e4fc13..0cd501e2d0344c 100644 --- a/src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table.js +++ b/src/plugins/vis_type_table/public/agg_table/agg_table.js @@ -238,9 +238,9 @@ export function KbnAggTable(config, RecursionHelper) { } /** - * @param {[]Object} columns - the formatted columns that will be displayed + * @param {Object[]} columns - the formatted columns that will be displayed * @param {String} title - the title of the column to add to - * @param {[]Object} rows - the row data for the columns + * @param {Object[]} rows - the row data for the columns * @param {Number} insertAtIndex - the index to insert the percentage column at * @returns {Object} - cols and rows for the table to render now included percentage column(s) */ diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table_group.html b/src/plugins/vis_type_table/public/agg_table/agg_table_group.html similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table_group.html rename to src/plugins/vis_type_table/public/agg_table/agg_table_group.html diff --git a/src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table_group.js b/src/plugins/vis_type_table/public/agg_table/agg_table_group.js similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/agg_table/agg_table_group.js rename to src/plugins/vis_type_table/public/agg_table/agg_table_group.js diff --git a/src/legacy/core_plugins/vis_type_table/public/components/table_vis_options.tsx b/src/plugins/vis_type_table/public/components/table_vis_options.tsx similarity index 96% rename from src/legacy/core_plugins/vis_type_table/public/components/table_vis_options.tsx rename to src/plugins/vis_type_table/public/components/table_vis_options.tsx index 265528f33f9cd0..68348d5ef10604 100644 --- a/src/legacy/core_plugins/vis_type_table/public/components/table_vis_options.tsx +++ b/src/plugins/vis_type_table/public/components/table_vis_options.tsx @@ -24,12 +24,8 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { VisOptionsProps } from 'src/plugins/vis_default_editor/public'; -import { search } from '../../../../../plugins/data/public'; -import { - SwitchOption, - SelectOption, - NumberInputOption, -} from '../../../../../plugins/charts/public'; +import { search } from '../../../data/public'; +import { SwitchOption, SelectOption, NumberInputOption } from '../../../charts/public'; import { TableVisParams } from '../types'; import { totalAggregations } from './utils'; diff --git a/src/legacy/core_plugins/vis_type_table/public/components/utils.ts b/src/plugins/vis_type_table/public/components/utils.ts similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/components/utils.ts rename to src/plugins/vis_type_table/public/components/utils.ts diff --git a/src/legacy/core_plugins/vis_type_table/public/get_inner_angular.ts b/src/plugins/vis_type_table/public/get_inner_angular.ts similarity index 91% rename from src/legacy/core_plugins/vis_type_table/public/get_inner_angular.ts rename to src/plugins/vis_type_table/public/get_inner_angular.ts index 6208e358b4184f..d69b9bba31b032 100644 --- a/src/legacy/core_plugins/vis_type_table/public/get_inner_angular.ts +++ b/src/plugins/vis_type_table/public/get_inner_angular.ts @@ -23,7 +23,7 @@ import angular from 'angular'; import 'angular-recursion'; import { i18nDirective, i18nFilter, I18nProvider } from '@kbn/i18n/angular'; -import { CoreStart, LegacyCoreStart, IUiSettingsClient } from 'kibana/public'; +import { CoreStart, IUiSettingsClient, PluginInitializerContext } from 'kibana/public'; import { initAngularBootstrap, PaginateDirectiveProvider, @@ -32,15 +32,15 @@ import { watchMultiDecorator, KbnAccessibleClickProvider, configureAppAngularModule, -} from '../../../../plugins/kibana_legacy/public'; +} from '../../kibana_legacy/public'; initAngularBootstrap(); const thirdPartyAngularDependencies = ['ngSanitize', 'ui.bootstrap', 'RecursionHelper']; -export function getAngularModule(name: string, core: CoreStart) { +export function getAngularModule(name: string, core: CoreStart, context: PluginInitializerContext) { const uiModule = getInnerAngular(name, core); - configureAppAngularModule(uiModule, core as LegacyCoreStart, true); + configureAppAngularModule(uiModule, { core, env: context.env }, true); return uiModule; } diff --git a/src/legacy/core_plugins/vis_type_table/public/index.scss b/src/plugins/vis_type_table/public/index.scss similarity index 61% rename from src/legacy/core_plugins/vis_type_table/public/index.scss rename to src/plugins/vis_type_table/public/index.scss index 54124ebc42620b..0972c85e0dbe03 100644 --- a/src/legacy/core_plugins/vis_type_table/public/index.scss +++ b/src/plugins/vis_type_table/public/index.scss @@ -1,5 +1,3 @@ -@import 'src/legacy/ui/public/styles/styling_constants'; - // Prefix all styles with "tbv" to avoid conflicts. // Examples // tbvChart @@ -7,6 +5,6 @@ // tbvChart__legend--small // tbvChart__legend-isLoading -@import 'agg_table/index'; -@import 'paginated_table/index'; +@import './agg_table/index'; +@import './paginated_table/index'; @import './table_vis'; diff --git a/src/legacy/core_plugins/vis_type_table/public/index.ts b/src/plugins/vis_type_table/public/index.ts similarity index 92% rename from src/legacy/core_plugins/vis_type_table/public/index.ts rename to src/plugins/vis_type_table/public/index.ts index efbaf69659ea29..5621fdb0947724 100644 --- a/src/legacy/core_plugins/vis_type_table/public/index.ts +++ b/src/plugins/vis_type_table/public/index.ts @@ -16,8 +16,8 @@ * specific language governing permissions and limitations * under the License. */ - -import { PluginInitializerContext } from '../../../../core/public'; +import './index.scss'; +import { PluginInitializerContext } from 'kibana/public'; import { TableVisPlugin as Plugin } from './plugin'; export function plugin(initializerContext: PluginInitializerContext) { diff --git a/src/plugins/vis_type_table/public/paginated_table/_index.scss b/src/plugins/vis_type_table/public/paginated_table/_index.scss new file mode 100644 index 00000000000000..23d56c09b2818a --- /dev/null +++ b/src/plugins/vis_type_table/public/paginated_table/_index.scss @@ -0,0 +1 @@ +@import './_table_cell_filter'; diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/_table_cell_filter.scss b/src/plugins/vis_type_table/public/paginated_table/_table_cell_filter.scss similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/_table_cell_filter.scss rename to src/plugins/vis_type_table/public/paginated_table/_table_cell_filter.scss diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.html b/src/plugins/vis_type_table/public/paginated_table/paginated_table.html similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.html rename to src/plugins/vis_type_table/public/paginated_table/paginated_table.html diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.js b/src/plugins/vis_type_table/public/paginated_table/paginated_table.js similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.js rename to src/plugins/vis_type_table/public/paginated_table/paginated_table.js diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.test.ts b/src/plugins/vis_type_table/public/paginated_table/paginated_table.test.ts similarity index 98% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.test.ts rename to src/plugins/vis_type_table/public/paginated_table/paginated_table.test.ts index 7352236f03febf..23e4aee0378dc6 100644 --- a/src/legacy/core_plugins/vis_type_table/public/paginated_table/paginated_table.test.ts +++ b/src/plugins/vis_type_table/public/paginated_table/paginated_table.test.ts @@ -25,10 +25,9 @@ import 'angular-mocks'; import { getAngularModule } from '../get_inner_angular'; import { initTableVisLegacyModule } from '../table_vis_legacy_module'; -import { coreMock } from '../../../../../core/public/mocks'; +import { coreMock } from '../../../../core/public/mocks'; -jest.mock('ui/new_platform'); -jest.mock('../../../../../plugins/kibana_legacy/public/angular/angular_config', () => ({ +jest.mock('../../../kibana_legacy/public/angular/angular_config', () => ({ configureAppAngularModule: () => {}, })); @@ -73,7 +72,11 @@ describe('Table Vis - Paginated table', () => { let paginatedTable: any; const initLocalAngular = () => { - const tableVisModule = getAngularModule('kibana/table_vis', coreMock.createStart()); + const tableVisModule = getAngularModule( + 'kibana/table_vis', + coreMock.createStart(), + coreMock.createPluginInitializerContext() + ); initTableVisLegacyModule(tableVisModule); }; diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/rows.js b/src/plugins/vis_type_table/public/paginated_table/rows.js similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/rows.js rename to src/plugins/vis_type_table/public/paginated_table/rows.js diff --git a/src/legacy/core_plugins/vis_type_table/public/paginated_table/table_cell_filter.html b/src/plugins/vis_type_table/public/paginated_table/table_cell_filter.html similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/paginated_table/table_cell_filter.html rename to src/plugins/vis_type_table/public/paginated_table/table_cell_filter.html diff --git a/src/legacy/core_plugins/vis_type_table/public/plugin.ts b/src/plugins/vis_type_table/public/plugin.ts similarity index 80% rename from src/legacy/core_plugins/vis_type_table/public/plugin.ts rename to src/plugins/vis_type_table/public/plugin.ts index ea12a5320a14d4..a41d939523bcca 100644 --- a/src/legacy/core_plugins/vis_type_table/public/plugin.ts +++ b/src/plugins/vis_type_table/public/plugin.ts @@ -16,14 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public'; -import { VisualizationsSetup } from '../../../../plugins/visualizations/public'; - -import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from '../../../../core/public'; +import { PluginInitializerContext, CoreSetup, CoreStart, Plugin } from 'kibana/public'; +import { Plugin as ExpressionsPublicPlugin } from '../../expressions/public'; +import { VisualizationsSetup } from '../../visualizations/public'; import { createTableVisFn } from './table_vis_fn'; -import { tableVisTypeDefinition } from './table_vis_type'; -import { DataPublicPluginStart } from '../../../../plugins/data/public'; +import { getTableVisTypeDefinition } from './table_vis_type'; +import { DataPublicPluginStart } from '../../data/public'; import { setFormatService } from './services'; /** @internal */ @@ -40,6 +39,7 @@ export interface TablePluginStartDependencies { /** @internal */ export class TableVisPlugin implements Plugin, void> { initializerContext: PluginInitializerContext; + createBaseVisualization: any; constructor(initializerContext: PluginInitializerContext) { this.initializerContext = initializerContext; @@ -50,8 +50,9 @@ export class TableVisPlugin implements Plugin, void> { { expressions, visualizations }: TablePluginSetupDependencies ) { expressions.registerFunction(createTableVisFn); - - visualizations.createBaseVisualization(tableVisTypeDefinition); + visualizations.createBaseVisualization( + getTableVisTypeDefinition(core, this.initializerContext) + ); } public start(core: CoreStart, { data }: TablePluginStartDependencies) { diff --git a/src/legacy/core_plugins/vis_type_table/public/services.ts b/src/plugins/vis_type_table/public/services.ts similarity index 86% rename from src/legacy/core_plugins/vis_type_table/public/services.ts rename to src/plugins/vis_type_table/public/services.ts index b4b491ac7a5552..3aaffe75e27f14 100644 --- a/src/legacy/core_plugins/vis_type_table/public/services.ts +++ b/src/plugins/vis_type_table/public/services.ts @@ -17,8 +17,8 @@ * under the License. */ -import { createGetterSetter } from '../../../../plugins/kibana_utils/public'; -import { DataPublicPluginStart } from '../../../../plugins/data/public'; +import { createGetterSetter } from '../../kibana_utils/public'; +import { DataPublicPluginStart } from '../../data/public'; export const [getFormatService, setFormatService] = createGetterSetter< DataPublicPluginStart['fieldFormats'] diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis.html b/src/plugins/vis_type_table/public/table_vis.html similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/table_vis.html rename to src/plugins/vis_type_table/public/table_vis.html diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.js b/src/plugins/vis_type_table/public/table_vis_controller.js similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_controller.js rename to src/plugins/vis_type_table/public/table_vis_controller.js diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts b/src/plugins/vis_type_table/public/table_vis_controller.test.ts similarity index 89% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts rename to src/plugins/vis_type_table/public/table_vis_controller.test.ts index 8d6f88bf8dd4af..4607324ca150c6 100644 --- a/src/legacy/core_plugins/vis_type_table/public/table_vis_controller.test.ts +++ b/src/plugins/vis_type_table/public/table_vis_controller.test.ts @@ -26,24 +26,23 @@ import $ from 'jquery'; import StubIndexPattern from 'test_utils/stub_index_pattern'; import { getAngularModule } from './get_inner_angular'; import { initTableVisLegacyModule } from './table_vis_legacy_module'; -import { tableVisTypeDefinition } from './table_vis_type'; -import { Vis } from '../../../../plugins/visualizations/public'; +import { getTableVisTypeDefinition } from './table_vis_type'; +import { Vis } from '../../visualizations/public'; // eslint-disable-next-line -import { stubFields } from '../../../../plugins/data/public/stubs'; +import { stubFields } from '../../data/public/stubs'; // eslint-disable-next-line import { tableVisResponseHandler } from './table_vis_response_handler'; -import { coreMock } from '../../../../core/public/mocks'; +import { coreMock } from '../../../core/public/mocks'; +import { IAggConfig, search } from '../../data/public'; +// TODO: remove linting disable // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { npStart } from './legacy_imports'; -import { IAggConfig, search } from '../../../../plugins/data/public'; +import { searchStartMock } from '../../data/public/search/mocks'; -// should be mocked once get rid of 'ui/new_platform' legacy imports -const { createAggConfigs } = npStart.plugins.data.search.aggs; +const { createAggConfigs } = searchStartMock.aggs; const { tabifyAggResponse } = search; -jest.mock('ui/new_platform'); -jest.mock('../../../../plugins/kibana_legacy/public/angular/angular_config', () => ({ +jest.mock('../../kibana_legacy/public/angular/angular_config', () => ({ configureAppAngularModule: () => {}, })); @@ -89,7 +88,11 @@ describe('Table Vis - Controller', () => { let stubIndexPattern: any; const initLocalAngular = () => { - const tableVisModule = getAngularModule('kibana/table_vis', coreMock.createStart()); + const tableVisModule = getAngularModule( + 'kibana/table_vis', + coreMock.createStart(), + coreMock.createPluginInitializerContext() + ); initTableVisLegacyModule(tableVisModule); }; @@ -110,9 +113,13 @@ describe('Table Vis - Controller', () => { (cfg: any) => cfg, 'time', stubFields, - coreMock.createStart() + coreMock.createSetup() ); }); + const tableVisTypeDefinition = getTableVisTypeDefinition( + coreMock.createSetup(), + coreMock.createPluginInitializerContext() + ); function getRangeVis(params?: object) { return ({ diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_fn.test.ts b/src/plugins/vis_type_table/public/table_vis_fn.test.ts similarity index 95% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_fn.test.ts rename to src/plugins/vis_type_table/public/table_vis_fn.test.ts index 36392c10f93f32..9accf8950d910b 100644 --- a/src/legacy/core_plugins/vis_type_table/public/table_vis_fn.test.ts +++ b/src/plugins/vis_type_table/public/table_vis_fn.test.ts @@ -21,7 +21,7 @@ import { createTableVisFn } from './table_vis_fn'; import { tableVisResponseHandler } from './table_vis_response_handler'; // eslint-disable-next-line -import { functionWrapper } from '../../../../plugins/expressions/common/expression_functions/specs/tests/utils'; +import { functionWrapper } from '../../expressions/common/expression_functions/specs/tests/utils'; jest.mock('./table_vis_response_handler', () => ({ tableVisResponseHandler: jest.fn().mockReturnValue({ diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_fn.ts b/src/plugins/vis_type_table/public/table_vis_fn.ts similarity index 94% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_fn.ts rename to src/plugins/vis_type_table/public/table_vis_fn.ts index a97e596e89754c..9739a7a284e6cf 100644 --- a/src/legacy/core_plugins/vis_type_table/public/table_vis_fn.ts +++ b/src/plugins/vis_type_table/public/table_vis_fn.ts @@ -19,11 +19,7 @@ import { i18n } from '@kbn/i18n'; import { tableVisResponseHandler, TableContext } from './table_vis_response_handler'; -import { - ExpressionFunctionDefinition, - KibanaDatatable, - Render, -} from '../../../../plugins/expressions/public'; +import { ExpressionFunctionDefinition, KibanaDatatable, Render } from '../../expressions/public'; export type Input = KibanaDatatable; diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_legacy_module.ts b/src/plugins/vis_type_table/public/table_vis_legacy_module.ts similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_legacy_module.ts rename to src/plugins/vis_type_table/public/table_vis_legacy_module.ts diff --git a/src/legacy/core_plugins/vis_type_table/public/table_vis_response_handler.ts b/src/plugins/vis_type_table/public/table_vis_response_handler.ts similarity index 100% rename from src/legacy/core_plugins/vis_type_table/public/table_vis_response_handler.ts rename to src/plugins/vis_type_table/public/table_vis_response_handler.ts diff --git a/src/plugins/vis_type_table/public/table_vis_type.ts b/src/plugins/vis_type_table/public/table_vis_type.ts new file mode 100644 index 00000000000000..26e5ac8cfd71ab --- /dev/null +++ b/src/plugins/vis_type_table/public/table_vis_type.ts @@ -0,0 +1,100 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { CoreSetup, PluginInitializerContext } from 'kibana/public'; +import { i18n } from '@kbn/i18n'; +import { AggGroupNames } from '../../data/public'; +import { Schemas } from '../../vis_default_editor/public'; +import { Vis } from '../../visualizations/public'; +import { tableVisResponseHandler } from './table_vis_response_handler'; +// @ts-ignore +import tableVisTemplate from './table_vis.html'; +import { TableOptions } from './components/table_vis_options'; +import { getTableVisualizationControllerClass } from './vis_controller'; + +export function getTableVisTypeDefinition(core: CoreSetup, context: PluginInitializerContext) { + return { + type: 'table', + name: 'table', + title: i18n.translate('visTypeTable.tableVisTitle', { + defaultMessage: 'Data Table', + }), + icon: 'visTable', + description: i18n.translate('visTypeTable.tableVisDescription', { + defaultMessage: 'Display values in a table', + }), + visualization: getTableVisualizationControllerClass(core, context), + visConfig: { + defaults: { + perPage: 10, + showPartialRows: false, + showMetricsAtAllLevels: false, + sort: { + columnIndex: null, + direction: null, + }, + showTotal: false, + totalFunc: 'sum', + percentageCol: '', + }, + template: tableVisTemplate, + }, + editorConfig: { + optionsTemplate: TableOptions, + schemas: new Schemas([ + { + group: AggGroupNames.Metrics, + name: 'metric', + title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.metricTitle', { + defaultMessage: 'Metric', + }), + aggFilter: ['!geo_centroid', '!geo_bounds'], + aggSettings: { + top_hits: { + allowStrings: true, + }, + }, + min: 1, + defaults: [{ type: 'count', schema: 'metric' }], + }, + { + group: AggGroupNames.Buckets, + name: 'bucket', + title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.bucketTitle', { + defaultMessage: 'Split rows', + }), + aggFilter: ['!filter'], + }, + { + group: AggGroupNames.Buckets, + name: 'split', + title: i18n.translate('visTypeTable.tableVisEditorConfig.schemas.splitTitle', { + defaultMessage: 'Split table', + }), + min: 0, + max: 1, + aggFilter: ['!filter'], + }, + ]), + }, + responseHandler: tableVisResponseHandler, + hierarchicalData: (vis: Vis) => { + return Boolean(vis.params.showPartialRows || vis.params.showMetricsAtAllLevels); + }, + }; +} diff --git a/src/legacy/core_plugins/vis_type_table/public/types.ts b/src/plugins/vis_type_table/public/types.ts similarity index 94% rename from src/legacy/core_plugins/vis_type_table/public/types.ts rename to src/plugins/vis_type_table/public/types.ts index c6de14b9f050c6..39023d1305cb63 100644 --- a/src/legacy/core_plugins/vis_type_table/public/types.ts +++ b/src/plugins/vis_type_table/public/types.ts @@ -17,7 +17,7 @@ * under the License. */ -import { SchemaConfig } from '../../../../plugins/visualizations/public'; +import { SchemaConfig } from '../../visualizations/public'; export enum AggTypes { SUM = 'sum', diff --git a/src/plugins/vis_type_table/public/vis_controller.ts b/src/plugins/vis_type_table/public/vis_controller.ts new file mode 100644 index 00000000000000..d49dd32c8c89c3 --- /dev/null +++ b/src/plugins/vis_type_table/public/vis_controller.ts @@ -0,0 +1,109 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import { CoreSetup, PluginInitializerContext } from 'kibana/public'; +import angular, { IModule, auto, IRootScopeService, IScope, ICompileService } from 'angular'; +import $ from 'jquery'; + +import { VisParams, ExprVis } from '../../visualizations/public'; +import { getAngularModule } from './get_inner_angular'; +import { initTableVisLegacyModule } from './table_vis_legacy_module'; + +const innerAngularName = 'kibana/table_vis'; + +export function getTableVisualizationControllerClass( + core: CoreSetup, + context: PluginInitializerContext +) { + return class TableVisualizationController { + private tableVisModule: IModule | undefined; + private injector: auto.IInjectorService | undefined; + el: JQuery; + vis: ExprVis; + $rootScope: IRootScopeService | null = null; + $scope: (IScope & { [key: string]: any }) | undefined; + $compile: ICompileService | undefined; + + constructor(domeElement: Element, vis: ExprVis) { + this.el = $(domeElement); + this.vis = vis; + } + + getInjector() { + if (!this.injector) { + const mountpoint = document.createElement('div'); + mountpoint.setAttribute('style', 'height: 100%; width: 100%;'); + this.injector = angular.bootstrap(mountpoint, [innerAngularName]); + this.el.append(mountpoint); + } + + return this.injector; + } + + async initLocalAngular() { + if (!this.tableVisModule) { + const [coreStart] = await core.getStartServices(); + this.tableVisModule = getAngularModule(innerAngularName, coreStart, context); + initTableVisLegacyModule(this.tableVisModule); + } + } + + async render(esResponse: object, visParams: VisParams) { + await this.initLocalAngular(); + + return new Promise(async (resolve, reject) => { + if (!this.$rootScope) { + const $injector = this.getInjector(); + this.$rootScope = $injector.get('$rootScope'); + this.$compile = $injector.get('$compile'); + } + const updateScope = () => { + if (!this.$scope) { + return; + } + this.$scope.vis = this.vis; + this.$scope.visState = { params: visParams }; + this.$scope.esResponse = esResponse; + + this.$scope.visParams = visParams; + this.$scope.renderComplete = resolve; + this.$scope.renderFailed = reject; + this.$scope.resize = Date.now(); + this.$scope.$apply(); + }; + + if (!this.$scope && this.$compile) { + this.$scope = this.$rootScope.$new(); + this.$scope.uiState = this.vis.getUiState(); + updateScope(); + this.el.find('div').append(this.$compile(this.vis.type!.visConfig.template)(this.$scope)); + this.$scope.$apply(); + } else { + updateScope(); + } + }); + } + + destroy() { + if (this.$rootScope) { + this.$rootScope.$destroy(); + this.$rootScope = null; + } + } + }; +} diff --git a/src/plugins/vis_type_table/server/index.ts b/src/plugins/vis_type_table/server/index.ts new file mode 100644 index 00000000000000..882958a28777d1 --- /dev/null +++ b/src/plugins/vis_type_table/server/index.ts @@ -0,0 +1,34 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PluginConfigDescriptor } from 'kibana/server'; + +import { configSchema, ConfigSchema } from '../config'; + +export const config: PluginConfigDescriptor = { + schema: configSchema, + deprecations: ({ renameFromRoot }) => [ + renameFromRoot('table_vis.enabled', 'vis_type_table.enabled'), + ], +}; + +export const plugin = () => ({ + setup() {}, + start() {}, +}); From 2c1791c7a1ec25e74320118587b5a842f77b6577 Mon Sep 17 00:00:00 2001 From: Uladzislau Lasitsa Date: Tue, 21 Apr 2020 13:05:24 +0300 Subject: [PATCH 30/54] Index pattern management UI -> TypeScript and New Platform Ready (create edit field) (#63836) (#63974) * Converted to react. Moved routes to edit_index_pattern * Added withRouter for navigation. Fixed index_header. * Fixed comments * Fixed comments. Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../edit_index_pattern/constants.ts | 22 +++ .../create_edit_field.html | 0 .../create_edit_field/create_edit_field.js | 180 ------------------ .../create_edit_field/create_edit_field.tsx | 111 +++++++++++ .../create_edit_field/{index.js => index.ts} | 2 +- .../edit_index_pattern/edit_index_pattern.js | 98 +++++++++- .../index_header/index_header.tsx | 4 +- .../translations/translations/ja-JP.json | 1 - .../translations/translations/zh-CN.json | 1 - 9 files changed, 227 insertions(+), 192 deletions(-) create mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/constants.ts rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/{create_edit_field => }/create_edit_field.html (100%) delete mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js create mode 100644 src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.tsx rename src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/{index.js => index.ts} (93%) diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/constants.ts b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/constants.ts new file mode 100644 index 00000000000000..56da031eb4ee86 --- /dev/null +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/constants.ts @@ -0,0 +1,22 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export const TAB_INDEXED_FIELDS = 'indexedFields'; +export const TAB_SCRIPTED_FIELDS = 'scriptedFields'; +export const TAB_SOURCE_FILTERS = 'sourceFilters'; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.html b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field.html similarity index 100% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.html rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field.html diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js deleted file mode 100644 index 95d6cb6878e532..00000000000000 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.js +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { IndexPatternField } from '../../../../../../../../../plugins/data/public'; -import { RegistryFieldFormatEditorsProvider } from 'ui/registry/field_format_editors'; -import { docTitle } from 'ui/doc_title'; -import { KbnUrlProvider } from 'ui/url'; -import uiRoutes from 'ui/routes'; -import { toastNotifications } from 'ui/notify'; -import { npStart } from 'ui/new_platform'; - -import template from './create_edit_field.html'; -import { getEditFieldBreadcrumbs, getCreateFieldBreadcrumbs } from '../../breadcrumbs'; - -import React from 'react'; -import { render, unmountComponentAtNode } from 'react-dom'; -import { FieldEditor } from 'ui/field_editor'; -import { I18nContext } from 'ui/i18n'; -import { i18n } from '@kbn/i18n'; - -import { IndexHeader } from '../index_header'; - -const REACT_FIELD_EDITOR_ID = 'reactFieldEditor'; -const renderFieldEditor = ( - $scope, - indexPattern, - field, - { getConfig, $http, fieldFormatEditors, redirectAway } -) => { - $scope.$$postDigest(() => { - const node = document.getElementById(REACT_FIELD_EDITOR_ID); - if (!node) { - return; - } - - render( - - - - , - node - ); - }); -}; - -const destroyFieldEditor = () => { - const node = document.getElementById(REACT_FIELD_EDITOR_ID); - node && unmountComponentAtNode(node); -}; - -uiRoutes - .when('/management/kibana/index_patterns/:indexPatternId/field/:fieldName*', { - mode: 'edit', - k7Breadcrumbs: getEditFieldBreadcrumbs, - }) - .when('/management/kibana/index_patterns/:indexPatternId/create-field/', { - mode: 'create', - k7Breadcrumbs: getCreateFieldBreadcrumbs, - }) - .defaults(/management\/kibana\/index_patterns\/[^\/]+\/(field|create-field)(\/|$)/, { - template, - mapBreadcrumbs($route, breadcrumbs) { - const { indexPattern } = $route.current.locals; - return breadcrumbs.map(crumb => { - if (crumb.id !== indexPattern.id) { - return crumb; - } - - return { - ...crumb, - display: indexPattern.title, - }; - }); - }, - resolve: { - indexPattern: function($route, Promise, redirectWhenMissing) { - const { indexPatterns } = npStart.plugins.data; - return Promise.resolve(indexPatterns.get($route.current.params.indexPatternId)).catch( - redirectWhenMissing('/management/kibana/index_patterns') - ); - }, - }, - controllerAs: 'fieldSettings', - controller: function FieldEditorPageController( - $scope, - $route, - $timeout, - $http, - Private, - config - ) { - const getConfig = (...args) => config.get(...args); - const fieldFormatEditors = Private(RegistryFieldFormatEditorsProvider); - const kbnUrl = Private(KbnUrlProvider); - - this.mode = $route.current.mode; - this.indexPattern = $route.current.locals.indexPattern; - - if (this.mode === 'edit') { - const fieldName = $route.current.params.fieldName; - this.field = this.indexPattern.fields.getByName(fieldName); - - if (!this.field) { - const message = i18n.translate('kbn.management.editIndexPattern.scripted.noFieldLabel', { - defaultMessage: - "'{indexPatternTitle}' index pattern doesn't have a scripted field called '{fieldName}'", - values: { indexPatternTitle: this.indexPattern.title, fieldName }, - }); - toastNotifications.add(message); - - kbnUrl.redirectToRoute(this.indexPattern, 'edit'); - return; - } - } else if (this.mode === 'create') { - this.field = new IndexPatternField(this.indexPattern, { - scripted: true, - type: 'number', - }); - } else { - const errorMessage = i18n.translate( - 'kbn.management.editIndexPattern.scripted.unknownModeErrorMessage', - { - defaultMessage: 'unknown fieldSettings mode {mode}', - values: { mode: this.mode }, - } - ); - throw new Error(errorMessage); - } - - const fieldName = - this.field.name || - i18n.translate('kbn.management.editIndexPattern.scripted.newFieldPlaceholder', { - defaultMessage: 'New Scripted Field', - }); - docTitle.change([fieldName, this.indexPattern.title]); - - renderFieldEditor($scope, this.indexPattern, this.field, { - getConfig, - $http, - fieldFormatEditors, - redirectAway: () => { - $timeout(() => { - kbnUrl.changeToRoute( - this.indexPattern, - this.field.scripted ? 'scriptedFields' : 'indexedFields' - ); - }); - }, - }); - - $scope.$on('$destroy', () => { - destroyFieldEditor(); - }); - }, - }); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.tsx new file mode 100644 index 00000000000000..4839870f0f3c8a --- /dev/null +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/create_edit_field.tsx @@ -0,0 +1,111 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React from 'react'; +import { withRouter, RouteComponentProps } from 'react-router-dom'; +// @ts-ignore +import { FieldEditor } from 'ui/field_editor'; + +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { IndexHeader } from '../index_header'; +import { IndexPattern, IndexPatternField } from '../../../../../../../../../plugins/data/public'; +import { ChromeDocTitle, NotificationsStart } from '../../../../../../../../../core/public'; +import { TAB_SCRIPTED_FIELDS, TAB_INDEXED_FIELDS } from '../constants'; + +interface CreateEditFieldProps extends RouteComponentProps { + indexPattern: IndexPattern; + mode?: string; + fieldName?: string; + fieldFormatEditors: any; + getConfig: (name: string) => any; + services: { + notifications: NotificationsStart; + docTitle: ChromeDocTitle; + http: Function; + }; +} + +const newFieldPlaceholder = i18n.translate( + 'kbn.management.editIndexPattern.scripted.newFieldPlaceholder', + { + defaultMessage: 'New Scripted Field', + } +); + +export const CreateEditField = withRouter( + ({ + indexPattern, + mode, + fieldName, + fieldFormatEditors, + getConfig, + services, + history, + }: CreateEditFieldProps) => { + const field = + mode === 'edit' && fieldName + ? indexPattern.fields.getByName(fieldName) + : new IndexPatternField(indexPattern, { + scripted: true, + type: 'number', + }); + + const url = `/management/kibana/index_patterns/${indexPattern.id}`; + + if (mode === 'edit') { + if (!field) { + const message = i18n.translate('kbn.management.editIndexPattern.scripted.noFieldLabel', { + defaultMessage: + "'{indexPatternTitle}' index pattern doesn't have a scripted field called '{fieldName}'", + values: { indexPatternTitle: indexPattern.title, fieldName }, + }); + services.notifications.toasts.addWarning(message); + history.push(url); + } + } + + const docFieldName = field?.name || newFieldPlaceholder; + + services.docTitle.change([docFieldName, indexPattern.title]); + + const redirectAway = () => { + history.push(`${url}?_a=(tab:${field?.scripted ? TAB_SCRIPTED_FIELDS : TAB_INDEXED_FIELDS})`); + }; + + return ( + + + + + + + + + ); + } +); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.ts similarity index 93% rename from src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.js rename to src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.ts index 890a3b2622577b..473a8f5b57c825 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/create_edit_field/index.ts @@ -17,4 +17,4 @@ * under the License. */ -import './create_edit_field'; +export { CreateEditField } from './create_edit_field'; diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js index 9474c5a0e5112d..1dd240764de6ef 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/edit_index_pattern.js @@ -18,15 +18,18 @@ */ import _ from 'lodash'; +import { HashRouter } from 'react-router-dom'; import { IndexHeader } from './index_header'; -import './create_edit_field'; +import { CreateEditField } from './create_edit_field'; import { docTitle } from 'ui/doc_title'; import { KbnUrlProvider } from 'ui/url'; import { IndicesEditSectionsProvider } from './edit_sections'; import { fatalError, toastNotifications } from 'ui/notify'; +import { RegistryFieldFormatEditorsProvider } from 'ui/registry/field_format_editors'; import uiRoutes from 'ui/routes'; import { uiModules } from 'ui/modules'; import template from './edit_index_pattern.html'; +import createEditFieldtemplate from './create_edit_field.html'; import { fieldWildcardMatcher } from '../../../../../../../../plugins/kibana_utils/public'; import { subscribeWithScope } from '../../../../../../../../plugins/kibana_legacy/public'; import React from 'react'; @@ -37,8 +40,12 @@ import { ScriptedFieldsTable } from './scripted_fields_table'; import { i18n } from '@kbn/i18n'; import { I18nContext } from 'ui/i18n'; import { npStart } from 'ui/new_platform'; - -import { getEditBreadcrumbs } from '../breadcrumbs'; +import { + getEditBreadcrumbs, + getEditFieldBreadcrumbs, + getCreateFieldBreadcrumbs, +} from '../breadcrumbs'; +import { TAB_INDEXED_FIELDS, TAB_SCRIPTED_FIELDS, TAB_SOURCE_FILTERS } from './constants'; import { createEditIndexPatternPageStateContainer } from './edit_index_pattern_state_container'; const REACT_SOURCE_FILTERS_DOM_ELEMENT_ID = 'reactSourceFiltersTable'; @@ -46,10 +53,6 @@ const REACT_INDEXED_FIELDS_DOM_ELEMENT_ID = 'reactIndexedFieldsTable'; const REACT_SCRIPTED_FIELDS_DOM_ELEMENT_ID = 'reactScriptedFieldsTable'; const REACT_INDEX_HEADER_DOM_ELEMENT_ID = 'reactIndexHeader'; -const TAB_INDEXED_FIELDS = 'indexedFields'; -const TAB_SCRIPTED_FIELDS = 'scriptedFields'; -const TAB_SOURCE_FILTERS = 'sourceFilters'; - const EDIT_FIELD_PATH = '/management/kibana/index_patterns/{{indexPattern.id}}/field/{{name}}'; function updateSourceFiltersTable($scope) { @@ -437,3 +440,84 @@ uiModules renderIndexHeader($scope, config); }); + +// routes for create edit field. Will be removed after migartion all component to react. +const REACT_FIELD_EDITOR_ID = 'reactFieldEditor'; +const renderCreateEditField = ($scope, $route, getConfig, $http, fieldFormatEditors) => { + $scope.$$postDigest(() => { + const node = document.getElementById(REACT_FIELD_EDITOR_ID); + if (!node) { + return; + } + + render( + + + + + , + node + ); + }); +}; + +const destroyCreateEditField = () => { + const node = document.getElementById(REACT_FIELD_EDITOR_ID); + node && unmountComponentAtNode(node); +}; + +uiRoutes + .when('/management/kibana/index_patterns/:indexPatternId/field/:fieldName*', { + mode: 'edit', + k7Breadcrumbs: getEditFieldBreadcrumbs, + }) + .when('/management/kibana/index_patterns/:indexPatternId/create-field/', { + mode: 'create', + k7Breadcrumbs: getCreateFieldBreadcrumbs, + }) + .defaults(/management\/kibana\/index_patterns\/[^\/]+\/(field|create-field)(\/|$)/, { + template: createEditFieldtemplate, + mapBreadcrumbs($route, breadcrumbs) { + const { indexPattern } = $route.current.locals; + return breadcrumbs.map(crumb => { + if (crumb.id !== indexPattern.id) { + return crumb; + } + + return { + ...crumb, + display: indexPattern.title, + }; + }); + }, + resolve: { + indexPattern: function($route, Promise, redirectWhenMissing) { + const { indexPatterns } = npStart.plugins.data; + return Promise.resolve(indexPatterns.get($route.current.params.indexPatternId)).catch( + redirectWhenMissing('/management/kibana/index_patterns') + ); + }, + }, + controllerAs: 'fieldSettings', + controller: function FieldEditorPageController($scope, $route, $http, Private, config) { + const getConfig = (...args) => config.get(...args); + const fieldFormatEditors = Private(RegistryFieldFormatEditorsProvider); + + renderCreateEditField($scope, $route, getConfig, $http, fieldFormatEditors); + + $scope.$on('$destroy', () => { + destroyCreateEditField(); + }); + }, + }); diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/index_header/index_header.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/index_header/index_header.tsx index 866d10ecb0e19d..deac85d9a32e9a 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/index_header/index_header.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/index_header/index_header.tsx @@ -30,8 +30,8 @@ import { import { IIndexPattern } from '../../../../../../../../../plugins/data/public'; interface IndexHeaderProps { - defaultIndex: string; indexPattern: IIndexPattern; + defaultIndex?: string; setDefault?: () => void; refreshFields?: () => void; deleteIndexPattern?: () => void; @@ -77,7 +77,7 @@ export function IndexHeader({ )} - +

{indexPattern.title}

diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 92251c0c25f9ca..adb0f063f5e77b 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -2250,7 +2250,6 @@ "kbn.management.editIndexPattern.scripted.table.nameHeader": "名前", "kbn.management.editIndexPattern.scripted.table.scriptDescription": "フィールドのスクリプトです", "kbn.management.editIndexPattern.scripted.table.scriptHeader": "スクリプト", - "kbn.management.editIndexPattern.scripted.unknownModeErrorMessage": "不明なフィールド設定モード {mode}", "kbn.management.editIndexPattern.scriptedHeader": "スクリプトフィールド", "kbn.management.editIndexPattern.scriptedLabel": "ビジュアライゼーションにスクリプトフィールドを使用し、ドキュメントに表示させることができます。但し、スクリプトフィールドは検索できません。", "kbn.management.editIndexPattern.setDefaultAria": "デフォルトのインデックスに設定", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 3533cea4fce60b..588eb0e3cfb690 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -2251,7 +2251,6 @@ "kbn.management.editIndexPattern.scripted.table.nameHeader": "名称", "kbn.management.editIndexPattern.scripted.table.scriptDescription": "字段的脚本", "kbn.management.editIndexPattern.scripted.table.scriptHeader": "脚本", - "kbn.management.editIndexPattern.scripted.unknownModeErrorMessage": "未知 fieldSettings 模式 {mode}", "kbn.management.editIndexPattern.scriptedHeader": "脚本字段", "kbn.management.editIndexPattern.scriptedLabel": "可以在可视化中使用脚本字段,并在您的文档中显示它们。但是,您不能搜索脚本字段。", "kbn.management.editIndexPattern.setDefaultAria": "设置为默认索引", From e400469b4e2ce04b8f9019072b08bbffc2b761fc Mon Sep 17 00:00:00 2001 From: Diana Derevyankina <54894989+DziyanaDzeraviankina@users.noreply.github.com> Date: Tue, 21 Apr 2020 15:17:41 +0300 Subject: [PATCH 31/54] Enable include/exclude in Terms agg for numeric fields (#59425) (#64044) * Enable include/exclude in Terms agg for numeric fields Closes #4576 * Added a new component that allows adding multiple values * Added some validation to include/exclude fields * Removed unnecessary comments and accepted API changes * Fixed i18n ID issue * Refactored some code and fixed discard button issue * Added SimpleNumberList component and value parsing in include_exclude.tsx * Fixed merge conflict * Fixed merge conflict * Refactored some code * Got rid of lodash isArray, added Number.isFinite where needed and changed symbol of string join and array split * Added some more test cases to cover migrate_include_exclude_format write method Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- ...ibana-plugin-plugins-data-public.search.md | 3 +- src/plugins/data/public/index.ts | 2 + src/plugins/data/public/public.api.md | 33 +++-- .../buckets/migrate_include_exclude_format.ts | 15 +- .../public/search/aggs/buckets/terms.test.ts | 60 ++++++++ .../data/public/search/aggs/buckets/terms.ts | 9 +- .../public/components/agg_params_map.ts | 2 + .../controls/components/number_list/utils.ts | 2 +- .../components/simple_number_list.tsx | 140 ++++++++++++++++++ .../components/controls/include_exclude.tsx | 49 ++++++ .../public/components/controls/index.ts | 1 + 11 files changed, 291 insertions(+), 25 deletions(-) create mode 100644 src/plugins/vis_default_editor/public/components/controls/components/simple_number_list.tsx create mode 100644 src/plugins/vis_default_editor/public/components/controls/include_exclude.tsx diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.search.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.search.md index 78ac05b9fd3861..9a22339fd05307 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.search.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.search.md @@ -27,8 +27,9 @@ search: { InvalidEsCalendarIntervalError: typeof InvalidEsCalendarIntervalError; InvalidEsIntervalFormatError: typeof InvalidEsIntervalFormatError; isDateHistogramBucketAggConfig: typeof isDateHistogramBucketAggConfig; + isNumberType: (agg: import("./search").AggConfig) => boolean; isStringType: (agg: import("./search").AggConfig) => boolean; - isType: (type: string) => (agg: import("./search").AggConfig) => boolean; + isType: (...types: string[]) => (agg: import("./search").AggConfig) => boolean; isValidEsInterval: typeof isValidEsInterval; isValidInterval: typeof isValidInterval; parentPipelineType: string; diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 7a93a42400c18f..4fa6b506ea5960 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -294,6 +294,7 @@ import { convertIPRangeToString, intervalOptions, // only used in Discover isDateHistogramBucketAggConfig, + isNumberType, isStringType, isType, parentPipelineType, @@ -393,6 +394,7 @@ export const search = { InvalidEsCalendarIntervalError, InvalidEsIntervalFormatError, isDateHistogramBucketAggConfig, + isNumberType, isStringType, isType, isValidEsInterval, diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index f4ee93360585ac..b086927a6c17e5 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -1559,8 +1559,9 @@ export const search: { InvalidEsCalendarIntervalError: typeof InvalidEsCalendarIntervalError; InvalidEsIntervalFormatError: typeof InvalidEsIntervalFormatError; isDateHistogramBucketAggConfig: typeof isDateHistogramBucketAggConfig; + isNumberType: (agg: import("./search").AggConfig) => boolean; isStringType: (agg: import("./search").AggConfig) => boolean; - isType: (type: string) => (agg: import("./search").AggConfig) => boolean; + isType: (...types: string[]) => (agg: import("./search").AggConfig) => boolean; isValidEsInterval: typeof isValidEsInterval; isValidInterval: typeof isValidInterval; parentPipelineType: string; @@ -1888,21 +1889,21 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "getRoutes" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:234:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:383:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:405:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:406:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:409:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:410:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:413:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:384:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:384:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:384:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:384:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "convertDateRangeToString" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:392:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:401:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:402:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:403:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:407:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:408:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:411:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:412:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:415:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromEvent" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts b/src/plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts index 0beeb1c3722752..116f8cfad60f6d 100644 --- a/src/plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts +++ b/src/plugins/data/public/search/aggs/buckets/migrate_include_exclude_format.ts @@ -21,20 +21,22 @@ import { isString, isObject } from 'lodash'; import { IBucketAggConfig, BucketAggType, BucketAggParam } from './bucket_agg_type'; import { IAggConfig } from '../agg_config'; -export const isType = (type: string) => { +export const isType = (...types: string[]) => { return (agg: IAggConfig): boolean => { const field = agg.params.field; - return field && field.type === type; + return types.some(type => field && field.type === type); }; }; +export const isNumberType = isType('number'); export const isStringType = isType('string'); +export const isStringOrNumberType = isType('string', 'number'); export const migrateIncludeExcludeFormat = { serialize(this: BucketAggParam, value: any, agg: IBucketAggConfig) { if (this.shouldShow && !this.shouldShow(agg)) return; - if (!value || isString(value)) return value; + if (!value || isString(value) || Array.isArray(value)) return value; else return value.pattern; }, write( @@ -44,7 +46,12 @@ export const migrateIncludeExcludeFormat = { ) { const value = aggConfig.getParam(this.name); - if (isObject(value)) { + if (Array.isArray(value) && value.length > 0 && isNumberType(aggConfig)) { + const parsedValue = value.filter((val): val is number => Number.isFinite(val)); + if (parsedValue.length) { + output.params[this.name] = parsedValue; + } + } else if (isObject(value)) { output.params[this.name] = value.pattern; } else if (value && isStringType(aggConfig)) { output.params[this.name] = value; diff --git a/src/plugins/data/public/search/aggs/buckets/terms.test.ts b/src/plugins/data/public/search/aggs/buckets/terms.test.ts index 0dc052bd1fdf6d..9769efb6da7494 100644 --- a/src/plugins/data/public/search/aggs/buckets/terms.test.ts +++ b/src/plugins/data/public/search/aggs/buckets/terms.test.ts @@ -75,5 +75,65 @@ describe('Terms Agg', () => { expect(params.include).toBe('404'); expect(params.exclude).toBe('400'); }); + + test('accepts string from string field type and writes this value', () => { + const aggConfigs = getAggConfigs({ + include: 'include value', + exclude: 'exclude value', + field: { + name: 'string_field', + type: 'string', + }, + orderAgg: { + type: 'count', + }, + }); + + const { [BUCKET_TYPES.TERMS]: params } = aggConfigs.aggs[0].toDsl(); + + expect(params.field).toBe('string_field'); + expect(params.include).toBe('include value'); + expect(params.exclude).toBe('exclude value'); + }); + + test('accepts empty array from number field type and does not write a value', () => { + const aggConfigs = getAggConfigs({ + include: [], + exclude: [], + field: { + name: 'empty_number_field', + type: 'number', + }, + orderAgg: { + type: 'count', + }, + }); + + const { [BUCKET_TYPES.TERMS]: params } = aggConfigs.aggs[0].toDsl(); + + expect(params.field).toBe('empty_number_field'); + expect(params.include).toBe(undefined); + expect(params.exclude).toBe(undefined); + }); + + test('filters array with empty strings from number field type and writes only numbers', () => { + const aggConfigs = getAggConfigs({ + include: [1.1, 2, '', 3.33, ''], + exclude: ['', 4, 5.555, '', 6], + field: { + name: 'number_field', + type: 'number', + }, + orderAgg: { + type: 'count', + }, + }); + + const { [BUCKET_TYPES.TERMS]: params } = aggConfigs.aggs[0].toDsl(); + + expect(params.field).toBe('number_field'); + expect(params.include).toStrictEqual([1.1, 2, 3.33]); + expect(params.exclude).toStrictEqual([4, 5.555, 6]); + }); }); }); diff --git a/src/plugins/data/public/search/aggs/buckets/terms.ts b/src/plugins/data/public/search/aggs/buckets/terms.ts index 5baa38af0e8d61..698e0dfb1d3404 100644 --- a/src/plugins/data/public/search/aggs/buckets/terms.ts +++ b/src/plugins/data/public/search/aggs/buckets/terms.ts @@ -22,7 +22,10 @@ import { i18n } from '@kbn/i18n'; import { BucketAggType, IBucketAggConfig } from './bucket_agg_type'; import { BUCKET_TYPES } from './bucket_agg_types'; import { createFilterTerms } from './create_filter/terms'; -import { isStringType, migrateIncludeExcludeFormat } from './migrate_include_exclude_format'; +import { + isStringOrNumberType, + migrateIncludeExcludeFormat, +} from './migrate_include_exclude_format'; import { IAggConfigs } from '../agg_configs'; import { Adapters } from '../../../../../inspector/public'; @@ -266,7 +269,7 @@ export const getTermsBucketAgg = ({ getInternalStartServices }: TermsBucketAggDe }), type: 'string', advanced: true, - shouldShow: isStringType, + shouldShow: isStringOrNumberType, ...migrateIncludeExcludeFormat, }, { @@ -276,7 +279,7 @@ export const getTermsBucketAgg = ({ getInternalStartServices }: TermsBucketAggDe }), type: 'string', advanced: true, - shouldShow: isStringType, + shouldShow: isStringOrNumberType, ...migrateIncludeExcludeFormat, }, ], diff --git a/src/plugins/vis_default_editor/public/components/agg_params_map.ts b/src/plugins/vis_default_editor/public/components/agg_params_map.ts index 5af3cfc5b09289..9bc3146b9903bb 100644 --- a/src/plugins/vis_default_editor/public/components/agg_params_map.ts +++ b/src/plugins/vis_default_editor/public/components/agg_params_map.ts @@ -58,6 +58,8 @@ const buckets = { size: controls.SizeParamEditor, }, [BUCKET_TYPES.TERMS]: { + include: controls.IncludeExcludeParamEditor, + exclude: controls.IncludeExcludeParamEditor, orderBy: controls.OrderByParamEditor, orderAgg: controls.OrderAggParamEditor, order: wrapWithInlineComp(controls.OrderParamEditor), diff --git a/src/plugins/vis_default_editor/public/components/controls/components/number_list/utils.ts b/src/plugins/vis_default_editor/public/components/controls/components/number_list/utils.ts index c2ac63c98cbea0..ebe348b0507bc5 100644 --- a/src/plugins/vis_default_editor/public/components/controls/components/number_list/utils.ts +++ b/src/plugins/vis_default_editor/public/components/controls/components/number_list/utils.ts @@ -119,7 +119,7 @@ function getNextModel(list: NumberRowModel[], range: NumberListRange): NumberRow }; } -function getInitModelList(list: Array): NumberRowModel[] { +function getInitModelList(list: Array): NumberRowModel[] { return list.length ? list.map(num => ({ value: (num === undefined ? EMPTY_STRING : num) as NumberRowModel['value'], diff --git a/src/plugins/vis_default_editor/public/components/controls/components/simple_number_list.tsx b/src/plugins/vis_default_editor/public/components/controls/components/simple_number_list.tsx new file mode 100644 index 00000000000000..becf8e47ef5736 --- /dev/null +++ b/src/plugins/vis_default_editor/public/components/controls/components/simple_number_list.tsx @@ -0,0 +1,140 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'; +import { isArray } from 'lodash'; +import { EuiButtonEmpty, EuiFlexItem, EuiFormRow, EuiSpacer, htmlIdGenerator } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EMPTY_STRING, getInitModelList, getRange, parse } from './number_list/utils'; +import { NumberRow, NumberRowModel } from './number_list/number_row'; +import { AggParamEditorProps } from '../../agg_param_props'; + +const generateId = htmlIdGenerator(); + +function SimpleNumberList({ + agg, + aggParam, + value, + setValue, + setTouched, +}: AggParamEditorProps>) { + const [numbers, setNumbers] = useState( + getInitModelList(value && isArray(value) ? value : [EMPTY_STRING]) + ); + const numberRange = useMemo(() => getRange('[-Infinity,Infinity]'), []); + + // This useEffect is needed to discard changes, it sets numbers a mapped value if they are different + useEffect(() => { + if ( + isArray(value) && + (value.length !== numbers.length || + !value.every((numberValue, index) => numberValue === numbers[index].value)) + ) { + setNumbers( + value.map(numberValue => ({ + id: generateId(), + value: numberValue, + isInvalid: false, + })) + ); + } + }, [numbers, value]); + + const onUpdate = useCallback( + (numberList: NumberRowModel[]) => { + setNumbers(numberList); + setValue(numberList.map(({ value: numberValue }) => numberValue)); + }, + [setValue] + ); + + const onChangeValue = useCallback( + (numberField: { id: string; value: string }) => { + onUpdate( + numbers.map(number => + number.id === numberField.id + ? { + id: numberField.id, + value: parse(numberField.value), + isInvalid: false, + } + : number + ) + ); + }, + [numbers, onUpdate] + ); + + // Add an item to the end of the list + const onAdd = useCallback(() => { + const newArray = [ + ...numbers, + { + id: generateId(), + value: EMPTY_STRING as '', + isInvalid: false, + }, + ]; + onUpdate(newArray); + }, [numbers, onUpdate]); + + const onDelete = useCallback( + (id: string) => onUpdate(numbers.filter(number => number.id !== id)), + [numbers, onUpdate] + ); + + return ( + + <> + {numbers.map((number, arrayIndex) => ( + + + {numbers.length - 1 !== arrayIndex && } + + ))} + + + + + + + + + ); +} + +export { SimpleNumberList }; diff --git a/src/plugins/vis_default_editor/public/components/controls/include_exclude.tsx b/src/plugins/vis_default_editor/public/components/controls/include_exclude.tsx new file mode 100644 index 00000000000000..f60f6ce7ce249b --- /dev/null +++ b/src/plugins/vis_default_editor/public/components/controls/include_exclude.tsx @@ -0,0 +1,49 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React, { useEffect } from 'react'; +import { AggParamEditorProps } from '../agg_param_props'; +import { StringParamEditor } from './string'; +import { search } from '../../../../data/public'; +import { SimpleNumberList } from './components/simple_number_list'; +const { isNumberType } = search.aggs; + +export function IncludeExcludeParamEditor(props: AggParamEditorProps>) { + const { agg, value, setValue } = props; + const isAggOfNumberType = isNumberType(agg); + + // This useEffect converts value from string type to number and back when the field type is changed + useEffect(() => { + if (isAggOfNumberType && !Array.isArray(value) && value !== undefined) { + const numberArray = value + .split('|') + .map(item => parseFloat(item)) + .filter(number => Number.isFinite(number)); + setValue(numberArray.length ? numberArray : ['']); + } else if (!isAggOfNumberType && Array.isArray(value) && value !== undefined) { + setValue(value.filter(item => item !== '').join('|')); + } + }, [isAggOfNumberType, setValue, value]); + + return isAggOfNumberType ? ( + } /> + ) : ( + + ); +} diff --git a/src/plugins/vis_default_editor/public/components/controls/index.ts b/src/plugins/vis_default_editor/public/components/controls/index.ts index e8944aa667853f..cfb236e5e22e37 100644 --- a/src/plugins/vis_default_editor/public/components/controls/index.ts +++ b/src/plugins/vis_default_editor/public/components/controls/index.ts @@ -24,6 +24,7 @@ export { ExtendedBoundsParamEditor } from './extended_bounds'; export { FieldParamEditor } from './field'; export { FiltersParamEditor } from './filters'; export { HasExtendedBoundsParamEditor } from './has_extended_bounds'; +export { IncludeExcludeParamEditor } from './include_exclude'; export { IpRangesParamEditor } from './ip_ranges'; export { IpRangeTypeParamEditor } from './ip_range_type'; export { IsFilteredByCollarParamEditor } from './is_filtered_by_collar'; From b469fe270d56cd73f5a830456e2a77943e42d0ef Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Tue, 21 Apr 2020 08:53:53 -0400 Subject: [PATCH 32/54] [Maps] Add 3rd party vector tile support (#62084) (#63761) Adds support for adding an external vector tile service to Maps. This is experimental functionality. To enable, add `xpack.maps.enableVectorTiles: true` to the `kibana.yml`configuration file. Co-authored-by: Elastic Machine --- src/plugins/kibana_react/public/index.ts | 2 +- .../public/validated_range/index.ts | 2 +- x-pack/legacy/plugins/maps/index.js | 2 + .../layer_addpanel/view.js | 4 +- .../layer_panel/layer_settings/index.js | 3 + .../layer_settings/layer_settings.js | 10 +- .../connected_components/map/mb/view.js | 9 +- x-pack/legacy/plugins/maps/public/plugin.ts | 7 - .../maps/public/selectors/map_selectors.js | 4 + .../public/selectors/map_selectors.test.js | 1 + x-pack/plugins/maps/common/constants.ts | 4 +- .../data_request_descriptor_types.d.ts | 4 +- .../descriptor_types/descriptor_types.d.ts | 16 +- x-pack/plugins/maps/public/kibana_services.js | 4 +- x-pack/plugins/maps/public/layers/layer.d.ts | 15 +- x-pack/plugins/maps/public/layers/layer.js | 36 +++- .../maps/public/layers/load_layer_wizards.js | 30 --- .../maps/public/layers/load_layer_wizards.ts | 66 +++++++ .../es_geo_grid_source.d.ts | 1 + .../es_search_source/es_search_source.d.ts | 1 + .../index.ts} | 7 +- .../layer_wizard.tsx | 42 +++++ .../mvt_single_layer_vector_source.ts | 175 ++++++++++++++++++ .../mvt_single_layer_vector_source_editor.tsx | 128 +++++++++++++ .../maps/public/layers/sources/source.d.ts | 6 +- .../maps/public/layers/sources/source.js | 19 +- .../public/layers/sources/source_registry.ts | 2 +- .../layers/sources/vector_feature_types.ts | 11 ++ .../sources/vector_source/vector_source.d.ts | 22 ++- .../sources/vector_source/vector_source.js | 4 + .../vector/components/vector_style_editor.js | 24 +-- .../layers/styles/vector/vector_style.d.ts | 10 +- .../maps/public/layers/tiled_vector_layer.tsx | 170 +++++++++++++++++ .../maps/public/layers/vector_layer.d.ts | 24 ++- .../maps/public/layers/vector_layer.js | 53 ++++-- .../maps/public/layers/vector_tile_layer.js | 14 +- x-pack/plugins/maps/public/plugin.ts | 2 + 37 files changed, 816 insertions(+), 118 deletions(-) delete mode 100644 x-pack/plugins/maps/public/layers/load_layer_wizards.js create mode 100644 x-pack/plugins/maps/public/layers/load_layer_wizards.ts rename x-pack/plugins/maps/public/layers/sources/{vector_feature_types.js => mvt_single_layer_vector_source/index.ts} (71%) create mode 100644 x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx create mode 100644 x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts create mode 100644 x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx create mode 100644 x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts create mode 100644 x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx diff --git a/src/plugins/kibana_react/public/index.ts b/src/plugins/kibana_react/public/index.ts index 9ad9f14ac5659d..9bec91b859ab77 100644 --- a/src/plugins/kibana_react/public/index.ts +++ b/src/plugins/kibana_react/public/index.ts @@ -25,7 +25,7 @@ export * from './ui_settings'; export * from './field_icon'; export * from './table_list_view'; export * from './split_panel'; -export { ValidatedDualRange } from './validated_range'; +export { ValidatedDualRange, Value } from './validated_range'; export * from './notifications'; export { Markdown, MarkdownSimple } from './markdown'; export { reactToUiComponent, uiToReactComponent } from './adapters'; diff --git a/src/plugins/kibana_react/public/validated_range/index.ts b/src/plugins/kibana_react/public/validated_range/index.ts index bc643373f5e603..7d720ec842a43e 100644 --- a/src/plugins/kibana_react/public/validated_range/index.ts +++ b/src/plugins/kibana_react/public/validated_range/index.ts @@ -17,4 +17,4 @@ * under the License. */ -export { ValidatedDualRange } from './validated_dual_range'; +export { ValidatedDualRange, Value } from './validated_dual_range'; diff --git a/x-pack/legacy/plugins/maps/index.js b/x-pack/legacy/plugins/maps/index.js index 1a7f478d3bbad4..f4e01efc05f45f 100644 --- a/x-pack/legacy/plugins/maps/index.js +++ b/x-pack/legacy/plugins/maps/index.js @@ -38,6 +38,7 @@ export function maps(kibana) { return { showMapVisualizationTypes: serverConfig.get('xpack.maps.showMapVisualizationTypes'), showMapsInspectorAdapter: serverConfig.get('xpack.maps.showMapsInspectorAdapter'), + enableVectorTiles: serverConfig.get('xpack.maps.enableVectorTiles'), preserveDrawingBuffer: serverConfig.get('xpack.maps.preserveDrawingBuffer'), isEmsEnabled: mapConfig.includeElasticMapsService, emsFontLibraryUrl: mapConfig.emsFontLibraryUrl, @@ -85,6 +86,7 @@ export function maps(kibana) { showMapVisualizationTypes: Joi.boolean().default(false), showMapsInspectorAdapter: Joi.boolean().default(false), // flag used in functional testing preserveDrawingBuffer: Joi.boolean().default(false), // flag used in functional testing + enableVectorTiles: Joi.boolean().default(false), // flag used to enable/disable vector-tiles }).default(); }, diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js b/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js index a54df69471aa04..92fcf01f3901f5 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js @@ -63,13 +63,13 @@ export class AddLayerPanel extends Component { return; } - const style = + const styleDescriptor = this.state.layer && this.state.layer.getCurrentStyle() ? this.state.layer.getCurrentStyle().getDescriptor() : null; const layerInitProps = { ...options, - style: style, + style: styleDescriptor, }; const newLayer = source.createDefaultLayer(layerInitProps, this.props.mapColors); if (!this._isMounted) { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js index 73c98db8e429de..e8f980bbbf2b40 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js @@ -13,10 +13,13 @@ import { updateLayerMinZoom, updateLayerAlpha, } from '../../../actions/map_actions'; +import { MAX_ZOOM } from '../../../../../../../plugins/maps/common/constants'; function mapStateToProps(state = {}) { const selectedLayer = getSelectedLayer(state); return { + minVisibilityZoom: selectedLayer.getMinSourceZoom(), + maxVisibilityZoom: MAX_ZOOM, alpha: selectedLayer.getAlpha(), label: selectedLayer.getLabel(), layerId: selectedLayer.getId(), diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js index bd274509436382..1d352913e54a36 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js @@ -13,8 +13,6 @@ import { ValidatedRange } from '../../../../../../../plugins/maps/public/compone import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { ValidatedDualRange } from '../../../../../../../../src/plugins/kibana_react/public'; -import { MAX_ZOOM, MIN_ZOOM } from '../../../../common/constants'; - export function LayerSettings(props) { const onLabelChange = event => { const label = event.target.value; @@ -22,8 +20,8 @@ export function LayerSettings(props) { }; const onZoomChange = ([min, max]) => { - props.updateMinZoom(props.layerId, Math.max(MIN_ZOOM, parseInt(min, 10))); - props.updateMaxZoom(props.layerId, Math.min(MAX_ZOOM, parseInt(max, 10))); + props.updateMinZoom(props.layerId, Math.max(props.minVisibilityZoom, parseInt(min, 10))); + props.updateMaxZoom(props.layerId, Math.min(props.maxVisibilityZoom, parseInt(max, 10))); }; const onAlphaChange = alpha => { @@ -38,8 +36,8 @@ export function LayerSettings(props) { defaultMessage: 'Visibility', })} formRowDisplay="columnCompressed" - min={MIN_ZOOM} - max={MAX_ZOOM} + min={props.minVisibilityZoom} + max={props.maxVisibilityZoom} value={[props.minZoom, props.maxZoom]} showInput="inputWithPopover" showRange diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js b/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js index 1fe3d0d493ee79..a36e1d7048e92f 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js +++ b/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js @@ -14,7 +14,12 @@ import { } from './utils'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { getGlyphUrl, isRetina } from '../../../../../../../plugins/maps/public/meta'; -import { DECIMAL_DEGREES_PRECISION, ZOOM_PRECISION } from '../../../../common/constants'; +import { + DECIMAL_DEGREES_PRECISION, + MAX_ZOOM, + MIN_ZOOM, + ZOOM_PRECISION, +} from '../../../../common/constants'; import mapboxgl from 'mapbox-gl/dist/mapbox-gl-csp'; import mbWorkerUrl from '!!file-loader!mapbox-gl/dist/mapbox-gl-csp-worker'; import mbRtlPlugin from '!!file-loader!@mapbox/mapbox-gl-rtl-text/mapbox-gl-rtl-text.min.js'; @@ -132,6 +137,8 @@ export class MBMapContainer extends React.Component { scrollZoom: this.props.scrollZoom, preserveDrawingBuffer: getInjectedVarFunc()('preserveDrawingBuffer', false), interactive: !this.props.disableInteractive, + minZoom: MIN_ZOOM, + maxZoom: MAX_ZOOM, }; const initialView = _.get(this.props.goto, 'center'); if (initialView) { diff --git a/x-pack/legacy/plugins/maps/public/plugin.ts b/x-pack/legacy/plugins/maps/public/plugin.ts index 4ec068ff440294..71f1a30c1fbef9 100644 --- a/x-pack/legacy/plugins/maps/public/plugin.ts +++ b/x-pack/legacy/plugins/maps/public/plugin.ts @@ -4,13 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../plugins/maps/public/layers/layer_wizard_registry'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../plugins/maps/public/layers/sources/source_registry'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../plugins/maps/public/layers/load_layer_wizards'; - import { Plugin, CoreStart, CoreSetup } from 'src/core/public'; // @ts-ignore import { Start as InspectorStartContract } from 'src/plugins/inspector/public'; diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js index f350a2c9447563..1e710259355198 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js +++ b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js @@ -19,6 +19,8 @@ import { BlendedVectorLayer } from '../../../../../plugins/maps/public/layers/bl // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { getTimeFilter } from '../../../../../plugins/maps/public/kibana_services'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { TiledVectorLayer } from '../../../../../plugins/maps/public/layers/tiled_vector_layer'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths import { getInspectorAdapters } from '../../../../../plugins/maps/public/reducers/non_serializable_instances'; import { copyPersistentState, @@ -51,6 +53,8 @@ function createLayerInstance(layerDescriptor, inspectorAdapters) { return new HeatmapLayer({ layerDescriptor, source }); case BlendedVectorLayer.type: return new BlendedVectorLayer({ layerDescriptor, source }); + case TiledVectorLayer.type: + return new TiledVectorLayer({ layerDescriptor, source }); default: throw new Error(`Unrecognized layerType ${layerDescriptor.type}`); } diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js index b83be301653b80..72cc7486175401 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js +++ b/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js @@ -5,6 +5,7 @@ */ jest.mock('../../../../../plugins/maps/public/layers/vector_layer', () => {}); +jest.mock('../../../../../plugins/maps/public/layers/tiled_vector_layer', () => {}); jest.mock('../../../../../plugins/maps/public/layers/blended_vector_layer', () => {}); jest.mock('../../../../../plugins/maps/public/layers/heatmap_layer', () => {}); jest.mock('../../../../../plugins/maps/public/layers/vector_tile_layer', () => {}); diff --git a/x-pack/plugins/maps/common/constants.ts b/x-pack/plugins/maps/common/constants.ts index 160f9d8dbc83f6..a4006732224ce3 100644 --- a/x-pack/plugins/maps/common/constants.ts +++ b/x-pack/plugins/maps/common/constants.ts @@ -40,9 +40,10 @@ export function createMapPath(id: string) { export enum LAYER_TYPE { TILE = 'TILE', VECTOR = 'VECTOR', - VECTOR_TILE = 'VECTOR_TILE', + VECTOR_TILE = 'VECTOR_TILE', // for static display of mvt vector tiles with a mapbox stylesheet. Does not support any ad-hoc configurations. Used for consuming EMS vector tiles. HEATMAP = 'HEATMAP', BLENDED_VECTOR = 'BLENDED_VECTOR', + TILED_VECTOR = 'TILED_VECTOR', // similar to a regular vector-layer, but it consumes the data as .mvt tilea iso GeoJson. It supports similar ad-hoc configurations like a regular vector layer (E.g. using IVectorStyle), although there is some loss of functionality e.g. does not support term joining } export enum SORT_ORDER { @@ -61,6 +62,7 @@ export enum SOURCE_TYPES { KIBANA_TILEMAP = 'KIBANA_TILEMAP', REGIONMAP_FILE = 'REGIONMAP_FILE', GEOJSON_FILE = 'GEOJSON_FILE', + MVT_SINGLE_LAYER = 'MVT_SINGLE_LAYER', } export enum FIELD_ORIGIN { diff --git a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts index 26044d28d53a32..e94dc6694b38d1 100644 --- a/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts +++ b/x-pack/plugins/maps/common/descriptor_types/data_request_descriptor_types.d.ts @@ -31,12 +31,12 @@ type ESGeoGridSourceSyncMeta = { requestType: RENDER_AS; }; -export type VectorSourceSyncMeta = ESSearchSourceSyncMeta | ESGeoGridSourceSyncMeta; +export type VectorSourceSyncMeta = ESSearchSourceSyncMeta | ESGeoGridSourceSyncMeta | null; export type VectorSourceRequestMeta = MapFilters & { applyGlobalQuery: boolean; fieldNames: string[]; - geogridPrecision: number; + geogridPrecision?: number; sourceQuery: MapQuery; sourceMeta: VectorSourceSyncMeta; }; diff --git a/x-pack/plugins/maps/common/descriptor_types/descriptor_types.d.ts b/x-pack/plugins/maps/common/descriptor_types/descriptor_types.d.ts index ff285877750c5c..f8175b0ed3f109 100644 --- a/x-pack/plugins/maps/common/descriptor_types/descriptor_types.d.ts +++ b/x-pack/plugins/maps/common/descriptor_types/descriptor_types.d.ts @@ -94,6 +94,18 @@ export type XYZTMSSourceDescriptor = AbstractSourceDescriptor & urlTemplate: string; }; +export type TiledSingleLayerVectorSourceDescriptor = AbstractSourceDescriptor & { + urlTemplate: string; + layerName: string; + + // These are the min/max zoom levels of the availability of the a particular layerName in the tileset at urlTemplate. + // These are _not_ the visible zoom-range of the data on a map. + // Tiled data can be displayed at higher levels of zoom than that they are stored in the tileset. + // e.g. EMS basemap data from level 14 is at most detailed resolution and can be displayed at higher levels + minSourceZoom: number; + maxSourceZoom: number; +}; + export type JoinDescriptor = { leftField: string; right: ESTermSourceDescriptor; @@ -107,7 +119,9 @@ export type SourceDescriptor = | ESTermSourceDescriptor | ESSearchSourceDescriptor | ESGeoGridSourceDescriptor - | EMSFileSourceDescriptor; + | EMSFileSourceDescriptor + | ESPewPewSourceDescriptor + | TiledSingleLayerVectorSourceDescriptor; export type LayerDescriptor = { __dataRequests?: DataRequestDescriptor[]; diff --git a/x-pack/plugins/maps/public/kibana_services.js b/x-pack/plugins/maps/public/kibana_services.js index 2a793143803304..dcbd54a09381f1 100644 --- a/x-pack/plugins/maps/public/kibana_services.js +++ b/x-pack/plugins/maps/public/kibana_services.js @@ -38,7 +38,9 @@ export const getFileUploadComponent = () => { }; let getInjectedVar; -export const setInjectedVarFunc = getInjectedVarFunc => (getInjectedVar = getInjectedVarFunc); +export const setInjectedVarFunc = getInjectedVarFunc => { + getInjectedVar = getInjectedVarFunc; +}; export const getInjectedVarFunc = () => getInjectedVar; let uiSettings; diff --git a/x-pack/plugins/maps/public/layers/layer.d.ts b/x-pack/plugins/maps/public/layers/layer.d.ts index 8fb69734d3d069..e8fc5d473626cb 100644 --- a/x-pack/plugins/maps/public/layers/layer.d.ts +++ b/x-pack/plugins/maps/public/layers/layer.d.ts @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { LayerDescriptor, MapExtent, MapFilters } from '../../common/descriptor_types'; +import { LayerDescriptor, MapExtent, MapFilters, MapQuery } from '../../common/descriptor_types'; import { ISource } from './sources/source'; import { DataRequest } from './util/data_request'; import { SyncContext } from '../actions/map_actions'; @@ -17,6 +17,11 @@ export interface ILayer { getSource(): ISource; getSourceForEditing(): ISource; syncData(syncContext: SyncContext): Promise; + isVisible(): boolean; + showAtZoomLevel(zoomLevel: number): boolean; + getMinZoom(): number; + getMaxZoom(): number; + getMinSourceZoom(): number; } export interface ILayerArguments { @@ -35,4 +40,12 @@ export class AbstractLayer implements ILayer { getSource(): ISource; getSourceForEditing(): ISource; syncData(syncContext: SyncContext): Promise; + isVisible(): boolean; + showAtZoomLevel(zoomLevel: number): boolean; + getMinZoom(): number; + getMaxZoom(): number; + getMinSourceZoom(): number; + getQuery(): MapQuery; + _removeStaleMbSourcesAndLayers(mbMap: unknown): void; + _requiresPrevSourceCleanup(mbMap: unknown): boolean; } diff --git a/x-pack/plugins/maps/public/layers/layer.js b/x-pack/plugins/maps/public/layers/layer.js index 26bce872b3c2c2..19dcbaf1dfcfdc 100644 --- a/x-pack/plugins/maps/public/layers/layer.js +++ b/x-pack/plugins/maps/public/layers/layer.js @@ -141,7 +141,8 @@ export class AbstractLayer { defaultMessage: `Layer is hidden.`, }); } else if (!this.showAtZoomLevel(zoomLevel)) { - const { minZoom, maxZoom } = this.getZoomConfig(); + const minZoom = this.getMinZoom(); + const maxZoom = this.getMaxZoom(); icon = ; tooltipContent = i18n.translate('xpack.maps.layer.zoomFeedbackTooltip', { defaultMessage: `Layer is visible between zoom levels {minZoom} and {maxZoom}.`, @@ -203,7 +204,7 @@ export class AbstractLayer { } showAtZoomLevel(zoom) { - return zoom >= this._descriptor.minZoom && zoom <= this._descriptor.maxZoom; + return zoom >= this.getMinZoom() && zoom <= this.getMaxZoom(); } getMinZoom() { @@ -214,6 +215,30 @@ export class AbstractLayer { return this._descriptor.maxZoom; } + getMinSourceZoom() { + return this._source.getMinZoom(); + } + + _requiresPrevSourceCleanup() { + return false; + } + + _removeStaleMbSourcesAndLayers(mbMap) { + if (this._requiresPrevSourceCleanup(mbMap)) { + const mbStyle = mbMap.getStyle(); + mbStyle.layers.forEach(mbLayer => { + if (this.ownsMbLayerId(mbLayer.id)) { + mbMap.removeLayer(mbLayer.id); + } + }); + Object.keys(mbStyle.sources).some(mbSourceId => { + if (this.ownsMbSourceId(mbSourceId)) { + mbMap.removeSource(mbSourceId); + } + }); + } + } + getAlpha() { return this._descriptor.alpha; } @@ -222,13 +247,6 @@ export class AbstractLayer { return this._descriptor.query; } - getZoomConfig() { - return { - minZoom: this._descriptor.minZoom, - maxZoom: this._descriptor.maxZoom, - }; - } - getCurrentStyle() { return this._style; } diff --git a/x-pack/plugins/maps/public/layers/load_layer_wizards.js b/x-pack/plugins/maps/public/layers/load_layer_wizards.js deleted file mode 100644 index d0169165eaa35f..00000000000000 --- a/x-pack/plugins/maps/public/layers/load_layer_wizards.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { registerLayerWizard } from './layer_wizard_registry'; -import { uploadLayerWizardConfig } from './sources/client_file_source'; -import { esDocumentsLayerWizardConfig } from './sources/es_search_source'; -import { clustersLayerWizardConfig, heatmapLayerWizardConfig } from './sources/es_geo_grid_source'; -import { point2PointLayerWizardConfig } from './sources/es_pew_pew_source/es_pew_pew_source'; -import { emsBoundariesLayerWizardConfig } from './sources/ems_file_source'; -import { emsBaseMapLayerWizardConfig } from './sources/ems_tms_source'; -import { kibanaRegionMapLayerWizardConfig } from './sources/kibana_regionmap_source'; -import { kibanaBasemapLayerWizardConfig } from './sources/kibana_tilemap_source'; -import { tmsLayerWizardConfig } from './sources/xyz_tms_source'; -import { wmsLayerWizardConfig } from './sources/wms_source'; - -// Registration order determines display order -registerLayerWizard(uploadLayerWizardConfig); -registerLayerWizard(esDocumentsLayerWizardConfig); -registerLayerWizard(clustersLayerWizardConfig); -registerLayerWizard(heatmapLayerWizardConfig); -registerLayerWizard(point2PointLayerWizardConfig); -registerLayerWizard(emsBoundariesLayerWizardConfig); -registerLayerWizard(emsBaseMapLayerWizardConfig); -registerLayerWizard(kibanaRegionMapLayerWizardConfig); -registerLayerWizard(kibanaBasemapLayerWizardConfig); -registerLayerWizard(tmsLayerWizardConfig); -registerLayerWizard(wmsLayerWizardConfig); diff --git a/x-pack/plugins/maps/public/layers/load_layer_wizards.ts b/x-pack/plugins/maps/public/layers/load_layer_wizards.ts new file mode 100644 index 00000000000000..49d128257fe206 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/load_layer_wizards.ts @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { registerLayerWizard } from './layer_wizard_registry'; +// @ts-ignore +import { uploadLayerWizardConfig } from './sources/client_file_source'; +// @ts-ignore +import { esDocumentsLayerWizardConfig } from './sources/es_search_source'; +// @ts-ignore +import { clustersLayerWizardConfig, heatmapLayerWizardConfig } from './sources/es_geo_grid_source'; +// @ts-ignore +import { point2PointLayerWizardConfig } from './sources/es_pew_pew_source/es_pew_pew_source'; +// @ts-ignore +import { emsBoundariesLayerWizardConfig } from './sources/ems_file_source'; +// @ts-ignore +import { emsBaseMapLayerWizardConfig } from './sources/ems_tms_source'; +// @ts-ignore +import { kibanaRegionMapLayerWizardConfig } from './sources/kibana_regionmap_source'; +// @ts-ignore +import { kibanaBasemapLayerWizardConfig } from './sources/kibana_tilemap_source'; +import { tmsLayerWizardConfig } from './sources/xyz_tms_source'; +// @ts-ignore +import { wmsLayerWizardConfig } from './sources/wms_source'; +import { mvtVectorSourceWizardConfig } from './sources/mvt_single_layer_vector_source'; +// @ts-ignore +import { getInjectedVarFunc } from '../kibana_services'; + +// Registration order determines display order +let registered = false; +export function registerLayerWizards() { + if (registered) { + return; + } + // @ts-ignore + registerLayerWizard(uploadLayerWizardConfig); + // @ts-ignore + registerLayerWizard(esDocumentsLayerWizardConfig); + // @ts-ignore + registerLayerWizard(clustersLayerWizardConfig); + // @ts-ignore + registerLayerWizard(heatmapLayerWizardConfig); + // @ts-ignore + registerLayerWizard(point2PointLayerWizardConfig); + // @ts-ignore + registerLayerWizard(emsBoundariesLayerWizardConfig); + // @ts-ignore + registerLayerWizard(emsBaseMapLayerWizardConfig); + // @ts-ignore + registerLayerWizard(kibanaRegionMapLayerWizardConfig); + // @ts-ignore + registerLayerWizard(kibanaBasemapLayerWizardConfig); + registerLayerWizard(tmsLayerWizardConfig); + // @ts-ignore + registerLayerWizard(wmsLayerWizardConfig); + + const getInjectedVar = getInjectedVarFunc(); + if (getInjectedVar && getInjectedVar('enableVectorTiles', false)) { + // eslint-disable-next-line no-console + console.warn('Vector tiles are an experimental feature and should not be used in production.'); + registerLayerWizard(mvtVectorSourceWizardConfig); + } + registered = true; +} diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts b/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts index 3f596cea1ae393..96347c444dd5b2 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts +++ b/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts @@ -23,6 +23,7 @@ export class ESGeoGridSource extends AbstractESAggSource { constructor(sourceDescriptor: ESGeoGridSourceDescriptor, inspectorAdapters: unknown); + getFieldNames(): string[]; getGridResolution(): GRID_RESOLUTION; getGeoGridPrecision(zoom: number): number; } diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts index 0a4e48a195ec66..c904280a38c85d 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts +++ b/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts @@ -9,4 +9,5 @@ import { ESSearchSourceDescriptor } from '../../../../common/descriptor_types'; export class ESSearchSource extends AbstractESSource { constructor(sourceDescriptor: Partial, inspectorAdapters: unknown); + getFieldNames(): string[]; } diff --git a/x-pack/plugins/maps/public/layers/sources/vector_feature_types.js b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/index.ts similarity index 71% rename from x-pack/plugins/maps/public/layers/sources/vector_feature_types.js rename to x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/index.ts index cc5f30389c4f3a..89b7e76a7e359a 100644 --- a/x-pack/plugins/maps/public/layers/sources/vector_feature_types.js +++ b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/index.ts @@ -4,8 +4,5 @@ * you may not use this file except in compliance with the Elastic License. */ -export const VECTOR_SHAPE_TYPES = { - POINT: 'POINT', - LINE: 'LINE', - POLYGON: 'POLYGON', -}; +export * from './mvt_single_layer_vector_source'; +export * from './layer_wizard'; diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx new file mode 100644 index 00000000000000..dfdea1489d50c2 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { + MVTSingleLayerVectorSourceEditor, + MVTSingleLayerVectorSourceConfig, +} from './mvt_single_layer_vector_source_editor'; +import { MVTSingleLayerVectorSource, sourceTitle } from './mvt_single_layer_vector_source'; +import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { SOURCE_TYPES } from '../../../../common/constants'; + +export const mvtVectorSourceWizardConfig: LayerWizard = { + description: i18n.translate('xpack.maps.source.mvtVectorSourceWizard', { + defaultMessage: 'Vector source wizard', + }), + icon: 'grid', + renderWizard: ({ onPreviewSource, inspectorAdapters }: RenderWizardArguments) => { + const onSourceConfigChange = ({ + urlTemplate, + layerName, + minSourceZoom, + maxSourceZoom, + }: MVTSingleLayerVectorSourceConfig) => { + const sourceDescriptor = MVTSingleLayerVectorSource.createDescriptor({ + urlTemplate, + layerName, + minSourceZoom, + maxSourceZoom, + type: SOURCE_TYPES.MVT_SINGLE_LAYER, + }); + const source = new MVTSingleLayerVectorSource(sourceDescriptor, inspectorAdapters); + onPreviewSource(source); + }; + return ; + }, + title: sourceTitle, +}; diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts new file mode 100644 index 00000000000000..0bfda6be722034 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts @@ -0,0 +1,175 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; +import uuid from 'uuid/v4'; +import { AbstractSource, ImmutableSourceProperty } from '../source'; +import { TiledVectorLayer } from '../../tiled_vector_layer'; +import { GeoJsonWithMeta, ITiledSingleLayerVectorSource } from '../vector_source'; +import { MAX_ZOOM, MIN_ZOOM, SOURCE_TYPES } from '../../../../common/constants'; +import { VECTOR_SHAPE_TYPES } from '../vector_feature_types'; +import { IField } from '../../fields/field'; +import { registerSource } from '../source_registry'; +import { getDataSourceLabel, getUrlLabel } from '../../../../common/i18n_getters'; +import { + LayerDescriptor, + MapExtent, + TiledSingleLayerVectorSourceDescriptor, + VectorSourceRequestMeta, + VectorSourceSyncMeta, +} from '../../../../common/descriptor_types'; +import { VectorLayerArguments } from '../../vector_layer'; + +export const sourceTitle = i18n.translate( + 'xpack.maps.source.MVTSingleLayerVectorSource.sourceTitle', + { + defaultMessage: 'Vector Tile Layer', + } +); + +export class MVTSingleLayerVectorSource extends AbstractSource + implements ITiledSingleLayerVectorSource { + static createDescriptor({ + urlTemplate, + layerName, + minSourceZoom, + maxSourceZoom, + }: TiledSingleLayerVectorSourceDescriptor) { + return { + type: SOURCE_TYPES.MVT_SINGLE_LAYER, + id: uuid(), + urlTemplate, + layerName, + minSourceZoom: Math.max(MIN_ZOOM, minSourceZoom), + maxSourceZoom: Math.min(MAX_ZOOM, maxSourceZoom), + }; + } + + readonly _descriptor: TiledSingleLayerVectorSourceDescriptor; + + constructor( + sourceDescriptor: TiledSingleLayerVectorSourceDescriptor, + inspectorAdapters?: object + ) { + super(sourceDescriptor, inspectorAdapters); + this._descriptor = sourceDescriptor; + } + + renderSourceSettingsEditor() { + return null; + } + + getFieldNames(): string[] { + return []; + } + + createDefaultLayer(options: LayerDescriptor): TiledVectorLayer { + const layerDescriptor = { + sourceDescriptor: this._descriptor, + ...options, + }; + const normalizedLayerDescriptor = TiledVectorLayer.createDescriptor(layerDescriptor, []); + const vectorLayerArguments: VectorLayerArguments = { + layerDescriptor: normalizedLayerDescriptor, + source: this, + }; + return new TiledVectorLayer(vectorLayerArguments); + } + + getGeoJsonWithMeta( + layerName: 'string', + searchFilters: unknown[], + registerCancelCallback: (callback: () => void) => void + ): Promise { + // todo: remove this method + // This is a consequence of ITiledSingleLayerVectorSource extending IVectorSource. + throw new Error('Does not implement getGeoJsonWithMeta'); + } + + async getFields(): Promise { + return []; + } + + async getImmutableProperties(): Promise { + return [ + { label: getDataSourceLabel(), value: sourceTitle }, + { label: getUrlLabel(), value: this._descriptor.urlTemplate }, + { + label: i18n.translate('xpack.maps.source.MVTSingleLayerVectorSource.layerNameMessage', { + defaultMessage: 'Layer name', + }), + value: this._descriptor.layerName, + }, + { + label: i18n.translate('xpack.maps.source.MVTSingleLayerVectorSource.minZoomMessage', { + defaultMessage: 'Min zoom', + }), + value: this._descriptor.minSourceZoom.toString(), + }, + { + label: i18n.translate('xpack.maps.source.MVTSingleLayerVectorSource.maxZoomMessage', { + defaultMessage: 'Max zoom', + }), + value: this._descriptor.maxSourceZoom.toString(), + }, + ]; + } + + async getDisplayName(): Promise { + return this._descriptor.layerName; + } + + async getUrlTemplateWithMeta() { + return { + urlTemplate: this._descriptor.urlTemplate, + layerName: this._descriptor.layerName, + minSourceZoom: this._descriptor.minSourceZoom, + maxSourceZoom: this._descriptor.maxSourceZoom, + }; + } + + async getSupportedShapeTypes(): Promise { + return [VECTOR_SHAPE_TYPES.POINT, VECTOR_SHAPE_TYPES.LINE, VECTOR_SHAPE_TYPES.POLYGON]; + } + + canFormatFeatureProperties() { + return false; + } + + getMinZoom() { + return this._descriptor.minSourceZoom; + } + + getMaxZoom() { + return this._descriptor.maxSourceZoom; + } + + getBoundsForFilters(searchFilters: VectorSourceRequestMeta): MapExtent { + return { + maxLat: 90, + maxLon: 180, + minLat: -90, + minLon: -180, + }; + } + + getFieldByName(fieldName: string): IField | null { + return null; + } + + getSyncMeta(): VectorSourceSyncMeta { + return null; + } + + getApplyGlobalQuery(): boolean { + return false; + } +} + +registerSource({ + ConstructorFunction: MVTSingleLayerVectorSource, + type: SOURCE_TYPES.MVT_SINGLE_LAYER, +}); diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx new file mode 100644 index 00000000000000..7a4b8d43811da8 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx @@ -0,0 +1,128 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +/* eslint-disable @typescript-eslint/consistent-type-definitions */ + +import React, { Fragment, Component, ChangeEvent } from 'react'; +import _ from 'lodash'; +import { EuiFieldText, EuiFormRow } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { MAX_ZOOM, MIN_ZOOM } from '../../../../common/constants'; +import { ValidatedDualRange, Value } from '../../../../../../../src/plugins/kibana_react/public'; + +export type MVTSingleLayerVectorSourceConfig = { + urlTemplate: string; + layerName: string; + minSourceZoom: number; + maxSourceZoom: number; +}; + +export interface Props { + onSourceConfigChange: (sourceConfig: MVTSingleLayerVectorSourceConfig) => void; +} + +interface State { + urlTemplate: string; + layerName: string; + minSourceZoom: number; + maxSourceZoom: number; +} + +export class MVTSingleLayerVectorSourceEditor extends Component { + state = { + urlTemplate: '', + layerName: '', + minSourceZoom: MIN_ZOOM, + maxSourceZoom: MAX_ZOOM, + }; + + _sourceConfigChange = _.debounce(() => { + const canPreview = + this.state.urlTemplate.indexOf('{x}') >= 0 && + this.state.urlTemplate.indexOf('{y}') >= 0 && + this.state.urlTemplate.indexOf('{z}') >= 0; + + if (canPreview && this.state.layerName) { + this.props.onSourceConfigChange({ + urlTemplate: this.state.urlTemplate, + layerName: this.state.layerName, + minSourceZoom: this.state.minSourceZoom, + maxSourceZoom: this.state.maxSourceZoom, + }); + } + }, 200); + + _handleUrlTemplateChange = (e: ChangeEvent) => { + const url = e.target.value; + this.setState( + { + urlTemplate: url, + }, + () => this._sourceConfigChange() + ); + }; + + _handleLayerNameInputChange = (e: ChangeEvent) => { + const layerName = e.target.value; + this.setState( + { + layerName, + }, + () => this._sourceConfigChange() + ); + }; + + _handleZoomRangeChange = (e: Value) => { + const minSourceZoom = parseInt(e[0] as string, 10); + const maxSourceZoom = parseInt(e[1] as string, 10); + + if (this.state.minSourceZoom !== minSourceZoom || this.state.maxSourceZoom !== maxSourceZoom) { + this.setState({ minSourceZoom, maxSourceZoom }, () => this._sourceConfigChange()); + } + }; + + render() { + return ( + + + + + + + + + + ); + } +} diff --git a/x-pack/plugins/maps/public/layers/sources/source.d.ts b/x-pack/plugins/maps/public/layers/sources/source.d.ts index a1581b826d9a6a..5a01da02adaae4 100644 --- a/x-pack/plugins/maps/public/layers/sources/source.d.ts +++ b/x-pack/plugins/maps/public/layers/sources/source.d.ts @@ -19,7 +19,7 @@ export type Attribution = { }; export interface ISource { - createDefaultLayer(): ILayer; + createDefaultLayer(options?: LayerDescriptor): ILayer; destroy(): void; getDisplayName(): Promise; getInspectorAdapters(): object; @@ -31,6 +31,8 @@ export interface ISource { isTimeAware(): Promise; getImmutableProperties(): Promise; getAttributions(): Promise; + getMinZoom(): number; + getMaxZoom(): number; } export class AbstractSource implements ISource { @@ -49,4 +51,6 @@ export class AbstractSource implements ISource { isTimeAware(): Promise; getImmutableProperties(): Promise; getAttributions(): Promise; + getMinZoom(): number; + getMaxZoom(): number; } diff --git a/x-pack/plugins/maps/public/layers/sources/source.js b/x-pack/plugins/maps/public/layers/sources/source.js index 3029a5c0912026..555b8999d62847 100644 --- a/x-pack/plugins/maps/public/layers/sources/source.js +++ b/x-pack/plugins/maps/public/layers/sources/source.js @@ -6,6 +6,7 @@ // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { copyPersistentState } from '../../reducers/util'; +import { MIN_ZOOM, MAX_ZOOM } from '../../../common/constants'; export class AbstractSource { static isIndexingSource = false; @@ -79,7 +80,7 @@ export class AbstractSource { return false; } - isQueryAware() { + async isTimeAware() { return false; } @@ -107,6 +108,14 @@ export class AbstractSource { return []; } + isFilterByMapBounds() { + return false; + } + + isQueryAware() { + return false; + } + getGeoGridPrecision() { return 0; } @@ -140,4 +149,12 @@ export class AbstractSource { async getValueSuggestions(/* field, query */) { return []; } + + getMinZoom() { + return MIN_ZOOM; + } + + getMaxZoom() { + return MAX_ZOOM; + } } diff --git a/x-pack/plugins/maps/public/layers/sources/source_registry.ts b/x-pack/plugins/maps/public/layers/sources/source_registry.ts index d16b16af74e9da..3b334d45092ad7 100644 --- a/x-pack/plugins/maps/public/layers/sources/source_registry.ts +++ b/x-pack/plugins/maps/public/layers/sources/source_registry.ts @@ -10,7 +10,7 @@ import { ISource } from './source'; type SourceRegistryEntry = { ConstructorFunction: new ( sourceDescriptor: any, // this is the source-descriptor that corresponds specifically to the particular ISource instance - inspectorAdapters: unknown + inspectorAdapters?: object ) => ISource; type: string; }; diff --git a/x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts b/x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts new file mode 100644 index 00000000000000..9f03357e17dad5 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export enum VECTOR_SHAPE_TYPES { + POINT = 'POINT', + LINE = 'LINE', + POLYGON = 'POLYGON', +} diff --git a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts b/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts index 63429830d9f4fb..804915dd73052a 100644 --- a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts +++ b/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts @@ -14,6 +14,7 @@ import { VectorSourceRequestMeta, VectorSourceSyncMeta, } from '../../../../common/descriptor_types'; +import { VECTOR_SHAPE_TYPES } from '../vector_feature_types'; export type GeoJsonFetchMeta = ESSearchSourceResponseMeta; @@ -31,8 +32,10 @@ export interface IVectorSource extends ISource { ): Promise; getFields(): Promise; - getFieldByName(fieldName: string): IField; + getFieldByName(fieldName: string): IField | null; getSyncMeta(): VectorSourceSyncMeta; + getFieldNames(): string[]; + getApplyGlobalQuery(): boolean; } export class AbstractVectorSource extends AbstractSource implements IVectorSource { @@ -44,6 +47,21 @@ export class AbstractVectorSource extends AbstractSource implements IVectorSourc ): Promise; getFields(): Promise; - getFieldByName(fieldName: string): IField; + getFieldByName(fieldName: string): IField | null; getSyncMeta(): VectorSourceSyncMeta; + getSupportedShapeTypes(): Promise; + canFormatFeatureProperties(): boolean; + getApplyGlobalQuery(): boolean; + getFieldNames(): string[]; +} + +export interface ITiledSingleLayerVectorSource extends IVectorSource { + getUrlTemplateWithMeta(): Promise<{ + layerName: string; + urlTemplate: string; + minSourceZoom: number; + maxSourceZoom: number; + }>; + getMinZoom(): number; + getMaxZoom(): number; } diff --git a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js b/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js index bb37175b48655b..509584cbc415a4 100644 --- a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js +++ b/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js @@ -60,6 +60,10 @@ export class AbstractVectorSource extends AbstractSource { throw new Error(`Should implemement ${this.constructor.type} ${this}`); } + getFieldNames() { + return []; + } + /** * Retrieves a field. This may be an existing instance. * @param fieldName diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js b/x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js index 6cece5efb3a5d9..c46dc2cb4b73e3 100644 --- a/x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js +++ b/x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js @@ -37,7 +37,7 @@ export class VectorStyleEditor extends Component { defaultDynamicProperties: getDefaultDynamicProperties(), defaultStaticProperties: getDefaultStaticProperties(), supportedFeatures: undefined, - selectedFeatureType: undefined, + selectedFeature: null, }; componentWillUnmount() { @@ -91,18 +91,20 @@ export class VectorStyleEditor extends Component { return; } - let selectedFeature = VECTOR_SHAPE_TYPES.POLYGON; - if (this.props.isPointsOnly) { - selectedFeature = VECTOR_SHAPE_TYPES.POINT; - } else if (this.props.isLinesOnly) { - selectedFeature = VECTOR_SHAPE_TYPES.LINE; + if (!_.isEqual(supportedFeatures, this.state.supportedFeatures)) { + this.setState({ supportedFeatures }); } - if ( - !_.isEqual(supportedFeatures, this.state.supportedFeatures) || - selectedFeature !== this.state.selectedFeature - ) { - this.setState({ supportedFeatures, selectedFeature }); + if (this.state.selectedFeature === null) { + let selectedFeature = VECTOR_SHAPE_TYPES.POLYGON; + if (this.props.isPointsOnly) { + selectedFeature = VECTOR_SHAPE_TYPES.POINT; + } else if (this.props.isLinesOnly) { + selectedFeature = VECTOR_SHAPE_TYPES.LINE; + } + this.setState({ + selectedFeature: selectedFeature, + }); } } diff --git a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts b/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts index 77ea44ac26bf92..e010d5ac7d7a31 100644 --- a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts +++ b/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts @@ -7,17 +7,23 @@ import { IStyleProperty } from './properties/style_property'; import { IDynamicStyleProperty } from './properties/dynamic_style_property'; import { IVectorLayer } from '../../vector_layer'; import { IVectorSource } from '../../sources/vector_source'; -import { VectorStyleDescriptor } from '../../../../common/descriptor_types'; +import { + VectorStyleDescriptor, + VectorStylePropertiesDescriptor, +} from '../../../../common/descriptor_types'; export interface IVectorStyle { getAllStyleProperties(): IStyleProperty[]; getDescriptor(): VectorStyleDescriptor; getDynamicPropertiesArray(): IDynamicStyleProperty[]; + getSourceFieldNames(): string[]; } export class VectorStyle implements IVectorStyle { + static createDescriptor(properties: VectorStylePropertiesDescriptor): VectorStyleDescriptor; + static createDefaultStyleProperties(mapColors: string[]): VectorStylePropertiesDescriptor; constructor(descriptor: VectorStyleDescriptor, source: IVectorSource, layer: IVectorLayer); - + getSourceFieldNames(): string[]; getAllStyleProperties(): IStyleProperty[]; getDescriptor(): VectorStyleDescriptor; getDynamicPropertiesArray(): IDynamicStyleProperty[]; diff --git a/x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx b/x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx new file mode 100644 index 00000000000000..c47cae5641e563 --- /dev/null +++ b/x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx @@ -0,0 +1,170 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { EuiIcon } from '@elastic/eui'; +import { VectorStyle } from './styles/vector/vector_style'; +import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE } from '../../common/constants'; +import { VectorLayer, VectorLayerArguments } from './vector_layer'; +import { canSkipSourceUpdate } from './util/can_skip_fetch'; +import { ITiledSingleLayerVectorSource } from './sources/vector_source'; +import { SyncContext } from '../actions/map_actions'; +import { ISource } from './sources/source'; +import { VectorLayerDescriptor, VectorSourceRequestMeta } from '../../common/descriptor_types'; +import { MVTSingleLayerVectorSourceConfig } from './sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor'; + +export class TiledVectorLayer extends VectorLayer { + static type = LAYER_TYPE.TILED_VECTOR; + + static createDescriptor( + descriptor: VectorLayerDescriptor, + mapColors: string[] + ): VectorLayerDescriptor { + const layerDescriptor = super.createDescriptor(descriptor, mapColors); + layerDescriptor.type = TiledVectorLayer.type; + + if (!layerDescriptor.style) { + const styleProperties = VectorStyle.createDefaultStyleProperties(mapColors); + layerDescriptor.style = VectorStyle.createDescriptor(styleProperties); + } + + return layerDescriptor; + } + + readonly _source: ITiledSingleLayerVectorSource; // downcast to the more specific type + + constructor({ layerDescriptor, source }: VectorLayerArguments) { + super({ layerDescriptor, source }); + this._source = source as ITiledSingleLayerVectorSource; + } + + getCustomIconAndTooltipContent() { + return { + icon: , + }; + } + + async _syncMVTUrlTemplate({ startLoading, stopLoading, onLoadError, dataFilters }: SyncContext) { + const requestToken: symbol = Symbol(`layer-${this.getId()}-${SOURCE_DATA_ID_ORIGIN}`); + const searchFilters: VectorSourceRequestMeta = this._getSearchFilters( + dataFilters, + this.getSource(), + this._style + ); + const prevDataRequest = this.getSourceDataRequest(); + + const canSkip = await canSkipSourceUpdate({ + source: this._source as ISource, + prevDataRequest, + nextMeta: searchFilters, + }); + if (canSkip) { + return null; + } + + startLoading(SOURCE_DATA_ID_ORIGIN, requestToken, searchFilters); + try { + const templateWithMeta = await this._source.getUrlTemplateWithMeta(); + stopLoading(SOURCE_DATA_ID_ORIGIN, requestToken, templateWithMeta, {}); + } catch (error) { + onLoadError(SOURCE_DATA_ID_ORIGIN, requestToken, error.message); + } + } + + async syncData(syncContext: SyncContext) { + if (!this.isVisible() || !this.showAtZoomLevel(syncContext.dataFilters.zoom)) { + return; + } + + await this._syncSourceStyleMeta(syncContext, this._source, this._style); + await this._syncSourceFormatters(syncContext, this._source, this._style); + await this._syncMVTUrlTemplate(syncContext); + } + + _syncSourceBindingWithMb(mbMap: unknown) { + // @ts-ignore + const mbSource = mbMap.getSource(this.getId()); + if (!mbSource) { + const sourceDataRequest = this.getSourceDataRequest(); + if (!sourceDataRequest) { + // this is possible if the layer was invisible at startup. + // the actions will not perform any data=syncing as an optimization when a layer is invisible + // when turning the layer back into visible, it's possible the url has not been resovled yet. + return; + } + + const sourceMeta: MVTSingleLayerVectorSourceConfig | null = sourceDataRequest.getData() as MVTSingleLayerVectorSourceConfig; + if (!sourceMeta) { + return; + } + + const sourceId = this.getId(); + + // @ts-ignore + mbMap.addSource(sourceId, { + type: 'vector', + tiles: [sourceMeta.urlTemplate], + minzoom: sourceMeta.minSourceZoom, + maxzoom: sourceMeta.maxSourceZoom, + }); + } + } + + _syncStylePropertiesWithMb(mbMap: unknown) { + // @ts-ignore + const mbSource = mbMap.getSource(this.getId()); + if (!mbSource) { + return; + } + + const sourceDataRequest = this.getSourceDataRequest(); + if (!sourceDataRequest) { + return; + } + const sourceMeta: MVTSingleLayerVectorSourceConfig = sourceDataRequest.getData() as MVTSingleLayerVectorSourceConfig; + + this._setMbPointsProperties(mbMap, sourceMeta.layerName); + this._setMbLinePolygonProperties(mbMap, sourceMeta.layerName); + } + + _requiresPrevSourceCleanup(mbMap: unknown): boolean { + // @ts-ignore + const mbTileSource = mbMap.getSource(this.getId()); + if (!mbTileSource) { + return false; + } + const dataRequest = this.getSourceDataRequest(); + if (!dataRequest) { + return false; + } + const tiledSourceMeta: MVTSingleLayerVectorSourceConfig | null = dataRequest.getData() as MVTSingleLayerVectorSourceConfig; + if ( + mbTileSource.tiles[0] === tiledSourceMeta.urlTemplate && + mbTileSource.minzoom === tiledSourceMeta.minSourceZoom && + mbTileSource.maxzoom === tiledSourceMeta.maxSourceZoom + ) { + // TileURL and zoom-range captures all the state. If this does not change, no updates are required. + return false; + } + + return true; + } + + syncLayerWithMB(mbMap: unknown) { + this._removeStaleMbSourcesAndLayers(mbMap); + this._syncSourceBindingWithMb(mbMap); + this._syncStylePropertiesWithMb(mbMap); + } + + getJoins() { + return []; + } + + getMinZoom() { + // higher resolution vector tiles cannot be displayed at lower-res + return Math.max(this._source.getMinZoom(), super.getMinZoom()); + } +} diff --git a/x-pack/plugins/maps/public/layers/vector_layer.d.ts b/x-pack/plugins/maps/public/layers/vector_layer.d.ts index 88b1a1ce8535e3..3d5b8054ff3fd8 100644 --- a/x-pack/plugins/maps/public/layers/vector_layer.d.ts +++ b/x-pack/plugins/maps/public/layers/vector_layer.d.ts @@ -9,6 +9,7 @@ import { AbstractLayer } from './layer'; import { IVectorSource } from './sources/vector_source'; import { MapFilters, + LayerDescriptor, VectorLayerDescriptor, VectorSourceRequestMeta, } from '../../common/descriptor_types'; @@ -20,7 +21,7 @@ import { SyncContext } from '../actions/map_actions'; type VectorLayerArguments = { source: IVectorSource; - joins: IJoin[]; + joins?: IJoin[]; layerDescriptor: VectorLayerDescriptor; }; @@ -28,11 +29,12 @@ export interface IVectorLayer extends ILayer { getFields(): Promise; getStyleEditorFields(): Promise; getValidJoins(): IJoin[]; + getSource(): IVectorSource; } export class VectorLayer extends AbstractLayer implements IVectorLayer { static createDescriptor( - options: Partial, + options: Partial, mapColors?: string[] ): VectorLayerDescriptor; @@ -40,14 +42,30 @@ export class VectorLayer extends AbstractLayer implements IVectorLayer { protected readonly _style: IVectorStyle; constructor(options: VectorLayerArguments); - + getLayerTypeIconName(): string; getFields(): Promise; getStyleEditorFields(): Promise; getValidJoins(): IJoin[]; + _syncSourceStyleMeta( + syncContext: SyncContext, + source: IVectorSource, + style: IVectorStyle + ): Promise; + _syncSourceFormatters( + syncContext: SyncContext, + source: IVectorSource, + style: IVectorStyle + ): Promise; + syncLayerWithMB(mbMap: unknown): void; _getSearchFilters( dataFilters: MapFilters, source: IVectorSource, style: IVectorStyle ): VectorSourceRequestMeta; _syncData(syncContext: SyncContext, source: IVectorSource, style: IVectorStyle): Promise; + ownsMbSourceId(sourceId: string): boolean; + ownsMbLayerId(sourceId: string): boolean; + _setMbPointsProperties(mbMap: unknown, mvtSourceLayer?: string): void; + _setMbLinePolygonProperties(mbMap: unknown, mvtSourceLayer?: string): void; + getSource(): IVectorSource; } diff --git a/x-pack/plugins/maps/public/layers/vector_layer.js b/x-pack/plugins/maps/public/layers/vector_layer.js index d606420909281a..c5947a63587ea8 100644 --- a/x-pack/plugins/maps/public/layers/vector_layer.js +++ b/x-pack/plugins/maps/public/layers/vector_layer.js @@ -641,7 +641,7 @@ export class VectorLayer extends AbstractLayer { } } - _setMbPointsProperties(mbMap) { + _setMbPointsProperties(mbMap, mvtSourceLayer) { const pointLayerId = this._getMbPointLayerId(); const symbolLayerId = this._getMbSymbolLayerId(); const pointLayer = mbMap.getLayer(pointLayerId); @@ -658,7 +658,7 @@ export class VectorLayer extends AbstractLayer { if (symbolLayer) { mbMap.setLayoutProperty(symbolLayerId, 'visibility', 'none'); } - this._setMbCircleProperties(mbMap); + this._setMbCircleProperties(mbMap, mvtSourceLayer); } else { markerLayerId = symbolLayerId; textLayerId = symbolLayerId; @@ -666,7 +666,7 @@ export class VectorLayer extends AbstractLayer { mbMap.setLayoutProperty(pointLayerId, 'visibility', 'none'); mbMap.setLayoutProperty(this._getMbTextLayerId(), 'visibility', 'none'); } - this._setMbSymbolProperties(mbMap); + this._setMbSymbolProperties(mbMap, mvtSourceLayer); } this.syncVisibilityWithMb(mbMap, markerLayerId); @@ -677,27 +677,36 @@ export class VectorLayer extends AbstractLayer { } } - _setMbCircleProperties(mbMap) { + _setMbCircleProperties(mbMap, mvtSourceLayer) { const sourceId = this.getId(); const pointLayerId = this._getMbPointLayerId(); const pointLayer = mbMap.getLayer(pointLayerId); if (!pointLayer) { - mbMap.addLayer({ + const mbLayer = { id: pointLayerId, type: 'circle', source: sourceId, paint: {}, - }); + }; + + if (mvtSourceLayer) { + mbLayer['source-layer'] = mvtSourceLayer; + } + mbMap.addLayer(mbLayer); } const textLayerId = this._getMbTextLayerId(); const textLayer = mbMap.getLayer(textLayerId); if (!textLayer) { - mbMap.addLayer({ + const mbLayer = { id: textLayerId, type: 'symbol', source: sourceId, - }); + }; + if (mvtSourceLayer) { + mbLayer['source-layer'] = mvtSourceLayer; + } + mbMap.addLayer(mbLayer); } const filterExpr = getPointFilterExpression(this._hasJoins()); @@ -719,17 +728,21 @@ export class VectorLayer extends AbstractLayer { }); } - _setMbSymbolProperties(mbMap) { + _setMbSymbolProperties(mbMap, mvtSourceLayer) { const sourceId = this.getId(); const symbolLayerId = this._getMbSymbolLayerId(); const symbolLayer = mbMap.getLayer(symbolLayerId); if (!symbolLayer) { - mbMap.addLayer({ + const mbLayer = { id: symbolLayerId, type: 'symbol', source: sourceId, - }); + }; + if (mvtSourceLayer) { + mbLayer['source-layer'] = mvtSourceLayer; + } + mbMap.addLayer(mbLayer); } const filterExpr = getPointFilterExpression(this._hasJoins()); @@ -750,26 +763,34 @@ export class VectorLayer extends AbstractLayer { }); } - _setMbLinePolygonProperties(mbMap) { + _setMbLinePolygonProperties(mbMap, mvtSourceLayer) { const sourceId = this.getId(); const fillLayerId = this._getMbPolygonLayerId(); const lineLayerId = this._getMbLineLayerId(); const hasJoins = this._hasJoins(); if (!mbMap.getLayer(fillLayerId)) { - mbMap.addLayer({ + const mbLayer = { id: fillLayerId, type: 'fill', source: sourceId, paint: {}, - }); + }; + if (mvtSourceLayer) { + mbLayer['source-layer'] = mvtSourceLayer; + } + mbMap.addLayer(mbLayer); } if (!mbMap.getLayer(lineLayerId)) { - mbMap.addLayer({ + const mbLayer = { id: lineLayerId, type: 'line', source: sourceId, paint: {}, - }); + }; + if (mvtSourceLayer) { + mbLayer['source-layer'] = mvtSourceLayer; + } + mbMap.addLayer(mbLayer); } this.getCurrentStyle().setMBPaintProperties({ alpha: this.getAlpha(), diff --git a/x-pack/plugins/maps/public/layers/vector_tile_layer.js b/x-pack/plugins/maps/public/layers/vector_tile_layer.js index 44987fd3e78f02..c620ec6c56dc3a 100644 --- a/x-pack/plugins/maps/public/layers/vector_tile_layer.js +++ b/x-pack/plugins/maps/public/layers/vector_tile_layer.js @@ -161,19 +161,7 @@ export class VectorTileLayer extends TileLayer { return; } - if (this._requiresPrevSourceCleanup(mbMap)) { - const mbStyle = mbMap.getStyle(); - mbStyle.layers.forEach(mbLayer => { - if (this.ownsMbLayerId(mbLayer.id)) { - mbMap.removeLayer(mbLayer.id); - } - }); - Object.keys(mbStyle.sources).some(mbSourceId => { - if (this.ownsMbSourceId(mbSourceId)) { - mbMap.removeSource(mbSourceId); - } - }); - } + this._removeStaleMbSourcesAndLayers(mbMap); let initialBootstrapCompleted = false; const sourceIds = Object.keys(vectorStyle.sources); diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts index 649627690ec9a6..d3b9626dc83661 100644 --- a/x-pack/plugins/maps/public/plugin.ts +++ b/x-pack/plugins/maps/public/plugin.ts @@ -33,6 +33,7 @@ import { setVisualizations, // @ts-ignore } from './kibana_services'; +import { registerLayerWizards } from './layers/load_layer_wizards'; export interface MapsPluginSetupDependencies { inspector: InspectorSetupContract; @@ -72,6 +73,7 @@ export const bindStartCoreAndPlugins = (core: CoreStart, plugins: any) => { setUiActions(plugins.uiActions); setNavigation(plugins.navigation); setCoreI18n(core.i18n); + registerLayerWizards(); }; /** From df069c6c521a8178df3498675a2bf1ac7ec822cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Tue, 21 Apr 2020 14:16:41 +0100 Subject: [PATCH 33/54] [7.x] [APM]Upgrade apm-rum agent to latest version to fix full page reload (#63723) (#63968) * [APM]Upgrade apm-rum agent to latest version to fix full page reload (#63723) * fixing yarn.lock file --- package.json | 2 +- x-pack/package.json | 2 +- yarn.lock | 45 +++++++++++++++++++++++++++------------------ 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 417480d4635c2c..dc4f94c64eef05 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "dependencies": { "@babel/core": "^7.9.0", "@babel/register": "^7.9.0", - "@elastic/apm-rum": "^4.6.0", + "@elastic/apm-rum": "^5.1.1", "@elastic/charts": "18.3.0", "@elastic/datemath": "5.0.2", "@elastic/ems-client": "7.8.0", diff --git a/x-pack/package.json b/x-pack/package.json index e057889bd222fd..0dd59ca97c0c93 100644 --- a/x-pack/package.json +++ b/x-pack/package.json @@ -180,7 +180,7 @@ "@babel/core": "^7.9.0", "@babel/register": "^7.9.0", "@babel/runtime": "^7.9.2", - "@elastic/apm-rum-react": "^0.3.2", + "@elastic/apm-rum-react": "^1.1.1", "@elastic/datemath": "5.0.2", "@elastic/ems-client": "7.8.0", "@elastic/eui": "21.0.1", diff --git a/yarn.lock b/yarn.lock index e832380ee9dfc4..a7f5ca0cc388b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1172,30 +1172,29 @@ debug "^3.1.0" lodash.once "^4.1.1" -"@elastic/apm-rum-core@^4.7.0": - version "4.7.0" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum-core/-/apm-rum-core-4.7.0.tgz#b00b58bf7380f2e36652e5333e3ca97608986e40" - integrity sha512-/lTZWfA3ces3qoKCx72Sc+w43lZkyktaQlbYoYO86h3tNX7tScc/7YBBHI9oxKMcXweqkKOcpnwNZFy71bb86w== +"@elastic/apm-rum-core@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum-core/-/apm-rum-core-5.2.0.tgz#2ed30dc226c9b5779532ab2e6065a155587bcea4" + integrity sha512-3ti2dhrqfxjHFXgArQI/sVAG2AgZH0kB1nx+2WjLpuAh8gGS4R772M5VXcWcGQb8UW9jrANwwbW2hT2GKv+uOA== dependencies: error-stack-parser "^1.3.5" - es6-promise "^4.2.8" opentracing "^0.14.3" - uuid "^3.1.0" + promise-polyfill "^8.1.3" -"@elastic/apm-rum-react@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum-react/-/apm-rum-react-0.3.2.tgz#134634643e15ebcf97b6f17b2c74a50afdbe1c64" - integrity sha512-hU1srW9noygppyrLmipulu30c+LWEie8V/dQjEqLYMx2mRZRwNIue3midYgWa6qrWqgYZhwpAtWrWcXc+AWk2Q== +"@elastic/apm-rum-react@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum-react/-/apm-rum-react-1.1.1.tgz#3a2ba91efc9260da55ef6c31cce642a476eba828" + integrity sha512-ZMixw+82VbZIDBnz0dj5Fo4PZ7pnXlLjAA7XTi3AtSIEjpsZa7YIuCFzJdrgb/nOq7MOFkODkFPTiIYAM/yCqg== dependencies: - "@elastic/apm-rum" "^4.6.0" + "@elastic/apm-rum" "^5.1.1" hoist-non-react-statics "^3.3.0" -"@elastic/apm-rum@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@elastic/apm-rum/-/apm-rum-4.6.0.tgz#e2ac560dd4a4761c0e9b08c301418b1d4063bdd2" - integrity sha512-hsqvyTm5rT6lKgV06wvm8ID9aMsuJyw8wIOPjRwKmvzlTjayabxKTcr50lJJV8jY9OWfDkqymIqpHyCEChQAHQ== +"@elastic/apm-rum@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@elastic/apm-rum/-/apm-rum-5.1.1.tgz#02d29fa606e66f9a3a88f629d468b02457b1b183" + integrity sha512-A0O/0ZffcHm1taLuXyFoUmV2+aARr+9+xbmsEDIExLV0yKaNlaLl3UaZrodSOZ1ijlCEsRRS+y2i0md93YKQTA== dependencies: - "@elastic/apm-rum-core" "^4.7.0" + "@elastic/apm-rum-core" "^5.2.0" "@elastic/charts@18.3.0": version "18.3.0" @@ -12205,7 +12204,7 @@ es6-promise@^4.2.5: resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== -es6-promise@^4.2.8, es6-promise@~4.2.4: +es6-promise@~4.2.4: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== @@ -23440,6 +23439,11 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-polyfill@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" + integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== + promise.prototype.finally@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz#66f161b1643636e50e7cf201dc1b84a857f3864e" @@ -30693,7 +30697,7 @@ utils-regex-from-string@^1.0.0: regex-regex "^1.0.0" validate.io-string-primitive "^1.0.0" -uuid@3.3.2, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: +uuid@3.3.2, uuid@^3.0.1, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== @@ -30708,6 +30712,11 @@ uuid@^3.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g== +uuid@^3.1.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" From 360ff77a73fa4ade9c443cf9a21c61e687edf17f Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Tue, 21 Apr 2020 15:42:48 +0200 Subject: [PATCH 34/54] Move authz lib out of snapshot restore (#63947) (#64053) Created the first entry for the new __packages_do_no_import__ folder that will house ESUIs private packages. --- .../components/authorization_provider.tsx | 73 +++++++++++++++++++ .../authorization/components/index.ts | 30 ++++++++ .../components/not_authorized_section.tsx | 30 ++++++++ .../components/section_error.tsx | 19 ++++- .../components/with_privileges.tsx | 26 +++++-- .../authorization/index.ts | 30 ++++++++ .../authorization/types.ts | 27 +++++++ .../public/authorization/index.ts | 20 +++++ src/plugins/es_ui_shared/public/index.ts | 12 +++ .../snapshot_restore/common/types/index.ts | 1 - .../common/types/privileges.ts | 14 ---- .../public/application/app.tsx | 15 ++-- .../public/application/app_providers.tsx | 7 +- .../public/application/components/index.ts | 1 - .../policy_form/steps/step_logistics.tsx | 4 +- .../components/repository_form/step_one.tsx | 5 +- .../repository_form/type_settings/index.tsx | 4 +- .../components/authorization_provider.tsx | 47 ------------ .../lib/authorization/components/index.ts | 11 --- .../components/not_authorized_section.tsx | 17 ----- .../application/lib/authorization/index.ts | 7 -- .../policy_details/policy_details.tsx | 3 +- .../sections/home/policy_list/policy_list.tsx | 12 ++- .../policy_list/policy_table/policy_table.tsx | 2 +- .../repository_details/repository_details.tsx | 7 +- .../home/repository_list/repository_list.tsx | 3 +- .../repository_table/repository_table.tsx | 5 +- .../home/restore_list/restore_list.tsx | 11 ++- .../snapshot_details/snapshot_details.tsx | 8 +- .../home/snapshot_list/snapshot_list.tsx | 6 +- .../snapshot_table/snapshot_table.tsx | 2 +- .../sections/policy_add/policy_add.tsx | 6 +- .../sections/policy_edit/policy_edit.tsx | 3 +- .../repository_add/repository_add.tsx | 4 +- .../repository_edit/repository_edit.tsx | 3 +- .../restore_snapshot/restore_snapshot.tsx | 3 +- .../application/services/http/use_request.ts | 5 +- .../snapshot_restore/public/shared_imports.ts | 6 ++ .../snapshot_restore/server/routes/api/app.ts | 5 +- 39 files changed, 335 insertions(+), 159 deletions(-) create mode 100644 src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/authorization_provider.tsx create mode 100644 src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/index.ts create mode 100644 src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/not_authorized_section.tsx rename {x-pack/plugins/snapshot_restore/public/application => src/plugins/es_ui_shared/__packages_do_not_import__/authorization}/components/section_error.tsx (54%) rename {x-pack/plugins/snapshot_restore/public/application/lib => src/plugins/es_ui_shared/__packages_do_not_import__}/authorization/components/with_privileges.tsx (70%) create mode 100644 src/plugins/es_ui_shared/__packages_do_not_import__/authorization/index.ts create mode 100644 src/plugins/es_ui_shared/__packages_do_not_import__/authorization/types.ts create mode 100644 src/plugins/es_ui_shared/public/authorization/index.ts delete mode 100644 x-pack/plugins/snapshot_restore/common/types/privileges.ts delete mode 100644 x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/authorization_provider.tsx delete mode 100644 x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/index.ts delete mode 100644 x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/not_authorized_section.tsx delete mode 100644 x-pack/plugins/snapshot_restore/public/application/lib/authorization/index.ts diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/authorization_provider.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/authorization_provider.tsx new file mode 100644 index 00000000000000..68f1cf2045efb2 --- /dev/null +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/authorization_provider.tsx @@ -0,0 +1,73 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { HttpSetup } from 'kibana/public'; +import React, { createContext, useContext } from 'react'; + +import { useRequest } from '../../../public'; + +import { Error as CustomError } from './section_error'; + +import { Privileges } from '../types'; + +interface Authorization { + isLoading: boolean; + apiError: CustomError | null; + privileges: Privileges; +} + +const initialValue: Authorization = { + isLoading: true, + apiError: null, + privileges: { + hasAllPrivileges: true, + missingPrivileges: {}, + }, +}; + +export const AuthorizationContext = createContext(initialValue); + +export const useAuthorizationContext = () => { + const ctx = useContext(AuthorizationContext); + if (!ctx) { + throw new Error('AuthorizationContext can only be used inside of AuthorizationProvider!'); + } + return ctx; +}; + +interface Props { + privilegesEndpoint: string; + children: React.ReactNode; + httpClient: HttpSetup; +} + +export const AuthorizationProvider = ({ privilegesEndpoint, httpClient, children }: Props) => { + const { isLoading, error, data: privilegesData } = useRequest(httpClient, { + path: privilegesEndpoint, + method: 'get', + }); + + const value = { + isLoading, + privileges: isLoading ? { hasAllPrivileges: true, missingPrivileges: {} } : privilegesData, + apiError: error ? error : null, + } as Authorization; + + return {children}; +}; diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/index.ts b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/index.ts new file mode 100644 index 00000000000000..71be3cc6152ca8 --- /dev/null +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/index.ts @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export { + AuthorizationProvider, + AuthorizationContext, + useAuthorizationContext, +} from './authorization_provider'; + +export { WithPrivileges } from './with_privileges'; + +export { NotAuthorizedSection } from './not_authorized_section'; + +export { Error, SectionError } from './section_error'; diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/not_authorized_section.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/not_authorized_section.tsx new file mode 100644 index 00000000000000..c35f674ef9ec42 --- /dev/null +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/not_authorized_section.tsx @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import React from 'react'; +import { EuiEmptyPrompt } from '@elastic/eui'; + +interface Props { + title: React.ReactNode; + message: React.ReactNode | string; +} + +export const NotAuthorizedSection = ({ title, message }: Props) => ( + {title}} body={

{message}

} /> +); diff --git a/x-pack/plugins/snapshot_restore/public/application/components/section_error.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/section_error.tsx similarity index 54% rename from x-pack/plugins/snapshot_restore/public/application/components/section_error.tsx rename to src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/section_error.tsx index bd9e48796779e7..3d56309adae97f 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/section_error.tsx +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/section_error.tsx @@ -1,7 +1,20 @@ /* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ import { EuiCallOut, EuiSpacer } from '@elastic/eui'; diff --git a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/with_privileges.tsx b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx similarity index 70% rename from x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/with_privileges.tsx rename to src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx index 223a2882c3cab3..8f4b2b976d1411 100644 --- a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/with_privileges.tsx +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/components/with_privileges.tsx @@ -1,13 +1,25 @@ /* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. */ -import { useContext } from 'react'; +import { MissingPrivileges } from '../types'; -import { MissingPrivileges } from '../../../../../common/types'; -import { AuthorizationContext } from './authorization_provider'; +import { useAuthorizationContext } from './authorization_provider'; interface Props { /** @@ -29,7 +41,7 @@ const toArray = (value: string | string[]): string[] => Array.isArray(value) ? (value as string[]) : ([value] as string[]); export const WithPrivileges = ({ privileges: requiredPrivileges, children }: Props) => { - const { isLoading, privileges } = useContext(AuthorizationContext); + const { isLoading, privileges } = useAuthorizationContext(); const privilegesToArray: Privilege[] = toArray(requiredPrivileges).map(p => { const [section, privilege] = p.split('.'); diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/index.ts b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/index.ts new file mode 100644 index 00000000000000..ad89052b3bb541 --- /dev/null +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/index.ts @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export { + WithPrivileges, + NotAuthorizedSection, + AuthorizationProvider, + AuthorizationContext, + SectionError, + Error, + useAuthorizationContext, +} from './components'; + +export { Privileges, MissingPrivileges } from './types'; diff --git a/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/types.ts b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/types.ts new file mode 100644 index 00000000000000..cdc2052122688a --- /dev/null +++ b/src/plugins/es_ui_shared/__packages_do_not_import__/authorization/types.ts @@ -0,0 +1,27 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export interface MissingPrivileges { + [key: string]: string[] | undefined; +} + +export interface Privileges { + hasAllPrivileges: boolean; + missingPrivileges: MissingPrivileges; +} diff --git a/src/plugins/es_ui_shared/public/authorization/index.ts b/src/plugins/es_ui_shared/public/authorization/index.ts new file mode 100644 index 00000000000000..3a02c0d2694f3d --- /dev/null +++ b/src/plugins/es_ui_shared/public/authorization/index.ts @@ -0,0 +1,20 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +export * from '../../__packages_do_not_import__/authorization'; diff --git a/src/plugins/es_ui_shared/public/index.ts b/src/plugins/es_ui_shared/public/index.ts index a0371bf351193c..7e5510d7c9c651 100644 --- a/src/plugins/es_ui_shared/public/index.ts +++ b/src/plugins/es_ui_shared/public/index.ts @@ -47,6 +47,18 @@ export { expandLiteralStrings, } from './console_lang'; +export { + AuthorizationContext, + AuthorizationProvider, + NotAuthorizedSection, + WithPrivileges, + Privileges, + MissingPrivileges, + SectionError, + Error, + useAuthorizationContext, +} from './authorization'; + /** dummy plugin, we just want esUiShared to have its own bundle */ export function plugin() { return new (class EsUiSharedPlugin { diff --git a/x-pack/plugins/snapshot_restore/common/types/index.ts b/x-pack/plugins/snapshot_restore/common/types/index.ts index 5cb3839fa9e01d..d52584ca737a2a 100644 --- a/x-pack/plugins/snapshot_restore/common/types/index.ts +++ b/x-pack/plugins/snapshot_restore/common/types/index.ts @@ -8,4 +8,3 @@ export * from './repository'; export * from './snapshot'; export * from './restore'; export * from './policy'; -export * from './privileges'; diff --git a/x-pack/plugins/snapshot_restore/common/types/privileges.ts b/x-pack/plugins/snapshot_restore/common/types/privileges.ts deleted file mode 100644 index bf710b8225599e..00000000000000 --- a/x-pack/plugins/snapshot_restore/common/types/privileges.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export interface MissingPrivileges { - [key: string]: string[] | undefined; -} - -export interface Privileges { - hasAllPrivileges: boolean; - missingPrivileges: MissingPrivileges; -} diff --git a/x-pack/plugins/snapshot_restore/public/application/app.tsx b/x-pack/plugins/snapshot_restore/public/application/app.tsx index 77ef697814b2c4..350d8aec711edf 100644 --- a/x-pack/plugins/snapshot_restore/public/application/app.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/app.tsx @@ -4,13 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ -import React, { useContext } from 'react'; +import React from 'react'; import { Redirect, Route, Switch } from 'react-router-dom'; import { EuiPageContent } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { APP_REQUIRED_CLUSTER_PRIVILEGES } from '../../common/constants'; -import { SectionLoading, SectionError } from './components'; +import { APP_REQUIRED_CLUSTER_PRIVILEGES } from '../../common'; +import { + useAuthorizationContext, + SectionError, + WithPrivileges, + NotAuthorizedSection, +} from '../shared_imports'; +import { SectionLoading } from './components'; import { BASE_PATH, DEFAULT_SECTION, Section } from './constants'; import { RepositoryAdd, @@ -21,11 +27,10 @@ import { PolicyEdit, } from './sections'; import { useConfig } from './app_context'; -import { AuthorizationContext, WithPrivileges, NotAuthorizedSection } from './lib/authorization'; export const App: React.FunctionComponent = () => { const { slm_ui: slmUi } = useConfig(); - const { apiError } = useContext(AuthorizationContext); + const { apiError } = useAuthorizationContext(); const sections: Section[] = ['repositories', 'snapshots', 'restore_status']; diff --git a/x-pack/plugins/snapshot_restore/public/application/app_providers.tsx b/x-pack/plugins/snapshot_restore/public/application/app_providers.tsx index e2732c0051337a..3ca25b7d32dba7 100644 --- a/x-pack/plugins/snapshot_restore/public/application/app_providers.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/app_providers.tsx @@ -5,8 +5,8 @@ */ import React from 'react'; -import { API_BASE_PATH } from '../../common/constants'; -import { AuthorizationProvider } from './lib/authorization'; +import { API_BASE_PATH } from '../../common'; +import { AuthorizationProvider } from '../shared_imports'; import { AppContextProvider, AppDependencies } from './app_context'; interface Props { @@ -18,10 +18,11 @@ export const AppProviders = ({ appDependencies, children }: Props) => { const { core } = appDependencies; const { i18n: { Context: I18nContext }, + http, } = core; return ( - + {children} diff --git a/x-pack/plugins/snapshot_restore/public/application/components/index.ts b/x-pack/plugins/snapshot_restore/public/application/components/index.ts index a7038ebd715785..f5bb8923898702 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/index.ts +++ b/x-pack/plugins/snapshot_restore/public/application/components/index.ts @@ -10,7 +10,6 @@ export { RepositoryDeleteProvider } from './repository_delete_provider'; export { RepositoryForm } from './repository_form'; export { RepositoryVerificationBadge } from './repository_verification_badge'; export { RepositoryTypeLogo } from './repository_type_logo'; -export { SectionError, Error } from './section_error'; export { SectionLoading } from './section_loading'; export { SnapshotDeleteProvider } from './snapshot_delete_provider'; export { RestoreSnapshotForm } from './restore_snapshot_form'; diff --git a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/steps/step_logistics.tsx b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/steps/step_logistics.tsx index f2d4e2bd74598f..105f0601e3dfbb 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/steps/step_logistics.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/steps/step_logistics.tsx @@ -21,13 +21,13 @@ import { } from '@elastic/eui'; import { Repository } from '../../../../../common/types'; -import { CronEditor } from '../../../../shared_imports'; +import { CronEditor, SectionError } from '../../../../shared_imports'; import { useServices } from '../../../app_context'; import { DEFAULT_POLICY_SCHEDULE, DEFAULT_POLICY_FREQUENCY } from '../../../constants'; import { useLoadRepositories } from '../../../services/http'; import { linkToAddRepository } from '../../../services/navigation'; import { documentationLinksService } from '../../../services/documentation'; -import { SectionLoading, SectionError } from '../../'; +import { SectionLoading } from '../../'; import { StepProps } from './'; export const PolicyStepLogistics: React.FunctionComponent = ({ diff --git a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_one.tsx b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_one.tsx index 3b4c9d595b9f28..34bc06343a780a 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_one.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_one.tsx @@ -23,13 +23,14 @@ import { } from '@elastic/eui'; import { Repository, RepositoryType, EmptyRepository } from '../../../../common/types'; -import { REPOSITORY_TYPES } from '../../../../common/constants'; +import { REPOSITORY_TYPES } from '../../../../common'; +import { SectionError, Error } from '../../../shared_imports'; import { documentationLinksService } from '../../services/documentation'; import { useLoadRepositoryTypes } from '../../services/http'; import { textService } from '../../services/text'; import { RepositoryValidation } from '../../services/validation'; -import { SectionError, SectionLoading, RepositoryTypeLogo, Error } from '../'; +import { SectionLoading, RepositoryTypeLogo } from '../'; interface Props { repository: Repository | EmptyRepository; diff --git a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/index.tsx b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/index.tsx index 75295a1205cef9..1e54868397a6da 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/index.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/type_settings/index.tsx @@ -6,11 +6,11 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { REPOSITORY_TYPES } from '../../../../../common/constants'; +import { REPOSITORY_TYPES } from '../../../../../common'; import { Repository, RepositoryType, EmptyRepository } from '../../../../../common/types'; +import { SectionError } from '../../../../shared_imports'; import { useServices } from '../../../app_context'; import { RepositorySettingsValidation } from '../../../services/validation'; -import { SectionError } from '../../index'; import { AzureSettings } from './azure_settings'; import { FSSettings } from './fs_settings'; diff --git a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/authorization_provider.tsx b/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/authorization_provider.tsx deleted file mode 100644 index d32fe29cc1dfa4..00000000000000 --- a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/authorization_provider.tsx +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React, { createContext } from 'react'; -import { useRequest } from '../../../services/http/use_request'; -import { Privileges } from '../../../../../common/types'; -import { Error } from '../../../components/section_error'; - -interface Authorization { - isLoading: boolean; - apiError: Error | null; - privileges: Privileges; -} - -const initialValue: Authorization = { - isLoading: true, - apiError: null, - privileges: { - hasAllPrivileges: true, - missingPrivileges: {}, - }, -}; - -export const AuthorizationContext = createContext(initialValue); - -interface Props { - privilegesEndpoint: string; - children: React.ReactNode; -} - -export const AuthorizationProvider = ({ privilegesEndpoint, children }: Props) => { - const { isLoading, error, data: privilegesData } = useRequest({ - path: privilegesEndpoint, - method: 'get', - }); - - const value = { - isLoading, - privileges: isLoading ? { hasAllPrivileges: true, missingPrivileges: {} } : privilegesData, - apiError: error ? error : null, - } as Authorization; - - return {children}; -}; diff --git a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/index.ts b/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/index.ts deleted file mode 100644 index ac77aa52686602..00000000000000 --- a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { AuthorizationProvider, AuthorizationContext } from './authorization_provider'; - -export { WithPrivileges } from './with_privileges'; - -export { NotAuthorizedSection } from './not_authorized_section'; diff --git a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/not_authorized_section.tsx b/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/not_authorized_section.tsx deleted file mode 100644 index 3fc13245708e85..00000000000000 --- a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/components/not_authorized_section.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { EuiEmptyPrompt } from '@elastic/eui'; - -interface Props { - title: React.ReactNode; - message: React.ReactNode | string; -} - -export const NotAuthorizedSection = ({ title, message }: Props) => ( - {title}} body={

{message}

} /> -); diff --git a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/index.ts b/x-pack/plugins/snapshot_restore/public/application/lib/authorization/index.ts deleted file mode 100644 index 73bbde465146c0..00000000000000 --- a/x-pack/plugins/snapshot_restore/public/application/lib/authorization/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export * from './components'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx index f3110199ee17c6..03d381c9f3aa3d 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx @@ -26,6 +26,7 @@ import { import { SlmPolicy } from '../../../../../../common/types'; import { useServices } from '../../../../app_context'; +import { SectionError, Error } from '../../../../../shared_imports'; import { UIM_POLICY_DETAIL_PANEL_SUMMARY_TAB, UIM_POLICY_DETAIL_PANEL_HISTORY_TAB, @@ -34,11 +35,9 @@ import { useLoadPolicy } from '../../../../services/http'; import { linkToEditPolicy, linkToSnapshot } from '../../../../services/navigation'; import { - SectionError, SectionLoading, PolicyExecuteProvider, PolicyDeleteProvider, - Error, } from '../../../../components'; import { TabSummary, TabHistory } from './tabs'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_list.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_list.tsx index 0122e25e5e1657..51297038b0f3fa 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_list.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_list.tsx @@ -9,13 +9,19 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { RouteComponentProps } from 'react-router-dom'; import { EuiEmptyPrompt, EuiButton, EuiCallOut, EuiSpacer } from '@elastic/eui'; +import { + SectionError, + Error, + WithPrivileges, + NotAuthorizedSection, +} from '../../../../shared_imports'; + import { SlmPolicy } from '../../../../../common/types'; -import { APP_SLM_CLUSTER_PRIVILEGES } from '../../../../../common/constants'; -import { SectionError, SectionLoading, Error } from '../../../components'; +import { APP_SLM_CLUSTER_PRIVILEGES } from '../../../../../common'; +import { SectionLoading } from '../../../components'; import { BASE_PATH, UIM_POLICY_LIST_LOAD } from '../../../constants'; import { useLoadPolicies, useLoadRetentionSettings } from '../../../services/http'; import { linkToAddPolicy, linkToPolicy } from '../../../services/navigation'; -import { WithPrivileges, NotAuthorizedSection } from '../../../lib/authorization'; import { useServices } from '../../../app_context'; import { PolicyDetails } from './policy_details'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx index 7f9c5c5af7705c..ba28bcddf53470 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx @@ -21,6 +21,7 @@ import { } from '@elastic/eui'; import { SlmPolicy } from '../../../../../../common/types'; +import { Error } from '../../../../../shared_imports'; import { UIM_POLICY_SHOW_DETAILS_CLICK } from '../../../../constants'; import { useServices } from '../../../../app_context'; import { @@ -28,7 +29,6 @@ import { PolicyExecuteProvider, PolicyDeleteProvider, } from '../../../../components'; -import { Error } from '../../../../components/section_error'; import { linkToAddPolicy, linkToEditPolicy } from '../../../../services/navigation'; import { SendRequestResponse } from '../../../../../shared_imports'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx index d293f194f647a0..9932f146640760 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx @@ -25,6 +25,8 @@ import { import 'brace/theme/textmate'; +import { SectionError, Error } from '../../../../../shared_imports'; + import { useServices } from '../../../../app_context'; import { documentationLinksService } from '../../../../services/documentation'; import { @@ -35,7 +37,8 @@ import { import { textService } from '../../../../services/text'; import { linkToSnapshots, linkToEditRepository } from '../../../../services/navigation'; -import { REPOSITORY_TYPES } from '../../../../../../common/constants'; +import { REPOSITORY_TYPES } from '../../../../../../common'; + import { Repository, RepositoryVerification, @@ -43,10 +46,8 @@ import { } from '../../../../../../common/types'; import { RepositoryDeleteProvider, - SectionError, SectionLoading, RepositoryVerificationBadge, - Error, } from '../../../../components'; import { TypeDetails } from './type_details'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_list.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_list.tsx index 6fa12537e9d6f8..2256fa5991decf 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_list.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_list.tsx @@ -10,7 +10,8 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiButton, EuiEmptyPrompt } from '@elastic/eui'; import { Repository } from '../../../../../common/types'; -import { SectionError, SectionLoading, Error } from '../../../components'; +import { SectionError, Error } from '../../../../shared_imports'; +import { SectionLoading } from '../../../components'; import { BASE_PATH, UIM_REPOSITORY_LIST_LOAD } from '../../../constants'; import { useServices } from '../../../app_context'; import { useLoadRepositories } from '../../../services/http'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx index 7c0438f6b837fa..bf2643d78bca16 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx @@ -15,15 +15,14 @@ import { EuiIconTip, } from '@elastic/eui'; -import { REPOSITORY_TYPES } from '../../../../../../common/constants'; +import { REPOSITORY_TYPES } from '../../../../../../common'; import { Repository, RepositoryType } from '../../../../../../common/types'; -import { Error } from '../../../../components/section_error'; +import { Error, SendRequestResponse } from '../../../../../shared_imports'; import { RepositoryDeleteProvider } from '../../../../components'; import { UIM_REPOSITORY_SHOW_DETAILS_CLICK } from '../../../../constants'; import { useServices } from '../../../../app_context'; import { textService } from '../../../../services/text'; import { linkToEditRepository, linkToAddRepository } from '../../../../services/navigation'; -import { SendRequestResponse } from '../../../../../shared_imports'; interface Props { repositories: Repository[]; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/restore_list/restore_list.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/restore_list/restore_list.tsx index da9ce3b124a11a..0e3d9363d05359 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/restore_list/restore_list.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/restore_list/restore_list.tsx @@ -18,14 +18,19 @@ import { EuiLoadingSpinner, EuiLink, } from '@elastic/eui'; -import { APP_RESTORE_INDEX_PRIVILEGES } from '../../../../../common/constants'; -import { SectionError, SectionLoading, Error } from '../../../components'; +import { APP_RESTORE_INDEX_PRIVILEGES } from '../../../../../common'; +import { + WithPrivileges, + NotAuthorizedSection, + SectionError, + Error, +} from '../../../../shared_imports'; +import { SectionLoading } from '../../../components'; import { UIM_RESTORE_LIST_LOAD } from '../../../constants'; import { useLoadRestores } from '../../../services/http'; import { linkToSnapshots } from '../../../services/navigation'; import { useServices } from '../../../app_context'; import { RestoreTable } from './restore_table'; -import { WithPrivileges, NotAuthorizedSection } from '../../../lib/authorization'; const ONE_SECOND_MS = 1000; const TEN_SECONDS_MS = 10 * 1000; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_details/snapshot_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_details/snapshot_details.tsx index d16545debe1ecf..1943762a3c36e9 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_details/snapshot_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_details/snapshot_details.tsx @@ -23,12 +23,8 @@ import React, { Fragment, useState, useEffect } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; import { SnapshotDetails as ISnapshotDetails } from '../../../../../../common/types'; -import { - SectionError, - SectionLoading, - SnapshotDeleteProvider, - Error, -} from '../../../../components'; +import { SectionError, Error } from '../../../../../shared_imports'; +import { SectionLoading, SnapshotDeleteProvider } from '../../../../components'; import { useServices } from '../../../../app_context'; import { UIM_SNAPSHOT_DETAIL_PANEL_SUMMARY_TAB, diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx index fe99ccb6f596c8..30e4c771644bc0 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_list.tsx @@ -10,10 +10,10 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { RouteComponentProps } from 'react-router-dom'; import { EuiButton, EuiCallOut, EuiLink, EuiEmptyPrompt, EuiSpacer, EuiIcon } from '@elastic/eui'; -import { APP_SLM_CLUSTER_PRIVILEGES } from '../../../../../common/constants'; -import { SectionError, SectionLoading, Error } from '../../../components'; +import { APP_SLM_CLUSTER_PRIVILEGES } from '../../../../../common'; +import { WithPrivileges, SectionError, Error } from '../../../../shared_imports'; +import { SectionLoading } from '../../../components'; import { BASE_PATH, UIM_SNAPSHOT_LIST_LOAD } from '../../../constants'; -import { WithPrivileges } from '../../../lib/authorization'; import { documentationLinksService } from '../../../services/documentation'; import { useLoadSnapshots } from '../../../services/http'; import { diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_table/snapshot_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_table/snapshot_table.tsx index ad64dcc7adcfee..427c241970007e 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_table/snapshot_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/snapshot_list/snapshot_table/snapshot_table.tsx @@ -17,10 +17,10 @@ import { } from '@elastic/eui'; import { SnapshotDetails } from '../../../../../../common/types'; +import { Error } from '../../../../../shared_imports'; import { SNAPSHOT_STATE, UIM_SNAPSHOT_SHOW_DETAILS_CLICK } from '../../../../constants'; import { useServices } from '../../../../app_context'; import { linkToRepository, linkToRestoreSnapshot } from '../../../../services/navigation'; -import { Error } from '../../../../components/section_error'; import { DataPlaceholder, FormattedDateTime, SnapshotDeleteProvider } from '../../../../components'; import { SendRequestResponse } from '../../../../../shared_imports'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/policy_add/policy_add.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/policy_add/policy_add.tsx index 4eb0f54978d094..6d1a432be7f9f0 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/policy_add/policy_add.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/policy_add/policy_add.tsx @@ -9,9 +9,11 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiPageBody, EuiPageContent, EuiSpacer, EuiTitle } from '@elastic/eui'; import { SlmPolicyPayload } from '../../../../common/types'; -import { TIME_UNITS } from '../../../../common/constants'; +import { TIME_UNITS } from '../../../../common'; -import { PolicyForm, SectionError, SectionLoading, Error } from '../../components'; +import { SectionError, Error } from '../../../shared_imports'; + +import { PolicyForm, SectionLoading } from '../../components'; import { BASE_PATH, DEFAULT_POLICY_SCHEDULE } from '../../constants'; import { breadcrumbService, docTitleService } from '../../services/navigation'; import { addPolicy, useLoadIndices } from '../../services/http'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/policy_edit/policy_edit.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/policy_edit/policy_edit.tsx index 9ca7eba5c4eebb..0f1473fc054925 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/policy_edit/policy_edit.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/policy_edit/policy_edit.tsx @@ -9,8 +9,9 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiPageBody, EuiPageContent, EuiSpacer, EuiTitle, EuiCallOut } from '@elastic/eui'; import { SlmPolicyPayload } from '../../../../common/types'; +import { SectionError, Error } from '../../../shared_imports'; import { TIME_UNITS } from '../../../../common/constants'; -import { SectionError, SectionLoading, PolicyForm, Error } from '../../components'; +import { SectionLoading, PolicyForm } from '../../components'; import { BASE_PATH } from '../../constants'; import { useServices } from '../../app_context'; import { breadcrumbService, docTitleService } from '../../services/navigation'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/repository_add/repository_add.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/repository_add/repository_add.tsx index 126e04bc7dc1d7..08bfde833c3688 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/repository_add/repository_add.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/repository_add/repository_add.tsx @@ -12,7 +12,9 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiPageBody, EuiPageContent, EuiSpacer, EuiTitle } from '@elastic/eui'; import { Repository, EmptyRepository } from '../../../../common/types'; -import { RepositoryForm, SectionError } from '../../components'; +import { SectionError } from '../../../shared_imports'; + +import { RepositoryForm } from '../../components'; import { BASE_PATH, Section } from '../../constants'; import { breadcrumbService, docTitleService } from '../../services/navigation'; import { addRepository } from '../../services/http'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/repository_edit/repository_edit.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/repository_edit/repository_edit.tsx index aa29b8b9f05518..95f8b9b8bde7d0 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/repository_edit/repository_edit.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/repository_edit/repository_edit.tsx @@ -10,7 +10,8 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiCallOut, EuiPageBody, EuiPageContent, EuiSpacer, EuiTitle } from '@elastic/eui'; import { Repository, EmptyRepository } from '../../../../common/types'; -import { RepositoryForm, SectionError, SectionLoading, Error } from '../../components'; +import { SectionError, Error } from '../../../shared_imports'; +import { RepositoryForm, SectionLoading } from '../../components'; import { BASE_PATH, Section } from '../../constants'; import { useServices } from '../../app_context'; import { breadcrumbService, docTitleService } from '../../services/navigation'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/restore_snapshot/restore_snapshot.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/restore_snapshot/restore_snapshot.tsx index 252fd07a85f800..9eabed8341ee02 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/restore_snapshot/restore_snapshot.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/restore_snapshot/restore_snapshot.tsx @@ -9,8 +9,9 @@ import { RouteComponentProps } from 'react-router-dom'; import { EuiPageBody, EuiPageContent, EuiSpacer, EuiTitle } from '@elastic/eui'; import { SnapshotDetails, RestoreSettings } from '../../../../common/types'; +import { SectionError, Error } from '../../../shared_imports'; import { BASE_PATH } from '../../constants'; -import { SectionError, SectionLoading, RestoreSnapshotForm, Error } from '../../components'; +import { SectionLoading, RestoreSnapshotForm } from '../../components'; import { useServices } from '../../app_context'; import { breadcrumbService, docTitleService } from '../../services/navigation'; import { useLoadSnapshot, executeRestore } from '../../services/http'; diff --git a/x-pack/plugins/snapshot_restore/public/application/services/http/use_request.ts b/x-pack/plugins/snapshot_restore/public/application/services/http/use_request.ts index 200d601fd2ce98..27a565ccb74bc9 100644 --- a/x-pack/plugins/snapshot_restore/public/application/services/http/use_request.ts +++ b/x-pack/plugins/snapshot_restore/public/application/services/http/use_request.ts @@ -9,11 +9,10 @@ import { UseRequestConfig, sendRequest as _sendRequest, useRequest as _useRequest, + Error as CustomError, } from '../../../shared_imports'; -import { Error as CustomError } from '../../components/section_error'; - -import { httpService } from './index'; +import { httpService } from '.'; export const sendRequest = (config: SendRequestConfig) => { return _sendRequest(httpService.httpClient, config); diff --git a/x-pack/plugins/snapshot_restore/public/shared_imports.ts b/x-pack/plugins/snapshot_restore/public/shared_imports.ts index 7e7ef09d0c09dc..e0024ea8e0c126 100644 --- a/x-pack/plugins/snapshot_restore/public/shared_imports.ts +++ b/x-pack/plugins/snapshot_restore/public/shared_imports.ts @@ -12,4 +12,10 @@ export { useRequest, CronEditor, DAY, + SectionError, + Error, + WithPrivileges, + useAuthorizationContext, + NotAuthorizedSection, + AuthorizationProvider, } from '../../../../src/plugins/es_ui_shared/public'; diff --git a/x-pack/plugins/snapshot_restore/server/routes/api/app.ts b/x-pack/plugins/snapshot_restore/server/routes/api/app.ts index 5d334fddc144bc..bda64fdb665714 100644 --- a/x-pack/plugins/snapshot_restore/server/routes/api/app.ts +++ b/x-pack/plugins/snapshot_restore/server/routes/api/app.ts @@ -3,12 +3,13 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { Privileges } from '../../../common/types'; +import { Privileges } from '../../../../../../src/plugins/es_ui_shared/public'; + import { APP_REQUIRED_CLUSTER_PRIVILEGES, APP_RESTORE_INDEX_PRIVILEGES, APP_SLM_CLUSTER_PRIVILEGES, -} from '../../../common/constants'; +} from '../../../common'; import { RouteDependencies } from '../../types'; import { addBasePath } from '../helpers'; From be181d430a2ebb101ffcb9baff237bb6b868cb24 Mon Sep 17 00:00:00 2001 From: Brent Kimmel Date: Tue, 21 Apr 2020 09:45:28 -0400 Subject: [PATCH 35/54] Add sub-menus to Resolver node (for 75% zoom) (#63476) (#64005) * adding two buttons for 75% zoom view * adjust palette to match comps Co-authored-by: Kevin Qualters --- .../public/embeddables/resolver/view/defs.tsx | 10 +- .../resolver/view/process_event_dot.tsx | 94 ++++++++++++++++--- .../endpoint/scripts/resolver_generator.ts | 2 +- 3 files changed, 91 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/endpoint/public/embeddables/resolver/view/defs.tsx b/x-pack/plugins/endpoint/public/embeddables/resolver/view/defs.tsx index de9c3c7e8f8f3e..064645019ca34c 100644 --- a/x-pack/plugins/endpoint/public/embeddables/resolver/view/defs.tsx +++ b/x-pack/plugins/endpoint/public/embeddables/resolver/view/defs.tsx @@ -54,7 +54,11 @@ type ResolverColorNames = | 'activeNoWarning' | 'activeWarning' | 'fullLabelBackground' - | 'inertDescription'; + | 'inertDescription' + | 'labelBackgroundTerminatedProcess' + | 'labelBackgroundTerminatedTrigger' + | 'labelBackgroundRunningProcess' + | 'labelBackgroundRunningTrigger'; export const NamedColors: Record = { ok: saturate(0.5, resolverPalette.temperatures[0]), @@ -70,6 +74,10 @@ export const NamedColors: Record = { activeNoWarning: '#0078FF', activeWarning: '#C61F38', fullLabelBackground: '#3B3C41', + labelBackgroundTerminatedProcess: '#8A96A8', + labelBackgroundTerminatedTrigger: '#8A96A8', + labelBackgroundRunningProcess: '#8A96A8', + labelBackgroundRunningTrigger: '#8A96A8', inertDescription: '#747474', }; diff --git a/x-pack/plugins/endpoint/public/embeddables/resolver/view/process_event_dot.tsx b/x-pack/plugins/endpoint/public/embeddables/resolver/view/process_event_dot.tsx index 10e331ffff02d5..3201e83164dba6 100644 --- a/x-pack/plugins/endpoint/public/embeddables/resolver/view/process_event_dot.tsx +++ b/x-pack/plugins/endpoint/public/embeddables/resolver/view/process_event_dot.tsx @@ -7,7 +7,13 @@ import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; import { i18n } from '@kbn/i18n'; -import { htmlIdGenerator, EuiKeyboardAccessible } from '@elastic/eui'; +import { + htmlIdGenerator, + EuiKeyboardAccessible, + EuiButton, + EuiFlexGroup, + EuiFlexItem, +} from '@elastic/eui'; import { useSelector } from 'react-redux'; import { applyMatrix3 } from '../lib/vector2'; import { Vector2, Matrix3, AdjacentProcessMap, ResolverProcessType } from '../types'; @@ -21,7 +27,7 @@ import * as selectors from '../store/selectors'; const nodeAssets = { runningProcessCube: { cubeSymbol: `#${SymbolIds.runningProcessCube}`, - labelBackground: NamedColors.fullLabelBackground, + labelBackground: NamedColors.labelBackgroundRunningProcess, descriptionFill: NamedColors.empty, descriptionText: i18n.translate('xpack.endpoint.resolver.runningProcess', { defaultMessage: 'Running Process', @@ -29,7 +35,7 @@ const nodeAssets = { }, runningTriggerCube: { cubeSymbol: `#${SymbolIds.runningTriggerCube}`, - labelBackground: NamedColors.fullLabelBackground, + labelBackground: NamedColors.labelBackgroundRunningTrigger, descriptionFill: NamedColors.empty, descriptionText: i18n.translate('xpack.endpoint.resolver.runningTrigger', { defaultMessage: 'Running Trigger', @@ -37,7 +43,7 @@ const nodeAssets = { }, terminatedProcessCube: { cubeSymbol: `#${SymbolIds.terminatedProcessCube}`, - labelBackground: NamedColors.fullLabelBackground, + labelBackground: NamedColors.labelBackgroundTerminatedProcess, descriptionFill: NamedColors.empty, descriptionText: i18n.translate('xpack.endpoint.resolver.terminatedProcess', { defaultMessage: 'Terminated Process', @@ -45,7 +51,7 @@ const nodeAssets = { }, terminatedTriggerCube: { cubeSymbol: `#${SymbolIds.terminatedTriggerCube}`, - labelBackground: NamedColors.fullLabelBackground, + labelBackground: NamedColors.labelBackgroundTerminatedTrigger, descriptionFill: NamedColors.empty, descriptionText: i18n.translate('xpack.endpoint.resolver.terminatedTrigger', { defaultMessage: 'Terminated Trigger', @@ -53,8 +59,46 @@ const nodeAssets = { }, }; +const ChildEventsButton = React.memo(() => { + return ( + ) => { + clickEvent.preventDefault(); + clickEvent.stopPropagation(); + }, [])} + color="ghost" + size="s" + iconType="arrowDown" + iconSide="right" + tabIndex={-1} + > + {i18n.translate('xpack.endpoint.resolver.relatedEvents', { + defaultMessage: 'Events', + })} + + ); +}); + +const RelatedAlertsButton = React.memo(() => { + return ( + ) => { + clickEvent.preventDefault(); + clickEvent.stopPropagation(); + }, [])} + color="ghost" + size="s" + tabIndex={-1} + > + {i18n.translate('xpack.endpoint.resolver.relatedAlerts', { + defaultMessage: 'Related Alerts', + })} + + ); +}); + /** - * A placeholder view for a process node. + * An artefact that represents a process node. */ export const ProcessEventDot = styled( React.memo( @@ -184,6 +228,7 @@ export const ProcessEventDot = styled( }, [animationTarget, dispatch, nodeId] ); + /* eslint-disable jsx-a11y/click-events-have-key-events */ /** * Key event handling (e.g. 'Enter'/'Space') is provisioned by the `EuiKeyboardAccessible` component @@ -256,13 +301,17 @@ export const ProcessEventDot = styled(
{descriptionText}
= 2 ? 'euiButton' : 'euiButton euiButton--small'} data-test-subject="nodeLabel" id={labelId} style={{ backgroundColor: labelBackground, - padding: '.15em 0', + padding: '.15rem 0', textAlign: 'center', - maxWidth: '100%', + maxWidth: '20rem', + minWidth: '12rem', + width: '60%', overflow: 'hidden', whiteSpace: 'nowrap', textOverflow: 'ellipsis', contain: 'content', + margin: '.25rem 0 .35rem 0', }} > - {eventModel.eventName(event)} + + {eventModel.eventName(event)} +
+ {magFactorX >= 2 && ( + + + + + + + + + )}
@@ -317,6 +383,8 @@ export const ProcessEventDot = styled( white-space: nowrap; will-change: left, top, width, height; contain: strict; + min-width: 280px; + min-height: 90px; //dasharray & dashoffset should be equal to "pull" the stroke back //when it is transitioned. diff --git a/x-pack/plugins/endpoint/scripts/resolver_generator.ts b/x-pack/plugins/endpoint/scripts/resolver_generator.ts index dd9e591f4b034f..2129bef0624b87 100644 --- a/x-pack/plugins/endpoint/scripts/resolver_generator.ts +++ b/x-pack/plugins/endpoint/scripts/resolver_generator.ts @@ -29,7 +29,7 @@ async function main() { alertIndex: { alias: 'ai', describe: 'index to store alerts in', - default: '.alerts-endpoint-000001', + default: 'events-endpoint-1', type: 'string', }, eventIndex: { From 50cf8a764ef50ac562bfe2acfd5975ccd02f324e Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 21 Apr 2020 15:56:14 +0200 Subject: [PATCH 36/54] [State Management] ScopedHistory support for state syncing utils (#62761) (#64061) The needed change is to rely on history as source of truth for location instead of window.location. btw, This makes possible to test state syncing utils integration using createMemoryHistory() One issue was discovered after this change: When switching from context to discover url was incorrect. history.location inside state syncing utils didn't get the last update. This happened, because history instance created in discover wasn't used in context app and when all listeners unsubscribed from it - it stopped receiving location updates. To fix this I just reused one history instance in discover, context and their kbnUrlTracker --- .../public/todo/app.tsx | 12 +- .../public/todo/todo.tsx | 10 +- .../public/with_data_services/application.tsx | 4 +- .../kibana/public/discover/build_services.ts | 10 +- .../kibana/public/discover/kibana_services.ts | 6 + .../discover/np_ready/angular/context.js | 1 + .../np_ready/angular/context_state.ts | 8 +- .../discover/np_ready/angular/discover.js | 5 +- .../sidebar/discover_field.test.tsx | 4 +- .../sidebar/discover_sidebar.test.tsx | 4 +- .../sidebar/lib/visualize_url_utils.ts | 2 +- .../kibana/public/discover/plugin.ts | 8 +- .../url/kbn_url_storage.test.ts | 46 ++++- .../state_management/url/kbn_url_storage.ts | 9 +- .../state_management/url/kbn_url_tracker.ts | 9 +- .../public/state_management/url/parse.ts | 5 +- .../create_kbn_url_state_storage.test.ts | 75 +++++++ test/examples/config.js | 1 + test/examples/state_sync/index.ts | 39 ++++ test/examples/state_sync/todo_app.ts | 189 ++++++++++++++++++ 20 files changed, 403 insertions(+), 44 deletions(-) create mode 100644 test/examples/state_sync/index.ts create mode 100644 test/examples/state_sync/todo_app.ts diff --git a/examples/state_containers_examples/public/todo/app.tsx b/examples/state_containers_examples/public/todo/app.tsx index 319680d07f9bc8..f2183613e4a12c 100644 --- a/examples/state_containers_examples/public/todo/app.tsx +++ b/examples/state_containers_examples/public/todo/app.tsx @@ -20,7 +20,7 @@ import { AppMountParameters } from 'kibana/public'; import ReactDOM from 'react-dom'; import React from 'react'; -import { createHashHistory, createBrowserHistory } from 'history'; +import { createHashHistory } from 'history'; import { TodoAppPage } from './todo'; export interface AppOptions { @@ -35,13 +35,10 @@ export enum History { } export const renderApp = ( - { appBasePath, element }: AppMountParameters, + { appBasePath, element, history: platformHistory }: AppMountParameters, { appInstanceId, appTitle, historyType }: AppOptions ) => { - const history = - historyType === History.Browser - ? createBrowserHistory({ basename: appBasePath }) - : createHashHistory(); + const history = historyType === History.Browser ? platformHistory : createHashHistory(); ReactDOM.render( = ({ filter }) => { return ( <>
- + All - + Completed - + Not Completed @@ -121,6 +124,7 @@ const TodoApp: React.FC = ({ filter }) => { }); }} label={todo.text} + data-test-subj={`todoCheckbox-${todo.id}`} /> { - const history = createBrowserHistory({ basename: appBasePath }); const kbnUrlStateStorage = createKbnUrlStateStorage({ useHash: false, history }); ReactDOM.render( diff --git a/src/legacy/core_plugins/kibana/public/discover/build_services.ts b/src/legacy/core_plugins/kibana/public/discover/build_services.ts index a3a99a0ded523c..c56e50f3b27ffe 100644 --- a/src/legacy/core_plugins/kibana/public/discover/build_services.ts +++ b/src/legacy/core_plugins/kibana/public/discover/build_services.ts @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { createHashHistory, History } from 'history'; +import { History } from 'history'; import { Capabilities, @@ -51,7 +51,7 @@ export interface DiscoverServices { data: DataPublicPluginStart; docLinks: DocLinksStart; DocViewer: DocViewerComponent; - history: History; + history: () => History; theme: ChartsPluginStart['theme']; filterManager: FilterManager; indexPatterns: IndexPatternsContract; @@ -67,7 +67,8 @@ export interface DiscoverServices { } export async function buildServices( core: CoreStart, - plugins: DiscoverStartPlugins + plugins: DiscoverStartPlugins, + getHistory: () => History ): Promise { const services = { savedObjectsClient: core.savedObjects.client, @@ -77,6 +78,7 @@ export async function buildServices( overlays: core.overlays, }; const savedObjectService = createSavedSearchesLoader(services); + return { addBasePath: core.http.basePath.prepend, capabilities: core.application.capabilities, @@ -85,11 +87,11 @@ export async function buildServices( data: plugins.data, docLinks: core.docLinks, DocViewer: plugins.discover.docViews.DocViewer, - history: createHashHistory(), theme: plugins.charts.theme, filterManager: plugins.data.query.filterManager, getSavedSearchById: async (id: string) => savedObjectService.get(id), getSavedSearchUrlById: async (id: string) => savedObjectService.urlFor(id), + history: getHistory, indexPatterns: plugins.data.indexPatterns, inspector: plugins.inspector, // @ts-ignore diff --git a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts index 0a81ca0222b0a0..156267bdfa87e0 100644 --- a/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts +++ b/src/legacy/core_plugins/kibana/public/discover/kibana_services.ts @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ +import { createHashHistory } from 'history'; import { DiscoverServices } from './build_services'; import { createGetterSetter } from '../../../../../plugins/kibana_utils/public'; import { search } from '../../../../../plugins/data/public'; @@ -52,6 +53,11 @@ export const [getUrlTracker, setUrlTracker] = createGetterSetter<{ setTrackedUrl: (url: string) => void; }>('urlTracker'); +/** + * Makes sure discover and context are using one instance of history + */ +export const getHistory = _.once(() => createHashHistory()); + export const { getRequestInspectorStats, getResponseInspectorStats, tabifyAggResponse } = search; export { unhashUrl, diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context.js b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context.js index 5b03b313e4e3e6..032ec7af09a301 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context.js +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context.js @@ -81,6 +81,7 @@ function ContextAppRouteController($routeParams, $scope, $route) { defaultStepSize: getServices().uiSettings.get('context:defaultSize'), timeFieldName: indexPattern.timeFieldName, storeInSessionStorage: getServices().uiSettings.get('state:storeInSessionStorage'), + history: getServices().history(), }); this.state = { ...appState.getState() }; this.anchorId = $routeParams.id; diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context_state.ts b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context_state.ts index ed59143b163f69..b46995d44d826d 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context_state.ts +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/context_state.ts @@ -17,7 +17,7 @@ * under the License. */ import _ from 'lodash'; -import { createBrowserHistory, History } from 'history'; +import { History } from 'history'; import { createStateContainer, createKbnUrlStateStorage, @@ -71,9 +71,9 @@ interface GetStateParams { */ storeInSessionStorage?: boolean; /** - * Browser history used for testing + * History instance to use */ - history?: History; + history: History; } interface GetStateReturn { @@ -126,7 +126,7 @@ export function getState({ }: GetStateParams): GetStateReturn { const stateStorage = createKbnUrlStateStorage({ useHash: storeInSessionStorage, - history: history ? history : createBrowserHistory(), + history, }); const globalStateInitial = stateStorage.get(GLOBAL_STATE_URL_KEY) as GlobalState; diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js index 56966d6294c9a4..567cfda45cc0d1 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/angular/discover.js @@ -57,7 +57,7 @@ const { core, chrome, data, - history, + history: getHistory, indexPatterns, filterManager, share, @@ -116,6 +116,7 @@ app.config($routeProvider => { reloadOnSearch: false, resolve: { savedObjects: function($route, Promise) { + const history = getHistory(); const savedSearchId = $route.current.params.id; return ensureDefaultIndexPattern(core, data, history).then(() => { const { appStateContainer } = getState({ history }); @@ -204,6 +205,8 @@ function discoverController( return isDefaultType($scope.indexPattern) ? $scope.indexPattern.timeFieldName : undefined; }; + const history = getHistory(); + const { appStateContainer, startSync: startStateSync, diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.test.tsx b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.test.tsx index 9a6bd65813d184..fdae2c0c16c9f2 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.test.tsx +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_field.test.tsx @@ -31,11 +31,11 @@ import { IndexPatternField } from '../../../../../../../../plugins/data/public'; jest.mock('../../../kibana_services', () => ({ getServices: () => ({ - history: { + history: () => ({ location: { search: '', }, - }, + }), capabilities: { visualize: { show: true, diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.test.tsx b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.test.tsx index 0df14515adc6d4..29451c075bcad5 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.test.tsx +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/discover_sidebar.test.tsx @@ -36,11 +36,11 @@ import { SavedObject } from '../../../../../../../../core/types'; jest.mock('../../../kibana_services', () => ({ getServices: () => ({ - history: { + history: () => ({ location: { search: '', }, - }, + }), capabilities: { visualize: { show: true, diff --git a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/visualize_url_utils.ts b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/visualize_url_utils.ts index d146d212055b76..968ceeeab73a5f 100644 --- a/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/visualize_url_utils.ts +++ b/src/legacy/core_plugins/kibana/public/discover/np_ready/components/sidebar/lib/visualize_url_utils.ts @@ -125,7 +125,7 @@ export function getVisualizeUrl( services: DiscoverServices ) { const aggsTermSize = services.uiSettings.get('discover:aggs:terms:size'); - const urlParams = parse(services.history.location.search) as Record; + const urlParams = parse(services.history().location.search) as Record; if ( (field.type === KBN_FIELD_TYPES.GEO_POINT || field.type === KBN_FIELD_TYPES.GEO_SHAPE) && diff --git a/src/legacy/core_plugins/kibana/public/discover/plugin.ts b/src/legacy/core_plugins/kibana/public/discover/plugin.ts index d05e96ccaaf0b0..42883abe98171b 100644 --- a/src/legacy/core_plugins/kibana/public/discover/plugin.ts +++ b/src/legacy/core_plugins/kibana/public/discover/plugin.ts @@ -31,7 +31,7 @@ import { registerFeature } from './np_ready/register_feature'; import './kibana_services'; import { EmbeddableStart, EmbeddableSetup } from '../../../../../plugins/embeddable/public'; import { getInnerAngularModule, getInnerAngularModuleEmbeddable } from './get_inner_angular'; -import { setAngularModule, setServices, setUrlTracker } from './kibana_services'; +import { getHistory, setAngularModule, setServices, setUrlTracker } from './kibana_services'; import { NavigationPublicPluginStart as NavigationStart } from '../../../../../plugins/navigation/public'; import { ChartsPluginStart } from '../../../../../plugins/charts/public'; import { buildServices } from './build_services'; @@ -98,6 +98,10 @@ export class DiscoverPlugin implements Plugin { stop: stopUrlTracker, setActiveUrl: setTrackedUrl, } = createKbnUrlTracker({ + // we pass getter here instead of plain `history`, + // so history is lazily created (when app is mounted) + // this prevents redundant `#` when not in discover app + getHistory, baseUrl: core.http.basePath.prepend('/app/kibana'), defaultSubUrl: '#/discover', storageKey: `lastUrl:${core.http.basePath.get()}:discover`, @@ -174,7 +178,7 @@ export class DiscoverPlugin implements Plugin { if (this.servicesInitialized) { return { core, plugins }; } - const services = await buildServices(core, plugins); + const services = await buildServices(core, plugins, getHistory); setServices(services); this.servicesInitialized = true; diff --git a/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.test.ts b/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.test.ts index 6e4c505c62ebc8..513c70e60048a4 100644 --- a/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.test.ts +++ b/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.test.ts @@ -31,6 +31,7 @@ import { setStateToKbnUrl, getStateFromKbnUrl, } from './kbn_url_storage'; +import { ScopedHistory } from '../../../../../core/public'; describe('kbn_url_storage', () => { describe('getStateFromUrl & setStateToUrl', () => { @@ -187,23 +188,54 @@ describe('kbn_url_storage', () => { urlControls.update('/', true); }); - const getCurrentUrl = () => window.location.href; + const getCurrentUrl = () => history.createHref(history.location); it('should flush async url updates', async () => { const pr1 = urlControls.updateAsync(() => '/1', false); const pr2 = urlControls.updateAsync(() => '/2', false); const pr3 = urlControls.updateAsync(() => '/3', false); - expect(getCurrentUrl()).toBe('http://localhost/'); - expect(urlControls.flush()).toBe('http://localhost/3'); - expect(getCurrentUrl()).toBe('http://localhost/3'); + expect(getCurrentUrl()).toBe('/'); + expect(urlControls.flush()).toBe('/3'); + expect(getCurrentUrl()).toBe('/3'); + await Promise.all([pr1, pr2, pr3]); + expect(getCurrentUrl()).toBe('/3'); + }); + + it('flush() should return undefined, if no url updates happened', () => { + expect(urlControls.flush()).toBeUndefined(); + urlControls.updateAsync(() => '/1', false); + urlControls.updateAsync(() => '/', false); + expect(urlControls.flush()).toBeUndefined(); + }); + }); + + describe('urlControls - scoped history integration', () => { + let history: History; + let urlControls: IKbnUrlControls; + beforeEach(() => { + const parentHistory = createBrowserHistory(); + parentHistory.replace('/app/kibana/'); + history = new ScopedHistory(parentHistory, '/app/kibana/'); + urlControls = createKbnUrlControls(history); + }); + + const getCurrentUrl = () => history.createHref(history.location); + + it('should flush async url updates', async () => { + const pr1 = urlControls.updateAsync(() => '/app/kibana/1', false); + const pr2 = urlControls.updateAsync(() => '/app/kibana/2', false); + const pr3 = urlControls.updateAsync(() => '/app/kibana/3', false); + expect(getCurrentUrl()).toBe('/app/kibana/'); + expect(urlControls.flush()).toBe('/app/kibana/3'); + expect(getCurrentUrl()).toBe('/app/kibana/3'); await Promise.all([pr1, pr2, pr3]); - expect(getCurrentUrl()).toBe('http://localhost/3'); + expect(getCurrentUrl()).toBe('/app/kibana/3'); }); it('flush() should return undefined, if no url updates happened', () => { expect(urlControls.flush()).toBeUndefined(); - urlControls.updateAsync(() => 'http://localhost/1', false); - urlControls.updateAsync(() => 'http://localhost/', false); + urlControls.updateAsync(() => '/app/kibana/1', false); + urlControls.updateAsync(() => '/app/kibana/', false); expect(urlControls.flush()).toBeUndefined(); }); }); diff --git a/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.ts b/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.ts index 40a411d425a54f..337d122e2854be 100644 --- a/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.ts +++ b/src/plugins/kibana_utils/public/state_management/url/kbn_url_storage.ts @@ -154,7 +154,7 @@ export const createKbnUrlControls = ( let shouldReplace = true; function updateUrl(newUrl: string, replace = false): string | undefined { - const currentUrl = getCurrentUrl(); + const currentUrl = getCurrentUrl(history); if (newUrl === currentUrl) return undefined; // skip update const historyPath = getRelativeToHistoryPath(newUrl, history); @@ -165,7 +165,7 @@ export const createKbnUrlControls = ( history.push(historyPath); } - return getCurrentUrl(); + return getCurrentUrl(history); } // queue clean up @@ -187,7 +187,10 @@ export const createKbnUrlControls = ( function getPendingUrl() { if (updateQueue.length === 0) return undefined; - const resultUrl = updateQueue.reduce((url, nextUpdate) => nextUpdate(url), getCurrentUrl()); + const resultUrl = updateQueue.reduce( + (url, nextUpdate) => nextUpdate(url), + getCurrentUrl(history) + ); return resultUrl; } diff --git a/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts index af8811b1969e69..8adbbfb06e1edf 100644 --- a/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts +++ b/src/plugins/kibana_utils/public/state_management/url/kbn_url_tracker.ts @@ -57,6 +57,7 @@ export function createKbnUrlTracker({ navLinkUpdater$, toastNotifications, history, + getHistory, storage, shouldTrackUrlUpdate = pathname => { const currentAppName = defaultSubUrl.slice(2); // cut hash and slash symbols @@ -103,6 +104,12 @@ export function createKbnUrlTracker({ * History object to use to track url changes. If this isn't provided, a local history instance will be created. */ history?: History; + + /** + * Lazily retrieve history instance + */ + getHistory?: () => History; + /** * Storage object to use to persist currently active url. If this isn't provided, the browser wide session storage instance will be used. */ @@ -158,7 +165,7 @@ export function createKbnUrlTracker({ function onMountApp() { unsubscribe(); - const historyInstance = history || createHashHistory(); + const historyInstance = history || (getHistory && getHistory()) || createHashHistory(); // track current hash when within app unsubscribeURLHistory = historyInstance.listen(location => { if (shouldTrackUrlUpdate(location.pathname)) { diff --git a/src/plugins/kibana_utils/public/state_management/url/parse.ts b/src/plugins/kibana_utils/public/state_management/url/parse.ts index 95041d0662f56d..6339002ea5c68b 100644 --- a/src/plugins/kibana_utils/public/state_management/url/parse.ts +++ b/src/plugins/kibana_utils/public/state_management/url/parse.ts @@ -18,12 +18,11 @@ */ import { parse as _parseUrl } from 'url'; +import { History } from 'history'; export const parseUrl = (url: string) => _parseUrl(url, true); export const parseUrlHash = (url: string) => { const hash = parseUrl(url).hash; return hash ? parseUrl(hash.slice(1)) : null; }; -export const getCurrentUrl = () => window.location.href; -export const parseCurrentUrl = () => parseUrl(getCurrentUrl()); -export const parseCurrentUrlHash = () => parseUrlHash(getCurrentUrl()); +export const getCurrentUrl = (history: History) => history.createHref(history.location); diff --git a/src/plugins/kibana_utils/public/state_sync/state_sync_state_storage/create_kbn_url_state_storage.test.ts b/src/plugins/kibana_utils/public/state_sync/state_sync_state_storage/create_kbn_url_state_storage.test.ts index cc3f1df7c1e00a..8a9a4ea71ee9ab 100644 --- a/src/plugins/kibana_utils/public/state_sync/state_sync_state_storage/create_kbn_url_state_storage.test.ts +++ b/src/plugins/kibana_utils/public/state_sync/state_sync_state_storage/create_kbn_url_state_storage.test.ts @@ -21,6 +21,7 @@ import { createKbnUrlStateStorage, IKbnUrlStateStorage } from './create_kbn_url_ import { History, createBrowserHistory } from 'history'; import { takeUntil, toArray } from 'rxjs/operators'; import { Subject } from 'rxjs'; +import { ScopedHistory } from '../../../../../core/public'; describe('KbnUrlStateStorage', () => { describe('useHash: false', () => { @@ -132,4 +133,78 @@ describe('KbnUrlStateStorage', () => { expect(await result).toEqual([{ test: 'test', ok: 1 }, { test: 'test', ok: 2 }, null]); }); }); + + describe('ScopedHistory integration', () => { + let urlStateStorage: IKbnUrlStateStorage; + let history: ScopedHistory; + const getCurrentUrl = () => history.createHref(history.location); + beforeEach(() => { + const parentHistory = createBrowserHistory(); + parentHistory.push('/kibana/app/'); + history = new ScopedHistory(parentHistory, '/kibana/app/'); + urlStateStorage = createKbnUrlStateStorage({ useHash: false, history }); + }); + + it('should persist state to url', async () => { + const state = { test: 'test', ok: 1 }; + const key = '_s'; + await urlStateStorage.set(key, state); + expect(getCurrentUrl()).toMatchInlineSnapshot(`"/kibana/app/#?_s=(ok:1,test:test)"`); + expect(urlStateStorage.get(key)).toEqual(state); + }); + + it('should flush state to url', () => { + const state = { test: 'test', ok: 1 }; + const key = '_s'; + urlStateStorage.set(key, state); + expect(getCurrentUrl()).toMatchInlineSnapshot(`"/kibana/app/"`); + expect(urlStateStorage.flush()).toBe(true); + expect(getCurrentUrl()).toMatchInlineSnapshot(`"/kibana/app/#?_s=(ok:1,test:test)"`); + expect(urlStateStorage.get(key)).toEqual(state); + + expect(urlStateStorage.flush()).toBe(false); // nothing to flush, not update + }); + + it('should cancel url updates', async () => { + const state = { test: 'test', ok: 1 }; + const key = '_s'; + const pr = urlStateStorage.set(key, state); + expect(getCurrentUrl()).toMatchInlineSnapshot(`"/kibana/app/"`); + urlStateStorage.cancel(); + await pr; + expect(getCurrentUrl()).toMatchInlineSnapshot(`"/kibana/app/"`); + expect(urlStateStorage.get(key)).toEqual(null); + }); + + it('should cancel url updates if synchronously returned to the same state', async () => { + const state1 = { test: 'test', ok: 1 }; + const state2 = { test: 'test', ok: 2 }; + const key = '_s'; + const pr1 = urlStateStorage.set(key, state1); + await pr1; + const historyLength = history.length; + const pr2 = urlStateStorage.set(key, state2); + const pr3 = urlStateStorage.set(key, state1); + await Promise.all([pr2, pr3]); + expect(history.length).toBe(historyLength); + }); + + it('should notify about url changes', async () => { + expect(urlStateStorage.change$).toBeDefined(); + const key = '_s'; + const destroy$ = new Subject(); + const result = urlStateStorage.change$!(key) + .pipe(takeUntil(destroy$), toArray()) + .toPromise(); + + history.push(`/#?${key}=(ok:1,test:test)`); + history.push(`/?query=test#?${key}=(ok:2,test:test)&some=test`); + history.push(`/?query=test#?some=test`); + + destroy$.next(); + destroy$.complete(); + + expect(await result).toEqual([{ test: 'test', ok: 1 }, { test: 'test', ok: 2 }, null]); + }); + }); }); diff --git a/test/examples/config.js b/test/examples/config.js index 49d75da2860753..2be34459d8d06f 100644 --- a/test/examples/config.js +++ b/test/examples/config.js @@ -28,6 +28,7 @@ export default async function({ readConfigFile }) { require.resolve('./search'), require.resolve('./embeddables'), require.resolve('./ui_actions'), + require.resolve('./state_sync'), ], services: { ...functionalConfig.get('services'), diff --git a/test/examples/state_sync/index.ts b/test/examples/state_sync/index.ts new file mode 100644 index 00000000000000..3c524f0feb6192 --- /dev/null +++ b/test/examples/state_sync/index.ts @@ -0,0 +1,39 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { PluginFunctionalProviderContext } from 'test/plugin_functional/services'; + +// eslint-disable-next-line import/no-default-export +export default function({ + getService, + getPageObjects, + loadTestFile, +}: PluginFunctionalProviderContext) { + const browser = getService('browser'); + const PageObjects = getPageObjects(['common']); + + describe('state sync examples', function() { + before(async () => { + await browser.setWindowSize(1300, 900); + await PageObjects.common.navigateToApp('settings'); + }); + + loadTestFile(require.resolve('./todo_app')); + }); +} diff --git a/test/examples/state_sync/todo_app.ts b/test/examples/state_sync/todo_app.ts new file mode 100644 index 00000000000000..4933d746ca4fd8 --- /dev/null +++ b/test/examples/state_sync/todo_app.ts @@ -0,0 +1,189 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import expect from '@kbn/expect'; + +import { PluginFunctionalProviderContext } from 'test/plugin_functional/services'; + +// eslint-disable-next-line import/no-default-export +export default function({ getService, getPageObjects }: PluginFunctionalProviderContext) { + const testSubjects = getService('testSubjects'); + const find = getService('find'); + const retry = getService('retry'); + const appsMenu = getService('appsMenu'); + const browser = getService('browser'); + const PageObjects = getPageObjects(['common']); + const log = getService('log'); + + describe('TODO app', () => { + describe("TODO app with browser history (platform's ScopedHistory)", async () => { + const appId = 'stateContainersExampleBrowserHistory'; + let base: string; + + before(async () => { + base = await PageObjects.common.getHostPort(); + await appsMenu.clickLink('State containers example - browser history routing'); + }); + + it('links are rendered correctly and state is preserved in links', async () => { + const getHrefByLinkTestSubj = async (linkTestSubj: string) => + (await testSubjects.find(linkTestSubj)).getAttribute('href'); + + await expectPathname(await getHrefByLinkTestSubj('filterLinkCompleted'), '/completed'); + await expectPathname( + await getHrefByLinkTestSubj('filterLinkNotCompleted'), + '/not-completed' + ); + await expectPathname(await getHrefByLinkTestSubj('filterLinkAll'), '/'); + }); + + it('TODO app state is synced with url, back navigation works', async () => { + // checking that in initial state checkbox is unchecked and state is synced with url + expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(false); + expect(await browser.getCurrentUrl()).to.contain('completed:!f'); + + // check the checkbox by clicking the label (clicking checkbox directly fails as it is "no intractable") + (await find.byCssSelector('label[for="0"]')).click(); + + // wait for react to update dom and checkbox in checked state + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(true); + }); + // checking that url is updated with checked state + expect(await browser.getCurrentUrl()).to.contain('completed:!t'); + + // checking back and forward button + await browser.goBack(); + expect(await browser.getCurrentUrl()).to.contain('completed:!f'); + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(false); + }); + + await browser.goForward(); + expect(await browser.getCurrentUrl()).to.contain('completed:!t'); + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(true); + }); + }); + + it('links navigation works', async () => { + // click link to filter only not completed + await testSubjects.click('filterLinkNotCompleted'); + await expectPathname(await browser.getCurrentUrl(), '/not-completed'); + // checkbox should be missing because it is "completed" + await testSubjects.missingOrFail('todoCheckbox-0'); + }); + + /** + * Parses app's scoped pathname from absolute url and asserts it against `expectedPathname` + * Also checks that hashes are equal (detail of todo app that state is rendered in links) + * @param absoluteUrl + * @param expectedPathname + */ + async function expectPathname(absoluteUrl: string, expectedPathname: string) { + const scoped = await getScopedUrl(absoluteUrl); + const [pathname, newHash] = scoped.split('#'); + expect(pathname).to.be(expectedPathname); + const [, currentHash] = (await browser.getCurrentUrl()).split('#'); + expect(newHash.replace(/%27/g, "'")).to.be(currentHash.replace(/%27/g, "'")); + } + + /** + * Get's part of url scoped to this app (removed kibana's host and app's pathname) + * @param url - absolute url + */ + async function getScopedUrl(url: string): Promise { + expect(url).to.contain(base); + expect(url).to.contain(appId); + const scopedUrl = url.slice(url.indexOf(appId) + appId.length); + expect(scopedUrl).not.to.contain(appId); // app id in url only once + return scopedUrl; + } + }); + + describe('TODO app with hash history ', async () => { + before(async () => { + await appsMenu.clickLink('State containers example - hash history routing'); + }); + + it('Links are rendered correctly and state is preserved in links', async () => { + const getHrefByLinkTestSubj = async (linkTestSubj: string) => + (await testSubjects.find(linkTestSubj)).getAttribute('href'); + await expectHashPathname(await getHrefByLinkTestSubj('filterLinkCompleted'), '/completed'); + await expectHashPathname( + await getHrefByLinkTestSubj('filterLinkNotCompleted'), + '/not-completed' + ); + await expectHashPathname(await getHrefByLinkTestSubj('filterLinkAll'), '/'); + }); + + it('TODO app state is synced with url, back navigation works', async () => { + // checking that in initial state checkbox is unchecked and state is synced with url + expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(false); + expect(await browser.getCurrentUrl()).to.contain('completed:!f'); + // check the checkbox by clicking the label (clicking checkbox directly fails as it is "no intractable") + (await find.byCssSelector('label[for="0"]')).click(); + + // wait for react to update dom and checkbox in checked state + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(true); + }); + // checking that url is updated with checked state + expect(await browser.getCurrentUrl()).to.contain('completed:!t'); + + // checking back and forward button + await browser.goBack(); + expect(await browser.getCurrentUrl()).to.contain('completed:!f'); + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(false); + }); + + await browser.goForward(); + expect(await browser.getCurrentUrl()).to.contain('completed:!t'); + await retry.tryForTime(1000, async () => { + await expect(await testSubjects.isChecked('todoCheckbox-0')).to.be(true); + }); + }); + + it('links navigation works', async () => { + // click link to filter only not completed + await testSubjects.click('filterLinkNotCompleted'); + await expectHashPathname(await browser.getCurrentUrl(), '/not-completed'); + // checkbox should be missing because it is "completed" + await testSubjects.missingOrFail('todoCheckbox-0'); + }); + + /** + * Parses app's pathname in hash from absolute url and asserts it against `expectedPathname` + * Also checks that queries in hashes are equal (detail of todo app that state is rendered in links) + * @param absoluteUrl + * @param expectedPathname + */ + async function expectHashPathname(hash: string, expectedPathname: string) { + log.debug(`expect hash pathname ${hash} to be ${expectedPathname}`); + const hashPath = hash.split('#')[1]; + const [hashPathname, hashQuery] = hashPath.split('?'); + const [, currentHash] = (await browser.getCurrentUrl()).split('#'); + const [, currentHashQuery] = currentHash.split('?'); + expect(currentHashQuery.replace(/%27/g, "'")).to.be(hashQuery.replace(/%27/g, "'")); + expect(hashPathname).to.be(expectedPathname); + } + }); + }); +} From 72299c82278715d4add535ff0bff3bdea26c4b69 Mon Sep 17 00:00:00 2001 From: Wylie Conlon Date: Tue, 21 Apr 2020 10:19:28 -0400 Subject: [PATCH 37/54] [Lens] Allow table to scroll horizontally (#63805) (#63908) * [Lens] Allow table to scroll horizontally * Fixing scrolling pt. 2 Co-authored-by: cchaos Co-authored-by: cchaos Co-authored-by: Elastic Machine --- .../canvas_plugin_src/renderers/embeddable/embeddable.scss | 6 +----- .../lens/public/datatable_visualization/expression.tsx | 1 + .../editor_frame/_expression_renderer.scss | 3 ++- .../editor_frame/_workspace_panel_wrapper.scss | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.scss b/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.scss index 04f2f393d1e80e..ae26a1bee99a6f 100644 --- a/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.scss +++ b/x-pack/legacy/plugins/canvas/canvas_plugin_src/renderers/embeddable/embeddable.scss @@ -26,8 +26,4 @@ .euiTable { background: none; } - - .lnsExpressionRenderer { - @include euiScrollBar; - } -} \ No newline at end of file +} diff --git a/x-pack/plugins/lens/public/datatable_visualization/expression.tsx b/x-pack/plugins/lens/public/datatable_visualization/expression.tsx index cbdc0617e8568b..772ee13168d026 100644 --- a/x-pack/plugins/lens/public/datatable_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/datatable_visualization/expression.tsx @@ -140,6 +140,7 @@ function DatatableComponent(props: DatatableProps & { formatFactory: FormatFacto { const col = firstTable.columns.find(c => c.id === field); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_expression_renderer.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_expression_renderer.scss index d43a857e05639c..9519544ece575c 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_expression_renderer.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_expression_renderer.scss @@ -1,9 +1,10 @@ .lnsExpressionRenderer { + @include euiScrollBar; position: relative; width: 100%; height: 100%; display: flex; - overflow-x: hidden; + overflow: auto; .lnsExpressionRenderer__component { position: static; // Let the progress indicator position itself against the outer parent diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_workspace_panel_wrapper.scss b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_workspace_panel_wrapper.scss index 3ef387eca1e8b1..4ba19cb4ab05b9 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_workspace_panel_wrapper.scss +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/_workspace_panel_wrapper.scss @@ -29,7 +29,7 @@ display: flex; align-items: center; justify-content: center; - overflow-x: hidden; + overflow: hidden; } } } From af3ba98aa83fe9ce273c45f30cf655239e4ecaec Mon Sep 17 00:00:00 2001 From: Christos Nasikas Date: Tue, 21 Apr 2020 17:25:59 +0300 Subject: [PATCH 38/54] [7.x] [SIEM][CASE] Server common constants (#63952) (#64062) --- .../siem/public/containers/case/api.test.tsx | 6 +- .../siem/public/containers/case/api.ts | 55 +++++++++++-------- .../public/containers/case/configure/api.ts | 23 ++++---- .../siem/public/containers/case/constants.ts | 2 - x-pack/plugins/case/common/api/helpers.ts | 28 ++++++++++ x-pack/plugins/case/common/constants.ts | 29 ++++++++++ .../api/cases/comments/delete_all_comments.ts | 3 +- .../api/cases/comments/delete_comment.test.ts | 5 +- .../api/cases/comments/delete_comment.ts | 3 +- .../api/cases/comments/find_comments.ts | 3 +- .../api/cases/comments/get_all_comment.ts | 3 +- .../api/cases/comments/get_comment.test.ts | 5 +- .../routes/api/cases/comments/get_comment.ts | 3 +- .../api/cases/comments/patch_comment.test.ts | 7 ++- .../api/cases/comments/patch_comment.ts | 3 +- .../api/cases/comments/post_comment.test.ts | 9 +-- .../routes/api/cases/comments/post_comment.ts | 3 +- .../api/cases/configure/get_configure.test.ts | 9 +-- .../api/cases/configure/get_configure.ts | 3 +- .../cases/configure/get_connectors.test.ts | 5 +- .../api/cases/configure/get_connectors.ts | 4 +- .../cases/configure/patch_configure.test.ts | 11 ++-- .../api/cases/configure/patch_configure.ts | 3 +- .../cases/configure/post_configure.test.ts | 25 +++++---- .../api/cases/configure/post_configure.ts | 3 +- .../routes/api/cases/delete_cases.test.ts | 9 +-- .../server/routes/api/cases/delete_cases.ts | 3 +- .../routes/api/cases/find_cases.test.ts | 3 +- .../server/routes/api/cases/find_cases.ts | 3 +- .../server/routes/api/cases/get_case.test.ts | 9 +-- .../case/server/routes/api/cases/get_case.ts | 3 +- .../server/routes/api/cases/patch_cases.ts | 3 +- .../server/routes/api/cases/post_case.test.ts | 9 +-- .../case/server/routes/api/cases/post_case.ts | 3 +- .../case/server/routes/api/cases/push_case.ts | 3 +- .../api/cases/reporters/get_reporters.ts | 3 +- .../routes/api/cases/status/get_status.ts | 3 +- .../server/routes/api/cases/tags/get_tags.ts | 3 +- .../user_actions/get_all_user_actions.ts | 3 +- 39 files changed, 207 insertions(+), 106 deletions(-) create mode 100644 x-pack/plugins/case/common/api/helpers.ts create mode 100644 x-pack/plugins/case/common/constants.ts diff --git a/x-pack/legacy/plugins/siem/public/containers/case/api.test.tsx b/x-pack/legacy/plugins/siem/public/containers/case/api.test.tsx index 4f5655cc9f2219..693a7175ebc3eb 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/api.test.tsx +++ b/x-pack/legacy/plugins/siem/public/containers/case/api.test.tsx @@ -5,6 +5,9 @@ */ import { KibanaServices } from '../../lib/kibana'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; + import { deleteCases, getActionLicense, @@ -22,6 +25,7 @@ import { pushCase, pushToService, } from './api'; + import { actionLicenses, allCases, @@ -44,7 +48,7 @@ import { caseUserActionsSnake, casesStatusSnake, } from './mock'; -import { CASES_URL } from './constants'; + import { DEFAULT_FILTER_OPTIONS, DEFAULT_QUERY_PARAMS } from './use_get_cases'; import * as i18n from './translations'; diff --git a/x-pack/legacy/plugins/siem/public/containers/case/api.ts b/x-pack/legacy/plugins/siem/public/containers/case/api.ts index 12b4c80a2dd899..b7453616324199 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/api.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/api.ts @@ -20,6 +20,21 @@ import { ActionTypeExecutorResult, } from '../../../../../../plugins/case/common/api'; +import { + CASE_STATUS_URL, + CASES_URL, + CASE_TAGS_URL, + CASE_REPORTERS_URL, + ACTION_TYPES_URL, + ACTION_URL, +} from '../../../../../../plugins/case/common/constants'; + +import { + getCaseDetailsUrl, + getCaseUserActionUrl, + getCaseCommentsUrl, +} from '../../../../../../plugins/case/common/api/helpers'; + import { KibanaServices } from '../../lib/kibana'; import { @@ -33,8 +48,6 @@ import { CaseUserActions, } from './types'; -import { CASES_URL } from './constants'; - import { convertToCamelCase, convertAllCasesToCamel, @@ -54,7 +67,7 @@ export const getCase = async ( includeComments: boolean = true, signal: AbortSignal ): Promise => { - const response = await KibanaServices.get().http.fetch(`${CASES_URL}/${caseId}`, { + const response = await KibanaServices.get().http.fetch(getCaseDetailsUrl(caseId), { method: 'GET', query: { includeComments, @@ -65,18 +78,15 @@ export const getCase = async ( }; export const getCasesStatus = async (signal: AbortSignal): Promise => { - const response = await KibanaServices.get().http.fetch( - `${CASES_URL}/status`, - { - method: 'GET', - signal, - } - ); + const response = await KibanaServices.get().http.fetch(CASE_STATUS_URL, { + method: 'GET', + signal, + }); return convertToCamelCase(decodeCasesStatusResponse(response)); }; export const getTags = async (signal: AbortSignal): Promise => { - const response = await KibanaServices.get().http.fetch(`${CASES_URL}/tags`, { + const response = await KibanaServices.get().http.fetch(CASE_TAGS_URL, { method: 'GET', signal, }); @@ -84,7 +94,7 @@ export const getTags = async (signal: AbortSignal): Promise => { }; export const getReporters = async (signal: AbortSignal): Promise => { - const response = await KibanaServices.get().http.fetch(`${CASES_URL}/reporters`, { + const response = await KibanaServices.get().http.fetch(CASE_REPORTERS_URL, { method: 'GET', signal, }); @@ -96,7 +106,7 @@ export const getCaseUserActions = async ( signal: AbortSignal ): Promise => { const response = await KibanaServices.get().http.fetch( - `${CASES_URL}/${caseId}/user_actions`, + getCaseUserActionUrl(caseId), { method: 'GET', signal, @@ -193,14 +203,11 @@ export const patchComment = async ( version: string, signal: AbortSignal ): Promise => { - const response = await KibanaServices.get().http.fetch( - `${CASES_URL}/${caseId}/comments`, - { - method: 'PATCH', - body: JSON.stringify({ comment: commentUpdate, id: commentId, version }), - signal, - } - ); + const response = await KibanaServices.get().http.fetch(getCaseCommentsUrl(caseId), { + method: 'PATCH', + body: JSON.stringify({ comment: commentUpdate, id: commentId, version }), + signal, + }); return convertToCamelCase(decodeCaseResponse(response)); }; @@ -219,7 +226,7 @@ export const pushCase = async ( signal: AbortSignal ): Promise => { const response = await KibanaServices.get().http.fetch( - `${CASES_URL}/${caseId}/_push`, + `${getCaseDetailsUrl(caseId)}/_push`, { method: 'POST', body: JSON.stringify(push), @@ -235,7 +242,7 @@ export const pushToService = async ( signal: AbortSignal ): Promise => { const response = await KibanaServices.get().http.fetch( - `/api/action/${connectorId}/_execute`, + `${ACTION_URL}/${connectorId}/_execute`, { method: 'POST', body: JSON.stringify({ params: casePushParams }), @@ -251,7 +258,7 @@ export const pushToService = async ( }; export const getActionLicense = async (signal: AbortSignal): Promise => { - const response = await KibanaServices.get().http.fetch(`/api/action/types`, { + const response = await KibanaServices.get().http.fetch(ACTION_TYPES_URL, { method: 'GET', signal, }); diff --git a/x-pack/legacy/plugins/siem/public/containers/case/configure/api.ts b/x-pack/legacy/plugins/siem/public/containers/case/configure/api.ts index c24081c777a968..85e472811c93bf 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/configure/api.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/configure/api.ts @@ -13,26 +13,27 @@ import { } from '../../../../../../../plugins/case/common/api'; import { KibanaServices } from '../../../lib/kibana'; -import { CASES_CONFIGURE_URL } from '../constants'; +import { + CASE_CONFIGURE_CONNECTORS_URL, + CASE_CONFIGURE_URL, +} from '../../../../../../../plugins/case/common/constants'; + import { ApiProps } from '../types'; import { convertToCamelCase, decodeCaseConfigureResponse } from '../utils'; import { CaseConfigure } from './types'; export const fetchConnectors = async ({ signal }: ApiProps): Promise => { - const response = await KibanaServices.get().http.fetch( - `${CASES_CONFIGURE_URL}/connectors/_find`, - { - method: 'GET', - signal, - } - ); + const response = await KibanaServices.get().http.fetch(`${CASE_CONFIGURE_CONNECTORS_URL}/_find`, { + method: 'GET', + signal, + }); return response; }; export const getCaseConfigure = async ({ signal }: ApiProps): Promise => { const response = await KibanaServices.get().http.fetch( - CASES_CONFIGURE_URL, + CASE_CONFIGURE_URL, { method: 'GET', signal, @@ -51,7 +52,7 @@ export const postCaseConfigure = async ( signal: AbortSignal ): Promise => { const response = await KibanaServices.get().http.fetch( - CASES_CONFIGURE_URL, + CASE_CONFIGURE_URL, { method: 'POST', body: JSON.stringify(caseConfiguration), @@ -68,7 +69,7 @@ export const patchCaseConfigure = async ( signal: AbortSignal ): Promise => { const response = await KibanaServices.get().http.fetch( - CASES_CONFIGURE_URL, + CASE_CONFIGURE_URL, { method: 'PATCH', body: JSON.stringify(caseConfiguration), diff --git a/x-pack/legacy/plugins/siem/public/containers/case/constants.ts b/x-pack/legacy/plugins/siem/public/containers/case/constants.ts index ab8dc98db4f64b..d8bb499ed7922a 100644 --- a/x-pack/legacy/plugins/siem/public/containers/case/constants.ts +++ b/x-pack/legacy/plugins/siem/public/containers/case/constants.ts @@ -4,7 +4,5 @@ * you may not use this file except in compliance with the Elastic License. */ -export const CASES_URL = `/api/cases`; -export const CASES_CONFIGURE_URL = `/api/cases/configure`; export const DEFAULT_TABLE_ACTIVE_PAGE = 1; export const DEFAULT_TABLE_LIMIT = 5; diff --git a/x-pack/plugins/case/common/api/helpers.ts b/x-pack/plugins/case/common/api/helpers.ts new file mode 100644 index 00000000000000..0efdcd38196597 --- /dev/null +++ b/x-pack/plugins/case/common/api/helpers.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { + CASE_DETAILS_URL, + CASE_COMMENTS_URL, + CASE_USER_ACTIONS_URL, + CASE_COMMENT_DETAILS_URL, +} from '../constants'; + +export const getCaseDetailsUrl = (id: string): string => { + return CASE_DETAILS_URL.replace('{case_id}', id); +}; + +export const getCaseCommentsUrl = (id: string): string => { + return CASE_COMMENTS_URL.replace('{case_id}', id); +}; + +export const getCaseCommentDetailsUrl = (caseId: string, commentId: string): string => { + return CASE_COMMENT_DETAILS_URL.replace('{case_id}', caseId).replace('{comment_id}', commentId); +}; + +export const getCaseUserActionUrl = (id: string): string => { + return CASE_USER_ACTIONS_URL.replace('{case_id}', id); +}; diff --git a/x-pack/plugins/case/common/constants.ts b/x-pack/plugins/case/common/constants.ts new file mode 100644 index 00000000000000..dcfa46bfa60191 --- /dev/null +++ b/x-pack/plugins/case/common/constants.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export const APP_ID = 'case'; + +/** + * Case routes + */ + +export const CASES_URL = '/api/cases'; +export const CASE_DETAILS_URL = `${CASES_URL}/{case_id}`; +export const CASE_CONFIGURE_URL = `${CASES_URL}/configure`; +export const CASE_CONFIGURE_CONNECTORS_URL = `${CASE_CONFIGURE_URL}/connectors`; +export const CASE_COMMENTS_URL = `${CASE_DETAILS_URL}/comments`; +export const CASE_COMMENT_DETAILS_URL = `${CASE_DETAILS_URL}/comments/{comment_id}`; +export const CASE_REPORTERS_URL = `${CASES_URL}/reporters`; +export const CASE_STATUS_URL = `${CASES_URL}/status`; +export const CASE_TAGS_URL = `${CASES_URL}/tags`; +export const CASE_USER_ACTIONS_URL = `${CASE_DETAILS_URL}/user_actions`; + +/** + * Action routes + */ + +export const ACTION_URL = '/api/action'; +export const ACTION_TYPES_URL = '/api/action/types'; diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/delete_all_comments.ts b/x-pack/plugins/case/server/routes/api/cases/comments/delete_all_comments.ts index 1dfab165eccd72..e9bcb9690ebd86 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/delete_all_comments.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/delete_all_comments.ts @@ -9,11 +9,12 @@ import { schema } from '@kbn/config-schema'; import { buildCommentUserActionItem } from '../../../../services/user_actions/helpers'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; export function initDeleteAllCommentsApi({ caseService, router, userActionService }: RouteDeps) { router.delete( { - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.test.ts b/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.test.ts index b2022e6dec26d6..67cb9984095709 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.test.ts @@ -15,6 +15,7 @@ import { mockCaseComments, } from '../../__fixtures__'; import { initDeleteCommentApi } from './delete_comment'; +import { CASE_COMMENT_DETAILS_URL } from '../../../../../common/constants'; describe('DELETE comment', () => { let routeHandler: RequestHandler; @@ -23,7 +24,7 @@ describe('DELETE comment', () => { }); it(`deletes the comment. responds with 204`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, method: 'delete', params: { case_id: 'mock-id-1', @@ -43,7 +44,7 @@ describe('DELETE comment', () => { }); it(`returns an error when thrown from deleteComment service`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, method: 'delete', params: { case_id: 'mock-id-1', diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.ts b/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.ts index ff0729afed96a2..72ef400415d0fb 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/delete_comment.ts @@ -11,11 +11,12 @@ import { CASE_SAVED_OBJECT } from '../../../../saved_object_types'; import { buildCommentUserActionItem } from '../../../../services/user_actions/helpers'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_COMMENT_DETAILS_URL } from '../../../../../common/constants'; export function initDeleteCommentApi({ caseService, router, userActionService }: RouteDeps) { router.delete( { - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/find_comments.ts b/x-pack/plugins/case/server/routes/api/cases/comments/find_comments.ts index 92da64cebee741..3df9fdb80ba8a1 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/find_comments.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/find_comments.ts @@ -18,11 +18,12 @@ import { } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { escapeHatch, transformComments, wrapError } from '../../utils'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; export function initFindCaseCommentsApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/{case_id}/comments/_find', + path: `${CASE_COMMENTS_URL}/_find`, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/get_all_comment.ts b/x-pack/plugins/case/server/routes/api/cases/comments/get_all_comment.ts index 1500039eb2cc28..8d7820d4e8fece 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/get_all_comment.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/get_all_comment.ts @@ -9,11 +9,12 @@ import { schema } from '@kbn/config-schema'; import { AllCommentsResponseRt } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { flattenCommentSavedObjects, wrapError } from '../../utils'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; export function initGetAllCommentsApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.test.ts b/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.test.ts index 9c8d0e5254df0a..b5a7d6367ea4bc 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.test.ts @@ -15,6 +15,7 @@ import { } from '../../__fixtures__'; import { flattenCommentSavedObject } from '../../utils'; import { initGetCommentApi } from './get_comment'; +import { CASE_COMMENT_DETAILS_URL } from '../../../../../common/constants'; describe('GET comment', () => { let routeHandler: RequestHandler; @@ -23,7 +24,7 @@ describe('GET comment', () => { }); it(`returns the comment`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, method: 'get', params: { case_id: 'mock-id-1', @@ -48,7 +49,7 @@ describe('GET comment', () => { }); it(`returns an error when getComment throws`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, method: 'get', params: { case_id: 'mock-id-1', diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.ts b/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.ts index 24f44a5f5129b7..5fa668f6ae5deb 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/get_comment.ts @@ -9,11 +9,12 @@ import { schema } from '@kbn/config-schema'; import { CommentResponseRt } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { flattenCommentSavedObject, wrapError } from '../../utils'; +import { CASE_COMMENT_DETAILS_URL } from '../../../../../common/constants'; export function initGetCommentApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/{case_id}/comments/{comment_id}', + path: CASE_COMMENT_DETAILS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.test.ts b/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.test.ts index 8d9906c2abe7fa..04473e302e4680 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.test.ts @@ -14,6 +14,7 @@ import { mockCases, } from '../../__fixtures__'; import { initPatchCommentApi } from './patch_comment'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; describe('PATCH comment', () => { let routeHandler: RequestHandler; @@ -22,7 +23,7 @@ describe('PATCH comment', () => { }); it(`Patch a comment`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'patch', params: { case_id: 'mock-id-1', @@ -50,7 +51,7 @@ describe('PATCH comment', () => { it(`Fails with 409 if version does not match`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'patch', params: { case_id: 'mock-id-1', @@ -74,7 +75,7 @@ describe('PATCH comment', () => { }); it(`Returns an error if updateComment throws`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'patch', params: { case_id: 'mock-id-1', diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.ts b/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.ts index 3b38afc02ed81b..dd9b124ff1b79f 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/patch_comment.ts @@ -15,11 +15,12 @@ import { CASE_SAVED_OBJECT } from '../../../../saved_object_types'; import { buildCommentUserActionItem } from '../../../../services/user_actions/helpers'; import { RouteDeps } from '../../types'; import { escapeHatch, wrapError, flattenCaseSavedObject } from '../../utils'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; export function initPatchCommentApi({ caseService, router, userActionService }: RouteDeps) { router.patch( { - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts index 23039da681ec65..9006470f36f368 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.test.ts @@ -15,6 +15,7 @@ import { mockCaseComments, } from '../../__fixtures__'; import { initPostCommentApi } from './post_comment'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; describe('POST comment', () => { let routeHandler: RequestHandler; @@ -27,7 +28,7 @@ describe('POST comment', () => { }); it(`Posts a new comment`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'post', params: { case_id: 'mock-id-1', @@ -52,7 +53,7 @@ describe('POST comment', () => { }); it(`Returns an error if the case does not exist`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'post', params: { case_id: 'this-is-not-real', @@ -75,7 +76,7 @@ describe('POST comment', () => { }); it(`Returns an error if postNewCase throws`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'post', params: { case_id: 'mock-id-1', @@ -100,7 +101,7 @@ describe('POST comment', () => { routeHandler = await createRoute(initPostCommentApi, 'post', true); const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, method: 'post', params: { case_id: 'mock-id-1', diff --git a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.ts b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.ts index 70405af26f5762..a296d9815f251b 100644 --- a/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.ts +++ b/x-pack/plugins/case/server/routes/api/cases/comments/post_comment.ts @@ -15,11 +15,12 @@ import { CASE_SAVED_OBJECT } from '../../../../saved_object_types'; import { buildCommentUserActionItem } from '../../../../services/user_actions/helpers'; import { escapeHatch, transformNewComment, wrapError, flattenCaseSavedObject } from '../../utils'; import { RouteDeps } from '../../types'; +import { CASE_COMMENTS_URL } from '../../../../../common/constants'; export function initPostCommentApi({ caseService, router, userActionService }: RouteDeps) { router.post( { - path: '/api/cases/{case_id}/comments', + path: CASE_COMMENTS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.test.ts b/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.test.ts index 66d39c3f11d28e..5b3b6e77b94037 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.test.ts @@ -15,6 +15,7 @@ import { import { mockCaseConfigure } from '../../__fixtures__/mock_saved_objects'; import { initGetCaseConfigure } from './get_configure'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; describe('GET configuration', () => { let routeHandler: RequestHandler; @@ -24,7 +25,7 @@ describe('GET configuration', () => { it('returns the configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'get', }); @@ -44,7 +45,7 @@ describe('GET configuration', () => { it('handles undefined version correctly', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'get', }); @@ -78,7 +79,7 @@ describe('GET configuration', () => { it('returns an empty object when there is no configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'get', }); @@ -95,7 +96,7 @@ describe('GET configuration', () => { it('returns an error if find throws an error', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'get', }); diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.ts b/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.ts index 2832edaa892d5d..03bec1fe72d39a 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/get_configure.ts @@ -7,11 +7,12 @@ import { CaseConfigureResponseRt } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; export function initGetCaseConfigure({ caseConfigureService, caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, validate: false, }, async (context, request, response) => { diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.test.ts b/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.test.ts index 62edaa0a4792aa..09692ff73b94bc 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.test.ts @@ -16,6 +16,7 @@ import { import { mockCaseConfigure } from '../../__fixtures__/mock_saved_objects'; import { initCaseConfigureGetActionConnector } from './get_connectors'; import { getActions } from '../../__mocks__/request_responses'; +import { CASE_CONFIGURE_CONNECTORS_URL } from '../../../../../common/constants'; describe('GET connectors', () => { let routeHandler: RequestHandler; @@ -25,7 +26,7 @@ describe('GET connectors', () => { it('returns the connectors', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure/connectors/_find', + path: `${CASE_CONFIGURE_CONNECTORS_URL}/_find`, method: 'get', }); @@ -44,7 +45,7 @@ describe('GET connectors', () => { it('it throws an error when actions client is null', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure/connectors/_find', + path: `${CASE_CONFIGURE_CONNECTORS_URL}/_find`, method: 'get', }); diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.ts b/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.ts index 3e9a1c96d55ed8..00575655d4c426 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/get_connectors.ts @@ -8,6 +8,8 @@ import Boom from 'boom'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_CONFIGURE_CONNECTORS_URL } from '../../../../../common/constants'; + /* * Be aware that this api will only return 20 connectors */ @@ -17,7 +19,7 @@ const CASE_SERVICE_NOW_ACTION = '.servicenow'; export function initCaseConfigureGetActionConnector({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/configure/connectors/_find', + path: `${CASE_CONFIGURE_CONNECTORS_URL}/_find`, validate: false, }, async (context, request, response) => { diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.test.ts b/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.test.ts index 5b3d68a2586644..9b71f777b95ab0 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.test.ts @@ -15,6 +15,7 @@ import { import { mockCaseConfigure } from '../../__fixtures__/mock_saved_objects'; import { initPatchCaseConfigure } from './patch_configure'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; describe('PATCH configuration', () => { let routeHandler: RequestHandler; @@ -29,7 +30,7 @@ describe('PATCH configuration', () => { it('patch configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'patch', body: { closure_type: 'close-by-pushing', @@ -61,7 +62,7 @@ describe('PATCH configuration', () => { routeHandler = await createRoute(initPatchCaseConfigure, 'patch', true); const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'patch', body: { closure_type: 'close-by-pushing', @@ -91,7 +92,7 @@ describe('PATCH configuration', () => { it('throw error when configuration have not being created', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'patch', body: { closure_type: 'close-by-pushing', @@ -113,7 +114,7 @@ describe('PATCH configuration', () => { it('throw error when the versions are different', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'patch', body: { closure_type: 'close-by-pushing', @@ -135,7 +136,7 @@ describe('PATCH configuration', () => { it('handles undefined version correctly', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'patch', body: { connector_id: 'no-version', version: mockCaseConfigure[0].version }, }); diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.ts b/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.ts index 3a1b9d5059cbc4..47f7d503e32b8d 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/patch_configure.ts @@ -16,11 +16,12 @@ import { } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { wrapError, escapeHatch } from '../../utils'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; export function initPatchCaseConfigure({ caseConfigureService, caseService, router }: RouteDeps) { router.patch( { - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, validate: { body: escapeHatch, }, diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.test.ts b/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.test.ts index 7e40cad5b12981..fb95cc53a17109 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.test.ts @@ -16,6 +16,7 @@ import { import { mockCaseConfigure } from '../../__fixtures__/mock_saved_objects'; import { initPostCaseConfigure } from './post_configure'; import { newConfiguration } from '../../__mocks__/request_responses'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; describe('POST configuration', () => { let routeHandler: RequestHandler; @@ -30,7 +31,7 @@ describe('POST configuration', () => { it('create configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -61,7 +62,7 @@ describe('POST configuration', () => { routeHandler = await createRoute(initPostCaseConfigure, 'post', true); const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -90,7 +91,7 @@ describe('POST configuration', () => { it('throws when missing connector_id', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: { connector_name: 'My connector 2', @@ -111,7 +112,7 @@ describe('POST configuration', () => { it('throws when missing connector_name', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: { connector_id: '456', @@ -132,7 +133,7 @@ describe('POST configuration', () => { it('throws when missing closure_type', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: { connector_id: '456', @@ -153,7 +154,7 @@ describe('POST configuration', () => { it('it deletes the previous configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -172,7 +173,7 @@ describe('POST configuration', () => { it('it does NOT delete when not found', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -191,7 +192,7 @@ describe('POST configuration', () => { it('it deletes all configuration', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -214,7 +215,7 @@ describe('POST configuration', () => { it('returns an error if find throws an error', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -232,7 +233,7 @@ describe('POST configuration', () => { it('returns an error if delete throws an error', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: newConfiguration, }); @@ -250,7 +251,7 @@ describe('POST configuration', () => { it('returns an error if post throws an error', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: { connector_id: 'throw-error-create', @@ -272,7 +273,7 @@ describe('POST configuration', () => { it('handles undefined version correctly', async () => { const req = httpServerMock.createKibanaRequest({ - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, method: 'post', body: { ...newConfiguration, connector_id: 'no-version' }, }); diff --git a/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.ts b/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.ts index 2a23abf0cbf217..5c1693e728c377 100644 --- a/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.ts +++ b/x-pack/plugins/case/server/routes/api/cases/configure/post_configure.ts @@ -16,11 +16,12 @@ import { } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { wrapError, escapeHatch } from '../../utils'; +import { CASE_CONFIGURE_URL } from '../../../../../common/constants'; export function initPostCaseConfigure({ caseConfigureService, caseService, router }: RouteDeps) { router.post( { - path: '/api/cases/configure', + path: CASE_CONFIGURE_URL, validate: { body: escapeHatch, }, diff --git a/x-pack/plugins/case/server/routes/api/cases/delete_cases.test.ts b/x-pack/plugins/case/server/routes/api/cases/delete_cases.test.ts index c5be6f78a15708..e655339e05eb12 100644 --- a/x-pack/plugins/case/server/routes/api/cases/delete_cases.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/delete_cases.test.ts @@ -16,6 +16,7 @@ import { mockCaseComments, } from '../__fixtures__'; import { initDeleteCasesApi } from './delete_cases'; +import { CASES_URL } from '../../../../common/constants'; describe('DELETE case', () => { let routeHandler: RequestHandler; @@ -24,7 +25,7 @@ describe('DELETE case', () => { }); it(`deletes the case. responds with 204`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'delete', query: { ids: ['mock-id-1'], @@ -43,7 +44,7 @@ describe('DELETE case', () => { }); it(`returns an error when thrown from deleteCase service`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'delete', query: { ids: ['not-real'], @@ -62,7 +63,7 @@ describe('DELETE case', () => { }); it(`returns an error when thrown from getAllCaseComments service`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'delete', query: { ids: ['bad-guy'], @@ -81,7 +82,7 @@ describe('DELETE case', () => { }); it(`returns an error when thrown from deleteComment service`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'delete', query: { ids: ['valid-id'], diff --git a/x-pack/plugins/case/server/routes/api/cases/delete_cases.ts b/x-pack/plugins/case/server/routes/api/cases/delete_cases.ts index 0214017ae5c290..20591637a6c230 100644 --- a/x-pack/plugins/case/server/routes/api/cases/delete_cases.ts +++ b/x-pack/plugins/case/server/routes/api/cases/delete_cases.ts @@ -9,11 +9,12 @@ import { schema } from '@kbn/config-schema'; import { buildCaseUserActionItem } from '../../../services/user_actions/helpers'; import { RouteDeps } from '../types'; import { wrapError } from '../utils'; +import { CASES_URL } from '../../../../common/constants'; export function initDeleteCasesApi({ caseService, router, userActionService }: RouteDeps) { router.delete( { - path: '/api/cases', + path: CASES_URL, validate: { query: schema.object({ ids: schema.arrayOf(schema.string()), diff --git a/x-pack/plugins/case/server/routes/api/cases/find_cases.test.ts b/x-pack/plugins/case/server/routes/api/cases/find_cases.test.ts index 8fafb1af0eb826..7af1cee494457a 100644 --- a/x-pack/plugins/case/server/routes/api/cases/find_cases.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/find_cases.test.ts @@ -14,6 +14,7 @@ import { mockCases, } from '../__fixtures__'; import { initFindCasesApi } from './find_cases'; +import { CASES_URL } from '../../../../common/constants'; describe('GET all cases', () => { let routeHandler: RequestHandler; @@ -22,7 +23,7 @@ describe('GET all cases', () => { }); it(`gets all the cases`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: `${CASES_URL}/_find`, method: 'get', }); diff --git a/x-pack/plugins/case/server/routes/api/cases/find_cases.ts b/x-pack/plugins/case/server/routes/api/cases/find_cases.ts index b2716749e97491..40fc0301b058ac 100644 --- a/x-pack/plugins/case/server/routes/api/cases/find_cases.ts +++ b/x-pack/plugins/case/server/routes/api/cases/find_cases.ts @@ -15,6 +15,7 @@ import { CasesFindResponseRt, CasesFindRequestRt, throwErrors } from '../../../. import { transformCases, sortToSnake, wrapError, escapeHatch } from '../utils'; import { RouteDeps, TotalCommentByCase } from '../types'; import { CASE_SAVED_OBJECT } from '../../../saved_object_types'; +import { CASES_URL } from '../../../../common/constants'; const combineFilters = (filters: string[], operator: 'OR' | 'AND'): string => filters?.filter(i => i !== '').join(` ${operator} `); @@ -41,7 +42,7 @@ const buildFilter = ( export function initFindCasesApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/_find', + path: `${CASES_URL}/_find`, validate: { query: escapeHatch, }, diff --git a/x-pack/plugins/case/server/routes/api/cases/get_case.test.ts b/x-pack/plugins/case/server/routes/api/cases/get_case.test.ts index 5912df2c40aa3f..a8c12d4734b53a 100644 --- a/x-pack/plugins/case/server/routes/api/cases/get_case.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/get_case.test.ts @@ -18,6 +18,7 @@ import { } from '../__fixtures__'; import { flattenCaseSavedObject } from '../utils'; import { initGetCaseApi } from './get_case'; +import { CASE_DETAILS_URL } from '../../../../common/constants'; describe('GET case', () => { let routeHandler: RequestHandler; @@ -26,7 +27,7 @@ describe('GET case', () => { }); it(`returns the case with empty case comments when includeComments is false`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}', + path: CASE_DETAILS_URL, method: 'get', params: { case_id: 'mock-id-1', @@ -55,7 +56,7 @@ describe('GET case', () => { }); it(`returns an error when thrown from getCase`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}', + path: CASE_DETAILS_URL, method: 'get', params: { case_id: 'abcdefg', @@ -78,7 +79,7 @@ describe('GET case', () => { }); it(`returns the case with case comments when includeComments is true`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}', + path: CASE_DETAILS_URL, method: 'get', params: { case_id: 'mock-id-1', @@ -102,7 +103,7 @@ describe('GET case', () => { }); it(`returns an error when thrown from getAllCaseComments`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases/{case_id}', + path: CASE_DETAILS_URL, method: 'get', params: { case_id: 'bad-guy', diff --git a/x-pack/plugins/case/server/routes/api/cases/get_case.ts b/x-pack/plugins/case/server/routes/api/cases/get_case.ts index ac32b20541a9c9..1e836d38c285c3 100644 --- a/x-pack/plugins/case/server/routes/api/cases/get_case.ts +++ b/x-pack/plugins/case/server/routes/api/cases/get_case.ts @@ -9,11 +9,12 @@ import { schema } from '@kbn/config-schema'; import { CaseResponseRt } from '../../../../common/api'; import { RouteDeps } from '../types'; import { flattenCaseSavedObject, wrapError } from '../utils'; +import { CASE_DETAILS_URL } from '../../../../common/constants'; export function initGetCaseApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/{case_id}', + path: CASE_DETAILS_URL, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/patch_cases.ts b/x-pack/plugins/case/server/routes/api/cases/patch_cases.ts index c36ea8964dc807..57f9fc20dbf342 100644 --- a/x-pack/plugins/case/server/routes/api/cases/patch_cases.ts +++ b/x-pack/plugins/case/server/routes/api/cases/patch_cases.ts @@ -20,11 +20,12 @@ import { escapeHatch, wrapError, flattenCaseSavedObject } from '../utils'; import { RouteDeps } from '../types'; import { getCaseToUpdate } from './helpers'; import { buildCaseUserActions } from '../../../services/user_actions/helpers'; +import { CASES_URL } from '../../../../common/constants'; export function initPatchCasesApi({ caseService, router, userActionService }: RouteDeps) { router.patch( { - path: '/api/cases', + path: CASES_URL, validate: { body: escapeHatch, }, diff --git a/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts b/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts index 5899102224774b..0bbceb52140464 100644 --- a/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts +++ b/x-pack/plugins/case/server/routes/api/cases/post_case.test.ts @@ -14,6 +14,7 @@ import { mockCases, } from '../__fixtures__'; import { initPostCaseApi } from './post_case'; +import { CASES_URL } from '../../../../common/constants'; describe('POST cases', () => { let routeHandler: RequestHandler; @@ -26,7 +27,7 @@ describe('POST cases', () => { }); it(`Posts a new case`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'post', body: { description: 'This is a brand new case of a bad meanie defacing data', @@ -49,7 +50,7 @@ describe('POST cases', () => { it(`Error if you passing status for a new case`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'post', body: { description: 'This is a brand new case of a bad meanie defacing data', @@ -70,7 +71,7 @@ describe('POST cases', () => { }); it(`Returns an error if postNewCase throws`, async () => { const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'post', body: { description: 'Throw an error', @@ -93,7 +94,7 @@ describe('POST cases', () => { routeHandler = await createRoute(initPostCaseApi, 'post', true); const request = httpServerMock.createKibanaRequest({ - path: '/api/cases', + path: CASES_URL, method: 'post', body: { description: 'This is a brand new case of a bad meanie defacing data', diff --git a/x-pack/plugins/case/server/routes/api/cases/post_case.ts b/x-pack/plugins/case/server/routes/api/cases/post_case.ts index 239b8bfdf9b29a..059a8b1affd54a 100644 --- a/x-pack/plugins/case/server/routes/api/cases/post_case.ts +++ b/x-pack/plugins/case/server/routes/api/cases/post_case.ts @@ -14,11 +14,12 @@ import { flattenCaseSavedObject, transformNewCase, wrapError, escapeHatch } from import { CasePostRequestRt, throwErrors, excess, CaseResponseRt } from '../../../../common/api'; import { buildCaseUserActionItem } from '../../../services/user_actions/helpers'; import { RouteDeps } from '../types'; +import { CASES_URL } from '../../../../common/constants'; export function initPostCaseApi({ caseService, router, userActionService }: RouteDeps) { router.post( { - path: '/api/cases', + path: CASES_URL, validate: { body: escapeHatch, }, diff --git a/x-pack/plugins/case/server/routes/api/cases/push_case.ts b/x-pack/plugins/case/server/routes/api/cases/push_case.ts index aff057adea37f5..94ebe24c3d2aef 100644 --- a/x-pack/plugins/case/server/routes/api/cases/push_case.ts +++ b/x-pack/plugins/case/server/routes/api/cases/push_case.ts @@ -15,6 +15,7 @@ import { flattenCaseSavedObject, wrapError, escapeHatch } from '../utils'; import { CaseExternalServiceRequestRt, CaseResponseRt, throwErrors } from '../../../../common/api'; import { buildCaseUserActionItem } from '../../../services/user_actions/helpers'; import { RouteDeps } from '../types'; +import { CASE_DETAILS_URL } from '../../../../common/constants'; export function initPushCaseUserActionApi({ caseConfigureService, @@ -24,7 +25,7 @@ export function initPushCaseUserActionApi({ }: RouteDeps) { router.post( { - path: '/api/cases/{case_id}/_push', + path: `${CASE_DETAILS_URL}/_push`, validate: { params: schema.object({ case_id: schema.string(), diff --git a/x-pack/plugins/case/server/routes/api/cases/reporters/get_reporters.ts b/x-pack/plugins/case/server/routes/api/cases/reporters/get_reporters.ts index 56862a96e05632..3fc96f506d1757 100644 --- a/x-pack/plugins/case/server/routes/api/cases/reporters/get_reporters.ts +++ b/x-pack/plugins/case/server/routes/api/cases/reporters/get_reporters.ts @@ -7,11 +7,12 @@ import { UsersRt } from '../../../../../common/api'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_REPORTERS_URL } from '../../../../../common/constants'; export function initGetReportersApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/reporters', + path: CASE_REPORTERS_URL, validate: {}, }, async (context, request, response) => { diff --git a/x-pack/plugins/case/server/routes/api/cases/status/get_status.ts b/x-pack/plugins/case/server/routes/api/cases/status/get_status.ts index f7431729d398c2..8f86dbc91f315d 100644 --- a/x-pack/plugins/case/server/routes/api/cases/status/get_status.ts +++ b/x-pack/plugins/case/server/routes/api/cases/status/get_status.ts @@ -9,11 +9,12 @@ import { wrapError } from '../../utils'; import { CasesStatusResponseRt } from '../../../../../common/api'; import { CASE_SAVED_OBJECT } from '../../../../saved_object_types'; +import { CASE_STATUS_URL } from '../../../../../common/constants'; export function initGetCasesStatusApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/status', + path: CASE_STATUS_URL, validate: {}, }, async (context, request, response) => { diff --git a/x-pack/plugins/case/server/routes/api/cases/tags/get_tags.ts b/x-pack/plugins/case/server/routes/api/cases/tags/get_tags.ts index 55e8fe2af128ca..1a3da659c58c4e 100644 --- a/x-pack/plugins/case/server/routes/api/cases/tags/get_tags.ts +++ b/x-pack/plugins/case/server/routes/api/cases/tags/get_tags.ts @@ -6,11 +6,12 @@ import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_TAGS_URL } from '../../../../../common/constants'; export function initGetTagsApi({ caseService, router }: RouteDeps) { router.get( { - path: '/api/cases/tags', + path: CASE_TAGS_URL, validate: {}, }, async (context, request, response) => { diff --git a/x-pack/plugins/case/server/routes/api/cases/user_actions/get_all_user_actions.ts b/x-pack/plugins/case/server/routes/api/cases/user_actions/get_all_user_actions.ts index 2d4f16e46d5616..c90979f60d23f7 100644 --- a/x-pack/plugins/case/server/routes/api/cases/user_actions/get_all_user_actions.ts +++ b/x-pack/plugins/case/server/routes/api/cases/user_actions/get_all_user_actions.ts @@ -10,11 +10,12 @@ import { CaseUserActionsResponseRt } from '../../../../../common/api'; import { CASE_SAVED_OBJECT, CASE_COMMENT_SAVED_OBJECT } from '../../../../saved_object_types'; import { RouteDeps } from '../../types'; import { wrapError } from '../../utils'; +import { CASE_USER_ACTIONS_URL } from '../../../../../common/constants'; export function initGetAllUserActionsApi({ userActionService, router }: RouteDeps) { router.get( { - path: '/api/cases/{case_id}/user_actions', + path: CASE_USER_ACTIONS_URL, validate: { params: schema.object({ case_id: schema.string(), From 71850cd7f3bcdf5ec474136027e4034c3d0db1f4 Mon Sep 17 00:00:00 2001 From: Brian Seeders Date: Tue, 21 Apr 2020 10:57:03 -0400 Subject: [PATCH 39/54] [FTR] Add test suite metrics tracking/output (#62515) (#63999) --- .../functional_test_runner.ts | 3 + .../src/functional_test_runner/lib/index.ts | 1 + .../lib/suite_tracker.test.ts | 197 ++++++++++++++++++ .../lib/suite_tracker.ts | 147 +++++++++++++ 4 files changed, 348 insertions(+) create mode 100644 packages/kbn-test/src/functional_test_runner/lib/suite_tracker.test.ts create mode 100644 packages/kbn-test/src/functional_test_runner/lib/suite_tracker.ts diff --git a/packages/kbn-test/src/functional_test_runner/functional_test_runner.ts b/packages/kbn-test/src/functional_test_runner/functional_test_runner.ts index 03075dd4081fd4..3a66ba22ccf3d4 100644 --- a/packages/kbn-test/src/functional_test_runner/functional_test_runner.ts +++ b/packages/kbn-test/src/functional_test_runner/functional_test_runner.ts @@ -30,6 +30,7 @@ import { setupMocha, runTests, Config, + SuiteTracker, } from './lib'; export class FunctionalTestRunner { @@ -52,6 +53,8 @@ export class FunctionalTestRunner { async run() { return await this._run(async (config, coreProviders) => { + SuiteTracker.startTracking(this.lifecycle, this.configFile); + const providers = new ProviderCollection(this.log, [ ...coreProviders, ...readProviderSpec('Service', config.get('services')), diff --git a/packages/kbn-test/src/functional_test_runner/lib/index.ts b/packages/kbn-test/src/functional_test_runner/lib/index.ts index 8940eccad503a4..2e534974e1d76c 100644 --- a/packages/kbn-test/src/functional_test_runner/lib/index.ts +++ b/packages/kbn-test/src/functional_test_runner/lib/index.ts @@ -23,3 +23,4 @@ export { readConfigFile, Config } from './config'; export { readProviderSpec, ProviderCollection, Provider } from './providers'; export { runTests, setupMocha } from './mocha'; export { FailureMetadata } from './failure_metadata'; +export { SuiteTracker } from './suite_tracker'; diff --git a/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.test.ts b/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.test.ts new file mode 100644 index 00000000000000..b6c2c0a6d511d1 --- /dev/null +++ b/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.test.ts @@ -0,0 +1,197 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import fs from 'fs'; +import { join, resolve } from 'path'; + +jest.mock('fs'); +jest.mock('@kbn/dev-utils', () => { + return { REPO_ROOT: '/dev/null/root' }; +}); + +import { REPO_ROOT } from '@kbn/dev-utils'; +import { Lifecycle } from './lifecycle'; +import { SuiteTracker } from './suite_tracker'; + +const DEFAULT_TEST_METADATA_PATH = join(REPO_ROOT, 'target', 'test_metadata.json'); +const MOCK_CONFIG_PATH = join('test', 'config.js'); +const MOCK_TEST_PATH = join('test', 'apps', 'test.js'); +const ENVS_TO_RESET = ['TEST_METADATA_PATH']; + +describe('SuiteTracker', () => { + const originalEnvs: Record = {}; + + beforeEach(() => { + for (const env of ENVS_TO_RESET) { + if (env in process.env) { + originalEnvs[env] = process.env[env] || ''; + delete process.env[env]; + } + } + }); + + afterEach(() => { + for (const env of ENVS_TO_RESET) { + delete process.env[env]; + } + + for (const env of Object.keys(originalEnvs)) { + process.env[env] = originalEnvs[env]; + } + + jest.resetAllMocks(); + }); + + let MOCKS: Record; + + const createMock = (overrides = {}) => { + return { + file: resolve(REPO_ROOT, MOCK_TEST_PATH), + title: 'A Test', + suiteTag: MOCK_TEST_PATH, + ...overrides, + }; + }; + + const runLifecycleWithMocks = async (mocks: object[], fn: (objs: any) => any = () => {}) => { + const lifecycle = new Lifecycle(); + const suiteTracker = SuiteTracker.startTracking( + lifecycle, + resolve(REPO_ROOT, MOCK_CONFIG_PATH) + ); + + const ret = { lifecycle, suiteTracker }; + + for (const mock of mocks) { + await lifecycle.beforeTestSuite.trigger(mock); + } + + if (fn) { + fn(ret); + } + + for (const mock of mocks.reverse()) { + await lifecycle.afterTestSuite.trigger(mock); + } + + return ret; + }; + + beforeEach(() => { + MOCKS = { + WITH_TESTS: createMock({ tests: [{}] }), // i.e. a describe with tests in it + WITHOUT_TESTS: createMock(), // i.e. a describe with only other describes in it + }; + }); + + it('collects metadata for a single suite with multiple describe()s', async () => { + const { suiteTracker } = await runLifecycleWithMocks([MOCKS.WITHOUT_TESTS, MOCKS.WITH_TESTS]); + + const suites = suiteTracker.getAllFinishedSuites(); + expect(suites.length).toBe(1); + const suite = suites[0]; + + expect(suite).toMatchObject({ + config: MOCK_CONFIG_PATH, + file: MOCK_TEST_PATH, + tag: MOCK_TEST_PATH, + hasTests: true, + success: true, + }); + }); + + it('writes metadata to a file when cleanup is triggered', async () => { + const { lifecycle, suiteTracker } = await runLifecycleWithMocks([MOCKS.WITH_TESTS]); + await lifecycle.cleanup.trigger(); + + const suites = suiteTracker.getAllFinishedSuites(); + + const call = (fs.writeFileSync as jest.Mock).mock.calls[0]; + expect(call[0]).toEqual(DEFAULT_TEST_METADATA_PATH); + expect(call[1]).toEqual(JSON.stringify(suites, null, 2)); + }); + + it('respects TEST_METADATA_PATH env var for metadata target override', async () => { + process.env.TEST_METADATA_PATH = resolve(REPO_ROOT, '../fake-test-path'); + const { lifecycle } = await runLifecycleWithMocks([MOCKS.WITH_TESTS]); + await lifecycle.cleanup.trigger(); + + expect((fs.writeFileSync as jest.Mock).mock.calls[0][0]).toEqual( + process.env.TEST_METADATA_PATH + ); + }); + + it('identifies suites with tests as leaf suites', async () => { + const root = createMock({ title: 'root', file: join(REPO_ROOT, 'root.js') }); + const parent = createMock({ parent: root }); + const withTests = createMock({ parent, tests: [{}] }); + + const { suiteTracker } = await runLifecycleWithMocks([root, parent, withTests]); + const suites = suiteTracker.getAllFinishedSuites(); + + const finishedRoot = suites.find(s => s.title === 'root'); + const finishedWithTests = suites.find(s => s.title !== 'root'); + + expect(finishedRoot).toBeTruthy(); + expect(finishedRoot?.hasTests).toBeFalsy(); + expect(finishedWithTests?.hasTests).toBe(true); + }); + + describe('with a failing suite', () => { + let root: any; + let parent: any; + let failed: any; + + beforeEach(() => { + root = createMock({ file: join(REPO_ROOT, 'root.js') }); + parent = createMock({ parent: root }); + failed = createMock({ parent, tests: [{}] }); + }); + + it('marks parent suites as not successful when a test fails', async () => { + const { suiteTracker } = await runLifecycleWithMocks( + [root, parent, failed], + async ({ lifecycle }) => { + await lifecycle.testFailure.trigger(Error('test'), { parent: failed }); + } + ); + + const suites = suiteTracker.getAllFinishedSuites(); + expect(suites.length).toBe(2); + for (const suite of suites) { + expect(suite.success).toBeFalsy(); + } + }); + + it('marks parent suites as not successful when a test hook fails', async () => { + const { suiteTracker } = await runLifecycleWithMocks( + [root, parent, failed], + async ({ lifecycle }) => { + await lifecycle.testHookFailure.trigger(Error('test'), { parent: failed }); + } + ); + + const suites = suiteTracker.getAllFinishedSuites(); + expect(suites.length).toBe(2); + for (const suite of suites) { + expect(suite.success).toBeFalsy(); + } + }); + }); +}); diff --git a/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.ts b/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.ts new file mode 100644 index 00000000000000..8967251ea78de7 --- /dev/null +++ b/packages/kbn-test/src/functional_test_runner/lib/suite_tracker.ts @@ -0,0 +1,147 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import fs from 'fs'; +import { dirname, relative, resolve } from 'path'; + +import { REPO_ROOT } from '@kbn/dev-utils'; + +import { Lifecycle } from './lifecycle'; + +export interface SuiteInProgress { + startTime?: Date; + endTime?: Date; + success?: boolean; +} + +export interface SuiteWithMetadata { + config: string; + file: string; + tag: string; + title: string; + startTime: Date; + endTime: Date; + duration: number; + success: boolean; + hasTests: boolean; +} + +const getTestMetadataPath = () => { + return process.env.TEST_METADATA_PATH || resolve(REPO_ROOT, 'target', 'test_metadata.json'); +}; + +export class SuiteTracker { + finishedSuitesByConfig: Record> = {}; + inProgressSuites: Map = new Map(); + + static startTracking(lifecycle: Lifecycle, configPath: string): SuiteTracker { + const suiteTracker = new SuiteTracker(lifecycle, configPath); + return suiteTracker; + } + + getTracked(suite: object): SuiteInProgress { + if (!this.inProgressSuites.has(suite)) { + this.inProgressSuites.set(suite, { success: undefined } as SuiteInProgress); + } + return this.inProgressSuites.get(suite)!; + } + + constructor(lifecycle: Lifecycle, configPathAbsolute: string) { + if (fs.existsSync(getTestMetadataPath())) { + fs.unlinkSync(getTestMetadataPath()); + } else { + fs.mkdirSync(dirname(getTestMetadataPath()), { recursive: true }); + } + + const config = relative(REPO_ROOT, configPathAbsolute); + + lifecycle.beforeTestSuite.add(suite => { + const tracked = this.getTracked(suite); + tracked.startTime = new Date(); + }); + + // If a test fails, we want to make sure all of the ancestors, all the way up to the root, get marked as failed + // This information is not available on the mocha objects without traversing all descendants of a given node + const handleFailure = (_: any, test: any) => { + let parent = test.parent; + + // Infinite loop protection, just in case + for (let i = 0; i < 500 && parent; i++) { + if (this.inProgressSuites.has(parent)) { + this.getTracked(parent).success = false; + } + parent = parent.parent; + } + }; + + lifecycle.testFailure.add(handleFailure); + lifecycle.testHookFailure.add(handleFailure); + + lifecycle.afterTestSuite.add(suite => { + const tracked = this.getTracked(suite); + tracked.endTime = new Date(); + + // The suite ended without any children failing, so we can mark it as successful + if (typeof tracked.success === 'undefined') { + tracked.success = true; + } + + let duration = tracked.endTime.getTime() - (tracked.startTime || new Date()).getTime(); + duration = Math.floor(duration / 1000); + + const file = relative(REPO_ROOT, suite.file); + + this.finishedSuitesByConfig[config] = this.finishedSuitesByConfig[config] || {}; + + // This will get called multiple times for a test file that has multiple describes in it or similar + // This is okay, because the last one that fires is always the root of the file, which is is the one we ultimately want + this.finishedSuitesByConfig[config][file] = { + ...tracked, + duration, + config, + file, + tag: suite.suiteTag, + title: suite.title, + hasTests: !!( + (suite.tests && suite.tests.length) || + // The below statement is so that `hasTests` will bubble up nested describes in the same file + (this.finishedSuitesByConfig[config][file] && + this.finishedSuitesByConfig[config][file].hasTests) + ), + } as SuiteWithMetadata; + }); + + lifecycle.cleanup.add(() => { + const suites = this.getAllFinishedSuites(); + + fs.writeFileSync(getTestMetadataPath(), JSON.stringify(suites, null, 2)); + }); + } + + getAllFinishedSuites() { + const flattened: SuiteWithMetadata[] = []; + for (const byFile of Object.values(this.finishedSuitesByConfig)) { + for (const suite of Object.values(byFile)) { + flattened.push(suite); + } + } + + flattened.sort((a, b) => b.duration - a.duration); + return flattened; + } +} From b72d7386047bfaa7748f2df12cf32c80396f6aa4 Mon Sep 17 00:00:00 2001 From: Devon Thomson Date: Tue, 21 Apr 2020 11:51:25 -0400 Subject: [PATCH 40/54] [DOCS] Add documentation for clone feature (#64019) (#64081) * Added documentation for the clone feature Co-authored-by: Kaarina Tungseth --- docs/images/clone_panel.gif | Bin 0 -> 817490 bytes docs/user/dashboard.asciidoc | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 docs/images/clone_panel.gif diff --git a/docs/images/clone_panel.gif b/docs/images/clone_panel.gif new file mode 100644 index 0000000000000000000000000000000000000000..e521e438d051a986820977b75c75606199972ba4 GIT binary patch literal 817490 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:G15=@s5Dv*SXqCs4yAc=EBCd!| zh(*bZXwrg#59i2|)dF!}@oL8||MXlATFT~N#RQzDSSm6DR8Gb7*0W*)W4)F|BWq-W zXJ)wen>bGfnaho+vVY-@s0iBwkKW6t@1XNq#=F!zSu}}Rr=Y}dyv5Awy(0OAQ*FP2 zKH00>9Q=Gw?>Bcz1k-N=apJMpP@kBlQ-!TpA!g9Ez?{qT;l@eJ<{Vsz@+98(zCye; z;_s=fC!=#6`!A4P?DG&dH=6Hqs$Tblf$kLYG?$IxetwSGYk+e8bmk>7f2h?EHZ39I zgVf=|E4}w#87_o)OyVezUVZW4?s^5q!~!=!a{E{yf+ z4R6(9y_}~#nt#0#kC>KKaZyAm5;{H#WvlVWO0k7K**rTfwp<1xSO+DMDN>&xN;m*1 z+uz#AE304Ku=mX=OH7%@udw%oBmq(HhM1#L1`%JS+dY@f_|oS{Hb1|O(0xAV>&N+T+ad<*e5Z!>$YYla|}aNpalv9LZuwab=k^W`lrG{}uI>Yq=v&)zxCOVE5n z4@?*9$(b4t>O1VV@s!M00V4LunOy}TT)rKCzrS!lAZR8wLnL;p@q`cv>Tz2uZJ$s!$0Zk`z_6CA7PM0`&fE9K`0x!!A zE-yUfzC7{y2J2yI1Y;7Gpv#fV*b23sM{JKn8sa^zs;klW^LF> z$T@;GyMcLS>Ww#*^KFz1ug`wAde*JxaMUMp0?|mJn7)j`SDdtOw34+L3Y9}&Me${} za~t9}Tm%yMQ?9Xj1Umt1m02YLh!C3~OHN+hN#tae1bAp*A&5|TP!hB>-SO*5>c%TI z&AmLiV*GdU?IBQ3Tn|}n88kU}RN@>+6hZ1cl4rG;q>Uk|(aF!JpQTKb<##~J&k`v3 z#L6Lrr6$5v2zh-H5;Jj^9Gj9?l%j=BsGoq8(d2Z65FtCMb3)Lo&Cqr~ey%+Rw;u;) zh5c*@Swz1URI9~?fPU=D*_U5{dk{e$6{dV8Cb}9R0VXjtRRmj283?N%+iEWZnP}9& zBSXj;njLH@LJACk4(_G(e0m%eBD@4rq?$}xKUSC|p_-tW^|H=YGi;;kc!m14A((=q zxy6#fVK*QjI#EZ=VsJSb&jbnAp{Y0!pG&9QP-oR@g~{bEoJ$2-jQ6Z$o4BUAdI*Re z0oEMNkrzoeM*~~3sTTLp?|%RVBp)#WmL?H8XV@*}csez>JLIhId_7`*2tX%P=g8kk zb_yYX(&!L%?wlF|X!_ruVN=FItg`xYE=+)<-;)iN^7)%cC-fgO{Y_3WK)m`bVJ=UX zkCRqXqDI9I4{yD~kxwR1ZK? zUn4#@`E+MbN{a!jByhqXFX&fi2@JeUpgqAtW(9shlBH(@-T;p)>^4ip5*<|#vDoB@ zY9rg9<|XfK(nF*J2q5uueHN;@@@_y0CKx}FytU91h@;5kk6-_Byf9syBSh~Vf~$^C zw|>b+XT&;Y8-BJhft#jVkp7xYs)MCtoFF7!MM#oy;%5kn1~d{~%z7)~7IKahM9aC? zdi+J5?9Bl4Ym8(kI&dbsPki;UI1b2%vkO2ZpIx`fP49}q!+Pt0{8YUTL#t!`WKmk* zeycVjmSOv5&u($uCI|rL9eQ5s#jCCe;&%fop&`!Lq!=Ok&|LZzOmYYTdfYlega(vW ztpBtGTJ9zC^_Wu_R=U%#7aOJQZTYURvtj~Ld-w_J3h1z8hY04i1`gs}4GkEA{WB)O zBOuS=(L+gr)lg>~#X$cUzvTUy&NuQ5H9;!C5Zm)UI_W5&`9{tS#4`chcR>u^hYVksdL^G% z!jr*w5d&4gkoe?A+bxb5KX)*a%T*92v$_cjCN2Z#lotO`|K{y5-#nIHz?#cTHw~H8 zJ6$h#`mFs%b%(^!M6`%id5s;b+wMO0_;zXpe>5ghRUhb5=W^=Ts97&aLdeB}&NqZU zsW}DFZA!GkgI(zYbx8dYeYV$lxU0}H4brHSj%Wzrt!rqqM+oam7D;}Y?B6+dYQW`i z54pLQsDOqB^JFv_2-nRcE!v-wLm*&tWId5-EkC3+>e>5Iwg&W2y6BJaXncs#Rdns z4uoS1*)M}Bo{F&3U*V()Sez84z9~_E?xhVLAoD)8rAg4W(2P9vR;@Mh{^g06lZAuR zlZ`6XmO>uyapRZY3I{~yUUGx`pdqXjD9p&-hJS);V6VymDG^vn0SQe2yAZ}l2owHS zxcUL`^B->}5Z%6jjo1To0^zzt2UWojK=Xyb#0M&fnh0~Ibgihmgmki{!l&q4A*hgf071X24W*n*jOmTLcoFwy-; zq=kAtp$YmeF)c!Jb`%VERU}oik^&jTxv1IsJX9b)aV##Svso~sKC^JaCq^+XypMh3 zqxVZ?M7A7fs*d81LNg6T&RkG(H6|5SaeL_T=`G>fz9@Kb2-K!5L5>OJb0aN#0T15? z9zrZ)o&ZJNfB+xhK06jD7z@(FLR_q2=1`&2>vMjJu&EXA`R8}M>%qXiDo@6H7*k9FO_s)C2fQLr#B+$Vh z!l!Q7o*)-)dTI1ny}@}X3KYg@-n!HTk0QYExWp4f6tg+jr6jNxA_0Q~>oLJ5)(|U1 zqB{W=0mu^%6{AdK{j&CaY>)7^Z=Dt9FS2>&62_h-H@PtMsS=F{387dmgY#dr%mT_5 zwb{r_d_X|3FJ75%jtS|%=^A-;MkQLRR4x-=-X$};rS z8NQ5Px@*jGA?52vPHZp9Xu=LH0WZ9~6NcWMzoRcx>;FPHF09CSwK_>Bp%$#r3dR1o zL-Pk~#G=G7OJQyYNx|1dfM^>Ki&MJvm)=PM_9EN|*@;vh?4P7S+AAt>tt4pqsZXi= zb-oxOggejCoM%vGViMcVEQ!wDi^+EfC9~nHi!Ui&v#u_}Cszy2+Vo6zDFUOik^5rR zNj+~*-i-;jv03d8$~8F2uPi)S2%?m5R9u)b|GU1ueYUW!$ZQn=`84h$Ho-=_++s<) z{)$x^|K~*3!`&SR+Dyu5s3B15kTEL9+ zhmKy~K$a>l$XY8VNK+enV6HZx^xx^*N%hFPOv8tSlMjn_*typL@Dnb6YXI7JL~5yZ zri2N#W{@g+tzPV1R9^mCYY>}q+{$q5=9|=WN|`xa&JxA0e6Pn<0_X1T>+!Fu7v#%b z(@}esa=M42rkdi2m{pxjGNzpB5a381)Z1V-4FkeQ=Qgz^wmJKfoYfF&0g0#lUB{`Q&> z^nD8I)=patt1VEByw-!t-bvJtZIQKRwFS=#%+eZ^srGn4W?NMW&pqEzh#9`-2o0MM z!lDZ(h38sj@nU9WQBBog-HF-y5foW5{WBF>x^vyWn)M?ECxt-}h8(6QU)6?XT!X)2 zUOhPVG{}``@S_R3vy<54#taRiSQ6p7#6-Uya0~zxs0iC<4nUqzTb>_DAn)8^#RXl} z6g@<<Sdul2Oy~Y;7rQgaAx57{ zav=g#&vH56y|{Fhb~*Th(DX%0Vf5_GB=JL&jKIC3T1X(EiKmBRrAUgT&9=KLI$NF# z@I9SJZcQsnDRfFYtw7aUZgSuBHj^|Ge#u%)L9a1ZG5N{orsgY<{o=QoX;6ww59KK_S(X(Rppzo4cW>8I z-nEei?xe?^-s|mU=NaZo@ew?k8SnNW^9aT)px57*`oR)m)JQP%4K~(5`0(ZbTm?hS z6jM$~C-a~M+$PS55uu%rC+3Om$={%i!5US?OZy_A;a)XMwjJY&H>((y^N5v1bScxCHiuePc?WUImM2~d<}Z?e`A7`Erp>nvt%B%utxc# zg~x9{OmOWFeNwo7-Kjq8YnVgK3UY!J3Ie2n|yb+;>9}T`-OY^4Q_K!*EKVEVzN)lg#6CEJpfY^*M5BdmuYw-W~svS zY}#$;&3i(v6^H!?>yp3ftWPuqkKQ+$Rx+%wn0P3n6E<33_%VX_u(9X80h=Iq;E(V< zgY&uf0!Px%{5tY&eJWEvqxs9bInRYOka?2#;$s$cG~ zOX|oC9K!ORbdqf;97#H?zH>WWXKF&qKox}Wx2u|&@J%U6EP^&$%qrsGC0zGvss)Fl~Qg0!Rh#Xgl)g9;TDqwpI2hUrzMH{4N^-=7qWQ z9V~h#%}}$KeH`p?W}IU0r5P!n(9enqUboKlHU~c1?00Ln^Jd8hd(kIPm#1Iv!@hi? zHE5~Ak`Gkg_MaHGzxVB-os;LydCV!#MEACbZFfKxJo<}9?}ABBNqkmr9Z7W{i;@E>BqL1*ws zEcj<+@UOyvl^6W0EwDQ8_wRXu&xLSSVeqfKfF%~l|1ZP>ulR_6pauUZ3|L~pzqbYd zZCLQ%as?h)(f_Ing8vIw@Sm!J;^LBj=L%R!LF8@f`P*s#stW#{EBGI(0#;JMvI_nr z1qW8awI?P2DJ;nRUxo#Ltb&@?&Hv67{O_%TKY77_Zxyieg3-n4|7;cfTVXJ{zQnQ$ zM!(GeC$8Y#_Q(G(tKeUS0gEe`+WWHj>wn@3QvSDGffR9|Ktkhf|-A~g7b^7CaJDzk&i3?{s&hOKd+T{ zFLt77LMOD zc=yIUz(WYswf z+22FiY-NQ(Ekik}d!{ueHG6IFB4$X~YR!!xceDhcdftJP-*CTzA@-ZO*^7N6+xH4t z#Wp|}C7a@t-J#Vw z1R4}mCp~I5>5N}>kS!f5SFI{tBCKE=m#|7|23x@HBdtw*EwND)CP^xI)K>EALKepX zSD<^u=P~6jiz}eBxB|)A8{292{lH7nO`TN-T!B1}#TDFUaRr6l)dPHB7FV#t;tIY+ z{*x<^13bk2gDY_OdjEhchz7k1>;uXP`!T6F2p?O8b(ic(t`P0Ia)D_|2WxVu?+`I* z^TN7Y?IDXRfDH1&N7{D|xPlwfVxN2da0TuMTtSHP|G*V&|KSQ0mHx>U#P!CqxPnWo z|Hc(mW}aYi1+2oL^53`uv8w;e70Aiu9dHGs(*A}Yg)>9{a0PpgcQB>LU;p6>8i$V@ za0U7Q#uaE4J%qf{>s{#!Y+%U+E}xHjEA@r9gKt9TkAXP>`+Apj=I|eB0LW@rvaMK# z5ZX=HUm0NT<5tJdZVhPR36Y6qREWPX`K%~-*DU>#b_Em|O85&o0I+TofarttVT2T0 zh$R0D|CR1Wc|hGEY&c8^TLr^q02HP9;RxvkZ(^MIc-VA;e*JS~>(%2H+v4 zD6unyLaP?;y_F=^84m*xszl{zED^-Kr2l+hB=5ob_$1t9p7n)Re~IQHl0cHJms-Sp zlWrN1EdmWSz?%tvkxU8PLIQ+XT){MpD~S2T;tELMIRK#Q9D#U&#T9h2xB@X7KEV61 zOH-|iXJm@{&ial#WxQ<@NIm*~@yGWjJJy=sjhUby;3xbY(0d+LjsWoifXa@MrYF|2 z4MGNZK#IinJx8K#O&efMpOhdqcj`sg_a|G4{#SlhAK&}r2mAT)!L{A+_iB>9Fj;m7G&9?Ev3 z`1Omg=$Vx}-Y88LR{%wn0ig1j`Intfwgm1oz-(neVeZhFGCj3OZ6|PPSi?8TVG@`3 zHUnvC-OlC2U>ysZgU|kDCKx34mx$gxOb%e7zZW0sVe)JSZB^C!F&BO5JowNI0Cu9ndL_wF$i?GM-wtQFKD(bjwTOp1#E{{qz-orz6iS6_RpLG>&DX1v3^G<^)mupN% z_VAgOeuL27xiOhT4fG@9PZ`jYKc6B^7z~l}G+M4juO*S|ziQc}I$Gtp zu=Q7_rNRp$>tSTuU!Kb`d>%syLEFDpXkHFW3NMfGMy2GK^(`A;_oa&FmaMt{6(e{R zM|KpmSZP`BUUffx%{d(!(I3<2OEAp<~*CF;Rn2Swt z=wF{tdrMw3zN0bOdByJ4HOt&^bF%}kpqmL*VMc0qN4n=jl;$9))9@c~in#>|fBra2EXc%wHLIb~-KR_6K^^Bn#w@V__(v=N7_pnOGeBaKM6B0B z0=IRd?l$`ZODxDe5DN?e{-y9F4+hi`4-upvhy`w2NCmv&+CgF9b|4m5jmn+xNr;Ix zcNG$I>q-7y#^FW>{p6>1e2w$MLXS&=NM-1=*21thR4nUYB33CL4XJy?8O94qo#VQ& zz!fbC4WsisK|`DfDzC~-pi;_KSe4&+xD^044d99fqUmn|JH)9vCsmvUndJKpmU~> z5sf2MQFDwz^g(2hkHz$#Q^{gv@-R`81khSpQrkJ?TNYYyF69F&GFX;dq$&&jK?^$W zT=1k{rx4Lqf6xL}WYCEN#_!Vsx#h5+KWM=;22+YgE-WZUqakq$+C8 zKDBQqyilWD!_1{_7DEyg{atP)l2x>#kPIijLZ$qn8q+`n9y#}$U(sykJ8_=G)VsUf z(?}k~541|5600x}2sqLCu=L6(SEghtumvKH zyS)-nD&}Fwm8#DgN1nrgy%{VOxO{`f6|kKaT-8g{Hhizm<&6h>;~~1ri6$(rz=cCN zEZ<1kXq*8y#6!S0%B@l>pN>@yCpc2%st$)%UI?k`^tYEtt#Vf`KU43bJ=D4`;J|422Zr9$%I z-O&#FcLYRw>fP(LR@pbOLUMdzsWnA?TH<{bEUVxvo$~{sW>%<{Fj7`&W32;;@7OM> z>(k3ryk2FKf98mlsK-5{3UWtO^}`l&zEj=Vv3oCmXm)m{wAbDn3dmb}l$RWeo?~c- z&GBSPixuDnuaN6{r_^^-xCd72;BBb8=4kOn;|$({_La2ny!M*z=$R;VLnW{IxTcmS zI$=R!_DB8NCi_-f9X-sv!9#^J0L`0te>(OQ{2mO*A_^qcvg06D%;M~Fm;y~}fw$!M zP#%y)6wtt?G_C252aT%_zMK;Vv4{c}`X}XN@a_A5cPK*I;MDyEWyrQNLt2A(MR7D0 zam$>&)k$U&uMtgD4+A)lZn6ulz@B|9A*VLXHuz=TxCi-p{uubt-{2JFQMB$+IE`Gg z%&XctXEL0vp>f%SrvsInkfr-NjdkZA!y*a@^_w9Ljw+Aul9QW`&`+Uq;GSsBpRNXu zy74&eWxry`Bc4tDG}VV%Mz)8Kt?`^G)?%8c{6=#zoEl~>HC#IS_-Spa>(8ffM{OBd zIqx(R*Ek4B7VU$CG1@cRviW@CAP#Xl*y#hAVD#MmQi4iY1-brJNX0qnqb)9pVg1Mv(UTot&?Rhla`=d-jR2t$;4+@&c*5zSb z!$7U3y?D}~b#~;zt70X<^i%SZRxACUe=_tklgQYE+*|c8}BV9t-m(eTx1|3 zl*S~@080#JF#}o0cu9Yb@@g%+^pePPpYLJoA>a679&?m$yN)CJX=l=Lv;Pust^G zQosG8fM6u(NUwG2&{aM5TP5o1G&jISDHX?Q(~BymbHoEAZBh_!CEZI4ToE+UX=iO% z+Wo-}g*zDR@+SNZnyX@jZP|~lbe~}Cc<$+GukO%*m;UdAexR(SeNn}@&fj?C2qVj; zuE)5wey5}34vmA$Ag`0ya0@@6(5!N88py4suw<@?|7 z9O>u&w93^>RPUWrilwMG_##yt`xkn|dp0bsYaT=&YJ{B2Pl*?#WHp_j(eww+jW+}`jm8|SbPa;x{C zEqGg|I?o=a(S}OjceF4zW1k{*a4uKfyD@BKCiS4@rOi2HKBJ@g8#1oal9q0ny*?W1 zR4uO2FFQ;?OL3^ppj}jW1fE;je;H$weJkzAxz8JBTYp99%iEBK!S?uWSt*WUJgk85 zwk86_`45obHiI+%03@g(An%~*4`PwUL#bWP;{juDL!Qg|^$p{Hapw~tP8c{I4M~tm zGmwO4t3mNYlWHz`ce` zU?Vh>kYX9)DNfVfX*@%fl#KR^gc)qW7yXT_m`NRqtg9HKkAKOBskKBLsxjJ?2m`OvNwGWa4D`FQ5Bru>ITh(%$CZde59(sCB$KlhyZd4iA%>xtME? zeuIXb`ePDg3O!HfmS2@tqNTpwdVcI{Sc8QG%@!JSfJj!(CR6T7LvVn5K58TRT z9Vq4sl6=&mI8gx2ujZRqEcsxlHP3fTmeDe9=FRhw2si!15~yuo7Gtpl%mbF-w$bwl z2&|>VVUNWU(7;Jo2HB$usxnk=KYtL3;C{|x2>^=%Hq$yM`PDCV5+J9}pzb7e+uES+ZY`bIKL;vB%d^vM-hxLP z(JDgvTS;&F54W{dvDloza+U}*LJ>}sbYr^$Up z!e6pMxIs4GlA33nUB6PPXL90r-wKB|kfvqo_1Gy6ZZ-IA*fTeDJ+TCu#W5lD;bA@c385(!$1#~e*FK7lE_;~C zno4pU=!#PF&HV+%czm(0Uz3BU7>hkHbNVFW z$kjyvgY>pR-=Y3Y&|@6Wq$FFgFKj(ZwZ4fni1-9*%3fszw@IPn(M!LX@H(x49?%B& zht_Z*HQDZ3awP0>dg zkYl$Txgb?+_mWTyp1(x?o!g0qXitBLV0^u>ef|v*F@oEOr+u?^2ZA=(IdGgt>pIiQ z=mZJBXj0a1?B`=&?q4cmPre3;5=RQ}KjNsT&RPP&f}#8v3C-U_Y-3`Oor(ej2eE?8 z-7cw72}iD9L%Xg5(Boym%F`@t1Dp>)Kbe?F&6UYEp?qXam`_K0|STiWE?bDDgV+_%h`D3OWfE_xsI$#1~AIkUfc7xSQ~#_9Uf+{wvL z{Q)rc_I1xzsjp#VZt|nQ1ZU?iARgsKHz|!ADO~({X6^bV&Daj=%$vKXKm5M3xBGVi z%B1v>j%?$ES>teiQyI^%x!q%IK0lsaKTs5C{3YJVF{D36AnrcQXnKez(;+P&nPT8*-VGW5$qdMCp6h4DL5+}C8Ukp(nyM9%)wUc?fKCca}T*nuZTFF zACxCD=Zl3GZ{I(AcdNtQ=YYoX?|pI>0t99H)z=5Vp!;iKs#0RI#1iQ4S9%*V4#=AW=?f`_l$4ceV4 zf}TzFL7bGPhD6`u@wRWqwU2LYgtejcS|7&Gtg}D@>W(1Z@(S(8i^xA9!I@tj?@u!} zCZs%cO{fBASRg@`?R)F)TI)Llwc!IGllWup!B2mE6I`1NrU_pXQ$uo>kT!w|u4fg6 zb81V_QVycEcb)~O78}OoM7??tv-U{OFsjS8W`1MnYCj-vp2X=A^JS&O_{ul;PgBN& z-D}$GX71a~{C^&^%ez6a>dAf(6ye1t&T*rdnsHrLSpxkq*>?hwHq z)9!4i-FZ6=*C8|DAtn?_DHA@FpE~kfUA}Pp756Q(^vN5M;n*bvLxOpwVmr08VC5X85CTTpA|cA>Hou=<5)N+L>&gZ z<^`&>QsnE{!3)+CW#Ce|?{wflMkbI^)MK4h0xf__kKAbayzSzS2GY|)bccF810j9p zJP1?9#~#+Bc=#NFQah$4Ei@0deu%&o27NvDrsss-+HJ1G0XS_tD*5JlWnMzOv|(#g z3XXrY)L?n&Wc1COwvR8pdlitB|5Y&&NoY<~iI)P4yGVk&DlCfP<%ls|;r{&2xcy&V zDM(+)0L)twMt$;zemJns-)OC1`Q~z2(#~xDed1_)1K*vSzaql@$!-H;FcB@pUD$&; zkW_%{<*yU#SobxLIe|@!uXC>?@$$NCu?yFdYpisZf$u$i`CCQ<`yr<)D|UDPVl%-3 zYp0S6&qyL#URK@r4-}bP5WjfBTM;Pv;s7Qnk66q*6Zd6J(C_1Y@gXbkGN6_3fFNdgw5dC?qm*jqMXNYqc%o4Z4RdFYxbzx{HNZ z@zPLbMFL@M+7}vJVfO9|Tz0S4x+oCO*R*J7l->rC36bnjH>RKQwe$XKW&ff$KAkR5 zPNVQhF2XI!@HeSsq4#{RMJzD|uT>U>qvW}& zziDpr%T5JJkgjapXu03Wzm4({C8P6E~9gdaTP5K+55h1j2i_1g}bA1j-! zHCPMb6dIQr@bU)Tlsa~|N!T*oq_JF{=T(nZtYa_!x#+Akdwud+6zU~x{dA_kncxjN z(0e-Voeq}VckNIjiK|%Na4T6ZE(&s;lprKIW2rEJtyH->;`JNQp_xg)E=HUe?9?Z# zeIoMfctI=esuCqga+_IJ=uG8R+iYDbjh7#|f(yx6wSRbIKs(Mg3OijW<%C zEcFiGnztknrNpg*FPh)DE>nB@%uXiUYXo?RU2jSxx&P<_o~2>;3awjO|#? z))6-8U+v1)i+mG$53puNE12&g=F0_%pD|tu&i#*HNm~M-ijt(iJP@(9M#S&8cxCu6 zW%gQ&WM{A;zCwN@K>8D9=CSBxK`}QtyHggs5&*6=C!@ES>L;BPK~Kx*WBc}q@AGA2 z09jSB2(CH=R7bOdd9o-P$oiJ?EhcGUfNIsC$IeHIqab-ESyJm^p><-x4$9~p)dhn{ zYNlMk-A$@yt=SM-0C0H|BnKd;!^jH8rcUfYVs1m5r*h#G#;;+Ol`Z&LJV>-!iMT?R zC?lT0H0b!MU!_77nc6&FM~RC(ayTFtLOz+^x^G=r{&vJrA--lgC;QS6OdhAG;?gY7 z0B8>xV-3>d+#uJGCVjPy5-TKB8B{U8{#jVNzFq0DbTd|Vpxoa0~C!HdV<#GZPPaKv3lUbOVmVlV@vcxQ}*?3=#d8 z)ZQ+r>PJ|*ueJ&whZ~exs!5t3^8*PmNOnwhMc@0E=*cIWK)lt>VSMPIIN&@`%Dt^o z*ZEb1nUtm}Yb_6He8hT}Qzvf?+`rs!*)ZMhrkKDF=#fVW$xCLiOM>IIt>W;<5_3DE z>#{BZ60fuOT%HEWVo4HZ5RA;fPoqYXtY))b>@bSKpX^ zx_<~rVDq?OIq#)CpwV*Tl_qt;Nq8UzBEQ^|$ks!Hh;v9ni!fG|@lT}v`w}U-M{>>d zC4r~!b<_E*Me!sJ1|?`2zGI4*nP=S_PY|Zs#5F$gECxv6VHyTDxdFEB%FW&^lK_w? z>Sk10c}&@h#MkrMUkDxuVZX9%aoH`2(MaN7e$ujM9p3>GL-#eFN5s-o-fgP}o$t55 zmmIhQ;&n4BOfQml1MUk@K_-Yq{}A{NkL1j8c!(RzBmj#R0;S7T3nQMf?*McRU(fPX zPc_=t8E6|u_1IYhMXI08)~Tv5gOpoeO9+9@5m0x1SR^|6G6Vjj6Fyk|=CUSoWAga&b;#L0l6ys^PUUxs1XIBXP4nE>(9hm=m*7u!1TgN&R> zc4Vm@0KX&!3LSuT-TAUTa=G`g{c*V64vAlptP|+WUjIz$&=?n#%xVbCmTS9uhPykR zd5>71IG&7SfcUB{Ob5nLRlKS@Kz%ui*@|ZEe4;H5>_LU-SSQ{$xDk_+p6`}^!5SKq zn|(CVC2qbJ9}0J;fj0s`>SbMKZ^sJf#~$_q6qpbna(ZlYVFfqxsPxk$EJchqPN_f= zs#7~9Z!!SzXVr?PH77ke4BUVMtZdO*2n4+OTASZhJL7o4GZF`mr4c~Sm!-$DGy*0Y z{s+aOdfa7ImV%LgX?hyWnz`Mt~`0X#}FO zY!CDcT!hRhif`pA6RSGjJ#`m)B|3SpLczk#{X5_t;Y*(TN8Zp;sL2jcfKK8MG>Qp4 z`nr{@LM6-7NPK9Lju6!H@jKZznZJbC&txF`qp9)UFM4dT*A0MTzG)@Z0yp)6M{#ll zOy;e{L>L`fYm1He(kvDWBOt1H32v~tq7!Bm%0^ofmAWj&`Rpqkv0StZu99A_bg-E& z{4!D$DAAMKOrSwcaG=pvAeO_$6k2C8%HXpmiCa(Ms>DkO(j%sKF5rzR)wc@?6Esje zFQ(QLsN_ShjckV0VZC2@nox!WuF=6-A<)q0ocpanxQ?6QwH^|a&=hK)cqbf@l{eu4 zNN7UJWhk3Tw^G@bg%^*$hueE0$Xz*EPXc==`fg-as$i=|rg;tDI_bR4(JLSF!E%wr zhahn%lEkrKvx&sBJN>O;9xqjH+^^36mM~k_0~_lyBv>c%#-`wY7*GlYCcna`?2}x2 zN>Y1@qlMiz07`S-@Vkog?U-2?JaP^1Hnsfj5?iJeBw?yakuZeJC)oDT+`kOuUeJF~ z8c;H+BQ0fU#Tya7A1xXYS+zbS=TLT3NWF1M0BR0vPD)U8F3hTW3 z&`FgM4manU3A^EP9y`<05%Nhjfc^3wlI^m`*s$UmN8c@0H?S-mI+rL(OR9OE$BTP= z_jNU!WO|Dnr}Mz{lr_{JlyFyO*3apNkuiv-?1h;a>7>mIC*?*q+&t(8LXv#+6Ya_% z*e39i|3lfGheQ4Ui~pY)vzozJldZAu8cQ`<#}Z==NkSS+B1=e-rDm~=eJsh68cRad zSduJR6Qx3%C{0MBA{43kzEtn`=Y2lsbI$Ml<{#HJbGfeh!#u~#>v4bFh+LXLH$bHC z800cgiZh#my7(moMCNR{HSu+yYK0`mFNom?D|nWf!)$K0u1kr(!|zeSbNEb>_-VMA zJyd^?;1)tRVx?zTmlmS1-XY;Xmg|x?57* zPkR4o_GqqM_MMOCsFE!cAu`yiG#whMah5N{4=bK8vy7Xy&bk=bBvU+R(9iTAwV5e6 z(-T#|wXF=c>sWc>J}!JmvV^_&u{>v%x9+=mkU&4!u&*M}ZkL4zIyGcm7MCp8!L!Rz z-pp_|Xc=n>+jhFH&3qBfNqVtEGH)5fO8badHra zOpjw;P7$Oir1pW2b&NTt`L|8`-ENe^U-kshfvX7|W?G5=Tl!MS6&ahkc;f7fL_LxDPia+Gj(S-wdDaY=Xynh_5X5XA|Cj&=zh))@yN(hkDK3(MP zxIS+}eY(pUL)wAuXEZ(-+5koeUW$GWOM@~7UgPw#TGo}40P^?_Mo@<}QN|R(j*U%1e(OuRqCg^W*Vpdr}A*Od&up0@f&ad?5$W493*_FJ{^4pg- zvNE3}*mpVM()W%iT`Dfw)Cf2rX`ecYZGqN)nT;)RyJc~`C0~*21Em;D@i=vy6oLo741Rf%~&qTRm z0&BKPPb;89dAB|NwQW@`5qWc!=KwBgx+!iqo-2}}Xol># z$5}8v&#&VZZmzfpjb6^5*_wgobM@o%7(}n+0vZ8yQzO8^^;{BhB)AvO!@45*lC`RK zq>;C4B0MjJM5ZU2#+{^4d{&{z5%?Z5Bl8@jJ>Q6|8)^-ztoTOXD1GePzMosPViHFY zGrkFpP<+`GS``FP1S6rH_+|g+IR|P_1n`nXZW9>%fS+EX$>>g-;3imdl zFXLQvF;{ZMu1$&n{k|-W06ypsd;O5=965IOytm2(qZ!QbMT z2PsA)ae_*T$7as7AZd?7L6Ph$sd%)Z3nerS^Ze}3A0Wm_&NEa@z$9jpC5%k-v-?F##_8gi&HQm}qc)ar+>7XI*??G!Q2Y3Bi(AeaWguvQI{)dX-f9vu$k+P9tiak`Xm>p#rp+KGbu8)b z_2V1sQ*U9$hI8%qxHDjn<%^WB4-VjHC>4Uk?hV@&e&axO7aUcP7Qu?&dThjFhs(Kc zECUzJI2@7x4ELDSl*QAH>&^v6}de4o_G@)0knWn}tSXnxM((+)s z8TVEnvrx%zWu_Jy?=wiB89mJ7s*Z^zxrd@QP_Db%DN6$ZJwNKi@s_)@b9CO00I5J@ zxS%581*a}u=eofO1*0^gsAvCzR2mm zU!3P#@4ut5I@>0{XMOQVn7fId`i)QVk?O#j@D}x(BUPq@H(w>|Y212S5FNDpeRH0& z^HT`IZdd8g8I86tqgToL3lh0++bTL$kGF%-`uNCipR5=BH+U2A-8_1MVxjQ!t86m& zBWr*w2v9qJTkyDqYwM|4eJxrC^M@O-x)#%VzH7m~Rcqh{_uB%a{(xWXiP$sL(`S=RDPA$uxL8^$ogQ~8?(C8H z@VNLCyM&|15>GP{lMNW2`xpUn$=Saffwi&pRoP`#b$>E}nv2)2)mB|^x=?#1r>?Z7t|hgeRbSr#_yd1u0yi3)n{GD8 zHDA2Z+3RC>MbGnxBhO!4d(qSS z0(kJr(-&jU#wLF&1mojx-n@SEn)CWK=grN@f$_K|0gGUM>FfN`55OV-dV%FX7Qv^* zFW*;J*8a`}zOMZk`}yg2Ch&G+`Q66a$BiEw8yg@H2nnp9|Gx$To|?4z%|IYX;(o+> zNoVTxyySyW)zCWk%B;)xHv@r~qmN(zMG(w1M{B)47@hb}g5b16=_@xN5U>h<2@nJc z!5$;0Hwl8f|D7O+_)QR)zdJsvclr-OpbHQL{q?(l5d=d3L9qI&;q)JZVCr84!Q#IW z1YLeA2mUKTFdVT-5N!QV1i`gk$2SRrufdxH!Qg)&2t@u61TX)cAV~a05RCnkAh`Dz zLC_mQPuHAG^~UH<$}QRbPXxj9|3DDD)vF2l4+KG5wzop|Oc+2Aq-hWQAqe7r5d>Mk z2!aa$LGXlIAbZu@`VT>{69Nzf4Uj&mqxb$I2%SxI0~ zwT?}KfSd~E`imgI&2JI}7e@X;5P&2hqI42K5Rh$lM&mq9HVFa{m@Ccnq=LdGLC}lm z@Ch)?0D>T&%oc#(7`41BCE5TG1dglSL|LTIB30d=!?yT~AaFGi#7%;J69kSrmi#$k zs-pH*9eS8D<3xxjevrGylN|&B2!hl<1Oa1{AjmEQXDe~xeh~yIP#k`BA3zZ3m?UV1 zm;FT$G&%0xl~Ft~5>{~`$D`Uw7J-Zm@IHg$dq1hb_S^~u3E!vI0x4G;u2GRXiz zpt4C209VY`4MjV=jAy_xy}{25fy0kZ9Cc_*(gw^cU> zDw+F+PuB;s&vB8(U3s%gxH-hm$Rm^*~w^MSBZS7YwoVejNas|D< zz_>!&B5|0_YD8leJUrmX1e+==C)!K zOin2eB&-f+O)@<-&-V{7SeoYo1AR4EasamcAfCA3XRG> z$I(&LnD={lbTmxjt<$?*^)GBA)&(vu=DbzDn!iyP_oD<1XSlVAQSjk5AjsEIQw63k z2FXs<6eYyhXu#2MIou)iK&JjwC|~Hbc6RCsPYa9LAzF?T;b(&{sEm~Y#(7FW`pgs{ zgWQ}uIo@u9#Ag`x4G6Ns5yCbHi4Adci8_Rey`8Z%;wF)`n5An?2(6buSKuTgbhQJf z)!>jGvs_A0-hq^<5UKLsN|pz?2&r-7nY%b0B1R`Kfl4&NU=DE$k^}E|HGb41f1}jq z#*|@fLf^@r(rpcF3Qr&lB7A{UYwHIQU9(5I>vT)5f$Ut+Gz1hgwFTy44iP0%P#sWV zD0!g4)z~=zLv}9l13^WI!nzwcA~^QT*x~bHF8bz^6`#V&JXhYNNcg>J>U-KHk{iG! zcA*3AkVjXD1oLGD=Hl8x6f;0L4aSlM^yx*`!wb|<5X+H(@6baopuIsXaC-;H0Ytev zOU*8At0`0MeA@p;Bm&)U@F@(@>aGAt0ICa}VmpUYV<=P2Q2!nfk^(x{+K8(@iIQye zMS-zo&vhKAeAu26kw@;rihg+X>HgS{;n4OgkjrO}f;b>PLdU&VCIY^Ah!CY%pp#)? zfwRF%77gM2y-G8$I?L-s@zK>zY2wb_zh*CRq<2T7W_o7JOAVJda77SR(6Ba5WUt(= z(w=GW0kyX}RiYaS&bPz#83FF<_Ec`ShxHW1K%D4I2Tvz?$<#4xIwDwzO$*i*DN?B* z2!{1WrR$`lTWNv}s!09~4`4IxBhwV^q2zLzbFf>M7VX|mO?k$`at~%f;v*2diaq7> zCVt^v`zqH#Co9gc`r`9PnRE7tP=5>=a`e{I>`z@h_MCXv8C|Qw#v4~ov<2)i-)Glu zSmybKissdSgR&t*sF^kI-ntqigk0!aGL8X(b}ggFsuK*xa)QjNOt-aisDkM%=r$G^ zrZh<9>v|Qh@iOn_?%*yS5|$By(H;HNyQ5Wc{9e>^W$CXA3A(NP=|MVNq8EW*>EX}? zb)LZ|Hl!l1wxrS|*}{Rc0&o#}>z|niVmL{4ry5)E zv$mMG%umMYdnv|qd;7kNbV$aFERbIzJfjp|o1VTOt!c7rLoUrcS7`)V&%E_~d)I+#N6w^F%eKC$oO_q&fc z8#*ziF?(J6OW!h}pLlM&OB|3!xgVzq=;9Mj+DCt%Q9DEE+;#@;@!cw8`P88>zR^L% z$>(RlU!e=T$cF~O<~SemCEK-KCw?ZHwZU~V8WbGAoStZmEA!nINM|F<3QxIHK6qOyeYK52m(4Zi~-L5 zMG$1OG6eCM7i7phKoDf1o-M!ug5cFJf*^faUGfHBl0C#d(cS$f?7a&T8LG=wE8J+G z1ogy-vJvPFdu4wjoUs58@8E&Ta%bZ;)|q%?rf!72j{*g0yYKMfNrBgsd=*3liH&%v zjSa-|*wc~z6l6aub(9dl?fs@g@P?GN!a_|~WZiq3g_7n50)cEYx?^%vA<%x$=MN|Z zn!E&%U^MPu3c+R|@a9(_@Jk_R7u{3{9Q>2U2)Pp;}{iHLG9SU#-Zg|#JQ2|ty^`|-( zroi|^c>L3R!p{X{iA%9H2fU@qmpD>9AXJicg6|t1p*;u#zDZZo-MiXfvh`f?S+3$c zvUXnvVLJym2?EF81VIO_^G(TPfFS6AS`b+)070N@ZD?gMVTP7qCMzGaUfadjA949k zw=Is_5*^O>lZh0=LNrd7d0CY|rJwdqD)*1#TjjvSI9YN}ubf%CLJ_N=0YQLkMM6{s zBdUU{lgD#Iw>(V6<Y#60kMMP`@pO$Xs*0)k9TgNk|kCJm;+_5Rpn7tmq#nB znyacutFEn8ePC~0q=<+MU&%P8AAaxB!DQnJC&W<>Umo|>F5T)L*XrJ=>b}`3@guS~ zW-D&4Y5S^3wA{P84&q5*JMq`MiMxJkkb-hZgx)abk=hzq4 z*!jsd>#nuyx>pC4*|AFu+hf<>C9}D&R$9x~zP73piLO)9tL68)EQZ!rB}qtquSKcW zp0DC&ZIJ7$I(S#GwdITc5=ZI;tZTcD)#XP48-%Wl-mg<{DZb})k#^N3G;jw%=7J@gt}acD=>i zHOrJTYqa+Fe16UEwFAwS>v(h&9t|z#MuZ^OK{pq1T#0xdrakxr4pGGnc+Xv($IT-v z&o|h?+aY$fHkrpeKxKp_74-cUWe1PHG@m0A6Ipn3uDN>a*v;*NJhRd@d!yO(tCjK5 z$n)shC|olun)?V5%cAfk&hfe6xRi;Qbqd@M$K@AN3H;k*-f@eC=611%3$xJc8y!e3 zGBg#9^dUpFK-&_qP-75!=sTuXwdIvni&a3&>#(iO0c_py%C^GFcJbEQD858?W9=*- zje;uH!-fr_nG|@uD%Tdo;blA-HFj4+O`4aEBx+vV5M6lmXw zy@1(9;SF5Cq^Y)#TeZgowD13VQ-r^XCSJEbi0%;Y&W}RIMI%#H?P{wKZ8*eWG@m(z zCk)>hMZ`o=U}5%m^6qt>kLDxddD4u z5K{0Z>H>!^ECk_4=?la2d~UhdKYH)w>b=9Xc00ZMdQSIGW6&%LiphMGNP*>b+{n{K zcZ0aYD5xItqpCqP8$Z~MN3-x~Oza?v2i1m0SK)54K->=cLt!9P6?w2eguAp_k-|bZ zcc9vs4`*YlKYV!jf!0zNLo!-I+stB@H*A`E@Pnz$M^S?)VrpeAi@P2_R0VosB>6;$ z=ZPr~nmssV5>!7(MzKJ=7D2%M=smVW>_Ig0!4tE>;qK;PwV&z)8-Cpj{13S!cQ#> zhak}=D(nrWMg@-hy{Y_y=<|Br=UQqFjX||dMPu8RhXFT3-u4AhiU1HrzT|jn5$aM9 zIyn}22Vy$TusfgIQx@<68iuf&m+M6$k$K)V^rJ$j0&J5;h&sTepw1dKI6Pr>hhTZ zW$g488skE4@T=&0W3HhLy1KN5ir=n(<+a9LF$=RtEejL+Kx)r6rhE6=Ui|6Jz z_O+;hU&5(7?>^1j38z6;4`M!V}*@scBp%mc#P4HIU$*tX;FbK}U-$P}^s>w-dE5jo^uk zf%vH?L5sLVUSg%@H-7j7lSm|$*OLg}4c;U#NDB#_NFz$iSY*zrFD+jV4==ngT+onueKs4G zMHV`Wm3y(giCzq0p~Kx+N(VfHfb#r}UUZe>pMMKq{^q)E?NHd4MU6-DLr7y5ns{q3 z8~+WeiE-q-z7+O}OPbGzva*g%l|PP++yLdC=4(o9`*sZSV^rfu@8>$+jR|=w?^!G~ z5O~elFH}C)goScH=z~X)m+dUE!N=c>z_6r}O@iRHvP3&Z!)GMqO-mpz&w7b>wPypK z)P>0*0s9;1`3h7y%P_~DEam;Q<(;2iwM4HtKP)@=c-r>D?vtOUUOYa!_q>t#ZMOqY zW}45>$64jv1pGtXLAxCd!ajMOf$Wk8fc9$7%zzEW^WPX0&0@n&z9CKt%8=X`XHYSI zCQn+NF}=bumJ824+(ZfH-&YqWw_koy*QPC^KIU=uERRZBZ|zl+vkA9^-Fr0$>Mrkg zyPdlA7eTQ9y6?|@{GmblH&+ma!2)_Y@a)rJKVjC%NohUmr6ccxgQI7O+G3hoaI zwWmHO0%so`me3$E+T9#K?B^rx!t}d#6*m)EbLFPQ@DV<5v06BPAGb*vfj+~I*KpOZN_Ooq{K}n~v z9j2~d+cZH&jmO>uy<^#a!wk)RuOT}9Rxz3+`w@cC^yrhn5lBj6h-G5yAz`)s&n zhMt|7@ttkNi`5n9GRNOP-nLT&8rQ$tYtt?2CK5+2v@CxL<9D<1gJR{x&7AB71#hf) z#4Nq4ygulq+nb;W5m`-A$YFMzdy@K%V}82N{&VZJYv-G)cr5>QmS>34{cXWGw*c?6 zsVKu>w={EElp$Pt7>n0w&^xn z%WicrH}R^{K0ldYw2}04DBoc0zli6llUUEx3zEtaY1o=cKJP9tMJUpT*uGKelG6OfQx(m}cev1ob zm-_AP3Ae0)erNjVj$Sbj`C%AbnH)J>z}Lluh!j62$;yl!Ff&PhtDu~6sI1gq-U>cW zEK!4fRGHbMtMm14)V;oA#unG5zp@sJ!o zO4;=>X*|kxgaTU$uU0#w51Dd|eRuh%B;R#PNfvOa>|}aII0D!5B29E33V{&W*dkLW zh2|RNWZa~E{)TCFLq#Af6?Y*IdX8JbBq^kno?ueA>b`0s$_=Z3 zLXmTk&G00FHMOpCOr|o^{CZMxGgxV3=7_OEIz7n&I?P=o!Xu_|PXw3ZiS}OIgHNcH zJLmbt;96(g@=zMeYLFu1x|D9xVw2FPA6EJTbfOmdhNHz zbYd<&$;U@_US5$mvl~OPc`ee+rfU)ec7#9iDG_;LX`e8>bEu-%e~p@o zXTzVrQF`C>l|bRxRJoO|@4YkbC2*>{H!|5lIvCU?z)-pm5~nh@b_M92p*|lvQ=4dR z^U>|>gqf_EW|}sbmSSCeWLHqBEnUH>*v@RqZsKcl=qx+fZKR7|hkX+S7knGqe@J7BhRd&5Uv zHu|O=G$nN9B^bD&q`F0fmo3k(adMKSXn@3biC#jmQ}gk(9+4&eJ6YqP0!tfO(fYz` zh2vrei}Xcqw%E=Yd^KilEptG_(4E>!K2Jg^3EKJINC8xrHOi5>5BinIur_PlUm%?$pJ=i#u^VSxda9{% z+q!pi4GgE1SRsw2bz8eCPFcuhM-DT7@_UKDBj^ksQPsAWaB}9BZufaBCnGkQch_v= zE}?7`bv7i)Thii|;&A)}gV7-vC|KT&y9%jZ(hM^P0L@Gu>QWt=h7{$U@vut_KEEHV*34 z8-*7oRH;BA%6A+U*l}@=B1idxJf9OZrh|u9^~S}o^y@{woZNP$79H4{Q++_`e2*hu zTt{WU+gJ7$GpAlCx+F++m^F8p!!pS4CxKp-S|2%aVRERCeD3pS7-lRDRXtGFFRqo| zVx}O|%TcxTn3OZy+siWE64ly&;H^Ur>*?+Wh^S7-o4%+f)e2uy4(|S!YueG{)$e5m z>#Dtqo5>ilca@_jFe^=k1ELav2K7G`H8XoL<+g`an~2Dm z!!rgyf+z2qdfbZ*eqgX_%=l*KR3WrrcHG;GCmLz6T=M*LT##UP0Q5kUD|-VlFvvD_ z_j<$)bAGn?pN)}q>|3sQ-6n5|WpL)Yw zF+s8ON49-)I%EHGjYXTD|GuJ^CT{o)2i{V;Q9b+4=v6!Q_Hrdecn%_wykrq1MN$O=MqU+J!3%?9wk_Oa$z(vL6|_}>1&7U+(uyZ=a02VS0L2J+FBeS z0`>`U$*2>4G$|Jv_Jb}$%~;Zhk%xt^2He(IXp5XFZ+elqn?cQNG5$H(Dyee=*~)C{ zr*~V+s`M4B62ZGT;Teb$+nE1llSE+GN7{An%uYE_d(tu5h7ybNeOR712If3T z+u_*7-)g8e(CyTc=#~f8XzF-620b*JcxEAf{xL*@LX%yf;8SmEJ~4f%Ym81RG(+AZ zs)#Gp(|L;BaYDtIv;;Yd48x?#B9TyCm>MwfTasIK(q|<=ne_P#;Ce5PkpDDAQ+S3e{ zJ1n#(30WjifXo#~#783Hk@N_qowu>5KJwkZg$gDZ>Vm~Zq$V8pYtZ-V^_9EY+0D%B zfYp{NC3UF*d)yUfD9-}QY=JWZOWKSEvq=J$? zYFS}0G^sok>8;dzn7r#Mihg>g&qocpAj+s8Va<=Abt{lFNpQiz_`}%Ls??eoIpcyS z+WX5|V*9vWW%nu(!G?@B{bbY`QJ63pl2~0>mV?Y>GAx!-mWc>$X|C`JtDVL)OC}x3O1V%n5Bbvr!JhMb|94rVh$iBw~AWbQM*qc z%CAS8pT!{**wot6>$ozCE!pITr|p@hc*Txgs}~+Mzc*v}fce-vDn{v+gO~Wb2QjY{ z25oYpfug13Cia1J@-Z65h3jc}ab5+&BJz=XB;a+F-Mitk6mXSqBBup_7G?9&ZJq0WaRCT z!7b0K6P?I34z~kX&GG9C%8A9+-tT%1Jx`Es)|k-5-K$RON_!u>Qzb{B96h0Dfe#L_ zX###Ei<&(m(ZFsKRv;%?&&J5@C;LF_mi$$D-o9P-mz7lgAVR<%jo99OZ7^+nYQhI+ z<3rncMCqRA_DA(SKK7G+X5f4@5*7~I|8$HdM*wfDh?9H3JmZ(>5c2rG*l@EajrJ0Z zitMH_6HoTRn}xbJT#F8*s3V`5B`6RzBLd(ng!z=oiN*rvAO5ri)Zsz5vt4BM}O zyT*fuNyRaePWB|XjeKo(-uH2kAWF4!dY-g4D2(N@wNE(1k)h9k}rGdep0fvB-Gw!Tag9wPqi{!bEV%o`jGJC#I6~vk!@WK?mG&P=>o^z7$-*G}6}Ul8zDW*y5@roPEzP?b1zdm=oNX;{ceiVZ>d zN5-4se|0TQEj>l%JEOp2MK2D*+6pDz$F;f}`=0@)uNdK8Pmz+w42|ywl_^X&L&98% z@Qom)#F#2oITR(&3SX_e{RiE!2DMIJa!X;4c`1{YD(# z6LW%0bbl>5LqRXlOZK5~jR&QrCSGMd(+x|sZ=wleA1i1~iZ_;Rs4h??HR2qrlGHR9 zzzTL9P^FF^ETFk6uP5ozK~!tU{^(my8gSW?$Fh;E_}xUXI2ob=a#GsqP5eMprKs|R zK=v|r6mrUPnyUgwN}`>F8#}lb)(1h5Drc%kGH0Q=&2k2E&PDMx1oy_@&F9 z78gA;cJztQfJE3_9`=c`2c_Le1ubG1XYuIOk*vVTdrSw0r&N-qJ!PVg_cW^4fDQAm znA~eA6H}Etdz!vf5ceHhPr0A%tRzljdZTMD9^UHvW}zaP1Ps~h4}e7i;R z9uE%JHW#WH+)d$>Pcpq=t; zMUiR#=fP__f=zTgafCo}>R~_7Awr6-^tlTua86`)fG?<=#%IP+f~g}Bhi;w!nz-l( zQ|HH~Quro9-bYW5$Bb9j>?n&yB3wCiS>~9y%LFxeqGzdV$qX#S0Vf7e1~i}Rby2sE zPJE!BU4Ps66WLynajPN~qgJe*p@P0~J6Dssw# z<6y`$-;YXzU?C8d7YCMdp_?G#p~N@og3}vUs#V@>WyP~$yNcC~P7BmaAc}b0X3Db}7X<+QYZ) z$n(?CawfJCFyJc`=a!5`EB2kE}yu>3BR`Knwx(tMXrs$K}CO z8^r|K-g1$ML*1bB9sXPe-WMAg&V!k$ILpge#wq16wcWG$)$y#3ci+~fj%ru%DkF}7 z684Y8Ss|f%A@m)hT-z6DJ3_cNfOx{l1!$>YM@AA3L@~MfKDAT;%~@}_Z$FJ$<1)c} zZaJlqHBDWGrHm{MR$_Afq563iha$O%*rI5;ch2_76@`ks$8Gc!7_*V}>!O8igAc~5 z-wl66DPIa}{5;H+!}Clhhj1x%WO!ht>#m)c@2UEw`{mA#^Lj?*?dXGF;;Yi_`O+NP zzclQ=qhIF4CGs`?-pL{DuY%@Z3!J`ocz?w;o;tBP{niK|3MWRmy z?-eR~RbP=j6FB%$;@o`bmdoY5vc7QX3=WdPMrvAT9q!n7b*oH;3MTAFW=x{BgsyMm@rpvvgi9kt8JTf>ne6z^bU236KwXF|%T&iRPb z26@|isfxyT`-pK%eeZ2ZyXMwmw=xp!Z%>8aU8`QP0l(*4#lw*#K{e^4awBN{*K`|@ z^@$IWLBXlCk#xVA$fnmf%Gc)FNz-X0`s<{C3&hnU+21gI7v{iRHiw+}&P!`53S=~Jn$~=cVh>rxYMPW4+!V_ZO;im! zo->2vowzk;B)vKwW%m91)PeQOb{4R$N>|flxus+GX~!;{#eN-AE^OGce6!#o+v(Kd zvj$OTBvUth8sbihq?CghHZOkgtIcE-YSOv4h&06e;JO)@vzBsxn3DDgA=R)SU(#j! zXyd(Y(Gl|=eVYV9;QK}Sfjq6F!+#S519?H?CT@+cL;VUW53W0l{`}b$QZznJ8c zlp&JdlMdb!!#?%%XS&BCkV(hP!iROFwj|t8qU91*bA=T!cWlD@`UGL_$us$Wwk03t zfIwhjA}IZS?uvf@=h^2Qux9+etA0{HC7oAOY&-FfvC>)R;klX-t%5yTy_|(~`D;IE zJ%kdbgZ)mvw#OaH>o#4zdf~W5UT8l90^XJO(!pNAv6aq1tv3wcBPjTIqxR>nn)mAY zyTib0FFWuLwi~m&Q3rE{7<41g!D4>imlq&Z53Qgp&!QZxcFUg&Zlgau{ciuQw{9Ob zH{|Zg)yPd{5Wns)w-@bg$h8#BmaD(JUBP9TfqL0s@M3!xl-;P8w3z>6KP$o z`7(63YR!#NS9_h_zU(6&H`lDP&l?}nO83jx>3_nod4uQUZB7+TGpDGzcpS=inc%}k z{@7t_T;wZMVU+((&{lL()JkLD(Y0)I)kL_1kHVtP>?1;``D2DtM6mgwRE0~{1$~kl zy&L~Bk7Qwztz&}aeX)D1YEHYAzUG}E{_pAfFKia=6tZn-B-M!h`eCF_l^h<)-rQVoN;KQ0NlqP zn9_vMj1x_FMmMN(;}+FGNJRyfcN%KnRgoTLhCVR#l30MdCxvEl1-QP-Y~A%b_PoSg z{rptH)zk9dVw?7UDze#XJj4zh)T`(?U!_)Ll)39q8l&{`;b5j_ znfLlUKH?^gbf{k`*H&lAY~OCPA&L#NvQf?_)vtWEM0LDQ=8XQL?7QZx4)YB%$x8Vn zj*hzh^FPmYidrh=+mic8BlmPleLAje zHr3CYQDOG^GoPf~Em0xi$3@D$J*whmB}P-V0;=Xd^w>2obD;@gbuqKhgF>>RZDDHa z%~#T(p&4SYXEIKM-fEb;%h+Wx?ixt(N_I!)TBK@Xz6qPkJ{s)P87xi-Of}si8|u9C z)Ms8PR4}u5FjX_FnBVVXm)QIWY?s(>-rx_A1gYXFZG2_^VdC7Dq?a(+!J<1nhdP+K z6%syLI@+nu=B1gb4R;8w#`j6w4`pxV+?9V_Yn>LkxTSVE0e@fCG9Xe;tjYbd!okYS zK-T1z;y5|=n&OlQHCg7k1bo}clDpw`**+#Qiu#kvd!?_H%6++@Xt-4QDAre*v2KPS zCf!MEZphXj?{hO2tg_c1HIf6*bmyy3EjWWM=p>hO7IpUXOJm2Sz@#}^38+tu3MTfF`JxJclO{2e3`B>fGF zLVz|vYQT6uhys}gB?3P&7~a1k7gY^)yq1>E|1EMk_$zWb;_B-DyL0(Fa`|1jc>JSq zk@PZ>_A=7-vi-jlE(HI*zY7mWFZ{D}$<57=IiK{e$R#f;v+&}7j9h#!ZALCY;Zjsu4HPa#W&akr z)c=1*E~Pg%Aq=2!slC|&L@w1$^>HnifXL-WOAjy$QvW-0x&0p^mzb?Y|F*82{{CN*>+>P>lOSFCGjJ{coMi=>PA|#_^Ytu_>UxCPF^yeQ7ae`lDb(Jb3%$w8Q0B0h9xi!=Kb$=-s_5W4D@UVWD;o5qde!^<}bVQJDS8&in*@(PrfP(QDh+GI#JEHz5 z7-avYzZ8s7hQ~h@jAEVtqF`kFRxmDC#{2)ff^p{irh;+o^NhpQ-A1qerC@~rn}YG` z9}0%~KNXDSzZHz79P>X4#%GDgwz_wjrVlmWGfQps@BL2-#?*gMFg`bQ{Rag@I3q2e zRCgaxF!u0j{#G#j|0o#ve5JTe1w%HOh`JFLC$~N_{71n^1DRAB)quJX`Ah#&Fv{NW z@rsZ(N{Q7V;IN2E@#2{tzb};!m&7}9M^~mpkQ!VX%Kmr zUkXNKCMVb+;Ba0~O zBVlUsmxAGgzC4A?La^_G7BBr%!C+=5=-dr_lqi?vOQY*_jF|9BYGeWm#@(3N47rjK zK*1>C018GUhgi9(V3_N7015`>Ukb)dF^|~@ZR-h{yPvD%^eB+PwaMzIQCu6fM#4v~??YgoIG5IZK$8!>WOYY&R3@nj!t<20#f zU)xm%snrp>J)2i)2v4_6m0>w4-BD4fj3U+-3*Q`3kPQ2ra);`5-x<=Y6`W-2Ya<)N zA~3h~TBL>82nbJ-EYjKh^6P_Mk}G`{`}*H!P%vdU#J?gJ{#(p&v$tunsb$9-W%|?2 z{4?_g$`p3>TiOhlO4kl$Z&9_pm%3b*v-Os@Tx{Gu=Vl;sQG3gO*z!K(LS3#vlDzWK zr28H!Q@OXp85*jV>097Sd3|Nbtqw`OJ~D!N56zHg^L7vTJ8r;+) zufm_ae@bTSn39Fznz2N-6qJ7-*ST5@TL2`-Edmqm6AvMyFV^h^4YMhr5H=bb?(I`k z;X9F9HB{!jc+pVSM{jC~&(*yHzLR9kZPPKLpz{WOrov3)!e`#tAH7%M{ag?@Bo%^} z1!Hg>P%zS!wS(LgTSvLAF(U3O?*ZkSg4m<`@bHX^#p( zXStpqG!Dqcg1|!4d=PgP9vH&{C4~WZEC$`aRdZZoe(tXA>;d?XkMn20N4u-zjN!6` z&Mhj^nA72LzZ8sRe+8XQ1w%%5MUCMlypnlyZdT60L&AIO05kGL4V$M(`!+ zv)SS|%VUP-19m%0lfKIx+5J9Zqv;?}2wk%|y0Ly9g&(1c$583%;rv zU-kyUr&8ty{KOD0Fa<1^x|+2?5Gd;W2mLA|R+iqby1uu3$6+n?AC(W-3pCVFssL9F<@HUi}7MTak?6ZBUAg8zdCPj+i ziLzYiL^*}fBv)Bu?wqdF&O?(5FDXzeHt~|WLBP@a?{6woZ(b1a$~exR6rbQEXw%-H ztd@;2hIp!15a;9ZtGf3UH#o*B5?KT&>E3#2rdzZBPnX?-^I}uw$=;8cXSxPTv=Kq_55!t;`q;%9m4}Bz9UYYB? z)bwi4mg@Dm<^bxLJ=vJ=VJx;RJIsK2UVn>i&t*Hf<@@g>bD3abSk2?SG4};9isZ0X zetl8A@<5yL_L?4Bh4)h9kv%*<_LI8%JjZNBAuti+;T*H^)G5%JUDvn&Ks%Q1y7Opi zBWI^8FKN(&(|0*km`VAfAV=l$^t)TWqc;}syKV8y{OvtK(PewC9kO0w^PIs(ynlXp zZ^xO9JFta!-eUE(qgTS$63v=+%1uNl?7eY%{8V(&0dLC?h#f2BnS~u+-dTQ8gD0Hm zJtdZ#c?%0d!Uc}`y1Qb-3QZU)0gD z$asPr4<}JBB}aJ$kI@5pi}%GJWW(&)P|*d12pHoc%Pmh<`sjl_0`M0bU<}}2gyhk~ z@=P5?C7c+E>ujC_OvsO?i3bNyyWwG$AV@q58vythV9e>i{R=@pz`sZX{0kWq2PRy# z7Hy1$-3(J(+lMU)gEma?MT9`fgFH(_#A&wDj!d{QQFQ>1Kkj!b$0dn+GAW>pbfv^$ z9*dA!I8iclraTYJc}#3%@r2{_JFu|lAs9jjX4|r1IF=7fM$4SSl#@}PnMw?zYEqLX zG+Wz(lORGyLA%v%%Ai&V;2su_JeJQ_R4qS*=Xi)hc179=mqd?=w2Bgk?@Z*V^AVRT zu<6KTgu}1A1)Bs7#fWqu(8OPL%Lb6Q4DxWva%bT*(oGP?A-WMn>@p2$BY4GKW&ip_2?lY>%HDCCD5<)5^H0cl^M7p6PAci7@ zYEV?9NmWo#z(Nrvg+Qo=fK*YMNGBjDO$oh-N>c$FASzfWVnIdt2i-HXXZD_RX3lw@ zv!1p7=l#7_vey0LO0Mhr{yvgnjT#bH;V+!s^5U3ROPNqk;gZkG^hDk+vSs5{w{Z#= z4uN61S-3=@5q~8xqBw;MhrpQ5pumwF0;BaOfnl#4KfZcV?IU%kR>u2K{+g-yu8SGO zeDLcmRHc)B*jJUp{7nL5`4@p9&uc)US2H&W4A?IM0}c06xNyUoj}`%*L|>TU;@Mx8 zni-$1H0vmvO)xHUypm1s)y=uO{VxQ@NuEhF@u`h6m8$%7`p71M;j8nLz)0OBFf!&Z z-fJ@T+AfIRzL~dN&dMmx%9D}X%v;u=N|Fb!Na_UTD(6M*&B!m~-ssPebExjZk@w*kD^gKGvpqSAwmL#ExecNO@KU-zug{|7s`I zUdrX_{z?A$d?3-rF4KbF{moUndBjtH!j@vk)gf+)-~_qT*TQqIMK)iHn*2-TB2mgU z%sY9lB=G3&xMI_18}&SVMA#P`{{pTo-K8w!4d44;k;`P+HF-4c-WN50tJjcvo!7Tbe5>BFi8~W$+3X@@x&?+3KpvOWz0d z6IV+X5j8*~R(gUHZv~70doB7{xqxet(08q^22#%>%~DlZNXfEF0Akx6#6mEC=C{Dy zjSNTW7S`}&g|tywszlvq!@4~#b;f(`I+kkycj_)i@(+80!}EDsi9D77aOzRk3W_fj z&*hKeTL&PzQDr+@YMBXq+P2r>6^@7sM~LJNzn1b;2CojX9`zWFv8}&Ns|$`aPd!?B z@eTiV7W6tERT&J3o8p&z%clc?4Wr;9Q+%OpM6*hDvr5@8V9yGQcOkz5D#>zlRhhua z9!_jJw~P0TCcooSLug{PnPl9V#~LFz*}=$K*$3qkZ*Rr{nkrPv&IYrx&mx>TVGDzo z^p@Wb09GRY3|sOWQWGF}Pw>UurhF2&9}(Cx#h--dvLrT=@DNKpC-U%u>EO9ojMgF4 z&9bvq-72+Jk2Nv{T4L(W&$_l;4{nK7^^e2fsCdIqBEfSwRSO%LN`kDjkUBViB{p&$ z&y{G)=2R^@zp54@j|h&x6~#9e-0n|o44i7vnc^ED0_RDP*SWW6n{S_fd|T?&l`W}t zN;+-uxBRW1Z5Jb9=gz`tt|}GH&{i}wDwN-n!5hkMI7{R?%c)veT}+jB2B&Jl^R{xT z77}P>s`FRXvW>M_wLC>b2S~S-?5b3Z>($oOPx;p_Cz@+Lx!H<_y*$=r&|0yM;uT@= zuA}%OqPpT(&@ibE=louOA`gYwI6-P2-%y3FGkBFqz0<+`N({bGRAU+daeb*}frVTk zL44eL9!B;&$>~|$SG$^h^SE7$_TbN?1;sZ_;yW_-G?gk?^WWE zC8YkaI%o?EnZ-sveRsDVac`zoqvlQzM=@cOig}iM(p}oW48q>GLi0QuWh9Y88|Q{9 zal<-0ka|0Y^*KokYS@SuG0aI?P<$}=(d+opS`_jc4rz54xfV6rI&@v;?sYSx0lD{9 z7-@pMz`d*b=E&L-{NCEkhgX*(1m=&HF%fqHlO6ZxCUb@G&olV+R0RTEAIP42;F0&> zTw%7X*FA}!Vaq0X0^&LRGi+flU8rdk>|#SR(D1~7*fW~ulyl=uVyvnu?_uZLY}UlY zURCJn9a~Z#9)17N$hF4E_CdIP4f^h*Ya`Xs$pg|r{KXO2JTaZkhCgLP0ejNv#M_Pb z8tZIGQ|*pjdsRiaRetkNK(G-!e-Q{dM?n;F_>++o|Bd8(GPfpcez0oQALq<;2zx!2 zspS+hS;_KJTnMM2|`TfGaMp##?`S4Li`!Qh7SE(KjJ5%JQ2s0c{d@H zJ$DA9qLdYvM#u8;5p7wkJwW&25WIfD1spaOYOj8qPP#WI^K6bGGmrL|PFD=Px=`rY%gr$IYN0%#+OI77Ph{neYtscq0}O36`pQ^LEdy z{i%wVW9wV5M?Us6u|6Aw8biJ1ZTD6%J?smOdUbxmvuOd7%D2IFlqb%nG;DEo9qW-Y z^Ja(O*w3(KY2kSbd*@o(Fxb%qbwWAvB3~5)UIJ*T$bw%&PfMg8zjkDC)MV*IT_sxJ zjkFis3dMa205QcGRBzC^9EUzQ0w4w(W<)r|YUsl@_AJ;j88o_bd{wrV0P$q#&n#dz zJZymX=dm?-l{SG(OCZVnkTJ$i@fBH8CZBQBr?q=(q&U=?!)Dd8Nv^PBZ_k;O#f+SC zI-@G}$!*WlwaUflEIJba`Q@(skXU5$Tcz`V%4k!3FY_Us zUoaU3Zegc!_K@hiQC%qR)%VKJO;9U%$nisLQ}%Lp_r()eY#Q!rUvGQauv=>Dv85n4 z!TAlwPkV)h?5Pjjv{&+z0)wH(HR<5?MU=_%roBSqLPraf#Gy{ZKQ?x(P)AVT_)+U% zKB+8gLDLwxh=zrdwWK*+K+$H+Qp2P5>=*3u+412QRt&jaDVT#Jv)1WC>LqSsHBW7` z-fQ&uz(Ztk_&^Ft^XkxklsCAcooRXhiXPrHMa~XtDcs>>l_CFx#^pE=&M!A<27X7^ ziCMOxCp=03HjzcSLFUKqfSjX8N<1zhl1lV~mQ$=pV;{=8Qgp7i??Bk0pC0GRZs+c- zJlvlks%^qiFh2MVX6qg)iT`?e$54Uk32au%-D=DIolKx`>XXz8a=WkD#@s~~+s9y) zHP|eYT5s2TMo4(qktxm4sLiBBSw_snpx%#ycO4PH1!QGTos8iZlUlckAIX3Sa7|jx zNolIFF4E?p+7XX5tZ&BUlh~vto7Z{)boow#0syJAga->bG0?ZwTDD#ZlTXK)h0l7$ z;qUgz`N%{Yz-RQFJ+ct;CQ0T>$(AU}OIQ_n1Pe1XG%veJJ2U+v%d*m!NJbk5 zdO4)~VCiv}BKm+YN(I5*+tQx)5f;Uq_&&sCE3Bn1v}x65^sc@vv-V#a%$ zx>l^hT$TWL;fs_Q6i`8$03`!Aez)A?s*oa$~0x_B~`BJ61;ed%<#y4LCgT4tQ8;y-A$vWoY=btHB7;f5k%ow16aBfzXOV*JwyVa>sIBw6p#=d(nXFuI{ zDp}$3w9WRb&Dz)95J$FYKK)%xJF%q)J&@_Zn*r z%k2Ehm37hjrK&)e%@NDJIa2ZC*zX%5@e<<#NoZUTxfuwvMb9WNGb|KPUS^@{N7QFK z#Br-butIxVhfDqz3Z(^#c#CDtyO*#5`4hWIkg;9ojNzX>Qtxibu}8W%Qy}B}^FQR% z_$U3jg91bFhD-i3VFVs@7BGp*P_SGNr@HMa=D`ngp{~vHnsO&(N8ffT(bkP`tt%s_ z$D|5EM`AC!)FK^q%!IT3ckLGURrF+o#LNtPE*Qx1y7HI_Uz)NoR12|885YKCJ~(;+ zIw1<}51|>@n<2;8dkw|>t`<5w7&Z?lkFN$7Cj)vkGEVXeeLW&t-*01lFJAn7q^_cy zNTAnax+pY6kk5ipYG(eGYopS;MDheH1{1oAFG7$irCj%_JP~X zE*XQK@;+sbXq)O?efG6v{_BbPHm<{>y3WT09d5K|9C7s*#G#X3f6HW_LIgKsqo$2S zv{D|WlTRPa+KUpF?~qB4#pL*)tYPrZb^2n0yIuB7Y=gLTPk<7Q?U7?CC~$V#_7G*S zq-{2aR35mTn4H9X5xMb7=G9ckIqA1k9v?+1vr(SL_*_vi$lSx3^{ zK#{fk-C$9k53U*9i{f5%n|P&vWKzMv68@Qy3gW+xYtxuIaqMdpdw;2R!$Cd1_G(3h zzID3ZRhLQ4qxR6wkGqQRb=8-gQx^z$vN!52$xL2Eyl1KX^H}$bRHb!o|7eWH5i?NQ z8Q(8bp6O^IlabhZZh2lW_vVf^Y?zH*Y4-W07XsUzOGOK&s2a}W71#78JNxD>)W3H= zu+`-OI_ zBoms{Xj80hYSRbbuHNtQxb?}yy&se;P)F6Br;!pQmY3os(F>?DmSg6(n)|oJw`;Zc z`yC5Lb_^|L+l+VnZfhx_(T|_U6gHo!@94h8xkEjAYvIKCNED@c)s=DgQ-7;2g zd0W7I^g!c>vYL&iF5RMtd(SgyZfH~V(Hj0}v6;%IBdZG$i%UoA)@4Qsv>X4#r5l#MgV(YO7EKDe2HYmDU)1DJg9Q}yaXp{iNgw+)LVlD zogt(F`bmF~G!caKy$uYx%@ft0+DG@owXM7WO{B#IbX-1{#U;jS6!~cKlxmu*%?7v2 z>=-v%C;)9~rU(UdaUM8k1JuX@iSXb$DP`z!Xr3sv>#egR?9pVYo(MMQ%xz)DpWhC{{DqKrr zj;dj&DA*~$kWew95{O}2*~EZsD=la8ljW}S&Kkrj&c`mHsah&I6AY1!xvUG}Y#eaU`;ohuTVz?_oYd$PrJBrY_@=i*JYaf~1)mvB4 zLto0K89>~@kYIBO&YX?-kKJSvAB&EFM)K9?bNLBeWddhQP+jfw3pFTMsiX&`R zElxgGQl-+)N=5m&+UmgDHBr~?2GWxH;`EekgS-2L&e zDKv~qwtF3X<5@g~X^7AQaLM(@gy@K{7_r0c;*O15U5T2ykq&d0ww1RCCF3@e7NQSM zvejHPP;~f3oNGAfjOy->I=R+5eIj#!eLg4?M$G4I=&%fac_V;EE?24QQwCsDpG@?5u?XrvH3*FZYvEUS!gMSr@?ON zBew>6_ZAgNOy51)fT+SgVHTI!Mt|UlNSecG&A2!9)rbe2o`s}=Zm$-&brKzenrpi5 zXtw2zk&H9>_&|cX->|OVD3a=UI(`TP&_y{ZX^fL+grH#pw<3w$SXLFHyG`rIW!|}x zJ}zSgpFO*han%uV+eu?;eGW!GAdxAuJ#nYTU075&wKuX;5l6Qe zKR_yUpB{#}G+TMNb7B^X5M!S$jc9j^wv9k`=WeHYgBFKLn#4B8TkI{m`@iN`@$zy9 zzT9`iRSARJj9H}J8Rwnj99Q@B)D6F#w31-}w4~?}{v40QR?p5URGm}E-SYLP@O3^q z?T&H&L^grNo@1D7_yxsUc!C0h^gUia!~i&q11&~uA6bMQqU*e9_R#hd^dy}skkv(a zFz&&LP&hG*bL@G#0y#@Pm=m)w$h6b@_6=sjR>?>F<4Jy|!`c&HwH~EE;Di*wMqlUc zc|*bmz#Mx>h`|^QwWIna=E&4RNdnn9=3tP0kLnZ|wn|M^q(}56G$?j4_qn9qf*x4~ z36N}0cbCZ%fFdM{35@1Tg3co2lg8u1vSJSqz}hUJIGWP1_fgImK-6HEanYDZdtcN0 za`iO{zo#)mS->lUt~VZoG_r`5_KRftH|cTjm!7W@ZmUE>?U%^HN}wrqFW-;-!X+NpUjq5qq@8`+Q|MkyMP~`U zO0RuIVKAC14yf|UOI2ffS2IY~f7)ya!ywL(0kL)jYN8EwKfZ9I#LzmGbSXtCk#(uK zG03~Bqe-6vb;+XM_oJvYM$xyua`Yg{+PY8W}k@>(`^{E4&Gth|5eI{I#zm7Z4t71}_uN20= zbr@1qDb~q&No9b!^OI+BqOP-Ct_Be86r@b#R^RQH^~W`=@%*Y4`g#Gh3IRF?w|kK) zaxf)1Vb7Mpb%NZoYVdg;`)9NMkuT;ocO9DJk|hEq4W2jZ_+3hHQDuRY{3&7vKvXc- z9{dcGUaWOCUrP?^Hfw`E$S0(_T_-hB5P*z>i*AJG)C)FJ2?}w@Z%9vnk~IjSP; zvEZCgWT81=^yitEdoJDrsM{n$j|#y0FfgCPd;oRwbNoOXW4lFZ>9z5r zeqLM1=-+x4+Pu&UbevV^kM18`3QVO~8RU?WUM^D8yN#MkW+G+uXE`yg2&*YUT z>z~8yJ;mu+xD*Y5LiscDQx8`z9udA5csvMnpRZHefXqJy5S%0HDuKPkpjAOHob?8- z7D|Vj!CYZ!V+lfX(>9@ufc}2LjT#gzWFV%_Vas8En%lgjy;qw1nN-Epx8VfNia>8U zPU{U2@IHKHCY&z^_3rABR%ljzuc>_B(0n(flztK$;mm=WVsr^0Sp!a@<|;xzAvq5G zR~H)$XVM#NAdo}%4BU5N;p~!$%3W#$Z8#)zv|DuC88;*IKBoZ zDtU;R3*p-HiGEV%#6HB0^O1~D=U7i?ntf>up2el_OvTMnG@QBg=cp#D)LpAFF3ynS z=&K;j;0bIZMMG%At?Ly-iax5P_-eJUp)tV=f_!K!!(v=&XT)CYr=EI3(+9-#2lNIU z=gv_wJT38}!o-KHl%lDfQ*N5**T2Qj44fCBv5XB3h}^TzmHhpdkS0IRsFvnvsFgL- zFW6|M>#~>a1*6lkt>F1nWEH-FswBDHr>$qY)O4I)x(B&r7Vq0;J&A#bM(XB;3W6jW+< z$a51?v6|rj{n!S~Q~oJhOy~KocdOF%t8baYX`e_s3q#4r7r$&!&O{$5x_hfI9Dq#X z;is}_%^46RA)Mt|cxiiynsWAW)yCk_8%3zZs|3emCYLqkF2~%Ay(sg7vGJLC0n1-q zsHKvs=$O*h53V3MmL(zQ3@8cTQY#$!O^AGrJwUnTo;FX1@hPg^oSr=pQkNM^Fqu8K z^RwrnZ~d3}i{KZ0NC1t4%m5QmJ>g{iw(ZB0R(+o(QsNWoqG$QGmNyFD?fbCnp2l-c?0JxsjhS1uP$vW9G!-UE43qSf66oziRM$yNH zW6h|^#jnFQ2BQ`4*2q%~BZ`L+q4<%7hX`0CI@A0-@5q^uIQr4H4x8uantt^B7`m2$ zQ{aj?-?%SuJ{q%}rtJM%=>1|^x6*^T#r4jS&tD~@$xFLzhhC8h&@0wwY2n!yvfjTE zt*5gZ>WMyfV0!pEL{QCtDZl;1>`ZsdYt%m~7<0=CeGGXkrdq%UOjr2ioOHckg@|-e z;RxW^)haaSXh$M~^+0g2eSbD41Mpe%nE+W}^qo9GJ)u`Y-(1CaZb@dK(&c98`!}Cd ztpi5ZG}Vq}$c@(@Z7BB*Am%7pWTPfVUNNN{47n~I6kB~o$3(NA!AwFoW}S_tP)VVN zOvobJjt7%!o(@UfX<@axY8wYb*&8~R@Qv}nO6zs3Vtcqwfwkog13ogjiVlw9ZBv#9 zKwLfkSVP}e@sZNpT7Bi5f0989Yui80dGrSu9XnU>@!cf0&MlS5xMM8^Uk1)iXW$^_{C0jaq;jy%>t44^sCoP z?SBm4j!E5BF0$M3;lU%Aw1CrL3?*iLsGV;yFF47AiySg|IGeN~7q1ls*h^7NP9L&Y zB`?=X$baS)<|ocdX)>JF$4cxa*8RECwPJWJVjT&o7vbnFgd$$PsH9z1ds%2EA93Be z!&<@q>u8~#z-<)28Ce^xCKr53!V45se2opE0kc*SOC%i^=f)oG3wq41w0H~? zJz{eZ<{BkX#T{TCSAB-h52d+faG%-UOC+y5UhLV8uYTB*uTClPRV@Jt_1YzSLAIw_|LD1BTjYb8hE zg-f+~!=iQPH{C%kKh9V#uNedySJt^my9B@e@yZ6KYsb)$6&2=Jc`kPZ>3(L9`0lQ~ z4Krzaq3@5TdxC*fLVmWY$B<^$HjQn#@CHhs^T5>AWSx%$>Z;R-oiVZG1~G!iH+x~E zd~&})tN!AxLxbfNTHT`wN`=1ONb@(V>o;r!tUu%prf=K!lx^w|z2mdpz+IyL4Dbc> zUH_2_!7IwrC%>!??Ym;~{k_r6TQ)ZsE4OUvFE`$wFMs)B=j^xd-#4PIop)`ShARs7 zR)_&|i`&4K*P?l%&|p>2&gKFKwQ!^}xZygRr@WgiwdM&KCF_H4$IFR-I2<4?JC@-E}PBbsXVDE~vAQZF|jxu@OU(g3Q9!RJ{>klC8v^i;u>48E1L*1_&yo7`i=PXjOJ-9A;g5WxUle zV4N?uQaf*9GjfT)cWOw8o-K99z}hV3#GJ;J^|fmT^O_f?fI67(?~ZInE+|BLKJsOs zY39mM{GPFMrbm_dR8>;xmX1X-Ka>_BIgSj8m?F#$W#=UFNE$soSyi22@p^bTb3_=^ z^DpEq|F4)WJ^`Ws!)D9L2+IFev*l;bvdOmmL(cN=vMr&73I79Z3&(6}{d2Qr;J<0M zJoq!S<;Kkank}xh*u09pTU{DluZ1c$|F7BdGSg}g_e-PdQ-5l<6k*f<)NCpIX|_D! zm@Tsi!Sq$1#NW&oLqU$&(kKX%{hQem^>=2=olUbvNtR=_3~|hsPLA1<@)xru$0&k|DD-_|AX0*{#Uc5Xwz&-{|B>WY13?3n&y}- zn8H6ZTkO$`T^zF|?;p*UwBO8@sNb6{4Zky6;y2BfoZrkAsH|AyFSCWD0Q3K8wy^(d zws@HBMZW<5&TOgsJF{i#uV%}o-^`ZyO|vDv7&xlLh52Q+SfDv(3tkOw@Q-GTgM0+| znBCu*E$P3REm6d}(m$9jM6FG;#qe)ti?-~anJo(c%xszaWw!YL(QL{1U$f<3FGe19J6K1zi74$#b7~Ge`dBwP5-IcLW0{ln+aF`-fSWK&1`Y{CuWP=e`dCAz#P82o0og#5kPa^~MOTiX9^vjzYE7qbQZ zADAsyN-h3iw$%U8Yyl?x=VlA5gR?dBcV>&p|5>wzkNBUOElR<iAbQw&4HHY)Sej zW((tAGh3$qyJkz)f6r`T{F&L3&Va@L>t+ilYFS1e)c!Zk7Sb=Xg#qPCgn~HlT3rTQPtmV!T+E$IKqY{~s+W(xrRKWDb&|2NGR0PO#^*%J5vl-bgZ zDBzea75}=~LW2IO*;4S&%$C#t)NDD6LxO7&P||N^3mwOs`qONw095|h&6dPXv*j$u zY)RZSTMB-fEu6IFPs|p{znU#WKg|}&-^`Xcj@g3xkIa_1SlBViigk_xfokTGgWf{H z{ipbw(SI{rc;4~n{WM$X|24BE0Tz?^(`;$pG+UxMb<0n)&4w{bshD<(Mrb z7#@WHr~Wiseg-beQ~YFH`{g0{IvN^Ag3#5Vqo}ruOO;iF$u(<=t8eSCx0*Lx>a9f~ zvQhAFNib&y+%2)}I*z9R4b8^$d}&48LLtFBc&?)m*N28+RYR#m$m=WwQxZ{t>K0aq zrm_&w9mrDLK%^k7IUkufgnZL_uXpm^;-E&O>Yccc+HLG&z75CwF}6J5r?79W(93`> zz%9ge{BQ+eOhkH2gk!cyBWtIAnk~Wbf}du~F82p^c|&&g^(s3m)t-(#r*sMzbc#<` zl8%@or%O#cYcJ`Qe2frSldLPeb0_qcBX8m%i4gud65ka)0socZBr4@NkfFqN*lOR4_b!DC=m}7QIvBN%ru7M#0hi*oE)N{98M2 z6cQ(V1Wwr3ow9!ChZ3zB^4V7i4$4}h`&GNsT z;SbE0eCnffgW^~K+7V4baHngKS?FRx2RQuTvqgoG*8OG&lA<6l4k9mpX^NOl7 z=j|UQH6N~)dKKDHD_`)qTxZmDPn2%9`K7ypZJr92%Sq|PD{bspuov&0y4j*FLTzj@ z8_quSkhEvsv03T*Y@6~6j`N(HWq@P0Tz;2%?`2iaOMwk6j@o;Nm3-U<`J;^R^| z!SJ{rhl{4H+BGZM9d^ys*F8*mPhnQ{7PSRCM~vd%@-8RKkq`SHh){ z8BHBIUfLD;{oZ1z)~n_>ix@B7JUk=^(5WkqY@XV=zISBYZ+X4*0G!NMoewW%v_J}! z@`%$+SO|B`qG!rds9+U(_`P@t+;RiWeVV~-iZ`gGbL}C4_n^7GmR7VZE_#u`#{684 z4ybVhoW-`ducnEGUtUtzYgp%`E)TKZt`{hCoc2_KTj|!2-Od=p8%) zu)rmHItr3xitW-?Hb$Jx*==Dul#r+2bRSG~EoZmECrc7gC&;4w}mqev~;6*f3L9B~8RX|f_%p!o3vw)Q~ zc{n+X)rl9+ZncCh&e~>a`u){xdF9lkJ>7EJlveHf_1;#?h!#*SoXNe<%+)kjd~l2E zq;d2Fh<(}mTO_rN?A&RD07>b^+zc?q#OoTko7W;Hhgc`zqKydBiqb;$G!#dSt zt9Sfw1TH4+x|8wf(4nUF!tT3 z=Zyi&Ooe*r^Hli95Gl@KXQzKC?0_1dNu{-3prn0T?JUGiV1Qiw?(Huah1w1R}xR2MqeXq&}c`|z6ZsZFz`K7Zpfq2+a! zWOMMxVGTCw1@^iDc;vKo*A^iucvl}cFL!#E`HPET9+4*|-(Js1shx(O|9-9zu80YLspDf(>L{Z{ zR6DW#KycQZd<(X!znE0Vhd9aJdv)WoK9un@Qd;8#-G@@h1Z-*meOBQSwWl3j=r4ia znktbx6q8FAy!6&vD2e%o>9AIy(4xZ>?^eKER?*&m{Nu6lDZRFlb6yOok6u& z7$wJ!YHIqtDlD+>j^1Nm*6HSJvgaCtzXz!o61}P9-6z4Zwx?=?*tj2G%bj8hBlczb zd#B1Lx7Nu~lia?-6WY!^{*_hf)#u~lEuJj&kF zJux~Xo=TsEQyKExZ8{7O%=x=TFvy_qvR^1pw4(Dwqyl_IIE3;{`9!3l znpJQhn)<$&Gu~sW>tqh6Y*A`&icL>CxzAkKw8yb7mZtGn!y3|splR@!vfwWWm6eNc|#Z8BXO({GAR4b`o zf$TX2Av1M}ZN};9dOc>sb;Ly1S#JWisPwEG6+U}XQYby2ysPq+bX2}PQgnRRdq07c zlf^}n_9yvIo|=aHJ~0zE^Ncer*GwQ^%9Mgf5G)3e4ifTl;-3k()j4;2d&z$?s z#Rb!HXE8yAj>#h*xnv{JAlV`omt3WJ;thi9QH_ayme)2StJqI{C$(^7&PO&uNfDFF zqKeXs%vPq{Qp`A)d{eko=NNHVwY1VZ0LSe&)Y7qK8xi(_m%%;-@1WSDY%A^9d@-RJ zOSDERowa&jAU=4yxvn$wH1~Vas9=lH`Ulq>3_1ixmG+{m!_yBOPSblR>~G4e(qa0{ zH;A=*nD_Y&n!1!J*Xd)7s1F@+fsGV{8{uf_6wC!9Uo7g*D$S~=T_L*F6sK!riJldp z?{`?q7m}Z|3yR!(Y4&X{<4K3Os%Al8OutC87)`;l0Db`c06h#F-R8ZVh!r=t&ZEbw z!!#2dPJyH|{T2Fy4T%Rk-d6a~{Csp`dc{9D!8M3n#CeiPR*JmQ+!REg;$x9+I3wEJ zm!j)ik9J2Lkz4e99RRXjbt%I@IFhI2z@b7rZ-yA7%ymeYI9rn;*VS7@@ z*xbp<4|Mfs@d=n)?b_-2V8b7&J8iM)wfc_l0)rCA&%P@{X`_p_0Jcz$5R^(^EF~Sr z#xdjs!I|J%%M`6s;$u>uZ|Ic0KULMTqt|4=h>_wIaor)r^k;k8$Sn=Ka#xR!5ARf7 z_{1GH{m@Eu&C4wFflS1xD|6-9fwoI-kM&0o)=KZDpqFy0&wY8D&ysO&|CAFOctUn5s0q>D)4YB*=3%jJ-jT4U9H>PnwK&k31GNyhT+_D;JoTcBR>px^(5YN> z<|foaaqdUF|KU6s?F7EQ(>D)N$_EB*C^j&$l`&wVU>twI_D2So!^elmjh+g{^&167 zy^u<)MINb4FSnoD(qV#=)EXeTtTHk!?0UfPNDkD3=0Gi;J2DGk8{DA+Hpt&t# z#JkMn^r;$G-EiNIbn7R3MUzZt^t+dm?x%eA+L`%ujcCDp<2JWyu<<*-!yle5FU%7= zmt;n=+UuSl;}(T^EkJKsJ@pD)?Hv7juc8UM6EXcP?sGcm3i_Dsf*0@EIjNQGL!s1w zQRcCw8#i589H#|6Skv4kx!q~wN7KQLv(awGx_KLG?-Z;-rn4Th>joCCXJtdCtfF&k z4z(hrww-E!Ua$Cg9FTwI%B{JLXZ^e`xw1~4YZ1?%l^pBrmB5f@7Vm4VtsMHU-(z)K zh0%z_05C5f-GB>w0vC%K9~AB6z7s1y(|Vo(u6l9(@(5rruC$>E>g!Ba7zeB>;Gb)= z^X_PTXo-tt)J-HxDx!gYN~IaNIP4r*kyqvEC3#$*)>^Gj9yMn933aqSn{MI21q zVWg9TwD?tY+49663Z|93$Xd_hk6}oe(6uiKc00PM5uL8!CPiO7reMWD2v2Ui1dD^G za(5K&vg@MX1Af|S5+tW+A;mx{DQmenk}3I$JVv?LoHA&2 zvw)Kt=EUM+-PgE7sX4eTXu?`IWho_542gV`(wfgjcfRb81G=wrvpsDdQhIrP`xRAt z8XiM;FmCxKfrRI%V?{+7Q_wv`AXcgGCeS8n4wf|3(`&$g3N56Chn6@AVe(_nE6^ig z)WLiz-oN2Y7w~yJO*aQ&GoGR0V$G^A+by4-!6{mBwkAHHtsf~tB!$t=I4czJyfx+W z7$pE~!B6Px#l;3pz=8z|GRZo>j26+fIKWS%WkW3ZH>5@1i2wQWO?O))>8$$ljQl|5 zAazfR+0UXygWdM!C`A$mWR1!zuR*kxfa>|6oMP*MF%Wi@f~=&*1k>(*g}uhnW8>}K zhsQbQ^K?3vRiddle?fb6?|~+IJcE)i&V9a)CQ2=uOTR~HHZ%=^hkAk}$D6-&m?EZP z$>n?(!7Q0IP5dXI@AXv-4dfUAm0e$2Od7Uc9$VDq4P6O>c5gkL90P)a%3i7xD} z@X`3laPWsGl&yIC4+qV)XUIqvH|#;8;aNwqTP4_JV)Rffwv;G!w|5h1S&iY%8_w7? zT0kF)Z z8Y+$hw}@S%t&S*CM+~YI#gj$h`#^gn+v7M$3;uR+spx10be|{aS>4du=&>q8B+LlCwd(PizmB29fQ3ebH#Cqpb1Cs?p@(@Eq(i(u0rK}_wyB5MK(bl zSNGfU-clz}gqDD|OT)=OnRHz0wSTwi+zLIWExoj+)!P(?QPBxE;Qn zXyW^$jhl%WtTRw{j>~f#`i8pyFcFMheHhT-gk7!THQXZ90&W&#Tm)dpL~Nj)2ZTF&Mxk|Nbw}u;MiDa`o&%PR;MQ{ydPyffI2pk z8;i#UzIVzHfx_blePK|`A9Q!!Tjxn}hs9hZiNJ$W69Qwys^gn=%Qao+YxW1q?mnhA z#%($+^gH1%i+*!j=C~X=PK&ciw*OD3g~Yw2XPG(?i+lYP7AjqF~*>AkBGnVO?P)J z?5ESx_dtBjjW5w9mjw^9m#iouTin5KENB zCordT?L$=_aqpoX0IJZG)%SCcIkeDNJy0?qD4{f2*g(d>#;q$4E#%?us+-E-XwAvb z-Zr#sa8K2mS%`23koi*t$Dbkj9#I0PXWhL7wTtA209$b2IqvxNZdZZJ)$@<#!^VF) zE#Y2bH#)P@9OiYMZ zIs@CVCvc_Ma2;S^%WSN3`YxrhkOz`Q-&~zhPl(;RApbX~rExFjv$qk)X>sPHEtK5^ z-R#CB65JKWP*8-y+pDmNEh8(Ab5hG{dksIV?et0_J zeeYkK7U)?`Iae`>rVn}Z1}PM_K+$X#dEDv$07+WXx3_>w8G;4S@FIki(J369v8%QnS(XK5x&WD(eGrJ}ca zY-wc!NR>{(E&+vMKz$r-$AXmm8E)mT4ZBU~)o#pp^udjaOG529a$>32sbyI^ZL$%o zK4dk&ca;ViqSa=l5#yWuSCjQZ4nqu7z7W7k-|l;^=cH-}M2qnsU<(4WVPC{jm}g$2 zVvkS@C-Kd3!TB^314_d!vfRVh@{m@QSqEV}P)2D^E2E4W{;E8bW_K3aua;JG=J0zM zQHZd;IEqI#LOmIQtj);49sJp~&}np2;WuK?{k3{hxP%iH$OB6$l-0xiVl>>8fZkV$ zL3nWYt zib%*)^C7Cs^SD*dG{T8bCXzlvrM#O?3uONk*cSDBr-f=VN8RZOCT=n_jd(j`zikF`$zavXA|q4UnQ>6=vgawvy;+7VvLC#r-h22k_vlrn0B7ODEyjE z#-JXSK2Ny*V=kwaba%q{^}V}r#X}$JviEFIc}Eq}buy6;6YL&FTG>tdg`QmLjos^T zt;Nuz4I%!Cnv-I;kz^nJDRSPzz|Bee;iv3`Pn|2Ll_8&VL#^d8pJ}u}AK5n*&&>Re z96WsD3|Y`bJn2j+@6n^LFRglsv+@;SDxN&@Q^-Lr!c(mPz);T zQr^z^A~U?;^WZ|9lwA(&is{DoJix6F%Ulran(NCnWu{>GIHz1omY@@F`8Ftwyg;JPRPeXfjWq|v zISmO+Mw|pw42o4e!DQzn3!7ex7OdPuaKBme3p+i%)i2nB5q;D}kBN%j&>`JF4;SB= zYxdb39$h-Yv(G-_Lrw9E3#Okox@}QMY78VAcf&4`;jWAZ0|+b{1Qq;vMC~y8-Ou`l0WBpR)}7#cZ*QUaY(8<9{bZ)o{Y{>erWuY4#y8;`VQz zcMgliR_oa7)DF!WVFVOQhINB;gwqJ5!pd+>pFx&)FH`;4=fHmdVPB8Hw`Wu)8$(_1 zRUX7mmRjTpP7Itm`NZ51l;(w6-QaBcM7KRtvZQp48%d$IoH1iUSa^FLrDWT5Y-*bY zVRh9!Q;E3Sa8F~brJzzky$&JkHZlf$iqo}#FCY~n)7iEez&i+`!v&nKWj484o%`g0 zL^0iaRmXoAetxIf>v#6;)56b7GeRSQrTzPK=g2l%3U$S}E`eH|CgP zL+Y}FgdOL=QXglxVvCw{V?Iz^o1WS&c1kIROTQEkcx3HiuP?*2R%t3exS0PUFU-zn z!Z(5^*(_eQ$G0cPn*!euj@2v*5QHf9FD)m+GYz~!`qh}8-oW_PtwToE$(^1& zO{v9xPd^Te5=ZV*Ov93YN-ayZTcr1QGhv3-Ur$us?J9)zQr_>_kvK6%B8Z*_? zzDcE`s##@IYTSptKB+YNiUAvbmvQtRgH$U7hyjLH*d`uHV946O@((^sbm7S@(bRX!tv-! zj}#~>rodvjPVKU}_NEH1+KM}P>$bvfz4X>1xMDhH#>SQB*b~QU9zXNmnzLH_hHzr< z{3!eKVm7?)__VEBmteyY-Aa7bO9KBNV|V@6^!qn{e{8@uw!uh|?gmMvgb~uAU9$F$Tfc#o&PV;4i_*G8M$a%3f!0-XAn2?*ZxRHk@!81-ZVbj#KaKUqu@ zX(YffaDU;cNOD&{aH}{}_5tVc)hnO5jN^9I>iXtBUwiON+9I3gnmSrhkom|=VpHoD z%sK4#nOQHY)!*`RDC60*MWV2)*k&rT`^ZMxyjt>ntx&zSJkEo8RDD90-cs=bY^_Gx zjw33ss%_xsvCX~nKWclhe$_8#-&^E|#PVnT%~d;xuV(6I72dkPG3K1}?E6QbcULpM z8}uV|-z`|G9WF@1J9NIYH@rUk=(42odw+QS&$Wn@bHTr+gdft6o^Ks$F8=x}N}{S2 zvc_@7>?@X#*1x9Vj1QiIUV&djZV>T-Zy<}-RcvorNAPo$6$2AYBxJ@oev541$As@> ziXa$EaScP9#dQAObd$bbY6ZHbta)K)Pgri3AK9d@8DQJvqDKvXkO5(hbibbPmjE`X z%;<%;vMY9YA)SEz;VpHRz6G}2{Ffe)JJEcE3< z>z z32_j)DufJc2>*my@^pnH{|&XIedMC$eyH4u&6v8YOyMk3HD+A3s{&sg{%N+n57FL^ zJ=O(lg!QI0W!)EU-F4IiNuZS}p_YbvJytMX#v>lX68eYLG%%y~Xzc(&_%+*W3eU{H z3QrV&L2c=2`cDut8q42hZmFSePbMS>RLBS$%Q@{ZMU6$5%6L?(`$|kb$tY*1qWV8~ zS`cvh3l}a>QY``kf}*105)x7}GIEq!i>j)+qME*@hL*Orj@~r`6B83N6LSj-OGQgP zH7i3c8*>|*o09gr3if(B_Gb3>4r&g@h7Ok24xXHj8j6la*BmV!om}``G<038)LhN% zU2k7?GpBS~xZF{a?t1d>#^&y}f*!h39)?C9wjQ3hMQ<5$-_{Ylt>=C_fXBx`+(%#1 z$5_tC^s=bbO-$)Ck&~iD@PCd{rFfdd!*jzH?x@w4xT8Q2MU>2p&n_8g` z#-VNjp-~!Pn6R*Li*PT;a9^*7_jMv%|1GpUjEoMCN{)((_KbdD5pz2_CQ&U8V;bk} z9~T}OmmVLNcsnsPCNaw{$v-J6**f`dd}?l5Y6dR%}mP8%*ZXu$}fv4NFx+HE+{AreUju;6qQ$0{iLYWuOyD*Stxmy z(DJmj^1_&ktfI=&%F3GZXAL#as$M*Q5mK8~TU!_XD*xH5)?{K)Cb6WjuIgp|n}&wQ z@}?KBni?s27D}51-};UentC(RGcq#THQG1!esW}DZg6sJY;v-6 zs;z0Nmr`iy{4nz27>CNcVUd2Dj@*N2yl zK?m?Jg(LT+XPV=d49oO07oCS@_AaNw&+0rw?^B%w49>lis9dD zA6E>g6nK1GgWh$L`Fa*Me`(wFht0RJ&vQ8{v=?qERa9o$%@Z%@YNkyHrl^lOUYL8> zvVCRBDt}*;6Sp^Ev8;%!oqqZdY9~^xUU`+B-y?FpX;f{%!NN>#dBoOCxwqXS*}mt; z)@mAxR%O9No6UPI-GCO%oGzwi&1zz(C%&F#dF<(sZR=ShoN--d&`3n`LF?pW_s8Cz z*~={f8~MJ?-V-KPF`0vc4Fl<9ll9*#8%5#AHz$=G`I>H+LVx%tXsdATWN8+&l%XZ` z)mPq2)tq{7SJ02@G6=@=$)hFWck2+hk1)4)YN}P0M6|*Hm{?5}%sBu7@;{w|iGj54 zZ}AA9T5O|=A&vR~V5BQRQ9pMg37v!T-W7!J^6S%QS|_?m7&+dD`s5(D|x&22fFfiU(Y9Wobxs z6^MQfivS5@D4mwD*?^RbVdWV(P`m>kK#TA_MA6f;M3G47wlDI8){r41Vg_CwW|sQ) z#o?HiybAgfXn-Fj7ay?9K;7%m(9b9wu>Y)?id`11e8c&M_9Z0TG8y!jD-xo}u7HKo zO1hxGs4WlFfoW?TK=Leql}QG`oN)9l`mn~4!^IB9^VYa#rLT;syz{7mljZmv>J&<+ zrI3y`ontQ*od^uVIEf=wubANwaUo-vv-|$f;f#qB(Q@OeC`vWC8 zYXH+r4dq{NC>Q>+fVcitcRj3E+T8n6u414%JQ^0TZ+0m=bZ(fD{H1HOT%VM<*2mC* zqMd7=NYW<)MF+%+sYShzJLY@%+-Hd|<@w|CrM)-h**w*4HhS9F$Ir&ZPaYHBF!V4RK1RrR=WMz|+WJ^As#~2Ft2Je+qFT<=;+A zKU`%0|J`YE7q|fIVLjeYepSvz*CHL^tu*bnc zO1Md;{F9r;wPrPIQ4OVL@u^nM~!$~Uff)f0oU zz&_@T^?*wCo=@jVU_QW|AEAJ*AuTG%tPf?D%TA7uD4&bri|!z@OL7qa*BOaLCoJnL zM)7H>p^XN=dOQKeXc&--p9@3@t^f&%OBDfbH#tckkOU=aIOYbZMGwH9PDf3h9?U)} zCUa=09zxdP{lnMC$wvh>#jdc_@#!hFF*1b1Ma#ij(bM4%q^Ms|1LBN&t*exh3ZC5s zjFU(Je{>SHubX=fKm`3seA)h@;I1jomM|<~ zKJbMZklxedl4+Dl02Uln98P}honTc&lglc`1Bj%xyhabj;2an)Ot&2~a%evM#Q$TC zKH_{!o7Q^Z<(*fgdC3v-YekGUmtthnv(&XZnr#|@HiQc7+YLwy<`JVKvnho0aRCUH z^vFGW&`~KnAQ+{43kYy9yj!po;KzOa?4|Ly2fS_Q$U8yv^FL)GX+>>2=~qZlw*`>U zfHXt^g27Q&M+3U&eQ!}_8jav20PHZ1O2Q)+)LuqSBMYGZ)~0au>~-3%Qnttv=hE3m z^IMT-;N1iO2w8}NW$@{#sWOrAJ?J7DhFnM%(zaAjA_du?iV?`{qe$k`rw&TbPi zrPQcCHZu@4=1l7*^G9(*^X&koHQBgmA+L1NlW!9)b!j{Gbg+8=;GhyQ?lVyAW&gyu)AopT)%AkCxucdUS8y?%9#S(Q>lI?`5dOxE6CQ z!AE@jgiex(6J^U_3WIQJi(P4(=!bKKhYPYjnvJCM#nDJDgw2>#lQ{d*2@l_jmZ zvCuaYHbdT?ttf=$p0Br>8e9#jB}RX6X5$|cT^i>)n^Ha~v@FO;sMacma>t07{DGRp z`V7%P_}9*hm^_3UY?00{dX5xu+*LW6yi!_M<^EIZ z&tC@f_pK-Qzxc`o0N~&D`E=k}}Yy65|35h@JqT5_^%>NSfl0)RstEejKP3!??T$dBUUxH-`iF zIcH>1-@82YenefNMtrcjmJ}dNJc$ab6oX% z@nuaCdJ}H#BLM!NwMnlstw0I8BTo_yIxevJ0&yT5o^+~ zsjL%az?B#+!QDjf1ptm#;w1EF43G)X{i`!LNCOtZ?Vf;^Mf4It10=1lg5d7}ss^k} zuPoiBzgRL_GO$IC=DvbHDTW;drJ0gyIe@GfP`$$fbIOSw!>sg^sK@0AUsd@x(#;`I0&*m--3XTC-O?24qf)p(AYg z>uf0*@yKEvWCkVr?!IvcTJqvHgC|x@f{|VYz#Imkt06!ME0T{6Rdxg)>oBsUSTI}V zJ$}Il{-l8P1c+rHuv|HdbJ~j14>31XVd~$KKP{#c8GmSlqcH;{SR^2AglrxvBUJ!& zGX$}O1A2C3R)==tI66;wPr?(e@|0QDdR1CwoF)wooEcAf;6=MkdaOU5pQ{4XFeE&> zm@C|9u6-jnHY8U>_CafJZt9sx@>IUmJ?NDNxn81l_C%p*7F{twI96NF5>&N;)b- zQgWE2|^{o(zTDcY6uvM}D>9mxpKKrNBLU%E!G%D*^x$x~G(@-tz zAMj{ChDy8V&7sd*@}Eb~dDKW0J*V@uH`3<*0beYB-WU2}ApgZ935JfJ&lAdujV``m zkLFn*BO0H*n9YAV_p_$`_N})&FUa_(cB%$q(F`MVx+RI#4?|zZ%y~Qtt&SS1omYJo zG57KsxHdd0PME)HDzx?>w3>GRRmjg*K;u`mZ(bhLd7rjjxgZujDe>ZOTUC$*>?wwh zt$-frW5rQGzmfQI=I5)TP~xY2;>2s>(V*bF&R2ih5L@|G8&s4f{qQCL+#W-{asIRJ zl!(A$sQt)@zeFerTg4q#tutK5Z``OeZysvbXjDL-jX~&3*7qCLiwrBQhcLdft7R;x z`pX9k=7askSXCASV#o|Kk_>Wa$VW1SlR%Hf(771D@GPKT$MRe~h2Kf9GF3!q6wv?0 zAOe%QGihVyynfo{g`K}ndm{j$JyG%e-&U|_C&Y+j}}xQ0Qk zLprJIlnBdHdmU^C3Eg2xMmKXM)ddq_SODDR4b3E)_BLZfFn|V2=yHthtVTA=$s*qH z(Y6%OKOnr#CP2%OpkM%4Xn}Unhh#DQ;`3wDS3F_Ws8-&+b~>!H2>`*)M;%}~Wq!dq zF^Iopgw;Z43;^SgJkqG9zYFb)H&M?)XK7#lxj z<%98aPgbH}jTpKYL|D@~rcS|;2)OzTXEH7jIBo#PAgP3fll1BKP3;1qSq6;oKedbF z)260Gu6tGM#dXXj?JB0v)JCUrR`7iM9bEUI@g&GR8lHVXpD_u0B9N1RN{<< zWCIDZj7x~EN8s-xa^oQkjhgEM;&=80=5!RBUCrN4s;6qx{aqE080UVZ04oxBvT;a1 z*D(J0&1{<=G3D!Qc1YfcTbDaG|20l$8kJ z0#C^jXD8}oG$-{w%#MYAC;-txVpY?EE`5So8z85MQg3g-#tEC_XxJU9OI~G4*X0J< z&+SIOe_f~gy#8&jCE4kf{oCj15!HkVrVf*hhw}Wt>;|rt&R7k)bP8~_s}7W1>B%1x zy*Wh6_{{lO)jQ91W5c_~Bf!5#MyE)IX&pdQStP`G8lD&N#jk!RFzXB7JwzTKZ5|d* zV-A0T)!cN1O}!tpq-M11uG!0;Di2j%JD7HjAjHmS<}-w^R6QyD>}${EcMOv+{E2X z#&@-*mr9?pEQv@IEwSCzcSS*d^V4q0COY!jG!Z~ITM+uPnsi!pn#KCd02;O?gfL$s zbvjzi#|ZiU+A`sAsqN50pqAI%;E?#r3YE6ZM|)eqrr9)WplcUi2fnjsn#D(ZXP@5B z0!f&BcK-2){m~Bv#$#7r;UA`qUf&og^rZ=l@FrZZ83$&a!W_}CJOG*B40*su`@t01 zu?JeQ1nYVq;;v8cfRAI|i4aV4x6PQ=NkiTQT6__*`A^2v(nN1G*cD4%?~Am!o(bBA z>GPe?QqdXRRTqApo%dAolt&Cv_nWTdv!Kh2zQC#K)1TDad)jgI-_MI}KEMA1YiB$q zz#<5glPt|8cVq+K*>V=0zozoy*01MY$X?mste=3@FBz{mBkTWYYEdJ<8{tB8hP0F) zL6`N`(zbtv8l0YE96O>|^IMhn6ag-A>k80-@UT`uc6TDh}FX z=~o^7PeC*ig%@?{=XhERC!L=$CGm3inVc~?!Z{Rzpy!gJwI9n>Lsm9E&!5~Scg8Th zKHIy0eQqjm6i=+2F7SV zGHQt}!^*bAGHNQ%gYvlonD%v7q9?y{Z`)d zEZpLw`>F4#Uk|yD*DFHyD>o(E_+0JLB=O*_%E+{6 zpl`6>|NN#A#y#z)Z+D%@ok09OOG^u@2UgY(?FO!d2bY&X?R@-Pp+Z8k@D^7M0~oj5 zi=^H5DgVd`6_MnT+qtrpF$@i0Daj)gQ@wANI?5&<@mv7P433%~{ zfzumPTigp0i&46KBF31lcxN$hWBTq9WzVb+smR8zwpuyq?9ndoPLjvfp7*@g8^8EV zv`1T{KimlNdEl0+c079}6Z7>JJNFCOGk3|yVt8uHXt#12{o96Rk7ulnydjCWo!qs|4+> zL79ZJZWixEDD25c)tjW^N^A8|``~nKKjU6a@PcyJH<>neukx=u1D$t_0%iCM^{GER z@8V50=pIipA3dE;Qo(7jLip~|1lpvTc{a-&fk?NX>>~<2`<7<|I``9e?b+`X0~<@;g$8} zrnL^=$qN7crH}7g!r3hz@x!aJJ`0bA9 zH8IHOF-{lAjExT020BhN-NoYPJ$ebaR*X$B5V}j$;g~=sJbAOs^yE|*X+*s82dB>- zZQCY^js#sFx1zR=OZuB5F*Occ~s5}(Z`;g z(@92}KO++^z!`1$k$Nf3%U~nEt~=j@sRefq>Cxse4TdNN!GErb2dOU3)Kw@-ti>UI z>SdN#W{c*XnRs!m>-2BON!&P3=#}J)^iVqB);`9jST=gFO=W_N^J6dQqHilL6F@q? z7RilV-3wr{HKKb5 zu8V}TLC}q3SQIWK|R-a#xWeG zNU!vC6HwUZ{+2$c&&+x02y1=j2Y!od)`_^%WV&jL&&eEiIwxqhE3Pbl-af%M(h)kZ zBzm+Nf1u0yL!}xk{ph^C!{#Gmzj2wOz1c#@QKII7%`K*hehFa@ZcimKMW02N@@eJ}-1(dXM>N(l zE8u(20-hPg`zgK*=3wu1F_!y=dP6EN&t(Ldt39x1Vw8!&d z{Zj07gRyAZ$f7)m*xms@I=8PIy$o|gF><0Mayu31&6H#5B*XVs8J@F>g(#RX+xfdQ z{MDkyD*%hQa?f4l!d+o8NOSzmEP}DP#6+&x0q=@)#XilFOX(PSxg33mT>|obu$D~C zQ(nxS`R9AAg_iW|q4Eo4xin1?t2e-JCDPk+Xt|$K;1pbZmBTSP2O-Vn#crYe$2N{x zOllk+jUVMGT0HU!s#E#p<{c|B9V-@fB_p8Zg0Sru;o7?Ggwup^4z+;iA%gE@Ps$kO z<7L>M5<$Yd>E*U1N8XnWjJbc{SJ2Hm*eeI3KH{#=ep*5IV)z{%SqY=?~w~d9)Z6!mN6& z9k*7=9OM{z$E$?-$=3H`{Uldb1W(Q#s0Cjn!>*Q1i>KPoji;?C9?@wJ_xQhf_GQzk zGuni-gTlFZ)jp}!E;Ou`amWVW$@@Hj*X2;MUfARP{K_w==U3T|!VXw-`fb2(RyhXz zOq`~GR&46b)%{OA6`K2u2GWUc(z5JeDm>$XBFjzIYP*sp7gy(Rh@Q^1Iay%}3{H2iIA}G=7)h zxiOJSVU^>b;*_zGqm!CTZc69O$~$k;xmH0Hl5eH7BNg^q<>iG<&{PswyZ{!p^{WFi za(NnmHM~V-LQ+MDh#Le|*lx#J^C?InwV0$dnboyy?A7Tgc}_kBcp*@z8i4;PWHA{t z-p$J;q**tw#iQPM^gMmsJNg0%coL>56pwrTMKF9kE&|deGVqj>OG~s7`mBV9T7v&P z4+Sw!lpIacKHHIz=!tt!44jl}s7|cCu&bdiU*STa$}Gv2AL%@SJkL8#y9z+$+vZ=D zmCs1jQCX->R%?4-kiGY;iM15ZN5ol)m5pD#$j+`~SBKYD@6NBz-%oGQf`L8JU(g5jm;b{cN>?n!UyeVuD0Z1uTr5ANFT z#UV(XOmW=(@SgN7AX`bl!JMLsa#m0Jm6`+y!TpsmZ~)iy(kPmhrX2+z5rMTty|OR0 zT?SKDvq?qQilTss;(=(}S10U>E{Adc#Yj0ZFroa3U~qH=d{8(Yq#4|RDP%)qXdF}@ zAB7r#on^WwjBg3LQqugc<})|-6_x)RT@E(yhg@psb8cMEEN(P%HN{Vtux54 zW;r4O&XftfkT^x`tNVCJqyddP4v(!?Ko=)>?8gc2H4w>pZx~Iu@P_q@FY|SbAK7YF zWa694fh>^7tnL!qPOu*&N>~UOubU@a4BS@}$Tx_2wh#5n<)+;K7Bw5d(eX)^XoiFq zTDdK}c5Af#!o>t!Y{NY^v~1-~qB8f&yYZ~Syq>x{7$66(J+pO`n}{N@H@62ToYP9uTo%gh_! z=NjT{!3mZWgQw99*{>$na_^vk+>jyu$yVX`;j`7ki|SwvS*qyax5DU)Y?w$4U&7{daD}I5jIDUMWUK_i7|Jftr>( zI|2zd4W1AgeQUbVHItFxKWxtW&`LEW+XDkslAiV~#|zs=a<_n7XXDzFvLD*U>e=G$ zI;I!3r>FR-81}l86jbTCjXf)*Re$FeZP6+MBDa`qeC{w|XBOPivJ6;*gDuYqz>ui030yLC2$>yhy0Bw}B+vK7Eq#ehSEH3yjXPzUq6O zBN(qirgp`|4e8J|+Q)f$#pppm+`&}*{(YAo4D$`(SV-5OJh0`6ntl4Yie;C}Xq}n` zZIRb&CABxpGd{zOimFJVaUF<#&;ouqYj3d=*YP=SZ6MYop2iFvtpvEvI!^MpyB2st&uY`(Hi3e$rqm*+&iUW92 z(}fG9xu~xW4x_+nbKnjzagclde5lFc>DM^haXfR2>3nbH7Duz}`S z5cgP@&^zs1u3$sJ&C({D69l=%IYtACx(2QS%^EiM+%u)W54o6Mf7 zYuH;7!S_#^hn2neYUAQL?3>H&rpS#qAO|eC(yQer`2sq)VT`cS$__o;%6mK>ui})V zkHIzb!Ogd0EN7!`ip4U;W>C+8n8dSgVnIpa)Dv5>&T8qFvQh2^5M%abg^)~@*lMh5 zR`dY%74{fytt&S+5bWPvHT;)HUE*xFKs>fo+>5HErmOsI*;1u=Q4ElA3&0c{g+3)$ z5LPWANMxsL9@g-WZ1PdYYoA$|WM+K#Hj76RiW+p4=HkfS zbr-%qptC3bT=rTdCngHLW#wo5RQEW~a-iP1FoBo_)zyG+N=0_G6nT81dF1xom{^dm zk)>-0(S#(aBBSCz!3)}WWIr`>Vd7;5sq`>3>0HnxaXC3GC}fsdO@~&F0C9)pGuT#p zyLia3Z9UvEm+y+pUXNBV0LD0ZO$uY`c)kc@fDIZx4H5W+Zve)YNCkFkr(EYSqu!zt z4le`G&O#dc)`ENDEIDxSbTtRvHVu7x#pBfGcCA>;V(NJF+bYV88jJBBzmkKzI7fEl zpMKkN=6kH&%#HS{k{M+3#w8>}IHV+L{_j3k1i@Gdbx>v4~|dTxfv7g_58j@<*zkIza)t?*ioWZMj!gudqOK(D6Ri@$_y9 zP5^P6X~sm`VyA&bYyAgP5b(6MlF+v!>xKaI(>56bXk#}Mc=N8x0QZ~0NS_i~;`l97 zSRe!fX89DQs&h{-3$9|oX!<5uyDs^OH*~ldW>yt2b@0Ra(bI;}5|V35&}{OL$uFcX zz@vf4TbY46B|>yJvn+g)zOzGbND}C4Ab(zrB<~S=^MY>2Zwm4TUDXWAWZF9)>#T5d zZtn6bFb2T>yx7esPLY9B{U)-H%tm#wLj#8*wV{44$#7j#nuRe01@rSFxR!YxIh_Z@ zoxDScKYok@>>0#(MD-3gH+ghcgvIj>oOCB+f~Gha8v02yrHaYY{$w|!x{d#|4_ z|Ikr5DcIyXc*&o-3!F5Fmo5v;Y*vWQg>}{yAhf9a2tQ?HN784bLVS`)P_7_V;0?FC zhGzsJH9Rxe<>eK{+V7#GXQ5o7!~lku^e`mDCrG|naosFWo^ngTvfci4AS5?YjOawJv-+tnFOCoqCrm!5sB`5CgkU<^UJ(#+nSfq$mcf=@)xNouqAAeF&G|& zx}wi>_GP_tIbE=KaUC~4>|816*#$ic8tg2?#*gqF#BB}mJX%Md$>|`6no>p5PPbPW z^7909es>(+FBcL}@uZ9W;?IcNB^4!`}%kD{2+g1M-&#$6783~6VOh*&Rxp% z_eKSs%?gKbK~`vD$SqG%YU_DBgD*eIxP--CUESQ9xi+dA1PX3;q{XBUsx~nWHmR5cv8I|*U2CW5rU=BCR3D_Ty3p=_26i&_}no7XG zmM{wxLyuBTm$~@IZ~tX^kaF>_gWHrG15~K*+V|wsG2sXdU{pzEmnucme|m*MGCs>K zQ!~rGYas3KZ_EWj|HeHtj{e-}EKQq$1r#qcPN!e2 zsXmPg!ghJBM32kL4`b8NLgPH;XndBsK3}HJrFkxX&d4-b0W`hsV9a``*G`+{tB%m^ z4Yinr&_Tg8z6?62w-V1Q^6ec3!G$8@N40 ze9pE2UPW!l8q>ds-+F%wQF0j#tqF)ETuj4t0TheXv%8hTZ0Qnt4;0DzBEne;rf>Dc zRp*AlO3yzi!J*Wnjq)8j zbgs=~cu4g!^3<#@wgR}L6tDYh7L~@&BseX?G;1z*o#ElmC7vogB&{DCfKWU_9X7a( zb4j8n8<4he>nT3*jsBfp^(&trJi54%JA*qglPJdd4@zP3+^#J9blfjCNpk=uwq9U0 zldnxP)=*i$Qv&~ZIq8QyY?HY|A$Yyym(KfTw+;)F;nH6mtvfH@$egXmy=NNRcq01i z=W4lN>YITVhkw=fhGGXZ7sH+X!^xMx*I$1dPTPHRIAQ$Gc{hZI9&s!)uli?T^!|Iv zqopLxzYgmy3o{{GRVHr-DjM#3o_-(JJh#Oho|oGUeVKaq{MRp^i|@{XV()fJk}r|` zGc`Xp@Pt5gBX1izg9Nu2Xhn$9uy8&b%GRcd!JbHFDdWOM?M}oEVlLuUI}omcL^?MBQJ+<*E-Yb@a3P?&KD$=RL&eke;xN`XO1~(ap;kF$*zuq~hb=2kooBB`$()3!I$w!c9UC!7u%iVj8;cVhI9JGtfP=qiiR6L8VE z=3-3|CyH)pia2p_^ZVcEgd$F)|07OBJqt4Jh>FUvZ-3W3J|7 zLE$E1zWNkvV&rRQ?d#_0`#{*wP{z;P`%dtGxs!YUA9wQbUw7j0-{{2ffs<6Axl-WG ztN+WLsDxPmZ*-y-YDaM=0in?pbYc?b_OCl}3is1}=t`j{|GJZKe6nX$0L7gc#oVH} zlbD!9zt|95EPiBOnzyD0iU?xf_-f80rESsI0&P~1sTc^QSC z{OeBsgHEz3=p^bt=p=(!l3Z6rK_|5h?G$uU*7TyOxwY;!iGog^x71VIN#lRqN#mQg zf89xYN7ujNq@cUDqPwA^dxRoRvU;EQ^$k(1N&7%||G+=oq-SVqczCpPq>o}uDAr_b zV(MRL(l<3aHTB`chqH?hq;xm`LX%=&w~q7jh_cUFD@@H zEiaOnDClHzbzyaNy=iTDaqUa*#)mhX6C0b`TbtV(J6~45Y;Jrx8rfZ#-X&A$3B{fK zk2u-?en3Gd-w*x^og5w>{cm?N{DZvsWBcgG&wtU$+3E4W?qu%Q*MI2A@81-6vUtA# z|EDLB|JU@SHu7N7rF-KpN6X{w-`9+D?&Q78|4T9*ZoO~!zUWd(hXY%tm>KqRr`GDH zgQ|BPI-|=9sum87g*Fc^`<=<#%>?Wv%XHtO(32;Ut>UL#KKSCaHlFftMSK^(5k5c<}}Z5Ee${0 z`9Ch$ePZ2s;!keMd1{xutdQ?^Y$aNBYgWY|)6ItJ7PsB13WQ#Lj2P>ry7D_{DVAkO z=tI%$B&P6$mXPTxzVv=K6XYSrw?_s*^p*J|2 zV=7Fsks&IX>J#n9oCP5t**3kr>u(BP-i9AulqKUp$;xEv%&{t( zPLPS|=g6C%pC<6Pt~s68oEuhYe*KVL>eO;W#Rs3j`1;n}E7uHi?!V1nyc!F%c%vL+ZB&PsapU*6cNA2Ds=Ri;1I z7cWWs*;<>(hPRzn)TJsMQ_vmFHIts7n~T5hr~-%fRq?`_rwk8gV1A3$xx0sZUu* znQSpjozK_LR-x}9CFia^f`3VPx=+y;oB~bKPR$2U)hrp{%iXx%??u6(lmb?s^ zgf;l0c>r0F>_^tG`c#}2# zz~Hy#j6E0M@*5!7ixcU7zXa@IP#4JrfQ%G?wQ3d5p^u4%(h-py?oR+%^C)dH9tRHA zz394d0N74T#j~8XH2^R>jJ-^e%TnzO8k^n+zv1$bAe%_P&dCkxBYuciCw|46o@M zO-9N3-*2Lc50hQws_e4EFY0h4`0ADp@%0jH5R%q4dLQe}ydJumO8yv{V?*CV zDDqo9caRR!YZiGa4+CvFoEWug@38PVaSkY*8O?4>>)eTxdf{4iStT`6x-KbYcM8?3 z_{8YA{*t7-mgQxY64&Df&8b``En~X`Z)^Vp$O}zN`?-&aBNqn)UUm-|&Ci|B9XGd( zzPuAOJiqv}`33BZ=cb480-@7Vx>p#g95KAGp?cCf{@G9G29T{#=%g)f;%;Nv%YsY~9>T|?E-^p8O$lc)mU&y2U*KdC#usTDM zn55I7_CskR-t^h$KQiq65`K3Xcz^4a(8u3xB^EL2G?9HH?ui`G$yX*!A_b@p1 z-9Q%-n4C{~r24)mxNy1cE#~wod45+E@OEa<^t=O?C2_9y1AvJjAU(U*zC@%hMwuKf zS3@$r$FF523!q|M6HmR*<;p{^78wA#SW22=jRSsdBs& zAp>a*D9=-TR4pGXYlEbnfG3u(J3YagzWYFl(_c$gkYH9<)E>L?G9ov(w^ARNwzmQV zlzJ@ziCQ@QJ<}jR@oriY6@c`C1lZ;S$l$1OH0X;8fOFf=W@^H&p^t*zEK2X(jp<;p zFC;GkF0_zd5~A6Q0W^xi-6E;?7zm2${4wkRD$lDa))#aa{31crzvUqMkf7x%|snRCJ0ix(Bor#P+8Z}k_qi9UjUG1jh zWU5znkEKE7I?``GP5FH1)Vsp%`>u6(XpnFlQroBNp=bPKttxVYRal zb$QAj(%*XYYlfzdu9Nrg{><+URsE2i3t?12GzxqV_eB|xHp5Qh9`!zOIJDOIJ@aU7 zhK`LuZ9<@?%8dXS;BN4Nm{7FuWFK{ix*)c2^)VL_fhx=p->>5g4OoypirN?pqI6>? zu7DH>)HYa}#+k@^8yX`%5HAtDw15K%glm(k%foddbD_NX5;l33P$V7s|_St`s zaKgH6H;qfZ{exy^-pmuAj1v9!z_;ND{HnKMTY z%ss=s3scKX3s-3qQ_GhAy{_y0???B8`y3v^1J2<9zwht!`n*3+#H!GN58bWh^IX@Z zG74&=GAkoFxYS}a3u<{ylx`Pn z#Ig=xK*IO3(I$-Ms6tK(l$(ff*kTeztDkc~74)#BBp{5%)T&I1ZY|wVlvJuKEIOU^ zH+9PMlD=z?2lLUPa79PD0jitil?u?fM+3Fxu!K@eQ%`8D4x6lay1upu;sPD~cto4g z4i!bwuiIn|bqBi=kaUva-P;^qG*BG}GeE4!(WJzW@ixIJaG*oi{Sk`~6=;Hr6Ws;I zkWgP#PK^L!0b>IpA}moz3cylnn>7;$-K7A?v``8F{>DZ<6$d>g74zhWB^8O#H9T8SZ-}$x%#NzFA7YELSzgBv!|dMtKAfU zh#?ac1qZxW4j|Y-Ja91Ia#df9wlE{^&=YbJTNFP4AK>&fy=5L)+|rWwzNj$8v%_Q@jie-v1j zR_X(jQkmp-hwV76>Nc);*57mp2G98XBhdC!g8dCUA6uvKnhuv#)&o4FqC2C_pX?;( z&XsD#d2+i5kbG{;ZxIbLL3P=gcIk5=W7U-XO|473i3HQm7;W2UzRrm*)~CcM5f79` zwcmW*t$*0f*5=w{VC(M9YD@#Zy9ZRqQ5eAC1C#e<6o*7no^?NHaSp@HsDyAlaxEP(Z6@zdXZPygN@ zl!`@e;QGE6>%|p!?hDwv=P|ERpE9pfSZ1G|2v9())+^f1iTgbs@k%Rb7S`1v;lD$l z-VAb>S#xs}&(5FD(+rjm^&h47&$#rT>mS?}7(u&^jL)Pp=nTumb@U~d^Og()%tnU# zigo4sbzMi*N=Aj#Mzl^}p4>I~YXsXrJc8(Np)%Fr;0<^dgS4DuK>rb8bUsx{PG@vf zd+_q=klE@eCnJlDsz+P=u#MRW%Xe@H8PP&UIN`t^0i#ERQ@jWEry!3>OnrcH#aUm) z6K3zRnaQC~lbQXKo2E>wS>vqz;{he+dWGS^5fneJ@k=`W$8>lY9e(vQYYhPqM`Ilp z7}vtWmZ&g(Jj+cS{AwemF@j}-#OzT*2^8rsw?f86upHx%C-cM4C}X3anU_)HPWZ{Z z&y<3aDbDy5GuesTa?>qXSf^b7IsrO8Yh8+goVHe$u&_sR5QB11q7KBf9OMt^_r!q> zC^Mt0Oa>UpS@-Gma*!paERMuzSq_RbgK3q68fdJZC}v;5IaFiXV&l{~8$O;0m)nff zwu1dtvvWOy7v56{=&8JEOL0nF`8kD3fn7Tia0TwO~rwa$p`^F zOPBks_Ib$T&ya*!h7Ty_vuGAi_vb8YPZtE|ldqR^1-kGw4Xb=+?E=8ojUFo%G976Krkk`y%i#g0%XcnjP z)Hrk4V^?G^p#K;P^T*A~kzTI?Smn?xH!06^=x`^>bQhlG8g4nE^y$%?#pD4a+?NsV z^Gg+fm%9kiLIUe5neu@ET}O=^m&4B!pa$+Uad^bh35k(FVw7)!1QMal=ODl}Ch#RD zek{y@L=B@s!>FKR08GA=sgTBc6ASeuK!5)`Gjwj%HEnq;-T0;siZgxHx@ncqe71&q z8iIkb55k}u1fqrpNyj4| z6k(!)vQdE_)4Z_xgboj(LB%d?Acbh}wO7GcXep!B@GCCM)%rZd`H+4@2x^`E>uS&J z*eV@fLt1wp+-@Lmi$;^-Z z>t_InCv?vHRku>UegmA8d;nhEKb{!`U!~`IdThgXrv9-tWLTzhFh}95dNE}ef55bf z2qMAqIjHs?jhT#7PkMA^17o9*!|{F#+Rmn}%*kAaLVhiSs*diQ+}!t#o&pH6YDMd< zeA46=9}`kUMiJn*wNL}Smif4{%kS9vY@viIcodE)l*S+BUVo>kluS8%LV=_!>!pjr z@1a@iFnTPqm46q%aRavvPJ1*rM-^84%P#(|xH>YeJy5GKaDre7c=tmlgsy4ERx!vX z$o14k3DrweMQR|s2|UhVc z#yxSn=IgItZ2zaJ@+8hDxM-sASnz9mfeo$Q)I*+86lTUHSN$YsnjdCn|Du+LO3|}p zT6z-OEpIox{iMp0>@iekCjIiWQ@h_%^ICz$s%5?AJuPPKDJYMMYsAsLPtPrp@`h#1 z?}x|E3W&NwE;?0wqCHW%Fs-A=kXqiYb9ZF1ZlP_LXgr%!aJ-7K{ z22R>Ha+Fo(eU~OhajR3=8;^2#zgP<9U*09e#`@61czwn}OZYD>q^#!S>%YQA*$@2b znx=`8SKt2ql|J`Rb41hTM?jAUgpYNO z_rdQFU2$F8G@MoSHzm#&VmS#a-;Ko_iX^n6146#(k-7IS<@r(RvuIoU$!BNWx=GvY z7bSr2(P6_B-F2Sr?KJ>4mZ z+goQ+`3M_HGBv(GoE;OAyoa_t+P`TTizj-T#pX$;rG8{*IIO(fTU?K_(0iF7C! z5)6Rn?AL_MPT4u!4skPJE2$gyKSo6rnY2O;$ME(YR-$ zl79=m!9?=o>Mo_EsB3(dmxafZD&1@u?+|s?*B-Ln)T)p1gYSuc)X8&NKk_Sb_#!5` z-g*4HjXY!`IAb?l%fr`?0f=!dD}qLo=tC^uMui+4eZ7oDMto`mHVj2E!vuq;dOh!|4GM3W#; zK&}Tb*Fhp%hF$wxZ~)p{5Y1T&;ucG!6eOH+O=yx_q$oXG#=6^9pjG0A zM7^*p;^2j1Bi!Y0Y&Y zoMk}+F;TgCgZX*^jOX@aAB;~pxA<>cu?evRrQ#klaX}!cDrs42m{KQcMob@i4BRNP zhKOEYVh!eF(F(oR-Z)%weu)0Q3gQViudfyjkH`Z0)06IVUpE&@!KJuLoV(8?#$VPm zDw?s=+g-HNtoU!;(lVRHXK|WO9|)D#i9wt=!IsFLugk7qyk+LkOoZEMG_aEiMB^j_ z;odL?`Q{MzBubSkQI3@2+$I@3YTsEGX>*~bgL&o=BlqIv2WFDmMMW}str>?#meIvU zF=OC16Zc^&^*>Jf1>!2_d3Tq_qbB;?8>fbk6qSD*QMG#sAk951^HU_Kt04CT|w8@|9R zx8`PPAuw~5Db?WouOgF+pDPm2kR6!Ru`!wtz=#5iutC0rkc72%+LvNHY)yX23U1?aJg zm~NAdE$!^xGV-)ayY$7t^|LE^!0{b!AXe^)AaR=(<)IS7HRp#0SiPOtv}3`PSNyw5uFe94ziPbglLKvah63ujV9ABMPn zOC<|z^7eQ&ky^b2${n>St6?Sb=3P-#PoysGvsEcRRk1$rqeubA$6mwr@z%h?dn}PRG}SEAQOCd5Bbg!j$@1%k>qSxcQ$xw>soo zsWI6qVsq_wkYfH;!2nGA{@M(*gDRk!d{^hv%FBDyd@=qBL$&bYnYR)YohXO*5jz*p zgfCB+pg-?1T{!T7fYjUIWo0K=`To^#>eCB9MkZhcQH5VhBjww@C++B{mK`t02R@l$ zabD%}5gR@iMdl}iN9mWCx4-?_Hl{|LbGZtO*nWIPsgL`__=&jKwX1*j6^!3k?){Y5 z7!k79i1f*IM!bBJts&bTLWmc-^khS~=w$&vks_4Y&1AXE4r)&-*n?S033xoX_`B*N z;Bj|8{%jN`Zdw~7c|^Df!^S4Hg-?MN_wp=)v-r_0by*_h)(kdYf#e4MYG8tZAke)V zt3M))T*ZDtG&Jiy;&8m+-4L^Q19+!gN#mCc9?PgNF${f2a1ukA*sU}pEUiG+hm6rtEYy8V&WBp z0j^3_4CXnSkU{IjM36HI52+B| zaGG&MIfR!g7bVayU`!O*SCD*>K#jRvkaKzBcAtbvY7`Ahelsxl;{4BE5cxASnh=Mf z4n9;d9n-D^yqWMu6R&QmTMA76nTAG?AaIRKPZmwTv?cv9P4#5I^dO)`fKF&xZT5Tt zRSF~gax@zk9GvGsMs!1@R@8llV^~R`J*`JklsE((@L_-UdECI&V4;@`CZ_ZW(CtUn zy#!62<`d7~7fw0E=;%yc$=raB=Hw_eyqlrvvx+z%hV_V%rmrAL1D++AZ_1f&#r0A- z=e}tI7gif(%ZZ#}x+7=XBEvvjFvBl7b6-PrO#dXm(LqGG&t$2XgO!0wl*vyb%BC7b zS>Kq?Y33U_hq`HotJ~CCz@K$7 z*8O*SJ&o^lKCA2kn4LRIWf8gnW}FYVc?S6cHN*pD>n0zRP-{koBPJ80q^u-pa>#Sk z)VkU;e(77^bvSmXx(coM#XFIHqIBCtSxkd?K+jq+^3klBq+uc=F(d^je3XvFKO92~R@h_HEOsJ_a-i@F-m1Wp)4A?Jfy|6(~N*slRi> zxn%rBax;cm$u`M0IrZ}Pg9bX(oerunO*9pPxZ*E4W-Vyev?E8JuIwk;Q|IOy^ugLO zh$E{6rWYdOz`V^DdIm3&$~!lDx$!_qFd)Hh6jH|&tM!I`t1fQ4=M0$$rBE5&F$_)w z&}HdZ6MCFo39}=GqO(3}J)i`Lwf;5*HKZFoJ3IB(*2>9a?(|&yg4-i8?4q03;v+{J zPCb6Sqk(7S0+G(wm}Kv=K4K{%{h_`V=?ICc8MGQ03kvMjisxOVBp%LMp8PvdVOj>2 z#&Mx$%@@)f+zenAy0G)BJk@N_xAm-1O?;wZU@Jk`Jz9*j2dK0s<%T|^B`#j;HnXYo za!`O{o#>;ajsa!V^Swp}X-W)?&fqu6A^9XxpG@%bmlr>9R9@q8$A}oXje$j~b(aCr zG+h<)g)o$?>oOt45opVsAc;X`c7v;1Ut4TQf`3VTDu4C%n&ZQy8Q>ylZjX|MYOdk324%D+IwlZep)kHn-bnW*5C64D7GJziuP_)KZS-kd>F zBZhMlpy8aS69#_luN4&OCUE1$A_aN_$FMH++}q1W9_``FcFH@ zjN5qwO}(<~MNV`(OFt_9)Uj5%c3zwWOco@}>P#h_sp-^WzLx+wG{8Za%+VUCwK2nXpIekE!|)6NY2i`#`8D^Q_HVZ91?7qA zytF@d3>@7+^P_}cfh)Eo2KKOLl^vC=zQm8%Ypiw~;y<38$b6aM{i=uvdsVf1Ub_66 z?Dz(oxoc=ryn+T$fn{A>=gMhZXr`Yx&TK>3zRM<;^m5Tt)lZoaeARj5lzusyH zV(GcFG_sqsxLfMox?)=?(wd--+sb%9F9y59OCWNPh^PDcPF03R80b7TRy`?JnZm%% za)T$#FR1y`+6Y69F2lR*q>_xC&cP>JN}GsXsKas$`{Y{h*Y-78Yj)un-Xx%a@t4I5 zfijhqGE$4wm*=Z>-XbVOOZ-k!-Dmf_os*fj@&f1C?<|AG0ke6swB-voxAFod0WpYj zz@_flRO**y(WSR)jWWnKZ6~M+`9r$Ir>*0g|HRe@%W%xJSd|yB-GuWWo4*$RwwP06 z4_yZHcdk`JzI{`3mMbT+8Urs7*3*r@Mb^hDX>=%IRwLuB&c~-)M6T`oS&H zpcABX59$yG;z%NXZT^_V?Q4Yaf%G292f}FD?XVt@bq&4&wthqUr@xl+U>G3xg8}D-|K6cwckj zqF;F(o26{V`-~+1I%%-AfSdfg+g_Y^qIvmk2|{ExuDVMsPjv0lX~9NDl?@>R5l0Y* z<=9h7#hyfL{c&@v?1Su4h@cu!5PfL;Ow|^ez^fa7=3p^q*(t_&zgl{YjV{RHWZ+6& zQGX1+3_P+Na(-%De1gF-@}7Y;)QeuqN#PHJjnH{*>4ik8*v1hdc|ynf>)Y1zwznDp zkFhR>AHD>&h&vM}KMf_`)krWeh!w{W*^TcGatA#;xp&r{q2f%qI6fxqDS?#&R6>EB z2{%Eyq4?i5UcPw4`1tkKjGb2I_|jpv0)w}|@{TJyhvDRWFP_K158oAc+4NP8)4o;X&mNC1 z>lK=e=3R_ndhClBfcoJQoG^^$q&PiNtR@Ue#6}rs&*-Mn@`B~s>oR1bpDZ5%ji??K zA>_Xmmp?quHnj!I=GKQisF})V4sI2L&4^)a$=ye$4oT*d#h3Gy0{Phlb!x3^t(*K0 zWnP}rlUrXt9?CA0ueO?tNw~uT>^pHllysc*DWFN8uf*IwY}biQ(CS^-*PX0A3-+~VKwg{|eT+uy#b z{8I9LJ7LpdF{tr<|Klrx%=c;Tem_3X%{(t1ym0)t{^7-?lknHrtMeZo-uTHDhK@JrSLS+M+=^B{d&bqAmD|SZ3ml&HGax8ay-UeMZD&nHsFED{n)*sG8K3brEkH zlgegbhe7hFnTNc9spYB;8{E^`m`d$V!_2`Xm{zKE72v#^#rgA&G7Uj_@88_pHM50S z-7B|-Xyju2{ItBf+nIUd@x;sGYQJp8l?=Cn8-3Y^tVS-ob{|kh4LPli#nafqQ2A#m zFr%XSqUlFn>u-0=;y>McASDydut`a+L*=qq8WxC=E-uO|GxS^MiEzYAPPM1y%(A#J z$*e}fERgcSLyye|@5nZL*6Qj6M}03JletI3`hmNS)2O72b{PP+relB&i091H6R|+# z?Mhc*vPdSi?jlZi_eDY0qwF2>;1ce-#}%aU-c@#v$dJc8*&o+lNY3?e2Fuido;|uH zf9R^^O5oUBFjpN|q8itFwJ&>l=6iPQ-SW6@*PO89xa=Km(776_kZ7-R^)a8v&EPi2 z<~7@SA&vE3^K+7=@mJs974Eiu^1^x}Ov$9f%!6a!F7jjGQi?fn0o{M4keAyprC3<7 zr?yzFJ(JNgR$9JpG-(D>E@utgQb%@hlC9IJn#&i=>=NW8HT7&A>{IM|Kh7;cuIT2P zT#WR3_E_~msf_cxu`tNPfNjR}F&NF{+ zWh)YuBXZ1ft@#dS7gX5kMUn909(mqQ7~K65-d1IHA5P+>k(Ga z{a`}Ou)0=g=rLp&5D$7gp37QE&de_~RI#ugzVvZE)1IkVQkV#5xBDuwn=OKgAVDz~ z&hn-U42g0pG6W=DL)$gPonbfRt0ctw7#%>>x(P@$8zb*WQDfeduqSPmgeMHlmDaj6 zoQ@->uAn7)QcS)zX~WM%aN%eY{(_j`vG|D{d`}npvw&C6dS6LY1};+LVBQpmCN5%yPv`v%X-ho!%r`ASdwRk<--X-yQ+*7(VJ(!svsZrU@i?sJUwou!q&Tj0 zw#a$>tbI(1QMI0>2*;Qh|5;YaB`nW!*f2@{fk{k=-@S!Z3FFis0;AO+;RSbJ@$c42 zdA17GiGNpAn71D|pJU|VqRo8!8=Ne8z{J~&M)L?0YmtHOe9Lt}neVj3>?A$Q4c<$( zwnL5lb(J~C^!0?4<>$z51dah{!0=>((Y4*oUSSWU!$~_yG!4KC&hrxc&>J8t&PpJi z_XhT29+Yu3Ipj>JwEIv@YrUOBsVKiyqBH;UGDQV@mi?vq3t*#sSzNv>5Sn29Tfmm{ zTfw?cmY&68e&tT3l+Ms+bAlDj4WlfS4PcZvi%HQH6XTWetJTR9Nj3QE%_o~{qpQG> zR-*4&KuLPOdfdCby#do}$!?U?+3TK8i|w&UF2~ba)xU$8MBejFa@a2#)JZ9?8Os^ad0 z%wsbC+z89jen~GHZ|xu=ZwCEYy958(A1V^SdRt29iSeCgkM++X%pm<<%Gh?}p9&k% z>o1>CREP8DZr*J}32)k~Hipi>_fG|Fh(GUC3?_cW$G+JdD(^}(xNsw2mS1tjUb7{u z0+Bx=`2MH7rrOK&@3yfnOIueUIt}IlMOFKH8+^>j|wg79eaT{0#*7x^~#4+-erWi7W|{NMTNJ$(g-aB zdGeb4#55tF9R$=?t@W|=EghB}sQnQton5z>*k(M#-1@D5_26sYYT(yH-&j6j`lQ51 zo0i{8ZG(pm>Jz)BAAi5@y6~g*VVTCQhku%Y^5ox!XSZs$`4#r30#>JuY3dCvUqlDvNK^eW${TF{U8gn=IeEfKFDzWu$W@brt@ z!-!?ehrb$lp8n`+Ir+VLHT>XW)DI+kE%LSX?D8%n`|VwqA|x89hK}Sbe`lM`@JP=^ zqnxpYB5c?Q19lw?YXzqU1^YgqZ@PAit z2n0e%NJvgrPFYz+M_WfvSI^AM+}74s$KFKF*+ALFNZ-ZE#l=O()l|Uk;+3l&|3hu3 zqV1Hk8F<>6dfJ~hl$5WVUcY|*zX2s7>>zgQ@@Xzf@wVmv-%7fo5^ARvYJVm4#<@FI>USJ9W@%UdZ zNi)p8I4nvo+*&EzR_8xp&5ax$dkRg>?_WO!Yp0c@zK8^aNKe~H|H!DA^U?0b(edNa zDc1?NqX~(w#9)77h((NFOH8Uotk0=pvx&PA6nFo$o@AF0?3566O4zJZZ#t*m_Da2f z+D*Ed7U`LO*DWKAl$jk)N+6OFLbBpr9)x&4xS#eQ%Pl)RGCS>*v&H44`{hR6$c@R% zEsW30O3Ke{$S)2kiYqQExmp|%SDckvob6K*8&Q%TTpFKMnip7>98#8=RaR71R`I;7 zHlRG=W@U0nReDNQUUpTSIGVNFea>Z78PN0l?R&0+PK zkqz0A4F$x8+|-7WzJ}(w$A#IA6(x<;jg3vsEv@lSN;29is@odt+nU?k+9TTwi`(n_ z+B>?sddR&Ur{pc8zb3!Gp{Bp3t-r5npmTKK>1l0gkTO&?($+OPI669-JJxh+-(HW; z6iq!jO)U*gkDtP~#@YU!*^yKG_He$Z`bFQ|ix+=htUOs5{V#u8TwYl0U7T22dVMP3 zUcO#=yfQMqvbeDF>c94FwQY6s!|J=fwb|3!(*Nw+yUm@=&8@Mm<%R9lQ~TEcU;B2v z^L6gy>c+>@@Y1JK^0xYAYwyd~`L7$N!KJU?_D1NhPu1JZ{=1j^+n-PM+kYMh+XtTy z4}Y!x*!{0}`}05S_U3=s?ccvs>~?&-d3^lo`1oM$|EAs&|6kRcNDGnv(r@8?%SubCiaWIVd1UQ-6>104euTc) z8c6(b>z}{MihFB9slBI3z98*R+N-g6*)DOPX1%E;W*y$|7K6oq?Dt*My}wM*Q7@Gp zUZ2?w3LZE-$m=|s4fl9cDC>F@YMGZZ@Px}u!^d?wna7mNEy%4soYHpdMB;5|k>=@& z1RG?g-O<~HL(VFrZ*KQgJ~<@{s6)d)e*M;;%kAPrxM##cnEkaWeC-%xZ|R#M&ij^7 zS93_SwfU7tbNbe?H5dDiF#ga}KWks;{f zPOD)Xx2HzR(uXTO%~SQJ z><9kE?Eh77a=}Io$VV9S*be0aAJCk}f7F}Y_Ysx(kOk?I&+QrhsqA9ZNz8=Y{w!Cn ztCFT%e&d{}X0X|*dV>n>&%Fz{l_Yodvl)k`BwKqn6=!trkfQG5uR24=YT?WvepUMa z5pFp7VkukQ*OtFHre|QK3?m}PleeZ9LtY8dhX{*S6WH3tlc5AP`cZ$!S{%F?F=a#mX=7+Zl@uH!~3Rv8kpZYf_8;;JUVcclCiTd}plDgZ1Ho(9ZOa0c>vfy0L% z6L~4)JmRD0)oW^(ZRaFh1JC|gALWU*S;dd+r-&-m_`gmosSod02;Js0GQ`E$;T3y9Bj`;1GGC<>MApuD#Cz{qyWY15`aon0ufC> znlvy7SXdE2iyj1yba;PSy@`f^WrbS9%)^X}Gw{Bdf}8{}Gdn)j!jL@~ zCJmTAV$%L_(NK0tCQ@KrBExDkEWq&$GmQ$2W~Om50^-;c_Tpv0=c7hgNIiR5$3TZm#QgJD#{aLx*6 zk+`QT8u40D|Ls9-)Rv#>AOKnzp6RCoZm|AS&?av&?X8;Sp`CYmiPPSzNcR5vTqSg( zAv`w>hkP7p_8U1AdDs}waYNNq%`Uz2uqolO_vUaz(ZqRVb6Dw>^F?YT@Aro-qc;+k zd*RE&FTONSC^uf)eQ6+eGo+P-basKpEKfS$@pg?}^-@PDKm8rsQiA+4QK{%SU-ZLM z;(U|8c&F0zg*zSO!+aWn?^L}dj9#~_Zw$OUlQqD-71xh!HU!JAUU(4_3m2Wdo;tHy z6l^X#*CdQN%a-hn*6#ub%dj&cl#stwdTEicn-v0AHh_Atoi9V;YFzMei7n0^)Ffu* z&kD)lTi^Daf^L%Oxqrep1p1Zq3n>IvR!U`NO)P z1OjvxY>m?A)&}mGqdqG=v#W}GNBwZRwMvrNX4$$qRB=sZH4gZ*oD0frEEQ(>Hh;2` z@Ai%HSR?KM#7uWjbrU_S3X+LEpuue1893B>Gk%13qHAGetMB_fr{wuY<{YQ~DS z_3yDf*D#Jm+w|3F$L+#Dc8oCnrlDNY{kwd-}3a54eA}|JXr1=jBvA}h)^|bz_ltgL>~YWJ>Ab2a-er@2}{RZi=nxq zwt4$Wj0z2k>Dl_R+#{qh)5cPcg~;qtb=AjBtmbbnHgGlc|ChP}&n*9WdvWq7t3D-& zjaH5*pvKoTb+QDXes}aFB@aEFpY=Chq|F~Ub~E;7*qA-4N)j@xe%0i>)2mtVE$VK| zPY(ogRp8z4lb1hH-e?9-y&?9oawE#wD>sS1^|{MD!Y0Z$Ud8Qil(1!XRtrAJtb9y< zdE@<&pY*?A&4j*EchEPg3-}y8eeB%_B~XXez&__3naNO1Fyr)wq?&+Td{4W#I~g2trIn%~BLmjJbYBRAWyvE@jDC@s@_s z4iPOC!-@f^VL)a((H2M17bzf7GQbMWZ0i`}=!?p>OX%TNnh7O(cRR+;D<&*ox)B!l z{)EKxuN)zb1)m;VOA{D)F$6IzgE9b&#egs35~qHGR4@!2SO^X6`Hsscap%5)u|~R7 z1Y@i3A)56qg@p!SStTP{G4M=xhzWr~pd5&%F-S|LOeKPNNem6NYy4tKO$82{b~mg! zQolW7`+-M}(U^kJph78zTgHhNyaX&3#6|9`H7}QWHk~<7iKS2UyKo!O#sV3@+uVajZ`hJqji8U(?fCwTm@M9VDFyP99pzS(< z1BL}YbiaYigQ>?U+1F!f+5ZNw;wp_vpA7t)l*T^=lqqLs0zNQxK*3HlAAIfR_TyFA zhbjHQF$ZB8_|b`Xc0kh0$x<}HLjp>TNwM~k?|s84Ek7rH*ePdA$Jnqg6JVm0=pUV+ zJB}F$JXB%%s%VvOABib}0^g;0cTBK%g-QHE?=pq zZ=fs_1uf%(YXiBOd2VRt75eX&?fz86zkGQ7%jO-{UQ7lf?WaM-g86X;l3nGBSfB{n z`)pO-jdJK+DuhH0hv!~%>%3ZFRKg{dfQogjbgDFEbdwHO2Zd`K5MXF(=AAH*2DWOK zS9ur%FG3+w3w1v}s=gO$yda$#zKsyW7PRh`YT|$?Q!ae3s;{kBb&q4}-V>K@`!5qp zR|?C2B!Cpl8H(_EY$CP1uflH^IZzE)YEDd4e@$51UO?LHHRZhdOzkW zEV%OSW(hjGI=R92x{Oj-k#34N>wPp3^Bbf=V6dmcZjcci!1F?}cf%fFEJs9SPM3Tf z*)q*Fa zoye)MuD60lmBYE_QEKxTg>#CcOGd;cG%{RG^aYvY0=UK4O5xIXq;-bu~zoXsa!7+h#(r)A6-{c4k)|td`-nA3E zysn}qqIU3tkU*q{6ei{#VjBpUkY$bh{QLA~w;VRH_ z2iVD>m!9?5Hqx(ezP9uEB5N#wVWR66{!>pH4i@HKr=jUO{YQCTxupkTOHb((vk4Qj zW8KF?hW~&@-}ID@!|t9?;QW_*m@W-kfuiS4?do50v2FHIt9|zX;JB%tOQ}rk+J#T? z&YubfKi=;~Z4M$r{i#?6H9Y9zo1S3V_A~-CNZR@NoBqGWx(>e-0fLlccLa|+#hySZ zO=Sv44^|$gu`%0jj`cBm4yfC){-Z(-dWHmbm^j`bMP|K4|JsN%D@xVdUydKJMl;yb zhY#;Vi>95PyNsykUibSGVp`)%B?HH1h6>!7ZeX)Z#2*-zSW7FS=sOs$H0zZ2P$>*k z3Scz799oESZVMfgj!*dfsqV6?-64SmhlQo!ChoXSq+%aWVn=Q3$AwjgPX3JJU0H|d zkQ6K|sbn(lgz6U#V2TS*phAbDTy>mET);+QS8II#xHCoJC(F_%Qpr{K1Dp=&A_*!} zLX4i89)osd)=(nyve|E%&^ZA>%Y@nk`64y zY$Ao~cNYb{mYOsmH}y0?jVof1Wgq=J z{iXz78ZjBNT3q4Uo_8peo7lJW*~rIqE?#ERx5Ib&REDok#g$hDqk2hptY2{Vj{Bd- zwUG#0(?K1+KWI#m=;!_DwSEbLg-GFqG{k-bV$R< z>Z`~tJw9NhzX>!haM`n@?20?2gpjR#X%%U0e+JRg|CjSU;W1+$4}T(OpBcwf)S0ac z*1)q%w_vEO+K@-XDw+1=-DUb|2>}TtTP`pFbNz{i#JS_2;GkhOj z+_tmYt{H&(aDNV!+vWR*z~qK`>*UVpL}E0iF?RNI+#2AMU*~AB5cOF{`UG>=H6zOd zx!%%wTb_Na6aLhFWsQA-3a)s5!{U73r}vO%HU=(r0v+i`)+{bZhS?%LX{@1u-H9kT zzKt$<5~_xaKaODDiUMyp@fPI z464SRxrJt8sE69Z!wBVCl0eo(Dsuq!ime!;oz8jVMEU;33^sVP?=$rBjO#>MA8e!F zaqIN{HR~gt@lP9epZSR&zO}251E50B5d@OhF&?I!g?PuJGZUpX4@fX0>f7xx&Y^TQ zhs^O5u1Xu-aTI)k`XzuC%dr=e0(tY0dHODG(kBTcp>uG_X6l`97K-R8+ zt8T+eFyC$8u_II<_(XVP3 zQxD0kxs+L&;B=V#fzV;UT+>gS@=(VabK@2^&auJ1-%jTH$bamCZbYsOcP$2kPOu{K z>s@#|m3jIdb35raWJLK#;Tjk4r%VYv<|J}r?r+b0iNmFq_nlXD0_6Tb#_swl%CHUi z{`M}tbi>jh;nLlm(hbs$bO;D6-7PIHAp#PMG$PUsl7b*g3JM~r7|65teb2n}{_@N` zf57$2IdkpoT<7sQzJG*Y|Dk9*jI>XBwu@fBH?ev9`}&2YK<(~6S^C?@KX1!t@d4nK zza;-rZv$?#q(V&H&CIGP1WkYVjA`S)5jjd)fuO)D%8H(En9$ zb2U~=pY_Y7jWlcs?i~z;;DbwcKl9n7nbk9e9$U6qe5HCecTd)b0k62#PUhZ~g*0}{w8q%mpmo-A3U!CW zExVeOML~4h>AMBY>X4h6x#)m%By$AOMV~L63fkS#?!AJNvMwRQLSL zN{jpbwsoB|8LO_jsrumt56jxucLv>1J$|6SN#$M*r*ByU)7D&=fp3(vv5?0pFy#-V zFTk*|zm=|us>Qt%G-|zN8M!K_hE4KRL}_=`X>5W6Wi^H1bQOVVi)`X zBXC|D!>1l2xaQwq8U!oveCpEfTE=07QrFgYlr_UI-Jh8B%RyncvH=Y|bb_yTMKV3- zsJ=~KaCTf8>zOpT4Jmgt2=g`ptT2UMILiR6iOj@2t9=?aky46@-mNmUAf*j!YkvI_ zD|~*5WKdKqPnedFn+|R>$uKFNx&>szF=nB^T+bKJzuGg@R( z0UAp!=kWm6;8D5t^AurDuRxtcD!nkMbMlvajsYr-E)=(7dfXDjAq@-fIbo~pWH!aa zG?8s??631!f)@=om^(Ked6>uBOE1_AiiHjzlYY%iA-PY~0P>8p#bAu-I@cm)ncfW~gVqQ1jCvX}_B+9py8xnyt;)(f^C-Sws{)5b+L!*a>0J!)-n8 zQu$@U$kliDyoB0(^lYH_k_ADuMbNO@6}MGa^}@@+^52Vy?z0I(nGd+CbRD{qBH>K( zyf$9LHvyfcw#y9~45x3jeV@2Nf+ko!7XuZesaIARIy?-(hMzIDCAD>KN2Xk-xZIMAf-2;XdOjtc z%kkS_zP6ur_xyT^x3E>k;y*nFi{AEqa__%go{>$fWnP!k7i%s~*J@hKdcRC?%d%D+ z%~_otd&xoKv<0Az;1$~1(U-ef5ZYdOMu^_xVKOzr8j$KF{QWzWk+Izua0Y{&SQ8cw zovO-sIC>42uA;vN&|!SCV%~n(#G2=oIzE^y1_7)0+TD5?8@OWo1*#pEyRw`Cb-XJd zh;yv94RFOA47caCaQw)0NqQm<2mjDF`IOASL6u7R?iNC=!06wx<7DA+8jm(so~ zFZgP^^kW-8Bv-Z3Y4oe{k8L8!nhv7kVr#CH#Eebh0P~%osxLLIvV-BIEk>N5>FGIh zY~${+^%g9NQ7`s~?14%Hd%Xdx3v0KP4EwceD>|}Om9IPoR?pWfsaS?5e zS(m3XN$&TmWW5VDdG7p=amW>WG{_Kb-I6Bbmy68)0QWsFQp zt!UJBU?y^$gw%X({>gQ;R<9V*YlRK8c;hhWWfiiR9R#WDJN^qq8Y2^d!w_Ar7sT8w zXUUTa{3e%~=uDxb`?LSr+n7Jz7#il%FrX+&ug1*j4`&Ki^mizK&dXL04)YMDRT)xX zicE19Nl1>P5RI>@CRl~BCw7>-A1iEticm?81^12^lZ82`h_LI3ntwfZiz~lgUS)n6 zvoE(}wgF*zV=BJ$8$+lddJPvw)r84TCZ)YMq)EOWqct$q!7Mw{4Hquarky9c5j*RQ z#j46~8SXZz>09RW=JGjxlP{eAwGr zR(Sl#C(G?G5k21$EK}TcJYaQC;FYh3;!bM%Z0pfAYS~<}Zm@{d;Ge#40n%SZ>ft(*XDy=@ey3t3V>&Dl zzr|;}YI_tLl+*>dJo}Oi6y#flSSTFC=z`uT}H9-@NE( zQr~`{)Vl<1q`OV;|3>}V!Iy9Lhi!YkH&2*N<^FPHlS6mJ~5CJGe zPWFEr1{>1JoxXTYV5?kSoW!-1madgVLM7d70)$7Eq_2^#H$e1oI0@c?wO7hCOhXud z!cDI_3x>E$e!5`% z37Z_lEm06Xr34`lb$+D;9Y8#r?(h@fPt*XFa5IyLQ#=~VQ zID-bl__-m36BYhk>$o*ti%A2U;d2a997y<<4*D3MHEc{-+)&_!%LFjM7E}402L*2z zdIlcOXcbPVgf77wP2SMP3ci;?EYDj|g( zESHk_3i7n%A>Slu4t2F%m9MCq8u=uZ}~{ z}>X&zu!@Av*e|gJmiDNXt7*Q?IFT0RE+x z^kV#{UtP`ZelyJLfymi!$E|OVs9F!<(T4FPK6jMl?h;ypFOQQWP9aoS1L$6!W-R1a z0=oHKA~6Di}0ZXvLk7_UM7fz-&+eJ`W|J-e*EU%5qwg0 zidCwGsxJ1Trtx?_S!fL~9zdmmBG>Ak9wd^hQdvZ>O?| zmjMhpAf#Y!)Ey&PD&vQjQs0hMwWV}mM4VyP0Ao%bpgxRb0CP)^jT78fsAo{@+R_r7 zRn3-NKxe>F$a{9xK$>EJ<3N3SiY{d_h8}CY-aACE-ak;b^w3l?X5h`DE;EUtaV-dh zKMR$<>f<%I(3+BpxG9vg%5qIH&3XBuX`1Ju@!@u|C{FJR3?fbeu~IYgitE&}FEceI zsMjS>JT$o(E)*6v(=$~dSa}tZGEF2d$l`AR5J&MoNmPt7vX!T&@C2tbDH;$fI*zJo zCYo|I!ELTpxo$A7X0hRvPofXuHn@4(8=#8o5_t(NiMoPc$hsU5) z3oWzBVa-Y~i3RO7<}zqiMP6HPs~@weDBNQqpJ8}Q^p_alYYWK}X^J#D5LhbGwosVT zOnkO@T+%|Vr<^)FY};;;j!-7p8K8YEf^xt>4WY%DMSC=maqHgFkeQxGf(^wSmHvCV z8Br2hL&kDx4q`6h(zVg1<^-gVw1~0DZUa{HE`eS#Q2G$McLiOBmu?;q#*${AM z#9FeDzuDDB2NVrHHZ4rwg6j;trjfl%6&oje9q+gW|R@P}6)j;t?)R`f-)NJqCx5xoTS;_iOpKW# zupIO0#)Jm57-$$zl=8B6N>e2hLx=+yca8%VT#BrAb)(zBKb&I*lIV~Y9L=T_0|0qs z@{jBB@WTZ9wR<0*h`=2H+f1L%C_mZIym_pj8-5t4Z12V}5KA=y@z=_ZDTkYG0UK`i zZ89+g2#ojDJGRC>PntIfakT%BeJKL3ENR)sYmOF0`;Q@ybWm2Vh`+ZnG22$J~@8F?+ zBm6k}5EW!L?L)sL=T5(xQH z$MG&r&^2ZY#-9@#+Hu$$VnMzJV8=n+4&jOKlYNvD4Q^uN<_@Yu0o37>1#VwW@i#SP zy_*;Zwjc1w(*$xlV3b4)4PzWV3P>^#%Q=wXfP~|?`<{|+Ka7RF#4mls+5{;$-I4t= z>3bw(Yue2sr|J9U457?EA4|{sb)3tQd;lYPn&6-Wk4#A&RfoH4L6wz2l-IH6Ue+Ak zt6?tz^iy|ky9_?e*o*fx!;;;y)7Id6Yq9hhKAFs*H#C?g4IsaiuO$NJqXdt@!H*4A zqX$kNDKYx^!z@oBGT1occL2&d>;1x)uFqm2yx^bdh`BN2xa+5%Dx^%Gd0&nu3Dq55 zz7r4Qazp}vBy<>h1n3S9By{+nypqrsh#vt`5&uqx{nlpiot7jntO1BBPr0`5^C8*! zeIh)c=2?s#ds_iS9e$sAwD5$>l-B=*GUbde>;Y}vS^TCI^;_G&A#=# z7lRyuvSGO?ZZu)BP~HImxzvTC#mS3)ud@Cxk7@uNEQvp(3Dguj1Z{&Q(%p3x@}qfS z@>n1V0Lav3qf~Sbdj+Jhj76g2Ew$hzZTHrysf=Sp6@uyU%Mm2CFeJsnEL%Xa?2y`* zSQr?@gvAh80tma~?x8P%I<+o31qpzFPf3VB3o&tCSR4(Ms|5-7JS=6AbI0|Kx2iARwr?CKY{d zs7M*=05fw)K<5Cd24b_qev%*~DWoFXX(Kym|7`Su4m3fGnLz4Hk%sl!DcHYTXU;I__=IzJxioCq1WtyyZ zfl*>Ko4^y^UB$+ILaVNH2rj_I?tr#pDYOByYlxJM^_eV zD1nex#OLsoZ6t+)$GFks%xTyUz8WAWWw_ntI9vMYqRW6&J7%~+Tvlq4b-HLpXD*@V zq-@MqKv%-~SFXdonArr7U~lsQ4xeuN5hZO}H(iV_b1JZW`TtjMPHg>5-aqicCF0dt zPEFE-uBU{L*=vrz-x+)%$rZRf7})3Dw74%d+ie7|&3A@foP670lfy1XQ{H`0 z{-Zr1D_hj>MDD!Z1M}3R<-rqg#}BJrL7)B=VkI^=eI;eZ{>iEL9Im$AZ5BKHZL50o zk&9Qvzr&H+b$g}$(ncs&y!w+JVDTAcbPtNkSjepX=az}CycAnvn|k$H#1Yk*I{C|q z9S3oA++sxD`SrP4HsiMs|gi2SWj{?TW z57SvWCmz0kW|wcI<4J>$qX&O9`sc&$L}1Nw%buPxD~9ib*ZjH|EbgNbQsIQPN4yACZL{JoZ&7*=S!e2&kDBu@W@mW48_LQ> zcw#>l_#2YX_I)9%pO*Mp(|_}O11YDYpY~BwcnIwS;~67Rg~>f=FeXsvJigZ+Qh+uY zAwkl)!+ws@?J8@&>zOO9H#gBI;5xs(z8erKejzX|%x}Y`R}kpl_PDZ@x>!K+#&ch# z)sxOb#X=;ZZKj=`-)>P~(VAxFCd)D*HL7*6ZfSHdBjlZ3*iV+l$;E?^g2dN)66@at z-GbMB!`yw=9!x*7Z3}uu)3Iq4@I>-c8}#6y-yc~gy4`&swO2YC zx>}V$sSvtn&&Fb@s|F6u6FZ%C6@4&E{M_tAI?WTa56H=95uaP%n(GJtYj>7D$(}wz z?gTtJjK-F`L20Y?mwwq_ zo+KW|C(MuEtb7h2&s5MNXE4bT7AUzDGt~oUQkm&IBr(a;5{oN{Z*<}O)oKsCQf2tV zJR1FLk_=dVQQ&+G;a-#~F^qHSy>J{2IQoNi{h0hZ)N~hlv^K&0btfJwPf|8CzvuRJ5APOi%37S(71cX<|LHP)~oWMK4DI0~Ct@(&&oS&pN z$I$GwXWh7Tr$L9S--~%blDfd%Ajdy$fz&!AZ&}AJHE*cK3vXKKapIz z+Q*-wV2J$310!j_!P!d2VCtt^Z#gUo?wfZXj%p|ENBIzp${3KR8TwSYr&sQ&iHK?@ z;Li9KwdRoWq6N>_gmYHFRgZ2Pmxon<3#%wB-!nF?>c3q{@Bl78E6Msf!qdqq%spA9 zW?zK=bojC)x1GyPOl1hLKcxCnYf5HuTd!YgPv>dlwANNoLD6xB*r~R*-i$dFw!l^D z$p5+R1l`0uos@|yHmXP7D*uuio5W3WNl3En8RHsz zgGdqu)3)PQp2+~*Q+|1d+)sIc@ zzOYWn>1--dZ*-@0Ds6ofPdiRDj|PpT-}jgn?n!}32dj`;ZzXiEAPmJo%fuhJUFrIL zCk1QCKb#^h7~4_fVjclh`x26T=LfuY`3OpbEL?^X}Yq9)ra;ZQ{q9^5^8;&F*Vy7976wHWN6_u| z42q)#>%1K=4V(w3eKjNRIb{Hnue+8=niFTs(z#{3>2CysVr_LMPzNecR;!k7d@O1HNjTyze<^@rhtBuVVR2USBqnvy~V zNe=$~3u6Y^YX%2=`=TAs@QzqWyqfjKZhLWvai654BKxHyLh`q356-c&#rxA9h;c56 zMMM9MZo0a z_{X!{{JuSIMd>Noxbw$tefvx?XWz^Xx`*bZ9!b2l8&^Cz&pnDdP~hp=pJ5BcCifi( zE6ObTMF*F4Ie$V~NYCi9oNo}=9o~ugHJkbIvS3{9NP66Ee0KY+wN37kQ%uCd!oPsl z0q53?CisV4(w`Fsh3t8cWj_+IhxNW?{vMRA=laSxyR!?-(#6q8D@popRJ4NK=3Chg zBYuFD16Fy(pe493`h8*iLh!uwC+}T_r^{LY>@MLq>i;(`ModhM=VB3TcPx1X`T6-B z1Vl3hB!vWp%LFA7&@v(-qHfZPva+%-WYuC6G%6G|m6cVpRdh7ewEnBg%!lM zanY4`G176dz*93OS7p35b9M8=JG1{a(>T2U6HLR`(p0?7|5r;B_R*K~F~tYd{+miO zRP(iR^7W8;V1+klrhd-0er|03YA^i5xB_*B0}Ye|E${>l@6WV@ZJmR?@%T(N#8xN7 zF+U^%Pte3d&F}llsmVI& z-qz`XczNcX5oMbBAU7*7B0DiFJ2xROJuffcHb2zAAU?Vv4e!iSin82_9~BlqsV*tY zD}9WoX4Yj9DP?(HPZKJhRt8{WA}h0wsv7W^%&#Uby{4?VrUG9}!!xqcx~8Otl7Pmn z#>U3lriO^-|76oLTb`7+JZpT}oZD8352jVMzliE6P3U;i^WR`vdvDLHSFhUpI*VR6 zRKIS{?62+bAN=)Z49~?zhDY*8UNnyO;JH}ac>l`y^y|rCycjE;dO0*TS~T5)cVl=l zR<+n$vDDSEG&;UChi|3*x0Z&7V(TmK*I%xW4z17qT>sdxG2F8;^>$+gpGw0kvHefm z_(Ix8d@F7H6F!pGwm1E1Z*FmK<97dO^k4Ty@ zC+DXpS0n$;qy2wGZ1VEs^5x#%kC(+h#j*o7x{@(1~ z+$`MOe7LzezWH~B=VE)em!EHco!tJty}bnh0Ek<_|1%eJyc>5=>v|#C#5f)Ful$Mg z>ddE}(#@)0M-rK?Z#@<5G=km}yDgN-27KN7lK;%GNMw^aaZJeeUacNRX4AUhb5GgH zobtxQD|f@@?Z3>vW2E(FFa6CP_}0HWTrJ%mbNW`|%VpOq^7^Asq}kn1PowQrj<`d( z+glQMD{dm^p3DTztxE)Tt=^Xy30h)#O+0HS+H0GQde9DAM+AtOD@=wMFmrsJ#!+ zc;8NyX{E1GV0Un6>f+<(E55AzPc5iOUrFJoh4ly5Bq}$pF-h7uVKeik5NO_WXX_=a zUtG~*(TK-Rp$jgQ_WXnonI5C1Da~De`%XGLTRQzJ^oeej(0`Iuf3Oj5>B&=CL@@NO zr1ZrTlNqsX;w62_;e;g;;R6?I!{?HZ+$lq?zGyAyY+`sg5{*mOYwWx-Z@-cS4g6Zd zIw8(e847=$J!3ZA3oiLk))C5Gls-sf_Ngf4cf<1-yEIp3dyg?L-jV}i*_{W(Q_`EJ zrPQ*8<|cFW-y)nRc^N%~+zy{6#s4bdzTeFP-_b#2bpE#Rfa=BcsaJxvSWs}%$fGpX?V zt-1i$e3>Xi39qeoV|{|Ns#F!JM&=j1q8tTN6uH-wx_2xOnz{ywC2#Yz*ul^8CRpDW zyBUr|@-$!XkSfd1Oh}3cS-FBUZRc45ecRbc7BNa7%fC~0oqg}yg*e4ILz zr5ZrOEe8g24-9fz6 zPA&BS-o1m)aWouY)zwlHy>pt3@E8Kip8*a-ladv~QPfMt4oJTF6qtt-M1OdYRpEL_ zrZB@f24%1RZ=Pi6Q6lrxm(?h^G`dc_I%43c1!<@rnBjda-Mut&(&@$#$yg?Q zy_!M9J~)n4d@!C{&oQ5D-J@3NN$u1RGvYa_Vfv4|miva3%e557uHX_F3k;Kn@n|$& z2yQU{b|{~@P(x4WJN=W1W~r%^I>AhN!R%G3SZ&(3M*rE0sn0sA1%1nr0kbd8zY=!z zOjV;4S6(>$gmvgHTzQkUeQ=;nmw#BEfa>GrcjkH3?S{?FDwy^8X#d-MHX<}qndsPE z(?)F4IJ3Qu%X);WZ2eu;aVr?pd3{&7s0orcFMQku6H`1!<$W$vC?IKUECexN zva(G=b{?{$>Imx1WX~K#8E9Enm2M*~zELBya1c5iJdWut>)n$iZZ+~&)07>uA3hXY zUSsbgO6f*Q84&Z)8RAs3N~16-h_YIMV*`n^o3Jy(mQ%pnRhp3|wdfXKIQx46##v?! zx>$($OsqRLA?%+x;(KjIa`<}V?X*3tHE=hh&6{o;NIVfMNNQobL*Zg5ncw2`C2CVw zI(HzU(@G?70sU>Vb0pR6M65XNz1CfemybKef)0*NABO*4D*c>t1!MNw6>;S$Vd0bA zQ_hYCaFAt(L%8Ky2`vF&`VW@l_jQ@cG2}JleKgHp#gZoddGSnN4>g4p4CCqWD-7R$ z9Hbn`N!GzR(H|XZ;^-F-P5orMh-mKI{}SO7a>_v~x)s;E`YkauvJ!UM45U7ZO|?4w zy#YPDQX}vC3_Ky|tH`>Y0DQH6IJ%1E_MvR+7@%_pwNghbugwO27MBlx=t` zQK@RouQcStZXZb)5q?4{?#1vHLbGSeVlMEmk0YT>cqhGzW2T++_s>7OljTp0$fBqq z4B;t>O7rgr&THAJk7o|v>UR!Racp+*gcMIuu3q++mBUQ^Bv&j>9`KC}z#amUR`bIG zS~qsjexhZSBhHejKCe-PhOuu=p$N5X^!g*;M7oh=dLe(@TtYuVx1I@I55hkZnc(Lw z<^V(yye((htdZ{(xq3A?FCQXT)YuKm5cOwqw0m;&vJ9CX3ti@4CS`BF%o=4q|IWTi z@U-{HLI_$YTaGUSjo$A3488b}Z+C7KGRYbal=7E&7D$p%%MH*GdGGe|SM`-eNcG*D zev{iTJYD|lU5{G2pc3fFoi3?N+ECZ7AjkqqxDvb>;2i8gKu}2_T20`GbLL)hu1t8xG8O3KGLYHV+aLG@*C= z!Ho`1?{8N;e59;5p+4r6$)M-tmjfizNJ0$0mSzbSLc~K5kv3cS^?~qr04L0fd#;w1 z4wOW*&bm;_fCHl9!1D1s6mK>4u1>H&wpFuSH=t9gsKHV^dq76}fC zkUa%S;HRFE@h6>7SsXCHFzG^Fda~GBJ)Ei4QdHJCm1dZv(gDUdke-5wbisjC2Z%35 z>E2RjJyrMrVv%~NC2|QM#yEiQZpGObC(6zPM?J)zYLImnB}FG?mp+U62XL2K%I4u9 zTRTO_;3B>zK}EFi2LwzlK~%0g9J6bC56#$t5dEi@G= zZ6!SFDdwCjF-*c>1+JnCw>gC{0pKK7q9NU6<)=UiCH$`$WFIBMn25jP^PHUreNTYb z17uRS6!$IB@<|!8e3mtmE-yXeG&#st3=yxS!tMQ2Y|&6>9KIqKr1zd|cOcFV2X&YS zVjYmyR78GCF|b_1lLSd7aYIjY;q1`D0&!2j>wKSw;^zQj7j#ZPZ;{C<B6B}r2 z(g1-4>OhUP7(H4dg>Q@AMWs!@e{jzMgkKWR3nn{95_00ea`Qm_SgEBgIrRibPY!X0 zVwI#{#nf#o1#1=l`*vp~;y2IbzTzYB`F+h8_aD=cy+S?nv>8m{C?$ApOD?StOOtNFr4J)$N|xW`NH)mKn(S{?rS&TQ1?HNDwbubI4bVPbH@@-kVT z5;$qSTs9U|Ep787tjSlrwV-D9%W!tik*Mm9sJGo|U#Nw_C5vP<*>%6k|pru2fV~8fbG0-b=H2=~_t4Xhe}JOwQkW zo;E)?2Wqf|Kd0=r$96=2Uf!b?{wOZ2 zE$(l9)%?I8a?uM4P|B-bX;qOmwyABjFKz$lPmB$3Jq|5kFeJje2NQl14vj2I(KeBN z&pgArculBm4y=vZl0~-j-jz*dnyrPm`FReh4Yu6$X9=@EQ8Sl~vToO1s+WAKfdTuT zJp-L=X(0a%>nyKsHq%Z8ZHj+{78RXjVTNE#7&JVMsL8CbKv!Q`BJRAtJA#XBY9RM$ zEYbcHa!)7fm~*@OjtVQLBTNBM zHXNd!>wZvVpI}0xPq+$aTu}tSrBd=OPZnpY1D05IB|oTiX2<_!7iIy8BofA?hHr2O5Xk`$SA&%$jeydzN-m-QE&ou-3fTn~ z{$}F=O$P9~%vwlpG-HYQUPh0akEYr(`3;J!1`Vd!c<{6b6pie#QXfOL_p4^$TXjSG z;z*hIQbf7=@Ja$T9r6lu60uw4c+=NTRn%yySz|b{%Ea#ha^Yb{wy4Y;lHpj%14GGU zxItA8BG;d^^aJJVQ+OegpiX#dIGJJyK9!3kXwj=kMPnG%r-cTIZuX-YfwjH^?Swo~ zQ$r}~w7$aCI-g19y$-s#oE+gQnK@7L2q{yVLlPxMA{aU?!6sgBC>fk%ymzTuIgF`S zQUN&<5<#Wnar6(Vh+>_ck%#h=?`U7#R z5|I~Ba@})+Ww1N;wx}BB0}45|l81GGo1~r-*?MHm&qAg4^oZjfFt6tkhH>}g2Z;`C z^6D-SZZmt}=Yf%trPb*M9#REaE?w5t4xsSdFZXag{al>?3D@+Q!n@WV>by z3=#zoQWdYxTIe9>4Q1<8i5$2@+H+{aJ6f)&6kv~#H#o8kr2)dQL8&?`%*uzxN1CCL zqq}aR6}L|ikzF#JCT%bA(46@dGjgn;Bklcc4CmNpNC-NFdH7&|e2$lF8P#IU^J@8p z)%e=S43mx@v*fMJ6x$BawM@|p3DO|#@O!Z!f<~+N`>}uusa-@mPH>r1nB)l-_GD{# zc#9CSve<68^H!Y*Vz$#7>#?0fc(Lj(!L`H*#MQhGgnxj@HCY7OY^QO=DG3fU2vHQG zAg*Y*D+&^i7V9;I={i6S>|to86N=E$>r*|<)5-)DZ!#2sE0Kj!y#6bXjv`*7Jgs;enn#{$__10fD zL5LkrPU?z<)sd6-Cdj4YAam+ODu%8oqqe+xuxU{pFZ#e{U;m%dc5sE{EYq@OBihRW z(O(JktR!$%a%hhQ&pjs5jV(qv5~=`fHXWd{g(QO5Wg&CeMj5%dE@8!k-FpDg>d|wN zpsx`@y zbcUM+9V&~cZx7>Nft$%6&XH%LAnj<9pd7Dy02ua;$W@8xiT|?OB&ip6A%_c6(FNb) zqYy76+M0$gYyf+)RwwhmzbmAQbhnfrY{jD>L1_5+BYQvO3Wft>ev5`jVqv=T1n{$? zEM}XXEabo72?nFKDb#lY+SfGLqxeMEw+iQCCZppg-){qaAU|1k#L?%mMDb|2h+-3r zoCu*PUccpSp9y~RP0bv4akYE_8ze#xVCX)PEn^{1NukVG!q1GWdNE=#))XNKvgq5N zfQZkekXq0qsV>+`t2Gz0OPf-no}hn0w+Yd>%f29_-_|vFn@|^Ze+dT(KK<3ZK(>{`>=OG4W9mFw_MqCjF7dwMje`SB0M*SXM96=uEHSb`tm5EsfQ9+;h|Y_{ z_iy!$43P1sIx(M>Atr4b4u93N|CYMSpUl~ox1xV#+t3jr5B|r+loMe4lNV;HQ>rP( zwQ{XFced3tXp=KN_Oi+PB$q zfBHmHF5VVaaW2~ep?wvo4%|@fnZYybm9HxaVyzGM*H?~KE4Mw|s#j)MTP#6?&8{2o z1c%(*J~3Ra#D7`jGgHAvc;m>4b=yDBdqFrU2K`-s57?b2S+rT2f6NdReYnNSR#!WE z$3){uTFzYNs%n&|>0OUz{zqTyXYqCYt*-aEZq0L6eLnPrF#1T$+?TYUn>#mtwQ+sc zyrlD+|Kwer$g9RDa$o!jyZTJL8fRMBd$GJs{p6&PZ6o+4s!Ja&-4qt(D)#@Sh?}?7 z{Gnj#`lE3FQIQTc(Y4Bhfwet`I%yE4sXwo~7uZ0`-b2}6nUMO}t>*zZWSY08`*cT$ zr~fdPV)Mh7QNkVKQUZ?9T2F39Y9q#p(Q72p!5E`O#%$ev4~M4u=fU;Blq!uck}NFEnZbanqYdS1#GeW{|R7AotW!~6Wh6t7j3OJ*7mdj6iC1PO&7R(zu% zUofMz-z#@l>_TD^l{@p&B`7rOqKVO5k|#8FDI@)|wl_ybK9 zY&D(lYS(9TdGzmMtEPEqkm8fv>GwBuaer2L%u(b$o}?E%)b?tgYE=5hp0BZP6d1}M zmVfD!c%HMB_2wH4weEfF{4?pAL{@S>M1+>PhFrckt+k(XQck2*A!r%5Zz>4mywoH! zd0YKJ2BuR(ZzRx*W893CvE^*nJA*UG!F0-LD&|VYo@hb#r8;FcN86R2*o3#-1u-G^ zsOmTa`zBb&imfDi_sOhl_AyRQ@Z0OPF`DX;Y7$Kk`{t>Rrd=0j(n60B$KFaYxl>Ry zOk15@tn!s*w-c&LOO5B_R+-j^d3Jf#EV&<*$?PuMX4c(<%@S*cQqrfX)OpFnLqLw( z1s8^eQl~sD+i2&cDr*|H+_=_+@16P%6U<3dR3QjS%UmZlpJOCi7%zvU@FJu!Nu$L< zAylCY{KQl)Y$Vd$9goo2HN0E+$DW8qA4~fmflO*op;WdfIkveAy%N8)4Qck6K;^K( z#=Ufr2rZ-1%TmrigIdBkH+JSVHQtsyin!Q?!dFo{v~U#}{!9+siZ53Wf6t~Tp+(?f*j={*~5t)NJ^d!oNoVZ!j_07!u7BZ>)3KMp-TVjFFEzg zL{0n8M99p`c>&FZ`FH?jHHwR`OyY-tdYmE4A#xb4tj26xV9K(q1Y(tMPh`c#(sOZX zWy(#OV1H<9Zld;V_Xe|7YDA29MAPLmbo`ZWz4J;#!mGD0=+r4@RH>*#4b2ihr<4C$=8<`*1POQP@RYam@k|~u`>gct4iSd* ze$h)PgngNJqj)G;hG@16w(>$<+}H0L18-_-0P*HAN2eRtz3R(dbEm6a%5W4|2z1rp zf9@M%6{fk;Y|c{SKj`op3*`<*Va_-YRPX3Ao5NOY`Z^v&{>dXDb`9&;Espb+=j@_R z*sfXCJ8^l9Rjbtk>Z1@aJB;VOpWMZQVVSmybjt6eM+@JyHDL<(l0Y|$A$9@A{>g)J z*1x>M=L$`E$wpX(p{dOL zob@jN;x4}@r%n(zeR-(KXRu}0^GIT(FY2ITw$Y)LxTXSJFfL;2@ad1vT49?!C_sJ> z!fQDoljduna~tL9BtE~mqkE^K{uE5*LtjAY{W-b(%Q&Zt&zoTVV{~7drzPV^(ZBGJ zmCkMCx!ocJe#6-U? zN5`07zJ9V!?;D|co-$736LFu1a}WYm*i$*w9b(nT5GHPVdQ!@6`VE&35?H6)wO8sd zJBfwfx(U`8WnJ&5bA9FOF>7qS$o!&qUN);9y+UIONH+6B_Xu&Y$`}C>=1a{rsvk*> zXs2$q%(eG3D`H`La-(}w?2Yk)XMMs050<#ii@1K`4wKq*Y!e>u-&+F=zjiOMWn$R! z2=orQnF(5I7^UCo&x&_PPIrsbPLSz6n18&r$v5+o;N2sh{>p!QN`IW^39YqcI_I7I zA}$CRuo72?i(s`+Vo&IB1%8yeS8ZLihVUwGDX^Irhg=--=iJD?zp6%qZ27)a&P-5V}?jvwn(5CG^Dz3An|ug z>iRb?k^`Mt0813=l&YVrwx58_6vwi z86X7<#rR7J*fxIfrhE_{$AVS%c-6vJtjH{;T1XF9k^*Yl5T+KVFrsig7k7}2!=t|k zDK6nY;h;*&H)St@)Zq|+v?{kiBA>tLbr~sTcMlJvs8(>xpsuKNNwRFWsGgc6bvN)H zKuO3p<)H@@AEXJ2e4L5~9^Prw(;oey^U9PwKXakzuZgnXZy}!IQEQhsoifTE`mm&4?V_sPBfLpc4T32Pcl}>Y|$7ocbRHh-ezC%w^5fy=-s(aiRBP6PRSD#$xP-cVkSu?`YWS-yqYMAqR&~OHJ*#z(^ zelX}*Le(}tdj_CZYh+Ca^)(=c)6&tdh1ZZTVln#$3(YP^%h2tJu{4F^FP;3eP1e>f>|s4$>Whvypv{Cs-(z#RDN z=b53@%kf!V3m@^O2qRac%ir2XZzr5nGbNc|<2iOOpY}x4HJC7pN=O+1S?KWRhm8ZG z#ixx-vM$`GYUPL4CRW#<%6eeJ75lvTe%0Mo-1!3e(o_+)u{s-_=T3&O%gs-Z)xYF& z8`+%(a9{x1NvBIeVuBA%Gk^m(Y+%;iAkJCHJkrO;bCUt|9dD2wkENRdEEvGKT0#(#66$0kZ!CrY2}&?0@*4o8#(

T0P$RjSBFhCSMN2yp4WCX}ow6QigWYlP9e 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

5SovVt#Qh=SLu+a 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

+fYMKRSlKw?BEKjmNqJXp)K+?4I7k*%CDl`~? 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 Ty^ Date: Tue, 21 Apr 2020 19:37:49 +0300 Subject: [PATCH 41/54] Index pattern management - field list - localization functions returning empty strings (#64055) (#64066) Closes: #63649 --- src/legacy/ui/public/i18n/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/legacy/ui/public/i18n/index.tsx b/src/legacy/ui/public/i18n/index.tsx index 4d0f5d3a5bd567..c918554563fcb7 100644 --- a/src/legacy/ui/public/i18n/index.tsx +++ b/src/legacy/ui/public/i18n/index.tsx @@ -44,7 +44,7 @@ export function wrapInI18nContext

(ComponentToWrap: React.ComponentType

) { } uiModules - .get('i18n') + .get('i18n', ['ngSanitize']) .provider('i18n', I18nProvider) .filter('i18n', i18nFilter) .directive('i18nId', i18nDirective); From 90cd6486e944940e332a274d6dbd181bc2616998 Mon Sep 17 00:00:00 2001 From: Jen Huang Date: Tue, 21 Apr 2020 09:42:54 -0700 Subject: [PATCH 42/54] Fix page layouts, clean up unused code (#63992) (#64024) --- .../applications/ingest_manager/components/header.tsx | 6 +++--- .../ingest_manager/layouts/with_header.tsx | 10 ++++++++-- .../create_datasource_page/components/layout.tsx | 6 ++---- .../agent_config/create_datasource_page/index.tsx | 9 +-------- .../agent_config/create_datasource_page/types.ts | 1 - 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/components/header.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/components/header.tsx index 1aab6d901a9926..ceb87fb048ae3c 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/components/header.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/components/header.tsx @@ -31,7 +31,7 @@ const Tabs = styled(EuiTabs)` `; export interface HeaderProps { - restrictHeaderWidth?: number; + maxWidth?: number; leftColumn?: JSX.Element; rightColumn?: JSX.Element; rightColumnGrow?: EuiFlexItemProps['grow']; @@ -52,10 +52,10 @@ export const Header: React.FC = ({ rightColumn, rightColumnGrow, tabs, - restrictHeaderWidth, + maxWidth, }) => ( - + = ({ restrictWidth, children, ...rest }) => ( +export const WithHeaderLayout: React.FC = ({ + restrictWidth, + restrictHeaderWidth, + children, + ...rest +}) => ( -

+
diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/components/layout.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/components/layout.tsx index 73a7ba8ec119d9..39d882f7fdf65e 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/components/layout.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/components/layout.tsx @@ -18,16 +18,14 @@ import { import { WithHeaderLayout } from '../../../../layouts'; import { AgentConfig, PackageInfo } from '../../../../types'; import { PackageIcon } from '../../../../components/package_icon'; -import { CreateDatasourceFrom, CreateDatasourceStep } from '../types'; +import { CreateDatasourceFrom } from '../types'; export const CreateDatasourcePageLayout: React.FunctionComponent<{ from: CreateDatasourceFrom; - basePath: string; cancelUrl: string; - maxStep: CreateDatasourceStep | ''; agentConfig?: AgentConfig; packageInfo?: PackageInfo; -}> = ({ from, basePath, cancelUrl, maxStep, agentConfig, packageInfo, children }) => { +}> = ({ from, cancelUrl, agentConfig, packageInfo, children }) => { const leftColumn = ( diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/index.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/index.tsx index 1ad579d591b211..3c79fe17fdbb51 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/index.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/index.tsx @@ -28,12 +28,11 @@ import { } from '../../../hooks'; import { useLinks as useEPMLinks } from '../../epm/hooks'; import { CreateDatasourcePageLayout, ConfirmCreateDatasourceModal } from './components'; -import { CreateDatasourceFrom, CreateDatasourceStep } from './types'; +import { CreateDatasourceFrom } from './types'; import { DatasourceValidationResults, validateDatasource, validationHasErrors } from './services'; import { StepSelectPackage } from './step_select_package'; import { StepSelectConfig } from './step_select_config'; import { StepConfigureDatasource } from './step_configure_datasource'; - import { StepDefineDatasource } from './step_define_datasource'; export const CreateDatasourcePage: React.FunctionComponent = () => { @@ -43,11 +42,9 @@ export const CreateDatasourcePage: React.FunctionComponent = () => { } = useConfig(); const { params: { configId, pkgkey }, - url: basePath, } = useRouteMatch(); const history = useHistory(); const from: CreateDatasourceFrom = configId ? 'config' : 'package'; - const [maxStep, setMaxStep] = useState(''); // Agent config and package info states const [agentConfig, setAgentConfig] = useState(); @@ -91,7 +88,6 @@ export const CreateDatasourcePage: React.FunctionComponent = () => { } else { setFormState('INVALID'); setPackageInfo(undefined); - setMaxStep(''); } // eslint-disable-next-line no-console @@ -105,7 +101,6 @@ export const CreateDatasourcePage: React.FunctionComponent = () => { } else { setFormState('INVALID'); setAgentConfig(undefined); - setMaxStep(''); } // eslint-disable-next-line no-console @@ -189,9 +184,7 @@ export const CreateDatasourcePage: React.FunctionComponent = () => { const layoutProps = { from, - basePath, cancelUrl, - maxStep, agentConfig, packageInfo, }; diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/types.ts b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/types.ts index bd05be2d8a558d..85cc758fc4c464 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/types.ts +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/create_datasource_page/types.ts @@ -5,4 +5,3 @@ */ export type CreateDatasourceFrom = 'package' | 'config'; -export type CreateDatasourceStep = 'selectConfig' | 'selectPackage' | 'configure' | 'review'; From 58aa4da1d253b201804caf4b98cd5d9d89a3aa47 Mon Sep 17 00:00:00 2001 From: Joel Griffith Date: Tue, 21 Apr 2020 10:03:45 -0700 Subject: [PATCH 43/54] [Reporting] Config flag to escape formula CSV values (#63645) (#63987) * Adds a new xpack.reporting.csv.escapeFormulaValues boolean to auto-escape potentially bad cells * Treat csvs with formulas differently than those that aren't escaped Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../resources/bin/kibana-docker | 1 + .../plugins/reporting/common/constants.ts | 1 + .../csv/server/execute_job.test.ts | 74 ++++++++++++++++++- .../export_types/csv/server/execute_job.ts | 5 +- .../csv/server/lib/cell_has_formula.ts | 11 +++ .../server/lib/check_cells_for_formulas.ts | 7 +- .../csv/server/lib/escape_value.test.ts | 34 ++++++++- .../csv/server/lib/escape_value.ts | 11 ++- .../csv/server/lib/generate_csv.ts | 17 ++++- .../reporting/export_types/csv/types.d.ts | 2 + .../server/lib/generate_csv_search.ts | 1 + .../plugins/reporting/server/config/schema.ts | 1 + 12 files changed, 152 insertions(+), 13 deletions(-) create mode 100644 x-pack/legacy/plugins/reporting/export_types/csv/server/lib/cell_has_formula.ts diff --git a/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker b/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker index b0ab274ced77bf..9b7964462ad4f6 100755 --- a/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker +++ b/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker @@ -195,6 +195,7 @@ kibana_vars=( xpack.reporting.capture.viewport.width xpack.reporting.capture.zoom xpack.reporting.csv.checkForFormulas + xpack.reporting.csv.escapeFormulaValues xpack.reporting.csv.enablePanelActionDownload xpack.reporting.csv.maxSizeBytes xpack.reporting.csv.scroll.duration diff --git a/x-pack/legacy/plugins/reporting/common/constants.ts b/x-pack/legacy/plugins/reporting/common/constants.ts index e3d6a4274e7df7..f30a7cc87f3187 100644 --- a/x-pack/legacy/plugins/reporting/common/constants.ts +++ b/x-pack/legacy/plugins/reporting/common/constants.ts @@ -20,6 +20,7 @@ export const API_GENERATE_IMMEDIATE = `${API_BASE_URL_V1}/generate/immediate/csv export const CONTENT_TYPE_CSV = 'text/csv'; export const CSV_REPORTING_ACTION = 'downloadCsvReport'; export const CSV_BOM_CHARS = '\ufeff'; +export const CSV_FORMULA_CHARS = ['=', '+', '-', '@']; export const WHITELISTED_JOB_CONTENT_TYPES = [ 'application/json', diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.test.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.test.ts index 0f7f01fa171215..ba527152a554a6 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.test.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.test.ts @@ -300,7 +300,7 @@ describe('CSV Execute Job', function() { }); }); - describe('Cells with formula values', () => { + describe('Warning when cells have formulas', () => { it('returns `csv_contains_formulas` when cells contain formulas', async function() { configGetStub.withArgs('csv', 'checkForFormulas').returns(true); callAsCurrentUserStub.onFirstCall().returns({ @@ -353,6 +353,7 @@ describe('CSV Execute Job', function() { it('returns no warnings when cells have no formulas', async function() { configGetStub.withArgs('csv', 'checkForFormulas').returns(true); + configGetStub.withArgs('csv', 'escapeFormulaValues').returns(false); callAsCurrentUserStub.onFirstCall().returns({ hits: { hits: [{ _source: { one: 'foo', two: 'bar' } }], @@ -376,6 +377,33 @@ describe('CSV Execute Job', function() { expect(csvContainsFormulas).toEqual(false); }); + it('returns no warnings when cells have formulas but are escaped', async function() { + configGetStub.withArgs('csv', 'checkForFormulas').returns(true); + configGetStub.withArgs('csv', 'escapeFormulaValues').returns(true); + callAsCurrentUserStub.onFirstCall().returns({ + hits: { + hits: [{ _source: { '=SUM(A1:A2)': 'foo', two: 'bar' } }], + }, + _scroll_id: 'scrollId', + }); + + const executeJob = await executeJobFactory(mockReportingPlugin, mockLogger); + const jobParams = getJobDocPayload({ + headers: encryptedHeaders, + fields: ['=SUM(A1:A2)', 'two'], + conflictedTypesFields: [], + searchRequest: { index: null, body: null }, + }); + + const { csv_contains_formulas: csvContainsFormulas } = await executeJob( + 'job123', + jobParams, + cancellationToken + ); + + expect(csvContainsFormulas).toEqual(false); + }); + it('returns no warnings when configured not to', async () => { configGetStub.withArgs('csv', 'checkForFormulas').returns(false); callAsCurrentUserStub.onFirstCall().returns({ @@ -446,6 +474,50 @@ describe('CSV Execute Job', function() { }); }); + describe('Escaping cells with formulas', () => { + it('escapes values with formulas', async () => { + configGetStub.withArgs('csv', 'escapeFormulaValues').returns(true); + callAsCurrentUserStub.onFirstCall().returns({ + hits: { + hits: [{ _source: { one: `=cmd|' /C calc'!A0`, two: 'bar' } }], + }, + _scroll_id: 'scrollId', + }); + + const executeJob = await executeJobFactory(mockReportingPlugin, mockLogger); + const jobParams = getJobDocPayload({ + headers: encryptedHeaders, + fields: ['one', 'two'], + conflictedTypesFields: [], + searchRequest: { index: null, body: null }, + }); + const { content } = await executeJob('job123', jobParams, cancellationToken); + + expect(content).toEqual("one,two\n\"'=cmd|' /C calc'!A0\",bar\n"); + }); + + it('does not escapes values with formulas', async () => { + configGetStub.withArgs('csv', 'escapeFormulaValues').returns(false); + callAsCurrentUserStub.onFirstCall().returns({ + hits: { + hits: [{ _source: { one: `=cmd|' /C calc'!A0`, two: 'bar' } }], + }, + _scroll_id: 'scrollId', + }); + + const executeJob = await executeJobFactory(mockReportingPlugin, mockLogger); + const jobParams = getJobDocPayload({ + headers: encryptedHeaders, + fields: ['one', 'two'], + conflictedTypesFields: [], + searchRequest: { index: null, body: null }, + }); + const { content } = await executeJob('job123', jobParams, cancellationToken); + + expect(content).toEqual('one,two\n"=cmd|\' /C calc\'!A0",bar\n'); + }); + }); + describe('Elasticsearch call errors', function() { it('should reject Promise if search call errors out', async function() { callAsCurrentUserStub.rejects(new Error()); diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.ts index 376a398da274f9..dbe305bc452dbf 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/execute_job.ts @@ -123,7 +123,7 @@ export const executeJobFactory: ExecuteJobFactory + CSV_FORMULA_CHARS.some(formulaChar => startsWith(val, formulaChar)); diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/check_cells_for_formulas.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/check_cells_for_formulas.ts index 09f7cd2061ffbb..0ec39c527d6567 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/check_cells_for_formulas.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/check_cells_for_formulas.ts @@ -5,8 +5,7 @@ */ import * as _ from 'lodash'; - -const formulaValues = ['=', '+', '-', '@']; +import { cellHasFormulas } from './cell_has_formula'; interface IFlattened { [header: string]: string; @@ -14,7 +13,7 @@ interface IFlattened { export const checkIfRowsHaveFormulas = (flattened: IFlattened, fields: string[]) => { const pruned = _.pick(flattened, fields); - const csvValues = [..._.keys(pruned), ...(_.values(pruned) as string[])]; + const cells = [..._.keys(pruned), ...(_.values(pruned) as string[])]; - return _.some(csvValues, cell => _.some(formulaValues, char => _.startsWith(cell, char))); + return _.some(cells, cell => cellHasFormulas(cell)); }; diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.test.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.test.ts index 64b021a2aeea84..dd0f9d08b864b9 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.test.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.test.ts @@ -11,7 +11,7 @@ describe('escapeValue', function() { describe('quoteValues is true', function() { let escapeValue: (val: string) => string; beforeEach(function() { - escapeValue = createEscapeValue(true); + escapeValue = createEscapeValue(true, false); }); it('should escape value with spaces', function() { @@ -46,7 +46,7 @@ describe('escapeValue', function() { describe('quoteValues is false', function() { let escapeValue: (val: string) => string; beforeEach(function() { - escapeValue = createEscapeValue(false); + escapeValue = createEscapeValue(false, false); }); it('should return the value unescaped', function() { @@ -54,4 +54,34 @@ describe('escapeValue', function() { expect(escapeValue(value)).to.be(value); }); }); + + describe('escapeValues', () => { + describe('when true', () => { + let escapeValue: (val: string) => string; + beforeEach(function() { + escapeValue = createEscapeValue(true, true); + }); + + ['@', '+', '-', '='].forEach(badChar => { + it(`should escape ${badChar} injection values`, function() { + expect(escapeValue(`${badChar}cmd|' /C calc'!A0`)).to.be( + `"'${badChar}cmd|' /C calc'!A0"` + ); + }); + }); + }); + + describe('when false', () => { + let escapeValue: (val: string) => string; + beforeEach(function() { + escapeValue = createEscapeValue(true, false); + }); + + ['@', '+', '-', '='].forEach(badChar => { + it(`should not escape ${badChar} injection values`, function() { + expect(escapeValue(`${badChar}cmd|' /C calc'!A0`)).to.be(`"${badChar}cmd|' /C calc'!A0"`); + }); + }); + }); + }); }); diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.ts index 563de563350e9e..60e75d74b2f98e 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/escape_value.ts @@ -5,15 +5,20 @@ */ import { RawValue } from './types'; +import { cellHasFormulas } from './cell_has_formula'; const nonAlphaNumRE = /[^a-zA-Z0-9]/; const allDoubleQuoteRE = /"/g; -export function createEscapeValue(quoteValues: boolean): (val: RawValue) => string { +export function createEscapeValue( + quoteValues: boolean, + escapeFormulas: boolean +): (val: RawValue) => string { return function escapeValue(val: RawValue) { if (val && typeof val === 'string') { - if (quoteValues && nonAlphaNumRE.test(val)) { - return `"${val.replace(allDoubleQuoteRE, '""')}"`; + const formulasEscaped = escapeFormulas && cellHasFormulas(val) ? "'" + val : val; + if (quoteValues && nonAlphaNumRE.test(formulasEscaped)) { + return `"${formulasEscaped.replace(allDoubleQuoteRE, '""')}"`; } } diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/generate_csv.ts b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/generate_csv.ts index 1986e68917ba86..c7996ebf832a19 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/generate_csv.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/server/lib/generate_csv.ts @@ -4,6 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ +import { i18n } from '@kbn/i18n'; import { Logger } from '../../../../types'; import { GenerateCsvParams, SavedSearchGeneratorResult } from '../../types'; import { createFlattenHit } from './flatten_hit'; @@ -26,14 +27,17 @@ export function createGenerateCsv(logger: Logger) { cancellationToken, settings, }: GenerateCsvParams): Promise { - const escapeValue = createEscapeValue(settings.quoteValues); + const escapeValue = createEscapeValue(settings.quoteValues, settings.escapeFormulaValues); const builder = new MaxSizeStringBuilder(settings.maxSizeBytes); const header = `${fields.map(escapeValue).join(settings.separator)}\n`; + const warnings: string[] = []; + if (!builder.tryAppend(header)) { return { size: 0, content: '', maxSizeReached: true, + warnings: [], }; } @@ -82,11 +86,20 @@ export function createGenerateCsv(logger: Logger) { const size = builder.getSizeInBytes(); logger.debug(`finished generating, total size in bytes: ${size}`); + if (csvContainsFormulas && settings.escapeFormulaValues) { + warnings.push( + i18n.translate('xpack.reporting.exportTypes.csv.generateCsv.escapedFormulaValues', { + defaultMessage: 'CSV may contain formulas whose values have been escaped', + }) + ); + } + return { content: builder.getString(), - csvContainsFormulas, + csvContainsFormulas: csvContainsFormulas && !settings.escapeFormulaValues, maxSizeReached, size, + warnings, }; }; } diff --git a/x-pack/legacy/plugins/reporting/export_types/csv/types.d.ts b/x-pack/legacy/plugins/reporting/export_types/csv/types.d.ts index 529c195486bc6d..40a42db3526352 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv/types.d.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv/types.d.ts @@ -87,6 +87,7 @@ export interface SavedSearchGeneratorResult { size: number; maxSizeReached: boolean; csvContainsFormulas?: boolean; + warnings: string[]; } export interface CsvResultFromSearch { @@ -109,5 +110,6 @@ export interface GenerateCsvParams { maxSizeBytes: number; scroll: ScrollConfig; checkForFormulas?: boolean; + escapeFormulaValues: boolean; }; } diff --git a/x-pack/legacy/plugins/reporting/export_types/csv_from_savedobject/server/lib/generate_csv_search.ts b/x-pack/legacy/plugins/reporting/export_types/csv_from_savedobject/server/lib/generate_csv_search.ts index 9757c71c19cf41..2611b74c83de92 100644 --- a/x-pack/legacy/plugins/reporting/export_types/csv_from_savedobject/server/lib/generate_csv_search.ts +++ b/x-pack/legacy/plugins/reporting/export_types/csv_from_savedobject/server/lib/generate_csv_search.ts @@ -173,6 +173,7 @@ export async function generateCsvSearch( ...uiSettings, maxSizeBytes: config.get('csv', 'maxSizeBytes'), scroll: config.get('csv', 'scroll'), + escapeFormulaValues: config.get('csv', 'escapeFormulaValues'), timezone, }, }; diff --git a/x-pack/plugins/reporting/server/config/schema.ts b/x-pack/plugins/reporting/server/config/schema.ts index 67d70c1513c15d..402fddcb5e0146 100644 --- a/x-pack/plugins/reporting/server/config/schema.ts +++ b/x-pack/plugins/reporting/server/config/schema.ts @@ -114,6 +114,7 @@ const CaptureSchema = schema.object({ const CsvSchema = schema.object({ checkForFormulas: schema.boolean({ defaultValue: true }), + escapeFormulaValues: schema.boolean({ defaultValue: false }), enablePanelActionDownload: schema.boolean({ defaultValue: true }), maxSizeBytes: schema.number({ defaultValue: 1024 * 1024 * 10, // 10MB From ee4fa9f1e18df9aa87e0034978ee4448997110ba Mon Sep 17 00:00:00 2001 From: Ben Skelker <54019610+benskelker@users.noreply.github.com> Date: Tue, 21 Apr 2020 20:24:25 +0300 Subject: [PATCH 44/54] [Docs]7.7 SIEM doc updates (#63951) (#64089) * SIEM section doc updates * corrections * more corrections --- docs/management/advanced-options.asciidoc | 2 ++ docs/siem/images/cases-ui.png | Bin 0 -> 312096 bytes docs/siem/siem-ui.asciidoc | 18 +++++++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 docs/siem/images/cases-ui.png diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index 20f22ad969687f..1895046e885b56 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -218,6 +218,8 @@ might increase the search time. This setting is off by default. Users must opt-i [horizontal] `siem:defaultAnomalyScore`:: The threshold above which Machine Learning job anomalies are displayed in the SIEM app. `siem:defaultIndex`:: A comma-delimited list of Elasticsearch indices from which the SIEM app collects events. +`siem:ipReputationLinks`:: A JSON array containing links for verifying the reputation of an IP address. The links are displayed on +{siem-guide}/siem-ui-overview.html#network-ui[IP detail] pages. `siem:enableNewsFeed`:: Enables the security news feed on the SIEM *Overview* page. `siem:newsFeedUrl`:: The URL from which the security news feed content is diff --git a/docs/siem/images/cases-ui.png b/docs/siem/images/cases-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..b513efb6647407801733be975c6c1c8d0fc2a420 GIT binary patch literal 312096 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%0ATctif&rE_w5iAW-AteqWx_9mA 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

u<^4h}^zlq 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

oBfY zD)s-QG2|@VaS^;z31H3|Y^M~goYqQvMEYRd&@}{asv9AD3aBN9JD87k@6!uBcU_dz^;wm6!w=#IhFsN*W33(9$C=7|# z^InX)D(+^U9{0xd-Wj1r_o({32Se@m$&q7TaO*uG<=gen8@zg>UtUY_2&zjwFeYpI zpwHOMAH9YQq5YaQ^1^}C$nvkP&TPc^gBQ5S{}oISo4?9^!2@2X-jX!>nrg`;(2Eo& zn&e^JL^f=!E}H=dPGJuQ<$QM~;%z|1C$GCl$v`_?cS(EK;gq`SZOL9>RB8!ZzXl=c zUv#~??2SBP5H+)~v_yQFhV+MKy1FW8&_jp{7w+%?FL5h(7uXql*-}ggcJgROHA|Gk z>eeWecq}}DJj696|5o~yZ&=Kow_sg{MKRXY1`XV1sr5@(X5tyP3L_6AXu|J61Y*6P>h(1{Z=J0iyy`9 zfa)(FXF28ZOuPAC7ZZo)J78;I(8qBjb2)x)SpWGSpA z7#W6zv3+igI89$b4lPyVB~UPGoi-cH2b~h`?asB!Tud1=E8TP2yrVugTT1Mq^F$R1KeB3j6KP&^bKO8tu6`$9 zif1&5e2;uq_cNAE+h2DAW5VugB^;Q6N$Y8dHWLn^>U7wMCkB!;Yu+*07&vQ|N_(yt zw^Uq|IZ0xr63ea*P#Z>6c9vi5QfTOD8?(FRtg@IkZflVhl9iT~_gVe&P~DV|Js5rQ zj_sXVI0i-u{+<9kX>%=(be0_ANa!E=O;FASZ}u4NDSXxg=x0x%91nG^{AMW#C|DQC zy3&SYdq9*wps6bY6T%~dzn$0&rfSV_5ZtZo#d_*Qlu#X``vDwA{7t}(wzSr-W%qwz zIBGlY`J8Q;SNTLu!oG)@>m1_jaZhGJ^$B4|K3zQ1m;T}4yU)L-8*lHt_rt`H=HQ30 zH;922>}+x^g4*;tl?R6l{H7)Zo?Y#XQ4`vq|a*2e&0F=>JZnapchD-W8 z+mwbf4uc_nD0nzc+CYYXQ1H$`mcP3Pluq2uH@D=m5Ur3H#%#>|T0;=LX~ZOV_vrV%-)WZI}DwgacVl55UG1hluN z_&=%B8s;7wLo)YgagR0F!(;W#Tp7dH7&@VRls>WRu`g{O|4L-VICAY6 z8b3`*jvOJeaLtao*A_GVdVP~fI1{#F97h{bm6IHZ-Wpv#?PgN+H0PZS!FWc@I$=L& zsrTTOjzQB@#|(B**8JCZw()r~4>;&oI=o7s2gDwP88*hx@^X+8e_wv!9Q-!nC$syS zlzm_baoLG8T_@vBf5m=9?oZqlXX}6Dz?NTbgc|NRm7o9N<+@0%nXvZj!n#N@09F&Y z_ZqdQfNR&}3&}zf9oN+_;zlwQMik1`OZm@&ex$M4+I3;CD9l+yN9QOI{Gv7XGBdtx+itIG85=Bhj!R_ z-d5(BC?5ws-|78n9_=qspx+)|7L?T=vqt>DT(e}B z=3(@>*Lepp;#^TW{1I$77{+s!bAttMNgWiP!R; z(&W6Z{ahQx!amsPMtAgqqvPi0i=SKe#HOeY*E*$)w5<)xquIfn@?MgM#uI~GJ$lB@ zbTv^1t{%=k(KVaSnrDb()YvcC6^+Qfif_g`#GQaUh~$egsv$)b5K-Z#8rC8%JbWE~ zwP(Iaqip!nmn6B4Y(14Xw%+RA>36ps^%Z0Vsu(VOY&#n>oGq=2yxf;^xh*qopNI0V z#B=S5BkJ?MJgt$gT(kC>5I0V)pg^dEG2!xZgzeBa;XZCA-EFp;F@z5{(Co!3aT}Y~ zq@wFiVt)O)gfd6BWJqxBBp>IDObTJijT~xXQZl+IfW)+wNh03gv7K3D&oHxa4QsrX zdy%2iAM@Mg>sNx$)wiS_r#_qbLiR_wS7#UJ#Ae%>dZry6Ghe7sBqzj~zgw~;ISSpm zWR9T88&KsR-U+jM+L3w(vbd18%7etM$+MBZKm4Y|8Vj)K>es z)Lor#?&nQE|1eo6)6J+MBdmL^Z=_x$#%{HpCWOY^_15~_l@xu;!1T0rfo_ZVx2SFf zw#kh9Oh3CV-FU|V>+zaz$(rNtt#^s>!R4 zc!yf6CAZc*y=xMnQ4(#nkrS8R2NAuPWS$ zA5Tmj)ODxD1>+kjkNL<^9Wd)~z5t`dc58)g#nP%Om|NAtVtQ=2G%{bHtj8eL#FU1eTIvO8y)Qj#Zgras?*x&2zL%PQLY za>Cm=>J0kfx0(vv-_pE9rOr_%R`PW`(GF;TY>JNR3_Cb?r4)>DIttUioMfp2KXaqy z*bC0C1*0?fVh3HN&slG?wC9cuD!i6B$1N!EynuW*vg;^R;+Y~OybZ8#S=yN@%{R<* zn7X}u@sB&@4q=HltS_$*|77lAu6}1E|MY{3;Jc)KuEBPG4}otQoAz^(WsTtI`iet_ z-Dy9M96gfxLSNtGITU19`+XC~z#@>*Js}}4wbyU?>B8O@_)C8XRNpuCb}x%9)tdHj zL|sn*mht-*#trF5DN1sEW8Y2%ow7arE?c2PN~+Iqa?PNMUq-UZy@N+nusBev&P6@? z#y?WR2BGjg3l}O>y2x%FrOmDa6p%Wx5Y%*~h|*=E zT)+Q|z4wl4Dt+5VnX$_tq6i8?W>mU}g(fXyK?DYnt^~*^B7_K$njj$=3%!k0rA2C_ zgoq>{Es;Kmh;%6-B#6{Nq7XKuc(%WD);i~V&-&K)z3=(XI_r0q|G)wgviGx}=PuWM z-S@@QVWZoiJCJT_31SVQ0aqO3&z8KpmUM(_&gE0@g(fgmIjZsFtK@y6xA6xOwG5Ok zZAvgpm=4O2H?G+wj^rMk-RNp-4=Z67A<g?459EmV7O+=8O7r7* zdptnCvuJ8b8o%k^rTR*R2p{RXC4EbPo!j#@&7lY?kAFxLD^zB*NKMsV4 zN*#kSrJiiByP%&!!6X`ywiD5UUI@iyKuBAv3q>;v6KS57ubZ{&zEDg1obiK~*7{gX z&J)31>=}S3_zim&j81n7cZ0S=XF>^kX&RikIZkLr#VYIa4BF|BY3D)NpbBOzsMu(B zh8U-7dag}b_4TOmT*0D#*8RQ*QZzy-CR&3u$Qe0vAp+m08B(H>NcMpi50o#=lkS%;#(~60jOBK6wOflkx+wQ?gc##v>Nq>E-$nm zxJyAPVlVMZV+2=0#c61Z6w=`XO;czAc<;<9m=v0FsY%VNF->-$oHjb9$wT{d1zYyR z=Nlz2^B3PAL4I^dEU*gBuF$QG|MVzz!>MXzs+<$FS~|K9VN5-AdupY(WH@9L2CrT? z2!_Y5Yt6@b(6k&knUv>Ln)RCBw!JQYW^*PG=#3hz@GAM?HR7GkJcNCAUE7JZIuEa^ZxZJtv-;@f zZ;NvVKqi;YsjZbD2za2U%i)K_+E``LgD#;4xa9yezu^0LG(YAM+n?3)T~a81T+#E@SV-uNP{QFv0^i$nH6SR2I;5Se2 zI7LleQROD;c3OH~)zGb~WvV~l5;gU%%sRt!bfnvJoSr6bg&&~!R@18w{; zQK2i}kVi6+EA5W-{FipL9Q~LwaWm8~SMcsOJe@Oe;BFLAjwCNV_nccA>!r z^*hf$x2F)3*=IANO**-}>R*z~ym2id#YE|HkzuD*@p+HpFsa~~^ z@mcgl$Of~Nv9jC`mfEA})8*hOHG6Bq1Nf_592>H@n@|&0z)j=7vj;p> z=ayZE%{lg52U6SB7Vw$Tk!3EKL1^6M3@)Laraf>c^P7a#OYsCKp@@Y9B3`&N;7bR( zOUwhJc4$&W#hYbns*|o-iT)v(DbI9_4JIx+&HC0ILKyq54c-{o5Eav8g*#Ga=9W={QwTcM=P#<=W3%JDl@e|Q+vlN)MG58;;{F{fl06Y= z+?lo4WWlZy%dbh zUhvc~RZbSyQ3)kt*Ix(e(*=Y&wKfk3-&6D)+;cjhfF%48^!DobqfX`?F{BA9O*@9^ za|bxw0~<40AMeuS05Ur%zq-H;IPURbJulc{fC6?BE+`*-?P1Z9Qt8&F&8G$;@1^E< zrsrLC%$-~)gN9qAV(ACm7&kmhS0nCLJ<6-lPqll`fg?E)n>w%~@EYm%6hOVS5dDK3rPuR(smn4!pYzA{yu-xr zGslo6>#Nk{84&(_Sc+-uWLDFcoq0YiW?RZ`hIo)b9qpoT$Mrf0kB+P>{psuZ6OdH| z5Z(JhczzG{0^+3Sui`eqvItP@avRVcv^WzDm2O@mADS0j+-h>Rst)qYGc?L&+^)>k zrnir~=`@`eeQea~9%mXuVaN$Ch4vTtxlO>M8J#HnbS{+I7mM4yXeQe)yihEZ2A-kW zk?{6W+VR0vN?%ObG+ZV{9*#M%+GZ8-8<2py(+_=2aKPv~HSgPc%-fMve){b`s-7|B zQ)LDf?b5tTjL_PecUtYy3X9;^*_m~HX1;+$dma#F2jHg@@ls7bpeX9w257uk6>9~w zu~Q^5Mbqho16WhUv=&&%y!|nB9mq0~ue)#Jc?O`)B+0jp+*fP&x9$v6{&n#7)tScr zS=dLfCeo~${VlgL`xl)Cj z4S=xaIml`9UU6p@^p$iQ{V=BRt#lMkOH}ODj|Wjp@WUmWcCizfl9)O+DA&8|r~?Li zv5_Fqa^gWAn;k)l(Q#Od=M%qs4gL9gC}c1!(#0T2f3ZB(@~gUM`t9K%&n#q9+A9w7 zWvEgvN!f|-|JB$Ss$&-lf7_iOQ-&L*?G%A#(O(D9l;#9h>DRMUqLqIZJ%HYV$B&!E zl=PlJUC* zp6Ew`{`LxQipr)(8L{C@_tT+!X=mLqMHYh;`hm%%Y?bvdgoBu~pH25N-MONbG;~RG zGd~A!>X;;3AvoU+f<8v#fm9P4c{<{2u8+N+;d-QT&T{>Bt+O5!(Ibe-C zG4jQ7TiU_y?XOywqY9sVs2EjS7x`~Sb`nO{>2n)t|4l9Or+=}CzDaBx?1!%LykOS= zrYNH9J9hL;s585nrc7K!kg^KTM$lbwp&;zHT)=yuAyC6g@U|z?f59Ul6OydHHh7}T zoh$L99S~`g^V7^&`r!ba@?wyNOXNYePAu*SfNwSXwOXp?#s{jl_2s9LIrh2w6wy>T zIbL>Febc~~5njB8c45G8hIxESTlL4;Zh1hzLNAdxq-73gd6_d^Q$u;E2(z}n?o~&n zQ0tOz)={Z-k5B6J`P@SD?J}AjvRA7+%j4y0#B}n~HK-A2dV5uS-ax3JZYL-X6!Vy6 zEgkD=3LZ_um}^(kZ8^yl2v&|qZk3M1AAnuqNhAggKL^k=< za#eI|SY3nIGoezWW6KUJbJt(h=8qLpzf`)6tEVkj!at__wI0Ubd`NUV*EWz|%3Ul9 zPDMA7Xnn|~%8V?7WB1a_gGcZA6{mXklXR&Wqp*@@PGLXch7iunBut}}uvjkPVH2J= zdX0yEfS=ABCnRCd%qUr~d*73$dl<%cG@kOa=fI@znXyY~gHGcFh9>hm4am%n?|$Jn zDQm6nb0@EU!Th~0(a^y@^UnhHa)hORQSUx~hvM{lr}Jpnk#2?VaR>gNQ8^x|bdFsIl4V$(54fw2K+5!LJmi&f#tdA}W6=!CH6xT^?MCHW;Crit z7CbP9bLL4Ub;X7t>CtufR|@nCO08d*LsP2sGP4KH=YLcvyVll#d7E0cJo}6FV~5At zrS+eRBrUF#pQz-l1Pss{HG@BwD7y@nykpE%yz&=it#IhgA|`chwOx85ts~RS6sTe0 zAK+h&w$sPezznyB^VJtTwZcdi{t)I|>;13oxDF-iJKjPy!#Z5M!7lN1^*y5I>)2}<-uJKN`l!xCXxMaJHE+&ojM%&~t6!p` z5cJ|XM?*^+jqs=)cWow*_g%S(=@Rc%@egD}|C%}^$~W7A>EkDjK*5W6*pSsph|wwl z2yM7sHPiv!W{1w!tS?KCNk_`=d+?>l> z9~RtjAe>E~@b?H(FX`?1h7v+m9C!ePz4D;w9#Q^PkGQ*%1lfg*7c@9 zQ|Q4<%&epR%aMti_tb=Zmi79@X5L~WG{4l~6z6f9J{XI0>i{hg;=^F1IEJ;x(Zhk+Cez@r!emoziM9B)(jT!eqI zK>r2z3($B8c*fR|8k<)*n!4%cKSiBpsI_I)$thqhRjXh0_?&#sn2fRse2VG#bN)ko z=+ScfT(C0Wa7qRpK|NAe(P*`$TWNlzcFESiIQ>r6mo5(y9F_=?k!W+>}TOQQ9NfPQ02~pnL zq@~Tvl+2aa3kO$kQ=k6B3+|CTq>!9`XlTUO#>y=yBfAkizf{v%X++*Xv&$ z(`6Y2YW{F@6|z>UA49tz1<@1bL6P)v$9Cuee1NZ5Tc}iD2jIB}+r{e5gPuA{SZKCg z%o7ZZ6&A;y(24$8``{ljjy(Uq1g{A40gIVE%HoO3;z1A9g=eJ4)}h?Bn|6Da7X|AD zvZ66D?=4ZQqUvw^0h8>nZi}O@3(nU&e~wC56xd^HlQwZZ{^J|NU_tL5L56;pDJu*T zr8JrIaypnbU0s9+%x$5KkO$&lxpwW4-Pk}b@exiP1D0D|J9Ku;-|4zo+rP%KcI9qF zr$$}(Ubja=1@R?w|JQ=%|bKAcc-q}8cJGjNu8K4NlUqr@Aj z71Yg`>NPha4F=uIJvOA^2j(!Ah+$O*A8lPautjFWInUS(E%s;%ZlCZcQFc?Lz;cPO zGbB&m5$LPL;5)?9T(hX@3G#k~k9&U;q?ifR{yB9Pcz`b`_v>nF@Vof(QXuM3$JXS# zW469G3l~~T+_;71`ekZIY`QHhRExM5tgV+K*WichX+DQrdOOrio&52ys;WMX)Q*l; z`T|7$YF+9CKfK>e8k9SKz&pq8;;6A82QhOkbjc>`7xVaCq0+wq=oT%cd_pmgPo9an zuIuk;F|;yjWus_UGrUTki)SxRgg&$g)Vl5}*l?)S7;Njk72%nJSK)3xNXk_f7I z%}D<)=%dV2wuMc%I8vmDudsp1vgVP|tU+*i6HOfnm&ZZIF^%nXNt1A{S9|s1I5S3g zfxE$0$vus{uTN%)u6XEwfhk>lSDV9z?(>u0-vpw>aTKCI^v2+9GF#%Yk*eOGWxbtx zzquG0zTdadX|=e7>Gm8*7&hK8H~*?NZXaRTeWSE)-6NaM^4(g$bNYV?^W`TC`*qo$ z5B4aJ7>)N~j)54J4;N~8 zRtVOsANmSixIUfx{k@>RJn0sjFu|n(nmXo=up_Q2B+56$)Xp*9h6}^^n_Ta>=;1CG z!fZA)C5C<#L0NxW7cGC2*ay}hv`zYQpnmiOF<8)lIEZhtrcY->Ug@+Ztn*OI1a1VY z>oI=11W#%Ey*r}BZ<|~H8pCmVw2dxXLg@`?cxYaMaJy1nYAN{m8<19ZqB?G^%t1|d zp*2Wg^IE5y3ef*1G!54RgavXVx##^`@x}nNR$5pI-qiLi(2M>ds>H7=^M?PxM>&o_ zvmq0pbT!^_nlKLGTf&nG+#oz>8<*VqO@fNzmqw|5NzB_dME^==S7lgE^6A3A0kH5aq0^X%=V1A1j{@rWxfSrrG_JA&&0esBvcL}Xw`sc#-at%4z9 zj-s`qqT==2`CnG}i*v2rD1U^1K&nk}pmFi()|3;;v6aKh!_DV^BX6L@aKfZ9{=Nm8 z8^J#(%AU`Bb2$RA@7Tg-;Wdq+l+*m==c1plgB^ zPpwU4Y{TVh!;6Ei|J?>WV1)7!IpzFdOo zT*iX>YTLoF_GwEXv*|A==eH;Lc|xpSC~hwlT*hNwP0jdsz2Kkn@SmnYxC|`M^3(0c zV!lb(OhHR5IACL_THU+10H+E>YPW$en8%M9bixmK$JlVQIA;VqFg4Rzttm2#ugrHo zB^;#a90qdSUUNxF@1mUbA|2G%mLy@fI<0%aC$Iy3%rUy!u=ZZ7$Drakcl>mF2IMMg^l01KGwP+k48KG<6`K~AD}Ajv~IQGsr*%=)jL zY;EPpbJwB|ha@R427cd>F0*0$vWfgXo1||N#$ZoscerVh2??t$ z1W6kcbod7WTD<$g_vi$u2fuC?r3r7c;p6gcQ%e12P%J2tI@34S#{OI|{c!}c8`IXI z{8MfJslEh?mhbKSfj53GBG@F!FD>G_UAz>&Nd(dvsM+5kPipX_EO7%={1~|w`fAOhN1KNF3N?jJ7eHT* zln8K`@7Q}G|pkQVO*eApn7grjQ3M#g(Wl zb=5(sDY}#HH?=07(5V5g=!xqKArti*qLRFP0s=u?7|9&RP zCT@(mT~MgJ=Qa*AKh)fGro8xC`;+J6MJPAR6REGllo8;uP4qoyb?2z@J;{Cm~?r!zC#Hu1YT`4`!=*es< ztVE@s6Z)z-@sQm7#TDikCT(jYJ@<7}jzPaLd%&77TsLle;dw+) zaV}X!`z$HC}1)+U|XA#a5HEB%;yCz!H*Y%%pIH46|;2n zv(U4zthSJ}m2T^|p>`kf{L~?{{o)CFjW#hsd}JPksKjQN4Yqv8>SLzNvL0NnZ6*S~ zAA5zj@?^#X$*OBlk%A%a-LRMzyuP~*+2`l^E0-C2N>3{f;+PYV>5lxF&PjLyklr^_$e2>lihXSY5fE*$4shmS7uO9BGq9dJK(HKn2USEc~caL zdCIi~^^wef1a_(;pkrC!_Kq_7XZNp#GM_oqT~)P~j-Nie4&R1~SPBH{VGYl*_s@?kAQv-`r@_{92p z2gi&Ye?hmK+o|j7RkvizBdmf0OLn(C3mR-@>iVNsmdJS{;&l?fp+Z0|Pi|1tzM+{;_F&*PSWLU1aUt`HU;%es z2*%ui+GvN(HcL^O*{>MuR(wrNr(GO#JJg%GTMSaGWNC+lp)Z?;#D{@C3oa)=D+0lW zZUge+dyx0R>VP%to5VrbVwc^J4))aX;Wa5Y_S+Th^WCls$ws*)am4ekC013(LKlXL zydCzrZum%co=wb1qpTsVJ-@_Uv2;jvnpJnamVT!yuYu@0M#MY!qfQlx59iEu#hFO~ z!IyaZo(Xg?+dA9$G(dy5__Y*<3212P9q^duj8Yjl+_d}B)(1| zrX%uFM*}LsY!?VixWsuCVrJa?Lr~JbM)`R>$*V&r2JeQ76wPVFy1QZ=>%@JH_0}2z zIzAb2NtZn7O3k;W%6s$5zPuiJ47+Djo2O5cKS2yFcXffN_*&umo^%%H=41>Ns1^B* zTf)5im(Z2A)~)bY1{_DQo?|4+HQSEyo8bEb9l_idVW1DMh^5nMsw!{-P`qGEo*bR6 z?bx<)UoD}kNv+%uCqIhS-=et1-oUD9XBLD81|tIRWsW?da;y(Vm&KFaJg2fKpF+w9 z!pf}d?H!uJ3yVvTs1T})f1E>^g41-pN>8X^ujg5t`N3B;FwQI~sc($VcLE`$J35cy zGX7?V+{JyKhj^nM&~e4fKr&(XOcr}*5m$bCu1zwle~oz2lgrf6-DyP|c2n}&I0lW2o3 z>M4U|)Y9a7PiTd2m)DT=ysrB}TSOq-8EjSi>Y5w{zv-5DJH0t~sNVBE!=$QVZE~d8 zv{*%w`YyWxRC7Z0t<(eOz`9xsShohtN-}gGW;8hLgx(GXLH$=FNrH1ieV%t!&3Dpe zHZ&oCromiraUCZOR|YP)-ZxLq5|!;A3EibVw}6&U?Kyg%9vgbqe5{f00%C}srDylI zTQ#vqPfVKTmuYX*#)IJ+OkHR{v(=2Y)%DiIz1Ly8enxtVLKk{Klo3qyER+>KaD-=A zz1!Mc(ik3Yn25^*6k}M<0#-1Q5UJWKx!b2HM{>@?Mya7Y@YL{E6(8&`>?RE}#CiWP zM&{dhOF(8pB;a-P~lcblZy z31>bnZmGqt9JEe0e(~l&Pbr*fqMw~f&{~POG5xf6_7Lo8!PB$n@-(`N($NlXrL=(j`gMNzKxp)y(2^^zj)X?pt#zS19_o002>y%5#Gs8oP&I{%K7Cjs zY}?TYm-al1D2ikr%Kop|kJn*uQ>WaI#`3SU2p`|tjkwddAYpyUO#Mz^BbEK3)WbCAHOH|RcM-VwCbO(=JBmWE#$E|BO+V^03bwB1f z8^2u5TNHS3>1`-wDQidSFvTu*>M(EPk?=g*?f?eP)``j2prk4Bb0S#`$BVfwx^knI zb3N4a_Ot1lWvb(WW!rO7LI$aWU(jnRUp)-Rs>&9=+PP$p5}CJgAsB&pPln)@xE~6N zYZcLDaC%5)4fzoi(KqpEy01<8q31rpp9_+AJH4j6+CXJxtmbF{m89m#1ML@7QYXGC zbf)=^hl3d8?#Y->e~PglB;D0b($_fYZcbdO7$j<*NiiuKNXtnl^{Nh2EUAa9m^rTL zVB4L|n3dJYJc+Tf<`#xWu07%>iL%Uo!@2|2V8-*6*B4EN?sY>zUS)Omy0Q)0eM1vO zwqT0m^kEgZ2Q$ig=Q1S|KX|42k^N9-BU|gprx>T#{o12{B!3RAN2Vta^P;YH>J8FY zkM}65(9hmqBoWE1Te+}L6AUKN8bS9Yq*&tc#O3o~h<*$>$3@SiENct&fiAvR7T@W6 zX(8bYux%!$-Nv; zHieRV216pPCLBk|CU7pg4Q=C7W><`OpFLG~ZgFo3=TwG?olb4AO+!|$Hs4QoRKJc2 z_GwZnuP&wQyiI%M2IVdgr?ReZ5E0 z@B0OV?wXPT_y5-!gI0!P7f#9UFxC_*VE>o669~Z5BcL9 zzt}GBKG+LkrjF|aW#I^8DXk6Y7A6ExyvSuP*Kyg<{eYm8DP!VOWELZzNTzA~eUp&F zZmYr?aBR$*B_2c z^jI14DoKqWU9BCNr-`FTTH-x3yxJcAuON&87x#VzIhp&Ulj*m>&c|JRJD`l`XrFR} zCyDX7&fR!3!MHWoF+$tjjFK!ZDq9>ad-1!jVx*7N2kn4ox8+CgW1M|#D?Qx4jtu|i zaApwJjfgOXLTsP-X6Q+5Qe4=+f4}Xx91ZlrfOLAtP`Ss)*ugyKwz9 zRZ&hQ$ewsKPF&{ji0#aSU|BKWxDgl>TtYy0hcLEvFeR}vl|tyS(AbA%7yXriba7Ma zYLC3r)ge}ixkk8(BuGt+TVO`)4IHA*JLTyaI9LVRr&^uDSqyld$P7Hg|FEdBzUV#woa(_KPY1Aa6hU`?bvnmQ)RqWg)qu>wfED|Y*l zQ)(Y@IzlZTxdjsKMt`V#hg+3}dd>u(9aFNr>qh3C-J5BewmA#FGCy=LJrdTC~e zJr1N52%SWKLw!-vr9ILAnH1GNNE%>KxF+HDJ58p(Noz_9DNhZ6tdm zL8w(WpY73E7f!tHSI2K~cSS!jUFP5S7QMT+3v+ix>9SpqmDM3c?^J*8ZBBFA0)2fV z*iv=oL>+?M3^Brf2X9n?3N}i3V6;=ti2N|iLKMGZ0-hnc=S@RY%&OjNtcAdUDg2EB z-_|AdmOw z7$e||t3k&g)MlkbL8)0_-=Gn$PrQA|M9W{-Ooi){DBfc;lV=M#Fa;QyYPPl2Dk}|! zGGMLa(FsKeqxClpH7{uc#R*nX{v~&dJTBNH3^YSEZAv#BXI+|eXj@ypZ|^ncG22t& zTEa%qf}}P^Oxe#!kGYEXHVUqSzo>R02+Wu0)f>^+gM#10gZORYb3lWDMTp0#Bb8M| z1-AjOV7<%&_NIR*^QVOdeA^hSze-QZ)sB1Faq0Aunc7Gg0~2#`V9nY-!mm_eFY(w5 z##LJl>kM^xX;K~9J7U4VB&-9`la-SZ)NQKQ+_0R=p!Z*&`z8@U2Goe05`hOMVMeD- zgnom6snagK3)pDyj^rK(yZ@5o*sI&cLtx;W^4QzR3+B5emG!VmF*tZ8tendn?fsk!2i(^NZ4W_QR=H(&M`#}ImgaA_EFx9N zXV=^t=z@s8l9Vat?)fa70+$$Vavo2DV^RgbbNLB{o|puu2@#RZSa9>FCUsI@a8A+# zhVRrxEHzj5@Z&zU9N$^5*cdQkQ|CP(GP@FU>FWP6IpJU5wq^5tgdncBqE?7sV0YFQ z@aS6`AQXM|$vFVt^HtTac*)s*Gb;MW+1FsETc{ZSKZpIHx~ z{D6*L9?nL`zTd=x?C0ijao}+oNz<|vB!k8lQRGHa(W$N*{03^&7}Gqot_??ajo?J6 zK`h?kiWjo;b4UvfxSGO6eIr^*#m8~KY+F(ZV`5R^PFbm+9FOtQ&nQ$>ndUb2k?Gbe z)my@#yqcJt=sEh~A6|p0w+KmOeURE==&knrPrEtGWzpf0rC|sG`fAtmXy|mEsEllO z7OTm9He~jz_#<2acLGrT+OA;tsL4LO0&B#x0uW8-%e&A=hKbdb=FGlpzLbhhe=9qorcK%ch?T5+RF?%v!5K8A0a9@-PCZi@9d;d0)~eE%%wCh5B6(qO*$mz z&T4rWxyLQ=JY8V?FLi`V=~*mk&Mq#w9m2Kgi>Dn04DdXC`~!LoIC=4nUES= zkz$AP{$?KWk@zqo4U^e9<1x&kNXsCmjtpZ}$}Ut+Anq5B9%wz_Z_J6)GsP#Gna;b|`ZT6ahCc?hDFmC5AGd#N_6#K9_J6F2o3>h zthr9qxV3Y=C@z#aKKBPO$kS z#Ie;+=~N0G3lUq?_XUMhdX&Vv(-RXDoL?OBG$og`epzsIT5NR+-%Quf&Hfs)H4aw`(?ag|x;x zAAf9B%4@o>&M(M(eXuT3*OGs@+K3Qm0^_EE$u<^RTFDEG2FUOyZ^Cit9bILrtyv%Eq&Z#jOZY>y@1%CfGsLFGdk=%lIsx>;ePJzoVW zU8n^3%PfvYCE&$}f1t^KG-oBC5+Pu^*Mb^5&gcAvbW>?&Mm0%sx1c*0(?B|+?|Mj# z`)DPl2d*g8M^Fxutj)42&A0F7A5?s8x))P^CIf9>FVI{MG_+C5oqJdBHXD`@pm%aJ z)MfC>p9}AYhMaQ?6r4ld%x`=Rqj4FlV5Hcee^wOV473F$+GR;3MtO3?JYeNs99Ugk@wac52r4I0I`HREj7Vqg` zW$bousQ5SGwt;mrpt??P^M|wg;!X6(LPwxyhCU8!H`C$n$Xk8L8Hqq0z#igG#qktf zheJ7dr%{rBsP@i@_9^9;18YcxclB_g@5cMQLxFoPRwNsbYjoNZtz>2IY?4b5Mq!EJ zo=vYZHef0mNv1ai`7qsCHDi)dORz`d8gjL+d2Q+mmpIe+P^=9;fs4W;kXFT28KIe| zoU$q_yaELCg0J%6j|=;kvF6Y>qH`=Ed>_`5)okrT;VDJeMUrov9;9C9sC<|ji|Ux= zRQhN=CR&BObl}I?N%h!`FYxBjI10;(Q<9@ zU)~HGp70$42!iuMZ{9B9fj$;|d9@gG*19hdr^HoTZYf$a+ov!ZQ;^zY4@A!B#M~z* zaFS~R%iCC+$tgDr7Skx1Tb2Euk?CDGRfb-@Np>XJ8g6AwlB}Gyx~&H8+vd(dLOtDT zv)G(F9qN|-j}L65BPznnRJZtFajrTxh2lZ@D*|Viz!o60P|FKt;sLr89np6XgJ%Q@!=10?(aMVBOd#d@NkqSKRBVU^J(xyV*f-3kyNQUZP7Pb9l5S^k$zGNe^rY z@;dx>u(8Rx*56N~)A8C|X}Phd`>WY>Z_&ssT2VVRBBY;iS^Ne}6UD~DGk~-~jF}k| zctCwd`wcUCox3Yacys0{7;lfV`dU4%d>I3eD~Q)X_CIItO2A%tKGA{Ma7$|LU6#2N zfx0O*8Rsi=w&Q)0Rnw4@fA^vDSCrqMdqM6qY+Ei}t4(2yHs$H*DcTBZ)6jtlV+JG4 zum%Xy^~`f{KG1(0Kl5K0nOF2;D_$a@75?QXD%kXyWCzYms~a{fB;4lV#ZWiHTZ0$40+`2%`8(v|NX!!E|}f;a*RTxJ)6o83J!3%ia-Rcw)Fa<> zxPxn)pccIn-gBO5>bztjNEkl?vqMQP?Ybr~bZ)8v`&z8})BSmRWF+20ytHqe`Ib3C zC-xQOf$1;!G#`3kzkf{t@T~XMnkX2ou zvy$l3e}gHaD`ecDH4VEqdw}0_v{hC zz!@fDJ&fJ&0O%ZcDDf=f=+pUA@;p?ci8WGi4D7jgE<(Bu({k9&2JL(E4-bk}s%rSn zMocTP0PMr|9@6!IUalEhx88GVRcJU0k~8#1Qgd(Tu~zYCBk2{PUpTU9FjHgD9_ot%$3DS4fU*v!Ihm=A zS|l8_Aky6Mj;VE=#f zMjTdV1}cGxhaSZq0>-#vjxIBnxl4!+sNM~lBPqDqfzR((m-%It^I6(TwS~2r2G`sX zTkoG0`)wiiyf!8|GE51xB2?sq;ti0RPAHsj5($ zQ*l9;Kggt%63!BRXd9NB+I3=z>cEm#g-G0>6}kEem+`L_i3{RRCP;Xg&Q}0OMA}04 z`b|j#(kv;66+9-J_TWVUZ|-4Jc!8$}QUTRrZ46g-L zg!g@f$ClXV1iBa}+=qne*`4oA4a9OrNU!$3ilh@N&v-xa8Wuh8+&P%LqhgL2Aux>$ z5!4Epj57VKuXw`j7Wi=JH|c*$e}qnF2@j_6{kdJ>9HLXE0bef+P?hXDl(l#<@l`Au z58rMF0b-WB+Hv|k^I3mSj-m+&oi=h-~jyXWfpJymtsj6fA0 zUsG=!ag}KF3XQPu3k-};h}xr@`uScSqoL7CQyho0knEY)XDn*fE@!`@HF!$fE!o5~ zx$iu8eUo_J6%XZVS%X9IZCv?c9dRT`B;)QS2w%d-hM@UmCgl6@_5b)v$OJ&&Tn8Ci zZ#3~=-iY592-k4{I2y6Wr;S;|eAr}4LX3YhXjtcTW`!Q&RLa-6+?n89I~@^z0)~_f zhj*u+EYJ77INvxtbXMQFrqcPoV=?Q>-eULLtRosh%?h>-sjhDR^ZobU^go`_U9{{d zP0yx|j8bl`;qYNiQ>&gAKK>8<_AY1z#RC&F-3crHKEDAnQsi%c@&r*9OFZ0Y&$}#Bn2D1z{M0zRA!01j* z0Wv$XlvK31<-csR<1?Wgk;Sv~#(SZ+H5uq<-RnV_*!K4*{^nhpW1~BcyhB0u`frNf zcu*+RL5_drNq^FE*e$!XwGvAC>%TX9ZXdFP@CDqhuk+);kSRf7JO-r0 zEHUgv$1eYCT-(!isH4r@W|=g`R<%Z~`p?way!;{`G|^8kvu+DlfDH7)-;6{_F*4RO zCUsC~pK!!IGAa}ix;^zmu)mSXxz<(L7xV8ZcsQ3qAlSS~upU_JmHuOp;&IUCWk1DV zxpUBZKsQPC{eq}jb$l^l30NRE4cNYI{ z;yOR|0Iio3E{EU#^GVl>`M%@Tt%a)O+wb0CesaEWBJHo8wp#c1G$d)mqAq8l{}JJJ zn!t`Sm_NDV3W8@46NG1@OGBYw)|DKhoKpFEx-K8PU)M5CLeU4s2T=RKu}`Q!K!f*U z;fph6-;Q~`eTi)>-z9$f_!C%yF{3{1crN{4ObP$Z zv@5@BLi{hN`TQsT%YRvK^*^ijgzXSm;fCo_Q18{SKcKtNiyZw{F~qk*wW@ zZf4Kffs`Qx3K?Hxr19k@ zbp9A!d=O+F&Cadu-BQAkzDZmX0Js0@j-v-WG?+gX=^N;wp4ZP1ciLDd(L-^IzXy~TDh3Y|2#ORv@ zOAjjcgz(hNwD2E#9)JiZFAu+_58;ZwU!*t=(g7C;SSezdefQ(<&$2{UPHh;I08mE zmu~*Jl^;*##|HaxR(@EpAIA8HUzz>kB7X!f{~j^e*hvW2gFLokS(pq;8_JSyh0ENo zf6`=n;@9E1vs3 ziMHII$EA5FA9*sMQIM^1D|?DP^;t5a0$CA}fXwl|6E#ps((&n0?{*^E8|*0_UgoG% z))U!l>F_kygv1izM7z6j9yb&H^xmAz?0Qhs+{yB?Tiguqz461pmfMprQVle(=blnc zFLITREzxkS*yC}d>@r`WopPF5SuuPPHhC&_tF*)$UvcS|tW5p0AD3Tet?iTN&Y7^woslf1 zqx#B;qI8}iQT+qI`-(%sF4;xrirsI`M#nDREBsXC;OE~7Rctp2Oyka4g#-qW?wVg0 zTxGp{d#=39K)t-?^F5;N!9ZNEt$m((_?3NHPd9bMkTR~cI8LWS2aMdw;v23YZrlC~ zTW3pQ7J}3HCXo)&1G_nce+9$&qkZ2bBnrMs^tAoQH`#+)JLh8Q^T_l_fG)lU;mMzs z-uek__vh|~2%Dg+ErJA?gQN-_zULqcpa;)@@U|Hyh@c_eGVL*OZ+8_SnhhzN_9{m3)j#|P>gS7H$Q7#t7_RwkDB0t8WrW^fjKP#I5Z|uEy zRFm7cF09*v3W!LrQIX!86oG6-VAG{{A~h6g0unTkt(4HCROwq00z{hh8X*+vy-G_E zktT^q45WD9{Ttu-&OPJabH_RN`|h~^?El0uc*o1T)|%^?b3XHV<~!~#IZOqV73n2i zkGxf=z2SIo?1SnGAPo0ATW&-|(1l2z459TJjt9iq5Y9SvmavLDqj=(b%s!g8Z1W?= zstkQI>sVw|BjAFOZAx2kv=s51IJ;S#k^SFq*NNh zwfzYz8mfh0<6=7^G)81b?)tRc@b;ARvVljym6oD82YjMu+C?|RZ`{%E42ZP|GMhZz zuot9@6NL6Ti_$T|eB@1?UC(tscawhkDd+d|mlf!oJa%5(r z`PA=ZG41(MMgC->DT{vyRNulIJioXxQ^=AYH3+sUn3p^Nat(VDn32ZAk06*9AP#kD z3}9X0oNxm*HegirVXd*x+ktk=QBnylGIyKp|VNNrwM*&?3Vn6mhm@WYN0HLWc z0A9!@*WYP`M=#L0P|x+L9{o2feA7&Ah|SPP6d<1 z#=t-m1jo<#`0LbPp%^%=z?-8z@L&2%y|4=m|^j!0#BH%qn!gbCZ0h2yB;pmT`9|4GZpd-bP{SEQ`Ekb_i`L9z1DH!_K zDLp{I2l%&P;s3kYv;gUiuK@2C`s)-;H5#C%Z<_wSk*xZ_C-RgvU?og;ft5%{Eqo#y zTw|vy!Ovbxd9K3=6MW8g_rgTNH7aQA`QIC=r~%jvas4@vBP(EmCxBVL4#+-ntpAcvfb2MN!iuipL-9b*K^qQkifQ+SxBu zlXr`+F0HyQZ4>kxYyDq6l!a3sx;Hha+mGVz%8BI}J}JX4d6s>8ksi3~6_DB{Ge{w^iJ91suL54r-w z;`k#HYpQe1h+p!{?0e8o@h8&$Pn`tpug5P`;dL zava>?J#L+3qtLJpXoA_6&~as(k~0NwH^n8xuu?{@oGlSI`b|ATa?O}{lB&#-F-}~_ z_#0NAOD+Z5V#eN-TzFd|Y%@1x+WHWI6J!h`eguGi0~2Rp;s6MmEk4=kEB;{xU86h( z5YTthuTzyYpdfsgB_Dtzugw1*Y8wE*htLHKKA>o-!a(VMQx&v};zmrG79;SV0Q$x- zj&6sqIl1DwMtRtS_+ATuFb#S-fUA~t&LZ&TL;w{@mj62C46A1(J){DI?F+!Y?F!n# zvLYs8#DMGE8vtQhNSfmKUJd|+CW!#FVl{Y_?>4E)mjb!IJp%Ccnv>9 z{Ean_Ao19*cQO$8df=lD;TXJIWMcq8`cMF@7+=y2rj?b@LkQz1lJy6)+aCX7^8B+j z|DTs8l`6y-lwwxfn5f`FL)N=_j-DTVI^FCPU>n0?C|-N!kDJ90z%mmQZ1P-9qWUv=t@*!C)7sIeU|_Ti z_V-4YX9xsCXzz0VCwrsfe>hR#e>T)VXZ@cr{7)GE=Z5?Ty!-=R{vTYKdGPC$d+{Qh zWmEdxE+Bq?{qxW}6geoqi>o%rzrvE6FksT$qWe79(nc!!f%Tt`+oT$vsq{?se66+! z=i_X-H`CNcsWJIUjCN74d7QfUTW7BqUKds7+jH<0op3w=28Fb$Q4SQVH`_%5M7fvv z748KGpQUqa2`Z*HJ{oHg#*L@oh8V#4Bw2N&etD>AE}Pi%-dv?#^Dke|2+{n3kzMOv z4}W)QLIwWc?87vY?nq|>XyJ;WUo-#3>U0PLD8jwiLLv6N0Zcsu#&OLiFu2(m z-J5{IlX?t4gbQ&(2V@E=gyJ6M|3`BNr%9lF8||$mcmxr-zW?QQg(FO$Pm`^8To^WQ zGS$f3DP_*1w=PhFJkbFZnjNX;c}o|}O|B9i;Q*!!vCEm7oHV7!qz zwnp8^UN5Q26(x5=Ws5DJ1|dSpu0&8ATyF!y1;0kIE29MUr3vHgp#{UIGrc;jdS9hPdnLbq z-aX+kr&Qe7>n^2VCn~K%9tjVf`%iHuEj-PysA;`<{3m(&+ctxA&3GW|yN3%%cdZS7Zj z`NQr5^B-M2w5LrJul1iT(>j8bLp&sf<_Evhti}O*iW8P1vL$t#E8Tv3STk$1#4|6`(*j=+spPrnrdQ5oqIJi-Mp9ep_XtzF} zprZn-`F$R4{08;}V3tjPQ$bx8I5!K;fXwcPJ&n8`V74(egqD0*<`z5KS;2gL82eN#*FHC*gjp!EZMN?o@l% zc-F`V5gBz%31LDUkftPi*`rYrzB-Z3d$D@tu(C5RjXL)3%1wM z6^bo7Barf8CKGDKl+^1ct`12L#myD+83_&=XIsXEw3&@tH>rNrxchHs_mD4IiKZAs z=&Sj#2#27>`;yl#4Q}{D&c3R_Hi{A7*(og{1X-urDf&@KBa|KZqb?1j3RJ3kch zW;cpiW;S>?!#8m%p%R;1%HdLAyLd0D5R9M*vVqK)oX+$tt`DwXi-wr}b-ey>@+w;6 zAFzBne1MY>Td({j7*F3xM52~15#7s-ha^04$&9E70i2XHI&7wn&V>60F)wpZADj=k z*^+$gyZ4>%fo!kGU{(pRr)OS%aTv3MoPI`dW*&JjW9nd$sVsBJI=^?qy3)+(qFpJ? z=Hk=cmC5oGFQ)PT=-mH3izFC@q@kjL@<1K52XqobiVHWVk0I%??%*FO8tDve^OGYW zNEuf@<{I+T1D_;fcQcDmPM0;imYYMrjzK>Zf4>O>Gx}12B+c}3<7CROQ%`|{&-@AY z#5v_F;x`oi2^z3U7Qs||-2b zX!c#Zuq2;1ADVO1erSQ^vHvR^7c$tUyd%ow-i<9YRS!PuVTmQNAaZ@?O*LL+|EAVu z7hGf-ceWZ+_Bs^#?(Mcs+GQ2b8F8sVi$KmD+-l5b`sNc?SznE)465j^<1&LA@HQ^= zaGZtf1`$gL)fMaJtUD+BdrL*_YH?6v#B+G)8+*T{s_EfKjPq9o$|Ozud?`X^{%79f zEDu%s=;($ykhSylHTW3t!q%_ATEmU49N*UH3KELN*p|XJTT@MhE;W|z*uo;+f?o~Y$5^@^8CuxaJg77s z3XPL!ZN5DOv9%il-GfgO1;|YlMd}}v90EEHFiqgkF2TS-^V2wnl#79>W>n|Md)Hn5 zFwLT8%BJGvrc~9{M1)`j>Fw|Pe>VIfo*Xf?wJcgdTosV+^Un00F3rcUiZJi(JT=sl zuq@wp=aI6;NZ6IF==eI>L_TT;F^LmQFxoY*@b6C=rL2dgse%St8X{s_mX}KTLczX< zLn-NnB~v7nlI4kOm(S1Vf9gQ#C4i$P5>d}0%-KR>#E_(&Q2keT*?qCZ8ZG8Z*ld*< zQYf}L6~n4hK3x(%<3^Pp3kkMd7t_jF`LV3g(~9C4<`FzEBKsH7FBwBGNh^K6MgI2Y zdC5Kpxk}S=%YqUlbex_OQxw9@jNFLNzLlo)zE88VcqTYp5#H5j6-q7|r}$PTXAKkT zn|sEYDQW;MK?(3|z71RJ={ie1k0j**SfQW4VM#8xYKti)4Y0e{I6cXzqqZ}&* zsBEfwcFu~mzT1=sNpI|BsQ2M(VVWB6&`FhFr!iVxZxtpB+$6ESE=FPN>1oYRThRVx zQNSoY2(Dh-a1&CW0W&9nXg3dG=en+oClADl|2h>HsM6Q@RHRHTi7{R4FLuvemeC)O z43r9^YW9o2?j9On>+KST8yt0DcQ6W!v6JGt4SMN*qz1jR=R0HpaGIf!e;#YdimXP? zo-2Hpyt8odPK#$gy735l#0DMP*jp9P8>*UHE@=K4nOThruem^G%LV(eEg^8=`mH3! z8JKymF#r6~ZVd`?wF*$OvU8Nl3wwORT@oQze09gMZOyq`CR-w$cQJiXtmTGUk7wCI z8J@x0OS;UX)8|G~hig3&Y>F&|+1dzVrk|IuXllL4vx1`>S_XoYKa9a**wP7);HrLH z7-Nlrfz$fd1)M%J8D*WNu912z@;+VXB!fyOP6E3;fA;*Tg|ncH6LE%sCNyBQbb?CW zlZ}>!p>fScGC*}W=4Q-&%``Or)0uMFFBRu{9GVJhe-EqrUCH#R;6B;m*1a{k1Ir@Q zJe#39zD+G5!%cf<6NOhPepz6sF^7d!aH&LVWtyoC`rU(#159JZ*39Um6NfCpH)Ue% zBXyjjiLc}Q;71a=#d&Z1E*Iv!FFG_|d2+i12lizH{By8-%>?WPm^4AVxL3%yH(FyV z=%|LxmvN35u$ByMt)H&$D;#RL6`^P*cQ!XXUc$@clA+{MlIha|wQjz7PQ2o)<)+9e zty||CHPw?|?LAa@nX-e+;~%@M)ij+uB%S-oc3ec8u#7?0sXr9cR9||P;vzZw+MFq_ zNX#-;bWrx%^p~zCBeS8Cn~TfQV{47(-9bwk_vVg@W20}j&6E*40WrTMxOUYxKN1PI z!nZH>mMv*RbZ4(W-?{Luuk%AwTk?2Ap0PhBykL20S&xT}J-8{n=jf}&C~*=kXrpGw zocP+dNQ5~tHelrI{M$`F^-zN%w(Jl8Tjw*0RE=}V`orAd0O)RuTvgODTpJ5 zd4CKa4MB~G1JWHoF%>Wpu<4XWZ0{i5oXfiZGo#i2TQa!+Rg>fYfATWmtnC9$3vmIW z^xv$SeI_8OgX|sOp|YJp44&(UkgWloG>rN>Z4A(U&4E4Nk&izCJ#U~JZ)m6fOs#nc z2a@YQwbYl;&$OI^2q5;aZC+bQE&phh-BwRvJfZ%t896Nx{EE&F@cVYyj0b5u=fg@) zfXr#McmiUu%&GyUjI4HnVs|ZuB<2P*k5{$b4h!CwF`Z8CwH(;wba|qf#_?$^RcjjL z$mN6g>EEAD|AOKIME3Wa0z3wa`DqZIL@wnHNsZqn!GYZqI!^;)3~oMN)HboPBZn<)3%b z&zs*2|BGgs>7kj4*Lb9F73-zeAR>A5^G}LZ*NSHGM`*9?RqBTM-gOe1+)l|N4G{F} zNy&DULqL$FtdvOJ8ptpJbZhy+SGO$|VD1p)^vB6}dEuSI{%sO}-VOT{pgH2SbZk4{ zd=+_ud`b99%t=`m$0OK?kMG3co#oE~V=wo|B|q0@hgk8*oENjH=Y_sNDW^tuKOhAL zx~`VpsL{63m_malLG0U_sC`|k_cpdZqIWF?!LGwayFr0a#b8VW(QFf1r#BqnXTZsD z(~7UI{KXa|q16(OXBCC);kV~}$_(e0)^M@?+2qm6LG@^!XMK3uZDI-gz%sZem*;AT z0Xrk4_w+*%e4)SZt&q~Gz z1~aj6t?z)tX<--CR5h?SSx$>aTI7MQjuZXn#-=S}EP$c;;&C2d)rt0&Ce6iGHQ6`Y zSU@_xD^M($I**?}=hopjdZ_6vn`73*(enrFneKDwUFBhXU%0dlZVX8dMb&*q@8PX> zipK7rtX_A&u74}m4;$7u?~ z?@eq#SH5>Np#{7&Tv*W8M~O=Pt7WTIwlfs>t5xj8Aw37jwE|eAj*lRBqC11%1 z|45a&ZRYLg*6fXCM0$=azN4KXrriHf+YIzUriK|$mS>N}jZ5GVP&bVAP)ne-zgu~S zQqM${#ygXWnbHepR`y8lrOHT1N`Mw*1G41QM|7pRQx;1WVJOBW$cFr%)7z^8lwv{v z$ZU#shH$51wDQjD#Xi`?c3v_r`GR<&3ndrfH{C04tCw3?dKNCI(4y23cF#em1@ z^pB{amMN~o%R<9-HYANzXCe`2E?^rLN#f)@a1GAPa+uGkkg95D1)8hRDcet}{Ly__ zW?7mC=>}Dg@|uJr{EUS|Dq&9t9y7Q|TS;2l>sT(I`;<`pN=|Pv`$~d}a=Cb7(42IY z>yd2J;`R%W=2*Y6IJjo_ga$OUXQEk42+hgPhFTcpR{|v>h5}I;A};LZm3gIaF6@1h z?H>mf&Eje28K1n(ZCcSH;|Ii0YaI`_{w)!qPNOwjRx+=03!4G^wfR zD-=W@f>i~PP|V+)@U-GmJ@v_lT2;({uYsE}Bt17yFy6SV&)C}%s zP8r$1mIAcBSH(7h&MKP-QlJ_H6FZKLN2}NRJe@^ed1?W|#y@IXk{U1_=b_Kjm^hry zSnd1>5zLYvQ&nU&%6n5jU0Q;M1@(hY!-3}g*?P(ffVNVx0&oigYRTM@$P^zf?OUWy ziK&Fe;P|T(2?1=~Lt*VgmmXwiKjsg}ZV!b*&%W6oURvDX~)VgBCF$HD? zOR*mDXJYT<&Mh6DwA)WJ0`UHPjzbsr%REt@N>U;@qNLjiK+2}Sv}_zV1ao3f8-xv< z!4Z4R0msLJ8mdk_BqlZlw%6J{QI)Hv89l9B#bg`!mNO&sCH*uEd}q2t8V_cHdHm5i zqbe(nD*{dakX5@s+bG#sXnBG&oZjD)l~5LKA@(DBEVqQ!O;q_8DvzXROOZX@5^m*I1K9mA z{6PUTF6EL!3F6(Tg`fRJ;uJ5;8Z4;Su_gh29nXy7@{J?RbSS=oq3n!JoouJSm0W)( zw{(`@ljrNbCRF+H+?4L)ro+FY$A5(2;mOHxtD#5VuJ=rhDDXbK?3<@6+xuvk?Ug%` z7iz^CUt?xi`6KgFuUX7bze>SI&I*klS1Z7rwFU|HK3F=_4cyX~f1P?5bd_@QX#jh! zQU1y<_>|6d%FxC@9zc}sv|KZ5o2k;d3A_7k!|Dnpx)0rWwI&B`-nG~$;BzDyP<{7z zpaOSv0y69`a6)Z-yEy6x?c(w}micZbi(3ya2za?^{oR>|4PR+jimZ6y-LQ>cu4}ZG zdelCL_ABanTf0-L;~VW%_;kSa20fK=9T4Ky4VPa+5~{PPrj(}}p4plPar^M6A^z)~ zx0b-%+m3ozTpuO!3$tz9kK4PckEF%os@C-DoE#pC)jRFxLOvt(-*KD&NwO0mDj|{1 zYKg?3pdP7eam9-C>56=Ul(9^oyC1apQ%BLHsfVxbMX90aNq3Cq3(TeJ6p<5EVhtfE zDcqbQr8-T)^=cNyyoI62*NJw?Ydwx>*r!l@GWZI_03T)LP&9n6y^}GN^!-DsMWEb9 z>~dd_|Kq6<55v5iBYMDb)WAB;5Vsg8@O9hN3nq9=jVp)Jo$rNM3RAH5`=T1G;+5-G z`vQ}UHr`b(b)x6?WR~u2YBsd`9vWSsP1jQ5Na7CklrFyI1)4o288FBI7%iOB_la*^ z<)%9Ps|~9^`S9l;8$Ry8uABLSZ8>b9-fCk^O#j#(9eW{XtC3oQQECBP@0>(FDs)MQ zuxc)=zO=(V=t6~sYHY#^(C2Hz6&K*)5tiY#q!RP=P8;(DyP9+6TzkuJDtin;Q8Y11 zKol{DafyrMK{lKQoYA2qweEvt#QSe01ed^1{SfxXs;9k6kc4pK@`n7Xr*}w#T`pr8 zRefjMG8X-^*`1s}-FovOH!kbtpA2l(--3dmq>x((gG3rDzJ`M&sM-@5!4*7^(4a&U zH9=qRdGMX4&%|nGpJy)Fsovh5aj-8 zRfI6yY3f_o>F5bzkT82wJ*Bl~TdnAN?etMGySZ-!iB%*|5*|)Yt`Zw#&L4IDLoR)1 zXVt(h8jspN*^4qrSrrWtX2XqNBJn!s#4D;$K0OavTgs9mb}@4ppL6WuIDM(%y@tAV zn&}=su}U+nwkd4WD3gE(uWmfTz{PJv!eAg@bVq1>o_8 zy4Q&9>bW+>;saRm2>_#kV(H65wsipE)K~)?^w{w55x@UP9Gq#(7N{?XBFS$6+qU_) zh@AwAG^E4^csnpqPhH4vX4KS|5PT3HrxUPy0R{kOT{NVOQ$s0)O@{VrRB<1uAv%i< z7j&McNAk3NLGhE&lEoKa5l6m*^WaBAKjb{}HJgMn_vRIjkaZMErJsL3o&;>Tw=FXUy~*&1>XbaAdun z2bSJoaV`qian^ro`aq#&&nO93jwc?`V-+%`AAH#!e8=_VeQ=+9DGaT~AE@M8{03ZG zgA^ss?;WgD`Bd4GILaIAlc@rPw1h64%AaY-1S1Stv`yY3D{@>y68ZA6+UQ0VO6J|&2SZNyHAq-M}3fek76Z}i+~MYx4=T=T4o zJQHM*;+rg053BDL&;sNCeAac0a+=wzzG;zuEgq^RDLvY~s60-|7av-Vtg!31DiR;Q zi0l&KirRm|iRPkji&8f zTYMKYV-|E;#n==?03r9fG-)@n6gQIl24LdaMI`6f!0p@S8W9{{^J?Pc0-@ov4Xs>o z4g4qn8SaR?0e8Qwe*iZ;9;P!BbRY?1FgtLK=HlZUWqSEmqe`#V6;()F5?%@=2CS}W za*BqN7y*LfRpfz)kG|Fv*$&LH?i>h`BFGeFN_zO<)P|usUzGYS3NP4>l-gE3u~C?M z6g`&@ko{lt$vL1kjE0N0-oSPV=6!21(Sr0+#CqWgG@0gG4!0uB?<*3ix)cEdu&1x= zHW!J5E-|E?KkZ(1ae&1;ZL3Pih9wK}7)&3q@H}uDCTLp?U1_kp-1Yd3?2vMbIV%il z#}pH9_Y7aq)AbY?FC43YU23)V(z^@ux-gZwYu4%aqAf=WHx)+-_Mv4^Nl%Y3+y9{>GPeU5rK*1kMP_U(8HLmI|?NHEwRC8Egk zBy_)gB47_EOROjRPc`nJVXz~FcXT*NOuY~u-?>r$TkYk*D<>x&X*<)i{Rh9a^VI9N zT`nbCaJZ~3+l_A8fAv~s%_o&Hiw}{G=lpvcecZXFPn+}T%Jo>MXZl#-%7GH>LAlA+gFm4Szg@H z=-Ab-@}KM-l^nHxUL9rm8z)NS*4U@7y|7kU@-`}})HggErgbtepRyEEf;f^IhA@onqQ9(i z`}ZUwW(I_@-+clWNT?Vc=2{96QqLLJQylQc$zTq+4UtSG!$@o?&<08}>9z$a96(*R za~tuVseyq3KYFQ34g+Lf)7NcH4q}p$20hfsF{LsD-pgd3BXjeWb5HRVJTaumC2P9J z6u)iJma&;qN&Oa7NHsHbaFy+QbgbdZ%?D0+Ib7~-Pt(8TAPP55Qv+FXaJg1FsU8@q z{J8I&IFP5gWE?3DG_}~)qG#8dQTwvQ7y@>{JOOcm0ivCynB!NV_@cP=HG$D}e{i$k z(q$9|$n>tLLZo~Mb5%c#G354{ls>1ufU-}jD_NZdldakA*Lw<>a1Q-8FTEDK+={&y zk~9k8f#=nashT#s79}}TZJihGQaF9z7Gw84OEk=sl1C)Q6V-7#Lx+NELfPx@AGW1B zpA(dmv;QM>ro^b!Il$P#CY8_nOGN~cs@~dtr-+&A2*dOX3sV3R?%B^Ip13YaUqs_t zDqMiH)+^r4P@9yM-%KXBHse3-o+Hj7gA=2oD*W0~)E<+g1-n{}`@3e!8hu5J_tOW1 z89y(&DZo+=dmrjZOJjP}WxREDcV9^zmK8baa`4f;JAy8SRagaQl2i!m6;mni-uzX< z(N8cjlZvJ!rFs%Qv7gJfEc(AW?|=MJ zvj`<%6J-!ypij5S744LmjUXY$f+JTkO12{$59V^-VYi11wby3jRs6x1VZRYhOm7Sr zHYUyNTCIr{2J-!2MzK_NDEj2QIT$4rU|4me*T=ZxAYmH7$+mkoOo;#?N8UeKc%p_QNPAzw4FT;Dv2C=&BeylpNSEbQUyg3kF6zK zB@Nh2A4#<8OS&9}L7Iek~7?5FVt-gRXp-bMG2SK;byl4DXyMuz>)mCnmanZ7-8u48AekG@})=iNH)be5GF zS05%_J?V0htW>w3z}bbQm+y-^H1mw|hzr}PS%y}~nFBq#=Yi2fPq4j+ctricz8i^$ zoIu$o6kqjC_vcyVC(4ee1VTPE@rxzbP|&y+U!Qbl{ruF(8am#V6yW!?ReoQ0d6=uC z)|BPa>^AIWU)cNQ;RKku9DW(a9A8#@gfDMMud& zBRMm1w%>v`O&*^SA(%Xl$R|ioheMIw!5>T+>H}*XB!2rOhUFCjHB{ z9Yq_OQ-z9NMx5*UL@%0CFHkuX*lK$#aw}fT>Zk)PjfRN#Y`&5?2fyWHlr2}vJAAp& zVQw?av9XlbHQY_2_0Y6ER7Kw-F3p0##1`eGG$L-SQuE54)DXfKXVe0-_QP1?^&U;5 z_2q)n3o?(b-7`?~ou3#}_jlGBB50hqd$8}<(z+yJfF4k{w!peGFbvsHsD}TU;ziWk zLUq`MhJ?i*H6{b23PCP9%O($+y;}ZwFwuA>=qmH@r#L*m*%+y%)fZyMB>lnLVHQr- z2zPu%yD^}9IxZ>sv$acSeucEFan_K{_MzJF1tEv;m?Baa2w9gKuXZ}iVsJAJ&B85- z7ftCMGG7a~>#yi1C!6Zs&rfYFE5&0$3>lg+g$=kI4uMO;jcPqi`nt-PID}s--hjjh zc_;TqvlF%2OjjGlpH+9*>69QONUU$??)wH2l*{ium^x~CSLN9hFCAeXiu_(suR~(q z71otD^o*Fk^B76-XPYp)OV@+YlgE&Ow$dC;?rRj zd$fJ;@Rs)Ug@vjbCP9MwQzg9P>}KMSqQ*BSl~Qx&q`~(r(dK#+mB)UYEjf-EWxJMT zm9`cb8?zZZS#{$j4RUZQ%fad1u=4(RsIGXw*O8RFgm-H{n{vhegVu_Taw(grx4ttK zgGNO3;FGD2O|Hw3l{}gR9sa*^&Do#s!SoQURMT-gvqOdk4eElHN z5+)4cGzM-2Flj8A1j0?)1CI|}6`Q!;f%>D^GS%`Jx8}dpxUzqEQ#Mq!zodLw-8=P` z?&e*kI!T}{*A_K=Frl8TJ=%g+tt$93Sw_k#$1Ci+)gG`R(Yj}1OP=E_OY}6Pg5xe- zF_qNuJv7~wRQ`)%7#aYSli&9r;12sR4m4GY?8ZJ%f6kne>}(pcns%3j>Y@HR#r%~g z;>EXSlvDdOoVjKv)Yn@#5{e#xhKF-n>~IH21czvA=0?Of`g*v@r~;8J`H{1$mHzv% zT@QswVY^=IP{D91ON)ZqusXheW>!H1sZz_1%IQ+cp;TAMgd!Df)2Kno>c zxnaY-h_hkT)S&*HP(RJ>T9QGkimAqt6Q=IzQ;hG4St3F9w%Js;z%ed=IQ7=j!btr} zDuz5QKlvRiEgl!rLYL=I#B$3i;I?DFv=)*dZLqlJlKe zTK9GywOGQZ$kxZ&JR6WbJ*ral#7l}fgBy*z?eh3%H@|i>vP13NqQC2PBBRp_Pqn$o zjnt|CYbP)Ib%n2AJ9)`3boHjW_RJi^`llL)I!sH10F0-@*<=QZYgcBwr$$NPiWHix zv)CDd7))CEftIJjt7W+x@t~_~vOD+PrWDuq@#2 zR{>KOw64@T4?xdOuBd+Bd9lO3TvjjKN#1(;h4kBwbd~n!^kqZ1SGIoe_iYMlfU~8Q z^jSSa(b+*NEp$u}FIAshR^FlVRWshi7*m1UDA(^)!Kh>%?=cJ0@%YHCUcIkL&KeUs+tgAAV zh6W5XA-VJYMN%PK30FVpNRDGXe7!QlgL$2`S;Smoaqgml53LmzqgZ6cld`a@;umd` zI()|z0>x7u5#4ftxJJ9s-CgTO%5~_u&y4G}B<*@V!kS>8Fsj0L9=mjF@Gl%sqOB~* zOzoLhu}Pi%!$3<3S!mqee$_sK?H%SvGAXI?63nl_%{J`yvznY4%VDJm8Cwv$!Gbkx zvEyuMa&?8PLa%LLqlQtqF$^1G=dsVavD1~K;*7S50`f&fj44wptt9htHV4%)medyPs=knohUK)Nj4~C zxDcc_FK#u5U~1+I?U-vQW?%K^faMrtUw#v}kd3c7|0%Mp;gsX>O&RVEcapG{lbkxb zcOgm3)as0`Y*iW#AIvF9P~e5#<*a>Ga85=>iKfR}84S;=o$lDUlxFtULs`5VQOmYh zxXy;evPbj5pm>)~bi9ttcGHPkuc4fl9s#p1U;LI&m3K=)|=Yu==t(LOpVt^z{D4n zJP_qx5d3yPnWHa<$_sz?;hLyyR*;!4D52OoEi|Z$pdsvF%!CBW=qa@}lwpqe(Jakn zgaIFtFc@VZUra8Q2_tbST38fawdkfg5HMX2FZB!wlF>t%HZq_kX0jq3Fc|P-HO8H+ z^+QgvUD;*uHfESl9?@^RkeK3+Ua7RA{VT#MYG~RO+x4!#{RBg3+S1;btXI(&W8E{$ z%RHA?nMfWeElu1;EnKoN%HZ6q*;Kge`7Y)&uiT{E-Oib*znUCyt79*9u}ZlvmDwuv z$26M1gM_{?u%^YazIGXYn~03>xVTOSQ^k9_u1u;NT&6rVp}Oqmpz&N2v3NuTzB?nrv2ck_oPftL2gBQ`gn&{+cHkxuH@n@2%6Q4>& zI9=C~#Fp6Tq%Cadk!LDm)IpNNR1Ut~{;s8PO!ED8%G~pDUXokdO<__*4 zh-Qd|aeGR!eBX+}dRj~fVK+5`aW%OG(a>>+Cr%!2Kt?qRc^`Hw>`YS3zU+T%b{-dO z)2MH2Nq0(acPM*V7&DEdkO=)eNROT$>R17mYF_Z(j@3!md4OuhBwl|~Dzj=2&7Cf* zSSk<|boQG@^Y#?}aaW4{n~nwpcfFfTP?KhovjJ#Ht_0<&7GYr|3}%AW575r#eBrZWh8{iI!zz`N zcvDnrU&(l0PYT;G+)%)}ymqxWu|i+aoBIndK4@lY6!u!(%^|uQ@xH8Zy^sw*i|qN_ zK!nD3N!RqRu-$7WK~hCxOert2$>ci!7bacTcp%>KOLMEdVQPg9yd{ZOwG}S=+?Iw- z63j%@`k{@K#M#mM%lz=`DgD;Nk8;h~Ul@f}$OsaMaybo!Mi~X9BxXKI!{&q;G8^SS z_R>HG69v$a_d zj)RV-6T!2fBOa)l5?@scEAGoXS6%<^>wCxHvYouHj5q#|`MvgkT(w_Psqd^* z-TfVTpXza51q4Zltq>q=#PO5Y*(8oMJ;7VzOuDRz!|z7|OvE^N`0IMzYFpm9UTwOO z%Gcj$!z-2jrfilC>KT=L=UDxJ0i;h4EFeDqBm_~p;Xt1g4dS%}8aT^e5exdjr2HSa zT=|WezneOUA8lIz*X*s;uT$muj8;QH(3Rgmd?%J1o$>{K5y0~XF~3gj*-v19%=^3W zj{od1rz0@GPL+NfLlPwbYJ4T)c$clXhKI4oAEzmHfO^i>epsArnL;#=}?o|sfkgsT+Jnc-bDE-VaSxo zMRyniNwU7NGtu*ar14lP*m=#aUsq*BF)7P4KWxS1mQt#tnV%wtNA)t)4352w7SxF- z#P1qfVG;p4DFrrKPKB$y-@D8;Q~Ff0GMw1xJG=QMY)xLZ^|fT=&)%9v93I?P2<>}v zkRsrcbDxy+tic?~KfK)~q6ydSapXzDlS;daJ+9sXjILH5t@6x5>AS8=*BYex|J?oR z)nS_V*194S$}w*?fyk zo|~J{KksVD=N`}NekVJ^I+Z8AQo6^Y!qV2FU`ylSn@ve0^Ea+PO2x>I&EK_)o&=}W z$9izJXIfeqW2Oe>!7bYek0$=6XQbo-?%QR=fnNF4ye{neinTOz&=ntkwLiOrD3?ql zOds3uXzDRK*H?n5QVi|6ldM?Vlem&$z|ys9uwQzCpp?S$qtEMDmY;VB;?I^)gBnrX zi8J5Cn8hn08_V{k!Zj*JCA&)kdFh*i(|oMKl;x$;hq9&tj;S)j%;$ISw1-+1K9miD zsC<6HI!$-z($n%*J74SF!j#GmEtrOa zkw@BcJ3G8Ov&!@|g73r6IYZe_5ioa8(svW83VzvRL@DKN4`JofE5yUEZo4g0mFqha z2JA)+9^xN!v^@Aq!`^1*<)HIDkE0{v>}AGcdfl=d!#mS4j!EH?YcB^Uft$lPmzo|Z zyVw|3$`9d0KoPMZK2J(0xK|!H5&q-EjNa^M8A_yfc6|*j8o{#L1oEWH&c0m*&HNY? zO9Iy}ei_%~07Sb8h@%S+Ywf@t=9xB9jP^>O7ME3&nsT)5p$%gU^6$x7u+8^}wZ%!Md8JQ}4k>iYA3($0`Q+z{Vs zWe{UU^y>Iy6pXAEFCzH2cj_C5c-^dXng2wI>f;O4ix~-~j9nZ1u1P7-bc z+pI< zS?g_!h!<_o$E^yx*qKj;6Cn0mSV_ zsnIS?`Jmqs3=cwS4_RQz`_U#&AuJ)Ela32^bw<^ZLiEyn zLUeNq*}9wx@zO_qD_>h2$Y3+e0!QTT4oA$kJD;#%#D~8-i_bh-0@?LYjk2P08msJn zW+4*gp3F*_ulfguUI(sSliZ>=P)Y{uA7m%yV>^!}esIqlK@k?<{=ZuOPWaPa%m zvCZ+(BU(Rgd3hcPnl9l@t47P{8d?NB0l;KIOXiSiEjysPQq|N>h?48qmXg2X+cuw| zrHpaeW;dD|c)QaaEim(=Rn?z&r2Z!RjxapCZd~hehLcRSz`)0rwZxXdI1@RGT%&mY zDgzt*&LocD(^GF7?yJjT^u9!`Brwm&Omful?Z!4#Q1k_KcAF3?bJpKo@{W~F#as=t zLep@?szQ^?SM!Bq>G%jC-y($SB33~aj~-uY$|ZW-%g4_ZLrbE^^Nwl~yV!jlbxNzg zHVI#y+uLkzi9fj=AZ^)zvVGjrlt$PLAK&NfX!Wg@>z!U+zI|v(7`s+#r&(RkpHbDT zA|5}wGl#z0XyS6Q-y--C#wak!B0nYSc^RIwkzw+@zRfQ_;UahvwD_0uDY};F+X3$BgfCI7)zB9I*4=8_QXSNiFp`mRL)f{6woTXtnm03^?bRIT0x_}by^I%4Q^chMV8g5D)=uTA{ z=xvj$ExI=GI^Tt4_8Py!}9n3uo zS`U?3bZpGHwykZ-`{sJBU+Y)GCo9ZZHLFuZxijM4%&KvHEb$VV0{egg?j|{kUVf8! zwAOEahV9DEDyQ*(WAD9#nqJ$rQCx}$iipxgATH_BRGMHUOB4_gkS;YMQbGizM+ihg zK$%$&?0L`Zz31%nee-?qoH_q6Lz2lr z@;uLdKi7SgSAo1CW@ABvr`JNmbAD6~1{Eh6-x^VrssEJenF6hH4*wu0qjIyXU9IZw zj4vN8_RQ0Uj@vTb;m#TIUDnH1dAHB$7R+Y5T29&)o9ll_r~_*`rsvD{rl5mE+Rv+; zX*k<|C4y9R;hi~_XSBrTr8_b0X5snPUf%NUzIS@loib##OoR1UhR(A6ekSXMSA4MdMgE}KI&EW z*V-4V_vq-|P>aRIWQDSM8|Ll~`3iR|cTZOtvn1h@lU0`u_94eR2ZTNJU z`91MfOY-UpzhRCS)<|g$^6^pJlt~z<%{@<m@1lXPA&g}Io1NAhs=evn+VWDzOV&i_Q($5Ag_6udP z8Sz60DxGBNz2u4V?ug4Y*(9VnHD=y|CYun{@6eIC_d(}Rrg1gHy|Ti2uw*sF5bj1{ zgc)BAcov{W@TiWQA&E2ojFz<4JNyQUYl1&-bNO`LaYl_gVI=T$A{2GMPqs(@rKD+^ zSlL4lt?f4X08<~c;3<#(M?m-j*!@zA3V((XBGJSPzh?Dd9jR3|mR)RNbfr_SJJTX{ zA=2Eo%1}WfmFBT`iS@2U6A|zwLWG_`C6R5b>2B{Q=+G~uq>6fql4OUraBSe3ao7cK zL9kxo>R4tcJGXYMlB;giXZIMasjul|&*RVN{$2z*uIipCb z+}fkdCL`&-<<|MyYO7j?jFEhkZIb9Mxts$u_v7>UQxYKY=hl+X^H1rVEr8n=Iw$e? z-A_{SHT`&bK&;X>$tcBkAD`uaL;S`bu-5(!`&6$zR$d{oO{AvSsRel3sx6)sP$R(} z-_p`Ow5%-*OO+pFn|;AegzPW$ybr%O*@e02{M~YK1W)FtXIT<|g}u9! z5-w}_nI?fP1wc5vd*3@`9He64FOwuc=UUxQn9ikjpQFi$iYSs*(~(k_^{d;7c`@x4 zrS|eAqgXNZ%g$qdCZBg^uKN32P4JL0YXd{xJd#f6d&=`#=6+zhS9+yL{NIHN0hUE; zqvh+f2i6CQq@igAjNNz-=|0(75H$g5%>BL-_KO zPL@U^N^fJ}VbeN?@*B!|ie+8$lt9HYzrTy3in$Xz7wDPSe;ijh7un^qSmr`Q80|it z$P^Tc4}=fpXxA*J!ZXh$RC}$m_oG3Re0$bXsf_DLKB;Vgi^)T1ZNf0mftC)whohN# zd}krc%>Xpdyc+;z!%>(SS>`p+Ib1y4%!f6JX_QXF?MF)Z}dwFARMydxKVh>(6`497^^9u>Koh+hYzj zA(2q}6Xb<|7!v*ha?)qy0ZYQ<8-U$lEWh($pHA2{cZ120x7!0qgtE;Yy93DR5?d|OnKSLtTNJY-f%p7}=7kR?f`n8Bl zlFjuGN!F5jR(d=f(Bl?q3-SXNX@#=#Mke(}79swrAwDLxQ$8Dwjnlc`Ttzzd<@K)` zT}`wwPqYBah*S#jL;6Fd`rZG*rSmVKp8W6T$Nx`JPyWwI+Wi*+1^>fi;lKUhzl4FI`fX#$&c6{T;ED9KdoE@_tnmkH>eXQj=u1Wiy8^W%UN4``q~(v~0?Y z9r(2WjvXmge%7UF4X?#X)imE}08VdGTiRv0x{aj|zO#ixs233^zikNftR`5S9trXG*cjJ< zhTC^9cW-Dh9x)|YX-Z(32+2N*lYtYhtFBxuI~4hBBBha8w1rLPfaS~ zJ}ld-&(u9U%q_&OlKlDAY#KtnM3Xx4X-(IWN{+_p>IEb2dL#cT8&eyHo}PmB515=3 zpBp3PqQQ&JKi5-i!wSQP4WS{@KMU3q$%zE~BAQy)T}M8JRG@mydvrrDAi`SrFlWHt zh0IITnb>geS@&x4VY+mo$qJm zclmfP)#d)kOV_BqR%oH_#08p>XXsdC7sBkG~?G5tfz59?+sP6y^`m8F$2QT8A)v4vpN%(m(8#jiy-0^Kyo_l9omW?KIa%+1b9jbBzf>U& zXpr_~x}&QJ9mdt3{+WtOz(Y9K*wQ=hbTlYliaPolmru^9k8QUg_xPSvvqz>LIjQ~D z%vd zq!L?mcO5i(SukqYp6}49g?(5+`I&)k zx-}l}JDrsXRa}+c>|7^KHU?D%ukPuvA`!|DV-`uCn@SazUL$0q$L_jETAkHXv-ne9 z%3r^CdDW=uikp zx|t3%>}8;n{gj(GoSW)KNQ*?vcSyV9gp&`Hl;b=rqNnV=U-ebxSx#D&jVr<$V5Lrm z3{xMQRMWL-RG-gl+e(RHFf9h#V_1ZD-l)hO3q2s0+0?HE=U$?+*rlkv33!A0W?kWB zozi@gSFo*iQD({+{;gkhkFZ8{|6cxzKNGJ$6v%#IcfChiCezHFSp6#uLf9NBFCv*Z z`QXZS0Tk^zBK9xs9_sA4S`Dpa6wYMNHZ)h@NQbQU*Nq=eY6TtrxT4#3vWr;Uq8(j4F*hPah4s5A4QBuOnih22 zK?ommE}>279$brCFLx}&Yt1yHnWcn#zxj$Uj;W@8A~2Prbjk}Y9HJp~2pjzfsgZ4| zidRVJlY7GcuI$!W6Y1$*Uwb#x^HPSqw4QEB(@O7XKxhO9sK5ijz20)j%O;BPI!q{WKo=sniJK~pOdXeo&+UnZ?>C+ zsaNRgOkVW8=Px-+7E%wNTS3#|OSwpS`aZRI-k?3qEJ5ceEjTND7LMBxKg2U>Fvui%GP7{=O`v*K*nW)D zMOH;y@Jp{h_;g0!Hzow0>(~gA8!0p=W|1!75738!@p@}*gl0!XOdPYe?}s*K#Ff}mxmqsNY2G-`$$n0I_5{8#LaXI_q>HO8CxGytJsYMnJ_<&+!AOlv;p) zs=2xEJB6*@>Crb?&(?ZVny0b*zkbXsL3~j!4>9W-fOaW%7%We_VOvL^ zro=J%00TqQths)jdCGVa*!6TH{@8yA{J){BS}QN-CV>y z^H4MKwxR|JhNg*?;@l)c)5S1ViCR|m*&nBxhi%N>H7a{^ZshlzCz<7Jw?VwjtRLf@ zE{rZWPK(+^r?{@tq*Z*Y zz*9S>-i2~&9-;1}NEcyYY}HpIdjvT3+D$VJL_2vD>=y~BNR%i1~p zg*kiKVERI_CAXaab*o}~^~+(>mrZSwpg+;qOf;M9ZM?Re{!mX{v`Cztmk2Xa_*_x; zV=BnDVRD*`&Y+T+0xEOvcbAJxws;E3>d@SnzJ-2BLNgM$jrM4I9q_m}0fTK2Czft;fmleOk0vNCw@$ zN0~e{P|WVlqt^6vY9EvyHJcQ?x^MQGh!3}H&3ygNdp`L{4{vs=I^h-bMiHDO)0EQb z7gFri@R*dH5yG*e`s_19Xt}rMaY3HBWoEUByv*Fqh;P}BVa0If-Ig%ZD_#TU{!TvQ zo#JDqYI`9oaEYx48UGn##s!*%9tcmdyZA%^e-@XDaT`_oZ;pK~pqP}5-19{7u_-pc zIf$dD0SRv8{}c4&|CQnD@c$0D?EgzwQ+hRJiJ7~#4#1R;*Y<$;Xktj~>RK^-DGmT9 zKciT^9x4=oD#L5W`sAA&aXn(V0Tj4vG-u!yk!_ZGDy1 zM#C(lY^!{*6;0!kb%pG;{1p0|_sb;c29$A>JVCc@*AW@ny^ivH76eD}POU6XDnnIc!~AG$I?h+mhguhQziym)!6S`H{v{jb`7zS)kE6glt@ zs7)lW7KNu$aO_MB6SR^J$gjpghmNLPd!zI%suv9DzyLFiS@|uBz@Gl8BT8hteqh=S zVb#1(>d|vPc#&)fg$&7BfbalB;V+?GZ=gAXH3}=<6*8IS z+(x)Y`y3ub!9wp!W6y9(3UWBUPHA}m@xcdTh`p4FUH1c{fI_$a!4DQrsb045G8;5@ z6Y&}yUV^*@bU_ZDglZ!M+>{T2?E`Q;d@i#AgQtUR*&Jo?yRJmR)2IQHYGb7pfC|^xCc|xi};@&xH z+Pv=bS4RYyj+I`vFal!%3q@fKH1U}a%RJAU#+ZxU@S~yF+y`@n=XKSHSVy`6#oKkB zuj?e-1Y}j&K$o9uzA#%C&*XwcGLb6lO5^PjQsZD3N*^Du1Knp;Z$#OB2v>0j`VcSt zB!}m%7h=+8-})}&vVBpx;n>TAJdZN-1n=^~ZyAkzx$16ux29X`O&sQolr_>fJVM-> z*U82pHH3#PU6{Jxi8}g=Fi}l`Zb%nI4Er)n^yZSq*Z}^>&vcu2@>(4HB1-PK>AXK* zSl7uHEj(^J!$b9r`V}s*<47Bbp3jjvsczhuBzwPdEa+tat+qfTbq`UTAkW$MGO?i! z-7~f+k$XA=ACTLr!3j}>#_+Q?8OABfI=$8ctil|Clr-(XfAId7x$%sdnG7x&PPis;*|e0qapMl+5OnU+c&q9mC*_lWac3>QqPdWDf&^ zv=|Svq3IM;5`bN}Dx51yWgx1CDr)Q^o15o`eNV=f-ZGxFj6%E}T__Z>v~eC&(%dL5 z?9CUx&|y^pqTq6!wr+YGLk)K$H^>Vts= zTJJnfiRx;zT&O8CsR;Am>C2kjabEqg0d>-zc3dedC^6LEH#asR*(}-z`L%Q}*(9l~ z=a;Z2p~u{T)rx@4a959^_wKMtu(Hi`XrZ`5YaeBgS{DhZ8k~Zn@h!=+9bpcs2=+y7 z0LvBZbWwiWa@jxD?Buk{$B#0Kc-*X2w2Dz*&p*$?- zY?9XNefAbNG0mgdxK=$@wmT6rn?v$lUn*$#W;|U12{j#6*$~?kbuNd~GQ01@8jM=* z)u!$x5i+OM<7yl>ZsD)5cfYQXj$d=Yw0F1N_D!=XW4VCg6@dAGxO^Emem%=O++o6g zb;XXofxPUvaqhI)UJxf^GiXDtX1IE4Nab2g~97P8>TS?zC0 zg6x`u9HEx{UC)wfoXh%w;3%eX<6slZbPkU%UT+>%V-adX>S$WoH9lj=j9T`VO4!5> zMvUo0_nSja0(98*W~|q^21de`&2vi`=SLk`ZfG4>0;^O+{E#?LPspdwZ0NngN409> zqH#5h<{KT`KV;C)!b&D!Pk(6S2MIPi%8jIZJ$O~H%+l@s0JIEkrl-XZMu;W~c=tWq z_%upsZ)z~6mL4>u-Rn4LQXe|KXINWbOz)$r&Y@oE@Bow}|P=#}r;WT8yk z=!iedoNmpVal`(GldBi9ZqJg>I2a0*&!sih(sY`I3T0ybJXl5OV#e(ahz#`LfT@l%c&T>BjaRnbAMvEbLZ#=(-MtrZfLFT#w5o{l zFPJLfHokZXKB^E_tbsr4i~UlE6C6rYi39)XOHp5s(ozCrdlg>=2DT zw^`E8V!J*TtcxD^{A_m4Cc6l$5^*Iy5?$>z4*TpRh2M{>!rPv=sH@EMN|Va}`SVAn zh5aPb44d4@)MVUX3eg=HcOqJ~q0iap>CpDWkS@sN;Cy#v%QgEc*p)tCn(JS6bU*5r za}1e+49M@CPpJOr=LI)uUUF9i|965rjlsc`payj(w1_az(_-5P zNw3)|iJ~E|b@*oxS#vk{JE44QC;?)-4kxRkhWC7+aRTI|SFUil+Op_Yyt;^@w=Xb4 zI+0-KbII5^bS48!tGM5Sn)~o-1_;J z7D@Bp>Qk(}t7^x$!;?q(=rXbKO{$dS7ZKNV&HyIvm{`%%Ni-ZqDAhNBingRV=TmP} zq

HUYnA*;Y?5loPudJuB|Nw+X)szFA1>d=Cp<%)%C>5eusC%>?UQOL`D6l4GcS zAJt@T{T^>5nC;uImVS`cm|)xdI-d8s(RXtr?=b9VW8Y9=l1i10lUPeXdE%)OI+@_x zeA42!aJ)Cfn;^QDnW&mL4OlPc&(*a}n|-N!Tnk;d73E1@-?S6D{&;)u@rRGjHB=KM z#46r~?WP?McdI6&?&lYjE4NG%QWL%DAPkB-D8Ve605HR6GodvGiF1unbFyuGuTglP zbQ+|C+chK%HtPUQ5C!ah2RRWA-4Yk$Nhjl;Ahik+De#*R>#?6^)hqJYTLDjp+BVdj z@RwF?x`(2ihYQ72i!T%`u5_gpo*+NFUNl^1nw-|9vwme)nyPCpfbsEpoJGF#%ZKEA zxNJ=GS~W|~Ak=wmXi`J;$09B=C5SB-BiasQ5=syu`XkDD^!DP2J_)UaZq#{o-{bb` zWk2X;?d>F;vcP5yhKb>Zdb4qR-I&eUZ?&xp^6aJ6x1m_w@)#vUEr-dbJ6iJk(B7$i zyjQPnZQUE${*5x-?Z`m;DtfwBfEhXht|Zh`Gj1)pishmtwuy`Gd?pay$YNl(i(aeOnhmhK#*;(` zJ+JgkgDJK$ja^AY0~ds|2Hm#K=j*8<$w=U$a8i@f)jao1!Zm0PdJ4)O&@Aq<5x#`@ z&?p+ZrXxokLyOhDarnC9_~4cw&-AxTrgvK{3g5NAGdi;uI6}xYB77ceBwa&!?S*Hl z`v+u*+SFjwGS}+aNKc0s0F@IzD*guw+EhOETL zh$KfscK4FmIWLO&4)KS4tYbEhAiw{+8Pxv+BQODVhj)s<`t>)(iyRy-G`^}!ECvv! zyIIdKrvJ#lDERg34?^g3*_!lXeC<103moAVo_{p(O}WN#)8mF;dgkl9Jddh&L`YM& zqJG^p?wC;;uR)zc1Qk^ zo21qA$E|Ku=ZaBIij(;CXZ{OKhrvG7Fi z)r=(a-Tgob`2%?d0_Z4Ac2y?2DO)jY;YlW_ipC86&G9^tAX;1PH!t4=-ous9V>|56 z6Fbu)#7D=hUwK|y+5o|H7k_sD#Gza6v$LtL%R9F_Uki8B1fAu}Q;a!t9{H!gjIloD zUoNJ@bu@8rX6(Vbrb23$zrVj)y;gl;!~-^VMHpKOvv>b6^eXc=hgns#XL^F7caXQh z;+2j+T2DpaKEr)f>J%mFpj=Q7@b`}AF*S+~9kI%+PARsyzX*5G>E7$1e^r22$PsjAqb!4+(I3|B}e%A)DZZ*Y;vXGd`Bh`RpEkJ_tDPvHHf06=8UBdoeD)FTKtQ;VjKX)pJEl{7zi&T9q~ zb^~+PaITYRdv6$0(>dHPk^J#O{#8~_T>kTm2OUW{X`ni~9)eVJbphMa6ZIT(immp89-(s5gvO={Q3eXSWyw zF2BMl-|E_5A+j9Qze=Z=$@Ep@qlz6QcBEszEyN`8_+)?LZx8cqvby=%e*}+NQ_^bHF0|&6bYOxcSsg=TT&V%8AbotI+RX=3*zVlBh z;(qERxwkLta(3_i?1zgViZV^*89!hZw14*4T~pXW1->o9jzJH?JofF zQMb@50v4}j=RC`(~#XOC00XA+7`cM&f zDgBM$$lpc{F&0)a7PpQ)zH&_L>0gpuf^C6k94GB&KEj{Dyn`$6R^O?+qNm+?O{}0Y z&b;kzET>a&)tkQ&#lf`%vhUjACRdIjHM#8^(hX1F0EfP0-}prL4x*NuKJz^a6Ag*R zgU&f1a8??jAt|Tqi%QELz!JhEe8dZ?hu5(wa-(iAUsAtCpzo%3eE#Oo{9fF&)N~X3 z&US@QL{k$%flLc#G$k9vkCC`??<&p47{5DKcTG>guel>nH%>P2{_s};&eIET<&IwD z8CcKbEG+xcygKE8{rN`mtkWx3;cL3F{%t$aJNDAP?_53P_%3>EqQe3KuX6g+<287A zS`!=|+!QYxbE7CmH9$=HHrPSPFFYH{?2uc;7Vtw zmk#Bhv2(8%7hFY>d}QyO{U#}P@y*1=Sx)w)je@LT2ZiNk$SlW)-fvD>G}sfB%s-Dh zzq-V*dw$jB$mgjgk*Kq6*BD37>P80WO=ClRrU6^yl88rH#`@_?z@MLc=e3s1l`b~~ z1$9ksMz?WNGIjq==_5h5TRR8L=^yjBhyO^mGJCsoO4{k(RlzsR9)Yf`$EgbkKfK#@ ztRvh{kuUFj`LOlt08nzY&O*i%VgExtp9Ob^nusy#) z!NTaAkG2+u>feI*KHU=UsQS%;%?L~qbW1Ti@Z3J`!B!-CH&1zogdOqdOO~5D7x?hi zl;<~>7?D3)FQ4EzbK58ee?Lt}Q zDnlKT_s;lXCHd{et7^wZ5>HoPxs$*}cB;+x*ZvR;?{DId`4Nzv85tcT;!Syd5|JM% zk|uS(U9?lcv+1&dDCeE~*LmI_Aw56OiN${O7R1*G(ZDH2wANEkyS95nj3uSK%7*WD zU(@2u&aMsE5%xvx010Ma&f1guxhCCfBORVxV&&d-MO-~^llV*-Dt6CHeMt54lwQcF^S-QZL2Cob_ddntPny(_l{a|)XZ($T8ZB}MDG@f+Blh2(2F z%|Gic*RvYy^n%k_e0m>y|FhEaFF_ysUzm`0K9mwWgnz8n4y)_+8|U?wo5z6?=(t3G5+*@rRtt$>9>PNiwo|_c*txabo&vZrkM2##K<06hR9Qovdv^U zP!n6fIRa@0O9sp{;3L$&y@W4E*~*}(1`f!gO+5f|K;FG)kylElC=$mAtP?v>$idrT zHeoIq03>G%esk2>CKDdP`Ci%rY-s39@Ix}c3ep2!DjUBv_RxWoI$9U&fe$-Z;4~!! zkNW7S^ab371UJ1d!!rS2!s_p?s0lUbwIQRyK!xa6+FQnI@G4_U3j^j%#U#8a&A#L z`8OS%yYLpNFFW~BFBI`4>(BU7JBvj5(%udHi7o{nGv*NM%UyBm+kcHzA8%FY+DmmTn|&W3Na^8CA%8FJ^1 zA70x${Y?g%++E*&vZWk472&?O7{}9N8Y1wIftni$GPON4GAI7{3 zgOyA;b;;mcKGnx;4=f5Xs-}KSHT~Ux;o;nTu;pv+?p_g_dC`NZcGI+WLF8Nn~oGCjK~y~&gA1N@oEeV zzviplzPa7xgo+wQJ8vg5)3br#dwNP~^%XeXA+9M}S5gf$#&r7iY;HiD>W+y+JYn3x zy&JqVmp#SM#)EmjT%O!OR;7nJet%ynF%a2p6^N->^f|NStp&ncfqMR-l>lxGTx~4^ zKo1?q9?(%`eNcwDvCeLF;b^8)T@ngZ@Fz#Q5ruq9bSZM&Hr!9YW?WyWMsG-^rQiQj z=fFhm`)lv-v(Tzk*<}A*&SHwpwG4~TK1H?}9{f4r0l}*T%l=$JmkVu|y}Zg14LZYF zsK%zO)CG@eD^Sw;hT7`B%@u&M>zS*f%#f^!H+pu!E(qSgxLntVjKnZ z5>!3Pe(@0&y6_4}SeOb3%U>1BOn;vX;npA4^?6d1%dZB%q}ojgjn(ZvD*v86et6*_ z4Iv>n52zrNWx4FAY+G}S&im!DWpj$X9}-6t^w0XGCKws|H>%Y_fLY({yWbq!k5JVf ztXI{*)ZC!rdj!|7$ln~Pecgb-PAiuE{^4MQ97GI~k{tDukFMliWcUSCGuUNe_Ffc~ zWGK6QL=CjkEl|$lr>^)gb>>u9H`74FsJ1~8anA=ZuMA7(WXjUpXSc-ZMZ|lJV?Kd5 z|JZ{kEUPtM$Z|05o0JUmOn+Ec--M6RpSk;N{-~B3=nL3j4h?!5<7B2u@e%Cze^Og< zDMKh%^@6_I^58l99HW|&qGH)W?ZC1D1!(Zu2#+BF5YPX4VdM>-cugPZbnm{macmwu zfBhG8S=1I50t;VS7+g;Ru8x0EF&i)%&YZ6Ffhk4Pj8gfv#fM1kI14A$#i=D(^gdu} zm8={F)((;E>~8rjIvGY(8Axh>kTMk!x_BR@kHGv2?gw9+6BTnvpdbkvd9S)3Ub))p z@<}B7re_~W7mpYTg4?8N!OBiwGrH#QZxie|%)0xY?a#x(d;_e^6jbZ&2uXIQgd(8c zLV&(RaMO}-uaT-0B_Fo0;9y1T&9p=1LRU8d4a}r)?NE)XLGYk#_Q%y_K>E!R$06(m6k9N7{NC;lZSy6 zG6|(-;3D1zKoK`au-GSfK2Zc;n}i~vx@sq)8}^K%!nbnR+>bBL-8S`ppSeMK-Y?nv zNblO!@Xn}%{W$+#Em{7h0}Y8nqnc~kYifO-qu9O;FN-hp@HyB>`Pa0Y1#^Z*$g-=8 zz8P1YSIFNHFa9Ysi3{WcoPXpv!nz$bmYt1saRScffIPs@NhFyidHOLS*^=FC4qW}# za-#h+-IZ zP~g;4-GgybQSnWDdV#}R<%1=h%G!xfwc^g%vz?PnG=G>XZdAJGwx7=>12x^nEz_>foWJ+n|j zdZtM3Go-xl$4(c@&q#F@rB-TDMFZ+p%i!6>zUxGAN$g?wdBOC1H$#mx3+1~s>r`!% z7y&B5Ky5ajM2r5N`zFOVEQpbVnQaL+b!OkaZ}*Dh4?|gwBRx{t92`GWP>MFve;Yr8 zah5|(f_!;X^p=``RCkJ(-FiL~;CMsPSZMgdH|2B3#Ab=r%^$Z&B-R&0vG096j(Upz z4n3m%VzjTgQ-3#X*;!aii)!eKJ2}8C|GukLaLm$qa*BliwIBT5PD(eVDHD;8zkB!C zz46n1XFF~kyXz=(;^L0!z+N>04&Og=G57d$$B#o7T+d`Xa-aF~P=1m7WnNP?fAZ4V z;}e#P({-89w-I-O(HZDHn$v`ngEQ&g$=g9NaEQis^rOT_nL>!4N7B>M-H)V2ef`tH z#FJ>i_!w zvEmK-)Yp&e`_=dj6rkM~hT^_9-sP!++T9NFc2%GLXj@n6C!Ldx=9eD*5ge(}5C#u+ zQCxXaeaA;s+U=#``Ba}>MF-qpO8r_C__vCu-bi=M=X`Xf z^TE;WH-GW{7nuV87Y6e$(INjY%qlzIFvyHlH)C+kpjNsNgqnB(Brr@%MA3`C z@Ew4&feDi;ImxRKozJJ zz}x*TyWS2QR48D_9{N(%xlrHpS^FJkjAL^+79<-3P>^fM%;y9b0^^!lH0m%DdAn%; zK;2fTzqx zfciSAYW{hMFk9AgV@#1rsD(+Wv9NdtGj-$6J*;LM`P`Ow(+H<=_tIavkB(dPq@Svv zzQxW)V01-r`R>Ni<^AiGb_OvbUQHFldx*rrSkIA#P?BRRvSMIhU>KiFMA2o0nF5mY zDI@WvEI9#|L%4?RO$QKQUgcr={lpziCRxUc4g?#if+WRoZo;{F1WwMwS zAb+wd>R@Swe>Q{@;na4Z?ANZYT1weD^_v5TA^Aod@w3V}|L`gzix{maBi>b9lh608 z*BJfIzx)TQI#*i7`9+m?POYcBG4mup}M1oxQ^Is?8m{}1ahQ<{Rt95~(m ztr$pn9&liO=B^dY-!6PgL-^cf0GiPvRNODn3I?FIZO4nC7?Q}Fzz}Ib z0)n;Y+YzHf**vlgJz$yu$f`4gd=ntNm%hu;Owb9;3wdq1(!`~aU)63nFM?}}3fw!) zMgHyWZ>NoGUPHW`i+&j z$he>OL#R2sU;Z=cH;3GV5hX5zKszZ8s4J!CAnPw? zp)8e45UdgKVK9LrANj3}u&zp(UHu4%=jl(Le&GjN3#psQ2TY(l!VKNQ&kH>u!T^kU z=@1KIyli}ivd0W;C5&3Kxf`j9m&%gqaA*=2565|+D|$A|etLtA%Hsh|YdQFK&s=Tv zWvipPw?ck%s5TJ^xZTGn3lQ}la8_J}Ojffy?0$3XN{)L%27C*InYqrukyH5%vU~J+ z_|Pr-95aO}^_wG&xCYwu$A}VsP0o7(=M(U)E}VTz*!$~gEF04^2+&C*osfVriEtNz zbd*xqf|jUP1u&M<dn7Z>Rl^g0zjvyhmqB8vPS7{@J;H1fWIMbCFlDRq zr2#9%!uRxdR1wB#>p)d2gq0=+e1m07KNjph>YZ#9Gn`e}!pr^^Au)usrWJQuAdGcs zr>l^VLg%6c>>A2*G&+4Cf6wxGbn&X@nZ@B@in-d50pI4{dCe*X(D*JZ!ef$Z8_Tq% z2;C6Qpk_FT4W56|79Ms^k3vO2JYx1nmc#VGZe9WlUU(OY2R(x`1O-FP0Ej6Br{G?+ zXgWspK?GVv*LZPs$xc9lEp7IGb;G3umJ}wGHGjiIh?exa6z+lYUGUNl`oZDoaA)As z&KZ$u@hHala!&iR?h^(b5n_YXa?Y%U`Ypcp^U>BN6v6Y4u9bamFrIQ*wa(Y^5{b8L z)=n|bN^fzKLK#AnVJ2+ zdFJ#FU?IW-)oO;+gwKOw0TV}bG>$1d&nG?shv0pm3$3-XImQFGcoBV$+95C4GH{KA zxn_?Cqct~Wh!2P=HET{j?F<8}YJBdziLpBx*_%X0*NLVV6rNCzDcv&B(sQ;VE*jfp z1{2}r{3{&_T|5KOrq^#^ngzAK#(;(>7OcT1h9LhHBd*;yk75em{zC1t;eU^)+q*&a z=u}`lwsCVXMhSXCfL=F#-QzBrzdMB0SgOCaKp-s~Rj-qRGVA+_esg4Af7ia1ScYpg zupS#zwSYk}=L9E*ExcyDvKU(`HwPtYwW%RErW@-`Q`kq~1g+Cd3JO2DS4KA}TKUZ( zK!7FjwSrE9`RCS9XN=43R<+Gybi_SFZJ#r5hnFDYr=2@DH^G7-9m&%p%tXcCjW&#G@wSd%D)q$aUC?WsW~DC;fyyDZ zsCETtJf<4eX>uH({6NkiLB%UAJha$XTUm4DxS!MEM=RgM4B|#;%SHweAb~1oJTqm`=Ka&eDlrbd=~z!hprs_?$<44Qg`9h^GG{ z4`ECpyaL38EoX^OAahrUO!KgOdYE%oyS(&R{@hojUWMIqtu0_9^`kZHskgbdILxAx z;>z8XT!X#d+nAVLTBxPjJ0DzMi&k`q2(HYG%n?;8*0J~V5;ipath6~Cyb|JTxs?0@ z!>1G>&29(b$?ZxGcJw@|ybg$IPp4sjum@-OX+GGwtux3o)IPc-`z+rn=CQFRL-oSG zHJziQ-YWC7#^mG9x8{e!C68}>fAD!k^GgX&kzjhZM0<%VV%)@e^N zGvTS^rkY0cC$9`LlkV2Z`S*Ia-td>H$cu2YX`0#05%`$=9tpr=Z6FZ>aFd_t?qsXc zLn!3rs5$65nc4_A&#bQ%Bl6oxpr{sEda^woHrs!Vw9^TsR^tMbdDrULLU=~dQp|Wq z=5$3;asRWDfxWu%?MX#D)0&d`tM^~d8<1>Eg`GON8c+T^;sO2%FTv(9{ZXezE1BMNzpi-+*&$gN4p(jl`dzy`%bUW0Gb zPVPmdc7z-{LbxKtmhFo$^I>L_<=qm}V}hp(sclR8pYb%A>ae-SHDBJDW$h_g=wwN*>=a_zUCayAQQr2b;QkGhx1O(xe#&by;OQ@x~y6Wt8EOxmuN{K!K^ z%9AI1n&+#7VQT9I!}S|bsu}3ivJwSE(xlY2CUgH_YOqpur0H3$e=|9#MpM%(+QP4( zZK68Gg$TyH?MtS7pf19;4Ra3fkfZ_PYlVA1Y`H{4Uge8-`}88n!2_fC1f#?g7hz~2N06V!%>d(FJn@xSWx=LdmS3UAQq zn*^!xeGc&$JcE>`YQBWHi-X#PzkTYP9*~j!3nlW94#fb9uH_V&V z*OOHj^HtEcF|!!YkH#kbIm8X_Wi=xVxyO9ms2wS>?!8f=Sh>)(NnnImuqV> z`MEr}!Otg1TC3|cwW>FlQp9 z=pk(GKj)#Za(QfsKY{k#kP^;EF^Km5Wfrp+AtxOFh&n(hnU?=dl&sX$6wSZo$GLvz zndEyL-SUC=X4!d%RA3@aLo z{5(P)sn^7ML+}L7woJ{A4a+ZRZBznS-MfGZqB~VAYYXLsX~qY|{mfh>vD5&OKHTz$ zdUxW?*p0!e1QdnXpn!B+1wlo!5d{GO0Rd^V6_F+a(n*BKQV{_G zv!&hAMZgdmA<`>dq~Cym^b(Yi1Vs7-AuLF;{9bR>H^x2Z+*{+;H|pH))TsKUz)Dv4 zzH`p!na`Y)F}hHfD(h1Z(Q&-Wa_pxFmSGDpC30X&0ck|cm}t~bkQ^iZGBYa6m2SN6 zH^baf%{6ayK2XecT8Lhb)VZ2cO9@{n6qu0BU%Kta@nym*wSpFodUr!&W1 zyFCe-Ov_g647t{q;As8s_QZU-LMN`yVX-OJm{gVU+0m04el!iMoY-GG^F`HGExF_? z%$`D*CO4x;eAqb;IjOwo<^7?e=tt0=WoYgwe2j3KI#s6uL!2<%c&muU&=ZyL%h5x$ zQmz}Z(2Lot35nwk*bQfNqXK0okYw_7h1RJ*x>al`kF%yfmiyq097g;vHUwI~%bZ=c ziqSo?_q$f9$CupCN9;XMI;O=zVy4>7bIM;Rs+u+xRa!T&u);Bc@4GS~c_CDV;9LwR zQal*t(k+ZFQ#QxpQ{VNf`T|Ki;EGF{g=QTVHC!k%mKwgSnKVqmjHQNLDe|B1x}v<^0LH+S5x*@bEx=T=!-{H}XSp^F~!)w;rJWsgzY z6~EAvAb#Few+W27j(DV_=kn5XRGVY_Bvcyi=3RahZIaYe6XeD%VX22B5*!}ITYb2^ zdSSc3|B=^8`;@`%dEd5olV z0-J*JOfe-(oA5s)(>7JGTXy+U(4r27M-{%&)e&qTSnd=vf+sm@>e2#5SeeO?!9ijI z3`dK#(gMi}47vSs`>O^CCelQC&V|8X(f6odX8fk+0D35*+|Qj}!R37Uj0=waASLA? z;qj!=B0oMLf3d$nvE@~P6?wCMO3(OL$AKK`!jX=<@4WJTQxe@a4e6ZD-thUVg2HM0 zd0y|9rJ&`B&ny9sZ-}p~XY8bT(&%U3-=zmeL@r~7&mvo# zMUQ>W<9@c^7j>YQU~zBTN%@{%0{3gF$Xc~~9gKL)eA3t@D3FMaNel29?u)ixYn@+~ z$nDFs@R`jm4}_jtP6aY(qxT*7mdJ3Zf-tr27{RnG*{DzRhsZj@IbjqisnXNS6!XX& zEQcb4eVV<*-aDiF$b*NHY|1%87EWC6{(k#_p`A%_YtqkON-cCoG#J#L@j6A(adgMd z=7uPoniI5lF`~%EMQLPmzlZYXv2H%h**PMQvk=u*JG~C%SWTHRftT z*O|X(^Z&h|;9o+3``N5uuI2LnhK=v3i9c?CYW=rSAHs0o6*;EN_bBPx{oio=LL&aJ;_C+-IH}uA}>P(k;X0RhfV5he+F5VHjq%OGg!O*%GZw=ssNu=&$cB z5dX|OB9gnP&o_i2@NK}q&RTF7$cxvxn6}s75kotgF!m%$Xp#>pVM;f0K<;qtjjqDL zwp-V82sed!%MzO*l@BU9T3nmi2Ki(4+p^Fqr)`F-@Ak#~3Xww(TdZ~WxT!aO_Y=B= z6SOiraf|%hjS))U9jNM>bL2T(VK?396A9Vs$|Q~GvwR{EnQyc$1idk3;7pHxZ}FQ3 zN!X=M&(Z09rv4Xtwm-HRwD)>d+`fo2x^wj2sSOYR$aAyT_^DSLhvf0^mIxnojxuLO zciwJ-p?NUqM*&jR7~y!r{a;Vn#K@U$_?S64*ey>?y<(*J6yD~h@nnjFxkt7kGoorlT zQD1ZVX^Tpu%o_{dwKOvqgH*DDaekf}Ue|qC(G{qz#iWM#;FfH9FLo%eQ0ZhSEg zlk#1pq)M8u4_I%$Djaa#lmC1o4;_+-%c*!bbye>F7SUP&c*+j2iemBANNe{K##)@7 zp76-h6(9;|PJ%uqgZ0+G1>Lm}15NB>tOIL&P8U!()3uy%(G@e>A0i4XG0^Pr9THOX zU4ISOkVkId%c77@67LXr=y`J0dWgU90Bw8`WTl1A0H(~{b8`MEsueY!%v2EMkgkE9 zmH-a`a=d%r6^No^4z^7^@O>rgA7hpfGr|;q#}ARe40-L~I7MM5w1h!jxxW&FnMZa5 zDfAb>87s&Ho6lYZHBt(*EBs@jBk0|TWv6Rd z#4ZUfN56JiX}(%KRNdr!^w6chd{a;)F7((>?lf1uL2V!Fvg+kq7SRp(hxT=HNebeR z)AFzXy4T>)<3xhS)By3wwTorsjwASvkW@_BA1!pRAZ5|+Nb-ldj4boYOKj3~_@O<5#>|-QFV4U>* z%{GkXV+}U@9#PxqfCpo{<{VhE>#gc~0>6myjD@*@vC`N2)LcvZ%L*M#iz}=9mQ{7O71(u5aj%3cLsT5`}KJ_Yh zork5TwC=ACQz{Y`Z{IrD);O40zjd#8aj{0P5XCACd^tzi`;3UvpS zGzxEDB_yzwgU_}N2UPQyCPQVJ1K5?H`TSgBArsa!YQjnl{e$&`6ABr&(q^j+Oe zDNo%qBxD{BfgW(?^`y=Ck!HGTQ2|SdQdy1+^=n|nV$Td8dEq^-ayu;%Z$+`u?c26G zWtKvDlEr#QE(4W2mL-ftV`KhstW^S8D%(P_>x5r{<(lEE8)Q`n=*x2GB5`IRM(3mp z8`LgP>Z@K=+JI5>LXPn?*)5>ltsKY{=!R-lB=pIQOE1&!*3YzXhO01ZH5O}Cj}{?lF?}K#QgwUbQl2}< zmGYoYN^q5<5E+0|muY1FDbUQuJ6QD+%-!-qNg&7VX~4qHPcUToZcrsqee0f0WS5Qe z2^#Nq51nsrGb&etRFVh%$!BWk$v?nEkC>SY31+SLBUGhTUl zRp~1AVu7I(7?lf7)`)(>*sZhPho!zBuC|4TF;SZ8VCJ{L=akdZpFtVTNq%j3`3;Gg|lOZ1+~mLKu^&-ufs36(JWWm)3SZUD3Y{} zal!56o%l)1et}Xh9te$X?@U#xCV+;21g)HJM&xfPcavrREaupgoj+nThZFOR=ntZz)gr8xE_4rwq}$~+3}9K57>p3bWr%$Rc} z$D{n(GKz@ZTcmfTYAK2V-(`Kr&Wim;OSLnJlBzqZ^Xr!uIv=T2Dcf~D2$tE|GQjy(t_ zT)1!oF68gVo3qTDh|&b(kBADv9meDeEIBR2F-EKmrhzKqo^mRh>(YpzAI-NK$Q>Zs zaYkt&*|-Y(bIXi~zGk_dH6Jy??Fb2}tesC<8NmgZ zJKNQ)=WmD4HdcY8kid?6m{r+=AtH)gOv84!vHih}=JcS(c*k#;Ej9Wl9C39rz1bX} z@R}prhEhIr=-mbQXgen>r>cy>(}!v*zpL2<>f9vnY1utx5#yQPX=PcKZ|I@xVLUk4 z=2vjmZdkkg;?d8P)0NUl~3lRwLS(B18D=^-v~B;HBFPKQ^T{7-IWjO z)CB6BQ`xL94h_j?$lzzyZ@Oqsb4ysB(^MU*Z__KCeV~<(SurPZ>G_dym#%oHWXHQP zO(uI!O>3H^oqIiXHRWky+EiP|3x#v1#~0*Nu9tdTtkJ_xw4I;h`E>*zr@yQv=Q6Q^2ArNA>C}N zL}9z|bvEwoDA&?MemwbP#ka)s$36Q2pVyqVGEGE1#IdYzBVKOKglr z3{{648=N(`<7?6_=28s8Zv%BQINLSNm4|}k>_YGBzAWl4SWiN~k}H*tdFpn_ThmLI z-z1ZhkSzY9Y{ulU%ERJ3XY1=`CmyRCAKRK`YIX&?&2>RzHCS^uzcSM|CsV0h$=>Hh zGrisXZdqN${E(OMvrjam#I^y7CG8E}K=9+H*?;0D&kFOWgDbn?+qZAet?x|3QvwlpiWbvS2}--&f1s>03u4WOw8BRW(Selo&VZ^eYKDYObv zV1Tza{xFjgS)=+24q>VD44*(uRA0GRN4i@*eIYWyq=iFwaHp5RkbU3n<=RtS`%KRd zUXA-cCu7-SoaR9>PBgOc>P_o^m-pqnMxmPRg6F&J?16xrT~FiVC)2JDQ1%Qfd3epz z?~Zn23+Hjuq&K$pPC<<{ae- zCE|Rqv-hYk`^@3ejp%GMFMYGV@rqv6%x57XkBiH%=Cvt0r+X$2KI^jf>Po3zxn1bp z9dvg`j7*#t{YvbqYQ@n`-L(bpRD;o#vrHdYfz-H96>4=>gwwev+1R=DMFbQ0;A^Bi z<5V@=#_HT>N3@3h3vhSs>2~%Ga7d$^3{k(X&#kmMofpefa{fBMa;=VktMY`W_-PkU z&5dTebB_gDyC1Xg9N1MZoI1-WoGURtWwX&hD?WjurRb-nOgQ&CuDpgiP&aACS>T1WU>uWj=^rCA*gQm00A0l!D!-|q#f+`a$VL$T8(^ed{&Rq^w%axAq zZ5X6?n{g|j&M(t;P8n^k>MNQHJesuJ&n2|?WJctyvMnvcPkkm!2h^^}XOA8)!(J`3 zIBd{0Pd2jCel;4U=^f=XQc&Hy^2t1mQEVH5NDB-&lxEZ}!Y!D|t!`rM(Air=I0plO zDGjDwb=spv@a9diuVVd1+s${tR*k_Ck>%-@Bj9*a&<_~_-a|C zX06no;9)_QiMKu$qA5QKp82Syk#g-}*P@P#(lU-Emi}pO0+|K3Dle!;q2W=MkMQbE1zz^w*ZU9`txkZM9nUaGqc3(XG*b|Re84Owpnw*P zcRchHZ7rN&4Pdi*jRDY$1u_|Y5e@}h)P4;oK$I8|?0Uf9`EFhcT+cGaSPcZABS@uQ zj3`Z~vlkuQ27FXib%L1k_}jY{LmX`0x+oq~c=t$W{R^8g)TzY!3%cqeI`*F z24R>?PSmSu57xJ`$efzDLn;eCh2zCe3RnC4n|IromF^vt8f_QftAA3ILwQ=abFyw1 ztK_!Yy+0@Jgc0RyX(1W}|? zb73q^oVL`)%tw8LGHnI1Z-H{R`JFUEz9l+NodZBvet`$1rKQ@OO60XU`Xh81HU&&) zHvqP?(_b-b*=?vfG%zKC$j~i-{4{KY)^3%6r+T!sdsP+?pgavA%~Q)0q#<2ESeZnV zgNCmNi!jSO;CFh+3txsHTh0U^?u94lwQ^>>KC*d)y&xt~hKIRq7ACe_w72H)7RQlZygB`~%zS*+ZZonNQ z#gT3_JI-OZc*~KShi{&szo6~#wRT+hL`yV=_pzR-*tm0~o^^aHNxq=hCYLqQiT|R| z0WYwrtA^-Vz`MEWb4Ngf613lqUGI@+aARb5UKW z;6d3hhYUUmBA^CJd(ZA5pY>k-t)%%@z#2X8**@AlOW z{%n!ZR~XS`86GT|*CDa-SfGbB7%{xdtQWN1Ew2hew+}tg!Lc!WkoVY%vv^vI+%c|; z2Otz^t^<7|O~~Ov!udfl|JU&N=jfvY3u>J&-~HO)ym*gE${l{q4iPmMcpYl*uir7QENz(Bnp&`IuTh(wLq39X|H|$>BK`WALkngxcHtq! zyGsJgbJ-a_ANCP2lj8`NC`?t80Hn^SJ7fU{O#P#h6#8FPlBQ#>Ggdc)Ofkm!|Az|K+@ z+3zto(5t{Y-&W_JB+`L3HWmMPpB4=^sXT{@bkUyB))KluF2DzD1rd-3mA~PqZoZec z|4QiIrB9%2h{H!3-o}IBx$P(du$LgJXsZ+K2h?y2w7iWgDcU65h8cgyqVeS!NZ}h% zKrre7tMCFeGg}4+S#tsZYx(qG7+xrpOh+bO;)b}MrTgR5nzv1wHsuKU>1}T5jNa(+Q$iKv#sek@VmreJ1 zRI*3huzsFra46{%`Hrf_H!9Vu@CdC+8%$L2|0_1|PSCo84|LLq311(`9;M_oLq24a z+-t4*PWq~yMX5(VZ-M-Mwlob%@w^VaP1!@-)v@1ezgvVWa$udRxoO7Q%;m5v#i^FX z&y;)u;G((ly0WLfRa?{wcj^23>~9acu-FoPU_$KH19ea$^#2D#|9LQk51Iu@BY6sM z6&R;8gTSt0IM$*=a512_)gM8;z+Xvg_>>(59i+A?}57xO2Q!dN^# zhT`v@B(0@BIt1(l_?Ew3@PVQGG{W5nMxABIyrll`k2~t28_=o*2H5Bmpf-Ii4ZkjI zwg!ZO&naOT-rW+k&}vd1D~6engDOOYNsM7&CXIDm^$5U}Ds(h3`0_dzfN?zWybeUH z3BE`-niqhPr7eqd0)L5z+Sb@qzLq1n+k(se2pKb$^0UsD0b;NCzi3O`f-6v31_o+l zgFc_FaUh|0S!rdvD0_0zh_jBViWw^nJzSk|{AnNWsqmHe&CS2~%ho10y?eEF%av>S zvM);>;pGECyk!Qnc2IiG{$h6OYu@{sjb>Us{#OhCXvW@G8xT}`hrT3S0}uZR(hZd- z&$9Wp0&VyT!H-~=1uXqe0XA62lo`--d((5uc8uY>#iAjr+7nLq0duxEwwR#f9FXz* zV#BY{nLFJN3I0qH8t*~!J=TU~MzcReD`zbVnprdVJ*x|&DV?UwTsov3_d~~JTHu|4gl%+3LaSNn=6r^q$@f;hD#J=hk%S>I;8~? z+ScuSd4jfzsR5Matqwq7EeEBb`-21$804}!?>2~iq#)s?Wjg9RX$m+Bg=8X#NBvR4 z-|9&LS3ScTfd`>1`cImF3PR3fDr|)> z4CjES&V+-*7HX~o@`yu0x)#=f;xO&rW_Bs`2=L}4PT+>$X%h$Dh9R9=s2?IT7Ad5@R>7|C$mNr~K=3ga zu(0|^nwHR$#9np8+)(zXlvng;by^MoYZzC5Re_@=$mv=@x>8xd8wt!oZJ8T-G4dnW zfc|mNl;AA~^(g`|{2?+ThJ0Z2iU3Nw5Pn zkb3miA0kWC*4^kQ_fKIy3v_>oyeR^)NAHO+24<`Vv*<$;#mp9yg!(!c^|%;))T$bu zinM8gHGBIPn99EbwdH_bz|d?W!5{eFFGU|Adl=k|f>x_KUkMKa6ubR-M*@6iE^Ht$Kb)3t8)50TIN)sbwA zg`vzJtaY*hMu5=u;;XEi}?-pMC#BL*l#M$*`=w;jzdTsOTCg{gMe*%{%J4mqG6+cCCSM z@S(tvNg~pAY3i%e=I*)iFNL8vHSRKg@O;X*{Gm!04wGj#+N(F1#TJ4OY3QPE=>eC(BeS9b3`2A{iL4Vkol za=~HyiG82iUB~0EIGiB9jeT^|>$q>_cADRE%jlNhx1BRv!Fp+3u?slso`qA+ln=XR zw9WU=n>$#TVztGBq%H4)#A9NA`dGKJoztBeBZ$Dq>k$mIL)dJgV+guF|(q{S|yIGvymHODhQ>pSMaS~mRUVNqw z%rP$zy8*Mji3_ACNxr~REIgvkj&OsJBERPhX=nls6;p+Y-Sqe$A|?XS-`-*o^Pk1N zpzjJWD>?pI*byJ(H|!gR@P$GHO=zlnurEZAJg)xF(SLCkK6N8T=5t`n-3lxOMjRT; zM^U*hh%t7GX4xbKoe6O+p^4Bo2=E#Yfs(z66rD1T$Z;MKF2lAj>&QN2Px}wi zdDCm6QBn;Ou4D%%r^FX8pI^?B*nbmsJV9I!_UVm(1V<3xc7U80GiLYk)odmr-||`q z%ymA52TYO3j5(d-QZWsacGTT+}bVP^1o~3D*Ao z|Kdv*?x8R(etJ*<)-FExgO_QMhC4R`zL;2qe4>k4u zIWTU<+-Bj6*N3l=(faaS1)z-sSYNu zGK7Ww1%J3HI5}RJ%|dO);~e^RyZ1h2%vBY|y50{QzhL*_&gu$kqQ$BG=zz+nPSMrL zjO&UMtAoA|8o!5Zlk)iUx}twaN@(l$=t2XMPNAHK-+7(hiP+H!+hRdJ0mMsxS67@2 zT=BoJEB^0fgDzm+h_?EKp+R!-I%zoG49?`5zlTr@%g`n~@k%eiFRc3tdhhyGyae}H zA@}Cz4)%Nh9v6alJEU|Z=7b7K>G#i9ATj)x`Wm|?1)DWhLUuYG-T^{jmCz|b*wOuFx$VAyz>^ESmQGpf-hPhb4}YsX_2 zg$8~Uo5V}!u3M(D70uMIwX2@95TxMuAy#gH({eNYIe^YIQ~?B%mrIGO7u=!YcWpp> z=!h4c)dxiM50SZWV6=Vtw$N188B`@0FmfRSEa>4O4v5PwUo2G$c13_N>u!lkzl)q)6U9U9<_Y6hFi${4bIYEYet4S6t{|sF<*r=7N2~kkAnWRc&~j5s2eGa6nt_cnwbu80bGjdjos;zU~Oz+`B*> z;~%asa%c+wYFG0q=gY2~7Jtxrjk206Sb3nk_tvN+7z4QPBU4%{IJ5JKEc3~+u0EVR(U1?Bm2^}yfc&;E4=SN}gl!u@|` zW|b(4MS6k-g-W^Z^vYP!u~)fyjT+(ly==Ql6C(9-c}BR)>QKj553Lk(VrNSR;wfKU zC?C0+x1V%hGIw3`N+aVJ&kW^0oqKtBg@!W`&ooTjN_%Qt?lU{(W}45KzRLJL#7hgC z(Pe7WzDeTpHk%>e9ECr<*4b_ose&38e(}&fHb4j@;}18Saf>Y<2`n2FU@5S_VJTO) z*fS<3X)UML$5pBT+U(BKwI2A~_Gi{#x>v7@oLLi5T(4yZ8o?OkftG&!ZlOZl{|u?w ztvtXjCxj8K0ID^g3j=yiFdG%MY}G_tJ+7nlLj+r+09;(sg?s2(KM{BzpD^|dm|9mz zUJ`*iO*s*iRY9ldARc`05#l2n&+j;9t^3yFQD9gTdy};81KJy*l5}JY@e3J(Ds%?RbMcRlvXiHrICVVeId5Q4={ZlFr z+X7@rX*%Nr#RJJg?y<3F2uq|?txC8nm3ZQ-8{o2EVgb%cF7Z6In z`D}}ja-qYRQj~zao&^bGuodb^CKeQ%_brIiCS>tJ$oro+I?%dZPL>b2i8du+9W>ij zP7|67B=wdN6{yW*j3i9ItbpYC>oImf6SCNHQDGW(b{Rz5K6|dH@DcOY2rTcsZ!1D} z4bzo}+Rp;IhRD}er-T1o(vj4&LkURc;d+-bp|Ac!W) zgQztEkX;911*93h9WW{>?O}qHZp?TfxaUuOKRJRbK*jLE8QSdy_rMADd2hil&$1>& z*IZkn#h82Q!uUF%sU3P^zEKzjNTbWbYT9gj=pks@cWf)F1ON(y43MB4rvC*ko2NY| zsDQV25BY@VIY776g^Jw7ja&r*NnH$@{evsv@`qX4w!>Nl+K-voFl zg_&ox*)Ml|kiwIe>La4arOH|GCU0e{Bd@zZ8F zU8FY)g2&KpD*ptL4lYZdvnbWo4_gtUl-K>*-d3B28m>O)M4`2*UbzAkvV!wNqs ztlUtd>AcVmvEot%NsbQS$W!+L?d518puvA1g}j2Y>{VcR!0~Am*Zv zu&ke}(ym=E1iZd>&VrC68bw<+`lhipLh$M+2Km5S|3k!K8@`(!hM1m2w#)#=w15o? zI_B;^;LIRqKF_c`OAdsTXrJVZ2~#oSU+Msk8Qu$D2X|%`rH5SOt_YGH!Gd(ff(1G~ zvM0n^wC!(`R{QTq2#BFa!NPTGK(G07!voEQT@k{^H!w>vr{j=w=4;D_0Hqh*m2CIC zh*^uG%_NZ4e#xnH&NX-Y*5&q|v?!0qfRrS7q^5VvdqB_-0v5y28g0!n<{Pw*C=8~6 zMCjpyBA35a;H+noVi^@Rq%EP!cp4M+q)voj3%9Z`>j;NFBHH-;h4+=An~QtPh$5c$ ztxuQI&rjn>QgHHbCud~tamf9HXSPRH59s{nwpjLdj~&*;XUI@&&g0+8TK5hFxOC-= zq*!=_FZefG|e&d zXd>D5{<~B&I^766ZF~jBtWNA*SDa)*W``h?j9RbQhlcV*&aZGu3}%J~g%`qd9C$vO8WgcciS>}K0vAs}-K zl1fH(SCfw=ezx+%U9E`fUXCS|l9b~gh0d4SD^i2k%5n5Bb5!+AI$-I3t5I?pQ;(7v zdWP%-;&Dtf<_S$wpu{m)8Pn*2ZJR>RakZMLktyDZuLasYI_Nw&q)96SHCRZvo((FU z(qyV}yb2lD#GFF^JfjU~?#1EppzZ&a0<(Z=t3+!DM$BQe?RoF={Mxk3aSk>Eg(2;= zC1t5G3E4;FO!udy^eCSyuU#mwo;l19*@X9L!0ZiFk70;~9wErW4>|f~9Nj{e z`eS+)jBSxqx&48#gA4oQ$s$I z25GKx_*QEL01K0Byy>}fr4GijcBjkOXYP_MZC0G-Iy{c1CH7WT8diB^d}5R@MC*ui zvd8B0nA8VQ8G26C2jZWF53?0wL*?&bb`TCyKEZyV{VFdd=KD;jJa|#`6jjCfBY}tXqzI zN~DZiCDabM;--cD6V;x|X6-X6yh=X7BN;gahcL|_k=7x~gy2C$5$O&_%_%Uobq@ND zQBn4kMxnp$ePy`={R9t|*Vfhx177lc4e0v4d2jVV<-Y=|Hy0g!_SGcdjhDfz{6X?X z%fe&3zD~wZ8Y9z>yiLsL-t?aBgTsJwO_03kZJmApUYcd7?V?R(?K1kkPYfa{%&ZfK z71-!UbLG)!6n@0)ZFQIlcVo&m99=ClXF7;3SN(Fv#@F0`dtE^$j_yo;<+){JXETld znvA%Y!dapE~s;<*F(0Bd_%7f zJqX0rSWZMejR?v%oY>~u2)5i4Qx$UiKN5__3QtTr59;oL8+O-aOd4<#=u*k7eYLXU zRE;@rFp|5DNdDsFxdpeqZ!OW;^Gz(-Cic?#tLz{JnP=^*g7qN*PohY4{jl z^_YG1)sj)`Y;Ay-^T_Nn7B|)Xh_uTa`Bk98!8Y-!8(<=ng=b$PHk}E2EWq+KxTi>2 zp1Vxc!hH+vKXv+UN)IXU*wkTrU-fH9?Q!+E7SOM1W0Sc5Ku+G(L|uIU_+39@V_=oj z>=Mnv$vgI-8a~gi^@VeH;0(=t>UMDAtth{N9F8YAt zg23f>m?S)YrBR$?h}87}VD?6X`9s8p2BPzqPd^y`ch39zk7X)ym=cuW)jk$U_z1d< z7M@2AU4im5Kqk5^ifO(kWMYulC5PKEF4Wb7w90N_O2rEh-D)-LM%%F{f~21#H;4af zf@aR8#DNZ07R_8B0PQLm1Kq|)e|^~v;{AVpz3zWaq9RH-4WMCQXg`|g3zZHbFKVv; zR=Ti?k&}gnx3r?y5|g&UAd**H5GG+}$7t>g!UG)ZjWTpR&SCI?I;_Li@^dJD3{1q`q;_oJC0ep=+hFZh{VEB9xIB=KCU~O7XgD#Y_ z3qM4ZaNJ2@B8tuiI=6-B1oTugfO_r6$7wvXpCNpK^Ijcko&xyjN!~nw7)mg}zrFj5KCLA{L^4p42CFR%G94= z7ESBq030L&So!OxD^NT^A5gJ^??~%j5|T5BNdVUQA950k|NC+h;>ZwV@i(xQ)%m9| z;?Q(2*J(Yc8Zp7{gJzk(L(6F$=CgfcD}p%laPZs-;6`)1Ug#lLxVC}>0f0U(v*7jE z>3 ze)N4dicbs2@PhCF2OG5{)NO*=B9Si)-igq5(pn1K73O>#Y_y)SZeg?loMFJmMh!qn z#gDKDc)!_Pb{j@Yah97h`YtGf{;JRe|;T5KiK#;e#E{xSIHsXsN+b9FEMZ9{tYEM`1}t0j!q1*o`> z7^9pI%?Ds+4}*9A>iUOd?ld%%k6Cl_2kygC3Ah7rg^sU&hXbt}CdyF!i@VacK?B&G&Tu|Ht85y zNfP58CGEQCz2am+l{APwYm$<2)H?MWi*0Imdtv?@M%HV8+P-unC;NbY+khd>g%v7R z+1c5Ji5cF<(hUbUQLn4wy-XD~(wfcYP+E02!H)-5=#8zfJx7ni5?-8^259pOjZ1W1 zgKV%=RaLx=)2@KticZOzO1ly#g{a3Fnq+le%JYO%J;z3SzTdsuXXX`D8=sJGY5cTG z_}O)@PeH=%!t&*Xj?kV@RQ}=6zc9N(*TK}WifWb+SDz9~X(WA0{mGYvmZKx6%h3hV z)P3J*yVMBSz9;gImfRL|3MHO z>WYVWCw}Tpwh1$ky`OOzTf9P;hI2)vGAPnJvtP5KcR^4JSF+~nxFC7J|b54V=ubYE_U zMU4%dG2h_?gF*}))9bif1WXp*tOF4j9(Cw=t6pwuz|1zre>#>>D=;`D&daBk`^K_u z8G`%S6T$%fu<{8Z?t&xG<8{K1l$#p0793CQBa)NGWI3j0D?V@J_dD zYxfpgvC7GoK1x+Dzner{C@%}T%wW?}W?1goBF+jK$+|g0B}g+c&a_;NwzB}CzR!&XZs2bGqIj4(zcb2{&LbdrLVB5|F_)Y!VkacUaiRCdEey!Q)G+QAuI?m*C!s**{3LZ|L z6(iO-X|sfvV$CYiKD~et}rTZ&qB~s0Fb}jHp-aVPxjCkMux~Advxa9Et z^0yarV9(-g=X9f^Y^jBgf;8!bnd&;#Q-AZ zwbB0Gp$g(aUQgM(%*aHWr3v3Vk8hWotwi_a&}xcUYKC)1&K4M_5YzkapQ;qrRNFbE zU`aAWfkYp>kP;4jyOZdZkGdj+;9lL`p`D<^p=yCZ3#PGsqEg%%7@G)}dNj`#jC9Ay z?c?ymm<83SNDMtmONy?WnS-ZX>{+%h=}|eB39)kN^!(x7P1#cH#`<2;Fp9FqL1Qp^65goNG6BSs#|h3FIZh9=lA--eJa^<1k~ zTB-Ex03Qu_+19WCpU2p(H5fK#r@(kXcfXS-r71%ZE=!?C&g@T~gs2E82q{HDM4*(Zn35_L5fD(2c}P)+ z5D?t3t- zuGjDPR_h-w&C1F-+1Y1*r_bPCZ{6eR=9iiP`U~4NP*3Qa0@25DtnDT;Ma1h(+}vWG zn`Qs610vsY_)x$)a0`;MwehX7-Hqe&( z3qQ{r1r>~G`B=YrRwA-6z2&)9$03!da!QR3_P%Ubm=1Ku`+lTU7C#yG`A@C+e+EqH z|ChFW|3lM}Zzb-x68Bq)8}WZfj`&vMek*bRX-eGx7{mVS|NCd@_5Lq+-})8^zXif? zf$&=({MPIJr|FJ!Zp8V}vPKuxNz7SdmVndnw;fGzLGGu7JGusi92s95D=upuw36{=YR zbPn8hdLqP4u_4J3Jz%Sekq{5tj&U6>H8T%~4SZ9nYrT2sL(1to>kz%VH><^i_|Z$$ z$U}7w)ufgW3$zDt1a=-RHr1(C*h?CY#c@jy&tT;31URF5#J%niNF9a`udbKbI_U>nqFkauX-|q z>#LkaZzi`J=zqpl3NkV^3k+yK*6e7crQpk1ehSHjQg`N_x}9}+tkCOWUnlTnG>5FC zn?}by8KHUaW$N{S6;tjPiSUJ`{1g_JnkkY~nE-gd9&SG0lLxi3V#n3RWi&Msv;R{) zrbZsj31aKHe$2k)+KL-J=1o+Fp4)s9#<}^;)jjxKeoVVj)!R?z3>1dmHr}G%F*SB< z8RQklq+49F^M8oL+1a}3MeZ4CF{x#^6&PN!IQ!y7kI%Fias`OH??qrIJuT*h@R}y+ z3+X%t|2nU4AyVir`r%Cl(W4UhiFC&uZ*~Zz!074P&d7*%v`XDTFse>3Yd%Y9tTzpJ zW$Q}IZ`}_4tJa=xuzI)Mq!*?X{&-S4m{y(YShFz1@?}ISxSr?=3(~ytA~;xHB^Sw)w0|TIKgPmAqk|8mIS4!A8f&ZJlk@ZV4A+}qAo7%R$DSmbT z@sL}=W2&z|JNE~-YE~wdu~_p8!b7WKcslg4S|M<#V*I{lC-PV6IG9%XUtoH;8yxnw%Q16& zNY*~-=zV=d(>S_1UHS4sXwGeDdolZtdiI&)HhB zi-ZUk(`+k?M*?pDRH}ztySD@j47uMKuOD-+)0^)_RV5;(iDjX+0rSekRor43-TN~>W!`zGLlcpy&mlYCj1fCs3Lt7RD_{T51PqhFR8wYcbgqILLGE23z-HDIX{#|&6%sB3&S zeEdW6AgQNpPM^6m<;lq0$@{Hk=1j-C$E-bf`LEH#Lf}BL`1ac{V%3d%9uFyu>Or?a zF#aE37MDB~S0mrQN1k6Gy;n$y!;5sdvdCW4J^3u4{MxXh8D_zq!*Rm&(@Q=XlxONA z#}Za;V;QH+GXm(l{#@zV8k9RZHZ#q)=jXm;kPS4`#?~5X8H_>d^k*&4pbYv~-@zHI zXb%P1{tLSgR!?VfRE{wI?&%x(3?7!6*Z0}ldpze!YH*_OG zGmna0hJy&oogZj}y)6}e_c)B#Z)}hs)2Wks2UV|pc322GoA9&KYkwXOgpLvwKAw9p&Z!Tl^ z$$<8HR|+ZqPj9i*oTaN+g?)Y?uA| z7zE@K^#&IaWe?FcxPhl1X?tmqB#%?pjB1lt&~E2!-f!>1%wz43l)g(2LmqWCNn%JjleC?{8;?i zlQqQQ>QxV{Rk+pQjrs+9kP!UJbL#G6QaV{rSsXLr5dwp6Bz_Vs9oxgR|Am`DnaYu# z42u?dPecc(+zcy*i+>qdA!vqdC+I0g#Bqj4FAOf`Q-^+4C|AhHzFt)2wDYmGL-EB+ zMJ$cbX`H|q$xWV3&}o`};O;|*<^>C+9>$4B{|48RoWY3pmI0wPfLGtzz=eS47|~$@ zk_A9D2Kc52-Vt@-U$~jAsiPzFBqLsqXpcu^mbK%e;*;Pct=He1HMFGI4p9neErYro zjAcs$&B6N9#gKxbx8Ab7hUmmq;ncW5#_*^{?KstO35MLTmq=bvs}_BtLD@k37=4I| zye3njzghc5Kfr~PBWNQ+J-fc+o$hrIvZgv{O0f4Nq=0Ui*#7+ZN{{;2@uThlQH?^d zy)dj|^iWxi(R{E(@lRb-w+qz+i)$TTdsX@@EibyqcRLQIjv4fiVREx~Z_6C8D6VX( z&@O(VZ9G46R4gx)1sTW@YY}UM9$zG!pS`uqJZ8(F_aKTZnbqLBcJzr#GT;GBWFkBI-8vBzgQQ0E=e^EG z*KipVi?QOzd6c+XYYnHWL8AGj)Xi@E;{YS+XkCwO#%+thvQbbWo*B8iP+M{^cM^Gd z4Zh_RG`?_%qaGUQmpVojqeGw0=t-?c%8O)r>3$G=ygP;@NqU8N zpZ~_>;1l9z@t>molNydgOLh1?ez{6R+6$|g{XKa`McI$X31z4IhXstb&tr4UnEb1U z29I;(kk7W)+8QpE$?NUA7-*9}Xcie57BI3Z?pzFfp7=QnVV# zm|pQvCFtSG0~hd|#g#s)J5EseLEu@8^K)pw(WR$u%WSioZgljw9#L%`&#nlo8`$!i z)7jZs7>Tu=7rcS%pouBz{p8Ik=0mXH1|&nMy;-_LkGltXJ3mF2)~|gE1yN#0JMDQZ;hW>DtgL(}FeK(-quA2m1E0qqrq@g_(?m;HVF<3GG2Wq(t}@+1 z5scgn-5Q^nSX-$zHh5DY2-j^XY}Pt4OjQ-{t}mUml1JS=D@s%R&(DBY6|GZ$dmbR z#pwu2IsvLR7wxW@q_kl+pzDg@AniQ_3jaRW-}yZu#W`UyQ2R7B#TpKI!t(H!uX4s( z?bYX}?v^TiwY(`tK7W0b zwkZZ~VUrV;H;Z#HJ|JCJ>+7;*M)B{^VfhItnJ#Cdf&=3Gu_QV8bRpc=Zlo3;dv}TG zQvo|&paP2S%CkDLeiyR0rr#@B08YZEu^gk8-mWyChd=h?UKjce#v0#qbGlKtYGtJs zh=hMixEW@7;zp=##1Y7tMAnLBqPW%+_$U@cM_66*??9_5$-5@9llU0rBV6C)x;`)p z-Amg?XbgxL!?r4$a7A(knT^5Wbp?*Vbnzm zwBy?}%ZmZ!;8EO@uXlI_SA2zRE{^Q}Wcu4bFsuI@?9%_`-dNunnBN+h-x`?T8kpZ2 znE&(*OvnJmy>?_~LA!Jed5&xl*Oem}kw#hvTAf$OXvL4BCK&w7u9&|edDmYa(aOB0 zEGktS-v-rk0v~ZdmNQ9zJ;M4|b>@AM2n2>I!C9uOZDGHPOZmxZcgr*N)IFCyhH4v| z#?}KueVj7K>>3#sT4ZvjXuG?p0W?|wG5acux%o3c3ic6hvf>$-iwgl9t|fx+&67-C z6@RzZs^}}utb0bj2$+!{5S50f$=2TI8sGZX_Ui>motk&yayZ@hf_eFnFUxse?#5D5 z@usZ~HPL1l53kcOOKy#`zLCmv9d>DrNlVIZf?FX-lZ(nc&~+N$^tKrbG8Hmtt8qcW zu2fMNQ$I<5SAUvoe)ss*)a~1?tg%?wg)2Ps=23m};pFkx`<50t4*Gd!yFN(l9kxq< z`p(75&9RAo84)K~t)bxc6(ST3QW-E-e>f;l`l%iCfJQjRvx$X0d=D?GRV>4$9 zs{Sa=)HCSOiYPmr!Kly3S)wh(^&YcJWH|&iifZfohLmz^*hyi02^e&gHh%zk<2uK` zAke6cVoB3|g)C5m>@qQ{7;%5^EYjjp?y2&icug1d2e$rj8_ne9^ab;>1 zMjVir>p3=ldcxFoxwSHwWAYwtf45{J-^OyV#Oa*r+N$G7BtLXqH!I!gNUe7nLR-2I z+N-Trm;mzcp2lBE@)P&ST>GVsFoKDLp0c9R>cmrU$Rs&IA?WtxPqmou;jY0BImi0? zEF`V$6O+_ZFg{|Y%lx3v2)`VbNkwm^H4RKOoN&9f7_ENHIZMj5EFslts0E?aU8hp)^Gp&mOAQ!6Ay-muiKi1ZH$y ziPIhF18}-jZ*i=N+Vu(}nf7+(4a>q?s*f^Ca|HE8R4C8&MW>}dK4b1jTSsKLMSp%~ zrZ9zrnh-CwCz-Pi+BKG<>Y0wk+>DvOm3O7FlOI2JHyw|^H6gvQeFJ-Y(xH#1E?+D zp!dT8{0TUM*X{yirlga`l?Hm+UY~2hcvI%PdC8`A35JWK=#_Lk@a z*hdHHS24+uB<3nB8dF7C_$;)v5MDrDL$wB-EGFI@w4L-QTRl8rGP@|&d(w9QFKjYX zw%O-qv3ZHBKWmq+wT=}`DK9rzDlpA0guExElvys#1C+t~-8MRf$I_yTe>#z1~yX=|WBna87c;iWf>kVOkQRXU*_2E`#TgvDR z-;paRQjFy#^0j#>3AGeyWJtlCzK10Bp7{OHaePH{WC@|W6SJ?7cO*8>{;WRDYjDNX zXnp2w-F{c?g#%E8~UVpI6_?Bym06`|DUB5tS`Ku{~H6nV#_0glh6pT)%>5Q7m9g`*e9ljPs# z<`lOqa&$_;@Z5Y{+j{bVqqh<{w|&!eV7)lXRWV(I&*jY10Rk;V(Oi0yN@^4e0bQ5 zo|j9dYrlP1+U7rO^P;|@JUweDC}(YUxVs-LJ!%i^%?56f*beLtM2Xbz$l}_Uq3)q- z&es5gy&j&_7~>wIB2uv3F)MHMl zrHxz_WV^To=`^2+T@Zp0KAPBuQ96z&6Btt=)W5(BOpS@~+3TK2Z>~{_%{dOyYcit6 zVsZPYtmLFyWxeR6fXDM|S)G(v(1)ox?mfH^oPBq`Rp^Opv^nt7s0|7X^@Q{SR$HcW zY}~XiuZG&LVk> zU2T}Q*>%=a6VANl#oH?Ky5*&`kVgEux?fj2&PZH6XFyYGp~A_6NPZ4((y6vF=#|4! z%Lj8Wm0uU!+7kxXCTBFcV$*?=$871zV%35?vaZJpr*aLcX9SZfh#CVc71GGgKj5JP zzs68<{%k1fseH_%s)3az<3M!V%P~!~!a@un@Bb9YVY`c}+7%A*H>!o{=5Tl6oj71t z%jZGMLSzgLQlUG;gqexHPC9(Jo-;MM6oVXx19_@o&nfRpWG~iC;y2Hu6?lO&cbiWa ziLALB;lx&>n?(hTB^pHo=ww>sh*W1oB|)&F8M#Wy6xx3piC z1{j`2gLkuVBW~7#A4n$1Xcp84ghN|RpowU@5}0S+`>LmN1)s#)-n^ZA4^V^hSD@$$ zU^~LNy$VKND5+H`?0I+uhbwiRYt+gn=tg2Z-YnIQsdZ3pd9jz|aD#*hN9wbz@8^nN z%}-9`E8Krr*ej{!;y3m%VkrI284P;>Yif0ZM=vs zZT-aEZ5&SNG73u!`NJ&dX``=0DZ#J(zFknc`$4r{jk8WSv+1Pa>gpzXWBx7crq8aL z`pp7Od0VW9^lR-n)V^A4ZDcE*r@}w~RXJ&sGMKA#O^BD$PQz+KAjZJQLz2j_LSLdb zTGb^$0g6Sd2H>DdCXTdmK+i?n1RLhV?!{gJ^VO)X3~HlhA=ummrY7Z7%F@)u{@RC; zbERQL>Gf{<;|!dJaT9YnM%*oHs_mnUjcB4Z66?d=O2l1AH%1Y3=3gP3#L@JLhmagi zb=Fm$6CEN{B^tgxPTJ$?8juzspMmV;8jZq9m^${rG?!B#2w}uDUkvo|dJ-Vl7*i-2 zvuXiM+2Sgc%3hXjeH#LV!JGIgK#EmzhFSqE zWTH-aqd03JjzRZMfsf30@(iYu`&LqR!ZZAsXN_?<&z-ct<<{sUSuHs!F;}XxU#WYs zDGApOj)ZT-qxeLP+@Szr)#Br!mDx(MV@H!sp3{Ir-5B6*4hnn+F%hTSs{|hpE;J)sQ!=owXE6LP)a|w~U|4Q%z@MQb@{gnomD|Av{Z~xt!^m znQU_2#60qe$2eRxFwk>G{zj+C?h%|qWo-U?9KSIpCqi?`d&>Whw4miXK~lvpf)a)u z*Kd`%Ukc4gV2p(T>_g=!YS80a_CG+T{}cuq|MQK!BzwTbH2@z={=V5NjIC+kj*&6B zS?NcTgyP5b>R{iA5uzg+B{H-co!>Bpl7GRU-&8YLOtu)d&PgVV3oAWa^Zmp08!tU& z%Ky4;m|Qn=dzFPUpRnCX*ghrQ@g$vu>Ulz#|C_WW#RZPYb0b>438wFbgXUd$dj&1` zGOkJQn0NK0ml*Jg6t5zWPMvO*lZ6sGtr)6P8wS|QJ%z&xT;RoF)Gj!?i?)rc-C>Gt z3)4sK010b5yN{nDQq4WUwN2>lC@Yy$IND#=O9}BVem4gOpRV0}rH_UDtx^(^UVuz_ zWgfGT#p8)Z3G2 z;3-i3Jms)Bnf@ULVPW|GOkbp&wdF#jZvuH4Bo1H@^Ofsc&iA*PNLe?R@BShoG@{%= z38DyXQ6^J}Eo&1rQa`yQcAr+E0g<$qXuwLt3N^@eYDgx$^Y%5m2!s?c&sq4B3)%+f zXU@>6EYa_DFS_ugZ8RjvBAzZxeKBb064}s0?2w@{DaI)iH1Hnb7#cA2SZ|m z(E-eh^F7E}AhRHp>V#$mvCBHbAHmfwpg{)ou2c9Mkh75GIYx=mJVoRp1CXURwvol| z*ZSG4DzYe*JUWBCng>V9TM)Z0p|F$Pq6f6CK+)lC8#I@xtHhl_E)D_l{*g|k4=cFB zi~g>U{z3FrVf(V$0cg(AS!dE*luze7gOuQoIG?@})p|+x4?rnj0hfE8yzwjJ`#GJ8 z7p2kP=>V^RHkP2u1o{On13mxT1qqEBQjjOhr-kM)pqU>+-GLS^a#_e<#G&DZWGid^N9j>p#y z=0Ys=Vx#zX`ocSr8BmX~>I{}{TUys70zgVlG+4CZo0^y!+bGtu1sW(ZjTiz^lYAo| z$@SBn*kyYjN}N)YB6j{wdYZyk6BUuaZi@%-5a9UtDPDl`i6CGfO#?%+>W#o*39%v0 z3U>mai#Z?MM$J+2V`v2|g-JQ&ka$LGNA&k3n+*Q$|vR zZeV)>oK>`WV3#|%I0M{*DE~COSe%>EK^NO2J0IPX7Zu3wf<}r!CNK8av7>N6Pfm3N zz}>*yuX+;?tc{a&+!Hl=NZs`1T%5WqR#))e7k;6hJdmF}NyVU=NC zlJtQ7K~EyIP}E0X4M@O%lVT(E^6DaZfM;n3p;=1DO3I2Acn%+&jTL7eDlvQ!=kA$hRm7HnWs0!cxu>VJ}fO~GGk93hYg0QnqB?CP2%iB|-B zX9CFmdme)34bN#q)B8P@z!FXH43HAj&9_1J^5AYaSfSj%p?R;A{r>}Z4IoPLzqdy3 zh8g-^k_=#ak4%i&vzIzq62J@A=}ySquE%WX0O6)N?`*tDLh4}y>`2yF&T8s7b3K_K zmMF>8^g&!Bkfd z5<_^}X56sYl|E&-$7ayGCefyfXPbDn77pQr4|Hjw+l;Lu?T|Ue%hh$x7v;9xX@8J) z@kWq_A9bNcmWjQwK4+{k{&I=pB))~jrURq$BjOYjEYB5{Ogbjcqja|6vP&0?A8@sC`~ z`hDrPICKyRck_#c9!ozrB09aoCun$3fc%ANWsMZ`!^OGHC(2-*3Ex&sG;6Dg#^l!A zsSX8s01WsZhS~%qy2&3cHP)4<3*NawS1tH1m#I!~U8nP@q4m~Jt1OS$-3)tJs7h_Z ze@5sM7p=~udRl#65{H?9zD=t>eInP~5EK@dPd}VNP7JbDcZPp}+76jxurJHzW$7~< zThUh5(tG#&$T@L8x{(Wt3gd}BX+P3#ZcJ1@jBTUs8weIlw&w!2b+&K*C)drfg|3}G zg`WiaX~pe$@1ohPkcU4qo!^bLO4U`=UToiiQ#dpnNF5ENj*Ui8FV>&??)QJ?vK!Ln zVS_fzE)#@>&IUO-sJ{V^C6?LUhj0C~_g8@P~X3}oeGc#@Mg z4~A2UVUU1qBkrEGl^dm!>xCfL;^zdK!^PVCTW0#-1!T&ZIaCnyj(Iy4*x&QjC7Y>c zu708k4?gQ`s?A;;ps$n9MD&(coLT&yL+#fgTuAbQi*Mke%-nG#08z+=7U^s zwlvrf@`R;s0N$x`|8r+oD!l2*JtM5s9XK9VZn#S1;J_0zDl=~Dx(29R;tB8vj_ed z%g>W7bSzCdRD$+sxRq1EWNJXJ<89N)d`~Ju-#ASCg&V=fB!Zp;C1Lz1jGMshCfdMw ze3>f|14mcDwx{2Ua1+@cp{Sa9eMF9@H~oOw6}_`~gCE6vFo-kERyMoVW?^9Y@PYfK zta}x&()vdODq?+F>adJeP`YO;n*uPVZ31ccFoFVI65nXrL4r)jaQ_IL(weLPMwh;q z;O1EyGq?R+MM%;{*SeO0RSg0~Gq7?hW_j3e;N$rI^fUKW@~k_H z1*T4a^##zsCrJ_V*@cwWlszIf7(Xd}S6|_5_9HN-8g7WWndj#jKRSw*6M3Wk46Ha3gCs9&e9_NwrR8b2)zGG_7CS7pIT5LhudSQW+f z<>SOTATzfzwP~L~{mr_|+8h{Cvd7vV6XPktrQaEKCNxCX;cBH$c14;$f3du2AuY~e zx7_=zBZhrb4+;_0v41_YG*dmvjMZiH`b+oz(XD&HqyH|F=IOL66yG7Kz{YLkXl_u$ zmil3$`joBotmjegc*S>(&#U~6ROV_@;WRq{oU+Jk&=nOKPOJ^pnL>8M&5lgR``4#h0zrzi3rmQbRp`EV zXfQA&$NcAhEp2*@NH1^9-83dPe+0)2e4sA-@N8|FYoX)A4`Zno0X{+0=5m&&a6UBe z!KF|)DhPx+qiGYxZ5sG^W@fh%hK+Aev`u0b$2zrT(&g=2(aP932JJw+=J05{AU5ex zRbmGtYlrIVzM%VBCHx;Vo*p}sd;V%wug1{^tNX^wtTTdID!pg%?Qu$k#u}AQn(4w+ z8Hi-E*^GrIp&Cr#d%o^gssP~I7deHIn2lugaxtM90+G{6a5)fhYfLMwLXBUg0~l_=M`Lc6?&_?^yOKh_MZYxptN&EH&1uzdX* zpwW{NCn!;vo>HSnxy{;aV$N+u-BJDlw&t?jV77wP(e)H+e{!pUWT6 zjlgam!!5(%qc#I}I_Byx1ou^3RCVe}w_AQ`t+LjchjK zRa#Az(mUf2S@;O)pniF~R5{e}*t&({gA_tQpw)M`X?r|mV zc=-UW__1HEX6}pCF&#@fZV^4??HeiEoHxhuJXG)WokQOd`Aups$KK=fNdc8&C)V{5 zPdU6OV8 zGYY&r{==|>)o6pF-B3YOvvyeU#|xidxj&dOzG-PkO<3f6Wcp0wn=Ou1TZ+@^l=+6& zL|^fr7+-1T3EemZO_YSqc-caU=fUb|Rgo#TK1oa0ODE_r-Lf3$Jnh-wWDYGLF3=}o zf1l1-xL6@AwpHD{e^jup-SjigbbwTX0eQ{+S<+Un+8vSt!P}B++fI>$z5gcdeDg@C z1;i9Le=@?x5Dg35g0y}e47OGn?z5>*%E>afiXgN<=cr7N{8d=5c1wSBZWUszzQMVf z=N!1O39M_x1Q+k3X456wdxmuRw| z&}g{6)YISStpP?#Z%H2R=>jNS$rzIItkLn?lqv3Xtt+hw6R)SSMK4GHMUeI1lCkg_ zkWC}yPqjGWqsi4X9jIuOoL(PFw4FgyCWgHs9d}dvT_nZ*+!k)o-lF1G#UtHDC7lUB zTgGN>Cfs!9Zl-Y8&Tz@`E4Ff)w7;(7Dm+GQg32X~Sa<205dBdssfR4lY{o5i<<3OY zeNvL?yV1u2p#3w$L_N%1lbh^<8o0un`;pbkbqSDHR%>81JAlLZ*vqL-CW(?ad;gR9 z*`XcvPOO0H@eKm@&-=re&b0f74FrWn9V69Uyo!AMpVYOV(Y`Z^HETcbn^2JG7}7l` zm;J;_OsRY^J>r3W5u!#QU)2gd_i*uSmr_JY_x|4R`zA7BpLG;~J4XTSzs+zlP%$Kr zN&>Y=dR#DSt~efA{*7Rd&h(?7+TjssI5(dKaXAD$HWFMA z=A91ce&Y&!;|ly&xdJ172S8KOmUxScn!>gL3t0=;jjaToYT_0z%oLLM`Wp?`1e6_y zb~S6VH@7@+aXZ7mD!4v$S$I^d>}b5nIOP`+IW1E8q^B-hOPwbv({Zb4yP}oORI@oh zWQXdWBH5n9uWHQBqK6Ce9nLnkn=^5Q&sG`3?yQZ(qaI|gYsK{q&uy95so(BIa0ZD% zI)V$Nkq*$nI73uf0=2Ouokp`EPW_JtNnb%S-zG`_Kb|BF8#`oI4yh?W+rNfjbM(rr znvf>Yh(2JNI9Jbi%p3^FDM7>X*dzg z?ftc-*FW1XJvlIdgsqu>kw}jnS=AQo)58i^^FSt-mDr9D2ZeKzy7U}zKk$zA;zwE` zF;Y&5*pDtM%KLWlZ_EB)+;D#hqUUEV4rC(gZ#lz`8vFDGXOgGSy7`;u)%@`&skh$m z`S++4meC-EQ}zkBNyoG&;9vo$eu)L!2vz2NZuJ* zPN);qVFjB(S`vj3K2~O8KCc2C8%q2N!#?^HJRj}g`DhJ^1^9p`|IHg8MficKEdz`- zptTTA2_dhg;{StDY_x3Gfyv4&XQQD8Fi0-DV#E_cce`C2^#{LLRTDbT`| zDgd{_w95{~A#&14>ol;=`6)^PD+>w4z#ghZDf-60<3|7Gw!amk-wM%h4oe9D;zXVPJMpv)`_!hY-o1q2lq%BffT@?a6 zi_XTj+X_ul@sOZcr1Z-^?e%k7KY$Oh2DlHw+be}wCLOW0ES&ubjPKI=N!!siqyc$_5!BWx>>M`$>(~lrMa^db$n(Y@o**SU*=!8Z z4Xu-Sv0b>-caK5svNZ*KH`Cw2JKB|X_~3j^I}hg4;oyFb!872t&p1cET1EZwAbp!nGbpBZqaN?H9y8vaFM1t?e0Lab}rw)vO+NC`7%knS(!TLrL z1=2DVRy=*dg&T`JBzk$+gRBkQh1b3mvC7WN^b~ufqaxTFGtR@TA`~Q3#R&B`NEkgqx;MLJZvM}=M>nKG zWohCr5HYNQLDSFI8|6i}byI|!oxwYF9fs`TbWFFlSp8v-&!;5U+tL50A=3eJk|<&V zipf3D4CJ`*`@pQ%bI)L5ZR`ae=3dB{PJ8&K2aL57Bk$V7%I4POsB+7m9zC)ZrB+6@ zYkLYVYBX&sz2{?iwC&`>-2Q|cY4w*Yk?G=`4yFZlz$$db(+Th0c@@y-z#?tD&!I)NiHJ}Ap+_V zk7m;d%`XxmrlygvnJZ!+^Z;2TibXb|=Iv*1Y&pE^7s>CH9|@EnrW8**%N_aGZ}vqZ zj_AV1Z#6HlnxyRU^HfO0GFB+t{Okf6E0WWcYbGOaI7XRq7c06X;eRmQnmk55DfK09?EX9V#1nA*+DghA zo}N<}zE65R;)?``;r!3J^mjm$jDET|;Emzel;WtwMw6Wu6C1{VM+eZwHJHmv8Xfh> zjv>e&8X2|Xk;d{Psg+r1vG}dr5eQ~J;6DV4kax2*jKg01X%TG{P|l0 zwIQCJrI)UB6rodQksz(U8e#JMB&(Zp=ZnOK=B>gudc+;ye+p>m}t`V;%hTZRzwc~4@aB-A)(`QM$u1KK7VpY;ztFw@LT5wj)BLA6=kK;U z55-C5G;I3)>&JXP@<=-OS8)aX%Jw*t<`~q5!1g#Fu6&n1Mw+BEXH?wvT?zRs8dZ z25N?JV!)rjJ*$5fJ?tE$Ig{jbhv0MS#c`c8^M~zJPM*7`WZ}5^_MSK2+nVftap0uw zj+@p^FJdgbEv~#fIetFyP;<7qW);fs!_=YQP3Ud(12k#E%%oEX;Mht7Lr?4;qCIS^ zd|SH{wPDsZ?io-1c0SLHG8!z&DCcho(lf@7n@w97JaGM~lGdjiFB4T`fld*uljtf# ze!KoXE0j(VUxt<_$X#_)a{k6yZRtpH7}D+wB%F+_iL3Z^a1?_RYwgJCx5c$|5Dlmu zpXOzL2DY8xnEehMel!;UM?&`(345u~#ws%S$FrZX;w0wgs_TmcNTy8b1Mz zjDx6i>9QI>pN(CYGcg391tkzptobV`%l07T-%rLM?bopa(qqv*5W|v0L&I+rnShNfp&D z2OzuOWSTkD`1q>XaE=#EPz2xN})&^+do(Oa!->RJf z8Srs}5V5KRy~S!u9JCsE&$Kk^!<~PF&;JXGekZyeF{jHw?`nX*>rZf7V=*#w8fiO$ z5}ZBo0#Ys(hl5nKkYT)STJI29e1^69(pD@n=tjAuRVjG(p?NV@taUaRbK4wg0cr8T?jgpBCl@vX%94|sFbVWKvjRfqexC}~UjGh<;_m=$ zi~+y0(qi5*C>blTH_YhiSE$?guNeOm#9!F-op8Ms`83b*b{>Izrjc;Dp}*Oz;9Wqt zbw|cPIe!VAQ!@H~=xZsz zT1%-Wd?1A?9Dlz2S$K*xMiHtTi1vn{kBUH$xhsL=@Nm#&3hbEW=Evd6h71M`Yx4p) zEbgB`bEFr%!&!+qcj#cA)M?}h>(>+MW`pn8aw>Bs=?6ynSZ999Ury64;>`Ai_1bFO zs0aQx!%`y>lUMDI^xbz$<<}73zaM6Bo2sv`zCct-!>n2qCz3~=0NPf`XcT;e3ncR; zNgIe4s(4CEZ4@cu&%C;#LY_f8vtpHYyJ%!SOg|iY7ZU$C(5ge8S>`XVzkAj(>&o5Z zUnFXS7G?Bym>$qGO2--1`8d|0vACmW-+o9Rz1T9)e>i6;EI`*`=2+T2pPqeP4=FDT z#M2R)c0+S39%)YJ1bF^on8ia)q1st-;o4o!L^MmDwvmYA&HRmz3-7zjxjZO3F)4Oy z)hrr&N9aB~cqG+)z>BvtwtTkUDcm_dzxu7?;!ofIxbIQo4(p?K4^7DiHD#8vzZRC~ z?`MtSZLVbDESZI2zK<_`_)ypzQRsNGDYw2lcu6aR+IQV>x$!0T%CQ1n;U33}V?}QlC@r;& zNt5}>lx`GrBb(f&Jz`}A4+(!G9uz+m1y1$Ft|_a*-IK;CF(-&W!=sa!{a81bxlr_O z*nt~${>_r^_go;cKWZN--=Tak)3&i$ULmmd$JQggo$Wo>3M~uIpDv6kbN!L5`IFGb z@?vty%R;x$H%+JZ^20(Mr|ll(?^Cz=@kZheV)Gy^>y)ueNZLv`*_6&vnzChD@gv0K z5Iky*N;=AuY)8QwzOC517E@)|&2!kD1@P@W*t^3qixMmHDIsEp@?wOoS+7e9;DljQ z`%_ulp&Ad@+C1jF*Ipix_xy&+A3eOZEJ!yz@L>HwdZDZ?^P#;fden0*gDB!g1ug1L zDUN2$>iNFphlZ0OqBbn#VLA}dM7WbUm(^A0dp$yED)NT=*{J9n-TAnuTCtA_7&ba~ zvf{g8{!bNc0d}qdVf6+l-RBZ-n!dvG1LBX|z9^p>{8;`@HAE{u>!26jFmyf5qq4Ri zM{mAbz@pNcQ=jC|?i<%A(t2hg1 zRooBZF-$8raT?l$kl1?NMPvuZb8V-5@1hSFbVE`^1zxa`C!HJ6Ie^P#kd+ollAfL3 z<^Jd&xQ>Y-Pu%9mWu9V2PWp%6#GXwmKHfUbK3Z-HF+ zk7X4vfQG=FSJ8SyzIue^jRev{N$(ho6hIqp2%aY4BQLrBRHtmAHmu_$ET_$*@o!u| z{JS;jXH*;+I`>5)RJhJ`dJH-_ne;W#Bf%Tai&KOVD<;D&8z24)2L*)^fY{5zinm;l zT>c^fqT`?#Bvn2rX7{A8NcK;pAKHLcCc4p|f~^%La^=2GsUVQgog}24>aW|*30j=& zYac&Y4eV0;t+40U`Ynn*+7E|4d*XPLA_Jw|MZ(l(ZT|LT^j z!ybD;ZP$`^E_HnCfF7m{@}S$*-ms-;uB>Y;)UibO*Sb0LU~DKWE(ZpsOtLI`leN%H zWCFZB_Q2YI=k6LtHo$AZ6JmN2m5{qtoG-dq=9i(6Q5G<%9XHGjssZeVZGDbSO>cs< zYFo4}4>+B_+?3#9R$#vMo;{FQ4q&npX2t#wiS>LQmN_^j%{dJg%#BA)7g`W^zae_@ ze)I6ujztc`7VIrRj_5EK(^&>doAa}QO5_Nv*2Rn*j?<-V3%KUe&CX6j zFaICxy?IUx>lp>-crc@9`NXk+{pdbPYGNv4mA!14qi4d|&ka^<-M7#Ey6^9v(|!7!d;F)=RDRj} z9oJgVTI+eXd}gfgG+Y^NarR~4{u;+?%)kP##UQi;k)VMa%|V0zWT8tK({4fyaTJUf zGF}r_Vz)_GiJD6JovKo;E|YVGY-}l)wBCY8M6H{!TB%S)kJQrc^FOvkcL$ok!m? zq+4Z7pj7ZhZVSjO9|0;l=o0ft6OSjZQU_To_5ji~f`U&Jof_pRI=}m5tX5w|Qf%Q` zxt%x_(tfih&}FNk1_L{OwmgFNGbyK8G*xC$Oq8@htp;r%yO(HKl=4AEf;Bsxo#WaOcDY zPcC{-SVSr#diAr4W2NPG5#l2x|1+Tk6i z$0Gj*ByF;IDqZG$cAuQ-m)-2M%6=isheor}FLmQ_ztSUdrGiFAC`Xg3Kz&a&76#N4 zw!reWEQOl@4kL$-8bu>I6O~t9aLt6QD1(Y>f!g_rTd7agvr}3 zT{S#L6jlW$`32=eb?XP(d@5~XvSCu4^ZEM&PN{5YBRSWtZ&xX^_gUe-(aJOW=m6{P zCCYNy%*Y6VxU3+HryiNal>kODi3#%7xGB-|F%hSRY$l&*RtMdlTjSGnr<}_k(%C|9 zj#q-y03PWMpS0TYG1ciw3Hf5G(`B=OH3`MUWhrNT5p8ki2Y?-|lcPXW+CUlzn%{0Q zE!%>&AO{JiSYi#_vUfLeyZ~xrEH8eMtJtfRZJLc>WM#VM=TpC8M9n}&=@i)iFG8De z%YPC}`(hECtQOpDlZKns(e(g*N@mS3oOoVj|Lfl#^Y^B|e-4U%eFgCUP&hal_`q!H_<<0sEWcv|5AO(9_OW%YW(*)sWv+SYT z4ERfy*1AW}A`pCTBu9MmH#9=;I3+8FKBObHbg`!vaQynB_{(dBX^43Sh*Agp-arfH z3Fu6^8sv*%UwX|d=hSoVXeq<=;4I3Xlm@~}2HcR!W z;OIJN`NDGm1MGq$5c8#RS^OcK%=#Gw?A!OOu>)8D48L5E;Gv0JUYPu{Z4-JndJqq& zC$*qSJc@3LG(fW(WaX^s7U}_L(stAsRVfOR@#|2MWAF9Aklud?9TiCbl%D~I-2*3f z09&G&=7m-P^dO(Xina*Ab+DkOyOob#GFyDjk{rW>O}5OSZ2!pvnuP#MN_)y$u>AxE z+A;>~!yV)`L41|E<7>kOuTq{HAid8#47Nlan6Rm%_cK_M^C0VYoVpHrr!77JE*eMf zn0y=A1B}i*2Dq@8Mv}~FJU5fF7c5Wz6i4ib(_qaH^P^FyC}>RSIV2{%0#FJ5@;HdC zp9`dSp{oqZK^hyJiW9;G`A=E^G^v6CT;UmT2bzEAZ8hpC{gd`}O)u$A=YiS^M(ig; zFcecQaPHo*8tAff9v6YzHXDZur;7t|z{gv_!^R;$5@!E!1()2FvDG z<4^;evBOS*vt;H7D4AdrYp~e(~ zh$Zq7gjqkz4KS{hQ1HpUTKYS}^dNZD44|#~_e%+W5WjE(dc|2@n^W%oRMF^XaG~zH z2X4nUv}{*&Wj?ei7ajv3*r5kkYm^Gk{P=gPh)QEBQ#%i{Heh#Cd+AEoq-GhrN@Y1F zBrc@pPQDhbe7=^OMo^UEdaC8IF**WqvOqlV{Om9$NWZ0|TblIhFyxt}%O*G{2WOj@ zV%-TB)*iPo^|(Ff=e+FPUsnFP^rMCIIUVWe{lkT78aHbMtg4CZ&X_c0ZMjGpUIn(8 zj;x@xPZmWW7)6Y7;p_mNr0zCyc$Vw?9FT@uXL*kU0IV=8Ea^s7E! z_oHltrx;M}NytZ_jC2C)kPWZ+N*xozDMp7)?=J;ZwQngWVGlkA<>uwC>r%LHLOl!# z$#oG1_utEH&-4jA{Ic7d=pUTxbL-HMPpndY(tQ+4y;oK`$_L%vLuV9glZpANnw(N#j-s>-tK#PxGImxzFYzqx(f=^3zt5n3|5{HgzKL41zL0ctwWTr~5Z1{foAJHK%t9&agZ3dDu1lHB}=`lBE z(d;U*ijX#QPIO{ats$M*m@=Y@UQ-HA*xjC=UvwkGzM@d>JXS}@iJPHrgQNKpo7YYg zs>mT>QF39{EPLue2ua)O`_%KFpLB=sy}749=SlXAW93kP(tB6U(@V35QyrwvNgb(A zM~BL_`yc~SdmA;iDBoq`MG${{x=@5}Mr%^EC6<)6@Nl+N11^3k! z^Ua=&J)LMhXgk*LkYeEcsXr~}bFb^8_q}|bwYy(Usq8Kd`c(96*}X&NoA)6@0W7$` z4^u;^LklxGE|NHkMygrm=HY+{ztFE)ef-Y!j3G&BO8r2WXK(fPpi8-M_%RJ9!?fZ3 zw|m@+4-9$#F?`CK#GTktY?k80SI%NTd5q3)Q`ll=(}hp%cAuGNb_Th%*{SForjgkB zg{1{PY*Jt0e7Udw9_kL{HGPwRrv|lavvi-V0FWKfxbidS`~!-lmtk*DA-{fPSN~3t z`(y6;>OF-%?rTLOnfXH;*rB=6!J&-EJ9hf!P)vos-Q*CSRh&R1rs=GARrU({#l+`q zeNahm=k6k_Ih`X}y%latE>i_oXV2!fRLu5{#aVl5ot2GeUZ+kuJAaWo<~)&lgIWt# z^j4h2m>e;RZ|)H`^XacKci4pK#UOsWIkzt&hN2{L>IaAJHMzdL zd-iCBee4rfs!@=s1KsFSRfO0T26kfALgzXH!se)q!DG*)fEl=eB)Z@HbN4THz(|qa+30mU*1S4rgR*zaPGIYV%!Wl;A5AR-M%Zy#dgfW zX6obuwS3;3z3}Gz-_!5%e@ahEmdz#QoR03A_43jh5Wql^+nt1IXo&OpW9g@D+`m=s zj2&}wDe9NkdUf<`yM-Ke?K=>A{{VRlR#A@2vPuOZIH5fhNmwCWDZx{`M64#978%1` ztVN;Bi%vj%eS5nKiAn^`5T)5!z#f?hJO?bHiE&w)Z+6sOg}{BjxxePCy(w`Rs$!9J zmRPSB@R2N`8Fbe;Wm+i*siUuLk9qbJ$3>+$hd&0IbHlu<&dp>OyUMQlypODYt4ZgZsL!GZF2T*vo=F`ETc-#mm^#K?wBiD7 zP4nnesi`6@pYmf@iJQ?G(Mjh9>W;omA`|=D+4!e%TMdG-rpoTY_m9mS|3Pt-@i`lK z8Ez&LR`c-EN?w3esSX{523OT6aDF#r$sWlsOoP)wPZh!5`!~WDUgEyhvi_zJ}Jbt_h;i z>u^^vK->_k3n%gfgAyC~_9No09|41#a_$)ml8FamC#76;9&4!VKFeF*2TSs8WoQDqp)n++iEOi4A zA)pR%bK-b2+6`=fPWVmC2IAZ#3$>7b+jn0PhWGYjYWGpY^o#v$g(-=~pCrm(`$ut% zsby){o1)L@>6HLicufLagn+<%pd>KZ1zBr7N=fla;l9a*;)-E)Vy5}-2O!K@kp%*w|wz&xb`Sb z7MuyNieJ6!kwPkn8jh>{N&C|GttkFq1P=8;>I>8> zWsgLWstR+OEOAZx+D*;5-tIh;R#Gq&GU|kT2+Jo3X-}P-kJ$=dC@oSNT zr<%kRnn-I>R=@(3U&I}d{qYcl$azk`c1EFR;{gl!{|$!uRD($Wd6 z$^x-o_YTqk!sT7mVUE}Xr-WNLB3vau2v>mz;z14e%w^niZpUe+D%1+7`>vuS`mAC# zB#GP_0w*H)lrWa~^w;{2EDvo8c))JHECVDp!uHf{XY4*X_C3iX$aoh)VGSM|8EsjzsMN4 z4*&!9V`*40tM(px2Rc0qd0-vT>5T-{yl)yd`UP!68r-wB`;{`MIT6m zT6ci6TI`nqO`5q=WdESf=`#gbwQqG!|4Zwf{+3Hw)$+r4HuA?aRtJvW>U=K!wBmo1 zdqH7EBk93`l~>E|7rQ>&HKDW7th;h6C3NfV-^==EA6}FD{ihA(dR67}b{qYbKRo&H zWZ=-tMN+VfRsPgO(3bwYSx>ra((vP?SrdU|Gr(0JxdR*gyCY6|tx8siS(4y^BSHh^ zV?T=hKo9u4)MnXt3ux(g6<_4|H-nrBb7DFok4DaGbwI84|Lg~7L@R^}&hBge7rC~T zgPlv~p^HTHyh1M|TsQtjF0O0F8|q|3@HS}a*C1do^ib2*mykPwG-QSA7dcU->Hq!t zC{Ntj1zFTH=q<(;{G=WoF)}aB2F65qw zu+ZY9ia6~7E|Ujls8BjApI{cR5ZgUmrH=jZ;*89UWIX7AryJ)xfyr}lB{m4s7g z&#g?b7*&K<dseH zMq<^#V>NQ*vTTVRwI}yDoGC&CXN1k66eXcNFQpC@rey@n8-@8AT7edZ_fwStbq;XV z({_FZCcH3K0K>_kc(*iT{09E=$5h=Rb zuz<2dmWMSWOSsrLVSZaJD3Qq(a?Hz0fpU`&NF!2zjGkF=3v#Rq<-WikF6-B4zAogg zcH0GRq7unZ@{|5@R|rJoD``7U1>d?qdphHy-p;rRBbE2-^j7?(otSa#gRfkDpNaKj ze9q*?#-~lQRv!M_ytE&x288vU-Mm%q{ttf5MaFOcF69wH{f{Z-@w4>>*)#0X&Sf<;*?_ zf^Uu>h=0D`jAVO+Vs}EV#{i~8ll-fg4NduC;7cYwqkyaZg+L5`v3K*ROuqRyHEE_p zFbH2D72HBV!x(FD3b7joHcYaYP&$A-23fJ)+CX|^%S*gO*8~Fw##o;rFWC%$fd@eS zVK7O068seZwKCe1Cy>UOfDsp${sGdP^rJgqC*b4H$)4k;%aAvOWn2DU1s;A0>#ho7 zn(cs5?p{)yXh51t6N95v{1^tY_fuNv)AeZxen1l%tQ_UYoUddN%23jKq<3mayBR^| zlwt6Qss^<<@f~FkBSC`HG%;gLVh6QaW0j$IR$@c&E*P%A{9j~X5qC=(SPOiR9(56I z?UI6rCN;qvq)qTO=*nS48*JO=0=|@+2;OEhmxE;ewlvo~4UFXvoS`7(O$uKP$<|u= zNYbgs8ZiNGVsT9!Yq_xFG*%HT>hDxGB(?|3LXw$~#dkymX@+1eYdS*&;zHXS*E0@) zr;#WiW-2a$foaWOtW#d?2qL$|SZI3iH#$-@_cM+yK~AHmL3DGanTL@%yX*aJXhc3q z_HZ8xDSqHR1)wV$P|O(3m4)Cgp=GD2T4yNb;e^@CWEN5<1z1L3Mqr>(9b?J*8i0R2 z4~ak=W<7G`kq}NnY&GP;FH1lOH7~ZIaQ*=m6ZH-sC1Hi(!~tZrFLD-5NzBzyOC$m! zyMxqL`f@7V5$X=ck=Qlb3HG!Fc$$O5eioRrw=i%+JTpaLH=G63Ay2iz81}4cK#RR! zL0{yYV|xoEV5}`=P%V}<{Xf%$o&X9((hT~v1XKb{i9sT|msDGVHsz9}sqTNFtDN^gTZ zV}K8{6W~@ItZ>$H(i{As1o48xN`W@)y-9&QWkk#A$zj~WkaNSnxdm}x; z*{&m@!CUuAu9>Iw>qjV~6Ml2NJEA3WTqhdeG%huYc;i<|xx{n56rUH_)RP)d_>-@5 z*S#ZrN3!m;`-^HFsMPoUJ9755!$T&ld8wp6~F)6R0d^4D)P&soxZs+0*bD0e+A z5pgcqPVM06CO#GS;VJ-l3VhSq=i=+r$PzRQ3L?IJ>Dv^1+Xdea!neEN+jaQw)FRZ| zwKfglBmOF(wZ&HbHI$X$wDaE5ZJqm9ZhPE&wdzB_Rk?%T-Lc(cd2Ke}R$0r=l#|H` z?opKa8(9fmUy?XWtx1VYcO|6jYV-0cdjDn zi35P%0rqB`_i{E-&&VtwxO!GbB9hlo9%th34lfdtt%c2d3 z7;DG`JJJ0++=3d+3DJg+QCBXPl;3@S>d0#P9o$91da?!&9VR_PSE>#wBFl4|W28YM zc`mND<~&S+4{opinfnvNG~gPhor*k;+E0LI)6DYK?8%K%IXv_1=ugH9`H zCS4JF$Eu^rT!dX*`ah7vyukZEB8NGG^I|MnHrLZ6S|CTvk{!pQ-ckZqK&^(J9I>tl z#Db0#8y8syYfOIx2U0lM5;s5^B)SoDWD2p30R`$W{px_2p|h}M6ncS^M$yXyWDoES zc$tmKisNGHeh^Ui)Y2u#oKQ&KTmmMHK1;(5twh>L(_jZ@YaM*V1iz6u#wE!Tw01xf zTTgQ|p;izidD0}t=y=X@By9Y93+sdI`hYC0Xafk=a(qrneg$Ees_YIl-Rl89dBC^) zT3?);VF(TWMMH`QkA5bU>PoYExaP9EtV;yh&xqO?N(3l(r&U`4?hcc$5hhD19bHRW z`h^67rD-P8i(dADGmqCcvSy=i<7D@+njjD|N6}5F|BtHa>Tgxk|NE+@p_U1xlO?uc zT|&vsq#DQPMgYLklFbL(6D|hX*9>=Js*h`1OM<+p)b!8mv zrry}F$U*ufYlRH5J zh4mq1EdVtx7w`cBGIQ&9;S^#+iYJKegb?!b$f1|A7pxDTperoNcJzx}B-0)JX!dJa zd*bzG@PbY-1H1`bFFElDR963=>gN9+RC|C1qkqnf_%Hb8Hs}uYfk2XMF#)JUUU-$; z`A$9{WZZ^9GHnk$mf|E)E+FTB7LXDg{x38E|MNfQKrt|3cE1bsuAPgPSs1iVgU~@8 z0`ieyKd7uffc_qunnBBst+YWe5a-d$Yo0YgU;g(i3H{fZ`TrF$<6G7?+}Mv)u-jj9 zC1BT1(75Ncc}I>RwwC}{^zv8(P4)}#5LyhDHtDg{4#2R9Vz94!F}zZFP&E19sz`9( zs!0Bgt4Jz9AH!@SJ`641B#ZkhJMMOTRtxlYv|>dV8Ce7lorBcuCbSAP4>66vT1tSn z??eGFPF@~dx~+RYfZORL8~~2&HY`OXQ39siNIU}WQym!C?mY9~KVjz@1&g#bxM{&} z45Yv>0Ts%c{S{qCmn8wX@#~q^GJQk=n5k}69Z8~FZ4S1D>qF02XiS6i9k_&Nu!q2% zTO$lxkqj<*86Pbh zF?Z;*7jeMBiKV~HMRJ&j9u34oALhwm6c<673tBjr90M-%Rs*a$H26she2qTb=;WGO zsP*`Dd0Fb;6mT*P_ac1&{ri8B$qDqFxeewGG!TJTG?vBU7Bqyu@||Cs%XX#2gMues zCzAWI`5CN>*b~7wJ*`FZ03deX^=K(}2(jHn|0h{!yMuG%f_I=>3>0uG07-Ol5g7l; zn`l2C5V4Lj(F2Rg;4+ZxLz~4^V32moSkM%Gx*n{7mF=S$KD1<_wHAs2-kj&2RRU?I zUOh`p(E zUYsnq{bh%&O;2FC@wbAbd4|@4hZa`XC;Lrjrw z?FM3_ADP|O#9B`|74X>A2T|-X2`T{b_Q`>gsTpniVsg=R+9|V#vWF9SuPmSB?!Dn{ zVKG@~nwl_md4TlM#@bKU<8xVR)ldNA%D}>KG@!in`P z6rxF<;_F5uo26^vbUxub>2{F#ZO~J~L;x}#g1wM=kEekPXXB!P1pPB_wpnhTk8xjo z*!Pvm@AY$BES@rb?v4ehC|6`X$u@YHI(*8YsDG&DW><-#x0fIob9n~sHb7-jANDcz zp;|l01MsG7!s=3X_dkaFfFHL-s`^~m8OhWiqU;5IV#j#lbm7$N5k293I^XRO&nU)_ zv-ljEcA@F0hL%gu*x`|95I`;!)qFxM2ruHHuS|x{8b< zsCv@x;RnL;CN<9LYHMBrX7wP2AY_G0?H_wD0`{ZZ7YYd{nLqU3>^ux9I_nKjIUGJ< zu-b2O0i#@jHh5?s+naLGajcT$P*!O%PddBq`hdT$KmOX}q%oyr%J*nZGoLo&BAnwQ zg*?Vxwr5O7vdEVO@WvRZq$s9<5n4*v20H@J7RA&W8k#8Jb5w@B)lzSaOvLf@?OF^- zinaMplh_}T&c0_Q1(D8dVq}i;kfn7Hv)f>#>>A!he_7wHWGX1Gv~;1EXf?qZ8(*d$ z1~JU4Q?QCqP>)+*y@x++&SNy;Vgp&z6~Z8Kl1PR1nlM<-ONrKSg#$#W(@Z0@av?>N zJ48?(hV|-1oKMc_NM06kxi^KX5e}+fx}B%&dW#-KyDV1^CDQg?%(qm?xbEC2H3}-v z$>(srjkb%U!f)LQ4F1dzt%r^3oJ~I#KY^`I&>VUS7u>AeLw_OrAIt9gwft58 zCgK*IGkLdj+f=M)TRJQce4Gh#7PKr4nKgYV8J_bgEK1`r#ufpg-vOkTwVDO4mheSL zmHGYDGA)X-mdMAc!YB#BPKXq9ALNMSL;SU~rbOo1MDcy~k~2dDy`Ktidk~HOOla1x zK6Fx)bru}uvDA`h>E)ar{HyB;36*RyQsRJ=v2n?Wo{WXNS_=D$(!>IxXE<}!duju2 zCG!wG@VXqmcEMDksTi;;rGSPlqlO1q73q1H^MqnvDmtr$5{{JSPF3QgtIbCRa&9o{ zY)Nmm9`|E;9|hEgOx_oe-sahTjN5Zm;&dE)b6}^(?m4slhi~}wThEhDb}8Cfw6-N5 zyRqPH6c98>HL~*eZ=ZKa0qc!UYXCei%`;(=!=LE#RP90Bv`859lL!=zPSeA*oTk@2uF*%jL1<@{Ss?tg{z+_gCZ|bkJzk$!N zJ~Di`=0i#U%;ZwZttAN~-S5cYMBy@(aEnE)uHXP&dzBMh-5G5zX^>E_Wfajgq6#-l zPEd5-R-eiwhs=!*G_Y2I8!b+B%t~m;h^Fp_wYl;Q(B_E*vLE0<-+W*H#<`xEQpv)r zm)#i0U;6wXJR85V7tnavHg#-FX72ou8KkRI$xPQKPAa7@kurTG#{%__5v!{RW@F1W zu48{{>Gk@zqwA0zebtA!&7z3N`F7Mf)>{)@t%3`WaZ#mdR$D(Cw68F%u~)wq&#syN z?cE0a8Nl!H;*czV{Kp1fYO%MGN3grtZJGg1`M#E35JpIq6UE7(+}nfBp5xIPIictc z`yekU3|;mR_fid<){qe;ky$|=Yzb|FrBdZCs>&zoA(7;1TEm7MIF!d8AqyIo6={#y zZr;w;^MSi)S41bSW9&1ndvmu~%v#b*lGy!i4_aGW+2&RpM`mniI@`MNY=xcU6wyt( zF!Yi+{%8mp;y~|LOR2t=9EF6^{viPZ-3m9Vr?ZE|JW$@-IjGSH${iz+?>V4|w(Rq` zumdQ=hal>rzLW;cU>omBxv;YVt%_)n(GBXK0V~!(Uzowjwo?3WHXFC&UW3*~ujfSPFCJ;@Go5SLMhk6zh8*jRl$n{rh&5KC2t z)#{ka@F|g61A6lqTt2FAz!4VN3L<14b?Gxq3I^sA?xWDhZ5us1PI%eD2 z#4|b17q(@i{g3GEG1{5gDo#kA?yt%znfcW(E^)w-s4rmm*9^E}-PUOVuq-5x+J;`g zpwnGV@D_D+PaPLxLb2M?%f3dVs7B02Hu7dfMf5pYwVc}mDEnMGQDn%z6h4vHmi5Np z)as{!kH#M(a!wsCc=pc8+b89j`35_e8+zqiMy|WgkXmjnRhP_KM;K2_YGlJ0fp<>& z5_BRL26*18J+c($YM41*8~E|D=uopGf)?6@ii~*JLa@NV8^p(Isli8uJ&me89N4d! zr3#FQ{z{kbYBlaK$*Q!fzvN@}s}wu>@e(>gb*0(bz)9u3)_(iX=e)m|tE09@zt`T; zmmpzJR6Rec1DhJ_7GG*S5Zh*SeI=Ph|IB(+lz@cnb@w^=&RWQPO}+(f ztX(^x^h5UX*|SO6TUs9`xw<9{xD=H`t%(EY3d1^z60CC={?y4~t<P z0+o-&+~A?%hPPT4GJ}{*>PR6wVYZz_Wzi@v!bHtV>ij8a`5J0 zh11b(9TVQ3d-P^Nt0~cFQ8%c0n5qobTC+TGv8+wi`a*u~GOHmb2#QkYL{bh2{dn|f z>PE^bAsytT;sJ3?HZ$`!!wV;m>?g8UrG!#Qc`i;~%Z)R4ZyCq_28Z`puquQN?Ds#a zdL^&B7n5i;T%2?^F=_K)>z-j^4%>7_oSJa0RhC#>Je4_S#cZFMGeEXMwdS}hjA)MP zJnb%1k z9YaH>$_tjz0sT7v5Dxu!k>dNNz4i^;{7=>>{teswhHZYsHvg5_CP@-R-YgC!u`$S6 zkkI^Dx*nEiP~VCP#k6=pxM%9ZlMgjHz~_X!uNb)4L)E3M>t||^sk0!P$)iP6^fTR_ z1&%x~9MA^2NQX@mEJcI3fX0j;-d1aJ>55*J*wUxo>WUG$1b1SffXy)4^+%pfTK1au z*1aV@XVYS=hP!q$bvRtX7g zh)r-}Gg?WyHlO%*(#l)3vT<4WcauHWxiR{;+&1CX#cWtN8Kg1e;_%{a(dUwwJ+70d ze%`zJZmxP)>e;-?>o4twP7bjggEbT1TVm&Y4b@cBk}ArHoh0dMnVsY)M`#U&KwGIl zQkw~7cu@bL>ErC!Ac%%GBJ0U4v4Sk4+CF>oz~K}=BLoNdLZu+EeNDx58_qZc1#MSr zqD4C*2SquB`7M5`DZ%@euNCOZXx;D=27KgX9l5b(iY#eXoD;bjZ@NehQe~9BviEp4S`) zf=n^~{fpZ!_BbM^n?JHZk;HA`z-xRsU}T%tI$~Qz1GVh-wJNS=Okj+Oon8HIJ4a zHIT%a8YE?&J7?Ycqd4EkXH$|Jx2<(1|CX~i#z-7x(VTK+>9%uCdSX|hZ>}3=N=zLF zQLWyjvzR6Mk#a@k7_~zf;xqE2tbzsJM%k@RIAF5n5QkHXeHCaKSV}% zAN3`kdEOiJ;0<&jJ^4KJ9gVNKz*nO~BTO;*Hp~IaVufSD;FzJcw*Pl%F5SN3~%d$z%dy^h=-R*sB zqie7Z?{l{dIu-19@){mV%}Vbwd08BmoCcSard2K8tol@W+m!aqA9shKS-nAWfjXd0 z3u7v|0;woKge%bjl!dpstf)Y9(3_ikLfF#`tu#T2QtHLbjUxKpg&D#xBK>Liqoi%0 z4!{8oSdHR7gDQz>FS z^6#1|oF5PlKV(Eemj&^uq}L>P2P-67Xz(MMCN>udYHNu6&vbMoMZf%YrDqr@{v^fV z)>F()9Bn5*_B7BvM4eIdZri!StmQWY^sB~k)dA{P)zp5&c`IIZs5~2+q?y6U&<}Le ztzlX0Zp>C-gikDavnI-2s?d*dC79^~p_MqhhjJ*3;sdU*D1Qk`eo}2YCsZv0yNiN{ ziTb6VbBQYHA5t6%>!p{t3N;Q!8t$0;!2mJ`7QT(RCa}%4Y9iu%N3xmARvZ3-@!2rkJ}}rQIcPb=v7` z(&M~ftMej7hOwDk(9ET?EY?G5&+soFYJSQ3@IGT^cyK3k>~f77KU3YoVMgZ98egQx zA^T(zI4_bafZLcQ>GG$+2qLh0a3-?uL^fzJehF%ib}l1ny5ZGcEQLq1bgAv=CzInr zkK3NPkqI`UG6n!8k@XcwcWG(g{JBau_i?DDP=Q+> zvH;9y#`kb8Kivfw@sg@fRw7-V|IB!O(2Prcs%I!gKbMTDS2qf~>d~hyl8^LEv+w&n zKch7?eZQmcv~BFAwG#80OSUBs?anysUrh5Y8}3Uk@j)h9$EhBz6|MnHS&+BK)a=hv z9PBN*iM*v6%EC-m0FJ>C`u)Kk#fM~i% zHHDlA&kB)Q9CriJR^%oCFxs&6R8RGR{7-)jdL!y(CB25LUR7OaP11I%yLKbL;*yrb zL+w3&SWn_nJr`@^^8BAF=z9|^*)vuCa+uaop%a@4H5+BvtSrqnLTr9)a3bKmu)!$^S5)Y&m8 zIfe69rb7s&E6Gchb4YAZ-Dh6sjl0kWh0=vdarUQ2I7-{$MSnhFdUY3eNLGE$#PDdZ z<5}YX@lX53A@lBsj-Q`vo|MvwLw=x~t@^$cD5@zGkCSru5{{KG(^pAP!ZcAQ7w{3x zi9^A(G6orTvK(K~We#15+uW$N6`(;>G>mGlTs70&gktZVt8>msyDrjm5H3a-;?{D8 z*^{YIOoHYuP0!PQPkhA2Hl?IhGu7%%Ki*egcTNSzIa};qBKvFDD-BQdUi7lbzt%dH ze6>5Mii!=qJxS^E2e|5>ESIVd+l!CF6?w2WPriY!PFBOq3VZm1TGF7EIH^WPr(7S6 z;jlaTzo0c|%r*(-7UMt0@q^9D6?$$)B0WE+iT=7XKAmnyixM3N+%%jg6F7zaBa2;7@#3_-D6uZ% zM_DBGhw|5^p4_ukE!hjm2glatQ$zU}HkQQJXl82mAi79Lh92z5MXAD)W<;+~w?c%X zQS5J{!Y+ugp`&^N)lZeGng048j0+pkY{%y(Cu{TD(kUG98Aa!y~5SFnHcHbLZOyOoTH&7E_8>oOB#fr&&Jl zdlGGNaX#NH#n9Zkhqf<8&$q~PC)aoXXF-65={2O?+4frNq|IVYVRz@P{*<22j;ELW z_=0IGi3RK^j+Z^9YJ0I(Qcb9DjZrgBkEQzuZUzws>EfY2mIt%~HsYy;F*lL}xN6bW zD@0J8m(W0?ub83|*hl{j5yMtWxj&I3KD+x)c%)*G{VsvTUAzX((6 zs(?TZeL57d5Fah+)L_KzduHMxq`AX`{yf%7@4&Ju{qp$IV2wI4cAxOQF)7*v|77Bl zdvV6d@w6f0P>`$7+1QEfH}BJZ5`A+@5<;xAZ!&z7XNnfLUGjuJH(nbq3@Y>wnqcw0 zq|HKkv7-#Q?Vg1S$lA@kL8g2s-_23%3)_myM|GP8E4;8c_;xPHf%N4zYg%z7-e2T4 z?j!jVHV(mr#%1|X^N?(kk{6=h|GBjJC9^#7#LM2C5EqY%-dx=w8+py{GYn)u6$Gvs)pwA(pk8`kGVX)=9%E0LAY$EnJqu1gi{W`v;nVlW3X} zP0{ub;6mZ((%ewwARI6{9=8t=QBPnx?;(OhdR0S+{{l+l;(9U?q(Bx%X!0O3HDNkKfeRr2e@ATfy^Yw@pJR z6DP1_wOB2o*}Z(?vSvq~VZL*4etuu*IUV(TGTyD|tR&g^tz2EAbGx6}V%Jnq=j4DSl?EQdYnbk{wb^8Qdu{YDAYHVMK`? z$m0!6n~RQd1(6p;!DE0C<24jg*@(Olp#guk35i!|Uhj@c@I6$ITUUZ#=d-f$aA09k z0WrYiTF=q$n`5_|o>g4TV_o4o?EfNn&1%?Nj}h(IHRv=OWnq{Z%`8Yu)ju{}Zi7Uz ztlE|piVmImJ0bpmQH1&1AO9|BM0>u`h<>YG{m(@N`VHUxhVOpEcmGxR?msm!`l;hW zs?ppTs4)XDlIwG28Vw^RmEELj5>NBc>E|!{tKDutnmF^xS!W>1@R*l&b$^jToazY2 zqUTEQl~)OEHX(Y)uEdWRM!EQArTLnBus?t1m_ppw6B8?1$y2X06yS6&Y9o0i4-0A2dV1vZ$gXx|o8+}Xt zoKn!QvLdT5<4qM8QXqTQYH41e zX&IZgs*Ij9A^u}WqpznYNu~P0)6;KvD<2;6EgKrHahVH3AhJg9?;=txKx-miqu3bh zZUcx0tzxQ4FZWPzfy?os-XcBlFi~uv&ivCCoqk!G0r;9=W0yaZFH{{S$yJ4&G}>|g zwdJd`>9`QPxWzGF!e@lF(c837=8v$7nzP9GI(HSJTKGI+HH@xzmJg+D=hk31=+%#? z3d?A@FjQZun&MOC`+u?b?eS3k``-F>Q7MyD?xs>nNQJ0mk|LA|xnCxggd|DGuqq+< zA}P12BzJPJ$mAYka=(=^<9^GG%NR4Wmgnnt&fe#@_x|nk?DM>yy`SH6&ioZ)wPtv$^ z>G*AW%hmbw=mA;u^`weE$wGSHr&reyp$?9nOH$WqY8bB4SF*I-eIxIQw!*f1j;0^g z!=P*@(~mZBt~VLaR4j^;ju#j-c-?GTOn7=@(a2eL%%h~Jvw20E;a`8%Z-bsc|BWB> znK+{WB=IB<0tj2Bb#|sbn9lpj59XB&QlEcA&~Q~2AU#i)@V^!JyY2D6{tzIxs&W>E z5b8HQ(pxLH>AL5DMRiWj^$LC9cs_+lSYVO zII?BXUX!^6nrO$sJ0z^#ME(D-uuA;3PyG{9#UDix_n$9%!aG8oYVMcdHS7faC-S2h zY_Mg;ZWx5-`FEx-Sw zmitZAV?^1>Li#?&0Ud_krgmgt`T?{_eP2#3>0aWtcW|7V4-JPUGBeW44~Nmn73Vek z6@;BU&QW`B7q|W_L`g6`swFqH*wc~|;G%R^VMCqs-Hv;JX5h0iO@#rV-niFH99s|( z9ngi-z&M2%Xg{b-J~>I;oW(i9z=UCF1=+s4&!oZc)Rfb4HXMwkSd@*+WJbAyKk=QY z=GOO*RxU)|J2XAmVRA~;xhO%&Qc=pr+Uf-LTj?L6%h^=dG1>CA~>#xA6;&>%ZLeJ^zBUd5LEOQECwdKZb_3led6t z6kO&M8W*B(_Jc3b6_B&o^-$+D7zUZQdm^dBmVoLuF4G;i7m#4{vP~~pq^+32T$(A; zq$LGR$z)qhIgm6_hya`49k&WIzlQF=#;cY?C|eK0ZkK8@>qEUZ-Wo6t_#ibzhAGAo z3oFnhexX2%#}R*arXIzg2AAMQA+d#+1_0vkE2^f*0Ne$UMr=H|hy*8yMPTmpn^ZFcpT(48*himZ zVZ&j+vSrGMqeMp(TNThKgYWA*@X~yNLx|ufPCgunfOQ+z;Lm_Fdms&H#!Xy-2lCi+ z--A5#qI#kf)GhECVnIiQ7@*S>>A_wDb;mE07??;$j7nFyEJ}KkKoQy$gw^emXS{2t zwt|(JF zKpJ)M3W1^Ti31C>5m7@iz>LHbMaEBXA7q$8fUctU-d=T5HF;5VnXbX!X$Sa5^;@TD z`G~;?`y$ls3_mB%CDmLIsv^wbOXY$6)C9B#QZiydDMlMTNeBN&lMcuy4A8viMN~M1 z?4#h!?&U;QLE{hLLLPJ zTMs{k3Kuw!!59qE7*T~|6_lF(+rm0)$ZS9C>gqdu;2^4?|MbbD{CblsQ%jE;}x&&J>PNc=-nC=Cnu5;2BJTkK1HFfU_@}g4d zulsWwG>*b0_#Z(0R!M=GZ>@`$FN5i zdLXe2Yj!LK8>M zC_qCZHsBuR_tRC7wBu{;p9lNtA$SM66F)-}wh ze_~wzmDFfOZ5Q-qf$GBEh6nFW3R>9o0^n~Ng}Ro_-whLFrM-!Clr@PfY474_hA}4|-P*sSYN*@iy4-<+QQLhdm2W=IQg>{-Fyi&$ zbYWwjw{uDlGn<6)q1nzpd8DbbeL!GAp|A%oZeY5+^&(uJ9blWr6pa?Y81#xepjaZ@ z=#$A2@6XnmvCZfA)wzW`n0CY0w9aR4xR6tF1OGc90EUfobe&{JW9g=Dij+wxYPpo*Z(c+1gO>7Tf$QL|QRXIT=modlvwQfBKC4}Uw&9pL`hh2D35oY_$2Jl})MVdi??Gn$4P0?^di|iM_#FdnA*=vSIbhqH3~Gwa{?K>N)3f&K zo!)=-ObV*^a#(Oy1Keue0A; z*@O7;2|EMlPssV-hRgp`14|ajex#cgYc~-9|Cr+2$vat zvgw|&){65R9f7u@iaGFFTENX*WRqa&$OrboULWE_4Ae4!Gk)ra2Yc)tb_y81R9uxV zYTl@dxOh-a28{id0*BuI?39=Eq&v`pQ(*w2gM5=#%=}g6Nxum-U|b_>%W>=@!V$22 zz9DWEV8krL09)UV2gzBRSj`rZ5%i2NQx<6?3PIx|G7@wT5J<2^!68;~8fK38`8JITdH=x(?Oe6pIo5gZhWmj&l(rAnv}>wHhr{9tyC0{htabHIg$K4b|E z1ajV@K0^#Ej2#X>$l3P>ugwe9%h_WX+MZ89C>5`D8Tks$JjDd#fTlth$SM6fCNIb6 zLWlt=5HpFRXd_w7Ycx_93DLn$%>tk1o&}<7s6QR`j(!=@#etW3a@-a(uNTYDbOUk7 zIFKNiq=HZ+2Uhf~xNlFM@l^xyRi0otW?oiKgf4{`klAujce!sfnWfR6zWxg|$np#W zYtvo<0tn6^u2%)oAy0~cuW|)cqGpMhmxOi1L9YP}oUr`_dBwwZgy)-D7 zjJzc9j;bHKM;sE(2bx(-@C-A`q~#G3ZsyrE8r&j7IGZ?+Vt&vN2Ty2kbtKe%gaRR1 zo>yp?E&_6j)LVjlO#xybDUv)d*%%>c(4n6MCu9bK?^>)Asvs?D6Q=Hil)IR52_(P~ zBIj|Np}HAbF;a&Tz|4idaRK5Z;!u7qoPerzfluKjPFw-2em{XUcCG>Us#SR>{0C>I35BYe5EI^q?I7LBvInzp!Rao5x)Rj9b)J}OF}Aexj7)j=Sx-BT-IOg1GYX# zQWhE~KWd8TFXp^e0Yh#K9OQ_CmGK5I`>Eu`(`p3d3xOXve5pWEBIa*I{Q5k(B7Qh3 z7D>;`10MSmXT{%X$26bLV$HTuH$)_ZCm_(ou{n zaO}K7FmA)H=1X+roY2x8uTQZUF>p=_9B5JYtdFTo=y7(F3FD2Hj$;>%IN5Jpu#vcl zSXX`5!^$>pwf9d%iCAYI$6Yq+F?gGNE^UT%sxQ5s4MtjPU7I|@DVzYWaGNo?v#y>N zG94*Xwsj`X*dL|tdCg?3LLrkEu!|%tr*R`}iU+a@2QTK3iPQ}@aWhv5OluH=lWH*3 zeXh9KArSiMEb;t6-B(xVc+jV(cGDFuFmvhq&q?C8jkE4VB=@QNzXkSktfo^l&yr6- zB8K3Wr*XrtF{;Vs;9}2vF~GOD{mV^pm1l>f) z68l+@y4mLMUh3vg&y0pG1_pmW9!KA!d9Qr13ztQ`HvFxsEoCazVCXdnu=Md=!38g; zjy{gqcf)3W>Pj~Y6(}-n{&+!ZUs-CkBi!m;)yIRLk7}PC zirAO&HAXI3?0Qcdhaf~H2-FG%hi}gQ#nbpv_Pds68`Jdo(;K?#X3y#VB*^0H_p@u{ zXA)!Bz+IG^5}h!?M>V ztN(me04_f;mmjzaWTt-@m1*v98F#phJ6!gEVYuv1tw*3FJ1ouFT0&KcC=>Fnv#&;P z=_&I1@rBs^84SMaj*UNJdav6BK>1dS2fb+1-O|tE?)Mx<2$Vh6 z_Zn4;$3Hyd+Za&^*$t$7Z?G0NO`h65dJ7xrXfPb1lsV<@;q+q$fv7ge#A0rCb{r5+ zXM#R=kE*Ko_2cF(X>|%tjgp?Kzy({|H2skKKzvSQI-`3=kZ{WZ7epKf`d>5dkUo?a z56ZcxYEA=G<986t$YMYvprdIIhFkTY8qO# zk`zs4cSAW;lVCq&>ushZV@b*G7z{7HR4z~mAJX>bwpbCL-6|* zK=lo(EHM8pj-#+_J*yYt+PPl#QKEEmjWC4p)ZN&TGqY!Zb5wUKBRL0{wn+KYJC27sJlI1 z&hD&GZq~gdz45#p747a8*4N|l#}hu-)=3&C>DEqn3!!hei^s_(MKnRZ4*fU3RkJP3 z>I>C#MGcI-#^sdShDhFZ`lfe(5cWgm`p^w@x7z@DGB=%boOzCJQdx~0cuyxjC^Wn6 zP$=3g}7nI9<2rsXHp`4WypK)Bb1)!a>WM&qy^<{w!MCnO1=19 zre5DAHfz0Wvoa&6`?wbrFN%a?*8O!goq_J2rRo!CZUZqDF2OxT3EmlF1eBULg)D>{ zyX#gifxL1`!fAUbC&$N}eKzKLXvdiz53@@2^Lw(j)D1;%U7rkh8;d?pGClbD(#_lB zZHBkU>OZNhK9ZUuEnIvjDaWZ>=I)C<>WQXtLm$E{+%mAMLth0Y9CemyQhNJlKxj|W z*Qw+l>z?n3KZe4FRzstYmaAsvDG#B=qr^l2uwONTn>$ty#Jf!tfcQ576tSvo>!DGj z=K%fd>4Mn!WU+;z@)LMIwu6)U@n-yven6yl)P-j(c3X;%O3;lt@8>zx&g?>2GpPbm z>#DDjCwi`jDa3BoZIEnztcf=jVM5{kABER5OML}J#Ci3Cktzu6ur1AFr z(MJ=wS{Pt2aY?{eF+s&wiUg{rljFk}R#F|x69zO_vS@xFFaU>x;@~PKMuYx+HK>5L z6QC|aHI_>P&eg);YGH7-FqS9ycn2dm+ftCT@0Z(7Odrr!ohW3H9}s6iy!J!t0Ead* zoCx|%b)ezpt|l~OhUfrZV#M*UBaq+DA!5K;`u%V-$B||-LuR>|+gcl(LBmJ_{isR; zLj*Yev3MCa#*Z-lVg&ZPNSvE;V;STO=Px||dle>Cz$OipYs$!s1D>E0WVG?l$6NyV z;k_yj)_Q$elL;+sE=Cel?`*BV{vUDtpKCRL#4h%^k1xzOU2ZYl9N9!%BAG%4>; zN?uo?d;Y0S)1eSYojHf@MgG##g4WER^BYf&_tjU_^msS)_I^kzE-WZ03>x|H@k64? znODWd{*vZzpR}kBXnEM3KezX!yY%|o12S!Cdn-0QxD`L5(jZ*3@2BC@SOXpFVmqH- z3`3=4nsg65v`UdtN)oQNF^sySvn$TIWLNgo<#OIBzz?x$Eu2)wyXnOCh~UI^<-Cuz zIr`qg3t)(6zl;Tx@#04(tap&ed4)h;15jouh+8zjCxNjuGc01JCp3j)E0E;QYqC#q z1Y#YA!i6t|P$M1;Mw%zPiW_K)P8>_rk$A9kzxj)M=XI*3E8-2d3^F~A>Bb<)wrohyBj`+ikJTXGLMnm_c)RygL zTC!E~*O?*xz3=7JO#6v|Gm0)0IDNx;JF&R1{q~QemLWQC^FHdx|4a(MU~+AbR=CE@ zyX_pJM#b|DhaIY3?6D4gm~MOUL%0~~(L=kvx);*h4B{_P2lf^vMuwcb@ljGiV8Cgp zdz*83MV+R=!_QRN=J?ldlMLgQ#Ak%XCawlC5O6#$iLiY3RAekU-C ziDf$hiMuY)3+Ejbm8fOBeY}5lDA~Ey`Q?Y10U;xoK(Fv~pFbwN{uCc_&+~Eso!n!t z#s6soE;lW3BrPPzM!mjRLCtHQar})%sjTde%HDeQO{yde=^b?bYpzm;?We+{oX3?0 zNeT{naZhF|4o1f)0^aqQqIj~fX*Xfte-;_~vO&RW4RO#LP9jbkE(<26L~J$f_XXYK zFGMg8r3mIRTUCu15HE(TNMf%khsJtF=8|xY_R~B5VjSW(LFXSrD4olv%#B&OF)KG_ z<;JYsnDxI9vvS0IJD$`)j!@5;=ij2}z0~qu>4Si=)-Bt85jD%nU{^kjC$`&&f%f8; z5SfW3p7Tnmfow3d8X0mN6jjPDgArqQEI}=mIPw%)s955me`JX@l(0#gVC-_mdbKN@ ztj>>DqG2kCe4b8}L?NaUe%SJ>@VVxng@!B+JP~u*b6Q)@6fXwZq?} z4xb6Sb=ucF&QrV6tI0mR(bX)oLp8Kg&}gfLQm(N3xeMuwZ(b(*-!dp^)-{6q>_=a? z1ikoadauH+3$JdyPx$B-+FXLJa)S1H*P)QOu-ow^1+Pn^KmAOqBGSyKd*Z5X#Ob^N z%4j~k&QBJ+`MarHWn@-(x8D!)9F3uyfCtJ_&tw=R^{GlRr1Di^;zA;tyb7WZW+%d=o zBJ|x>7X-cDhd_5{AGr4oFYn-3eCC~p72sA7id}pk0V^uv71&K^gxCy1mM55RskhM@ zxRJ^qtbF#BMNP&eKu)Q^$;8QUW+#BB33j&Aq&d&5lmT2XR0v53n#J3KarPnz2=$iY zkXU;f3HLp4M))tVM1QL%j|Q`cG>x1^NdOL=W^XBz07brmYGWok0yCok(25(rLUT=9 zU_v=*;p;3?{tm~w^8w!5Icv`T^7qdChmfQA=hKz(HWI}^Umn_k-$Zw*K&=`t6Q+j~ zv+$RhK@>EPgV0@d|1<*M=s9Y_m1`5}%#iA=%X{vpC}%$WR1~B4WRqJbkYlocnuFjgf6O(s}XPO7;iS-EMcu+R(g#3N?)21t?gKdt} zM=BKn9705SqiN;BQRxV^%QQM(t0y6|OswFeGgN6|Q(DGPxAasrZHqK3J@N6NJb$8# z+_V0bQ{!B?1s86?gi;8}w@4z$)U*qb>|v79}jp6*~)L8VrKE#ry#{~K-r+IBsy zh<+RcfXMQu=%DChlyHk!!qh`_Y=9rj-3BIqQhzrVbQ;BO`n69eZ`OA%1!p#XnC;t~ z(q}=oTnzc7#y&FeA@Hv22emITw+3%mg=V`Mf#Ror@)6v#H`4khckuZkp_%jf`FCLX zTND-jn`sgh)kd6C_1m0T?QuXxt{%l`nqQ_wczB#N*Li{yID~r&RSESsb>|>LpjG%3 zLz>2DgUVG#_3;^SywnoUbl@U9vJqgh*H^MlI2M4uSRuey4zn>Lpwyi*rB``$gyHf~ zx}Xh{?{4W)^pP#mIw6?#srKne{nJY6XXL}J_pQ6_{l#UT4hzeX*5>aH`b?FfUIP@q zY1kga7$vX%)Y@1Ti;N6TlUij}xYXBoW|_pzG>mD@`Lw{SI{zU;eww8DExlfKFlE1J zH=5%%t4`EYU-jEw>hJVfQDlg@y^|9G6?nkGIDr0|qf^s4s9M6J5N!kwxQb!fulFVO zkFbZmfYInufR9-rPn{Ms;laOm;{PGcXuM5OL0|=0kYn8Hi|X;To~r`-l?B@6q+n4p zBjJ0|qdpOuLJ(9~Sde$n;)hR?p%actFL+`b>~%B8ZSCUd%0a>-V%`!@t+l-sbBGpE z+2irRMSV5Wf|D#=P0y(!3*?ky-7W(Z%nFB(7YO|OeRp^sMXlMmZ5SiqC_1;qv(foA zEisor*WMweoGO-|aSE+}PnT!fADC8Dtu-LZUO^*N_n6+#DqHK@05qZ1eCSRUa@+!*Z(h&;f~J?`ck>jDbp1M8c1HdV*PENHA}^K7aUICU_;2Hl|uBr}B=k z=CLD>GCqa|$<6d7X(gI%>+HPq$kg?Eo@K-4k}HH4c_%)LpI;-HMrl}k`^QPUxC>W< z>&H){G93B+BZX`~Ne)GKZogq-Vj?c!H@k||AH%d;M1O%MLEtB|hM59(7NM6HWPQX( zx6$J%LD0-4Pa}lri3Jc$xkoeDt_kFf%de=>thdm3Bh8<;!!r$#GekTfGHxA2vq)Fp zlz|TWQ&&95GxF1!V1zYQC3LT16J`*mnZj|t`$1X0$?zC;nv*om0J%xt2eu(J2HhJK z0&b~pnvO&20CmY+(``MrGf0E@7{K=A?_!#Qv@@mZs0$Ry@u%>z7ea9ikN0ta8AD{< zoI)*X@htitX!5`JttYZBGmXzM!@>LW)T{}b45tHwV5Aya3xn~5p}o+SWrB)a;DGs< zSsJZW1x^xyAL=4jM8KA`W(pyfz=n-W#7vQ@%}F9M%)pgD0A=Snzw!%PAA{A+ z(Z!H2;VVJ*w)llu@4>HXEtnPne0o^sYo2TqZ$i zkt})WWf?d})DQsdMoR94#zfAL0gVfo*RYRZ9|dCHtVhhF_v(m)uxlqAm%R}@)whnP zmw9^Xw!!zI$u>Li$%_G9UWx}NI#C(w{t|)YcOUtQE0pHEX{Bhx4~ds?@JU4IJU%cG zGZRs&x5Q(k2B;6(i2@1ea+k%k%Nz-lWk?&E<;YCZD6b~Y1bboNC+Z*p9oI$?)O@R; znT>EUak9?$AT(~!e-u?p_l5^5Pyj0}3$W7P2mSh|InQ~gz@E0lFuYa_0qw}LDD zNsB}3rUk$z5Rw)dKrd=7d?vDwVM9USmV@7M!Va2&JZq8081T%;rot7WLtRpggJA2J0;%N&PjDCZXorA> zC{(+^<|8Rdc#zva?U*1l+%RIqxgP_;C{z$MB=8PmxV#5X5qo8%5x~-?IS--hIqX9b zJs|bhq|Nh=N*-9^DPe+#Ztrm)nu~YP>$m4TkC^%awuba1cmdOLLPwRsQjSXks9YDZ ziU1qiU77$B*Q{V|)9Ra(kEwprz%>X9h2?$=n=FC@xGl+A| z61?A;L_k1-T@P;51k(we?Q9iHAP&}HT*#~uHdy+2OWU<$o@4~e`v6C!3xY_iUc(y< zKGxHwVFGUuab9OsX?-B)%^nQ$l>uHb%MG5S9zW!qBC-zLgew^X1SEUv&OO=$qVE!p zV;IsPBu`Z_56&eHjzU+7>>cRb6eP(8{c>jc0Y$mif(tZX#^luc!@fXtshd}Nq|q0=j*XBPpf6l z1?l`bd&Pe2;$}58sKe9%7xA{lVzdVOM1>|`9K2uaHs-!I@(DcX7J>H8gQ>q$Ljj$t zLINj2WeONJyIyK7l5%ti@}R|VB1=`kIpx6JK7S2eYo!Ow@-}djF5|&!495xTo!=6- z|IYdTUiXZ5n#kGY1eV!z45?NKgaA>Iu`llci4($fLn;-~u%bW4p5_M6f>zqQ>!8Av z4e2TaEauGLJt4Xuws{J+;9a&mAf`fT8cjTn^xq))D+feqYw9!gK# z4c;ao|ILCa7$h@Kst$8GXK@Fym;}cbfutitrD6-(oSMRUrVd_`?k`o)#PQfjCZJxZ zrUQ1Mri}hTk^&?X{U`rw^Us`edX579R zw{OPnn{oSQLI3!y7e^fFfM#x!3nJhcmk=~7ej*wsSKwxJX=M0O9s$;P2}!sraGsh^ z!(p>%ST7yV#+~%M|Mx~ne#b}tckQ%vaD`#GcqXnejHEb75Y_1luqPdq7ECx=x1rU< zp@U^0X3t}TYQk6sHH?=RBvth?gCP4jwLGep#>F#n@l5|S@k}fJ1rGNUnRZgP;TT37 zX%6%7aCXe0U;^)N{7OF|9(K9<2;cC>8#P*YM#KVKqc<`Y!oS7S#8qFdJC}L&5?RhF z^HaExw=-1x_A4AyKBlEwIvZ;cM(dJwQ_5j~*Xnfr^y%(|^AX}3m#I%eh@U79;q8Iw zEaV0Q6re^LaU3D31;|Mc@ofcE+yh|Lb|u^GGyrMU#4PdLXAn5P5w@X7-9J(m;3aT$LFwieNZ?&SiFaJ*t?5->Cb<50cr5Zf z)%Fn+6eMuhzm2?Ydd7 z)pyGno+HJHW_C_dC5yW>fp0}0nlo^%!tM$LQL^T`wPz*O?IN`ifzO; zaIC@tG}}lV`=r{E?9NX2&dCMsy?z|wyUc|&dv@I<^1TE-DnaXyqRoE35~)M8_pjSE z7rArLEE zViRs0z>NdAaR4_C;Kl*}P#nP9gxLgiUb>?wron}%l^iW*Z$FyXvqUGn-dV4bHJmT; zHrak#lEYRwgtT(U-eMECN>?F_lA)AqEK7~}P?exuVN`4PVUKNCdAr*M`j)*%pS~Sy zYy}LsdnZI{4167X%x68#`u2P|G`nv<}HK!N6PM z`}aH@y>wtv-SXro(cso(i)Z{#_Zh`@v^;DLjh=J(3GKI^PrKyybwJ?c8^`9H7X#_d z8N8ksQj7#m&d1xtgi_n0iW;5WswR5X{w`U|ZwDZLQ)PHCfgI1qOgtpB)(S+b2Ur^F)l?a0fUVjz0T>tmDg$%+Lhd*%G!X<~{hArH%g&VeT!xnDX z@{ffr^kRU61=Gt>G$#1zA`}2p^Ly8}!cQm)oX1|;uhL86?3}HYpEd#9y)=PtaN6Fv$s*(^+N4V zcT~Q)LzeB;$rY@I6Cxh0>Su8~PrEa+W~85&oempnnfea2>mFP%sfRo4u3zkbu>PLy zxbLo(;a2yxMpL~*c^|`6#_m3K`ap3POPD&jb8zPC$<)EeE0q2;oCt#2znV_m@r^s3 z2wvy&K7k?V8AGNt7{NAL2jfv-XUa zBTw?j%o+KDt_I+xBO&GnfBg-hV^NF*2%|Z&ufW^`YEThbpPT7$bYZHRZhGO{{JCQm zt^1WC0-e?*y&+qS9~M+nU-j+v3)_O_2D8!nrNLRjg^RSWb zr+rTyYl1Q2jO?{fn4BSRhdJ}a{X)3+l3b{%b&D!_f@_Ad5VS>f2lm|lzGBs}` z-rW`~c>Ucv)?uQI@r^T?(~JuEI|Yv4iHZK>$Y1z!n2h&JJlTTKXwlnZn^dg*C}~cN z=>oVmrU7OM@Vx<1?mNne&oFN0U@ZXW+>ixEzYSCP4*gSAfxW5{8hb90>?-j)Vc&{c zrVw(P0l>F@H5k@&r^5D71Ot}?UT?s}$B}=d>78mHA0UzdzgAbW_KYh=G1+v#Telh4VhnktCP+4yb`7Zja-A-Of1w6#cNQk_sH+;H5KgJ^C_n`*=(HEm-UwE>ON)9 z=I>~j@~h`z{RAkW#tvvuARX#bpIze78GQLC!Fnbg<_gw>RE8^9&lRla3f4Pt1?#th zBF7&{u>J_@5pHHXa{#GE0Wj>?Ge*gw=|vFdOe%sRNlIFL7kNPq2m6@<_h*D5h3@Rf zhkUzZ0R}u=_D@e^f>(DDzvJqzm6i}oS6*7;afNojp81K;#CgP5+#kiT+V1_QQNr&{ zXa4#hwtrmWiExTwQB;r+M<@63hYVi;L)IXIlF^Jl2b5+m;rxknwU==teRe<&L>z(x zsKhx~lWn;I8F&C@FVCtVFYfo43UvGqqT~-jwAIFie{kU+T=)kU{?Y0YzE@3sHy{Mi zDhCy@vVOo$aXgBkf>aV`1mHa4WIg5@4n|eBpC~*BR*Z*?;FW3LxM!Qh~Ltu~^sKDmu0MV3W zML~uy=-BOoiO>XL5)@Q3^bB534M2-(lIx%lK$c}M^FIfE$@RZ~!SVFB5d$dr2H|G* zTS8rp6f~@(R6hyWzeFJh3Uq2(w{AFyUIk4|q2XgI_0jWAb7wo_l{+G)>!1cde|I78iT>s1Uzg+)209b#-6_6x@gReLkb`WT5 zU@ric;={ik6Z_l5_unh#|3~@nzXtX1#dt!ur`#b9Si4Zl0_j5KqP11%japafybqK} zTdo!N$u?iY$$s_0Y7~F+(QmX>{4A~5lk>Q>B7ciR690-(C7$zZZsafVY!5R+$`=SM z?Cw8tuej;MRXH7(P(on*Rui{0qri8D2|D#}27h?hyG1>XgIT7xoJX^IYTGr#nAw{` zcO+gKSgUm))HF9Q)Ktz8?&;n|JoXbzrv-)~y+A3*weJ{M@$%69&{l1ZW;o#Id+oMz zp%eT*1m&m!H?R5K9x(vF+Ai^+#Ngs3p3#9)k0l=8<-z{?eHg0vO>J24Il7Dp7>ZEy zBO%bJHyA{#$8a(+lmVy+%xZ{x0Q}N4zz!^){;RK`Af4m zDV$D**|Y^9(~t_}nOw`!bNUy3S)c(^is?+02N;5%ir{ZxCga`jt^-ZySCvA7zM{zB z!Nml!W~+&F$7`S=G-3jQ$4Jwg4km6w6p=4|Tj}I#^wx13CA!Z-NGWvLBge6#%?4|q z%uHmEu*I(SE>3G2EX`Vk>FbNC#X`_8h%ZX9^?8$VA-SF#a@Jv2`=vbmtiMIZZAPZO z@}&Fj>84wygT21KxBub> zy=l1}^`nQUfoOfLp3oiX5X4XF;~V{%sJUmLUU=8(b;aTbu6MQ2pr6_Vh z!|dmdNM4yWuine08UzpDQsMc2WfSWB_uy6St=6qLuf^Ro0sQS46DFyVLB7YspioWh$HlMN9_|2vgZ?CmndPh`uL^sxam43)QDso*`R!1zQ*KoVZ2yBB9&Gp@JgJOW%pe7EiUAb@fB}m`q*WtXY8d) z#SR>JPRvp>Wms9OXi$7&U#FhCFf#0J+fcWgj^hZlV7GAAFg0n1a1oc9NEC%&WDoOg zZjlJvUR$7HZ^KRjw&m{J8q z;p@KZyRGrwqMMk?H2X?4Z`Q72rVnEvyNBsy);aGv-y0oMeTP~@otp3TpSs#xb5E;Z$~hGH7_!(dX|4{|D_I7(+Pn$ z?{sxbF2uu0HuY+$6U%Bjt3JP{drXBTzVTuZ4Yo#CWxq71ak#FR4 zVC^fvmfW+e*m9tNwnf$ALE|=elg#mK;p(CHsX7!%>vI|dl2%E(=Yzb_j^C|q^z?$6 z!11oS9YvA$M~-@4?H%aq7-0UOh0jus|M(8vjDHmKZr`j;vwLNhr6xM~r|J0wG3{*? z^`?bk&-%aI*iy5#vXh#VY$6>ryPxmt?s8SUU_Y`qx$0dq*xT;Ub)WGG`I#Nj8M>V) zdWc0TV9H55N$I~PG_|S7{RRixQ0^fJj^d+CpY=}5kcR5Cm zl{pY>-e@JS{pgu2d*A+$O4u^m@PgyM(gk;!nI0Xg0#hnJaXXN6tL<0hc(auWl{iU` zCcRB^7dEiMGRp#oE`MFVKkjfW-sFje_FL$3KsZG~+B>IUQ}gMeu+KEKZl*qOxMxV1 z&??*U229-{xfes^-gaB@eRa~Iu~l;5g-WmwV*N;v){<<99CsToFdg7sexE{o(M*Y# zKftcui5Fy^ev98z@S&LLt6*8Rt;gk&@|2f*$@4dK>-ViA(epJ$PJ3gAl`Y*LTM5dT zMNF`IS<~-srhpf!g8B1MP340FO!9n5u&emFqqj)u-^|usI-n|!ZX4Jg-Oj4AoyRy# z4W=FO*2i7>;Fa8l*IMFvVENs1fbotNGbNx>^R%__oT3ramb$l8Ug&;U^}|M*n-)#W ze`98B67!ktL(v(guUOC(%foCwtNKUzj~>7G>=tUl3PyUmM$i~)I|8d(YA-TV*3O#S z8#`Qh`#w(W#lUW5KXd0Z4dX6{Zif2iqFp8hZzYp{j(hSV>nuI`u{{~qaOx{&Cx24v zMB*N17S)u7FI(f}B<7_qwzRg=@!XT7$X+GqKNvb?je4q*xpbMY4yVzTa)#M zUe=h5n%C7IKGKctB=wEY&8lpn)p7(nup9BeFbiorF%ghcJ~Lwg6Hs>G16_=xE?|AF z1%Jfn(iyq!zi#d?^F|p@MY3Jm_TS@Vjess}gvy=Kxr0YWfc582T!eQ8|$0uB7f2-ZchLLTL zU;9xYU_S!#ZIl|NfN#7!z%ON`u}?ugL&I*$j(L{1T}nB+%`^J?zKp44Q7n0g;XAGL z5eml9^kk47NGr0AIqODGR{ErU8pG%ElGY~4%RU!f%aKVySBR<|Y)Hcdy-vhTQC@4i z%I;2r?|rWmzchF%O9qB;t(6-n`bj@gi0abd4f z#g)?IQA<46wU4A3CZB%X)-bLuFfSBSbI_BJx@#;`@4}}HNB1MwZ=%;g{oykl$s#7n z#fd)Ylr$hzP7uONe)NtAtf(3_DU)rRlh?Jr^Ie;o@x;gVO3%*I5}^ToGX9l{R@y_^ z{R^HYV@AQ$^mwTwH%-thk#zbE(`o|)k|R~UL@j?~=*xG8W#-ylTE(4565OY(j>qbT zF2;qZN&V_2DxhC{590YF2D(1wGe1#r0g_T5=o<*AheAii2^;s%_r8~xpPQ#!J;CkC z?CIUr(%^o*nfWGd_$bm_rh)R$MeILU02IV95H?- z&EC)NR{CZlo-C|bxP8bKa*2dZwL~$rh)r)kPl9>@`V+nsU zIrvIEMgJP%b)xqbaK6T{CMVv4{JE)z+kG@(TzS6f58j5(r4MC==(q- z)EyOgIQAhLb$T#yCjj?Uv2ud+v)o*yL*zU4pY3UDd|nW2S#agv*{d7(RP$D%bxW}u zN7S6+wSl#+tx?m^JpN45eBMGO8krjgL{HmrKLx&}tI+&Oy>auVMvr!X)-Q-(5hs zsKWoG@N<|5=~rKoJ4EYjxhz;2zcudWZO>zk7o()j>{+}FW_7$9OXEWz&!1RSO=92-;qrlJ8{edCaU>D)? zERFq7l?&;z-wRCmGV`_F;l!LH#n#`XWAQI3Uwxl=hE`TMs&7-@{7N@k5?y~tVJbPk zEkQ>v-BYJ_3k{|4&?u7@bX0FkJH`QWP&X!x011u$2qV1Md*&xs2l|-%0Ntsd98tE( zTE4cDa!JV&ClM!j_`{7$bmQ9I8%pGNInkG;y9YkZqF&sJ)3~|7B#s#bQ9t74*U^^u zbEfN6?dpTB|F)l_O$^F))be89g-iE(x3{K`&5Y@KTv?W1dvH{*pY#ADhVW_9X}E5V zW1FwgxX@kBuX}kVUa`YH>{6es(`x#KTwHc`Pf59=p4)ZjZCfKTsvp9B$&Ucr>hORh zKXn8|JZemBRMqVr_rbG$QoF>HscN-GbPTelycThJL&K3|s9eIX z42~~7!d5G;&6S7&vN?Cdd5hC;LaIJl4o8~C zS9FYTI@6!(v(Ht@bBX7`K+e20N@n1_kpjiz8RTMoK3SaKKKSc1Wq_r~7mH6X#pd3Y zSeu&amY)4{70^rV4?l$0XS&mbDD$tC@mTzH1BGcQEk^yXoRKJLq@*7klp= z*3`DHiw7GjLR1u_Mny%WM5QSuQCWb92!iyI#X^J-Au1pdLV_Y)%u*M!gauKNE<~h6 zS|Si&S&$AAgpfp~!<^Elki|_!h6SIt&scY63_U%geu2f;&m~$H&uT_sEpnjxrNaMv%_QFX~y4= zc1eEo>H6z2|KytlozfgmQ8KM6eDA50l=R&`8nC4F<6J*6M1JffR0rmHqjlR5GhPt=9KR&rvVcpe}!ym13W83+(Co`Jy zFPu#HBp?K(v}qL8Od9a>&+5(5!7g_uHoK-79{0cJjLBUnJ=xZq!2J06a&DA$btiiy z-8B+B{lIwoCSBDjU?6Y<2-G_TFeO9Sm}5fAS3xg4|l!kUS8+^-Y90lV!1a z-8SAAdjEnL`>M6AS-czE!Pwx($1Ufd*d}axp>utdI=FrB*;Z*MB(@~lV#VC@RL;Zn z=gYl0ZQ;fQRmBDxv}X-ZI-Hl{@rltI*N+o08_~(w4Ku+rW>SmWJ4;ymxH6upK^u01 z&JA^R8?L&F*4ANDcFodeWJc_uU^aK3W-{P~j-{{l1#lDn+b{9t8=r)7(fV<&y3}cU?GjCtaXq+I5;woMXk#rfXx);lFzm1CO+{pe-?7Z zXube-)^VH7oOL`B7N6eBw5c0Rv48&fYiH80UxQQvzMuJ_%^wt-i8n4m*MKO2;--!5 zK|QyzD^$IBoZdx?*L)r0-gD7UgHJIluY9Dm>EY$Suj9hV4{vennm{_vEF>-&c25556=(&x;M zFRytxDW*|G`h1JZM%I{9onyI-acen zadFu3dJ_*G?r}~Xk#iPa#|OLu9{4NW1n#yMb=~&*^4sIv=L)T!zd2xbs(hfuZx~Htc0BG2~A*rs*Tg8KObZ5pWFP(DE1Q(cW{q#3>AH8c=Lnbk<4AT zn?hQy=pPs55j+0YtP;*{O0~YH{=Ot2t|*Xq!JJss4%c&Vxp0j7-U>d#Pc}V33*nB) zjC0iano(b`yeCd@-_A@)wGFHiq5N0s>Syu>SYX0B7H;I~*1?|dCwT8@U#hbgQ;Xr= zlfS=90N`|Ae-U;0gh|b3!@s7>j-nD#Uv@!*l4jIa>UhRt4SNsvpOXQ%7`2Wby{&`sci!3h{#|EsCUk}k?qS^a75Kf{xsadgqHiJ#!-BC4I z7{fh4@~9h|Pu7E9uz<(rdo4kdds=MEcth)G`~$A^|Byo3TEq{}PL$hRdd4Y#oupd+ zG;rVDBTGBFY!JiaN)h{?p0t~;kmWpE^KUcjp-j{lLp*hHZ7+MCVf#=n`HzV^I@$hJ zslt9`9f7`VZ1Yeq{$JnVeN{3*Ed%}7?DS)5vVT18P&lLgat?2-v;aSNPP=sNh>7Fxhg_M*gk)o`zz!fmkp%0Bpa9I0dLGKL}_nbUKQ z(pOP`zXKB*R}>7;Vnc4fmA-gZ9`1%S0W;07=syx|#4b$GB|qOTtxi4hFJqLm7D$T{ zDMqlki#3P7e4)PdZLP#=2Wn*#yzVCgjP%9ritze_DU0(x?Q`GCm@Aus>F}Qr|1UPHaI~`#4XA{qg5U z>U$qwSj@}`>p1yEIDhaDww)aICHo5+){;>_1b@BByYy)QtlBao2jBMDf?qo%C@}|) zD)Wof;;v-=yYBWH>=rY=D(bSQE&w#ilMMf>KT=b%E7BZz5|iV1&~9KC7HN{K>-os# z%4MW@jmuBie~2{Ae}D6tu9t#yF0HlrF$6L4GtyxL;?8fXaxWhKjfl90n;W}*ZOl%i zbt7_zr6#0yo?rcLU1&1G1MycR#fc)fLk{l8H*#cOtEj}7A3LJdFuM9^GvaS{ZI|;N z_ybqACn|XlUAlDg-MULwm)~7J_P58s-r2_GfQ;VNGDOKO>;p6-d4mo&~H#it%Dr{mI5kK+EY8vhjiH2#6g3h)+?;*hN%+6et-wrn43 zC;10ZmL4bC#fM5h^%|!1zDV0mc=N(wMaGt3dnANdDQoT66EYnp)<4}n9a1T4C7Bq0 z-NKD}kdqW+rbG?q4LpU6ge@h)`V%UiIAu@rQF@a;q|*9KbkbhUXWSZB4!nT8HRJmQ zn=*3y6FNo5iK-M;QeH<+ri+c;EqSk7Xa2k1>TvvFqF0+CafkFdo=@ur!5?nFjNCSww_qYPN$sQgk6D3l9mig;z`*?6*A zKJ;$9kJsdiInZkmxZwJVdEt2dF>``|-b_c36@XucjiEaXMuG^d{wOc7?~Ao>;iU5Y z;!;Ay<@aM;x!6a6_aoz(3_?cb#}s1zxQS)lr-e5&f&4?Q+7G2Qh%2W=n_ocs0u&bk zM{cK?kUd}9JaV=fv#&?DQunaEoGm})!Nu@t4X=($6>Z$+aUYHD@Ex9~=}oRRUdod} z_G@pMkkgG_z}Hd}HJVBD*v%x|NiaK;szM@ocIcSd`xbdim&H|>+nz~ru4KRP>}B44 zr|)~%>$F~%G}F5=Jn2qj3~4}IL_weuCLqpHL=cf3lX6zgJ=mvf||yY20(oepySd~6Fgfv!R}4j0f9 zlt0$AWabl$hgJK6i4~~@(DMK=CQm}UDHypCbRp@j1>{cRJ zb!2z;#P@$BovDi#M_#ac(51RlPfJE?vUhl`e)*#qE^uF{7AciNL!xWZ{{DRS_CVIU zUXf`bq|usz;~X*b6A*ArD4@xKY|vw-PZUm0dvYSLPTN{Ap8*TM_soxlFiL!EJyiyR zU+#fJlwj%r!vaW;B?oA7w8De6Tbnqk{3zrml10m~Ht773B2%s4V|ahAAzKZY$rZFI zpx61_@fTDZ)+^e3uUfd1`H z9Gti^KD?fOtQxeKRNvbjZoi?5{%~NhE#g|iqzN(UVnvqg56SQPhNDuR^gex>R~2t` zH?UJG2mzF=UK|wvDzbsSFeTDNli<9IL>*A4^QZkd=n^QP1*6t$l_Hdx%Z1Qhopq+A zP}CVvIw_2*926DCTR-8W+O=Sd+Y+?Z(l^)kGHEj8rFuS)Afz_oZfEQ(DHR#@hZwq< zVN2Th>@DLprEv_%iIc6||FE)x9jwX0D1t5za!3hQbx|@a+ACo_2JaPST4si4dh>3a zyAxx6;k(nfIt^^SZKeVAH)3{yvou37wo!rvN;5HK0$Hl_FHL@VZ$3iYMk->=N0klcrH77GUsg={sW(hp zpFgfXY<_z1Re0dN7z+V%Flx~Yc&omlu7{d+c1NbTv|N754#S@XNoNIX4c3w!sU!xZK40#T^ zd)gTk+>#RXqpA|7MuSJZH3UjvOU`9@nhaUcWrDBoh&^h;=WuLmhR>a7#so{g7lU#m z{UmHv##H77W<)9Em%5no-w^)-Za{(-!8-U zS9Jc3V2oJzm=0M*oJ&E9qI&AQb3}*x7gC*E0Oc{FpiSTFyMW^Mg1|QdH=9_la@PZRz9kPZs3n!wmR-u?RaCD{707J2K z0&&ZP%Fx6oUE4w$6GFax|n75lM;3`Z`0?VMTh>2PJq zF)&49`&)$gx<7q6;j|=e zpLYpW(mJQl-<`aSqw0 zl=5!)2w+r63>Tte{a#Y#D!(D(+0tjyjcP;TUU>>02COYFU`^U+@>zkb339vFM1~~4 z(AMy686wofRiuZO!h3|I<%-lGCQvgeEX`T5B3psP7Su*bd$tZ#3EJ}m8mY;2RkF2! zE-jJ;`e=NyzC$NjQsJIXt zFdGjCG8ls(6XR)XU~ohe{%?THo7se6tqfVLO&4Z66w3Esya)PuvC5Ls@fp0PEc@d< zW<S&*UWGXh~VA#6O0SAE4RIb>_iVNy~I`=1dJO< z6irewfAPVHsr`*%C4iaAlC}nTXL}8`W(B~bt}W=gaDi-;{R^hwMQ(&>4@I>e*aI|2 ztt-yS{nS>G6m<->$6KV_M@9jP!mQFPU{;_Qi{&HX;!Df~PLZY13Uu?Ev#YQ1qmfo1 zEq2z-9F(_!Tqg5cg|i7Pq7bM#e^Roe7R1HugPe+jhE)Js)9gml0Ujp_==(CW;tYhO6%XST?{n8Z zU<}y_OzFsR6PJ>blS>{+K?w1>zgW_*jK%7Hw3#uW*vuVH145{@$i=K^z6yJj$RMSO z%S_(cL$(VRh~u$JcOr#GlkokspxlE{<_P9W1Do0aE9dt(x3Cv_-&D` zt#nyx5DoU(7n7iTA$lV@yxYuv#S%xrl`~T%s`jXOL-Y-{JZ1;9RS3I1jZxym!9-8M zwb9O=b79gU!G@|p>e^p92}5Io`dwZ1pSp}FxkNHr&}(@U8B1{(8L~4(j9#%2ofhXv zG+u$lHsWkEKhR!4YedKT90Jqh;^W}Mvw^Gk;Iec)W+&O14U9u6q0*^J6|)|#EBbI?7}nVwQIK_M=$Eq^jHS8~^mqha?WvY2HeLW>{Op>xS7 zkeOWPz*ZF@0oTPFkS(~Kr7kjooFW2*C8!2w2E6|=I(eSh=g%~569QG!jNDrjN=vX(Sw+AT-TP~5!Q<|w;O3XZc zpNy$%^_l4!-X@=kMMKuLCV>W zbbPkR`9)UvKqbm$r?j;tU4#2t!y+5G{sZj#;ifDpdT@ zp-2jfedVeo_5&d-A^C(*4gmIP7e3`Pd(g-1+KpWa1HDV`-qi3J@$UFTqVZ4+Q zgrKxjHuqrGwyj*5sIhJ=v9<)}amtlc6_E)*jVJF9iz4m_TqeF`#2^0&*hkBAYa$lx zV+eFLoja#*-y!VwA|yqGY%lFQ{}Aaaz9Ug1CA_4stFXffwuLfVu*rAX&9qxf%vZaE z&>*tqndgK_eB9x;9=1`)RpY#Y>{T6MBQ9$C7C>9vZ-)x39wPJq2l>V$E6A_vBG@VZ zsr@E)UMSo+L0`#2uB_)!$9IJ86-Ck)CTNm$uPN?s)?I6N>3n4gW~eL3liokGJ626_tVh2dW> zFYoxHL9sMy1ou^OP|||j0oPP~OZ#2);atv=voTu@hu%+apGjb)CmDQQQwtR`)XbHk%+y^<@0E?K7> z*}5ms{8p0l={GO$%$hUpwv0Lv1qJ+o959x|x2K|@b5PVb#Dh~}qC|rTuaoxg`kL!u zzkAM8B$=DDhi-m=1rD&GMA3mq-w!;|y2>xGbMtS%=|<)3 z<5Rz`z^yx-k&^RB=!*1ICd`ouXrYM?kj>%CW%NIxYz#mbDxiftzaKj6ngz}jOIa|Qnkh}&;EumOc0$2f#YF%HB++P0lvmD zn4`0k@`^ogM27FXF~5l?dVTgAVhi&Yb@Uw!0k~=S4e|9URv>?gEfTk}fue+Oh{MvN zqpKHTd-$kaXf4@}f$2$~9cfT%ogd7?x?(Td1y^|5d|~f2GwvH=bOz1=#GS)_{Ta*u z9rc_jmZd9Wfx_?np~JsWIl)5I*SWh?zARNjK>i7N}?tDkye`%&H{?Z1Oq}4nA zyRGjBAB}&vmo*pWE~NkSuGD|btp4Zh$c0JRQo~Bg7N@&rE7yz8f*GzA%xiazLDz&v zQ@w*K#5k#j_MgnJHEjAfJNP1wKKyrfOcwngH^Tpk#q*yV=Ko#hGTy&kv<1895bM;f zBb|)VKa6WGIQazyZy-Q8GzbnW2Wu!caDy6r-mKKb<#lAx&Tk(I5?sdIr}_~R|VDBmn{PS?NX zs{grn;%+aBc<1A<7}T5bProYqxJ8C*JEw5YrJkzm&6_y$CC()1L;H|djjrDG%t{-{ zy7Uk4^`E6_)jv@8>;De7{;z@6K{FfGyKcwITD~0Yt#H*=E`RnzZ?OCOxJ@S>-+1@F zvEaiMDXtXzPcSs87{7axt#|ZVzp$SvWAzEwC;^MfMs3g_o7l!Qt(vjrzE&MG|l8O~1eoSv#uDGo6 zMq}XjLe-#mQ)iAiJGj%HDJ?tv>4UI<%UaPDBlg3SWwq9-${lx)J#{<`y04LI`sDb@ z^MY_LcxS-67~`@3Nh_9r3N+h4Ml0u!o%%1&glxKEDH-HiHxQH6RiV{@aD>s!<5CxI zf{Hgap;T-mEmnagA5UE?GEQ*1_d{$eZi~ntt`9)g4HTKq@T@B`C5lZBLCTz(_QVBk z?Xj?Wy}*kzdh%|LpHqIzRlaoQLl^70#I2yvsH=C}A2v@Hyq-?oBR+q=GB^l|oM_G~ zhLi!e3>J@CC$i`lbc>vTh-TheGdtrOEOW9J)a#!InYPl`id^N=0!mx`g-3+FhA5;F zt!T`6(Pt;XOR2DnaE9v=6{ZE1vidIR{yjz$VY$-VpY-(d_XjMrT-%$v#1aKrOn zm2?kXqu{zO@LI6kR=D1SjrZ9ERT3lF@@6VRdJ1p7M0TtuzsU~Q#L{?v4+k}XD#xLK zoFE(*|I{+q?#URpk4+3OHO!rEo-%S-+TGRld1`O%&$(JQt^CWk^6~pBl54$Z^D?j2 z)HhV5E%l=7b0M!K86JwHXa}Cj90|5=VQqZ|R+V2|su(pp|9t2B<4ulMZ*Alzi>#o4CuGO&N^=Eq z_)&kFUDv$sPb$GaLibqPFT_W`HH;3#RR>)PGWf)<`25_JU90Cw9`0k0Z_66=E}>?y z7rtt1?w6n`{iyQM25byVN1R*d32HZaBs9!Qd)i=f1Ptj(W!IG8+5FplT~FJNGqeJG zIcCYVcPGY8qB;F@=o zDydSeeZ0eO#dlRVrL1VkV|;Qk&)+k+e|5Xg8qe~08>8>5+m(6+1#>`gcRr$|uy~|2 zrK2XlHOshR`9k@5HiBXd1A|vBh%KCg4|pQCOxD=nFq0Nmfzt7sT?;Z`D8IH%Td*!o zHm!NAyzah$3#L9EjLyC`5%yu53X`qwACf#xsA770e&%FEFs+FYk^N@$e7h?fiXG8K zH+$f&hhtSBi!&gL8L||Kj%A2!A9G2?u9YU4sI3C*;CEKfOpMz$=1eg2_3i;CVPR(k$+b2y= z$sj7z93vQ(%*g&Q_=Xr@W~{%v;efe9WZ=S}-7=o%9BeB6eHI=h!37z9Rhn^}?t*=y zk92nc`2Knw63$ho7^obrJI_4ZY*H>i!?+9@ui>>VcS1JX%msEEfCEY(VOIYboVlIVjO z*^doRb_tJHcZy^S20XpSa?WMgotSyEgz`65+=vm2ToN>3k zdq(?fRvMcz`T3I?Zh*EJ1GG-t0h)YX>+HHQE{t;22Q}<^4DB?n!NYiPvg+VCcc%EE zt@`5(=f&Lor;N}i?FQ5ftQYpX-BJ$!?!CEC`plJB{EG$8U`myU#m^6?PR>heXRctC z*o4`e*mVo`QY6Z#TRF%`G7AQ0`M9aC5q$cZ$>ANnWQ!5nHj!t~tN|MtBr)pz*cUuI zZzso%((;&pvpPsG&N4N%JHhgDzSh2}E{D+CGi}-zmuJUhbC+`2lx1v}c;0*%t`Wvu zG;{YI(VkT$op{sgQBsVG)ZTp#5@8OB(hw4vEj!xiFTS?*P`yT~UE#1kw z+g#N(6DO)x*~=X_zth9d^szV+yj!c{lgUlTpjAVAp0AsBf2cB6-fdkvOvzdals;N0 zItSq%=RVD7=g_3^hj^BcyxeUHp{Az34cDZTmHA|S!(#8CgC!iF-2~g*jweYE46jzb zP`*}u@P+Fe^rv(mTHZHA1g`bR8r~zg{per=e6AWYHsICufR(;4GHT0Gv#7f0AjZSzbl!mPn7SF|nuBZD5d6 zyny&PA#MY~M+a!(K{jUSClJlLhiu88o+^MBrEb;~_x`>50cQ%2K&*an?);q>pYZ#- zZKkHC#Om$KbF1>wzi(w`$pA#KgyKe`ah%B8S(vhXh-wR7xL!brShlR_^87GS73rKS zV)lE4DQ<3Cv(({PU*TlA$MKY!(z(k7mkiG!`j9wC5!b));Y)igy^{KpNW<)c-tckp z^vwq55uOlI*yhTg<=E~j81H=LR~%S_ieC_0J9qaI_e9$^RxJ)6=)RcA0d|jTxFtAs zZ4#`Uu1!9WcC^9rwXRli>uk_4)83ll^Vsps;@CnzIG(>yI$8$VwyJLg7c=$BN9+|L zTuY6aB2zhx%eYy09G(Tc1c!TA{+6-w zlDdXUz{R4~WL4&fd|7y)Y|J>8Gz@sf^K4RD9NIfqEK%ZDGlG z8NA5~B63p%_D%Nd-5{L6IGMGEglegAPH1Aw;w45I=nbSLXLh%tuFX{4UYT0&1CF=4 z7HL^dzf^0zn1fBurw^W;cKH$h`98jEemK6})1hkP;y^J>Q^*F+lZvR*QF#d84C z^n#)UF!X9vvJp<$uek#n$1NaZ=xYpTW7txaDs8T|I6ge~6 z)YrGnyrmO6OQKezNx*tB*EXxUx*Qs20bPu|fv7sR6~LHcnGpP)uS9mWY#|l&pK+NnR}&!YyWj z`LTMEy<Zs>z-?9Cr!EA%p?} zixDs!X@v6H$JBoN_%}oavITvcCy&`n)`JLy5$ukjNE%I|BsvW_0WQ3g&>g@w#C^=#u0dk& zzGkgGMb+}T= zSO=S7h|GEs1`zY6W`P#GL|61<7fbmKK|oX#=>vMj`EJ<6xcya9VO1O?`LE$thi62RxiwQLq{~5Q_$NeEf_`d^-A9RNAuKy2oAf#b&4&Z-9kN2 z&8M}(@^H3b=5Zh*R&+>!O`vRpLcsu+4yVSFO~V@9)GEUvqqwyHg9xan#QWmXeiOIoR&9Gj|`{h|Y@H1XD96vo(q zty;ulXYVJ7u_8T&+Q=rP*smhB3Q-L>WyoS=Hdb;F##$KBo|4zwCt)|T;EnX=EYKc5 z&$uDok}U>571A$&3zZfa-3j`} z3UAwEeRXJ6$~ra-ML8j~tm~LZZ}xPbhzz)CxPNE?xz_y+o*>J(SsF$l*m~NY{IM!U z$JKb|TE>+{+l)5sHJkh>JY|tp@AIi~c%dqk_(f80ZvTdT+lXBrO>1n2w2)2I+pIM& zdf6kzEK_kIMsI>%PHr1XC7cuIn4K-0$kr;OFYX2dri4OU@7>-3_7IMb-qboWHcVYV zdEZA3_{{{Fx(kftnoej(RUG|L@WNJ{b;4|!yXCo9kimK$9G*JV#j0xw>B}JSu3YVQ z6_s4|V7y(%E_MQ_7J33!-OPCfO~TpsJ;08X^N^HvA}rXNBGS$OVDnI92C;$XcJeR3 zAu5+{5jCI51m`vj(E}!*7#BlSPb}ZB9hq)wyR0{syZ_WiqQuwh1F`P$LSEL_D*FBQ zl6r1hHw-yV@_*cktyng#EcdDnUZnj(y+}(KUIW-qTdrJ%G!|1q)KooC+hj5tBaw$p z7u}iA%E~_2C0r2J(g$XbLHZ9NT+=X0oML7((w@lLUIoBGkeMc^j@^>m8e1oyM{T^O z$T8|BTNikHx%uD^bH{C7J3JXLe3h^1boX+y)0N`U{nceBOW1adw^9+JPN!Z|X z+=X_#%qm7n+Q72qiiYH!`dW}K+P1nCvm5%#m(>?0aOko0XPP4UySygsR@fAn93lXu ziT$j@_5u`Y5O#)Sp4yJk6PIt7@#{5Rd-mWzfdO&hD3gZpKy_P2rLRk{<0<5Qy^;$( z{?TerOG`)tMBqyD7_dC?G+GZNid)GM|6^82W0HlQ2{Hi^|$^Uw9KLd5_Dol z7A@W&vtH4KRZ*=x-hH-D$#_~hwC3!RR;AJ_oTp9mms|oNrt_DTA;kn~2IP%;a=Scx+ zwoOKOWIqD>`HO{xP^?3*NS9w*JMP%hj6Xs7K!iuC93ci zMv)bPL4Jh^Zh8<{f_;N@`1B33apL!}^T-#0^xM074YlpLt0ouI!Sl<8RXNvC$*cqA zKBREba&JHW6H##yY5198*QptT3I>q_>pP_} zL5?XfNc!B}Y?j~@nyb~C>HhuP9V!laKVNarwJ?HELae*E(5csF6KNE!2V zQt%CI>B5c_Qsw$vamtciqVPC@HRlYLhc1)%W8{h`IA-4ycDvQpl!FeacgnZQ-ch3|NhF9*{RC9 z9*0|d9gkeI%zNZW{!#-^N2q2|ry(#9>0Rp9jXzovp3Kaq5zVpfesNIrijim+)Fwct zq<=%~z-)m$1$M1B;N=%bEeof|TBp|O5(O$)If6+-49nEEAV^)cvNt%OvYYI_rpD-Q zRmL!VoBHmqEvH=+@8hE`l`|dBUOsy-nN*WHz@5x6oz8zZe1@}ssG@iJjFxve(+)=1 zus*V-CF{5%GXO3hj<&MPnK1^m)s#-Q3U(wLTT!8Y7>aw0-#m^v1kpehZ}A;ijt@@J z;6yIq>7Vr;2}&G9-qi`5XF=))b?oZredixce~R1mbLUYXw_n?;PZ$wL}i?su*mUC%IB*-O9qU9tFu=t$BC5_ zSZR34QsZz)sxKDWrwFHBL|U*FPmo}F@IJN0AZG|Ln`w`qt~gTSXuAIHu+jnlqb8O7w;#-7D(O4A=sA0;6%%krz0G=rW8_Mz;FwfnG%j2kSlg$d_#B zBt;94dd^ERL#-IYZZIUY0NNAgZB-cRB021qUHzq$T_iuN9^R>_bzlXz&Lg_5_tPi6 zAlgK^&+=Jjy{To-nTQmkCB{3`KAaG|*FWeEclL4bzBIZW`szY=Nd=}9wx`EQyatn5 zm^zTs#70WgC~sj7ZVp5k`Gv`@w1#D1S6X1C7G)I~SD)P8yd0f=!;lE0$g}4fl~K(M z1pa4Bs=$<&uv}W}AO46$KT+Ptc*-!C^fua5wxOW=bGUq6dU^5QqpgIBzPgg>uuAT7 zL9bCIQ?Ikn)Eq10`G#rxW+|lF?(ac>e~r!mv0%)2Q9 zFzv+sb}tra{)CVNxpE@Y6K29;-LWx%l-+Gz8?A1eZ`64Pv4VyHZ2a>+%AiZN5Gy76 z5ehCE!)ykqv^sN`M-AEA(^{xo&Gv%woGOVdu=g7xrlLf}yKiUD0!;F$S~?8~A?n$> zuJC&KbG;Q~3zKR_!ymm0r0dDsq3K8D0G!fzCkfYrMb;4kq1Q8bThLf)qGR3j)7WMo zrTRVtPxO{RSA8`V=Y9h_Tbuq0TL?X$<$AIYU83h45wLrCVk;QQNk9+Yuf?p{Hwl7i{=dHw~Eb*8X^X%QZjNJztx8 zEeP?Iy+{(5lu(WilNy`6Av;iUWIlUGtV`ciI9jdYaT~uRv@z1BMDO0^0!A_!TQtFy zOD`S2`^1ry(72p7?^<(Sar5w?T_Jurcmi=H5-r*$%~wpRTbmD!zEs}<(S%<`PGEX7 z4vxhk<0cOU7(cjy$f0kB^X@PD4TGsoRgtX9TsL=;A^9jiTyR`~+%jRJb9St7Z5!vH zO|<`-5&0p?Fi%#`fGRyiGUhL}pc9ApgL>(pjCUV=O^e3J^Vt|EB8R*W+zMd@mi;t? zEI*F2<^8m9K11Ok@FCJUJGU^%L{e%-muo0I;c^wREPP2h0c+y61^Nck zVAHaFvf0rh&fOoFTqCBx+#}yhz7I6Ahpm}eW|Mf~?I?U~gW1{Fx09v%{({UUH?N$P zbk`_Oy@4G^w`w3i(TpmX-NsHT5p5r#%D&1Q7$!JD){Q3px6LfCQHu%2S3NG!9tToX zJBSOiXO?aB&>Nq+a6_^RhTFH-A}&SJrmG)%j%Ulqo`m*-qa5~DvSl7=(yNyxJ5Jf! zSwh)K(mnwZ7?ymR;v{9ST_~riEG~+_^=uX!)={5%(6cP>d}h~(>Naa ziSt>g<9$St=9A|W%2O`So^6z3OHUUAT|xl~SVamD>;!t)+XhFR87)^k!oDG(b4ygE zu3;M#e}VPX@P2;=OvlD12;nLwUsYWxv-!XLTzo~12alPz>VOgqo70{O+ zweP{>x8zmGRFj&;_hd}i zw3B0Boub=Bs*hV4zWY9bdvnpPLgPaz;TiQHhX6DE`kvZ7ul*!NbddAR#lu%7iAlqllh+8@!Y z6ZTbf4>W$>@LPd&iD)Za&oc+<-k@}BK7i)X;wYvtbAfCubgz>KZ7sVEf+HLN<6HZB zN<>Em)94jNkN)||ETfrO>z=U5Nmq7?OQ)f&yMY*IU;g0n+%e40f0;*!E@Vy@KPD?d z5Bz|plh9evSkPCVkLLy?vUVFcy-`#CLR?D<@a(9IE*+Qm7|*!R$e+m81Gi7pn&?|6 zF2h9qs&v=jCwS)Jy-gELlQVY;5RvClmDonYEDf_m{98qdg-efQ4@7J5;L-BSQ!LpP z&w$UdPu!q@vvJ{*L#I^sBsle!z?_6P{<#CX3)9b%KL&N;-|lihh5{LjKX*`M3By}~ zi|T8k6ws-ab+}7pE3h+u$&;yw)^_WkCZk3=^O5op(@8SeC&K2r<4vMl%5w32WvqwX z+vUYU3fvHy-?c0Ln-QeX^{_j;0n*KP8_$O8*$J$DWJ|z{x(TNGWws6*0oHLPjCu4; zwrt&n~IP6CR9qseEx)7v;h3F;GL=^@mSu+jNH8omn{(&mA%Yd`LU6L_F;#U@!IYY~?vD&G)4kJ6}97s_Bx0=8*;Z=ys2DQWlwYaAVkRmN?n zE{ne*UKIW>bc+tVJR$BjtQd>e!C6FI(0k44Sv3 zT{vWQ;fKI3$7KH>uE;!omHPU&v+e#}ZUuX`N;ybhJkjvF6v$mYt#aegnu3exwGKQf zy>xQTZK;P+chua~oI87pi}(A7``&n(zw4J9$JhLLTkhIJDUFkNG*T6g2%S^6Y}>ti zCpR(qg|qY7IOiP>2M_LFrCC{Zch{QxfDPiuM#Xre#KWuwU!_gg(|{4-E{SivlGCz; zbqwS7IBS!WwQ5ipLT3N^5c&4mtJnUv455QoP^r`<>C5_^&aQ49wp@` zd22k#vCzTqGcG!LJk0gwaM3xVb)naf!Qvrw_@h|}%RQT4cbYwG)_y5Due&F3deg7k zpMP+ZSDF5)wkN(p<5AACgw6PUL*S~TzR4u6mf&_^rb}&{v2dsSZyOOV$(p2(q?~KJbbRmJaTn;-sLR5x9S*$Zc$G(>_Jl``Y6nXYdK%i-YZLPRhu;53?5-Es|n zW81+7<>obK8@2{qJPQwI=BKvGEzVZ%DXRP59MatLIcCrQfVBS?=F5MDw+k^q z(MD?WaEk}k)fNKjm-gIH;cVhO@fMfSkV%Y(i#@Wy$_R@#LQC-32`WEK8;)3US_}drIC#lE zN+(X8wTGlI%Ma(Zq~iEh>3n)ZO;z>7Ny+XmGcADGC?9y0+nN+2(k+;fs8#jWS(Xq? zKEYZtnMD&=zb@UdvhXlHpOZhYo;vkiEevS}F>|4GFUT82S^*(<_^8bg!x;!joQGp; zh}zmW=S|Y^=?$4LF3>fwSMYrKN+%oD`zgG8!QrOhoxtV5MDC8&VC+c1R4mxkdKIfo zQ42KUZN;8P$7JvAF|)~?%6ao(G!-kHTWO1P}4Ez}+kOfKd^y+XL$ zGQ9m6VBa)^}o~4--mn7sJu7Rk?Jm*)^bQZUtxM zUa2dCOZyR2Pm&#+h@4Fbmnk+s+_mhmXnYK%$exM@^P+8=a9d!N>@6UBS|iV!d;}JN zXE*X>M3x|mH0TUkB|L(f96IZc76vKn<^H$!t}LplEQ_XF zk*N_>Ku`t;hM5(&auf z!{psQd2s155S!Ivo`<_P?i@Xh;3aj|#-m%vC$tmT5+24Kf5E_U8d=yE`!d-|Q7G$vtnj%~s1qsC-UT&g|;=D)|!Q$&i z*GvzOF!eF$WhQ}hy^Jm{1+}HNq9Xr<0EyN>NjRF7H59(Nz?xAzg5D{+)em@?p6P4Y zO)j8>8~0bt-!!9D&~Jfb)3umiC5U@u$E!mNjK{hATRmi+$K-_TVb;LM?oV6?Mh^a& z_-J)~o?3b?**|^B(lCP_`fDA$ab<&{I0f(Lc#9@ysV7`710_u(q?(QNM*O}@qe_4c!XhuFqq&@n674(z3mceT~dCx`ou zpReOZ7EoqPC0fx(8+u_l1u>Zq540UqLORv;R$3m39oC#8yrVQiL7a>8;mtY`$1~Afxnuh$@3ykC=wLI>g@VJ zyA(WPyHMNW1RI^`UU?vL5H)bnvZYSo%113tynUC!U*RQGr^&XML@_lijQ9?1F4b4m zk9JKEG-jCcTPkZG_q<6}*vB42DI?QB8QS4-1H)LPtqAQ`u4z+px1Y z99U)Of+~evgTe50gE^0$Y`}+;;&DGz60wb@8$y$pAyrhwRW?@p?D4vqp1F#vFzlW} zh9^`u+YeuEM#ru8+a1}Nj#0MF<&`ZhmhpV(Y2s{jTZ2}jLzMuSC~FEF#>oZQn6NXR z)`C8fEly2vO5o%e#Y8@RY52;7-JdtWohW}e`V-<*;eXO5|Bsl<^nNGJzQ{N-S(PUd=*3=qc(`Qz3WSxx+5Ii{e^P zYl4#ZqLR43=!r}16YLrJ(C0gh8H;|Hbd;M_p)*B(zj=pq^1@W&jV;{zPbam7o@Us* zD+p`_AeUKqp;#9L|1vK-yk5i1My~^dW4d2`lADU@FsZc)Tf&4zl=Vs?K^bL!0WS)= z_2mmP6QdFA#X84NpQ^z?HBjK*0XoXJ8>E|b^b3Mu&-=El7l<#+7z=Z0tV zYJ$jpv;7Z32*&&T9ekksQqxH2;5_E_vLr6&_RzVTUgjzx=e#vPdT(;_fC&*C+T>Eg zY~~!Tj7b`~`4I#Oe! zPr2Y>LT%<*9H+DE+zn#gl(>sE#dOu_p2O*k_WGjPsx!V>%Btj7@7L*FP@4!k*6;4_ z8h}PoOL`}hHv|@hbfc1tI=g)bVV;>IHx>H&=W6oJDU|)Fpv>B7uKw#D4?6l}d(I#F zQ~%I<`nA$q2M=b#*mU89n$)cz_iu3D^PcX6qoj$C_rWA3{LsANJ=B4 zL7qeH9%1==P1le1!Rq(8+(6IPhQ#Lowdy12F{q}-V90#!)}ZWwOLdS%N{szoCfxk_ zgDR>Xi#wYslDzlU=B>@@54c#XE0yGQ*YKme*;IX>DuG$(&(tW)LkG5vq6eR}NS z`c11xv2HGQzFmdYK;f)khn_F}#kif>kC(LSqM01v?% z65uTOEDeut1EdHAD50z~Xp6fcRM7n}l_61#|F>7~M&JO;vf4`!X*(@L(q$h5VZ5au z5aq^+Hc1qL?cJefAR%*{L5LEN1AP3#x_F=u?nit&bzQpTzizv9FQtb_dV8d>A;n8+ zppZt$?_wKwtXLo|0#Q<^S%+Q95%Mc1C8&Fl7 J^IMmP{|OzDFkJuu literal 579529 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ℑ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

-H5+u}=6*8(Wro@Jb& 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"I=ldwnBe=577vEX4LF_Xw*mg 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%0D~gNyX^a~94{ z?*!Pu@j2A{4&ZQf(w9N7JSe5GH$ zwt6H)+rM73aQb~@?ffgJ1$F5k556C{vg(cKuQ#4EtdOCJg??XGkHP6ujQ{wsL3Vvr z1KZbRp6xq=IFA2^ILF~#pr}$p>xh2C2j&%2ycS{w(4&(;HVVTCS|^PVXC~q|^Nq^k z#_~-P?52 zAQrm%Q3)e({D1CM8ii!Fw;!h8#0SXint#Bi>I)U4z3mE$Nm$!~1`T$kA!i zhTWgX0#4Ice435-+|ZRSEslETSDEK&^v=BB(}sPaEc@wZ)&{mp5>jcOtE15I!*W_w7zmYpr2_JQLNa7Oi z6E@4;#mHOc#Q3_*2Xg&OeBwr2@vk5v%+|XAM?57lS!_mUlT{fx!kCzk*KCh-{Y!qX zVQstr?fAj;b2t3oW&6v0Z#dRA4CE{-SI8B*~p6-?E3<3$!9G z$3blLMR7&)C86KdIhThci^wM+JCT|C!4pEGqj)!Cq8c6C;Lov+=OWvHWFZ?@XX z!55AUJrb(|{(d1JOtrR13u~U$4&hZZTPbFZ+=za1^CS~GxnO5_ zT1;x9CY~A#T4JW)V~ZhPTOz!;=t9@Cpbz$C7wlK|wd^b5Mr3E9A9WZVpSGlyq4QEQ zvaFuvyA)OAu_h_=LoR8I8HFWhc!r=2-gp~Ca2G<_0f8-AD79I73bMDl4Ynmj?J#x5 z5#{^q@-t#Ju&Kgs%#uD4#vVEWMM`4$sprO-Yo@eCvOxQOTdc6lyM?!Dp^QRo8pxt0 z?0xm7Z??d5zgT+Xjx^Oh$t}*=(LLI)Et2V?bpS85H>%k?t&tWwd1|JP!iXHN#?BHZ zymw#vzpkE3g&Tmc1OFLfJ&5}taoa_UQ_Wgaw<$O)Dft5;FvT3vj@80nX44({loR~S zJNOdn^J@m^e@#*5q1M3A)C)f5tQBMK`TNg`Jh+CccDwSa zhmesql>S)h9+o@i#$aK?JS~;C)En}J%!fe+vn>dfVbIX%H$W6{yS>lbLfKHZryf@2b`cGOn*TD%h!Tyji2)Rc8ud%7aI0Cxk(cMcsDw}8wx#Odk`MwSJQ9FU;yk8%jRaY?AHxZegwn`r}XAz5*)XUjaoKWSB`v)oc#y-Lhy zJ_VMO&oXveId!bDpEJzsuN88!vD!nW{q^Il(Qe{P>QoO1OlL7)T1{DrecP0~p*4BR zzqFBwN=uqo_skOnyuN1K@KjLV&?J@E* zJavEk+{i4tV`RdsYB6o*<0sSHo{>;)!R!b}&T#F?{t8QBR>7-e>xhlkgd;e^c7H=i zi_hd{3eBdQcr~agEk0t9)=b!q+{l&3u&+XHQQ|UzL(|_X%R-`0<&?j_*dXqv@Ij=c z{f37ABuLMnDOvR@R@*=1W(IAI%%?Zlg?%>1x;u2*elEY?DN_R?%r{3opLpN=&3z0(}=M)78 zYBHFTZDP9a`aWXlVMOrj>g4Q4f~r!|mf|~mFxt+z>L=k$$myJ~Y0;8bgeQRu?|1Ef zmsvF)X%^TKbCY?qn&W)#0x2!ic|?hVS$$zCFYtoo1&TKWJv4cRToc?2>_FVz24x?4 zIi{NYP`M9k7Pf%ab2bj9#g?`b6Uo)s_-hL$L_y%xw4f7rz*bL^-N@9$dzW?u2#|>x zKcmj$wj#Goei+#hsNDRQsYzs^ZshTTl5UCHg?DaJ{7a(7NQH@Mio=t|H(TmPlY-~a zXgDU?WQH75P+MC(kC13dF_ntvh)W6(MkHAncrI`Q;2qC~Z=cl8d2qd}6zAYiR6Tc& zJL&a@O@Wowh?ZnSO-0Fu>eK=&kMYhGse5l6;%EeRc%DrmANZa+)-RpR_rWY?aV527 z_7hCANk;p7#A<+u5JRYT9t;tPO@`Gn0YnPyOi`1b5cfPZA!rAqmXTW4b%I!VvIad$ zu$r-R0H&e4p+I<%#aV?9rN-U^i&ksd~r#m^Rr|8@C z1v6q|Ub)JXdi@}ntQm;g20q&Nd#%q*}QUHGU(URA-zqw)`$MHJ zimm?cFoWRyJ{ zkM8ITp9b{FhLnb?_R_}7X5nLnMkW?I)%pYbU683A6+XY;W#Y>Gu=z^LOCcque#Awg zfTPTszR3~5iYpK?6e#^ukqTN@ChJ7)JM7}4=%%1HFpR)5gI6m*k>W6{P9RFzp$MB5xXsm zr!P6B=TSQL#aLV&Nx3nOo4iShxcPwfIA1@{)pfBxwSOt3x(4*Cq~HIsWL%LU>H1rx zoyau?)b1Mi8bTvNd)|!e>(@)agcbI1Ma{W~`)wm-2&fLR3W|BF)boR#7WX79fNg-q zTQk%2BVbQct;wgB$+szkZSkMrVrHljdAz-~bL*Wx-?>qyx?;YFb3idUNDK9*P(!=l zjZFUDKWIM}5y`%SMn}}oeWTScE;cehQqO>d!ANP*K#ieG9RINDt8C^d^LI9nD@=xpI;(Zjc0k)S6GrSVN57Pty15}*G-~ocn2s}^K~SZ5ZESL<06RT28~N51)z=e1!_#WwK%k1up#WkD>1SO=|U&iE1n?ue~j2E$a1XMtdS%>p8r9>mJfUU12NTub~W`wSEPhIvU1IwBpUlM3=noz zWHO&ccUEQ5^U(1$>o zw(0voR#PZs=zx4$mjfH;HH2=>0=5&%nx2+BIr-&U>l@`n4@e3NvF(cB!0X<1vF zEbE?bJxuGVDX1P`8h!yY*){(`KG~+9s8ngn5INxZhF^W z*Vvi+$fYcJ7S%B19ZTsYT0Vq>%CKTWabI}=z~IeT1 zlwFKppllK9E_}1Z@ZOBAJt7glpZiIEnngFm3YhB9z|H{I-cY;+AEg@PzcblEJo6-i zXj)iKXSZsWwiR5=G%wsbRAQlN7~=z<89zU<)R6Je^_P%Ydt#MN&EykIF1t}`d8b8ibh*k}l~@&f+f9Ba^c&v) za^cwisf;xu$LHxt&(wX(^-4tXD+p(o?OJx!bD8JSwa+f999CI&OJ#?Os&1c3^)h#9 zQ@eY@6gMTkP{Dk%gJC~iZFT1RE6cIZ--;cO2Q9zn$JRf32JuM91E|MA*-huDcHo^eM7XZXIx|2OR8do2b zT-Nv9B_vHQDVe(rKpyRW$KsF9k*l7Yq!(mLd+A;rmhbV!n-XVbt&!>Z^}PjPdwzKMPTrn7=ZF7{^E|WW>Ry#)dmmhV`rGHe-<}p4uxOd zB6IA}IhJSyp<#J8G}lySkNdky8EWuWeu6 zT;KMq*XFjv<(7II_7xjBY(7<}WmJ4sSZefU?|kU~j*--r~uc+*dra1d`s42r5SG}O7QyX)&4FP9da zyxy!?aImDe>5?L$>fYqVV9zrBo>T4(PN_H2znJ)?r!LZI(w`I!%xkDbVl8UwJ0Auk ze9%22LEXiBihOepwZM1wyWW>-Q%G_>YsClJn@z!I-fM=MJj?Of7Z8!EvHR9v*z%=Q zvAVYE0_<}6X`$&(v1r%3L+|tV6ef3u9oWX%YI)A=W0=AE(W!Ump8hZx}8o z{uZG$B#$gR3QI?c&ygR%GzhB+e+@9qA$t*pC>TwK2}f^NdvWAeVLL1GxUSEy2p!F? zt*>mh&W)5Q%6#0)Jde!<6`Sm2A+#hSyKY?M?dN}9j><4LZllkcG}FDdglPJ$ec4*~ zxI(1gVYT{=acp`iB4ZZ9ai$0VR&nr<0L7o`R+OAVT_{%SXO7AKRymb?7a@*k{;gt$ zNCDxC#<)j+tJvoP_B>7lBmtjS{HbhI9+IG1kRL~-VUqTT5z`K>x@Hmt&{M00jO>&nR$5AQIWc?AXzkALT+FbqB)S>+f1?#6}U4SNBKqayd-6JzW)jsj zq-N3u9+JK{)zy81<)0id=_CJL_B&wB{}V5ye|vEGEhrXb0+#j2w&O2>)UH!hzdw1x zzg0f%FjVFreMbV)RxDVlVprKLi7ae^ehoG8Pc~XW@jb+X9(%HCodjqXUxEOvy#8OP z;$|iD3^@3u-A}K(?)ep8={=kiBXJAt@j;*ioeEzsD zkuUO=sjoxjnk&c$Gii@Y<-{G?gWt%s8o37XWZeH2D*o>~!T&G>`2X)G{|7`ivj5w9 zN3}G#E#U*h0&fUU74TNt0nHwhDBlqE$cp5dbXJWfc8UYa{^FxYSu zmo(e*tySPzAO96&jw5Vmo(SvF&b zWwt1Wci)Srj`#SCJJhUe1j0Xd)K$I&(%h96i8D1R9>0palV40+pU_SoWBrBE_da!T zgV`No&1@@TCzQ`OC=)SNAmgKui|iZ>Mr(AO-x=UrC*dV%HTf76i(nh=C3}X>)VOS! zK_B`fEmnw&z)m_g2&VT?JfwLF)-_r34E_kDlw`*}UD z=ibl#{9gXqZF5?m^;y^F`n<2}b6xMZ$WolCK&adqfAD$sxqzE|wd-L4*LH?QR{dzO zSW9bGX)E*kX#Jh9o*pyUZu>Ipkh|`klxNdtmiAL=xIOr9$5fnxTR8=y0rNkvaO=KXU zsjvvy$Cj=JO#^-6=G5~;3aQU{14o$TYRDeYp=bDE&c$B;EA&2Z{}7g#0ZkOLLa%AV zeRIFczIhPwAe*93*wSZow!!&u86sAM4mK<2t$Zqo<$*?VF#}p;9=T46AnpunG6MgA z6;rN@WtWoo(TQ%4LFD&6()B^HFAbTBwd$Hgp<*+M28{i~QrP0hY7Qw}@xhf?WJS5$ z811wW&P&zd8i1@=wm#^7-7~95BAPoE0|$pL-;7L=9FX-lx8Z5pO?3HMPQ5OiI&&4f zLSeAKs!5mnGcF1_6tvZ$eh^fNRIveru!zy(1u$#b{vWaLX#NItKtb}>9#|XRumC-r z>?PI*nFN(0Qq$h4e*O_~^B)D){lMx1Z!U!U9Sf)48Aesez)4@@)KVyWhoP`xj;b9t z%2X?rNGn=}J;^bFf$WNyuOa9qtySa}zv~O8`7gBH3D2gLA|JyB225Vau)d(jWEAuT zLx=SRCxyZ3g{w+R@8f<)jJ{+$`cO=+LW0N?_+$>?nefJ=F#ZN@8R4 z4>ZZ5Hv9tCbej&EjPFE-?gMs;s|4xPbpivDF|2UBFoVp7;O>~pu+HwYJ5Wm+Qv%vn-=y;EhzWt#FfSg zXs5O+*v18DHhDuKCp?D|?^X#s*od??lt|0L->l8W z1FS89SM219`(}^@$lzXO{{Rt`C|nH{*$;Q!z<+l6Yf}YW(wZWtfu*;T9I7mx)UpNC z68V8j=EEB9=$>nA3F8Roxe_<@r(*;6c~LYb(ig&%XtxouNP{+bKGx)ium;|6SHMtq zA;f3ZAkeD6#@fP?|2W*wRqdpsN={q{darC;$p+k-z!X*#H>A3c&Hu&{uPlPgW7k&6u-Z zX2dQ1Iq1NV(j;xUI$GvT8l!b|av~T~3b#4j4rX$mgCTLY91(p}9>Cq`fst z5A5-6wPZ;QCi*a&zL_PR;|KHKGhfm$to5#B5>F(dtzZySk#3AE!el|dQ__v8_|+_= zo4Rb+LtX9TOoT0o{>1{u)(dLyjzS^vt+q`YC;tlHW{;uwS!c23D#rTYPiQK&4%nA= zv=+A~Zx&uRBlv9MOd>pio$F*RhARe8iSPwH`_qU>@zGool^>4hRNT;nyN%S!hYG7D zhv_o+tVdp~UdFKGF&LgjWE`al)+`%#1JR{Zr{1~!-$RSz^e^X{^SI*=*EVVi54}nN z4t?4F`7a`#^QTyqZ?5Rpx^}pSA2qn6+BG{P%Ut{BB9|jc8~QC~Z}oW*_`Q5ZZu#0$ z=e~C={nA6vuj%ZFP}MK@j1ks-*>-nAb@X9p&yUGYX$e+J$qUAtKis_Im$1ESgu8N= zDpG7z!;3x^I3K>>$@j8N{&?4X>(<59sdn3w# zujhGa9GN*7b)>&Denzc`J^jc>dZDs`h0Ch%k*9n-RK9qA*|_9d<(7>3HpN==?myi7 z%^+QqljET>S#|n>8`-Aeshf>%GPbqpl^nc&^ZMxzo&k*QC6x&~P9EG5w`FtM{-(Bx zkygTJm#%#V5d0-9*}R*X|4muTx-#bI)P)f`(Qd_yx86?K9=Bz2$%;^~V<4PX`NFtO ze0vF&;n6duZ0lpm0^#=L9i~4RPfBmPuxz8^gQ6W}5v|`FsCG(`x+w*R^b+CJI zY;%0L31`4Ke)%!aSY@NHs|uf2SsrJJk88VA+dL*mNv-|G^a0oq^$w8jY}uaMb2-S@ zDhb%sQr=fqYxLfyHQg_y)M_fOQPyX85p~M1~Ga<459?_s_@8uu*gYgVOfPd8a4)5{jjKKKh)etg@2 zPnJMJymTr*-e@LrF&6A8Tu}V3VsAr1pm|dK&w*+QPP<#K{gkY}s3l{Xq7D6<Hx*WG%xw^v&PP8UQiT?|Mc^OhlD_(IYs$|nD9tFwP zc*ZQ*q@Jl$YQ(SAu}%IE^K&AL|7CB$mJ)OGm3-+AciXdHh7=Ivv$u5^adB3+c{?a$ zukP6%?W%h8MR;ZO@$~rclYMo4&=pU^S+(5&3l7d`1N~sClB?*wUu-3tw5}~?$rmQ0 zon1P{$au8no2Lg6eh>hR5mwnY7)S5_h$hb6KncBPnP4G( zC`?BE*dneh@+#{bF&}IB3LfogD4@qGMwO(6Ev_b~Ag{QRg>CrtpzcS&=XDk~71=`Y zsIVy{D&qIGLoxAQsJ)b((3b7x8REB&19iZYnM!@G4W}e)WNQDqf=+qVYhQqQS8Use zusm>t)d}|L?>vO)_o?80t?wK(YXZjUPS}R(;|Q;t@n|!9zzJaZld1x$EV5&uK0uO+ z)-Bb7&$?Z&mB7|Re~5O}X`XjDl>euK!BKcW!=1DnCk!H@-l78*jN@3PZ!KwC9EH}? zDa3IDQ>nWm?4<}3etIP~z{+QRe2?Bz99Z;UjQqb3l>dY0R8$pekU!IAqIK{9h7^9j z*#S=Y6^y#88!-UfnV(Ef@HeBu3!1_qg&dY_ipzR(bK>VeWgUjACKq=ieUv=#(d$@* z(t@2PMz8@P*TJ*LyEf@dm5mMISa-bvgd~r;uvuh3oy-G3Qx&xaY$jo#JPm6z8oKsq0_Lb?06CcrWsJPasRLP?DuT zwmQNLbCfM zv|W|HmJjgt*+Rd-Cr9q01*>0>;fEE2j~lNy46`rnT^+Ch?|jR+GYcDsy0GVf+DTA8 z!`E48_LI<~0Ik13)!ZbY7QR3)eHXFRjtd{$^5ey=MlavQWnam-REs9&n9dhTfh+0V zdb;M0Ha)D*pC76&yFYo9OmTzqQqil`(oYr*lPsQ3|3&M|#@T7fQ4Kp^Jed?_r8sL% zoA%*xn-lM}M;@uIEWUrF;_aNo!jg_7KRjLgQ+HaL)|-P`KSpe9IeA~~ANJvyAO(;# zEb@*enu+5w}?aQ#Q#=M<=YS`yVNYI$Ei zTgVcJX5;&K7TJInoDRyr4k^3??yYr@7O*oLq*lZ%$lqNYgEh}DI+lc&Kke-zXA=h? ztI^Vc90mk0Jdmd&>;hTUr7s6adK@}O0zrhfX(3atZ)67GWO6RS4ntd__~DSYQ2Tx= ziKy~2q4mj`{h2|;PWr%mL^Pc)dX7ZU`LW;7Yq|&9nJ|z8?1r{xcK6;SM)Nkw8r2I2 zvLzSMyPa!?6z~O&)aRdCR5hvD)p|$AhBkEG^r&xM?&f21Cg;{Wk0r^LX;cBKMn*JJ z8EwIDynH>D$W}4DDa?XaZe4x&lF5$7CF$zfT3yqV1B=d@d-IN*HPp1SeRtF6xr{nm za-+zfTKVp9%kuKp$(8Bq>Dpa&yZP$ZW~w+_)aURQ^`+XeRvh{I`BTRF(q;r#=@n;6 zdIcFJ-0{X9ss)lY4CXH$KXiLl)Lu(9AasBd1Hc3XvIkbGlAQyh|D>)fzhm-(F666x03USpR2-y4(); zhYgN(ANExCeVY+$S7nyHe1?%9}Adk7Ic5^=~x;ZEiOA8J8>GYGnjndgrO)cy!^yWl7c*DZI7E zx2ibrh<;TT6`o|}-Y7YK)dUPR=n0&b3@NnpPqFa%c~rE2F8v}}6z>N)?)Lg7OfXo4 z;Zo#hFy{t7N~l1-S8x%6-fyOZ&%_e|EGOWztC2&TNe<*EEVK6FBmdQNyo=wa7xNcs zRi1LbU&_~L6?8e&x35*nzMk^gtUhdp>9o^x>#CMV=g|8LJ1C-U&Av#;npgUY#yTHT z1oK`Wcv{|et(uXmQDUKYr+?MfJQrqa$Z;d?(Ui?6ti!(FdA@|xL7!sm^2Xis+C*QE zVyU0WTv^GQ{VpM4hwa6>Dz?t2lX(wq5?oDVii=k_m$feZ%4A_pY;Lws_cLLy*dhyP zKDgojQzYm4Ef5ifpURvw?reugVB~{(M#Q=<;@QmALg`G7&+(^JgI^9hrkrM1kO6s$ zj4U2E>=ff-c#i5i-n(lKb6Bli%ik^LH3u=i*dBel%XfW;eX9NuyOlaQ^6bGmpT9_% za~SfAjMxivueBJP#(ulr8rNDE8(2_wKjrMiWyLyK>)RKUD;ha+dlo$6eER{b>6ZwI z;}XanjJ-}Ik)!d20>ymJc!_>f`duC?$VB6@ATRhVTXMEUb?y82fwu$Z#_q^@EG&t0 zUDYtoL<%v_dB^u8Y0MxjY^V$5@WNH`VXf|cO9(_?%%fg81ruIx7~V6rYy12 zaj2OakaYRYlT~*&t@^$>eO_8+<52<&!hM@HHQugx7c}Y|Pj=lnb%KRrP;ziVv+LzJ zovjryyQ|(Eu8RKp^~;fszl0#*ESqj&P$~0ylK2&o=qyqbL6AAu-LCU8X<#e2;mp>?I2yU3dz@h)6tDIHzI?OPTH8}ioL0R`L~qL z*!5=Q#zF2toA;2yy#pyhrBtC=zf!%-;2jQu^1L7*sOeUGfOe?7@@YmIA+)aj%#xij zTR`RQfDDZ1kV2*PP|ZJ^+7=2I~2`Trq#@B=oIJTNgq%L@GAA!eiz zQJCnxz(40PWOFTT;WTK8Pupc=Hl+G(-?PyA1mRgY#xZ)+gzTqFEnIshk!`p#Bm}op z!eUM{@n8WqXf=FDbfjwK4-gwg2Cz*<32MoL3@&lVAfXSPjkMGXX~gN* zXlKViWAZL+;XV!@hegsRIP|5 zx1=?bW!uci)Thk@q2hQrW;i-rMAv;8hyAo#)sfxInTWQuGrZu0vJH;dyEewMvb+<{sKF2N+|g}iM*go#%c@8@f|p)@9oi7(-&+h_}eiT;*2x}Vtsy} zQ1NDRKAefz2e?a;I^<9?DBnw#N5JuH6;wuJ6&%v)XQX@MEwtm^bkNa|oI!p6S~KzI zB3H#x0y(+So+Vx(DFn;hK9I7^n& z#-p8PNwtSm`EdNXFNaBNN^zm{f(ZY+@Y#K5#(LfQ%O(2X^Vrf|8YNV*#R4c3)8oAW zp^SdI)PANp%#JTIkn^6>nnuO%lL%Q<2^=@*IMj3%d6Zgx_fMym{|^or|4xYVzoF0b z(+D^oIawP4$0Oi)1RRfm;}LK?0*?Rx0*-+_Py+!qysKg#BF-4)QN!tK#s+Yh@Pb`3 zhhC)aANj~E^;ONMP%j=bzRvWanRv?TKK*$X?@jtfy|DEZ_eM|L{!Hp4`YNy}rq95) z@xFAOXXvitZ(~o$-(~zvDg1T0qWVs+>Wr|q={8gJ)Am2^7e^)p-?iD2lT&SXEE&qR z_An-t=FTnnqI;u>adCaYLB@;vo};!pYL{!h<0kBTyfVS|?Ajen-Q=zJ?Q_5KMSHyc zK??~EG_Lv=I_XMOgh>S?6{xYNBzHAxNoYc)pDI??{V1HqvaT8M7~eHh{aDyI%jqsk zj*Skc9;(;d&$noNwO@k0i=RWN=K7ZzZ)iH&utHFZ6dbH~RrCDh%q-rSd`)h=dXnPp zrYCA?o2<4KczY)N6y0gLdB)YSJt0R4`(S*Rpi86BVdKRD;UUMpN}+EJ99C;ayM%m8 zb;=v}YVFGA_Z!V_CYo=a_`UX8HWGaJ{PdFX`Qy(qe^Nf+L!xnL?h2o1mf6A~1tol7 zul~;__nrR+iK&lS0#mxwqzjR2p)*iXYC#rmBO)N+@dI#vuyhhc3SmtIx4jJxAm>rV zKfcFA-^P>gb@BB`-cNsvG5$Rp{SP$_O1}we@w6$;6#0TEXeYQP_=?__vhmbV2ymX} zQDt8a1@(QRkULN)&Dwti?LsahcOkRBn$o%bzvy`UOG^CDnfiafzrTNEsy^QkzZ|~= zlA&{;{401>)x{x&GY}Hh*7+ZTknW-lJ_C=4FC^DD4=H#dBK4B9c(_H@-&zT6s?ioI zSe%m&B3roip)W*#%INa-tOR4uYkJ=zh6nljj4K(rx7Oc)_=XXFP<56x|AaNEqAwey z5DTb7wIk8NNOUj~9gIW=BhkS~bTASfj6?_jlhMH_fHE_%!}{m3alNAV`h2XI9mJiQ zrRP@ZPAn`eG0~|IX}sTD(&+55zBMj8!N+5XxWcMHHGbvcBJAZCwdr*Cg2vfigBm>H zt~^Rp<9zbPWt zPZLVch8FC;vb+THM-YY2%k{IYTWr*8gEbN(;e zpWgMjz;{ySAD{Zp&bs*Y)MJIu?>`nj@hb1XJylD;xO|f1hm~H_?*<2~DGN8>k*v0J z>-OloE906MQ16xXho!D7Abhmnd7h4+ZX2f>{F=X*e>f$x+M(k`bmF4qe5<9_zeMe@ z-}Au7w!iJZ?=7K?xPyo?nZT&sA@LU4H?uD0sxfAl>MLWnXUy*KjU>nO;~Q;E=kOZ#<5E{bTszPX(XEWaVx5 zs_;El4$(TBysM%Q#jfhE`sEeV7>dg7kgr)HZ;XQVaxbG&OS%OZ4@(p>q>x};gi18` z4k^4ZjfLkCREWrytiW(++xTWG+-nEe`9j{(y>6c$W#5n^__9}3dRgm#;#%gSGZ|^? zzr~Ghso3>3XYYdTwX2hryH$4n&@xuR8GYf2W&~Z-X%d|B^4Ib@IN8==p?bQ`r4vW* zRWDz)sDKfoBMJPRXlL`_*0C&&>_LR(?x)>fSNllac=^@pgo!mSn-fZ1^mjzNZC%;9 z&Sq=>g|JM=Gt{;IU@U^&NC-8H@|vURJ4r~%_fU}R-6Cwwjy&eWZYSpn=ZF)Nrf3zZ z(=N|DyLa!Kd08I8`;Uy;H%f6c3Q`nS49&D8Kz zv!x}iHx5xJ1H@#%vBsIpsZ6R~&A%`^~JUnBp z>572yG$m7&kkmakiH8iRkK5@_k^8gBxEtKsS;=kW z+93s7Uax$P@my%p*JL?fr-wWvF7T0onaSa3Aay_%M8=(OS1CFA=c`dUhJje?J`Xjt zehFC4&S!yLg!X%&fY_}~#0cOVsCgxF?J?SSRRZnIN?>oh@ma*=TIpkS$G<+%`eXF} zV$%LRfImL+zktJKL_xd~I9GCdum{34 zv*pb!e5{}rI0#Y+h$DinW$Vz2lsAaL{|JN`z5Q}d6DA2Wfoh@(#~Wyq5sf^EvKn37 zS%MwZhNL1pQ(858gcDq`H@G?H>wUM?XU0}UEz94S_p!TMf6t8Bz0VA!E2f3D7pq)- zsV`gRM}7Jkz-58Ny5MQ*Tb*A@cwOIio<4Zo-B~CJ+cXwAwdY=9&%E@6`HAzr`M$e^ zR8?BNZS!RQ@^3p{P0SQjy=WM`erBi6Ds~~KOx7J?N@^sC-$Pt2g-s-S|l(Sdf-*n>|mp@d+wvh)mgNwS1WP>D6; z)G_rEM+5U}U)OY}uG*W&<5uOryjk|)tn>jx@BZ_JJ|QboD&tyQ$L2KzkDdG?P*=%{^(5eosQstgZngpXUrSExhzbn;+-Wk-BOWT> z+>FBdSCt;B5s1F3t7J^xw9Rts&cvmsZ7!vh9be`>c+*n%Wf$u6K3jiKwQr9swEU%< zv#_E&uUQVv4HqUWAp2R<&H;r(=svqCVD@Vys?F5;z0DRxE$?n^c*D9BRgIZS;aR+X&Z3J#Z4Y0^G|pXwme#S3Ymdu{Oe<#AI|+zHfKgY;Yfj$=EJZNj7A`#am6VC&iD-JvUywo#`CB_iQ@VmRZMefk*h?nFk7Wxj!~p<`2Y!dikBrWd-~R-Yp)5*s zm;Wbw!ChhuI-MohO_y#lE1}30e1STm#_z7Zyj=7n9DyBg!sKc~I+=O;Jb79IfJNJM zJybI}+yX4ku<7f>(l{l5?lBNK#DWo-EpHFGSmqCH%qE|p7^@k^ zC@S&v?-hANvr8mJKJ5@!<~;^I6hmsVxO4wjmG(zweT32O|071be@;(~!eKQ~wg~lD zCCs|3#h;Mrxd)TlRng4BOU4?>zN??)R2?(cNL$Z6M=t52@aOD(Q&r`J)y$QTeH1p+ zUj1deS3?quxFP=fY~?5+7Q#M7&BXT*_vQ+z!IYi_JblR`PLRn&hW5755_QpbR?u>M zgTVFTO7v1kQ~SXD3TmN~zT{wPXS_ZZ=%~Iov>|+}hf?Sj@e_x==iJG1HgT0t0Se%v zp3xH z2OTfy;;~r`492-we@g}bhL7VM2Z);cm#-W#d~xCF@f8i`hcAccF!ch8gsZz1>TM6^ zw_I5ETJ3YhBXl9lPlIvRCfKQxx5xgL)nfJQ4ztwsD)v8I@lJW>>!ukSph=x6>yr9? zJB0<7W}j`_@|RRisc94P?qOLM?DqzAOAr3;RhsC4oK>=h_`Jr0~Gw;y^JB zHOh@moOi*DH%i)qu)g%8a`HVjlqW2q=ahgRf-5rC{3Y4-r|2Xi#vI4OO{Xz8vyZ6Cw)Rg2VB8bh^w8tyh8? zhdaXa+PJbexsfig(wCd*cS9|2a!~Qav{d*)NgYPa3r03G2RZlI#QkT$5T3-d>0*8! zP1;SCK-<2nwVaA}u$pSToPl`!CJcVxu3pYG|Mk3HJT>()WKyaakef>Wa?}&}FzoTf zX7PC-ZeU6lQOVTaa1}rB$&CLUIl9 z@P4YS{{sGGE^iP|464*8-*^Dwxl$;YNB(BCMG^SUzkn&77^bSIZsTV;?f#X8I)_Ef zyF!MeeamFq(9aeOxZxDdX(k!Jsvhj42Xe(Hkta;@dfr6)sj8%T3ML+Von%}U_D)4x z9dS!wpiV8}5?0L@gNSgbELjSdFeH58nm=I!4*2oZQuIyiBy#pMU}krwoh@NYO<7a1 zuG$K)`aMo#jYo^e{n^?&P}z&TIW^ztC1sE!gIeQGKJBCb6}0b!NeEYbW;r4&6hf^# zET+r!&n_f~E{03hxC>{d{CUn)XP{*+5_rak))mnpeRlvY*zzl710@HLKQuu6SG8*kXC3H&Fk@VB$ z>U>00qaa&}zA5ck0}>9)`HJL2qYbiWVlbhYb0+Fw%pCt>uFOTE?Qs3CROiO4;Uf$o zLfquQ)drA=2wm}Vu<%?Q1xv#uix4uE6<%{X2$&?u8$KkfP_r!@18#lIVQzi)@7(&Z z_!i24H?!q1wKWw2KHGpa**&D-OqD+hL4K0`guX47>B305z|7MSC8op!%r%He0xK7x zu1vxnou1MOzO#)2%K&_dNIWebO6j9Z1R3PJ*vnj5rRQ7iQkHa+8Lre%ma}@U!o1M} zcRHgj9yie1G%DFMENUaQpxvhtSNtb}W6)Qb1cRCbj?$i-ko>DE!CY8Qy~S>)?SQQM_S=MO{7~NE(tbN;~^|bg_(?8szJVLWy!oJo*`F( z>r?YoB+e0YkbwtHN^NWqa@eAZE6d4ukFbFgxWS_ggny7FRsnCAlOUqsH^gsK?}7RN z>;ip^J3fW_(w|*>AY65glpDbfjup-e;r6X9fW@hY66*rALl9V;+ORnF`1WMx>}BS{ zTGHB5{sUTnhIoRAp7CPTXi|+s^nqS@WQqF&UL$?ixLas)Lvk|O5wAo2eYyu|D9o^=d$J1tTOn=f$JRHn=!PH5aXgW-&?Xl*V_Hu}>QNcs_(!x=v2 z59pi7Ca6N0xl*54_4!i{XE2vWpkQ{1Z$1PGV7b<&pt7IVzWBE4&yf1}oGB#?X}ZVi zbD?MH6Oo*m;9BSSw~AcBDG)qu;#$2S8E-PWm?kwehS&B_M#)>qc{iwKbHP9S{%goR z56J>ET-jdiL_}kU!s$F#2~C+1Y9>6^R_vi7N!PH{&6j<6>2~s%{bs?Vxabmbf%Z9z z`7&F6?igw0rOo?BCwugpcAOR+61o;cQ-Z+PHhxuc$3@ivX5*`hKYBg98g~1pU90PW*@Z?OfzMb$xNm|%*ZBp z%N6n+mET3~Z(Tp)T8T&0quwSprhF-SLf^xg?J{H9~x3;9=js2?RJc+?S7$ZFwwx4Gg}qcc7}%Xp2HX}m$A^Dy?fD@-0mRSby|Vu2a9X&+ z*0h-^NstD26SKbg{{X(!v=9}Ku0lj1jW30)UT{ubJv3sCRuof^jMnC$9gBwkId!e6 z-gH4w0B(x}EzLE*({bi&=_O;+V|>n}_sP49eHLEiyRXwTwaltLnH{a}q2-O--?h;3#(Q}4lEu13_Y z`PDrqOa0c?+C~{xKRP-mt>-&G`%v&XiXzG3jv=X%<|6uxTow3!o|=#wQrupPTPL)C z`gA5yQr&C6qh>>l>amA4S<05Cb~BfM4&NcwdRaa8eZl;YQQcsj=L;xa-Dc8PhuhUudLLh(2esPnN;fe3(0|hH{QBOUYYM!y(P0(e9}jdAlH{2zsb%v4;;D6Q92pJfl~>(qA9#be%O@vD*SB>?m;;1!#K#Lcq>Z!YKAI3NTS6 zJGip5Q~f9rXkSp{Y#9NtWZ-U7LL2Pes-z`{oEQZ7(CY!(*)BP4{}P ziFjXo^2zKihCD8QPge}MKcf~@5C(SP+frbg)+(clC&2z|QK(YH>bu^k2J;mmgpG7h zgsLjcG=8s&oB;nGyd|!N-IZJ5ma7ji9gz*fNGq3X4TH{?9Wbr~G(g?5izQ=N0&9+R zEShhG^~}aH2FV9hWu2#w`VqMX08&xNd_o=JnnYpZsK$9{Co6!KjvS^)cNy?{i8!-v zKZpm>i?)A_2M34a!E`Mcxn;8tMl~YyoY8byz>qZl`ad zOO3djJml+7p##BuYiuggIvuhcL_D**2O^3#zT;X}-@1fhsELZcPfH(0nnk}MO}O<+ z!Q);gy)P7!5w!$Na|2kA6*^Hzzy%>EwCls9zM>$YDZEDAg30IRLPT3_^{dL-EI4kY z;!57bazrriHms1E)2>2;VTg{3LQIDfg>MQwz#fk14P$i11{p_u5dipke+{($BUysT z_DdE!7}2E*Q@|`{x=8u7(p=bZVtj;##7(vaIw#!^*r9!7@7~KK3_I4PE#QV5QVxWTR~3 z@YW{NMeEy(V5TWW2_!6{x#$tlC_?MuTDI(>Jt=>lHV1PscP5a@T<--9w1>RNAq6Vh zs)7n=G`Sut8ztlO)NKC(&^b~I{reuo6%s_lR8>NM$D3!#2{4GmO_C{qH*1T}q@^~$ zN4wo2e5u+wy1fESn|i;ExL#`yhh81&d(c z=^!#D7@03jo<41)znJ3U}|QCA-Noh)Rnk|e$QU?d)`5{9Y*h( z&L$t@RtOKn?@`4pu<(lEB#I-xIW-k-;5PDW+M%lMC&n$(Mx%fuU*V*Mc9|E>XKBKe zQ3W)Pd?}huBjZeFS%dLM<{gA#JVxc2`V@d#dM1&Gc%uZK*2CPL`na+Wxrr`Wm;{cj zDTqwMRFYfi#qW{sBe1nrF+63f&^NUmuw0HTE=6S=&&UB<54hLGgA({rS1q{`+G!{- zdG7gFy|AkccvnZvXUbPQf$4NsF|BCgm0)XyI5^A47_O`VHh`6?rgJa;nII-QkeM#P(SgM)ggS`?y-zUi6-k24D#&3EN^K<%(TS>(HC z!F1V2&wTAtx^$Ca_XO}}U1E65m0XAfk(Of+3Fc~(F(Il7@F@5C%|*Jo5?F5!7!T3m zN&A^2Sr|(sq&C%(Nka-My4%>ls?+JB9k-40!jZnUG8)8z=E7$X2QKtmFNdhG>@>(! z)T2Z&IxtnD;lMzo+HPo_i8J`7C)%y?D)0#`CzgEA1&evv+$?|3{y>uwe~m1R#$zoB z?sTyZ1KhJ!yl(n)^!Z0vcoH_TDrgx~UQCw_Sb${LL!W^+#}9S_;2!42bm~LfDSJ$D zFyabmOI~3NcRSAv{6+V!kC>>|eGia&3PBr#O~z`irM?Dd<^&6%V|-`V_3Hnmk=g{} z(+eT!+i?GCOl)TC2q`@@NIK9#f9?ld9z znN54J_Ul6m1{eNiea&CNoWdQ7y=1wtkk9HKY_^qz3eFbCnoJT#9Z`?C^r9v)KF)7Z zW!9mrvvOKS=e5}EfaB^P>O-#^7cKuG?D;+}wRHCA0;l;cw7{GO?Zo&Nrbgg9%^$Lk zT4_=p3Ur@cCXoL{GGyT41Kyj?c(K(c-40^-LEt!#WvSW%sF`Z(&C-| z1urkAPTiB)Y1Vj>$JVRKbno#y1|q-?!#gxuQPhP=EE(EE3O8Qh9^?YW;nw@jRr*5; zg%7|Fyf1ASQYbniG$cdPXr$6UOnOC@A%^F@!{ zlQ2!6e>B$i7?=3qePU9=O1`Z@+2oaaZKki#ar>bcTyUWI%?e<4rV-8x3S((6Q^x)Sr1TGpa6y;Xg&1E4F!e@j&V z=kdvigwg-$5=OtLHGViZ!n%7OoADR)>Zgu2nnbb0QF-&xPIe%TZ8E~Tt4mHO9!``J zENozz-c%eH=t$tEDGA)iMaF<2Dp0q6681W);Ur> zr8IXvfY(!ARN|(`ENoz1cm!3f13P)H|3_p1kl08A$w&jqNCU}81Ib7O$^T3Pi7*IP zwjsBG6*eeUk9AY{ zYoM3(5Hd_Aax(WjD%uvaUD8Z0BKMy~HlJpl!&CF8>8oK^JK~NxluO?;<%Y*(3jXH9H|e z`jsjl1AZ~d^8%kH-G)v^x=R_splo6`nJJOORpGr0XVChiL1ecEB(*FzvkKodO z7?+L+F^mxIj1caO*--u`^u#fuSAPZ_Jrxqk604f$p5Jvd3A%UBM;s&J(?2+^XWtH&45y zbk#a+|2<}tiGk3y$T%ZZ!djZ|wR&kFWi;#1bqBri75PRLg&#|71JupS$1YxFHDS{l zLtVYSKGC_8NX3p?;4@cPdXcZqiN!0^A zblZV19rQ9N*xutn4QpIjKcrByJDi3+etl#};hJv0oLSMMN=}_92~BGMY#Ep&H;b||j2C~w&f9*W6C!be1B{R1Fek^Uw{NhPlUBaSmSK;{)#O>Jz z!KE(C)#x)awoO%?9#UjixX-z;&aEP!*ZJvoJI}@LbnN5>N@pb^8&2AUCy+$RhvaI`!mH{<%;hpQ(t?>@CJL z{U_pg+Rrp~o&&lX6fAzr|pLo7)6K>m-cebbHmqvfV%K<-h#G=uk;GGzVyhBHfB`jC#-VWYdsB<6~$s6H{-*piR*4H3rj4 zf)|+3%JGFpjC%q-{uV_l4^X9wT(mZhLk35sP-mmX)OXNR%`p(D;vt%_Mjvb5 zfW85{0WOpaorc9tcSAeg&W=U{EXY@dz=~ov^iOi*oA^{CZuCoQeTvVrFK~|vBNCfm zA&!E^#ieKP?JPC{FxiF@~i%?itbZvwRTcHPw?PM-;q6yu@41_Uc}u#$A&oP2-iQjdFZ3D*#ik$?Bg`yr6W>utx-|v zl$f|j;$Cu9VkHgF##95dEX}*;EcCIvFe&)s==K*QYV~4%Yyx1hV0rf6G0y ziX@`BV=;6k>GI9U6v+trGP-2>Ij)`Q!-sB$0%+8pBdRx-qf{lLh%sNjC=0 zoh+oA3h=9{?rI+gI-OhTU!Yp+P;V)na1;uOZ?$dOIQdt7q1j{Teb!lQxr#AtI!QE@ zS_kY)J6em|lQ#>mn-P3AaR#cP6L+qYwHU4#KqbN#fbLEsBE?5@NmPD#m;ym_43w8? zLkXJb(y3GL-2T0@PEp!VHlTeBEK8e+ z<%FQJ>u!KRwrGxqGPNNS0 z984vBIHJt|{F)(pArZwa`u zeIhp_={z|P;GKUVYfP5@r6GlBx!RBX-)Jt7WTfJ|g(a_esjm!Q*Z$(sgkAO@B@pFJ z7RHp~7QSv=C3fyXXZ``^&o{rjuU}nj9qYJP&zU)gf*)mme5zAaR8qVo zrXWYd+|Ev+)ylsUO5t7iN^H?C;O7usLt&jiX5xuRb1iWm@$ew*sj9l7Fci4X8gnQF z5`?s$Eu~3+M!_p-wF{xPlsZlmxG>STu&nc~(e95YDTE_NN!^ADpAP#6DzT}EdRBA+ z*rINUz(Hh`GNB`0zjf1kshqF+fK?N!k?hBO*2fwkzT4fO>Rz~fehFeYS*%; zNUJmQ15ky0@_$R09g-jpyU^eHC)V{BQ6m^VcPwN#5gAKIUCv^_}n!!NjM9bXk$tkK7=%?=t%{6aoK6spleG0hD^oMQGgu zl+d4SKg_7daQT%{j}DA_4s@94zEGM(n@L>rXn?*38ag3GfB{_xR2?_MAh#4T3pvuQ zz4v{HNE4XaPKw$LG~WzqQGw8yKTJdjd^)o0zS~pEp22szkA(uMz@n?7!$S(bvaOI~ zvKTHdPVrYU$sz6_t@}7ZzzRcsGDzMar`Z366{c~R73M__lYDO&#+AjDlv3m>Xqgjo zm@1RN<2(=7&XZKw14(1#QdNA72N_=wKNx}Z1wl#j#rED|D;q;K@dpiZ4@9t&DmT!j z5f0p`UE4|}QhVZ(KC!uob=Pk$+S2T&0^F80FvZ%zn{gvZGi)NOfRzx*cm|c&!6!S> zH{Y4W1zXrYbAHMJ)(NHGSSN<-unP+F)}v)hkR}#gymv_9D3@4+FG?*$-*A`1-e#m< zK0}j=mhJL`<=h=OTp?|3lmiS3uH*((V95cd%hz z`=!HNmsHtZ-smpmGljGpD}jD{S5vtf^aO=AC3^DE-?%P!Guwg@O+g!J%Pr!H-E!em z)!&VbP!JH^(JMDaYdN^GE-+4TN;-3W@L*4jSB{Fr%7eLXaI0&eDEyV*Y{+mVHrc#J z_Ido9d3}fl^GfA?bvlS2Ws}&D!uRy~gklFga&4{lM=+2CrC|cX8O-73vnYUgfczUj zC^p><_(A`evW>(1phzGU_(6Y$IZg;P!~NjGFrE49k?w5&dRVz8fHGf1q zFJ7XgqKBE%U88wy;`U%SurxeCE}VLM5lB^!ClTkrQDt`X@vDU%QhO%cM}3+Q?$Ack z&c|G+QVR~GnPhS>GWa+!cYd|Mj=o`0I%3fdeEIj`s(mQMZ-Y{Na5}%2;{*jQwZG|{+7I0JhdSN>8@vV zfr(hHUxU5DzErSZAs#sU!Za|OAlGx33{BDo}T1Tm<0wSg3 zqfE{a&`Nb4&8K1AWiX@m`h{y749JD>ac8TVFhi|0ec}SFm#Ul{jD+E(iON?rE@MnvUiQvTyw5gQ5!M_XRhdEP1nr_m?5$ua}84KU}Xa&YU z^nbDU=J8PWZU4Adl_W`)FjtF|wX!dnN)cj0_GOX~vL&L1v&fcZ%374EBs@DQ-pBDih;%t{ zu{RzR23Wq2)01Gaox~bRKojQa;_|F2IL|oj31mOO3k3VMM|IfM6QIW*&ohC=UI|4~ z>In(HroaIp6zr;E0N6KEb9nrm0#O+~zWDdxaTu72n5bOnOC}j&srcqqj3VP22$4cu z>=UX*&+$Ujy)rEEm!$p!?-H}u*qWmHS$CU(5Zoyzt_7g5bdDYn`H?Ed3>V=7@7eAw zSQ+bF7m#JVTMq;q8AOIv{~-zbhaURBYIOW7 z+}}X&Usrmx=#p3;Z{V1^)YF*Z&r-{ZirhrNXf;sor13jyw)Wg%alDNf+i;58{B; z>k&DA82IjJ=;JRH4t3&88S<6L@PZ9Y0qA&K4eYCp2R7lbnmX{NZyDzST;Lo|L|*+z z(9^-Zw@x3f1BQD<#xtf#b}KqO32<)xz=6ItM0MsPnka4js#(cJ zb6+ag*e*hwr(@aI*bWb3RyVbw7jv{%#6n2(`62+K6`7AfNII>vA)paGpGd$1l)enQ zYQfRJOBI5I-eYxCH_&G9hV8xsv9(L%bsdbQMF7bA67OT!KrsG;1Py1P=?;Jd2YUZP z#$!-ZD+t2Z*t`q0fVv}QMTvMG`d!^IlmhSzCrAx~5V{!DfdYj`8VJ^KVg*B*X6j9J;Eh5~ZmjllrrRa*25Aj=@)%?ITJ?*u+0TTqN8fbA}5nOZge z3D!Xb^lTZxei5sN&{rIs4w5G!+1SPV!)WGH^mb@wkcvk#k2|hF6h3C+Gl0PD6}-SP zz4*lGrJ#}8|814MzhMhdDzIrbA3ie9B;aQX!1)ZDz-P*658zsS0gUDynitY62)?K1 z_t6^EWJKR|EA(ZIfTU8m=I#*3aUjw-`>!vm#0A7ocT@pfp4fXpZdyzZ-8>Y*tqBXH%N=;?+&Q6^4@1B%6q?H*neLqZ3=FW|E#-xnRSED3=Qdu4q^^K(Tnv2L^dpH# z5iH9P$X~dEr2QxL5ln}qVqH|Nn>+ri>(7WWJFcP)Ed)7;%w79G4j6HebjWCy9 zNsq(36qk0i0pCVXZy|#Qp$nI@E7gyeu=X$dFx2djM}Fx%qvaxEH69&|qQomFmR#&k zPOUs_@P~L!Id@zpYjB6&8bsSEx7@s`Pt#F(r?r6MQPZu1T_3b~8qX)KSNcD%{>T8;{`loNWD0q zkeO@YQiM?;yq>5iqd&Nv;A6s_W2BYyT3y3(PV4@+yApXM)Z~WY0L2eB$6I0D{q_9% zhclmCFM|i1{(Ze0;689Yq85aQaxdNm126+&9Y^mvPTCk%H|G7>91<;(Q=<7n1+j;hgH8%H-FC8Cj#Axh6YIdudI0fqRL!3mG&GnRn zo${O(m*02EyQ&*;E(KFWQ*&n^qTgGp9_oSxuG_*?R2L z@wgK!4rtDx2N`xAzE3jAw7vT?o@Mq183y6X^iD}XtL77?xU-Fxx0zt^l$>;qs2bDE zkOteVe&@6ui)pQf@#j({^!Jz~RLHx!{$!cInpVMv75j_T3ktJJGhew>*oPFQPWjy2 z?kX=VV^s2R8AB|IyQ1yt=cJ~%`@&X{W4s|JCFXbfu=6F@c|LWs4b6VgGz#ZvvhNSh z7t#50!)8zM#8r=_7fVqV@|mBWUm%8fy1b-6!JQYf5ebptG?ae}C&|(FN}L(uz25i0 z*)Ws6PyWEs7MU!kB=43Re`S>ZS8UVYe#g#7+mD>X?1R4STAx;VE@=|5oWDfO0pT_& ziEJd=qE>XEru@~70YfB4p1QQ@BtMu5$U}bbfnq?rpwG+Eg!wQq(BX?#=Lkpxs_#_O zpo6-?Sg?r$Ux5$e#RQ5`8Gtf*vc@)I4`wT%84+RX%adEc&R3iOq^Khv@ysKD@sZ($rs~9|*Vr~;R0&1?`#^D+bt9UN0vy?tf@(gKQ|%|D>5W_? z^xFPYMUx-C5sFCJ1#?m>8zDaAH@%EA!=w$9=x-Lx3caAIJ278bZ-&~>KY!r9|9jgq z-=$ZL!l!qdKM^m;&mIog`H87PX~PG?H~F2Pl6H@%rzUC$ghli0m|hi+CzRGV>&U&x z>`cDtnb4UC0NIfZKC=~PA&RI4|S$1og@gM zq!KYEA0Jtcw5{Xggo@Z)TsN!f_g@4mZI)@rt#-e(M>(Og%TZWX!IF>T6&s zWDDCcC>y)$tGl>$gx@n|kInHbH!G@kzcml-BiAtviN*HOzD|;riC@Tere7s7l3DZe zzS#CmH9j#eB?`-jN>}f}1A4k1UdW>2GYy%3`$lOe-l@XlK|kD$~+NVC7YV zfI(8R;%w+^7=0cd%z+(^3#ba|S@YS#7>w#AZc}Q;`TN=n*H2V<4}H46AG@qvLNK}Hrc;Lcl*(ve0{kouZo+ADxQIbE?RkI z%g`$b{td%S!qj6|Wz+!|-y{2>7r7qLiCIy51`1jomL&nfKNbL8_7@=j2nBV)ZyKQ~ zq7?e(G`tguM0YgNr#BF9fLiJ_j0Wu+Kk(M;x|`lOgbNi^arK=Pk{Qq9iFSMPKXRFMjiMz zBG){ejp4(HBhq(Umkjp-GEf6+Zv;*>_e({v3|1U_+FoaZF?m zYl?}ER3FX$usC$r@+hVHx0F*3D{T%7e#2fnn@4y>@pN&lb-vS=}N*O&fv>dtWZ^*(4XJuJ}uuI!!^-ovBNb;=>HZ^ z_SYzILjzM2)JO0%5a^qTYiylIDmKOnZ7=K5mV zB*Fu`tl9>2sH@Y4D(%Sxc3)G9Xi7FkX1BB6!7olKH=UB6$=trxsU;UEn&A6rCMw$c z&Ms5h-0NLuo_S&dQ$#)Hxa^k}tmYKSSzpwOq-!&(G-Y`tZT7rMJ+FT$A~{&O<&%d= zMDGN?luA1BVN~dL?bj6h@bsV$SBfr}G+fOhef|78qc7swijmJ)jD_@jd2~Ss>{m9! z10wCM&hX1pgBU#v@--b$jcq@YQZXKgH zLe+e#LOs(}c#Hr!f65r+$abVOqIP;mh#4UIRDrH1W4_qAdee*2((gq$>sGR!!_7O~WpAJVA|@(!y&g$4V#r zURvw`hq;QiD#?r9dS0e$_aa|z>JKXJ-_%DB2Lke<0hCLgRhNgp$dc1R_a|rnYX2gL z-{V||v8x;u0?VmLmiZI3y6NLVopgUrD&XssG!~7JZHH(w>A!U+dz zzxrG)g_G@jU3xBta!RZzfUn19+mEXSRn1OWI-RM7h1u$#+qP|fbRJ5Ahc=BwmdcGj z@wm-<#m>0AD?v82=!TrL&M{@pU8Q?=xE@J1a7}ZV^fh?m)YQx>?!nZo7(T z)h%I!qPmgeB~#|DG0_L(wdZq5lA>bv-nU)VkPZzS+kcqayxt_TDA@y#A9L$Ix^LRt^h02u zi-}TX_u=LRacW@Nj+GG8`;C3Uhrh=w_12T8dZOfyDIYzSaZE?QKUVelN{H=)p!5e# zBOb-0(tbvDS84pd$|a79JB%W&lC+hT24Bbb#v~TPrt}(CHjeAHbP$`}+@>%{Qq+~Ez?9vdTThHB_lH<4lGC3nk_)Sp8G3NugVhRf%oP7ZKz-lKrJM9bA`K8g&t%aBa}5`ot@+pGttLBVo6n_4u!&zo94X)~47nC<@yl@L^ODu| z^7EFJE9y8T`|(GS5FvSSXOU!Up;hIkID39c1ONRINQ)PZc1OT z#n5f`y_*lT1^uHKC$zN27F<9Dt&K){yQ2SYD?_%83B1<9 zP*9IF!~O=E^lFj)IF-{qH%_AednUpm^qsN`Q% z@-Hg+7nS_~|8&EjFqYsNntrh@&(uR^ew z8Czq+PE$FgTYn`eX5Yy2$Y^U z1ESxJE|u|6lTG_Nrk8m89Uc1hgeyv9z9INyGCUrDvwo@XRanNX`+)RFFs0C+|FnoZ z*qA^^C9sdFNdq|uuCF{AH1;~YAWZm>G~3jO-!kbnt0wbjFNzx)XLjeB?9Ti+xTz;-&^k7Bw=$RJ9B2QC{De6aSJ+ZiBmUl#t-H2KiQLTbAqbY`zWP3X0 zTvwTkW}eTS6imxVP!4{N5N<=FB|QhPzlzh6b9;56^TYQS`KvtfzQ*JPttVtzTw>i% zu9l*UTQIJHZ8s5At4H~FQ5$We->X+osT8L-D{Ca}Axft4-5NlLpTJo+m@(yVh^U6k zRypu+i|D{N^z9zzo-LM6Yc+|R*5Sd+*-2>2-y&$#P0!(<|0U))B|DtXOuz>b=_cy? zp(&?VrY$rQ^U-%#Ad>>^g{JUAcbMokHqosbpia3e9mFvFcC7sp$TiH;wLdqC{wE>K zABXIcp(rxLQUDMA76=0&;qu)<{~bzx|IV>M+)u<4?1C?u5l(N_W^Q2%xX%2Im5a#2 zL~D4<$Q<8w!mg_@_o}h)LQ^$6?38xhWavN;1$7_&RxV#~dT3)G&OC?Yd|OZ~+_Xth z@!pcTw<}uz^P(no^k;h7`7M2Edlf5Bqje`X#(zpnH&gQN8uyOeyUhFbw@*;IAZfTC|nGJZ>|8_cd;H%y%WaywoYlP|(*Vl@uUDZ-j<=Q{O zuiAP13}@qfYTaqKt8E`qtBD9-sFThdmRVy9qO$I=5a&tMqS#2Z?L9)LOkL9PrYoZ+ zO8C@%c_m7Q%Htmtb{gBB%3C4V4;K$9LV4&#I+Jmy(*T z7Yi%KRy$BdLe=@<(0MXvx_PL*So@cX{fNNCg+gwSKth=MuCRf!gmb$fTcZFeqh=cj9fOwSlj>5L%25F`b z)VMBZ>GFnN${;7uZYHHG8XqfHJ(ltA=Af5lk~HX#4-B7F$)!IBa(lGZeTkXYtWae8 z;Hvu9p$Hd_ckO9EL=MA|4#n@d&*G9ZG+rhQoi5T8=E$0}?v0mAalBpa`fy=&Z@}Di z0a~-INhU3fapA62-6qTc>u{B3CWgQliZ4!AD+=)wKf7etu5W@XGL6ic86?Q`kwhf( z9l##Br^c15Vecm$O(@Ztc_}+pFz{XbO^yNsU3);S9aoTSyK}4Zxvr-dJ^6p^xlk#T zzfU-S$@x`v{+4Kn@rbqWxo|a06kZO6XLh0;-R_1YD6$LbQWG1#3G(qS>Wzy?9wLarzs#!_{u_0(gl2wvgMenfS@L!x((=8e4)2& zqia6ppgJdYo_SstzObr(V7U5jjqy#Z1h?C|@tS%w-_^M2ySltB(O*fRK!$TDG1F2P zS{0dmWY*wm=e;u#z=_&%_zt3%rKZ!}`c^=#JgEHqZE*wh7~0(OSAE9SgSigRk?inJ z3F{J9LsM(R3iKJqX$NJ0%pUcKJ?Z!weYq-!2A%9^@dxorAPFgSAz#%Pm&LIDW)h$5 zsSzMDDOe0qwcQ7_^!+6a_0GC~)1^Zx`}Y-8@ZGFI)uF>(4%5Ezyg%3~;i<(aRLXHCJ zN69YdI|j-ZPThDH>*E8P;qG*mn1epLCuk}rS4CLHF!53$+_dVb?Po6>{B6)e%QJ_0 z)Wz}L{i`QWCvH^U$tj-kMC(9gY121f(;MGp{e{&weOoP0gQTEgH`CCs(blLm(=O@a z0{CcGW{u6ZEN}aVby?m*$E~isd8ufusn40`EufqD)Jy(WnizAhu1>FeaXu{O{-yZ6 z&fE-&sy}zn=k}|<+MmM%HfJbv;koi@A0O^JK6o}SN~-w2!)aQ=X<+jmA>*r7n0Gmj=i6;$;=fkv zCQi%XeN2m>nt-YeIdx!b<59EPs|VT`IX;P8>4(AAt|1j)?9Ub`-CZ;KQ7o=?wAL=} z!h`{xW;+0U>{K4nuqnVdG+!?iD5v>&B^JIrGE}?JVqYxr4mwg7yIRleXo`@v89wRpD8kDDKZze60#8j-k&R@ zPB`efna0FIhmKO#uGjtqZV$|<;jDMk=U$J$8Z~gU5IY3a9^Z=@7qJM?@Ee--#aZL|Muv59zJ03a zn0sCBArlOIxM^1QO?6`Ck(Y|IiK}YgHLmvY>E4#(W~#t3g&5&?VLHHcXCKar4EywO zCg-C-4@50Fzv!#e*Ii;II$&+Wm`$B&p;)y_L%M5h9NCfq+dJ`rDTiu}14=^ap0O1D zea_MWy$#ygU%igZ%u)*iRGlnxNL1a9FI@Vex;<${HN@i4#Ar z?d4V=a7DXTIruMT8&Ht#kc)#%dO^*t`TE7~(e9FEROm`H7L|tWI=H^EJ2O8ZJ2ao0 zU(FB)8~d5{r{6cW^!JvNiBi1-6^20ZQv>YlTWDBJsjzEFq6m17%|BsY$2(Ftq{kH! zAHgI_s-Dx$gW+w81`?^du1CH;wmC_=H(@c~7k{ynq?JUGT4TFsuv&)Xpfs7S(rI{x z&g#XwO?t)*ZQ7EB+Z!3KEr!qLMfMnE?sCpfdX^Lu+3kVL>o2QZa&MZJ_zFJfYG{}D zlN-XpT9-u)UQr*P$b-KRXZ^Xm19=(I<^6;gk@fPzI-=B&<@I~HxSJJ(k zMf9B(&Nn3|seQ-H_@__pBT`NB2R0eJ>z>P9T#dlPM+E{IE~;TOqkPb=YWWBw;ns6+ z%PX7?THa8c8#0TL>NqH2qD(qcC*9fVz79&VJAqoI_bHOV!p<$2m&^ZQxQm@w!f}~e zyk~kM((9`@K0P~?f6_w-XcLbb#K!1IHPt{@SnInRILhJl-Gl4fyPs4*Puvn`x=+zS z+wVBsL8Y}RWFFS(ZrLrDVx==zVEu7N&h(pWbCwb$7NxJWjFBgHuFO?E#pzV%GSH>j z*(#k$QS5ZMOoNX#CPsdF+8cMm%un1C$PvQHL(j8T3*N_ndswOK^JtANv_d}@#oVJy zkL||l_QYNy(7WIbY6?E(IF)6&9O~xR~J(Fzs6sSztk8#5!upq|G6fyG@}~U zX?LnH_DFQ{*3F)D_2J_lGxuWH!uIA4{9>Bw+k8W}8=K{ziy{d;)K&v8dY-tRby{1p z_BZkksOh;@&pWf$54ue7u=Q zwR;U>Bg#%jrnP$eaRuteB#M*O2)8K0hn&WeIL_oS6gr8;;PUlG_Qq= z?&H1swiV&lg1UYi+aeCz$L@**up~Wca4xAI!br(8}Ed#F)|K_ zsq#0B&5Wq48!$>ZQ!6fipxs2R=SR0e(#;6Z7`^$A3<5o~tv$y+q?Db35)-#z`ibpUCMV`Uat?>K9wGTc)dqM9Cl#q(BIV?zD<2JiZ9 zW}?KGo`MN2JHIX|D`WJHmW{fXxu{M>qSSnLdE4qv%>C7D^LQu%v#p~W)828uCH7{g zI(7>y=+<+Sj$y#~4@s<}?SxgjLRmX~X$76NNczqHQQPgqmUL$0?#HyZCe%h3FM*FHg(s6tD7x}2JAzgP=T}N0pfFn;H zbnLv*QmB*BnR-&UK@ znAU&{){{C-I&!LB3-7(3&ONQVh zjIU02;zxkahHCW=a}tLoM`e)HZLVnKSaE5h`en?I!ER-LP?wZr^dQMe&xW&6 z8z+S_KstRC%TQDsY)D1hKGRqyZlse~aHGq)z`{x!;F0S6@L_2OmtOn~MZ#|HD~gfy z$BTyH0z38j61R1cTO#s%764-yd$j^2fx=g`LY}Nc?QtG*T2!spZl)})Mf|}!91(w- zE~4T|*H1^w>tCPOdaPsBIZ8aKjQR4j7U@TJEYMnw-o33Z>vrrVx{rk*E~-y*)-ATW zqEu$|=!lt_RdIpnyItqzB(?X^Z<$op4K;gAx?H!v^K-pYVUwy;s77*JIKDfijUYp*r zNpq2!o4InOD4J6H^O*EFT0mW}Jmjm0D43a+gIqpCxLP^lTwv`bcIT;m9;k-TEgB?y znpjE@r5NT`EUroRr}n*Srx{W$Dd;VRa#e0)8RQ56M(~W-2Ek9gDDmnUPOE#aQA6b%1&&z;s27=ES`E$_En{X z%2o+^R#6DF!~r(8>Gs^*!nv%WS&Oq2T$40(k!y#GWZmY8rW*VnTk&kZ-?7Lp{$eXu z_QP1yVz*@NlHzc6rAd`yfJJ1!$Y3G>79p0vbE{W$z3qjgx(B~$otpdWw%(yvz)XB> zZ2tu@cf}Xi$`##csLbxJy)}t5DV@zK>TbQObFUNT9!@Y)yp{LN z*_%-!$Hp$jW~GYl&vP@^`QBM+)vQgT8k~|auBP5*@_63>D0?;sJ)DAN&zVaYsQu|v zR2kYt+M8s#ZmO?TL|F^Zj&huoNZnhPt?<+;vAA6xF4Cccz*h;9QukT(!KMFhtsSx2 z`2cHo0c$Pf^t-jLxtuO7LRPnUbTgY*{H9ZyyzkIS%gjTQgn_G#j1hz*mpW$_*hqIh zg2odHtnir)PM$|n3M_rm!-3y*`op=)xGjrsMuhK7K5#-u^xBCFe6d?WFR^e&1q*u| zxQg<`>i#mlj@BxvrYp9Kn<*FNXyq3usL&MUhD!-Y9_EZ1sf_gNt9J}|E$Hb0d#$fy z;7L4*uH;|JJ?OND-&;?`{PmUay|+u}4!u*_5tgTWLX9m|tkgIE6NW0(^+$3Tq{=qk zi$HV~N`P)%dN7dQnxs@rC$2u{Vyv+}1UF*lwQY^9YCR8gnYfr03R#7W+2pUWi6~;1 z=ERVDORv!#YizFTJpQ2%g!#k1Xrv*E1K=5-k~~?~91r+Jr$Ep3P1%>s9q6Sg0`e$2 z?_JcNN)JHh7y9OoVEE{-fvnpK4P*d}I8BI?n?67*Cj<6?tZyY5#WK9oF%RY(%B;vJ zwIVGy#=$|^D4G6g_NM=W)YxBJDE^~aULF~NDo8C!gLht_KkL$g>SL@TD-jeU1T$qp z?~2jI{FPeTGJeWJww}d4i$QLlUcn7RY@;%V$rSAn~)2ZlUus=93i`)K4 zs&2gZdp#j2HnFb;S=GYXVJu6F>4F_37Ih$)6erO6vkJ1ey$ReYq?DgUx}US`k$$I>Ie?tg3{X9$6(paY@$oIagj$N=4qMPc3}2 zEPj2isDn2d4B|X@Rm2V0#Ttxges^f;f5xSfq??t>qyX+I~(gpPSCF{0CK09EqT*ncfW^*Yh{#BY%w`YV~ zb7du}M;YMspn$D(coWS z_3Sr`9+_J(xddshNV+f{XnAtp?_x5xThTTMO-Q^GDjH~vBW&Ov_o=i8C@3EWt@gt3|EyjtE>gz@MWJ*zxk*yg%nFA7{ z3AR9OBBt?joj$K^ShitInJ#Q+eE9R0`}@!4AO810qaEqr zIaG4@y)&DyaR+jF+Koz2CPW$*roOKduupSN z5$wbHvxgPK6q;$&)jqf6h6=~~#qRrjBebdZRTf)Ay>_a^$vQ8q#4+r%FR>5BZLo3C zwG0%z>*DuSv)Acm^x3Um_pHtC$LO;QjHmeAJI_i^hdP22k&QKAqV2>6s3-?LUJI=8 zh8Mt-++u?q&A_h-$fh&k*I+*E$Z2-EcPJA!2N9zjis^QbYi62jg<7=6_Tf4j9%Ms( z?L#e)LE`t`XNX2zfG=&`+^2x0#(vSFt70W5?j-MBRa4dF7?j*9QRMX73AT~nWH&^$ zp9Ti=&wp6KhW@+zfW~PrHm$1EAvnOcPzAXV#sB4PkXD#SH*Iv;e}Lk$t>Jlk!Yw_6 zhyE$T!NEThHt~Kf^Vodv!pEJb8}-=Sfyl<6o^OH;`Sf;;jlh9sZUtOU6!>T3|MCI< z`97&Hc5a`!5gJ}R(eV65RI#=3(=ElS=D}kLo4Ct1XE?Auy0G(u|Jc9=BI`NGZ>aBs zU{3Zmw*CL`bOiSA^aI_!aD)Cl&csscA z=KGOJY!iRKvj1@2|H>O?N1uv%L{oUmUsTLp8kJQf_Vwi#GwaEFC#>&lv%TFMc>3^8 zH@OX;|86J!i~IjCtTaaic*WKyPdHxZF7`Kns@}e<&(=GQ9QG~n^!iGF|9z!Div~yD z$QO=(rSiOG(sf7ShOq`QPs8i~fHsByi|YnXNHB_-_l|B#qb5c&ZHI-OWw>F! z2Acy^_pmF0ls?YewTuQNIJ?f(H^q9e$|5>h{{43ktESb;umpSU*dLEhvPd$@ALnfj ze&~?sn2#(|YjwVyX7UD`eB~_+7{1O#dBK>vtC_v2;&EwnM#({OqB%Eyj`rVg1KLst zm8#12Km2etRp6}BGvPbs&a?-;>AWVfkv$H@G5TE=s{Z+)mLVh)6kbnI5JkYmeWn2{ zDeW?{#zxr<14yRX0YDUu_al%SdH~{#ew!2PW6i^eR2m)#7l+PbnY&v@OdDkY04y$R z@aLhR8n9sjs+}{))*Gy zp2%#p2DF2P_T>rmwX6NKyNOEL=F!hJlI_XbDSE>}H`ac|?MU7}+^Lkl1i@S@5y8l* zOYs(RSrs?qUd|q?^{Fz#FYgg`pwp;H|>t4fzbC18qZ9Uxo z$rHs+P3JeLCByk4^ZJKh24)*p?~1;iK=u+hv*>-1*_(ZqKg;`&ewvPFq}b8}TgUgZS52m?Glt+N0o)8fm=scQw z78Qx+MWn8yio2Nx@Z%BpF!vYJ#2ww|AOSe`GHq{?j$?s|Xt9z236`QSG zE*>2x)MNdcysxY9CJV`5c!nhZ`Q7|Y(D-;y#~JvpixS?jv zKH|(}DiL|EW@>#CObmPp5(i+!pUW;=)bc~((o`Z6e`#*|(f8I~fNdMWOt&9vY@bDn zLs!<=W?zAEjn{m6kaKu|$G#N2geLR)N*bZ}6lfYq&P!|FLf_Xy-UHj)#ogO~BIBY)3G)V3ZZ^5NM&eD1cyLkQxyk7XU%= zGjNo*-6(@~1*ZNrUj5Iv|DXKyKWz!N7h8$n-Ipy_j4bmnvop2_)Isy00-+EX#Ye;t zi1E-VevM7Z223((o~79#pV)!M%E(?QeF#L?&FnQKx*k{rM$kFNE8-#bkADQ>yEc)R znSuG}8GBkNk|y}x#|{F9#>0cah}tBMW@iyifo5#m+;n8m!Wx?}lto=;MW^fr2?snT zuT7@G5~=Y-F(NKE66?4aEI_vEe^}fxqVVV2=b~^R9DHCZ*ftovk1HJ^1V$cC5j%(d zoQxQh-G^pm9zsiR+Bz00oA4_tYTz6;g?QFwGFO`pl8gTB_fv885#U3_SrpZdevS2_ z`Y_x*0!6u2aguXy508$A$mQx!>-EXYRrDXGQ0}g(x#zV7n%DaoD|1fN#S!V=rd+hQ=OQE1P}MVq1dag*Km*9N#Xfk)p~Il6JU& zKj)P6g-=GyD{+2yM*>L0TKldE9jIR^MTZq_v;T5YU&Dx9vv|@pD?Q9FWNTqsYiO#4 zcE#l^{hufB<-I?<5*O_N_v{8pARLg~sG9)#q}smAYiv*Ntg(SHYI;ZvYSFcT2;U~p zA$L)|SlWK33~=vnLJ@8UEVC9xrO&})9V{Vr;OieG;-QtqROB#e@&JGZ-#{D{8USWO zj=zQK-NBdeFbM^pe+n&ZgX+Ek;s(9w!9XK>Y)-AQjoIMgSm<>qYyS;*L>Rui#+FjE z#>P!tN510MA@V-^HMTafS`zgVxIb}Xt*{H-*9G-uf&S=S30ys-N=;p<=I_L5yq-#} zeZ0nYy|ilILcNG^V2x`l2e*o3;Ao9;81Km)$UTO<|L*ecO%y{g-Y!Hg+rxs)98!Ci zrz+Jj3}#-4E*U45X-Tz>hj~ja;T^@c8%9(TBt{*_MUKIpkFP43cMt1JJd^EzdIhVn zD?~gB%9L@YDWr&P*C!l_>*-xd8famXf(g`l_iscbI)W04uul@1nfZ(Ci0JJJu&SB_ zkS?PVz&>ktT);EW=kI|g3O=E!D(Ll|)*qxYh$YO|z{TY1hJNp9o$H(fJ+0dT=u!u( zo&@?p`@_+TX5%PW7=@Vlg*N05tkRRuZ-JBR9QTS+EYWF{$A?sz#(2=|D>J{C5iim>O$>P!_)RlvO7!T zeXoiJ*6YXXd~ujE%|tmGrtOf88GS$5@TR&S|D4v(M?11hIpA)+K!{Udl*V%lh8O}QF} z9GcsWdCHH%Ga|!Ori=?UI7pH4bnsv%P1M~{DGwUYZI{)FER6g6KU055`q zr!7OXY47!aOIH_2eR`=CDv%ZD-&XEWa@_j_*4&t?L~;?8S`=ZY z$%HY{=}(P59!h9Y&Y_l^z+!8S>q{gLyENhpZ_&&G&fhq%e>c;5exMIWx(e0N(ZH6j z&|t8eL)O@=z&;%y@_;0=KMcU%86mJu!}o1kV|%7G2r{`JeZ!g0RKbx|m^C)FAOuyg z>JB1Ud<_>7tZTINu(P?hoY@RuccIeLxl>@Ie)45ut^xpt-u?;8~Pw)}fa$|iBflH~L>{|$Xx z%@A9e8K#IqX#Hh6zfQcw-3!J#iDGJTuU>-+iiM`OH8y3+GZAbZbcUl3G5svA{5vN0f4Wh`a^1H zB<>h(Q=J7SvWkl$g=$FI+n+lycb>NIKIEEposm|kCsm2DgRak8e%DOg-Of?$R%8G0 z!na+K5(^in54Xc!a*fxX(#@lq7a}XNQlndCg-%%=QQU4^%WJHrDN<}_`0TmLql~zb z{j~-$CNZOoXIs%*l5CIK&CeL`bmQRRatdv*b*?Sh@!8PxX1d8PgCxVqR|C*q3m@ms zNr_gK+J7y^wu9||M8o5M!|1_3`}zMWuKDxd{i2utZ={$0oSpldDD}Vk;e$;zY^x#= zVTGB&Aw~pn9@}rLAhXOjZ*e>E_VUBdnd;#$#P8VV>s6J+Dk+iHpPUh_24+G;YvpR~ zKmQW#3|J-%EX9sTJ3#l*yQ;TLqBd3?pgdP4kHz0j8-Rl@(V|P<3^_a9&7Df>);krI z7v;63@^Dh}={?Fnb{4Q7-Uk3via2X4e76C;+cz0ctNzW=Twg5Q(-&uLRmmB1#Z&Hh z;mdoqSBzDBAAVtYi)U(W%kt8BCg|l^nwYrAx6POJl#1sZwNlmyJ4J_@UxE$44fo6f`m&Jft-Oa5xIn-?ar^CV<_YU*GTrKpb$r3#2>m+(^i={(EvAusFnR(=J|c(S0ecSI@sS8nu=`3Er0nZb zWPm&bJM)|bO%;jC{s6&P-%x;frvUAR0}+#!Rv1JRZiQBUplEXDO{_iUj))KqTK5G9 zu;HXdR~z8-Ygg;h%npM!w!PoT7{>1bLD)}A;P2O6`m0aqiI`S2bsPjKqu^n}5dXM_Xv*~>JmYX-2UD2>pvoD>J5Wj1%OY0kuHK$R^DW76GnGD9i=gXH z8P!zyzqUB?KEovjPvf+aK~~In9WE}N1i=y z)`Bk+r@x~Yx4d6{_L*di~Ob_k=4O5HW#6-JLo}V0{5F3cR>QUqH zA+rDblr+yg8($r+Jzt$g1j}gw=~?GrUAMr}m(m*Iiv^$0{xIpc2!0<`Jd9#vio!Lk zMz|X^?0xlZmN+a;@xB~LsEmv^pmyT?dJtY;j1HVgGaBx=r>0Gvt3`3R=P@}cu57-y zPYcrDkNAV6uW=6=WXEK17_$4Wi88u^$_CozpC5$X;#c(oxw&|^$ zG0kejLZ}AJz$zuQju4e1MzDcP{9m}(2(vQPMVN=E<1=}{Hps2WEXW5vB zAkZvz-G$-N&X{VZ2piQWVIStGX|o64YRBjnQ;qu`pPK2`^4PG5u160ze;Y}!hwc-% z5bf94qVG6FIng*Q;dCz=7bP@EE|;spqCaGj6fCl@vm}I?67E82mo=a+qiHV=$)7dg`D&0pnD>#b&Qr*@M8wv}+_guClV+ZXY> zCsDTudd26olAgs=0bMO$Ce-&(Q}VN5j#|Tsim{j8Bd(eYIz7W(#dmKN zv#q}Brso3wyqhZBje$=AWt!W8XeU?8;qf|bc=eGkHESPBJy`pNZ(&`HMSoP4d6os~ zynGxD)~d5P_O55q($&NZ_<%zfLQUh$^n9i^j0|mnn^!MRqqjlM?GPDVpNkq1dw|=p z1tefT5b;EQreHO15zW6OJxKn!5yh`ls%ra-i93#XIl^`qAB$T795my+&^It-Q}v$M zeXYma8m(UD^^$XndS|terL)Km_&J#?u;P5# zL%HzkqfB$!tt2J)jX0^Yhm4W>iu~YVn(*`GkUX5VpVz+lSJy}C_sviCWoKDqBkpFm zTI%ZFQaDV4{_>JsDWj$<%v;4hZEPg{7aWR?6U^cRWes7WbX)jrB^48 zaNQR<(aStQCew70JGRMBCnihAY zZ~HA5>swH*`n5snGZM1zpqQpojH&e^dkK z=COk3ngS$xs?NXmbwAxVOp^+pEeQ<-@f)lme|Io|bE}lBNsnmn?5ol~xy6D@9|UZq zSVTDjcR;(yZX)b8BD3{6poHe?Fuh+i@7b)WI$IOI=JE zRQ*x!=PCp9?uRbfcMVs`aQ0-M7V#WeV~Ze_-~*Wkv`zGz)c#0y37iFuE3oQt)~9P*;_K-IgCw zkSlM)XLb^*Ftnb(`XEyje<`uCTAfx+1fTdm-^!Yylkea(GK$l8KZP%}%91?jaMv1J zt1eFMe;|1Sr)ZyXegEt%Ir)NR_9+d_U8%FeXIaw0t@r$otrNQ&7VxtgS@5zZ?CqH0 zt4Ilb5U_nBVd!XAI-E{(X~3thq-=q$-CZ-Re1iT0SZEna*!rM zR6rtxL_vBXM^QL}5Ebd9Q%Q(INCW~LMWhD-AtX_eCbG9e*plYFb#B$GI#svojT&Dy zx4t*-KPqG3Zr5IG{^oDaxo}v{O4(U?F~<@C7-m5k#e$SsXS=8d*F2R72D`kNYzF0K z!WP29I*WwJ!Un1ud3(1pwR=PmrKkFHRMMWEC;*3;zbiGO;_13CO*3$KJqzNb zKKYVCSytN_Li{?ce+~778$cWgJqoK#*1#fR#AGv)ZYfWdj3mg0;Fl(Gbn9l2g>RFMjwa3JcHjxC1IeRGRiHs+z)# z7N;!WPF@w@2hg6q4M4Z1k3l^dCR8cV3C=y? zOJ<6Et9quVyV|#^RFMtjrIr?Hd^Pr_vm5s-Db1MWEOAwVKuzxb6 z?9kx;%I=5UUfw|2o8hA>y||~%P2vbqW<5=N9LNrmyqYfqCsPY-A~>H8>$###;>;;V zB>#F~%i!q1Ia3Lbn9rD9OtlmCJr{gA(&hBR_ro6sUKb6VI^A$316GQr|4Gj9k2vjb zt7@QJ8K**r`R`MN@fGD{2e|E3tLYh-mKrXP;N_b1{tR2Bn*H2kReQpt_GP!l$Er$r zwbn1MLoZI5HU}?QQL;^)mlRj=Wm)=|i)eQF#~(g>ZzJhhem}6z*XloA^;wkb)iAS3 zuvKUC)&{}F_G0|ToWQ13y-P87J@0O|(tme3WOP(#YB77~TlfXL8D0PW%mEvNq_UJo zq4CYPg3UCIVi*C{M8g$W{Tb z=6J&9kI+Fi>i1u9!lfi{P5xU>)gdz{@_PkeFO;YRB4Ga66NOzbj?O zDh$9iEdXV59;pNTRvA16;u}{{d3^bL>X&iQJwgHn6^c+5*x&Tf9YGW!9s$#BeQ@bPsRy}ircv9@Euf{CDaEf%vi;m!Z`l)!JojX%_ls?3xe1rFzchQVWTLeJUW<0|w>1VHP8GpsmKKQ*_0D;4q1rhdP4tAJW( z0<>oI*$CV26O=aFZO#U+lT{<6isq6k^wU#q@i^!Xx%q9D{R_#OEB~PfZUt_q6Zkgi zb2h2KinEjt*vjw69Az$`x96xxDUN*f{HwvHz!!oZRpKT=gnZ>roXotH z`{PCL|KWJMNNspb{i9Dt)Waz>Ie+xY9?=l+%|E8e4G!}`%K!t0&pR-#|KWT(|9C#! z-$&HHGiNk8OvzS8Nt9yUIxdLhxnalDz6Y%vL2HtxD?uO3MGL&C8+o4^zFpk4dNr7g z{%PKu192UHnM*+E3VqK%J#Sa=enHh%%

(CYt}FIpy!~_`iBxXgUBe<^noc8L02Q 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�+d=Vdo$(?b$}Z!gA5sKcn$6P@e|=c*y`^&CWT$A?bj~yww8@5 zzsR=8%QOvs(R}Y0M_sbuU?L-wCvb8VR@cqaNni&Hm@AVG^%^sDVM5q=C zVJY(4R ziPpeffaEpxWtpd}pnLR`u`M1A6HWvUTyR`E%evLitmRDIaavdDXTMYlp^j*ay`|3N z3lQ-p+2Nr~1rRV12`64=zcO3{(VI8=A(zTdc_Mel^jL9B?ke!jpo@a8V9ndZnpwSO z#0zYjs}GPT@0|2>8K#Loy+_pmrQVGLx4{cG5gO(Txc!xauwP`m;F+oGRt6zclGG^t zqM$x3y33E=l$nK2(ihlSO=H!1d05@v^U>yNyTh}Cuk@-N2(+|g{Iq;Svt$zKe_Y3iXVC3$RAo}sv0jQXsf34CH$ozU%~J$GcN)}t4AHAU zh_NfiC6h0Pt7$l%v&>Gpw+CAw&&KXF5if-5EexFmEFkqiE99?6RCsgqgCrcIu2QlG zG|`yFiY432V}%5r;7OU2;K$5v!>ClW7psctHMr^Ab}#$wEqY2(L%;>`!vktoEL|&{ z(huTml8ID^=0NS23fdCbXUirc0ZAF*Uq(KTglk_HQ#N>m2m%e6YPfGo`aC>szaMFc|wn!7YOx9n0;;7|IqAR7dwL)y^KXiMhK3zqE?@pWW42+ebi;jD!E zc=8>MTEo_rNGhyR&sUwsFDK>UUqF%s!bn-vLD(^sz0D-iypzwF*aSg#D|%1QbS9%4W2E)WBzdH=V~hCfffB#VuMB4)n&d$WFzJj6iL?lx`MqUd zFOi1k+-nww-rjI*tJ`Dol%kWraG(BCL3Gvdugu1*~hA9?qtPwGZA6K!=| z_u|2FeLlQ;j2o;CfD>9>;QvW%}lBPBWcDQ~hA@$$#dtqI5 zxm3OK!R>R2r!TuGk-H!h$$hwjhcgVME~l8vfGjD_LFlS0Gl>;}&NBmMR-~4N)0MFm z1!H=-;3+(8XJ|YiO*EV!46n{S-BA|*tN>&CDoX7f_1PISrRZD#z=x>ZmW3d7f~o8D z<>A~!!!=c$p4_*CV;p^`{ALVQog`|~W6*t}wiua}e~b4-?%M8QQ@fv)8VO5YbQ68l zuuWfuN+>(f-5rW(x6fdN`glIu5)1E|5E}2(slc^9P6eNzMn^ z)*1C*PZP_}J`XpA4^W^FAU!94AtP5JqXOzu*><)(mw{I$(VO&| zV-)MWWG5ltF+=mJz75YhjruN3qftX%$dv1g_QI|i)S}k~*!cP3=#p106WRkkKi5n#@Id+C`u{{TrZxEfOP} zN=9l@BkM_CJiOXWa8yHNc}gLvdO)Rf#?0s#NZ#08l`13LQQ_tG3Q!4-ua*&;fFbX@&S4erH!l3_JSiu zX0LOMkwJlst~$fl3sm+2>f_D9{?bU1b7w_imdm23?C%9*E4R#*CttAgfBvGY%))Z2 zDnB? zo*>OaVp0Wpmw~rb1GIMt8 zw#?bw)cU#h`#Pl`QB8kIY|^A_?5hY)j77 zLx>}|g|e-zY%d5`N7ZrlhiRhnyHI-bfeDdedbrS(sES0r%EYdM)n=2drj~y>cG~HQ zm)Ef8*Pd`wZ}Y9sw`E#ueZS1Yi>gxjP%JKl^&!~YeNjm!ZXnl^o&{1Ye)gvFgJ$!H^t)*VFEG*i% zpyoM4kDiLzv;QgLyEnDsWX@i(g-TwVM_K$MS`Jf5A*tn6vrAO5k26vXHO88 zSNf4&<8}sh8Oe8VkCocV!7?L$zZ36_rC(nxrPY+ zr0cT6hA9-{*(MmS@hu-efxK|ZM&&0j~lm3^f1?KiJ$(P*gyrSmpf39@OZ zbv_17C9FqcVLP6u{|!r56lif(6JyD!2NPz3A=gGjlOAB#*FO5}MP(=3SfFO)(BseU zdDt29b;e25HEB6y?Oc0&Xq^%)$4eN9*bh2~OO;UPb2O>-nvVi}w)BvR72|vcC0jdQ zgjb!gO^vInfTVb6^cuz^P*kxLVYx6XyJg#=S^Imx62n(PGtCKtp0%4csvPGt`N`A4 zM9EPoA`PpAjMihf${$-yPwb8^%psE1q3VgF0GP{sFuRIKuP=|O{ z?^VT*kAMC=XYtHY^S#Q4lk>ibXT=-aDczja@_Pb=AhL_-RiJ@mSVd@E^YegB?2ImE zwPLYDhYWpr;-bRj7rM@q3D&a|)9B@d0JA$m8r}!ZlrU2bd2CTL(!hq38z*BoRC>V$3d28n7QLwrEkc4DvoH5ch#1#q>j;HU=CHNt~UMs_zR zQ8dWQ+GQpcvJ*(G5T)BZlEmDIInE8rK8!d%=940hK7$n%f}w5Va;sA&eT>EBR)j(P zvcPYxC7d@(@4C4cxT^y=JE6DLqpyM;_ajCki?l1hD^-rhV}eVN{AqrYZC{GT&+O+< z;Sf5M^}XSjmT+iJdg^J-b0#;I*GafMc8gknIBQ#HlAF?Nc{YxyN~h6RvQ0;7xCyp~ z*B_IeAlEcZ)JQgexy-o>Llm~Djrl0|O{XrEIw5@{EoRzBULbx#0~coYRm%yJ?(jt4 zZZoFA{I8@LyG`!baQnaf3*zyAMeNo84l| zXBZvl`zn|@UdNnYir2D^{L1w^u;b>r(c{O@be{R}EG@&S{N&(JZKS!E&r$i<&MNV$ zoVz_!!|&|Kve{>S-e0&38<_@ILP44a(2d-sly=Ty269WVSBmpd^wD+A6#5mfi17-O zgu`8Ix3h4KLce<5%+!(CM=?RYIK zut|=273A6o4BqA)UuCvfy+BYy9AI1hX6dcpMA`DJha3ua=Grwm73RU|6o0LhoP3n0 z+kGeK&{C?}SkpLsJo0rFi{YJ{^MQD;YBF>4m7$@*sIaclsH^z~Xaj29Ub4TyqQ6kF z)CKMw6pY4OSW(}H3a1(^;uR~~{d<_Frl$-}fpXfWfvVX*PBE%ZLo)+2J>&Y)%*7!O zx>lY#%X(TxI{i4q`*~4$EWqZ@;neM!dird@c4eXl6^FJ81ZnD~a+p|jS z7rmmqtGMsfz}MG4rg-DwKH?}z_8N{-EWIw>Pd+6FWXZ_GbTS%FnC#MSw&*uGjQBp` zlP}BfD~u3sGj1`nZJz9C7m>M>NsZUzln6*xrqm>?PB+8Fxgjf;R_<6tx@@nHFDPC4 z+3ujZvAnf^>J!_@vhg!>*Nnc^p(^h?z=B@R0+7f zm`w6%L8_RY-<|w&AiHS%(3v}*bjnXjJ3~FZ`VYLBt(|fAZfuKMfA?cH-^C!e zB&udGm@T$&1P{fXY>&K#wH5kbXGQt>pW{SrC<>pu5@Q@b!bMzWaA+j-Rqvcd9shcu zJa)t^;zU)~2hwuM9ARn|64YsCwEvqJpZV%RMD zE6pe8!cOb1&-{C1gWqL1)l=W`z<*umhzlIVp%k4|Msq#CUnHQW;Lh>;cL*bB3Inn| zyN_c;%5;=J#2N?U7lvPdAiIpvppu3vj%E#{nRb1|?9d=@)1v^2S)UMmlPYmmyUHpo zEm(oYW(VTz>hBjCyFWg8``8iHdp=8QhQ6By-L8xruD^Wcvh$Fu_g8U^v%{wnX_{0B zw$*)ykBhVsPhApLD1Tvj_Dyz;pl;x`z{ikk*7u}!QBp1ULo`k?1gci>xySkZU3 zbOOD)Y=#==`62RWk7J%~^1GqLC0R4;!iqwp^lhfz94qd-RVN)XdmKIWt@ zKF;bfsyf>nYLooj0n~kM0~chw{E7y@L=sbFS1mn#Si+L`VLBJwwuGx4GuQFk*yK9E zJjQWc?0vxId1%D2v}htYtaE)e&D-efmnl=X5B(5HMKURWgbPFuSTxYp zxaVEt@Qd|FhWaMOQWHft#{{9n2~CEeso_{4+bw_e84mx{d?O6M5OKBd^>By3A=HM; zAHG}$fZj2FS~_8{kMGUN7Dq;!hum4Kvgys4H{qMUHEyWTCtT^xnz&BE6qo@HuHXdytQ{+R3d<7~E!D}s3 z?N2EBd%Vw8!~SW^=p&!s7-;W@5@OBtk7td;OnqsK!S*KM`Q)QF2ak_-cyGS=`3^m# zV^~~kx!I+xj8pdIcBP_PVMF`e97_%1uA=nmWy&-vnyRl9K0-nyfF`wrDQTvPsEq56OVf+v)Chvl3)>p{hE0K@@CH^FrX&<1*#`r+5Ig5>iO`Pp<~)#A zAEL9;%A$0RU|NQ0RtJgI$306*0w>O`x_{qrcsjkZ`pS{s4(~wfx9Ve3JH?V5_`o+5 zvH|xBMC))@u}=t5>Q0ZyJCN%llrE`)XPc2PbY0;cn5zp@(}=_=qLtbK;l%OouV!I6 zmd%T^gr}FeLxWBGHk4@e#eUR_H)ixPHP-)6^vhjkgs^X&k`C zG4o;pN5QfY8ticfbOb1tvV&a6F&+zQ zNU&zUl170*CyHi!IeUiyr$f5(9!VGal$_0*Ff{3o&s^s28C}*?alH7%&9h>^oo^n6 zV2XD(ZF*5?!YK>$aQ0{oOL#l<<9J|TZTal;F_wF+MqhS!FxdYNrR`Eot+OvJ#~O@P zpQJyFXrRwW1{<;{4~yRo6efkEwJ7gg;VS7~nEF0zyx~Z;WA91iyc5GT`@J74+3Q8Y z-8Wj9PM)+{Dq)jJK`-5`cd#rN8NcITGBp9AlyQ1Br3=}=|$wbJ4o!ZXyWKpx*>&+NTXi83N4c7V1q&fHt3NsBeY}7*Fgm@ zpHTh3%moeloFOHB)r&Gc(DlC4^Id2!W6b^?#h*vM9~L~gT*RDb?zSu|n-^$GZs{n9g(RsaBT0aLMh+!)GQB%z6`g;9M# z-i%y&C_CF7MoXEqnvJuxP#wa9x4@~Cm;E%nxVz$~&hQi`OS^ueZl@&aXk5X=UAwx9 z^+Kx;nY}qvk{OZb>JeR@SMn*y)wyItIkV?9-pwDe`i`MW{K1OX7KGEGm?~PU{coO= z-}VA!U$`(FDs14-m+8qLweg4pgpstua>V~MOlSSxiX^u<*rJoY>Z-Hp z3AtN(!pgKy>J?^h8FSnEWLq|k@wuSFWTWSOCgY`XYqZUomSL}rgTsgN2L?L(O|EW` z%Gv2x2c3KZK}tc*q@{ zO4noKM$oA~>hcT)7HMu!%!9PAh0_dMgu$jKD{41zFC{g&_87zWdk4IGY5w^oX?J&FFzY^e9~^pV98xn;n(dBXD*d{;^H6aAH!*Pd zZ;p;6{P=+;E5P3IAdCq;K-dR!n4%PJzef{CyVDrzRxCxBQX}$(7eH(a)`EsJ&uU-x z$~IL5VAphoRp@~>K1Vfcpwq5RJa|w{cJMFp9DeUPmhQR{;R+KR)QAnwCnBwwGw~IE zrHK6=pt=w1wpwyQY4>ZKKU!z65cfX8jowtnSJvWKy^M8QOSu%lun&R}Q)w+JmL zwH^B9)RZql+Um!xV&cWl(`SiW^3Bb^#`h`xsPB>(A{C{99Cbul#pxK)wZ z^z{QNMJnDE=R)P)-UXObo)Yb#G zYGw2~22x^@Vkw?W7znqkNW?B=Lao0-U!?1AVYEE&Y6_jh;MfImHM_fnnjWk2qi7xCK@&;&TDo(Lpc9^Oe=(DYZ(T18B)@DM( z_XJamJwFVRYQ%hX^HQ0sFdUArcoaChb>OuAz0WKq`FbFm!y3z9QZ!^f$TO(k8!gC4 zhi03rPj$#n7a|P;6<#WKP-@czkI$V^Cq;QeQ;Cl|W{TOnMHUOkt6C%SLRhRWrgQL# z<5g_V^DH~l8%jT(_epF(&0qzkVo~-)skO`t2^0pSo3{;<^^qqWlk8XM1sGQ$aW%r_ zQFK5oBjGZ5J(P{Gb^=*lK-cs__O%@7Rf)F{(i*C?6$afHoMfksKndYxT5{~zU<4|KIkKd1ZxO*HO_Bo>zX+WP`2>K71&8|17t7Iy0y70aa8UmQ# zT;>eZ5-=_z{oMy#ym(vMP-dm+2!NUa&S%R6P_i*&Vqo_>DCRBMO6uJ zltvX66rk{44HOov<4Do4q5K}(4MdL8Cx^kTnjDG0ncnz~K1#Su|Dy=2#Ax9rv4 zv|O1dG5%ve9F>m|py-y0{;0hNG96&bbNZ6(1JG3RB$+619k4r6#cro;1$%DUdhmwO zjlEn|yhDejmz^5b%M~@qC+~9cJ>6%{FmM&jh=+PB{jo0|)n8OQ#RVyupmWc}D+f^Z z)*(Bf(K^uLSpxgNx=qTKoCW!Y+G&){p0X35dWd))q!$2{XFihIv;#9_uE?WDW>pwu zxP#S=ISHTH8%p#ISunD!8*F(zY}KAEYC#A>H5PA3LpWcytO_c;hP4@IMNrV(4vJ=Z zx;+1EMNsZih?_8jUqH%w$9HxCS*mI5W&T{qq0;zuS9!=W@&nX4`8^P;O;6%ia&8G* z9UH39OBwu?d6g%Lo@j2`3Pk=$Shr~3#_e^%`h$V$hvwaqZlSc{7&i4&i5jE{(Rn(wqj}f{K9W=HDYHjD1&ZiN zphzw*b~I|E7LX$9Jx!9xYL7`?b%yhq-IV496g8+vaW~)dv}a?)de5p7-4}P1r;h^> zI^ZzBa7{v$I`q zyjRVVJNZ4&TTsi!Pbz=c2P9KEEWDv`t^kF!v9+!({1aA7QE3oz4h43VqFNHTE| zu-!%i{Ey}tu0Se;DSqvi6D~XULnV8%@Uh|xV5SwiB96@9Q$e3MY4shsh$>_|O1BXt z{Acm^q?^e*VZ$7O^d(ta07$D1u-m7meC2Vyg=a~Yk7=6%L#;{50-&t!`bWhqXk+9xwAB&ojAa<_GD6sz*EJK(+sDLvWK zJX6s2+&m2=(W)fO&{n;Fk7PDRXj6>fhSS!xB2t`9;I|<4y5gY4uh1T{B@jK4yaZ}! zpe%>cu^esEB2mMwGl7v2Hxz0gf@ZPvI>Qc{uUE9BI7f%>g@zxP8?&&K$Ir(C^b}r6 z*p4fmRt?u8XOxVV6)W9cze2~?^j5dOkx|ia&7c7YHyo5F;{s?aDD8b54E$WSqBGo8 z?F;J)3vC#tw)`V0K~$DeHo{HuQLh9hA9Q?1WpH)C*Fvw zLu|usMr7RExjhREbpconLq40L56i9N)ngywL`;pKGh!&8ruDu;hb$Z#&w2Ze^%4kt6=@&)Y*3UM( zEA$Wxs&L3l#EQpmCMAq$C(ArwR1;r?eOh3#h-}@*L4)0q3@rdhEjIFksmU_$!XTe@ z-JG>vNFI-()nl0`JJ4$z(4IywIPLvv-gH7e{u-A-ucO8q8bc-xwO%8c@!@>kah#!y z5LnSJzV_^-_KU5seYqml^id<^cv4VY4D@E8tneEuOYGrfPTtT0ha_r?RX7tlt6 zyxBiFY`{^*@%TEumfdmOWJ^1-p7WP; z{;7T$Z+)U4?Y!6Vb3px$qI2EzzN@^VUgsN>ayBEOLb`Zfv21%V5Y)ZuK{Q7QsQ3tq zQMVa;Pjwpe0Rg=CRG|v2bt?}W8&yuNHx{()wyF0d^#(J3?K*io`0{jX;8W$VLH}UB zz+OUTrPg2YhD5e%IiEBk^tjG;fLdj4Q6pkUP(UY6TJDc^gMAXoxF~ATU{K_8Zg6P$ zqPxb!bl+%Aw#{60Zb?aVplvkA?I%<=An7&bMc8Ga8;Y8&8v*{wW8)NkL^<>#UEfMd zn9?{!A_%`;7rHKS5KJu`%gBs8kP{dIwVdiuNt~W}p6-&}=xLr3Vvd=qCaAnn`o!KP zT{uC(!ZaRgwagQ%ji{rNnfN%vwNH^K=|)oWx8{8>;i>vskH*N4=v8drA|(CQoKJcM zslvU7>=Xn8&u6_BwiT6NXDQvYipZOgsS>hgra&_jpwf!@W2Vsa@Ag0|QW#*k7H(^3wQ2Iir))V7H7B&i zg#*Ebt2fFo$X2GQQKSxGhhv)j`7MN6N|e^LY- zs!B>bm6j{5p7-j(!Uw1~+yQ6FI>1p7gv6$ti2YrZ#iUFZMD&ySA29k~Bq8iD^}+ zBqbsrGnGns5JHTZS*5~EhGi5-_IuoQOBlE8E$JR< zi^OS!4YvnO$L&RW0`d~@uGiX!Tw{S09>u?iKyh0evFjxUObg>8JZ1+24R2D9g59H9 zSQTP1K&Gb#{<%sL9lCtvDKoooQQt-m5eOGJ%-qdbduGzR5nf@?a)e;d3B2cdm?~g! zLlC=PLLLHC6H>ii7th$R-?;PUODj&GidR+U^J7#i4&OnslA;t5dp7nsbEcB&bJS*( z>Ho%@q9$uXY8nT|hckXk&JifJ)Nc?5UYD(f4tYUBAZ&->Ji}YdluR1YszrI7&{sVLhQp~2H_Mp-H}!qsGY5{z&>o;I`D z15=+`R6f_yIQR>+WEqlmI)AI;pKBq9p=wCtK(98yK5 z_3lXo%JsESCnr3AvM(cd}ReOv#1x6Z(00p(@n!pUUN@9oAoD2&yYnLUK;Ht@q7RQa)D!x&N^YX2V zeMQIddQh{ZX9Z7dyYwE?uN`%QIop;6gl-8T@H=2J`z8L;XEHT*#5gzoMlFm-)*>A3 zG1^UlbDT;d>>8@m6KbsmgKseEUB58PDlI)`@s1ie8Cq8N-13&*^H&OeYK)(1Be{;- zWNpJcgmw9iu(c7$5s*0s6?TF_44+v;t+$^-IRz6{h;INI$p1M@$$exYw-1LVA$pcfhw2LVj1`ragh8MNUs#fSRpeWB%FY(IF9Nj z38=3J)+OQm#&I6ex*Q( zuo4*xM=3WzGXg~gk6H0jAj%PYO#M+;Y9Y%B1ObeacO@)ex5Y{p=4H56W}x)xrkipx$AlGs9GgQe$O`hE${0JF7nP8Su!LYI z{CR5%M!%&nhaAUVU#l)shJUM~A3U5VeaaOpQR!uVc#%22LUi9WZqHFf>=PKp!b3nt zgG=X!jm2*D57pO!!w4pjzcA%(RDJ5ze#)Q;E56C!nnN8+3C-UZR(>wie6vKop!8Wl z0Dl}7dP(G)?{egh{3Ahn1A806QfR_=7Zy8Fjtd=|unAGOu1U@Bym<50(lfS_m$DQC)^gVMzovR?QGq9LHu2-tjL2WcZ=CnpK^=1_zxhn#E?F7!SnfZrsL z@+QupBiJo|BYgOqsQUXn{mV1W!D#rZDWYMfbFE-F*86$P%{GVL{JK|XIKyO;)n#J0hQtH>%v7CX##N?SHewrwNvH)=yi_};C^ zH5yG;Tm}BYNS;y*qEDH`m3ThCk=u&vOFtYO(RhZ=0NScRU12R?rI~YjdMiU8%g-JE zQ*X80lm8|i!yo?(JBA?zV5)M@B9!NttOlnkd}|Y*z)>n-t*>iW`U#3#7jqfwX5onx z<@)^u%Wh+|m6xFY5pO2mbBxMqNpHd^_R?Z5kXA>uoe=7zl=!7Zbrk1flwE9V?CfHm zy6*mdHoh|6#L%n5Ffj_@p*LWZ+M6Yz1*L07rc}_f)2n~T7%t;%HPYMN(?D&I&1E)G zD#0M1AhE+Fwvqu933yAA=sNTWkaAjvg77=U-4av5Sk6e9BJflYMVZAt8u2$D5yg(Q zyUkdCv{;!tSw;6muTm?dOv1wPw9T`)Y{|ok$$X$w{887 z46&XOe-NrGheY86sH0!H#4Ngc2vtxsF(1b4w0cdEDe{HnMuaJpdR~AOeF7adpw2eX z$}?!0>Ljz*BQ`{!IGu3@h+q7OhC-7&Mj+iK*mof|5kg+~>CXkm6W2mdxk~0qE=^m# zBdnS{vr}{`xJo2t9P8rNro=!5OW!*Cp^vHceVca!#hw;j6=OjtTuse@f}VS2NoF0j zEW@$l2R3L7S?MTIiRCJ^T$Yv+R7U~_?OKouAVzi$nm55fF_Hdu5P3^WNtimvXjYUQ z;y5Z#R=392@4#hrJSv^YRuY~OIL6ILP$Pfc$F1(cbWC?T2;EXH6=Qe4y08;|dB}KA zx7W+`L+;5{)x8*#d35EE7mp1-yr%4{M)`~~Byj!Y86H`p!nTJRi)0^VyQ`pf-FS(M zFp*dGjV`u|IP!-WMj=U}J%ZgvY{RarG>9M8Vp^a^+M~T>?;$D&zOgyiu?W9)|FdC@ zXpPLauoui@-U? zBQ`NZhls6Wl@3Rh0ruNxQ{g7*4}eb-b239zu=p+MqS=Jm{sT77!G1@MT)Sp87loh* zG)uN+*q9J6ruEU%9Xr@#A;ZSf>j<-{;XP0&$Z9Aw^6gn9tN0Xj7_<+gq4ZMOhisTI zz7d|Jwfcn+Q^;kno>V8T3WaTDmEDkdk7U`M>&fk+vDZa#?NF6HG?X&RrmlNNpTBRV zr`pw!!Tk2lP5iA7(IwL9BD;`&`>nn4dPBAyeE}@XKzix`m5YUR*-ZuC7?%SzB}P(e ztviR!N*4uzMkd%wN8xxYe658hFJ>oC;ihaKdt$MlEYTHea8BKh1iX|LT0^Fysd2Qg zc73)+UuATsLi>{mf$?-XHQcz1&t2##)Kz>%+obc_D=a8wEW9Gztzs%>o3+M3p{MQQ z06u2AQi9a<;3Hp}d`l>n{mxQo)o@fH_z7XHWHm_?1d4JLmU^?yL}+ju@ZLE2W)Kf3 zHzbxN6IcDBl!rP}weAOokBDkMj#S3AXzn~+S1ySWhl`8Lmz`m1mL&PENfXTYcfSqb5#P)Vj3&I4Xf!f}r7O(fn?m0&7O22Y1ULiSE5 zM_4wZ`NwBphsPL#m-tRp((^K5Vgq(4U>wnUmcqH5ky$)Fqmul|K3g zW)mSLswo@>e+7_lzhi5S3o+D@8sxw;J3Gs0PJLn?$_onQS>Gn?EcLB7gRD6Q>Yc{3 ztJ-WK7ol|{3(V45sb*IG868vO7~%gwShnM@?hk))R%0NF+$&;n-FS&pSX3FMQHK|~ z2OE&arenx$GmM%h!Ua%Yi+5e*4`P?`9!tS5-rc|g|vG9q}K=MY;gStT%Ni7v1> z&ta@R2kn3*kQC+smYQUpWv{dFCyns+PInt?_gt~K#K}yuwqZ(6RsZbySRIZJqH3Kx z6|x}BTJX$FPGYCo1e6gwzds1-Wx3TahE8YK)k|GV2WDFvkOQ78T`*2PovTLY zww2vM{sf{A`=*QE*6I8CRt2b5!B*^@2i81gI}B5sM(YhFZ!sZ{X1Z2X3Z@gz=MVX{ z>u1;~3+Uw?u1B8bywCCL@U*m?rs#Rji{IP1iF50xrkK&9iH{)5y;Amxi2~DxJV0u5 zR-n+V4C911mkl&FX_@xc!U`ca=Tw4_!I^$~NeFLDtKTBDtgjLL@anfPj7L?`Uc9Ig zFz(LQksNv@mO+}c8)BZfx!2t&N_Dk&Fid>7SNlWGew%1IEzc)!xQMlI&N+!s&6rMM zFMciS7S@ajk+Dd@U+^<=CL|@}vW>E?jQOUSO_0232yDJTeptIlwk?9x=&p5Gh-{|Z zs^0;fFOE2Df9Pl*(^@c`n%BnNL#x{_wkh}hwW6XzFzab_pal%kba#BTdv~F8lHN6w zOI!9}U3G>N0>{H^os+0kR!SlyRlw{0Hbbe*9k$5$A%lrM;3dWs! z=z9L<7!khHfh`cHZvNhE9a1Ty%WAF=ws0trc6c*iXHbL!J@&9cax-SPG;2u?9JVB+ zGGZ@CB;BtGd>X1SJ2Ou}t}(&&YXv6FjtOq{y5hiOf5{$BbfJYV2kqksLd(RymP2wJ&5cTYVnn2NHGx-u#hVLS2<`ft za`srE-s@3&zm=w@AG%uCe`qv7G#4HgQ#LhPmorQ_4z3wdf=L9Wo0*NW5AZ7MMC7H; z6+~uwwq{?w2?Pf?T8Uu5L*qJ|7j`5&r4qWM>y}*hPGG=C3lbYhYe>Fq@aQ+tfwgLu1gJ&=+~^&km~i1wlgPX7tf#{9 zZ$|`HBE1KPI2!m(-QR!?jl|Wt4Qo1mcWNGqs}Zh|9F2ZtabWmleOgEX$Nn;eu}Bl{ z{oFTC8vRx@BWXuqC^0geY|4o?H?*5iORZU$$KD>ro&q}`2Dt$b%@_Hx1Zy5ZdJtZ8 zKuW2N79((;=+4{Rmt-D1p157I7Nn3v-e-EUm5Ck}+t>r18(A-3l*fd($DEuM#;m5> z4PfcvB|TRr+a2bit(n=G*k}ysJSDKoSyzBKn$YDO<;DE{4x9W4Y`l#V*jO~majz7_# zj}q5ZyGvBl?Ylvli!l%`x&&97Q{}mvJ zU;o4@A4svz1Y@B(JiU)hqFtF zbm&sCEZOXB$v zqzvbwsV9(pL$*#PhyAup8Tc9o`8|;wNpEsD(;pGQPSrw0?&5f|#YwKd z_1V`i$o5_Per3+q9X3UuEy~~Aa4_he20kMoxL^GFCDT5Ql6Zgf06j*$D=ob$t*&=I zaI{CNRAT%0eGvcZ4D?^<*Y>|y(LZHb^q<>R{Xd(x{|_$xze%p&^$+Fx%0a0+`z2x$ z@_h!IiLIHD)C)}Et8KP<&Xf0{8-@OhvW5d z$Bi;Y!K;MEOth*4b9y5@L!;e{Wv(|Esa|9k82aW*V_?i%+8usV_8;<}4CU&#Rz~ok0 zex%=l@oD=&Bg3cT!LPPoCkE8wrD9Kv(bwai{JkOP6?LEW+D=(BFJ3w}oPqb*n}nEj z-Ni&nz zFDPlJ9Wx%d)tAeqXRVp#()xlMd+s@R;dP&R)=Z3fV^8aL8}G4M*xi#D*mm;uSGl+q z4{xsid42F|i<_%|-=2I-;YWK=rqaJ9lmFR``!hj(bxBS|JIO+oyBhr_P4@dl+Wjwq zuj+a<_4W0+m~y*)-34d8s!U9V-1K^H+H?I7zol2EOl&@O&DMU_Mt_i8m=umXG^71K zJ<{$(+G3SBM&yIOT=VO(&d&}xnhHH&URSt!o!O`by=OKZ*BFn(!9UN)m-L{9M+jg=# z01$1gm%9IT zEY3@hJO#D|J;;S~F(~mIQV@C+{0b)^L;J|#vL$Z!Eg7aMW-d-mINZWee!xy5r6!BTkzcv8QbtC;Ou2ZmQwA4T z)z;}XBDTB`wBH;!*Ge;~EI+87o8h-^LMQE1Tid>S;WoQ&{XRaUHswVtcBp*)e0rE% zZsW15$|l4qY?A8j>yl*bn_G_-*A0p5u%AO{3ErCWh0cbncm9wtIxTn`nRL?B^bEVr z?#7qJ)&?=EMw}@%aq6w~3*7aiG%lr(J<;{qHsX-IW@^)hcYEY6TicJz2br#_`Q={W z<`&q4pu4!eR8!YcPv6J9Bih7-y!z4)4QF=@`n~#LPTyjyT%S~6`dmsJy{0SMQT!)ha#4yE_X7BWmD!ZNCEfrCC&y_??rCE)19HY=C0W+}jEQ!bL7 zW*PJ?gVAO1zMSkVCt=G;>;FYbK56FcAH@gw7v6%jkH9=Bcxe09*pk#_mQ}d3y@Jti zjIZ%{Gnsm2^VgRZaSbdz-}SrBJZri8M6T$`$}E#rG z$nQB5d5PjFe{puWJZTU8^5?Hzk25D1@@x)^YElB`S>wpwobuqisNFq< zn*#crZ3yY@=-}r64FvkvtyCWyU69UuAQaYlHy*`EmgZ$aGtjXP1m701V79G zqUucgyQ$HzsG@?CYs_FjW@IsD?yBK3M%h%CM)Kdyb6OKcmc-65raH!#@Q1l-Fi_oEu>li8OmtL*)Peq$c8-No5cbAUCt8oA7ttN zQ<>vG6QKXk{vnqh(ieCP_yFO^MIGA$LJ-iXk`7u@ax6OEV88E<2$a2v@{!#~^%D>. -You need the following permissions to use the Data Visualizer with file upload: +You need the following permissions to use the {data-viz} with file upload: * cluster privileges: `monitor`, `manage_ingest_pipelines` * index privileges: `read`, `manage`, `index` For more information, see {ref}/security-privileges.html[Security privileges] -and {ref}/built-in-roles.html[Built-in roles]. +and {ml-docs}/setup.html[Set up {ml-features}]. -- From 8d8d44fde3ff3a4513a958bfd8a61eb2551f1dd5 Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Tue, 21 Apr 2020 12:24:14 -0600 Subject: [PATCH 47/54] [7.x] Migrate logstash frontend to KP (#63417) (#64072) --- .../public/management_service.test.ts | 3 +- .../management/public/management_service.ts | 1 - x-pack/index.js | 2 - x-pack/legacy/plugins/logstash/README.md | 3 - .../common/lib/__tests__/get_moment.js | 33 ---- .../plugins/logstash/common/lib/get_moment.js | 15 -- x-pack/legacy/plugins/logstash/index.js | 32 ---- .../public/lib/register_home_feature.ts | 35 ---- .../update_logstash_sections.js | 22 --- .../components/pipeline_edit/pipeline_edit.js | 60 ------ .../upgrade_failure/upgrade_failure.js | 49 ----- .../pipeline_edit/pipeline_edit_route.html | 5 - .../pipeline_edit/pipeline_edit_route.js | 87 --------- .../components/pipeline_list/index.js | 7 - .../components/pipeline_list/pipeline_list.js | 58 ------ .../public/sections/pipeline_list/index.js | 8 - .../pipeline_list/pipeline_list_route.html | 3 - .../pipeline_list/pipeline_list_route.js | 33 ---- .../register_management_section.js | 36 ---- .../cluster/cluster_service.factory.js | 13 -- .../logstash/public/services/cluster/index.js | 7 - .../logstash/public/services/license/index.js | 7 - .../license/license_service.factory.js | 14 -- .../license/logstash_license_service.js | 62 ------ .../public/services/monitoring/index.js | 7 - .../monitoring/monitoring_service.factory.js | 18 -- .../public/services/pipeline/index.js | 7 - .../pipeline/pipeline_service.factory.js | 14 -- .../services/pipeline/pipeline_service.js | 40 ---- .../public/services/pipelines/index.js | 7 - .../pipelines/pipelines_service.factory.js | 17 -- .../services/pipelines/pipelines_service.js | 135 ------------- .../public/services/security/index.js | 7 - .../services/security/logstash_security.js | 13 -- .../logstash/public/services/upgrade/index.js | 7 - .../upgrade/upgrade_service.factory.js | 13 -- .../services/upgrade/upgrade_service.js | 24 --- .../check_license/__tests__/check_license.js | 179 ------------------ .../server/lib/check_license/check_license.js | 86 --------- .../server/lib/check_license/index.js | 7 - .../lib/register_license_checker/index.js | 7 - .../register_license_checker.js | 21 -- x-pack/plugins/logstash/kibana.json | 10 +- .../public/application}/breadcrumbs.js | 7 +- ...confirm_delete_pipeline_modal.test.js.snap | 0 .../flex_item_setting.test.js.snap | 0 .../form_label_with_icon_tip.test.js.snap | 0 .../pipeline_editor.test.js.snap | 0 .../confirm_delete_pipeline_modal.js | 0 .../confirm_delete_pipeline_modal.test.js | 0 .../components/pipeline_editor/constants.js | 0 .../pipeline_editor/flex_item_setting.js | 0 .../pipeline_editor/flex_item_setting.test.js | 0 .../form_label_with_icon_tip.js | 0 .../form_label_with_icon_tip.test.js | 0 .../components/pipeline_editor/index.js | 0 .../pipeline_editor/pipeline_editor.js | 25 +-- .../pipeline_editor/pipeline_editor.test.js | 18 +- .../__snapshots__/add_role_alert.test.js.snap | 0 .../__snapshots__/alert_call_out.test.js.snap | 0 .../confirm_delete_modal.test.js.snap | 0 .../enable_monitoring_alert.test.js.snap | 0 .../__snapshots__/info_alerts.test.js.snap | 0 .../pipelines_table.test.js.snap | 0 .../pipeline_list/add_role_alert.js | 0 .../pipeline_list/add_role_alert.test.js | 0 .../pipeline_list/alert_call_out.js | 0 .../pipeline_list/alert_call_out.test.js | 0 .../pipeline_list/confirm_delete_modal.js | 0 .../confirm_delete_modal.test.js | 0 .../components/pipeline_list/constants.js | 0 .../pipeline_list/enable_monitoring_alert.js | 0 .../enable_monitoring_alert.test.js | 0 .../components/pipeline_list/index.js | 0 .../components/pipeline_list/info_alerts.js | 0 .../pipeline_list/info_alerts.test.js | 0 .../components/pipeline_list/pipeline_list.js | 0 .../pipeline_list/pipeline_list.test.js | 0 .../pipeline_list/pipelines_table.js | 0 .../pipeline_list/pipelines_table.test.js | 0 .../upgrade_failure.test.js.snap | 0 .../upgrade_failure_actions.test.js.snap | 0 .../upgrade_failure_title.test.js.snap | 0 .../components/upgrade_failure/constants.js | 0 .../components/upgrade_failure/index.js | 0 .../upgrade_failure/upgrade_failure.js | 0 .../upgrade_failure/upgrade_failure.test.js | 0 .../upgrade_failure_actions.js | 0 .../upgrade_failure_actions.test.js | 0 .../upgrade_failure/upgrade_failure_title.js | 0 .../upgrade_failure_title.test.js | 0 .../logstash/public/application/index.tsx | 117 ++++++++++++ .../public/application/pipeline_edit_view.tsx | 153 +++++++++++++++ x-pack/plugins/logstash/public/index.ts | 9 + .../lib/get_search_value/get_search_value.js | 0 .../public/lib/get_search_value/index.js | 0 .../logstash/public/models/cluster/cluster.js | 0 .../logstash/public/models/cluster/index.js | 0 .../logstash/public/models/pipeline/index.js | 0 .../public/models/pipeline/pipeline.js | 0 .../public/models/pipeline_list_item/index.js | 0 .../pipeline_list_item/pipeline_list_item.js | 16 +- x-pack/plugins/logstash/public/plugin.ts | 92 +++++++++ .../services/cluster/cluster_service.js | 16 +- .../public/services/cluster}/index.js | 2 +- .../plugins/logstash/public/services/index.js | 12 ++ .../public/services/license}/index.js | 2 +- .../license/logstash_license_service.js | 106 +++++++++++ .../public/services/monitoring/index.js | 7 + .../services/monitoring/monitoring_service.js | 21 +- .../public/services/pipeline}/index.js | 2 +- .../services/pipeline/pipeline_service.js | 40 ++++ .../public/services/pipelines}/index.js | 2 +- .../services/pipelines/pipelines_service.js | 128 +++++++++++++ .../public/services/upgrade}/index.js | 2 +- .../services/upgrade/upgrade_service.js | 22 +++ .../logstash/server/routes/pipeline/save.ts | 1 - .../translations/translations/ja-JP.json | 2 - .../translations/translations/zh-CN.json | 2 - .../apis/logstash/pipeline/delete.ts | 1 - .../apis/logstash/pipeline/save.ts | 1 - 121 files changed, 737 insertions(+), 1283 deletions(-) delete mode 100755 x-pack/legacy/plugins/logstash/README.md delete mode 100755 x-pack/legacy/plugins/logstash/common/lib/__tests__/get_moment.js delete mode 100755 x-pack/legacy/plugins/logstash/common/lib/get_moment.js delete mode 100755 x-pack/legacy/plugins/logstash/index.js delete mode 100644 x-pack/legacy/plugins/logstash/public/lib/register_home_feature.ts delete mode 100755 x-pack/legacy/plugins/logstash/public/lib/update_management_sections/update_logstash_sections.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/pipeline_edit.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/upgrade_failure.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.html delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/pipeline_list.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.html delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.js delete mode 100755 x-pack/legacy/plugins/logstash/public/sections/pipeline_list/register_management_section.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/cluster/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/license/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/license/license_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/license/logstash_license_service.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/monitoring/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipeline/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipelines/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/security/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/security/logstash_security.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/upgrade/index.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.factory.js delete mode 100755 x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.js delete mode 100755 x-pack/legacy/plugins/logstash/server/lib/check_license/__tests__/check_license.js delete mode 100755 x-pack/legacy/plugins/logstash/server/lib/check_license/check_license.js delete mode 100755 x-pack/legacy/plugins/logstash/server/lib/check_license/index.js delete mode 100755 x-pack/legacy/plugins/logstash/server/lib/register_license_checker/index.js delete mode 100755 x-pack/legacy/plugins/logstash/server/lib/register_license_checker/register_license_checker.js rename x-pack/{legacy/plugins/logstash/public/sections => plugins/logstash/public/application}/breadcrumbs.js (80%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/__snapshots__/confirm_delete_pipeline_modal.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/__snapshots__/flex_item_setting.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/__snapshots__/form_label_with_icon_tip.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/__snapshots__/pipeline_editor.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/confirm_delete_pipeline_modal.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/confirm_delete_pipeline_modal.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/constants.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/flex_item_setting.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/flex_item_setting.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/form_label_with_icon_tip.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/form_label_with_icon_tip.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/index.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/pipeline_editor.js (97%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_editor/pipeline_editor.test.js (96%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/add_role_alert.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/alert_call_out.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/confirm_delete_modal.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/enable_monitoring_alert.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/info_alerts.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/__snapshots__/pipelines_table.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/add_role_alert.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/add_role_alert.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/alert_call_out.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/alert_call_out.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/confirm_delete_modal.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/confirm_delete_modal.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/constants.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/enable_monitoring_alert.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/enable_monitoring_alert.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/index.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/info_alerts.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/info_alerts.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/pipeline_list.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/pipeline_list.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/pipelines_table.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/pipeline_list/pipelines_table.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/__snapshots__/upgrade_failure.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/__snapshots__/upgrade_failure_actions.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/__snapshots__/upgrade_failure_title.test.js.snap (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/constants.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/index.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure_actions.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure_actions.test.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure_title.js (100%) rename x-pack/{legacy/plugins/logstash/public => plugins/logstash/public/application}/components/upgrade_failure/upgrade_failure_title.test.js (100%) create mode 100644 x-pack/plugins/logstash/public/application/index.tsx create mode 100644 x-pack/plugins/logstash/public/application/pipeline_edit_view.tsx create mode 100644 x-pack/plugins/logstash/public/index.ts rename x-pack/{legacy => }/plugins/logstash/public/lib/get_search_value/get_search_value.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/lib/get_search_value/index.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/cluster/cluster.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/cluster/index.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/pipeline/index.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/pipeline/pipeline.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/pipeline_list_item/index.js (100%) rename x-pack/{legacy => }/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js (83%) create mode 100644 x-pack/plugins/logstash/public/plugin.ts rename x-pack/{legacy => }/plugins/logstash/public/services/cluster/cluster_service.js (51%) rename x-pack/{legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit => plugins/logstash/public/services/cluster}/index.js (82%) create mode 100644 x-pack/plugins/logstash/public/services/index.js rename x-pack/{legacy/plugins/logstash/public/lib/update_management_sections => plugins/logstash/public/services/license}/index.js (77%) create mode 100755 x-pack/plugins/logstash/public/services/license/logstash_license_service.js create mode 100755 x-pack/plugins/logstash/public/services/monitoring/index.js rename x-pack/{legacy => }/plugins/logstash/public/services/monitoring/monitoring_service.js (58%) rename x-pack/{legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure => plugins/logstash/public/services/pipeline}/index.js (81%) create mode 100755 x-pack/plugins/logstash/public/services/pipeline/pipeline_service.js rename x-pack/{legacy/plugins/logstash/common/lib => plugins/logstash/public/services/pipelines}/index.js (81%) create mode 100755 x-pack/plugins/logstash/public/services/pipelines/pipelines_service.js rename x-pack/{legacy/plugins/logstash/public/sections/pipeline_edit => plugins/logstash/public/services/upgrade}/index.js (82%) create mode 100755 x-pack/plugins/logstash/public/services/upgrade/upgrade_service.js diff --git a/src/plugins/management/public/management_service.test.ts b/src/plugins/management/public/management_service.test.ts index ceb91837921eb5..18569ef285ff3a 100644 --- a/src/plugins/management/public/management_service.test.ts +++ b/src/plugins/management/public/management_service.test.ts @@ -29,9 +29,8 @@ test('Provides default sections', () => { () => {}, coreMock.createSetup().getStartServices ); - expect(service.getAllSections().length).toEqual(3); + expect(service.getAllSections().length).toEqual(2); expect(service.getSection('kibana')).not.toBeUndefined(); - expect(service.getSection('logstash')).not.toBeUndefined(); expect(service.getSection('elasticsearch')).not.toBeUndefined(); }); diff --git a/src/plugins/management/public/management_service.ts b/src/plugins/management/public/management_service.ts index ed31a22992da85..8fc207e32e6ce7 100644 --- a/src/plugins/management/public/management_service.ts +++ b/src/plugins/management/public/management_service.ts @@ -80,7 +80,6 @@ export class ManagementService { ); register({ id: 'kibana', title: 'Kibana', order: 30, euiIconType: 'logoKibana' }); - register({ id: 'logstash', title: 'Logstash', order: 30, euiIconType: 'logoLogstash' }); register({ id: 'elasticsearch', title: 'Elasticsearch', diff --git a/x-pack/index.js b/x-pack/index.js index 7fbd992120ea68..1a78c24b1221bc 100644 --- a/x-pack/index.js +++ b/x-pack/index.js @@ -10,7 +10,6 @@ import { monitoring } from './legacy/plugins/monitoring'; import { reporting } from './legacy/plugins/reporting'; import { security } from './legacy/plugins/security'; import { dashboardMode } from './legacy/plugins/dashboard_mode'; -import { logstash } from './legacy/plugins/logstash'; import { beats } from './legacy/plugins/beats_management'; import { apm } from './legacy/plugins/apm'; import { maps } from './legacy/plugins/maps'; @@ -40,7 +39,6 @@ module.exports = function(kibana) { spaces(kibana), security(kibana), dashboardMode(kibana), - logstash(kibana), beats(kibana), apm(kibana), maps(kibana), diff --git a/x-pack/legacy/plugins/logstash/README.md b/x-pack/legacy/plugins/logstash/README.md deleted file mode 100755 index 7d181249300fa3..00000000000000 --- a/x-pack/legacy/plugins/logstash/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Logstash Plugin - -This plugin adds Logstash specific UI code to x-pack. Currently this plugin adds just the management features. diff --git a/x-pack/legacy/plugins/logstash/common/lib/__tests__/get_moment.js b/x-pack/legacy/plugins/logstash/common/lib/__tests__/get_moment.js deleted file mode 100755 index 2e63b231bec32d..00000000000000 --- a/x-pack/legacy/plugins/logstash/common/lib/__tests__/get_moment.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import expect from '@kbn/expect'; -import { getMoment } from '../get_moment'; - -describe('get_moment', () => { - describe('getMoment', () => { - it(`returns a moment object when passed a date`, () => { - const moment = getMoment('2017-03-30T14:53:08.121Z'); - - expect(moment.constructor.name).to.be('Moment'); - }); - - it(`returns null when passed falsy`, () => { - const results = [ - getMoment(false), - getMoment(0), - getMoment(''), - getMoment(null), - getMoment(undefined), - getMoment(NaN), - ]; - - results.forEach(result => { - expect(result).to.be(null); - }); - }); - }); -}); diff --git a/x-pack/legacy/plugins/logstash/common/lib/get_moment.js b/x-pack/legacy/plugins/logstash/common/lib/get_moment.js deleted file mode 100755 index 7a808ec9a0336f..00000000000000 --- a/x-pack/legacy/plugins/logstash/common/lib/get_moment.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import moment from 'moment'; - -export function getMoment(date) { - if (!date) { - return null; - } - - return moment(date); -} diff --git a/x-pack/legacy/plugins/logstash/index.js b/x-pack/legacy/plugins/logstash/index.js deleted file mode 100755 index 29f01032f34131..00000000000000 --- a/x-pack/legacy/plugins/logstash/index.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { resolve } from 'path'; -import { registerLicenseChecker } from './server/lib/register_license_checker'; -import { PLUGIN } from '../../../plugins/logstash/common/constants'; - -export const logstash = kibana => - new kibana.Plugin({ - id: PLUGIN.ID, - publicDir: resolve(__dirname, 'public'), - require: ['kibana', 'elasticsearch', 'xpack_main'], - configPrefix: 'xpack.logstash', - config(Joi) { - return Joi.object({ - enabled: Joi.boolean().default(true), - }).default(); - }, - uiExports: { - managementSections: [ - 'plugins/logstash/sections/pipeline_list', - 'plugins/logstash/sections/pipeline_edit', - ], - home: ['plugins/logstash/lib/register_home_feature'], - }, - init: server => { - registerLicenseChecker(server); - }, - }); diff --git a/x-pack/legacy/plugins/logstash/public/lib/register_home_feature.ts b/x-pack/legacy/plugins/logstash/public/lib/register_home_feature.ts deleted file mode 100644 index 2e1ee2afb9ce61..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/lib/register_home_feature.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { i18n } from '@kbn/i18n'; -import { npSetup } from 'ui/new_platform'; -// @ts-ignore -import { xpackInfo } from 'plugins/xpack_main/services/xpack_info'; -import { FeatureCatalogueCategory } from '../../../../../../src/plugins/home/public'; -// @ts-ignore -import { PLUGIN } from '../../../../../plugins/logstash/common/constants'; - -const { - plugins: { home }, -} = npSetup; - -const enableLinks = Boolean(xpackInfo.get(`features.${PLUGIN.ID}.enableLinks`)); - -if (enableLinks) { - home.featureCatalogue.register({ - id: 'management_logstash', - title: i18n.translate('xpack.logstash.homeFeature.logstashPipelinesTitle', { - defaultMessage: 'Logstash Pipelines', - }), - description: i18n.translate('xpack.logstash.homeFeature.logstashPipelinesDescription', { - defaultMessage: 'Create, delete, update, and clone data ingestion pipelines.', - }), - icon: 'pipelineApp', - path: '/app/kibana#/management/logstash/pipelines', - showOnHomePage: true, - category: FeatureCatalogueCategory.ADMIN, - }); -} diff --git a/x-pack/legacy/plugins/logstash/public/lib/update_management_sections/update_logstash_sections.js b/x-pack/legacy/plugins/logstash/public/lib/update_management_sections/update_logstash_sections.js deleted file mode 100755 index 8da687529c8463..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/lib/update_management_sections/update_logstash_sections.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { management } from 'ui/management'; - -export function updateLogstashSections(pipelineId) { - const editSection = management.getSection('logstash/pipelines/pipeline/edit'); - const newSection = management.getSection('logstash/pipelines/pipeline/new'); - - newSection.hide(); - editSection.hide(); - - if (pipelineId) { - editSection.url = `#/management/logstash/pipelines/pipeline/${pipelineId}/edit`; - editSection.show(); - } else { - newSection.show(); - } -} diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/pipeline_edit.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/pipeline_edit.js deleted file mode 100755 index 83446278fdeca8..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/pipeline_edit.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { render } from 'react-dom'; -import { isEmpty } from 'lodash'; -import { uiModules } from 'ui/modules'; -import { npSetup } from 'ui/new_platform'; -import { toastNotifications } from 'ui/notify'; -import { I18nContext } from 'ui/i18n'; -import { PipelineEditor } from '../../../../components/pipeline_editor'; -import 'plugins/logstash/services/license'; -import { logstashSecurity } from 'plugins/logstash/services/security'; -import 'ace'; - -const app = uiModules.get('xpack/logstash'); - -app.directive('pipelineEdit', function($injector) { - const pipelineService = $injector.get('pipelineService'); - const licenseService = $injector.get('logstashLicenseService'); - const kbnUrl = $injector.get('kbnUrl'); - const $route = $injector.get('$route'); - - return { - restrict: 'E', - link: async (scope, el) => { - const close = () => scope.$evalAsync(kbnUrl.change('/management/logstash/pipelines', {})); - const open = id => - scope.$evalAsync(kbnUrl.change(`/management/logstash/pipelines/${id}/edit`)); - - const userResource = logstashSecurity.isSecurityEnabled() - ? await npSetup.plugins.security.authc.getCurrentUser() - : null; - - render( - - - , - el[0] - ); - }, - scope: { - pipeline: '=', - }, - }; -}); diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/upgrade_failure.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/upgrade_failure.js deleted file mode 100755 index 2ef99d3b476723..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/upgrade_failure.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { render } from 'react-dom'; -import { isEmpty } from 'lodash'; -import { uiModules } from 'ui/modules'; -import { I18nContext } from 'ui/i18n'; -import { UpgradeFailure } from '../../../../components/upgrade_failure'; - -const app = uiModules.get('xpack/logstash'); - -app.directive('upgradeFailure', $injector => { - const $route = $injector.get('$route'); - const kbnUrl = $injector.get('kbnUrl'); - - return { - link: (scope, el) => { - const onRetry = () => { - $route.updateParams({ retry: true }); - $route.reload(); - }; - const onClose = () => { - scope.$evalAsync(kbnUrl.change('management/logstash/pipelines', {})); - }; - const isNewPipeline = isEmpty(scope.pipeline.id); - const isManualUpgrade = !!$route.current.params.retry; - - render( - - - , - el[0] - ); - }, - restrict: 'E', - scope: { - pipeline: '=', - }, - }; -}); diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.html b/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.html deleted file mode 100755 index e1c422d46dfdb6..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.js deleted file mode 100755 index 733f7dc3ae2e62..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/pipeline_edit_route.js +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import routes from 'ui/routes'; -import { toastNotifications } from 'ui/notify'; -import { i18n } from '@kbn/i18n'; -import template from './pipeline_edit_route.html'; -import 'plugins/logstash/services/pipeline'; -import 'plugins/logstash/services/license'; -import 'plugins/logstash/services/upgrade'; -import './components/pipeline_edit'; -import './components/upgrade_failure'; -import { updateLogstashSections } from 'plugins/logstash/lib/update_management_sections'; -import { Pipeline } from 'plugins/logstash/models/pipeline'; -import { getPipelineCreateBreadcrumbs, getPipelineEditBreadcrumbs } from '../breadcrumbs'; - -routes - .when('/management/logstash/pipelines/pipeline/:id/edit', { - k7Breadcrumbs: getPipelineEditBreadcrumbs, - }) - .when('/management/logstash/pipelines/new-pipeline', { - k7Breadcrumbs: getPipelineCreateBreadcrumbs, - }) - .defaults(/management\/logstash\/pipelines\/(new-pipeline|pipeline\/:id\/edit)/, { - template: template, - controller: class PipelineEditRouteController { - constructor($injector) { - const $route = $injector.get('$route'); - this.pipeline = $route.current.locals.pipeline; - this.isUpgraded = $route.current.locals.isUpgraded; - } - }, - controllerAs: 'pipelineEditRoute', - resolve: { - logstashTabs: $injector => { - const $route = $injector.get('$route'); - const pipelineId = $route.current.params.id; - updateLogstashSections(pipelineId); - }, - pipeline: function($injector) { - const $route = $injector.get('$route'); - const pipelineService = $injector.get('pipelineService'); - const licenseService = $injector.get('logstashLicenseService'); - const kbnUrl = $injector.get('kbnUrl'); - - const pipelineId = $route.current.params.id; - - if (!pipelineId) return new Pipeline(); - - return pipelineService - .loadPipeline(pipelineId) - .then(pipeline => (!!$route.current.params.clone ? pipeline.clone : pipeline)) - .catch(err => { - return licenseService.checkValidity().then(() => { - if (err.status !== 403) { - toastNotifications.addDanger( - i18n.translate('xpack.logstash.couldNotLoadPipelineErrorNotification', { - defaultMessage: `Couldn't load pipeline. Error: '{errStatusText}'.`, - values: { - errStatusText: err.statusText, - }, - }) - ); - } - - kbnUrl.redirect('/management/logstash/pipelines'); - return Promise.reject(); - }); - }); - }, - checkLicense: $injector => { - const licenseService = $injector.get('logstashLicenseService'); - return licenseService.checkValidity(); - }, - isUpgraded: $injector => { - const upgradeService = $injector.get('upgradeService'); - return upgradeService.executeUpgrade(); - }, - }, - }); - -routes.when('/management/logstash/pipelines/pipeline/:id', { - redirectTo: '/management/logstash/pipelines/pipeline/:id/edit', -}); diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/index.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/index.js deleted file mode 100755 index 7e8ca0e4c2c576..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './pipeline_list'; diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/pipeline_list.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/pipeline_list.js deleted file mode 100755 index b856979aed8b6d..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/components/pipeline_list/pipeline_list.js +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { render } from 'react-dom'; -import { uiModules } from 'ui/modules'; -import { toastNotifications } from 'ui/notify'; -import { I18nContext } from 'ui/i18n'; -import { PipelineList } from '../../../../components/pipeline_list'; -import 'plugins/logstash/services/pipelines'; -import 'plugins/logstash/services/license'; -import 'plugins/logstash/services/cluster'; -import 'plugins/logstash/services/monitoring'; - -const app = uiModules.get('xpack/logstash'); - -app.directive('pipelineList', function($injector) { - const pipelinesService = $injector.get('pipelinesService'); - const licenseService = $injector.get('logstashLicenseService'); - const clusterService = $injector.get('xpackLogstashClusterService'); - const monitoringService = $injector.get('xpackLogstashMonitoringService'); - const kbnUrl = $injector.get('kbnUrl'); - - return { - restrict: 'E', - link: (scope, el) => { - const openPipeline = id => - scope.$evalAsync(kbnUrl.change(`management/logstash/pipelines/pipeline/${id}/edit`)); - const createPipeline = () => - scope.$evalAsync(kbnUrl.change('management/logstash/pipelines/new-pipeline')); - const clonePipeline = id => - scope.$evalAsync(kbnUrl.change(`management/logstash/pipelines/pipeline/${id}/edit?clone`)); - render( - - - , - el[0] - ); - }, - scope: {}, - controllerAs: 'pipelineList', - }; -}); diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/index.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/index.js deleted file mode 100755 index f60decd1378d5c..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/index.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './register_management_section'; -import './pipeline_list_route'; diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.html b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.html deleted file mode 100755 index 55b3fabd701614..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.js deleted file mode 100755 index eb593207572c20..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/pipeline_list_route.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import routes from 'ui/routes'; -import { management } from 'ui/management'; -import template from './pipeline_list_route.html'; -import './components/pipeline_list'; -import 'plugins/logstash/services/license'; -import { getPipelineListBreadcrumbs } from '../breadcrumbs'; - -routes.when('/management/logstash/pipelines/', { - template, - k7Breadcrumbs: getPipelineListBreadcrumbs, -}); - -routes.defaults(/\/management/, { - resolve: { - logstashManagementSection: $injector => { - const licenseService = $injector.get('logstashLicenseService'); - const logstashSection = management.getSection('logstash/pipelines'); - - if (licenseService.enableLinks) { - logstashSection.show(); - logstashSection.enable(); - } else { - logstashSection.hide(); - } - }, - }, -}); diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/register_management_section.js b/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/register_management_section.js deleted file mode 100755 index e285418f5f2ae5..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_list/register_management_section.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { management } from 'ui/management'; -import { i18n } from '@kbn/i18n'; - -management.getSection('logstash').register('pipelines', { - display: i18n.translate('xpack.logstash.managementSection.pipelinesTitle', { - defaultMessage: 'Pipelines', - }), - order: 10, - url: '#/management/logstash/pipelines/', -}); - -management.getSection('logstash/pipelines').register('pipeline', { - visible: false, -}); - -management.getSection('logstash/pipelines/pipeline').register('edit', { - display: i18n.translate('xpack.logstash.managementSection.editPipelineTitle', { - defaultMessage: 'Edit pipeline', - }), - order: 1, - visible: false, -}); - -management.getSection('logstash/pipelines/pipeline').register('new', { - display: i18n.translate('xpack.logstash.managementSection.createPipelineTitle', { - defaultMessage: 'Create pipeline', - }), - order: 1, - visible: false, -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.factory.js deleted file mode 100755 index 0fee2804c704d4..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.factory.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { ClusterService } from './cluster_service'; - -uiModules.get('xpack/logstash').factory('xpackLogstashClusterService', $injector => { - const $http = $injector.get('$http'); - return new ClusterService($http); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/cluster/index.js b/x-pack/legacy/plugins/logstash/public/services/cluster/index.js deleted file mode 100755 index ba52657a27ca8b..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/cluster/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './cluster_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/license/index.js b/x-pack/legacy/plugins/logstash/public/services/license/index.js deleted file mode 100755 index 8be8fb5ccbc64f..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/license/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './license_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/license/license_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/license/license_service.factory.js deleted file mode 100755 index 0e131f9b94008d..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/license/license_service.factory.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { xpackInfo } from 'plugins/xpack_main/services/xpack_info'; -import 'ui/url'; -import { LogstashLicenseService } from './logstash_license_service'; - -uiModules.get('xpack/logstash').factory('logstashLicenseService', ($timeout, kbnUrl) => { - return new LogstashLicenseService(xpackInfo, kbnUrl, $timeout); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/license/logstash_license_service.js b/x-pack/legacy/plugins/logstash/public/services/license/logstash_license_service.js deleted file mode 100755 index 69cc8614a6ae26..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/license/logstash_license_service.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import React from 'react'; -import { toastNotifications } from 'ui/notify'; -import { MarkdownSimple } from '../../../../../../../src/plugins/kibana_react/public'; -import { PLUGIN } from '../../../../../../plugins/logstash/common/constants'; - -export class LogstashLicenseService { - constructor(xpackInfoService, kbnUrlService, $timeout) { - this.xpackInfoService = xpackInfoService; - this.kbnUrlService = kbnUrlService; - this.$timeout = $timeout; - } - - get enableLinks() { - return Boolean(this.xpackInfoService.get(`features.${PLUGIN.ID}.enableLinks`)); - } - - get isAvailable() { - return Boolean(this.xpackInfoService.get(`features.${PLUGIN.ID}.isAvailable`)); - } - - get isReadOnly() { - return Boolean(this.xpackInfoService.get(`features.${PLUGIN.ID}.isReadOnly`)); - } - - get message() { - return this.xpackInfoService.get(`features.${PLUGIN.ID}.message`); - } - - notifyAndRedirect() { - toastNotifications.addDanger({ - title: ( - - {this.xpackInfoService.get(`features.${PLUGIN.ID}.message`)} - - ), - }); - this.kbnUrlService.redirect('/management'); - } - - /** - * Checks if the license is valid or the license can perform downgraded UI tasks. - * Otherwise, notifies and redirects. - */ - checkValidity() { - return new Promise((resolve, reject) => { - this.$timeout(() => { - if (this.isAvailable) { - return resolve(); - } - - this.notifyAndRedirect(); - return reject(); - }, 10); // To allow latest XHR call to update license info - }); - } -} diff --git a/x-pack/legacy/plugins/logstash/public/services/monitoring/index.js b/x-pack/legacy/plugins/logstash/public/services/monitoring/index.js deleted file mode 100755 index 83b2105beb5ef8..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/monitoring/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './monitoring_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.factory.js deleted file mode 100755 index 271c776dd6f69c..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.factory.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { MonitoringService } from './monitoring_service'; -import '../cluster'; - -uiModules.get('xpack/logstash').factory('xpackLogstashMonitoringService', $injector => { - const $http = $injector.get('$http'); - const Promise = $injector.get('Promise'); - const monitoringUiEnabled = - $injector.has('monitoringUiEnabled') && $injector.get('monitoringUiEnabled'); - const clusterService = $injector.get('xpackLogstashClusterService'); - return new MonitoringService($http, Promise, monitoringUiEnabled, clusterService); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/pipeline/index.js b/x-pack/legacy/plugins/logstash/public/services/pipeline/index.js deleted file mode 100755 index 3b0e28bd555e6f..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipeline/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './pipeline_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.factory.js deleted file mode 100755 index cf93915425213b..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.factory.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { PipelineService } from './pipeline_service'; - -uiModules.get('xpack/logstash').factory('pipelineService', $injector => { - const $http = $injector.get('$http'); - const pipelinesService = $injector.get('pipelinesService'); - return new PipelineService($http, pipelinesService); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.js b/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.js deleted file mode 100755 index b5d0dbeb852d52..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipeline/pipeline_service.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import chrome from 'ui/chrome'; -import { ROUTES } from '../../../../../../plugins/logstash/common/constants'; -import { Pipeline } from 'plugins/logstash/models/pipeline'; - -export class PipelineService { - constructor($http, pipelinesService) { - this.$http = $http; - this.pipelinesService = pipelinesService; - this.basePath = chrome.addBasePath(ROUTES.API_ROOT); - } - - loadPipeline(id) { - return this.$http.get(`${this.basePath}/pipeline/${id}`).then(response => { - return Pipeline.fromUpstreamJSON(response.data); - }); - } - - savePipeline(pipelineModel) { - return this.$http - .put(`${this.basePath}/pipeline/${pipelineModel.id}`, pipelineModel.upstreamJSON) - .catch(e => { - throw e.data.message; - }); - } - - deletePipeline(id) { - return this.$http - .delete(`${this.basePath}/pipeline/${id}`) - .then(() => this.pipelinesService.addToRecentlyDeleted(id)) - .catch(e => { - throw e.data.message; - }); - } -} diff --git a/x-pack/legacy/plugins/logstash/public/services/pipelines/index.js b/x-pack/legacy/plugins/logstash/public/services/pipelines/index.js deleted file mode 100755 index e273e12d46c6d0..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipelines/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './pipelines_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.factory.js deleted file mode 100755 index 9295949e001eb3..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.factory.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { PipelinesService } from './pipelines_service'; -import '../monitoring'; - -uiModules.get('xpack/logstash').factory('pipelinesService', $injector => { - const $http = $injector.get('$http'); - const $window = $injector.get('$window'); - const Promise = $injector.get('Promise'); - const monitoringService = $injector.get('xpackLogstashMonitoringService'); - return new PipelinesService($http, $window, Promise, monitoringService); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.js b/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.js deleted file mode 100755 index d70c8be06fde4d..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/pipelines/pipelines_service.js +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import chrome from 'ui/chrome'; -import { ROUTES, MONITORING } from '../../../../../../plugins/logstash/common/constants'; -import { PipelineListItem } from 'plugins/logstash/models/pipeline_list_item'; - -const RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY = 'xpack.logstash.recentlyDeletedPipelines'; - -export class PipelinesService { - constructor($http, $window, Promise, monitoringService) { - this.$http = $http; - this.$window = $window; - this.Promise = Promise; - this.monitoringService = monitoringService; - this.basePath = chrome.addBasePath(ROUTES.API_ROOT); - } - - getPipelineList() { - return this.Promise.all([ - this.getManagementPipelineList(), - this.getMonitoringPipelineList(), - ]).then(([managementPipelines, monitoringPipelines]) => { - const now = Date.now(); - - // Monitoring will report centrally-managed pipelines as well, including recently-deleted centrally-managed ones. - // If there's a recently-deleted pipeline we're keeping track of BUT monitoring doesn't report it, that means - // it's not running in Logstash any more. So we can stop tracking it as a recently-deleted pipeline. - const monitoringPipelineIds = monitoringPipelines.map(pipeline => pipeline.id); - this.getRecentlyDeleted().forEach(recentlyDeletedPipeline => { - // We don't want to stop tracking the recently-deleted pipeline until Monitoring has had some - // time to report on it. Otherwise, if we stop tracking first, *then* Monitoring reports it, we'll - // still end up showing it in the list until Monitoring stops reporting it. - if (now - recentlyDeletedPipeline.deletedOn < MONITORING.ACTIVE_PIPELINE_RANGE_S * 1000) { - return; - } - - // If Monitoring is still reporting the pipeline, don't stop tracking it yet - if (monitoringPipelineIds.includes(recentlyDeletedPipeline.id)) { - return; - } - - this.removeFromRecentlyDeleted(recentlyDeletedPipeline.id); - }); - - // Merge centrally-managed pipelines with pipelines reported by monitoring. Take care to dedupe - // while merging because monitoring will (rightly) report centrally-managed pipelines as well, - // including recently-deleted ones! - const managementPipelineIds = managementPipelines.map(pipeline => pipeline.id); - return managementPipelines.concat( - monitoringPipelines.filter( - monitoringPipeline => - !managementPipelineIds.includes(monitoringPipeline.id) && - !this.isRecentlyDeleted(monitoringPipeline.id) - ) - ); - }); - } - - getManagementPipelineList() { - return this.$http - .get(`${this.basePath}/pipelines`) - .then(response => - response.data.pipelines.map(pipeline => PipelineListItem.fromUpstreamJSON(pipeline)) - ); - } - - getMonitoringPipelineList() { - return this.monitoringService.getPipelineList(); - } - - /** - * Delete a collection of pipelines - * - * @param pipelineIds Array of pipeline IDs - * @return Promise { numSuccesses, numErrors } - */ - deletePipelines(pipelineIds) { - const body = { - pipelineIds, - }; - return this.$http.post(`${this.basePath}/pipelines/delete`, body).then(response => { - this.addToRecentlyDeleted(...pipelineIds); - return response.data.results; - }); - } - - addToRecentlyDeleted(...pipelineIds) { - const recentlyDeletedPipelines = this.getRecentlyDeleted(); - const recentlyDeletedPipelineIds = recentlyDeletedPipelines.map(pipeline => pipeline.id); - pipelineIds.forEach(pipelineId => { - if (!recentlyDeletedPipelineIds.includes(pipelineId)) { - recentlyDeletedPipelines.push({ - id: pipelineId, - deletedOn: Date.now(), - }); - } - }); - this.setRecentlyDeleted(recentlyDeletedPipelines); - } - - removeFromRecentlyDeleted(...pipelineIds) { - const recentlyDeletedPipelinesToKeep = this.getRecentlyDeleted().filter( - recentlyDeletedPipeline => !pipelineIds.includes(recentlyDeletedPipeline.id) - ); - this.setRecentlyDeleted(recentlyDeletedPipelinesToKeep); - } - - isRecentlyDeleted(pipelineId) { - return this.getRecentlyDeleted() - .map(pipeline => pipeline.id) - .includes(pipelineId); - } - - getRecentlyDeleted() { - const recentlyDeletedPipelines = this.$window.localStorage.getItem( - RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY - ); - if (!recentlyDeletedPipelines) { - return []; - } - - return JSON.parse(recentlyDeletedPipelines); - } - - setRecentlyDeleted(recentlyDeletedPipelineIds) { - this.$window.localStorage.setItem( - RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY, - JSON.stringify(recentlyDeletedPipelineIds) - ); - } -} diff --git a/x-pack/legacy/plugins/logstash/public/services/security/index.js b/x-pack/legacy/plugins/logstash/public/services/security/index.js deleted file mode 100755 index c9ff911723156f..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/security/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { logstashSecurity } from './logstash_security'; diff --git a/x-pack/legacy/plugins/logstash/public/services/security/logstash_security.js b/x-pack/legacy/plugins/logstash/public/services/security/logstash_security.js deleted file mode 100755 index 0949038c9b6c73..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/security/logstash_security.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { xpackInfo } from 'plugins/xpack_main/services/xpack_info'; - -export const logstashSecurity = { - isSecurityEnabled() { - return Boolean(xpackInfo.get(`features.security`)); - }, -}; diff --git a/x-pack/legacy/plugins/logstash/public/services/upgrade/index.js b/x-pack/legacy/plugins/logstash/public/services/upgrade/index.js deleted file mode 100755 index 345d0d0ff68c6d..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/upgrade/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import './upgrade_service.factory'; diff --git a/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.factory.js b/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.factory.js deleted file mode 100755 index 925c6ae677bdf7..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.factory.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { uiModules } from 'ui/modules'; -import { UpgradeService } from './upgrade_service'; - -uiModules.get('xpack/logstash').factory('upgradeService', $injector => { - const $http = $injector.get('$http'); - return new UpgradeService($http); -}); diff --git a/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.js b/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.js deleted file mode 100755 index 2019bdc1bf1aaa..00000000000000 --- a/x-pack/legacy/plugins/logstash/public/services/upgrade/upgrade_service.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import chrome from 'ui/chrome'; -import { ROUTES } from '../../../../../../plugins/logstash/common/constants'; - -export class UpgradeService { - constructor($http) { - this.$http = $http; - this.basePath = chrome.addBasePath(ROUTES.API_ROOT); - } - - executeUpgrade() { - return this.$http - .post(`${this.basePath}/upgrade`) - .then(response => response.data.is_upgraded) - .catch(e => { - throw e.data.message; - }); - } -} diff --git a/x-pack/legacy/plugins/logstash/server/lib/check_license/__tests__/check_license.js b/x-pack/legacy/plugins/logstash/server/lib/check_license/__tests__/check_license.js deleted file mode 100755 index 5fcce0aaa12190..00000000000000 --- a/x-pack/legacy/plugins/logstash/server/lib/check_license/__tests__/check_license.js +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import expect from '@kbn/expect'; -import { set } from 'lodash'; -import { checkLicense } from '../check_license'; - -describe('check_license', function() { - let mockLicenseInfo; - beforeEach(() => (mockLicenseInfo = {})); - - describe('license information is undefined', () => { - beforeEach(() => (mockLicenseInfo = undefined)); - - it('should set isAvailable to false', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(false); - }); - - it('should set enableLinks to false', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(false); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - - describe('license information is not available', () => { - beforeEach(() => (mockLicenseInfo.isAvailable = () => false)); - - it('should set isAvailable to false', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(false); - }); - - it('should set enableLinks to false', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(false); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - - describe('license information is available', () => { - beforeEach(() => { - mockLicenseInfo.isAvailable = () => true; - set(mockLicenseInfo, 'license.getType', () => 'basic'); - }); - - describe('& license is > basic', () => { - beforeEach(() => { - set(mockLicenseInfo, 'license.isOneOf', () => true); - mockLicenseInfo.feature = () => ({ isEnabled: () => true }); // Security feature is enabled - }); - - describe('& license is active', () => { - beforeEach(() => set(mockLicenseInfo, 'license.isActive', () => true)); - - it('should set isAvailable to true', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(true); - }); - - it('should set enableLinks to true', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(true); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should not set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.be(undefined); - }); - }); - - describe('& license is expired', () => { - beforeEach(() => set(mockLicenseInfo, 'license.isActive', () => false)); - - it('should set isAvailable to true', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(true); - }); - - it('should set enableLinks to true', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(true); - }); - - it('should set isReadOnly to true', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(true); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - }); - - describe('& license is basic', () => { - beforeEach(() => { - set(mockLicenseInfo, 'license.isOneOf', () => false); - mockLicenseInfo.feature = () => ({ isEnabled: () => true }); // Security feature is enabled - }); - - describe('& license is active', () => { - beforeEach(() => set(mockLicenseInfo, 'license.isActive', () => true)); - - it('should set isAvailable to false', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(false); - }); - - it('should set enableLinks to false', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(false); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - - describe('& license is expired', () => { - beforeEach(() => set(mockLicenseInfo, 'license.isActive', () => false)); - - it('should set isAvailable to false', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(false); - }); - - it('should set enableLinks to false', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(false); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - }); - - describe('& security is disabled', () => { - beforeEach(() => { - mockLicenseInfo.feature = () => ({ isEnabled: () => false }); // Security feature is disabled - set(mockLicenseInfo, 'license.isOneOf', () => true); - set(mockLicenseInfo, 'license.isActive', () => true); - }); - - it('should set isAvailable to false', () => { - expect(checkLicense(mockLicenseInfo).isAvailable).to.be(false); - }); - - it('should set enableLinks to false', () => { - expect(checkLicense(mockLicenseInfo).enableLinks).to.be(false); - }); - - it('should set isReadOnly to false', () => { - expect(checkLicense(mockLicenseInfo).isReadOnly).to.be(false); - }); - - it('should set a message', () => { - expect(checkLicense(mockLicenseInfo).message).to.not.be(undefined); - }); - }); - }); -}); diff --git a/x-pack/legacy/plugins/logstash/server/lib/check_license/check_license.js b/x-pack/legacy/plugins/logstash/server/lib/check_license/check_license.js deleted file mode 100755 index 31136ae1c72a5c..00000000000000 --- a/x-pack/legacy/plugins/logstash/server/lib/check_license/check_license.js +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { i18n } from '@kbn/i18n'; - -export function checkLicense(xpackLicenseInfo) { - // If, for some reason, we cannot get the license information - // from Elasticsearch, assume worst case and disable the Logstash pipeline UI - if (!xpackLicenseInfo || !xpackLicenseInfo.isAvailable()) { - return { - isAvailable: false, - enableLinks: false, - isReadOnly: false, - message: i18n.translate( - 'xpack.logstash.managementSection.notPossibleToManagePipelinesMessage', - { - defaultMessage: - 'You cannot manage Logstash pipelines because license information is not available at this time.', - } - ), - }; - } - - const VALID_LICENSE_MODES = ['trial', 'standard', 'gold', 'platinum', 'enterprise']; - - const isLicenseModeValid = xpackLicenseInfo.license.isOneOf(VALID_LICENSE_MODES); - const isLicenseActive = xpackLicenseInfo.license.isActive(); - const licenseType = xpackLicenseInfo.license.getType(); - const isSecurityEnabled = xpackLicenseInfo.feature('security').isEnabled(); - - // Security is not enabled in ES - if (!isSecurityEnabled) { - const message = i18n.translate('xpack.logstash.managementSection.enableSecurityDescription', { - defaultMessage: - 'Security must be enabled in order to use Logstash pipeline management features.' + - ' Please set xpack.security.enabled: true in your elasticsearch.yml.', - }); - return { - isAvailable: false, - enableLinks: false, - isReadOnly: false, - message, - }; - } - - // License is not valid - if (!isLicenseModeValid) { - return { - isAvailable: false, - enableLinks: false, - isReadOnly: false, - message: i18n.translate('xpack.logstash.managementSection.licenseDoesNotSupportDescription', { - defaultMessage: - 'Your {licenseType} license does not support Logstash pipeline management features. Please upgrade your license.', - values: { licenseType }, - }), - }; - } - - // License is valid but not active, we go into a read-only mode. - if (!isLicenseActive) { - return { - isAvailable: true, - enableLinks: true, - isReadOnly: true, - message: i18n.translate( - 'xpack.logstash.managementSection.pipelineCrudOperationsNotAllowedDescription', - { - defaultMessage: - 'You cannot edit, create, or delete your Logstash pipelines because your {licenseType} license has expired.', - values: { licenseType }, - } - ), - }; - } - - // License is valid and active - return { - isAvailable: true, - enableLinks: true, - isReadOnly: false, - }; -} diff --git a/x-pack/legacy/plugins/logstash/server/lib/check_license/index.js b/x-pack/legacy/plugins/logstash/server/lib/check_license/index.js deleted file mode 100755 index f2c070fd44b6e6..00000000000000 --- a/x-pack/legacy/plugins/logstash/server/lib/check_license/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { checkLicense } from './check_license'; diff --git a/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/index.js b/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/index.js deleted file mode 100755 index 7b0f97c38d1292..00000000000000 --- a/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/index.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { registerLicenseChecker } from './register_license_checker'; diff --git a/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/register_license_checker.js b/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/register_license_checker.js deleted file mode 100755 index a0d06e77b410d2..00000000000000 --- a/x-pack/legacy/plugins/logstash/server/lib/register_license_checker/register_license_checker.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { mirrorPluginStatus } from '../../../../../server/lib/mirror_plugin_status'; -import { checkLicense } from '../check_license'; -import { PLUGIN } from '../../../../../../plugins/logstash/common/constants'; - -export function registerLicenseChecker(server) { - const xpackMainPlugin = server.plugins.xpack_main; - const logstashPlugin = server.plugins.logstash; - - mirrorPluginStatus(xpackMainPlugin, logstashPlugin); - xpackMainPlugin.status.once('green', () => { - // Register a function that is called whenever the xpack info changes, - // to re-compute the license check results for this plugin - xpackMainPlugin.info.feature(PLUGIN.ID).registerLicenseCheckResultsGenerator(checkLicense); - }); -} diff --git a/x-pack/plugins/logstash/kibana.json b/x-pack/plugins/logstash/kibana.json index bcc926535d3c28..97dbf58865a882 100644 --- a/x-pack/plugins/logstash/kibana.json +++ b/x-pack/plugins/logstash/kibana.json @@ -4,9 +4,13 @@ "kibanaVersion": "kibana", "configPath": ["xpack", "logstash"], "requiredPlugins": [ - "licensing" + "licensing", + "management" + ], + "optionalPlugins": [ + "home", + "security" ], - "optionalPlugins": ["security"], "server": true, - "ui": false + "ui": true } diff --git a/x-pack/legacy/plugins/logstash/public/sections/breadcrumbs.js b/x-pack/plugins/logstash/public/application/breadcrumbs.js similarity index 80% rename from x-pack/legacy/plugins/logstash/public/sections/breadcrumbs.js rename to x-pack/plugins/logstash/public/application/breadcrumbs.js index 3121a58ff6a74f..322b9860b37854 100644 --- a/x-pack/legacy/plugins/logstash/public/sections/breadcrumbs.js +++ b/x-pack/plugins/logstash/public/application/breadcrumbs.js @@ -5,11 +5,9 @@ */ import { i18n } from '@kbn/i18n'; -import { MANAGEMENT_BREADCRUMB } from 'ui/management'; export function getPipelineListBreadcrumbs() { return [ - MANAGEMENT_BREADCRUMB, { text: i18n.translate('xpack.logstash.pipelines.listBreadcrumb', { defaultMessage: 'Pipelines', @@ -19,12 +17,11 @@ export function getPipelineListBreadcrumbs() { ]; } -export function getPipelineEditBreadcrumbs($route) { - const { pipeline } = $route.current.locals; +export function getPipelineEditBreadcrumbs(pipelineId) { return [ ...getPipelineListBreadcrumbs(), { - text: pipeline.id, + text: pipelineId, }, ]; } diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/confirm_delete_pipeline_modal.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/confirm_delete_pipeline_modal.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/confirm_delete_pipeline_modal.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/confirm_delete_pipeline_modal.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/flex_item_setting.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/flex_item_setting.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/flex_item_setting.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/flex_item_setting.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/form_label_with_icon_tip.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/form_label_with_icon_tip.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/form_label_with_icon_tip.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/form_label_with_icon_tip.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/pipeline_editor.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/pipeline_editor.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/__snapshots__/pipeline_editor.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/__snapshots__/pipeline_editor.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/confirm_delete_pipeline_modal.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/confirm_delete_pipeline_modal.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/confirm_delete_pipeline_modal.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/confirm_delete_pipeline_modal.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/confirm_delete_pipeline_modal.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/confirm_delete_pipeline_modal.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/confirm_delete_pipeline_modal.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/confirm_delete_pipeline_modal.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/constants.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/constants.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/constants.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/constants.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/flex_item_setting.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/flex_item_setting.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/flex_item_setting.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/flex_item_setting.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/flex_item_setting.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/flex_item_setting.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/flex_item_setting.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/flex_item_setting.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/form_label_with_icon_tip.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/form_label_with_icon_tip.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/form_label_with_icon_tip.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/form_label_with_icon_tip.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/form_label_with_icon_tip.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/form_label_with_icon_tip.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/form_label_with_icon_tip.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/form_label_with_icon_tip.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/index.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/index.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/index.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js similarity index 97% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js index 5e430ccbd8cebc..e45820d56cc03d 100644 --- a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.js +++ b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js @@ -13,7 +13,7 @@ import 'brace/mode/plain_text'; import 'brace/theme/github'; import { isEmpty } from 'lodash'; -import { TOOLTIPS } from '../../../../../../plugins/logstash/common/constants/tooltips'; +import { TOOLTIPS } from '../../../../common/constants/tooltips'; import { EuiButton, EuiButtonEmpty, @@ -40,7 +40,6 @@ class PipelineEditorUi extends React.Component { const { pipeline: { id, description, pipeline, settings }, - username, } = this.props; const pipelineWorkersSet = typeof settings['pipeline.workers'] === 'number'; @@ -60,7 +59,6 @@ class PipelineEditorUi extends React.Component { 'queue.max_bytes': settings['queue.max_bytes.number'] + settings['queue.max_bytes.units'], 'queue.type': settings['queue.type'], }, - username, }, pipelineIdErrors: [], pipelineIdPattern: /^[A-Za-z\_][A-Za-z0-9\-\_]*$/, @@ -236,15 +234,7 @@ class PipelineEditorUi extends React.Component { }; getPipelineHeadingText = () => { - const { - routeService: { - current: { - params: { clone, id }, - }, - }, - isNewPipeline, - intl, - } = this.props; + const { clone, id, isNewPipeline, intl } = this.props; if (!!clone && id) { return intl.formatMessage( @@ -502,6 +492,8 @@ class PipelineEditorUi extends React.Component { } PipelineEditorUi.propTypes = { + id: PropTypes.string, + clone: PropTypes.bool.isRequired, close: PropTypes.func.isRequired, isNewPipeline: PropTypes.bool.isRequired, licenseService: PropTypes.shape({ @@ -527,20 +519,11 @@ PipelineEditorUi.propTypes = { deletePipeline: PropTypes.func.isRequired, savePipeline: PropTypes.func.isRequired, }).isRequired, - routeService: PropTypes.shape({ - current: PropTypes.shape({ - params: PropTypes.shape({ - clone: PropTypes.oneOf([true, undefined]), - id: PropTypes.string, - }), - }), - }).isRequired, toastNotifications: PropTypes.shape({ addWarning: PropTypes.func.isRequired, addSuccess: PropTypes.func.isRequired, addError: PropTypes.func.isRequired, }).isRequired, - username: PropTypes.string, }; export const PipelineEditor = injectI18n(PipelineEditorUi); diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.test.js similarity index 96% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.test.js index 2d7ed5f257fbda..bb5961ce36120c 100644 --- a/x-pack/legacy/plugins/logstash/public/components/pipeline_editor/pipeline_editor.test.js +++ b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.test.js @@ -17,7 +17,6 @@ describe('PipelineEditor component', () => { let open; let pipeline; let pipelineService; - let routeService; let toastNotifications; let username; @@ -47,14 +46,6 @@ describe('PipelineEditor component', () => { deletePipeline: jest.fn(), savePipeline: jest.fn(), }; - routeService = { - current: { - params: { - clone: undefined, - id: undefined, - }, - }, - }; toastNotifications = { addWarning: jest.fn(), addSuccess: jest.fn(), @@ -62,13 +53,14 @@ describe('PipelineEditor component', () => { }; username = 'elastic'; props = { + clone: false, + id: 'pipelineId', close, isNewPipeline, licenseService, open, pipeline, pipelineService, - routeService, toastNotifications, username, }; @@ -79,10 +71,8 @@ describe('PipelineEditor component', () => { }); it('matches snapshot for clone pipeline', () => { - routeService.current.params = { - clone: true, - id: 'pipelineToClone', - }; + props.clone = true; + props.id = 'pipelineToClone'; expect(shallowWithIntl()).toMatchSnapshot(); }); diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/add_role_alert.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/add_role_alert.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/add_role_alert.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/add_role_alert.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/alert_call_out.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/alert_call_out.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/alert_call_out.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/alert_call_out.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/confirm_delete_modal.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/confirm_delete_modal.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/confirm_delete_modal.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/confirm_delete_modal.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/enable_monitoring_alert.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/enable_monitoring_alert.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/enable_monitoring_alert.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/enable_monitoring_alert.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/info_alerts.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/info_alerts.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/info_alerts.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/info_alerts.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/pipelines_table.test.js.snap b/x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/pipelines_table.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/__snapshots__/pipelines_table.test.js.snap rename to x-pack/plugins/logstash/public/application/components/pipeline_list/__snapshots__/pipelines_table.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/add_role_alert.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/add_role_alert.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/add_role_alert.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/add_role_alert.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/add_role_alert.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/add_role_alert.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/add_role_alert.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/add_role_alert.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/alert_call_out.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/alert_call_out.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/alert_call_out.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/alert_call_out.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/alert_call_out.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/alert_call_out.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/alert_call_out.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/alert_call_out.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/confirm_delete_modal.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/confirm_delete_modal.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/confirm_delete_modal.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/confirm_delete_modal.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/confirm_delete_modal.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/confirm_delete_modal.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/confirm_delete_modal.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/confirm_delete_modal.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/constants.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/constants.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/constants.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/constants.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/enable_monitoring_alert.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/enable_monitoring_alert.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/enable_monitoring_alert.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/enable_monitoring_alert.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/enable_monitoring_alert.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/enable_monitoring_alert.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/enable_monitoring_alert.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/enable_monitoring_alert.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/index.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/index.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/index.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/info_alerts.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/info_alerts.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/info_alerts.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/info_alerts.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/info_alerts.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/info_alerts.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/info_alerts.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/info_alerts.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipeline_list.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/pipeline_list.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipeline_list.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/pipeline_list.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipeline_list.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/pipeline_list.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipeline_list.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/pipeline_list.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipelines_table.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/pipelines_table.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipelines_table.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/pipelines_table.js diff --git a/x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipelines_table.test.js b/x-pack/plugins/logstash/public/application/components/pipeline_list/pipelines_table.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/pipeline_list/pipelines_table.test.js rename to x-pack/plugins/logstash/public/application/components/pipeline_list/pipelines_table.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure.test.js.snap b/x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure.test.js.snap rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure_actions.test.js.snap b/x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure_actions.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure_actions.test.js.snap rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure_actions.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure_title.test.js.snap b/x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure_title.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/__snapshots__/upgrade_failure_title.test.js.snap rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/__snapshots__/upgrade_failure_title.test.js.snap diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/constants.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/constants.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/constants.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/constants.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/index.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/index.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/index.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure.test.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure.test.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_actions.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_actions.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_actions.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_actions.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_actions.test.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_actions.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_actions.test.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_actions.test.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_title.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_title.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_title.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_title.js diff --git a/x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_title.test.js b/x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_title.test.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/components/upgrade_failure/upgrade_failure_title.test.js rename to x-pack/plugins/logstash/public/application/components/upgrade_failure/upgrade_failure_title.test.js diff --git a/x-pack/plugins/logstash/public/application/index.tsx b/x-pack/plugins/logstash/public/application/index.tsx new file mode 100644 index 00000000000000..438038d6c885e0 --- /dev/null +++ b/x-pack/plugins/logstash/public/application/index.tsx @@ -0,0 +1,117 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import ReactDOM from 'react-dom'; +import { HashRouter, Route, Switch, Redirect } from 'react-router-dom'; +import { Observable } from 'rxjs'; +import { first } from 'rxjs/operators'; + +import { CoreStart } from 'src/core/public'; +import { ManagementAppMountParams } from '../../../../../src/plugins/management/public'; +import { + ClusterService, + MonitoringService, + PipelineService, + PipelinesService, + UpgradeService, + // @ts-ignore +} from '../services'; +// @ts-ignore +import { PipelineList } from './components/pipeline_list'; +import { PipelineEditView } from './pipeline_edit_view'; +// @ts-ignore +import { Pipeline } from '../models/pipeline'; +// @ts-ignore +import * as Breadcrumbs from './breadcrumbs'; + +export const renderApp = async ( + core: CoreStart, + { basePath, element, setBreadcrumbs }: ManagementAppMountParams, + licenseService$: Observable +) => { + const logstashLicenseService = await licenseService$.pipe(first()).toPromise(); + const clusterService = new ClusterService(core.http); + const monitoringService = new MonitoringService( + core.http, + // When monitoring is migrated this should be fetched from monitoring's plugin contract + core.injectedMetadata.getInjectedVar('monitoringUiEnabled'), + clusterService + ); + const pipelinesService = new PipelinesService(core.http, monitoringService); + const pipelineService = new PipelineService(core.http, pipelinesService); + const upgradeService = new UpgradeService(core.http); + + ReactDOM.render( + + + + { + setBreadcrumbs(Breadcrumbs.getPipelineListBreadcrumbs()); + return ( + history.push(`/pipeline/${id}/edit`)} + clonePipeline={(id: string) => history.push(`/pipeline/${id}/edit?clone`)} + createPipeline={() => history.push(`/pipeline/new-pipeline`)} + pipelinesService={pipelinesService} + toastNotifications={core.notifications.toasts} + /> + ); + }} + /> + ( + + )} + /> + } + /> + ( + + )} + /> + + + , + element + ); + + return () => { + ReactDOM.unmountComponentAtNode(element); + }; +}; diff --git a/x-pack/plugins/logstash/public/application/pipeline_edit_view.tsx b/x-pack/plugins/logstash/public/application/pipeline_edit_view.tsx new file mode 100644 index 00000000000000..c1b465febcd9ba --- /dev/null +++ b/x-pack/plugins/logstash/public/application/pipeline_edit_view.tsx @@ -0,0 +1,153 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React, { useState, useLayoutEffect, useCallback } from 'react'; +import { usePromise } from 'react-use'; +import { History } from 'history'; + +import { i18n } from '@kbn/i18n'; +import { ToastsStart } from 'src/core/public'; + +// @ts-ignore +import { UpgradeFailure } from './components/upgrade_failure'; +// @ts-ignore +import { PipelineEditor } from './components/pipeline_editor'; +// @ts-ignore +import { Pipeline } from '../models/pipeline'; +import { ManagementAppMountParams } from '../../../../../src/plugins/management/public'; +// @ts-ignore +import * as Breadcrumbs from './breadcrumbs'; + +const usePipeline = ( + pipelineService: any, + logstashLicenseService: any, + toasts: ToastsStart, + shouldClone: boolean, + id?: string +) => { + const mounted = usePromise(); + const [pipeline, setPipeline] = useState(null); + + useLayoutEffect(() => { + (async () => { + if (!id) { + return setPipeline(new Pipeline()); + } + + try { + const result = await mounted(pipelineService.loadPipeline(id) as Promise); + setPipeline(shouldClone ? result.clone : result); + } catch (e) { + await logstashLicenseService.checkValidity(); + if (e.status !== 403) { + toasts.addDanger( + i18n.translate('xpack.logstash.couldNotLoadPipelineErrorNotification', { + defaultMessage: `Couldn't load pipeline. Error: '{errStatusText}'.`, + values: { + errStatusText: e.statusText, + }, + }) + ); + } + } + })(); + }, [pipelineService, id, mounted, shouldClone, logstashLicenseService, toasts]); + + return pipeline; +}; + +const useIsUpgraded = (upgradeService: any) => { + const [isUpgraded, setIsUpgraded] = useState(null); + const mounted = usePromise(); + + useLayoutEffect(() => { + mounted(upgradeService.executeUpgrade() as Promise).then(result => + setIsUpgraded(result) + ); + }, [mounted, upgradeService]); + + return isUpgraded; +}; + +interface EditProps { + pipelineService: any; + logstashLicenseService: any; + upgradeService: any; + toasts: ToastsStart; + history: History; + setBreadcrumbs: ManagementAppMountParams['setBreadcrumbs']; + + // URL params + id?: string; +} + +export const PipelineEditView: React.FC = ({ + pipelineService, + logstashLicenseService, + upgradeService, + toasts, + history, + setBreadcrumbs, + id, +}) => { + const params = new URLSearchParams(history.location.search); + const shouldRetry = params.get('retry') === 'true'; + const shouldClone = params.get('clone') === ''; + + const pipeline = usePipeline(pipelineService, logstashLicenseService, toasts, shouldClone, id); + const isUpgraded = useIsUpgraded(upgradeService); + + const onRetry = useCallback(() => { + const newParams = new URLSearchParams(history.location.search); + newParams.set('retry', 'true'); + history.replace({ search: newParams.toString() }); + }, [history]); + const close = useCallback(() => { + history.push('/'); + }, [history]); + const open = useCallback( + (newId: string) => { + history.push(`/pipeline/${newId}/edit`); + }, + [history] + ); + + if (!pipeline || isUpgraded === null) { + return null; + } + + const isNewPipeline = !pipeline.id; + setBreadcrumbs( + isNewPipeline + ? Breadcrumbs.getPipelineCreateBreadcrumbs() + : Breadcrumbs.getPipelineEditBreadcrumbs(pipeline.id) + ); + + if (!isUpgraded) { + return ( + + ); + } + + return ( + + ); +}; diff --git a/x-pack/plugins/logstash/public/index.ts b/x-pack/plugins/logstash/public/index.ts new file mode 100644 index 00000000000000..26a1ca4e8c6c43 --- /dev/null +++ b/x-pack/plugins/logstash/public/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { LogstashPlugin } from './plugin'; + +export const plugin = () => new LogstashPlugin(); diff --git a/x-pack/legacy/plugins/logstash/public/lib/get_search_value/get_search_value.js b/x-pack/plugins/logstash/public/lib/get_search_value/get_search_value.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/lib/get_search_value/get_search_value.js rename to x-pack/plugins/logstash/public/lib/get_search_value/get_search_value.js diff --git a/x-pack/legacy/plugins/logstash/public/lib/get_search_value/index.js b/x-pack/plugins/logstash/public/lib/get_search_value/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/lib/get_search_value/index.js rename to x-pack/plugins/logstash/public/lib/get_search_value/index.js diff --git a/x-pack/legacy/plugins/logstash/public/models/cluster/cluster.js b/x-pack/plugins/logstash/public/models/cluster/cluster.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/models/cluster/cluster.js rename to x-pack/plugins/logstash/public/models/cluster/cluster.js diff --git a/x-pack/legacy/plugins/logstash/public/models/cluster/index.js b/x-pack/plugins/logstash/public/models/cluster/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/models/cluster/index.js rename to x-pack/plugins/logstash/public/models/cluster/index.js diff --git a/x-pack/legacy/plugins/logstash/public/models/pipeline/index.js b/x-pack/plugins/logstash/public/models/pipeline/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/models/pipeline/index.js rename to x-pack/plugins/logstash/public/models/pipeline/index.js diff --git a/x-pack/legacy/plugins/logstash/public/models/pipeline/pipeline.js b/x-pack/plugins/logstash/public/models/pipeline/pipeline.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/models/pipeline/pipeline.js rename to x-pack/plugins/logstash/public/models/pipeline/pipeline.js diff --git a/x-pack/legacy/plugins/logstash/public/models/pipeline_list_item/index.js b/x-pack/plugins/logstash/public/models/pipeline_list_item/index.js similarity index 100% rename from x-pack/legacy/plugins/logstash/public/models/pipeline_list_item/index.js rename to x-pack/plugins/logstash/public/models/pipeline_list_item/index.js diff --git a/x-pack/legacy/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js b/x-pack/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js similarity index 83% rename from x-pack/legacy/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js rename to x-pack/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js index 06d01a05bac278..3a304e467e0c0d 100755 --- a/x-pack/legacy/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js +++ b/x-pack/plugins/logstash/public/models/pipeline_list_item/pipeline_list_item.js @@ -5,10 +5,10 @@ */ import { pick, capitalize } from 'lodash'; +import moment from 'moment'; -import { getSearchValue } from 'plugins/logstash/lib/get_search_value'; -import { getMoment } from 'plugins/logstash/../common/lib/get_moment'; -import { PIPELINE } from '../../../../../../plugins/logstash/common/constants'; +import { getSearchValue } from '../../lib/get_search_value'; +import { PIPELINE } from '../../../common/constants'; /** * Represents the model for listing pipelines in the UI @@ -25,7 +25,7 @@ export class PipelineListItem { this.username = props.username; if (props.lastModified) { - this.lastModified = getMoment(props.lastModified); + this.lastModified = getMomentDate(props.lastModified); this.lastModifiedHumanized = capitalize(this.lastModified.fromNow()); } } @@ -51,3 +51,11 @@ export class PipelineListItem { return new PipelineListItem(props); } } + +function getMomentDate(date) { + if (!date) { + return null; + } + + return moment(date); +} diff --git a/x-pack/plugins/logstash/public/plugin.ts b/x-pack/plugins/logstash/public/plugin.ts new file mode 100644 index 00000000000000..91d1a39d3970cf --- /dev/null +++ b/x-pack/plugins/logstash/public/plugin.ts @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; +import { Subscription } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { once } from 'lodash'; + +import { CoreSetup, CoreStart, Plugin } from 'src/core/public'; +import { + HomePublicPluginSetup, + FeatureCatalogueCategory, +} from '../../../../src/plugins/home/public'; +import { LicensingPluginSetup } from '../../licensing/public'; +import { ManagementSetup } from '../../../../src/plugins/management/public'; + +// @ts-ignore +import { LogstashLicenseService } from './services'; + +interface SetupDeps { + licensing: LicensingPluginSetup; + management: ManagementSetup; + + home?: HomePublicPluginSetup; +} + +export class LogstashPlugin implements Plugin { + private licenseSubscription?: Subscription; + + public setup(core: CoreSetup, plugins: SetupDeps) { + const logstashLicense$ = plugins.licensing.license$.pipe( + map(license => new LogstashLicenseService(license)) + ); + const section = plugins.management.sections.register({ + id: 'logstash', + title: 'Logstash', + order: 30, + euiIconType: 'logoLogstash', + }); + const managementApp = section.registerApp({ + id: 'pipelines', + title: i18n.translate('xpack.logstash.managementSection.pipelinesTitle', { + defaultMessage: 'Pipelines', + }), + order: 10, + mount: async params => { + const [coreStart] = await core.getStartServices(); + const { renderApp } = await import('./application'); + + return renderApp(coreStart, params, logstashLicense$); + }, + }); + + this.licenseSubscription = logstashLicense$.subscribe((license: any) => { + if (license.enableLinks) { + managementApp.enable(); + } else { + managementApp.disable(); + } + + if (plugins.home && license.enableLinks) { + // Ensure that we don't register the feature more than once + once(() => { + plugins.home!.featureCatalogue.register({ + id: 'management_logstash', + title: i18n.translate('xpack.logstash.homeFeature.logstashPipelinesTitle', { + defaultMessage: 'Logstash Pipelines', + }), + description: i18n.translate('xpack.logstash.homeFeature.logstashPipelinesDescription', { + defaultMessage: 'Create, delete, update, and clone data ingestion pipelines.', + }), + icon: 'pipelineApp', + path: '/app/kibana#/management/logstash/pipelines', + showOnHomePage: true, + category: FeatureCatalogueCategory.ADMIN, + }); + }); + } + }); + } + + public start(core: CoreStart) {} + + public stop() { + if (this.licenseSubscription) { + this.licenseSubscription.unsubscribe(); + } + } +} diff --git a/x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.js b/x-pack/plugins/logstash/public/services/cluster/cluster_service.js similarity index 51% rename from x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.js rename to x-pack/plugins/logstash/public/services/cluster/cluster_service.js index e89c2fe7d11bf9..20f3b0d349c803 100755 --- a/x-pack/legacy/plugins/logstash/public/services/cluster/cluster_service.js +++ b/x-pack/plugins/logstash/public/services/cluster/cluster_service.js @@ -4,22 +4,20 @@ * you may not use this file except in compliance with the Elastic License. */ -import chrome from 'ui/chrome'; -import { ROUTES } from '../../../../../../plugins/logstash/common/constants'; -import { Cluster } from 'plugins/logstash/models/cluster'; +import { ROUTES } from '../../../common/constants'; +import { Cluster } from '../../models/cluster'; export class ClusterService { - constructor($http) { - this.$http = $http; - this.basePath = chrome.addBasePath(ROUTES.API_ROOT); + constructor(http) { + this.http = http; } loadCluster() { - return this.$http.get(`${this.basePath}/cluster`).then(response => { - if (!response.data) { + return this.http.get(`${ROUTES.API_ROOT}/cluster`).then(response => { + if (!response) { return; } - return Cluster.fromUpstreamJSON(response.data.cluster); + return Cluster.fromUpstreamJSON(response.cluster); }); } diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/index.js b/x-pack/plugins/logstash/public/services/cluster/index.js similarity index 82% rename from x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/index.js rename to x-pack/plugins/logstash/public/services/cluster/index.js index 5889bbdf96a93c..4417262d9f442e 100755 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/pipeline_edit/index.js +++ b/x-pack/plugins/logstash/public/services/cluster/index.js @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -import './pipeline_edit'; +export { ClusterService } from './cluster_service'; diff --git a/x-pack/plugins/logstash/public/services/index.js b/x-pack/plugins/logstash/public/services/index.js new file mode 100644 index 00000000000000..a7e8aa5c6259f5 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/index.js @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { ClusterService } from './cluster'; +export { LogstashLicenseService } from './license'; +export { MonitoringService } from './monitoring'; +export { PipelineService } from './pipeline'; +export { PipelinesService } from './pipelines'; +export { UpgradeService } from './upgrade'; diff --git a/x-pack/legacy/plugins/logstash/public/lib/update_management_sections/index.js b/x-pack/plugins/logstash/public/services/license/index.js similarity index 77% rename from x-pack/legacy/plugins/logstash/public/lib/update_management_sections/index.js rename to x-pack/plugins/logstash/public/services/license/index.js index 9d53d4dd61163c..64f39b1144cee3 100755 --- a/x-pack/legacy/plugins/logstash/public/lib/update_management_sections/index.js +++ b/x-pack/plugins/logstash/public/services/license/index.js @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export { updateLogstashSections } from './update_logstash_sections'; +export { LogstashLicenseService } from './logstash_license_service'; diff --git a/x-pack/plugins/logstash/public/services/license/logstash_license_service.js b/x-pack/plugins/logstash/public/services/license/logstash_license_service.js new file mode 100755 index 00000000000000..b836b75b89cc70 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/license/logstash_license_service.js @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export class LogstashLicenseService { + constructor(license, navigateToApp, toasts) { + this.license = license; + this.navigateToApp = navigateToApp; + this.toasts = toasts; + } + + get enableLinks() { + return this.calculated.enableLinks; + } + + get isAvailable() { + return this.calculated.isAvailable; + } + + get isReadOnly() { + return this.calculated.isReadOnly; + } + + get message() { + return this.calculated.message; + } + + get isSecurityEnabled() { + return this.license.getFeature(`security`).isEnabled; + } + + /** + * Checks if the license is valid or the license can perform downgraded UI tasks. + * Rejects if the plugin is not available due to license. + */ + checkValidity() { + return new Promise((resolve, reject) => { + if (this.isAvailable) { + return resolve(); + } + + return reject(); + }); + } + + get calculated() { + if (!this.license) { + throw new Error(`No license available!`); + } + + if (!this.isSecurityEnabled) { + return { + isAvailable: false, + enableLinks: false, + isReadOnly: false, + message: i18n.translate('xpack.logstash.managementSection.enableSecurityDescription', { + defaultMessage: + 'Security must be enabled in order to use Logstash pipeline management features.' + + ' Please set xpack.security.enabled: true in your elasticsearch.yml.', + }), + }; + } + + if (!this.license.hasAtLeast('standard')) { + return { + isAvailable: false, + enableLinks: false, + isReadOnly: false, + message: i18n.translate( + 'xpack.logstash.managementSection.licenseDoesNotSupportDescription', + { + defaultMessage: + 'Your {licenseType} license does not support Logstash pipeline management features. Please upgrade your license.', + values: { licenseType: this.license.type }, + } + ), + }; + } + + if (!this.license.isActive) { + return { + isAvailable: true, + enableLinks: true, + isReadonly: true, + message: i18n.translate( + 'xpack.logstash.managementSection.pipelineCrudOperationsNotAllowedDescription', + { + defaultMessage: + 'You cannot edit, create, or delete your Logstash pipelines because your {licenseType} license has expired.', + values: { licenseType: this.license.type }, + } + ), + }; + } + + return { + isAvailable: true, + enableLinks: true, + isReadOnly: false, + }; + } +} diff --git a/x-pack/plugins/logstash/public/services/monitoring/index.js b/x-pack/plugins/logstash/public/services/monitoring/index.js new file mode 100755 index 00000000000000..bc0e8b6bc978a7 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/monitoring/index.js @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { MonitoringService } from './monitoring_service'; diff --git a/x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.js b/x-pack/plugins/logstash/public/services/monitoring/monitoring_service.js similarity index 58% rename from x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.js rename to x-pack/plugins/logstash/public/services/monitoring/monitoring_service.js index 6103e730c21714..d551f4fba61d2e 100755 --- a/x-pack/legacy/plugins/logstash/public/services/monitoring/monitoring_service.js +++ b/x-pack/plugins/logstash/public/services/monitoring/monitoring_service.js @@ -5,17 +5,14 @@ */ import moment from 'moment'; -import chrome from 'ui/chrome'; -import { ROUTES, MONITORING } from '../../../../../../plugins/logstash/common/constants'; -import { PipelineListItem } from 'plugins/logstash/models/pipeline_list_item'; +import { ROUTES, MONITORING } from '../../../common/constants'; +import { PipelineListItem } from '../../models/pipeline_list_item'; export class MonitoringService { - constructor($http, Promise, monitoringUiEnabled, clusterService) { - this.$http = $http; - this.Promise = Promise; + constructor(http, monitoringUiEnabled, clusterService) { + this.http = http; this.monitoringUiEnabled = monitoringUiEnabled; this.clusterService = clusterService; - this.basePath = chrome.addBasePath(ROUTES.MONITORING_API_ROOT); } isMonitoringEnabled() { @@ -30,18 +27,18 @@ export class MonitoringService { return this.clusterService .loadCluster() .then(cluster => { - const url = `${this.basePath}/v1/clusters/${cluster.uuid}/logstash/pipeline_ids`; + const url = `${ROUTES.MONITORING_API_ROOT}/v1/clusters/${cluster.uuid}/logstash/pipeline_ids`; const now = moment.utc(); - const body = { + const body = JSON.stringify({ timeRange: { max: now.toISOString(), min: now.subtract(MONITORING.ACTIVE_PIPELINE_RANGE_S, 'seconds').toISOString(), }, - }; - return this.$http.post(url, body); + }); + return this.http.post(url, { body }); }) .then(response => - response.data.map(pipeline => PipelineListItem.fromUpstreamMonitoringJSON(pipeline)) + response.map(pipeline => PipelineListItem.fromUpstreamMonitoringJSON(pipeline)) ) .catch(() => []); } diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/index.js b/x-pack/plugins/logstash/public/services/pipeline/index.js similarity index 81% rename from x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/index.js rename to x-pack/plugins/logstash/public/services/pipeline/index.js index 3a9a6b860c51f1..70d228b34860b9 100755 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/components/upgrade_failure/index.js +++ b/x-pack/plugins/logstash/public/services/pipeline/index.js @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -import './upgrade_failure'; +export { PipelineService } from './pipeline_service'; diff --git a/x-pack/plugins/logstash/public/services/pipeline/pipeline_service.js b/x-pack/plugins/logstash/public/services/pipeline/pipeline_service.js new file mode 100755 index 00000000000000..7c3e18e745d821 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/pipeline/pipeline_service.js @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { ROUTES } from '../../../common/constants'; +import { Pipeline } from '../../models/pipeline'; + +export class PipelineService { + constructor(http, pipelinesService) { + this.http = http; + this.pipelinesService = pipelinesService; + } + + loadPipeline(id) { + return this.http.get(`${ROUTES.API_ROOT}/pipeline/${id}`).then(response => { + return Pipeline.fromUpstreamJSON(response); + }); + } + + savePipeline(pipelineModel) { + return this.http + .put(`${ROUTES.API_ROOT}/pipeline/${pipelineModel.id}`, { + body: JSON.stringify(pipelineModel.upstreamJSON), + }) + .catch(e => { + throw e.message; + }); + } + + deletePipeline(id) { + return this.http + .delete(`${ROUTES.API_ROOT}/pipeline/${id}`) + .then(() => this.pipelinesService.addToRecentlyDeleted(id)) + .catch(e => { + throw e.message; + }); + } +} diff --git a/x-pack/legacy/plugins/logstash/common/lib/index.js b/x-pack/plugins/logstash/public/services/pipelines/index.js similarity index 81% rename from x-pack/legacy/plugins/logstash/common/lib/index.js rename to x-pack/plugins/logstash/public/services/pipelines/index.js index 6ed1d24a377916..a932dd4b951f4e 100755 --- a/x-pack/legacy/plugins/logstash/common/lib/index.js +++ b/x-pack/plugins/logstash/public/services/pipelines/index.js @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export { getMoment } from './get_moment'; +export { PipelinesService } from './pipelines_service'; diff --git a/x-pack/plugins/logstash/public/services/pipelines/pipelines_service.js b/x-pack/plugins/logstash/public/services/pipelines/pipelines_service.js new file mode 100755 index 00000000000000..00610a23f27177 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/pipelines/pipelines_service.js @@ -0,0 +1,128 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { ROUTES, MONITORING } from '../../../common/constants'; +import { PipelineListItem } from '../../models/pipeline_list_item'; + +const RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY = 'xpack.logstash.recentlyDeletedPipelines'; + +export class PipelinesService { + constructor(http, monitoringService) { + this.http = http; + this.monitoringService = monitoringService; + } + + getPipelineList() { + return Promise.all([this.getManagementPipelineList(), this.getMonitoringPipelineList()]).then( + ([managementPipelines, monitoringPipelines]) => { + const now = Date.now(); + + // Monitoring will report centrally-managed pipelines as well, including recently-deleted centrally-managed ones. + // If there's a recently-deleted pipeline we're keeping track of BUT monitoring doesn't report it, that means + // it's not running in Logstash any more. So we can stop tracking it as a recently-deleted pipeline. + const monitoringPipelineIds = monitoringPipelines.map(pipeline => pipeline.id); + this.getRecentlyDeleted().forEach(recentlyDeletedPipeline => { + // We don't want to stop tracking the recently-deleted pipeline until Monitoring has had some + // time to report on it. Otherwise, if we stop tracking first, *then* Monitoring reports it, we'll + // still end up showing it in the list until Monitoring stops reporting it. + if (now - recentlyDeletedPipeline.deletedOn < MONITORING.ACTIVE_PIPELINE_RANGE_S * 1000) { + return; + } + + // If Monitoring is still reporting the pipeline, don't stop tracking it yet + if (monitoringPipelineIds.includes(recentlyDeletedPipeline.id)) { + return; + } + + this.removeFromRecentlyDeleted(recentlyDeletedPipeline.id); + }); + + // Merge centrally-managed pipelines with pipelines reported by monitoring. Take care to dedupe + // while merging because monitoring will (rightly) report centrally-managed pipelines as well, + // including recently-deleted ones! + const managementPipelineIds = managementPipelines.map(pipeline => pipeline.id); + return managementPipelines.concat( + monitoringPipelines.filter( + monitoringPipeline => + !managementPipelineIds.includes(monitoringPipeline.id) && + !this.isRecentlyDeleted(monitoringPipeline.id) + ) + ); + } + ); + } + + getManagementPipelineList() { + return this.http.get(`${ROUTES.API_ROOT}/pipelines`).then(response => { + return response.pipelines.map(pipeline => PipelineListItem.fromUpstreamJSON(pipeline)); + }); + } + + getMonitoringPipelineList() { + return this.monitoringService.getPipelineList(); + } + + /** + * Delete a collection of pipelines + * + * @param pipelineIds Array of pipeline IDs + * @return Promise { numSuccesses, numErrors } + */ + deletePipelines(pipelineIds) { + const body = JSON.stringify({ + pipelineIds, + }); + return this.http.post(`${ROUTES.API_ROOT}/pipelines/delete`, { body }).then(response => { + this.addToRecentlyDeleted(...pipelineIds); + return response.results; + }); + } + + addToRecentlyDeleted(...pipelineIds) { + const recentlyDeletedPipelines = this.getRecentlyDeleted(); + const recentlyDeletedPipelineIds = recentlyDeletedPipelines.map(pipeline => pipeline.id); + pipelineIds.forEach(pipelineId => { + if (!recentlyDeletedPipelineIds.includes(pipelineId)) { + recentlyDeletedPipelines.push({ + id: pipelineId, + deletedOn: Date.now(), + }); + } + }); + this.setRecentlyDeleted(recentlyDeletedPipelines); + } + + removeFromRecentlyDeleted(...pipelineIds) { + const recentlyDeletedPipelinesToKeep = this.getRecentlyDeleted().filter( + recentlyDeletedPipeline => !pipelineIds.includes(recentlyDeletedPipeline.id) + ); + this.setRecentlyDeleted(recentlyDeletedPipelinesToKeep); + } + + isRecentlyDeleted(pipelineId) { + return this.getRecentlyDeleted() + .map(pipeline => pipeline.id) + .includes(pipelineId); + } + + getRecentlyDeleted() { + const recentlyDeletedPipelines = window.localStorage.getItem( + RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY + ); + if (!recentlyDeletedPipelines) { + return []; + } + + return JSON.parse(recentlyDeletedPipelines); + } + + setRecentlyDeleted(recentlyDeletedPipelineIds) { + window.localStorage.setItem( + RECENTLY_DELETED_PIPELINE_IDS_STORAGE_KEY, + JSON.stringify(recentlyDeletedPipelineIds) + ); + } +} diff --git a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/index.js b/x-pack/plugins/logstash/public/services/upgrade/index.js similarity index 82% rename from x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/index.js rename to x-pack/plugins/logstash/public/services/upgrade/index.js index 4b699ed79cd26b..1c835b11ae4233 100755 --- a/x-pack/legacy/plugins/logstash/public/sections/pipeline_edit/index.js +++ b/x-pack/plugins/logstash/public/services/upgrade/index.js @@ -4,4 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -import './pipeline_edit_route'; +export { UpgradeService } from './upgrade_service'; diff --git a/x-pack/plugins/logstash/public/services/upgrade/upgrade_service.js b/x-pack/plugins/logstash/public/services/upgrade/upgrade_service.js new file mode 100755 index 00000000000000..7bd101ebee6b00 --- /dev/null +++ b/x-pack/plugins/logstash/public/services/upgrade/upgrade_service.js @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { ROUTES } from '../../../common/constants'; + +export class UpgradeService { + constructor(http) { + this.http = http; + } + + executeUpgrade() { + return this.http + .post(`${ROUTES.API_ROOT}/upgrade`) + .then(response => response.is_upgraded) + .catch(e => { + throw e.message; + }); + } +} diff --git a/x-pack/plugins/logstash/server/routes/pipeline/save.ts b/x-pack/plugins/logstash/server/routes/pipeline/save.ts index 556c281944a856..e484d0e221b6d1 100644 --- a/x-pack/plugins/logstash/server/routes/pipeline/save.ts +++ b/x-pack/plugins/logstash/server/routes/pipeline/save.ts @@ -25,7 +25,6 @@ export function registerPipelineSaveRoute(router: IRouter, security?: SecurityPl id: schema.string(), description: schema.string(), pipeline: schema.string(), - username: schema.string(), settings: schema.maybe(schema.object({}, { unknowns: 'allow' })), }), }, diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index adb0f063f5e77b..877f8163c44b9c 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -8797,8 +8797,6 @@ "xpack.logstash.idFormatErrorMessage": "パイプライン ID は文字またはアンダーラインで始まる必要があり、文字、アンダーライン、ハイフン、数字のみ使用できます", "xpack.logstash.insufficientUserPermissionsDescription": "Logstash パイプラインの管理に必要なユーザーパーミッションがありません", "xpack.logstash.kibanaManagementPipelinesTitle": "Kibana の管理で作成されたパイプラインだけがここに表示されます", - "xpack.logstash.managementSection.createPipelineTitle": "パイプラインの作成", - "xpack.logstash.managementSection.editPipelineTitle": "パイプラインの編集", "xpack.logstash.managementSection.enableSecurityDescription": "Logstash パイプライン管理機能を使用するには、セキュリティを有効にする必要があります。elasticsearch.yml で xpack.security.enabled: true に設定してください。", "xpack.logstash.managementSection.licenseDoesNotSupportDescription": "ご使用の {licenseType} ライセンスは Logstash パイプライン管理をサポートしていません。ライセンスをアップグレードしてください。", "xpack.logstash.managementSection.notPossibleToManagePipelinesMessage": "現在ライセンス情報が利用できないため Logstash パイプラインを使用できません。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 588eb0e3cfb690..2aac5dd24a1b3c 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -8800,8 +8800,6 @@ "xpack.logstash.idFormatErrorMessage": "管道 ID 必须以字母或下划线开头,并只能包含字母、下划线、短划线和数字", "xpack.logstash.insufficientUserPermissionsDescription": "管理 Logstash 管道的用户权限不足", "xpack.logstash.kibanaManagementPipelinesTitle": "仅在 Kibana“管理”中创建的管道显示在此处", - "xpack.logstash.managementSection.createPipelineTitle": "创建管道", - "xpack.logstash.managementSection.editPipelineTitle": "编辑管道", "xpack.logstash.managementSection.enableSecurityDescription": "必须启用 Security,才能使用 Logstash 管道管理功能。请在 elasticsearch.yml 中设置 xpack.security.enabled: true。", "xpack.logstash.managementSection.licenseDoesNotSupportDescription": "您的{licenseType}许可不支持 Logstash 管道管理功能。请升级您的许可。", "xpack.logstash.managementSection.notPossibleToManagePipelinesMessage": "您不能管理 Logstash 管道,因为许可信息当前不可用。", diff --git a/x-pack/test/api_integration/apis/logstash/pipeline/delete.ts b/x-pack/test/api_integration/apis/logstash/pipeline/delete.ts index cdbf5a3e6a1fea..2463dbe4500b5f 100644 --- a/x-pack/test/api_integration/apis/logstash/pipeline/delete.ts +++ b/x-pack/test/api_integration/apis/logstash/pipeline/delete.ts @@ -20,7 +20,6 @@ export default function({ getService }: FtrProviderContext) { .send({ id: 'fast_generator', description: 'foobar baz', - username: 'seger', pipeline: 'input { generator {} }\n\n output { stdout {} }', }) .expect(204); diff --git a/x-pack/test/api_integration/apis/logstash/pipeline/save.ts b/x-pack/test/api_integration/apis/logstash/pipeline/save.ts index 2ca9fbe7d68e00..ca0cfb19b9454d 100644 --- a/x-pack/test/api_integration/apis/logstash/pipeline/save.ts +++ b/x-pack/test/api_integration/apis/logstash/pipeline/save.ts @@ -28,7 +28,6 @@ export default function({ getService }: FtrProviderContext) { .send({ id: 'fast_generator', description: 'foobar baz', - username: 'seger', pipeline: 'input { generator {} }\n\n output { stdout {} }', }) .expect(204); From e0ee068c6e8ac26afa85e47e9ef018d8a98fc90d Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Tue, 21 Apr 2020 11:45:33 -0700 Subject: [PATCH 48/54] [Metrics UI] Allow users to create alerts from the central Alerts UI (#63803) (#63906) Co-authored-by: Elastic Machine --- .../infra/common/http_api/source_api.ts | 188 ++++++++++++++++++ .../alerting/metrics/expression.tsx | 111 +++-------- .../infra/public/containers/source/source.tsx | 2 +- .../containers/source/use_source_via_http.ts | 92 +++++++++ .../infra/public/hooks/use_http_request.tsx | 20 +- x-pack/plugins/infra/server/infra_server.ts | 2 + .../infra/server/lib/sources/defaults.ts | 2 +- .../plugins/infra/server/lib/sources/index.ts | 2 +- .../lib/sources/saved_object_mappings.ts | 2 +- .../infra/server/lib/sources/sources.ts | 8 +- .../plugins/infra/server/lib/sources/types.ts | 149 -------------- x-pack/plugins/infra/server/plugin.ts | 2 +- .../infra/server/routes/source/index.ts | 65 ++++++ 13 files changed, 402 insertions(+), 243 deletions(-) create mode 100644 x-pack/plugins/infra/common/http_api/source_api.ts create mode 100644 x-pack/plugins/infra/public/containers/source/use_source_via_http.ts delete mode 100644 x-pack/plugins/infra/server/lib/sources/types.ts create mode 100644 x-pack/plugins/infra/server/routes/source/index.ts diff --git a/x-pack/plugins/infra/common/http_api/source_api.ts b/x-pack/plugins/infra/common/http_api/source_api.ts new file mode 100644 index 00000000000000..218f8cebc98692 --- /dev/null +++ b/x-pack/plugins/infra/common/http_api/source_api.ts @@ -0,0 +1,188 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +/* eslint-disable @typescript-eslint/no-empty-interface */ + +import * as rt from 'io-ts'; +import moment from 'moment'; +import { pipe } from 'fp-ts/lib/pipeable'; +import { chain } from 'fp-ts/lib/Either'; + +export const TimestampFromString = new rt.Type( + 'TimestampFromString', + (input): input is number => typeof input === 'number', + (input, context) => + pipe( + rt.string.validate(input, context), + chain(stringInput => { + const momentValue = moment(stringInput); + return momentValue.isValid() + ? rt.success(momentValue.valueOf()) + : rt.failure(stringInput, context); + }) + ), + output => new Date(output).toISOString() +); + +/** + * Stored source configuration as read from and written to saved objects + */ + +const SavedSourceConfigurationFieldsRuntimeType = rt.partial({ + container: rt.string, + host: rt.string, + pod: rt.string, + tiebreaker: rt.string, + timestamp: rt.string, +}); + +export const SavedSourceConfigurationTimestampColumnRuntimeType = rt.type({ + timestampColumn: rt.type({ + id: rt.string, + }), +}); + +export const SavedSourceConfigurationMessageColumnRuntimeType = rt.type({ + messageColumn: rt.type({ + id: rt.string, + }), +}); + +export const SavedSourceConfigurationFieldColumnRuntimeType = rt.type({ + fieldColumn: rt.type({ + id: rt.string, + field: rt.string, + }), +}); + +export const SavedSourceConfigurationColumnRuntimeType = rt.union([ + SavedSourceConfigurationTimestampColumnRuntimeType, + SavedSourceConfigurationMessageColumnRuntimeType, + SavedSourceConfigurationFieldColumnRuntimeType, +]); + +export const SavedSourceConfigurationRuntimeType = rt.partial({ + name: rt.string, + description: rt.string, + metricAlias: rt.string, + logAlias: rt.string, + fields: SavedSourceConfigurationFieldsRuntimeType, + logColumns: rt.array(SavedSourceConfigurationColumnRuntimeType), +}); + +export interface InfraSavedSourceConfiguration + extends rt.TypeOf {} + +export const pickSavedSourceConfiguration = ( + value: InfraSourceConfiguration +): InfraSavedSourceConfiguration => { + const { name, description, metricAlias, logAlias, fields, logColumns } = value; + const { container, host, pod, tiebreaker, timestamp } = fields; + + return { + name, + description, + metricAlias, + logAlias, + fields: { container, host, pod, tiebreaker, timestamp }, + logColumns, + }; +}; + +/** + * Static source configuration as read from the configuration file + */ + +const StaticSourceConfigurationFieldsRuntimeType = rt.partial({ + ...SavedSourceConfigurationFieldsRuntimeType.props, + message: rt.array(rt.string), +}); + +export const StaticSourceConfigurationRuntimeType = rt.partial({ + name: rt.string, + description: rt.string, + metricAlias: rt.string, + logAlias: rt.string, + fields: StaticSourceConfigurationFieldsRuntimeType, + logColumns: rt.array(SavedSourceConfigurationColumnRuntimeType), +}); + +export interface InfraStaticSourceConfiguration + extends rt.TypeOf {} + +/** + * Full source configuration type after all cleanup has been done at the edges + */ + +const SourceConfigurationFieldsRuntimeType = rt.type({ + ...StaticSourceConfigurationFieldsRuntimeType.props, +}); + +export const SourceConfigurationRuntimeType = rt.type({ + ...SavedSourceConfigurationRuntimeType.props, + fields: SourceConfigurationFieldsRuntimeType, + logColumns: rt.array(SavedSourceConfigurationColumnRuntimeType), +}); + +export const SourceRuntimeType = rt.intersection([ + rt.type({ + id: rt.string, + origin: rt.keyof({ + fallback: null, + internal: null, + stored: null, + }), + configuration: SourceConfigurationRuntimeType, + }), + rt.partial({ + version: rt.string, + updatedAt: rt.number, + }), +]); + +export interface InfraSourceConfiguration + extends rt.TypeOf {} + +export interface InfraSource extends rt.TypeOf {} + +const SourceStatusFieldRuntimeType = rt.type({ + name: rt.string, + type: rt.string, + searchable: rt.boolean, + aggregatable: rt.boolean, + displayable: rt.boolean, +}); + +const SourceStatusRuntimeType = rt.type({ + logIndicesExist: rt.boolean, + metricIndicesExist: rt.boolean, + indexFields: rt.array(SourceStatusFieldRuntimeType), +}); + +export const SourceResponseRuntimeType = rt.type({ + source: SourceRuntimeType, + status: SourceStatusRuntimeType, +}); + +export type SourceResponse = rt.TypeOf; + +/** + * Saved object type with metadata + */ + +export const SourceConfigurationSavedObjectRuntimeType = rt.intersection([ + rt.type({ + id: rt.string, + attributes: SavedSourceConfigurationRuntimeType, + }), + rt.partial({ + version: rt.string, + updated_at: TimestampFromString, + }), +]); + +export interface SourceConfigurationSavedObject + extends rt.TypeOf {} diff --git a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx index 8353158d3a9c8b..0e9da32aaa5093 100644 --- a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx +++ b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx @@ -17,9 +17,6 @@ import { import { IFieldType } from 'src/plugins/data/public'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -import { EuiExpression } from '@elastic/eui'; -import { EuiCallOut } from '@elastic/eui'; -import { EuiLink } from '@elastic/eui'; import { MetricExpressionParams, Comparator, @@ -41,8 +38,8 @@ import { AlertsContextValue } from '../../../../../triggers_actions_ui/public/ap import { MetricsExplorerOptions } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; import { MetricsExplorerKueryBar } from '../../metrics_explorer/kuery_bar'; import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; -import { useSource } from '../../../containers/source'; import { MetricsExplorerGroupBy } from '../../metrics_explorer/group_by'; +import { useSourceViaHttp } from '../../../containers/source/use_source_via_http'; interface AlertContextMeta { currentOptions?: Partial; @@ -87,7 +84,12 @@ const defaultExpression = { export const Expressions: React.FC = props => { const { setAlertParams, alertParams, errors, alertsContext } = props; - const { source, createDerivedIndexPattern } = useSource({ sourceId: 'default' }); + const { source, createDerivedIndexPattern } = useSourceViaHttp({ + sourceId: 'default', + type: 'metrics', + fetch: alertsContext.http.fetch, + toastWarning: alertsContext.toastNotifications.addWarning, + }); const [timeSize, setTimeSize] = useState(1); const [timeUnit, setTimeUnit] = useState('m'); @@ -208,40 +210,11 @@ export const Expressions: React.FC = props => { setAlertParams('groupBy', md.currentOptions.groupBy); } setAlertParams('sourceId', source?.id); + } else { + setAlertParams('criteria', [defaultExpression]); } }, [alertsContext.metadata, defaultExpression, source]); // eslint-disable-line react-hooks/exhaustive-deps - // INFO: If there is metadata, you're in the metrics explorer context - const canAddConditions = !!alertsContext.metadata; - - if (!canAddConditions && !alertParams.criteria) { - return ( - <> - - - {' '} - - - - . - - } - color="warning" - iconType="help" - /> - - - ); - } - return ( <> @@ -258,7 +231,6 @@ export const Expressions: React.FC = props => { alertParams.criteria.map((e, idx) => { return ( 1} fields={derivedIndexPattern.fields} remove={removeExpression} @@ -281,20 +253,18 @@ export const Expressions: React.FC = props => { />

@@ -347,7 +317,6 @@ export const Expressions: React.FC = props => { interface ExpressionRowProps { fields: IFieldType[]; - canEditAggField: boolean; expressionId: number; expression: MetricExpression; errors: IErrorObject; @@ -424,20 +393,17 @@ export const ExpressionRow: React.FC = props => { {aggType !== 'count' && ( - {!props.canEditAggField && } - {props.canEditAggField && ( - ({ - normalizedType: f.type, - name: f.name, - }))} - aggType={aggType} - errors={errors} - onChangeSelectedAggField={updateMetric} - /> - )} + ({ + normalizedType: f.type, + name: f.name, + }))} + aggType={aggType} + errors={errors} + onChangeSelectedAggField={updateMetric} + /> )} @@ -469,19 +435,6 @@ export const ExpressionRow: React.FC = props => { ); }; -export const DisabledAggField = ({ text }: { text: string }) => { - return ( - - ); -}; - export const aggregationType: { [key: string]: any } = { avg: { text: i18n.translate('xpack.infra.metrics.alertFlyout.aggregationText.avg', { diff --git a/x-pack/plugins/infra/public/containers/source/source.tsx b/x-pack/plugins/infra/public/containers/source/source.tsx index a1310b1f336140..c2206769ef0efd 100644 --- a/x-pack/plugins/infra/public/containers/source/source.tsx +++ b/x-pack/plugins/infra/public/containers/source/source.tsx @@ -21,7 +21,7 @@ import { updateSourceMutation } from './update_source.gql_query'; type Source = SourceQuery.Query['source']; -const pickIndexPattern = (source: Source | undefined, type: 'logs' | 'metrics' | 'both') => { +export const pickIndexPattern = (source: Source | undefined, type: 'logs' | 'metrics' | 'both') => { if (!source) { return 'unknown-index'; } diff --git a/x-pack/plugins/infra/public/containers/source/use_source_via_http.ts b/x-pack/plugins/infra/public/containers/source/use_source_via_http.ts new file mode 100644 index 00000000000000..bc6374a6538e37 --- /dev/null +++ b/x-pack/plugins/infra/public/containers/source/use_source_via_http.ts @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { useEffect, useMemo } from 'react'; +import { fold } from 'fp-ts/lib/Either'; +import { identity } from 'fp-ts/lib/function'; +import { pipe } from 'fp-ts/lib/pipeable'; +import createContainer from 'constate'; +import { HttpHandler } from 'target/types/core/public/http'; +import { ToastInput } from 'target/types/core/public/notifications/toasts/toasts_api'; +import { + SourceResponseRuntimeType, + SourceResponse, + InfraSource, +} from '../../../common/http_api/source_api'; +import { useHTTPRequest } from '../../hooks/use_http_request'; +import { throwErrors, createPlainError } from '../../../common/runtime_types'; + +export const pickIndexPattern = ( + source: InfraSource | undefined, + type: 'logs' | 'metrics' | 'both' +) => { + if (!source) { + return 'unknown-index'; + } + if (type === 'logs') { + return source.configuration.logAlias; + } + if (type === 'metrics') { + return source.configuration.metricAlias; + } + return `${source.configuration.logAlias},${source.configuration.metricAlias}`; +}; + +interface Props { + sourceId: string; + type: 'logs' | 'metrics' | 'both'; + fetch?: HttpHandler; + toastWarning?: (input: ToastInput) => void; +} + +export const useSourceViaHttp = ({ + sourceId = 'default', + type = 'both', + fetch, + toastWarning, +}: Props) => { + const decodeResponse = (response: any) => { + return pipe( + SourceResponseRuntimeType.decode(response), + fold(throwErrors(createPlainError), identity) + ); + }; + + const { error, loading, response, makeRequest } = useHTTPRequest( + `/api/metrics/source/${sourceId}/${type}`, + 'GET', + null, + decodeResponse, + fetch, + toastWarning + ); + + useEffect(() => { + (async () => { + await makeRequest(); + })(); + }, [makeRequest]); + + const createDerivedIndexPattern = (indexType: 'logs' | 'metrics' | 'both' = type) => { + return { + fields: response?.source ? response.status.indexFields : [], + title: pickIndexPattern(response?.source, indexType), + }; + }; + + const source = useMemo(() => { + return response ? { ...response.source, status: response.status } : null; + }, [response]); + + return { + createDerivedIndexPattern, + source, + loading, + error, + }; +}; + +export const SourceViaHttp = createContainer(useSourceViaHttp); +export const [SourceViaHttpProvider, useSourceViaHttpContext] = SourceViaHttp; diff --git a/x-pack/plugins/infra/public/hooks/use_http_request.tsx b/x-pack/plugins/infra/public/hooks/use_http_request.tsx index 50f4a636b48a35..e00abe6380498f 100644 --- a/x-pack/plugins/infra/public/hooks/use_http_request.tsx +++ b/x-pack/plugins/infra/public/hooks/use_http_request.tsx @@ -7,28 +7,32 @@ import React, { useMemo, useState } from 'react'; import { IHttpFetchError } from 'src/core/public'; import { i18n } from '@kbn/i18n'; +import { HttpHandler } from 'target/types/core/public/http'; +import { ToastInput } from 'target/types/core/public/notifications/toasts/toasts_api'; import { useTrackedPromise } from '../utils/use_tracked_promise'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; export function useHTTPRequest( pathname: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD', - body?: string, - decode: (response: any) => Response = response => response + body?: string | null, + decode: (response: any) => Response = response => response, + fetch?: HttpHandler, + toastWarning?: (input: ToastInput) => void ) { const kibana = useKibana(); - const fetch = kibana.services.http?.fetch; - const toasts = kibana.notifications.toasts; + const fetchService = fetch ? fetch : kibana.services.http?.fetch; + const toast = toastWarning ? toastWarning : kibana.notifications.toasts.warning; const [response, setResponse] = useState(null); const [error, setError] = useState(null); const [request, makeRequest] = useTrackedPromise( { cancelPreviousOn: 'resolution', createPromise: () => { - if (!fetch) { + if (!fetchService) { throw new Error('HTTP service is unavailable'); } - return fetch(pathname, { + return fetchService(pathname, { method, body, }); @@ -37,7 +41,7 @@ export function useHTTPRequest( onReject: (e: unknown) => { const err = e as IHttpFetchError; setError(err); - toasts.warning({ + toast({ toastLifeTimeMs: 3000, title: i18n.translate('xpack.infra.useHTTPRequest.error.title', { defaultMessage: `Error while fetching resource`, @@ -67,7 +71,7 @@ export function useHTTPRequest( }); }, }, - [pathname, body, method, fetch, toasts] + [pathname, body, method, fetch, toast] ); const loading = useMemo(() => { diff --git a/x-pack/plugins/infra/server/infra_server.ts b/x-pack/plugins/infra/server/infra_server.ts index fb9dd172bf6ede..88b78dfd3e41c3 100644 --- a/x-pack/plugins/infra/server/infra_server.ts +++ b/x-pack/plugins/infra/server/infra_server.ts @@ -29,6 +29,7 @@ import { initLogEntriesItemRoute, } from './routes/log_entries'; import { initInventoryMetaRoute } from './routes/inventory_metadata'; +import { initSourceRoute } from './routes/source'; export const initInfraServer = (libs: InfraBackendLibs) => { const schema = makeExecutableSchema({ @@ -48,6 +49,7 @@ export const initInfraServer = (libs: InfraBackendLibs) => { initGetLogEntryRateRoute(libs); initSnapshotRoute(libs); initNodeDetailsRoute(libs); + initSourceRoute(libs); initValidateLogAnalysisIndicesRoute(libs); initLogEntriesRoute(libs); initLogEntriesHighlightsRoute(libs); diff --git a/x-pack/plugins/infra/server/lib/sources/defaults.ts b/x-pack/plugins/infra/server/lib/sources/defaults.ts index b9ead0d169ee60..6b00f59cca1f41 100644 --- a/x-pack/plugins/infra/server/lib/sources/defaults.ts +++ b/x-pack/plugins/infra/server/lib/sources/defaults.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { InfraSourceConfiguration } from './types'; +import { InfraSourceConfiguration } from '../../../common/http_api/source_api'; export const defaultSourceConfiguration: InfraSourceConfiguration = { name: 'Default', diff --git a/x-pack/plugins/infra/server/lib/sources/index.ts b/x-pack/plugins/infra/server/lib/sources/index.ts index 6837f953ea18ae..9dcbe02bd064bc 100644 --- a/x-pack/plugins/infra/server/lib/sources/index.ts +++ b/x-pack/plugins/infra/server/lib/sources/index.ts @@ -7,4 +7,4 @@ export * from './defaults'; export * from './saved_object_mappings'; export * from './sources'; -export * from './types'; +export * from '../../../common/http_api/source_api'; diff --git a/x-pack/plugins/infra/server/lib/sources/saved_object_mappings.ts b/x-pack/plugins/infra/server/lib/sources/saved_object_mappings.ts index 973a790eeedafd..e5b230373b7ec1 100644 --- a/x-pack/plugins/infra/server/lib/sources/saved_object_mappings.ts +++ b/x-pack/plugins/infra/server/lib/sources/saved_object_mappings.ts @@ -5,7 +5,7 @@ */ import { ElasticsearchMappingOf } from '../../utils/typed_elasticsearch_mappings'; -import { InfraSavedSourceConfiguration } from './types'; +import { InfraSavedSourceConfiguration } from '../../../common/http_api/source_api'; export const infraSourceConfigurationSavedObjectType = 'infrastructure-ui-source'; diff --git a/x-pack/plugins/infra/server/lib/sources/sources.ts b/x-pack/plugins/infra/server/lib/sources/sources.ts index c7ff6c96382043..99e062aa49ccf3 100644 --- a/x-pack/plugins/infra/server/lib/sources/sources.ts +++ b/x-pack/plugins/infra/server/lib/sources/sources.ts @@ -20,7 +20,8 @@ import { pickSavedSourceConfiguration, SourceConfigurationSavedObjectRuntimeType, StaticSourceConfigurationRuntimeType, -} from './types'; + InfraSource, +} from '../../../common/http_api/source_api'; import { InfraConfig } from '../../../server'; interface Libs { @@ -35,7 +36,10 @@ export class InfraSources { this.libs = libs; } - public async getSourceConfiguration(requestContext: RequestHandlerContext, sourceId: string) { + public async getSourceConfiguration( + requestContext: RequestHandlerContext, + sourceId: string + ): Promise { const staticDefaultSourceConfiguration = await this.getStaticDefaultSourceConfiguration(); const savedSourceConfiguration = await this.getInternalSourceConfiguration(sourceId) diff --git a/x-pack/plugins/infra/server/lib/sources/types.ts b/x-pack/plugins/infra/server/lib/sources/types.ts deleted file mode 100644 index 1f850635cf35a2..00000000000000 --- a/x-pack/plugins/infra/server/lib/sources/types.ts +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -/* eslint-disable @typescript-eslint/no-empty-interface */ - -import * as runtimeTypes from 'io-ts'; -import moment from 'moment'; -import { pipe } from 'fp-ts/lib/pipeable'; -import { chain } from 'fp-ts/lib/Either'; - -export const TimestampFromString = new runtimeTypes.Type( - 'TimestampFromString', - (input): input is number => typeof input === 'number', - (input, context) => - pipe( - runtimeTypes.string.validate(input, context), - chain(stringInput => { - const momentValue = moment(stringInput); - return momentValue.isValid() - ? runtimeTypes.success(momentValue.valueOf()) - : runtimeTypes.failure(stringInput, context); - }) - ), - output => new Date(output).toISOString() -); - -/** - * Stored source configuration as read from and written to saved objects - */ - -const SavedSourceConfigurationFieldsRuntimeType = runtimeTypes.partial({ - container: runtimeTypes.string, - host: runtimeTypes.string, - pod: runtimeTypes.string, - tiebreaker: runtimeTypes.string, - timestamp: runtimeTypes.string, -}); - -export const SavedSourceConfigurationTimestampColumnRuntimeType = runtimeTypes.type({ - timestampColumn: runtimeTypes.type({ - id: runtimeTypes.string, - }), -}); - -export const SavedSourceConfigurationMessageColumnRuntimeType = runtimeTypes.type({ - messageColumn: runtimeTypes.type({ - id: runtimeTypes.string, - }), -}); - -export const SavedSourceConfigurationFieldColumnRuntimeType = runtimeTypes.type({ - fieldColumn: runtimeTypes.type({ - id: runtimeTypes.string, - field: runtimeTypes.string, - }), -}); - -export const SavedSourceConfigurationColumnRuntimeType = runtimeTypes.union([ - SavedSourceConfigurationTimestampColumnRuntimeType, - SavedSourceConfigurationMessageColumnRuntimeType, - SavedSourceConfigurationFieldColumnRuntimeType, -]); - -export const SavedSourceConfigurationRuntimeType = runtimeTypes.partial({ - name: runtimeTypes.string, - description: runtimeTypes.string, - metricAlias: runtimeTypes.string, - logAlias: runtimeTypes.string, - fields: SavedSourceConfigurationFieldsRuntimeType, - logColumns: runtimeTypes.array(SavedSourceConfigurationColumnRuntimeType), -}); - -export interface InfraSavedSourceConfiguration - extends runtimeTypes.TypeOf {} - -export const pickSavedSourceConfiguration = ( - value: InfraSourceConfiguration -): InfraSavedSourceConfiguration => { - const { name, description, metricAlias, logAlias, fields, logColumns } = value; - const { container, host, pod, tiebreaker, timestamp } = fields; - - return { - name, - description, - metricAlias, - logAlias, - fields: { container, host, pod, tiebreaker, timestamp }, - logColumns, - }; -}; - -/** - * Static source configuration as read from the configuration file - */ - -const StaticSourceConfigurationFieldsRuntimeType = runtimeTypes.partial({ - ...SavedSourceConfigurationFieldsRuntimeType.props, - message: runtimeTypes.array(runtimeTypes.string), -}); - -export const StaticSourceConfigurationRuntimeType = runtimeTypes.partial({ - name: runtimeTypes.string, - description: runtimeTypes.string, - metricAlias: runtimeTypes.string, - logAlias: runtimeTypes.string, - fields: StaticSourceConfigurationFieldsRuntimeType, - logColumns: runtimeTypes.array(SavedSourceConfigurationColumnRuntimeType), -}); - -export interface InfraStaticSourceConfiguration - extends runtimeTypes.TypeOf {} - -/** - * Full source configuration type after all cleanup has been done at the edges - */ - -const SourceConfigurationFieldsRuntimeType = runtimeTypes.type({ - ...StaticSourceConfigurationFieldsRuntimeType.props, -}); - -export const SourceConfigurationRuntimeType = runtimeTypes.type({ - ...SavedSourceConfigurationRuntimeType.props, - fields: SourceConfigurationFieldsRuntimeType, - logColumns: runtimeTypes.array(SavedSourceConfigurationColumnRuntimeType), -}); - -export interface InfraSourceConfiguration - extends runtimeTypes.TypeOf {} - -/** - * Saved object type with metadata - */ - -export const SourceConfigurationSavedObjectRuntimeType = runtimeTypes.intersection([ - runtimeTypes.type({ - id: runtimeTypes.string, - attributes: SavedSourceConfigurationRuntimeType, - }), - runtimeTypes.partial({ - version: runtimeTypes.string, - updated_at: TimestampFromString, - }), -]); - -export interface SourceConfigurationSavedObject - extends runtimeTypes.TypeOf {} diff --git a/x-pack/plugins/infra/server/plugin.ts b/x-pack/plugins/infra/server/plugin.ts index 64fc496f3597e1..e3804078604cc5 100644 --- a/x-pack/plugins/infra/server/plugin.ts +++ b/x-pack/plugins/infra/server/plugin.ts @@ -26,7 +26,7 @@ import { InfraSources } from './lib/sources'; import { InfraServerPluginDeps } from './lib/adapters/framework'; import { METRICS_FEATURE, LOGS_FEATURE } from './features'; import { UsageCollector } from './usage/usage_collector'; -import { InfraStaticSourceConfiguration } from './lib/sources/types'; +import { InfraStaticSourceConfiguration } from '../common/http_api/source_api'; import { registerAlertTypes } from './lib/alerting'; export const config = { diff --git a/x-pack/plugins/infra/server/routes/source/index.ts b/x-pack/plugins/infra/server/routes/source/index.ts new file mode 100644 index 00000000000000..2f29320d7bb81d --- /dev/null +++ b/x-pack/plugins/infra/server/routes/source/index.ts @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { schema } from '@kbn/config-schema'; +import { SourceResponseRuntimeType } from '../../../common/http_api/source_api'; +import { InfraBackendLibs } from '../../lib/infra_types'; +import { InfraIndexType } from '../../graphql/types'; + +const typeToInfraIndexType = (value: string | undefined) => { + switch (value) { + case 'metrics': + return InfraIndexType.METRICS; + case 'logs': + return InfraIndexType.LOGS; + default: + return InfraIndexType.ANY; + } +}; + +export const initSourceRoute = (libs: InfraBackendLibs) => { + const { framework } = libs; + + framework.registerRoute( + { + method: 'get', + path: '/api/metrics/source/{sourceId}/{type?}', + validate: { + params: schema.object({ + sourceId: schema.string(), + type: schema.string(), + }), + }, + }, + async (requestContext, request, response) => { + try { + const { type, sourceId } = request.params; + + const source = await libs.sources.getSourceConfiguration(requestContext, sourceId); + if (!source) { + return response.notFound(); + } + + const status = { + logIndicesExist: await libs.sourceStatus.hasLogIndices(requestContext, sourceId), + metricIndicesExist: await libs.sourceStatus.hasMetricIndices(requestContext, sourceId), + indexFields: await libs.fields.getFields( + requestContext, + sourceId, + typeToInfraIndexType(type) + ), + }; + + return response.ok({ + body: SourceResponseRuntimeType.encode({ source, status }), + }); + } catch (error) { + return response.internalError({ + body: error.message, + }); + } + } + ); +}; From 26b23b3a5465bc6ce6bdd168f5088332defad416 Mon Sep 17 00:00:00 2001 From: Aaron Caldwell Date: Tue, 21 Apr 2020 13:07:44 -0600 Subject: [PATCH 49/54] =?UTF-8?q?[7.x]=20[Maps]=20Migrate=20remaining=20ma?= =?UTF-8?q?ps=20client=20files=20to=20NP=20(except=E2=80=A6=20(#64025)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move actions over * Move connected components over * Move components over * Move selectors over * Move embeddables over. Set up legacy presence to keep legacy maps embeddables working * Move angular and services over. Some additional top-level files * Some file moves. Move styles over to NP * Handle feature catalogue entry in NP. Add plugin deps to kibana.json * Move vis registration to NP * Clean up linting comments. Add linting comments to route controller. Move common to NP * Add back in i18n context for embeddable * Fix jest test paths. Fix TS lint errors Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../legacy/plugins/maps/common/constants.ts | 8 - .../plugins/maps/common/descriptor_types.ts | 8 - .../plugins/maps/common/get_join_key.ts | 8 - .../plugins/maps/common/i18n_getters.ts | 8 - .../plugins/maps/common/parse_xml_string.js | 8 - x-pack/legacy/plugins/maps/index.js | 11 +- x-pack/legacy/plugins/maps/migrations.js | 16 +- .../maps/public/actions/map_actions.d.ts | 8 - .../maps/public/actions/map_actions.js | 978 ------------------ .../plugins/maps/public/actions/ui_actions.js | 91 -- .../maps/public/angular/get_initial_layers.js | 54 - .../maps/public/angular/map_controller.js | 32 +- .../maps/public/components/_index.scss | 3 - .../public/connected_components/_index.scss | 6 - .../layer_addpanel/source_select/_index.scss | 1 - .../layer_panel/_index.scss | 4 - .../layer_panel/view.d.ts | 8 - .../connected_components/map/mb/utils.js | 107 -- .../widget_overlay/_index.scss | 6 - .../widget_overlay/layer_control/_index.scss | 2 - .../embeddable/map_embeddable_factory.ts | 154 +-- x-pack/legacy/plugins/maps/public/index.scss | 16 +- x-pack/legacy/plugins/maps/public/index.ts | 9 +- x-pack/legacy/plugins/maps/public/legacy.ts | 3 +- .../maps/public/legacy_register_feature.ts | 14 - x-pack/legacy/plugins/maps/public/plugin.ts | 5 +- .../maps/public/register_vis_type_alias.js | 49 - x-pack/legacy/plugins/maps/public/routes.js | 9 +- .../server/lib/get_index_pattern_settings.js | 5 +- .../lib/get_index_pattern_settings.test.js | 5 +- .../maps_telemetry/collectors/register.ts | 2 +- .../server/maps_telemetry/maps_telemetry.ts | 4 +- x-pack/legacy/plugins/maps/server/plugin.js | 7 +- x-pack/legacy/plugins/maps/server/routes.js | 2 +- .../migrations/add_field_meta_options.js | 0 .../migrations/add_field_meta_options.test.js | 0 .../ems_raster_tile_to_ems_vector_tile.js | 0 ...ems_raster_tile_to_ems_vector_tile.test.js | 0 .../common/migrations/join_agg_key.test.ts | 0 .../maps/common/migrations/join_agg_key.ts | 2 +- .../migrate_symbol_style_descriptor.js | 0 .../migrate_symbol_style_descriptor.test.js | 0 .../migrations/move_apply_global_query.js | 0 .../move_apply_global_query.test.js | 0 .../maps/common/migrations/references.js | 0 .../maps/common/migrations/references.test.js | 0 .../common/migrations/scaling_type.test.ts | 0 .../maps/common/migrations/scaling_type.ts | 2 +- .../migrations/top_hits_time_to_sort.js | 0 .../migrations/top_hits_time_to_sort.test.js | 0 x-pack/plugins/maps/kibana.json | 10 +- .../plugins/maps/public/_main.scss | 0 .../plugins/maps/public/_mapbox_hacks.scss | 0 .../maps/public/actions/map_actions.js | 925 +++++++++++++++++ .../maps/public/actions/map_actions.test.js | 2 +- .../maps/public/actions/ui_actions.d.ts | 11 + .../plugins/maps/public/actions/ui_actions.js | 70 ++ .../public/angular/get_initial_layers.d.ts | 0 .../maps/public/angular/get_initial_layers.js | 53 + .../public/angular/get_initial_layers.test.js | 17 +- .../maps/public/angular/get_initial_query.js | 3 +- .../angular/get_initial_refresh_config.js | 4 +- .../angular/get_initial_time_filters.js | 4 +- .../public/angular/listing_ng_wrapper.html | 0 .../plugins/maps/public/angular/map.html | 0 .../services/gis_map_saved_object_loader.js | 5 +- .../public/angular/services/saved_gis_map.js | 10 +- .../geometry_filter_form.test.js.snap | 0 .../layer_toc_actions.test.js.snap | 0 .../public/components/_geometry_filter.scss | 0 .../maps/public/components/_index.scss | 3 + .../public/components/_metric_editors.scss | 0 .../public/components/_tooltip_selector.scss | 0 .../components/distance_filter_form.tsx | 0 .../public/components/geo_field_with_index.ts | 0 .../public/components/geometry_filter_form.js | 0 .../components/geometry_filter_form.test.js | 0 .../components/global_filter_checkbox.js | 0 .../public/components/layer_toc_actions.js | 0 .../components/layer_toc_actions.test.js | 0 .../maps/public/components/map_listing.js | 4 +- .../multi_index_geo_field_select.tsx | 0 .../public/connected_components/_index.scss | 6 + .../gis_map/_gis_map.scss | 0 .../connected_components/gis_map/index.d.ts | 4 +- .../connected_components/gis_map/index.js | 8 +- .../connected_components/gis_map/view.js | 15 +- .../layer_addpanel/flyout_footer/index.js | 0 .../layer_addpanel/flyout_footer/view.js | 0 .../layer_addpanel/import_editor/index.js | 8 +- .../layer_addpanel/import_editor/view.js | 4 +- .../layer_addpanel/index.js | 8 +- .../layer_addpanel/source_editor/index.js | 4 +- .../layer_addpanel/source_editor/view.js | 0 .../layer_addpanel/source_select/_index.scss | 1 + .../source_select/_source_select.scss | 0 .../source_select/source_select.js | 4 +- .../layer_addpanel/view.js | 0 .../__snapshots__/view.test.js.snap | 0 .../layer_panel/_index.scss | 4 + .../layer_panel/_layer_panel.scss | 0 .../filter_editor/_filter_editor.scss | 0 .../filter_editor/filter_editor.js | 7 +- .../layer_panel/filter_editor/index.js | 0 .../layer_panel/flyout_footer/index.js | 4 +- .../layer_panel/flyout_footer/view.js | 0 .../connected_components/layer_panel/index.js | 0 .../layer_panel/join_editor/index.js | 0 .../metrics_expression.test.js.snap | 0 .../join_editor/resources/_join.scss | 0 .../layer_panel/join_editor/resources/join.js | 6 +- .../join_editor/resources/join_expression.js | 11 +- .../resources/metrics_expression.js | 4 +- .../resources/metrics_expression.test.js | 2 +- .../join_editor/resources/where_expression.js | 6 +- .../layer_panel/join_editor/view.js | 0 .../__snapshots__/layer_errors.test.js.snap | 0 .../layer_panel/layer_errors/index.js | 0 .../layer_panel/layer_errors/layer_errors.js | 0 .../layer_errors/layer_errors.test.js | 0 .../layer_panel/layer_settings/index.js | 2 +- .../layer_settings/layer_settings.js | 5 +- .../style_settings/_style_settings.scss | 0 .../layer_panel/style_settings/index.js | 0 .../style_settings/style_settings.js | 0 .../connected_components/layer_panel/view.js | 8 +- .../layer_panel/view.test.js | 0 .../feature_properties.test.js.snap | 0 .../__snapshots__/tooltip_header.test.js.snap | 0 .../map/features_tooltip/_index.scss | 0 .../feature_geometry_filter_form.js | 8 +- .../features_tooltip/feature_properties.js | 0 .../feature_properties.test.js | 0 .../map/features_tooltip/features_tooltip.js | 0 .../map/features_tooltip/tooltip_header.js | 0 .../features_tooltip/tooltip_header.test.js | 0 .../map/mb/draw_control/draw_circle.ts | 0 .../map/mb/draw_control/draw_control.js | 3 +- .../map/mb/draw_control/draw_tooltip.js | 0 .../map/mb/draw_control/index.js | 0 .../connected_components/map/mb/index.js | 4 +- .../map/mb/mb.utils.test.js | 0 .../tooltip_control.test.js.snap | 0 .../tooltip_popover.test.js.snap | 0 .../map/mb/tooltip_control/index.js | 0 .../map/mb/tooltip_control/tooltip_control.js | 0 .../tooltip_control/tooltip_control.test.js | 0 .../map/mb/tooltip_control/tooltip_popover.js | 0 .../tooltip_control/tooltip_popover.test.js | 0 .../connected_components/map/mb/utils.js | 94 ++ .../connected_components/map/mb/view.js | 15 +- .../toolbar_overlay/_index.scss | 2 +- .../toolbar_overlay/index.js | 0 .../toolbar_overlay/set_view_control/index.js | 0 .../set_view_control/set_view_control.js | 0 .../toolbar_overlay/toolbar_overlay.js | 0 .../__snapshots__/tools_control.test.js.snap | 0 .../toolbar_overlay/tools_control/_index.scss | 0 .../toolbar_overlay/tools_control/index.js | 0 .../tools_control/tools_control.js | 0 .../tools_control/tools_control.test.js | 0 .../widget_overlay/_index.scss | 6 + .../widget_overlay/_mixins.scss | 0 .../widget_overlay/_widget_overlay.scss | 0 .../__snapshots__/view.test.js.snap | 0 .../_attribution_control.scss | 0 .../attribution_control/index.js | 0 .../attribution_control/view.js | 0 .../attribution_control/view.test.js | 0 .../widget_overlay/index.js | 0 .../__snapshots__/view.test.js.snap | 0 .../widget_overlay/layer_control/_index.scss | 2 + .../layer_control/_layer_control.scss | 0 .../widget_overlay/layer_control/index.js | 4 +- .../layer_toc/__snapshots__/view.test.js.snap | 0 .../layer_control/layer_toc/index.js | 0 .../toc_entry/__snapshots__/view.test.js.snap | 0 .../layer_toc/toc_entry/_toc_entry.scss | 0 .../layer_toc/toc_entry/index.js | 4 +- .../layer_control/layer_toc/toc_entry/view.js | 0 .../layer_toc/toc_entry/view.test.js | 0 .../layer_control/layer_toc/view.js | 0 .../layer_control/layer_toc/view.test.js | 0 .../widget_overlay/layer_control/view.js | 0 .../widget_overlay/layer_control/view.test.js | 0 .../view_control/_view_control.scss | 0 .../widget_overlay/view_control/index.js | 0 .../view_control/view_control.js | 0 .../widget_overlay/widget_overlay.js | 0 .../plugins/maps/public/embeddable/README.md | 0 .../plugins/maps/public/embeddable/index.ts | 0 .../maps/public/embeddable/map_embeddable.tsx | 25 +- .../embeddable/map_embeddable_factory.ts | 136 +++ .../merge_input_with_saved_map.d.ts | 0 .../embeddable/merge_input_with_saved_map.js | 4 +- .../maps/public/feature_catalogue_entry.ts | 2 +- .../plugins/maps/public/help_menu_util.js | 4 +- .../{legacy => }/plugins/maps/public/icon.svg | 0 x-pack/plugins/maps/public/index.scss | 17 + x-pack/plugins/maps/public/layers/layer.js | 2 +- .../layers/sources/es_source/es_source.js | 2 +- .../maps/public/layers/sources/source.js | 1 - .../maps/public/maps_vis_type_alias.js | 41 + x-pack/plugins/maps/public/plugin.ts | 18 +- x-pack/plugins/maps/public/reducers/ui.ts | 1 - .../maps/public/selectors/map_selectors.d.ts | 4 +- .../maps/public/selectors/map_selectors.js | 36 +- .../public/selectors/map_selectors.test.js | 16 +- .../maps/public/selectors/ui_selectors.ts | 7 +- 209 files changed, 1606 insertions(+), 1749 deletions(-) delete mode 100644 x-pack/legacy/plugins/maps/common/constants.ts delete mode 100644 x-pack/legacy/plugins/maps/common/descriptor_types.ts delete mode 100644 x-pack/legacy/plugins/maps/common/get_join_key.ts delete mode 100644 x-pack/legacy/plugins/maps/common/i18n_getters.ts delete mode 100644 x-pack/legacy/plugins/maps/common/parse_xml_string.js delete mode 100644 x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts delete mode 100644 x-pack/legacy/plugins/maps/public/actions/map_actions.js delete mode 100644 x-pack/legacy/plugins/maps/public/actions/ui_actions.js delete mode 100644 x-pack/legacy/plugins/maps/public/angular/get_initial_layers.js delete mode 100644 x-pack/legacy/plugins/maps/public/components/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.d.ts delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/map/mb/utils.js delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss delete mode 100644 x-pack/legacy/plugins/maps/public/legacy_register_feature.ts delete mode 100644 x-pack/legacy/plugins/maps/public/register_vis_type_alias.js rename x-pack/{legacy => }/plugins/maps/common/migrations/add_field_meta_options.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/add_field_meta_options.test.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.test.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/join_agg_key.test.ts (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/join_agg_key.ts (97%) rename x-pack/{legacy => }/plugins/maps/common/migrations/migrate_symbol_style_descriptor.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/migrate_symbol_style_descriptor.test.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/move_apply_global_query.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/move_apply_global_query.test.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/references.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/references.test.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/scaling_type.test.ts (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/scaling_type.ts (93%) rename x-pack/{legacy => }/plugins/maps/common/migrations/top_hits_time_to_sort.js (100%) rename x-pack/{legacy => }/plugins/maps/common/migrations/top_hits_time_to_sort.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/_main.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/_mapbox_hacks.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/actions/map_actions.test.js (98%) rename x-pack/{legacy => }/plugins/maps/public/actions/ui_actions.d.ts (54%) rename x-pack/{legacy => }/plugins/maps/public/angular/get_initial_layers.d.ts (100%) create mode 100644 x-pack/plugins/maps/public/angular/get_initial_layers.js rename x-pack/{legacy => }/plugins/maps/public/angular/get_initial_layers.test.js (80%) rename x-pack/{legacy => }/plugins/maps/public/angular/get_initial_query.js (82%) rename x-pack/{legacy => }/plugins/maps/public/angular/get_initial_refresh_config.js (84%) rename x-pack/{legacy => }/plugins/maps/public/angular/get_initial_time_filters.js (80%) rename x-pack/{legacy => }/plugins/maps/public/angular/listing_ng_wrapper.html (100%) rename x-pack/{legacy => }/plugins/maps/public/angular/map.html (100%) rename x-pack/{legacy => }/plugins/maps/public/angular/services/gis_map_saved_object_loader.js (79%) rename x-pack/{legacy => }/plugins/maps/public/angular/services/saved_gis_map.js (88%) rename x-pack/{legacy => }/plugins/maps/public/components/__snapshots__/geometry_filter_form.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/components/__snapshots__/layer_toc_actions.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/components/_geometry_filter.scss (100%) create mode 100644 x-pack/plugins/maps/public/components/_index.scss rename x-pack/{legacy => }/plugins/maps/public/components/_metric_editors.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/components/_tooltip_selector.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/components/distance_filter_form.tsx (100%) rename x-pack/{legacy => }/plugins/maps/public/components/geo_field_with_index.ts (100%) rename x-pack/{legacy => }/plugins/maps/public/components/geometry_filter_form.js (100%) rename x-pack/{legacy => }/plugins/maps/public/components/geometry_filter_form.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/components/global_filter_checkbox.js (100%) rename x-pack/{legacy => }/plugins/maps/public/components/layer_toc_actions.js (100%) rename x-pack/{legacy => }/plugins/maps/public/components/layer_toc_actions.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/components/map_listing.js (98%) rename x-pack/{legacy => }/plugins/maps/public/components/multi_index_geo_field_select.tsx (100%) create mode 100644 x-pack/plugins/maps/public/connected_components/_index.scss rename x-pack/{legacy => }/plugins/maps/public/connected_components/gis_map/_gis_map.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/gis_map/index.d.ts (73%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/gis_map/index.js (85%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/gis_map/view.js (92%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js (76%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js (89%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/index.js (85%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js (75%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/source_editor/view.js (100%) create mode 100644 x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/source_select/_source_select.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js (90%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_addpanel/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/__snapshots__/view.test.js.snap (100%) create mode 100644 x-pack/plugins/maps/public/connected_components/layer_panel/_index.scss rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/_layer_panel.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/filter_editor/_filter_editor.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js (96%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/filter_editor/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js (89%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/flyout_footer/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/__snapshots__/metrics_expression.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/_join.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js (95%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js (93%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js (95%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js (92%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js (94%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/join_editor/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_errors/__snapshots__/layer_errors.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_errors/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js (94%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js (92%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/style_settings/_style_settings.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/style_settings/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/style_settings/style_settings.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/view.js (95%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/layer_panel/view.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/feature_properties.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/tooltip_header.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/_index.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js (92%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/features_tooltip.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/draw_control/draw_circle.ts (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js (96%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/draw_control/draw_tooltip.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/draw_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/index.js (91%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/mb.utils.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_control.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_popover.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/map/mb/view.js (94%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/_index.scss (93%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/tools_control/__snapshots__/tools_control.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/tools_control/_index.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/tools_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.test.js (100%) create mode 100644 x-pack/plugins/maps/public/connected_components/widget_overlay/_index.scss rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/_mixins.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/_widget_overlay.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/attribution_control/__snapshots__/view.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/attribution_control/_attribution_control.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/attribution_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/__snapshots__/view.test.js.snap (100%) create mode 100644 x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/_layer_control.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js (90%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/__snapshots__/view.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/__snapshots__/view.test.js.snap (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/_toc_entry.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js (93%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/view.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/layer_control/view.test.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/view_control/_view_control.scss (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/view_control/index.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/view_control/view_control.js (100%) rename x-pack/{legacy => }/plugins/maps/public/connected_components/widget_overlay/widget_overlay.js (100%) rename x-pack/{legacy => }/plugins/maps/public/embeddable/README.md (100%) rename x-pack/{legacy => }/plugins/maps/public/embeddable/index.ts (100%) rename x-pack/{legacy => }/plugins/maps/public/embeddable/map_embeddable.tsx (90%) create mode 100644 x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts rename x-pack/{legacy => }/plugins/maps/public/embeddable/merge_input_with_saved_map.d.ts (100%) rename x-pack/{legacy => }/plugins/maps/public/embeddable/merge_input_with_saved_map.js (89%) rename x-pack/{legacy => }/plugins/maps/public/feature_catalogue_entry.ts (89%) rename x-pack/{legacy => }/plugins/maps/public/help_menu_util.js (81%) rename x-pack/{legacy => }/plugins/maps/public/icon.svg (100%) create mode 100644 x-pack/plugins/maps/public/index.scss create mode 100644 x-pack/plugins/maps/public/maps_vis_type_alias.js rename x-pack/{legacy => }/plugins/maps/public/selectors/map_selectors.d.ts (81%) rename x-pack/{legacy => }/plugins/maps/public/selectors/map_selectors.js (82%) rename x-pack/{legacy => }/plugins/maps/public/selectors/map_selectors.test.js (62%) rename x-pack/{legacy => }/plugins/maps/public/selectors/ui_selectors.ts (74%) diff --git a/x-pack/legacy/plugins/maps/common/constants.ts b/x-pack/legacy/plugins/maps/common/constants.ts deleted file mode 100644 index 98945653c25dc8..00000000000000 --- a/x-pack/legacy/plugins/maps/common/constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../plugins/maps/common/constants'; diff --git a/x-pack/legacy/plugins/maps/common/descriptor_types.ts b/x-pack/legacy/plugins/maps/common/descriptor_types.ts deleted file mode 100644 index 1f0eda26e7f7dc..00000000000000 --- a/x-pack/legacy/plugins/maps/common/descriptor_types.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../plugins/maps/common/descriptor_types'; diff --git a/x-pack/legacy/plugins/maps/common/get_join_key.ts b/x-pack/legacy/plugins/maps/common/get_join_key.ts deleted file mode 100644 index 004f12ca08d2ea..00000000000000 --- a/x-pack/legacy/plugins/maps/common/get_join_key.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../plugins/maps/common/get_join_key'; diff --git a/x-pack/legacy/plugins/maps/common/i18n_getters.ts b/x-pack/legacy/plugins/maps/common/i18n_getters.ts deleted file mode 100644 index f9d186dea2e2b9..00000000000000 --- a/x-pack/legacy/plugins/maps/common/i18n_getters.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../plugins/maps/common/i18n_getters'; diff --git a/x-pack/legacy/plugins/maps/common/parse_xml_string.js b/x-pack/legacy/plugins/maps/common/parse_xml_string.js deleted file mode 100644 index 34ec1444728281..00000000000000 --- a/x-pack/legacy/plugins/maps/common/parse_xml_string.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../plugins/maps/common/parse_xml_string'; diff --git a/x-pack/legacy/plugins/maps/index.js b/x-pack/legacy/plugins/maps/index.js index f4e01efc05f45f..8546e3712c7630 100644 --- a/x-pack/legacy/plugins/maps/index.js +++ b/x-pack/legacy/plugins/maps/index.js @@ -9,9 +9,14 @@ import mappings from './mappings.json'; import { i18n } from '@kbn/i18n'; import { resolve } from 'path'; import { migrations } from './migrations'; -import { getAppTitle } from './common/i18n_getters'; +import { getAppTitle } from '../../../plugins/maps/common/i18n_getters'; import { MapPlugin } from './server/plugin'; -import { APP_ID, APP_ICON, createMapPath, MAP_SAVED_OBJECT_TYPE } from './common/constants'; +import { + APP_ID, + APP_ICON, + createMapPath, + MAP_SAVED_OBJECT_TYPE, +} from '../../../plugins/maps/common/constants'; import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/utils'; export function maps(kibana) { @@ -53,7 +58,6 @@ export function maps(kibana) { }; }, embeddableFactories: ['plugins/maps/embeddable/map_embeddable_factory'], - home: ['plugins/maps/legacy_register_feature'], styleSheetPaths: `${__dirname}/public/index.scss`, savedObjectSchemas: { 'maps-telemetry': { @@ -78,7 +82,6 @@ export function maps(kibana) { }, mappings, migrations, - hacks: ['plugins/maps/register_vis_type_alias'], }, config(Joi) { return Joi.object({ diff --git a/x-pack/legacy/plugins/maps/migrations.js b/x-pack/legacy/plugins/maps/migrations.js index a8e69eef7a02fd..d3666025082b78 100644 --- a/x-pack/legacy/plugins/maps/migrations.js +++ b/x-pack/legacy/plugins/maps/migrations.js @@ -4,14 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { extractReferences } from './common/migrations/references'; -import { emsRasterTileToEmsVectorTile } from './common/migrations/ems_raster_tile_to_ems_vector_tile'; -import { topHitsTimeToSort } from './common/migrations/top_hits_time_to_sort'; -import { moveApplyGlobalQueryToSources } from './common/migrations/move_apply_global_query'; -import { addFieldMetaOptions } from './common/migrations/add_field_meta_options'; -import { migrateSymbolStyleDescriptor } from './common/migrations/migrate_symbol_style_descriptor'; -import { migrateUseTopHitsToScalingType } from './common/migrations/scaling_type'; -import { migrateJoinAggKey } from './common/migrations/join_agg_key'; +import { extractReferences } from '../../../plugins/maps/common/migrations/references'; +import { emsRasterTileToEmsVectorTile } from '../../../plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile'; +import { topHitsTimeToSort } from '../../../plugins/maps/common/migrations/top_hits_time_to_sort'; +import { moveApplyGlobalQueryToSources } from '../../../plugins/maps/common/migrations/move_apply_global_query'; +import { addFieldMetaOptions } from '../../../plugins/maps/common/migrations/add_field_meta_options'; +import { migrateSymbolStyleDescriptor } from '../../../plugins/maps/common/migrations/migrate_symbol_style_descriptor'; +import { migrateUseTopHitsToScalingType } from '../../../plugins/maps/common/migrations/scaling_type'; +import { migrateJoinAggKey } from '../../../plugins/maps/common/migrations/join_agg_key'; export const migrations = { map: { diff --git a/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts b/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts deleted file mode 100644 index 34f8c30b51874b..00000000000000 --- a/x-pack/legacy/plugins/maps/public/actions/map_actions.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -/* eslint-disable @typescript-eslint/consistent-type-definitions */ - -export * from '../../../../../plugins/maps/public/actions/map_actions'; diff --git a/x-pack/legacy/plugins/maps/public/actions/map_actions.js b/x-pack/legacy/plugins/maps/public/actions/map_actions.js deleted file mode 100644 index 7bfbf5761c5b8c..00000000000000 --- a/x-pack/legacy/plugins/maps/public/actions/map_actions.js +++ /dev/null @@ -1,978 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import _ from 'lodash'; -import turf from 'turf'; -import turfBooleanContains from '@turf/boolean-contains'; -import uuid from 'uuid/v4'; -import { - getLayerList, - getLayerListRaw, - getDataFilters, - getSelectedLayerId, - getMapReady, - getWaitingForMapReadyLayerListRaw, - getTransientLayerId, - getOpenTooltips, - getQuery, - getDataRequestDescriptor, -} from '../selectors/map_selectors'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../plugins/maps/public/reducers/ui'; -import { - cancelRequest, - registerCancelCallback, - unregisterCancelCallback, - getEventHandlers, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/reducers/non_serializable_instances'; -import { updateFlyout } from '../actions/ui_actions'; -import { - FEATURE_ID_PROPERTY_NAME, - LAYER_TYPE, - SOURCE_DATA_ID_ORIGIN, -} from '../../common/constants'; - -import { - SET_SELECTED_LAYER, - SET_TRANSIENT_LAYER, - UPDATE_LAYER_ORDER, - ADD_LAYER, - SET_LAYER_ERROR_STATUS, - ADD_WAITING_FOR_MAP_READY_LAYER, - CLEAR_WAITING_FOR_MAP_READY_LAYER_LIST, - REMOVE_LAYER, - SET_LAYER_VISIBILITY, - MAP_EXTENT_CHANGED, - MAP_READY, - MAP_DESTROYED, - LAYER_DATA_LOAD_STARTED, - LAYER_DATA_LOAD_ENDED, - LAYER_DATA_LOAD_ERROR, - UPDATE_SOURCE_DATA_REQUEST, - SET_JOINS, - SET_QUERY, - TRIGGER_REFRESH_TIMER, - UPDATE_LAYER_PROP, - UPDATE_LAYER_STYLE, - SET_LAYER_STYLE_META, - UPDATE_SOURCE_PROP, - SET_REFRESH_CONFIG, - SET_MOUSE_COORDINATES, - CLEAR_MOUSE_COORDINATES, - SET_GOTO, - CLEAR_GOTO, - TRACK_CURRENT_LAYER_STATE, - ROLLBACK_TO_TRACKED_LAYER_STATE, - REMOVE_TRACKED_LAYER_STATE, - SET_OPEN_TOOLTIPS, - UPDATE_DRAW_STATE, - SET_SCROLL_ZOOM, - SET_MAP_INIT_ERROR, - SET_INTERACTIVE, - DISABLE_TOOLTIP_CONTROL, - HIDE_TOOLBAR_OVERLAY, - HIDE_LAYER_CONTROL, - HIDE_VIEW_CONTROL, - SET_WAITING_FOR_READY_HIDDEN_LAYERS, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/actions/map_actions'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../../plugins/maps/public/actions/map_actions'; - -function getLayerLoadingCallbacks(dispatch, getState, layerId) { - return { - startLoading: (dataId, requestToken, meta) => - dispatch(startDataLoad(layerId, dataId, requestToken, meta)), - stopLoading: (dataId, requestToken, data, meta) => - dispatch(endDataLoad(layerId, dataId, requestToken, data, meta)), - onLoadError: (dataId, requestToken, errorMessage) => - dispatch(onDataLoadError(layerId, dataId, requestToken, errorMessage)), - updateSourceData: newData => { - dispatch(updateSourceDataRequest(layerId, newData)); - }, - isRequestStillActive: (dataId, requestToken) => { - const dataRequest = getDataRequestDescriptor(getState(), layerId, dataId); - if (!dataRequest) { - return false; - } - return dataRequest.dataRequestToken === requestToken; - }, - registerCancelCallback: (requestToken, callback) => - dispatch(registerCancelCallback(requestToken, callback)), - }; -} - -function getLayerById(layerId, state) { - return getLayerList(state).find(layer => { - return layerId === layer.getId(); - }); -} - -async function syncDataForAllLayers(dispatch, getState, dataFilters) { - const state = getState(); - const layerList = getLayerList(state); - const syncs = layerList.map(layer => { - const loadingFunctions = getLayerLoadingCallbacks(dispatch, getState, layer.getId()); - return layer.syncData({ ...loadingFunctions, dataFilters }); - }); - await Promise.all(syncs); -} - -export function cancelAllInFlightRequests() { - return (dispatch, getState) => { - getLayerList(getState()).forEach(layer => { - dispatch(clearDataRequests(layer)); - }); - }; -} - -function clearDataRequests(layer) { - return dispatch => { - layer.getInFlightRequestTokens().forEach(requestToken => { - dispatch(cancelRequest(requestToken)); - }); - dispatch({ - type: UPDATE_LAYER_PROP, - id: layer.getId(), - propName: '__dataRequests', - newValue: [], - }); - }; -} - -export function setMapInitError(errorMessage) { - return { - type: SET_MAP_INIT_ERROR, - errorMessage, - }; -} - -export function trackCurrentLayerState(layerId) { - return { - type: TRACK_CURRENT_LAYER_STATE, - layerId: layerId, - }; -} - -export function rollbackToTrackedLayerStateForSelectedLayer() { - return async (dispatch, getState) => { - const layerId = getSelectedLayerId(getState()); - await dispatch({ - type: ROLLBACK_TO_TRACKED_LAYER_STATE, - layerId: layerId, - }); - - // Ensure updateStyleMeta is triggered - // syncDataForLayer may not trigger endDataLoad if no re-fetch is required - dispatch(updateStyleMeta(layerId)); - - dispatch(syncDataForLayer(layerId)); - }; -} - -export function removeTrackedLayerStateForSelectedLayer() { - return (dispatch, getState) => { - const layerId = getSelectedLayerId(getState()); - dispatch({ - type: REMOVE_TRACKED_LAYER_STATE, - layerId: layerId, - }); - }; -} - -export function replaceLayerList(newLayerList) { - return (dispatch, getState) => { - const isMapReady = getMapReady(getState()); - if (!isMapReady) { - dispatch({ - type: CLEAR_WAITING_FOR_MAP_READY_LAYER_LIST, - }); - } else { - getLayerListRaw(getState()).forEach(({ id }) => { - dispatch(removeLayerFromLayerList(id)); - }); - } - - newLayerList.forEach(layerDescriptor => { - dispatch(addLayer(layerDescriptor)); - }); - }; -} - -export function cloneLayer(layerId) { - return async (dispatch, getState) => { - const layer = getLayerById(layerId, getState()); - if (!layer) { - return; - } - - const clonedDescriptor = await layer.cloneDescriptor(); - dispatch(addLayer(clonedDescriptor)); - }; -} - -export function addLayer(layerDescriptor) { - return (dispatch, getState) => { - const isMapReady = getMapReady(getState()); - if (!isMapReady) { - dispatch({ - type: ADD_WAITING_FOR_MAP_READY_LAYER, - layer: layerDescriptor, - }); - return; - } - - dispatch({ - type: ADD_LAYER, - layer: layerDescriptor, - }); - dispatch(syncDataForLayer(layerDescriptor.id)); - }; -} - -// Do not use when rendering a map. Method exists to enable selectors for getLayerList when -// rendering is not needed. -export function addLayerWithoutDataSync(layerDescriptor) { - return { - type: ADD_LAYER, - layer: layerDescriptor, - }; -} - -function setLayerDataLoadErrorStatus(layerId, errorMessage) { - return dispatch => { - dispatch({ - type: SET_LAYER_ERROR_STATUS, - isInErrorState: errorMessage !== null, - layerId, - errorMessage, - }); - }; -} - -export function cleanTooltipStateForLayer(layerId, layerFeatures = []) { - return (dispatch, getState) => { - let featuresRemoved = false; - const openTooltips = getOpenTooltips(getState()) - .map(tooltipState => { - const nextFeatures = tooltipState.features.filter(tooltipFeature => { - if (tooltipFeature.layerId !== layerId) { - // feature from another layer, keep it - return true; - } - - // Keep feature if it is still in layer - return layerFeatures.some(layerFeature => { - return layerFeature.properties[FEATURE_ID_PROPERTY_NAME] === tooltipFeature.id; - }); - }); - - if (tooltipState.features.length !== nextFeatures.length) { - featuresRemoved = true; - } - - return { ...tooltipState, features: nextFeatures }; - }) - .filter(tooltipState => { - return tooltipState.features.length > 0; - }); - - if (featuresRemoved) { - dispatch({ - type: SET_OPEN_TOOLTIPS, - openTooltips, - }); - } - }; -} - -export function setLayerVisibility(layerId, makeVisible) { - return async (dispatch, getState) => { - //if the current-state is invisible, we also want to sync data - //e.g. if a layer was invisible at start-up, it won't have any data loaded - const layer = getLayerById(layerId, getState()); - - // If the layer visibility is already what we want it to be, do nothing - if (!layer || layer.isVisible() === makeVisible) { - return; - } - - if (!makeVisible) { - dispatch(cleanTooltipStateForLayer(layerId)); - } - - await dispatch({ - type: SET_LAYER_VISIBILITY, - layerId, - visibility: makeVisible, - }); - if (makeVisible) { - dispatch(syncDataForLayer(layerId)); - } - }; -} - -export function toggleLayerVisible(layerId) { - return async (dispatch, getState) => { - const layer = getLayerById(layerId, getState()); - if (!layer) { - return; - } - const makeVisible = !layer.isVisible(); - - dispatch(setLayerVisibility(layerId, makeVisible)); - }; -} - -export function setSelectedLayer(layerId) { - return async (dispatch, getState) => { - const oldSelectedLayer = getSelectedLayerId(getState()); - if (oldSelectedLayer) { - await dispatch(rollbackToTrackedLayerStateForSelectedLayer()); - } - if (layerId) { - dispatch(trackCurrentLayerState(layerId)); - } - dispatch({ - type: SET_SELECTED_LAYER, - selectedLayerId: layerId, - }); - }; -} - -export function removeTransientLayer() { - return async (dispatch, getState) => { - const transientLayerId = getTransientLayerId(getState()); - if (transientLayerId) { - await dispatch(removeLayerFromLayerList(transientLayerId)); - await dispatch(setTransientLayer(null)); - } - }; -} - -export function setTransientLayer(layerId) { - return { - type: SET_TRANSIENT_LAYER, - transientLayerId: layerId, - }; -} - -export function clearTransientLayerStateAndCloseFlyout() { - return async dispatch => { - await dispatch(updateFlyout(FLYOUT_STATE.NONE)); - await dispatch(setSelectedLayer(null)); - await dispatch(removeTransientLayer()); - }; -} - -export function updateLayerOrder(newLayerOrder) { - return { - type: UPDATE_LAYER_ORDER, - newLayerOrder, - }; -} - -export function mapReady() { - return (dispatch, getState) => { - dispatch({ - type: MAP_READY, - }); - - getWaitingForMapReadyLayerListRaw(getState()).forEach(layerDescriptor => { - dispatch(addLayer(layerDescriptor)); - }); - - dispatch({ - type: CLEAR_WAITING_FOR_MAP_READY_LAYER_LIST, - }); - }; -} - -export function mapDestroyed() { - return { - type: MAP_DESTROYED, - }; -} - -export function mapExtentChanged(newMapConstants) { - return async (dispatch, getState) => { - const state = getState(); - const dataFilters = getDataFilters(state); - const { extent, zoom: newZoom } = newMapConstants; - const { buffer, zoom: currentZoom } = dataFilters; - - if (extent) { - let doesBufferContainExtent = false; - if (buffer) { - const bufferGeometry = turf.bboxPolygon([ - buffer.minLon, - buffer.minLat, - buffer.maxLon, - buffer.maxLat, - ]); - const extentGeometry = turf.bboxPolygon([ - extent.minLon, - extent.minLat, - extent.maxLon, - extent.maxLat, - ]); - - doesBufferContainExtent = turfBooleanContains(bufferGeometry, extentGeometry); - } - - if (!doesBufferContainExtent || currentZoom !== newZoom) { - const scaleFactor = 0.5; // TODO put scale factor in store and fetch with selector - const width = extent.maxLon - extent.minLon; - const height = extent.maxLat - extent.minLat; - dataFilters.buffer = { - minLon: extent.minLon - width * scaleFactor, - minLat: extent.minLat - height * scaleFactor, - maxLon: extent.maxLon + width * scaleFactor, - maxLat: extent.maxLat + height * scaleFactor, - }; - } - } - - dispatch({ - type: MAP_EXTENT_CHANGED, - mapState: { - ...dataFilters, - ...newMapConstants, - }, - }); - const newDataFilters = { ...dataFilters, ...newMapConstants }; - await syncDataForAllLayers(dispatch, getState, newDataFilters); - }; -} - -export function closeOnClickTooltip(tooltipId) { - return (dispatch, getState) => { - dispatch({ - type: SET_OPEN_TOOLTIPS, - openTooltips: getOpenTooltips(getState()).filter(({ id }) => { - return tooltipId !== id; - }), - }); - }; -} - -export function openOnClickTooltip(tooltipState) { - return (dispatch, getState) => { - const openTooltips = getOpenTooltips(getState()).filter(({ features, location, isLocked }) => { - return ( - isLocked && - !_.isEqual(location, tooltipState.location) && - !_.isEqual(features, tooltipState.features) - ); - }); - - openTooltips.push({ - ...tooltipState, - isLocked: true, - id: uuid(), - }); - - dispatch({ - type: SET_OPEN_TOOLTIPS, - openTooltips, - }); - }; -} - -export function closeOnHoverTooltip() { - return (dispatch, getState) => { - if (getOpenTooltips(getState()).length) { - dispatch({ - type: SET_OPEN_TOOLTIPS, - openTooltips: [], - }); - } - }; -} - -export function openOnHoverTooltip(tooltipState) { - return { - type: SET_OPEN_TOOLTIPS, - openTooltips: [ - { - ...tooltipState, - isLocked: false, - id: uuid(), - }, - ], - }; -} - -export function setMouseCoordinates({ lat, lon }) { - let safeLon = lon; - if (lon > 180) { - const overlapWestOfDateLine = lon - 180; - safeLon = -180 + overlapWestOfDateLine; - } else if (lon < -180) { - const overlapEastOfDateLine = Math.abs(lon) - 180; - safeLon = 180 - overlapEastOfDateLine; - } - - return { - type: SET_MOUSE_COORDINATES, - lat, - lon: safeLon, - }; -} - -export function clearMouseCoordinates() { - return { type: CLEAR_MOUSE_COORDINATES }; -} - -export function disableScrollZoom() { - return { type: SET_SCROLL_ZOOM, scrollZoom: false }; -} - -export function fitToLayerExtent(layerId) { - return async function(dispatch, getState) { - const targetLayer = getLayerById(layerId, getState()); - - if (targetLayer) { - const dataFilters = getDataFilters(getState()); - const bounds = await targetLayer.getBounds(dataFilters); - if (bounds) { - await dispatch(setGotoWithBounds(bounds)); - } - } - }; -} - -export function setGotoWithBounds(bounds) { - return { - type: SET_GOTO, - bounds: bounds, - }; -} - -export function setGotoWithCenter({ lat, lon, zoom }) { - return { - type: SET_GOTO, - center: { lat, lon, zoom }, - }; -} - -export function clearGoto() { - return { type: CLEAR_GOTO }; -} - -export function startDataLoad(layerId, dataId, requestToken, meta = {}) { - return (dispatch, getState) => { - const layer = getLayerById(layerId, getState()); - if (layer) { - dispatch(cancelRequest(layer.getPrevRequestToken(dataId))); - } - - const eventHandlers = getEventHandlers(getState()); - if (eventHandlers && eventHandlers.onDataLoad) { - eventHandlers.onDataLoad({ - layerId, - dataId, - }); - } - - dispatch({ - meta, - type: LAYER_DATA_LOAD_STARTED, - layerId, - dataId, - requestToken, - }); - }; -} - -export function updateSourceDataRequest(layerId, newData) { - return dispatch => { - dispatch({ - type: UPDATE_SOURCE_DATA_REQUEST, - dataId: SOURCE_DATA_ID_ORIGIN, - layerId, - newData, - }); - - dispatch(updateStyleMeta(layerId)); - }; -} - -export function endDataLoad(layerId, dataId, requestToken, data, meta) { - return async (dispatch, getState) => { - dispatch(unregisterCancelCallback(requestToken)); - - const features = data && data.features ? data.features : []; - - const eventHandlers = getEventHandlers(getState()); - if (eventHandlers && eventHandlers.onDataLoadEnd) { - const layer = getLayerById(layerId, getState()); - const resultMeta = {}; - if (layer && layer.getType() === LAYER_TYPE.VECTOR) { - resultMeta.featuresCount = features.length; - } - - eventHandlers.onDataLoadEnd({ - layerId, - dataId, - resultMeta, - }); - } - - dispatch(cleanTooltipStateForLayer(layerId, features)); - dispatch({ - type: LAYER_DATA_LOAD_ENDED, - layerId, - dataId, - data, - meta, - requestToken, - }); - - //Clear any data-load errors when there is a succesful data return. - //Co this on end-data-load iso at start-data-load to avoid blipping the error status between true/false. - //This avoids jitter in the warning icon of the TOC when the requests continues to return errors. - dispatch(setLayerDataLoadErrorStatus(layerId, null)); - - dispatch(updateStyleMeta(layerId)); - }; -} - -export function onDataLoadError(layerId, dataId, requestToken, errorMessage) { - return async (dispatch, getState) => { - dispatch(unregisterCancelCallback(requestToken)); - - const eventHandlers = getEventHandlers(getState()); - if (eventHandlers && eventHandlers.onDataLoadError) { - eventHandlers.onDataLoadError({ - layerId, - dataId, - errorMessage, - }); - } - - dispatch(cleanTooltipStateForLayer(layerId)); - dispatch({ - type: LAYER_DATA_LOAD_ERROR, - data: null, - layerId, - dataId, - requestToken, - }); - - dispatch(setLayerDataLoadErrorStatus(layerId, errorMessage)); - }; -} - -export function updateSourceProp(layerId, propName, value, newLayerType) { - return async dispatch => { - dispatch({ - type: UPDATE_SOURCE_PROP, - layerId, - propName, - value, - }); - if (newLayerType) { - dispatch(updateLayerType(layerId, newLayerType)); - } - await dispatch(clearMissingStyleProperties(layerId)); - dispatch(syncDataForLayer(layerId)); - }; -} - -function updateLayerType(layerId, newLayerType) { - return (dispatch, getState) => { - const layer = getLayerById(layerId, getState()); - if (!layer || layer.getType() === newLayerType) { - return; - } - dispatch(clearDataRequests(layer)); - dispatch({ - type: UPDATE_LAYER_PROP, - id: layerId, - propName: 'type', - newValue: newLayerType, - }); - }; -} - -export function syncDataForLayer(layerId) { - return async (dispatch, getState) => { - const targetLayer = getLayerById(layerId, getState()); - if (targetLayer) { - const dataFilters = getDataFilters(getState()); - const loadingFunctions = getLayerLoadingCallbacks(dispatch, getState, layerId); - await targetLayer.syncData({ - ...loadingFunctions, - dataFilters, - }); - } - }; -} - -export function updateLayerLabel(id, newLabel) { - return { - type: UPDATE_LAYER_PROP, - id, - propName: 'label', - newValue: newLabel, - }; -} - -export function updateLayerMinZoom(id, minZoom) { - return { - type: UPDATE_LAYER_PROP, - id, - propName: 'minZoom', - newValue: minZoom, - }; -} - -export function updateLayerMaxZoom(id, maxZoom) { - return { - type: UPDATE_LAYER_PROP, - id, - propName: 'maxZoom', - newValue: maxZoom, - }; -} - -export function updateLayerAlpha(id, alpha) { - return { - type: UPDATE_LAYER_PROP, - id, - propName: 'alpha', - newValue: alpha, - }; -} - -export function setLayerQuery(id, query) { - return dispatch => { - dispatch({ - type: UPDATE_LAYER_PROP, - id, - propName: 'query', - newValue: query, - }); - - dispatch(syncDataForLayer(id)); - }; -} - -export function removeSelectedLayer() { - return (dispatch, getState) => { - const state = getState(); - const layerId = getSelectedLayerId(state); - dispatch(removeLayer(layerId)); - }; -} - -export function removeLayer(layerId) { - return async (dispatch, getState) => { - const state = getState(); - const selectedLayerId = getSelectedLayerId(state); - if (layerId === selectedLayerId) { - dispatch(updateFlyout(FLYOUT_STATE.NONE)); - await dispatch(setSelectedLayer(null)); - } - dispatch(removeLayerFromLayerList(layerId)); - }; -} - -function removeLayerFromLayerList(layerId) { - return (dispatch, getState) => { - const layerGettingRemoved = getLayerById(layerId, getState()); - if (!layerGettingRemoved) { - return; - } - - layerGettingRemoved.getInFlightRequestTokens().forEach(requestToken => { - dispatch(cancelRequest(requestToken)); - }); - dispatch(cleanTooltipStateForLayer(layerId)); - layerGettingRemoved.destroy(); - dispatch({ - type: REMOVE_LAYER, - id: layerId, - }); - }; -} - -export function setQuery({ query, timeFilters, filters = [], refresh = false }) { - function generateQueryTimestamp() { - return new Date().toISOString(); - } - return async (dispatch, getState) => { - const prevQuery = getQuery(getState()); - const prevTriggeredAt = - prevQuery && prevQuery.queryLastTriggeredAt - ? prevQuery.queryLastTriggeredAt - : generateQueryTimestamp(); - - dispatch({ - type: SET_QUERY, - timeFilters, - query: { - ...query, - // ensure query changes to trigger re-fetch when "Refresh" clicked - queryLastTriggeredAt: refresh ? generateQueryTimestamp() : prevTriggeredAt, - }, - filters, - }); - - const dataFilters = getDataFilters(getState()); - await syncDataForAllLayers(dispatch, getState, dataFilters); - }; -} - -export function setRefreshConfig({ isPaused, interval }) { - return { - type: SET_REFRESH_CONFIG, - isPaused, - interval, - }; -} - -export function triggerRefreshTimer() { - return async (dispatch, getState) => { - dispatch({ - type: TRIGGER_REFRESH_TIMER, - }); - - const dataFilters = getDataFilters(getState()); - await syncDataForAllLayers(dispatch, getState, dataFilters); - }; -} - -export function clearMissingStyleProperties(layerId) { - return async (dispatch, getState) => { - const targetLayer = getLayerById(layerId, getState()); - if (!targetLayer) { - return; - } - - const style = targetLayer.getCurrentStyle(); - if (!style) { - return; - } - - const nextFields = await targetLayer.getFields(); //take into account all fields, since labels can be driven by any field (source or join) - const { hasChanges, nextStyleDescriptor } = style.getDescriptorWithMissingStylePropsRemoved( - nextFields - ); - if (hasChanges) { - dispatch(updateLayerStyle(layerId, nextStyleDescriptor)); - } - }; -} - -export function updateLayerStyle(layerId, styleDescriptor) { - return dispatch => { - dispatch({ - type: UPDATE_LAYER_STYLE, - layerId, - style: { - ...styleDescriptor, - }, - }); - - // Ensure updateStyleMeta is triggered - // syncDataForLayer may not trigger endDataLoad if no re-fetch is required - dispatch(updateStyleMeta(layerId)); - - // Style update may require re-fetch, for example ES search may need to retrieve field used for dynamic styling - dispatch(syncDataForLayer(layerId)); - }; -} - -export function updateStyleMeta(layerId) { - return async (dispatch, getState) => { - const layer = getLayerById(layerId, getState()); - if (!layer) { - return; - } - const sourceDataRequest = layer.getSourceDataRequest(); - const style = layer.getCurrentStyle(); - if (!style || !sourceDataRequest) { - return; - } - const styleMeta = await style.pluckStyleMetaFromSourceDataRequest(sourceDataRequest); - dispatch({ - type: SET_LAYER_STYLE_META, - layerId, - styleMeta, - }); - }; -} - -export function updateLayerStyleForSelectedLayer(styleDescriptor) { - return (dispatch, getState) => { - const selectedLayerId = getSelectedLayerId(getState()); - if (!selectedLayerId) { - return; - } - dispatch(updateLayerStyle(selectedLayerId, styleDescriptor)); - }; -} - -export function setJoinsForLayer(layer, joins) { - return async dispatch => { - await dispatch({ - type: SET_JOINS, - layer: layer, - joins: joins, - }); - - await dispatch(clearMissingStyleProperties(layer.getId())); - dispatch(syncDataForLayer(layer.getId())); - }; -} - -export function updateDrawState(drawState) { - return dispatch => { - if (drawState !== null) { - dispatch({ type: SET_OPEN_TOOLTIPS, openTooltips: [] }); // tooltips just get in the way - } - dispatch({ - type: UPDATE_DRAW_STATE, - drawState: drawState, - }); - }; -} - -export function disableInteractive() { - return { type: SET_INTERACTIVE, disableInteractive: true }; -} - -export function disableTooltipControl() { - return { type: DISABLE_TOOLTIP_CONTROL, disableTooltipControl: true }; -} - -export function hideToolbarOverlay() { - return { type: HIDE_TOOLBAR_OVERLAY, hideToolbarOverlay: true }; -} - -export function hideLayerControl() { - return { type: HIDE_LAYER_CONTROL, hideLayerControl: true }; -} -export function hideViewControl() { - return { type: HIDE_VIEW_CONTROL, hideViewControl: true }; -} - -export function setHiddenLayers(hiddenLayerIds) { - return (dispatch, getState) => { - const isMapReady = getMapReady(getState()); - - if (!isMapReady) { - dispatch({ type: SET_WAITING_FOR_READY_HIDDEN_LAYERS, hiddenLayerIds }); - } else { - getLayerListRaw(getState()).forEach(layer => - dispatch(setLayerVisibility(layer.id, !hiddenLayerIds.includes(layer.id))) - ); - } - }; -} diff --git a/x-pack/legacy/plugins/maps/public/actions/ui_actions.js b/x-pack/legacy/plugins/maps/public/actions/ui_actions.js deleted file mode 100644 index 33ab2fd74122a6..00000000000000 --- a/x-pack/legacy/plugins/maps/public/actions/ui_actions.js +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { - UPDATE_FLYOUT, - CLOSE_SET_VIEW, - OPEN_SET_VIEW, - SET_IS_LAYER_TOC_OPEN, - SET_FULL_SCREEN, - SET_READ_ONLY, - SET_OPEN_TOC_DETAILS, - SHOW_TOC_DETAILS, - HIDE_TOC_DETAILS, - UPDATE_INDEXING_STAGE, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/actions/ui_actions'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -export * from '../../../../../plugins/maps/public/actions/ui_actions'; - -export function exitFullScreen() { - return { - type: SET_FULL_SCREEN, - isFullScreen: false, - }; -} - -export function updateFlyout(display) { - return { - type: UPDATE_FLYOUT, - display, - }; -} -export function closeSetView() { - return { - type: CLOSE_SET_VIEW, - }; -} -export function openSetView() { - return { - type: OPEN_SET_VIEW, - }; -} -export function setIsLayerTOCOpen(isLayerTOCOpen) { - return { - type: SET_IS_LAYER_TOC_OPEN, - isLayerTOCOpen, - }; -} -export function enableFullScreen() { - return { - type: SET_FULL_SCREEN, - isFullScreen: true, - }; -} -export function setReadOnly(isReadOnly) { - return { - type: SET_READ_ONLY, - isReadOnly, - }; -} - -export function setOpenTOCDetails(layerIds) { - return { - type: SET_OPEN_TOC_DETAILS, - layerIds, - }; -} - -export function showTOCDetails(layerId) { - return { - type: SHOW_TOC_DETAILS, - layerId, - }; -} - -export function hideTOCDetails(layerId) { - return { - type: HIDE_TOC_DETAILS, - layerId, - }; -} - -export function updateIndexingStage(stage) { - return { - type: UPDATE_INDEXING_STAGE, - stage, - }; -} diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.js b/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.js deleted file mode 100644 index 686259aeaaba44..00000000000000 --- a/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.js +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -import _ from 'lodash'; -// Import each layer type, even those not used, to init in registry -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/wms_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/ems_file_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/es_search_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/es_pew_pew_source/es_pew_pew_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/kibana_regionmap_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/es_geo_grid_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import '../../../../../plugins/maps/public/layers/sources/xyz_tms_source'; - -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { KibanaTilemapSource } from '../../../../../plugins/maps/public/layers/sources/kibana_tilemap_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { EMSTMSSource } from '../../../../../plugins/maps/public/layers/sources/ems_tms_source'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInjectedVarFunc } from '../../../../../plugins/maps/public/kibana_services'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getKibanaTileMap } from '../../../../../plugins/maps/public/meta'; - -export function getInitialLayers(layerListJSON, initialLayers = []) { - if (layerListJSON) { - return JSON.parse(layerListJSON); - } - - const tilemapSourceFromKibana = getKibanaTileMap(); - if (_.get(tilemapSourceFromKibana, 'url')) { - const sourceDescriptor = KibanaTilemapSource.createDescriptor(); - const source = new KibanaTilemapSource(sourceDescriptor); - const layer = source.createDefaultLayer(); - return [layer.toLayerDescriptor(), ...initialLayers]; - } - - const isEmsEnabled = getInjectedVarFunc()('isEmsEnabled', true); - if (isEmsEnabled) { - const descriptor = EMSTMSSource.createDescriptor({ isAutoSelect: true }); - const source = new EMSTMSSource(descriptor); - const layer = source.createDefaultLayer(); - return [layer.toLayerDescriptor(), ...initialLayers]; - } - - return initialLayers; -} diff --git a/x-pack/legacy/plugins/maps/public/angular/map_controller.js b/x-pack/legacy/plugins/maps/public/angular/map_controller.js index 6bc8a4d0be5aca..9522fd12ad37d1 100644 --- a/x-pack/legacy/plugins/maps/public/angular/map_controller.js +++ b/x-pack/legacy/plugins/maps/public/angular/map_controller.js @@ -28,8 +28,10 @@ import { // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { createMapStore } from '../../../../../plugins/maps/public/reducers/store'; import { Provider } from 'react-redux'; -import { GisMap } from '../connected_components/gis_map'; -import { addHelpMenuToAppChrome } from '../help_menu_util'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { GisMap } from '../../../../../plugins/maps/public/connected_components/gis_map'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { addHelpMenuToAppChrome } from '../../../../../plugins/maps/public/help_menu_util'; import { setSelectedLayer, setRefreshConfig, @@ -37,7 +39,8 @@ import { replaceLayerList, setQuery, clearTransientLayerStateAndCloseFlyout, -} from '../actions/map_actions'; + // eslint-disable-next-line @kbn/eslint/no-restricted-paths +} from '../../../../../plugins/maps/public/actions/map_actions'; import { DEFAULT_IS_LAYER_TOC_OPEN, FLYOUT_STATE, @@ -49,22 +52,29 @@ import { setReadOnly, setIsLayerTOCOpen, setOpenTOCDetails, -} from '../actions/ui_actions'; -import { getIsFullScreen } from '../selectors/ui_selectors'; + // eslint-disable-next-line @kbn/eslint/no-restricted-paths +} from '../../../../../plugins/maps/public/actions/ui_actions'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getIsFullScreen } from '../../../../../plugins/maps/public/selectors/ui_selectors'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { copyPersistentState } from '../../../../../plugins/maps/public/reducers/util'; import { getQueryableUniqueIndexPatternIds, hasDirtyState, getLayerListRaw, -} from '../selectors/map_selectors'; + // eslint-disable-next-line @kbn/eslint/no-restricted-paths +} from '../../../../../plugins/maps/public/selectors/map_selectors'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { getInspectorAdapters } from '../../../../../plugins/maps/public/reducers/non_serializable_instances'; -import { getInitialLayers } from './get_initial_layers'; -import { getInitialQuery } from './get_initial_query'; -import { getInitialTimeFilters } from './get_initial_time_filters'; -import { getInitialRefreshConfig } from './get_initial_refresh_config'; -import { MAP_SAVED_OBJECT_TYPE, MAP_APP_PATH } from '../../common/constants'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInitialLayers } from '../../../../../plugins/maps/public/angular/get_initial_layers'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInitialQuery } from '../../../../../plugins/maps/public/angular/get_initial_query'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInitialTimeFilters } from '../../../../../plugins/maps/public/angular/get_initial_time_filters'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getInitialRefreshConfig } from '../../../../../plugins/maps/public/angular/get_initial_refresh_config'; +import { MAP_SAVED_OBJECT_TYPE, MAP_APP_PATH } from '../../../../../plugins/maps/common/constants'; import { npSetup, npStart } from 'ui/new_platform'; import { esFilters } from '../../../../../../src/plugins/data/public'; import { diff --git a/x-pack/legacy/plugins/maps/public/components/_index.scss b/x-pack/legacy/plugins/maps/public/components/_index.scss deleted file mode 100644 index 0b327194424244..00000000000000 --- a/x-pack/legacy/plugins/maps/public/components/_index.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import './metric_editors'; -@import './geometry_filter'; -@import './tooltip_selector'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/_index.scss b/x-pack/legacy/plugins/maps/public/connected_components/_index.scss deleted file mode 100644 index 99a2e222ea6c14..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/_index.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import './gis_map/gis_map'; -@import './layer_addpanel/source_select/index'; -@import './layer_panel/index'; -@import './widget_overlay/index'; -@import './toolbar_overlay/index'; -@import './map/features_tooltip/index'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss b/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss deleted file mode 100644 index 7fe1396fcca16e..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss +++ /dev/null @@ -1 +0,0 @@ -@import './source_select'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_index.scss b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_index.scss deleted file mode 100644 index fd074edf032fa0..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_index.scss +++ /dev/null @@ -1,4 +0,0 @@ -@import './layer_panel'; -@import './filter_editor/filter_editor'; -@import './join_editor/resources/join'; -@import './style_settings/style_settings'; \ No newline at end of file diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.d.ts b/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.d.ts deleted file mode 100644 index cf4fdc7be70c68..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ -/* eslint-disable @typescript-eslint/consistent-type-definitions */ - -export * from '../../../../../../plugins/maps/public/connected_components/layer_panel/view'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/utils.js b/x-pack/legacy/plugins/maps/public/connected_components/map/mb/utils.js deleted file mode 100644 index a1d1341b7c4f7e..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/utils.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import _ from 'lodash'; -import { - loadSpriteSheetImageData, - addSpriteSheetToMapFromImageData, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../plugins/maps/public/connected_components/map/mb/utils'; - -export { loadSpriteSheetImageData, addSpriteSheetToMapFromImageData }; - -export function removeOrphanedSourcesAndLayers(mbMap, layerList) { - const mbStyle = mbMap.getStyle(); - - const mbLayerIdsToRemove = []; - mbStyle.layers.forEach(mbLayer => { - const layer = layerList.find(layer => { - return layer.ownsMbLayerId(mbLayer.id); - }); - if (!layer) { - mbLayerIdsToRemove.push(mbLayer.id); - } - }); - mbLayerIdsToRemove.forEach(mbLayerId => mbMap.removeLayer(mbLayerId)); - - const mbSourcesToRemove = []; - for (const mbSourceId in mbStyle.sources) { - if (mbStyle.sources.hasOwnProperty(mbSourceId)) { - const layer = layerList.find(layer => { - return layer.ownsMbSourceId(mbSourceId); - }); - if (!layer) { - mbSourcesToRemove.push(mbSourceId); - } - } - } - mbSourcesToRemove.forEach(mbSourceId => mbMap.removeSource(mbSourceId)); -} - -/** - * This is function assumes only a single layer moved in the layerList, compared to mbMap - * It is optimized to minimize the amount of mbMap.moveLayer calls. - * @param mbMap - * @param layerList - */ -export function syncLayerOrderForSingleLayer(mbMap, layerList) { - if (!layerList || layerList.length === 0) { - return; - } - - const mbLayers = mbMap.getStyle().layers.slice(); - const layerIds = mbLayers.map(mbLayer => { - const layer = layerList.find(layer => layer.ownsMbLayerId(mbLayer.id)); - return layer.getId(); - }); - - const currentLayerOrderLayerIds = _.uniq(layerIds); - - const newLayerOrderLayerIdsUnfiltered = layerList.map(l => l.getId()); - const newLayerOrderLayerIds = newLayerOrderLayerIdsUnfiltered.filter(layerId => - currentLayerOrderLayerIds.includes(layerId) - ); - - let netPos = 0; - let netNeg = 0; - const movementArr = currentLayerOrderLayerIds.reduce((accu, id, idx) => { - const movement = newLayerOrderLayerIds.findIndex(newOId => newOId === id) - idx; - movement > 0 ? netPos++ : movement < 0 && netNeg++; - accu.push({ id, movement }); - return accu; - }, []); - if (netPos === 0 && netNeg === 0) { - return; - } - const movedLayerId = - (netPos >= netNeg && movementArr.find(l => l.movement < 0).id) || - (netPos < netNeg && movementArr.find(l => l.movement > 0).id); - const nextLayerIdx = newLayerOrderLayerIds.findIndex(layerId => layerId === movedLayerId) + 1; - - let nextMbLayerId; - if (nextLayerIdx === newLayerOrderLayerIds.length) { - nextMbLayerId = null; - } else { - const foundLayer = mbLayers.find(({ id: mbLayerId }) => { - const layerId = newLayerOrderLayerIds[nextLayerIdx]; - const layer = layerList.find(layer => layer.getId() === layerId); - return layer.ownsMbLayerId(mbLayerId); - }); - nextMbLayerId = foundLayer.id; - } - - const movedLayer = layerList.find(layer => layer.getId() === movedLayerId); - mbLayers.forEach(({ id: mbLayerId }) => { - if (movedLayer.ownsMbLayerId(mbLayerId)) { - mbMap.moveLayer(mbLayerId, nextMbLayerId); - } - }); -} - -export async function addSpritesheetToMap(json, imgUrl, mbMap) { - const imgData = await loadSpriteSheetImageData(imgUrl); - addSpriteSheetToMapFromImageData(json, imgData, mbMap); -} diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_index.scss b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_index.scss deleted file mode 100644 index cc1ab35039dac2..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_index.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import './mixins'; - -@import './widget_overlay'; -@import './attribution_control/attribution_control'; -@import './layer_control/index'; -@import './view_control/view_control'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss b/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss deleted file mode 100644 index 761ef9d17b4c2d..00000000000000 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss +++ /dev/null @@ -1,2 +0,0 @@ -@import './layer_control'; -@import './layer_toc/toc_entry/toc_entry'; diff --git a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts index 96c3baf634a834..90b17412377f52 100644 --- a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts +++ b/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable_factory.ts @@ -4,153 +4,25 @@ * you may not use this file except in compliance with the Elastic License. */ -import _ from 'lodash'; -import { i18n } from '@kbn/i18n'; +/* + Maintain legacy embeddable legacy present while apps switch over + */ + import { npSetup, npStart } from 'ui/new_platform'; -import { IIndexPattern } from 'src/plugins/data/public'; -// @ts-ignore -import { getMapsSavedObjectLoader } from '../angular/services/gis_map_saved_object_loader'; -import { MapEmbeddable, MapEmbeddableInput } from './map_embeddable'; import { - getIndexPatternService, - getHttp, - getMapsCapabilities, + bindSetupCoreAndPlugins, + bindStartCoreAndPlugins, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/kibana_services'; -import { - EmbeddableFactoryDefinition, - IContainer, -} from '../../../../../../src/plugins/embeddable/public'; - -import { createMapPath, MAP_SAVED_OBJECT_TYPE, APP_ICON } from '../../common/constants'; +} from '../../../../../plugins/maps/public/plugin'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { createMapStore } from '../../../../../plugins/maps/public/reducers/store'; -import { addLayerWithoutDataSync } from '../actions/map_actions'; -import { getQueryableUniqueIndexPatternIds } from '../selectors/map_selectors'; -import { getInitialLayers } from '../angular/get_initial_layers'; -import { mergeInputWithSavedMap } from './merge_input_with_saved_map'; -import '../angular/services/gis_map_saved_object_loader'; -// @ts-ignore -import { - bindSetupCoreAndPlugins as bindNpSetupCoreAndPlugins, - bindStartCoreAndPlugins as bindNpStartCoreAndPlugins, -} from '../../../../../plugins/maps/public/plugin'; // eslint-disable-line @kbn/eslint/no-restricted-paths - -export class MapEmbeddableFactory implements EmbeddableFactoryDefinition { - type = MAP_SAVED_OBJECT_TYPE; - savedObjectMetaData = { - name: i18n.translate('xpack.maps.mapSavedObjectLabel', { - defaultMessage: 'Map', - }), - type: MAP_SAVED_OBJECT_TYPE, - getIconForSavedObject: () => APP_ICON, - }; - constructor() { - // Init required services. Necessary while in legacy - bindNpSetupCoreAndPlugins(npSetup.core, npSetup.plugins); - bindNpStartCoreAndPlugins(npStart.core, npStart.plugins); - } - - async isEditable() { - return getMapsCapabilities().save as boolean; - } - - // Not supported yet for maps types. - canCreateNew() { - return false; - } - - getDisplayName() { - return i18n.translate('xpack.maps.embeddableDisplayName', { - defaultMessage: 'map', - }); - } - - async _getIndexPatterns(layerList: unknown[]): Promise { - // Need to extract layerList from store to get queryable index pattern ids - const store = createMapStore(); - let queryableIndexPatternIds; - try { - layerList.forEach((layerDescriptor: unknown) => { - store.dispatch(addLayerWithoutDataSync(layerDescriptor)); - }); - queryableIndexPatternIds = getQueryableUniqueIndexPatternIds(store.getState()); - } catch (error) { - throw new Error( - i18n.translate('xpack.maps.mapEmbeddableFactory.invalidLayerList', { - defaultMessage: 'Unable to load map, malformed layer list', - }) - ); - } - - const promises = queryableIndexPatternIds.map(async indexPatternId => { - try { - return await getIndexPatternService().get(indexPatternId); - } catch (error) { - // Unable to load index pattern, better to not throw error so map embeddable can render - // Error will be surfaced by map embeddable since it too will be unable to locate the index pattern - return null; - } - }); - const indexPatterns = await Promise.all(promises); - return _.compact(indexPatterns) as IIndexPattern[]; - } - - async _fetchSavedMap(savedObjectId: string) { - const savedObjectLoader = getMapsSavedObjectLoader(); - return await savedObjectLoader.get(savedObjectId); - } - - createFromSavedObject = async ( - savedObjectId: string, - input: MapEmbeddableInput, - parent?: IContainer - ) => { - const savedMap = await this._fetchSavedMap(savedObjectId); - const layerList = getInitialLayers(savedMap.layerListJSON); - const indexPatterns = await this._getIndexPatterns(layerList); - - const embeddable = new MapEmbeddable( - { - layerList, - title: savedMap.title, - editUrl: getHttp().basePath.prepend(createMapPath(savedObjectId)), - indexPatterns, - editable: await this.isEditable(), - }, - input, - parent - ); - - try { - embeddable.updateInput(mergeInputWithSavedMap(input, savedMap)); - } catch (error) { - throw new Error( - i18n.translate('xpack.maps.mapEmbeddableFactory.invalidSavedObject', { - defaultMessage: 'Unable to load map, malformed saved object', - }) - ); - } - - return embeddable; - }; +import { MAP_SAVED_OBJECT_TYPE } from '../../../../../plugins/maps/common/constants'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { MapEmbeddableFactory } from '../../../../../plugins/maps/public/embeddable'; - create = async (input: MapEmbeddableInput, parent?: IContainer) => { - const layerList = getInitialLayers(); - const indexPatterns = await this._getIndexPatterns(layerList); +bindSetupCoreAndPlugins(npSetup.core, npSetup.plugins); +bindStartCoreAndPlugins(npStart.core, npStart.plugins); - return new MapEmbeddable( - { - layerList, - title: input.title ?? '', - indexPatterns, - editable: false, - }, - input, - parent - ); - }; -} +export * from '../../../../../plugins/maps/public/embeddable/map_embeddable_factory'; npSetup.plugins.embeddable.registerEmbeddableFactory( MAP_SAVED_OBJECT_TYPE, diff --git a/x-pack/legacy/plugins/maps/public/index.scss b/x-pack/legacy/plugins/maps/public/index.scss index b2ac514299d80c..b2a228f01b9210 100644 --- a/x-pack/legacy/plugins/maps/public/index.scss +++ b/x-pack/legacy/plugins/maps/public/index.scss @@ -1,17 +1,3 @@ -// Import the EUI global scope so we can use EUI constants -@import 'src/legacy/ui/public/styles/_styling_constants'; - /* GIS plugin styles */ -// Prefix all styles with "map" to avoid conflicts. -// Examples -// mapChart -// mapChart__legend -// mapChart__legend--small -// mapChart__legend-isLoading - -@import './main'; -@import './mapbox_hacks'; -@import './connected_components/index'; -@import './components/index'; -@import '../../../../plugins/maps/public/layers/index'; +@import '../../../../plugins/maps/public/index'; diff --git a/x-pack/legacy/plugins/maps/public/index.ts b/x-pack/legacy/plugins/maps/public/index.ts index 8555594e909d38..98db26859297b9 100644 --- a/x-pack/legacy/plugins/maps/public/index.ts +++ b/x-pack/legacy/plugins/maps/public/index.ts @@ -15,15 +15,14 @@ import 'uiExports/embeddableActions'; import 'ui/autoload/all'; import 'react-vis/dist/style.css'; - -import './angular/services/gis_map_saved_object_loader'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import '../../../../plugins/maps/public/angular/services/gis_map_saved_object_loader'; import './angular/map_controller'; import './routes'; // @ts-ignore -import { PluginInitializerContext } from 'kibana/public'; import { MapsPlugin } from './plugin'; -export const plugin = (initializerContext: PluginInitializerContext) => { +export const plugin = () => { return new MapsPlugin(); }; @@ -32,4 +31,4 @@ export { RenderTooltipContentParams, ITooltipProperty, } from '../../../../plugins/maps/public/layers/tooltips/tooltip_property'; -export { MapEmbeddable, MapEmbeddableInput } from './embeddable'; +export { MapEmbeddable, MapEmbeddableInput } from '../../../../plugins/maps/public/embeddable'; diff --git a/x-pack/legacy/plugins/maps/public/legacy.ts b/x-pack/legacy/plugins/maps/public/legacy.ts index 96d9e09c1d09a1..bcbfca17755fb4 100644 --- a/x-pack/legacy/plugins/maps/public/legacy.ts +++ b/x-pack/legacy/plugins/maps/public/legacy.ts @@ -7,10 +7,9 @@ import { npSetup, npStart } from 'ui/new_platform'; // @ts-ignore Untyped Module import { uiModules } from 'ui/modules'; -import { PluginInitializerContext } from 'kibana/public'; // eslint-disable-line import/order import { plugin } from '.'; -const pluginInstance = plugin({} as PluginInitializerContext); +const pluginInstance = plugin(); const setupPlugins = { __LEGACY: { diff --git a/x-pack/legacy/plugins/maps/public/legacy_register_feature.ts b/x-pack/legacy/plugins/maps/public/legacy_register_feature.ts deleted file mode 100644 index 00f788f267d4b1..00000000000000 --- a/x-pack/legacy/plugins/maps/public/legacy_register_feature.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { npSetup } from 'ui/new_platform'; -import { featureCatalogueEntry } from './feature_catalogue_entry'; - -const { - plugins: { home }, -} = npSetup; - -home.featureCatalogue.register(featureCatalogueEntry); diff --git a/x-pack/legacy/plugins/maps/public/plugin.ts b/x-pack/legacy/plugins/maps/public/plugin.ts index 71f1a30c1fbef9..0123e32b6d3b93 100644 --- a/x-pack/legacy/plugins/maps/public/plugin.ts +++ b/x-pack/legacy/plugins/maps/public/plugin.ts @@ -10,7 +10,7 @@ import { Start as InspectorStartContract } from 'src/plugins/inspector/public'; // @ts-ignore import { wrapInI18nContext } from 'ui/i18n'; // @ts-ignore -import { MapListing } from './components/map_listing'; +import { MapListing } from '../../../../plugins/maps/public/components/map_listing'; // eslint-disable-line @kbn/eslint/no-restricted-paths // @ts-ignore import { bindSetupCoreAndPlugins as bindNpSetupCoreAndPlugins, @@ -18,7 +18,6 @@ import { } from '../../../../plugins/maps/public/plugin'; // eslint-disable-line @kbn/eslint/no-restricted-paths import { HomePublicPluginSetup } from '../../../../../src/plugins/home/public'; import { LicensingPluginSetup } from '../../../../plugins/licensing/public'; -import { featureCatalogueEntry } from './feature_catalogue_entry'; import { DataPublicPluginSetup, DataPublicPluginStart, @@ -57,8 +56,6 @@ export class MapsPlugin implements Plugin { }); bindNpSetupCoreAndPlugins(core, np); - - np.home.featureCatalogue.register(featureCatalogueEntry); } public start(core: CoreStart, plugins: MapsPluginStartDependencies) { diff --git a/x-pack/legacy/plugins/maps/public/register_vis_type_alias.js b/x-pack/legacy/plugins/maps/public/register_vis_type_alias.js deleted file mode 100644 index 9dc07bcb5dc0e9..00000000000000 --- a/x-pack/legacy/plugins/maps/public/register_vis_type_alias.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { i18n } from '@kbn/i18n'; -import { APP_ID, APP_ICON, MAP_BASE_URL } from '../common/constants'; -import { - getInjectedVarFunc, - getVisualizations, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../plugins/maps/public/kibana_services'; -import { npSetup } from 'ui/new_platform'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { bindSetupCoreAndPlugins } from '../../../../plugins/maps/public/plugin'; - -bindSetupCoreAndPlugins(npSetup.core, npSetup.plugins); - -const showMapVisualizationTypes = getInjectedVarFunc()('showMapVisualizationTypes', false); - -const description = i18n.translate('xpack.maps.visTypeAlias.description', { - defaultMessage: 'Create and style maps with multiple layers and indices.', -}); - -const legacyMapVisualizationWarning = i18n.translate( - 'xpack.maps.visTypeAlias.legacyMapVizWarning', - { - defaultMessage: `Use the Maps app instead of Coordinate Map and Region Map. -The Maps app offers more functionality and is easier to use.`, - } -); - -getVisualizations().registerAlias({ - aliasUrl: MAP_BASE_URL, - name: APP_ID, - title: i18n.translate('xpack.maps.visTypeAlias.title', { - defaultMessage: 'Maps', - }), - description: showMapVisualizationTypes - ? `${description} ${legacyMapVisualizationWarning}` - : description, - icon: APP_ICON, - stage: 'production', -}); - -if (!showMapVisualizationTypes) { - getVisualizations().hideTypes(['region_map', 'tile_map']); -} diff --git a/x-pack/legacy/plugins/maps/public/routes.js b/x-pack/legacy/plugins/maps/public/routes.js index c082e0e1352c0e..70c1c4a50efd45 100644 --- a/x-pack/legacy/plugins/maps/public/routes.js +++ b/x-pack/legacy/plugins/maps/public/routes.js @@ -6,15 +6,18 @@ import { i18n } from '@kbn/i18n'; import routes from 'ui/routes'; -import listingTemplate from './angular/listing_ng_wrapper.html'; -import mapTemplate from './angular/map.html'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import listingTemplate from '../../../../plugins/maps/public/angular/listing_ng_wrapper.html'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import mapTemplate from '../../../../plugins/maps/public/angular/map.html'; import { getSavedObjectsClient, getCoreChrome, getMapsCapabilities, // eslint-disable-next-line @kbn/eslint/no-restricted-paths } from '../../../../plugins/maps/public/kibana_services'; -import { getMapsSavedObjectLoader } from './angular/services/gis_map_saved_object_loader'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { getMapsSavedObjectLoader } from '../../../../plugins/maps/public/angular/services/gis_map_saved_object_loader'; routes.enable(); diff --git a/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.js b/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.js index c5522b7ba21c58..e2a758075155a5 100644 --- a/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.js +++ b/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.js @@ -5,7 +5,10 @@ */ import _ from 'lodash'; -import { DEFAULT_MAX_RESULT_WINDOW, DEFAULT_MAX_INNER_RESULT_WINDOW } from '../../common/constants'; +import { + DEFAULT_MAX_RESULT_WINDOW, + DEFAULT_MAX_INNER_RESULT_WINDOW, +} from '../../../../../plugins/maps/common/constants'; export function getIndexPatternSettings(indicesSettingsResp) { let maxResultWindow = Infinity; diff --git a/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.test.js b/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.test.js index 01a1ba2703cba3..c152f5bfffc31c 100644 --- a/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.test.js +++ b/x-pack/legacy/plugins/maps/server/lib/get_index_pattern_settings.test.js @@ -5,7 +5,10 @@ */ import { getIndexPatternSettings } from './get_index_pattern_settings'; -import { DEFAULT_MAX_RESULT_WINDOW, DEFAULT_MAX_INNER_RESULT_WINDOW } from '../../common/constants'; +import { + DEFAULT_MAX_RESULT_WINDOW, + DEFAULT_MAX_INNER_RESULT_WINDOW, +} from '../../../../../plugins/maps/common/constants'; describe('max_result_window and max_inner_result_window are not set', () => { test('Should provide default values when values not set', () => { diff --git a/x-pack/legacy/plugins/maps/server/maps_telemetry/collectors/register.ts b/x-pack/legacy/plugins/maps/server/maps_telemetry/collectors/register.ts index 652bb83a0d781c..d34e306d1fff90 100644 --- a/x-pack/legacy/plugins/maps/server/maps_telemetry/collectors/register.ts +++ b/x-pack/legacy/plugins/maps/server/maps_telemetry/collectors/register.ts @@ -9,7 +9,7 @@ import { UsageCollectionSetup } from 'src/plugins/usage_collection/server'; import { SavedObjectsClientContract } from 'src/core/server'; import { getMapsTelemetry } from '../maps_telemetry'; // @ts-ignore -import { TELEMETRY_TYPE } from '../../../common/constants'; +import { TELEMETRY_TYPE } from '../../../../../../plugins/maps/common/constants'; export function registerMapsUsageCollector( usageCollection: UsageCollectionSetup, diff --git a/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts b/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts index 27c0211446e852..4610baabad3fe5 100644 --- a/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts +++ b/x-pack/legacy/plugins/maps/server/maps_telemetry/maps_telemetry.ts @@ -16,8 +16,8 @@ import { ES_GEO_FIELD_TYPE, MAP_SAVED_OBJECT_TYPE, TELEMETRY_TYPE, -} from '../../common/constants'; -import { LayerDescriptor } from '../../common/descriptor_types'; +} from '../../../../../plugins/maps/common/constants'; +import { LayerDescriptor } from '../../../../../plugins/maps/common/descriptor_types'; import { MapSavedObject } from '../../../../../plugins/maps/common/map_saved_object_type'; interface IStats { diff --git a/x-pack/legacy/plugins/maps/server/plugin.js b/x-pack/legacy/plugins/maps/server/plugin.js index 25c552433e9f82..79f3dcf76b82eb 100644 --- a/x-pack/legacy/plugins/maps/server/plugin.js +++ b/x-pack/legacy/plugins/maps/server/plugin.js @@ -4,7 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ import { i18n } from '@kbn/i18n'; -import { APP_ID, APP_ICON, createMapPath, MAP_SAVED_OBJECT_TYPE } from '../common/constants'; +import { + APP_ID, + APP_ICON, + createMapPath, + MAP_SAVED_OBJECT_TYPE, +} from '../../../../plugins/maps/common/constants'; import { getEcommerceSavedObjects } from './sample_data/ecommerce_saved_objects'; import { getFlightsSavedObjects } from './sample_data/flights_saved_objects.js'; import { getWebLogsSavedObjects } from './sample_data/web_logs_saved_objects.js'; diff --git a/x-pack/legacy/plugins/maps/server/routes.js b/x-pack/legacy/plugins/maps/server/routes.js index 20e022001577a8..d49f9827e3ea04 100644 --- a/x-pack/legacy/plugins/maps/server/routes.js +++ b/x-pack/legacy/plugins/maps/server/routes.js @@ -21,7 +21,7 @@ import { GIS_API_PATH, EMS_SPRITES_PATH, INDEX_SETTINGS_API_PATH, -} from '../common/constants'; +} from '../../../../plugins/maps/common/constants'; import { EMSClient } from '@elastic/ems-client'; import fetch from 'node-fetch'; import { i18n } from '@kbn/i18n'; diff --git a/x-pack/legacy/plugins/maps/common/migrations/add_field_meta_options.js b/x-pack/plugins/maps/common/migrations/add_field_meta_options.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/add_field_meta_options.js rename to x-pack/plugins/maps/common/migrations/add_field_meta_options.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/add_field_meta_options.test.js b/x-pack/plugins/maps/common/migrations/add_field_meta_options.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/add_field_meta_options.test.js rename to x-pack/plugins/maps/common/migrations/add_field_meta_options.test.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.js b/x-pack/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.js rename to x-pack/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.test.js b/x-pack/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.test.js rename to x-pack/plugins/maps/common/migrations/ems_raster_tile_to_ems_vector_tile.test.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/join_agg_key.test.ts b/x-pack/plugins/maps/common/migrations/join_agg_key.test.ts similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/join_agg_key.test.ts rename to x-pack/plugins/maps/common/migrations/join_agg_key.test.ts diff --git a/x-pack/legacy/plugins/maps/common/migrations/join_agg_key.ts b/x-pack/plugins/maps/common/migrations/join_agg_key.ts similarity index 97% rename from x-pack/legacy/plugins/maps/common/migrations/join_agg_key.ts rename to x-pack/plugins/maps/common/migrations/join_agg_key.ts index 29661aedb550c5..97b9ee4692c253 100644 --- a/x-pack/legacy/plugins/maps/common/migrations/join_agg_key.ts +++ b/x-pack/plugins/maps/common/migrations/join_agg_key.ts @@ -20,7 +20,7 @@ import { LayerDescriptor, VectorLayerDescriptor, } from '../descriptor_types'; -import { MapSavedObjectAttributes } from '../../../../../plugins/maps/common/map_saved_object_type'; +import { MapSavedObjectAttributes } from '../map_saved_object_type'; const GROUP_BY_DELIMITER = '_groupby_'; diff --git a/x-pack/legacy/plugins/maps/common/migrations/migrate_symbol_style_descriptor.js b/x-pack/plugins/maps/common/migrations/migrate_symbol_style_descriptor.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/migrate_symbol_style_descriptor.js rename to x-pack/plugins/maps/common/migrations/migrate_symbol_style_descriptor.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/migrate_symbol_style_descriptor.test.js b/x-pack/plugins/maps/common/migrations/migrate_symbol_style_descriptor.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/migrate_symbol_style_descriptor.test.js rename to x-pack/plugins/maps/common/migrations/migrate_symbol_style_descriptor.test.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/move_apply_global_query.js b/x-pack/plugins/maps/common/migrations/move_apply_global_query.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/move_apply_global_query.js rename to x-pack/plugins/maps/common/migrations/move_apply_global_query.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/move_apply_global_query.test.js b/x-pack/plugins/maps/common/migrations/move_apply_global_query.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/move_apply_global_query.test.js rename to x-pack/plugins/maps/common/migrations/move_apply_global_query.test.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/references.js b/x-pack/plugins/maps/common/migrations/references.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/references.js rename to x-pack/plugins/maps/common/migrations/references.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/references.test.js b/x-pack/plugins/maps/common/migrations/references.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/references.test.js rename to x-pack/plugins/maps/common/migrations/references.test.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/scaling_type.test.ts b/x-pack/plugins/maps/common/migrations/scaling_type.test.ts similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/scaling_type.test.ts rename to x-pack/plugins/maps/common/migrations/scaling_type.test.ts diff --git a/x-pack/legacy/plugins/maps/common/migrations/scaling_type.ts b/x-pack/plugins/maps/common/migrations/scaling_type.ts similarity index 93% rename from x-pack/legacy/plugins/maps/common/migrations/scaling_type.ts rename to x-pack/plugins/maps/common/migrations/scaling_type.ts index 551975fbacea52..98a06a764f4ec4 100644 --- a/x-pack/legacy/plugins/maps/common/migrations/scaling_type.ts +++ b/x-pack/plugins/maps/common/migrations/scaling_type.ts @@ -7,7 +7,7 @@ import _ from 'lodash'; import { SOURCE_TYPES, SCALING_TYPES } from '../constants'; import { LayerDescriptor, ESSearchSourceDescriptor } from '../descriptor_types'; -import { MapSavedObjectAttributes } from '../../../../../plugins/maps/common/map_saved_object_type'; +import { MapSavedObjectAttributes } from '../map_saved_object_type'; function isEsDocumentSource(layerDescriptor: LayerDescriptor) { const sourceType = _.get(layerDescriptor, 'sourceDescriptor.type'); diff --git a/x-pack/legacy/plugins/maps/common/migrations/top_hits_time_to_sort.js b/x-pack/plugins/maps/common/migrations/top_hits_time_to_sort.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/top_hits_time_to_sort.js rename to x-pack/plugins/maps/common/migrations/top_hits_time_to_sort.js diff --git a/x-pack/legacy/plugins/maps/common/migrations/top_hits_time_to_sort.test.js b/x-pack/plugins/maps/common/migrations/top_hits_time_to_sort.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/common/migrations/top_hits_time_to_sort.test.js rename to x-pack/plugins/maps/common/migrations/top_hits_time_to_sort.test.js diff --git a/x-pack/plugins/maps/kibana.json b/x-pack/plugins/maps/kibana.json index b2aec30c113eb6..00c5e70ad6b8de 100644 --- a/x-pack/plugins/maps/kibana.json +++ b/x-pack/plugins/maps/kibana.json @@ -3,6 +3,14 @@ "version": "8.0.0", "kibanaVersion": "kibana", "configPath": ["xpack", "maps"], - "requiredPlugins": ["inspector"], + "requiredPlugins": [ + "inspector", + "home", + "data", + "fileUpload", + "uiActions", + "navigation", + "visualizations" + ], "ui": true } diff --git a/x-pack/legacy/plugins/maps/public/_main.scss b/x-pack/plugins/maps/public/_main.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/_main.scss rename to x-pack/plugins/maps/public/_main.scss diff --git a/x-pack/legacy/plugins/maps/public/_mapbox_hacks.scss b/x-pack/plugins/maps/public/_mapbox_hacks.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/_mapbox_hacks.scss rename to x-pack/plugins/maps/public/_mapbox_hacks.scss diff --git a/x-pack/plugins/maps/public/actions/map_actions.js b/x-pack/plugins/maps/public/actions/map_actions.js index 13cb3d5f898601..572385d628b16a 100644 --- a/x-pack/plugins/maps/public/actions/map_actions.js +++ b/x-pack/plugins/maps/public/actions/map_actions.js @@ -4,6 +4,37 @@ * you may not use this file except in compliance with the Elastic License. */ +import _ from 'lodash'; +import turf from 'turf'; +import turfBooleanContains from '@turf/boolean-contains'; +import uuid from 'uuid/v4'; +import { + getLayerList, + getLayerListRaw, + getDataFilters, + getSelectedLayerId, + getMapReady, + getWaitingForMapReadyLayerListRaw, + getTransientLayerId, + getOpenTooltips, + getQuery, + getDataRequestDescriptor, +} from '../selectors/map_selectors'; + +import { FLYOUT_STATE } from '../reducers/ui'; +import { + cancelRequest, + registerCancelCallback, + unregisterCancelCallback, + getEventHandlers, +} from '../reducers/non_serializable_instances'; +import { updateFlyout } from './ui_actions'; +import { + FEATURE_ID_PROPERTY_NAME, + LAYER_TYPE, + SOURCE_DATA_ID_ORIGIN, +} from '../../common/constants'; + export const SET_SELECTED_LAYER = 'SET_SELECTED_LAYER'; export const SET_TRANSIENT_LAYER = 'SET_TRANSIENT_LAYER'; export const UPDATE_LAYER_ORDER = 'UPDATE_LAYER_ORDER'; @@ -45,3 +76,897 @@ export const HIDE_TOOLBAR_OVERLAY = 'HIDE_TOOLBAR_OVERLAY'; export const HIDE_LAYER_CONTROL = 'HIDE_LAYER_CONTROL'; export const HIDE_VIEW_CONTROL = 'HIDE_VIEW_CONTROL'; export const SET_WAITING_FOR_READY_HIDDEN_LAYERS = 'SET_WAITING_FOR_READY_HIDDEN_LAYERS'; + +function getLayerLoadingCallbacks(dispatch, getState, layerId) { + return { + startLoading: (dataId, requestToken, meta) => + dispatch(startDataLoad(layerId, dataId, requestToken, meta)), + stopLoading: (dataId, requestToken, data, meta) => + dispatch(endDataLoad(layerId, dataId, requestToken, data, meta)), + onLoadError: (dataId, requestToken, errorMessage) => + dispatch(onDataLoadError(layerId, dataId, requestToken, errorMessage)), + updateSourceData: newData => { + dispatch(updateSourceDataRequest(layerId, newData)); + }, + isRequestStillActive: (dataId, requestToken) => { + const dataRequest = getDataRequestDescriptor(getState(), layerId, dataId); + if (!dataRequest) { + return false; + } + return dataRequest.dataRequestToken === requestToken; + }, + registerCancelCallback: (requestToken, callback) => + dispatch(registerCancelCallback(requestToken, callback)), + }; +} + +function getLayerById(layerId, state) { + return getLayerList(state).find(layer => { + return layerId === layer.getId(); + }); +} + +async function syncDataForAllLayers(dispatch, getState, dataFilters) { + const state = getState(); + const layerList = getLayerList(state); + const syncs = layerList.map(layer => { + const loadingFunctions = getLayerLoadingCallbacks(dispatch, getState, layer.getId()); + return layer.syncData({ ...loadingFunctions, dataFilters }); + }); + await Promise.all(syncs); +} + +export function cancelAllInFlightRequests() { + return (dispatch, getState) => { + getLayerList(getState()).forEach(layer => { + dispatch(clearDataRequests(layer)); + }); + }; +} + +function clearDataRequests(layer) { + return dispatch => { + layer.getInFlightRequestTokens().forEach(requestToken => { + dispatch(cancelRequest(requestToken)); + }); + dispatch({ + type: UPDATE_LAYER_PROP, + id: layer.getId(), + propName: '__dataRequests', + newValue: [], + }); + }; +} + +export function setMapInitError(errorMessage) { + return { + type: SET_MAP_INIT_ERROR, + errorMessage, + }; +} + +export function trackCurrentLayerState(layerId) { + return { + type: TRACK_CURRENT_LAYER_STATE, + layerId: layerId, + }; +} + +export function rollbackToTrackedLayerStateForSelectedLayer() { + return async (dispatch, getState) => { + const layerId = getSelectedLayerId(getState()); + await dispatch({ + type: ROLLBACK_TO_TRACKED_LAYER_STATE, + layerId: layerId, + }); + + // Ensure updateStyleMeta is triggered + // syncDataForLayer may not trigger endDataLoad if no re-fetch is required + dispatch(updateStyleMeta(layerId)); + + dispatch(syncDataForLayer(layerId)); + }; +} + +export function removeTrackedLayerStateForSelectedLayer() { + return (dispatch, getState) => { + const layerId = getSelectedLayerId(getState()); + dispatch({ + type: REMOVE_TRACKED_LAYER_STATE, + layerId: layerId, + }); + }; +} + +export function replaceLayerList(newLayerList) { + return (dispatch, getState) => { + const isMapReady = getMapReady(getState()); + if (!isMapReady) { + dispatch({ + type: CLEAR_WAITING_FOR_MAP_READY_LAYER_LIST, + }); + } else { + getLayerListRaw(getState()).forEach(({ id }) => { + dispatch(removeLayerFromLayerList(id)); + }); + } + + newLayerList.forEach(layerDescriptor => { + dispatch(addLayer(layerDescriptor)); + }); + }; +} + +export function cloneLayer(layerId) { + return async (dispatch, getState) => { + const layer = getLayerById(layerId, getState()); + if (!layer) { + return; + } + + const clonedDescriptor = await layer.cloneDescriptor(); + dispatch(addLayer(clonedDescriptor)); + }; +} + +export function addLayer(layerDescriptor) { + return (dispatch, getState) => { + const isMapReady = getMapReady(getState()); + if (!isMapReady) { + dispatch({ + type: ADD_WAITING_FOR_MAP_READY_LAYER, + layer: layerDescriptor, + }); + return; + } + + dispatch({ + type: ADD_LAYER, + layer: layerDescriptor, + }); + dispatch(syncDataForLayer(layerDescriptor.id)); + }; +} + +// Do not use when rendering a map. Method exists to enable selectors for getLayerList when +// rendering is not needed. +export function addLayerWithoutDataSync(layerDescriptor) { + return { + type: ADD_LAYER, + layer: layerDescriptor, + }; +} + +function setLayerDataLoadErrorStatus(layerId, errorMessage) { + return dispatch => { + dispatch({ + type: SET_LAYER_ERROR_STATUS, + isInErrorState: errorMessage !== null, + layerId, + errorMessage, + }); + }; +} + +export function cleanTooltipStateForLayer(layerId, layerFeatures = []) { + return (dispatch, getState) => { + let featuresRemoved = false; + const openTooltips = getOpenTooltips(getState()) + .map(tooltipState => { + const nextFeatures = tooltipState.features.filter(tooltipFeature => { + if (tooltipFeature.layerId !== layerId) { + // feature from another layer, keep it + return true; + } + + // Keep feature if it is still in layer + return layerFeatures.some(layerFeature => { + return layerFeature.properties[FEATURE_ID_PROPERTY_NAME] === tooltipFeature.id; + }); + }); + + if (tooltipState.features.length !== nextFeatures.length) { + featuresRemoved = true; + } + + return { ...tooltipState, features: nextFeatures }; + }) + .filter(tooltipState => { + return tooltipState.features.length > 0; + }); + + if (featuresRemoved) { + dispatch({ + type: SET_OPEN_TOOLTIPS, + openTooltips, + }); + } + }; +} + +export function setLayerVisibility(layerId, makeVisible) { + return async (dispatch, getState) => { + //if the current-state is invisible, we also want to sync data + //e.g. if a layer was invisible at start-up, it won't have any data loaded + const layer = getLayerById(layerId, getState()); + + // If the layer visibility is already what we want it to be, do nothing + if (!layer || layer.isVisible() === makeVisible) { + return; + } + + if (!makeVisible) { + dispatch(cleanTooltipStateForLayer(layerId)); + } + + await dispatch({ + type: SET_LAYER_VISIBILITY, + layerId, + visibility: makeVisible, + }); + if (makeVisible) { + dispatch(syncDataForLayer(layerId)); + } + }; +} + +export function toggleLayerVisible(layerId) { + return async (dispatch, getState) => { + const layer = getLayerById(layerId, getState()); + if (!layer) { + return; + } + const makeVisible = !layer.isVisible(); + + dispatch(setLayerVisibility(layerId, makeVisible)); + }; +} + +export function setSelectedLayer(layerId) { + return async (dispatch, getState) => { + const oldSelectedLayer = getSelectedLayerId(getState()); + if (oldSelectedLayer) { + await dispatch(rollbackToTrackedLayerStateForSelectedLayer()); + } + if (layerId) { + dispatch(trackCurrentLayerState(layerId)); + } + dispatch({ + type: SET_SELECTED_LAYER, + selectedLayerId: layerId, + }); + }; +} + +export function removeTransientLayer() { + return async (dispatch, getState) => { + const transientLayerId = getTransientLayerId(getState()); + if (transientLayerId) { + await dispatch(removeLayerFromLayerList(transientLayerId)); + await dispatch(setTransientLayer(null)); + } + }; +} + +export function setTransientLayer(layerId) { + return { + type: SET_TRANSIENT_LAYER, + transientLayerId: layerId, + }; +} + +export function clearTransientLayerStateAndCloseFlyout() { + return async dispatch => { + await dispatch(updateFlyout(FLYOUT_STATE.NONE)); + await dispatch(setSelectedLayer(null)); + await dispatch(removeTransientLayer()); + }; +} + +export function updateLayerOrder(newLayerOrder) { + return { + type: UPDATE_LAYER_ORDER, + newLayerOrder, + }; +} + +export function mapReady() { + return (dispatch, getState) => { + dispatch({ + type: MAP_READY, + }); + + getWaitingForMapReadyLayerListRaw(getState()).forEach(layerDescriptor => { + dispatch(addLayer(layerDescriptor)); + }); + + dispatch({ + type: CLEAR_WAITING_FOR_MAP_READY_LAYER_LIST, + }); + }; +} + +export function mapDestroyed() { + return { + type: MAP_DESTROYED, + }; +} + +export function mapExtentChanged(newMapConstants) { + return async (dispatch, getState) => { + const state = getState(); + const dataFilters = getDataFilters(state); + const { extent, zoom: newZoom } = newMapConstants; + const { buffer, zoom: currentZoom } = dataFilters; + + if (extent) { + let doesBufferContainExtent = false; + if (buffer) { + const bufferGeometry = turf.bboxPolygon([ + buffer.minLon, + buffer.minLat, + buffer.maxLon, + buffer.maxLat, + ]); + const extentGeometry = turf.bboxPolygon([ + extent.minLon, + extent.minLat, + extent.maxLon, + extent.maxLat, + ]); + + doesBufferContainExtent = turfBooleanContains(bufferGeometry, extentGeometry); + } + + if (!doesBufferContainExtent || currentZoom !== newZoom) { + const scaleFactor = 0.5; // TODO put scale factor in store and fetch with selector + const width = extent.maxLon - extent.minLon; + const height = extent.maxLat - extent.minLat; + dataFilters.buffer = { + minLon: extent.minLon - width * scaleFactor, + minLat: extent.minLat - height * scaleFactor, + maxLon: extent.maxLon + width * scaleFactor, + maxLat: extent.maxLat + height * scaleFactor, + }; + } + } + + dispatch({ + type: MAP_EXTENT_CHANGED, + mapState: { + ...dataFilters, + ...newMapConstants, + }, + }); + const newDataFilters = { ...dataFilters, ...newMapConstants }; + await syncDataForAllLayers(dispatch, getState, newDataFilters); + }; +} + +export function closeOnClickTooltip(tooltipId) { + return (dispatch, getState) => { + dispatch({ + type: SET_OPEN_TOOLTIPS, + openTooltips: getOpenTooltips(getState()).filter(({ id }) => { + return tooltipId !== id; + }), + }); + }; +} + +export function openOnClickTooltip(tooltipState) { + return (dispatch, getState) => { + const openTooltips = getOpenTooltips(getState()).filter(({ features, location, isLocked }) => { + return ( + isLocked && + !_.isEqual(location, tooltipState.location) && + !_.isEqual(features, tooltipState.features) + ); + }); + + openTooltips.push({ + ...tooltipState, + isLocked: true, + id: uuid(), + }); + + dispatch({ + type: SET_OPEN_TOOLTIPS, + openTooltips, + }); + }; +} + +export function closeOnHoverTooltip() { + return (dispatch, getState) => { + if (getOpenTooltips(getState()).length) { + dispatch({ + type: SET_OPEN_TOOLTIPS, + openTooltips: [], + }); + } + }; +} + +export function openOnHoverTooltip(tooltipState) { + return { + type: SET_OPEN_TOOLTIPS, + openTooltips: [ + { + ...tooltipState, + isLocked: false, + id: uuid(), + }, + ], + }; +} + +export function setMouseCoordinates({ lat, lon }) { + let safeLon = lon; + if (lon > 180) { + const overlapWestOfDateLine = lon - 180; + safeLon = -180 + overlapWestOfDateLine; + } else if (lon < -180) { + const overlapEastOfDateLine = Math.abs(lon) - 180; + safeLon = 180 - overlapEastOfDateLine; + } + + return { + type: SET_MOUSE_COORDINATES, + lat, + lon: safeLon, + }; +} + +export function clearMouseCoordinates() { + return { type: CLEAR_MOUSE_COORDINATES }; +} + +export function disableScrollZoom() { + return { type: SET_SCROLL_ZOOM, scrollZoom: false }; +} + +export function fitToLayerExtent(layerId) { + return async function(dispatch, getState) { + const targetLayer = getLayerById(layerId, getState()); + + if (targetLayer) { + const dataFilters = getDataFilters(getState()); + const bounds = await targetLayer.getBounds(dataFilters); + if (bounds) { + await dispatch(setGotoWithBounds(bounds)); + } + } + }; +} + +export function setGotoWithBounds(bounds) { + return { + type: SET_GOTO, + bounds: bounds, + }; +} + +export function setGotoWithCenter({ lat, lon, zoom }) { + return { + type: SET_GOTO, + center: { lat, lon, zoom }, + }; +} + +export function clearGoto() { + return { type: CLEAR_GOTO }; +} + +export function startDataLoad(layerId, dataId, requestToken, meta = {}) { + return (dispatch, getState) => { + const layer = getLayerById(layerId, getState()); + if (layer) { + dispatch(cancelRequest(layer.getPrevRequestToken(dataId))); + } + + const eventHandlers = getEventHandlers(getState()); + if (eventHandlers && eventHandlers.onDataLoad) { + eventHandlers.onDataLoad({ + layerId, + dataId, + }); + } + + dispatch({ + meta, + type: LAYER_DATA_LOAD_STARTED, + layerId, + dataId, + requestToken, + }); + }; +} + +export function updateSourceDataRequest(layerId, newData) { + return dispatch => { + dispatch({ + type: UPDATE_SOURCE_DATA_REQUEST, + dataId: SOURCE_DATA_ID_ORIGIN, + layerId, + newData, + }); + + dispatch(updateStyleMeta(layerId)); + }; +} + +export function endDataLoad(layerId, dataId, requestToken, data, meta) { + return async (dispatch, getState) => { + dispatch(unregisterCancelCallback(requestToken)); + + const features = data && data.features ? data.features : []; + + const eventHandlers = getEventHandlers(getState()); + if (eventHandlers && eventHandlers.onDataLoadEnd) { + const layer = getLayerById(layerId, getState()); + const resultMeta = {}; + if (layer && layer.getType() === LAYER_TYPE.VECTOR) { + resultMeta.featuresCount = features.length; + } + + eventHandlers.onDataLoadEnd({ + layerId, + dataId, + resultMeta, + }); + } + + dispatch(cleanTooltipStateForLayer(layerId, features)); + dispatch({ + type: LAYER_DATA_LOAD_ENDED, + layerId, + dataId, + data, + meta, + requestToken, + }); + + //Clear any data-load errors when there is a succesful data return. + //Co this on end-data-load iso at start-data-load to avoid blipping the error status between true/false. + //This avoids jitter in the warning icon of the TOC when the requests continues to return errors. + dispatch(setLayerDataLoadErrorStatus(layerId, null)); + + dispatch(updateStyleMeta(layerId)); + }; +} + +export function onDataLoadError(layerId, dataId, requestToken, errorMessage) { + return async (dispatch, getState) => { + dispatch(unregisterCancelCallback(requestToken)); + + const eventHandlers = getEventHandlers(getState()); + if (eventHandlers && eventHandlers.onDataLoadError) { + eventHandlers.onDataLoadError({ + layerId, + dataId, + errorMessage, + }); + } + + dispatch(cleanTooltipStateForLayer(layerId)); + dispatch({ + type: LAYER_DATA_LOAD_ERROR, + data: null, + layerId, + dataId, + requestToken, + }); + + dispatch(setLayerDataLoadErrorStatus(layerId, errorMessage)); + }; +} + +export function updateSourceProp(layerId, propName, value, newLayerType) { + return async dispatch => { + dispatch({ + type: UPDATE_SOURCE_PROP, + layerId, + propName, + value, + }); + if (newLayerType) { + dispatch(updateLayerType(layerId, newLayerType)); + } + await dispatch(clearMissingStyleProperties(layerId)); + dispatch(syncDataForLayer(layerId)); + }; +} + +function updateLayerType(layerId, newLayerType) { + return (dispatch, getState) => { + const layer = getLayerById(layerId, getState()); + if (!layer || layer.getType() === newLayerType) { + return; + } + dispatch(clearDataRequests(layer)); + dispatch({ + type: UPDATE_LAYER_PROP, + id: layerId, + propName: 'type', + newValue: newLayerType, + }); + }; +} + +export function syncDataForLayer(layerId) { + return async (dispatch, getState) => { + const targetLayer = getLayerById(layerId, getState()); + if (targetLayer) { + const dataFilters = getDataFilters(getState()); + const loadingFunctions = getLayerLoadingCallbacks(dispatch, getState, layerId); + await targetLayer.syncData({ + ...loadingFunctions, + dataFilters, + }); + } + }; +} + +export function updateLayerLabel(id, newLabel) { + return { + type: UPDATE_LAYER_PROP, + id, + propName: 'label', + newValue: newLabel, + }; +} + +export function updateLayerMinZoom(id, minZoom) { + return { + type: UPDATE_LAYER_PROP, + id, + propName: 'minZoom', + newValue: minZoom, + }; +} + +export function updateLayerMaxZoom(id, maxZoom) { + return { + type: UPDATE_LAYER_PROP, + id, + propName: 'maxZoom', + newValue: maxZoom, + }; +} + +export function updateLayerAlpha(id, alpha) { + return { + type: UPDATE_LAYER_PROP, + id, + propName: 'alpha', + newValue: alpha, + }; +} + +export function setLayerQuery(id, query) { + return dispatch => { + dispatch({ + type: UPDATE_LAYER_PROP, + id, + propName: 'query', + newValue: query, + }); + + dispatch(syncDataForLayer(id)); + }; +} + +export function removeSelectedLayer() { + return (dispatch, getState) => { + const state = getState(); + const layerId = getSelectedLayerId(state); + dispatch(removeLayer(layerId)); + }; +} + +export function removeLayer(layerId) { + return async (dispatch, getState) => { + const state = getState(); + const selectedLayerId = getSelectedLayerId(state); + if (layerId === selectedLayerId) { + dispatch(updateFlyout(FLYOUT_STATE.NONE)); + await dispatch(setSelectedLayer(null)); + } + dispatch(removeLayerFromLayerList(layerId)); + }; +} + +function removeLayerFromLayerList(layerId) { + return (dispatch, getState) => { + const layerGettingRemoved = getLayerById(layerId, getState()); + if (!layerGettingRemoved) { + return; + } + + layerGettingRemoved.getInFlightRequestTokens().forEach(requestToken => { + dispatch(cancelRequest(requestToken)); + }); + dispatch(cleanTooltipStateForLayer(layerId)); + layerGettingRemoved.destroy(); + dispatch({ + type: REMOVE_LAYER, + id: layerId, + }); + }; +} + +export function setQuery({ query, timeFilters, filters = [], refresh = false }) { + function generateQueryTimestamp() { + return new Date().toISOString(); + } + return async (dispatch, getState) => { + const prevQuery = getQuery(getState()); + const prevTriggeredAt = + prevQuery && prevQuery.queryLastTriggeredAt + ? prevQuery.queryLastTriggeredAt + : generateQueryTimestamp(); + + dispatch({ + type: SET_QUERY, + timeFilters, + query: { + ...query, + // ensure query changes to trigger re-fetch when "Refresh" clicked + queryLastTriggeredAt: refresh ? generateQueryTimestamp() : prevTriggeredAt, + }, + filters, + }); + + const dataFilters = getDataFilters(getState()); + await syncDataForAllLayers(dispatch, getState, dataFilters); + }; +} + +export function setRefreshConfig({ isPaused, interval }) { + return { + type: SET_REFRESH_CONFIG, + isPaused, + interval, + }; +} + +export function triggerRefreshTimer() { + return async (dispatch, getState) => { + dispatch({ + type: TRIGGER_REFRESH_TIMER, + }); + + const dataFilters = getDataFilters(getState()); + await syncDataForAllLayers(dispatch, getState, dataFilters); + }; +} + +export function clearMissingStyleProperties(layerId) { + return async (dispatch, getState) => { + const targetLayer = getLayerById(layerId, getState()); + if (!targetLayer) { + return; + } + + const style = targetLayer.getCurrentStyle(); + if (!style) { + return; + } + + const nextFields = await targetLayer.getFields(); //take into account all fields, since labels can be driven by any field (source or join) + const { hasChanges, nextStyleDescriptor } = style.getDescriptorWithMissingStylePropsRemoved( + nextFields + ); + if (hasChanges) { + dispatch(updateLayerStyle(layerId, nextStyleDescriptor)); + } + }; +} + +export function updateLayerStyle(layerId, styleDescriptor) { + return dispatch => { + dispatch({ + type: UPDATE_LAYER_STYLE, + layerId, + style: { + ...styleDescriptor, + }, + }); + + // Ensure updateStyleMeta is triggered + // syncDataForLayer may not trigger endDataLoad if no re-fetch is required + dispatch(updateStyleMeta(layerId)); + + // Style update may require re-fetch, for example ES search may need to retrieve field used for dynamic styling + dispatch(syncDataForLayer(layerId)); + }; +} + +export function updateStyleMeta(layerId) { + return async (dispatch, getState) => { + const layer = getLayerById(layerId, getState()); + if (!layer) { + return; + } + const sourceDataRequest = layer.getSourceDataRequest(); + const style = layer.getCurrentStyle(); + if (!style || !sourceDataRequest) { + return; + } + const styleMeta = await style.pluckStyleMetaFromSourceDataRequest(sourceDataRequest); + dispatch({ + type: SET_LAYER_STYLE_META, + layerId, + styleMeta, + }); + }; +} + +export function updateLayerStyleForSelectedLayer(styleDescriptor) { + return (dispatch, getState) => { + const selectedLayerId = getSelectedLayerId(getState()); + if (!selectedLayerId) { + return; + } + dispatch(updateLayerStyle(selectedLayerId, styleDescriptor)); + }; +} + +export function setJoinsForLayer(layer, joins) { + return async dispatch => { + await dispatch({ + type: SET_JOINS, + layer: layer, + joins: joins, + }); + + await dispatch(clearMissingStyleProperties(layer.getId())); + dispatch(syncDataForLayer(layer.getId())); + }; +} + +export function updateDrawState(drawState) { + return dispatch => { + if (drawState !== null) { + dispatch({ type: SET_OPEN_TOOLTIPS, openTooltips: [] }); // tooltips just get in the way + } + dispatch({ + type: UPDATE_DRAW_STATE, + drawState: drawState, + }); + }; +} + +export function disableInteractive() { + return { type: SET_INTERACTIVE, disableInteractive: true }; +} + +export function disableTooltipControl() { + return { type: DISABLE_TOOLTIP_CONTROL, disableTooltipControl: true }; +} + +export function hideToolbarOverlay() { + return { type: HIDE_TOOLBAR_OVERLAY, hideToolbarOverlay: true }; +} + +export function hideLayerControl() { + return { type: HIDE_LAYER_CONTROL, hideLayerControl: true }; +} +export function hideViewControl() { + return { type: HIDE_VIEW_CONTROL, hideViewControl: true }; +} + +export function setHiddenLayers(hiddenLayerIds) { + return (dispatch, getState) => { + const isMapReady = getMapReady(getState()); + + if (!isMapReady) { + dispatch({ type: SET_WAITING_FOR_READY_HIDDEN_LAYERS, hiddenLayerIds }); + } else { + getLayerListRaw(getState()).forEach(layer => + dispatch(setLayerVisibility(layer.id, !hiddenLayerIds.includes(layer.id))) + ); + } + }; +} diff --git a/x-pack/legacy/plugins/maps/public/actions/map_actions.test.js b/x-pack/plugins/maps/public/actions/map_actions.test.js similarity index 98% rename from x-pack/legacy/plugins/maps/public/actions/map_actions.test.js rename to x-pack/plugins/maps/public/actions/map_actions.test.js index 7e2a3c827fa88f..c280b8af7ab80d 100644 --- a/x-pack/legacy/plugins/maps/public/actions/map_actions.test.js +++ b/x-pack/plugins/maps/public/actions/map_actions.test.js @@ -5,7 +5,7 @@ */ jest.mock('../selectors/map_selectors', () => ({})); -jest.mock('../../../../../plugins/maps/public/kibana_services', () => ({})); +jest.mock('../kibana_services', () => ({})); import { mapExtentChanged, setMouseCoordinates } from './map_actions'; diff --git a/x-pack/legacy/plugins/maps/public/actions/ui_actions.d.ts b/x-pack/plugins/maps/public/actions/ui_actions.d.ts similarity index 54% rename from x-pack/legacy/plugins/maps/public/actions/ui_actions.d.ts rename to x-pack/plugins/maps/public/actions/ui_actions.d.ts index 233918847de08b..e087dc70256f06 100644 --- a/x-pack/legacy/plugins/maps/public/actions/ui_actions.d.ts +++ b/x-pack/plugins/maps/public/actions/ui_actions.d.ts @@ -6,6 +6,17 @@ import { AnyAction } from 'redux'; +export const UPDATE_FLYOUT: string; +export const CLOSE_SET_VIEW: string; +export const OPEN_SET_VIEW: string; +export const SET_IS_LAYER_TOC_OPEN: string; +export const SET_FULL_SCREEN: string; +export const SET_READ_ONLY: string; +export const SET_OPEN_TOC_DETAILS: string; +export const SHOW_TOC_DETAILS: string; +export const HIDE_TOC_DETAILS: string; +export const UPDATE_INDEXING_STAGE: string; + export function setOpenTOCDetails(layerIds?: string[]): AnyAction; export function setIsLayerTOCOpen(open: boolean): AnyAction; diff --git a/x-pack/plugins/maps/public/actions/ui_actions.js b/x-pack/plugins/maps/public/actions/ui_actions.js index 59ae56c15056a0..77fdf6b0f12d23 100644 --- a/x-pack/plugins/maps/public/actions/ui_actions.js +++ b/x-pack/plugins/maps/public/actions/ui_actions.js @@ -14,3 +14,73 @@ export const SET_OPEN_TOC_DETAILS = 'SET_OPEN_TOC_DETAILS'; export const SHOW_TOC_DETAILS = 'SHOW_TOC_DETAILS'; export const HIDE_TOC_DETAILS = 'HIDE_TOC_DETAILS'; export const UPDATE_INDEXING_STAGE = 'UPDATE_INDEXING_STAGE'; + +export function exitFullScreen() { + return { + type: SET_FULL_SCREEN, + isFullScreen: false, + }; +} + +export function updateFlyout(display) { + return { + type: UPDATE_FLYOUT, + display, + }; +} +export function closeSetView() { + return { + type: CLOSE_SET_VIEW, + }; +} +export function openSetView() { + return { + type: OPEN_SET_VIEW, + }; +} +export function setIsLayerTOCOpen(isLayerTOCOpen) { + return { + type: SET_IS_LAYER_TOC_OPEN, + isLayerTOCOpen, + }; +} +export function enableFullScreen() { + return { + type: SET_FULL_SCREEN, + isFullScreen: true, + }; +} +export function setReadOnly(isReadOnly) { + return { + type: SET_READ_ONLY, + isReadOnly, + }; +} + +export function setOpenTOCDetails(layerIds) { + return { + type: SET_OPEN_TOC_DETAILS, + layerIds, + }; +} + +export function showTOCDetails(layerId) { + return { + type: SHOW_TOC_DETAILS, + layerId, + }; +} + +export function hideTOCDetails(layerId) { + return { + type: HIDE_TOC_DETAILS, + layerId, + }; +} + +export function updateIndexingStage(stage) { + return { + type: UPDATE_INDEXING_STAGE, + stage, + }; +} diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.d.ts b/x-pack/plugins/maps/public/angular/get_initial_layers.d.ts similarity index 100% rename from x-pack/legacy/plugins/maps/public/angular/get_initial_layers.d.ts rename to x-pack/plugins/maps/public/angular/get_initial_layers.d.ts diff --git a/x-pack/plugins/maps/public/angular/get_initial_layers.js b/x-pack/plugins/maps/public/angular/get_initial_layers.js new file mode 100644 index 00000000000000..1eb5dac309f28c --- /dev/null +++ b/x-pack/plugins/maps/public/angular/get_initial_layers.js @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import _ from 'lodash'; +// Import each layer type, even those not used, to init in registry + +import '../layers/sources/wms_source'; + +import '../layers/sources/ems_file_source'; + +import '../layers/sources/es_search_source'; + +import '../layers/sources/es_pew_pew_source/es_pew_pew_source'; + +import '../layers/sources/kibana_regionmap_source'; + +import '../layers/sources/es_geo_grid_source'; + +import '../layers/sources/xyz_tms_source'; + +import { KibanaTilemapSource } from '../layers/sources/kibana_tilemap_source'; + +import { EMSTMSSource } from '../layers/sources/ems_tms_source'; + +import { getInjectedVarFunc } from '../kibana_services'; + +import { getKibanaTileMap } from '../meta'; + +export function getInitialLayers(layerListJSON, initialLayers = []) { + if (layerListJSON) { + return JSON.parse(layerListJSON); + } + + const tilemapSourceFromKibana = getKibanaTileMap(); + if (_.get(tilemapSourceFromKibana, 'url')) { + const sourceDescriptor = KibanaTilemapSource.createDescriptor(); + const source = new KibanaTilemapSource(sourceDescriptor); + const layer = source.createDefaultLayer(); + return [layer.toLayerDescriptor(), ...initialLayers]; + } + + const isEmsEnabled = getInjectedVarFunc()('isEmsEnabled', true); + if (isEmsEnabled) { + const descriptor = EMSTMSSource.createDescriptor({ isAutoSelect: true }); + const source = new EMSTMSSource(descriptor); + const layer = source.createDefaultLayer(); + return [layer.toLayerDescriptor(), ...initialLayers]; + } + + return initialLayers; +} diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.test.js b/x-pack/plugins/maps/public/angular/get_initial_layers.test.js similarity index 80% rename from x-pack/legacy/plugins/maps/public/angular/get_initial_layers.test.js rename to x-pack/plugins/maps/public/angular/get_initial_layers.test.js index 8c9185a16ea0e7..f41ed26b2a05d3 100644 --- a/x-pack/legacy/plugins/maps/public/angular/get_initial_layers.test.js +++ b/x-pack/plugins/maps/public/angular/get_initial_layers.test.js @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../../../../../plugins/maps/public/meta', () => { +jest.mock('../meta', () => { return {}; }); -jest.mock('../../../../../plugins/maps/public/kibana_services'); +jest.mock('../kibana_services'); import { getInitialLayers } from './get_initial_layers'; @@ -15,8 +15,7 @@ const layerListNotProvided = undefined; describe('Saved object has layer list', () => { beforeEach(() => { - require('../../../../../plugins/maps/public/kibana_services').getInjectedVarFunc = () => - jest.fn(); + require('../kibana_services').getInjectedVarFunc = () => jest.fn(); }); it('Should get initial layers from saved object', () => { @@ -33,7 +32,7 @@ describe('Saved object has layer list', () => { describe('kibana.yml configured with map.tilemap.url', () => { beforeAll(() => { - require('../../../../../plugins/maps/public/meta').getKibanaTileMap = () => { + require('../meta').getKibanaTileMap = () => { return { url: 'myTileUrl', }; @@ -63,10 +62,10 @@ describe('kibana.yml configured with map.tilemap.url', () => { describe('EMS is enabled', () => { beforeAll(() => { - require('../../../../../plugins/maps/public/meta').getKibanaTileMap = () => { + require('../meta').getKibanaTileMap = () => { return null; }; - require('../../../../../plugins/maps/public/kibana_services').getInjectedVarFunc = () => key => { + require('../kibana_services').getInjectedVarFunc = () => key => { switch (key) { case 'emsTileLayerId': return { @@ -107,11 +106,11 @@ describe('EMS is enabled', () => { describe('EMS is not enabled', () => { beforeAll(() => { - require('../../../../../plugins/maps/public/meta').getKibanaTileMap = () => { + require('../meta').getKibanaTileMap = () => { return null; }; - require('../../../../../plugins/maps/public/kibana_services').getInjectedVarFunc = () => key => { + require('../kibana_services').getInjectedVarFunc = () => key => { switch (key) { case 'isEmsEnabled': return false; diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_query.js b/x-pack/plugins/maps/public/angular/get_initial_query.js similarity index 82% rename from x-pack/legacy/plugins/maps/public/angular/get_initial_query.js rename to x-pack/plugins/maps/public/angular/get_initial_query.js index c50ecb2b05dc07..4f61142413671d 100644 --- a/x-pack/legacy/plugins/maps/public/angular/get_initial_query.js +++ b/x-pack/plugins/maps/public/angular/get_initial_query.js @@ -4,8 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getUiSettings } from '../../../../../plugins/maps/public/kibana_services'; +import { getUiSettings } from '../kibana_services'; export function getInitialQuery({ mapStateJSON, appState = {}, userQueryLanguage }) { const settings = getUiSettings(); diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_refresh_config.js b/x-pack/plugins/maps/public/angular/get_initial_refresh_config.js similarity index 84% rename from x-pack/legacy/plugins/maps/public/angular/get_initial_refresh_config.js rename to x-pack/plugins/maps/public/angular/get_initial_refresh_config.js index 8735d45debfc4c..f13e435cd1d5cf 100644 --- a/x-pack/legacy/plugins/maps/public/angular/get_initial_refresh_config.js +++ b/x-pack/plugins/maps/public/angular/get_initial_refresh_config.js @@ -3,8 +3,8 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getUiSettings } from '../../../../../plugins/maps/public/kibana_services'; + +import { getUiSettings } from '../kibana_services'; export function getInitialRefreshConfig({ mapStateJSON, globalState = {} }) { const uiSettings = getUiSettings(); diff --git a/x-pack/legacy/plugins/maps/public/angular/get_initial_time_filters.js b/x-pack/plugins/maps/public/angular/get_initial_time_filters.js similarity index 80% rename from x-pack/legacy/plugins/maps/public/angular/get_initial_time_filters.js rename to x-pack/plugins/maps/public/angular/get_initial_time_filters.js index 74fbf603e99f5e..75d9f0e95ccf08 100644 --- a/x-pack/legacy/plugins/maps/public/angular/get_initial_time_filters.js +++ b/x-pack/plugins/maps/public/angular/get_initial_time_filters.js @@ -3,8 +3,8 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getUiSettings } from '../../../../../plugins/maps/public/kibana_services'; + +import { getUiSettings } from '../kibana_services'; export function getInitialTimeFilters({ mapStateJSON, globalState = {} }) { if (mapStateJSON) { diff --git a/x-pack/legacy/plugins/maps/public/angular/listing_ng_wrapper.html b/x-pack/plugins/maps/public/angular/listing_ng_wrapper.html similarity index 100% rename from x-pack/legacy/plugins/maps/public/angular/listing_ng_wrapper.html rename to x-pack/plugins/maps/public/angular/listing_ng_wrapper.html diff --git a/x-pack/legacy/plugins/maps/public/angular/map.html b/x-pack/plugins/maps/public/angular/map.html similarity index 100% rename from x-pack/legacy/plugins/maps/public/angular/map.html rename to x-pack/plugins/maps/public/angular/map.html diff --git a/x-pack/legacy/plugins/maps/public/angular/services/gis_map_saved_object_loader.js b/x-pack/plugins/maps/public/angular/services/gis_map_saved_object_loader.js similarity index 79% rename from x-pack/legacy/plugins/maps/public/angular/services/gis_map_saved_object_loader.js rename to x-pack/plugins/maps/public/angular/services/gis_map_saved_object_loader.js index 710997a9c0d7f3..2dcec35960b080 100644 --- a/x-pack/legacy/plugins/maps/public/angular/services/gis_map_saved_object_loader.js +++ b/x-pack/plugins/maps/public/angular/services/gis_map_saved_object_loader.js @@ -6,15 +6,14 @@ import _ from 'lodash'; import { createSavedGisMapClass } from './saved_gis_map'; -import { SavedObjectLoader } from '../../../../../../../src/plugins/saved_objects/public'; +import { SavedObjectLoader } from '../../../../../../src/plugins/saved_objects/public'; import { getCoreChrome, getSavedObjectsClient, getIndexPatternService, getCoreOverlays, getData, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../plugins/maps/public/kibana_services'; +} from '../../kibana_services'; export const getMapsSavedObjectLoader = _.once(function() { const services = { diff --git a/x-pack/legacy/plugins/maps/public/angular/services/saved_gis_map.js b/x-pack/plugins/maps/public/angular/services/saved_gis_map.js similarity index 88% rename from x-pack/legacy/plugins/maps/public/angular/services/saved_gis_map.js rename to x-pack/plugins/maps/public/angular/services/saved_gis_map.js index 990a0613da681c..1c47e0ab7dc2a4 100644 --- a/x-pack/legacy/plugins/maps/public/angular/services/saved_gis_map.js +++ b/x-pack/plugins/maps/public/angular/services/saved_gis_map.js @@ -5,7 +5,7 @@ */ import _ from 'lodash'; -import { createSavedObjectClass } from '../../../../../../../src/plugins/saved_objects/public'; +import { createSavedObjectClass } from '../../../../../../src/plugins/saved_objects/public'; import { getTimeFilters, getMapZoom, @@ -17,10 +17,10 @@ import { getFilters, } from '../../selectors/map_selectors'; import { getIsLayerTOCOpen, getOpenTOCDetails } from '../../selectors/ui_selectors'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { convertMapExtentToPolygon } from '../../../../../../plugins/maps/public/elasticsearch_geo_utils'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { copyPersistentState } from '../../../../../../plugins/maps/public/reducers/util'; + +import { convertMapExtentToPolygon } from '../../elasticsearch_geo_utils'; + +import { copyPersistentState } from '../../reducers/util'; import { extractReferences, injectReferences } from '../../../common/migrations/references'; import { MAP_SAVED_OBJECT_TYPE } from '../../../common/constants'; diff --git a/x-pack/legacy/plugins/maps/public/components/__snapshots__/geometry_filter_form.test.js.snap b/x-pack/plugins/maps/public/components/__snapshots__/geometry_filter_form.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/__snapshots__/geometry_filter_form.test.js.snap rename to x-pack/plugins/maps/public/components/__snapshots__/geometry_filter_form.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/components/__snapshots__/layer_toc_actions.test.js.snap b/x-pack/plugins/maps/public/components/__snapshots__/layer_toc_actions.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/__snapshots__/layer_toc_actions.test.js.snap rename to x-pack/plugins/maps/public/components/__snapshots__/layer_toc_actions.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/components/_geometry_filter.scss b/x-pack/plugins/maps/public/components/_geometry_filter.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/_geometry_filter.scss rename to x-pack/plugins/maps/public/components/_geometry_filter.scss diff --git a/x-pack/plugins/maps/public/components/_index.scss b/x-pack/plugins/maps/public/components/_index.scss new file mode 100644 index 00000000000000..161b3fefdb8f9e --- /dev/null +++ b/x-pack/plugins/maps/public/components/_index.scss @@ -0,0 +1,3 @@ +@import 'metric_editors'; +@import './geometry_filter'; +@import 'tooltip_selector'; diff --git a/x-pack/legacy/plugins/maps/public/components/_metric_editors.scss b/x-pack/plugins/maps/public/components/_metric_editors.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/_metric_editors.scss rename to x-pack/plugins/maps/public/components/_metric_editors.scss diff --git a/x-pack/legacy/plugins/maps/public/components/_tooltip_selector.scss b/x-pack/plugins/maps/public/components/_tooltip_selector.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/_tooltip_selector.scss rename to x-pack/plugins/maps/public/components/_tooltip_selector.scss diff --git a/x-pack/legacy/plugins/maps/public/components/distance_filter_form.tsx b/x-pack/plugins/maps/public/components/distance_filter_form.tsx similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/distance_filter_form.tsx rename to x-pack/plugins/maps/public/components/distance_filter_form.tsx diff --git a/x-pack/legacy/plugins/maps/public/components/geo_field_with_index.ts b/x-pack/plugins/maps/public/components/geo_field_with_index.ts similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/geo_field_with_index.ts rename to x-pack/plugins/maps/public/components/geo_field_with_index.ts diff --git a/x-pack/legacy/plugins/maps/public/components/geometry_filter_form.js b/x-pack/plugins/maps/public/components/geometry_filter_form.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/geometry_filter_form.js rename to x-pack/plugins/maps/public/components/geometry_filter_form.js diff --git a/x-pack/legacy/plugins/maps/public/components/geometry_filter_form.test.js b/x-pack/plugins/maps/public/components/geometry_filter_form.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/geometry_filter_form.test.js rename to x-pack/plugins/maps/public/components/geometry_filter_form.test.js diff --git a/x-pack/legacy/plugins/maps/public/components/global_filter_checkbox.js b/x-pack/plugins/maps/public/components/global_filter_checkbox.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/global_filter_checkbox.js rename to x-pack/plugins/maps/public/components/global_filter_checkbox.js diff --git a/x-pack/legacy/plugins/maps/public/components/layer_toc_actions.js b/x-pack/plugins/maps/public/components/layer_toc_actions.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/layer_toc_actions.js rename to x-pack/plugins/maps/public/components/layer_toc_actions.js diff --git a/x-pack/legacy/plugins/maps/public/components/layer_toc_actions.test.js b/x-pack/plugins/maps/public/components/layer_toc_actions.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/layer_toc_actions.test.js rename to x-pack/plugins/maps/public/components/layer_toc_actions.test.js diff --git a/x-pack/legacy/plugins/maps/public/components/map_listing.js b/x-pack/plugins/maps/public/components/map_listing.js similarity index 98% rename from x-pack/legacy/plugins/maps/public/components/map_listing.js rename to x-pack/plugins/maps/public/components/map_listing.js index ef1d524cb91dd2..ee10fe30130f37 100644 --- a/x-pack/legacy/plugins/maps/public/components/map_listing.js +++ b/x-pack/plugins/maps/public/components/map_listing.js @@ -7,8 +7,8 @@ import React from 'react'; import PropTypes from 'prop-types'; import _ from 'lodash'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getToasts } from '../../../../../plugins/maps/public/kibana_services'; + +import { getToasts } from '../kibana_services'; import { EuiTitle, EuiFieldSearch, diff --git a/x-pack/legacy/plugins/maps/public/components/multi_index_geo_field_select.tsx b/x-pack/plugins/maps/public/components/multi_index_geo_field_select.tsx similarity index 100% rename from x-pack/legacy/plugins/maps/public/components/multi_index_geo_field_select.tsx rename to x-pack/plugins/maps/public/components/multi_index_geo_field_select.tsx diff --git a/x-pack/plugins/maps/public/connected_components/_index.scss b/x-pack/plugins/maps/public/connected_components/_index.scss new file mode 100644 index 00000000000000..83042ae1d586cc --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/_index.scss @@ -0,0 +1,6 @@ +@import 'gis_map/gis_map'; +@import 'layer_addpanel/source_select/index'; +@import 'layer_panel/index'; +@import 'widget_overlay/index'; +@import 'toolbar_overlay/index'; +@import 'map/features_tooltip/index'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/_gis_map.scss b/x-pack/plugins/maps/public/connected_components/gis_map/_gis_map.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/gis_map/_gis_map.scss rename to x-pack/plugins/maps/public/connected_components/gis_map/_gis_map.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.d.ts b/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts similarity index 73% rename from x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.d.ts rename to x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts index 8689d882971719..92d92dfbd142da 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.d.ts +++ b/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts @@ -6,8 +6,8 @@ import React from 'react'; import { Filter } from 'src/plugins/data/public'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RenderToolTipContent } from '../../../../../../plugins/maps/public/layers/tooltips/tooltip_property'; + +import { RenderToolTipContent } from '../../layers/tooltips/tooltip_property'; export const GisMap: React.ComponentType<{ addFilters: ((filters: Filter[]) => void) | null; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.js b/x-pack/plugins/maps/public/connected_components/gis_map/index.js similarity index 85% rename from x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.js rename to x-pack/plugins/maps/public/connected_components/gis_map/index.js index 2d8265bae93878..c825fdab75ca74 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/index.js +++ b/x-pack/plugins/maps/public/connected_components/gis_map/index.js @@ -6,8 +6,8 @@ import { connect } from 'react-redux'; import { GisMap } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../plugins/maps/public/reducers/ui'; + +import { FLYOUT_STATE } from '../../reducers/ui'; import { exitFullScreen } from '../../actions/ui_actions'; import { getFlyoutDisplay, getIsFullScreen } from '../../selectors/ui_selectors'; import { triggerRefreshTimer, cancelAllInFlightRequests } from '../../actions/map_actions'; @@ -18,8 +18,8 @@ import { getQueryableUniqueIndexPatternIds, isToolbarOverlayHidden, } from '../../selectors/map_selectors'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getCoreChrome } from '../../../../../../plugins/maps/public/kibana_services'; + +import { getCoreChrome } from '../../kibana_services'; function mapStateToProps(state = {}) { const flyoutDisplay = getFlyoutDisplay(state); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/view.js b/x-pack/plugins/maps/public/connected_components/gis_map/view.js similarity index 92% rename from x-pack/legacy/plugins/maps/public/connected_components/gis_map/view.js rename to x-pack/plugins/maps/public/connected_components/gis_map/view.js index 06097ebea1900a..28ad12133d6118 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/gis_map/view.js +++ b/x-pack/plugins/maps/public/connected_components/gis_map/view.js @@ -7,17 +7,16 @@ import _ from 'lodash'; import React, { Component } from 'react'; import { MBMapContainer } from '../map/mb'; -import { WidgetOverlay } from '../widget_overlay/index'; -import { ToolbarOverlay } from '../toolbar_overlay/index'; -import { LayerPanel } from '../layer_panel/index'; -import { AddLayerPanel } from '../layer_addpanel/index'; +import { WidgetOverlay } from '../widget_overlay'; +import { ToolbarOverlay } from '../toolbar_overlay'; +import { LayerPanel } from '../layer_panel'; +import { AddLayerPanel } from '../layer_addpanel'; import { EuiFlexGroup, EuiFlexItem, EuiCallOut } from '@elastic/eui'; -import { ExitFullScreenButton } from '../../../../../../../src/plugins/kibana_react/public'; +import { ExitFullScreenButton } from '../../../../../../src/plugins/kibana_react/public'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getIndexPatternsFromIds } from '../../../../../../plugins/maps/public/index_pattern_util'; +import { getIndexPatternsFromIds } from '../../index_pattern_util'; import { ES_GEO_FIELD_TYPE } from '../../../common/constants'; -import { indexPatterns as indexPatternsUtils } from '../../../../../../../src/plugins/data/public'; +import { indexPatterns as indexPatternsUtils } from '../../../../../../src/plugins/data/public'; import { i18n } from '@kbn/i18n'; import uuid from 'uuid/v4'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/index.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/index.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/view.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/view.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/flyout_footer/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js similarity index 76% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js index e8192795f98aef..bff235a7d27fcd 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/index.js @@ -6,10 +6,10 @@ import { connect } from 'react-redux'; import { ImportEditor } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInspectorAdapters } from '../../../../../../../plugins/maps/public/reducers/non_serializable_instances'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { INDEXING_STAGE } from '../../../../../../../plugins/maps/public/reducers/ui'; + +import { getInspectorAdapters } from '../../../reducers/non_serializable_instances'; + +import { INDEXING_STAGE } from '../../../reducers/ui'; import { updateIndexingStage } from '../../../actions/ui_actions'; import { getIndexingStage } from '../../../selectors/ui_selectors'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js similarity index 89% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js index cb20d80733c33b..a4fa0d492bf3f5 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js @@ -7,8 +7,8 @@ import React, { Fragment } from 'react'; import { EuiSpacer, EuiPanel, EuiButtonEmpty } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { uploadLayerWizardConfig } from '../../../../../../../plugins/maps/public/layers/sources/client_file_source'; + +import { uploadLayerWizardConfig } from '../../../layers/sources/client_file_source'; export const ImportEditor = ({ clearSource, isIndexingTriggered, ...props }) => { const editorProperties = getEditorProperties({ isIndexingTriggered, ...props }); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/index.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/index.js similarity index 85% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/index.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/index.js index c4e2fa5169b0fa..24c1f5ced4fe65 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/index.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/index.js @@ -6,13 +6,13 @@ import { connect } from 'react-redux'; import { AddLayerPanel } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE, INDEXING_STAGE } from '../../../../../../plugins/maps/public/reducers/ui'; + +import { FLYOUT_STATE, INDEXING_STAGE } from '../../reducers/ui'; import { updateFlyout, updateIndexingStage } from '../../actions/ui_actions'; import { getFlyoutDisplay, getIndexingStage } from '../../selectors/ui_selectors'; import { getMapColors } from '../../selectors/map_selectors'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInspectorAdapters } from '../../../../../../plugins/maps/public/reducers/non_serializable_instances'; + +import { getInspectorAdapters } from '../../reducers/non_serializable_instances'; import { setTransientLayer, addLayer, diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js similarity index 75% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js index 553e54ee897665..8937f32d3bf05d 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_editor/index.js @@ -6,8 +6,8 @@ import { connect } from 'react-redux'; import { SourceEditor } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInspectorAdapters } from '../../../../../../../plugins/maps/public/reducers/non_serializable_instances'; + +import { getInspectorAdapters } from '../../../reducers/non_serializable_instances'; function mapStateToProps(state = {}) { return { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_editor/view.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_editor/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_editor/view.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/source_editor/view.js diff --git a/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss new file mode 100644 index 00000000000000..8ae6970315e132 --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_index.scss @@ -0,0 +1 @@ +@import 'source_select'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_source_select.scss b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_source_select.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/_source_select.scss rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/_source_select.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js similarity index 90% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js index 67cc17ebaa2241..80b05a0fd015b7 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/source_select/source_select.js @@ -5,8 +5,8 @@ */ import React, { Fragment } from 'react'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getLayerWizards } from '../../../../../../../plugins/maps/public/layers/layer_wizard_registry'; + +import { getLayerWizards } from '../../../layers/layer_wizard_registry'; import { EuiTitle, EuiSpacer, EuiCard, EuiIcon } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import _ from 'lodash'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_addpanel/view.js rename to x-pack/plugins/maps/public/connected_components/layer_addpanel/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/__snapshots__/view.test.js.snap b/x-pack/plugins/maps/public/connected_components/layer_panel/__snapshots__/view.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/__snapshots__/view.test.js.snap rename to x-pack/plugins/maps/public/connected_components/layer_panel/__snapshots__/view.test.js.snap diff --git a/x-pack/plugins/maps/public/connected_components/layer_panel/_index.scss b/x-pack/plugins/maps/public/connected_components/layer_panel/_index.scss new file mode 100644 index 00000000000000..41b4826a02c675 --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/_index.scss @@ -0,0 +1,4 @@ +@import 'layer_panel'; +@import 'filter_editor/filter_editor'; +@import 'join_editor/resources/join'; +@import 'style_settings/style_settings'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_layer_panel.scss b/x-pack/plugins/maps/public/connected_components/layer_panel/_layer_panel.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/_layer_panel.scss rename to x-pack/plugins/maps/public/connected_components/layer_panel/_layer_panel.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/_filter_editor.scss b/x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/_filter_editor.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/_filter_editor.scss rename to x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/_filter_editor.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js b/x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js similarity index 96% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js index 40fdac38493d4b..fba2ec05d0b1d6 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/filter_editor.js @@ -20,12 +20,7 @@ import { import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -import { - getIndexPatternService, - getUiSettings, - getData, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../plugins/maps/public/kibana_services'; +import { getIndexPatternService, getUiSettings, getData } from '../../../kibana_services'; import { GlobalFilterCheckbox } from '../../../components/global_filter_checkbox'; export class FilterEditor extends Component { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/filter_editor/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/filter_editor/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js similarity index 89% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js index 287f0019f18ecd..621ce209eb982f 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/flyout_footer/index.js @@ -6,8 +6,8 @@ import { connect } from 'react-redux'; import { FlyoutFooter } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../../plugins/maps/public/reducers/ui'; + +import { FLYOUT_STATE } from '../../../reducers/ui'; import { updateFlyout } from '../../../actions/ui_actions'; import { hasDirtyState } from '../../../selectors/map_selectors'; import { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/flyout_footer/view.js b/x-pack/plugins/maps/public/connected_components/layer_panel/flyout_footer/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/flyout_footer/view.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/flyout_footer/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/__snapshots__/metrics_expression.test.js.snap b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/__snapshots__/metrics_expression.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/__snapshots__/metrics_expression.test.js.snap rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/__snapshots__/metrics_expression.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/_join.scss b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/_join.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/_join.scss rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/_join.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js similarity index 95% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js index 9c4e1cfdb5467c..0d26354e2449b2 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join.js @@ -13,9 +13,9 @@ import { MetricsExpression } from './metrics_expression'; import { WhereExpression } from './where_expression'; import { GlobalFilterCheckbox } from '../../../../components/global_filter_checkbox'; -import { indexPatterns } from '../../../../../../../../../src/plugins/data/public'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getIndexPatternService } from '../../../../../../../../plugins/maps/public/kibana_services'; +import { indexPatterns } from '../../../../../../../../src/plugins/data/public'; + +import { getIndexPatternService } from '../../../../kibana_services'; export class Join extends Component { state = { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js similarity index 93% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js index 73600c81d221e2..12ca2f3c514a06 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/join_expression.js @@ -16,16 +16,15 @@ import { EuiFormHelpText, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SingleFieldSelect } from '../../../../../../../../plugins/maps/public/components/single_field_select'; + +import { SingleFieldSelect } from '../../../../components/single_field_select'; import { FormattedMessage } from '@kbn/i18n/react'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getTermsFields } from '../../../../../../../../plugins/maps/public/index_pattern_util'; + +import { getTermsFields } from '../../../../index_pattern_util'; import { getIndexPatternService, getIndexPatternSelectComponent, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../../plugins/maps/public/kibana_services'; +} from '../../../../kibana_services'; export class JoinExpression extends Component { state = { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js similarity index 95% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js index c6a79a398f9af2..8c83743ac4c962 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.js @@ -14,8 +14,8 @@ import { EuiFormErrorText, EuiFormHelpText, } from '@elastic/eui'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetricsEditor } from '../../../../../../../../plugins/maps/public/components/metrics_editor'; + +import { MetricsEditor } from '../../../../components/metrics_editor'; import { FormattedMessage } from '@kbn/i18n/react'; import { AGG_TYPE } from '../../../../../common/constants'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js similarity index 92% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js index d8bf8622494484..3cd8a3c42879a3 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/metrics_expression.test.js @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../../../../../../../../plugins/maps/public/components/metric_editor', () => ({ +jest.mock('../../../../components/metric_editor', () => ({ MetricsEditor: () => { return
mockMetricsEditor
; }, diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js similarity index 94% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js index 54ec0ac46fa3d9..7c9b4f7b7b9a4d 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/resources/where_expression.js @@ -8,11 +8,7 @@ import React, { Component } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiButton, EuiPopover, EuiExpression, EuiFormHelpText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { - getUiSettings, - getData, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../../plugins/maps/public/kibana_services'; +import { getUiSettings, getData } from '../../../../kibana_services'; export class WhereExpression extends Component { state = { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/view.js b/x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/join_editor/view.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/join_editor/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/__snapshots__/layer_errors.test.js.snap b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/__snapshots__/layer_errors.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/__snapshots__/layer_errors.test.js.snap rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/__snapshots__/layer_errors.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.js b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.test.js b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.test.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_errors/layer_errors.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js similarity index 94% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js index e8f980bbbf2b40..e2f22c584d3b31 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/index.js @@ -13,7 +13,7 @@ import { updateLayerMinZoom, updateLayerAlpha, } from '../../../actions/map_actions'; -import { MAX_ZOOM } from '../../../../../../../plugins/maps/common/constants'; +import { MAX_ZOOM } from '../../../../common/constants'; function mapStateToProps(state = {}) { const selectedLayer = getSelectedLayer(state); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js similarity index 92% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js index 1d352913e54a36..168c735ab7a6c1 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/layer_settings/layer_settings.js @@ -8,11 +8,10 @@ import React, { Fragment } from 'react'; import { EuiTitle, EuiPanel, EuiFormRow, EuiFieldText, EuiSpacer } from '@elastic/eui'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ValidatedRange } from '../../../../../../../plugins/maps/public/components/validated_range'; +import { ValidatedRange } from '../../../components/validated_range'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import { ValidatedDualRange } from '../../../../../../../../src/plugins/kibana_react/public'; +import { ValidatedDualRange } from '../../../../../../../src/plugins/kibana_react/public'; export function LayerSettings(props) { const onLabelChange = event => { const label = event.target.value; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/_style_settings.scss b/x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/_style_settings.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/_style_settings.scss rename to x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/_style_settings.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/index.js b/x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/index.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/style_settings.js b/x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/style_settings.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/style_settings/style_settings.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/style_settings/style_settings.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.js b/x-pack/plugins/maps/public/connected_components/layer_panel/view.js similarity index 95% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/view.js index 2521318f0b3c9c..f8b7c417e67fd2 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.js +++ b/x-pack/plugins/maps/public/connected_components/layer_panel/view.js @@ -28,10 +28,10 @@ import { import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; -import { Storage } from '../../../../../../../src/plugins/kibana_utils/public'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getData, getCore } from '../../../../../../plugins/maps/public/kibana_services'; +import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public'; +import { Storage } from '../../../../../../src/plugins/kibana_utils/public'; + +import { getData, getCore } from '../../kibana_services'; const localStorage = new Storage(window.localStorage); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.test.js b/x-pack/plugins/maps/public/connected_components/layer_panel/view.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/layer_panel/view.test.js rename to x-pack/plugins/maps/public/connected_components/layer_panel/view.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/feature_properties.test.js.snap b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/feature_properties.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/feature_properties.test.js.snap rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/feature_properties.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/tooltip_header.test.js.snap b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/tooltip_header.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/tooltip_header.test.js.snap rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/__snapshots__/tooltip_header.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/_index.scss b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/_index.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/_index.scss rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/_index.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js similarity index 92% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js index 15824b82965e83..b103fb43af97c7 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js +++ b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_geometry_filter_form.js @@ -8,12 +8,12 @@ import React, { Component, Fragment } from 'react'; import { EuiIcon } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { createSpatialFilterWithGeometry } from '../../../../../../../plugins/maps/public/elasticsearch_geo_utils'; + +import { createSpatialFilterWithGeometry } from '../../../elasticsearch_geo_utils'; import { GEO_JSON_TYPE } from '../../../../common/constants'; import { GeometryFilterForm } from '../../../components/geometry_filter_form'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { UrlOverflowService } from '../../../../../../../../src/plugins/kibana_legacy/public'; + +import { UrlOverflowService } from '../../../../../../../src/plugins/kibana_legacy/public'; import rison from 'rison-node'; // over estimated and imprecise value to ensure filter has additional room for any meta keys added when filter is mapped. diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.test.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.test.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/feature_properties.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/features_tooltip.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/features_tooltip.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/features_tooltip.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/features_tooltip.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.test.js b/x-pack/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.test.js rename to x-pack/plugins/maps/public/connected_components/map/features_tooltip/tooltip_header.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_circle.ts b/x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_circle.ts similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_circle.ts rename to x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_circle.ts diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js b/x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js similarity index 96% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js rename to x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js index cc0e665525036f..d20faa39d6492a 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js +++ b/x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_control.js @@ -15,8 +15,7 @@ import { createSpatialFilterWithGeometry, getBoundingBoxGeometry, roundCoordinates, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../../plugins/maps/public/elasticsearch_geo_utils'; +} from '../../../../elasticsearch_geo_utils'; import { DrawTooltip } from './draw_tooltip'; const mbDrawModes = MapboxDraw.modes; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_tooltip.js b/x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_tooltip.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/draw_tooltip.js rename to x-pack/plugins/maps/public/connected_components/map/mb/draw_control/draw_tooltip.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/index.js b/x-pack/plugins/maps/public/connected_components/map/mb/draw_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/draw_control/index.js rename to x-pack/plugins/maps/public/connected_components/map/mb/draw_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/index.js b/x-pack/plugins/maps/public/connected_components/map/mb/index.js similarity index 91% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/index.js rename to x-pack/plugins/maps/public/connected_components/map/mb/index.js index 350cb7028abee2..d864b60eb433bf 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/index.js +++ b/x-pack/plugins/maps/public/connected_components/map/mb/index.js @@ -24,8 +24,8 @@ import { isTooltipControlDisabled, isViewControlHidden, } from '../../../selectors/map_selectors'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInspectorAdapters } from '../../../../../../../plugins/maps/public/reducers/non_serializable_instances'; + +import { getInspectorAdapters } from '../../../reducers/non_serializable_instances'; function mapStateToProps(state = {}) { return { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/mb.utils.test.js b/x-pack/plugins/maps/public/connected_components/map/mb/mb.utils.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/mb.utils.test.js rename to x-pack/plugins/maps/public/connected_components/map/mb/mb.utils.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_control.test.js.snap b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_control.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_control.test.js.snap rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_control.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_popover.test.js.snap b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_popover.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_popover.test.js.snap rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/__snapshots__/tooltip_popover.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/index.js b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/index.js rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.js b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.js rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.test.js b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.test.js rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_control.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.js b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.js rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.test.js b/x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.test.js rename to x-pack/plugins/maps/public/connected_components/map/mb/tooltip_control/tooltip_popover.test.js diff --git a/x-pack/plugins/maps/public/connected_components/map/mb/utils.js b/x-pack/plugins/maps/public/connected_components/map/mb/utils.js index 15aacfbf1f38db..7be2cd9e670843 100644 --- a/x-pack/plugins/maps/public/connected_components/map/mb/utils.js +++ b/x-pack/plugins/maps/public/connected_components/map/mb/utils.js @@ -4,8 +4,102 @@ * you may not use this file except in compliance with the Elastic License. */ +import _ from 'lodash'; import { RGBAImage } from './image_utils'; +export function removeOrphanedSourcesAndLayers(mbMap, layerList) { + const mbStyle = mbMap.getStyle(); + + const mbLayerIdsToRemove = []; + mbStyle.layers.forEach(mbLayer => { + const layer = layerList.find(layer => { + return layer.ownsMbLayerId(mbLayer.id); + }); + if (!layer) { + mbLayerIdsToRemove.push(mbLayer.id); + } + }); + mbLayerIdsToRemove.forEach(mbLayerId => mbMap.removeLayer(mbLayerId)); + + const mbSourcesToRemove = []; + for (const mbSourceId in mbStyle.sources) { + if (mbStyle.sources.hasOwnProperty(mbSourceId)) { + const layer = layerList.find(layer => { + return layer.ownsMbSourceId(mbSourceId); + }); + if (!layer) { + mbSourcesToRemove.push(mbSourceId); + } + } + } + mbSourcesToRemove.forEach(mbSourceId => mbMap.removeSource(mbSourceId)); +} + +/** + * This is function assumes only a single layer moved in the layerList, compared to mbMap + * It is optimized to minimize the amount of mbMap.moveLayer calls. + * @param mbMap + * @param layerList + */ +export function syncLayerOrderForSingleLayer(mbMap, layerList) { + if (!layerList || layerList.length === 0) { + return; + } + + const mbLayers = mbMap.getStyle().layers.slice(); + const layerIds = mbLayers.map(mbLayer => { + const layer = layerList.find(layer => layer.ownsMbLayerId(mbLayer.id)); + return layer.getId(); + }); + + const currentLayerOrderLayerIds = _.uniq(layerIds); + + const newLayerOrderLayerIdsUnfiltered = layerList.map(l => l.getId()); + const newLayerOrderLayerIds = newLayerOrderLayerIdsUnfiltered.filter(layerId => + currentLayerOrderLayerIds.includes(layerId) + ); + + let netPos = 0; + let netNeg = 0; + const movementArr = currentLayerOrderLayerIds.reduce((accu, id, idx) => { + const movement = newLayerOrderLayerIds.findIndex(newOId => newOId === id) - idx; + movement > 0 ? netPos++ : movement < 0 && netNeg++; + accu.push({ id, movement }); + return accu; + }, []); + if (netPos === 0 && netNeg === 0) { + return; + } + const movedLayerId = + (netPos >= netNeg && movementArr.find(l => l.movement < 0).id) || + (netPos < netNeg && movementArr.find(l => l.movement > 0).id); + const nextLayerIdx = newLayerOrderLayerIds.findIndex(layerId => layerId === movedLayerId) + 1; + + let nextMbLayerId; + if (nextLayerIdx === newLayerOrderLayerIds.length) { + nextMbLayerId = null; + } else { + const foundLayer = mbLayers.find(({ id: mbLayerId }) => { + const layerId = newLayerOrderLayerIds[nextLayerIdx]; + const layer = layerList.find(layer => layer.getId() === layerId); + return layer.ownsMbLayerId(mbLayerId); + }); + nextMbLayerId = foundLayer.id; + } + + const movedLayer = layerList.find(layer => layer.getId() === movedLayerId); + mbLayers.forEach(({ id: mbLayerId }) => { + if (movedLayer.ownsMbLayerId(mbLayerId)) { + mbMap.moveLayer(mbLayerId, nextMbLayerId); + } + }); +} + +export async function addSpritesheetToMap(json, imgUrl, mbMap) { + const imgData = await loadSpriteSheetImageData(imgUrl); + addSpriteSheetToMapFromImageData(json, imgData, mbMap); +} + function getImageData(img) { const canvas = window.document.createElement('canvas'); const context = canvas.getContext('2d'); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js b/x-pack/plugins/maps/public/connected_components/map/mb/view.js similarity index 94% rename from x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js rename to x-pack/plugins/maps/public/connected_components/map/mb/view.js index a36e1d7048e92f..0008ca5cb0f033 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/map/mb/view.js +++ b/x-pack/plugins/maps/public/connected_components/map/mb/view.js @@ -6,14 +6,13 @@ import _ from 'lodash'; import React from 'react'; -import { ResizeChecker } from '../../../../../../../../src/plugins/kibana_utils/public'; +import { ResizeChecker } from '../../../../../../../src/plugins/kibana_utils/public'; import { syncLayerOrderForSingleLayer, removeOrphanedSourcesAndLayers, addSpritesheetToMap, } from './utils'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getGlyphUrl, isRetina } from '../../../../../../../plugins/maps/public/meta'; +import { getGlyphUrl, isRetina } from '../../../meta'; import { DECIMAL_DEGREES_PRECISION, MAX_ZOOM, @@ -28,13 +27,9 @@ import sprites1 from '@elastic/maki/dist/sprite@1.png'; import sprites2 from '@elastic/maki/dist/sprite@2.png'; import { DrawControl } from './draw_control'; import { TooltipControl } from './tooltip_control'; -import { - clampToLatBounds, - clampToLonBounds, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../../../plugins/maps/public/elasticsearch_geo_utils'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInjectedVarFunc } from '../../../../../../../plugins/maps/public/kibana_services'; +import { clampToLatBounds, clampToLonBounds } from '../../../elasticsearch_geo_utils'; + +import { getInjectedVarFunc } from '../../../kibana_services'; mapboxgl.workerUrl = mbWorkerUrl; mapboxgl.setRTLTextPlugin(mbRtlPlugin); diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/_index.scss b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/_index.scss similarity index 93% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/_index.scss rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/_index.scss index 01aea403b27f09..2754a3e204263f 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/_index.scss +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/_index.scss @@ -1,4 +1,4 @@ -@import './tools_control/index'; +@import 'tools_control/index'; .mapToolbarOverlay { position: absolute; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/index.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/index.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/set_view_control/set_view_control.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/toolbar_overlay.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/__snapshots__/tools_control.test.js.snap b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/__snapshots__/tools_control.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/__snapshots__/tools_control.test.js.snap rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/__snapshots__/tools_control.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/_index.scss b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/_index.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/_index.scss rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/_index.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/index.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/index.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.test.js b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.test.js rename to x-pack/plugins/maps/public/connected_components/toolbar_overlay/tools_control/tools_control.test.js diff --git a/x-pack/plugins/maps/public/connected_components/widget_overlay/_index.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/_index.scss new file mode 100644 index 00000000000000..5e5086bed2763f --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/_index.scss @@ -0,0 +1,6 @@ +@import 'mixins'; + +@import 'widget_overlay'; +@import 'attribution_control/attribution_control'; +@import 'layer_control/index'; +@import 'view_control/view_control'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_mixins.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/_mixins.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_mixins.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/_mixins.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_widget_overlay.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/_widget_overlay.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/_widget_overlay.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/_widget_overlay.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/__snapshots__/view.test.js.snap b/x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/__snapshots__/view.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/__snapshots__/view.test.js.snap rename to x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/__snapshots__/view.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/_attribution_control.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/_attribution_control.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/_attribution_control.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/_attribution_control.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.test.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.test.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/attribution_control/view.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/__snapshots__/view.test.js.snap b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/__snapshots__/view.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/__snapshots__/view.test.js.snap rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/__snapshots__/view.test.js.snap diff --git a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss new file mode 100644 index 00000000000000..9a3e3a45d6c4e5 --- /dev/null +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_index.scss @@ -0,0 +1,2 @@ +@import 'layer_control'; +@import 'layer_toc/toc_entry/toc_entry'; diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_layer_control.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_layer_control.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/_layer_control.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/_layer_control.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js similarity index 90% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js index 04de5f71f5bfc4..8780bac59e4b72 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/index.js @@ -6,8 +6,8 @@ import { connect } from 'react-redux'; import { LayerControl } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../../plugins/maps/public/reducers/ui'; + +import { FLYOUT_STATE } from '../../../reducers/ui'; import { updateFlyout, setIsLayerTOCOpen } from '../../../actions/ui_actions'; import { setSelectedLayer } from '../../../actions/map_actions'; import { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/__snapshots__/view.test.js.snap b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/__snapshots__/view.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/__snapshots__/view.test.js.snap rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/__snapshots__/view.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/__snapshots__/view.test.js.snap b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/__snapshots__/view.test.js.snap similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/__snapshots__/view.test.js.snap rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/__snapshots__/view.test.js.snap diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/_toc_entry.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/_toc_entry.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/_toc_entry.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/_toc_entry.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js similarity index 93% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js index 588445d0b49928..ca3c6d325687dd 100644 --- a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/index.js @@ -7,8 +7,8 @@ import _ from 'lodash'; import { connect } from 'react-redux'; import { TOCEntry } from './view'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE } from '../../../../../../../../../plugins/maps/public/reducers/ui'; + +import { FLYOUT_STATE } from '../../../../../reducers/ui'; import { updateFlyout, hideTOCDetails, showTOCDetails } from '../../../../../actions/ui_actions'; import { getIsReadOnly, getOpenTOCDetails } from '../../../../../selectors/ui_selectors'; import { diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.test.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.test.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/view.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.test.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.test.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/view.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/view.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/view.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/view.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/view.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/view.test.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/view.test.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/layer_control/view.test.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/view.test.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/_view_control.scss b/x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/_view_control.scss similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/_view_control.scss rename to x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/_view_control.scss diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/index.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/index.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/index.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/index.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/view_control.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/view_control.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/view_control/view_control.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/view_control/view_control.js diff --git a/x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/widget_overlay.js b/x-pack/plugins/maps/public/connected_components/widget_overlay/widget_overlay.js similarity index 100% rename from x-pack/legacy/plugins/maps/public/connected_components/widget_overlay/widget_overlay.js rename to x-pack/plugins/maps/public/connected_components/widget_overlay/widget_overlay.js diff --git a/x-pack/legacy/plugins/maps/public/embeddable/README.md b/x-pack/plugins/maps/public/embeddable/README.md similarity index 100% rename from x-pack/legacy/plugins/maps/public/embeddable/README.md rename to x-pack/plugins/maps/public/embeddable/README.md diff --git a/x-pack/legacy/plugins/maps/public/embeddable/index.ts b/x-pack/plugins/maps/public/embeddable/index.ts similarity index 100% rename from x-pack/legacy/plugins/maps/public/embeddable/index.ts rename to x-pack/plugins/maps/public/embeddable/index.ts diff --git a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx similarity index 90% rename from x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx rename to x-pack/plugins/maps/public/embeddable/map_embeddable.tsx index b8e4c84ad56a17..dbd48d614e99b4 100644 --- a/x-pack/legacy/plugins/maps/public/embeddable/map_embeddable.tsx +++ b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx @@ -9,8 +9,6 @@ import React from 'react'; import { Provider } from 'react-redux'; import { render, unmountComponentAtNode } from 'react-dom'; import 'mapbox-gl/dist/mapbox-gl.css'; - -import { I18nContext } from 'ui/i18n'; import { Subscription } from 'rxjs'; import { Unsubscribe } from 'redux'; import { @@ -18,8 +16,8 @@ import { IContainer, EmbeddableInput, EmbeddableOutput, -} from '../../../../../../src/plugins/embeddable/public'; -import { APPLY_FILTER_TRIGGER } from '../../../../../../src/plugins/ui_actions/public'; +} from '../../../../../src/plugins/embeddable/public'; +import { APPLY_FILTER_TRIGGER } from '../../../../../src/plugins/ui_actions/public'; import { esFilters, IIndexPattern, @@ -27,11 +25,9 @@ import { Filter, Query, RefreshInterval, -} from '../../../../../../src/plugins/data/public'; - +} from '../../../../../src/plugins/data/public'; import { GisMap } from '../connected_components/gis_map'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { createMapStore, MapStore } from '../../../../../plugins/maps/public/reducers/store'; +import { createMapStore, MapStore } from '../reducers/store'; import { setGotoWithCenter, replaceLayerList, @@ -45,21 +41,18 @@ import { hideViewControl, setHiddenLayers, } from '../actions/map_actions'; -import { MapCenterAndZoom } from '../../../../../plugins/maps/common/descriptor_types'; +import { MapCenterAndZoom } from '../../common/descriptor_types'; import { setReadOnly, setIsLayerTOCOpen, setOpenTOCDetails } from '../actions/ui_actions'; import { getIsLayerTOCOpen, getOpenTOCDetails } from '../selectors/ui_selectors'; import { getInspectorAdapters, setEventHandlers, EventHandlers, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/reducers/non_serializable_instances'; +} from '../reducers/non_serializable_instances'; import { getMapCenter, getMapZoom, getHiddenLayerIds } from '../selectors/map_selectors'; import { MAP_SAVED_OBJECT_TYPE } from '../../common/constants'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { RenderToolTipContent } from '../../../../../plugins/maps/public/layers/tooltips/tooltip_property'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getUiActions } from '../../../../../plugins/maps/public/kibana_services'; +import { RenderToolTipContent } from '../layers/tooltips/tooltip_property'; +import { getUiActions, getCoreI18n } from '../kibana_services'; interface MapEmbeddableConfig { editUrl?: string; @@ -247,6 +240,8 @@ export class MapEmbeddable extends Embeddable diff --git a/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts new file mode 100644 index 00000000000000..a99fe63c5f3863 --- /dev/null +++ b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts @@ -0,0 +1,136 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import _ from 'lodash'; +import { i18n } from '@kbn/i18n'; +import { IIndexPattern } from 'src/plugins/data/public'; +// @ts-ignore +import { getMapsSavedObjectLoader } from '../angular/services/gis_map_saved_object_loader'; +import { MapEmbeddable, MapEmbeddableInput } from './map_embeddable'; +import { getIndexPatternService, getHttp, getMapsCapabilities } from '../kibana_services'; +import { + EmbeddableFactoryDefinition, + IContainer, +} from '../../../../../src/plugins/embeddable/public'; + +import { createMapPath, MAP_SAVED_OBJECT_TYPE, APP_ICON } from '../../common/constants'; + +import { createMapStore } from '../reducers/store'; +import { addLayerWithoutDataSync } from '../actions/map_actions'; +import { getQueryableUniqueIndexPatternIds } from '../selectors/map_selectors'; +import { getInitialLayers } from '../angular/get_initial_layers'; +import { mergeInputWithSavedMap } from './merge_input_with_saved_map'; + +export class MapEmbeddableFactory implements EmbeddableFactoryDefinition { + type = MAP_SAVED_OBJECT_TYPE; + savedObjectMetaData = { + name: i18n.translate('xpack.maps.mapSavedObjectLabel', { + defaultMessage: 'Map', + }), + type: MAP_SAVED_OBJECT_TYPE, + getIconForSavedObject: () => APP_ICON, + }; + + async isEditable() { + return getMapsCapabilities().save as boolean; + } + + // Not supported yet for maps types. + canCreateNew() { + return false; + } + + getDisplayName() { + return i18n.translate('xpack.maps.embeddableDisplayName', { + defaultMessage: 'map', + }); + } + + async _getIndexPatterns(layerList: unknown[]): Promise { + // Need to extract layerList from store to get queryable index pattern ids + const store = createMapStore(); + let queryableIndexPatternIds; + try { + layerList.forEach((layerDescriptor: unknown) => { + store.dispatch(addLayerWithoutDataSync(layerDescriptor)); + }); + queryableIndexPatternIds = getQueryableUniqueIndexPatternIds(store.getState()); + } catch (error) { + throw new Error( + i18n.translate('xpack.maps.mapEmbeddableFactory.invalidLayerList', { + defaultMessage: 'Unable to load map, malformed layer list', + }) + ); + } + + const promises = queryableIndexPatternIds.map(async indexPatternId => { + try { + return await getIndexPatternService().get(indexPatternId); + } catch (error) { + // Unable to load index pattern, better to not throw error so map embeddable can render + // Error will be surfaced by map embeddable since it too will be unable to locate the index pattern + return null; + } + }); + const indexPatterns = await Promise.all(promises); + return _.compact(indexPatterns) as IIndexPattern[]; + } + + async _fetchSavedMap(savedObjectId: string) { + const savedObjectLoader = getMapsSavedObjectLoader(); + return await savedObjectLoader.get(savedObjectId); + } + + createFromSavedObject = async ( + savedObjectId: string, + input: MapEmbeddableInput, + parent?: IContainer + ) => { + const savedMap = await this._fetchSavedMap(savedObjectId); + const layerList = getInitialLayers(savedMap.layerListJSON); + const indexPatterns = await this._getIndexPatterns(layerList); + + const embeddable = new MapEmbeddable( + { + layerList, + title: savedMap.title, + editUrl: getHttp().basePath.prepend(createMapPath(savedObjectId)), + indexPatterns, + editable: await this.isEditable(), + }, + input, + parent + ); + + try { + embeddable.updateInput(mergeInputWithSavedMap(input, savedMap)); + } catch (error) { + throw new Error( + i18n.translate('xpack.maps.mapEmbeddableFactory.invalidSavedObject', { + defaultMessage: 'Unable to load map, malformed saved object', + }) + ); + } + + return embeddable; + }; + + create = async (input: MapEmbeddableInput, parent?: IContainer) => { + const layerList = getInitialLayers(); + const indexPatterns = await this._getIndexPatterns(layerList); + + return new MapEmbeddable( + { + layerList, + title: input.title ?? '', + indexPatterns, + editable: false, + }, + input, + parent + ); + }; +} diff --git a/x-pack/legacy/plugins/maps/public/embeddable/merge_input_with_saved_map.d.ts b/x-pack/plugins/maps/public/embeddable/merge_input_with_saved_map.d.ts similarity index 100% rename from x-pack/legacy/plugins/maps/public/embeddable/merge_input_with_saved_map.d.ts rename to x-pack/plugins/maps/public/embeddable/merge_input_with_saved_map.d.ts diff --git a/x-pack/legacy/plugins/maps/public/embeddable/merge_input_with_saved_map.js b/x-pack/plugins/maps/public/embeddable/merge_input_with_saved_map.js similarity index 89% rename from x-pack/legacy/plugins/maps/public/embeddable/merge_input_with_saved_map.js rename to x-pack/plugins/maps/public/embeddable/merge_input_with_saved_map.js index 8e3e0a9168e30e..d91c91b3b223c9 100644 --- a/x-pack/legacy/plugins/maps/public/embeddable/merge_input_with_saved_map.js +++ b/x-pack/plugins/maps/public/embeddable/merge_input_with_saved_map.js @@ -5,8 +5,8 @@ */ import _ from 'lodash'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { DEFAULT_IS_LAYER_TOC_OPEN } from '../../../../../plugins/maps/public/reducers/ui'; + +import { DEFAULT_IS_LAYER_TOC_OPEN } from '../reducers/ui'; const MAP_EMBEDDABLE_INPUT_KEYS = [ 'hideFilterActions', diff --git a/x-pack/legacy/plugins/maps/public/feature_catalogue_entry.ts b/x-pack/plugins/maps/public/feature_catalogue_entry.ts similarity index 89% rename from x-pack/legacy/plugins/maps/public/feature_catalogue_entry.ts rename to x-pack/plugins/maps/public/feature_catalogue_entry.ts index fdda76b4e12127..6c2579bd3e4e2a 100644 --- a/x-pack/legacy/plugins/maps/public/feature_catalogue_entry.ts +++ b/x-pack/plugins/maps/public/feature_catalogue_entry.ts @@ -6,7 +6,7 @@ import { i18n } from '@kbn/i18n'; import { APP_ID, APP_ICON } from '../common/constants'; import { getAppTitle } from '../common/i18n_getters'; -import { FeatureCatalogueCategory } from '../../../../../src/plugins/home/public'; +import { FeatureCatalogueCategory } from '../../../../src/plugins/home/public'; export const featureCatalogueEntry = { id: APP_ID, diff --git a/x-pack/legacy/plugins/maps/public/help_menu_util.js b/x-pack/plugins/maps/public/help_menu_util.js similarity index 81% rename from x-pack/legacy/plugins/maps/public/help_menu_util.js rename to x-pack/plugins/maps/public/help_menu_util.js index 70b9340b562cd1..053caf66883094 100644 --- a/x-pack/legacy/plugins/maps/public/help_menu_util.js +++ b/x-pack/plugins/maps/public/help_menu_util.js @@ -3,8 +3,8 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getDocLinks, getCoreChrome } from '../../../../plugins/maps/public/kibana_services'; + +import { getDocLinks, getCoreChrome } from './kibana_services'; export function addHelpMenuToAppChrome() { const { ELASTIC_WEBSITE_URL, DOC_LINK_VERSION } = getDocLinks(); diff --git a/x-pack/legacy/plugins/maps/public/icon.svg b/x-pack/plugins/maps/public/icon.svg similarity index 100% rename from x-pack/legacy/plugins/maps/public/icon.svg rename to x-pack/plugins/maps/public/icon.svg diff --git a/x-pack/plugins/maps/public/index.scss b/x-pack/plugins/maps/public/index.scss new file mode 100644 index 00000000000000..8b2f6d3cb61563 --- /dev/null +++ b/x-pack/plugins/maps/public/index.scss @@ -0,0 +1,17 @@ +/* GIS plugin styles */ + +// Import the EUI global scope so we can use EUI constants +@import 'src/legacy/ui/public/styles/_styling_constants'; + +// Prefix all styles with "map" to avoid conflicts. +// Examples +// mapChart +// mapChart__legend +// mapChart__legend--small +// mapChart__legend-isLoading + +@import 'main'; +@import 'mapbox_hacks'; +@import 'connected_components/index'; +@import 'components/index'; +@import 'layers/index'; diff --git a/x-pack/plugins/maps/public/layers/layer.js b/x-pack/plugins/maps/public/layers/layer.js index 19dcbaf1dfcfdc..9362ce2c028e6e 100644 --- a/x-pack/plugins/maps/public/layers/layer.js +++ b/x-pack/plugins/maps/public/layers/layer.js @@ -14,7 +14,7 @@ import { SOURCE_DATA_ID_ORIGIN, } from '../../common/constants'; import uuid from 'uuid/v4'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths + import { copyPersistentState } from '../reducers/util.js'; import { i18n } from '@kbn/i18n'; diff --git a/x-pack/plugins/maps/public/layers/sources/es_source/es_source.js b/x-pack/plugins/maps/public/layers/sources/es_source/es_source.js index 3402e367cbd736..9ab87577b77806 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_source/es_source.js +++ b/x-pack/plugins/maps/public/layers/sources/es_source/es_source.js @@ -16,7 +16,7 @@ import { createExtentFilter } from '../../../elasticsearch_geo_utils'; import _ from 'lodash'; import { i18n } from '@kbn/i18n'; import uuid from 'uuid/v4'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths + import { copyPersistentState } from '../../../reducers/util'; import { ES_GEO_FIELD_TYPE } from '../../../../common/constants'; import { DataRequestAbortError } from '../../util/data_request'; diff --git a/x-pack/plugins/maps/public/layers/sources/source.js b/x-pack/plugins/maps/public/layers/sources/source.js index 555b8999d62847..fd93daf249b265 100644 --- a/x-pack/plugins/maps/public/layers/sources/source.js +++ b/x-pack/plugins/maps/public/layers/sources/source.js @@ -4,7 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths import { copyPersistentState } from '../../reducers/util'; import { MIN_ZOOM, MAX_ZOOM } from '../../../common/constants'; diff --git a/x-pack/plugins/maps/public/maps_vis_type_alias.js b/x-pack/plugins/maps/public/maps_vis_type_alias.js new file mode 100644 index 00000000000000..85613f4608c6f4 --- /dev/null +++ b/x-pack/plugins/maps/public/maps_vis_type_alias.js @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; +import { APP_ID, APP_ICON, MAP_BASE_URL } from '../common/constants'; +import { getInjectedVarFunc, getVisualizations } from './kibana_services'; + +export function getMapsVisTypeAlias() { + const showMapVisualizationTypes = getInjectedVarFunc()('showMapVisualizationTypes', false); + if (!showMapVisualizationTypes) { + getVisualizations().hideTypes(['region_map', 'tile_map']); + } + + const description = i18n.translate('xpack.maps.visTypeAlias.description', { + defaultMessage: 'Create and style maps with multiple layers and indices.', + }); + + const legacyMapVisualizationWarning = i18n.translate( + 'xpack.maps.visTypeAlias.legacyMapVizWarning', + { + defaultMessage: `Use the Maps app instead of Coordinate Map and Region Map. +The Maps app offers more functionality and is easier to use.`, + } + ); + + return { + aliasUrl: MAP_BASE_URL, + name: APP_ID, + title: i18n.translate('xpack.maps.visTypeAlias.title', { + defaultMessage: 'Maps', + }), + description: showMapVisualizationTypes + ? `${description} ${legacyMapVisualizationWarning}` + : description, + icon: APP_ICON, + stage: 'production', + }; +} diff --git a/x-pack/plugins/maps/public/plugin.ts b/x-pack/plugins/maps/public/plugin.ts index d3b9626dc83661..863d439ab7f1d9 100644 --- a/x-pack/plugins/maps/public/plugin.ts +++ b/x-pack/plugins/maps/public/plugin.ts @@ -33,10 +33,17 @@ import { setVisualizations, // @ts-ignore } from './kibana_services'; +import { featureCatalogueEntry } from './feature_catalogue_entry'; +// @ts-ignore +import { getMapsVisTypeAlias } from './maps_vis_type_alias'; +import { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; +import { VisualizationsSetup } from '../../../../src/plugins/visualizations/public'; import { registerLayerWizards } from './layers/load_layer_wizards'; export interface MapsPluginSetupDependencies { inspector: InspectorSetupContract; + home: HomePublicPluginSetup; + visualizations: VisualizationsSetup; } // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface MapsPluginStartDependencies {} @@ -94,8 +101,15 @@ export class MapsPlugin MapsPluginStartDependencies > { public setup(core: CoreSetup, plugins: MapsPluginSetupDependencies) { - plugins.inspector.registerView(MapView); + const { inspector, home, visualizations } = plugins; + bindSetupCoreAndPlugins(core, plugins); + + inspector.registerView(MapView); + home.featureCatalogue.register(featureCatalogueEntry); + visualizations.registerAlias(getMapsVisTypeAlias()); } - public start(core: CoreStart, plugins: any) {} + public start(core: CoreStart, plugins: any) { + bindStartCoreAndPlugins(core, plugins); + } } diff --git a/x-pack/plugins/maps/public/reducers/ui.ts b/x-pack/plugins/maps/public/reducers/ui.ts index 7429545ec0e46e..f577618c74ffef 100644 --- a/x-pack/plugins/maps/public/reducers/ui.ts +++ b/x-pack/plugins/maps/public/reducers/ui.ts @@ -16,7 +16,6 @@ import { SHOW_TOC_DETAILS, HIDE_TOC_DETAILS, UPDATE_INDEXING_STAGE, - // @ts-ignore } from '../actions/ui_actions'; export enum FLYOUT_STATE { diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts b/x-pack/plugins/maps/public/selectors/map_selectors.d.ts similarity index 81% rename from x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts rename to x-pack/plugins/maps/public/selectors/map_selectors.d.ts index 8c99e0adcc14fe..32579d036590e3 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.d.ts +++ b/x-pack/plugins/maps/public/selectors/map_selectors.d.ts @@ -6,8 +6,8 @@ import { AnyAction } from 'redux'; import { MapCenter } from '../../common/descriptor_types'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MapStoreState } from '../../../../../plugins/maps/public/reducers/store'; + +import { MapStoreState } from '../reducers/store'; export function getHiddenLayerIds(state: MapStoreState): string[]; diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js b/x-pack/plugins/maps/public/selectors/map_selectors.js similarity index 82% rename from x-pack/legacy/plugins/maps/public/selectors/map_selectors.js rename to x-pack/plugins/maps/public/selectors/map_selectors.js index 1e710259355198..56e07f542782a3 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.js +++ b/x-pack/plugins/maps/public/selectors/map_selectors.js @@ -6,31 +6,17 @@ import { createSelector } from 'reselect'; import _ from 'lodash'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { TileLayer } from '../../../../../plugins/maps/public/layers/tile_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { VectorTileLayer } from '../../../../../plugins/maps/public/layers/vector_tile_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { VectorLayer } from '../../../../../plugins/maps/public/layers/vector_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { HeatmapLayer } from '../../../../../plugins/maps/public/layers/heatmap_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { BlendedVectorLayer } from '../../../../../plugins/maps/public/layers/blended_vector_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getTimeFilter } from '../../../../../plugins/maps/public/kibana_services'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { TiledVectorLayer } from '../../../../../plugins/maps/public/layers/tiled_vector_layer'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getInspectorAdapters } from '../../../../../plugins/maps/public/reducers/non_serializable_instances'; -import { - copyPersistentState, - TRACKED_LAYER_DESCRIPTOR, - // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../plugins/maps/public/reducers/util'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { InnerJoin } from '../../../../../plugins/maps/public/layers/joins/inner_join'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { getSourceByType } from '../../../../../plugins/maps/public/layers/sources/source_registry'; +import { TileLayer } from '../layers/tile_layer'; +import { VectorTileLayer } from '../layers/vector_tile_layer'; +import { VectorLayer } from '../layers/vector_layer'; +import { HeatmapLayer } from '../layers/heatmap_layer'; +import { BlendedVectorLayer } from '../layers/blended_vector_layer'; +import { getTimeFilter } from '../kibana_services'; +import { TiledVectorLayer } from '../layers/tiled_vector_layer'; +import { getInspectorAdapters } from '../reducers/non_serializable_instances'; +import { copyPersistentState, TRACKED_LAYER_DESCRIPTOR } from '../reducers/util'; +import { InnerJoin } from '../layers/joins/inner_join'; +import { getSourceByType } from '../layers/sources/source_registry'; function createLayerInstance(layerDescriptor, inspectorAdapters) { const source = createSourceInstance(layerDescriptor.sourceDescriptor, inspectorAdapters); diff --git a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js b/x-pack/plugins/maps/public/selectors/map_selectors.test.js similarity index 62% rename from x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js rename to x-pack/plugins/maps/public/selectors/map_selectors.test.js index 72cc7486175401..fec16251914ead 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/map_selectors.test.js +++ b/x-pack/plugins/maps/public/selectors/map_selectors.test.js @@ -4,18 +4,18 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../../../../../plugins/maps/public/layers/vector_layer', () => {}); -jest.mock('../../../../../plugins/maps/public/layers/tiled_vector_layer', () => {}); -jest.mock('../../../../../plugins/maps/public/layers/blended_vector_layer', () => {}); -jest.mock('../../../../../plugins/maps/public/layers/heatmap_layer', () => {}); -jest.mock('../../../../../plugins/maps/public/layers/vector_tile_layer', () => {}); -jest.mock('../../../../../plugins/maps/public/layers/joins/inner_join', () => {}); -jest.mock('../../../../../plugins/maps/public/reducers/non_serializable_instances', () => ({ +jest.mock('../layers/vector_layer', () => {}); +jest.mock('../layers/tiled_vector_layer', () => {}); +jest.mock('../layers/blended_vector_layer', () => {}); +jest.mock('../layers/heatmap_layer', () => {}); +jest.mock('../layers/vector_tile_layer', () => {}); +jest.mock('../layers/joins/inner_join', () => {}); +jest.mock('../reducers/non_serializable_instances', () => ({ getInspectorAdapters: () => { return {}; }, })); -jest.mock('../../../../../plugins/maps/public/kibana_services', () => ({ +jest.mock('../kibana_services', () => ({ getTimeFilter: () => ({ getTime: () => { return { diff --git a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts b/x-pack/plugins/maps/public/selectors/ui_selectors.ts similarity index 74% rename from x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts rename to x-pack/plugins/maps/public/selectors/ui_selectors.ts index fdf2a8ea0e4f37..32d4beeb381d7f 100644 --- a/x-pack/legacy/plugins/maps/public/selectors/ui_selectors.ts +++ b/x-pack/plugins/maps/public/selectors/ui_selectors.ts @@ -4,10 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MapStoreState } from '../../../../../plugins/maps/public/reducers/store'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { FLYOUT_STATE, INDEXING_STAGE } from '../../../../../plugins/maps/public/reducers/ui'; +import { MapStoreState } from '../reducers/store'; + +import { FLYOUT_STATE, INDEXING_STAGE } from '../reducers/ui'; export const getFlyoutDisplay = ({ ui }: MapStoreState): FLYOUT_STATE => ui.flyoutDisplay; export const getIsSetViewOpen = ({ ui }: MapStoreState): boolean => ui.isSetViewOpen; From 0c4d33cf3a1c9a2d8536c88aaf9e7a8acb69e4de Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Tue, 21 Apr 2020 14:26:17 -0500 Subject: [PATCH 50/54] Register uiSettings on New Platform (#64015) (#64094) This now requires us to define a schema for each setting, which is a little redundant given that we also have to type the useUiSetting calls; this might be an issue between kibana-react and new UiSettings changes. --- x-pack/legacy/plugins/siem/index.ts | 113 +---------------- x-pack/plugins/siem/server/plugin.ts | 3 + x-pack/plugins/siem/server/ui_settings.ts | 141 ++++++++++++++++++++++ 3 files changed, 145 insertions(+), 112 deletions(-) create mode 100644 x-pack/plugins/siem/server/ui_settings.ts diff --git a/x-pack/legacy/plugins/siem/index.ts b/x-pack/legacy/plugins/siem/index.ts index 6e03583dda69fa..5ffaea1ee73dfb 100644 --- a/x-pack/legacy/plugins/siem/index.ts +++ b/x-pack/legacy/plugins/siem/index.ts @@ -11,24 +11,7 @@ import { Root } from 'joi'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { savedObjectMappings } from '../../../plugins/siem/server/saved_objects'; -import { - APP_ID, - APP_NAME, - DEFAULT_INDEX_KEY, - DEFAULT_ANOMALY_SCORE, - DEFAULT_SIEM_TIME_RANGE, - DEFAULT_SIEM_REFRESH_INTERVAL, - DEFAULT_INTERVAL_PAUSE, - DEFAULT_INTERVAL_VALUE, - DEFAULT_FROM, - DEFAULT_TO, - ENABLE_NEWS_FEED_SETTING, - NEWS_FEED_URL_SETTING, - NEWS_FEED_URL_SETTING_DEFAULT, - IP_REPUTATION_LINKS_SETTING, - IP_REPUTATION_LINKS_SETTING_DEFAULT, - DEFAULT_INDEX_PATTERN, -} from '../../../plugins/siem/common/constants'; +import { APP_ID, APP_NAME } from '../../../plugins/siem/common/constants'; import { DEFAULT_APP_CATEGORIES } from '../../../../src/core/utils'; // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -63,100 +46,6 @@ export const siem = (kibana: any) => { category: DEFAULT_APP_CATEGORIES.security, }, ], - uiSettingDefaults: { - [DEFAULT_SIEM_REFRESH_INTERVAL]: { - type: 'json', - name: i18n.translate('xpack.siem.uiSettings.defaultRefreshIntervalLabel', { - defaultMessage: 'Time filter refresh interval', - }), - value: `{ - "pause": ${DEFAULT_INTERVAL_PAUSE}, - "value": ${DEFAULT_INTERVAL_VALUE} -}`, - description: i18n.translate('xpack.siem.uiSettings.defaultRefreshIntervalDescription', { - defaultMessage: - '

Default refresh interval for the SIEM time filter, in milliseconds.

', - }), - category: ['siem'], - requiresPageReload: true, - }, - [DEFAULT_SIEM_TIME_RANGE]: { - type: 'json', - name: i18n.translate('xpack.siem.uiSettings.defaultTimeRangeLabel', { - defaultMessage: 'Time filter period', - }), - value: `{ - "from": "${DEFAULT_FROM}", - "to": "${DEFAULT_TO}" -}`, - description: i18n.translate('xpack.siem.uiSettings.defaultTimeRangeDescription', { - defaultMessage: '

Default period of time in the SIEM time filter.

', - }), - category: ['siem'], - requiresPageReload: true, - }, - [DEFAULT_INDEX_KEY]: { - name: i18n.translate('xpack.siem.uiSettings.defaultIndexLabel', { - defaultMessage: 'Elasticsearch indices', - }), - value: DEFAULT_INDEX_PATTERN, - description: i18n.translate('xpack.siem.uiSettings.defaultIndexDescription', { - defaultMessage: - '

Comma-delimited list of Elasticsearch indices from which the SIEM app collects events.

', - }), - category: ['siem'], - requiresPageReload: true, - }, - [DEFAULT_ANOMALY_SCORE]: { - name: i18n.translate('xpack.siem.uiSettings.defaultAnomalyScoreLabel', { - defaultMessage: 'Anomaly threshold', - }), - value: 50, - type: 'number', - description: i18n.translate('xpack.siem.uiSettings.defaultAnomalyScoreDescription', { - defaultMessage: - '

Value above which Machine Learning job anomalies are displayed in the SIEM app.

Valid values: 0 to 100.

', - }), - category: ['siem'], - requiresPageReload: true, - }, - [ENABLE_NEWS_FEED_SETTING]: { - name: i18n.translate('xpack.siem.uiSettings.enableNewsFeedLabel', { - defaultMessage: 'News feed', - }), - value: true, - description: i18n.translate('xpack.siem.uiSettings.enableNewsFeedDescription', { - defaultMessage: '

Enables the News feed

', - }), - type: 'boolean', - category: ['siem'], - requiresPageReload: true, - }, - [NEWS_FEED_URL_SETTING]: { - name: i18n.translate('xpack.siem.uiSettings.newsFeedUrl', { - defaultMessage: 'News feed URL', - }), - value: NEWS_FEED_URL_SETTING_DEFAULT, - description: i18n.translate('xpack.siem.uiSettings.newsFeedUrlDescription', { - defaultMessage: '

News feed content will be retrieved from this URL

', - }), - category: ['siem'], - requiresPageReload: true, - }, - [IP_REPUTATION_LINKS_SETTING]: { - name: i18n.translate('xpack.siem.uiSettings.ipReputationLinks', { - defaultMessage: 'IP Reputation Links', - }), - value: IP_REPUTATION_LINKS_SETTING_DEFAULT, - type: 'json', - description: i18n.translate('xpack.siem.uiSettings.ipReputationLinksDescription', { - defaultMessage: - 'Array of URL templates to build the list of reputation URLs to be displayed on the IP Details page.', - }), - category: ['siem'], - requiresPageReload: true, - }, - }, mappings: savedObjectMappings, }, config(Joi: Root) { diff --git a/x-pack/plugins/siem/server/plugin.ts b/x-pack/plugins/siem/server/plugin.ts index b9ec1c2e92438b..29a6999025e1fc 100644 --- a/x-pack/plugins/siem/server/plugin.ts +++ b/x-pack/plugins/siem/server/plugin.ts @@ -42,6 +42,7 @@ import { } from './saved_objects'; import { SiemClientFactory } from './client'; import { createConfig$, ConfigType } from './config'; +import { initUiSettings } from './ui_settings'; export { CoreSetup, CoreStart }; @@ -86,6 +87,8 @@ export class Plugin { ); } + initUiSettings(core.uiSettings); + const router = core.http.createRouter(); core.http.registerRouteHandlerContext(this.name, (context, request, response) => ({ getSiemClient: () => this.siemClientFactory.create(request), diff --git a/x-pack/plugins/siem/server/ui_settings.ts b/x-pack/plugins/siem/server/ui_settings.ts new file mode 100644 index 00000000000000..26b7fd72571afe --- /dev/null +++ b/x-pack/plugins/siem/server/ui_settings.ts @@ -0,0 +1,141 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; +import { schema } from '@kbn/config-schema'; + +import { CoreSetup } from '../../../../src/core/server'; +import { + DEFAULT_INDEX_KEY, + DEFAULT_INDEX_PATTERN, + DEFAULT_ANOMALY_SCORE, + DEFAULT_SIEM_TIME_RANGE, + DEFAULT_SIEM_REFRESH_INTERVAL, + DEFAULT_INTERVAL_PAUSE, + DEFAULT_INTERVAL_VALUE, + DEFAULT_FROM, + DEFAULT_TO, + ENABLE_NEWS_FEED_SETTING, + NEWS_FEED_URL_SETTING, + NEWS_FEED_URL_SETTING_DEFAULT, + IP_REPUTATION_LINKS_SETTING, + IP_REPUTATION_LINKS_SETTING_DEFAULT, +} from '../common/constants'; + +export const initUiSettings = (uiSettings: CoreSetup['uiSettings']) => { + uiSettings.register({ + [DEFAULT_SIEM_REFRESH_INTERVAL]: { + type: 'json', + name: i18n.translate('xpack.siem.uiSettings.defaultRefreshIntervalLabel', { + defaultMessage: 'Time filter refresh interval', + }), + value: `{ + "pause": ${DEFAULT_INTERVAL_PAUSE}, + "value": ${DEFAULT_INTERVAL_VALUE} +}`, + description: i18n.translate('xpack.siem.uiSettings.defaultRefreshIntervalDescription', { + defaultMessage: + '

Default refresh interval for the SIEM time filter, in milliseconds.

', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.object({ + value: schema.number(), + pause: schema.boolean(), + }), + }, + [DEFAULT_SIEM_TIME_RANGE]: { + type: 'json', + name: i18n.translate('xpack.siem.uiSettings.defaultTimeRangeLabel', { + defaultMessage: 'Time filter period', + }), + value: `{ + "from": "${DEFAULT_FROM}", + "to": "${DEFAULT_TO}" +}`, + description: i18n.translate('xpack.siem.uiSettings.defaultTimeRangeDescription', { + defaultMessage: '

Default period of time in the SIEM time filter.

', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.object({ + from: schema.string(), + to: schema.string(), + }), + }, + [DEFAULT_INDEX_KEY]: { + name: i18n.translate('xpack.siem.uiSettings.defaultIndexLabel', { + defaultMessage: 'Elasticsearch indices', + }), + value: DEFAULT_INDEX_PATTERN, + description: i18n.translate('xpack.siem.uiSettings.defaultIndexDescription', { + defaultMessage: + '

Comma-delimited list of Elasticsearch indices from which the SIEM app collects events.

', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.arrayOf(schema.string()), + }, + [DEFAULT_ANOMALY_SCORE]: { + name: i18n.translate('xpack.siem.uiSettings.defaultAnomalyScoreLabel', { + defaultMessage: 'Anomaly threshold', + }), + value: 50, + type: 'number', + description: i18n.translate('xpack.siem.uiSettings.defaultAnomalyScoreDescription', { + defaultMessage: + '

Value above which Machine Learning job anomalies are displayed in the SIEM app.

Valid values: 0 to 100.

', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.number(), + }, + [ENABLE_NEWS_FEED_SETTING]: { + name: i18n.translate('xpack.siem.uiSettings.enableNewsFeedLabel', { + defaultMessage: 'News feed', + }), + value: true, + description: i18n.translate('xpack.siem.uiSettings.enableNewsFeedDescription', { + defaultMessage: '

Enables the News feed

', + }), + type: 'boolean', + category: ['siem'], + requiresPageReload: true, + schema: schema.boolean(), + }, + [NEWS_FEED_URL_SETTING]: { + name: i18n.translate('xpack.siem.uiSettings.newsFeedUrl', { + defaultMessage: 'News feed URL', + }), + value: NEWS_FEED_URL_SETTING_DEFAULT, + description: i18n.translate('xpack.siem.uiSettings.newsFeedUrlDescription', { + defaultMessage: '

News feed content will be retrieved from this URL

', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.string(), + }, + [IP_REPUTATION_LINKS_SETTING]: { + name: i18n.translate('xpack.siem.uiSettings.ipReputationLinks', { + defaultMessage: 'IP Reputation Links', + }), + value: IP_REPUTATION_LINKS_SETTING_DEFAULT, + type: 'json', + description: i18n.translate('xpack.siem.uiSettings.ipReputationLinksDescription', { + defaultMessage: + 'Array of URL templates to build the list of reputation URLs to be displayed on the IP Details page.', + }), + category: ['siem'], + requiresPageReload: true, + schema: schema.arrayOf( + schema.object({ + name: schema.string(), + url_template: schema.string(), + }) + ), + }, + }); +}; From 2e97a9b237741d82d311c3bf5c241ba73ebf9dbe Mon Sep 17 00:00:00 2001 From: Tim Sullivan Date: Tue, 21 Apr 2020 12:49:12 -0700 Subject: [PATCH 51/54] [Reporting] Integration polling config with client code (#63754) (#64093) * source new platform for reporting ui config * fix test types * fix type check Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- x-pack/plugins/reporting/common/types.d.ts | 7 ++ x-pack/plugins/reporting/constants.ts | 7 -- x-pack/plugins/reporting/index.d.ts | 12 ---- .../public/components/report_listing.test.tsx | 13 ++++ .../public/components/report_listing.tsx | 12 ++-- .../reporting/public/lib/stream_handler.ts | 19 ++---- x-pack/plugins/reporting/public/plugin.tsx | 67 ++++++++++--------- .../plugins/reporting/server/config/index.ts | 1 + 8 files changed, 67 insertions(+), 71 deletions(-) create mode 100644 x-pack/plugins/reporting/common/types.d.ts diff --git a/x-pack/plugins/reporting/common/types.d.ts b/x-pack/plugins/reporting/common/types.d.ts new file mode 100644 index 00000000000000..34f0bc9ac8a366 --- /dev/null +++ b/x-pack/plugins/reporting/common/types.d.ts @@ -0,0 +1,7 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export { ConfigType } from '../server/config'; diff --git a/x-pack/plugins/reporting/constants.ts b/x-pack/plugins/reporting/constants.ts index 5756d29face12a..8079c5b1d98875 100644 --- a/x-pack/plugins/reporting/constants.ts +++ b/x-pack/plugins/reporting/constants.ts @@ -7,13 +7,6 @@ export const JOB_COMPLETION_NOTIFICATIONS_SESSION_KEY = 'xpack.reporting.jobCompletionNotifications'; -export const JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG = { - jobCompletionNotifier: { - interval: 10000, - intervalErrorMultiplier: 5, - }, -}; - // Routes export const API_BASE_URL = '/api/reporting'; export const API_LIST_URL = `${API_BASE_URL}/jobs`; diff --git a/x-pack/plugins/reporting/index.d.ts b/x-pack/plugins/reporting/index.d.ts index 26d661e29bd946..77faf837e65058 100644 --- a/x-pack/plugins/reporting/index.d.ts +++ b/x-pack/plugins/reporting/index.d.ts @@ -4,15 +4,6 @@ * you may not use this file except in compliance with the Elastic License. */ -import { - CoreSetup, - CoreStart, - HttpSetup, - Plugin, - PluginInitializerContext, - NotificationsStart, -} from '../../../src/core/public'; - export type JobId = string; export type JobStatus = | 'completed' @@ -21,9 +12,6 @@ export type JobStatus = | 'processing' | 'failed'; -export type HttpService = HttpSetup; -export type NotificationsService = NotificationsStart; - export interface SourceJob { _id: JobId; _source: { diff --git a/x-pack/plugins/reporting/public/components/report_listing.test.tsx b/x-pack/plugins/reporting/public/components/report_listing.test.tsx index 380a3b3295b9f1..787279e6caf9b1 100644 --- a/x-pack/plugins/reporting/public/components/report_listing.test.tsx +++ b/x-pack/plugins/reporting/public/components/report_listing.test.tsx @@ -47,12 +47,24 @@ const toasts = { addDanger: jest.fn(), } as any; +const mockPollConfig = { + jobCompletionNotifier: { + interval: 5000, + intervalErrorMultiplier: 3, + }, + jobsRefresh: { + interval: 5000, + intervalErrorMultiplier: 3, + }, +}; + describe('ReportListing', () => { it('Report job listing with some items', () => { const wrapper = mountWithIntl( @@ -74,6 +86,7 @@ describe('ReportListing', () => { } + pollConfig={mockPollConfig} redirect={jest.fn()} toasts={toasts} /> diff --git a/x-pack/plugins/reporting/public/components/report_listing.tsx b/x-pack/plugins/reporting/public/components/report_listing.tsx index d8ed050fec6c63..f85c479c28e3a7 100644 --- a/x-pack/plugins/reporting/public/components/report_listing.tsx +++ b/x-pack/plugins/reporting/public/components/report_listing.tsx @@ -16,14 +16,15 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage, InjectedIntl, injectI18n } from '@kbn/i18n/react'; import { get } from 'lodash'; import moment from 'moment'; -import { Component, Fragment, default as React } from 'react'; +import { Component, default as React, Fragment } from 'react'; import { Subscription } from 'rxjs'; import { ApplicationStart, ToastsSetup } from 'src/core/public'; import { ILicense, LicensingPluginSetup } from '../../../licensing/public'; import { Poller } from '../../common/poller'; -import { JobStatuses, JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG } from '../../constants'; +import { JobStatuses } from '../../constants'; import { checkLicense } from '../lib/license_check'; import { JobQueueEntry, ReportingAPIClient } from '../lib/reporting_api_client'; +import { ClientConfigType } from '../plugin'; import { ReportDeleteButton, ReportDownloadButton, @@ -53,6 +54,7 @@ export interface Props { intl: InjectedIntl; apiClient: ReportingAPIClient; license$: LicensingPluginSetup['license$']; + pollConfig: ClientConfigType['poll']; redirect: ApplicationStart['navigateToApp']; toasts: ToastsSetup; } @@ -167,12 +169,10 @@ class ReportListingUi extends Component { functionToPoll: () => { return this.fetchJobs(); }, - pollFrequencyInMillis: - JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG.jobCompletionNotifier.interval, + pollFrequencyInMillis: this.props.pollConfig.jobsRefresh.interval, trailing: false, continuePollingOnError: true, - pollFrequencyErrorMultiplier: - JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG.jobCompletionNotifier.intervalErrorMultiplier, + pollFrequencyErrorMultiplier: this.props.pollConfig.jobsRefresh.intervalErrorMultiplier, }); this.poller.start(); this.licenseSubscription = this.props.license$.subscribe(this.licenseHandler); diff --git a/x-pack/plugins/reporting/public/lib/stream_handler.ts b/x-pack/plugins/reporting/public/lib/stream_handler.ts index 3c121f1712685b..eed6d5dd141e70 100644 --- a/x-pack/plugins/reporting/public/lib/stream_handler.ts +++ b/x-pack/plugins/reporting/public/lib/stream_handler.ts @@ -4,30 +4,23 @@ * you may not use this file except in compliance with the Elastic License. */ +import { i18n } from '@kbn/i18n'; import * as Rx from 'rxjs'; import { catchError, map } from 'rxjs/operators'; -import { i18n } from '@kbn/i18n'; +import { NotificationsSetup } from 'src/core/public'; import { JOB_COMPLETION_NOTIFICATIONS_SESSION_KEY, JOB_STATUS_COMPLETED, JOB_STATUS_FAILED, JOB_STATUS_WARNINGS, } from '../../constants'; - -import { - JobId, - JobSummary, - JobStatusBuckets, - NotificationsService, - SourceJob, -} from '../../index.d'; - +import { JobId, JobStatusBuckets, JobSummary, SourceJob } from '../../index.d'; import { - getSuccessToast, getFailureToast, + getGeneralErrorToast, + getSuccessToast, getWarningFormulasToast, getWarningMaxSizeToast, - getGeneralErrorToast, } from '../components'; import { ReportingAPIClient } from './reporting_api_client'; @@ -47,7 +40,7 @@ function summarizeJob(src: SourceJob): JobSummary { } export class ReportingNotifierStreamHandler { - constructor(private notifications: NotificationsService, private apiClient: ReportingAPIClient) {} + constructor(private notifications: NotificationsSetup, private apiClient: ReportingAPIClient) {} /* * Use Kibana Toast API to show our messages diff --git a/x-pack/plugins/reporting/public/plugin.tsx b/x-pack/plugins/reporting/public/plugin.tsx index 08ba10ff692078..c40e7ad373eafa 100644 --- a/x-pack/plugins/reporting/public/plugin.tsx +++ b/x-pack/plugins/reporting/public/plugin.tsx @@ -4,44 +4,42 @@ * you may not use this file except in compliance with the Elastic License. */ -import * as Rx from 'rxjs'; +import { i18n } from '@kbn/i18n'; +import { I18nProvider } from '@kbn/i18n/react'; import React from 'react'; import ReactDOM from 'react-dom'; +import * as Rx from 'rxjs'; import { catchError, filter, map, mergeMap, takeUntil } from 'rxjs/operators'; -import { i18n } from '@kbn/i18n'; +import { + CoreSetup, + CoreStart, + NotificationsSetup, + Plugin, + PluginInitializerContext, +} from 'src/core/public'; import { ManagementSetup } from 'src/plugins/management/public'; -import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from 'src/core/public'; -import { I18nProvider } from '@kbn/i18n/react'; import { UiActionsSetup } from 'src/plugins/ui_actions/public'; - -import { ReportListing } from './components/report_listing'; -import { getGeneralErrorToast } from './components'; - -import { ReportingNotifierStreamHandler as StreamHandler } from './lib/stream_handler'; -import { ReportingAPIClient } from './lib/reporting_api_client'; -import { GetCsvReportPanelAction } from './panel_actions/get_csv_panel_action'; -import { csvReportingProvider } from './share_context_menu/register_csv_reporting'; -import { reportingPDFPNGProvider } from './share_context_menu/register_pdf_png_reporting'; - -import { LicensingPluginSetup } from '../../licensing/public'; +import { JobId, JobStatusBuckets } from '../'; import { CONTEXT_MENU_TRIGGER } from '../../../../src/plugins/embeddable/public'; -import { SharePluginSetup } from '../../../../src/plugins/share/public'; - import { FeatureCatalogueCategory, HomePublicPluginSetup, } from '../../../../src/plugins/home/public'; +import { SharePluginSetup } from '../../../../src/plugins/share/public'; +import { LicensingPluginSetup } from '../../licensing/public'; +import { ConfigType } from '../common/types'; +import { JOB_COMPLETION_NOTIFICATIONS_SESSION_KEY } from '../constants'; +import { getGeneralErrorToast } from './components'; +import { ReportListing } from './components/report_listing'; +import { ReportingAPIClient } from './lib/reporting_api_client'; +import { ReportingNotifierStreamHandler as StreamHandler } from './lib/stream_handler'; +import { GetCsvReportPanelAction } from './panel_actions/get_csv_panel_action'; +import { csvReportingProvider } from './share_context_menu/register_csv_reporting'; +import { reportingPDFPNGProvider } from './share_context_menu/register_pdf_png_reporting'; -import { - JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG, - JOB_COMPLETION_NOTIFICATIONS_SESSION_KEY, -} from '../constants'; - -import { JobId, JobStatusBuckets, NotificationsService } from '..'; - -const { - jobCompletionNotifier: { interval: JOBS_REFRESH_INTERVAL }, -} = JOB_COMPLETION_NOTIFICATIONS_POLLER_CONFIG; +export interface ClientConfigType { + poll: ConfigType['poll']; +} function getStored(): JobId[] { const sessionValue = sessionStorage.getItem(JOB_COMPLETION_NOTIFICATIONS_SESSION_KEY); @@ -49,7 +47,7 @@ function getStored(): JobId[] { } function handleError( - notifications: NotificationsService, + notifications: NotificationsSetup, err: Error ): Rx.Observable { notifications.toasts.addDanger( @@ -64,18 +62,19 @@ function handleError( return Rx.of({ completed: [], failed: [] }); } -export class ReportingPublicPlugin implements Plugin { +export class ReportingPublicPlugin implements Plugin { + private config: ClientConfigType; private readonly stop$ = new Rx.ReplaySubject(1); - private readonly title = i18n.translate('xpack.reporting.management.reportingTitle', { defaultMessage: 'Reporting', }); - private readonly breadcrumbText = i18n.translate('xpack.reporting.breadcrumb', { defaultMessage: 'Reporting', }); - constructor(initializerContext: PluginInitializerContext) {} + constructor(initializerContext: PluginInitializerContext) { + this.config = initializerContext.config.get(); + } public setup( core: CoreSetup, @@ -130,6 +129,7 @@ export class ReportingPublicPlugin implements Plugin { @@ -163,8 +163,9 @@ export class ReportingPublicPlugin implements Plugin { const { http, notifications } = core; const apiClient = new ReportingAPIClient(http); const streamHandler = new StreamHandler(notifications, apiClient); + const { interval } = this.config.poll.jobsRefresh; - Rx.timer(0, JOBS_REFRESH_INTERVAL) + Rx.timer(0, interval) .pipe( takeUntil(this.stop$), // stop the interval when stop method is called map(() => getStored()), // read all pending job IDs from session storage diff --git a/x-pack/plugins/reporting/server/config/index.ts b/x-pack/plugins/reporting/server/config/index.ts index f0a0a093aa8c08..a0d7618322c653 100644 --- a/x-pack/plugins/reporting/server/config/index.ts +++ b/x-pack/plugins/reporting/server/config/index.ts @@ -10,6 +10,7 @@ import { ConfigSchema, ConfigType } from './schema'; export { createConfig$ } from './create_config'; export const config: PluginConfigDescriptor = { + exposeToBrowser: { poll: true }, schema: ConfigSchema, deprecations: ({ unused }) => [ unused('capture.browser.chromium.maxScreenshotDimension'), From d860bb829ba89a69eb3563f86d6bf9d354331271 Mon Sep 17 00:00:00 2001 From: Jen Huang Date: Tue, 21 Apr 2020 13:28:14 -0700 Subject: [PATCH 52/54] Include datasource UUID in agent config yaml, adjust overflow height of yaml view (#64027) (#64084) --- .../datasource_to_agent_datasource.test.ts | 36 +++++++++++++++---- .../datasource_to_agent_datasource.ts | 3 +- .../common/types/models/agent_config.ts | 6 ++-- .../details_page/components/yaml/index.tsx | 4 ++- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.test.ts b/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.test.ts index 3496ea782ee997..17509571f19853 100644 --- a/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.test.ts +++ b/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.test.ts @@ -3,11 +3,11 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { NewDatasource, DatasourceInput } from '../types'; +import { Datasource, NewDatasource, DatasourceInput } from '../types'; import { storedDatasourceToAgentDatasource } from './datasource_to_agent_datasource'; describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { - const mockDatasource: NewDatasource = { + const mockNewDatasource: NewDatasource = { name: 'mock-datasource', description: '', config_id: '', @@ -17,6 +17,12 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { inputs: [], }; + const mockDatasource: Datasource = { + ...mockNewDatasource, + id: 'some-uuid', + revision: 1, + }; + const mockInput: DatasourceInput = { type: 'test-logs', enabled: true, @@ -70,7 +76,8 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { it('returns agent datasource config for datasource with no inputs', () => { expect(storedDatasourceToAgentDatasource(mockDatasource)).toEqual({ - id: 'mock-datasource', + id: 'some-uuid', + name: 'mock-datasource', namespace: 'default', enabled: true, use_output: 'default', @@ -87,7 +94,8 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { }, }) ).toEqual({ - id: 'mock-datasource', + id: 'some-uuid', + name: 'mock-datasource', namespace: 'default', enabled: true, use_output: 'default', @@ -99,9 +107,21 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { }); }); + it('uses name for id when id is not provided in case of new datasource', () => { + expect(storedDatasourceToAgentDatasource(mockNewDatasource)).toEqual({ + id: 'mock-datasource', + name: 'mock-datasource', + namespace: 'default', + enabled: true, + use_output: 'default', + inputs: [], + }); + }); + it('returns agent datasource config with flattened input and package stream', () => { expect(storedDatasourceToAgentDatasource({ ...mockDatasource, inputs: [mockInput] })).toEqual({ - id: 'mock-datasource', + id: 'some-uuid', + name: 'mock-datasource', namespace: 'default', enabled: true, use_output: 'default', @@ -140,7 +160,8 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { ], }) ).toEqual({ - id: 'mock-datasource', + id: 'some-uuid', + name: 'mock-datasource', namespace: 'default', enabled: true, use_output: 'default', @@ -169,7 +190,8 @@ describe('Ingest Manager - storedDatasourceToAgentDatasource', () => { inputs: [{ ...mockInput, enabled: false }], }) ).toEqual({ - id: 'mock-datasource', + id: 'some-uuid', + name: 'mock-datasource', namespace: 'default', enabled: true, use_output: 'default', diff --git a/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.ts b/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.ts index b509878b7f9452..9e09d3fa3153a0 100644 --- a/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.ts +++ b/x-pack/plugins/ingest_manager/common/services/datasource_to_agent_datasource.ts @@ -12,7 +12,8 @@ export const storedDatasourceToAgentDatasource = ( const { name, namespace, enabled, package: pkg, inputs } = datasource; const fullDatasource: FullAgentConfigDatasource = { - id: name, + id: 'id' in datasource ? datasource.id : name, + name, namespace, enabled, use_output: DEFAULT_OUTPUT.name, // TODO: hardcoded to default output for now diff --git a/x-pack/plugins/ingest_manager/common/types/models/agent_config.ts b/x-pack/plugins/ingest_manager/common/types/models/agent_config.ts index 002c3784446a8e..2372caee512af6 100644 --- a/x-pack/plugins/ingest_manager/common/types/models/agent_config.ts +++ b/x-pack/plugins/ingest_manager/common/types/models/agent_config.ts @@ -34,8 +34,10 @@ export interface AgentConfig extends NewAgentConfig, SavedObjectAttributes { revision: number; } -export type FullAgentConfigDatasource = Pick & { - id: string; +export type FullAgentConfigDatasource = Pick< + Datasource, + 'id' | 'name' | 'namespace' | 'enabled' +> & { package?: Pick; use_output: string; inputs: Array< diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/details_page/components/yaml/index.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/details_page/components/yaml/index.tsx index 56b109a9bc062f..ad27c590d5eaae 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/details_page/components/yaml/index.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/agent_config/details_page/components/yaml/index.tsx @@ -27,7 +27,9 @@ import { Loading } from '../../../../../components'; const CONFIG_KEYS_ORDER = [ 'id', + 'name', 'revision', + 'type', 'outputs', 'datasources', 'enabled', @@ -52,7 +54,7 @@ export const ConfigYamlView = memo<{ config: AgentConfig }>(({ config }) => { return ( - + {dump(fullConfigRequest.data.item, { sortKeys: (keyA: string, keyB: string) => { const indexA = CONFIG_KEYS_ORDER.indexOf(keyA); From b0d7c8c3f28d4bbeaa5024ade8b90b7af43a73fc Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Tue, 21 Apr 2020 13:49:56 -0700 Subject: [PATCH 53/54] [Metrics UI] Reorganize file layout for Metrics UI (#60049) (#64007) * [Metrics UI] Reorganize pages specific files under pages - Restructuring pages folder - Renaming metrics_ui to metrics - Fixing paths in jest mocks - Fixing AlertsFlyout path - Fixing bad file paths from the merge * Fixing typo compontents to components Co-authored-by: Elastic Machine Co-authored-by: Elastic Machine --- .../inventory_models/aws_ec2/layout.tsx | 12 +- .../aws_ec2/toolbar_items.tsx | 6 +- .../inventory_models/aws_rds/layout.tsx | 10 +- .../aws_rds/toolbar_items.tsx | 6 +- .../common/inventory_models/aws_s3/layout.tsx | 10 +- .../inventory_models/aws_s3/toolbar_items.tsx | 6 +- .../inventory_models/aws_sqs/layout.tsx | 10 +- .../aws_sqs/toolbar_items.tsx | 6 +- .../inventory_models/container/layout.tsx | 14 +- .../container/toolbar_items.tsx | 4 +- .../common/inventory_models/host/layout.tsx | 14 +- .../inventory_models/host/toolbar_items.tsx | 4 +- .../infra/common/inventory_models/layouts.ts | 2 +- .../common/inventory_models/pod/layout.tsx | 14 +- .../inventory_models/pod/toolbar_items.tsx | 4 +- .../cloud_toolbar_items.tsx | 6 +- .../metrics_and_groupby_toolbar_items.tsx | 8 +- .../inventory_models/shared/layouts/aws.tsx | 10 +- .../inventory_models/shared/layouts/nginx.tsx | 8 +- .../infra/common/inventory_models/toolbars.ts | 2 +- .../common/saved_objects/inventory_view.ts | 2 +- .../saved_objects/metrics_explorer_view.ts | 2 +- .../alerting/metrics/alert_flyout.tsx | 2 +- .../alerting/metrics/expression.tsx | 6 +- .../components/waffle/lib/type_guards.ts | 17 -- ...ith_metrics_explorer_options_url_state.tsx | 2 +- .../infra/public/containers/with_options.tsx | 64 ----- .../public/pages/infrastructure/index.tsx | 135 ---------- .../redirect_to_host_detail_via_ip.tsx | 2 +- .../pages/link_to/redirect_to_node_detail.tsx | 2 +- .../infra/public/pages/metrics/index.tsx | 245 +++++++++--------- .../inventory_view/components}/layout.tsx | 18 +- .../components/nodes_overview.tsx} | 31 ++- .../inventory_view/components}/search_bar.tsx | 6 +- .../inventory_view/components/table_view.tsx} | 14 +- .../components}/toolbars/save_views.tsx | 6 +- .../components}/toolbars/toolbar.tsx | 14 +- .../components}/toolbars/toolbar_wrapper.tsx | 10 +- .../components/waffle/conditional_tooltip.tsx | 0 .../components/waffle/custom_field_panel.tsx | 2 +- .../components/waffle/gradient_legend.tsx | 4 +- .../components/waffle/group_name.tsx | 4 +- .../components/waffle/group_of_groups.tsx | 6 +- .../components/waffle/group_of_nodes.tsx | 6 +- .../components/waffle/legend.tsx | 8 +- .../components/waffle/legend_controls.tsx | 4 +- .../inventory_view}/components/waffle/map.tsx | 19 +- .../metric_control/custom_metric_form.tsx | 7 +- .../metric_control/get_custom_metric_label.ts | 2 +- .../waffle/metric_control/index.tsx | 4 +- .../metric_control/metrics_context_menu.tsx | 4 +- .../metric_control/metrics_edit_mode.tsx | 7 +- .../waffle/metric_control/mode_switcher.tsx | 7 +- .../components/waffle/metric_control/types.ts | 0 .../components/waffle/node.tsx | 12 +- .../components/waffle/node_context_menu.tsx | 18 +- .../components/waffle/steps_legend.tsx | 4 +- .../components/waffle/view_switcher.tsx | 0 .../waffle/waffle_accounts_controls.tsx | 4 +- .../waffle/waffle_group_by_controls.tsx | 8 +- .../waffle/waffle_inventory_switcher.tsx | 6 +- .../waffle/waffle_region_controls.tsx | 2 +- .../waffle/waffle_time_controls.tsx | 2 +- .../hooks}/use_inventory_meta.ts | 8 +- .../inventory_view/hooks}/use_snaphot.ts | 11 +- .../hooks/use_waffle_filters.ts | 8 +- .../hooks/use_waffle_options.ts | 6 +- .../inventory_view/hooks/use_waffle_time.ts | 2 +- .../hooks/use_waffle_view_state.ts | 0 .../inventory_view}/index.tsx | 2 +- .../lib/apply_wafflemap_layout.ts | 7 +- .../inventory_view}/lib/color_from_value.ts | 2 +- .../lib/create_uptime_link.test.ts | 4 +- .../inventory_view}/lib/create_uptime_link.ts | 6 +- .../lib/field_to_display_name.ts | 0 .../inventory_view/lib}/nodes_to_wafflemap.ts | 4 +- .../inventory_view}/lib/size_of_squares.ts | 0 .../inventory_view/lib}/type_guards.ts | 17 +- .../inventory_view}/toolbar.tsx | 6 +- .../components/chart_section_vis.tsx | 6 +- .../components/error_message.tsx | 0 .../components/gauges_section_vis.tsx | 6 +- .../{ => metric_detail}/components/helpers.ts | 8 +- .../components/invalid_node.tsx | 6 +- .../components/layout_content.tsx | 2 +- .../components/metadata_details.tsx | 4 +- .../components/node_details_page.tsx | 14 +- .../components/page_body.tsx | 10 +- .../components/page_error.tsx | 4 +- .../components/section.tsx | 0 .../components/series_chart.tsx | 4 +- .../components/side_nav.tsx | 2 +- .../components/sub_section.tsx | 2 +- .../components/time_controls.test.tsx | 2 +- .../components/time_controls.tsx | 6 +- .../containers/metadata_context.ts | 2 +- .../hooks/metrics_time.test.tsx | 0 .../metric_detail/hooks}/use_metadata.ts | 12 +- .../hooks/use_metrics_time.ts | 4 +- .../metric_detail/hooks}/use_node_details.ts | 10 +- .../pages/metrics/metric_detail/index.tsx | 140 ++++++++++ .../lib/get_filtered_metrics.ts | 6 +- .../lib/side_nav_context.ts | 0 .../{ => metric_detail}/page_providers.tsx | 2 +- .../metrics/{ => metric_detail}/types.ts | 6 +- .../components}/aggregation.tsx | 6 +- .../metrics_explorer/components}/chart.tsx | 12 +- .../components}/chart_context_menu.test.tsx | 9 +- .../components}/chart_context_menu.tsx | 14 +- .../components}/chart_options.tsx | 2 +- .../metrics_explorer/components}/charts.tsx | 10 +- .../components}/empty_chart.tsx | 0 .../metrics_explorer/components}/group_by.tsx | 2 +- .../components}/helpers/calculate_domain.ts | 4 +- .../helpers/calculate_domian.test.ts | 6 +- .../helpers/create_formatter_for_metric.ts | 6 +- .../create_formatter_for_metrics.test.ts | 2 +- .../helpers/create_metric_label.test.ts | 2 +- .../helpers/create_metric_label.ts | 2 +- .../helpers/create_tsvb_link.test.ts | 11 +- .../components}/helpers/create_tsvb_link.ts | 12 +- .../components}/helpers/get_chart_theme.ts | 0 .../helpers/metric_to_format.test.ts | 4 +- .../components}/helpers/metric_to_format.ts | 4 +- .../components}/kuery_bar.tsx | 6 +- .../metrics_explorer/components}/metrics.tsx | 6 +- .../components}/no_metrics.tsx | 0 .../components}/series_chart.tsx | 6 +- .../metrics_explorer/components}/toolbar.tsx | 16 +- .../hooks}/use_metric_explorer_state.test.tsx | 6 +- .../hooks}/use_metric_explorer_state.ts | 8 +- .../hooks}/use_metrics_explorer_data.test.tsx | 6 +- .../hooks}/use_metrics_explorer_data.ts | 10 +- .../use_metrics_explorer_options.test.tsx | 0 .../hooks}/use_metrics_explorer_options.ts | 4 +- .../metrics_explorer/index.tsx | 6 +- .../{infrastructure => metrics}/settings.tsx | 0 .../infra/public/routers/metrics_router.tsx | 6 +- .../public/utils/fixtures/metrics_explorer.ts | 2 +- 139 files changed, 683 insertions(+), 722 deletions(-) rename x-pack/plugins/infra/common/inventory_models/shared/{compontents => components}/cloud_toolbar_items.tsx (75%) rename x-pack/plugins/infra/common/inventory_models/shared/{compontents => components}/metrics_and_groupby_toolbar_items.tsx (81%) delete mode 100644 x-pack/plugins/infra/public/components/waffle/lib/type_guards.ts delete mode 100644 x-pack/plugins/infra/public/containers/with_options.tsx delete mode 100644 x-pack/plugins/infra/public/pages/infrastructure/index.tsx rename x-pack/plugins/infra/public/{components/inventory => pages/metrics/inventory_view/components}/layout.tsx (78%) rename x-pack/plugins/infra/public/{components/nodes_overview/index.tsx => pages/metrics/inventory_view/components/nodes_overview.tsx} (88%) rename x-pack/plugins/infra/public/pages/{inventory_view/compontents => metrics/inventory_view/components}/search_bar.tsx (86%) rename x-pack/plugins/infra/public/{components/nodes_overview/table.tsx => pages/metrics/inventory_view/components/table_view.tsx} (92%) rename x-pack/plugins/infra/public/{components/inventory => pages/metrics/inventory_view/components}/toolbars/save_views.tsx (68%) rename x-pack/plugins/infra/public/{components/inventory => pages/metrics/inventory_view/components}/toolbars/toolbar.tsx (77%) rename x-pack/plugins/infra/public/{components/inventory => pages/metrics/inventory_view/components}/toolbars/toolbar_wrapper.tsx (95%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/conditional_tooltip.tsx (100%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/custom_field_panel.tsx (97%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/gradient_legend.tsx (96%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/group_name.tsx (96%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/group_of_groups.tsx (90%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/group_of_nodes.tsx (90%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/legend.tsx (88%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/legend_controls.tsx (97%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/map.tsx (84%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/custom_metric_form.tsx (97%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/get_custom_metric_label.ts (91%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/index.tsx (97%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/metrics_context_menu.tsx (94%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/metrics_edit_mode.tsx (92%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/mode_switcher.tsx (95%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/metric_control/types.ts (100%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/node.tsx (93%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/node_context_menu.tsx (91%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/steps_legend.tsx (95%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/view_switcher.tsx (100%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/waffle_accounts_controls.tsx (94%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/waffle_group_by_controls.tsx (95%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/waffle_inventory_switcher.tsx (94%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/waffle_region_controls.tsx (97%) rename x-pack/plugins/infra/public/{ => pages/metrics/inventory_view}/components/waffle/waffle_time_controls.tsx (95%) rename x-pack/plugins/infra/public/{containers/inventory_metadata => pages/metrics/inventory_view/hooks}/use_inventory_meta.ts (79%) rename x-pack/plugins/infra/public/{containers/waffle => pages/metrics/inventory_view/hooks}/use_snaphot.ts (83%) rename x-pack/plugins/infra/public/pages/{ => metrics}/inventory_view/hooks/use_waffle_filters.ts (90%) rename x-pack/plugins/infra/public/pages/{ => metrics}/inventory_view/hooks/use_waffle_options.ts (95%) rename x-pack/plugins/infra/public/pages/{ => metrics}/inventory_view/hooks/use_waffle_time.ts (97%) rename x-pack/plugins/infra/public/pages/{ => metrics}/inventory_view/hooks/use_waffle_view_state.ts (100%) rename x-pack/plugins/infra/public/pages/{infrastructure/snapshot => metrics/inventory_view}/index.tsx (98%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/apply_wafflemap_layout.ts (94%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/color_from_value.ts (98%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/create_uptime_link.test.ts (96%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/create_uptime_link.ts (83%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/field_to_display_name.ts (100%) rename x-pack/plugins/infra/public/{containers/waffle => pages/metrics/inventory_view/lib}/nodes_to_wafflemap.ts (97%) rename x-pack/plugins/infra/public/{components/waffle => pages/metrics/inventory_view}/lib/size_of_squares.ts (100%) rename x-pack/plugins/infra/public/{containers/waffle => pages/metrics/inventory_view/lib}/type_guards.ts (55%) rename x-pack/plugins/infra/public/pages/{infrastructure/snapshot => metrics/inventory_view}/toolbar.tsx (75%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/chart_section_vis.tsx (94%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/error_message.tsx (100%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/gauges_section_vis.tsx (92%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/helpers.ts (91%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/invalid_node.tsx (90%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/layout_content.tsx (84%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/metadata_details.tsx (97%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/node_details_page.tsx (90%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/page_body.tsx (82%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/page_error.tsx (90%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/section.tsx (100%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/series_chart.tsx (93%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/side_nav.tsx (95%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/sub_section.tsx (94%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/time_controls.test.tsx (96%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/components/time_controls.tsx (91%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/containers/metadata_context.ts (84%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/hooks/metrics_time.test.tsx (100%) rename x-pack/plugins/infra/public/{containers/metadata => pages/metrics/metric_detail/hooks}/use_metadata.ts (76%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/hooks/use_metrics_time.ts (96%) rename x-pack/plugins/infra/public/{containers/node_details => pages/metrics/metric_detail/hooks}/use_node_details.ts (75%) create mode 100644 x-pack/plugins/infra/public/pages/metrics/metric_detail/index.tsx rename x-pack/plugins/infra/public/{containers/metadata => pages/metrics/metric_detail}/lib/get_filtered_metrics.ts (78%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/lib/side_nav_context.ts (100%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/page_providers.tsx (91%) rename x-pack/plugins/infra/public/pages/metrics/{ => metric_detail}/types.ts (86%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/aggregation.tsx (89%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/chart.tsx (92%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/chart_context_menu.test.tsx (96%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/chart_context_menu.tsx (91%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/chart_options.tsx (98%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/charts.tsx (92%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/empty_chart.tsx (100%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/group_by.tsx (93%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/calculate_domain.ts (87%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/calculate_domian.test.ts (85%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_formatter_for_metric.ts (76%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_formatter_for_metrics.test.ts (94%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_metric_label.test.ts (88%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_metric_label.ts (80%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_tsvb_link.test.ts (97%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/create_tsvb_link.ts (91%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/get_chart_theme.ts (100%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/metric_to_format.test.ts (90%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/helpers/metric_to_format.ts (82%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/kuery_bar.tsx (88%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/metrics.tsx (91%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/no_metrics.tsx (100%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/series_chart.tsx (93%) rename x-pack/plugins/infra/public/{components/metrics_explorer => pages/metrics/metrics_explorer/components}/toolbar.tsx (88%) rename x-pack/plugins/infra/public/pages/{infrastructure/metrics_explorer => metrics/metrics_explorer/hooks}/use_metric_explorer_state.test.tsx (96%) rename x-pack/plugins/infra/public/pages/{infrastructure/metrics_explorer => metrics/metrics_explorer/hooks}/use_metric_explorer_state.ts (92%) rename x-pack/plugins/infra/public/{containers/metrics_explorer => pages/metrics/metrics_explorer/hooks}/use_metrics_explorer_data.test.tsx (96%) rename x-pack/plugins/infra/public/{containers/metrics_explorer => pages/metrics/metrics_explorer/hooks}/use_metrics_explorer_data.ts (91%) rename x-pack/plugins/infra/public/{containers/metrics_explorer => pages/metrics/metrics_explorer/hooks}/use_metrics_explorer_options.test.tsx (100%) rename x-pack/plugins/infra/public/{containers/metrics_explorer => pages/metrics/metrics_explorer/hooks}/use_metrics_explorer_options.ts (96%) rename x-pack/plugins/infra/public/pages/{infrastructure => metrics}/metrics_explorer/index.tsx (92%) rename x-pack/plugins/infra/public/pages/{infrastructure => metrics}/settings.tsx (100%) diff --git a/x-pack/plugins/infra/common/inventory_models/aws_ec2/layout.tsx b/x-pack/plugins/infra/common/inventory_models/aws_ec2/layout.tsx index 68bfe41fd538e6..9494e4aa396a50 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_ec2/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_ec2/layout.tsx @@ -6,19 +6,19 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetadataDetails } from '../../../public/pages/metrics/components/metadata_details'; +import { MetadataDetails } from '../../../public/pages/metrics/metric_detail/components/metadata_details'; export const Layout = withTheme(({ metrics, theme, onChangeRangeTime }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/aws_ec2/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/aws_ec2/toolbar_items.tsx index 683851fec4d772..b2da7dec3f2e08 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_ec2/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_ec2/toolbar_items.tsx @@ -6,9 +6,9 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; -import { CloudToolbarItems } from '../shared/compontents/cloud_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; +import { CloudToolbarItems } from '../shared/components/cloud_toolbar_items'; import { SnapshotMetricType } from '../types'; export const AwsEC2ToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/aws_rds/layout.tsx b/x-pack/plugins/infra/common/inventory_models/aws_rds/layout.tsx index 220c6c67f4aeaa..08b865f01b06c6 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_rds/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_rds/layout.tsx @@ -6,17 +6,17 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/aws_rds/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/aws_rds/toolbar_items.tsx index 24f05fd91589c8..2a8394b9dd3a41 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_rds/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_rds/toolbar_items.tsx @@ -6,9 +6,9 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; -import { CloudToolbarItems } from '../shared/compontents/cloud_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; +import { CloudToolbarItems } from '../shared/components/cloud_toolbar_items'; import { SnapshotMetricType } from '../types'; export const AwsRDSToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/aws_s3/layout.tsx b/x-pack/plugins/infra/common/inventory_models/aws_s3/layout.tsx index 805236cf470827..e16f8ef6addde6 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_s3/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_s3/layout.tsx @@ -6,17 +6,17 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/aws_s3/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/aws_s3/toolbar_items.tsx index 54c3196ae28335..324bdd05860290 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_s3/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_s3/toolbar_items.tsx @@ -6,9 +6,9 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; -import { CloudToolbarItems } from '../shared/compontents/cloud_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; +import { CloudToolbarItems } from '../shared/components/cloud_toolbar_items'; import { SnapshotMetricType } from '../types'; export const AwsS3ToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/aws_sqs/layout.tsx b/x-pack/plugins/infra/common/inventory_models/aws_sqs/layout.tsx index d581ac751682d5..ff13f2db104de9 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_sqs/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_sqs/layout.tsx @@ -6,17 +6,17 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/aws_sqs/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/aws_sqs/toolbar_items.tsx index 22cb2740a4a7f7..3229c07034772c 100644 --- a/x-pack/plugins/infra/common/inventory_models/aws_sqs/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/aws_sqs/toolbar_items.tsx @@ -6,9 +6,9 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; -import { CloudToolbarItems } from '../shared/compontents/cloud_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; +import { CloudToolbarItems } from '../shared/components/cloud_toolbar_items'; import { SnapshotMetricType } from '../types'; export const AwsSQSToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/container/layout.tsx b/x-pack/plugins/infra/common/inventory_models/container/layout.tsx index 9956b2c9a2ce46..b9366a43e40c6b 100644 --- a/x-pack/plugins/infra/common/inventory_models/container/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/container/layout.tsx @@ -6,21 +6,21 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { GaugesSectionVis } from '../../../public/pages/metrics/components/gauges_section_vis'; +import { GaugesSectionVis } from '../../../public/pages/metrics/metric_detail/components/gauges_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetadataDetails } from '../../../public/pages/metrics/components/metadata_details'; +import { MetadataDetails } from '../../../public/pages/metrics/metric_detail/components/metadata_details'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/container/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/container/toolbar_items.tsx index dbb77cb3b677ee..f6c707726d9ca1 100644 --- a/x-pack/plugins/infra/common/inventory_models/container/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/container/toolbar_items.tsx @@ -6,8 +6,8 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; import { SnapshotMetricType } from '../types'; export const ContainerToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/host/layout.tsx b/x-pack/plugins/infra/common/inventory_models/host/layout.tsx index 6d7d3612542208..e23118c747a9ba 100644 --- a/x-pack/plugins/infra/common/inventory_models/host/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/host/layout.tsx @@ -8,21 +8,21 @@ import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { GaugesSectionVis } from '../../../public/pages/metrics/components/gauges_section_vis'; +import { GaugesSectionVis } from '../../../public/pages/metrics/metric_detail/components/gauges_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; import * as Aws from '../shared/layouts/aws'; import * as Ngnix from '../shared/layouts/nginx'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetadataDetails } from '../../../public/pages/metrics/components/metadata_details'; +import { MetadataDetails } from '../../../public/pages/metrics/metric_detail/components/metadata_details'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/host/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/host/toolbar_items.tsx index fc7696ee53c9d6..136264c0e26f4d 100644 --- a/x-pack/plugins/infra/common/inventory_models/host/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/host/toolbar_items.tsx @@ -6,8 +6,8 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; import { SnapshotMetricType } from '../types'; export const HostToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/layouts.ts b/x-pack/plugins/infra/common/inventory_models/layouts.ts index b59ce010361ecd..df82f154b47b3b 100644 --- a/x-pack/plugins/infra/common/inventory_models/layouts.ts +++ b/x-pack/plugins/infra/common/inventory_models/layouts.ts @@ -23,7 +23,7 @@ import { Layout as AwsRDSLayout } from './aws_rds/layout'; import { Layout as AwsSQSLayout } from './aws_sqs/layout'; import { InventoryItemType } from './types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutProps } from '../../public/pages/metrics/types'; +import { LayoutProps } from '../../public/pages/metrics/metric_detail/types'; interface Layouts { [type: string]: ReactNode; diff --git a/x-pack/plugins/infra/common/inventory_models/pod/layout.tsx b/x-pack/plugins/infra/common/inventory_models/pod/layout.tsx index 8bc2f3ee8b4b31..271e32556ae286 100644 --- a/x-pack/plugins/infra/common/inventory_models/pod/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/pod/layout.tsx @@ -6,22 +6,22 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../public/pages/metrics/components/section'; +import { Section } from '../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { GaugesSectionVis } from '../../../public/pages/metrics/components/gauges_section_vis'; +import { GaugesSectionVis } from '../../../public/pages/metrics/metric_detail/components/gauges_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../observability/public'; import * as Nginx from '../shared/layouts/nginx'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetadataDetails } from '../../../public/pages/metrics/components/metadata_details'; +import { MetadataDetails } from '../../../public/pages/metrics/metric_detail/components/metadata_details'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutContent } from '../../../public/pages/metrics/components/layout_content'; +import { LayoutContent } from '../../../public/pages/metrics/metric_detail/components/layout_content'; export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPropsWithTheme) => ( diff --git a/x-pack/plugins/infra/common/inventory_models/pod/toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/pod/toolbar_items.tsx index d48c27efd88fda..c1cd375ff47bf9 100644 --- a/x-pack/plugins/infra/common/inventory_models/pod/toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/pod/toolbar_items.tsx @@ -6,8 +6,8 @@ import React from 'react'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../public/components/inventory/toolbars/toolbar'; -import { MetricsAndGroupByToolbarItems } from '../shared/compontents/metrics_and_groupby_toolbar_items'; +import { ToolbarProps } from '../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; +import { MetricsAndGroupByToolbarItems } from '../shared/components/metrics_and_groupby_toolbar_items'; import { SnapshotMetricType } from '../types'; export const PodToolbarItems = (props: ToolbarProps) => { diff --git a/x-pack/plugins/infra/common/inventory_models/shared/compontents/cloud_toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/shared/components/cloud_toolbar_items.tsx similarity index 75% rename from x-pack/plugins/infra/common/inventory_models/shared/compontents/cloud_toolbar_items.tsx rename to x-pack/plugins/infra/common/inventory_models/shared/components/cloud_toolbar_items.tsx index 766a8ae8142f57..da5017b0f3a36f 100644 --- a/x-pack/plugins/infra/common/inventory_models/shared/compontents/cloud_toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/shared/components/cloud_toolbar_items.tsx @@ -7,11 +7,11 @@ import React from 'react'; import { EuiFlexItem } from '@elastic/eui'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../../public/components/inventory/toolbars/toolbar'; +import { ToolbarProps } from '../../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { WaffleAccountsControls } from '../../../../public/components/waffle/waffle_accounts_controls'; +import { WaffleAccountsControls } from '../../../../public/pages/metrics/inventory_view/components/waffle/waffle_accounts_controls'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { WaffleRegionControls } from '../../../../public/components/waffle/waffle_region_controls'; +import { WaffleRegionControls } from '../../../../public/pages/metrics/inventory_view/components/waffle/waffle_region_controls'; type Props = ToolbarProps; diff --git a/x-pack/plugins/infra/common/inventory_models/shared/compontents/metrics_and_groupby_toolbar_items.tsx b/x-pack/plugins/infra/common/inventory_models/shared/components/metrics_and_groupby_toolbar_items.tsx similarity index 81% rename from x-pack/plugins/infra/common/inventory_models/shared/compontents/metrics_and_groupby_toolbar_items.tsx rename to x-pack/plugins/infra/common/inventory_models/shared/components/metrics_and_groupby_toolbar_items.tsx index 738fce45ee99f1..bf37828ed0856f 100644 --- a/x-pack/plugins/infra/common/inventory_models/shared/compontents/metrics_and_groupby_toolbar_items.tsx +++ b/x-pack/plugins/infra/common/inventory_models/shared/components/metrics_and_groupby_toolbar_items.tsx @@ -7,16 +7,16 @@ import React, { useMemo } from 'react'; import { EuiFlexItem } from '@elastic/eui'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../../../public/components/inventory/toolbars/toolbar'; +import { ToolbarProps } from '../../../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { WaffleMetricControls } from '../../../../public/components/waffle/metric_control'; +import { WaffleMetricControls } from '../../../../public/pages/metrics/inventory_view/components/waffle/metric_control'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { WaffleGroupByControls } from '../../../../public/components/waffle/waffle_group_by_controls'; +import { WaffleGroupByControls } from '../../../../public/pages/metrics/inventory_view/components/waffle/waffle_group_by_controls'; import { toGroupByOpt, toMetricOpt, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../public/components/inventory/toolbars/toolbar_wrapper'; +} from '../../../../public/pages/metrics/inventory_view/components/toolbars/toolbar_wrapper'; import { SnapshotMetricType } from '../../types'; interface Props extends ToolbarProps { diff --git a/x-pack/plugins/infra/common/inventory_models/shared/layouts/aws.tsx b/x-pack/plugins/infra/common/inventory_models/shared/layouts/aws.tsx index 7a0b898d406ce7..6f2791534c17e8 100644 --- a/x-pack/plugins/infra/common/inventory_models/shared/layouts/aws.tsx +++ b/x-pack/plugins/infra/common/inventory_models/shared/layouts/aws.tsx @@ -6,15 +6,15 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../../public/pages/metrics/components/section'; +import { Section } from '../../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { GaugesSectionVis } from '../../../../public/pages/metrics/components/gauges_section_vis'; +import { GaugesSectionVis } from '../../../../public/pages/metrics/metric_detail/components/gauges_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../../observability/public'; diff --git a/x-pack/plugins/infra/common/inventory_models/shared/layouts/nginx.tsx b/x-pack/plugins/infra/common/inventory_models/shared/layouts/nginx.tsx index 79cea5150d498d..cf3a06994cc96c 100644 --- a/x-pack/plugins/infra/common/inventory_models/shared/layouts/nginx.tsx +++ b/x-pack/plugins/infra/common/inventory_models/shared/layouts/nginx.tsx @@ -6,13 +6,13 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { LayoutPropsWithTheme } from '../../../../public/pages/metrics/types'; +import { LayoutPropsWithTheme } from '../../../../public/pages/metrics/metric_detail/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Section } from '../../../../public/pages/metrics/components/section'; +import { Section } from '../../../../public/pages/metrics/metric_detail/components/section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { SubSection } from '../../../../public/pages/metrics/components/sub_section'; +import { SubSection } from '../../../../public/pages/metrics/metric_detail/components/sub_section'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ChartSectionVis } from '../../../../public/pages/metrics/components/chart_section_vis'; +import { ChartSectionVis } from '../../../../public/pages/metrics/metric_detail/components/chart_section_vis'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { withTheme } from '../../../../../observability/public'; diff --git a/x-pack/plugins/infra/common/inventory_models/toolbars.ts b/x-pack/plugins/infra/common/inventory_models/toolbars.ts index 39e9f5a260f7a9..e00cb094d04550 100644 --- a/x-pack/plugins/infra/common/inventory_models/toolbars.ts +++ b/x-pack/plugins/infra/common/inventory_models/toolbars.ts @@ -11,7 +11,7 @@ import { HostToolbarItems } from './host/toolbar_items'; import { ContainerToolbarItems } from './container/toolbar_items'; import { PodToolbarItems } from './pod/toolbar_items'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ToolbarProps } from '../../public/components/inventory/toolbars/toolbar'; +import { ToolbarProps } from '../../public/pages/metrics/inventory_view/components/toolbars/toolbar'; import { AwsEC2ToolbarItems } from './aws_ec2/toolbar_items'; import { AwsS3ToolbarItems } from './aws_s3/toolbar_items'; import { AwsRDSToolbarItems } from './aws_rds/toolbar_items'; diff --git a/x-pack/plugins/infra/common/saved_objects/inventory_view.ts b/x-pack/plugins/infra/common/saved_objects/inventory_view.ts index 8ae765f379add1..8933de57b04485 100644 --- a/x-pack/plugins/infra/common/saved_objects/inventory_view.ts +++ b/x-pack/plugins/infra/common/saved_objects/inventory_view.ts @@ -7,7 +7,7 @@ // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { ElasticsearchMappingOf } from '../../server/utils/typed_elasticsearch_mappings'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { WaffleViewState } from '../../public/pages/inventory_view/hooks/use_waffle_view_state'; +import { WaffleViewState } from '../../public/pages/metrics/inventory_view/hooks/use_waffle_view_state'; export const inventoryViewSavedObjectType = 'inventory-view'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths diff --git a/x-pack/plugins/infra/common/saved_objects/metrics_explorer_view.ts b/x-pack/plugins/infra/common/saved_objects/metrics_explorer_view.ts index a9f11948446408..6eb08eabc15b5d 100644 --- a/x-pack/plugins/infra/common/saved_objects/metrics_explorer_view.ts +++ b/x-pack/plugins/infra/common/saved_objects/metrics_explorer_view.ts @@ -11,7 +11,7 @@ import { MetricsExplorerChartOptions, MetricsExplorerTimeOptions, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../public/containers/metrics_explorer/use_metrics_explorer_options'; +} from '../../public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { SavedViewSavedObject } from '../../public/hooks/use_saved_view'; diff --git a/x-pack/plugins/infra/public/components/alerting/metrics/alert_flyout.tsx b/x-pack/plugins/infra/public/components/alerting/metrics/alert_flyout.tsx index 914054e1fd9b7e..38709c117c8176 100644 --- a/x-pack/plugins/infra/public/components/alerting/metrics/alert_flyout.tsx +++ b/x-pack/plugins/infra/public/components/alerting/metrics/alert_flyout.tsx @@ -10,8 +10,8 @@ import { TriggerActionsContext } from '../../../utils/triggers_actions_context'; import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { METRIC_THRESHOLD_ALERT_TYPE_ID } from '../../../../server/lib/alerting/metric_threshold/types'; -import { MetricsExplorerOptions } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerOptions } from '../../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; interface Props { visible?: boolean; diff --git a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx index 0e9da32aaa5093..665da25dcbfffd 100644 --- a/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx +++ b/x-pack/plugins/infra/public/components/alerting/metrics/expression.tsx @@ -35,10 +35,10 @@ import { IErrorObject } from '../../../../../triggers_actions_ui/public/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { AlertsContextValue } from '../../../../../triggers_actions_ui/public/application/context/alerts_context'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { MetricsExplorerOptions } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; -import { MetricsExplorerKueryBar } from '../../metrics_explorer/kuery_bar'; import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; -import { MetricsExplorerGroupBy } from '../../metrics_explorer/group_by'; +import { MetricsExplorerKueryBar } from '../../../pages/metrics/metrics_explorer/components/kuery_bar'; +import { MetricsExplorerOptions } from '../../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; +import { MetricsExplorerGroupBy } from '../../../pages/metrics/metrics_explorer/components/group_by'; import { useSourceViaHttp } from '../../../containers/source/use_source_via_http'; interface AlertContextMeta { diff --git a/x-pack/plugins/infra/public/components/waffle/lib/type_guards.ts b/x-pack/plugins/infra/public/components/waffle/lib/type_guards.ts deleted file mode 100644 index f793afee1b948b..00000000000000 --- a/x-pack/plugins/infra/public/components/waffle/lib/type_guards.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { InfraWaffleMapGradientLegend, InfraWaffleMapStepLegend } from '../../../lib/lib'; - -export function isInfraWaffleMapStepLegend(subject: any): subject is InfraWaffleMapStepLegend { - return subject.type && subject.type === 'step'; -} - -export function isInfraWaffleMapGradientLegend( - subject: any -): subject is InfraWaffleMapGradientLegend { - return subject.type && subject.type === 'gradient'; -} diff --git a/x-pack/plugins/infra/public/containers/metrics_explorer/with_metrics_explorer_options_url_state.tsx b/x-pack/plugins/infra/public/containers/metrics_explorer/with_metrics_explorer_options_url_state.tsx index d2fa49e8d5d9fc..04f518aa9080fe 100644 --- a/x-pack/plugins/infra/public/containers/metrics_explorer/with_metrics_explorer_options_url_state.tsx +++ b/x-pack/plugins/infra/public/containers/metrics_explorer/with_metrics_explorer_options_url_state.tsx @@ -17,7 +17,7 @@ import { MetricsExplorerYAxisMode, MetricsExplorerChartType, MetricsExplorerChartOptions, -} from './use_metrics_explorer_options'; +} from '../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; interface MetricsExplorerUrlState { timerange?: MetricsExplorerTimeOptions; diff --git a/x-pack/plugins/infra/public/containers/with_options.tsx b/x-pack/plugins/infra/public/containers/with_options.tsx deleted file mode 100644 index e18fc85a68d60b..00000000000000 --- a/x-pack/plugins/infra/public/containers/with_options.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import moment from 'moment'; -import React from 'react'; - -import { euiPaletteColorBlind } from '@elastic/eui'; -import { InfraFormatterType, InfraOptions } from '../lib/lib'; -import { RendererFunction } from '../utils/typed_react'; - -const euiVisColorPalette = euiPaletteColorBlind(); - -const initialState = { - options: { - timerange: { - interval: '1m', - to: moment.utc().valueOf(), - from: moment - .utc() - .subtract(1, 'h') - .valueOf(), - }, - wafflemap: { - formatter: InfraFormatterType.percent, - formatTemplate: '{{value}}', - metric: { type: 'cpu' }, - groupBy: [], - legend: { - type: 'gradient', - rules: [ - { - value: 0, - color: '#D3DAE6', - }, - { - value: 1, - color: euiVisColorPalette[1], - }, - ], - }, - }, - } as InfraOptions, -}; - -interface WithOptionsProps { - children: RendererFunction; -} - -type State = Readonly; - -export const withOptions = (WrappedComponent: React.ComponentType) => ( - {args => } -); - -export class WithOptions extends React.Component { - public readonly state: State = initialState; - - public render() { - return this.props.children(this.state.options); - } -} diff --git a/x-pack/plugins/infra/public/pages/infrastructure/index.tsx b/x-pack/plugins/infra/public/pages/infrastructure/index.tsx deleted file mode 100644 index d592ae3480fc95..00000000000000 --- a/x-pack/plugins/infra/public/pages/infrastructure/index.tsx +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { i18n } from '@kbn/i18n'; - -import React from 'react'; -import { Route, RouteComponentProps, Switch } from 'react-router-dom'; - -import { EuiFlexItem, EuiFlexGroup } from '@elastic/eui'; -import { DocumentTitle } from '../../components/document_title'; -import { HelpCenterContent } from '../../components/help_center_content'; -import { RoutedTabs } from '../../components/navigation/routed_tabs'; -import { ColumnarPage } from '../../components/page'; -import { Header } from '../../components/header'; -import { MetricsExplorerOptionsContainer } from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { WithMetricsExplorerOptionsUrlState } from '../../containers/metrics_explorer/with_metrics_explorer_options_url_state'; -import { WithSource } from '../../containers/with_source'; -import { Source } from '../../containers/source'; -import { MetricsExplorerPage } from './metrics_explorer'; -import { SnapshotPage } from './snapshot'; -import { MetricsSettingsPage } from './settings'; -import { AppNavigation } from '../../components/navigation/app_navigation'; -import { SourceLoadingPage } from '../../components/source_loading_page'; -import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; -import { WaffleOptionsProvider } from '../inventory_view/hooks/use_waffle_options'; -import { WaffleTimeProvider } from '../inventory_view/hooks/use_waffle_time'; -import { WaffleFiltersProvider } from '../inventory_view/hooks/use_waffle_filters'; -import { AlertDropdown } from '../../components/alerting/metrics/alert_dropdown'; - -export const InfrastructurePage = ({ match }: RouteComponentProps) => { - const uiCapabilities = useKibana().services.application?.capabilities; - - return ( - - - - - - - - - -
- - - - - - - - - - - - - - ( - - {({ configuration, createDerivedIndexPattern }) => ( - - - {configuration ? ( - - ) : ( - - )} - - )} - - )} - /> - - - - - - - - ); -}; diff --git a/x-pack/plugins/infra/public/pages/link_to/redirect_to_host_detail_via_ip.tsx b/x-pack/plugins/infra/public/pages/link_to/redirect_to_host_detail_via_ip.tsx index b1dab3bd3f6737..3ad242c77412db 100644 --- a/x-pack/plugins/infra/public/pages/link_to/redirect_to_host_detail_via_ip.tsx +++ b/x-pack/plugins/infra/public/pages/link_to/redirect_to_host_detail_via_ip.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { Redirect, RouteComponentProps } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; -import { replaceMetricTimeInQueryString } from '../metrics/hooks/use_metrics_time'; +import { replaceMetricTimeInQueryString } from '../metrics/metric_detail/hooks/use_metrics_time'; import { useHostIpToName } from './use_host_ip_to_name'; import { getFromFromLocation, getToFromLocation } from './query_params'; import { LoadingPage } from '../../components/loading_page'; diff --git a/x-pack/plugins/infra/public/pages/link_to/redirect_to_node_detail.tsx b/x-pack/plugins/infra/public/pages/link_to/redirect_to_node_detail.tsx index 72a41f5264244f..3d25e4c6c258d3 100644 --- a/x-pack/plugins/infra/public/pages/link_to/redirect_to_node_detail.tsx +++ b/x-pack/plugins/infra/public/pages/link_to/redirect_to_node_detail.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { Redirect, RouteComponentProps } from 'react-router-dom'; -import { replaceMetricTimeInQueryString } from '../metrics/hooks/use_metrics_time'; +import { replaceMetricTimeInQueryString } from '../metrics/metric_detail/hooks/use_metrics_time'; import { getFromFromLocation, getToFromLocation } from './query_params'; import { InventoryItemType } from '../../../common/inventory_models/types'; import { LinkDescriptor } from '../../hooks/use_link_props'; diff --git a/x-pack/plugins/infra/public/pages/metrics/index.tsx b/x-pack/plugins/infra/public/pages/metrics/index.tsx index 531be40d2dc43b..cc88dd9e0d0f8f 100644 --- a/x-pack/plugins/infra/public/pages/metrics/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/index.tsx @@ -3,138 +3,133 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ + import { i18n } from '@kbn/i18n'; -import React, { useContext, useState } from 'react'; -import { euiStyled, EuiTheme, withTheme } from '../../../../observability/public'; + +import React from 'react'; +import { Route, RouteComponentProps, Switch } from 'react-router-dom'; + +import { EuiFlexItem, EuiFlexGroup } from '@elastic/eui'; import { DocumentTitle } from '../../components/document_title'; +import { HelpCenterContent } from '../../components/help_center_content'; +import { RoutedTabs } from '../../components/navigation/routed_tabs'; +import { ColumnarPage } from '../../components/page'; import { Header } from '../../components/header'; -import { ColumnarPage, PageContent } from '../../components/page'; -import { withMetricPageProviders } from './page_providers'; -import { useMetadata } from '../../containers/metadata/use_metadata'; +import { MetricsExplorerOptionsContainer } from './metrics_explorer/hooks/use_metrics_explorer_options'; +import { WithMetricsExplorerOptionsUrlState } from '../../containers/metrics_explorer/with_metrics_explorer_options_url_state'; +import { WithSource } from '../../containers/with_source'; import { Source } from '../../containers/source'; -import { InfraLoadingPanel } from '../../components/loading'; -import { findInventoryModel } from '../../../common/inventory_models'; -import { NavItem } from './lib/side_nav_context'; -import { NodeDetailsPage } from './components/node_details_page'; +import { MetricsExplorerPage } from './metrics_explorer'; +import { SnapshotPage } from './inventory_view'; +import { MetricsSettingsPage } from './settings'; +import { AppNavigation } from '../../components/navigation/app_navigation'; +import { SourceLoadingPage } from '../../components/source_loading_page'; import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { useMetricsTimeContext } from './hooks/use_metrics_time'; -import { useLinkProps } from '../../hooks/use_link_props'; - -const DetailPageContent = euiStyled(PageContent)` - overflow: auto; - background-color: ${props => props.theme.eui.euiColorLightestShade}; -`; - -interface Props { - theme: EuiTheme; - match: { - params: { - type: string; - node: string; - }; - }; -} - -export const MetricDetail = withMetricPageProviders( - withTheme(({ match }: Props) => { - const uiCapabilities = useKibana().services.application?.capabilities; - const nodeId = match.params.node; - const nodeType = match.params.type as InventoryItemType; - const inventoryModel = findInventoryModel(nodeType); - const { sourceId } = useContext(Source.Context); - const { - timeRange, - parsedTimeRange, - setTimeRange, - refreshInterval, - setRefreshInterval, - isAutoReloading, - setAutoReload, - triggerRefresh, - } = useMetricsTimeContext(); - const { - name, - filteredRequiredMetrics, - loading: metadataLoading, - cloudId, - metadata, - } = useMetadata(nodeId, nodeType, inventoryModel.requiredMetrics, sourceId, parsedTimeRange); - - const [sideNav, setSideNav] = useState([]); +import { WaffleOptionsProvider } from './inventory_view/hooks/use_waffle_options'; +import { WaffleTimeProvider } from './inventory_view/hooks/use_waffle_time'; +import { WaffleFiltersProvider } from './inventory_view/hooks/use_waffle_filters'; +import { AlertDropdown } from '../../components/alerting/metrics/alert_dropdown'; - const addNavItem = React.useCallback( - (item: NavItem) => { - if (!sideNav.some(n => n.id === item.id)) { - setSideNav([item, ...sideNav]); - } - }, - [sideNav] - ); +export const InfrastructurePage = ({ match }: RouteComponentProps) => { + const uiCapabilities = useKibana().services.application?.capabilities; - const metricsLinkProps = useLinkProps({ - app: 'metrics', - pathname: '/', - }); + return ( + + + + + + - const breadcrumbs = [ - { - ...metricsLinkProps, - text: i18n.translate('xpack.infra.header.infrastructureTitle', { - defaultMessage: 'Metrics', - }), - }, - { text: name }, - ]; + - if (metadataLoading && !filteredRequiredMetrics.length) { - return ( - - ); - } +
+ + + + + + + + + + - return ( - -
- - - {metadata ? ( - - ) : null} - - - ); - }) -); + + + ( + + {({ configuration, createDerivedIndexPattern }) => ( + + + {configuration ? ( + + ) : ( + + )} + + )} + + )} + /> + + + + + + + + ); +}; diff --git a/x-pack/plugins/infra/public/components/inventory/layout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx similarity index 78% rename from x-pack/plugins/infra/public/components/inventory/layout.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx index 3c91f9fa5946fc..bc8be9862fe636 100644 --- a/x-pack/plugins/infra/public/components/inventory/layout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx @@ -8,16 +8,16 @@ import React from 'react'; import { useInterval } from 'react-use'; import { euiPaletteColorBlind } from '@elastic/eui'; -import { NodesOverview } from '../nodes_overview'; +import { NodesOverview } from './nodes_overview'; import { Toolbar } from './toolbars/toolbar'; -import { PageContent } from '../page'; -import { useSnapshot } from '../../containers/waffle/use_snaphot'; -import { useInventoryMeta } from '../../containers/inventory_metadata/use_inventory_meta'; -import { useWaffleTimeContext } from '../../pages/inventory_view/hooks/use_waffle_time'; -import { useWaffleFiltersContext } from '../../pages/inventory_view/hooks/use_waffle_filters'; -import { useWaffleOptionsContext } from '../../pages/inventory_view/hooks/use_waffle_options'; -import { useSourceContext } from '../../containers/source'; -import { InfraFormatterType, InfraWaffleMapGradientLegend } from '../../lib/lib'; +import { PageContent } from '../../../../components/page'; +import { useSnapshot } from '../hooks/use_snaphot'; +import { useInventoryMeta } from '../hooks/use_inventory_meta'; +import { useWaffleTimeContext } from '../hooks/use_waffle_time'; +import { useWaffleFiltersContext } from '../hooks/use_waffle_filters'; +import { useWaffleOptionsContext } from '../hooks/use_waffle_options'; +import { useSourceContext } from '../../../../containers/source'; +import { InfraFormatterType, InfraWaffleMapGradientLegend } from '../../../../lib/lib'; const euiVisColorPalette = euiPaletteColorBlind(); diff --git a/x-pack/plugins/infra/public/components/nodes_overview/index.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx similarity index 88% rename from x-pack/plugins/infra/public/components/nodes_overview/index.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx index ef22e0486f8921..afbfd2a079253d 100644 --- a/x-pack/plugins/infra/public/components/nodes_overview/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/nodes_overview.tsx @@ -10,18 +10,25 @@ import { FormattedMessage } from '@kbn/i18n/react'; import { get, max, min } from 'lodash'; import React from 'react'; -import { euiStyled } from '../../../../observability/public'; -import { InfraFormatterType, InfraWaffleMapBounds, InfraWaffleMapOptions } from '../../lib/lib'; -import { createFormatter } from '../../utils/formatters'; -import { NoData } from '../empty_states'; -import { InfraLoadingPanel } from '../loading'; -import { Map } from '../waffle/map'; -import { ViewSwitcher } from '../waffle/view_switcher'; -import { TableView } from './table'; -import { SnapshotNode, SnapshotCustomMetricInputRT } from '../../../common/http_api/snapshot_api'; -import { convertIntervalToString } from '../../utils/convert_interval_to_string'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { createFormatterForMetric } from '../metrics_explorer/helpers/create_formatter_for_metric'; +import { euiStyled } from '../../../../../../observability/public'; +import { + InfraFormatterType, + InfraWaffleMapBounds, + InfraWaffleMapOptions, +} from '../../../../lib/lib'; +import { createFormatter } from '../../../../utils/formatters'; +import { NoData } from '../../../../components/empty_states'; +import { InfraLoadingPanel } from '../../../../components/loading'; +import { Map } from './waffle/map'; +import { ViewSwitcher } from './waffle/view_switcher'; +import { TableView } from './table_view'; +import { + SnapshotNode, + SnapshotCustomMetricInputRT, +} from '../../../../../common/http_api/snapshot_api'; +import { convertIntervalToString } from '../../../../utils/convert_interval_to_string'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; +import { createFormatterForMetric } from '../../metrics_explorer/components/helpers/create_formatter_for_metric'; export interface KueryFilterQuery { kind: 'kuery'; diff --git a/x-pack/plugins/infra/public/pages/inventory_view/compontents/search_bar.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/search_bar.tsx similarity index 86% rename from x-pack/plugins/infra/public/pages/inventory_view/compontents/search_bar.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/search_bar.tsx index f4fde46d434f83..1f84ef3685f342 100644 --- a/x-pack/plugins/infra/public/pages/inventory_view/compontents/search_bar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/search_bar.tsx @@ -5,9 +5,9 @@ */ import React, { useContext } from 'react'; import { i18n } from '@kbn/i18n'; -import { Source } from '../../../containers/source'; -import { AutocompleteField } from '../../../components/autocomplete_field'; -import { WithKueryAutocompletion } from '../../../containers/with_kuery_autocompletion'; +import { Source } from '../../../../containers/source'; +import { AutocompleteField } from '../../../../components/autocomplete_field'; +import { WithKueryAutocompletion } from '../../../../containers/with_kuery_autocompletion'; import { useWaffleFiltersContext } from '../hooks/use_waffle_filters'; export const SearchBar = () => { diff --git a/x-pack/plugins/infra/public/components/nodes_overview/table.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/table_view.tsx similarity index 92% rename from x-pack/plugins/infra/public/components/nodes_overview/table.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/table_view.tsx index 82991076255eef..0557343e735f91 100644 --- a/x-pack/plugins/infra/public/components/nodes_overview/table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/table_view.tsx @@ -9,13 +9,13 @@ import { i18n } from '@kbn/i18n'; import { last } from 'lodash'; import React, { useState, useCallback, useEffect } from 'react'; -import { createWaffleMapNode } from '../../containers/waffle/nodes_to_wafflemap'; -import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../lib/lib'; -import { fieldToName } from '../waffle/lib/field_to_display_name'; -import { NodeContextMenu } from '../waffle/node_context_menu'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { SnapshotNode, SnapshotNodePath } from '../../../common/http_api/snapshot_api'; -import { CONTAINER_CLASSNAME } from '../../apps/start_app'; +import { createWaffleMapNode } from '../lib/nodes_to_wafflemap'; +import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../../../lib/lib'; +import { fieldToName } from '../lib/field_to_display_name'; +import { NodeContextMenu } from './waffle/node_context_menu'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; +import { SnapshotNode, SnapshotNodePath } from '../../../../../common/http_api/snapshot_api'; +import { CONTAINER_CLASSNAME } from '../../../../apps/start_app'; interface Props { nodes: SnapshotNode[]; diff --git a/x-pack/plugins/infra/public/components/inventory/toolbars/save_views.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/save_views.tsx similarity index 68% rename from x-pack/plugins/infra/public/components/inventory/toolbars/save_views.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/save_views.tsx index cb315d3e17b032..eb40ea595662a2 100644 --- a/x-pack/plugins/infra/public/components/inventory/toolbars/save_views.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/save_views.tsx @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ import React from 'react'; -import { SavedViewsToolbarControls } from '../../saved_views/toolbar_control'; -import { inventoryViewSavedObjectType } from '../../../../common/saved_objects/inventory_view'; -import { useWaffleViewState } from '../../../pages/inventory_view/hooks/use_waffle_view_state'; +import { SavedViewsToolbarControls } from '../../../../../components/saved_views/toolbar_control'; +import { inventoryViewSavedObjectType } from '../../../../../../common/saved_objects/inventory_view'; +import { useWaffleViewState } from '../../hooks/use_waffle_view_state'; export const SavedViews = () => { const { viewState, defaultViewState, onViewChange } = useWaffleViewState(); diff --git a/x-pack/plugins/infra/public/components/inventory/toolbars/toolbar.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar.tsx similarity index 77% rename from x-pack/plugins/infra/public/components/inventory/toolbars/toolbar.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar.tsx index 63ab6d2f4465a4..3ac9c2c1896286 100644 --- a/x-pack/plugins/infra/public/components/inventory/toolbars/toolbar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar.tsx @@ -10,15 +10,15 @@ import { SnapshotMetricInput, SnapshotGroupBy, SnapshotCustomMetricInput, -} from '../../../../common/http_api/snapshot_api'; -import { InventoryCloudAccount } from '../../../../common/http_api/inventory_meta_api'; -import { findToolbar } from '../../../../common/inventory_models/toolbars'; +} from '../../../../../../common/http_api/snapshot_api'; +import { InventoryCloudAccount } from '../../../../../../common/http_api/inventory_meta_api'; +import { findToolbar } from '../../../../../../common/inventory_models/toolbars'; import { ToolbarWrapper } from './toolbar_wrapper'; -import { InfraGroupByOptions } from '../../../lib/lib'; -import { IIndexPattern } from '../../../../../../../src/plugins/data/public'; -import { InventoryItemType } from '../../../../common/inventory_models/types'; -import { WaffleOptionsState } from '../../../pages/inventory_view/hooks/use_waffle_options'; +import { InfraGroupByOptions } from '../../../../../lib/lib'; +import { IIndexPattern } from '../../../../../../../../../src/plugins/data/public'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; +import { WaffleOptionsState } from '../../hooks/use_waffle_options'; import { SavedViews } from './save_views'; export interface ToolbarProps diff --git a/x-pack/plugins/infra/public/components/inventory/toolbars/toolbar_wrapper.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar_wrapper.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/inventory/toolbars/toolbar_wrapper.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar_wrapper.tsx index fefda94372cfb4..86cc0d8ee62e00 100644 --- a/x-pack/plugins/infra/public/components/inventory/toolbars/toolbar_wrapper.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/toolbars/toolbar_wrapper.tsx @@ -7,12 +7,12 @@ import React from 'react'; import { EuiFlexGroup } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { SnapshotMetricType } from '../../../../common/inventory_models/types'; -import { Toolbar } from '../../eui/toolbar'; +import { SnapshotMetricType } from '../../../../../../common/inventory_models/types'; +import { Toolbar } from '../../../../../components/eui/toolbar'; import { ToolbarProps } from './toolbar'; -import { fieldToName } from '../../waffle/lib/field_to_display_name'; -import { useSourceContext } from '../../../containers/source'; -import { useWaffleOptionsContext } from '../../../pages/inventory_view/hooks/use_waffle_options'; +import { fieldToName } from '../../lib/field_to_display_name'; +import { useSourceContext } from '../../../../../containers/source'; +import { useWaffleOptionsContext } from '../../hooks/use_waffle_options'; interface Props { children: (props: Omit) => React.ReactElement; diff --git a/x-pack/plugins/infra/public/components/waffle/conditional_tooltip.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/conditional_tooltip.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/waffle/conditional_tooltip.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/conditional_tooltip.tsx diff --git a/x-pack/plugins/infra/public/components/waffle/custom_field_panel.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/custom_field_panel.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/waffle/custom_field_panel.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/custom_field_panel.tsx index d2dc535f6d6b32..090d53f1ff7379 100644 --- a/x-pack/plugins/infra/public/components/waffle/custom_field_panel.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/custom_field_panel.tsx @@ -8,7 +8,7 @@ import { EuiButton, EuiComboBox, EuiForm, EuiFormRow } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; import { IFieldType } from 'src/plugins/data/public'; -import { InfraGroupByOptions } from '../../lib/lib'; +import { InfraGroupByOptions } from '../../../../../lib/lib'; interface Props { onSubmit: (field: string) => void; diff --git a/x-pack/plugins/infra/public/components/waffle/gradient_legend.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/gradient_legend.tsx similarity index 96% rename from x-pack/plugins/infra/public/components/waffle/gradient_legend.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/gradient_legend.tsx index 6b0c4bb41dc980..87f7e4cbff11e6 100644 --- a/x-pack/plugins/infra/public/components/waffle/gradient_legend.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/gradient_legend.tsx @@ -6,13 +6,13 @@ import React from 'react'; -import { euiStyled } from '../../../../observability/public'; +import { euiStyled } from '../../../../../../../observability/public'; import { InfraFormatter, InfraWaffleMapBounds, InfraWaffleMapGradientLegend, InfraWaffleMapGradientRule, -} from '../../lib/lib'; +} from '../../../../../lib/lib'; interface Props { legend: InfraWaffleMapGradientLegend; diff --git a/x-pack/plugins/infra/public/components/waffle/group_name.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_name.tsx similarity index 96% rename from x-pack/plugins/infra/public/components/waffle/group_name.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_name.tsx index 01bd3600a1624e..308460203b132e 100644 --- a/x-pack/plugins/infra/public/components/waffle/group_name.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_name.tsx @@ -6,8 +6,8 @@ import { EuiLink, EuiToolTip } from '@elastic/eui'; import React from 'react'; -import { euiStyled } from '../../../../observability/public'; -import { InfraWaffleMapGroup, InfraWaffleMapOptions } from '../../lib/lib'; +import { euiStyled } from '../../../../../../../observability/public'; +import { InfraWaffleMapGroup, InfraWaffleMapOptions } from '../../../../../lib/lib'; interface Props { onDrilldown: (filter: string) => void; diff --git a/x-pack/plugins/infra/public/components/waffle/group_of_groups.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_groups.tsx similarity index 90% rename from x-pack/plugins/infra/public/components/waffle/group_of_groups.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_groups.tsx index 9634293587d49b..6b3f22007f580c 100644 --- a/x-pack/plugins/infra/public/components/waffle/group_of_groups.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_groups.tsx @@ -6,15 +6,15 @@ import React from 'react'; -import { euiStyled } from '../../../../observability/public'; +import { euiStyled } from '../../../../../../../observability/public'; import { InfraWaffleMapBounds, InfraWaffleMapGroupOfGroups, InfraWaffleMapOptions, -} from '../../lib/lib'; +} from '../../../../../lib/lib'; import { GroupName } from './group_name'; import { GroupOfNodes } from './group_of_nodes'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; interface Props { onDrilldown: (filter: string) => void; diff --git a/x-pack/plugins/infra/public/components/waffle/group_of_nodes.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_nodes.tsx similarity index 90% rename from x-pack/plugins/infra/public/components/waffle/group_of_nodes.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_nodes.tsx index 6b82671617df7a..fc438ed4ca0a2e 100644 --- a/x-pack/plugins/infra/public/components/waffle/group_of_nodes.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/group_of_nodes.tsx @@ -6,15 +6,15 @@ import React from 'react'; -import { euiStyled } from '../../../../observability/public'; +import { euiStyled } from '../../../../../../../observability/public'; import { InfraWaffleMapBounds, InfraWaffleMapGroupOfNodes, InfraWaffleMapOptions, -} from '../../lib/lib'; +} from '../../../../../lib/lib'; import { GroupName } from './group_name'; import { Node } from './node'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; interface Props { onDrilldown: (filter: string) => void; diff --git a/x-pack/plugins/infra/public/components/waffle/legend.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx similarity index 88% rename from x-pack/plugins/infra/public/components/waffle/legend.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx index 13e533b225d4df..ccb4cc71924f42 100644 --- a/x-pack/plugins/infra/public/components/waffle/legend.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx @@ -5,13 +5,13 @@ */ import React from 'react'; -import { euiStyled } from '../../../../observability/public'; -import { InfraFormatter, InfraWaffleMapBounds, InfraWaffleMapLegend } from '../../lib/lib'; +import { euiStyled } from '../../../../../../../observability/public'; +import { InfraFormatter, InfraWaffleMapBounds, InfraWaffleMapLegend } from '../../../../../lib/lib'; import { GradientLegend } from './gradient_legend'; import { LegendControls } from './legend_controls'; -import { isInfraWaffleMapGradientLegend, isInfraWaffleMapStepLegend } from './lib/type_guards'; +import { isInfraWaffleMapGradientLegend, isInfraWaffleMapStepLegend } from '../../lib/type_guards'; import { StepLegend } from './steps_legend'; -import { useWaffleOptionsContext } from '../../pages/inventory_view/hooks/use_waffle_options'; +import { useWaffleOptionsContext } from '../../hooks/use_waffle_options'; interface Props { legend: InfraWaffleMapLegend; bounds: InfraWaffleMapBounds; diff --git a/x-pack/plugins/infra/public/components/waffle/legend_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend_controls.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/waffle/legend_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend_controls.tsx index 26b5b1c0af727d..6ec21ad2e1b49b 100644 --- a/x-pack/plugins/infra/public/components/waffle/legend_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend_controls.tsx @@ -23,8 +23,8 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { SyntheticEvent, useState } from 'react'; -import { euiStyled } from '../../../../observability/public'; -import { InfraWaffleMapBounds } from '../../lib/lib'; +import { euiStyled } from '../../../../../../../observability/public'; +import { InfraWaffleMapBounds } from '../../../../../lib/lib'; interface Props { onChange: (options: { auto: boolean; bounds: InfraWaffleMapBounds }) => void; diff --git a/x-pack/plugins/infra/public/components/waffle/map.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx similarity index 84% rename from x-pack/plugins/infra/public/components/waffle/map.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx index 7cab2307dacfa1..e34c63d332fd87 100644 --- a/x-pack/plugins/infra/public/components/waffle/map.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/map.tsx @@ -5,20 +5,17 @@ */ import React from 'react'; -import { euiStyled } from '../../../../observability/public'; -import { nodesToWaffleMap } from '../../containers/waffle/nodes_to_wafflemap'; -import { - isWaffleMapGroupWithGroups, - isWaffleMapGroupWithNodes, -} from '../../containers/waffle/type_guards'; -import { InfraWaffleMapBounds, InfraWaffleMapOptions } from '../../lib/lib'; -import { AutoSizer } from '../auto_sizer'; +import { euiStyled } from '../../../../../../../observability/public'; +import { nodesToWaffleMap } from '../../lib/nodes_to_wafflemap'; +import { isWaffleMapGroupWithGroups, isWaffleMapGroupWithNodes } from '../../lib/type_guards'; +import { InfraWaffleMapBounds, InfraWaffleMapOptions } from '../../../../../lib/lib'; +import { AutoSizer } from '../../../../../components/auto_sizer'; import { GroupOfGroups } from './group_of_groups'; import { GroupOfNodes } from './group_of_nodes'; import { Legend } from './legend'; -import { applyWaffleMapLayout } from './lib/apply_wafflemap_layout'; -import { SnapshotNode } from '../../../common/http_api/snapshot_api'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +import { applyWaffleMapLayout } from '../../lib/apply_wafflemap_layout'; +import { SnapshotNode } from '../../../../../../common/http_api/snapshot_api'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; interface Props { nodes: SnapshotNode[]; diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/custom_metric_form.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/custom_metric_form.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/waffle/metric_control/custom_metric_form.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/custom_metric_form.tsx index 26e42061ed10bd..aec624c0aff1f5 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/custom_metric_form.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/custom_metric_form.tsx @@ -26,8 +26,11 @@ import { SnapshotCustomMetricInput, SNAPSHOT_CUSTOM_AGGREGATIONS, SnapshotCustomAggregationRT, -} from '../../../../common/http_api/snapshot_api'; -import { EuiTheme, withTheme } from '../../../../../../legacy/common/eui_styled_components'; +} from '../../../../../../../common/http_api/snapshot_api'; +import { + EuiTheme, + withTheme, +} from '../../../../../../../../../legacy/common/eui_styled_components'; interface SelectedOption { label: string; diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/get_custom_metric_label.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/get_custom_metric_label.ts similarity index 91% rename from x-pack/plugins/infra/public/components/waffle/metric_control/get_custom_metric_label.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/get_custom_metric_label.ts index 4f88c1b29c1f25..495cc8197d2e78 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/get_custom_metric_label.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/get_custom_metric_label.ts @@ -5,7 +5,7 @@ */ import { i18n } from '@kbn/i18n'; -import { SnapshotCustomMetricInput } from '../../../../common/http_api/snapshot_api'; +import { SnapshotCustomMetricInput } from '../../../../../../../common/http_api/snapshot_api'; export const getCustomMetricLabel = (metric: SnapshotCustomMetricInput) => { const METRIC_LABELS = { diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/index.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/index.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/waffle/metric_control/index.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/index.tsx index 0f2034fe9cb258..08d5b3e9e06706 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/index.tsx @@ -13,14 +13,14 @@ import { SnapshotMetricInput, SnapshotCustomMetricInput, SnapshotCustomMetricInputRT, -} from '../../../../common/http_api/snapshot_api'; +} from '../../../../../../../common/http_api/snapshot_api'; import { CustomMetricForm } from './custom_metric_form'; import { getCustomMetricLabel } from './get_custom_metric_label'; import { MetricsContextMenu } from './metrics_context_menu'; import { ModeSwitcher } from './mode_switcher'; import { MetricsEditMode } from './metrics_edit_mode'; import { CustomMetricMode } from './types'; -import { SnapshotMetricType } from '../../../../common/inventory_models/types'; +import { SnapshotMetricType } from '../../../../../../../common/inventory_models/types'; interface Props { options: Array<{ text: string; value: string }>; diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/metrics_context_menu.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_context_menu.tsx similarity index 94% rename from x-pack/plugins/infra/public/components/waffle/metric_control/metrics_context_menu.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_context_menu.tsx index 1aacf54244c375..1cdef493aee4f2 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/metrics_context_menu.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_context_menu.tsx @@ -9,11 +9,11 @@ import { SnapshotMetricInput, SnapshotCustomMetricInput, SnapshotCustomMetricInputRT, -} from '../../../../common/http_api/snapshot_api'; +} from '../../../../../../../common/http_api/snapshot_api'; import { SnapshotMetricTypeRT, SnapshotMetricType, -} from '../../../../common/inventory_models/types'; +} from '../../../../../../../common/inventory_models/types'; import { getCustomMetricLabel } from './get_custom_metric_label'; interface Props { diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/metrics_edit_mode.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_edit_mode.tsx similarity index 92% rename from x-pack/plugins/infra/public/components/waffle/metric_control/metrics_edit_mode.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_edit_mode.tsx index ba1f46815db20c..4d1bc906de0b92 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/metrics_edit_mode.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/metrics_edit_mode.tsx @@ -6,9 +6,12 @@ import React from 'react'; import { EuiFlexItem, EuiFlexGroup, EuiButtonIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { SnapshotCustomMetricInput } from '../../../../common/http_api/snapshot_api'; +import { SnapshotCustomMetricInput } from '../../../../../../../common/http_api/snapshot_api'; import { getCustomMetricLabel } from './get_custom_metric_label'; -import { EuiTheme, withTheme } from '../../../../../../legacy/common/eui_styled_components'; +import { + EuiTheme, + withTheme, +} from '../../../../../../../../../legacy/common/eui_styled_components'; interface Props { theme: EuiTheme; diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/mode_switcher.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/mode_switcher.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/waffle/metric_control/mode_switcher.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/mode_switcher.tsx index 43bb904594c68f..acb740f1750c8d 100644 --- a/x-pack/plugins/infra/public/components/waffle/metric_control/mode_switcher.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/mode_switcher.tsx @@ -8,8 +8,11 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { CustomMetricMode } from './types'; -import { SnapshotCustomMetricInput } from '../../../../common/http_api/snapshot_api'; -import { EuiTheme, withTheme } from '../../../../../../legacy/common/eui_styled_components'; +import { SnapshotCustomMetricInput } from '../../../../../../../common/http_api/snapshot_api'; +import { + EuiTheme, + withTheme, +} from '../../../../../../../../../legacy/common/eui_styled_components'; interface Props { theme: EuiTheme; diff --git a/x-pack/plugins/infra/public/components/waffle/metric_control/types.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/types.ts similarity index 100% rename from x-pack/plugins/infra/public/components/waffle/metric_control/types.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/metric_control/types.ts diff --git a/x-pack/plugins/infra/public/components/waffle/node.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node.tsx similarity index 93% rename from x-pack/plugins/infra/public/components/waffle/node.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node.tsx index 4eb5ccb8c1b4d9..fd5b5b01f329fa 100644 --- a/x-pack/plugins/infra/public/components/waffle/node.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node.tsx @@ -10,11 +10,15 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { ConditionalToolTip } from './conditional_tooltip'; -import { euiStyled } from '../../../../observability/public'; -import { InfraWaffleMapBounds, InfraWaffleMapNode, InfraWaffleMapOptions } from '../../lib/lib'; -import { colorFromValue } from './lib/color_from_value'; +import { euiStyled } from '../../../../../../../observability/public'; +import { + InfraWaffleMapBounds, + InfraWaffleMapNode, + InfraWaffleMapOptions, +} from '../../../../../lib/lib'; +import { colorFromValue } from '../../lib/color_from_value'; import { NodeContextMenu } from './node_context_menu'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; const initialState = { isPopoverOpen: false, diff --git a/x-pack/plugins/infra/public/components/waffle/node_context_menu.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node_context_menu.tsx similarity index 91% rename from x-pack/plugins/infra/public/components/waffle/node_context_menu.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node_context_menu.tsx index 5f05cebd8f616a..275635a33ec266 100644 --- a/x-pack/plugins/infra/public/components/waffle/node_context_menu.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/node_context_menu.tsx @@ -9,12 +9,13 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { useMemo, useState } from 'react'; -import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../lib/lib'; -import { getNodeDetailUrl, getNodeLogsUrl } from '../../pages/link_to'; -import { createUptimeLink } from './lib/create_uptime_link'; -import { findInventoryModel, findInventoryFields } from '../../../common/inventory_models'; -import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +import { AlertFlyout } from '../../../../../components/alerting/metrics/alert_flyout'; +import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../../../../lib/lib'; +import { getNodeDetailUrl, getNodeLogsUrl } from '../../../../link_to'; +import { createUptimeLink } from '../../lib/create_uptime_link'; +import { findInventoryModel, findInventoryFields } from '../../../../../../common/inventory_models'; +import { useKibana } from '../../../../../../../../../src/plugins/kibana_react/public'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; import { Section, SectionLinkProps, @@ -23,9 +24,8 @@ import { SectionSubtitle, SectionLinks, SectionLink, -} from '../../../../observability/public'; -import { useLinkProps } from '../../hooks/use_link_props'; -import { AlertFlyout } from '../alerting/metrics/alert_flyout'; +} from '../../../../../../../observability/public'; +import { useLinkProps } from '../../../../../hooks/use_link_props'; interface Props { options: InfraWaffleMapOptions; diff --git a/x-pack/plugins/infra/public/components/waffle/steps_legend.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/steps_legend.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/waffle/steps_legend.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/steps_legend.tsx index d2079d53dad71b..1ef0f2d0c42889 100644 --- a/x-pack/plugins/infra/public/components/waffle/steps_legend.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/steps_legend.tsx @@ -7,13 +7,13 @@ import { darken } from 'polished'; import React from 'react'; -import { euiStyled } from '../../../../observability/public'; +import { euiStyled } from '../../../../../../../observability/public'; import { InfraFormatter, InfraWaffleMapRuleOperator, InfraWaffleMapStepLegend, InfraWaffleMapStepRule, -} from '../../lib/lib'; +} from '../../../../../lib/lib'; const OPERATORS = { [InfraWaffleMapRuleOperator.gte]: '>=', diff --git a/x-pack/plugins/infra/public/components/waffle/view_switcher.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/view_switcher.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/waffle/view_switcher.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/view_switcher.tsx diff --git a/x-pack/plugins/infra/public/components/waffle/waffle_accounts_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_accounts_controls.tsx similarity index 94% rename from x-pack/plugins/infra/public/components/waffle/waffle_accounts_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_accounts_controls.tsx index 56c3a205b05d48..a8b0cf21bce85e 100644 --- a/x-pack/plugins/infra/public/components/waffle/waffle_accounts_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_accounts_controls.tsx @@ -14,7 +14,7 @@ import { import React, { useCallback, useState, useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; -import { InventoryCloudAccount } from '../../../common/http_api/inventory_meta_api'; +import { InventoryCloudAccount } from '../../../../../../common/http_api/inventory_meta_api'; interface Props { accountId: string; @@ -24,7 +24,7 @@ interface Props { export const WaffleAccountsControls = (props: Props) => { const { accountId, options } = props; - const [isOpen, setIsOpen] = useState(); + const [isOpen, setIsOpen] = useState(false); const showPopover = useCallback(() => { setIsOpen(true); diff --git a/x-pack/plugins/infra/public/components/waffle/waffle_group_by_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_group_by_controls.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/waffle/waffle_group_by_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_group_by_controls.tsx index 1a3cef591bc077..bc763d2cf93785 100644 --- a/x-pack/plugins/infra/public/components/waffle/waffle_group_by_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_group_by_controls.tsx @@ -17,11 +17,11 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; import { IFieldType } from 'src/plugins/data/public'; -import { InfraGroupByOptions } from '../../lib/lib'; +import { InfraGroupByOptions } from '../../../../../lib/lib'; import { CustomFieldPanel } from './custom_field_panel'; -import { euiStyled } from '../../../../observability/public'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { SnapshotGroupBy } from '../../../common/http_api/snapshot_api'; +import { euiStyled } from '../../../../../../../observability/public'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; +import { SnapshotGroupBy } from '../../../../../../common/http_api/snapshot_api'; interface Props { options: Array<{ text: string; field: string; toolTipContent?: string }>; diff --git a/x-pack/plugins/infra/public/components/waffle/waffle_inventory_switcher.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx similarity index 94% rename from x-pack/plugins/infra/public/components/waffle/waffle_inventory_switcher.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx index 21da10a0a76502..23e06823f407f4 100644 --- a/x-pack/plugins/infra/public/components/waffle/waffle_inventory_switcher.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_inventory_switcher.tsx @@ -14,9 +14,9 @@ import { import React, { useCallback, useState, useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { findInventoryModel } from '../../../common/inventory_models'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { useWaffleOptionsContext } from '../../pages/inventory_view/hooks/use_waffle_options'; +import { findInventoryModel } from '../../../../../../common/inventory_models'; +import { InventoryItemType } from '../../../../../../common/inventory_models/types'; +import { useWaffleOptionsContext } from '../../hooks/use_waffle_options'; const getDisplayNameForType = (type: InventoryItemType) => { const inventoryModel = findInventoryModel(type); diff --git a/x-pack/plugins/infra/public/components/waffle/waffle_region_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_region_controls.tsx similarity index 97% rename from x-pack/plugins/infra/public/components/waffle/waffle_region_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_region_controls.tsx index 52377bf4b8296e..671e44f42ef6a5 100644 --- a/x-pack/plugins/infra/public/components/waffle/waffle_region_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_region_controls.tsx @@ -23,7 +23,7 @@ interface Props { export const WaffleRegionControls = (props: Props) => { const { region, options } = props; - const [isOpen, setIsOpen] = useState(); + const [isOpen, setIsOpen] = useState(false); const showPopover = useCallback(() => { setIsOpen(true); diff --git a/x-pack/plugins/infra/public/components/waffle/waffle_time_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx similarity index 95% rename from x-pack/plugins/infra/public/components/waffle/waffle_time_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx index 458bb674afadef..7f190f21484d93 100644 --- a/x-pack/plugins/infra/public/components/waffle/waffle_time_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx @@ -8,7 +8,7 @@ import { EuiButtonEmpty, EuiDatePicker, EuiFormControlLayout } from '@elastic/eu import { FormattedMessage } from '@kbn/i18n/react'; import moment, { Moment } from 'moment'; import React, { useCallback } from 'react'; -import { useWaffleTimeContext } from '../../pages/inventory_view/hooks/use_waffle_time'; +import { useWaffleTimeContext } from '../../hooks/use_waffle_time'; export const WaffleTimeControls = () => { const { diff --git a/x-pack/plugins/infra/public/containers/inventory_metadata/use_inventory_meta.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_inventory_meta.ts similarity index 79% rename from x-pack/plugins/infra/public/containers/inventory_metadata/use_inventory_meta.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_inventory_meta.ts index 0ed1f3e35449b4..b038491690a137 100644 --- a/x-pack/plugins/infra/public/containers/inventory_metadata/use_inventory_meta.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_inventory_meta.ts @@ -7,13 +7,13 @@ import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; import { useEffect } from 'react'; -import { throwErrors, createPlainError } from '../../../common/runtime_types'; -import { useHTTPRequest } from '../../hooks/use_http_request'; +import { throwErrors, createPlainError } from '../../../../../common/runtime_types'; +import { useHTTPRequest } from '../../../../hooks/use_http_request'; import { InventoryMetaResponseRT, InventoryMetaResponse, -} from '../../../common/http_api/inventory_meta_api'; -import { InventoryItemType } from '../../../common/inventory_models/types'; +} from '../../../../../common/http_api/inventory_meta_api'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; export function useInventoryMeta(sourceId: string, nodeType: InventoryItemType) { const decodeResponse = (response: any) => { diff --git a/x-pack/plugins/infra/public/containers/waffle/use_snaphot.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_snaphot.ts similarity index 83% rename from x-pack/plugins/infra/public/containers/waffle/use_snaphot.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_snaphot.ts index 31f02f46caedac..3ec63d7b2de286 100644 --- a/x-pack/plugins/infra/public/containers/waffle/use_snaphot.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_snaphot.ts @@ -8,14 +8,17 @@ import { useEffect } from 'react'; import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; -import { throwErrors, createPlainError } from '../../../common/runtime_types'; -import { useHTTPRequest } from '../../hooks/use_http_request'; +import { throwErrors, createPlainError } from '../../../../../common/runtime_types'; +import { useHTTPRequest } from '../../../../hooks/use_http_request'; import { SnapshotNodeResponseRT, SnapshotNodeResponse, SnapshotGroupBy, -} from '../../../common/http_api/snapshot_api'; -import { InventoryItemType, SnapshotMetricType } from '../../../common/inventory_models/types'; +} from '../../../../../common/http_api/snapshot_api'; +import { + InventoryItemType, + SnapshotMetricType, +} from '../../../../../common/inventory_models/types'; export function useSnapshot( filterQuery: string | null | undefined, diff --git a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_filters.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_filters.ts similarity index 90% rename from x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_filters.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_filters.ts index 02c079dcaddc40..f6cbb59779039a 100644 --- a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_filters.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_filters.ts @@ -10,10 +10,10 @@ import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { constant, identity } from 'fp-ts/lib/function'; import createContainter from 'constate'; -import { useUrlState } from '../../../utils/use_url_state'; -import { useSourceContext } from '../../../containers/source'; -import { convertKueryToElasticSearchQuery } from '../../../utils/kuery'; -import { esKuery } from '../../../../../../../src/plugins/data/public'; +import { useUrlState } from '../../../../utils/use_url_state'; +import { useSourceContext } from '../../../../containers/source'; +import { convertKueryToElasticSearchQuery } from '../../../../utils/kuery'; +import { esKuery } from '../../../../../../../../src/plugins/data/public'; const validateKuery = (expression: string) => { try { diff --git a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_options.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_options.ts similarity index 95% rename from x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_options.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_options.ts index 2853917d5f6838..32bfe6e085b4e4 100644 --- a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_options.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_options.ts @@ -17,9 +17,9 @@ import { SnapshotMetricInputRT, SnapshotGroupByRT, SnapshotCustomMetricInputRT, -} from '../../../../common/http_api/snapshot_api'; -import { useUrlState } from '../../../utils/use_url_state'; -import { InventoryItemType, ItemTypeRT } from '../../../../common/inventory_models/types'; +} from '../../../../../common/http_api/snapshot_api'; +import { useUrlState } from '../../../../utils/use_url_state'; +import { InventoryItemType, ItemTypeRT } from '../../../../../common/inventory_models/types'; export const DEFAULT_WAFFLE_OPTIONS_STATE: WaffleOptionsState = { metric: { type: 'cpu' }, diff --git a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_time.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_time.ts similarity index 97% rename from x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_time.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_time.ts index 051b5e598cb757..db3abd37b58dd8 100644 --- a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_time.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_time.ts @@ -9,7 +9,7 @@ import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { constant, identity } from 'fp-ts/lib/function'; import createContainer from 'constate'; -import { useUrlState } from '../../../utils/use_url_state'; +import { useUrlState } from '../../../../utils/use_url_state'; export const DEFAULT_WAFFLE_TIME_STATE: WaffleTimeState = { currentTime: Date.now(), diff --git a/x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_view_state.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_view_state.ts similarity index 100% rename from x-pack/plugins/infra/public/pages/inventory_view/hooks/use_waffle_view_state.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/hooks/use_waffle_view_state.ts diff --git a/x-pack/plugins/infra/public/pages/infrastructure/snapshot/index.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx similarity index 98% rename from x-pack/plugins/infra/public/pages/infrastructure/snapshot/index.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx index 48cc56388c0f24..e473aea7a1f0bc 100644 --- a/x-pack/plugins/infra/public/pages/infrastructure/snapshot/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/index.tsx @@ -20,7 +20,7 @@ import { ViewSourceConfigurationButton } from '../../../components/source_config import { Source } from '../../../containers/source'; import { useTrackPageview } from '../../../../../observability/public'; import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; -import { Layout } from '../../../components/inventory/layout'; +import { Layout } from './components/layout'; import { useLinkProps } from '../../../hooks/use_link_props'; export const SnapshotPage = () => { diff --git a/x-pack/plugins/infra/public/components/waffle/lib/apply_wafflemap_layout.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/apply_wafflemap_layout.ts similarity index 94% rename from x-pack/plugins/infra/public/components/waffle/lib/apply_wafflemap_layout.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/apply_wafflemap_layout.ts index 5f3c06fcfbba77..68600ac5d2ce49 100644 --- a/x-pack/plugins/infra/public/components/waffle/lib/apply_wafflemap_layout.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/apply_wafflemap_layout.ts @@ -4,11 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ import { first, sortBy } from 'lodash'; -import { - isWaffleMapGroupWithGroups, - isWaffleMapGroupWithNodes, -} from '../../../containers/waffle/type_guards'; -import { InfraWaffleMapGroup } from '../../../lib/lib'; +import { isWaffleMapGroupWithGroups, isWaffleMapGroupWithNodes } from './type_guards'; +import { InfraWaffleMapGroup } from '../../../../lib/lib'; import { sizeOfSquares } from './size_of_squares'; export function getColumns(n: number, w = 1, h = 1) { diff --git a/x-pack/plugins/infra/public/components/waffle/lib/color_from_value.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/color_from_value.ts similarity index 98% rename from x-pack/plugins/infra/public/components/waffle/lib/color_from_value.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/color_from_value.ts index c082686bb9d63a..334865306ee88e 100644 --- a/x-pack/plugins/infra/public/components/waffle/lib/color_from_value.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/color_from_value.ts @@ -12,7 +12,7 @@ import { InfraWaffleMapLegend, InfraWaffleMapRuleOperator, InfraWaffleMapStepLegend, -} from '../../../lib/lib'; +} from '../../../../lib/lib'; import { isInfraWaffleMapGradientLegend, isInfraWaffleMapStepLegend } from './type_guards'; const OPERATOR_TO_FN = { diff --git a/x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.test.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.test.ts similarity index 96% rename from x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.test.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.test.ts index 902969c83ba393..5f760cf2f591e2 100644 --- a/x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.test.ts @@ -5,8 +5,8 @@ */ import { createUptimeLink } from './create_uptime_link'; -import { InfraWaffleMapOptions, InfraFormatterType } from '../../../lib/lib'; -import { SnapshotMetricType } from '../../../../common/inventory_models/types'; +import { InfraWaffleMapOptions, InfraFormatterType } from '../../../../lib/lib'; +import { SnapshotMetricType } from '../../../../../common/inventory_models/types'; const options: InfraWaffleMapOptions = { fields: { diff --git a/x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.ts similarity index 83% rename from x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.ts index 72b46f4fb5c7b7..6c089ee8d22f46 100644 --- a/x-pack/plugins/infra/public/components/waffle/lib/create_uptime_link.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/create_uptime_link.ts @@ -5,9 +5,9 @@ */ import { get } from 'lodash'; -import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../../lib/lib'; -import { InventoryItemType } from '../../../../common/inventory_models/types'; -import { LinkDescriptor } from '../../../hooks/use_link_props'; +import { InfraWaffleMapNode, InfraWaffleMapOptions } from '../../../../lib/lib'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; +import { LinkDescriptor } from '../../../../hooks/use_link_props'; export const createUptimeLink = ( options: InfraWaffleMapOptions, diff --git a/x-pack/plugins/infra/public/components/waffle/lib/field_to_display_name.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/field_to_display_name.ts similarity index 100% rename from x-pack/plugins/infra/public/components/waffle/lib/field_to_display_name.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/field_to_display_name.ts diff --git a/x-pack/plugins/infra/public/containers/waffle/nodes_to_wafflemap.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/nodes_to_wafflemap.ts similarity index 97% rename from x-pack/plugins/infra/public/containers/waffle/nodes_to_wafflemap.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/nodes_to_wafflemap.ts index d2511ba7e669e6..469b54b2d9d684 100644 --- a/x-pack/plugins/infra/public/containers/waffle/nodes_to_wafflemap.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/nodes_to_wafflemap.ts @@ -11,9 +11,9 @@ import { InfraWaffleMapGroupOfGroups, InfraWaffleMapGroupOfNodes, InfraWaffleMapNode, -} from '../../lib/lib'; +} from '../../../../lib/lib'; import { isWaffleMapGroupWithGroups, isWaffleMapGroupWithNodes } from './type_guards'; -import { SnapshotNodePath, SnapshotNode } from '../../../common/http_api/snapshot_api'; +import { SnapshotNodePath, SnapshotNode } from '../../../../../common/http_api/snapshot_api'; export function createId(path: SnapshotNodePath[]) { return path.map(p => p.value).join('/'); diff --git a/x-pack/plugins/infra/public/components/waffle/lib/size_of_squares.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/size_of_squares.ts similarity index 100% rename from x-pack/plugins/infra/public/components/waffle/lib/size_of_squares.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/size_of_squares.ts diff --git a/x-pack/plugins/infra/public/containers/waffle/type_guards.ts b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/type_guards.ts similarity index 55% rename from x-pack/plugins/infra/public/containers/waffle/type_guards.ts rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/type_guards.ts index 3e21e3a56a6c6a..62d02022d4c939 100644 --- a/x-pack/plugins/infra/public/containers/waffle/type_guards.ts +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/lib/type_guards.ts @@ -4,7 +4,22 @@ * you may not use this file except in compliance with the Elastic License. */ -import { InfraWaffleMapGroupOfGroups, InfraWaffleMapGroupOfNodes } from '../../lib/lib'; +import { + InfraWaffleMapGroupOfGroups, + InfraWaffleMapGroupOfNodes, + InfraWaffleMapGradientLegend, + InfraWaffleMapStepLegend, +} from '../../../../lib/lib'; + +export function isInfraWaffleMapStepLegend(subject: any): subject is InfraWaffleMapStepLegend { + return subject.type && subject.type === 'step'; +} + +export function isInfraWaffleMapGradientLegend( + subject: any +): subject is InfraWaffleMapGradientLegend { + return subject.type && subject.type === 'gradient'; +} export function isWaffleMapGroupWithNodes(subject: any): subject is InfraWaffleMapGroupOfNodes { return subject && subject.nodes != null && Array.isArray(subject.nodes); diff --git a/x-pack/plugins/infra/public/pages/infrastructure/snapshot/toolbar.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/toolbar.tsx similarity index 75% rename from x-pack/plugins/infra/public/pages/infrastructure/snapshot/toolbar.tsx rename to x-pack/plugins/infra/public/pages/metrics/inventory_view/toolbar.tsx index ccdaa5e8dc7857..d6a87a0197f5f7 100644 --- a/x-pack/plugins/infra/public/pages/infrastructure/snapshot/toolbar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/toolbar.tsx @@ -8,9 +8,9 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; import { Toolbar } from '../../../components/eui/toolbar'; -import { WaffleTimeControls } from '../../../components/waffle/waffle_time_controls'; -import { WaffleInventorySwitcher } from '../../../components/waffle/waffle_inventory_switcher'; -import { SearchBar } from '../../inventory_view/compontents/search_bar'; +import { WaffleTimeControls } from './components/waffle/waffle_time_controls'; +import { WaffleInventorySwitcher } from './components/waffle/waffle_inventory_switcher'; +import { SearchBar } from './components/search_bar'; export const SnapshotToolbar = () => ( diff --git a/x-pack/plugins/infra/public/pages/metrics/components/chart_section_vis.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/chart_section_vis.tsx similarity index 94% rename from x-pack/plugins/infra/public/pages/metrics/components/chart_section_vis.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/chart_section_vis.tsx index 290f0eda452ce2..588a0d84918c6c 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/chart_section_vis.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/chart_section_vis.tsx @@ -8,7 +8,7 @@ import moment from 'moment'; import { i18n } from '@kbn/i18n'; import { Axis, Chart, niceTimeFormatter, Position, Settings, TooltipValue } from '@elastic/charts'; import { EuiPageContentBody } from '@elastic/eui'; -import { getChartTheme } from '../../../components/metrics_explorer/helpers/get_chart_theme'; +import { getChartTheme } from '../../metrics_explorer/components/helpers/get_chart_theme'; import { SeriesChart } from './series_chart'; import { getFormatter, @@ -19,8 +19,8 @@ import { seriesHasLessThen2DataPoints, } from './helpers'; import { ErrorMessage } from './error_message'; -import { useKibanaUiSetting } from '../../../utils/use_kibana_ui_setting'; -import { useUiSetting } from '../../../../../../../src/plugins/kibana_react/public'; +import { useKibanaUiSetting } from '../../../../utils/use_kibana_ui_setting'; +import { useUiSetting } from '../../../../../../../../src/plugins/kibana_react/public'; import { VisSectionProps } from '../types'; export const ChartSectionVis = ({ diff --git a/x-pack/plugins/infra/public/pages/metrics/components/error_message.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/error_message.tsx similarity index 100% rename from x-pack/plugins/infra/public/pages/metrics/components/error_message.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/error_message.tsx diff --git a/x-pack/plugins/infra/public/pages/metrics/components/gauges_section_vis.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/gauges_section_vis.tsx similarity index 92% rename from x-pack/plugins/infra/public/pages/metrics/components/gauges_section_vis.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/gauges_section_vis.tsx index e069b52be8be70..0aab676b7d6c54 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/gauges_section_vis.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/gauges_section_vis.tsx @@ -16,9 +16,9 @@ import { import { get, last, max } from 'lodash'; import React, { ReactText } from 'react'; -import { euiStyled } from '../../../../../observability/public'; -import { createFormatter } from '../../../utils/formatters'; -import { InventoryFormatterType } from '../../../../common/inventory_models/types'; +import { euiStyled } from '../../../../../../observability/public'; +import { createFormatter } from '../../../../utils/formatters'; +import { InventoryFormatterType } from '../../../../../common/inventory_models/types'; import { SeriesOverrides, VisSectionProps } from '../types'; import { getChartName } from './helpers'; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/helpers.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/helpers.ts similarity index 91% rename from x-pack/plugins/infra/public/pages/metrics/components/helpers.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/helpers.ts index 4449196f2fb537..bb4ad326609520 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/helpers.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/helpers.ts @@ -7,15 +7,15 @@ import { ReactText } from 'react'; import Color from 'color'; import { get, first, last, min, max } from 'lodash'; -import { createFormatter } from '../../../utils/formatters'; -import { InfraDataSeries } from '../../../graphql/types'; +import { createFormatter } from '../../../../utils/formatters'; +import { InfraDataSeries } from '../../../../graphql/types'; import { InventoryVisTypeRT, InventoryFormatterType, InventoryVisType, -} from '../../../../common/inventory_models/types'; +} from '../../../../../common/inventory_models/types'; import { SeriesOverrides } from '../types'; -import { NodeDetailsMetricData } from '../../../../common/http_api/node_details_api'; +import { NodeDetailsMetricData } from '../../../../../common/http_api/node_details_api'; /** * Returns a formatter diff --git a/x-pack/plugins/infra/public/pages/metrics/components/invalid_node.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/invalid_node.tsx similarity index 90% rename from x-pack/plugins/infra/public/pages/metrics/components/invalid_node.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/invalid_node.tsx index b089e2237c2e57..6d83017a3f6892 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/invalid_node.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/invalid_node.tsx @@ -7,9 +7,9 @@ import { EuiButton, EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; -import { euiStyled } from '../../../../../observability/public'; -import { ViewSourceConfigurationButton } from '../../../components/source_configuration'; -import { useLinkProps } from '../../../hooks/use_link_props'; +import { euiStyled } from '../../../../../../observability/public'; +import { ViewSourceConfigurationButton } from '../../../../components/source_configuration'; +import { useLinkProps } from '../../../../hooks/use_link_props'; interface InvalidNodeErrorProps { nodeName: string; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/layout_content.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/layout_content.tsx similarity index 84% rename from x-pack/plugins/infra/public/pages/metrics/components/layout_content.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/layout_content.tsx index 4e10f245acdccc..46201025175492 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/layout_content.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/layout_content.tsx @@ -5,7 +5,7 @@ */ import { EuiPageContent } from '@elastic/eui'; -import { euiStyled } from '../../../../../observability/public'; +import { euiStyled } from '../../../../../../observability/public'; export const LayoutContent = euiStyled(EuiPageContent)` position: relative; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/metadata_details.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/metadata_details.tsx similarity index 97% rename from x-pack/plugins/infra/public/pages/metrics/components/metadata_details.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/metadata_details.tsx index 3bf492d398f2cf..7ca69dd56251d3 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/metadata_details.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/metadata_details.tsx @@ -8,8 +8,8 @@ import React, { useContext, useState, useCallback, useMemo } from 'react'; import { EuiButtonIcon, EuiFlexGrid, EuiFlexItem, EuiTitle, EuiText } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { get } from 'lodash'; -import { InfraMetadata } from '../../../../common/http_api'; -import { euiStyled } from '../../../../../observability/public'; +import { InfraMetadata } from '../../../../../common/http_api'; +import { euiStyled } from '../../../../../../observability/public'; import { MetadataContext } from '../containers/metadata_context'; interface FieldDef { diff --git a/x-pack/plugins/infra/public/pages/metrics/components/node_details_page.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/node_details_page.tsx similarity index 90% rename from x-pack/plugins/infra/public/pages/metrics/components/node_details_page.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/node_details_page.tsx index dd2a5f2bdb39e6..0d0bc8c82397e8 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/node_details_page.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/node_details_page.tsx @@ -13,19 +13,19 @@ import { EuiHideFor, EuiTitle, } from '@elastic/eui'; -import { InfraTimerangeInput } from '../../../../common/http_api/snapshot_api'; -import { InventoryMetric, InventoryItemType } from '../../../../common/inventory_models/types'; -import { useNodeDetails } from '../../../containers/node_details/use_node_details'; +import { InfraTimerangeInput } from '../../../../../common/http_api/snapshot_api'; +import { InventoryMetric, InventoryItemType } from '../../../../../common/inventory_models/types'; +import { useNodeDetails } from '../hooks/use_node_details'; import { MetricsSideNav } from './side_nav'; -import { AutoSizer } from '../../../components/auto_sizer'; +import { AutoSizer } from '../../../../components/auto_sizer'; import { MetricsTimeControls } from './time_controls'; import { SideNavContext, NavItem } from '../lib/side_nav_context'; import { PageBody } from './page_body'; -import { euiStyled } from '../../../../../observability/public'; +import { euiStyled } from '../../../../../../observability/public'; import { MetricsTimeInput } from '../hooks/use_metrics_time'; -import { InfraMetadata } from '../../../../common/http_api/metadata_api'; +import { InfraMetadata } from '../../../../../common/http_api/metadata_api'; import { PageError } from './page_error'; -import { MetadataContext } from '../../../pages/metrics/containers/metadata_context'; +import { MetadataContext } from '../containers/metadata_context'; interface Props { name: string; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/page_body.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_body.tsx similarity index 82% rename from x-pack/plugins/infra/public/pages/metrics/components/page_body.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_body.tsx index e651d6b92d9811..68166a6e53bfda 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/page_body.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_body.tsx @@ -6,13 +6,13 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { findLayout } from '../../../../common/inventory_models/layouts'; -import { InventoryItemType } from '../../../../common/inventory_models/types'; +import { findLayout } from '../../../../../common/inventory_models/layouts'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; import { MetricsTimeInput } from '../hooks/use_metrics_time'; -import { InfraLoadingPanel } from '../../../components/loading'; -import { NoData } from '../../../components/empty_states'; -import { NodeDetailsMetricData } from '../../../../common/http_api/node_details_api'; +import { InfraLoadingPanel } from '../../../../components/loading'; +import { NoData } from '../../../../components/empty_states'; +import { NodeDetailsMetricData } from '../../../../../common/http_api/node_details_api'; interface Props { loading: boolean; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/page_error.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_error.tsx similarity index 90% rename from x-pack/plugins/infra/public/pages/metrics/components/page_error.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_error.tsx index e54cdcd151f6fc..bda2a5941e0230 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/page_error.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/page_error.tsx @@ -10,8 +10,8 @@ import { i18n } from '@kbn/i18n'; import { IHttpFetchError } from 'src/core/public'; import { InvalidNodeError } from './invalid_node'; // import { InfraMetricsErrorCodes } from '../../../../common/errors'; -import { DocumentTitle } from '../../../components/document_title'; -import { ErrorPageBody } from '../../error'; +import { DocumentTitle } from '../../../../components/document_title'; +import { ErrorPageBody } from '../../../error'; interface Props { name: string; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/section.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/section.tsx similarity index 100% rename from x-pack/plugins/infra/public/pages/metrics/components/section.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/section.tsx diff --git a/x-pack/plugins/infra/public/pages/metrics/components/series_chart.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/series_chart.tsx similarity index 93% rename from x-pack/plugins/infra/public/pages/metrics/components/series_chart.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/series_chart.tsx index 849a5b89221650..0d7716ad3cc669 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/series_chart.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/series_chart.tsx @@ -13,8 +13,8 @@ import { BarSeriesStyle, AreaSeriesStyle, } from '@elastic/charts'; -import { InfraDataSeries } from '../../../graphql/types'; -import { InventoryVisType } from '../../../../common/inventory_models/types'; +import { InfraDataSeries } from '../../../../graphql/types'; +import { InventoryVisType } from '../../../../../common/inventory_models/types'; interface Props { id: string; diff --git a/x-pack/plugins/infra/public/pages/metrics/components/side_nav.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/side_nav.tsx similarity index 95% rename from x-pack/plugins/infra/public/pages/metrics/components/side_nav.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/side_nav.tsx index 94f97c7f45e61f..1cba3366acbbbf 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/side_nav.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/side_nav.tsx @@ -6,7 +6,7 @@ import { EuiHideFor, EuiPageSideBar, EuiShowFor, EuiSideNav } from '@elastic/eui'; import React, { useState, useCallback } from 'react'; -import { euiStyled } from '../../../../../observability/public'; +import { euiStyled } from '../../../../../../observability/public'; import { NavItem } from '../lib/side_nav_context'; interface Props { diff --git a/x-pack/plugins/infra/public/pages/metrics/components/sub_section.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/sub_section.tsx similarity index 94% rename from x-pack/plugins/infra/public/pages/metrics/components/sub_section.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/sub_section.tsx index 325d5102931354..7b269adc96638b 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/sub_section.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/sub_section.tsx @@ -6,7 +6,7 @@ import React, { isValidElement, cloneElement, FunctionComponent, Children, useMemo } from 'react'; import { EuiTitle } from '@elastic/eui'; -import { InventoryMetric } from '../../../../common/inventory_models/types'; +import { InventoryMetric } from '../../../../../common/inventory_models/types'; import { LayoutProps } from '../types'; type SubSectionProps = LayoutProps & { diff --git a/x-pack/plugins/infra/public/pages/metrics/components/time_controls.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.test.tsx similarity index 96% rename from x-pack/plugins/infra/public/pages/metrics/components/time_controls.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.test.tsx index 02ba506e8abe14..83f5187f8a46c0 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/time_controls.test.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.test.tsx @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../../../utils/use_kibana_ui_setting', () => ({ +jest.mock('../../../../utils/use_kibana_ui_setting', () => ({ _esModule: true, useKibanaUiSetting: jest.fn(() => [ [ diff --git a/x-pack/plugins/infra/public/pages/metrics/components/time_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.tsx similarity index 91% rename from x-pack/plugins/infra/public/pages/metrics/components/time_controls.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.tsx index cdbdc9bb7ecdb5..ef6486eac0fdb1 100644 --- a/x-pack/plugins/infra/public/pages/metrics/components/time_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/components/time_controls.tsx @@ -6,10 +6,10 @@ import { EuiSuperDatePicker, OnRefreshChangeProps, OnTimeChangeProps } from '@elastic/eui'; import React, { useCallback } from 'react'; -import { euiStyled } from '../../../../../observability/public'; +import { euiStyled } from '../../../../../../observability/public'; import { MetricsTimeInput } from '../hooks/use_metrics_time'; -import { useKibanaUiSetting } from '../../../utils/use_kibana_ui_setting'; -import { mapKibanaQuickRangesToDatePickerRanges } from '../../../utils/map_timepicker_quickranges_to_datepicker_ranges'; +import { useKibanaUiSetting } from '../../../../utils/use_kibana_ui_setting'; +import { mapKibanaQuickRangesToDatePickerRanges } from '../../../../utils/map_timepicker_quickranges_to_datepicker_ranges'; interface MetricsTimeControlsProps { currentTimeRange: MetricsTimeInput; diff --git a/x-pack/plugins/infra/public/pages/metrics/containers/metadata_context.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/containers/metadata_context.ts similarity index 84% rename from x-pack/plugins/infra/public/pages/metrics/containers/metadata_context.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/containers/metadata_context.ts index 4ecf7fa15548cb..b8995d27d4dbe9 100644 --- a/x-pack/plugins/infra/public/pages/metrics/containers/metadata_context.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/containers/metadata_context.ts @@ -5,5 +5,5 @@ */ import React from 'react'; -import { InfraMetadata } from '../../../../common/http_api'; +import { InfraMetadata } from '../../../../../common/http_api'; export const MetadataContext = React.createContext(null); diff --git a/x-pack/plugins/infra/public/pages/metrics/hooks/metrics_time.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/metrics_time.test.tsx similarity index 100% rename from x-pack/plugins/infra/public/pages/metrics/hooks/metrics_time.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/metrics_time.test.tsx diff --git a/x-pack/plugins/infra/public/containers/metadata/use_metadata.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metadata.ts similarity index 76% rename from x-pack/plugins/infra/public/containers/metadata/use_metadata.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metadata.ts index 1ba016195bef40..d2a20d449d89ac 100644 --- a/x-pack/plugins/infra/public/containers/metadata/use_metadata.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metadata.ts @@ -8,12 +8,12 @@ import { useEffect } from 'react'; import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; -import { InfraMetadata, InfraMetadataRT } from '../../../common/http_api/metadata_api'; -import { useHTTPRequest } from '../../hooks/use_http_request'; -import { throwErrors, createPlainError } from '../../../common/runtime_types'; -import { InventoryMetric, InventoryItemType } from '../../../common/inventory_models/types'; -import { getFilteredMetrics } from './lib/get_filtered_metrics'; -import { MetricsTimeInput } from '../../pages/metrics/hooks/use_metrics_time'; +import { InfraMetadata, InfraMetadataRT } from '../../../../../common/http_api/metadata_api'; +import { useHTTPRequest } from '../../../../hooks/use_http_request'; +import { throwErrors, createPlainError } from '../../../../../common/runtime_types'; +import { InventoryMetric, InventoryItemType } from '../../../../../common/inventory_models/types'; +import { getFilteredMetrics } from '../lib/get_filtered_metrics'; +import { MetricsTimeInput } from './use_metrics_time'; export function useMetadata( nodeId: string, diff --git a/x-pack/plugins/infra/public/pages/metrics/hooks/use_metrics_time.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metrics_time.ts similarity index 96% rename from x-pack/plugins/infra/public/pages/metrics/hooks/use_metrics_time.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metrics_time.ts index 2ed86863535ff7..98803ef2e69c6a 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hooks/use_metrics_time.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_metrics_time.ts @@ -12,8 +12,8 @@ import * as rt from 'io-ts'; import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { constant, identity } from 'fp-ts/lib/function'; -import { useUrlState } from '../../../utils/use_url_state'; -import { replaceStateKeyInQueryString } from '../../../utils/url_state'; +import { useUrlState } from '../../../../utils/use_url_state'; +import { replaceStateKeyInQueryString } from '../../../../utils/url_state'; const parseRange = (range: MetricsTimeInput) => { const parsedFrom = dateMath.parse(range.from.toString()); diff --git a/x-pack/plugins/infra/public/containers/node_details/use_node_details.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_node_details.ts similarity index 75% rename from x-pack/plugins/infra/public/containers/node_details/use_node_details.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_node_details.ts index 189c48ba1a70c4..3bb6c98c8eac06 100644 --- a/x-pack/plugins/infra/public/containers/node_details/use_node_details.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/hooks/use_node_details.ts @@ -6,14 +6,14 @@ import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; -import { throwErrors, createPlainError } from '../../../common/runtime_types'; -import { useHTTPRequest } from '../../hooks/use_http_request'; +import { throwErrors, createPlainError } from '../../../../../common/runtime_types'; +import { useHTTPRequest } from '../../../../hooks/use_http_request'; import { NodeDetailsMetricDataResponseRT, NodeDetailsMetricDataResponse, -} from '../../../common/http_api/node_details_api'; -import { InventoryMetric, InventoryItemType } from '../../../common/inventory_models/types'; -import { InfraTimerangeInput } from '../../../common/http_api/snapshot_api'; +} from '../../../../../common/http_api/node_details_api'; +import { InventoryMetric, InventoryItemType } from '../../../../../common/inventory_models/types'; +import { InfraTimerangeInput } from '../../../../../common/http_api/snapshot_api'; export function useNodeDetails( metrics: InventoryMetric[], diff --git a/x-pack/plugins/infra/public/pages/metrics/metric_detail/index.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/index.tsx new file mode 100644 index 00000000000000..197a735f7fd1f2 --- /dev/null +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/index.tsx @@ -0,0 +1,140 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { i18n } from '@kbn/i18n'; +import React, { useContext, useState } from 'react'; +import { euiStyled, EuiTheme, withTheme } from '../../../../../observability/public'; +import { DocumentTitle } from '../../../components/document_title'; +import { Header } from '../../../components/header'; +import { ColumnarPage, PageContent } from '../../../components/page'; +import { withMetricPageProviders } from './page_providers'; +import { useMetadata } from './hooks/use_metadata'; +import { Source } from '../../../containers/source'; +import { InfraLoadingPanel } from '../../../components/loading'; +import { findInventoryModel } from '../../../../common/inventory_models'; +import { NavItem } from './lib/side_nav_context'; +import { NodeDetailsPage } from './components/node_details_page'; +import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; +import { InventoryItemType } from '../../../../common/inventory_models/types'; +import { useMetricsTimeContext } from './hooks/use_metrics_time'; +import { useLinkProps } from '../../../hooks/use_link_props'; + +const DetailPageContent = euiStyled(PageContent)` + overflow: auto; + background-color: ${props => props.theme.eui.euiColorLightestShade}; +`; + +interface Props { + theme: EuiTheme; + match: { + params: { + type: string; + node: string; + }; + }; +} + +export const MetricDetail = withMetricPageProviders( + withTheme(({ match }: Props) => { + const uiCapabilities = useKibana().services.application?.capabilities; + const nodeId = match.params.node; + const nodeType = match.params.type as InventoryItemType; + const inventoryModel = findInventoryModel(nodeType); + const { sourceId } = useContext(Source.Context); + const { + timeRange, + parsedTimeRange, + setTimeRange, + refreshInterval, + setRefreshInterval, + isAutoReloading, + setAutoReload, + triggerRefresh, + } = useMetricsTimeContext(); + const { + name, + filteredRequiredMetrics, + loading: metadataLoading, + cloudId, + metadata, + } = useMetadata(nodeId, nodeType, inventoryModel.requiredMetrics, sourceId, parsedTimeRange); + + const [sideNav, setSideNav] = useState([]); + + const addNavItem = React.useCallback( + (item: NavItem) => { + if (!sideNav.some(n => n.id === item.id)) { + setSideNav([item, ...sideNav]); + } + }, + [sideNav] + ); + + const metricsLinkProps = useLinkProps({ + app: 'metrics', + pathname: '/', + }); + + const breadcrumbs = [ + { + ...metricsLinkProps, + text: i18n.translate('xpack.infra.header.infrastructureTitle', { + defaultMessage: 'Metrics', + }), + }, + { text: name }, + ]; + + if (metadataLoading && !filteredRequiredMetrics.length) { + return ( + + ); + } + + return ( + +
+ + + {metadata ? ( + + ) : null} + + + ); + }) +); diff --git a/x-pack/plugins/infra/public/containers/metadata/lib/get_filtered_metrics.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts similarity index 78% rename from x-pack/plugins/infra/public/containers/metadata/lib/get_filtered_metrics.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts index b485c90700145a..57ff182f01963d 100644 --- a/x-pack/plugins/infra/public/containers/metadata/lib/get_filtered_metrics.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { InfraMetadataFeature } from '../../../../common/http_api/metadata_api'; -import { InventoryMetric } from '../../../../common/inventory_models/types'; -import { metrics } from '../../../../common/inventory_models/metrics'; +import { InfraMetadataFeature } from '../../../../../common/http_api/metadata_api'; +import { InventoryMetric } from '../../../../../common/inventory_models/types'; +import { metrics } from '../../../../../common/inventory_models/metrics'; export const getFilteredMetrics = ( requiredMetrics: InventoryMetric[], diff --git a/x-pack/plugins/infra/public/pages/metrics/lib/side_nav_context.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/side_nav_context.ts similarity index 100% rename from x-pack/plugins/infra/public/pages/metrics/lib/side_nav_context.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/side_nav_context.ts diff --git a/x-pack/plugins/infra/public/pages/metrics/page_providers.tsx b/x-pack/plugins/infra/public/pages/metrics/metric_detail/page_providers.tsx similarity index 91% rename from x-pack/plugins/infra/public/pages/metrics/page_providers.tsx rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/page_providers.tsx index d3f10adec06ed7..597977d9d2735d 100644 --- a/x-pack/plugins/infra/public/pages/metrics/page_providers.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/page_providers.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { Source } from '../../containers/source'; +import { Source } from '../../../containers/source'; import { MetricsTimeProvider } from './hooks/use_metrics_time'; export const withMetricPageProviders = (Component: React.ComponentType) => ( diff --git a/x-pack/plugins/infra/public/pages/metrics/types.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/types.ts similarity index 86% rename from x-pack/plugins/infra/public/pages/metrics/types.ts rename to x-pack/plugins/infra/public/pages/metrics/metric_detail/types.ts index 2cc261df289772..3ec57e23a425d2 100644 --- a/x-pack/plugins/infra/public/pages/metrics/types.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/types.ts @@ -5,10 +5,10 @@ */ import rt from 'io-ts'; -import { EuiTheme } from '../../../../observability/public'; -import { InventoryFormatterTypeRT } from '../../../common/inventory_models/types'; +import { EuiTheme } from '../../../../../observability/public'; +import { InventoryFormatterTypeRT } from '../../../../common/inventory_models/types'; import { MetricsTimeInput } from './hooks/use_metrics_time'; -import { NodeDetailsMetricData } from '../../../common/http_api/node_details_api'; +import { NodeDetailsMetricData } from '../../../../common/http_api/node_details_api'; export interface LayoutProps { metrics?: NodeDetailsMetricData[]; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/aggregation.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx similarity index 89% rename from x-pack/plugins/infra/public/components/metrics_explorer/aggregation.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx index 76fa519ab37567..0c0f7b33b3a4a0 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/aggregation.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx @@ -8,12 +8,12 @@ import { EuiSelect } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; -import { MetricsExplorerAggregation } from '../../../common/http_api/metrics_explorer'; -import { MetricsExplorerOptions } from '../../containers/metrics_explorer/use_metrics_explorer_options'; +import { MetricsExplorerAggregation } from '../../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerOptions } from '../hooks/use_metrics_explorer_options'; import { metricsExplorerAggregationRT, METRIC_EXPLORER_AGGREGATIONS, -} from '../../../common/http_api/metrics_explorer'; +} from '../../../../../common/http_api/metrics_explorer'; interface Props { options: MetricsExplorerOptions; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/chart.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart.tsx similarity index 92% rename from x-pack/plugins/infra/public/components/metrics_explorer/chart.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart.tsx index c01452c6e2baf2..471406c396b715 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/chart.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart.tsx @@ -9,24 +9,24 @@ import { EuiTitle, EuiToolTip, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { Axis, Chart, niceTimeFormatter, Position, Settings, TooltipValue } from '@elastic/charts'; import { first, last } from 'lodash'; import moment from 'moment'; -import { MetricsExplorerSeries } from '../../../common/http_api/metrics_explorer'; +import { MetricsExplorerSeries } from '../../../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions, MetricsExplorerTimeOptions, MetricsExplorerYAxisMode, MetricsExplorerChartOptions, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { euiStyled } from '../../../../observability/public'; +} from '../hooks/use_metrics_explorer_options'; +import { euiStyled } from '../../../../../../observability/public'; import { createFormatterForMetric } from './helpers/create_formatter_for_metric'; import { MetricExplorerSeriesChart } from './series_chart'; import { MetricsExplorerChartContextMenu } from './chart_context_menu'; -import { SourceQuery } from '../../graphql/types'; +import { SourceQuery } from '../../../../graphql/types'; import { MetricsExplorerEmptyChart } from './empty_chart'; import { MetricsExplorerNoMetrics } from './no_metrics'; import { getChartTheme } from './helpers/get_chart_theme'; -import { useKibanaUiSetting } from '../../utils/use_kibana_ui_setting'; +import { useKibanaUiSetting } from '../../../../utils/use_kibana_ui_setting'; import { calculateDomain } from './helpers/calculate_domain'; -import { useKibana, useUiSetting } from '../../../../../../src/plugins/kibana_react/public'; +import { useKibana, useUiSetting } from '../../../../../../../../src/plugins/kibana_react/public'; interface Props { title?: string | null; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.test.tsx similarity index 96% rename from x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.test.tsx index 8ffef269a42ea1..5c0abb8fd845f2 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.test.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.test.tsx @@ -7,9 +7,14 @@ import React from 'react'; import { MetricsExplorerChartContextMenu, createNodeDetailLink, Props } from './chart_context_menu'; import { ReactWrapper, mount } from 'enzyme'; -import { options, source, timeRange, chartOptions } from '../../utils/fixtures/metrics_explorer'; +import { + options, + source, + timeRange, + chartOptions, +} from '../../../../utils/fixtures/metrics_explorer'; import { Capabilities } from 'src/core/public'; -import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public'; +import { KibanaContextProvider } from '../../../../../../../../src/plugins/kibana_react/public'; import { coreMock } from 'src/core/public/mocks'; const coreStartMock = coreMock.createStart(); diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.tsx similarity index 91% rename from x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.tsx index 75a04cbe9799e5..31086a21ca13f8 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/chart_context_menu.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_context_menu.tsx @@ -14,18 +14,18 @@ import { } from '@elastic/eui'; import DateMath from '@elastic/datemath'; import { Capabilities } from 'src/core/public'; -import { MetricsExplorerSeries } from '../../../common/http_api/metrics_explorer'; +import { AlertFlyout } from '../../../../components/alerting/metrics/alert_flyout'; +import { MetricsExplorerSeries } from '../../../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions, MetricsExplorerTimeOptions, MetricsExplorerChartOptions, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../hooks/use_metrics_explorer_options'; import { createTSVBLink } from './helpers/create_tsvb_link'; -import { getNodeDetailUrl } from '../../pages/link_to/redirect_to_node_detail'; -import { SourceConfiguration } from '../../utils/source_configuration'; -import { InventoryItemType } from '../../../common/inventory_models/types'; -import { AlertFlyout } from '../alerting/metrics/alert_flyout'; -import { useLinkProps } from '../../hooks/use_link_props'; +import { getNodeDetailUrl } from '../../../link_to/redirect_to_node_detail'; +import { SourceConfiguration } from '../../../../utils/source_configuration'; +import { InventoryItemType } from '../../../../../common/inventory_models/types'; +import { useLinkProps } from '../../../../hooks/use_link_props'; export interface Props { options: MetricsExplorerOptions; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/chart_options.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_options.tsx similarity index 98% rename from x-pack/plugins/infra/public/components/metrics_explorer/chart_options.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_options.tsx index 657c4cea30f3ab..ba28075ededb6e 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/chart_options.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/chart_options.tsx @@ -19,7 +19,7 @@ import { MetricsExplorerChartOptions as ChartOptions, MetricsExplorerYAxisMode, MetricsExplorerChartType, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../hooks/use_metrics_explorer_options'; interface Props { chartOptions: ChartOptions; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/charts.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/charts.tsx similarity index 92% rename from x-pack/plugins/infra/public/components/metrics_explorer/charts.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/charts.tsx index 3b639ee5e953a1..1e216a4227f9aa 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/charts.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/charts.tsx @@ -8,16 +8,16 @@ import { EuiButton, EuiFlexGrid, EuiFlexItem, EuiText, EuiHorizontalRule } from import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; -import { MetricsExplorerResponse } from '../../../common/http_api/metrics_explorer'; +import { MetricsExplorerResponse } from '../../../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions, MetricsExplorerTimeOptions, MetricsExplorerChartOptions, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { InfraLoadingPanel } from '../loading'; -import { NoData } from '../empty_states/no_data'; +} from '../hooks/use_metrics_explorer_options'; +import { InfraLoadingPanel } from '../../../../components/loading'; +import { NoData } from '../../../../components/empty_states/no_data'; import { MetricsExplorerChart } from './chart'; -import { SourceQuery } from '../../graphql/types'; +import { SourceQuery } from '../../../../graphql/types'; interface Props { loading: boolean; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/empty_chart.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/empty_chart.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/metrics_explorer/empty_chart.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/empty_chart.tsx diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/group_by.tsx similarity index 93% rename from x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/group_by.tsx index 3246a2aa4a7310..bfe8ddb2e08291 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/group_by.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/group_by.tsx @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; import { IFieldType } from 'src/plugins/data/public'; -import { MetricsExplorerOptions } from '../../containers/metrics_explorer/use_metrics_explorer_options'; +import { MetricsExplorerOptions } from '../hooks/use_metrics_explorer_options'; interface Props { options: MetricsExplorerOptions; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domain.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domain.ts similarity index 87% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domain.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domain.ts index 90569854b833b3..811486d355f2e5 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domain.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domain.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ import { min, max, sum, isNumber } from 'lodash'; -import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; -import { MetricsExplorerOptionsMetric } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; +import { MetricsExplorerSeries } from '../../../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerOptionsMetric } from '../../hooks/use_metrics_explorer_options'; const getMin = (values: Array) => { const minValue = min(values); diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domian.test.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domian.test.ts similarity index 85% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domian.test.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domian.test.ts index 4b45534d41db82..f94c6b6156ae4b 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/calculate_domian.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/calculate_domian.test.ts @@ -5,9 +5,9 @@ */ import { calculateDomain } from './calculate_domain'; -import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; -import { MetricsExplorerOptionsMetric } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; -import { MetricsExplorerColor } from '../../../../common/color_palette'; +import { MetricsExplorerSeries } from '../../../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerOptionsMetric } from '../../hooks/use_metrics_explorer_options'; +import { MetricsExplorerColor } from '../../../../../../common/color_palette'; describe('calculateDomain()', () => { const series: MetricsExplorerSeries = { id: 'test-01', diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metric.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metric.ts similarity index 76% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metric.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metric.ts index 33ec2ce2715a3c..d07a6b45f02bef 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metric.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metric.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; -import { createFormatter } from '../../../utils/formatters'; -import { InfraFormatterType } from '../../../lib/lib'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; +import { createFormatter } from '../../../../../utils/formatters'; +import { InfraFormatterType } from '../../../../../lib/lib'; import { metricToFormat } from './metric_to_format'; export const createFormatterForMetric = (metric?: MetricsExplorerMetric) => { if (metric && metric.field) { diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metrics.test.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metrics.test.ts similarity index 94% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metrics.test.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metrics.test.ts index ec41e90e441a44..e039d5d4b3eeb4 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_formatter_for_metrics.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metrics.test.ts @@ -5,7 +5,7 @@ */ import { createFormatterForMetric } from './create_formatter_for_metric'; -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; describe('createFormatterForMetric()', () => { it('should just work for count', () => { diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.test.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.test.ts similarity index 88% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.test.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.test.ts index cbf6904d246c70..367c472f414e42 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.test.ts @@ -5,7 +5,7 @@ */ import { createMetricLabel } from './create_metric_label'; -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; describe('createMetricLabel()', () => { it('should work with metrics with fields', () => { diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.ts similarity index 80% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.ts index b6453a81317b13..1607302a6259a5 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_metric_label.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_metric_label.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; export const createMetricLabel = (metric: MetricsExplorerMetric) => { return `${metric.aggregation}(${metric.field || ''})`; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.test.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.test.ts similarity index 97% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.test.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.test.ts index 05637642b8dd9e..47bb4c8c57716d 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.test.ts @@ -5,14 +5,19 @@ */ import { createTSVBLink, createFilterFromOptions } from './create_tsvb_link'; -import { source, options, timeRange, chartOptions } from '../../../utils/fixtures/metrics_explorer'; +import { + source, + options, + timeRange, + chartOptions, +} from '../../../../../utils/fixtures/metrics_explorer'; import uuid from 'uuid'; import { OutputBuffer } from 'uuid/interfaces'; import { MetricsExplorerYAxisMode, MetricsExplorerChartType, -} from '../../../containers/metrics_explorer/use_metrics_explorer_options'; -import { MetricsExplorerOptions } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../../hooks/use_metrics_explorer_options'; +import { MetricsExplorerOptions } from '../../hooks/use_metrics_explorer_options'; jest.mock('uuid'); const mockedUuid = uuid as jest.Mocked; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.ts similarity index 91% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.ts index 20706f563ec637..559422584f579a 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/create_tsvb_link.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/create_tsvb_link.ts @@ -7,8 +7,8 @@ import { encode } from 'rison-node'; import uuid from 'uuid'; import { set } from 'lodash'; -import { colorTransformer, MetricsExplorerColor } from '../../../../common/color_palette'; -import { MetricsExplorerSeries } from '../../../../common/http_api/metrics_explorer'; +import { colorTransformer, MetricsExplorerColor } from '../../../../../../common/color_palette'; +import { MetricsExplorerSeries } from '../../../../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions, MetricsExplorerOptionsMetric, @@ -16,12 +16,12 @@ import { MetricsExplorerChartOptions, MetricsExplorerYAxisMode, MetricsExplorerChartType, -} from '../../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../../hooks/use_metrics_explorer_options'; import { metricToFormat } from './metric_to_format'; -import { InfraFormatterType } from '../../../lib/lib'; -import { SourceQuery } from '../../../graphql/types'; +import { InfraFormatterType } from '../../../../../lib/lib'; +import { SourceQuery } from '../../../../../graphql/types'; import { createMetricLabel } from './create_metric_label'; -import { LinkDescriptor } from '../../../hooks/use_link_props'; +import { LinkDescriptor } from '../../../../../hooks/use_link_props'; export const metricsExplorerMetricToTSVBMetric = (metric: MetricsExplorerOptionsMetric) => { if (metric.aggregation === 'rate') { diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/get_chart_theme.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/get_chart_theme.ts similarity index 100% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/get_chart_theme.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/get_chart_theme.ts diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.test.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.test.ts similarity index 90% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.test.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.test.ts index 4cb27b4fb65c3e..6b27627a9fb5b2 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.test.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.test.ts @@ -5,8 +5,8 @@ */ import { metricToFormat } from './metric_to_format'; -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; -import { InfraFormatterType } from '../../../lib/lib'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; +import { InfraFormatterType } from '../../../../../lib/lib'; describe('metricToFormat()', () => { it('should just work for numeric metrics', () => { const metric: MetricsExplorerMetric = { aggregation: 'avg', field: 'system.load.1' }; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.ts similarity index 82% rename from x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.ts index 63272c86a5dc79..1dbbf97a32217b 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/helpers/metric_to_format.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/helpers/metric_to_format.ts @@ -5,8 +5,8 @@ */ import { last } from 'lodash'; -import { MetricsExplorerMetric } from '../../../../common/http_api/metrics_explorer'; -import { InfraFormatterType } from '../../../lib/lib'; +import { MetricsExplorerMetric } from '../../../../../../common/http_api/metrics_explorer'; +import { InfraFormatterType } from '../../../../../lib/lib'; export const metricToFormat = (metric?: MetricsExplorerMetric) => { if (metric && metric.field) { const suffix = last(metric.field.split(/\./)); diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx similarity index 88% rename from x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx index 7c3e0444dbeea6..e9826e1ff39552 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/kuery_bar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/kuery_bar.tsx @@ -7,9 +7,9 @@ import { i18n } from '@kbn/i18n'; import React, { useEffect, useState } from 'react'; -import { WithKueryAutocompletion } from '../../containers/with_kuery_autocompletion'; -import { AutocompleteField } from '../autocomplete_field'; -import { esKuery, IIndexPattern } from '../../../../../../src/plugins/data/public'; +import { WithKueryAutocompletion } from '../../../../containers/with_kuery_autocompletion'; +import { AutocompleteField } from '../../../../components/autocomplete_field'; +import { esKuery, IIndexPattern } from '../../../../../../../../src/plugins/data/public'; interface Props { derivedIndexPattern: IIndexPattern; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/metrics.tsx similarity index 91% rename from x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/metrics.tsx index a49e42c9cac0e2..612735e2ba772e 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/metrics.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/metrics.tsx @@ -9,9 +9,9 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback, useState } from 'react'; import { IFieldType } from 'src/plugins/data/public'; -import { colorTransformer, MetricsExplorerColor } from '../../../common/color_palette'; -import { MetricsExplorerMetric } from '../../../common/http_api/metrics_explorer'; -import { MetricsExplorerOptions } from '../../containers/metrics_explorer/use_metrics_explorer_options'; +import { colorTransformer, MetricsExplorerColor } from '../../../../../common/color_palette'; +import { MetricsExplorerMetric } from '../../../../../common/http_api/metrics_explorer'; +import { MetricsExplorerOptions } from '../hooks/use_metrics_explorer_options'; interface Props { autoFocus?: boolean; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/no_metrics.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/no_metrics.tsx similarity index 100% rename from x-pack/plugins/infra/public/components/metrics_explorer/no_metrics.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/no_metrics.tsx diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/series_chart.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/series_chart.tsx similarity index 93% rename from x-pack/plugins/infra/public/components/metrics_explorer/series_chart.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/series_chart.tsx index ed7a994dd2bbec..ad7ce83539526a 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/series_chart.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/series_chart.tsx @@ -13,13 +13,13 @@ import { AreaSeriesStyle, BarSeriesStyle, } from '@elastic/charts'; -import { MetricsExplorerSeries } from '../../../common/http_api/metrics_explorer'; -import { colorTransformer, MetricsExplorerColor } from '../../../common/color_palette'; +import { MetricsExplorerSeries } from '../../../../../common/http_api/metrics_explorer'; +import { colorTransformer, MetricsExplorerColor } from '../../../../../common/color_palette'; import { createMetricLabel } from './helpers/create_metric_label'; import { MetricsExplorerOptionsMetric, MetricsExplorerChartType, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../hooks/use_metrics_explorer_options'; interface Props { metric: MetricsExplorerOptionsMetric; diff --git a/x-pack/plugins/infra/public/components/metrics_explorer/toolbar.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/toolbar.tsx similarity index 88% rename from x-pack/plugins/infra/public/components/metrics_explorer/toolbar.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/toolbar.tsx index 0fbb0b6acad176..81971bd31a9739 100644 --- a/x-pack/plugins/infra/public/components/metrics_explorer/toolbar.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/components/toolbar.tsx @@ -11,23 +11,23 @@ import { IIndexPattern } from 'src/plugins/data/public'; import { MetricsExplorerMetric, MetricsExplorerAggregation, -} from '../../../common/http_api/metrics_explorer'; +} from '../../../../../common/http_api/metrics_explorer'; import { MetricsExplorerOptions, MetricsExplorerTimeOptions, MetricsExplorerChartOptions, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; -import { Toolbar } from '../eui/toolbar'; +} from '../hooks/use_metrics_explorer_options'; +import { Toolbar } from '../../../../components/eui/toolbar'; import { MetricsExplorerKueryBar } from './kuery_bar'; import { MetricsExplorerMetrics } from './metrics'; import { MetricsExplorerGroupBy } from './group_by'; import { MetricsExplorerAggregationPicker } from './aggregation'; import { MetricsExplorerChartOptions as MetricsExplorerChartOptionsComponent } from './chart_options'; -import { SavedViewsToolbarControls } from '../saved_views/toolbar_control'; -import { MetricExplorerViewState } from '../../pages/infrastructure/metrics_explorer/use_metric_explorer_state'; -import { metricsExplorerViewSavedObjectType } from '../../../common/saved_objects/metrics_explorer_view'; -import { useKibanaUiSetting } from '../../utils/use_kibana_ui_setting'; -import { mapKibanaQuickRangesToDatePickerRanges } from '../../utils/map_timepicker_quickranges_to_datepicker_ranges'; +import { SavedViewsToolbarControls } from '../../../../components/saved_views/toolbar_control'; +import { MetricExplorerViewState } from '../hooks/use_metric_explorer_state'; +import { metricsExplorerViewSavedObjectType } from '../../../../../common/saved_objects/metrics_explorer_view'; +import { useKibanaUiSetting } from '../../../../utils/use_kibana_ui_setting'; +import { mapKibanaQuickRangesToDatePickerRanges } from '../../../../utils/map_timepicker_quickranges_to_datepicker_ranges'; interface Props { derivedIndexPattern: IIndexPattern; diff --git a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.test.tsx similarity index 96% rename from x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.test.tsx index 874ac0987023bd..f0734f76cfacd9 100644 --- a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.test.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.test.tsx @@ -6,14 +6,14 @@ import { renderHook, act } from '@testing-library/react-hooks'; import { useMetricsExplorerState } from './use_metric_explorer_state'; -import { MetricsExplorerOptionsContainer } from '../../../containers/metrics_explorer/use_metrics_explorer_options'; +import { MetricsExplorerOptionsContainer } from './use_metrics_explorer_options'; import React from 'react'; import { source, derivedIndexPattern, resp, createSeries, -} from '../../../utils/fixtures/metrics_explorer'; +} from '../../../../utils/fixtures/metrics_explorer'; const renderUseMetricsExplorerStateHook = () => renderHook(props => useMetricsExplorerState(props.source, props.derivedIndexPattern), { @@ -27,7 +27,7 @@ const renderUseMetricsExplorerStateHook = () => const mockedUseMetricsExplorerData = jest.fn(); -jest.mock('../../../containers/metrics_explorer/use_metrics_explorer_data', () => { +jest.mock('./use_metrics_explorer_data', () => { return { useMetricsExplorerData: () => { return mockedUseMetricsExplorerData(); diff --git a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.ts similarity index 92% rename from x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.ts index 88e6d9d800661d..8a9ed901de0b06 100644 --- a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/use_metric_explorer_state.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metric_explorer_state.ts @@ -9,15 +9,15 @@ import { IIndexPattern } from 'src/plugins/data/public'; import { MetricsExplorerMetric, MetricsExplorerAggregation, -} from '../../../../common/http_api/metrics_explorer'; -import { useMetricsExplorerData } from '../../../containers/metrics_explorer/use_metrics_explorer_data'; +} from '../../../../../common/http_api/metrics_explorer'; +import { useMetricsExplorerData } from './use_metrics_explorer_data'; import { MetricsExplorerOptionsContainer, MetricsExplorerChartOptions, MetricsExplorerTimeOptions, MetricsExplorerOptions, -} from '../../../containers/metrics_explorer/use_metrics_explorer_options'; -import { SourceQuery } from '../../../graphql/types'; +} from './use_metrics_explorer_options'; +import { SourceQuery } from '../../../../graphql/types'; export interface MetricExplorerViewState { chartOptions: MetricsExplorerChartOptions; diff --git a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.test.tsx similarity index 96% rename from x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.test.tsx index bbc8778545b4a0..94edab54fb71e9 100644 --- a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.test.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { useMetricsExplorerData } from './use_metrics_explorer_data'; import { renderHook } from '@testing-library/react-hooks'; -import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public'; +import { KibanaContextProvider } from '../../../../../../../../src/plugins/kibana_react/public'; import { options, @@ -17,7 +17,7 @@ import { timeRange, resp, createSeries, -} from '../../utils/fixtures/metrics_explorer'; +} from '../../../../utils/fixtures/metrics_explorer'; const mockedFetch = jest.fn(); @@ -54,7 +54,7 @@ const renderUseMetricsExplorerDataHook = () => { ); }; -jest.mock('../../utils/kuery', () => { +jest.mock('../../../../utils/kuery', () => { return { convertKueryToElasticSearchQuery: (query: string) => query, }; diff --git a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts similarity index 91% rename from x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts index b32496fbf30a11..93aacb586a5cde 100644 --- a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_data.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts @@ -8,15 +8,15 @@ import DateMath from '@elastic/datemath'; import { isEqual } from 'lodash'; import { useEffect, useState } from 'react'; import { IIndexPattern } from 'src/plugins/data/public'; -import { SourceQuery } from '../../../common/graphql/types'; +import { SourceQuery } from '../../../../../common/graphql/types'; import { MetricsExplorerResponse, metricsExplorerResponseRT, -} from '../../../common/http_api/metrics_explorer'; -import { convertKueryToElasticSearchQuery } from '../../utils/kuery'; +} from '../../../../../common/http_api/metrics_explorer'; +import { convertKueryToElasticSearchQuery } from '../../../../utils/kuery'; import { MetricsExplorerOptions, MetricsExplorerTimeOptions } from './use_metrics_explorer_options'; -import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; -import { decodeOrThrow } from '../../../common/runtime_types'; +import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; +import { decodeOrThrow } from '../../../../../common/runtime_types'; function isSameOptions(current: MetricsExplorerOptions, next: MetricsExplorerOptions) { return isEqual(current, next); diff --git a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_options.test.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.test.tsx similarity index 100% rename from x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_options.test.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.test.tsx diff --git a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_options.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts similarity index 96% rename from x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_options.ts rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts index 2b802af8e8c15f..9d124a6af80123 100644 --- a/x-pack/plugins/infra/public/containers/metrics_explorer/use_metrics_explorer_options.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts @@ -6,11 +6,11 @@ import createContainer from 'constate'; import { useState, useEffect, Dispatch, SetStateAction } from 'react'; -import { MetricsExplorerColor } from '../../../common/color_palette'; +import { MetricsExplorerColor } from '../../../../../common/color_palette'; import { MetricsExplorerAggregation, MetricsExplorerMetric, -} from '../../../common/http_api/metrics_explorer'; +} from '../../../../../common/http_api/metrics_explorer'; export type MetricsExplorerOptionsMetric = MetricsExplorerMetric & { color?: MetricsExplorerColor; diff --git a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/index.tsx b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx similarity index 92% rename from x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/index.tsx rename to x-pack/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx index 0999cea59731ca..a213671e9436eb 100644 --- a/x-pack/plugins/infra/public/pages/infrastructure/metrics_explorer/index.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/index.tsx @@ -9,11 +9,11 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { IIndexPattern } from 'src/plugins/data/public'; import { DocumentTitle } from '../../../components/document_title'; -import { MetricsExplorerCharts } from '../../../components/metrics_explorer/charts'; -import { MetricsExplorerToolbar } from '../../../components/metrics_explorer/toolbar'; +import { MetricsExplorerCharts } from './components/charts'; +import { MetricsExplorerToolbar } from './components/toolbar'; import { SourceQuery } from '../../../../common/graphql/types'; import { NoData } from '../../../components/empty_states'; -import { useMetricsExplorerState } from './use_metric_explorer_state'; +import { useMetricsExplorerState } from './hooks/use_metric_explorer_state'; import { useTrackPageview } from '../../../../../observability/public'; interface MetricsExplorerPageProps { diff --git a/x-pack/plugins/infra/public/pages/infrastructure/settings.tsx b/x-pack/plugins/infra/public/pages/metrics/settings.tsx similarity index 100% rename from x-pack/plugins/infra/public/pages/infrastructure/settings.tsx rename to x-pack/plugins/infra/public/pages/metrics/settings.tsx diff --git a/x-pack/plugins/infra/public/routers/metrics_router.tsx b/x-pack/plugins/infra/public/routers/metrics_router.tsx index 7cb9de65e72917..0e427150a46cc6 100644 --- a/x-pack/plugins/infra/public/routers/metrics_router.tsx +++ b/x-pack/plugins/infra/public/routers/metrics_router.tsx @@ -8,12 +8,12 @@ import React from 'react'; import { Route, Router, Switch } from 'react-router-dom'; import { NotFoundPage } from '../pages/404'; -import { InfrastructurePage } from '../pages/infrastructure'; -import { LinkToMetricsPage } from '../pages/link_to'; -import { MetricDetail } from '../pages/metrics'; +import { InfrastructurePage } from '../pages/metrics'; +import { MetricDetail } from '../pages/metrics/metric_detail'; import { RedirectWithQueryParams } from '../utils/redirect_with_query_params'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; import { AppRouter } from './index'; +import { LinkToMetricsPage } from '../pages/link_to'; export const MetricsRouter: AppRouter = ({ history }) => { const uiCapabilities = useKibana().services.application?.capabilities; diff --git a/x-pack/plugins/infra/public/utils/fixtures/metrics_explorer.ts b/x-pack/plugins/infra/public/utils/fixtures/metrics_explorer.ts index e39d6f785d53e2..15159ad45c7f33 100644 --- a/x-pack/plugins/infra/public/utils/fixtures/metrics_explorer.ts +++ b/x-pack/plugins/infra/public/utils/fixtures/metrics_explorer.ts @@ -14,7 +14,7 @@ import { MetricsExplorerChartType, MetricsExplorerYAxisMode, MetricsExplorerChartOptions, -} from '../../containers/metrics_explorer/use_metrics_explorer_options'; +} from '../../pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options'; export const options: MetricsExplorerOptions = { limit: 3, From e4fa2ce0282a3070b18f700695dbc532791d4048 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 21 Apr 2020 16:09:35 -0500 Subject: [PATCH 54/54] Uptime 7.7 docs (#62228) (#63770) Add docs for 7.7 features: - Alerting - Duration anomalies - Settings Point security docs to heartbeat. --- docs/redirects.asciidoc | 2 +- docs/uptime-guide/index.asciidoc | 1 - docs/uptime-guide/install.asciidoc | 5 ++ docs/uptime-guide/security.asciidoc | 60 ------------------ docs/uptime/images/alert-flyout.png | Bin 0 -> 185486 bytes docs/uptime/images/check-history.png | Bin 287099 -> 227378 bytes docs/uptime/images/error-list.png | Bin 269428 -> 0 bytes docs/uptime/images/monitor-charts.png | Bin 147395 -> 149018 bytes .../images/observability_integrations.png | Bin 278119 -> 280039 bytes docs/uptime/images/settings.png | Bin 0 -> 66781 bytes docs/uptime/images/snapshot-view.png | Bin 95561 -> 55576 bytes docs/uptime/images/status-bar.png | Bin 37372 -> 86423 bytes docs/uptime/index.asciidoc | 2 + docs/uptime/monitor.asciidoc | 25 +++++--- docs/uptime/overview.asciidoc | 26 ++++---- docs/uptime/settings.asciidoc | 27 ++++++++ 16 files changed, 63 insertions(+), 85 deletions(-) delete mode 100644 docs/uptime-guide/security.asciidoc create mode 100644 docs/uptime/images/alert-flyout.png delete mode 100644 docs/uptime/images/error-list.png create mode 100644 docs/uptime/images/settings.png create mode 100644 docs/uptime/settings.asciidoc diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index 69a909419be19a..1bdba6f1ae0583 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -23,7 +23,7 @@ For more {kib} configuration settings, see <>. [role="exclude",id="uptime-security"] == Uptime security -This page has moved. Please see the new section in the {uptime-guide}/uptime-security.html[Uptime Monitoring Guide]. +This page has moved. Please see the new section in the {heartbeat-ref}/securing-heartbeat.html[Uptime Monitoring Guide]. [role="exclude",id="infra-read-only-access"] == Configure source read-only access diff --git a/docs/uptime-guide/index.asciidoc b/docs/uptime-guide/index.asciidoc index 7bbc01bb303f1f..09763182fa88fc 100644 --- a/docs/uptime-guide/index.asciidoc +++ b/docs/uptime-guide/index.asciidoc @@ -12,4 +12,3 @@ include::install.asciidoc[] include::deployment-arch.asciidoc[] -include::security.asciidoc[] diff --git a/docs/uptime-guide/install.asciidoc b/docs/uptime-guide/install.asciidoc index e7c50bb7604ce9..0ed1270ca92cea 100644 --- a/docs/uptime-guide/install.asciidoc +++ b/docs/uptime-guide/install.asciidoc @@ -56,6 +56,11 @@ Additional information is available in {heartbeat-ref}/heartbeat-configuration.h [role="screenshot"] image::images/uptime-setup.png[Installation instructions on the Uptime page in Kibana] +[[setup-security]] +=== Step 4: Setup Security + +Secure your installation by following the {heartbeat-ref}/securing-heartbeat.html[Secure Heartbeat] documentation. + [float] ==== Important considerations diff --git a/docs/uptime-guide/security.asciidoc b/docs/uptime-guide/security.asciidoc deleted file mode 100644 index 0c6fa4c6c4f56f..00000000000000 --- a/docs/uptime-guide/security.asciidoc +++ /dev/null @@ -1,60 +0,0 @@ -[[uptime-security]] -== Elasticsearch Security - -If you use Elasticsearch security, you'll need to enable certain privileges for users -that would like to access the Uptime app. For example, create user and support roles to implement the privileges: - -[float] -=== Create a role - -You'll need a role that lets you access the Heartbeat indices, which by default are `heartbeat-*`. -You can create this with the following request: - -["source","sh",subs="attributes,callouts"] ---------------------------------------------------------------- -PUT /_security/role/uptime -{ "indices" : [ - { - "names" : [ - "heartbeat-*" - ], - "privileges" : [ - "read", - "view_index_metadata" - ], - "field_security" : { - "grant" : [ - "*" - ] - }, - "allow_restricted_indices" : false - } - ], - "transient_metadata" : { - "enabled" : true - } -} ---------------------------------------------------------------- -// CONSOLE - -[float] -=== Assign the role to a user - -Next, you'll need to create a user with both the `uptime` role, and another role with sufficient {kibana-ref}/kibana-privileges.html[Kibana privileges], -such as the `kibana_admin` role. -You can do this with the following request: - -["source","sh",subs="attributes,callouts"] ---------------------------------------------------------------- -PUT /_security/user/jacknich -{ - "password" : "j@rV1s", - "roles" : [ "uptime", "kibana_admin" ], - "full_name" : "Jack Nicholson", - "email" : "jacknich@example.com", - "metadata" : { - "intelligence" : 7 - } -} ---------------------------------------------------------------- -// CONSOLE diff --git a/docs/uptime/images/alert-flyout.png b/docs/uptime/images/alert-flyout.png new file mode 100644 index 0000000000000000000000000000000000000000..7fc1e3d9aefe272c87fa4060cc932da341d9d716 GIT binary patch literal 185486 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�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 -krHaG$zcqz(!A&u+EpTy*2j_+5o1uFM^-Z&uH1 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 c4^ojS8y+BYZex3|P=G(T<&t<8 diff --git a/docs/uptime/images/error-list.png b/docs/uptime/images/error-list.png deleted file mode 100644 index 99f017f2945a5b6d9d11f3f92043cd1a71919262..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269428 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 F{}0~)oACeu literal 147395 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%0An6iD%68!6fw+`siBg2mDty}zcrj6_2~izzlog=O z+bJcuNoF#Pt{=&l6OOpGOH5)SW!>f$bNw;m0&|9Iwiu1)lzy}xUJMY6RIObz-kO0M z^~BM|Yum|;8X6RyQOXcevCXf_=1qbZJgZ>N+*@$$7LUS5x8sq-!d{k(4H`>-%1rR7 zh}HWC(X7kmni@IDMjq-S(5EnxbX?_xW4Y_i2|Iw5XqC@h;B>L3+$576W?HmrA0ml3 zY=uMKPOi9MlJZ*Ku^Y5^j}+Ny?U~2R#Ir;LV>J>!h?j*EXBJptz*L5KV8qmH*LKLc z4Wuaahu?q6Qw>AK|L9ZaXV+_mxBSb$!FI%(icj47xG2m;9P*Q)5OCy3dRI?Cc)GSq zec_&_%=Qy<4xKK?K@JnGd~)6MJt!3prF6uIVW-F~$;9JX0yeRD5SZvxvz%c300QWC z2yX*D20%G_a-5Eqq^H-@=2QyB9=D|to{dw5*OS|MmwAK5_-txYG4vDwfUtU{Yc;j6 zuyyErO_{Em7RPz2vr=a#u55Ly-{&x;LmS3-7I4|H!HNH`nw?J%=#q&tFoiNR(HRNq z3XOlW68c)Yg1Sn601ifYZyDKiH_HHYP;s&H zu?%{RzD2_M0^533cQiBQMllb3{;t!9a$(|hO1Jyt9R}dl1SoxLGE7JMR)KMpAl8uT zoyrE8cu?$hqL(KEa}C$N0QH=JmF$Bqt~$J|ELc)b3t{c&Z+n_GY$0`A49T@2cCGiUA*e>D`zqH+eQ54Ud~JU%bM9uU%~& zG%Mk2aUWo#=GOIt_;^f?FP=ms_!Vp8x$Tp(QpZWi+3w~13CvholdtXKZam|hd62zr z*6&{hwucWBvO}A~4i>KoynwNhn47Eo&Z`Ime;4?=gw4&cIbUWmfz~}hI1Ws&w+KBQ zc|c(VI(54Mb{gF`5_ndMf~J%%JNd8eC1IGN9ik!qXy zO)z%k{gm?r72XwYo_OJJEW@NrDL;pJn_D^$4e&c_5tziD!9zzBgCktMf-F8C_?|~uOuo~chGUZPH&95H| zKy83|lj*-xLH{vt3g8$H#L4aj+LOvEptV$D{O>B8f0|7Ek6obxIEM$~y&{r$7Cu(Z zyY37ekBB`3%)N4y3;x>9(MS3ZQ_RNwZ(Ak_KR-EKYCFDx7k4M|G)Z*?t*u5#q4gXt zt%xg!{WL)S%SIFBv+5rnk168c^)4baNU_@(jKODK@7>ByrevremY6Kk5leIReL?## zg0nx)Qg4|50T@R9+Xg~KKKroScnujHHHaD9Tieq`L8H`wHE^4r;?>_=qWmA1i25H~ zqVdj^Z>GX5SleX{cQj80$Bq!V02y$BH<75%t(=Rw8NX;!?y$~_Jo4$MEU~;J>WO2` z*LISM>YsGD3VwtbEA8C`{y0M@>V(~$f!Mb(#OkJ-cf1#Ck7Q5iv--yos#5&lc3*N! zk&5x8Fzk{AMHc9~=9aJayVTau6~36@O9Y8Xsx?4)y$WKLCmZ4A`73h zv_7QMc-S>A$449clg^MzlNfqJyLh{{B%|QOV5SY`yoON1rWj+=4?!~w7DDoTJJssN z6?i(7n;YllPL$$j47`zTMphAJmD^%01QiVdPq=AKhaTJ7Gf_;zd*%3|L**)LSQ8W$ zo|@fyM6KN!E5b{ubPOl_eqD&Lh`No4_d8JE-q5>45=UfT)m&!k=8h&+rBm;b?seR| z*{*&I&5%EfY*1E+8N0fEvn>%Cm3wr1eqG~|F|(V|1itVLq)+TlX1j$N>n%*J4mX@j z>}A)9k~WW2);Eo~e7w4yKWSnu17CP=CNfVNuOHxTq?}yS^bJ%=#%`Z;s@1KRf5ryb zjf;gLS9#l_jqxvXL-8Y1!DlU2l6`lfb(fs*adbRS+!4RkdQw+;%`=8Hr60H_45)^8 z-Z0y%um$Kxs?qacp7)09>vwI5!9E+`05drPsz2UaTa+aZI~Y?n#~VXCn#TW~LH#ch zQQQKM+X9YdV^{Oy1!oWPzC_N3_xHC>^4n9z6u`K8DcA2=K>qA}38+=fl4)n3vw_lc z-yMiHki@?7%;(j5PdHok16G=Dp+p|u>+&_k((1rrN@~ofH1fDIc@D*?QLAfxZ25|7 z(sh@^gU|EEICGbXwH-!nRqmf*9Z0)pl-SdKSHt)1n{k z>g=#PVy1`$hAkfXq7P~#6CW2C=rP>hhVzobLrAUGu3Um=s`wb*zpsM0#U0>XC)y6Z z+dk#K9hh3}z6j5aK-nicI`SlChguJ2tGYGmX=%ox6SOTb$ZB`FlX*0;*Bae}4Jin8 z=gO0{l}gL(@TT0;JYfa0-z&Y~bv)$R_oY(?0nU}Mg#h#<+}u--Ppt8;_O=#4ms%Ck z!ND;lvMa7Kd+o=-vT?=dEIfVnS@YD&c}3H9u%Qb-KVpg-H7Pi36KLo(S!_?;=4%hu09NT?E;~REmLad6ugCE1T|J+o;@X zR-D6EmX=2R4~%8zBIGvq{sk-%N9)?UAHTUpI%e|?iN7(cU1f$NX%O}lp%qz)paeIK7< z@dhet2qLKCP{{t!$)FrvKg=xB_6)Fc;KIgzF!qc7f(UzX0^AZE3jFIhy_oah6^J|0 z<}kwzmv)+|IvDzlS*zDH712=aBxY5A6FFNYamo?AdZJDB1u<>v4KqWSx#2st4|?X5 zA?CInfxJ5KG2)g0xtscep-779Kji|B(5)1;1~sZwK}qpql!UlPJNT#q zcn2^Fw~+Xg0kH-T!H^?i(snni273Q4N}kqRVY#9bSf8<;JI&?U?OQjgsPL@Eq8j-w zGM{{+f?suaVt@xoww*#L^QLY&x4Lls+|YmJ_bwzfH)LBxH+P$}^=WWb^*OF|F_H_N zR1ILSSj9`ZVn);U9an`q(7ijR^@6@Tu8XX1Y?wMg=ioN}U1Rt94l;tYk#z%(tPdvl zIn%t{>MA=51R00%R+DX+DXUBsfnuIDF!2{PZbc())9D0Ke7XhOrQzWX9|5+3J2am> zO#ivX-KZI@|8ijHqcq?F{ybgo0tXn*Q+S}cE0f*M@7}td-F#71WKcguDOhQGt?=-opTd%&653{{9wR68;8M9F^HY_>em5P*B(I*=UuMko`whzU zQ>8SICozamQsb=hr6Yc73aW}z`5||Ez-Lxx+NgnkC_ew)*2-TNb=t1>GirgxRgL?( zDQ%DI>LIG${4_y%4$>)(=7Qbl~{J!;4d(JmcDj9l^^ z7fWZAotV{^P|DkduoaH<)2e|pZIkZzEBOpGkHwruyu1h?Q9YGTx-7naC0B1h?tx={9EFkz#M?0*I5<}OLx$>lL_lq;DJqW}J zeJb_ndE>Nggx3jFa@7)=!+xBh88eYEjac@WM5xgc$21DWosn+M`>i2itKVKy9UInV zkd8{%Kq_v2a~02*lW{qTC*tx~sj)90 z$RLh>e&Z1&G}0)PDI9A%IM7e^vpK-{yl18pGZvH>sYQvea+s)eyC$`ow&2*8^g>M% zjvbj8|6A^j5B_7CfqyK} zhyPf$BD{rC<^!K#0iR?%8ymyhv5HR~;?(NY)0>pFp1e0^`M8XL973wH&y-idM%uFg zBB}M&u)hN{&tBYPYYlPJ>R&~x62Dd8Dg124HiqW>81PgznXQWW@z>&AGh}h)p$aRV z?~dGsI1{AqHId`mx0MMEUQMfeb3(l;O>9D4eLd;V)O&FA2b<&pt`^Dpgh#Hw(p9PP zXhgDWCcfg=HW-@x`|-ePI)Tzm&ZBCps5M`J5 z%DdK((Z_d?z^@TKs-Ym7++>@RdokZrt9Ww@HHjWQ&sV?=o(p!;ERLb*%V6qU0BIN{ zgl9Akz-azin8=ceF$ROq!u3 z$p2Nz{2A!_|9^~%0b%6ChIeGJ%yx|cA7mK<*fgqfI_>{lUUFGkW4&&or0~2I+1D&r zyyLihS+mjBVY_XXoq55{0(eWRF6UfsZUPAnJAKsZb@mR#G6LGDL+c+Be;#vAObHlB z8otJV;n+_eHx*evRS+?-kwA+Rx?NJ5^`tLayoEVy0~tWvx&2c%&Av&BR}myPLiHw4po zB(74ae__O>4%*xo{V8jPjf+ejZmb~Oan&KLEZot|&!4NKS&J>OwZFe_{B3WQZ-c(B z|9N>Gj?)#-ebZo~n;h@P?%`hSx%)zTH+tNBp7X}5TB7OvxjYtnqKQkZ@029*dj3t* z1TAbeCN*QQYUJ1BbcFzKL7*bk%$(YIJCHFdb^^osZS_Rk?`n&9V zfx>zYySR-gQO-{Z63LjS)hC(#-F(Ly9i>W}#CoLf2w{B{V2t2Ptu?_xG8OEp_AZK=a9;Jp^Yey(X&fN=~K@jy?_AuVJ-Z ztb?%*)}p{Wo;^LU%ghRw(HZ565jIcu#b(ym9`9hYQy?|?!*(%;Dp;!Hss%~cmKDM` z$?H{nSD6+a>JK~JuF8&*&{3qVpeUF7VuoTf$J5HCl0SG%UDn?b=&<`=x6+z5RdU(& z_xVqfGv3Y%bW>q`>lTJSasCVqc#lE*x}(LFmT4o}6uR2qg`JedS&iur+Z2PYFMS?? zlrE^mn?ZLOGzjih3&Rb?n91*lAwAfU6Qstopd#l-VS*0%3~V6N10;Jk7`1ZMIlke& zxHr;YznU*m&gBJ;>v|)9nlxwbJK|)&C9d9QFh*^ErPV-I) z%z4)TZ!S+d~R=qvH#kT7XpOa7hFGloi zgBh2@lfLuTLDH@JJ%rJql)oUMh1pnM&!Ci-so<5Mr-#5^ynONb>29d^ekYgT_8CZM z7Zdg8qrZN!^C6&3BzpZI*7vQwUW*lUm^n8XQP{LMRVce@=qzO5lRmV5CxzVR$CojP&5cXK(H-!PrQ#DosHht+SHRFR z!Ll_Om=H`4ajvr5HO&}$-u8{#g)v$gq+afB#q=^uNSErHlB;&1LXum(9o-hvJe>}9V2B7Q%{ z0&T)*pt4A(rMwG+yaoDne(K<>e|C%udRc`8QdZMB=P`I8gv;eIW2FuA+kQLdToMyH z<@-_O3JwRN-2HuLgBup*T%{omfAgu8IL;ilufp%X=L=f$N(In{$apwfi5=yL3r`gJ zBjA`2XeC^#yg8JcP8LtNs8byCQt_)!`;3ok?vO;2k-aiZto4&mR@laL{Q0eC@-Fu` zyOi*Rxu&O7PtH|b>o0n0*>!RP6dH=%cPMo^E99t^WZWl}UnO%$Pf}r>DRTLua4F4# z#@Y{*;t0Wn0~*5+a26Ugt8v{>S1a%ln2^>7@`*XW?OwPQX%;l|_UtEio+TYf%|&o>H5{0YbPCj2t_2~_6G^Ad%V@jfDY%Xnbjs*e%4(IzIedd6~#Fgy_uD@1@3_@UFP`07QVEX-=`os0>PSuthV=Q*B zT@=UQwkI&^9(uZ>ZuHcwDam5Bg?9Ki*kB<_a=!E@%{oeym;RcLG1UI2QF(F7ZdqU) zVxq5i7LZuwr_W+#KdnEtB0Gpimqe}rmu*~hL$DQyqM3q(&N4p0eIcPn)tcp#aH<~$ z=lKml&_+yz$k2Ni96D>(Wwk;A<&m}(bG}IS-msB#icf>?M+#{r-(B>Ek3vNBlB_R8%+LK zD_A|nbgjdNA^7y*9&LLf|90BLg@b(NUtli)$vr|)5#m0NFNcWP~crMViP?Dr^ zlWQozXnCYb_Bw&WcU!{{Vp90(;J)+Skgo}33=2Xj{>*3BvWM$n|5`$kJB--MSL zH30{f^jWOTTFp@mPIXg>m7WDC0&OY(UCWECi@QV&tfVFQQk@#%`8gj>(pc7Hg z#b*8f*m7~~+&S!W|x~JD2 z$)?tZKZ;HKKb$E`;7rAb{>07U|Hr!NfXEvPB#v^Lrt=v<$0jW9>m0b6Cb%`&-7nRM z=u{DDEyjE4>iYN?aBVPo&W+jSk4adNh8nJ-`ysjC5|BQg*k z7ot;oJ$_|z&*$n56T4UH0{ckDp6p02Y(~yI4h}XV`xPH;>zywi<;~asKsmbPw%+pk z{>qS-8KvL?&XyrN!0yY^=t9_j@tU+op#0K35Y^cZ?z$FjvPrnfctJeSRS$XO6D){S zW4K6rC?SgoCTx3TF#{?_g|4&Cg1(0{GvI*<;TJPPX0xEqA>iYc*jO!t4qqm5^yCy} z=5&1}Z9D@9y9j&wVZ#ObOthilmR5+%RKm9U)SGYLtJ17@Eh=}J+y^5lpdWpGz>;eoLrWy4aAHNvwyJ`;{vp(5G zb#`_Abg~(4?c}7E)N_AxeemRi-dz}(cnoX|&;;gkKLkssh1;*2o7X|kxARUE*0T64O3GQ(7jR-e5*Z403m0Qg z&@UtMi4|H9)P0*$7th9!#p;Tdy9&nI{f;-3KCy)({tEVJ2Q_SNEkB;bXgcMI4)<6E z+ZDNdz}t)*!64dk$y>)SA|ux$0Yy_NxA(vER4WU_Fn#WgzrS_dHC;pPz;%6OWY@<` zM;;_(T_3PKT!DOb7x(sKFC~{%yu{+%h!8u`tWd5|?BTI%TEJE~AxoX23K3}YJqB^N zvSBZga=~Q=kf!pb-xTbWqtv)#JKg$$$EssXz$9iO%3peO^Tx`+lmmh;B)S!wH=~f! z_qzGYvd~VJ{tB@4im^F0KF{8vcTCi>Mc!nyPei6np=7>x`m>GU<9>-X5^`m;)Y9&F zY3RCX>2hn$qdjpTQkC`ZHjS=y$?3QH=5{CZApv^7W(c^>2Jplz=gtemXGSm?Oc1Ly z2Ykgl>BN_6c~f1TFD!Q#yilTOqPn;a>Wh$RWo|}z?KiD6GBVQCii=F=*xT}JUzU0u z_n?R?xOV**TH4CiGLNcrJtb(o_YASMY7db6Wn*TDb;#|ggMWx0-mIl5vfljJn2EzL7h{g#Ox<>ZG4Cp`g#_rb@`s^2=R30_9% zsKTa%Qqm9a^iJ2&gCDEKfGS;u=BYNX8-bP|ep z8N5;gYV9*>Bvgh}02%b*mQOWyy;@}&$6emaxj|-HOdc>-9jIkN>A$)lzOd>J;APBj zECGKtgPJb(oPO+s=)d&W)`*StfrN6L?56MH0(D_3*zoxCFoX#|aRiwe94|y6xs+@! z_gaTH8!-`MPb^A{%@?c$BtI=%p!YJy>aGCq2R?RIA_RUA48{%QOr{1a=IjrTW$SJ< z-Ca@5HF|V?POW{JB!y5Le>lx#yK2%(cvWrbw=MMDJ;R=xr2=nz+=ct)+V0G=62mT% zUvydoqjt5@z;i4*hxo#jio`;%5D^euqAUjP-R~}|fH*AbkFhu0=%FNx@;;CJwrTi3;~L`(1D%pg&OSxLh&{B4kb<22=V&QmE#~#?E^i4U7%|3| z?J!YLdnqd7Yh_fvzSUOQEdB+(8ltXQF3Nl(vVh<&5wrmJ>L%iC)?nou=GW4TU)d{c zOZ3<%?vLXtZR*9DzV#8rm0pEfI4^YzP`C}0)V#lMUs>QF(8PmpQDIH)x%g^xVg}Kk zz?oLRv;}VfeL=?wF{%udGD}11fTU-$jnT*iEaSPv$FS zF5P|uh0$bi7MNL!sJX87u``+}a9+z{L`AAV#0?A#d=1*wdPhN#s#W#FbR>=XJLbJ? zu{;k5BzqJ>k8pbfXFEJQa}AkTYU^S&8?{G5MqZA$`c6G`zQ+}it8_2e@)h}TEe2oE zY5psGgP~=8fNMBM!Q*5bjjAJ)`>{k=3K$M2|s@1!R4ZA4_$=K_Pd-H5LLbv0=&{h1MIOT9WDXaS5oXN=3Ef5)mj!2s#Q` zLf{5NUglZAt!JFpQ6_+Z>#tLHmTEfEda+x6Pp$Xdh)TK1^^~*m{*J8!es$2~RUC7^ z)~5zoz%*H`Y1BEAN7L*09k2B*-=3fPi)fV_^Qac6hXTXEi+fd1w+f*@9 zB^Z+QGvWKMar?LOUT=iA6yv_QzqoR6Mr*0PIXc5CUhWEi;kW&RMQaeMHh*g?Tsf77(wIHmLgv8E$7QvCQt zFwzXJkY`|2zHPYl9C2*H6Zg{BzflX}@|T0T8GR}jBt^d8V-7Fr*Yz#$%;-Rk@a@jV zApZ$N`ma(&ZT-7nQgU67MPB;z<9DRi1S~VgDG>E%qiMf@X`i2aO5{qC%teryNM#XB z6{oh1guKV7%o-G`*=D7iN$49VKC^x58{id2?gz#J^5(9K*Jr46TB&+=Canr>9g$+=(2#-U9z5M%R-wNN~{ae^BTA? zbe%52d|6tX@jFrewmW>~H@gkN&F$@B8>ZeCG6_C@=C2q`ugf(pXBQWPmam!96=qz( z{FLADu&!(0-gN2HaubH`k)2xDS57tuHdydW>YPZS>%tp~kMAU`^^!KRQhTugh88N5BQ@5)+;k?ie@YWT}X&T>)_n?y5CP~4s9 z33xt-W#xMP+H_&T-b6KeKc9Tu3*IYIus4r75cT*;?Q2GQ$H~kjgCMU!2%mGFA|M9EJ2C{P@OQ>#`P60_GfpD7ZBC!s^I@&@EY5 z0Ur0^Qkez`v_d$v>))wrNU*?8n{}13z@rca6O8*8vlEV|j4c^*<9o@4@fYQ&_(03cw+NXJbTc^NH^TI4qPjpJI zQL)&NUUlp=c%xLpIrLOQw)3i2rL@kT1CRVu%~G!er}ee*Dvo}Qp;m=Ja&o6e5ffGM zW!_YDNzVh6?KFU~!NEN*5saiLuLQcXe0Y`>kf zf(PE+54?X(`0Y34z{q)3;H2ej?(A&IB7^WPiz5D*>(Z&46aFm7T&5%%Jf=MjN;iZ4 z?u~|o=C1DMYyU2h6Y@=zgo@s}nAzTah)d1{r$3p&KR_4s4rsRHdh>{xkfl=dq{2Hx z_yk&m?$SXEba%#zW01@IBzA8+pj@aGrdFP!SWY{T!G16meUh(MEX2>R8$xu6&&^Ge zh}a{W;|X7Q`)w=)VHwqebUt(_em^m*Rr#$NAPvv}$l}C$2GP$v}gu$?6G~cJw^m+ba zyKvl=3xsXY*erSM{0TpzIrMIt`}@T9ob{w1S)8|$JJV!?A(O=3krmOnoVDUiABr`g z5~4Zz_tQe z=S*P226dwC^@Jr-RH(7vsL3oSI=1!$G)o!(x%Nev5rNII<~=S%W=;rz=|{#s`!eB& z3Q^92vgjaO%Zn%5x`{8L-=7|qnTV&lo>^*d2bKz+ayjkmw+B2g-T>yq_$TtBDx76v zKjNUG20EY3Kyu_$KcL~#1S~GT5igbop53B${Da`skIZ(8<~?k8#_rKr_K?8c&D*q4 zxnEs?FSAE^gDjUzkAi- zh)YTcNgL3Nj-q3f#JXkDtp3!UylvoF+%ZbA*7XC~<$WcYuuE$*nIuc8)B92&uX9%J zbNB>yb%NS{wIPy>?p842kZnfAY;XUoIC+^Bq|s*fbL{yj#*cSEDg zW715wJ~|H5c5StWoIfS!M`1fyMd$y0_|Y=|Wcy6!Jr-f`v@zYtMhqW#0^Q%zX>7SB z;KI{))G3Je1DhW#ml`vj{T*46k=DtbO~D$0U29yi9%oqMJZC_FIA%$ns|*pn?kHt? zfy*9R5|`s^%;Qx7V(gAo>8NecmVY{kV6q%X(Dx~96Da&&fC+=8Gqb>B29pLa)2Ce1 z*~cJEXfZm*uzF{beUJO7Q8r+qO*&@L%fB76_sza*+O)*_abo-&S|&4Y^M7! zFM!HcfZ0R3hlqdN4hy*>2glC>`+x?3clw30z;=Q}&03-xh%;&F@;q8BMW@Z`saHih z*Nnhp?!LX1Xt{z9RVf_o{5*yG#O}KvPC!7y;LYoLp?W+H~HGY?p%wId*7Azqyl7^KB zwTt+ATF*;zcvMmN2|#q*bSa9)*nrTk1eB7Ka52m!)FpkIGIMlaGy%LweIynku_5f# zbOt8-3jIat{)x3kUFCX@XV{s&Xjb0&(ghu-LAPwoM5TsaicffJ%%08R_$yjQp|y7| zPVB`;t-~APZ78$&OJm<%;$%f|xCk!9 zc85Q~K=rxe6U_P2_s(xyv4ljU;jL~fH5es)Hr*~MXy_5a2TmO z{`fIG6#&z6)D9%pU}++>CHifzIt;Jy^xRRL&c*aDghfPF;6qI+#|@Y3{BKo@6Id|; z=~`!@R@F$gjmOFM1l>+!{dChkR%@FH?YZZT4bshxdu0+KT=WmRX1K}3@VDq1x9mfg zr(i?<)4)MYf@HL<79Dv9;Ej7FZT3C4_haH|lw))O-67PE>^wajR!LRs&N5filFL{N z6}*9{2GF`kz9>yqRM}0#lg7R z{BOA~>fYqrIl3|_O@mxWXF<#apvszNj`wd#0C@15mE=b-;p3?gpmERE6nQv)&%pKzjN#&GVKsENa5Z@Z#_Q3m@MPn5a(?Mc+ez7F)LMA~)Yfv}i=7xF>)Z-X!z!j=FJCvS(onR9jBTYi+u2JX26&L?OS zg+cM5MnV9TI;WgkThMru2z3UEb?1PF8{4LvK+OS7<1rd5DMbBZd*J{qrlj|Z%Dz89 zyLI>x%*p)7rLuJ--G}xG2e)#=>rtNTYTNCs|0J!g)ln2wXQlz>dcEL1Mk}-a=IA{O z>5-;?bA2)2x2ax=UL9AqNguD)$f8YE=~RR^P0TE?IAipD2t zXLGbyPQR#osRI6ZU{A%B_O4l!hUM%GM`{peQ)s{3|G4qttLuXpm){T>vX7h zUiBW0sXy@a&2~dC3HF>Zq)OXIgRZYVhZ?7|dsjt1J+w`vM4PY^StY=?eUUem+=LX* zcECSVmU-0j)CwQz9TjjJKaFL9)l1%xXGFRm(8&fUwzJv;=*0R1Y51o79d*jKKW5BG9*01OW69hxBexK?zaaFDBoLwd` z@O>ZR>$6$tdaC#{W_4++?1LrKq4BaeKl9QayTG9pn-?w`iU9H0%0KywLLuKKK1x>b zrSlWQ1s9JUQKYV}xBtwRp>BrB16Eq4udBo`lsLs~{7yHz)r4(cS9?STEdTVq01c%~ z1|F_F~V^5SgGqw#D)%6a`lA)~e?eW_pMy~>e7yYtg# zi%RO03szP-D zWE=Xm0q~C7E0Ed`0d&Da>`? zA$r5E(ev@rsaJ$nzG<$fG_K`)P$w*@=$p`-oXvubjv!nG?gBhIP4=Cn^^V8boYq^T zD$|V~crRYOh!RsQ(Jj<8>WHijyJ+j210GBPkXJRr8cBacUNz&Q&dG@j2-?Ptq0bNX z5#P18)y9jmh)X?>5Ok1|H%jdMQxZS0#4)g%jF=+vB@Yh!ZEnN5)sxGr53yl&>5a;r z993V0wEKsKM{$v;Zr$^CpT*x@)X`t6 zbZY)VCn>i{e1C)r5XbGyMMGo@x2E#iN9?2)^CKtrL>DcL6`nO!m2r;09b5HW30kI# zmU9ArmXwLo)$Ka@lRs4uLfIx4wtoQUEBkn7%aq_v#27*?{#XoEdLOUm!snR>dhqgZ=qe8QA!SP*L@3e`UpEWuni*=-?M#*ts zPTRRvkJt^#{tBuWgHp!#{J!7YXoYC_zP5QJ&55^&P;bejCsGdZjTb^f$+F z5ePQ@~Q3q5|Ou$ki> z{i|E2FW=NO0pM*G_{I<+8^~u9r-B!d0X6&w3KCx|PS9b+xkh{69$RoH(TP`~^A%|D{0N{ zDI#`di;%F@&%kB0YxO7d0IX^IG3XoC5k^ASdkkAu5dFooaK2DwN>lT6O?>Jirw29M^bsmcc zrbtZ+Sb~w=Is79#g7e46sSC9_lO%ETm26h4jLwDXA?j9E*qpVX208GVZKG8}D_m~^_* zn4$>tUcN=h#&4abbg%Nn{s!m^e-@+4@%bk$+*v{~W~xs&1M1YrQgOMJl#cYGwx(=Y#bsmkgErryF41Ia1cwaHJj7U8uxiD#%S0{ zWPbod4JBl=4z&40(Cxn%8x;7vBk^0HSw&!!J(6kejonnB~a;xv0CLeCQ**V?6umQg*{GJy;c?(E+NJ_Zp4C z;@sLGyYRQp3bPSy;TuN59xfSYwnnoJSSagL6&6mkTSu_c7i15{=Y_iag_qMtMUgL- znX<>mP(ngds#`HkbjHSP?&QQ$E~V!8N@6Cr6xF9pu*rlMx`JP}0d!yCSdL_&J-7QK z6)RmaU#uxi02`64&cy+sO1&YWJOj(*(5$Z|VAW}*se)O&S&(W6 zIJ`6B1rB4jq1G(uRjP$&X4IDjVF1ec6=Vu!F9MG_O*y{AA!#>*hG0Pkv`LzoSJHh1 z9hetObL@cd@K9TGY{aIM{SE6W@Bc_-dzQ$9dmejn2ce34{Zb8(cE!^!%zXFW_pF%} zbhyuWcQRLpbGc#=o^9e~?|NVeeLnuZuv1jb(5wq|7#7x+g+^vy5$vW{xupCVTJaze zDz%bCdy%x|okZ@{3o0(>4Zv>oRT+YKtC^!sq8)U)5x3WsuDg#n*&~2uiNzuUREOQq z6kpn5F?^3RWIX3|U!+ChwZ%GWtvmYc$_B#A7U`{Gw?hkM_$+L*S>eue{N#yd2C-Yw zNwGd@^Ldj>^}$LoUtASrqsSOq#l}`F#``u&+FAj#%x$u;b3$%G?ZOgZMH~SoT@kJp z51_S6!h;N$YB_Wm?*aM*d{-61EO0uFY_M{)5%l6xpcG8BS(2~G&jOCm4UOl}_6`49 z%JjO#kamtFqpk>Ct~w1$Hkt;(I}qyO+}B?WWM4a zi#JWgjzn4Z?jxI4iy$wE;;&^iB^1qK=`fEv`E{6%@ULQDAG>IcVtp=Cvz;=(YWSXY zCKb>qcAPf9;o6Kk(s@sr#(pvovdpLq-1vP?1tP_c)S_613Q_rXodjIS03e>~WOzdx zl>!D3K1rzog8`r*daXG@n+1;4hxQjjvGCw{@`=T)GzA`~FOoPsmCb0n*DT{d13Z<2 zB_Xg`ttu6AzL4-mI|?HHq5rs+-r0%&9Z+M8TkV zCDYb^jFw;yeJqI24NYb+84xUs@0>4S#I)3Z8dp11|0s8q0|LO8rM2lkqt5++$KZd; zwAuN*>@VHO-EZNX%ZwrWaJ@D@--EcQfTN=ag?I?Pl@;=LOHKcJi9m7pGvxY@%VKUj zNg`L}R&8F@Cr4aAOLgBDm7o}?&_*Tw(8Ez6a`#U_v3E8TMoVd~;b7 zy;uVX`4wuWTo<(p@EK630OH%o$zVFPwJ7X72r5)m*u+)^YAlpVGp&+UPj{FFL@oZEn8~_8d#%Wj-~_SC)@8+dQSz7?A4qKHT-tk_~d&> z>Pkm0EL9hy8tUXVodZL2)bStt9S+ZoL2!d@+*TQlegmvPOJ&L@e^T4P9PtxagATsf zp;+5UnT4D`sgmqt=buSG%!oC~Hus5xXl)UVOonI{Y6D|@--u=j>bd)85$l$fljJQV zmh2N_*&Y$e;?f6Ew7#ZE`u@0J_|ao?6QX5!hUW;OV2KrRu39Vw9jTf30Mn&5JX6Ep+Je9wkMm;hh~_ zI2-7R7L9T%#1@whMoB2|4^(lZgegwuG!aQV0VH}J#j+ia>Qah=+^_iNk$8I~)b(;{ z0F|qWe*??^$J$#4Wx4+Qqlzdc4I%?Y)0{&ROUDUz~9qU&!dpeP8!CK6U++L1jvj0J`$XrM<8TPX>`FAh;_0{a9Mg zy@|;OZTE2}E*i5YkB+(hHRUVhWrv~`!TS3O+y(Li?~0s%&_oP+51Q^86BPWq9(?5# z1axM@6CO#XE2*L8Kw=6HtFQXoMD4#A2&^o&K3HKJfJ%xNHNOCc=^7OS)ow6M`-j9s zM1^J+ZGLtI|5lw>xAd;5F`MF84ol>fJFNs*+_2~7d!wh^O^^y_{y}#x(K3kBBZXvi zRPdCRe`_TL{w>RwXRjkf{ul7iYZ`u^CX19Tp8RZ1NI5TsfK0#<9uDa9f8Z3z5UW|t z3+0O3;IgaH^b6rGhmGQ^Tzc&z3OI-!vD3928rr;pOMq79VGwa(t%w-Q>htRg{l2OI z0&c_?f|`@tU*qsQ$uiu;o+nkzZFkWiRG!w594?iZ_D;PnR%GUy^VFSgP!YARrODt@ zeUJ=uY2Tx6ABKDWSlx&vq1QBiYZ6-cj_fOrZ5$ua5q*;mNNWt_mf9EU{UB`OQydk!v=ljz6RQ=X-R#^_h_uvf z4&Zn{bGJa)N-Ume|JM8S>oe`<{zQWtCPaZ)g_XMk!uB`YJFTqCg@@tE#u~2x#Plcl z<Rp?q+CiO@puG@-43t{Z6?=^au&}qCj^Vs7`S}&(q<-B_pf1s8sF~w@x=l9fgZ8Xn);t(+ei+M> zzjNxeqyTy-My1{(glrZcQ_FLSr3Ia~>Z8`R90uH>%U2Q3+oXU%Cs^LT1e!J{r;%#w z$o#$?YDnT6oW@cExS47>WBpk-v+kz1&1L|Fp$3$PmGW#(dz5dU^=iV&42LD+?B_*B z(8^%yq}^CJ1)G5Z=sHn~S{Fu}i-YLz>CwODjv&vIWNv%@QaoHg^}#^o7?#75 zY!v5oWf%aQH0_Jv(M-hz75qipUA6-N$5pw(l2z>cr_@b0kr2Xw{GzmwG_M;0u zbr{hcwK)NPlXp)UlF2j&lf%1YNdZQr>>K%7N;WN$}bKP}C7FayjAQAr?qGED~_$pc^k({bSya z(CqUOllVp$1{bGZlP(hBpX@0rWSjhh@Qi+^%JhCK{fVysnF|t`u{_-ZEZbOHU1}bv z8IQ?>ec7BMbp&8|S#qgGvP7M@gH=9k{6rG(i@*Mf4;r zdcNldfcE7WAfG`7dN~DdC!ByoyjfC>DKk8O2wQA*SbAUU{s|yKsK7>*S{*h&6yFT4 zRE1OsPjTc|LQdr>+83b=XzzajM@>?H_1}|$RoIp(Dr1TSbd=_M)s}4aK(!5+nVu52 zs@#Zt6}GPmDi;W#`MYAaE6^hR8(aL5+`IA=Auv!*oJVa(96L*K-o)_D#{hWXS^P<> z8p}0+dc&Rzef;22i+L2jfMKDZUm5WCE z0C*-OaH><&M|NFQ@(rc=298(;k92rc<;WswXQP-YQDxzq?oj}uLN_3QB|XyFbcta< zMZ!;NFXC@IO(plnQ0E11c)D-TZ>`>k)E_DYc5fiZ zlr?ETb=@!6aW`{;0kX>Vm9>Y5iJ&nzGLC)!YqZftXCQ!+um?vDs6(Ga2*xLa8R$Wi zm$}}ll$#YN3NPv`hlj&9^eYGhelLjvuEudW!WEmbwccvE-1Zx#^$pbAG6>_>z$Z>; zTiUHyEg?7sAAIPbb|(MK{ik;2C;v7*QDa4}*wHG-ezK=tMN-VO;A8tyD)`XeCteiD zkn^AK2?OH_CIg@S`Mqtz-MijwiGXU0j;s5o^ffI?VTn}ztu5_9?v2$2@-=59%xk{# zFZO=&dRtcD3f*NrP*ZiX7f0xePs5>K@{2B$oHgAReydtdNwPzy#+Nbt9KVDtK_`W* z{oCb|e-TZ9GPx75s8lmP`Yg68HdNo8hhl9EDTzrD;{?iH8f&3hMKXVJAYRwtNI2oU z+lyoni6!t(zj{kbe-?+%T+PG0pXWibMb}mx|8BO6XKWneUmaG@rgOrCfl{v8hdy@0Us^iz)z;WI-M$^(zG;_EqKF5VPl%Y06>=aH=w>pTa4Z6Lj30ya z@PX|1U5q^s``@!DkqghX^S?D7Y$VAj7iq2fplr=hVf*68#-tC*1(bA`w8PpN04H41 z(EMUMMYVf*8!nQb{NPgz30LOpk{&9P9h4F(9(^~<@k__)i7fOOx!&W}Uj)_eJt&y~ z2>5XvQ~J|QEMTW0AsOPZ&z_LX>#K3!=wz{vyvC$0IbCm;);g~O3;w0@bx-zI8 z`)D|w%VXY6T+Ea>3$(OTWR1&~84!cLb%Uz&N=PDcTlLk*7f9hS1|;!$Fp#}z$Q8AZ zz^A;Zmec91M#8BckeA`i{c?xWaxV?mc%0eKHlr^X3HX1iuJNDFePeN?{k!lg#Z*wy z^VWHyqc!s@J`ANp(OD11slM1MUebS_vlZ5~(Z4m zJt3KY(-<1rWHFGK`t>NMM*w7Y>&U6x*$nqfl^bp)q!J&nO&h-)&!tHFs`Jm`g>wgL zhU9lncUr+<8@NWqKxae8Xr`H=! z?RT(@)!ASwU7>tz75uPE3@tCqj1pjbZfap64Qx6B%?^vk4u9O>_T&k1p{LP6bMtcH z5#AjamIcbaa^owRgRYUjvO=2FF`ULKQzE|65uo>{uSX{^os^U(nTc?>MDG4RznP@C}K%q+6Q?vN#0)gYMPC6w5!_#NfOaH}M z05J~&FhFN1>Nj+;u6kOM3Kj9ra5(VG6*z`hhwVuI)J<=n<_PeIoKQmu3Yl;SIP;8V z?GF4IMFeZCBWx^FfW^l%eu%%lT{^8a{rB7@Juv)`6W z?s0qYk_|<^ol1EC`WXCyPP&AjSCN$!Zg>Ty1Gd@@L4Tb{Oo*Lgp@5E`$ER~^sFTE~ zN|~6{xEBh4y+896*q#G%Qtm~>;2*il1^7)JHewL0nq7YKH%rJsD)em zRJTG7{#3ThBt-1(@D$0o`USRQ;;2uJS88Oljf+)A;Sq}y(B4Dg$INHi==KsuB>!H| z;PE>3E9&eC5|sT%e>fW*Fn$lOHM_X~e2aZfgGB=??tcOy$khp-MhmT$t2QCrcnl#3 zh^LF)&#Q*8DNS(m;KPVb{G=is%N$GhzUs| zJQ}LoXsDhpl%W2yEiv+&uI7v$op~$vQ5D_+AfE)=^HU2s-79xdP*o4^R0$^@k3X4A zJog7GAvLDbPuR3Lg@nwXSH~854dA|9(T>#*smT3vd8^q0zt$dd0uxvChO5^!hk0!L zsflzvaZ%LPKgloEL@4JYLI8>6p1kH05lOFfZ%-V5vsqFr&(E_II}=d4xNLl%Ur)J0 zPTcq@XSN)b5CnB@$Yoe+Yo&KdP4!7V{&-3;D2ia$BKpl783T|F2yET{ zGJat(T)ATkQVPPV|$fbQTYSUqX02Pmx-BjJqqs#MMwbQ&8iV{O=~zLi1* zDgcBO!t+cZ8UAB!GtdZsZ@ zWT6pFIv3W-)58RwzJ2w!s_<7pz`4-jut+UVG>I*^Te+}#TE*C9e>zAx>HTW({9Wz5ch+J_b<|a@{mVDOtwz%>@)t^$04n za-s+3#1*uoS3^l$!87WNWCcQG&o!!g9K7tbbjd_B^M(1Yg}#PcOdt<8H}h~`PQ)M@ z7LS^c?LzMl92)SiqxD)4!1xN(PhC|ezF^a7*iLM+?_lEAbmGxPxIkzdJ(6L{oXypn z7Q%sTc`+ zAl@U9j@8DOgJ{nYNI*naQ8ujv^+663bW8rM+^(aA4$zs`+l@;raerMohLon+7uI$m+XoG%Xf1vC4+7T@%Na{ho8jQ#E ztS)X`@-MKv5KL_U#yw8ad;hLAq|D8kHM=0J)&n}W-LbOOR}ag?o>(4Z!_))s6B6EW z_f>A#au+8|cXs1A>(I|-rc=$(8UJ2fOvJiU%<14y3L9BC1SwRl@ z=8*L4i*^fLMi`+okG8WmSHW8o^OHe^e*!#kG4%~OC_-PdlQf<03ibR(Y&aslS?p)- z2q*e^>YiT;kq3@=6XIlk72vv8tKfJhd)2qm4&d!u9AF_#!I#lUZN&y&UZ7mOGN3D% zeutB1r9TS~Fz<3eyJtYYK{F1eq<(=CPKN$_N@gw9(^&r9+*E2zbKesuB|fiMC|^N5 z;Jx0O@>uDB3k+J(1w-GtxbT2`io<5A%wF*&0RNc&?o<#El8)116B7CX8km%sId#JQ zN*sB1bKrx|&kv3Q=S80P>WU@0d)@ne1VL?Vt(Glv9U%U-GR4)^b=4PrLAdObSml1= z@!xvH|C`%aBgO0VIwAT;F(OpCv+DF2{r!ZZu74`Y72Qxpub|ufcaqk5hE*+R+{xo{ zkz3}dzk@Hl3bATaBYphV*wu-e#k%Fv>&1@BZRr0(+-cHXfZsk#v5TGox7l}5?B>s} z_Zb;2@%ekH!hnU@Wz<1~(zDrBdPo;Lsu!zVtvAYAxIfESofU~O`*3G`J=)e_ZO88L zgCQaew{WU}0BzC&z`=hM5!*AL`2KN*(XFANRZqYCFF)E$Zf)D=(T}mHg0{DaU-X(n zx6&}cca|u3Q@eYS8Yw_excy1cqA_spA!K9}#wEQ9>yeViLEtRQkDs_Qvb$TOPqe=~ zo>rOSE2X)`UMb79(<~~~9{B98-+nIk@GUZ!CpwzUPE9_?pCAC9Z|hHtvsfm;rcaX% zq3~P2o1B`c*5uic;EUr|D}zw8x+MHU$ppf_Er*X0(Tf|^1Ni#0f$acg0){l-T*dKF zoPxsO(IdKV#694mi%@Rc7qsN|+;G5$@sHdvru^MI?>yZmWN>fD*S^>iI_50nb8vO# zqQR%Ld=+DZ#pY0z`3L{L?*I7rd;jt8D;BfeQ;6+kir+okmYbLJqbSlSOFF#Wj{q_% za#~ucx{G0ngV**(KUmh){-5pNc?v?o!{1a!B9o}$ciNz4^{N?#ky&x`BDZ17%PC}9 z7gmnGxtCEF@&6bYTjP;BsItj9lxDB|*diup48V*$(=nYw^&p3v{idiBu0GnQHQ(|h zUDaRuM{A^6^5_DgS8EfmwN9XhF(UebEM=M$KwsV`Gh?gmjE%aPS3$vAA^a!(u9nV^ zxMJ(^ACvtiM@tDny@(1Z5v1!^ACWdVoU?a?UcKAq?Zg#VNSDC@Wak6rAu;yNp5^1n zo5awoHP}2COKs}N`KRHCQU88NcH?i}Q+dPEHI~7z(Qdv^gn&Q7%yBx&in>t{xjlhH zBy7UFiL($g+mBH#=bmU6UmfN=1*CDiM+5m79wo z9zl%c=;*i}e>()O-fKNxzkdypJlF=8MysZDc6P2d9C&z}%LGp@x=-?z(Ee4fjpZIQ z{V$(sYXN)~8o#ECEZ)i~C7En2@z~G!tdH|Dfs_3FtbWju8y@U`x-l1ux9HJ1aSNYR-1D0fM(2jA(`7gsoPZ1S zP~)NOJX|e@&uYha+O;_>*hh^0mc36c<{D8yiDiAFUPWA!lkSL=gMJq_)zN!58PUvK z498}xhwU?rn$EvOLLza{^|{<`V};DRj6ArV+9+_}U9UYv1ZI4;EN?am@4cefz0XSC zCP^j!lEny43mC{z!FH4O(N5=(^Z1z-XK=e-yMWh$XW{o^nUb<7509MZzD7w&z-HQ= z`tbq&4Jc;zxdjEBVYGT1$U$m=IANvn0tewnMr=-n{N51w&fXJsnJ*hoTkZ+gk|m+Y z0?%P#`J_33Amm;#I=J6n(#pm$<6fNvq?wLBo2rIz?$6bkl}enQp4v5DEEorKo?%i5 z;GUV>dsiBCTlA+iVSpyv_9tDWeCun#P#5ejKrvt0x$$HWs(G<4rlpneo0pK5Hh*ip zkp30t;9&uy*lwyDE1dH8g|by!r|az>TI(pULFOpQvZA|-uPF3$~>Y| zzx4m2M(HpE734*d4i5`{OxnGzU#D*VbAgp{)=z>wIiA+b1CE7ukQbj7rKfTy8Rfc~ zcAtpUafNPk@I74#Ylax{mEaMbpzAt!dcO%?3h{AM?JvU@-Z(4>m}Nbm$A7ieVW%nb zJBs(~-~ZL$mGT&A&ll@(#r7pAa-?ie?;siDtq-n^0EEV(%9^6jkfhhj{a+vzWZe`P zbf9HNr-b`Y4nM~JtO0qH>u0>M>gz(k$B?gvmy0~wP?mpKI9Km2-$vgg+bJF{-fo=2 zSw)xG=YO^v7ztRVV&;S-C~ltf9v%2EB=McjdMcFi-xC$Si@SEwgD0BuH52~GU-1sR zunHQAdIlJ-V3c2;-%FXE$(HHj1pKYKJiy876PxWeo#k3RR))w{LR3XeD}X>{>N!6F zhmX*JnYtguR)bc_J-8I|MGG7eU`cEOzJxd?cg?$R-wv-Q!Vab7s+u8ej?XeY@w4sB zK2`i!d6d%9%y^uF3&IsFp8gIW>6p~J_XD>sy?mppAS>IkGY<6&uytI1+jM8pK3B2% zC`TdH*XJq9QXi9GuZw`8WS6~(3Da1<3O&?gqx1jQ*nkQ|$%EoD;WP`#!FGra^?ZUV3Ij^qhGjyF?gGtaG#r_n(pD$L7NFtzB zuE}lxIM@qpCdSE{ldodICf>Le9PTDX^1wH7gq( z0%_NTNi>9u`Ei}Rp8FQ+9|}8W-Iuq;YT|5r@i`BwBs_~4lNu0ub;hJ4WGCri_n{OS z_V`M*fcxgl#y_So{MW_5Q?OI{$PagqDDv#jSTj0!h)QRG$m9L(5rJ~95#ft(Q3Rjd z+=%T1)y1(9F|bp&2n*b#NTsC8Z^he0P%oed03XJ4WWiJgEnmnVLZ zlV=bD32o#`2%+_acFE8Xa=HrxnMMRMEvb1T!~4g8!eDkuxcW^$-yAf!f>9+qQ4X=t zZVs#(smAmSVe$m7AbROdxQ(H#?YH37^YG@me2ACC9++A^a*bRW2g$&tD+mSDGr>Sd7TAZs?(p8+Ye*(8gslV1<~BA*;^JZ`3C zXQi^Z6_DoMV6EfFmHG=~v!HCB#^WMHT!Kv6DUXEN`Nx;DokEj#pB9X>QOR}8PTXt6 zBV7mhXBLa0K*JPRJd1I6pY%hALv25m*99>^#Pzj31GcWb0uF6~bW^de)Oh0L@X_Jp zry@s|9^$?ZLz*~J8V9i$HrJHE6Q=CY+zY<&?j%6*g*)4wD;Z96oPn3!%^rewu^Z*f z#d?UF9hUu9UkBFmp9-l$z9E}2^}(JXu`HLteD)NGW8=T^dFA%*#_J*Z?`*KyCA=EL zDM;nEMKkC!Op1do`I5Eqy3qQMf|(mctG6IA?OI&kT^yX1H@IEVdE6d3{^T>8wCEVg zE>vuG(`>wl5xDgI)T|%|7juiR_u?L&&-$Kju&m|$725Ju(SZ1Wp$p7mUO4?y-u0(h z`{q3=f#cau$}YDtlYbcim(1a_rZh2gLWT|vt(PR-vS!((6reDm_r&$FCw}4LMz?k= z+Cdc}0>2$0xJDF$k)}9LuA!M9^B4G2p{SD)wcKi?aVU92WwUjB_9C;2#|;jPI#g*V z*U=zE-(e=0ZPHZLV;S|3q|f<@Huth)mfwB8)orG;+1$mEy;jZyvBpPXxP__cBm8d* zO?dUs@8-yLY8eEE-e2tbc*VU0agfjM-y5wx3-NLokw!r*nF2IwR_LJFQlb;=tcHPO zB!5W2Kh4##OkMP)W*;I&fsKXh@yi_~%e3Rg&{#1XgqFs~1rw>7({m*P-WLT%y|YpS zTI6j*f+v`IQl#o|z|<*bc!3Y9_8m@{uaD4U>qiG_)))%ZCF+1%`|VRL=L!tzlCwEQ zrH}$z$g$uK##V(ZZ?J@zKqUkQ{OY>)bQAeT`>`bLH>vBjRG`Oa+dd}Zsdko0uZPsm z8Wny)8b6p1!Abe!DJ(5r@PpHydkfgV3|2Z!4=*m-(FNVIV?_)NaUN1aoX`817Tfyz zuu)#T>CBOvB`H*>@FC(o|9HOpl-osTvOjgc>aUkP9kt^Azh82M7f$Y?f@E1;>2Rac z%l9*Kuc@<5bYPOh^{35)f4PjpC56OWC1o*nM>~z33V`R&AUd@U7{*d-c-P*lJoA<$ zQ;yX=h%b@=dI@ORXPF;BFQI2~0KQvtFnxz&XrA3siDVU0r^~cGnSw1O$Iz+s9Z`nk zG8BJ4E9w(NlswAAiCVDy^YX6CzffT3q&s3s@qS;rsn0AJV^a(OdywCM!T)We8M0K( zH@IiB)#?pMerMZ0kt*HR^rR#?93IkV*P7`k*nfb|_rdP{q3Y|7Z_4@m*KilRpuCUw z2o#jw5B_{@Blt>50Sw>Y#v)cqoqOEo2+p!cmZSmfnGHEX6exL49SQ7vD6=_&5CY%2 zX%+Dqj&pW`T^R@XFFH-3#+{2itm7$V7)Ecbge+!0fZAPw&FRxD^o!Fw359MGEu(U;=+^yyw?De8#Dh3m$=5m7vki8z+brTzWz&Jgua zch>`XYK6~qU4NE*J}-iTh5Xb0T<2@8%2JaH-=do?T_BssdySD~fSZz%!Ywf578e~I z?Hs>K4;_sN_&>68_h>V*2&WOJCi&u>of4*)zTev@zGA#F<1JKxvFy`!?8NI%l3g1I z{$Ty4cm8C+sqHK`7305S1^Or$X@%#KUVCmDq$r|`=P+_`Y1M~9hSeKYb@$ffHfYt z1?IX2Z1Bh%u=+Wg1TD?hSfv@77L|D|4aGGxm#kv_V;Prlf^&QC1h2{_=U!cRXyFz> zHaPBAkX!6P6P_^`BNIrch*9!J8ND>*3f-TQ z(KKR?>M~y>s;P8Qn2vB|*CQ!Z34bqfX?gPHY#4tBNjk853B*#R^KC5CFc;X&XcvzTk?{J_6zkw}IFUW%jN0E8 zQlkJe?kl8y%d{Y4yr5`j0J`OL>1Cq;43GN*1eXmLGQp4v;L8EwcEW{_<}xAx3q!gW z_O&?F^HP$M$U8P$R=dJJfKZ_>;5iL!ZFSRHZFD~Qaaawju(6!0C8Gr?QGW;o^Vf!vUr%A+EHkC&yMT@Y68DR#oKi!I_q7G<4?%=aD9xtT^gRU@6Nkgz}!@?xR0Ma|3rd= z#KL3;7@v5y-oHI0j_~RAYiC)9_PIkuul1>UB=`4vPB!k33*vIz_gR_VT#Z;1J6aJVStW0oBj8~-FaVb-GhtvHUdFz4Jtu5E-L}Pv z*rgD6%NVmhTvC#aXBFvT>f4rK``q8TKYue^q)7qd1CP)Hn%(N=N9UcGv}=XJ#pX`) zB~HIbhCY`nQV^s%9{vAJop4SH!Qo#}0D=2&;Ugk8U7Wfj`B)28NnS-0mI`pQU)`*y zBTl9xPVw{e;jp+`h&WWA(M*Qkev@{NnGBBASY~+d6{%}5+KGB4d#mSM(ioh3{FY5B z#rasWq!&NMH~6nYj3moHxm#o?c(gUtm(&CtUwx6hAawUw1#Zq%%8c(*%Wft|jw3K! zwBzwtIb{fO!Ds)K1z-un4}ZKo`QY=wIA$V_Q-y3sATyawmXMd5So<-4Fylz^%vE?d zcllg`?^|MZEB}3W%OZ0F=KCcZcvdhxrMJB-waJ`by{Fk#pp?JW$u|aeuRzt|_L}Kr z+Yw}+)zybZvUiL4bSq@={${KwN_@U4%m}!Do3~yAuIz>MiwV-S?d>VYzml>vR`X3` zmxpSE4wGj=63Q!qZ_@k}@at7EuhIPf*bWOGa*X=kxmlBTsSt)n1yzShsk8~ZAOe?5 z)Ke6S(}OS+a49 zuz;Zd<^L=v!(j4@U_qjt=39ptAidU|^uMs*cIIz?(oj0&@6EVpBf&C|jrblmkl9E# z`AXQ1Ogh%{;CG9wA@K()^osz5r^Mxhr%slIuu>hYQh0Aw>%iBvZ*?$pb91KmF9xs- z`ikYR>f$H6MUKi-bcl^>nZ$O=g7OEMaRP`$mW4Om|NPN^D;$l6rY z$zd5LklCFmyMEnyGIeExu!dQ^y-03%iU}fa{IyAUbrGL-p!an_}*byfGS0T%cC8*~wNp*;60%DVKk+F1gZ zc4JnLeHkgz7S``_h$wtUvw_L%*0HtU1!$Z4Kc>28$fIZ2&?)lYCR7l1_Ng)B_ufzQ zqI1y}6ou%~NKi-mQeyT@=R}HeD;5W@ngAK;Xn*{`p#$ zoqasHt(OQv2{4`CSoEHRG$-DAn>SCY)#yKI^a`d}BT&jCw&@tQ^%C;mxxerv`CVzs zCM#Z2yYdM)j&tGdvgiFxy4&4ZO&81EAaA$Sr%xFK%KG|Ia~?N$;Ww`YVJzSVvx?A{ zWf7sT>~mZRLi^*{^mJXe<=76QB=)01Lt8&gP3bjqs^_68Jx#j*VrPQH{N|UxYaY2x z(P(7c9DM~QpMKCMX1~Ds!09lJu66N1^k0{mdHg;oQBwbti0qAl;Uz>QY%hL^sBva7 z*2nO;VUw$4cmHcX@hU6}@_FR>QwdU3ICxMBIuP{RT=!vHdhPb7PEtJo% zLb0XR+bb`{)0F+UF>=+}Hei!)ppZo?}^zx5w*7qG2FIt7mrrB$}RK_36`hzA|t z4(|M7eVAJH!cNo7exAW*t9+7TE0H z=adkUlG4J&5YlL>&b4Z;m|N=y=!ays*%abb1xlK7A;t%$WN*r@8;DCil9Nh5rkMSz z%dE1nwY`f;h^r8RvLB?nXRP5^;BmB?!M#Ue%u#H5x-2o1PJmr7lw8PgQDd%>dulOK zsIK5RB6xR7AJ2Ei#^ydOmT5Ru`fJ|^H4Fy_rVl42%b-= zD63YAlvh-&c_ZvI3mcmW3f?k*(Dl62VRP=K?e4*pApBHss#|YY$9Fd7sk+r9^A(+h z&Y&yF41)FN4{W80Hl3$qbAkjO@5jq|tQ?WRUx(C>^aIv!O@b!*0~X9|ga4z-k!m5O zF>0&6&li@2#PkFr!^y)rP!dMGwdd#IzL>zl#ec3uPUavdC(pd!?^LZHDMX3cdQc-R zwyn04gyzlj)lGd_N7%F{NW7Go9u>NrftJpbxei2*3&%#SIP9rjcka%WNaOE5ZY8MM z^shWs&TPUY;yAK39WATS`>5NnjNAh|H=9m~p<*Jm%F~;*F~T~G@v=|ZA2~S%SrgIW z^Yu6N`I-k+P#F32qFg3Qjoz3~%P|#Oj#OfDr*h>*Gwa5*`W;W}MXGExs^h$2b$V?Z zlb!ao0$i-zq%NU!6&?car@N~l&zq{MZT+>P)$v=Q*Ko%n+E(hsAgzHgm!E0LxuxNJ zg}Hx7mr%FFN04!8iNFL$*!KJDNkhpR;T6^#l4^ zHO>hCcQY+&HSf?_oPK-~r3RxuMTNE& zrCJz35$ZNEaSJSCu;sb5!ucocSu|=aeEBZZ3dNLEkcb6g?|b_C>`OT8cN|&u+wSK^ z^LOYJm6Y^zuurMx>?d^?`CaU6nYt1Ewyfk*IS=qIT!QGH4_nymMBC16xd(a&12>4s-B>@FqyXX*V_w|!= zy+&BZuG=w7g@8`2d)JF-+}YhZ+SvZMFXv6O&IW7W&2-vMa?su@H;PavIVY`|FH+;E zvx|lFCCa2VrC8z(-cIaNLkp~J#-8F`HTK2I^9Z}XoEE~fNDcD0=oHLXbT37oK$)qE z6*QZtrseL;^}V}@a-~{ssu`$f`ZE6+1H zL)~nC!%c99g9iK{Hk1Rk40ZE1q-xmm1LPE1Fzc3XpJG>FDLeylI2>b%To*g6BlspZ)QCjuj{kXJVC@v&lJ^a5aY&BL?WGt|}~4 z-vYB!h3>*}2BKAS4HBo}<(gnuY>%4Z7h>6J%EhQSFQdTq7-zp}Lp0=if^iGio$oeio60IP79qXf>%ocy^Dor{`WlS*42){jH>zjqshwAh#1kg z!&h00Lh*~)W-5tR+(_(+4;6%O&8lvx%s63gvFk1UdIMYdH~62}BmNCi+WMOMhcn~H zH1_awRUdp#-PWY=UA8dgh%eSjcqD!Gvlh%y_X7Jw=b~Bmo=|%B)JIT` z0pqC=*N^i#*)m?;7ye$x^Ba-(9&~$^Q7$S+*JtXI6Lx$2Vf>-&{&a8plycwAKT~4Y zhH?xwe(EB)8LF^of94bx6&z}WQy?MEEow(6EhDquMR34j>b6_vO7-%S)zI_U*x0`F zJ^vAq7A+-vdPhMDzi*{tIZ7>Pvd=6Td)Eo>g-OZAty{ICV;_Y62yA-)hq#XRbMODq z!K55WLa#MTD@JId41KCa&1dPVq%bfFCbv8-j_Qfq1KEC(z5f^~QJUa}@bkw436)nl{ewp=pB zbsx8#jGuoXuI_t`+V2c8nK|>~rt^|6{ds;0FU*^pW0MyJj#EmM2FLTHNL|aezAolYEV0OtQm_L!BApx_?#HfFRlJv5k z)2+`Ht6~Ys(>>nbTjWsPVq*6&$Uk7ngsWyV#fxtdJ$z~u7mAFNi0NRv|dT3K)p+BGVPFfoS8Lnv7 z&*#hKMNhrlW&BAX47+rP<7qNapO_Yc<(ny2Edx6(3w)Q5cO@)=IXfKd1;*|K_KA=W zeyE39#r?P3to}Q&Kf$B+v5Y#5_t%rQUF)~iGcT&kLfc>~$--w_j1V_P`S(ZlZ~eIZ z-u(vwjPVN2>X_km{;?+CG#$U@$T;MB_9?-7{e6G*{H&pLEC>E|fd0H*?ya4ag4`GO zVF%2Hbyo8MOFIKbN^fRtNu|ec2JgnQL?KQ@8@}Dk%cLtmeMW2Ph8eo8p|3ClxZ;ci zk(O$Z1I{ENAAM}`$?dte*~lY68hMmDb=mg}3F52RBHgC<=QD+|+78n%rR3yTrVI1( zzTfP-$|55p8?|~hA5XUEP8FHYF2+h!C=!vL>ozHeYn3Y&jInR#-OEKaI_wc%HCnH# zMPCiXmh)4nqzG;?ciVG)gBKQSQR3bR|LlxoI0`tU-(KH*h!pC(9zl?SKj0ID}8pb9V8(@7;qj@iA zX#dm?*cQ!Jn#6am{?e=o3R59$R_w*C5SMCn@+Y$jc62^VKDM-~?K;st{4g-~Oa-4-3UjX;Xhe;j6X52NNF;25$h9>}=anFYgc!|- zFBz}kNtaYhe~ibDP?OHnbi9^(O@0BD1$U8P;+DmJaNpmra_$DTCVMVlcwxC#_mnTO zXLt&?jSI^;jduw+{6}f=_alKKr+fp&HE70_Z@e8kdDk-H7ZXG&wXMpM+{QIZ;MLSr ze-q>qG1PtFP|;o%`-;6xxwLJUWZVAJrehj!jQ2Jq_X|1&-Bt!-9&tioytNN_$7$7g z0W3S=sgXM-}(l%hKBrd5r& zW&Lu5v*LdqieIrd@xd~(8uFpW$wfH%(M<^OXp6}4v7R5$YAGlqIDprjsU3&>U(*{H z-5#-+c-PlmQ=AX>$+EP~T^JXAZ&-+%-3{eInkM^nkVk%wc7-2Z*lqU4!E}Y;!d|Ae z*(|npW1F?#po8-=>}w z6Mk97zk^FB^;$H|sV_9%vaHHBFm|r`uBuvN$Le%T4b%<`@T81r_}+S+I@AgRSB+V@ zxjmT?3$sP5Q;V_PK8i#_jQ0+~Yk5m8r@sw=Gv?lkZKm4!n=JR0q*OtE)X)uDBzJ?O zEz>F@lHWrs|3TrYK82`1f-F4j}f z;asD`cLDX^E_>HAsf^Fx;Hn$uH5@JPUlEddTVWsC@d&JV>PbNz_U5IWR&xrePM}P$ z;cT#j=Av3;@5PV*gtQBQW0k87uU4P3gg!?RD^=NIT1!5to<+KMVO87${ji6cXzr{QY|`me}2e*>!KQX7#7*| zzB1gpp;kv-zvJ~|uJc*{{B^arT|Hbln&PX|?0aIQI`>#um!zMJcWGt2-y*h%Jwx*Q zCX@kVTrLe?z-S}lx*yhf7RLHA3iz(ieluli$S#w(=-qY;!hnaUB=QORoWdag#p!3G zQCKtId%qo`5M-lM^hJD*E6#bUfE15#e9xmw14_@mFPc+j6>eNsk`+_d23RJH5BR`A z7w=jr+aOzmo03lL$z*ZVQ)at*ZDlod?;V|=`s6&fX?L!yjQf>@`_|BF; zalSjXv4t(W{;r2mm0OtQ=V!T}edu3Jq} z!=PhNm<93;p2G5JpBNEiZ(tcyKkNQAx-OTt)gY-=xNs$LfzT^bt!}+Wjud~iCS|d@ zm|lGO^GkOYNm4AtG%_T3==s+->Cyy*W6N2CfyBU5BcY%v<|?gTqD!C10f`a|`SH8a zxkXY$v(knQM;A1io=-)Y9;{eU-`pd1y54G1_SO8-(eMJG97jV?9!t?z;i570=<^ zmj3-2e%bsbeaSRyxC!Ur1@Uka*9JF_mE~w{9R@xHg3T9FG7OHl1s#;zCsQh{n?Kd5 zHoN1Mv+NU%LA%Y$2!>XcT3{1&TF$d+fcASFIP={R!T8eAer6DG991{Z6u3YQdJ#~1dB)}5rm^a<@Tv(I9^az~FG>~s6|Dxx<{tuOuFa$$=@w)hpw9Lg8a&pXA~R8!aCmOk{Y0*i*IFR7)^8W%X9M9B z|I^*LNu|zRlQom4FNKTb9~X;J+I&r6-0{qdxtPN9_&&5*Y%9Cu(KL%ZH$J;_74n*~ zFnXl-PhBA}fmo8i<$m`R8Wf$;zSQ^WCxyQyVw9i<`lX0LxMB#bJ(i7_b^%eNiFAo` zX6&wzmIHSt2_QaNr*|NaAt7c{xT6c%gpV9-h7&a%c- zRJo}L?>{b;bV3*DJgD^-gz{&$5%$*`I}yjPFH2=w@TsmVIl^z2IWeFQ@zkmep}vW* zN@DUfakr^E@iw@ZlL-FuOi19yLtbgF_^aL(phI` zI_y4uEkHLjwehm#41K3N$-kxU)hCC&IHsV2QPGI#DJIdw;;Dh$g?z_R#w7RZr@}Qu zwY2f~_Hd(4S6V;OM9etMIZtj5rhA@Wksw`)v_5QS_MThTItp-B+T8)$irfXx#38Hy zeJCk07~wGbaDTi{FlP3Qh>uU8)HIbUcM~Z~Vui_+43zNKwP?G^T2d%>!uIroCgw%l zmpZt#%~{Of95y0i-h73_t*~@NT^?*EF5ad4tXC*f%Nf8*Y8ar=WZZ3Dce%B|nkUiB zO$Z-|QFM?YWAXavrqNOX?@YnCB*vNvwl!L9pg=&HDY0)l;eTQs#X~abmoIy?{}k0| z^b61qIceK`9M zVn(xv(1yhBhz|(jX+=e{3m!M_@odJ;)4%2&7bzh#m1yS1^)Ub$2GjyCE^c1m%yZ46 zeeL@~d(QK{cI`ufMy;nfCI1&^Zygoo*R_u$qJ+{S-J;Un-6$#Dh_na{F$@eH0+IsK zB_Q1bGB7kKNFy;I-7vt=UB4TBp7(v;XMI2a{MK^0?s3VuJm)@pU;DbQy^jnN>kTfh z0S&`hp6E)L8EJ27qxV_%16`Jh=J2Se z2oII=D^V@W#xVVd1*104CGn|e3qX;Y)RpTH!94a;HA<_yk$PW+1n&ns6#Y3jzo zd|bzXYNr)KucNycXXaVa%LjRg#He2mi}3w1)2rn!NAax}C#lC}-a%JhOV^D!Z5Hj- zV!Kzs#8`YGDyBPs0KKOgMvzooLuto0K|2_0g8bhp1sj7dKNzj&0RPP-h0f7iBP|lN zh~8ntEDAPmE{wLuBzc*QS`~^^M$N7c8@Mh9V#7Y`!n8THr7h!wgo#UJ8Z-oF5}5L& z1V%$QgN--HZ`Ce>2klPUD9D(#Lp_u`o2$k%sN3CpGpILkbU!;{Rh=_+Z86y~e^?d7 zs)8DjrNe>}LiMNcr%|rFaZwlCdKA1H32nv^II_UyD82vAZPA`+R#ok3D$}`Uf6b@PYhm3c2 zSmOkzA!9o{B}RivY78R^=8?7`eaifM7w3&qm?*O`e(;+^hY_k+ z5tpf3mPO~&RYx4V%g>g4uRAcCQ4QhkR+K_vQ*LRGy+P$uHhQ>C?gK_k1TlqdIwI(r7}$d-IAm-n(hZjh{XUiln7qjvd~|Cg_YIZ>QbxyMo+}WO@P6pi^=tX=xJq8 z`MT=gy5^Edb6-shXN*pE11B2{?;kogZ|{q|0lxGki@Yw(`7b8!@(8E{9Y+qSXN-@~ z86(Wez>Mtat~7tgF5j;0V>Z2l)zz>ON@Y$O7R@;0rckM{zA$lgp-`MrXEBW=#1oRh zx&bx**9zkMQJ0NhTXF5=vfTGC$1qbj*hN{;9i!<~vHP&`Co-}#m9`>7E+N-EFqlsScIR0ekE!DV}8%Wq$wiHj$QNb4bb8M9JE5!c$ z&)!=Ps+W5`2RM+VMR%{kESe{gH{RzZVrL5sU32nlYR925WL$J6LGh7cz+NKJs#hX@*9+iEHvoBS6w+Yl5v19jZWMU# z_pmzI-EF||yxhBZA}suqHJ6{C-{oTagi`TnICn7C=NNn1x#zk$T?WiKn*N`>{C_>$ z1_C6JD%#@W>0iJKz0A1Fp0dOTHt3?ILi{_l3>l*nn96J!ma7dd;Dpi8>kcZZJ}hx{ zg6)&WbOr3XdGX32U*G5Eg2ty@c2Lx>jAb=)U2j%g^ezO6q`H!zZ!6*QJwJ4NT_;+7 z!El;U?@@i}vxsi+^;@B-z(KVp#+&tF#uL6?y5oB>pljbvCYBHz%L1kia1Yb^`Ds_J z%SbP>db+{1RFFnCUVl9MsQ))v!>G zsyJv~iVor^oy&mqlHBaQ7_ z0RJ*;<9~Wm_rGHMe@z|@IDG=N&3h+`y3Szzjp395-{t8U{Udngd_jhxBaHvPRr->N z06V(R);pm{MnmY7Cnp}Q^A|`nv{hip-__OBI(+hSeM*9VU~#-TnsQd2rrDOZ+7DKw z=qi=Gx!f7;nRtrmnLEgWrNheX1{VPQ*dyO{n0WW?`(c9OB-Yw}>A>NJ=^5s9EId6iW^*J$Ks|T)O@7 ztO=p8iC4NhgWJ>1)CIRMrawkb7VruUn}x)t2a)qy|1@%HT2o_~9wQ{EFyglE^W^b9 zC9voDoPFgZ{2qD7d|Bat0nC356(Xp+4JT7MHa{pC{=jmm>=z+PV~n`bNiJ3SO@i`^ z#ZmHdw>=@?8`u@m-Uwfk+h`@!dy1qp=oHRNKYmC^{evr5BN_2Ak+m8`L%w#O%Bw`% zpPc#5GY1%HM_Ce~I0lHrVQx|k2(}LjKw&{<*Kdj%K5!nQ@19S{S}6^BGyZ z@PmPJ?_e&TM1B8Z;)CQIP@7((Z4Nc|^)|E1b36o9aTIB^K`}%J6lEtp8w&jnmniDb ztehZztoT0mCZlCP(1ipedUf zj7v6>cjUqkZZid)`|S}IwIVMPHfVyDg^%5^ZX%pO4@T+r=X_2ETz-&0gPV+}#rs}d zxBy5=Hh$`#h6aC>x+DZ%=IfqxVaLF~sYw-WX|a;XpWuEV80-4^(F0Z}O(ce4Fd9`P zYY7CKDyn3RuejuRfrf$z;kQveT*#4Fv9TdN zdJq)>^>fW=KWovN+43Qb&s7-?!g#Y^$`91ttcU&8P+!u zQNRXS6Ov@rF{Skib8|>ydY_k|`HIA^-CiBC!$XoKd3}xUc``-fsF2CX80r?M95bVQ z4({i#R@OOfslF5HG`KCqkuMnf5b&(ASMbf}%rYsKi(C0q4OL{cjVDJyWsP5PhQ6kb zQhrdg&^8iJ+6x~^?>+qNySzbhE@^bdHEQo22^M5WVq$=CqW z1Pbd_^!bJV$IAR&CAuEK;6k%pdFuZC^Z)1Xr+~~4_Oo@KfzbiUU^d@`l9?lSmyrWU zQh^6MN~AN7AO*Myit&BVJ30P4Sdy&8_Fs&tM_9pO8@AZS>O6X8`7oj?Hah2f?K@38tR!tjWim1yERt&lCYS`sB=_sga}oC z#+$xwQ)G?=oh=7at*cdxPo}jNcSY1|Qr8pN@qK^9$%tC7MRR8V25L-O{jeMfyi?;& zzxMq99kX13LljEIjZbj@);I?|-x0z8Pfhm!W=w85fMX|PQLzRFBW-ccin_nEaaYlU z&+o37wkxCIZ4z8FJ=HiSHQg68Y$Tq@3m?QG$(MbCSukabk2M|@reEI+H_c}3>MF)`Q=gK=4O!PBVo>a)RFl1I#pP!mSmVQ3 zbhGVmsRF$H3OSH<0ziby_4zjK@k2_u&~Mjdl=6*Z%eSV(GtH&snEkJcF~ojHkIhqds8dPhz1Y40ps<+{N`1ZeU%fg;tOaFJJ1c5C2kHN_wBON%bD7p6si>bij zyV$ws2ZINOrcuv~Eu9~R{qB?9#fW7#etL^{v+2>CMT|%2)$kK1c=?!dy(?Zoaeuy0 zPy8Y$;ESF9=AbV4HDUXAeZ1*9!;ShMnbI<5J#CMR7{3dX|IDvy`#0}uwfI5#BtBMF zbogp2BK!b@!r}9Ei2vuaZ0v&-fH|bnoAs;s=Cbm^$4W^(2}Ujh7OR_|eYCl-kz-mO z5+IJYG^H1m4t*A&B)tU&aAMJM0f07jNgh}T2Xe#B%Sv7GWVVr4T+P>AMw zQ1LL%nWa$iGu1*l&4Z{pD&F3dTckx`fuRv9Z(;Tjz}cw@@b@icf>V%NQVM$WQb~#H z;)k-29xVF3Gs0mGymKS_jH}5W!BM8T6~|BcEp6raeBVTzUi-zM?f zf8&3Cecq{s#P4)T{$?Y(Zsc^@l7j2#3Qv6Cue=BNSJ6VM(^LUg>uP;(?&n$P4!vN8 zaCehaLkav9=t&P2kTuDiAKu%1r3+GV>?HCBRp$I=Qi;)VZXou?dPZMk5u7Czi$k*X zotYe;1*D{~Ll-$j=pPT|`d(3Jp&wW(IdfKDI%Bw~cFEl#(rb~lWiO|d2KfYEbNynD zZcBy%0go;aNM1I`Ujup6peBFFIro9~^usz3MrMj~&8r93Z}`Q&U&fDmUVlSai(1#( zr>WGhY_*w#UqMvD27+w~H@=lS+?;IV04G^qv$Fc@>{C!*DEvJ8u4uBA)w-(e_oMO? z`Xk-7zan}79ijhyD)1{ewKZlDNamU$=H{Dvo7UZ&`W>@N&%J?@mCQq78kN5A0}oRZ?jKi1Ko&O(04nn~k5 zlmSR@t^V<49R4>YYUVyb2hKqX=CdV*&RtBh4p$iaRc_6cMBzACwCJH#L}Hqw=U8Kn zvtLd5NnGh%^V`KPWy0%v<616@V$v(;P}cPuBrj8z&X{!DN93s&9bkp(_O0?)gS8yU ziTfwpAb6o*CzZIOWnKf6Svn}%M$(WW-dBGccFueO;UCONsg3Fk@2MG%TTS~L_=dRd zO!Lz7oIFl7IzR@mC!S98m%2W4@)(Tb4A5^ZtkDdw;ijXY$K6PoJH4;UmZ#B#EoDsg z_+Rn!o+$qRXfFSERe`sb`_@U8%-pkT^QE#<>DEM7X0)c9CQ#0?X z#_Zd_YZFYHph~*B*70dcpFZ_CwOnze2|C51X5gtUpFS-=t(*Gh0C%i2?&)Ris{+(6 z?ZMi@pBa3Wfmh$*Oxkt2CtHEk2kYgIu?t)j*k6iIIb}0q*^>rr`|ggYpfAv&)wyAf z&}+=eQ)&siXg_h)mU>u4%~*qhqrFa~UVf#0FDR_3Y;LA^7i07VT|>;8g6m^SJRk(WiAPKAfJSsv zrn-OV-3~ll)sSwYlsTYQ0GV0^uZg-*G*OPF?Fg%PiCa_*2=C82D0&R+djU*EORRGc z0YPO8XMu(|#>aZ)f4da^2bBN&AI zyYj~Uo~fg8$@R}yD_hm-;71>CvKd++a~aP^3jEBR;M^7i2@4&e<7qMED=RDeF@9pt z>=ES$hMB3UEP~UZJU8Sr5xocdp(|jKn&HsyLP6cT6K}EL#ffu$$p&In-{LB zVL0y@;dZ^nBLspNLt1JLv$+(+Il0{Gt~qjE!~xay@vYNXL$zvw=2hekKOnEg!lD|6 zVDH8y)!wQJ1j`&*FD(6#2FiCcwQT6eRu{qlO%DHc{0N@i)@Sj7j?dEo?&_=e*-Ovu zT1cc4_2wC)b{4lqV&l=cm-R_~z3^9rX_MtlLzE-^*{m0S;sZ`9ot<6ImdpIUO!2wC zo$2~qw~b#fe6PSMqPPS-jMSNTV$Xx{uVv@+Ge3T$^FmE(0fME~LOYWtV256v@mLzO zHp`qk6Ls|4lkhS4(0Dw?V^HsD(_|7wKB?>|hQgwIVctR`tqxovL6-6MrM{pVF^6` z^z&7n4>I9l*p~{S=8F1nj&lYZwUNXD#FaOAC_kI#M&5pdX|YP9Ok=ONev@?&BUdTD zP8MBy(;Aqw7r-lg=0HMj3ptKwswfJ6ZM+Y!NsoTKoUT?WxB{w_GutXQW0Q3lHicRi zWP--pAR%!LkHk{9`c*t5>%fycM1Tj^1A(^pjkBpCo8w`2eQ(>etdc1!S7>1)nT#8J zi0Yu0Q2k3M=V1Ep(l3Amhs}FhND1RFokgUN3i%Jq|9_Tx{uqnFKxyc#IixljtaO!X z?^smVt(Of2gKGiDR)MyTPOtwRpA}9&@+Eimo7J?9{aLU0zGkO}4T?#C$UrTX8dR&% z_?~82pGWel#dY9`c1LztUDdCd0!?O*m0euo#EvICUZ|83_xfI+A$aV5JyZCIcXH@B zV{DRn8-4HMUz&u6yOZsm^CK?Dd`hJh{-WP!%HxlU^sfZZK;x-U_|{leg0tQngfnTq z16ES9o@gN$ zlI{#J9zL-E;CoKuVCMH5jnTJLoH`m7yOlFb;JQrS?j0ty=jC}F&$K`NtVN_;!h29) z)u0BlMpZ5Lt9OK(_|JJgzyO&90kt)_mG8wu^Z(aD)0>&-}_wKiHJ}S>+YRD^;id5M(BU>!~gp+fD91Lp$|#&TMPn*F3&fe zlD4+k$b~AiJ|!fS^qz@jQIFXSq%%1+pJnD2QrVp$S~BB-$x^+Q=0Pht5lG`PGoYpE zR?#~|HH8}c9GNx7;qF~dR6)r0E(%}SbcYdg=z+r~fS;!ccz(4U9}}M&Ez)NXueC?~ zl*O;_+&P(ct*&v**r}b)!oG+&5!n6>yQi_Eay0`hshBj>bV?$nsVy+}L!zBrz9G^4 ztPH)6EysHYYk)`7B-)0|=A#rJvHwHr=v)Gyg_!b7Wf7`*5{fa~GbrV*C05p=%u2er^wTE-rF>rh*oa0!TchwJja2Lqh_&S?pvz;`4?JUqiO~htSZlFoPMJX zS5;PCl|;6%!Lk-Z!UnJ3vdPg$foE)T*-*Jm2Ir*be~BH`qt_w-SUY_-0OGXM&6@sR;BIF``!dE~cWasTP6F+}>MF zBeq=aqs>!{aYSEp>%2AW?{#JIEa6Ld6c8fPuw!lIg?DHlLi_}?S_pU(jkOu+HpN-UcbKF}+4#O~mP zzpHsjG1@Y_$HKy*W9th~xfzm$08k=-YueyV`Y`vwUe`|i=;$Zt)YavIjOX>49+RM; zA_~4EP)((_1LWt#8iy$bR6{S5Tbo+R3<7g?YOpar7?JtOzfPuW|on(Aqd zECTKw5Ex+4X#`n76T-RaUlwpRt@L8Pd4VNG)=d0dTiW@3W>;h@mWK!d=C{y^-^B_f zngm4_WW|*fc`7L_(&e5guZj*a_q}G9zS#`s~e;ozZL zpV`-MN|_fPAH0Q~nk;@O+*-PdJ!q>QIG+6;A*G<_x@8IJv@wP%u@KCSth?_ft`kfP zo(>o@Y57f(?PgPwrXlJxWc^X@f(S1RjCEK61_dn3BfOt|SQr)WfpVjOmhX5a((r6@gRM7aqS zzImDJK|kVU5=VyR_V1(pA=#Uc!NC|nET?gqwmy1GqA9k|Spjao+^0O74~nsh5r=jI ztz{_K%&jVhFL|l`$E^<@vx?q4z`E$0(INF^cL%NdYWwu6>90;(JengYgAShk3;JfV`^H+{^{4fF;gE!|qL&L%% zV^>Bi4;N;klJ?}Hc&4FkD9>%a6y|M+bD|vPwsdtJOye^@fX}T{i0(L8R&DHvd^UUa zzI3{A#HTP;R^%sf(zZ>$V2PAS@J|qJJmW0J?(`z_FR%HTv;E`IxhB2h4CJtck)w#~ zXR3*crj#Hrw&^k1l};yhjDbAkCcSyj2ZJh0rpZim?6dF8`c<-=Uqk9QN~Ko?9gRni zev{+ldT$Np5I3994|><=e?t`(c5PI|+x~kNK#_%MgG2;gVh1J|5IeOwIZE(0jy{_* z0M>LRx>aob#luHsJ4RJ+EUKKp8 ziSo;rUsaNK15`3ZWJ7Q%*+@{ko&B_Z*NDYrDkw-G4F%w16?p9ItB^SlZ2RhpwS7WS_yg`@g z^%$ULDS~82j7{vLh95t6I+7}VX;sT8?Js0INFYlIzwsA@_-AN4#d|tzy}`eKof}4g z7;kcq&jY`r?T0ixkFoY8FxI6^I+XmP`CXSk)#hT5?A`Phh{xb#sz}wA=v!MK)L=>^ z{^bzm3sc>fL2LPI(Mw0r*Hlghl7*rqfxBMHy2IMvMC@dy$@>v4BF{mJ$Ndhp`Imr5 zb5tImdBL+Jap~I+#r>q{XdV8UyXQvLh<<4f#wmNChd3$;C3HXvXiep$)=ph zI(aEF)_0h_HC%}&s|Q07C9)RtcQ%m?jG(Zz&ZoPo6;e~o>;+NTD12~WX^mU}Bm0}5 zsSIZqo%i-j8eEKC70NiVM$f<_B3oW38bkLA7ruYJG zqrVZfd!79twAZ|L(OyhTdKAS`Pmnjr%O1UCE@3u=g^5d0bKe$v0#(hDmwbirE;t?8 z<=C%_Kc^&oE)<{_G??SuKG^@^44k`5fqihcB_Yt;5!G)01ikm}(fQ#rhO60&QD@et z1NwRBM+rP9C)?v}Cqvb~{wcO{u9wa5UWq1?A9&;8xMPT|oc+{P3N3l5GOU7VpL)WS zO>g6qU4&)u>7{*E+N>oJg;78>GHQ6?D~Rwf2VlJHN%are3aD*xZ#e)3;rmRaz-zqs zY8@y;xVxGzP-$OO)5fFi$OKVp%&e?QtQC!N=f~UZ5u}_61zEn*zeYxufdRJQX=~t) zaF>%A{4}eZ%eA1mf!ZDyA5bdXJIz@Sf(&eON}{U2Xq5g{9i)7S*JhOx?*5ia zB4j&p-3Za?H#&hK8C|5E@$_U(Dddu>itoZZKp)rfZ6X~Td;iK;q<2k2{mRNw2Hj@j zc$ECe^{#VcvBG;Nk>FERMH5--it^(9pTl2;Tg4-%KRG(Q>P>+&w!-uIZ3{Kh-Ll9t$WK zJb64IDP*3cyTmf*#vA4q z-Xv%Q&ca8ptD?KW*LkI`6!vau2%_>&4LtX2y@{_2xtnz8RXqft8xeV?=umqW<> zHX#%zZhVP$m4uNf@}nStQsc={HzFUdYw}F8rXCujGnnZ;GL8TE$ynVj+P+zQYonU8 zE}t>aTXfmR;02DYQZ`g-0`}_TzobLU)@ka0v_y3Z0kWAzqyN>#E);t2E zsqmnX`g?hUNj;lp?D1vaXWOTIO}?&Jl3=DgYv7+;&ui#cq@80VrG56w3sG?A=dg8k z`f*kN$|LGy7Af9|+{Xb@@9q#KHeT`C7q3{Nqf9Bhu@5Wfm4m(fI9}EIO6mE6uFA_v z3I&tLZG~>M`4T^WRbzk2_?CCkJ);uCQN)Od-Wx$bE}a~pHmcTOjl3CyR!DVFh2eh| zhTwAJo`@o941|@|vMySuvw+=FdXVV{6Id>)BoU9}d$e$UWw>EmwAmXSx3BPCT=yL0 zv&U>$>CGtY^Wnt{WO?QmQ>4pFrV-@uB4G1r>AU4&m1fRV*85gMEvHco;-?gKJmIG zrDVBUcyk)w-knqX-5R?5QH|&LFyL2xZ3(>q^jyZXff4Vl{$O?@jCN&s!g0D6CMk$h zL73@hDl|>Z?%h035gB5ad4eEnf~Z_s<$BlIR(p#;f<%kd7-4hig##Nl)T27b>+20k zuf@X#hv`Z+Dea-;LNy@YjQx3j&ep@)LHo<590WJj)92a{|8@iOXMZWci3oqpf37(S zp8{x9o74wGNgXQU!Y_jCv z>W9t5QXL`Fk&l+#w=Q(6>Yq}Sl9XtCB$Pl0O$wk-KE>!?P<{o94i1qN)&2s^h!sKy z&+2ac{AxmJO#>b2G7W9qnrK=sjz3SiSo)SRi!0cq`)*Y(F44RJXa1KaQnWzO6=9l| z>rB!)Y}F&6i#oGq8+}RXDCHk^`gRste=~FTHLq}*b!WVDozaUtpqk%Aef}N$u6dZn z+PXN}pt?L$0uSoD0gvm?$6f5|8qP}@Yq&52OqQRU~Srx52 z8?L`Sme&&QMH4uRSbR+P>!h(JhrWKUTj%|7iM|zwvu$XXC~8fkPB7}}k>vRL(!#^n zG(PnHn|!DWf)p=_7TNUZOrdlrVa*Q27Vsea4wzZ~L^#vymU+R z{|EKhY&l|&KttUHgLd69{xBZKCV?s4 z^}$BP50fS-d9vfv&8+k8glEV6)qAg~@I0cx3Ge1IN1mXepN3JX<}iN|WctZu7^=?| z*CCW!V*8z41+iyx-UXD}z%Y#TNK3HP@i3E^P-tXf(|jhrId`rVmX!Cswgw#=`xI@A zwL;r1eSJgn@pGxPcX~0*kQQ#eYf+0lQO0fUup<A>Sd<~R>z>T+ZqcnNpzdb zRW|OUU?)95bRBdRdmJ3=*WxBA{05|0O*Oq&+G&`~$Z?`FTGmD?D?}n$@#bhv;%uyG z+SPJy*1wWgpyGsu-RPu>!4UJxRgD)&6-^8 zV7)=fahQFWBAOVc5WBstU%EP=*rT;D^KmH7OdkmQ93^J(IR9Wd^F9_aXsZ1(%vKA` zU)uZKx?Xd);YAGIBnrG|Y?9x8=+cy!>#QVp|2=X~A6b=T^M|jpsEABq{6}Dj#ROza z*%yL6$J-SeKEpX?w-X}x>Kk{Or=AE3c4aI9D75}$RxxTxq;s7h&uDM%#`n3I-&L8j zO3T53b6m3iGfh^2kD797nJdNF6P4T5jikLve)qe^Kp}GCmhBozbqH}??Mq5Bg^ol@ z?stpF#m1ukvXT(LV5Cs=jLB73p3zDIr(ZnaOdVJL;qU0_(rXZ8se#{XVj^$PLhzaF z8x6}qArsnyd@)Yb-X0m=3U+a8nC>&V<$I2s-4CwC;KcZP0ZX#N7{23Kgn1)O;>M={ z8sw+#}O|M^tPqMLf~h^#;swX(7|w_QFi`yLPYPH1mx6q=2ey|*jJJ9g)v1s33rVo%bHUES zGh^)0RO27&wT_mm3X&-qn1u|!m2E4C{GNHrz5tC2M-0#3&B=e#H2&K6^PM{)7!1}} z(hb+mZx0R4u}Aj2EC54R4ci@cX_MakCt`{PO5$SaSK>IGgDJ>gxB-@Ya>`?*0R;~3 zsr7T0o|l2Mqu(PjI>XCG zO=jL=?2ZfeuC(1;)Jsnb7E_+wQ#|JBb(Y9!!zgz;-gSF*BME**JLexE^3Cfq&Sz!a zJfok(o3M2%=KF>Sx`%c5=zS*JiExjVh`HrCT24Ztf~j1f>LU00A$2RERdm6d0rVFtDLAxsa-NmtsHzIVxWP!2@ZmJ+|GJRM0aUJ~~(L2U#^lEi2X8M(1 zrJi0@8a5}x)d04q(rJ}{MvHnRW~v~9u+V6Su@YTw14cSOm}MV^7_a~Z0&Xp~QK7!L zKVE2O42P;9b*Fhu_H>S8G|MJqLp=Z@*qH$K%8AEd!&!uUA= zUMXsZUGoZ<%FNgqcyKqY;D#=hvs7?9sWrTAY0w;CFcd_Zj(juVzQTJq&6tTdKdzpd zY`%+~pO_(g0;66sjZx5BzzgG9cpKf&y`nz2D{|REil;aH8zmw9&dXt<6QhSwnUZk6 zji2bQ_|(=YP3)WR+~d`I1i`0}MhQiUtm*+mpPhj+%SIrBjVRz?aRFVfYxxBc&;S8r zfSSiw&M+B`(IlO{xNa0Q8Kq_xbjsg6iMOOkVjDIk$h@)q5Uzm`MICx?=nNJ+)0 zdffkBT?qA0gTk0(6f>qx1?yIYQ8gb@gu3P(QABBo@V+AnyUtb9_Jfxsshi#zm~Eaq z!9skpyGH7rc(359%XnSxC(wqz>OE)Tu*Szr!d+Ms;4hBGYa31jT0^FFeYKegH6g+} z3^wP6BVQc4mxtH<&Octdnj}|y8|A*+bwo#O-kK1vE^1sWBJ7)))D-cpBF_PpreZMI zH75obp9VPXhxI~Kxc{-Fta$BG3s+Prkx_R$G9<3 z)ie!2CevPlcN3OWqlk*R^~|iaG{%BVXyaDX3BifjMK^FCSf9j$2NBZ|B4Ffes&Qwk zg4Qm?e@>8MAt*iBtV?p%R99AZ{oPmL39y0vgvCafA)mX5#1|N8rnlzHQOmZFJe=s8 z;&uxR39b>7nH;hy*)S3|^M(S@9fn9Jdtl_?dxz)GT``8Ait0E@Lc*woJI7`OBnV`m zW9&WpBbDR?pc$LF@@Ph)aZvo)bfRF^JW0~;Eyw46i~%Q8cqtX8UmD00)@H~sH1)#1 z%!y8o`X+&GsnpPh>)%5V;W~QvYduHEs^2wT1ou|WJO!P&IS>Atv!n~~!ld9{Iw6U)ccrtN7hqRx zg$@GF#qw=k?*j20@BIZv4)((hAb#B;lKlkRmT?6~l&vL0;y0L^eOSP!AOtiEZZ#(}l zFOByUxlBz>Ii~7JUtSzLjL|ota+8*%#jIuK@dS?q9QK2dm9~C+G!L^y;v7h^`n2_q zl15Fgyub!^m=YMXF5`3?b5SUyyFe8WZh=e~4?WsT)j(xilYvC1=K|3i1o@&Fv|#&j zTG2`~uX@>gn*=FzbV^bdn0(Mb9%HF5#Qw=oIeCQ(0jom&#;aj{OQW2}3wYYO zH~a|nNb%YtFPknnilEeJ?OO8IrGq?((3*$vTnC!F999lk?;S7Vke@8FLGY!H9q?#J zU(rzU8uRE>MnGBQ`qtU~2}RHelCAB87lbXh$B7tqZ(gsmbluHt^wSeI^-}V$qzZIN z>TVq0pc+AWCTM+En|SMRy;r9AI%@Y1h4l9SL1YAsATX{(N3D&JI*zuet~$*eYudkR?YQ+1BQk%@ zHThI!ih_RK;*yWR7IVq4k;IsjJ&=xtvVF=S%jTd+%qtoq#_ew>ETsLU`>j!m+OxJZ zgN)YsDpVmd%DK}H(=Fa>fY!S6M;b&()Db>@xb4TM|5LBcs^=1BkWmMv^J&Y6$4&*dVk+9Eyf2 z1HtQzVaW_AS49Zt190C*`)z>b*Q~nfXr`)*BCl?eRf?mG+W5dTretU@N7o@)f zcH$j2_%=B?{|6=Ii1f^L!23+1QeGtzkTI?Ri|b7Q@Tz3r{}m$R?wfIHBs z_yu7Ajt>2U(XOyhhYHz;{ zZlbS=Yd?=S6&pv1b=}O7lKkvLENM1#Xt*!i@h9W*i7(|F4~*Ln$(02z5uTPqdHelkNlpsAxcMsBPsz5{ixMead_b; z^gde-*@Bv-%V4ZNls2-ayybw7rl#{X%t`TOYXBKIbxrb2C-V{%tM~QkG&J~dBQE!7 zWK}Rc!acU(85wLIv%_T8HH%$1`m6NJuea~cW)Blw28~>=UJ_w^j4^JEvCLzltoq{o z3SwKjiBPL|k-`971*VBZ*`I5e3;0esc{hoD_Th&xit*N`w`-ZmGD@g}KMe6|dzi8+ zR1jyDNSRc;@JLy4nlC;NHMKd)^342kBqm)#k(p!acl;sbaa6>V&b%Y`+=5!gqPsDr zA%nA0#`i^Di#>|vWJ>vay>L~7>L(Z2Xs-Ob#UkX4iQ$u79MW_GEwb4DQ$Nk4m z@8kqFeW`BCXTZ~WPp$r70MoMjV*n5IuwKH6w2T!vw4pMEj#WRERJ9@PPnIYm@cjo> zOiNM7-p-;2D<$g4XGt{hq)E3VU#4JvYMG}BmW2MjEWyUiEZ6?K9XOv-R+6vFL<%Zq z4BxQt+f6`Dj2YD=y)`g5a+fmqmVUACFMpBeIf2;N^!j+!#ZC>9Gl+{=ru9!uw8hih zcDOR6NU14&C7hFUp`d(eloH-NBoszCh4DFFMe`14r#WornSBg%@-dT!pg&oYAxZog zKfKT53C=xw{|+ZYnZvt|$y*8hC77h6CO}t$2m1j8{S91zX7PnzT}*W`@tu4=SOh;GWPN}x zAu;`%on|zS}d{HPF4*ooa416t2*(8~_N4gy??WlE|!8Xx4TXnHA=H{PTQZ@i|EW zZ8gM3SY{BD6(rdOFLH5^d-MTJ#F{ZI@I^!X_shr)@Lwlp12NOUKQ^b{A+ikvB06sD z!X@l>910-Bi_lHYjJ23lzB1K-90~Wn(SBG+-BFiXb}n=u!9%zKx2P0FG>{MwYHK6Nq>U28mFc!* z8hMW(jQUPW-Medy(4R2g`-bq?MHjF{*=q|-L4s%?%*#CiYAldyWPX^u^IN{XnBW?j zAuQ}%a-<(jM^+4*kO}EPps%1@qq`@B6g_F-Ri91y)}HYWX5Zr175mH71Ul@BhRh34 zU<)5*e>_iQFU~sOI551gUPhwiThVlP=IoqmQbWVqYD!!Tu+V#M#rZH9Arv1a>K0?U zBzXxd0!a=U*6Q;Z*O4yA7vM7ni#kM%2M*{sLUTRKN<1^e2idDU%R>ofh%zzbC^u8r znR)8UlVG~2UnAdLQ)+$bx^RvKPTBPrj~kpb3J@xcZV=82lIG2q`h#=+9uq`$q|mUb z2(jeeO`fR$FXD(*+!Fxa*J;NqooUHrf zr&hp8ocwNBKq!&YPdXlRmPf?=hGYtMdME$zhQZo5h;ttO8D0jYCz!m< zBg!xs>$E4!u-ECpJ`zNm*u@y|k)U$A+HX#u?b+N#9)kNvW_}ZU)Rq;Jpc#vyN#Hoy zznfSMIlOyutn|$+7t}Xbp7Y9!dY~dhZoX&zMPWk2cJ4z$b^9HSn`@5`qInRz3}SSB zIX0Z*8S@@EnQSJ0(ebhoKo)rUjx#2&ofe&PrbhQTQW z%|%kg zZA1l2srKJj+j&R|Dg@DwCVP=-RQj9dVfSqq$HcDylEZ4Q>30KZ_8qbE{!>@v*kBWb zVyY_8pkU3ojK|>rH?b3HJXb;g#~3e12*mi@!ph{)UBE`~p+3-qJ*5bL0`Bg4sp#m662)MCUN#6fl8>_KcwH~d(zoUd6N}0_bP;o|W3e|sUqmb` zg7sX(>BSFL0Lvu&-rlJYt~ryWhUoC381SYk(fNB>mg6vN;|4R(JLpmj<=#Ve{qc2u zq^WyVrxUhZ4t3A>&OOp(z4hFmIEu@})tX}5ao6$3ovn0&33!Qg7BfUa0dN)vgmsAZ@7fI0G?Xi*iX;`v2EBKc*>`Qp26!qj+3RsKk^LNhN$4N3Es znVFqrjYN-Q!5s?pMu?H!!Vm-~qAmu)?G-rw)?AErrO7=1SaXHR0e@ZbO%azW`%9p4 zs>uQVEkEKMgyRtfZ@?MflP032&C-FiBl6i?mtAIOR# zxKl)TC-7)nl$8ns8K4)p+S<4~O4C`fmMba$sB-3%$+APS;%=g`g25`u$B zcQe2MBRMqh#eM(YXFcEhJpS>m#d3}O!Gd*O*Lmz?AIILii-h*>5Bzb$+(Cfe0YCTII5u%7s==3mbVJDuhJ;N&=c ztBB{Wv~WyLM+fAZB?}rDOu6@q; z#}OY#DMR<4iVYGoc*fR`PS_fpAw)C?$Rx#7P}7R~>_#o_rceXJIERvzHqi+*06z(fW$BsV2@ zzXoo1C9tU??8DHeI>yes-MD)r*Uhn@)HowV0{!=GCxA*94vC037krn91aGYz#;_K$8_CLD4;n|I%;PWl3O@FvYsNLg+V9e1n4()g^xp6O+WPCXjh;2 zG+?LOxZn^LykcQW5oFVB+HFxOWSL4`Z|O;+anF0Tyu%jbSop!yn4Hx*zMsVUt5q_J z-(rvRcwO!?7yG2m%{&>m>sA?a-2%iU^?m_BP)inWubn6X86c?`w}B{zo$5-cF{C;O zEs4*79!QNk-Y+#HPHuW($5Y?ruui=+h0!4d)Vu{Laa41P2{co)kgum5xyJCakTd_a zB?|ekviCP1pd}%e`nM;=VSU2<&%<~Br~Z$xyn8`{hNil*?Kuw6!AO@Rbjf$P#7?>z zt9hSNvz_~#<$r&Om*6bm85}40PVK#|nDv3W_xq?%6sNcn8S#XtL<$!6Eh7dFP~+NJ zobh6=8KzEWwnp2l*Hjatqfz7Z%7{8pW-J9?W5x&_8llY0rWV>ey`BN5s7ZQd35mEr z8wKIONHukiw;lUt()Hm(nuwDTetbGkwlVh-!_k0$3)@rFD7RlvaHO(R@lO0SdrY4j z;)y3xN}&-wm7WmrodS$gK4-Tloa}wZ{^F{diCNl~tqACd+cR`%%2&d~Oc`RSTj5L2 zfcEu%AeNXwbFjOcK)uBj`8lx)8(m)Mi__i9_CQc6@WFVTKSmtv;+xLumeX29%bgRN z?;zB-bFNPHe%izAIQ|$5miQS)IKhhm%8s?WM$0;4%?qE2F(ZISs$Ac+|VL;tF`;D;9nm zK4eq(-|ktp^*c^D3f{$1Q9q)$Bnop5U8(Ik!kg_=j-T;6&56QQro z)t|*DA(!X@$l5|*QE{zSkf|l-aJCV>rG%Xn^!d?71f6>-RSE>;znEXicDP)jx#(9p zsScseFd5g$NFY2(W|9g?;!(P*Alyjo?36IQIBLRDi#8gic>$xD8-F1$MyEe8;QW7| ze}S+b)VX&_q(4q1gTvwUyXZjamqlxtLm@mZzTbtX$!_jqk3}qad^tg++6AJAoG=Hs zzVHKCOc2jZNc48M@(MiWz@U>+8<%_XcFu~_v_7YoP$}c!6ZV3<*IR1JubR_;2-CXK z7_?Z7GsqdxR5{`HQP|y=z|?!!-EEu`&aywP0~Kj*I~$pt%X}lk|8&)Z3KA;8CEm{q z(fyJ@0~N6fXRn1UALTEUhy^Qamu2feb(6e&O0?X0Z2L-m!(Zge{~2rVpb&7`LT&*vWOjy)mLqwJ1kULpxJkGdcV zZcdv9rUW9m33P8tz^8w%^ykXc%1KZ{9(_?h>FTV1_eQM zSnN1`za27_)4=Q>gZ!)2yLwsA_9or{d(TN-rL-Z0tA%8|nuR8P|JIe?I9=4Qg+)s> zEX;G>M(}JCcxu2-xzs-_a6ZM!fu#exF7BPnu&;`yiZlV%Toj;73C5DeJkbXil;;6k z6K7Lvh{l?Bu`KqL3TTumn*Ae(7Aa(lXWSse9C`=iHiUMBnu0L-M}BK?An-vOzV zc72B?^UbgNVWBMQQIV2J;!2hs5I)AP+U6w<+Guj}MAZBbGxrFeM!p`807P&uq?_p} zcvQpU@;%^hkVD|wS`~uzrPr?^6#{BVUIj`piX)RPCK!K)A52=)Kk>t=;vpcXZXk&t zz5ds^BO8Y5{*SG||2mEfxqqG1-4-})?=6>waVINBnhMYvs8|oNL(aU&@ViZJGT*XS z6!<=L*47xqWaE@tk+!Xg0hUsEGAyEpDszixsN}4YK7pXp9TlFh9=r}TZq@m|Lm4j- zP#XHBv*w0iF~5PTVC_U2tG){M6;R3UaJu@v_Nsh%h>8K98aM%%+`*KT$3uRezV0!k z$VC&duxD`nPeq>CRpz(|LXSsYdEb43U!6k{rRf1qC3n4K!n2R>RQ>1}77a8i<2}m0 z)loVrp=n6cnVA@B@ca1mj2`t*4==v$Zy!QZJvqLDaisjP(nl>KsI{PKHC<{hsxqe6K#62F& zuJe#rmP6fc*aw)CL`{HHF<{eevN*uJy+R??fAM*PLbD`G1QzqG@>}rL{S3{sZjI!x zXpk;M9e{(8+^ZS7s$Dm0q8aMcC115F5@;3Z`5F`K5I>ih)F432x6idp95`-MwQ)9mR zh~de$pMK{JGOO*i8_5fDC2xIF^;(+;zwLN`vW@MvY_m_$}J#lNL73MENy^ z0;^}oZcJj2)4m^QXODQQPSvj8aWOsM_guLn!U?$8Tb$T1LLRmoPpuLWqr`#YJfQ+VpzFaH1;0?(wR; z1rBvao}0(7__xIZiw@#7Be6Qx2c!klc%!f4176E@l|BIP zl3KVqB;K|2l#Q`(dy);O2l4=U-G8}sD8vU#mS7+n992zwM7FYcoz`;H-NO;W&@Fp2 z**5y|>@uUe_*!CQT258Y$bBEvYcN>|cclZpKdz5yZtE9N|yN%mHP4v;%U)7|x_dZYHSw>!j=CKKK?&z6-wH z(ljW}v+|bs5^(jbw=fYefe|zC<(V6I)A8BG;xIY^jE#-(h1Rrt+`9afOf)C;JcWi( z*bYlMNGQ<02{oBv7vI%SM+NTw!o4XM*}3q-MSr=vZh-;sX`r1p;YFcP#n}i_u=8`d zI_g31`C-;SOF_}fC=5*BlEQ@_9~c4Qk{dkzwY+?&a3YAgXN|GoTisu)fyjJ~qZ`tz z?Yc2~)@Tix%tckw)p|X2xf6^e8AC&2lPdW!#AgS-Fq96i_m(cwXQT*6`gh@jJL^&=!7<6u|GW|sx7-k#Ka&@QQ2B<1Gszvh-*y`Z{|J(Ie!7ET*MuRLI9o|qs> zwMW=_{^mdb*0!~|f~^SF6L+FLGzG(z+rvmYkF;}_ zJ0?}o8+%vOXceVT%KPU!o=+=xbVZq5Wuk6^dw6rR*3=X??X-dWbltNy(9ZsMdkRK} zH>XCoknt4u>B&uYf+<>3btoamLOk(vevBP4S3gQcosd?ZH$Mo@!*+%PdOWH&f?$`> zL#LMg%`iz5?JrA10>#MPJ*C}7_)2Cdaq$)C(BfnCv+>$UU}C;^Ja708_Rl-uAb4EC z@)yjGg4=h0jUBEILh9-6-+>yO$q)x$GKsw^lN#ZZzmq zvh0Zx^9PDz?VYa=aaUJ+NP?f^JElmYIiby7ihRyhe7CK*nQFI%$q{&TNxCs%v8aqT zxAY`zeCKlSb4v2#dM?#Ixg6#1S=*HnVmOoSHh zFl=jJY~E;7k9STS+ULiMnPt9ij-?W=t|Klc_XrW8PWX*(c>xjg0dF9hnGv}8 zQ*yULo+kfW;Nx+=wK4y973_ci9P(HJKq1%xCOEg_mF$BIRw`6Y;xh|eib3r!^?pDuNchU zAAn%|VpcTtLpZ=qH7#F~z((%iJx0XB=PhB5+TBWK*e>QBdOiA0$wtdnwlA-nx+2u` zdE}t6xL8fg=+A|?-qnQ)bmG>g;g*{ap*2*-3Y36Hfd&2QcV8{c4effKKNf!w1UJJT zUZDX+5!4b7%9%b0VT4xQgxpmjIMc-2Z&flWZ})^FhvUf~@U3BFV0)kvb^{5bAJZj3 zWD6^S@2Wx<=R*74X)8Y26<2-=VJq0FqQ!Z)S1lh{WapXOOw448Y^w%=N79*op`iVW z+$_bRP?SFio^j|jJJ~et-MW!bN+i{deOsRrjP)5=9SIb+u2&`ej93tk4#K* zz;WF0CFTH<0N8NmpY!@WY(qT?^MS3ptB5P76#7R`dG&IW4UZbtDABzEU~^l=GKJ|& z=ce9jEw5JMB3h7-9a#}fsS4UXdOpPgdAjBi0G8%gM zkNO$^NOSb9)2%*A#@?a~X)y~1uS>4E5AYp6$48F6L?bHC=b)#{@LTy_wUNoy-sU!n z_@(M}aZBuW>k1jU>|Z<#ZWS&o36?|~l0uO(tM?Tsxl*CGIh}&YW!%o$QTFIEN;kRV zP1Bnr^pZH5`4&(`V~MMJLrlW=uy58p&*WB^zXJw?1*Q7zY9^J$!+fbfnz4(AF$Yfh zkQ<~}p16Bh%imq}Bgg&nMCvf`29o8Tp-9qZj3)o$U+dQkP4L`dm34#J$bW@3QtuYg zI7;LIW?qbe7=Mi0i`#|hNzB*v%KH{b!MIG$ee6Sg8t-9s4dSMy{IzFCa3n$9G7s z>z^0US~&Ct*I$d)>-(*OZ)xI*S;6;Unvy|V{`72{u=*U8hZt=QABXc*95b4fn~C7Z zF5{r`hZXCO3+3HkfKx;;{8g_?(YjGA4~{aA1}9`|Essq{-^9`U)^VcZk%>4PdNqtJ ze^M)j3Fl=SblgYH#qyyMk%2*E9Po)IRswfCFmH`bo@9S(l(G$gKqSA1v*&AdEvaGd z1+>{JHO8zjplVQn$)cv|ts{xB#vgraQFNVCq>~Oe-#*1S+|4+3n-=fz;7o;neep^z zB?_vyDm0h(u%2rne^vX<*yqCEZjnT#>*;@Lg1AyUgPPe&@|@KK1_b&Kw6N#wK{DL| zq*r}O#AayCchVJ5P>_F%5HbQbN0o@MfC&wWB*3EZ$ST%pM(IMfn1DBrfc|14ar#Gn zxDmtS{gT^E?RrzDW#Or`2m1@=K%2$*2H8@Ccq#fpAT5#-QHwsAMO*wkLWGAcM;`f1ApnlSh%;HR$EE=p7(bq5bd72KvjFg{di}kJG3_N zhS{LaE7M~;iR0#yOwrWTsjuu)n%>}#&koiD37MMuGxPp)jg>c&)nMvJ@WqE(fY})eFXJvyd$ug)0Y#nj^i|w4ZfWm_=3B1O49h|*OULab< z(4<)P;uW;QGz=_~-?`w^O~iN|{tFM9KvdDB?JmFYQS*c_Y@29*72Tqh!qRY{CgGs~ zTF>N{gyU3&;|KI}VIV(0Lr1Am&@un;{q6Y-j(q(t*Kf-X3wI_~yWMnxgFWfdnn*KQ z#kBoL^f0*XS6o6>nMyAzrzyVfwcNDFLmL$3y|qsk*ya06X7E2$iKygNqe?!;fS=b- zT-8@PI8f!q=TyGun&q;)Ia{Q|5El=sHuhekOQF+h=knwC6wr_k9<--I)A3Wu|D-rl6_!B4WDuDNLS~22U;r-V>CNOWxYaTMqUWQSPa}kt4W&x z>rPe6u$|qE4huWq8OMxNqFNsm6qag58A)yY)4v^*R2K8&{~p5p|DA!5qyp#>7xeC9vAH`8nih1u{yhoJ zdw)(g@M0LwBrMEsO+nRU=6^_*E_zj$WCJ9nwonC}3?^NC(J(MzRTDX^2LvvH_P&08 ztqX3$qlF-(ljJd+XEpGUhA>y?hlZ{JX-d9czz?XSLXIGg1XI!^=Ok6DrpZ&p)wGmv zzya21o>hy*F&SX$P z6gxmcFmV*>=G<1LJ4{Fh6yn*i^&Fh{tb@vhJ)I3|O0`p+IZp|Z{XZ|fa)eBg(}WpS zu@n0>Re>*0@UpL3f%O^&%H|SoL+lV$gPo6G*M@^z-u-@&-q|Wp6q7AdU;cI&7Pm{h z5%bW3@nEvqj>ixS^<*ztrtWZbBn8<~5demc^PNl~pi_v`*Q})_QyZn*3u&30w;ZAB zmQ!d4XD%&veTl)xf_#A>l|9kbQj~+;%}WagP0Q@^DNP}+wA0zSP+|-?ZD0eh(-XPU z66zigfq!u)*GI9+mp8#;;A08Gax>tR>lLG59?&#`1oUGxCYBqc@^I~RdELzc;^sl8Ne)5|v< zv+8RGlU7(8!|_%TgU|PMsZlNX`t+jL4xa4!gQ43l(gX7B@2Gy8IBjQrJ{f&6&Ggw3 zbOtZ(;n((-h;!yWJ{#60lMKZUgC211b)&y$E7y4;`AkD#f#IWWR{8KF^7b#@S&$b^r%^iBWB|ZTyK;UrP_nk3^Y%iK04_AdS_HM3w zJfo&T9zUwfF(T}RrhKXMPD29^g)ju;QYBGvANv|Os@O~+o~I1cTn;h~3OYo})NbiYl>6@YTzd}Dohp&i**-@NaCp|~PB~}GUcv0C$WVwjb#6=kG+dzQ= zznM}bE1Fo|Af4(v7e*Q-Az>K%pGaMwRjXyQ|1tS)FMtZ-ce6l#gqh#G-7#fk>pc050DL-P zSjWL8-`(zRQVLpIN{oQ9myC&9%7#NS}AFwI0$` zR8smpK-0!mEne~G_KJ20Ue#%ZvE!nK7%xtn1-G|L(fF*mY7s0e}n5 zlJfk7y9WLkgMP|E)5I7O#{7$~A>O*Y&97|v^JSrd!{%xb*GKfZ1IU^t*@aYfRz8{% zdvJw%x3X1CEq$3<%?J0+^97u-pCX>p)460EpwF{{gi_0nY_FU0+!^Kgr97g>0vJy8 zKWfo^=#;>OTP474`W`{8BxNwh{K%-|Gxc|Q6WkvlJ#Z{uCd?G%x#3KhY11n=Ki~Uk z)3>uONB#yx7R%_OO7}EO_|=@4Oh@Tg_046^Uk7w}Mi9?z;>xPvs6|8%0kNtG8s`vE zHIlvh0B+D9AlfP2mbBQ*O48$bJm!`wDqS%CW!g-EULe04<5xoR^DrOhTU&~|&SR-F z!Fun61;4|Wf^SkRbscBfX*uTD#wT+hNo^`}mu$Rl4n4ucaL+szRB3ftzt zLkmBiOE07yor;BkmJ?|+S@EY22p&C!@Lyj+d48T8)S_#!Fm9A6h?;cXQK-nH+$pUD z;mO_LR+9%CdinH+nNuTy4GJc_5Rd(RoKXQNBF#Xlk)m5D%c>o1K4ZgMS=?1YZ)Z_Z zApMb|7wWXft=eXI((%)1;BtxwT!S3{1KRmn1A%aW|2bs;_d6f&*S{5m@V-@{xrhUb z$tx998ei)V*4FieY$Jf%#xvSL0WB;-n&;wo7rY@hfEk$e#nEt;^-5Qu+qlX!)|S-< z07bY1uTA7u0>6`4ZHAHhgLjE)mIJRa0OPkF{Lz%UQ85ntHkEID!_tHoeF#$K1+RiU@I=MQ{1Q#=`a}EV7aFZGI}h3772!YW&=J#(K)w;AY=#ILJOtClB$GH88!l=M(7PG?cT1KcE`MCD?#5RN&i>WTr%GNot0-D?Ytk4NfIjO>C6 z3C2fHmkBp7l|uPdwx(I?v|jxgF;oQ1HGB1B?U7LTvb#e7;c(h`ewg*cj5XhGvWwmXss{ z;f6I{`&j9(cNBSUS3rzOzII7%mY0#mflkvV8k)-H!lv9Lz4XFm@w#!XcFPyvMkj!YX45q*N61z)@dA z+*pUTy;@r;(#10Ds%1Rcb!*M>Xs@1(J4nZM8!JH&Rzl~!Fcj`~O=s5DCrY_?aw&8t zU6i%vZKB2_<(2J29sS6(#?`I`Zw6V4e`RU_?l~m`NR7`zwFB%cImR30Rg}bSG1IZF zHn>!*nIV3(G9=NByc5}D*BD3jEHSTxfE`lti_(!>TaZF-pdVD?VpCT7r$1BUUU|i1 zft~g1qT&YJ_laZ`=G49Reu07kJ|P)F@3{n3BDYo0L%aZ*?qC@TYBCrU|EY?yoZ_M- zpK&wqZDTZaE0Mk;aRoEWurBg`OGr4@ys_R6EBhvt?~AkYl${lJM^f{9;D&2}QIUP> zrhek|@I9{gsn4??4ce*|ddEavbxK!_-J>Vak1K+GIO8{?^vYYVzgK zGW-jF+Xvmm|Nis{-4h8yQ1|@FqY!MGG!COiib!{X%=zHs3kXsSuitDo^7Z zW}vOB>jc=>y?XmwMp2EBtm%c}Ny9bZR+^TPk-+V`Ms3@6aZLWBZuC}5$QzmlIyl5# z{E0S@4XC|k@699zXoKRex8>KVlq@MdJAIsAXS&li)9MVUR!txep zsxs%OVU%w$lq*oD*lIm|0GVnQN5L?4L;gWN%Eyx*RqsThpgs${u4U zklrtVdY+Mb9wK4{H_cJ)$MmK6&7l_ALLszdI^emTeRsL=@F>FV;{Amxa*KZ4u56xz zDt=U?7W9kTDub1+ zHXqulpU{nbPhtUn_LWcso9Q%Gc9{W%sUkU1qGWrA947pUR67Cjm99!_lzf*XMV@E& zm0#+kQlCYk8ml{(QO>H0SGanI0yIcsO4R!J_7RV9KCiO;?M=ebqHYrn)QM&B#|fAK<|<5S_I5Fw zHNcJ2#3Z0>`yZ<6c-DIM?^M;!y=&UZh!J2D$!U_CcLW14RDW|uFFmB$r|E@3?ZgDB zQ^>_bYvA;!dOdizX5u`l#h9hZ$Ka6Kme zWq%0F3jyIbS@Kyo5xo9$dlYMST?`W%8}R_1EoGqf3Z>Om(lJM~-~in4xKVL%Yv&6w z!G)CigGhPFqnoJ3a4{HSDX&-<3^w2D}09IRD6ppUJz2-Pb4<@wN@&&sM=2SDD_I+@o8hEqb zBSfX<>ZPft84`C!&+)LOdO)eq2N+JZoV82J#XXpP+PAw2kO@L$@qC2)Pc5zbDxS@6 zz|?-?3Qnzx3jH{bjeN_6A~q&K@*}|)M5$mnTJ&vWGJ|nq*Wq6M&@&e2*)yV zU+gcUFH6U5v8eZhT(wzHaYeSHKLC%g2)a&*c_#8;rrFi;o^5skuAfE4(Dk7=|6##I zQ(o}@odqMjXTc&tu|m5&;Yu6nc3Fg_S_28x8~mLu2DP=^=);e>ZsoE9F9nB2Mv@|F zJNREN3)b4HMK5?xquWlcCoXe2&KC`RVy*fylAeth_6Lw$YsAC)!ANWe0$!{Pd_Q>E)zmrDh&Yn z;%FDLS7&JE2*rKv<^=cmRzsJf|KK2Fvru_ z{ymc`?>?IOdy)q9}kTptczB= zZi~f58TFB4@1uy@T`tqwCS7Z6_4*~cv@jj zPPt$a?2X3#^?{fuohqGiaL3unk4DEX>jm3lpb%XJz&Tz&m_1kjbkO1GpVyeQzsLia zK@l&%zVLN_YYqx2c>?az#SjD?+LDo0>2^Du!>z|I2iFuH`S@fLENy!IT+}dh#P}o^ zM&lx*N8B3JE**im1j8@Cd%{U`gV>kLh_0(ACd?&U!7d6aKWkLgeg1^@3#iD3xm@>Q zTOhc`I~Lx{zyW^{{JHo{mnm=cQ7S=K1#-qe-gs$*CC}^S=ANK7E`p)C@)si0D#37c zN8B}~X36=P<~rr28_SgI3&ReojB+bB3uSZ6|2s)i^;dbm!?eeW-YPh zZf%!riP0xIkp$y1j8)i$E2rW6qnLf-vr$M80{s$p6Q^v16cG27`anYH7H57B1urQkXZaMfQ45?kJ%^-k=EJROfbDU^v9b9Y{7ov#q{ zkU;*y-q0lZL-!9%YWDB`HAv=$W_rK>?#;n+l!@IxskbATmj33INkl zW|hm7E^3H7%)bSeH4hjt19o72(J3S6DQaRQ`oN`W`%?(Wye!6GK;GRVut)NM#KGZ- z(ke>&>+?f?Aw9yl&eN%@Bd9R#U=n@kMg%38U?kDA51=IYo2+I`>K({4h0SbibY^a5 z!g)VhF1+3MFzIzBl=EuuYm6*B&nSn_C1#G^7?5;JAK`CV6t7L1(s3UA64N2jz6eWj z9$8#r?W!Nhtm{GcmSut+e0sV>7>%Jn-?97d=A@^5=JXZHDqpuP8GqtTyLuU(MDjt+ zxKrq*_|e*c=?K60`I@|0+&QD^J|;AqsM7A8W}?;ueZxSBuI*C*DE?L{Jgfe2>GypM z{b+M0B-2KnYdPQnl3k0IvHuKL2GSTiebI2`6n7&zLKxDTLTKD0u8oS|7XQ{dH!M4V zI^L5U9*gHb)BOvNS-W%$MT zS7anYG^1%g`$lT%(%&kWgz9oR-KA(}vmkFbM-V$C985e+sA#)?1HA?7j9Ax?wjBlr zZr%EiJ{RVt=w_u;-MY%I3z$8FWx#k3z+9$Y9uqKS?`lYM^m$P}ByfDLk@sLX+0Wc1 zn-GzI6lg|Hess*NwR{zVT$;JvUF$i6sT6hWR~eb6A_?*{lydz(+wg?~6`MzaVA4mRnIypzRz;>>M5e{poIdCM!*Sl<(ScOJ(bZnk}q1S zYWtgwrdpgZPz}w67tOT0Z+xv7#GN@^ow(9>SU;v8kdipgYti3>OZU_R96_%Zyq)(R zKi_g;2EvY=e4mWIJlMW(NqCz~qCiE9Py+gJ8D6@WdfF)H&jG{-C(Ip-$ziX^Cwx+% zkT1)yCj_qc`={+vva>`L(#-_ee_WD_d#>FRcUYH2ThktFo5J}B`K{LJz|!mlyjRi3 z7x66OI85{1zNX@QOL_wrL$sBTU%E!rK_txaHBOty!hbU^!|Wr4q^-#m?a5|}Lxaq- zrWMeRdA?5`<#I@N5ljOyFl`CKCg+*U&T5?yoB~nz1(b)Qmz^`17lkB|)zm zR|9_JGZmj;kaHi-TYJy<8l#s}HBE9Y%hSFuU>}~q@n88h#tgd#wV&VaKt+f4fptSd zHMj!_Mg>nGFe$^`w9A~$tXo`HO|A!}yU+Osxk9}Y-GiJMI(Aym>1WZQyCG3E5RArh z2d1I3=|U^v(XSKVM!oxg{KG7J82|H(t6(;mO{@M9?clYVVj#|(QMtK6B*uC~xE*eI_thd(Pljn9qD=5Xe!{G5o z+<}K>=X!!sK~5LTU@c|-!#LWYCLnBNsM(eLM`>}EHTicD0QGP^-zGU0TdR?b$E!cn z(WUIx6*(ISNRr4S4R(2auuEjeKXBZ`;N;~0&=2sX>I&m#)y}`{XXU$ zcWsOdVkB=VF#3q>fs94zf_U!0cI$8L;18$XFy{pQjc$mW^@uCvWZcM&dmd|Qxk`$W z-8fO|>C+i7t6UCp(Ei&yrRhxm!4pfAL&J3LgikW7 zEsW4l?>%Wo|F9r{tq`4~YGwd1eqwALsw5{&=>c~Xh~rGqKY9N{0(AK7cY%V@K)~D0 zEeN;Op>8@j?-ZD#%Df=)3leab@fLLS;osR&W9pV`mMbp{z~znhGKraTFt# z5@v@nC6_3hd z_p0p!-6u`15}27p6}@i*LSkYVzn8LkgxlW;%bz}|z>CnO!dumF$CBCUmo&lLno^-b z_QA9>2txdtj~;T3d}i0q30!&wLDLCdX;_m`k&(1DM^AWy*8F&E9Tkd+c6|qUHn^yG z%P)gx-GC6`Q7!BsjIi;|ZTi0AFD_Nkw}fa!=tg76%%E(psvX{af@X8+0s{W)rx06L z6B&}HZAfCo+fRkm##35a%C(`3cjWBe7a3E$7xukSH{mwusvsliNw*NyW!*^|O32km z;)>~Wl6SicU+_QRSikK-2QSW=Ij6zzPTu~i9SHQRSh@l|0Y4)nz&^-nc*nAGKq&7i z=SDQsWCp??L$pmjH4&h9w+_PDCqO#%FC~hJf3EHb+DXjOXvbM7u0(`Ry(LxQU`&-;$!{WDxd9$OkpPa{K`2;R9xa>s-9skgw2=zIn3enXOuurkHsBZ;$*yo+s4t)#XiK5T2}8C3WFPY z>CMb$Nk>_7sYiM?S0wH(vsNd#>g!oN$Bfa&4~fSTe7{5%iETx1Twk z&cLES&rxiwweg$6+IB`z`K42|Yi|_MSEtr%`xuDgwE`_a3y2lgKydo( zoEMY=a8@pemoI#7E&r`kQR*d7-CtiYmV9C8zVJ%q<{)F_5Re-su%X_0dkWDsHKp&o zoO}qh;ueEP_ICe*ISxUv{9p4J0oT_@Wp&gO-%v6P0Iy-2i;a|)kbr{1!Z)6tl_1(8 zAn3}Fm2H<)ADfZKE|5X1sQvMmw5%+e?Sx01Tma)2Fvu40WuiuWe!59r>*Wg7UHno609(TEA4H)O7Ux+kKa)Gte}L(`SCBQrRCk^0^Z@) zFoCRYy zUdI%)H}$#?!Zy4LzOABgh%*oHHqgO|pvmOk5c1UP+{ReuK_SJGBEqy?nG3h#U4x&3 zHs-_w84AfJLpGmuA6)gvs~r8RK?3#*mnnT~!M1oiUL%+|F6d zAOToolPLgA#)}(wv5NEaRCbTDtR{5Z#LJt*mdbQJ9q9zoM~VFX zC8G*~hSZ+pzJPGpwfgS1xU7;GG&w;YPzxzwJ=iAKj1oThVy|p*dn|q@9YIL@v{q#9 zUl1g(lmP$h?Sg_E40N~eu^%#{2x_fyE9cA*UnUSHrh zT#YpW9q;RxO~9%RTIA`658x1AC~?&K>cs6%vAfOP?VCEB52y6f1pKPIK>nmV*tE(O zxHx2p%ksI2j8aS8-(fE9?0PzVv&x_N)QbVFb-{|9!ACpY!ecidAYwQ}XA>x*bac;* z?-%8qODC=@7kI5QpUJb7(KIGd8Pxhd(!CKTVC+q=PwQ@673@Q`KY$~xLx(po;)Bum z={XmejB>nl&XQ_^ykgeTF8smj!40k5!z3kub}wFgjqw8;l?#zV-@GP-4rAB4kS1!j zg^OJr3l9TZmwdi7>(^GGp;I<}#NxBz3|c0_Up5Vo$>xA?tvlkoDH`;HOu+25|Jn+B zYj{5`E(!HkCN6-DQ?-#V;fmy=dXn;b`_!0G&x5F`NynR5oi_EwYS;R+OO$RQv4DCN z`ak|*Oiyv9=%e26hg=1k>KcVw^u<@btCGeWq+QlXyBq)uPASVWT0)23J3!MHvwAle zt05Ceajm1zB8?>ZKijf>E$7jvonD|RFqQS)7~Dn59`XL8j54GIYL3x7g<8ht!JN(u z#qRhjjo%!`>u(=zttuFBjw*ozViF(QZBL|uk}_SOS)pIBLK8BGX}G#{F%(g z&TfM|AlaE~s1qufZgrHKdyMAYTndB1(&J(k;PPz?z)PPTw%bTRbpE+CmTgg*Be{=4 z2rxceTV?(>7{Z59Q*$G+F>G&u@w=Y-=~yd4W;BVgPV-r-P(>$L6%GuVWA)!gQPLZV zd+IlJwc7K$ycWypQD+kGBiR=1!kchioC&@{xR2}pxXiQxA|R{Pzn2n~BvP9^(Z^cV zlKni|!1FSNG5!q-jL7ozfy!$M3F{jGj9SC9Zs-U07jiRQ^*T2`G1NVCzv^WL*hzP%sN2NEDNDG_HL!+GHn`& znp$n_a2sBVk`;0fQ>!LOyGURwkqg#nPkGDmn5kPg_)6^HO0DBCUgQRPl=B0Bsb#GUqn(L;g3Z| z^+)AIeaIuHcJL?uKwxEl%>9adXcmGOv z*x8ksot-V=GN?#L#qowSx^}PDfe+jG0UA73_SJNlyF4osDlK&w{G@fX>AL}I_?Y*hy-UrsT-RV1b zRu5}`{#CV;jw3{S`dwRTn!?W_y3WtrzV&?KzFSE7*v5v)JLggn5r@+E^9GbN#h|sQ zTa(Qo)m;`AD$U3G1p^BjT6Xh}=FFt5WY76LXB(R(>Yb(?XIYUQ%?h^Ai@9T}Ko5Pj zmXrFB-&J;?aaFG&f@3jV11&_06X)mzG9ke+robGD=yFB`>TUTGUtUO8-4Wh-RvVx9 z-lj^;UpAH*mL{Iyr-s{q-xAfHPwL>q?2Lro`a{}JcMN^uDGjw9?QCnGJ)Ml+o06Y> zB>m|i{RbWzsH@2z5b%SysYqf%Yktb>*wAl8hby9jZ!fIFZU0WV@Ae>|twG2-{VF=J zamV^hdgvi)K=xv7J~KaOzbDz8Y6C>GR!PDvyL{y8PWAY5VWug?1U5R$5R8IWgLAU2 zPBOe}0T1l(h|g?tHn1BS<!2_{WDT{Y-dsK(WoXESWd4+~U2mH+c_n&hmiL3f$T5qFRPNCG>BL(btvg)EF zgu|N8Rt|hdCvsZXYgD8Ie_|+QdiuU^368+W|0(`JXw@SiYgksAN!10?=#=)bY4hmx za&zwW14GS;C;HxzZMGcxj9g#3E-9I*=8SjDraE5L2cC5NZU|Tx?{Ijc9hy7ITutN8 z7*8XQzWYp;nW+;r09Pq7=-mklayRIc&U8Cpa=ZQ2;iixc4LSAt>XH(%dqX1j(AXzJ z)m~1jceij$emIsE{OQW3|GIPmF3nDkJ03cd;S(dQC2TZWz9h^57LaPlrGj6X5<2J2Lr z^zJ$b)IvKr--4pG&k$p(s#M0z(m&PyI7B$<+4Qtt{vXcXJD%$P{~yncB&2dhqGXg% zSs^QQWM&J8%FfC-WD_YVd+)vX%qGcp>|;~e$L1J^!|!>xuFv=T?tQM`_xJt%bKO#} z>*+Zj&&Rkw?vKYavLi{FwbU7tvNa>HrFC6rGX8D0ou$TIZTXK-J&Bk*=!4vYUbs-` zI8|$NVO9U6ZASQ^12bAc!HT7?r)u(^toRu`LK`KIL?_On*G78%pkX{Kw^3&)>wbsc zQH9HH^@oZ*?+MIoMa{O{ch_#{hT-?w?r%)a{5xb1;W17I?voGp9IJbDYoI1vlboeA zRy3o26=W;TWAArSYa(z$_~|dbd76Q-|6uC0GE40 zHS%!+M1x_^aU=~MfQSemgc$9aUicaB$7Q;toE)wAO!y9qdixbThZg7bvx9?bUaVn8 zk}t_WC|_hxY^;1tUC6=1L}b=81W)21-x=vOm3Qt}D#2X5BX924UQ;W;6l?Z&=<39C zxH5zfK{cdzk15anNZzr8)or<9)jkx}A27;Vn9m(ubab?E6jy9wSV=FAnLW<6F>(|+ z>htdZ5I3yo1iM|sLMUAkPCHH+|0|PPD~< zV=ZatKJmxtT_}Cgu{@oY9{U={IR?+kFOI4ESA2f-IKdl`AKg?wQfpGwMg6F?;1jX3 zuq1pvRrM@9hK{kj##FtPS;uimd=tsQ@M5Z(-y+~qw3ARtfN}|!%qr=OvSwVMlVzFW z)_t*TdCdt&*Y3QW->)gf8rJX$2QicQ%FY-D*KOa!6)X3OvzUzl#bEC4J?qB`4HJ3_ z&xAw6-1jI@Z{jy7j{PMUm{ynvnjD`vTi<%jV9J$ry_D9gF+XESu z&HS+SdFPk3w@9DvW8qli%3j?EOkWoweMD{CezJVAwMoHH5oWmQo5E|Zm*&vEl_fK^neAzHghnNFcolGwR!d?gDtC_QZ_-|}ytjz? z)UI_vOIMy8V6@;|Gi-_pp0{1ABE@pc3k=Lyu4LmXuO;SNWyx1H$mT`^u|z2YA)UCJIqi z&YJZaZ~7k-dTu+lAs5T7?7jb6En`)6C0C+A>2Ax!P%@dJB{ zg0ykucF_%0KI3d%WDA*#3J;+SUS4myth#9LB#OTRS1O>icG-%CRul0e^GJb^hCBu- zjqLj3lRpMtHZCL0U1K^}8`Mqj(z+x2=v{kv9qiJgUX(`_F)S|m=dIfPCrvV;%hWw| z*GD6%zQ<7&SvfDMIBt`#70?LHHLTiiBq8B=9-ekT-O64gS}ydSOG4xPpQd?Jnsh^r*}TQ=%v87rrg`7sr8J%ZyIwW*%u? zK}kwp!T8svsFnTU65FiUx6)DMc?_5BxW7!^N-E%W>eu6QbLq2s&_gFVdHl-jaBkH> zA|ErScOj_6e*|8qXf>ilU3_=X*X^kH%)JD!cWO4af-y}?-UGHJ@_aD0QS}wGk|Wnf z=T|Cnoscu0=V=%-<9}WbWy+|qnSEWkQtsS&VCZ$8mPd@Ub~`x`k3`EUYW2wG-4e%T zLuW!tF`%md_|GA;*s}>eRM+5>8(2G8o>*n;`&n#R`mN}d8KIwc)Zcl3HYV1@>=Ji= z(GnwYqrH=rl~WNQc;_awGZBx$*eKx;FX&3kuh2_b>0g-7lm|bs3E>u+Ygr>-wtVtz zjjJURl3~L5lwj#|^5RE>UH$cir4ms+E_XN6AeZ8sE`;W;^mX4q=ev!V608s*kso~q zQTMg|d{9E6S4MUtVcPcXhP!pFvR(X_zIJ>k3kX#S7$55%is>qkN)$;m#Usxe>#1^t zD(h#MXgfBI6RsBobiv=1b=CQ}7}qP?m(jubJHPzvB& z`DFg~c$@B6v2L|!+UekT=N3|bJ#(>}q~5JedKQL=W(@U_ zDdjM-o#qKMigLP(sl8pql=s2ksHXk%i^F%Mx!@M%@Ton4p^fQl3&=Bf*G5DN>*~}^ z??ox465JBtPAaGu{8d8T_w}Ii{U!o&#aVair)za&@8H=_+@odXr1UR^$3Ag?D~sRN zPRI?Ta>w)#OTH`62Tyt#ZWaUtOQ7w_ODdw22H3mS@R*(OYCV5kH5A^fg+kP=&gT_` z1%&gub9a$WjdTzXeTbfRI?J8?^-67Twsk1##~a0M+G{ zc}-j9S9+{?Zr>B#pR>w;9LE=c7JwY{^)Xl+blcUEUPs#LvkAl$2s*%_$N~v7jCz_d zzjKRo8R6jXu&ow*?F!418z_3AJ88MO*w?z(0K;};ElTp-*OP-%jsUMb;m~=32f!fO z*85j}`-^Cter@Esssra#fG5n=vp+~Z&ZFw6iHo@wA04nr`^n}p5*-^Hhc6gi#&%|V-=nVVID2YYv=F}PBI{!taWMb9Gq zHr$odHo|hdX4uc&&O^s~jgW{EFS{kt_k#(k)F}1K<>e-ym@iT1SB5TUucuW1c zZt?I&UnR5%Bg|Hi+ZK%^tByP$m9)0ojIJ`cUN-S?Ry6%fZIN>*iZ_O7O0IvThA+tqeW8{4v9cyWRO1`m7@48AvdGn6lh5BEWfqbd+?rVlE!-jMfYGYzC2uB)P zF8VB|fJlT^XNMY|Yr$k`t)M=aqNtDw9X|u|Hi2VUg7~Sk!nfjY_w3~6knp~)$NU2qy6v^R4GGt?bWAHh^nIGjm&tG=JAOZz-(m$ zk6)SY;DeWUpH;4Z+lq!3WL+M|%n}a91iupbuSntKZvAc3;tQ|`RC!U=;SO&E0TTUA z-2h*k_G_P#8j4l?m~&x$Bk~2FML@U7$B~O-^7q7t))d@ZcwQtWjZgP}Mt#$buU3vf zev#%#n4N=Mf5y_Y@@lagv;F|kB*?!6XMwRvKG)Ay(*2oU^ z`@+)8pgRr$`SAkxfA&=M-;-(Kd+#~*9?1~L3Xig)eG@TtWZ-c)>AhaIP@$k288lFv zKUGT)PoeHXFw+~>ejk69(ukVg40eP%={IUc8NNf3ca7goo7#Kx>xQ9CUy`t4PaXY= zB@dyx1%8m4(Jejl{EX@a={U4Jjr;w22@q_u&Dh0PS!SLeuJ&@xvslt59gvY&T1Bh{ z(r?_FCn|-SX$tr2e%N+>JjP1oX+juF_Y!4w?kNA`lh3d|=0yJKhx~^uuSzZE1$lDw z-L;WS%&z!ohoZ^S=+?*2goC0hD+<~|*1~2x>MeJ^T@YFpve{^^H@B}%SAVk$2=i7l zpZ5QZ;ZC*QG}a`^zIUv<0^GQHE#SuK%rk7p1r~CP#$30!H$kXr{&0ejfvmH%OmZd%g$81j(SN?(G&;+({X#WFA$M4bsp#>$L@OP*cl+VWY=Op);flBx$tj2rEyL3;M{`rGg{lu&bu7c`h}NYU0O@ z?Y2EEjY3iJETy_E6GG+Xekj-WtAZvAjrz-v&Mro{W%kBB|Kx3ld&dw9gbFk=)J$hYsn2pA4#lzcnl@Q5;Vx3q2_H zFJI$48`+!3C90oDPKJCy?zonj9VYkIv?sBE*saW^a8J7u-AG~RM+&-`lS7XT_jV1W z>pAVqi3d=$Y+2Y_K&QnY(8%BK@^wa=yB$rt9|3kAy5IegH5KNXOqxqUufxI`6Ew7C zKNXr%U?JG<6qeObT)TCLC@tlxY1Ob!#~1fw>3BCQsaC3~$Ty$tkk4+8WiLtA`!?iI z67DF!jQ6iwL(#^{Ty@oBw0kwAS9DdfN9yc=bdq{cPth;FI z)IJc#@d`^Z$SXTKUUkSdm^_3$6aJk&7Qs5R%Eg+w+F{fn#e~aTP*$7~M}1u!zNdjz zMs6h8XAx=K=x`q|Ub{4SzuGywP&?`~{Xs3C>_!P`Zy#Om3D0Z{*0R-qPo5tGc?=)v zz0N}!-Hixdezv*$e6)8^-U9-O7=NbAT=A%=!QXBrZF6dBjY$J^IUbF;GGd>W)Sk`b zf9BdXnf-Zfy|z78(F;N=61!`6L)n>#>Mc8VVWVMAg6ukHhF3TEXky6as@&aSz0N67IJi zxtWiv(-(I-CMOgLmfa4mF}Sd}bnSCXE_Khdl)Ccts)czXSNTD@du$}PWW|o%dg@^o zZzm3gi~IN!3qsTcY>4`NO$SB@T&L=(cT1ME_HyvAC-HC4H8y&EY3OIxBd-=`TO9^fc@5eFY zk4I{RADN6*J8M@SZhLNqFzuAHCNkJD5s!Vw3NfD%z9%D|D|mdYZvTdwRDE9JfVTju*5jR6HsQ7v@w}A|c|MZI z9g->|S`m;kHQo2agN}^vLz({54s%x6bpQq=Lo3nJ;YIDn6Tcrj&y8t08bc&yOGF7TawWcO zE@ytfgAw-%=09|;tJzFYi$9Al(BBDR@4j{mDik`rdxLx`^;M}fd5Q^})Kmx0vTd{8 zTx&JiuJ`-65PI9mB%4)h*X4fI4Ty>>4b^T(V znfd9f1V)E@JMc#X`l(SWjC}HS@47w=M0_#5$J%IeYP3+Y=XRwmU%Qk8Mrg+631;`j z{{F_n*l&wTU1}izeS8E@9AMq=TRN}w*lU~Wen1)d8C-T19_;lAq2H7p+Ao^OTLoB|y^G+Lu!{JIyOijJyGOMpB;p_O5}jqVh;4k8H$LpVB*Qm9U> zX~2^&usZasBwne%9J%z{Aphh>!bDk&iI22+xY0Lt(DxIi32wk81YYMyE&O z`zJ;tz&3YuvLS_MBRwYwkg99f4QsP{y9wBxC1T|f60{y3}c`P zUhT^!pP{ZbadM`7)@c5WoeciqvitmAi%9Ks8cb|#Hr*rciJS3T{q<+J(;HO>dBjm~ zU;A2Iv0|T=Ejjr5|H$_Y z1r42gtw<6Bl+^D(J_e%R!0lz_*Y%6QSNFXRt&J0) zVO8C)x%$$1AZ6=Yw^Y+N_v>!C!W7V9)fW%VC5#MGJ%|IfVuF-lsW5u$iQBYVE(Sx& zQK(+p=UqAbN>quYRrJ_P5pLvE zL+AowEc{h(UR-1uNjB?`pxRQo6FpsP7;pXs*VcMW5dvkA_oH&s2x|+02hXfeL};Tf z=EYV;J6gx@A%4AjD-4^@WTbND8@#xcrB9lxh}f}P)lj$V!d0cyKI3#zDtM>We6 z74BoTeN8a*%2R7`{b&2}^EB-Q1)LXzj&6Tg;|Spt>FY-5hsP-8kruwcZ@6-v+{vt= zeE74>^=pODa{HLW-`H4|$jqR>e95R_&DqPTwe16+f9Yh~Xa9VuG1)NEGiEPxv-nb4 z2Ke%S?x#R%UO*m~(Zw9o!^AZ9$Bx~mLvMqRQ^n^ zOfE>0ntKxPc#Afh-{sPZ8;6CZP&iW{IX*ht;#hrH_*d2Bp3FvoM_qgw`|Z$oF0KyU z-O2pjrkZh9$G$r5J60D}5X^HWFS5zRQL28nkGSw0+y%s8T+DMgV^R+>6<`8mf?w8I zo$jpb*rl&;2)_|-Gi>m>yn^UVVTM%`@0sfx0g?41P#jLb?5`%q)yi!c9+^ZCf4xKA&Fe6n)1$l9mc=`*|K(+dQ2qhXq z^k$clo4yf#xSGjtZu0C%+&1LYI-VUd~mv*k`g=ve5~Gsu$iZd7{AnG<6}KFtVmQ8;sai?)&|U0_9zHFt!xN2TyXGrbg)mH~ zXfTgla!O8u!z;aNIRbsbsw$r!$sA7CgyX{v%_`a%7|;RpMMp0CMKC(;Ff+d0SIv%1--(oYRS^+19o$oJ;+E1$-K1SLLu|+8Xx`dlv(*<6)MS%pf}a z{58>#+WoNLT6{+%lNI|sGW-Nc$*#;dcx>-rll=CaWNqcWy)nCQ2$|Ju@0Qw7hHJf~ zCx{4S{)ZOspst5a>{(p6hllLRW=#-%S0SYQ$d>q0bDlL^%=~*?F(n@1W5Q2l@-My< z_Qo}|)^c$M*Vi0MwF-8J{HB=f_?#~yePLm+vHKIB^z}#hsQN3pL81x=0SnS0jcKyg zuN-Hx8Cu;~3~~)S{Amvk7-}x`A5ry8YnfWtk>?9os1&%Z%*i+!3`J~ij)#?h;bFCr ztk18OKpH9!RSx9mr>G%Ctd8dK9lw1ZzOJK7x2wN6k~T2;@n_xB$4zSVW0!~ux_Phx zlUOuStd)t)6X-l$bf3h*1cELwXfz;&L1Zf_Ui3pDnq^MFP z%{(MKHc?|UXvka}t5GP-p*JYM;Guq?&U(|4ebAA}6I!V7+ku@Ax_UPqx(~-|Wd(Ks z!acRFZ}C=>z=&3v)#S>LnX#+y_Z|64b#(%{Sn98{*+#gqQ^fS3g%a|}I?Y}`mUzPo zEHNgvQP?o$DhCFFsJ~K-K8_twd;;3L+1pK8Rj7Zs+du6>!+p*mnU>qM=U02G*zU>9kpt2vyk@to zN_ZB*Ta(XJsDcfo z+)Pa>4R*VN7KK8#uZ>_F1%!=*s#2~*(jAUQ*K=%Zn?6VbLJ%6gzUz2$lMbqd-=J__ zrSEsdo(ZepAA&ocICQAk0vk?B&rq@jHebF{OME1HxX^F?X*;_o!Cb7^dgceg&F!-O zBPNEsM?+hJ?(RRt_E&D79W|sq(_dKS69^*0PyWKSmK_TFza?x9kBa4Aj!ii=QrV0u z9SrYR#rZg}kw~)l{P^6NHHAMtu9-BZ7TLSUa6ctibbqZNHMy8?6xyaXXXH!PDNjxN zV!Tw?jtAwRCdJYaFMyYm$@S?n6*lVt%uLCr$-gq(`4@PYVfaoV&#`EL{O2qo8zcIs zWASdQT`1t4(UkM@GZVTiba+Pt?MhnKAaJr7{VceBTgEE@5HB(*vJAnmmTR>^E%Ab0 zEf2DCaw2qVcY+Bh9*J#kZN-c~p;;bQx-ARdY@_3IVXt*wGjsp+=^T?~3K=L+HZRv^ zQBxZPj2H&nn)u`|0#wZ>>YOTjnE;P4`eILDmH)dOQQ8+7;PM~h3p$nhbir;(a=`0$ z%RXaTAo2CuA9h!6YQ(|<&o3gFXFM2OHu6A*R%fJ?gJ&8l<~% z`wPC470TY$%gE4wGBv6#A%P@&OFNSE6atER#vV(669XDy0utuDbVna1g`d9PNjzS!FDci}mU|J`^EB5fH$W^? z>`hPV=%MZ+$P-=3C54*qmi&Vyh&ca>o3+{cP4;a_$YjcYvsF#>9+T?)SmDmx3UB<+ z-9qw^M@^*3W+b)Ng7EQM!w=&k$95lciFqx7U9CD8(4VfFGuk73bBW zRqK>Tnl;5#RtD>NWad9a=`GWS^Ug#B`S;~-);oO>YHJ?W< zsj)b(O{joMYUTD0_T`$bZXt-j@J?o+1y8ET%WqJ79@vD{@zH@SXp}Vr-pUSKT6*2< zh|sZpKcUg;b6>>zBwnEk9HbIUY{pk((ad4Woo^RCs`$&Bo{{o{m?x>Zg9-E&I&=0| zM2jhfAfRit>lpW&$!J++)rT{@nn$k9geN|GGu-|(HVKg=K6jHk z9i&=l<>0Bwc$HeeRm||01@ms$%Piy5e(I;viL)Z=5za(1m4uH54Y7AhAAQ(fz13eJ z(75UnQfZpp{no5EXr#J=tEm5w0_$`&=;3=0QL9X$pUX-t(dwp4Ug-%MbWlYYukf!f zurBhY=c8;jj9jxXIIw13xBM16Kz5=oGU_foyop<~?*hq=G2k#j@y0#fpIlRtVTVw{^aV`EnwVE%6iQ>0~U%p zSaa7DIWP~pbmdCqnZt+NcNXHQa&_G?@{ULQ8s>~ph~ku0z3Z~QkiBaA-iCv;RI@sr zZvAGvEPl%;<8LPl=DJk5_!&=0l7)qjg6&oQB=X>=JwiKgN%Cs~hMoFbvm*j}LW)cx zM~i?BFdx^m*L6?OW@ab5>LZfXCW$!p9GTq1iAS$ZWJF7iReF07W=Q)eI?GOZeirFG zV04mcdU|za{p3w*TfH;hWxMTHSrjKF%hZ9VVQQ01k=R64JH*c%3 z5aO#-2=hSa;K!O59wrv(SU0adE?q(*4QE<=`KCq8hXrgp?|(_jHv5PfHEa3g(+3ws zs_y@!P$U_#9LyfHLFRq=xm%=P5XK1={BSp5*0=h1T%yxmr(C}?_-&LuO0g)0V-Pq4 z>-?QFF(m*H`p$bRVUzGWLMx)hrrNL&A?H1csfeZnSXl@A9kUShLBX;<}%dJ-xXy^jhdsmd|K)8P^5f?r8>qQiO<;E^*DE~g)&xCamRH95uWWB=3T<@> zjXWsciRXrQ-X_n{7#c7fC-?2SxJbf=-#xaO^^6l@NW0Y<6GrcQ!gP;5K$ql zQ+J!2rEYYfd{^f|Z=E22dZE@X{($0+`7Uk7{&b8)6%2WYf4t`}I|r-1nGkrp&{}5@ zD6>-T7CqM4{gs(eEi_4*4Uup81g_gnJaUI666DCvW#sK&Kkt!9Ug~-C$vTDDLC^x!=y4%TNY*)q` z`6S&v?tr!a7-JPTa$mFxyJ;ER;}Xcv?*9{!obA|`ey(fU$pPGO703Ev}K3qZIXy8ty4N=X-Lw0p8-hbQ$mJBfuH zu7=?A{~EscIfYCWo)`d7or4SUX-xK;+7XOZ1heuY>q!4>fG!T_p- zk=YSn(5BukeeyXpVsj^q9S@daPm(Qk@ewG5I^nd%l{FTfI0}DCTdN3Adm|dgS8ac2 z=m|fuU(G!i3r`e3+kWH2`Ctz1J2RNwc^Rxx;6uD{Ob|I3L5X1OlE&SSoBGn_v*cpm z>c1G9_T|uS2L;U=_Cxdz<2R+G-apX)A?J9ovJ2iUZnP)dokqni3fRuIZ!dD+^sidY zrCaQs*qE$!Mo8z#){&l*Qd#O+NbJ3|GoR<3a6+kUwpuYXhUL+hDL`)dYiddDIx$yA zj|A9K?#u&{9j&O4R{7IAX9J@1rXIeM5Sw!sER)R)c=mMyt~`8XN7!Z0EM@O)JCCx< zA*ho)Rv>aT3o1r>oV?K__u)whb_;!a8Kw^d zaXZ&uO>f*9Laz@?wcg#K`9}5jF(_Sp%wocIBo#Z>IHIR4YLYR4n}_ephV=@c{I-MElICg*N|)_xmo<7Ln8L5P z>Gq>J?zTo;+{&b%j8bOkjfbf4o#0+>cm9TSvfxF39@mMZ*6M~mGrbR{)$e{b6_8## z0DVU!d@f+zrX3Au6+q3o0<{)bgeL(-UVB@*-ef#o!~)Dw>af zeQH@_ogBw&*iN`bA-liX$<5VHXH~=Gb(Z07{eD-$I}Hjscs!==(a|2avigw3lP^_w z?uibO0zOZM0{zX^;FLgd*Z54N2zE2h}V{pL!05)7Hk!3!r%LMBhU#HSxNUut3@a`w;+(BoG!!p*< z%Rny5XHX;TrPp;Bk|5_?!&`TfofQyA=TaL9m!lc*!gpx2j=M|3OGS+t8UvQOH1**; zD^>wg>z7uTPyTEO{;XOx>K9p0likTSJZMykl4c&8bVqS(KYdwuDdvprnaSE z`awTkjv2C(f1YQQ0C###D0nDu>QjO;F!zrL3vR=rB3*@G%;w z@7cK+)-hOyLfobDFWq}fIhSo(=y%_n?*b>9sm_9gL?)J$RfSSwBi}WLy z;ttMD9oFcmRsY?5s1Rgau7E3AS(^^J9)fW+`!#>UVBWBG?)~hf2CXHJTp*de!CbKa zCIwobBw|p)lCWpuPQ>D?Yw)CX=#00|jqReW;LM$jK@CLDi+4aLwdVhXVW=Ex1zCTk zpbH~n(~({L;xFm5lx!6Qi_6?1cka}PIA?vlwY1wrnzxpleVJVNeeGl=MMC<{O;Q)( zL8=!it(jx&8JJ2svEN&gWunGw%kUr)*Hp}Vr-yJ8uK!`;hOh1lEBlS>hkvTF)n^dbcFsc26|yG~~=0nAgO8SoPqrmJ6Cnp^YmQieZ=8 z>w-Y56Y*}5gMq@W%>4YIocyZEZU*kT*Nc<2F$mvG5#HYHWQjXh&7WX3Z{mih`c*<56JXc6wJ}-Y` z^sc6BXL<5kf>R0&a|zLQiS}>IS9G58E76X{DgMzT+WIm!xSOpK_3j6woo43gWsoyD z69g^QJk6Ojr!M14ZJ)u@!}4?0V5~c@;$G}gL9VgT=&bt{#uYp-QTP#1-_)J(Xy52I zCuea#Ftx^z{=*S?cObRmq1&+i?!<23U7bCt*4BkarlJ5^SXgKnieyCL7|(2`^}f-- z$ZLV!@sgRn-}N-bkHSx5_o9U&POxFo9>h`XIlMZ-u8qNVny>$=93~#<%Jh4FNqT6# z3OFUa;?TJC?_7y6@K#)`ZYC4&k9ziUxgrmvft)UqI1rI53DWVPLYt+UU>0(%{(O#2OLJp^+a(}@VveP|uJA_E&99wA9dxL6wNuW} zADC+39iYmyg1Z}kyR0`p!d5-Wov9u6cbP1=hzZPbS<0H9&8skyt+0g7g624+cb(CT zG&5cN#}*Jdz@pyT+9K!x(e(@(X;lR0s$PCYtyy+p9e$FH@wK%=oho2jDtskbV@UZsl zy(#~Ji2N<-ZEIe!OOH0I6jW-6Hapip(@I;_JWaCx{$!0eDn=fE^q1K(8Kox>mp}wcj`DlFphKZ_44bW$Fv=QusoVMKa+@ z3WJ)t!wsjsTmNuI9Ogb?tDLV4xnIBW!?)P9--zxBa7e(uq^76;AnY~nAmgfe9pK!4 zo3+C<13Y|vLAyM(W1;u=%9a=CZA+v3u+zUhe+z`V*{Z7MVfHJd(Y?bEKfY%f4;$aQ zy6uc)wD%;52G-O(dR}Z0B^QU*;C^M~#lu@wT@qk&eFB@{OHtCN2bbiEXB;moSu{%I z+^b??Uczi9j@Klm4RQxb3)1~sYhOgaFclgfnDlQ9#JH9ApaGmC0A<+P+HsluXq;dk zLXWSIng8Q6aZDD!rHQP$#S0G0sFCLZvAj6pgT;$L{y6uq39LrwxiLFTVLZrvk<0+9 z8XO$-%n{n|S!->kNnp765b@rs9+Tf0xuNr-c6x=!Mda1@w7v|uo9C=xlDHi`uWREw z#T6GQ*VG}CfrUk!>tvd&@l^qvujG|uSFMlWC-{JZG@ry7&(BwS#M%_7S$ZM$m&loE zXn6b!TiN`+l;w+~rl+eEGH&RF4zT=nP1+$n#7WFP{xS&U9o$MM0M)PSVmDji_`{&p z(doStnb{y&ctOkyn`@~lNdJ|7Z@$FUjQZJpEq6SvevCO_3B+^ohKcGEZxmQ9a(RLE%ZY7&U`atYT{M@Oj_ zmhgCIU;jc~^&zHvTyGyA|FoU!jF<(~&A>RJoaLKp{$$Bd1y0{<%0Fy+IKYkeYOvp0~F3b8%)s=p2z<>f(=er{4?6D8bFr1DVav zH_=*C=oHWGZ|{CUcAXwU8aQ5zRXcLzPE70|yU4F)-Er!dYg<)%aTOt|wsh?*7HML< zjE{C(8o!htz(H>T^;(pgOYeVNN5y)1u;u;(X%KG{tN8>dHe;RsiIy*(vJhOFnDGMG z8|%a(-wH7(G%i=WLRZj!nGH1W+R$y&w*(#L%_ns@!4nePOsVtExj%(v304K8oe=qP zO;5~sCvR3&o-Dezvgis}bcI+PX)r)2C6HO?O<5%52|AkJv&35BCpNR3k=ZLTY#01i zMeN9{lWHNsT_bqW`FE+KWqJrba&X---ls=?f=@)|cS`pZ{WGf(wPId;XTt5d^YrB9 zLp}()i$~F#iToJurgdzJODn(Q;lbTg*GI*(62`hDe$Vet zz~ksBQQQnfc%tWksnO3fp5#5DsvGOlTR*{V(Tjl=lFO&>=HS4xe%>vaW)WZbbOzt_ zV$ZW;pFxLc269s)mELDn{?Yk2VDIi`eSJ9LV;y|GpVui7?D8sg4zkLl3tAvD9ZU*7aS1NJme4yQrZ zBe5#t+?Mj+Y>p+`>9@G2ilyHz=ZkiW0Aw6H)u&=c5g_2aj6cYdxe8=1i`5(=&vg$E zMy-H2!v@lE|DjGjb+C7boi}O%@$=;FOrY9Ea0kz?u~zBI{M)Nsr+K~&wI8IwNCXqv zZNC7V-qFK>s9x`WC{OI_;ic%HPk*cW|7GE3lEF-MatD{IS+Kc&)N+nQ_g{ZZ=j2CE zJ8({l86qv+(x*wH&$%oL=kN&oZaveUV&nw`rg_%O8A(iOG;0?!Xrfzc)IZ0@pL6j4 zBNrE_3nsjXnqT;G>c5qq|IelW^Q%8ffg5sHD;G(2$}!SY6`}!Z*P3Mcfmep{d zPc=S^x5+V0{xtn=q1Nb0CB{fb1Q<9`4OJjSLC%U>r5%qzY+o8Z{yiTp zUeUOHsE)l#OLIa0oshjrIA}@~#dsQBkd}QD_;ZdYQw|iy;vgCM5Bo1+OPNTsGf3i_ zaDM3_CI&XgqN0%Rae`gi)Q$+@v_mA`fPh57 z|NobzfNMkX2ybE&t{zRvp{J?*jL-1|xGexRSh{U8ZRJN$27z5V>%Wyjc!=?UPg9g$ z#TlFe^Q_vj7~D5Q8#`u>NM$r3$?2G9!l3`MopRt){a>$UZ=KGQl{9+d1nT9JS=+_Q(;+7ngyrbM|LFzLiE|!jJZC^?q8QKN?5}$Ym^ldzN#dIE89Wdv zmf{oYoDR;(7?1NzJ;eF|nUpmyl0XvB0su$vIuUKop9g<>0)JmSQbO9((>J~P$94Pr z$H0G-vhJyl)0OGO$sj)CnGUFF{LD=*Q>S8oP=5Q(Pn=_>$^$7GT@ZK^czX1d7ea7; z$Jmn#^tq9*W~0^Vvfa$^bhvN|$s#uLITD;cFL~nAn_k8}Af+D|P_tAML327_U8X(f zMO??}`5EiVDh>V|3$Z@QHdv@kf5VAnegtOJNypqgwBvNhN}VwsI-GNix(!5$8`*4S zJc~V=)ru<(D4eI*^8jdhjxBvN3eff|uh??JsoEgHbtfFePuIkNv1+FvzP+sjivm@HpSdM z6>x*6C3-l&v{3;IwHz`V&3}!^hduzo9^c!1R_iuqn)b%C6z7E)pliOY@nIt+Qxw|v zjYRcUMVwlHPG=godES>`tbL#i(5r|C)Za zZh@|0@$RIs;l?knw3?c4-JqSD?aZ)#z`11z>uG8@IR%8hvrqp>4hyYCo8=cCoEy3K z<21g%k6$c^^L$B4HNg(~k&cMt{~cL+v~%KI*Lu(yaTtS|eK8lTBiyF)r;m18Qqqk# zYz2wv_OKkoU*B)r$JurZs3<)A`A{e?C3gzo-kT%FeyN3pVwUx;u`~1YXLnE_`fdjq z>{kSff=+0+gBAUV6+q(v-Jxz=zN~HW7SqnoMQTnB_dck>!)E%VnZ+cA)DzS{v6;kI3bsKt~(N5w1_HnB{$c2P! zTUng151@C>vs>&FFmSx9ctUU0@70ImltxNvZ*Y|**@^?gPyL1p)zB537j!)WY_|KL zLtnnS*F3ElyrUz;`gcBeN|K_*gG>>ZJ>H#1oK+@~=dV6^xE!0Vm~aDxUST4xJJcYA z?%152Y6Y#;SGK)L^;4nM<@SPm?g%}1KkRdOiy6n#Zkr(?UNp@-D<_x+H3K_N^X(yq z4|F5zncj?Q%@U(H^RaUIoyqEmQd5=Dn?xs$+!gC$+Jgyco4J)$0p%QB2RIwb3#dqBKtbv#U-l6;Ucebmo2tx7Z7ZM z$5BL6wJY*%n#jM1JM8*^k8%M&;+g<@fob+|3l8J*M^~N*%Ya?(N8G|fidBn@(g`a@ zsHHOS48|o>6O%wcE)hLYz!rGr)Z?i581e=8NyLGZm{N26#kE(|5+4X&IAAq26rQO< z9x;w)MxV`Gi%W zrq^=*Xeyjz*4{bJy@kF)T1hFXGxEO5q}ze;)dvQJI(EJHc3F1zV+Cvt(c4$4Akf|M z9^R0|Dl+d3+$Jl~1{j0etng6+PLPfrw}lhDoCm!+K70S0y?%xLo*16iG>AZSkn@k< znVr3C)AzKc!ySV#_3QvjvF`trnQ4Q=BS7w43FOY{uRhv)vEOCocDcssh11UR?(9ZO zLeWb{@~#%`adA|4oY0eTHEU}nY||3Zp4IrlFQ$X7xkfn7_9Xv@?j`@*KQmA6TwJlA zgj~LnIT?C>YXToM!3(cHG>it?;d$L|ZOY7qgJ`H#{Y2}>B}=yWf4Oz-z!}PjedKUq z@0VXeTTa1|>}Z)8`|lr6Rw5!IPe1Hd0OMM@Ki6hoo29}^G(-`P&1--p@BvV@4WEZZ zCOMsuc_W(xDsb7g$%FRRpe8SnpaL(YAvfFEOALAv2|zbx&U2u9_&0i0&`Dq7J2W)( z5=3Y9?m&U=m-IqWE9S%hPn}!-x3&M-*yWc67mzAfRgfyEyjSn&8Dm)`4{U#UqSKaY z?jI59KT7>6mVIq7tuukCn6eBm(x-z6i|)_-Hk@uCc+81vJj)OQaHW}06@_p&3|e}3 zbs|+I!$0|Wm=~z)>Q$iZ%v*&GB(@CxP8^s*+^-7lXjQ*$d&ond}oSFFTmR9h=Kp26|I+5h zx1v_EI&N2qG@F0++uB{+4L?hwIUn^YYO=>N2w0SgsK1iP!uu^AElO=6p5#XqXiXmvd|2taAH@ z#NGbQ_L{I$jroW&XM~PT(lwX$hCue7{VE+l&g%7VFO_w43=s90oh)UgBDIst+7b{x zUC=^)y&1Dyq8OGW;m+vj=!m7UMhT({>?JY4%ap?cqc>XoP}pfUYyK~Y>pvo?iyUB@ zy~#%-dJnvou-%py!xa=M}^ulflC~#jD|jhnc^jgZBS-zetPi|^tkH5j6PBC^9;g=zFI z+U*o6{^--YZn}mQO$RBh8*i`b8PetkIray=TXHJ@2OppQ?&s&1R#i1Bf>_@NmQMzd zA&A0}k`fYLr!YAIa&~?mE1!RW6+_e@y!wceLqUH2>Wn+$89iLy6i7 zdAsAnHqilRr0?`RN7Gu&DJMd2g_--^%}L%QTa3M1O+D}6mAAE<;cd$Z_Ik{bP3>eJ z&nP@&?O57Tv=c1=NOV-iR*D zIA>anZ3o6TL^~g=3XJvBS;KkUv!r|v7Q_~)*$hIjDpoRXoL-d}BRPnD`aQaDaBG8M zjSv*ZIIHqJ7_g;dN#P;3UqET(?{?jP8Oh zr%!}~+@-G`a^PI43&89qK7@5MLx4fLKJo!KV~;V=1&r3l-#y6mna-g)SFc{&4TIEc zOZsqqJh{VeHv$}H>XnrM+-@b71`C2ewJ9BoOCSc{EiPVFGHweChvdFNhZA&}HUmS} z<-2iC{$1uH>+6Vnnt^iI4H+<;>OGBaAnYwpxW7yUYd1Yh@|Ex;UV@4}`WK`r6&$Cc z;Qg~7AD<#k=Xlg{+L$w*9zf{M5K)r=Ko$#M_CLTW0Ah@T;5VyqbZ^w0M!U74kvQe< z48A-7xvXS-PWz4l=H|a*Dbg|ESC{tMPBWfj5scSZa0_YTbFe*K7mMCaoh}42_ED>}DuMgvzt_YL8c?4}CV-zO-}SbD>I zobD$jh&xeVhlklBP60OC%JND+oO67DMOKW4{HD6wPZDTW93DuVrrD7AJXoEIVx2Buk(-)^&sZGi|>W^r^S8_qonW&zu7TDtsD`*b%;%2))f zaDG{=0d{j|2+A2(c~V!#Imn6l?=%LuOk$hBn_``cWHN|4z2M<$j2VCo{onUY>;kp| z%~Ph+Q}zUg0)L#nh*OZHlfa>0dS#ord|LSo_jmez7pDxjG6NB=RE-&N<~Yr&Ye&Qi z;P~BV@D~B@5`O{aAJuz`FkXd1W3S=-QUHrEvgYt2IZp&h7?~YN{p3HKpuZ>0mZfn7830ZZ@9JllQK z>+}wBXWBfxjProdO7ZA#A!DD=j9)ZxW)J-R*Z8WKaATZJ53|iD?B8?Ip!e{ zkO?c^_$UMtdoSaoP~V^99y1F&W|>j(at#Pin9YWAL%8Y>Wj=lSG~+>lmWkkui>dtt zT3Q({_7xa3`B#qaDIP|M$~exgW~g=Jy{Tn6oS&6wQB-9!zquuwI!Co^Ucg4+pnt|zr9vp zUuxR_MCAC8EGs|1d@H|l?p$?2Ai2KFDRqd6F$br{1$Eg#SSum}>2Hah8aceoWqe#( z503#$2~#p;{jI!Kvjs0UAF=s=*n7{gCbxE7)ZP^pJ4#Wi2nYyB31FiN5ouBaDgpvR z6bL0WJ0en~cchn4qy|E>AT1OrA<`8HB>^IYB#;o;BRJ=`*7_Fn>~*f|oFDtT_WU;| z?|k2kF`jxq_w$UCm!?!J$HVqMx?>(vf*{GVds^6>9qA6G8@`KaoLl|zyj9}e&i~Nm z(lm<>313<9uDZEK{~MSMNlD8hqeqn8`hw3yf~&00(C(c2)8sNxFa2vBF$_67u%Tgm zs;UiQ3iS05N6x>bM%ZNIu=A-3JFH7f3U`iFc*_9Sogv&VQNiu2{DAAXN4`Blo(J%s zp_+f87hAF1$cLELQgChoAI+ig zjOZyX6;hr)!Cys*??Dw1ENnhn_Vq|(a7}N5_GBob=q~{OMhId9`V!jKkl`>)N{sZ(0`Vjt!KMJbFfG|9W<$noRT4>Z6v5FLd7(jhVNr$gf0 zg+=b_Ux3yrO0Jex4_0Pq$gi!q{LjJV|2YvdYwkW9KG4q`gmZY{48OKbO)>kY**BKu zqlc~4?sbG$k!x|3muyYG8RzQWq)=j0BOq;Cd%=fEdk^L@QU~Y$y&D0753tEx2ahk= z=lw%|6aY%TNg6t|qlJHVvpVe2h7sda6`;nk>)rg#&$h!T<1Vu7V@7>4* zJ)2>dELn&cJ>y#@mHJMV*2Qdd1Ddn2*?N8#uTWAy$%~toUZ1O>U$Gm)Tz9IP&HS|T zGa!gdt~p3fx3nblW-Kp*L!m>7l3G3ApeW_>`}0El$jW&S>Ziq-J~DPJMCBZS*IS2IHlb{^#SR{{gkDAFxOrYG-DHY~T5wul-+b z1f-764MU_Rc7oYw@#3WGs*FsTptmoYT|#;r7--!ZgUYz(Pvf(#0H~~VKjVQSoYO&zCpj%lK_(pf5{hr>_8F)gZu}w3(kHk6} zcBJ?Mo03a+8d6Xntp4zUm)$o2h-cC#=ijqDDL?;^&;RrI?0;C_KMdbK4EG9fQzWMy zHh{OhTFyE8r$U*pqP}5$oOb{SwXN5Fo2F&COP87=MCjOJYpeihV_jWp6wNR$EdE&1 ztrx2neA;mm8go$%fL~nY?SEOm?%*b6x0y1x<>%Xzn_qA!+vD-G)h(cXN}R{{vSqO1 z+(UMk5pn%ezcXZO>!Gy%;K&VkA57-BzS|p2nIFQ{S|_%lbtn3K@kaUAOZDrDN~OAk z^sC&a(^$zfQqaXpT3;_tu8BRKRcj}e+*cvBrp^l{tFoC@Cw|{Kx{*|G-u5V&#vF5U zcz^u@i}3zHPi|&;ZIKY9%d{%GbDn$q?YBmqeoIROBdg+jk9pgNEcvUL3o^+gRn2K3 zC!Qp-T~LRw+v^06QTo?jV1@i2{Q4qsRZWe9JHV$W8s^f43uo z=T04H5M+Cp4xgaE5R72?35}DoGlQRG6(m7fbm9B8?%8V1@CGeAJJSCzp0lps*pd}p zy)^3JR`-{09GsCXed1IivB%sqZx1WfnCiGHAIJtOr#s?-5*)DXgRW>Kd6 zERXj^D7V+l?y4bho!|Lu{;QvShi1bBun&kmb^V3KkkL0^$Di-@?VORnZu)uMafThk zZY*THCxP1!PiaxM`lA&ghN09A1BBmzTZr((`vn&GvI~m$z9j0+S`Ai^*yV_4h!I~V zELL)?@)Kor^gcTj?4T?xJg9%8odHc|ZNVZ^Q&K($$JO5bob`+f5bpHy@^)o%S4PRZ z)AEC_2WQ`1UISeW0OAqikKZsAc&a)Ge&<-G)z@u*U>2c+(Xb7l{J9kvE#>U-2e8ov zf+e_Zo32*IjCW#$yUq=YJQ(t%9BV4+sO1Nxwr9(rliynX4rrb@6mwju$N?`ND^IcZ zB-d~}m~1~^rSW3+#g6?S&*el%L~JYM#+R-;P4jn;{$V({7|8yHw%=TLpK$y?#O1AEo2>+`UhwZ)M`46E$HF#*(n7z22VE+hD@&LDgRqer$~59Q;%Ci^D4Rm${3MDg@fy5pK>`+&=ci;GKpe1aF5DJWOxtvuVN z<1AgPsjHhrZ`M?@&`m|EsS0iwy?+?r!k-(xvgt0xVf*Ma_ro}cpc5NnE}OQr9p%-l zsjO{p_;d--qc_?So#Wt*)Abj4U;TOG zo=bxNfNZ|q6hJ(>2YGPn$eW$Rng)|i|BiP2!AhPb9RqL7`etGg_UDaZhre!Y=ROIj zred^T|H?SJ{z8e_luxfWRDtgfV1wwVAbZQVjm|qC#)+LqZfFlxKbV14R|(vIUi@d- z(X+emdTsdVln;2)%a7;d4y|uv1pZtXgAI%V*e}&%;JK2Al8z$V){jQJXrNDHLrrl8 zt3ejHsoNO~a!Uy5)s*^g;R@bp&s9UgMqYWek{$Wyw9P!>C5{^%&8~6%r`M_8bJ4~5 zhU=%@7rd!_!!qJC#x@Ou!j2G2^aoX?-$2y%&OMOby-|qqEMaeGb`s@`K^QKu5vyq+ z(Hv~Mab@Ho`)BTd{y;YW+(C}&@a$m)W|Y{5qVYi(9M5rUXc-OJz}`zVZPkXf;gLTq z1@8uTeH&w&ae`pqyC23r(fhNV zffyl^jj_$QqTtCVbeL$q=lXVv&ce$7oo~OsXU`_UCJlRAMcumi%;RU`b?Wn3RilkJ z{@6hv?AzV$?|pQ2{hfPf3}iQNxbfUaz>_$VE(It?DcnknZ0VXA!+xS z1>3|JFPnI9|9K~+BKpq8zQNQCyt8+>?nWPG{hg^Z^1U0wJ;qjbm)fs)ARDg8nSJiM+=K*fQoq=3?8VClY`fqS_K*6-ijVDcD^W= z8pyVO@R#Q)|6uFx2O2rV&D)G%MPHcDG`O8j>;c$uVvl|n@gAoTH{ek^_2tf+ z)BfFS?-(n-T%b_R@+Y^axyZ?8g#Yr91GH z7$whYQ~MkNhY2vUrkR-NK5RI$)DVp`uEY4WEtPK7Fo24FbN%nq!j_=Fj?ipnnP#(Y z717i!*QW}FK{n+s|&VIa`;sk4S_2c?MvEZjZ~IC z7X);tpVUZ2o)XC1P$@S(v)Ka-;?1G^9aVB{3xAyX{NTe(;0M}z z#AwxC((IEi3OUouy`e4qSJ)By31@7XHHRT7m;HK8%JHF{OuQTdMk;B*JPEjABRr?y z39b`RgOH#J(G5ig>~sF7kN2?dib3!#hjBg%1a9@}>Op35{>IVU!!1D3>3yZ354`c} z$TnKVD`ZQ1^KmuHapv>wdkwrAw@_Og;M1CTZkfT=-K_1$mb#Oj4BQ8wpiSX5h@KGN zQrpoeKuuJ^k$vexGLL@TLJU5!I-I2`9eSO5N$ci6;DO4|lJ-?|O3-Hmdbz;wqtZmo zHcWz4MfWZ~s2-fuNX0<2#>eKWDcp!Q89d6+=wwPmFhp2yOu}zDopSFA?GT?f zGx>GHt$BBoOiE*pZM4+@reJ?NJlhG2_Eni*=pAW%v@!WJpZ|OKymK;F08u$HEW~SN z-VbHD#*ixOxvibs9Ns8oZ|>Gd?g5ZYZh61GblHHDq7eJj0mT2$Kh2`X64S%md-gP* zkyG2xC0nZX;ND_%Op#S1YMC;Lg1HarIhM3V8ICRgL*%{di0026TT2{D@&1qET=Vr0gv(a*g6YOj~`bnzFrk8*qXWiv9Ia zp~nJD&{xNs4uepo=699i!>w@6l+KyG#%AtC2f6A&%e9wxu>k5R4NR$PzuanJ=S?EhrrRfAug zap=!4zU051>mRbcT@kvx+SP;p*Z%LD^lJW(-ltcGJSG#}ajmiNY(kWo(SGjg1eY4y z4qt5ubB1C+T)k``Bx7VKT5#FCtgK8v%RR`0F+G{8w-=U%lfquekFxaD7+pe-_^LxF ztrUAu>9p_3#y!XLJ(++g{RY^$QFmrd_KtlgKBxto_f;+erZQ(`-G^Zht0+_J$U}^g z(LjlbgkhOfZaR(TMr{$5PNn*oh!xd8ZSoD8@-S&A%O2$LTV1xxt*N=@L)1qphWvWf zX{l}7>R||>50*aUp@x)uB7A}$3{`+g+X!B}oJqHpA}jkaJhI-uFRW!?kZUY@TCFS@ zMr!6ioOfkhuidw%ynR(Bz+T#q>4T6#s-3yS* zglWUCqn7D2drgv;ypao4@@__^b~j`mem~rPLoPL;5dS^GvpcKf`{bZKDnIr00i9aG z%X0kc=N2BVO~jW(&QRtspj$!>&%$BiFBp$eX1M*skTK>C;D-A%K0!S4&M!?L75UCL z@0qX3BFXX*s-Gpu!IKK~YZtp*%f9Tvii$YAy@S^D%FC);J;jC3nqM6kQaKd6AE9&X z3^tK|OzQJ_)H?$fQ(`Wm_gyF^GcV2c+UtErSaGvfq)opI@2s!1@_a`q3DJ)Tln^D4 zbes0N9C+EQV>Uf3<9j-WQeAc8Dr7DNbj!Pu?FX_TA>DI4Uc+v6IU#t?7Z)dO-jiXD z;iWX2s;Vk-@uVZ&R%C=!LoSXUm|9);8eI7uE2jiP%P+J!4>Nl6lPVlVaq?YJ=%5Ot z=GE-R8XWPo9nmp`TC!9Gt*$oZ5AvCUXi~!>R=GIl7jz>_spV=B6l(9l%~_~LG zLTrJ+EAztcf_R5m&ofEAQaWdP%7Ri5-9{Mqpn>!tzMe5|q)M+ny`bEupK^J2wFoRE zo^g48K|HdQW`|8LkT<4VgN5b4Fp{V&8e!W=Z9%q^tGK#Lqib1HNT+kRfZ3y>0LCia zJ;wxIDJeghus3qsm6-y+wN?Apn60?qzeIn$s9}MwB|~*?`Ok`N4P5XKw0;MAuHCTT z+EzrbN!_gy8$+QLt+V*eJ7-YgZ&1Fso=O~txmF^<;1@8XC0(6QEKUsvsTiNUUbD&%Ga&d@I}woK{PMd0hSoNC|p^bNQ$ra9Big{PhH(EmoEu zr{w94n`-1{Mq{Q@MRQ+&tD7lmr1xaTJ00Ok7$Ae`q?x*kj=9Qiv?2OV`xpC_%}NS_ zE=-ans~JQU6lg?5+py}*3ZP*ZVd>&znq7;~eAG@mK-lm3@_lk>NVSD$N0x5QMWirM zMml?8d5G+5=2%0Wh$P>bo^Hkj#k`E5oH=ub_+_tz;o5RXw@luEBi*xXEZ9=wrb+n3 zo#>#OF0A~|Z}x|N8jFz}TP)+BX4pYj|IQhyAK*SD2O_xo_c=tNXvCs%7CoXiTiSgf zpqt=x*M0J7o?kyJsx+SpgeuRhONyd&AwR>%yOOw8FuN}&zI?O>H5)GYnztLz7AzZy zZi~s(;i~=tUY1?^SSeFT8NNK6ed4<4U{!-p*N-f*@KH(>nUCNFp~Eyu-<$5OyKA}I zNuDxVygDYQoQE;J5|^9?-XenMS_af$s0WtdwBcs??f2jzsM^z}Dx8HL(SqDJs;jld z#*@-Xc$^R4lL#fed@fp?g}wxID2hToaae-fU&!Yd-fo|q=^Z9>)?&EKGK^7-iT6Ax zA$K@2*~De@xG^6=X?|hc{28%Ej~V3QnXlOuI!B~0#9zV_(mk;sLEE@pZ(G@5^#Q0u zZ00JtzabQ3Ckoc4YS=;l-JYl;+d*9*DPN7`9hxP zx8{`@R_gWpGZQ6)H&0uLuckG>r`#=%G;2ICQhWjk@=Gt z*(f86@w0-7{EjWk+TE`zu-=6=GzlVYfZP=r+AEe}O)|FdEL-^gytGxxY4DD~Zf#HU z_+<=>R)qs|4q+y^^iRyi>B8J@sERR<+2JKquUROHeYYRlUP5!U%l@Zi|9}T0Wc=$jvH?e(Ae=n-+SpE4gQK z@!iQn<6v}9s=vqD~!O1?x6T_ZP|P7mYCpvqD@T@xak82Y$>lfMKFdFXyx`?h(>8YM&HlT8&jP4%SWg6KovMEDz3F1w*E-Db zv{&_xW;yNe%d3ypvDMImZ*HN=DAy%DAN{Jgqh2)UoJE1Fl5pF|`Kxo9VXbW+^PU`8 zh9!|s+f;S=X6B=1*xSu-VX^kdkNIh@iG3J0f0{Svd;seSa_d_2O;1`)+kuDE(^b8b zsxa>?KN?n5N@bSf3F8^AQCudJn67_$F-O)&St8#bFIL6&VkEW~)A~A7fAr5tbe?Qq*Eoq4e@n9`ugq# z?dxJ%JUJ@XrPW%aprh}*CTt$@(KiV-tPf2z)x^k%Mm@N6yS8ERveOScjlxxG9H9$wQK#;&3y=WcE&H?Rd9IFK`O z3YG#*4xiap@3bI9X6PyEPezw zJVTRk&%0mAFWTP}uqdNtP%*Bj*(xWQAUjK#T2ZhpB-b+M4kfCSh`u5er|NmQR>9V; zX8Blx7&k*5vSQgeQB}!_6?>vHZ!m->Xa>17nN6<&P0c zFYPS#&vOz!2+bBH(HQY=;b2zb^Xy>xe5uMG0rzg(7Kqvme%`qzj9hvYv203NUch!! zuRXW9-gy|;ov_u89)F^ONNJG4`k2Haq~~rd-*kwjoqmiPyGF{)cO~2NaN1ezvK#V| zd=bhl0>M_W(~7zE&4>H0PT0BMsC6$xUt@H$-QWXXac1ZOY~r}{h(H}F zKwO($6G{4U?!vhs)u`f2KN=X|qrqx5?1)-E zBmt$P-+uQxJW6nmz`20pNvP{MNyXqE4S~_$UmK^79l*of#fD60&xI&igvW^Ne$Gab z(U}+!wisJ7y2=d)E`dSVK8He|u`y(`xTsaXRSF;C+fiff!hX+5xItO4FDc(WS7mKk zu#7=O<$gWD%t^|uT5DILOxpLCM)%BB`Kdcr5;6_LLHC}b!bg$aT(-$R&W2rXxR>(F zQl1NaL_jX=9jGJbo^##edpnf@a-bYAd2%;32b#|fVXchimPH2=e-t&6UJiGrx$DKl zhx>9dt?nyJ&B*=^?+JY(aA2qv@p_i!8d8h35M8I&mAe!nB4iZyy6xr~c}=`?H)Y;B zcHWb*!iFc;mKuF9uV!Y;ncj;}zeXadqq|#6Z0j-vZ(cSGQDjVAOEa3OI-F|#;YozQ zpe_V)^;^Afn0S(gLy`rD4l-QmZiwO>KWoQ}LSJeiaUx!k(=9M8JE?b=f0rQSDIaYz z$t%To?`JR`F$;|GLm5)jf)%br>n&83v@28=LvJoelnFd6Nr3xOP()G7KHX!mra6^0 zPt#`k^YBeSoUuBo`B1%!~IoFIVS4L%t10%yJE#@uNRw0S$ zbc$T=?T&PtZ|+F@sEmA`dvDP?05N5;!&ySeM*@lQ+#kzvsE*U{t@au`$KQ|u%-tWoW4$m-4H zO5Ne`COS*ro)jIJCSRPHRb#d?QEV@>qmlHPnScHT=NSJD>@4G%FDZMGsr3R z*lxm>mlg3#AI3Ky1m4iCN}3FWDm-ZO+$mQ&`U*RBqVs<VW|;PY+*n)pt*y0Dp4`4mo3*yIbsZJZgB8xC zu6ffY1g-yI#Q5^>=Q*5WcJ2dn-xpgR5n`gPEKRwiSbe>{nT@eRoG@mw)QdYIcAb;{ zDl4^484y{_M@y*E{61;}SBbsp!G~({$+*X0tZ1t9qlEHEiZ0DW6yaG;mxm^JV0?IjRp2Wf;QkhP>E`WYuiB3r_Gy05M$fjF~Fw^L9HnUJ(SN#`?!j zHGq85cyS_G)HTtVSbJm2yb)6~S4%2{B%((6+nc^ZIR#JWU?0V1v3BfZq6PI>;mIp6 zYt^t7;ZSa4YB`T|%}`fJZ0*AUqK(;jxBGz~-IcWXb?qpRj&&QF899ak|L6CZ!IxJHwX4hebUwslOS)34h;<`5r#F#R*j&`#!pd__P z3lNfzv3GpjGGyI_+05;pfQ39oUDywS!|=)`jiD8es9t$*f@4!zi{a{PjJx~Iqh;;C zQ0y?$ocd^#fKz|pp}d&%(!;Z?h!l?+?tSO1>`)WrQK@vPKc-I8w#@yEgj9luC&T>d zLHAJtb#lu=39`})7@^9?mswCpb1m>4C5XrN|EguwK*}8IDv6X7yn|P)9lmW<=MV!H zMZ+-LHycBgOP%_2LByD~Sap9F%~jdmxRrO&x7EVwwx1puHZ~AOQ*xXA+Zxp4Lp&-k zy@^T48ZR!)^5)2S(LgsTskIG=X7)b2jz~T*w&&c>^AQ;tP|xR{V7R-2h=ART)!+UO zI8bmcoT+#5{Bk2q>-dE`A2=ZyH>|orFeVXM?W<;5#(n8wsFMh+LGwPf-@#A8MXDDJ z)%@^cx$6tnE-UfwG5t4C{0;rEg$x0&Y4c|K#O?}@!*gJ+NVesR^8v54FBDz>meM&_ z9Ly<{R4&}-z>%0|VREP4%loLRC+Ab8{0eGsygG-8x8f7+n-^PjA4F|pvTH#`ckV4` zA6=0-Ul%VqCNs1re&6NsP*$YDMcej-3;;)J@=&^N-yW&;5$$gD8rRu!dpcUz6c@?z z8Gp|S%(b?G97oMe-I@ilBpGG~2YlQ!31#7{02?)ftS*K3yG(uOi%cE_>_}q2!&<75 ziS_k}U6>pO*)KVW+hbX^F5~WOnF?oFfl6LjkHxZHkCo|SpH&Ds=cKen&}vQQP=5ORVs+nzK+2S=mT3PzV-<@wK z`i2P)3nZn0oOjv8FU+kjc6a1b+L@7I=qq3(|2sy#P?Qv^00iv8Q$eC~Lgl>1vBFsp zhzWYP$Yhnaf#1@v#-5C5iws1EBDu7lbbWXV1{5u+783##&2m`wT)u1!IwR5AANS`#{%c^rb$FH-vdD6*Z|=z-;eI)7Vf{Lu)3~^UNG;d>BY^YL2sYb zhwl55XN4N7ikp>6wwv{_z8&TRA$avN#Y@B>^RfT(M~BY-Jinf>l|g&+JD&`k#mk!$ z93lAJ^ab?Exf=y8OKiwd+88oWzuB4xI2cBLWq}&vDp~VQG`17xGntE)NlWN3g-cKF zo?qx^#Zcj0CbJIFKjeWzmj6+?vi!Czf1sj&Gvf_f)pHj|nCJ*`;KUO6^Ry z3Y0HTau<3eEO_}lsjOzOlw`A(xr?Q&U9wvHm#d1i7W6r`3`_^4;KXxCV#m-?>0LEE zCDB}DiG>;mZ?mqX##&amK|>D!TS*$#)%stI1qJ%>`nCQ&SK3zXX|`G<86-tV`?oJAA_ zPOyOrz|&XPyggAlnG{!{DN&~cv4=3s$(LvxT))H%r#zUm?u*xUEqr|D+O;AmMTL9 zMF5-+9dd_p9bskVCp(IqRZy8F94V?ZnS7e#E}QFQy6A;pD*DA%j8_qmAPkQ~q?hr4 zKBGIS(T)}ZAtS90-Y&E&1OH7Z&?io+Im!LuGPm=HwFJ74^#@1vf?r&_wb_^*pfP&W z4m~lGUP}cEfyW>V4I3I)AHDQK^~iezkPz4L4l?h2u5)?11ilE-)Hp3bMg-fpJsL3w ze~hN^y{^X^2Mxbn>8?K$M}T+n(E|1c?Et9aqdNjR;;Pw-KvmKt9K=;M#GefZ?+uS3q+1R-n`z!jph5M43c%T#Bky$aYZVg2{<7Y8(cek6!zj zwf70Uhjj-)IQ>ao$uuS162BQwJQqL`hcjX`ZxZ87bG|P?N)OmeRK>E^^C;eRDE`Z? ziai8C0nr^o;C<}B?#JshXQUOLc%|d6*%@}?i5S*bcJQy6k;ca4v0`$#{8QSmEKEN} z7%OUk0+m-T6>r(NYNF$(uI{hf6BV^R%G6#{AV9h{D#yVl^u=bNC*jalb(qJm429`N zoK`jeJFJ6fx*{nryh`T?{AHEhtDf&cr^@0Kem-TnI()Rbb4VE|2j`()RGWut*>%gND>rxK)9@au~shf&j*GUG`87qbgd6p5qdVTTkmq5(BFe`Oa z73H}KN&DYF3FqrXuZEzu{Fri9uK%6nwVK2K)J8#mLT+Hj#eSLKFI;Jd91ZXz=>ZnU zbarcB<4vQO4y6GhzJ9-pi-{qcb#2`r&sJdL&$cU&CK+w}pH#uzmZSRJ2J%N=xUAI( ztyi&pV8JT8en;1>=&-1TXv22|9l;wO7n>1z#jLa9_h zrJ&!W;)sFe(w9lmuNjTH1|trIL)2?`4@U&x=L!2y>1SDF`+))YLQ^{*05Vx>p0^}3 zC5b78Up6t(xZ)M}6z7cvpAQwWvb^Xst>yR0<>%39P0Ueozu9Ig3& zawb3q&zRQw54!hZ9o_uavB0)ru2vO;Pli#ilYs7CL^zBR<{V%(_+0)qwF<`8rN+(rcidQy@;b{Bl8 ze$qV5l1_yFC}El>%mZ5$ay`d+KL-sY)UOg2?XHvj`)fU08ulM7c;{!Oq?Pv+Isq^(g9mZP6 zlpa(DWD>2z*M)SI6lkb|!i9cL&GD$f;L^w5Ge!Q>MjBO_!fMH+RFQnt>dIuDQP;xw zN!x^&3dyd~@!diRnTiI`PH z`1KA{r?jA_po7J9GQh4h@+&8VAuyC+F1D=+j4DY(&%fjhb{2dVzo)b`Pb{Cq9pCId zFrb*a(<;|8R;aO9>A|_7leRbW`s6^dPEY%S-jKo!sj$N!D^b=^h}m4k*QoJc0Yqaa z1n*;Cz* zhs(W3CmbomR#lxy_86VU+&pBZ`6kNP1C(<`87Zeu8r2tPf;z7W)>AVo%BY*bcVard z)x?ujB!9iYH8`nt0Llvn9q2FXyF^-Qo?`#~uX+R@3* zA)v>Ym#o8pN5axC&|x&^_@QKh-`s|Bsk&=fWcBf?p1yv?W7)TEWGj<(U#iGb3oi#c!WV=V*Cs zx&%Ag>B%#J6OYY8l|2)DAAU*_EM(R0`6=Q1 zF|tK=00Kq{q^~MC4aQ)&b>DOG+I@xvzhcoxw9&3`iAJ0R$DGDD;aM(zbINqkuY&ll zB=O1ceLP^?C1ROShri%|y10(flhvEeCna}Jk-VZ)HsppAqxarSDB0{;9-AuX6|@ltbk~A&O1;2+b~#314%lr}iU!1tp3uUyDZ^ zxRmSE4}8e{xi5b?mAEG=M&tiAK)Zi19{>r=2SreQ!9I%9^<}4yjzys%_t+=vIScnt zlKPndBBaRjj+!h8)B5u$y=888W99j`Cm+K|;7*UqM?PP>F#{A~=XDpO#%gs7q;pD; z?PoIe==@K{(#f@#wYnB#Ir%I+aFhQ zN`&zEXvs(&|6~m6Ovxu?EP4^F{2@-*HIT!Yq|dtG$YXWxu;{VwSaMK>MHWo1q&3w$ zvuF{w1{>(h#@Mk-Yl-HP+q^Ib={AEQM?od+zbS*1S1R&c3!Nx4wK9?WLQrSm-92`o zMhIs!<;?GGGk;a=nb>z*TP#Nq%AH&RiH6Y>sXt$Y7?m+ZQ|W<{J{v9+&&pk6FV|lT%FHSl51E@5l9a6za(VPFm?zmHQ!DuUpx@mbn=c9b zo3w}2?qEbGRlv+yDu54i=)+!?D!kGUnw&f1eQa**#@S|Hc@gzyIQ7ZZcGqy@Mxb2! z>#)Z5 z@cs0pR3001cGLWWyoq|5OK#Pl#IlJLayfO`{}~YAJoVxs!3%%O%Q80N!N{8hNNvFa zWV%+=4r8+)yUwaK@p`u0EBZGaP*_F1$%%H%V7r;)$o#`201!Adr%4gEXKU8p{Nzev zpQaP-;wS+Y;G9C|ugA`wYZ)TvqN%R($p-Lq7Q@nh;kw1>kQ3mEQ$V3KoP{igSIjr{ z#n)r2g6%AavK(^zl}8C>fBH&}C5ZnS0eIQK`zE@P9;%`TX|6p)@R~I} zB5ILTx@vPGfT;GoaAkSC$^H{kH;>Nlde+%ZFCtKr*_Mq0-~i@DAUz zlgIl*xZh3=3tbz-?x2${-ivR0mhF>$)KL57%nNP2xpyv|e+qa7g$38e%kR`>e`AC@ z1nV&qPRKbu>dB=qAUO$!^7N6l(7EJ`zp}Hx&FV_TTF?SZBjO)Cv@lzU?eNx8N#K(X z-Fa~Q%FEKk!tD#Cl&PF)ZyKy|F^>3jD=ptdfHIyi!^ITaGS-lo$G@cf_~%pM-A?zd zlOby>fw?s-t1>VkRt@?^LQlFb{TRmDvRRqy^5YMuB=2X$jl>wQ)Z<8T`dDS`cCKl5Y{4R8fG=Xes0jSrPi2N4>pao`h&fZ^+%TNpvI-E$c{e%u>FeZ z>@e<8^s?)>gRLIRi;lHO>JPs(>~2_GFXPRp89L$@W#+ex_c= zvE#)YVk6h)szwKTS^>dWPCwd{9`P@jyV8QqI6~Df$c~#5&ih>(GW$;ux4i#@IyPiI z=R;f9v#OROmdOC;21#f7uv)eG4L?%e8XIGvNnQi6*Es+yykSa%a&7ze&>BE=qQoE~ z$%$5qYjl|3?DPykyUW!WzLu=vq(Fx{&Dg8egHgmalG_-1|@jGec7aOT>5kRUnG3s5(m`}~JPUiDmYz?XYoTW3LES?4alI`sHxOY!D#L7f28 zXzy!ibMgF7eTir8MsL%jn5Khvk6WPKLk8Ie_w(`>PVwd%f~z3-#mck-^TFjlyP;ZJ zWT0(LitP+H0M)m5-aLJZ`0P(nTo`0&K`fB_Rf54vgd^6Q7e5n$I?zD(O>1XqaZ$+#+gdH zCP`CBc>G0AM$(3~=xaryDTt*AWXNa}#ax$G0m%dpUldar?13 zb~yBYM^+Zorx9ave1wX>$+=byE=KJ!G-l~p8iQ-P)9cZ1eq4EZ?LeO;`lbX$Q_CP) zPVmf=`fanK90sc-OX##GG}bxQ)O-FLbyU;9SPv#tsVt#75d%G+1*2P^a_jV~rF171 zJY)fyQUS6WmeqV)?r5D+HOQ`x*PeJD+iOg#xW9wVwFU9wg*MxM%8xQXZ|irJ?vd$5 zrIK%qYTacfCZzLgP&XI)0BOnXWMrck9?)z}4dm2MCVO%|j?5@d;+xDT^&dZlj-)>P z2J)xs{UCsB8M#F_%Ks18dqy2_BaSh{4QEI`QEZ|_V)+mYxVdKXDU1^;{WjVNWdK8BDm2@^3w7Ean2u7%>Pg~au>*V^X9w>X=z(Uu5b%YC13l3d(j z#%!_{br^Rij;*2&YfCLBT*zA0gAa}UGRw$03q#^*#e?pKa6?M1HM{8a{6C6L)?4}Y zOvLYZ0hT5{?LmJ&;&wAAzZQb}rLn@3-!91msjPdX_y}A_we9^T_3eCSeeh!pejM*Slol_ak2J=lu zx}Yh!_W6KrI?Oh)W9s_AD(g62vrRuUq0sEi`@3@@S*I;=hfxL#AOh73s4D$p58~y? z_G8S;zFS8w_Yn#7&J^-oIHBwv6K15YLkHye9=j|ZoF#hD zSwHb*6`LuzyE58>VU~D7=$yczy8yk5NtRcceVbi+UYrAQB!|+c{geE|O304OPS0!R z$BRYD3ylM8Akpk&xMO70t63{E3r>$U76+=s$H|9v>(%^4P3Hw4`cPe(Z2v&T4!r1^*Nft~wJ&-SYb#UxKH+%ye|q@I>{CQP|2s^`xYWRE*?pobamRD9iVX4V-9 zGFmv+J-mhd_WM}wrWTA`aYD3crU;eY{~@|+nV=lZDVTP9=4mqnF};E&RhN>Vn<27=uW69b#3+$X`M3y?MIP}Id_&x`4hO|q&;4sU<2pRLdYwnS)!(XHIq+K+&rdojyM41Klv5N7h~sR9U@_K&{?Gyz$Oh{-kFdP zA7-Or0|@b2G2c`IeaWXrl1gc{Qq9&pw`=`}-M^txCL<;6PAGV<#ob!!o~4$qP)e`+ z?B0NZa(3uC{MrI#PJqAhVpo-^vhvYaiM9nu+4%)xSF*b>0Cz;H?wsvQ4R|A25pm+7v@ydz{G?mQRlQ8~~c*I-t97=uoA}oT{fqZtNtGr7Z8nCR-IsTp{|iW%(Hs($n4Az@i&CO zw8t8--*PI!Xtvw%5PmXkc0gUoxn+|lQsc0efSrPlP+_AIDbI4M_lPyJ`%CEsbp<;C zhOG+I&d|BaGvjsACrWbZwhPdk$1+HBsdg49yYegm_ZvF-pP_Z<)|*Six@_N68ORn^ zjB+Rh;99#acAk_4QQ=gi&`x2y*izxd!Y#rBy!i^)ubaA%XxFgQ1D!>xLXucIC=M8_ zXxs~iotz-u?23$4YXx|mZEY?a@zBJk+F??SEifg?vakL#TW?TgN%8LP%V{Y}FKsP3W~?mAuW@^a?M&;k zfVY+dECkx?copkOL0%nuU>TjUmYsGWzfv~Fj}P9 zzL-nQwwn&hq?&bzpqdR4v?340IC22`JFx~ODVfanXo5YE@%11wC}a61AmH|?*d)CGN|V)){54y*m!rWCv7Lao_fk&{bbAr+6$A|2x)h^Y(8lPToRx-|}Ok7%wBu{8{!G;=d+A0S`a|O&K58=pdr@Lq5r1O{a z=xlCr>%!ZG*aj(*{M~X$`Z`^rp?+P`<8IN}yv7=LnWzcrbucu>vp+fL-Iaq9g*pc4 z{Ml8ou=F{&1p40!Rpu^jRK2}ZbYZ)BlcbM9?#_q8qteM$FTk43*(+Xg z2Yo;+|GE$&L}|ezgWxP}5%wiRhH>xf>$od9$|aciSgm`$-8yKa!)WV@LE#WkuL|?u z+NGR+cLG0a6`eRv_jmOggU$x?Acr2#g?o0H#P~P(_UbiFPv?-(2jj z4C!8!6FZ=dnle%FTv(*n)fusYzVp`6{Lh0=m8lu@&SbydXCnT@4a`-2jv?l%Q?WsV8zuGK%t$;-G&fxsGScg zO!vK*Wiy8KR2`lrtW@p58cDiNZMW-RiiJIecEl;D$1RlqulCM9p6Rs>;OUc789GrG6?(FwLeU*Bi(%}>G<{M9UCD5X;-nsvR zh$GRRg}Pm1yZgxu#c?fdEIlc5#)9ekZSPn2 zoN+x{qGx#9zN})v$Yhx7BS{>fFWmC;k0&TSj zv@Q}Rbg@$#J$9cSzaq*Gf3^)2%Ov2FJE_;)!ZPb3c+Y>g#+X)pZre2Ycq@8I{^tlp z!A5yLe(m*ySGUi#8JSu)dmwW`et$Y)>g!|c=}-+%19g*8m!=DGzsdKA?UoIVZs*P5 zpAdEmZx@^sOYpgGsKJ7mih2yj80<0evhNv%cRziKdp?@A-tXEs5Q@ltaEXl+b8Pne zOY_-z?L78UzCoJYt(+`&9RAhOw_r8@EZepwWt3l(^sGTqu0X~i5^dykm)Er6Ha`@3 zJg^D`TVmV0-ZCz6N6msdyikT8d4$lY6P>S+HSYS|jd(XES$A*^NQDvKf88jTcsUlS z4_9_u_2)cE_YUqg{_wg?^BXgATv&~CPk#7a6U@!fCx@+4I5o07#DMOqTRrd|c=kTN zX6M%w1n$Z=9q7{oReb6}#KACzb^q$q{4npl`cO|Xp==wWy`Jrfe_=9y)_DRxGCF-t zW5|1OtY|CRF22}8`oGVLEUY!ic6zPtJb9&siM(3n4RK2>5qAc4$bN)*9 zvUxepYr(u0%-aG*9nHKgn70MnMQ;zro=v|8?$3g5R5c9uCcG|1S;}({eyTt#y zT{{l(w`8VOGnCK;3)JqT?RVq;OS4Kd!FmUl-m{$M?8=L-i&tea{3)bwW!&+ISAe<4 zwXKIdxEiKlD6Cp?%^b~b)4pF^ok30=I77cvf{1K<2_Sj9t@hy#d1{FgXmEe02iGAHUOtq&BN5_e>0TVo(+syZ-$8aL7~A!0 z^C<|1*aFH747YIjG0jar9aYZEF~fS7gBaiJrAeo_@zHLf5vvX`WO6SroM;;!K4^)VAC)zXgmLph`$OI{t*J01=y&wK9`OHlN zSVjV^rj&VXhvy^k~tbGYTcqeANn{NFjpMS+Oc&~6_)FM3~UQs%O3YH ztpg$JFEJ@{c%&)yJ*2dje01>};!#Dg;^sEf!s4IKWIBKWrIHZsN2ZGoRi!e`E@*$~ zD{>kcRRM|Hty2*FJb_5?loVnG{sO=~2Ds;E+~C;Dta{G+#{D$89!bnZh+fvwPyN$C z`m=`%t$Jor8hQ^O>hV4wWQ7Ahpeua{T+;FiZ6GYDWDn#->K3j8%l=5}j5`!k_egb` zkZ;g(vpDeiEXw?{yU4o}TDuyv&j+t{e1&g}z&JKZ<%C?);luQOo2A~SMbYdy;T4iF z(_Z$GXw7Ct$FxE&MoKuPVvND1R@-8VkAoa^d=V%L6C`~WXPO-WG)9;knS7Zvc5_+! zqH(zI-D0oc*Cio_#oGxLmXP{lxOkyfd(Q0iVJU;ULs+YlSXhTKFPxSQcD%_V30b6$ zT!J%*)ML9E1b;Y;j0OM^`T0IjgA`Gi3i=>@){Drq4Q?SISORr80G0|*I)faE>8aic ziHK>yqISR~0UADmXjwwu4=k0$$waT4+uqOI5&5lxcqj#^d3Ng!oBGCfh8!B^@3OiY z99?a4=Dx9Y+*b<>^Qq2Y!SqD3mWXj9if)YUI>TATMdN6nLVEimbBQsRb5ucDPSZxH zYomM?>FJugzRj<-CuF(}3_3IFg&C!+ZV-!xW%>G|aa6B^)KuXgxVOH+iF*EMpI+kuJ89?0=wvSO+YGZT$_C0_ zs4N;aI{?xJf;-}YVmgZ0Pqqk6pO#`uNa@Vk(+v%P95-P+)vb>xHc!gm@3sAJ#wA&+ zg0>wNbN9=rsqKr^B?UTzRX3ys+9Jjx0{Y}gBlKHS`~y54D4TT-&A4(Fj<}7nAo+e17gMF;;s*%XSu94n0nKN(U97A^5+0;R6-hxAh8i7G=PFj5 zIL5QB=GTG2G2XtbGRiX-Hc4SNHse7J@z+|6WX9HZ`vR;gz9b&(gtImGa~dXLJ<6%U zU?HU|J8eAIc@hl>XiPl`krMBKQdNWQaSq@U#(0|$^vmgVN!j;1U6p(ns2JzYPb024wIZvLgI)&nE8_+4}E7NYEpvOx`(Dr5vmW{r3A zsj2BQV-xRL2R6&8rwV*s-EvaayxD(B^GEKC zPfea$@uBa1)Qpxg*(kodmATLkZXSLjw{qPl^;&^dYHRXRXpN0odE!VsDHiq*1NWuW z*9)>!nPI)lFLIF*NZ+OLGRptLm*DaQVhki3TCo70l>VoJ>>Os!BGJkuS3SX2h{=Op zpttd5xx_R-IorRt-=4=ieZ5&}p900yYt3J_kBs`Dag*9xAwa~?OZp#exzz|@-SC*< z`$LeM{O^81X{wU!us6k7{a=}WP%WXLR!(8NQMbM>3=QRTmwsRN$Wdq8sM_MO1>l8t LaIxp?@r(ZxC@g!X diff --git a/docs/uptime/images/observability_integrations.png b/docs/uptime/images/observability_integrations.png index d5c612c7589ca394be23bda410fec7d4c85fd1e7..6589c0c5565dd645035147577855740320297056 100644 GIT binary patch literal 280039 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

=2iFoBH#wW@ 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 z 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�tEZ|cWNRtHh~UQ$ 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%0Ac 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 SdewG-0C9Kma;`r@PWuB`P{3dS literal 278119 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 diff --git a/docs/uptime/images/settings.png b/docs/uptime/images/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..dd36f0a6d702b3d4b16f4c5e47d9f155a8217091 GIT binary patch literal 66781 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 z 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 X;MuhHv*AyFDOQkGeN+1S{g?j(o{0KS literal 0 HcmV?d00001 diff --git a/docs/uptime/images/snapshot-view.png b/docs/uptime/images/snapshot-view.png index 020396d0f3e4cfc64adbcaec66a7fc4c616a274f..1fce2e9592c14c0ff5bb1a0cc9bf32632c0f9180 100644 GIT binary patch literal 55576 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˭u8G0>@2^97 z9OfZEZ86(!Xl7W~)isx9o@*q(vnn~(KpfANR;Ej;$p7c7D#^0&$9J5u+eaTbJ9^{I zwy_0XOiwP8-Z=C~Xr(wzmGGJ!7)Et5mF76P0op zdkzmm`Pjc6&vnev)J$tzgPm5sNv8Wso}V{JU|jVMx1m`}=i6xEiE%v-J*UFwXF0O6 zg{>KD!dgr$%)UFMs(g~>ArdfH^h%k39M#R0qPFaCb+#0rw;@>5vLphE4;roB@c)fEt8r2&Lv!E+XnjGQmHW09R&{6S9Xqm%yL&ZI(GDwj!k3q_t%$9ediK6F7ArZtZazxjIF&-cK2W3_!%PuXW1(4nAUKO`?op@C!A+L zDPw^Sv3Ks1$tb-qTd9)Vnf%uuSQTu#L8SVwW&UmQLZxk0+&?LW2k=zi!{Nv9)(9Oxem6r+t_&9W0&6JSwVbMMB@$Y zJbxjx5yoopQf)RdhMa^`I@o- zwF3Kz_tVpn_@RK863I$qhNjJ}`rj{j)dBp_%Woz#Utk@ZhfNcUSJwSW3Etg?Fw^ZV zN@=n)ZY-Ge@!c0@eC&YqE+yay#hjXE;j;mG$4KO9}^-=|!Q_P{%6f+IRVn4njO z5vlLZ{g-C4^73}SwODoh3#y9;kl|2aT#)uJP+rz@VR)m5ef;S8j}%uK6}T;#sWI4z>7~({AVe$ z?w?H1H4;U7>;rn1$+ugQSO+JbOzGlYqf*pD)3dS!$gdrYwRdSdZk%Q$nDFp)nn5jw zGbUjq>mJY-nmRf<&^it?b1Id>Y(uVTR#u4JU@@O3dgcloyNk(7=i%WIh^mh{XlpRo zl$3}m~0dWF<(+(3a{+dVwgUW|2Wz{&lvR}(VN7@Y3MRY(nJcLI+61u|YUgw;oLvoY)K9G}5ZY?9v zZf@^2myp?BR+s;de^0qOqWR!0Xx@O3fGPWfr)9E?1W%T@JD`R=2Avc`!>>{xb;?~s zg;eg2X_oA=s#UHQ4NE-Fj_L8N4f3TnEBk107bR8 zk1tv!dJe{5Zmkp|<``)QQ^&{eubD%)?r4w9kXqrw&$|ysvpze&(4H|`D6Y*~yeF;D zDlS;@HRT=cpww$?N2^l+fd$L@l-b=1vEzw7cGsnHVG~jv45<7?#Ps6uRK+AFCN92P zr>stc-b4nSE_)ptE5(5<1@iZp2Hx!k&%&Fh~OtK&n>eo&`A`5!IjDo@}O{R z9BK;MD)azS2(9hy6cp~GJ)(*GemT;L3Q$zf%Ffm@Hg4y>Ut(1qve?+Ws6#u4w?rTQ z{bqApTLff4`_Z4oK-e&asmKCo#o3oL_wp#aHD(*zUbxVJ37Cc;3}kwJBtwz_H=muZ9ZaBs#(NX<(x<9*-FbMks(Vro{Knqw7YJ=)2<|Bz)(m4@yf9*4*KR zu#U$hwCX6hJo5u*`K9K@=jbatB#Nn<{5rAWWJf{;v>ty(lGZ^6*@;6(chA4P{o(y$ zrVZ8~1$Q>+PKidZ>+?V7d(WJcW z!pnh;E!caMIQwtA zb+o;?nTA{VnmUJD_Er^lW*wJr-<&3ThYw1MCS-4hYo?(ELI!PMBg4ZrIO>uhDu8!P zusM&)s+B;zzy)Jb3>}?jKDLdFjVW5Qo$Kei)viM(9w^McrIPK0cB|&r)^JQRJqLU2 ziIH!UF-<=FXcSTGGdZM;bK?ye$0=j~8RH+<*upgPvILmHhq!YWq zE=H)`Q1RT3PqH5{z9JmigbYvvc=^`}16yd{K8Q)Q3>@ysxN>G3W$U`36aP6v9aY+H z$8m(#ZBF0JZXLWqOiAGJIf8;((hpKP!v|e=Dkd&n4;g%Sw%~N4)|R*(&C;GKvD-iX z=~nxUU?P>~=uOtJlQ{FT?**~~@?nV-W?BvDOS4^54U$d$Z}KHeBE>w$-d%qM^}=UE!>Y7%^LT=pl5b>B6QX_vNj+kei)dFI@DNhU3S&x;hK( zPt1k#<%K7>D^G~jQt@KheK0e)ILEY5ka)MK^2LFN4aXX$u z6h6YADY|TpUY;0?J6=p$p7JM0_ekC{aVwbRT?gsp2sNy2@SL(!&l8`SYzswO$lQg5 z_>9?G)We0Kzsz$l6oRj>Q|kKT>`_q2fKTGQ7W2(fYi-7f!toTR{})bXwf|x@eC5ke zPP`^k)Kj!Y*2JxG*oy=jEBs&-zuFtNOy!s4kj~Ix{hnRxaBt4)RK7=x84;<=%5m%kZcJ z5NqS_8)3fIgl#1`IsN06mg0E0k;AJyVur`Z83F7{(I*RRHZ#}zLqA^&A_P9ojqfm( zTEOemXjh6|4S@4YjB8IrAbsb2_^5)FoBO7@H=HdMB2{ zMtvbs&dqN8abHN-+H7gqZo{N`BU;(h4HI*~YI`*>bjSVKGE|PG=zSsbv}whEB;3g^ zEc^y<_M0kf0qUu<3RR56j2>Cyy_;D(wr|(nt{yh6I5LA*qD~7-ys-3^+O${0v3zNE z%ZEf+s!gQGsaPPYLF{mD1BLkAZ4GW361L5$hT{w9vxFaQDDz!Fo76R7n|pbk^xU+x zfz%&T`Owy(OW+k>M~TNo#llh9|JtGZIdo-H%+OVZPTHvc{=QLtz@!75=FUfO{A5#C zR}!a#Gad&G^P%vuGh&Q`?WMiW{iclaSJ9(fOW1sjhoY~rbE|iGAAqx^Pn0d_?pM*A z@BE@~1#jeTVR@+ORiZzO$>%#3amV4|DVdRSQE~X1u*tVD$p(<2s*!qj>yf#~yNW9W zT=YYyy?vutPPYmEg#1E+yTf!?CrwlNB?ba`=bQ6ZH$q~CxJ1EvuxuI?n$HBP}4t- z+DZ7@X^ET?6Xs;Ze4Id*^0N4Q+{m%niQXhg3d&S|5S>7K-&?BZyDRG^?>qV0zwC0l za6y|Ewzgol_uay~FmrEjZzA3eF2WopC!mKtrJ8tYa?+5#YS#!bRXUHMB;PKu&wp}X zK#$+D_Lbcis7q^}z?km4FX{HNm9G}Cx$(8wS}@py7%tg>Q3+IZ8ZOrjl+WCE8o07< z7uWRVfbsG1E33t^R8K1wA~g3pp*h-isskDBSU%6GMwxYmyH%s838Q53T$|-6lg3QqG}DWUJU&}oJ~m`NRNOMN z7j2NyI8Nq%%mLzy36z38Ay%^ks)HKrUS~gLzIF?1A+ZF~_6aaR=9tnR(77%}uP`@G zJ5E{{gbTsr80w*CLP0w(4lcc)rp5SFFD7Ut)IL*G0PX0c$?d0?mx2JZ+3b{qMV`lu zGWvJsFDE|FiX1H$O>VrU^SnFiP#8TfEXZE`V4}Z;~Mjc>MXw{y^2r%LCl5HL~U0Al?CaN*~zfU6Esw^P4?#yRb}$k5mH^6#z9OhuQ-M~6;d@2*cOPP-+`qrli zI(q(~QL@qPd4fGRQ&lCmi%z9LFVXXvw_&<=Ek$|ZWaWU>OL~o4z?c?^PBeOF!j=ip z)R0_4tSSRg(R;UP4Y%Swx9)yd0&Wo#6K5)s{gLZ<<0wD+Q0QZizJYJF;WaJCV8C=5 zLQ!%8NT2|vfde?sO@F+2QDbo5Tn63GR|bS4>NNfpwKT_X&b!O|nq+&zh^(c*_s8;e zU;I$a5+in2MNUr6W%28mJ&oJyYYx8ky+KtBxtxFYP*<&U;d={d)iqp6=Cu@c&>_tr z#lf77j0q2YzSB1{tdN+JaBAe^t|Yx*4@3mnCcL~om|lEP@4R}}aP2z;Nx?b*PUQWN z@D{$`R)4f1Nm;r4%Z_sK%$oy<&Y0Kzzh1{G4v@0OOF?JKF+^mLwJ^~%IZ#gw&xM{R zvKj{aIb2|D=wB686&F80*N_-KB7~TQd8_y9EzHr|Y{$g$7{u(lMi`cSDUs8 zn}#C*mL;G)_sL}4mDOegF0xS4`&!{*^LVEj1^^`}0AJ7tBF#upcI1A6>qs*JE`QN@x|ed_NYKW> z-ip6)mdC`aeqg6;XGBVMvCG2(A+^w3jof1P_CdBe6G93OiTX)v3rv8R#B_ZoynD4M z6pGSROw%SWu}J_-39G7L3%WT-FS5Dt$b=H0qa{+$)Mlcml-X6j)CEW9gG!L5cv)(5 zcXtAbeh3i-N+XO^;E{-s+h0aC9c7M6P$FrXV2w|(c}ZiYX4R42yMzTPL(ySsS(y?! z%o;M5xsN{t9WZ^kp9K6#tdS%e$iI-76mzOE=BVdkVWBmCx4^cWl*MkY80?kFcLD4+ z2-cY|_9=-E&p<$_*_=$}@kLzp^(LE^@fFSh7?+bp}6UhUpIKX@w5 zfZJ6&c-N3%`_fJSFQT;R?uwp#D>XD{e_0%`U|Ektz2(5E;^_;|Z8+qO>5kei?DiF;5ux663hV2j!)VWrVOaI6%V30o#Or zBhHv_hm@iKOcNe1I^(m<`A}c@3SZ1#`*0+W;Dx2;rgd?n*JACty8*OdH3Q5XWcuoxxvri_#JKWil(xv{`ak4*5Z;<#Fg26y*ZibO3OxffctI&bn ztoOSg;4r_vSj}^E-Y-~zcTYPh7+}t~mnRbQPiRgOxM2j#U}5{|dd%v@=h^1=Rz<&W za677~wrJhs-&6fY40bbl`Z~A&HJlvh{^F;>$5vPEqjYX6G02a8J$Q|f-5ZCr86o*Nb$=N*xCXbxTVun!f7!4K=FAmKsH4xMVHZ9yM=?`e=$ceNBks? z%}|=j!j{=Q`Ut>m3W!aJd>8lS-MN|x?a(vWBVh~UC8C7j#3Ve-i6Q4#36l)fVC5%U z4fQtLUodJSl;&_sD2Y>Q0K8>Cb@e{9H7sMz zgkDPs0-}Fo>)_B>K5x8icV^YqebJ#jgxB~Fs!TJmeN$v{VB0zy#}cSx6oA%L`0`@Q zk4ek-xDWWZ8K!glGTd^t<~!Rkw`Eeze_D-P*`s`+dnYDR#(%o`>OCM97$g$ldi45w zkRwD)5jIw%ZPe}t@t9X*=CgZgWz_%P20vb+epw8Ezg8B zg&5{k{HHzuJSsf1r>bS{D1tMK#lSY?MEvS=lVUL%2Hqj&pbaEt#I0Fg>Lhun-c2uSx_?%YY0k?ynAeCyMwm zq7{TU;;;LmZ*j+Zx+A8*)0bHb1t2S)V1bw!{_`1xogj28iN5#N-n}`=#e{#}JVWqZ zfcKWZ=gxC`8E*d3fBNEw@1KT{J$2kNo>S+RujG-z(i?ldyy{0jj_Vj3>md!{@}xwj zd!lr9HZuEXE1j%pl8A1LG_dHJGo9cm-SHz3Qw_nP;#x$agES({RvmRXCms( zfX^U_9p)F(GwcI8yWbdMXYFnU;Y-*Zgw>Qb3!DD!>)Ul+-#3fu=bZaR=`jO+*ChNH z#ET*D=K2$V)sQ>1QS=bpL87Ereq@ORsu~Tu6t8Wfn&Ex&Loa|Q)++zf1u)Xcgs zfH@yud+Y@YCzeR*#G)P8)o=V;T@yhJC|+apIgK`tOov^{ehU6`9{y2)(?TG@>xp%1 z5$Qtgo$BNlA%#-`WcNo8dr3cTocjmJ=C;rAHF9<>b z?y+%kQ;_AjSQBVZSX?h}Zz}kxxO|&UCm)`FCD4UJC<^iA$b6W)cUV84oc;_6Y5v;v zV;TDU`+vVFQb$O6WQxwgP4CMg2$U~l*SpGL*IbwGk?Eom_FZb+7FbwN{1&wMNfTLf zFv?}rS5b!&uzT63H?NHw)g|T!3e>n&d5`f1uqG}rrX(#wn5mN!6GrrLpFvaAYj+Yy z=huCSb2#_uP%nMl$oB@uy7Oz0q*_l;PgqDA5S=4c zKWjH!S(xdK8djdOn%*&9_Ja9|UD9haMP4>e+J~ROuKF5D)p#uKwfWeCt@epnNU>&e zU@{WckHXz(IXO8IC=s@H9$j0!SP^aPI)YWM%!Te!j3wvQ3G`?zhVb-}ki~C=6&DxR z0)&kB{mmN#)hc~H>EYp#=rdW%=Qw+7FJxBa$F>-j13>koyMW}7^yXzIV0NG@K)C2p z1PNE0$dgU@49SzUSs7~l*z78L6BWIiU%z&LW+>c_)x}IY1(RgLpdaq{$D=$2AJ6_OX^IX{x2 z_qYtQHpNe{2DWx~E~So}xM7xhCNPCgk4Cb%l=yZd*i;Wos zaZdF>UF=GSIQI^O!SXKs>O|@-Hg;`~yw~)3=tU(GZlK+7tX)CfY7_UL+Y>TZf~d{@ z^)w!UAamq;yl7<|!V42m<$6MRKyz@}`A2`TK9m=?sc@wTLmG$@5R} zfVwoow`uggn*)QfPea0=wHUVHHKUbaSWFl>s1F&iVKiv68u0htO#gcus5T6L+BVfDv<;&ZAbhu^mgaw^V zI3JUBLV5j2CrqyouqA;P$;+a&og5Mfmbrk6yb>=@-pAU{B%C0b>q%rh2KAPw^$0<; z6UI2NZ2n_KqiTV4@CC52gaqqljrH1~ZZihFu&Jpj$xUKdFS1{}h*+4IHz4_v)kJBC zmj`LauDs}6w$MGn)?W;Fhry_nGm+O2^p9MP@x1P(ZF4Tm#=;V3oaAgItn0$H6BT43 zZA21aaCa>&Ed*J-1%BFh!JcgKNOF?M`Jttni|iZO@s-Ic>qiq%406ozZGI%Aadma= zhecF;A3v&1<*|BxzTSJ$MdzQKT$8=+vQ#133f&+cYKmp7`S8h&Xj~q39R0 z@)@&^GGA{@ip)Zud`FCw{Rx6%0aQ{=4h$CgFBCOeN)i_TqV&*tr_z}d#5R*FgR-J* z-96NPzQmEFp9nhb0DxwZY&ty6G5DbZ1iTmCJ{H%oaAckFBiTFpIPShyrkweWG~2RI zmn8KI0BH#S@t|IWn&8NRWao|`cqhVCkuY_N$j;G`4kY#u19JNzb5BB6#TQOjvu6<~ zAF>dqjvFE7(BJf52{=;X$~E*l&myTYPA2Jd5Bv|5tRk=UHqHL{_U z31V>HTh8u{GN+NuGBOx?55R?yr@`{VPS(TJ$AL~s+1K!?qNV^~ER0n;H_@vsR&f^d z7ltm}J?tN+B_a0HV1VxNx0qPa`~-y<9mQ_;uy@Ts-X!)Q847;AL?2yC>#s-^8xBUZ zuCQsiK<6%D=1go02{~bW5GhRb!zbwCtRXHeaDM-cAp4WWt|J0T!`@idbBJvSB{PK) zo(ibgCQy!SkAUr}S5R0nJ3C9N3c$Wv5xb5YcdC(~HSUtUy~#VFK72U3yn;52((-F`I97vMxBnl-~ z7gz32U2X9#OAG_?HPyVmr3J^jsN20ucE?qZbb3hs*@pwg_PKO^I3)mPGm=lo5kdBu z6ugk-Z0ew|dY%yrd+mGU_3PJf{g;fqWX`fCiw5{_-UjIn!oz!azeeGw;B*-`{+9a+GzCo1Of$@R!fyuV+39 zZF(}>=-QDN{cOR1MNQ!#k=x~ht!aQ%1+1;jxfmNpw)Rxo;uO95H@G?SerIK zAIn#Z63HfN^vXLNVwC-;M&sK&(PqH!X;Ep7lmNJcAdURn>o>dk3h^k!T2+@cQ8QQm z)bok+6l1oXrO)3=g1+FwI1p#^M&) zDB!wlB6oT=vZbpfEV0MM%Uej+b^4NAsGISZ?3IrgUz%Rk`A|DkFH2t?l#hXqj%J$W zhKa3a*d6e;twwbb95jxgN)G(FG2)=i>(u<*=<&qV>r{mzY9)1}*B`8Nn`+bFO#NMnycBrVobpwd8GD$O9M z(sDzf<%Y_#XAP_l;V>1u4FY_Dnn42mX{qVAr?=5K>w3vxxn24mmHQTj6H)m70 z*>>+vUk8}{&f9-k>E%iTLCTH z&`*>$*W}2&c~5V}WiL~+Cd-oMDfhIKC%P?zYQ47{-?jnnT|3!CT|AH@=tnKE6oX5Z zks1aqbE@JInka_eQ>vjEs8Sc`5+o&+HO+Zy8!c8d-^r^%#eaVUJBO)Y$x7$Sh^Sky zyw&g6=V+BZSy+T8bJS!LZ9(h}-@-e%T7>36IJv&zrQRQW+hR5R|6!9HovN?dyD7SI z&gS7K_QBGVB0>=>ZhKX{Uitp$#ea2MS**69=Vd;)ZB*wgd1|)t(n)m-hyGezZ*qC{ Y_|NZTA6DcFk{{Lhm+r5*DrbKCKS}mNC;$Ke literal 95561 zcmeFZcU)81_C8Ees)&l9fHbA3Gz9@E0R#~c0R`zzq=}RuEwm62#V#OCI!Y61(g`gp zD$+s^HH01@By<9SB)@|*_ud(ud*}PUe-EDzkaLo~_t|@|@~mgAohR1~wAomASZHWy z*mQL+8`03PX425mdNDBocTVIHS7~TiT3t0Yuj^`R3SRdHJG;6&(a`8TiBDv_X*_=< z3_G?S-9>je`bZE*woc*^4c1ISKKBR0(bsP??c?M<`%Jus>*nPTg>&y8-+ysZ{>y!j z8;j6OT!;N^BnGdqNi8$gEu|610)3FF)H)w*MiMohif{>~QA!evcYeD-WAVz`;^qf6 zaiQ~1v=$hSp3Y>pywyB~)ftM3nFwo{+k$L+F-E^x$wgl;gu$qGTAG6G6ZC>H$McxH zw=9kee67fkj-R0$_qX@&g~NM<8XuP?91uS=rLCDN|Cy|rD$^dY`@!(qQAP(o8krZ( zu{pF|?dO!mqcS4DzS)0kQSk6%k>d`X<4wm__8oT!wAV02r3w+g44$2lzSl$HlGWml zZPqhh{caig@Pr^T#(8y?nvpRD(=*Ktx$tOz?u8f$VHV!f+UQ_zpU-g;x=B3eTW^2* zKt1mkNMOoOfL%FFbigF=w#$PX4JEdBCwx4G8q07>?kQcj}ByRG}K1#+= zKEW*ga6!eh2i8uzAvdn=p2j|z%6;i=aK(4c3aR_ z>zPsO8`mCtaWF96)LpDWwn*;L=8A*$_59|aFo>? zX(aDUh>gf%{MePmH*{p_b(70sdt3f;$r6TT)!gf+Uq%gSl+d5J%8-eQ8Y*z>BwVFBSo%-V0GFAH<)Y6?F-Vewc(`)agNHr-J8%~Ow}9lmoUDYsr}>N@T#njGnzwS7mZmPb;%po@HmK8T^={@4}e?!-BogI;GZ ziXxA@Jo0J2=XJP7*!rwNq}6lrZ}AiFy((**t$7Ke#T-NyBDdie*=31(zA;vT`%z!l zR))5|ZkcSc?AnIVQ%+Ds8(A??RD(>8b>^ylhIEP1>N=;|MUEbBWvXM|c(C?hUrDtjOzS@tT+xANpX_n&3GH$1 zVKZW%=dgI_e%b#dV@&M#Bdapr+<^kyN4FW^i7Glb@?IOOoH=}y)=AZg&FNT9lJ|=q zP44Ww*Cq4E`i|dK@;g(RYN-b@gkFZ`y?uN8?c^I7eXT;HOrv7&>oae!CbqgHi*`hQ zd()BG;#%Mud`Gfkrvl=uguYMEHhhciG3zaucbPYw%ecw?e)GMxN%+E%{;T~A{k-o> z`cL1Tz3X0Sad-Q!(_QVp;`|1qymwabeEI?xp7o3ON9AKo1iEhBxp?>T9Y@!~p256( zx>Imb-ChmZ>&BTD@8HI3h0Y4}&F7rFj)#2n{wDP;@JbZdjW(la1@XluZ~fE@YzpkG zjDuhKr*5j?ui|5e)2^N9z2D;GEHiM9U3Tdl;<@bcW`3~~)!x?l8r~_@h35k+y@wZ$ z;`-)CQQL3Zdf56px@_`B-tCyPm$+mp=!1*Lf zPjop3^xado(4W2v_1Y&kX=>{?UvGAL+3^yb=AOD`5N}YOI*+`B)JsiC#at^(6Hcx0 z=m8yzY&)9BDODteu|``v6;~ERJ)J#UJgr6vwQg|j+7fTX+@#&r{`j1un%{ z`%bln#d?|g%|K9wyQ0O#z=3H`Fb6oDcyP%;Ai=P#vr{##@mr$`<}4;JG&htEfevkO zck@>YR@}7+%VIU|^v((|vO-|5g5r z!-qb-Fc(<4*drsOyt;K^vf{gId~dpz;uXo~cb_?5?tD3Rj4bp`%~`*_$-KZk(A_Q7 za`bu4LQT{P?Mlu{8Z!q6mx#4)pWab1d6Ae`ldt^6*sigsHr@;BJdnt(B}-_pNL2*S z=2!%k%ebVa7Rje5?C8h{DXIqAt(w{HD|xCA{aJtLRZk~&Sz*PFWp^L%KBxxRKL3M4 zzjEb;jlg8cFsVW{rsUnV^{efN%^qX2A7z6Lsjm;ml!|G_aA#N~Y9X&8l|;Ma9CeT# z=Tl|D29NqoErs#zo9$z-(bBB3c;qE-=h+K0ckMg6P2lmnjDcq9hPF;)dGLEaQSH62 z#gZU?jUBu3Yr$&~t1yc&yN`BVwOs)dJr8Z34LmelUXP8rUqoiWWT_OzR-bsn*tv}_qx#)S;vCHqfzNaJnQoS;n%sK`mS zB?aVIK)$=t(58N${;Gc3%*2d-N{4(2dbd*J=DoTeM49I^NH}PUXJsznQ)mnDL+wO^H&|=tS-PGBig-(;P6sIWRECEL+seQ2JCzE`vT(p zl9h1;>bo0hvvUweR{t2DYgsqU=ht5QD#Gh}=tv&RXSo|x84{q`3jrkkcgI6u)WvNz}^JGFMBwK$>sz3?;TsOJWUR zzQ-p5R)ug)l79 zPgm&shAi@_aj7?5@?y*{6xIoc7@Z#Drio6bZEQLE^ivVbSA|7nSRH%UD^O1x`x7Dm zlGnwwkBeK2Alv(wrB~Ve=(%WEzqSbj;Fj4-$HIq(hD&7cmsZzEcp1RG>8>};ea-c+ zDLH^Wr0gBRx1FQ{JiLHU)6l2{C;=}$oP6yC13cV4eUt(~Cx3iG33$DCTl%EnkB|7e zfliw1Ul-H_dpilrNnMaScT$x_P*70C+tFFc=<=1{n*&#%lXrZ5y_BS-ArOcZL{GS)vfC)YVhy`v#h-?A=wm?i%3aZhqO-!^zVJ z7(-P?Q9)kiM}uG9`p=MmXln7Frn2%E|Jd>m@BH3UMS5=rf0)s4%k|?fuwJSxD$@U6 zdsP;mR`NbzJ5IP>HoOV^r`y{b;HL)oJ^lNC;B|>JjVPK*L!(Zkd->AM0NO<~^DbLI zwRt5ftt`9DWV7N%zRt7jt;x~vqH}}~=f~MNdc>R_;&@W_VDZgqz3f6}&Lh^Qz)TH1g;@EaA6oDZ%&aP~c2}!cDSR`~z51C3#)%Dr^l8+D`UrmI5v73ak4IZdF z6-GnHB>3O|sK4Fcqmz6g=mS-*o9)}oM+EY~NlS+(sDQUscN)@B_css-x5-u23-|w` zn?rSBe*1N$Pw84Vq&wQ&R9bsWEh%uZ#m66~NbBFGn=`0Gem&)qX14E;It}gr_@fgP zo*D6gI?b&VYd#|A`(fs-ED z{D0BlPvagDIpi+&{&IuX=)qM(XFt*BgbSUI-=6v;{_6@Yce125yq(UNQz?z***!(O z4&w?(9sb|bP#?#f9A|$^wL+$>UH;R+Kju#p z7i8!C|JnQmE#2J9eI@@(9{ysR|0O)kEW#Ev1tmz1~DVS@?Hq z2rT;pmgA>}s9iPw<1|4vLntHzvO#FAeB+J43!a~KhvG*EBlf-^kT3!h*GfRvWH|D% zf!eMeQGDXT--<@~G>6Xpdw6wPUutGGLwgiIND6jB^(@S?M9eVt2zVc8dojS}=Mi6N zsP7QwWwT?~WL)Chu`UVir~-w@>03ixr#73|$!K;pT{V?6jSgevscx&Rkdc7BaK0seuK zhu{9ju~#d;Mup)Jm#IRg&M3Ar1KnG;)Gl|0~CH9-6->8jDwgXmJs2+ z`$bpLr#V30kO`EKQq=^kyE)kl$LzS?WIUdTJR|gzg8h0)JsB=LHH@&B8qPZcD(2Iq zAxkG-X8aVzuPmiZJW+vrdi1;2)@c8mpIe4K_D5Ay>N|65B)|qOsb{h{H6V^}JMR}m z(v?~NuZkJKoQkXQzfbGygObbJEs(xD_tJbL?+l&bRpEq->lW7r6RU3jW zM>}>VYkAwn>0byZICgO)??=xEi$5^V6`*8nTP$Dtx#2HnI{fIV=)rp)WSSdvbF+nR zuqVaj-8Ndqd#iEhb^@PnQxp&XdD+8{ijI#;rVBxp&Unph`ETvIFRQFd%#96o0#@Tg zNqq06|6-s2^CT2mI_;O1hQzT_!}~AY#MQ6S`YK0y>Noh4*6qqVf=<~WW>-T{`#h1m z9#n2URi>W>9xIV~Y4wHLVpRn8;TrZ;g=-PT=RkR;GOaIZ0=vuE^|!(%7^Y4~N2sZi zOSRc58*HwuYSq~B zdPq|n(fo_kjoFv_GU!bka$i^Hwfh7WT?uQNw9o)yy@kKEXtet#r4RX9k0?gGqxB8m zvZ9|uEn@SEj*<)!Cq6_uG59`;{>61@>>qte$~iV9o0(U6WX`qcBCW5Rs&7`IHm(D+ ziA&-nO;j;ZAN~C*FB>xN;~Vfto(iHNU!z0wZ>c&x?5d`&ra&cV|9V`cf1mWOa#*^l zF?RBD*C~ds`A3g#8%6y6P=_EtmX!I+3H5okBp)XDApKRCQEhJtf7RclCl`Z*YxTmweWOS@?e7*e%p(3hq- zfAS;YcjzuDEvz?Xxt8($^wwWo3XaiT`c~ONdmUCfE+JJ{yZ;FrH{}-M9r1RqfN0?-aJ<{oDeT^f2>HOXirk)#OVfpt!Qd0w`o z>S}=t6^n!96lloG?Znsk>sNl72@S2LppG`k2++40+N+2Ee(Hk7KbBWPG|cnvFTDvG z?CsS5*T)q3r>mcU>R(*`zNP=H71QNI7rmz+hipvu;f!_7^#=|4 zzsmQY+`FJ3)1GE%894$L&TX39#wqUf?YTvn$B6t;BiTjKYdp-_w_D45ULJ+{cIItj~NRTzPhMvQ7-jXTZnuN=Q}xQmyrT?DR4ZMmn~vXY*w z==8@W*dj9Tn|~)}MgtA!R9fmPEnggK5IgJj^(jQRGhO=XC%XNg2`MMYxzhoi9|Y1{ z9XTFvD0pFQ;vL%(mOxmz*C%WE!h3O$U*TWK=pUarI(gsy=WZ!dXGFt77y8Zw;wx!o z<~lyjZhyTQ3bzBh4t@x|wo_(&E<7W2SgJa)Xk78m;_Dl4KSfNNiyEX#bgJysV~b#0 zp;?YCuf7@|TZ+f&CA=cFK*pe>0i+OdCA6)0cO|mB@O9={i*4kbm(qg+ISGE z5Zl(y-J5M*+6LMYF~gMNW$}(Z*=GpwIB_#m(dV#Eo4jQV7t?ATZmc2i`SIn!g)K59ep$^70#y$^*-4FB(Z;fDJi&i2Iu=pNO);`80 z^P0Dz(g$X3T^l$ z-elpD5VWcFjk{}7uv;Cz<@?9I`PE@CT|T_$(B$J!{w7^fa>1Wfq^n2Y-Oz+nYTa^f zy}7@N8?$p7Dw{bRu~2}p5Q6(){iAZc2y~Yid^*YKx7F%2pxVR1f0PRK)>` z@6F4ZM4SAOq3a4`0TC)|*LdNCVYi}`kn$D+DA;kc5Wf2D<0bF8F8j_#GHLUbHoxmQ z3fQn1n%W)C>{gB2p%6xP{^cCD6Kzu?t2eL*VdsyimlD znH@C#`Ek|DEXSlA(@Si|8liP6)`%E)45i$~YU*2*PR5vY;KHlBT8vYj%F=r6^smJX z(~puf6dkOyeL#K-ad*@O0p*SHXTDkD;hIufk@))4sJfT~K4fvQ^tC`BUkMGVJ4@T4 z45F%cHJKLlorq0U`xA7EUf=VPy4>oRD!ka4;N~>`Lu?s_$rn}K)m+iF8%CAG&~)-r zZTbCr;@F*PDO+gsRCAObX?@;-V3k)vQ@aV4b#6cH+LL|HW739cIO7FzCk0P-B71Gf zHhX(CsYn?q&Q-<-kO?Q#qAW@>Okf#FGEOoDO$ia!Sf+uGPdLO1G1o0|of@@XDfybe zz=1#73Uxux-<-YvCJl*E;94AZxKg20_d5NSE=-?;jh7i%B z!6~Y>_1aOMMh%uG5IeTxIQa97WaN zZDP65uJtiH_eXRW=G2_qgJoP-waff)@;e_+YO%DjiIgNJ6s5-%6xV<5?F*xga2yj` zn^~S{B2bVAN$(aGhss9^s>h73*oKroD?gJvu%A^mo>Sbc_1g=f5;IHI$n%wY%17K1VFTl*5KTOjrfahCtPt zZHe&7r?=xb&JL^;I-V8ioz|L$@v&rons4On8%2p^;WOG zl1=cecd0fz$<>(9l)R!$@sw)!80IOpxUU(oiKI%~oewjuXd$)*wWFJ({KeGACsejz zgprx{!0_iVnEMy6`c36ZLpQ00Apb<898Z}7$KKoye`?Ttj}u}0B9z1<_kLtRLJBUN zfjw@c+g=&JhE$f$<}1=^Uy`zfpj3a5e5)iagr?{LW&~iz!z(HK_g_MF5+$zdo-gYK8eU+mTY_CcwCe-bn72bZY%h z_PeVah^sS5e5oF!@zVW&D<6~8AxG;GchC_1oF7hAqAdaDnjXvd8a34SRuWxDJivV- zO?Jlt4&=GW$`1_Y=Nos9<(-K_%WCL%r4jE`?!fd!6-@8C_? zEYwhi50yX6FHXVwiQG!lMbY86*!11ZN35$THM;yE@80lQ%U3JTq@yxdv-EkD3syg~ z^5G9PSRHw$nUAHrQc@e8)<|p zyY|+`*R@SF!LH)uJ)Fksw>@pLH9C^z3cWtlD9}*4`&@f!H)Lb{iG9?1GGnk{jbTP2 z2vZmNWuRD*<2doet)l0A$_7gQ3k&(ErPfq^{3C(TxID}1jop_Z#^d5Vz5|^f|CG!) z^CS27Q!*iXcA@*aLcr69kY2o*O-MAC4b`u zx4Mx#N7r%kCvr0t4#MtiDEnYroxo`L+Oab}dPC=eBTeHgmK3x~F-zI}Og!)){BzeFvGkRc}?yR9S&zAYf}icVCKFIsR6?1vU-`8dSe<(^CrLVT~ILpu;|{AJ8Gakaiuqv#Hm@do=}n z%BeLjAu9LUdY_ghfEj|5F1nVv_%tzWplKbcSaFm{i81z)8&|ELLF^4Xzi$XL zyLmT8OssNPG1jIbsN)^hop8=`v~KhHoHO5_pt27C9=^{$khwHiYU~N$ILQ7Kxv+~$ zp`S?)J{z=0?hzyi0&l*fX#z|#Vtpln`^futI@{$kuv0hzUPNEQ-&wkSS=k^Slu zH}LvRocnChRGkz6LgGklJdgJEff%<;ci-T=XxHxyn1<-r7ChNT?`O-z1cT)|FYhO$ z@a~sG?5@6*3Hfq5OFrbh^_JRbhu}n%sxj`t*v2e7*Ps0Ruik%BXwT||ARO5;AF&Sl zFZ9`3R=V4#JG^b9I?{l8bQNXaZ8OTB!rPUM(aVf)n9Z!u_o5c(q8=QWT^OI_b85S4 z>Xut!QqY*N)HpKjdbL{GwnAO1W}L20)tUyaqV8gVX$X$8m`TvHg{8G8`#JlsLas!` zbQU!SFAbF|IBt5NrOgPkvYj^2ev=-+CRD%B+0Qn$;}Y2$)&zoJB)>kjk+Lf`w{O6_ zif%$|lk{3*#iA;L8zVT|G14Q|)J4_Fks-LoLvMm0g@0wto|z&*`wIEih_44}Io z?r#pXtj>sQsQ6*#dqqcN+i+QZX+vAP%aUp&I#U6>QF0x+`TU z1NJ5Yy1UTtrlN4qO>NCod=W3fr&KR!W)rAo?V>)=7}#OSei1y;c=tH`W`2s}T7sku zlysna?9B7y=P$oE*+3Q&+}99|6q5QpmBdTA+udoFdyN|xxy1=!?1^Z+^PE+Q?5Opu zerr;dGyR--z-HC$pD$b*muf^OB& z1nES;%q|X?p7b#Mm$z&Q0h2xWFM0_U!r^ur1J>_N^CeDcAM}F^Ftd0{Td8L2;|CJY z_>}XJ?8+STu{*sH8<5Sh;4HNN=|2Vyf5C-%N&P^fL|qgO>HhwVt5c#;N!U}GW1+ol zhl1sWZ+}$_INr(Kwc+bKUX9g5<EZO9S9^6<^JZ=N|P-f!#93`F7JbW7FNlAF>`R zbMa_PRV=smAIjM*v{Z^nhW8bl7?U>fuAR%d8$3q>sAT4z#t35R94N>));TIIFeE6O zrWUz~uGG_Ri8=LXF6;Bg;jy&3`a6wjHe*|Oo?ro&CPOukYKF_=7YjCVgXgm@YcgNr zg1xq6bn@#OVMe-Hkp|~^i0CEPDo6=GKqs84_MH6Evf5tWS%x~ZkbA3fMhmS!X-oE1x~xB0tMU>!NXhtHn-UUa375( z%mk@5Mgy55?~(8n5*#rJczZif1X+FuI>s+^Er>|KHs*0TcT&uY5d_O>0ucjC^qvt9 zBE|F%8sV5e=yP}N_rN*4n&Mw%f2xI0@U0=*Y+#?s2 z|D6mM|0cs%0U6$zQac27FN3$Io;UHVd6R7sKUW4@J~u|Y{@{KiC0w6;NX`uvUCqeO zvJ;qm!9#RbVniuG5lpz&^7_2PcM6}fUwo-UGkilyaH0Jcm*;gG0auXI>Z4bp`aHzr zlD_l9=pYs1al>%-@ozP_l6v z*M<)F@sL3QLcU&gZwj*cd|u51BQ;VaNCqHln zdMzqgInU0yzuZ!CA7l#5cM<5^L>X4b9ptN5aKIe|1+BlDICUj(6F*R$h=aSXap4$N zThsB-o%OgYFL-MGc)T0y2jvL0TH)bPHLrt$HrG6v-R*;W> zHcgPmfN4ANfZ4&-x;4AJ70kIkX$8No|^`w0T=l(cGuD9C}wuGucmrlo#F>(Ksh)+3ze zhnzXb%7v*0t(%MQ!>2vmv1Z`!V9#~>4S2DGZW@vhn`Kl)|juBUmGd+AY$>mSk0 zXHKZ@=2_o!y64g#%6H*TSRWjbkcYIeK!iq+hf@8Z{g<}fhsq+Mg|o@MOMP$iCET?U*ZReZg~0d>xHTf9BSrqfBJrhP6U+?v4d&BrF(X|& zr(ps3MU}0tp%fb5jF~poM7sT}DRp%-FNC zU654*Ywqb?fI})Af)iv4j@VGd=;s=OHluU(d9_p&fc+=b_%xe#Uh_bHQlr%LhhC^I zFD_A%wVe3;u+V7kZMdJ$vKi5fpO4>@VSPKJJ;ALQu9W@8D{2F!eP<7ILNJ06aKa^f zmZb(_qwfc26l?XIi=;!xwNT9#+>EJPS0li@HsPHIMC8Ll0dg<+%6cUZ)j~uS+AI4L zDh7y4YKK;BfdYnNvHr=HJV$_x7sBRolHTEaa=@=%iRiTglmfp@ukB#OyFV6Ig$r}; z$wVD_5(Fsi4Kq^%$-+HgW{>l7-=|)+xfP!Nx4r_^U4dw$+{u zA$9k%0IIGxnGagvj;`(S7?H?+KtqCHJjyiDvw@0EY^N|cstQK~dfAL>`}9#9W1dXP z4)x`*ngQ{WvlA-_^5%%+Pbpr6%_)Ef z_)t($QVjKX>AtnO05-h}(3beKRJI`!x1L3YWX~kR_0~sR$<>A+_6KRSpyA4Rou!FB z#%=U=N$(uCZ)hm(D~wH7Y=2h^?d~%K-&(%!Y@=~uiqfzOxzIwyfQB5wF52pY9}ccE zd3POI?pf?!R(h zf5%j5w0$~xvjWlA?szQ&xsn`%G{#eMoW>2v!J<#|UbMbqsRZzyrLhK7=9Xmo0_<#9 z=<4*Dz)XUs(5Jx86l#M}wvK%uVW`Te00k9FiD2le_Sk9Rxw9m)hLt|xDsH58l{phP z?)^}CX>%X@$+U80)j&tkZWTkX#h>_aC#F3<972OWsti!DAv^dh+jCj2G7}N(O`E#A z<+m7_>2SgG?t}DW0mc_j@Hy%-)B1uijZnLoY6kWvK?^*nP{3bh<9myW1cONLb}}yB z(_rCj{9KN4h?0**Z0eDq{-G{k(~3AA^#LEXp!Ik4C|DT4bEv$Dn)Gz@Wb1(t zMnB2w2ndJq6H4bir6vfKtc_lDWmh&H|%0*#o{!;AwWI)?&gT1{4U zvP9Fn%F#LpsMsahN@#A{wd4z5K}O)#G-a2_I>OQW>+uR6!xEfJ#gixQB9x$>%;0AZ2&f#UcEgK;2-$DKenfIiZxxyCr599AQQBHy!>kD7$qWG zFA-T(U`4dIsM^(o*fe2zG^n#F{YF!bJLn)uiPvh{7j71{{pJx)dnR)1z=9&S%R5!| zY0z}O&U*zIkzJimD^!b%iB%W>cM+lB#t$`%ejqd;cn8qJ3icGBvby)dC$650rjZ$Ek`um6knS@1n)Sss>Y{|saa8m=NZYZIehOm zR1?v9#>l*F{r&7XGN(}AaccfuH~{B z$fldIO|c(8_Z<*9n!wI<&}xeq>*WX@AOt_W>hjIqvE^8XF5oQM&;BVr8hzkjNe+PF zRt(*(5q~9aCe@Nbm4Se)-!$trXgZ5iLsm5E>~eOR0U6|NS*kC11=wTBX^*ovPm9eE zPK#?jJsKlkEFo$a()guOXkfG($d?&BPrfRg?gzz=#V* zdFZD<;nwN5-;f^lbW@A*UG{);Q^ckXftXH7aTjI?eMn7X zh2`B0AVweaKNv4wd|EUEN_tXPyq~&#v&7WotXcl_kl34e@gjM>xYGtSXbo?=xe3qL z0@(<*G#jCBISGCo;eoN2omi z4sXTH;0nU^_4Z_iSF$b!!PP+M-U8T_RZz68htbz{J8CX%q{pyuaMKox59hm>+UCH%ZwMC6O2 zPBPp=gmUhoOIGPBt`WMr(k$x)un0o->thW;I_*{NT!Br zlf}y7--DN47%Uq%I&^$M_b0oKSUZR8#z1{aP+xh}?Eu$&v&cVV=y@N&V%PfNC63t! z1JPU4=p>8Iu52iVn)i#fH85%PQEs~;VR9c$PLTsXDA3#4oz z&hr7#Ww}+t>(X@IG(WY5OWPxCZbf+^X=zELu=-**br_JyM(gjTQ%&q7Ap;$s?NID_ z(`-3TR0_SPUkk1z)}lNYh|0IfM9fU`qzK4w3M1gw;f~R&0#k>ImWFd;EAFh+)D=He zZbi?)?K5v=MfOxjRU`04-IbuWVeFR^c zq^-*fqO@`DwRm|$HC(M$H&!r8^tJH0Q$=F>$>XM=?zi#nsfr^u0~$3$ z{n++2v5w@*&aKq_X51N;IIS(2%A&_$%oMHfbFM-0Sm8x_LyIX@<`obQ=73rFdR0?Ch7Z#LW3nYEouH(815`Toz z(e=N}Dr}hLt3lQ0(%G`P@@=ES!5QaxD^#d)1EW9!r+A|`uHr+;5Y{MDJ+w~B`p`vd z%)QN2`0Cb_VbCx$#JH5O+-L0Jv~U3&Jv=X~$Oh#1C!Cj2(2W)=2xbbO2qN8anBO*n zQ6v}Z7VqwJ!O;jLTT83FDaK)H_PY`{+uhEajSD#N^acg|y==yg1W5#VS-pHC z1^7lu{V*n|zEa_F0ezw7qk7lQvpErSYqQXk9U03=r5rW@-efanvh%Db)bCz}5l1V# z%3UCVKsAsdS^#$9)z00qr6e|e$Y8x|1SrL_-bEc#=~f-rxGmqQSmD0?z?abX$vCmA z6|l9_V?33hx;-LrEC|PDn8wg0ZctAogo`UeMg7J4aVjW(m)VU%W@-@w;+8q^xB zdK~cd5a*9CcoDHzUI=WoU!1Ft;>bO&A8A5A(tQvxHrjhY&G&>b-RkA_ylgrAW9!Vkf4kpcKPTW zy+qe;oAx}Gi}4el=}Zvx=b?;WN`3zrMF7c;`#-9`M)VKUuAkC=IrzyTO+>lpZN$WE z`yho3P!{I4p+mfbX$s&*6_U9RwRp4kV8YUHrMP1zYG~+0yI#AXYel#|7Mg07Heb8Q z$EktT*4*lUZ&J#y75b*oqTJLOnT!uyujDV0bwI55Jo7hRIhdKD3bkB4c6uQ-cP9v_ z*vY>2iOy(hY{7e}p?{R*wV&@nV}tvC!!RpiFo4On_wI;Pdp1RabG+k&ffU5`Vrz?*xHGYHQ=gx4N#5?1$t&+jY6B5(#szKgN4x38 zeF)XtaVnIHXoTIeCMqC;u>oYh`K1=?3yzrzDo4+nU-$hMYU8_E$LlHKK$uPF#{q>7 z%#@dD=e{D-5IRX#t+mZc55+RvrS>WwWSrZD#Sx^|bPG=+0fcnk@f+;=bOXWBN&6?F z=A+ul-}z-|YYzzJK0ZMj9PWhACc917ua!Mkg|}d|eKKnigI|+dcF((*+{PLe$;rh;crd+6sRixMX&&ye4Moj49vd<>eL0_�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 WQk$4;=AEVhel*myRf|;~2L6Ajvtbti diff --git a/docs/uptime/images/status-bar.png b/docs/uptime/images/status-bar.png index e0e9b27555900a5a5d7de1da847868fcdf4000e6..8d242789cdccd7f2474eda53a6aba788c64e0dfd 100644 GIT binary patch literal 86423 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�z9$~u)fS7I$cBj1zTvO0LnhJ*wpyVJZfs{ z-tSkKO$T zwaO31x6slUOZb?ti0?#?){kx`I*uze!m3S3Da#WMJMV566g6ABCv4ED%AvviibvJh znuIeA-0bX$g(=0Y11Sa`dXTabr?~a0v5+8fhl>@y!U1H?Jtg$NM=3K**|8r2ZUCWJKzY zs1`R%fO^ol(;VAud;X^ov04jS0$}H}MvGZ)^H=3#894P~c;}yXKH-pPj+d630F)HG zg8WUQmPg6>E?J3uGvh{GSz%LpDs8p{i%U7`3I@l=B`z<^=nqcJt3AC5uFy!JM zm{?sQ$-Hv!+gLRLj!h@fMdVjO^FwEWd6w#is=S5(drZ#yRff2UJIg6KBVIr3ybl)D zkmGDLE`YNF|By~usGGbc`C0s*jzzle#SoxU#u&K?ANfu(>sqa_&-$svd?9qARCzV^#+7j1$=RB%zMBy9O87F(3Q7 zK3=F9HxYccn0hhiwJkyJIeUsDyD#a08hF1ts?iS5QDdJDhe21^e^!J>{05E0^Ksu$=BrDhI*-1lLqCgDr5I#qULpc^Cc<+(i z{mJsxT5a~}2k<5<$8E9?l|^lN<8tsbq0&Ka3~-_Gvn9Os2ui8VE<&Ux3UXMX*wu#< zBiemhs38g-6QH9wP6>j}Bv& zsOs=HfkzM$l?VDV>nGJ45*e@8CMQ$5j;?YPnL}|N*_L9vy7E4_#0@;rFE@7dtKr4JCon$2q!tqY+uHo z;E1Koyhk+G(^L*&FqOoV_PIIsbq#x~Cu^*G{fR$^s(^s!v$MSC)Z}7`Nm6gliH|e} znQh;XTQV64M+2FCz{!%@YAvn68jm-)?O>d>=^*0`owhd*mqopUAqwzM9(yTL`kT%g zCgQE3S&BIi1DMUZ1y8#OR_^NZSzt%nE3S4?7tRgp(m=YItkj6;9a5sUfrh^Me{f zpzeM@xrhz={SSi-&5MjQ9)}|OWctE)NH`jVrI^AWo1QR`u=lUF>K1*axp5(b3S)1j!qDBFMfgcut~C$U;7HTum9}K;R_(p2ZVpR3q9;70qK632q!tM z{kAel-{3|rOxa@y$G_0NHoiWX>9rs<=s+H4;<`Qzp2C)tuk&dP-3R>9RRf8j{p>)W zM&!JS_&`KSY_&tg00QS#^uE$cfW0wJcywD4T=C+*7An62Z96TAekY|oX}QUo`_TeK zM&-~vFob@|f4yRNDyS)-*!;kkvlDBKVd%7~yKlQbZSB7P8<{>WI-{pO+cnnbxF>RXOjP8M zWLq)bfU!rtiF~k!6RTd5Zw}3ekL5QdFXJY8tj;Ct1eKYa&c{^50Of#D^8sY5m=EGm zbJ}BnfbM5e!@Mi0yY}_1^xUWvWNk)+nySMMcfNAQ_UY-iEd$Ok9F?Myg~NoWw^^Qi z2t2UCUQ+%+L{}?>-?!Jgm~)&|e)8Vo*hNLHE>gMmBD-SqdG)hNJ|ks(PVs>-&N@uE zR+F8$yhfq9af^*yn|&Z>jc*n8D4E?T_lHw!y^CZ{_c&&-)z=5I8+;#l0K^e#H7nJ% zu-x{!MmwPkJ}@_Uup+-+nF+S&mozHd|D~mH=k&n?;9!w;Ck;+bWoRX(4&Y3vX~pHd zt(At|#|G~ha?N~kx1I%8>dDgMncQ3+Lu7Ep+pxn3X3JV0rCHx(@u>A!PIr@Ni20%o zi{abeScxvVxvQjfp@DXnG!n>W)9o1#Yw}OE&)Bg!8@OLI?$FW5>G+eKPoIV3&4DX2fEs!~_-PwqM!76+1em z$82hEYb-WjpuvJq-fs}7G}ukJKF1|dNbm10X>6HDrBx;RpgbC{8$S{0R~^0_FHZfA zHohohK(n)Q1?a;TKtk^(zWt{7>2*sZmji6FBc_cI>OIt~B?M(LX3#W$d4O482JhRN4CrS^2N5w25f(ZY`V)liMWY~Ed^8@fp>`z(u9h70 zM-=(LxGNfNK(p93k7#R_fOIBc;^<7MzvS+!H3-RSmqCP0B^nwh(1S$!i+ZmPYC6cj z|C&-0$+!H$Tg4N4`{$41v>qCMZ)AP>K1DqaC>s3>F>NoY>D4xW?&bwF?d!YSdYfa* z=|aDw;Sah2Wj(IOZ;GAF0wG|%uwx}m{?$!ET=r3JUte<`?m>c_`Z zmEek*PBgzeh+*M128~~j!5E@ie|qFM67!lsN2zh~v&vpB@sPM*QxADn;^mtNfDFO-leM%m8Tp`Vt2o$v&`>i2Jv z%qhXuylq)z7HRQpifn#`$AS|H@~O#2#sS&N8$ZO4JlXTH;r(6cK@+=m89ZAz-O(v!7Ilnrna1-u~Fs!ui$QD>XWz5NV2ftiRdk zcUxs&c6opaeB((O2`MS%UvkUR5zrBQy>?t<(yTK2U#I?JZ%&QG-QODejqhfm@sC&k z_8|2=&OZ!(TQ9pj;;)$flhkSApD6j&#()S0``;Y#yGA40o&NyMF9}7q$$nw`AL9Oh zs)XO;IOIm!oc}PpS;&~@-@?dWT(bU@SC_6*O{ZP751*MVCfbWsN6e*eE|AXVvnX_A#JI{G=mF?x&y0-xf5ry01t6LJcw-zH75phYEIa@yW+~xg>8Eyd zuksvC8D5zpH-i3)xXjWO#-=CEGV45KILe2ShKq*5J&B2nEuH=?Z^6B7K$^?CvZ<*= zvd1l0(u;R6KZc+@4t6OKi{1KLTKzxHB2kZn=kqtDL3Hl6pXtyuAN5Gy@ozyY>r01% z+7enEM~GCt6I&A%nf%d1q%)Ixresf?+uet&l7jin{#9qiSlOJ{eo}rwRFseCsOUYm znEuZ`N@HPUPInp7DR0{`N?N^qi4)a@LZ`J*T4r=81ycAIHIa#UQ(5vzd5?#pMvMSg z1%u9k4!LD_W|&u!pHkbghKNp?WPw%~X)GR>H~=fI_W!2TTjL>5a>@5KSzYuYz`^(! z3n9e8z+Wh~v5K<{gn5xun|=KEbg|5e8XIgBRk^L@mW{yQebsOHSQ~{-kfD{X$bSWaeDjk&G5u~>uB}fY@3L+{^K)Q74(n}zrNbfbY zBvM03sFDyu$jx)k|Gw`T<9>MV_2V6H#@KtW?7ixobImp9Z_O3^)KH6oj+2gpf`UOu zTho|=g1(lV2GLNF?*(s$S1Bmy20b)1p6Y05@ICbhxO#ZIP*7;crle7unrtz@Mj`$r zj9c+xy+!gr`n4m)N+3;)I*8n`-{7*ev_-_VewBzux*hLr17x zzZPUCGWYaIY@Y_amyJV&1dL{pzyYY-bW#op>IR~aPZvya&EKZ5O0u;w{iz~+>p|?} zZ7SA#-)XI%_pPF|=Mxi`Uk_}a1mpdv6Y>s<;ZG|fBS{XAHTZ^?Dftp_l+gH}Sl!_5 zsm~QpS-qQ`B0O3MfmEfmPXdYE}}-3 z`>mtj-{c!jbUoZ4<>szN>X{dZOUGO;mQED8OUG5ynh?ej(DhYBC!O=bpi}2hl0@9v zt(t=2vE{p;YhSZpEzZi6lL`N7(xYbUl4a{Ve2+fhVu6;`LqXkiVY6PxcuAv&sTMic z%Io9a*}9yCKhrt!y~YOdL!mvk>r1xJ z^gsAx+Gvo5*#Ty#|Z{mrOi(jjA~dYFIYlj$kFR8$H!tIeI9+gszy$Y)bf zcc8ud+C7a&mni9-Zn5~QQ7O_~e4wrRO*l)oUh9pNmb`<2A7$?1nLnpC{7q;7oBGXFx@%V{Vh8-Nu6c)ebm!f0FX_fYwPnRjL+@?`i-=v|Oc>L*Vz_05s)t9dE z-n~kzm7kz_mqSP6?uVOJA4Ift6O0Ql&c89e6O-_wpJR=A^39S~Yl8Bc=;7s_JZV#U z8CB8o*dGdmPrAo%1PWwCyB6TxZ?$rYYL$-@-6=z<+TS9cC`_bnQZV`nJrWqb;T99n z_tNiL^IcmZ!)TjN!o4ZWWqu9KuC`pe0#z(HIvj`5FR6WzHf{tx@7wsEql5XAo)fbZ zx-&PC4D+*I8>9i#9=|(!xA=~yi~4qA|6OZl z_=j7+G@ayMUUJoI08h$U?1sH%V+Dbcr%J=0iz;ju2ivE1s$)O;P(<$u|?l``1`6xG1|YxUd(c`+uI);3)KbDq4z| zzTqh!biX0XT2IL+LNlTyKi?^TB~Q}eafR`B<0}8B>-oBAgKilDBhkHiBi{!+%00r| zMe7Om!GZGdx4T+K`KU>Ysq!tiEu+m`Q;srhnXTEIZRQ!>8LAnsvg(<8o*SOt4OX6b zPZv+E>8jFpPL&oQH854WuJtL-;MBI|6Z})kSFoipA8wum8VpheC;P&!Dg87m3-Y7RS_At}wi1 zD5T0{80Bn}bmlzeDCY8&P;{Ad`z3MsfSJojLf+@k+oBPtI!UYbihv5xi-^^$FIo;5 zSAnZ)EPBb7$u0sx0`Uf=#k<9&#a#L}285AM!^Pi3rOO|LJvV$1EX$q_kOWAP+#Nlx z0cyJPCstaDzVO2&k+r>tiEQven9yR`;C8Ca!~$HtJGA^bh-|(*eI}LIqlZ}2*u*NukhXAJ zm#T)U2wzv<0biS?-Bzy_t=4LP=%(8KKF)IGW!Gw5Nx54U%5hAk9o;6`h7D25^_H`G z6ariG1+V~eaEyC~ys1XDV`IwMkY0!)QV3ZBDh6GI!a?ocUO@RU6+#0v3OWo$knZ#) z*L|2`eoarqc#qMYY5K}1h6g?}x=nLLIjxl?u#Lz^W_FmRVt>m4dmCE{r=}~D?>E~-#J3m|U9z2?qlvFr8kzT3q z_ehz_c`Wxt^pj_ttLE4j1UvCouZpX|aJOZ-Wr(*|mi5x7=I!SAg9`^m2ideNEZ6yM zb*A-L1t0P!Caoj^1sU|2vLG)*$F8JtJeJxWuFsMKY!q3A)=9c$XH`DTlqG0O-jY)e zaX7TFzf}EEHlfR4K523cwJ&?%KzDYD>r#X|z_IkF?2JN#^l?Z=@WN@ma$@xl{Xe?H z*DO9D3u6iaMx<}o5^DrC5;=0M(jJfMj>-#6e0A0y9eI!?1u%@6Hn+Zu8O9DHzQM)m zlQE-e{;nI+>zB$Wn+FEJhkeATtVFVs<{*l-P^xXV3hdN*|kbs<$N)vagAt48Z8_svVH zd>vL>T^FratOphpcEVv8(V2TA;uw1smxykv+2|F9J=syjt5R>{d91;-!J$F+`trI# z=E%cp_*sLx=}Yh=wAMH7JT=8e*_X|`y=DYpg8@ci_!psPBIkI-m*3nBX4lPJ6k-*Q zfXa((P30JNoI_dg4n}OA=o9a3ghKpiN0q_L%5htJHYQQC{a&ZovAIa1YR8*mYw!Yh z&~R%~l;2a(eox+-MlfRxx3AI)s1W-DKOuVj>2!sv&=I5&S@5H#?tV?_s^w70Pt)ed^I$nZ|#eTY&amR zg~RWtOLVtVxTyrO+sqP%LclqK74~R%m7uvHq>-pL>L@09o@+d8D&~>4SWS}73}6;I z6VwXKLDOxvo=Tr?b^C&FL&yLSX~E>=(|JV&>_^jS%hVA|gjxj5K|gZh$oSNM-)w@H zGtxW6=lFCp7ZhoaG1}Y+StssxGWvM^->(BAE#1+KEL^wL>Hke!{Q2Sq%&>zXDUg&Y|h(2&LKnlb91~nUEOP zA<-GRk_ZX2w7uY2!)oMKtXYx|DWrEj`7`n3W^Ik9;TLomInIrF91Gbj?Mrl7qM49e&pN~6pF9p z$w?oVKu5k;KHk0o@~@O`|5pxqa{8aw; zpyMl1-+(*+UCIAlkETn&3x5y4Ko5W~-#_&_Ist+Lm2Thur=kD#`|p0byz=x7kwc4@PC&4A7B1cQc?V$5&Vx4{WrP(>n)jH%5;k2|BLp@bXUMB@?>`0^w2ai zB|k6z!yEEXg?!!n&y$>1%-$JDXCps7bTrjWUtK`MFK4ltarGU05VM1X8o1N&y{5SM7q?#ts)}#X5AKdQUR9;IaOwa1P2|E`v?9%4 zwERzp9|)-?C_QPByYV+&Cs&{b%=w!>lSldH1{+^LPr=g7D}PtPYd(dszalu_Yt>J5 zSDoXZ`7%cTT?MKM*=~Qus;jDePcAzdBoG%GZnXbx^Gnw*9<200hCWU3g;`o=Pluwz zSRdW_3&FYCd~`|OWcL9#5L&8+9sez#cdW4IxbgAYU&!HaEXxPM2W;+84>hcp<2tMx zZ!>}Q!(;vEyL|dC{!Qn|62iqsQwj0)@e!~K$l*qusfLY5q0h^H#$1L)bZcf29po(bvZ%2w1pQMRMC7LON-!>X*Qx((G2${ZsGUP}YUi&LC+^5NcJ};}?le-wdNE6gg8bQ*s%EEi*KW`NYl=`H!n<2em=b^Qe5kN0@LQT-a`lw|e4)21IRf5$^{ zHr%ytI)Jz6gOPeLGdN6sg?P!D>oZ@N`v<$=ir6rdPj>26(fy+lm*y!Q>u&xP4V$?y zq4~lZ3F=YkyvOqfF2M4hw|rnWHy9tdw3o+e60Lyat~31n5e?hBCjM6f(cvTT`_jBr zNu5w_pR5k{)d8AZ_1JC(BvCI8_!yY%C@U)651M&5AB<7(&8AkvaV*O zT7;(7LF#z!u{yc$J(uR0o+c`B;xY~XW`Uu2Vnd)lJox`vDY;Fj*8)O z?(3XlRWfFT;U)FXV@^}}qoVXgn0F_nxct6)`JoGPCf9eS=s4|IxW#~;Ouk}XdU zom}N?#b>q6_-aerHrp!N|Cg)!ZvlF;ni=RoEAP^}e?P69huW}XwHu`;%ZzuMgA;2u zKN{vjMfh98eX^f@ER1!=^p{=Bv6}(uIl~gA%yTaja}z~4k{-|HrZky9KZ9ku9OWd> z>eN@~Snv#HZO`UBz4`^>-fh42(51bh#5tJ%>$-;U0DL25!{K>PG3BIVm%NwDd^m?o zV0kn9hjt()!~4u7c{p9c;rt{Z4vlEn+Jz8&2a*Z51~O%vOkWj$S_{2b63GWMhL8Qu z0}M2H-Kr|OW|RslGcCOJg5fUdESXjiFfRlpLFVQA)&`PwQVEhn$wj)_Js;QkeKMx6 z@qTD{Y5#n*4KL}w|G^JtRrkbfYo<=Gd0j;Hw=3-#5vL*<(JSJGyG*~9JeZQxVin^A zrQy3ued*6$7Qdc(|HqVa=RF9~f902s7vC(=s!qFy&Skw+P;byK7|upr^;Pd*R@>iL zR`R+KhL9aSy-s&lkNF`TCR`u7-(H$LnAFKu5b;nTb5q(RP_b)cx19UV4)5})Z&Zrj z!`NC9{MuKaB9sWhIdqTvk zxZB1x;}JEhzs|DW6WZA)2%`}Ot(g}-)9a3`;0W_~;!MAj>OV^c92?RXL>9a~^p0(I zVPj^#O-aR=T+J@hSoL5$epWP7Z%SZHuj}0#YNea9o#k{Xo|hNiBiDTv+wP7GgD4wD zGMjWuMyo&WDm4Ns^C0zK*bb^KYx7tkG*e!bqLV*h^EsIW_D$lqcZ}i$?i16hu5__*JF; zJAXt zttW3EFn(~$_a1xie}bf+om|%t(up?JQB?9pS}}Mqa4A1=9nIh>itESC-H|-UBqlw2 z=>#Rp0`Phn(q8MqcHiG~FEk|ee%>b75s%LvPeyiRF3)=S5tmv5l!t=me+6sl?b;?< ze8J5pq(8bfUS|<$)#_aoB#K)~R^yzm7JX08mJmhFs5_9 zLMKhk#}sJ5`)}qJO+MLz;B)HjwHry7bpV|>Mg@7cJM0JyB*D42Jhn;83hPlu6`+|i z^RLW3aZg%DvZvqhg$*MxlSl%zX%hL>Bokix_Vwl6nwaesN>y{edH6Y{TPOt4ljvV!j9b z_?w_51(x+yBjw;!w)?hEx2LP_zo%Po5~?Ph9aSIB!027@ANR79$7FxpsSfmB9R>@U zgTU6U$D1!iC&$CmEEZZU2-y%78}k+gk4e9sheT{l{j2-lgnAESJ)Cd$-AIU5 zts3Lkd|?%BqFJmLpI!eD%SVV!7A)GRW5`C@$72HVq#IXh)DUPS>gdvoZn zoq}~9SX;I=N}h}bwq&-GPUK3*!)k&$^gZ@cdnko9U+pv7K~kqs;x-ZHOx3qblknA^ zHa1|I@r56^_{ zLO({UHF&U1HuZhJ%1{@!IBEwjGHfp%T>(XeYR?FAJ`aQjMo z?2AgZ2(042q8NThm&xu`_^M6lrMKu#RJ=$(Xx;O}uQ+xivcJb(6eUhNejS)~gHvEQ z!a*qg!1|Y&AvFjar|;0vy%2nKC|49vsg)mi6Hr15%|T!=__(xc-IaH=!!nC{Z*lTO zFh+9!$f1&3*+Cxsry^7Q_h>M$oUqwx#EVL(iiSVFH4;xY99|w>I^PKhDp14Hr&SHw z#pdIdwpw~+nS9UgK`exiiBGURN?yzD$OGE@8N%V?k6LR(?R1z0KkWM6hT9{Xw%Or8 zL>6GuJqr*+yW>n=k!L;Hi2g4_wkN_0!gOm~39-dpD1wP{{; zZLX~S43D~APSO*9n35{~kUm(np!ZXnNAAea)Fz*!Bx$e1@Mh&_R(_ZTnfrE)WhQT= zYyD2g9Shcmtd1(|VC960K+KY|P|VBI&0~JuujA=V(s^dT8+5lnKdii21&v(oi;pY- zH)EQ>{_DD%NIu$p(s|>9HZ|<=j`>`9{#oeOB)?A9quncF^u2Z0nf(m{Ri1?aG^rxC z4qbGz?mcsc-?rn0Q3vJ)lU%MB&?cB9`}u=w#ftbcouLnFaN&E zZb7eIevC?w*GZ_yKMSD@`sJ_0Y;uwTIekjhJv7vj7+ z12ihTdpJkwQM4EkuUi}#9JBcBvux^M3%$h}x<}ZM?Ik7ZvhBVUeRR0Ve&D!f5Y8()E<&E4`z8|W*Fj>^B_Yu{iwO}?RoKCc@ zo*6hB4`?P-y-N~vS##`pxL1*47J0MwVfJ{{yRX9pl`z?5dlkEb_$%2p1J;N_bW|#M z^z7&Hhd<|=f?h3D?@(A_xA$q4m#cVh3HX^6kc=nzY8nOBdA|0#@B|*yWM(;1G3#45 z&scv4YGkmb#?m+S51T1ey2NL`KKfq#zU!f%0kL7v!Gkc08%;_SSMpU79K8tB6c0eC zWE{b;PCYS&h~)XA<7Sz|u{Tq*wW%roI@!idmQx7c-2nY>5|H5?o6&c6T`>ynFr`sN zjh1Q^4MYT0hQkr+R(jis_SJ=v2Q1!W=B#?A?SyG2sQmZfq`W}^TBT_fJ`?VpGC)GgV%TQ-BDm!9L2DVh} z$#ehY`(DeaJy@?d6W90<3^m+&nVgQY%%oa|Bd`Ak?X8a`nnyRiTG~eK^~FlDuNM?8 zIxk1J`}b$X+o$c~CcHiFLSL2xc0)`N!sl3wJrJ+^VHgie)3<4{!;;4ZGTeI3#jRL? zD+#TsNIcy-|B?&2XOad;#_x2GTBPj|#T@wRq@|*~b`4mt9K}1gJ>M&g1}Kk#ZkUan zdVlyq!qku29h|kel@FD}9b)(Ylo%4!dp||Mwv%N6zIb=t&HAu{-D+$Ko3Mpd92I23 zMo7_Qwq1U3it{1icY#s%IRn>p3fVrFJ3`PhjCp;qw`r*@a_RpLQnqUZ$fg_{n1%Ql zr3&5W{DnLj60mAG4YPVt1_2;zO#D%U_xbf$lS^{N_*-}eJ&tFdude`72P)&Vg3fx|3Z@MWTIQOnnV{Ole z^r-xg{eq}jndu>RZW&u~6iW8N(iMUsB6jDM=%toLPU$?<*CB74LO-=qo03$d8oiY3 zXkv(i=ud0`(rLW(1(#dyE-kS)3K2p5DDD)ydrK~0!*2u5QZQ0Sm>Ppx#&Kr2l1!_Ik=@e~qf3N-Xplzkmdi%C z>log;@w{Oq1W1>G%A02CDe^CJs{kaAk6HQ{eH9TXc*0my+^+IA2-!wB9?g9eGPwks zH+RSG`7CCusfPlFQbGphQ9qWL+Ob7?7M37v!%oddcH!G&U&UWUa79DMZ1(VTM`2iW z3WvjJ3NL8x_Yza3e&tvus4jYUiXeIm+xT+1VT)c|?*oTOlC+2MPJmFp8XM4|eK&UR zOC!R_KI&U&PFr6Cin4t#K>3>;&%-^!6NVj~Xc|N{7WDQwY_;P}RPFN#=J~de@-yrr z?zs(8WxW_ts}W06FJ@2!H66tHv>_)mx_R>0nGyA z0%7sIh>l4ohLee4<03jm5j0d&zW$SzO>6oI z?wifpB|j5(q94rMso*0{ew(S?4c%O{6D2sX)JNtohNC2SgF_|(KTp#zeMJW!0NEfW z7v1{~SS&BI&m-?5?}d=AZ5!C70fKbDxL)MEc(wj%r*-iKM~4ye-@Cf5v0qkFS2c2}7rTtuy`GUB=^_i_S<=E7 zsDRlya_Y*{Z=O^_nzNy>F}L?b;;}-+d2OKd3=~F+m_~ZKrBn5Vr4#3T24y1$e#k}6 z)m?Ci9YLV@Q_Xn`WP^FW$R|7MK+SRr#{a zw}-_CfugAX)Le|ZmW|$v^iJIn?NSGqn~Tx0ON2uv;tapPntb=bn2+@08b;E6=gGI9 z+kq^Qnc4A6!)?n>m3OOesrqmVMIbJ%F4pgOj}QnCe72ogzK)2k3bu*!hTpjU1Baa{ z`@{JW2OG^+5TvAHXnKo2pIscX_ny$SZl7Mt`D{{+1T{UOV&ZUoPkpCVf?Io{z@~&` z+W_Ofc%?p)p+wyN(W2WiZU^+0F+21`y*t&HucWk6qr)Xa z+QPATeY~sACaM)0F$-#p4wQwl|9JbSGb*OYC#LF}eWvml|3~%|F?gs|3=OL@Q*Xpk zFayFRc|;bVFM;g1W)+79x!-HH>)X9%A11@1Ty0fXR{yFrJE&O|RyDS`c0afO7w)#Q zcm(MSx709)E$h6@lJ8C&YuJL^`nnz@iS>Sx!Vx02|Fn1dXiZ5xOu1~2;A&qA*~L__{p*N`stGLak)Y!{9Qiv1?QjhBE2-5w!X(ll9XI9 z8_O{PS|^yRfX|@5)3eD@%tGVW;?G=~xP9;Vf5SpZYGf=VvZFPzid#9{2sGCyqnmks zC|$2tI^w==M8U#+GC*Qbys#i?VrQ~ARB8Q>AAzJF9s`6$y7hMs;b=fC}y#e5dB z`w=aw|I=33U{3*PXn&(YS6#os6$iOf*1xN41TO(6fq4W?7QmH9jbnCc9sw3oOm@tt zCgnama*LgwVcAqq#nU~!3yZ zDz-(L=YXaG?%b=D9lLhBj8lsd#|>2+3E$bkm{d&8+TqO3ayetwqQ9kmtNnWiLKUx_ zU44F=xjVp7odB#$TRb`~i(-?$wCBs9hf1*6iDqht$m|5;pKl?}VI*b&Wx!3(3;^3) zYkxz7N5jU7l}{56v|K0UK)s|3s8ViT}yuTpB?JwZNz|&cjIeCs4?Uhy@F% zni^6TL15jKOK%A+`IFl?fszO%p3eJEhewBuHQ6;Nk^y1g+;c=a&VY^dAV7nfR`cP{ z9xw(Y;ZUs>P;$}N^evi8);B3tJUCFy=d_-w%ghu=joBE@5J(euNF1?g{AgY>`+KFG zgXCuR0wkdYbW@qge&oOQW4a19O`C(KZ)lA|TSwqOmDZQ#srbzE_6rCaG&oh>@R7xs z%$wQ}_g6h;Z<9stGOR!=UXHB?1IZ1S9w^)J9os24{|Z>DPg(V{y_x8MynbI1Hyp%)lO9zrjlQZw?1*;HG! zG?l}5AWJC$$9s^Pf|xC*a*q^02HDU|^Aki9>GhHA+)fEdaX?VB9A$qvK!^2AKSL}Y z&J`?E&v_(-VQ_g-ef4#W+vA`}hT)Kajm&HH^LtxS0$F4M*lAVGjp_TsordCSpn*B$%EDua zK9sFYP2?#P{Bt*xM>zlCUio`hRfD;s>WDhmk=yA~aACn=IWSVT)fc@fYY=qY7c^PI z{UA5uGbi*$kr&L(4tk)T3H5@l0~mQlr40Ci!Bd@gLgPsfmhEw<0&HxBbwij+(^Nen z*fo$GwRfy|xt8G%1m=eMgvZkFg^7$4WGtbwe=NrNn8GJv4DL2 z7cb36UD-y!$6FjSbkRsK`(t@-^dP#EvDRzdwDNnI&+Krilzkuo#WTz1vPyGm8NQ{3MeSZ`K4s?Q@NAkh8&rsDi? z1rsa#O#7(ljnzyGANjeCsuPU()$q}G$#Iawlo=TDMM~-0-AZ%iwKxZtg+YvY(`~t_ zp|2LYR#TkXVrz65=zky}I5>GG@@7&R(rTwppK>yeI{G~&CdG^(nrNprYFWo^Aal+> z@;mm2G%nx=(Mu(9q%1l|I6&wqhutgT7ni_E+h$3`=q{Da{kt=9EXG8SMSO;#GCJQ#6X2}Oz$?KmW z+T6Za9dVAI`&zF1jky*GifIoqs~2HX(NOm=^Vp(lz#OX#lYU1C~ExB zB?P9?$(>&(S29*fm@uN6F-U~G9JQd{X`65R@HKQT(l9sovt9iCod~My!<+c}wb7)7 zt<~&tfa*9vef;4}xcOS#lbMh`$cyeah2Nz!&l+w6H8I2iUV`b^G1V)hYH7ySbxckRS0B=#hKd=biLF2Kd}<~< zJeu9q(PCVgRdt=zuyvrDQnl&b2!hkOEhy!wt-0+;1G{25pQ8~CQEOwkA8g*Uo!2=# zFjIg87TsCZ!#-X^3Cg!!RG(W&z+?7b*qrzX#`Cvjd+nq|{ZNudc^uSj0P%3#OCqO% z7e>14vltx2_-s3td9uw)TGEoXtH+<;cw?uzzMVB+C=4)FXOMn|m1@vgk{Ip#PE zMO@MOdJmnm(-?8e@bz(A+E(FAy^uc{^pl4H&rWDLl>IA?AdLh(eE{_;WS+qEr}agj zSn1;T^g3&e9!mY=)3%WAb9;Ex-s`qm6vM=rw$EvsQ6}f<-aR)Bsb$bcPza&1vd}l% z+7affe$cJ;DRz>qOf?!pBVb|}{-KDxsIxzSC^lhevg|N)8LbMI^+qc}d`m>s>$+1^^Boh)eE;k0X$Pd3&CbP!faB4!ocH(~0YZxA4;q%xbnnLuh5- z?!u5Yx^i=atd*a3GrGF-_XloG4xTbV*rH{AOcfu;AvBg|k9HHv?6t9BCjDq-7k)@_ zu#!R452W`MhC@#poC1p_w(;AQS_1u#9lZN%o2Vt=k%bcY8}0MOJZpwEFA3zL^zg!; z%DoC9*x0wSxoTOV-%~~1?}BQbrY?9{mFu23-v?K%&{jJQXI^nxPyO~z z@f8Wp@J`H$ZLIfl7WKDIMh9D7^m9N#HRAQ*KcL>guH&sfJTdnr)r;n)Bf~v8|5>_+ zi$l5M*><6`4D=oIL&r1R{jk?38Q09RI+&K(JSZh2xrN!SK78M=P&my~+0X#+QA($1yAW6VZ(bWAR{=hLP+ zNX($)(&-3M8P`(-@9+7~?r8pei_SLi3m@nu&O&CK&G%|Sa0?M4Po^%B$I}Z|T`p zMLOt{(3H7ioIkUb1pi2ZA0PEjw$9Ki?*u(D*vX_Tx8{cYF){i;wP8}E%Ta~IG^+}` z#&gSd(l&hIl>1dSjBZcWOB2_FpN?dqbg3`7eIs?OL)9tQraxEo8k_N1xgtN_u|X4%gXrW7PwRi_T|6j~NUpN4(9U0Pt8n4cyxE&&}T+`JUZ&~+#?Q|(wG=OLCCHf1szRdA< z1Ls^_{)MxqCs+J8g1WezBaz`7Yhfa1O^8=}^TS)bLquE*5xzEB70QfqBr4|1K1bF{JCIw%xEy!~rBn^2E{-_NL2jQ5 zL+wQ2p?_XttNW&3^c7vN;0x1NGZ@v_$9h=$&_mBxzM}C zN?f1Hz)}#na-OqTvPH?R=BX=(uh8kDfiTeP=bSHs;`CwwNJ*KdvN1!f$FBBpWDsbv zGZRs{yAx9IOs&-Hws*p?Vt`otu$;${#lVvFGO7=J)YN~1&#aUQ(eJ^C>#t)}4a&#U zLW1(7Xu52Q6v*aeyAgx7Lks6^IY}zUyjE)KSCmN6zN*B%rkjnx60@1=R<=vVMc@pNV@3rLLBfP zs4`>5?>vk<_ov1Cuo*YUL)l2HA^J=J#n0|@c7vY|(8nFh$W*of@;*aIw+}%4O10EEUt;n~BeaPVAj+24#jKq$B~OkACkYMvd9HRL|Adp}h*&kNwg+5n!oRae zLfQ%ZMme?@s(*1?&u+ty4ZiO~8-I|`8rZftK^}aMK05mcaZ^0>n|pm@?}6LMxo&hD zKDFT_{m{jE{Pj;&3^|x#J^f=tmO)#}S|3E|nR5DROM^XS47T3SF^B`Kn!9Lf1N5~ zkE{h3tx(yPHU263B&XB{OW~EpD5XF@4LqGpHeq_;T^iSutM;?Fbj~@St(6vKO7$f* zAi!@H(F>}CeQ)tb)=Xt^OL_iqFY*JoKoiwfnv_qUzcu;1wEF_;`4~Sq({&MskZ8ij z?MBqav!z%toH;zWdq*v6rjlr0xSi|$n^DhoV4o|^I9QR^V>Jx@;^)&=!@qAv4 zfwS@F^&Qkm(-0~QYzbvAI11}lka#hgHgz{(V;|ZV^t&g$&Mga|dyu2;O%`dA?}2eS z;~}mwvSMoL4X;D^c^>l36U31l&%Xr%z7-~)cWcfWMQncpnE-hi7KU=)Pk7@Tc6FKeOGu)6Glw=NZZGUqw?900+v6r?%fO>k%xAe8jmI2 zs-HaSWI+{$SC3yk(?~bgZCZ#Q)D!5h9I;VD*m-~*w{9MK!uu*fiNx`3qIHjh4O1QI zi3`ssKbA`M>Y2?3h6gjK^4793E&hI<<-Ec*`$Q5B~7gQPvz_o>(uQ-JfvULt81asxm zic>z8Ta=5ur(b8U%sK52m1=g`4KH!3pPJBjXY;Il;v>r-3V^p7FmlV^bsNi0mNZgX zH<^L$%I;>z9v%qh-Ey$IZq+=EFm#~2JRg)DZ3qT>?8#PaF&cTk^6ixQFE zsCwUdTkE!~<{a{6iqB|k0ZYvTH_Hne^eTHH?wul16r%PW8su$Q%d*)YZk4d#wN2Zg zp;_)qUD$$}#x5tYDHGgWaYIv@Dl=KJ;H49W4v; zO4WUPi8d=Fl7&rZhPg7o+GoE5VhpjJ`z;fkpj7)2L3R_Ran9)txj9PmLv;;Z=er)K zT|=V*+m(C(pWpap#_M6-OA9isxRHQn_mS4zAo#>T;d`AI@mUeAP#INfr_I-&J}hui zA_9db!>Zv*e5xvSK^>}^KGpc^SBbz&V9^uLXy^U}L{2-#A&Sj8e)p*G%~tFl9#p5z zw?y8pmP7vfp1W+MXg0AW@3mnHg+^sFy5<+R-GO2l3hJgJL$iafKtP z#=7e7L|hmWndfT-Vv}xzlf2okxv;An>pGX4LUpk+nymA?$0QJ>Z#Y{Dl?C<_$DKkU z@ea7*bo^*mI%-%Bx0H*+NtGJre3ZXK>+Oc-d^0opP4HAvUf$YJ>+#SRC2Gv9uULlo z8=Ll@@S*l;v;1M@Ts^&H`G$&3h2OU33|1vtW6HH_M=rqg{P$ApgWmJ%rzdVAq|o<) z+e=fUy9+Jt)8#fp7|G>!rgcnk?*dB3OHo7|GTvjik^LxWyMDTC>M0hpD4u2qOc%j> zHx}xp%`Woy7*-QkUrTefE$v2PML3-2xtRJwMfexT5?M;}y>pESigzyu*z-(BZZU-w z5;s$Th|l=ygm{NneC{ozfpQZ_TIo>J-28|zTZ&=)bzE@GSUaIq3iPTxwa_p{$lJlq zbtdilz$m2_W~wR(kSM@pixNqSAMwJiEOqCpnDWkSv z#piq`kR@-}-pucZAr)sb*P4!d;=>Bz3KyUsn>JGNjM5kugNen^wOBQWc^8h!qQn^u zuMgeN8dq(}Cmibwb+UD5uaw`~6FV_@GD4cc9?OUC<9Q|hPN@_~sp=MkYrbsgdR(8) z(YfGWmK`p~sl~-~(I0q#C2AE}?>z>#YAy?}cUQ3$PP}$GT%FYbB8J(82ZQjn3tMha z!tWr@01nSjm$`}zjx)*iXm!h`4n+IB2?D1F%$%TGGEQe)Lyil0yd0Fv0Meou*IfQr(-tXcWDpL&Tp+mKlpV8fafF;zAtiG6nl^#=_Fp!|8@3U>aqLtk|j*mJiD(Q3ebjax3dp55=jgAqY;$T1tiL;pYDEOG$@8c+PP3a`{A9@JNJSuIOJaKe?L22 ze6om}lAF3~QMC`V^yZp^g$L}@q+<{Cn-<;ZT?fr9dWi%Qf%jp5&5OP@a!_?`*qFT) z^jyp87|t22a7sAKZlW48kcIyqor-k;;mtCX=NCr72hsVG2gKm0R0Sg}nrPxVUACu~ zG9wK2DL2;ZD)lJdUQ>P>=FWrkjyV6IZq{LX4qAmKm}$){x!U2g8hg z8#5!z491M#bl>;)e(u-rx$dXybv^$+{u*BAoagDY9mnxL-tXhMh4UaJhch|$O&%i) z$8jMa5sM$Hji%sg{8M@|WpU)1LQk=aYI5t8XApIB_|9ZlZrzVW6N|1MTlZrl> z4xr*tG+`%l7-vm2uZyE4p4HDKE^En|jdj)n@zA?ci(c zwvSs&B8)5bJGIllZHj_#nMJ<|Za2jF11&GgT=UWI(+!t`!iHgI4(K4$O3x{0Yz)S6 z31M5>9v1CAQEsL{|JFG!LA@0^{IF(@Y&{i1QGM7OPF#Im^??0@u`mFb@*@4AR>kn5 zI=P{^?y|qSt!s)rgBUeY>E@ItMC+$KN%P~HYMX0s5Uxr^q4d6lK;m!Ms#ugdc3%3~ z?|=t2poiEu8xXctzO87oWbhXwqkQ9C4P_5BLX}K%a|uZwm1v{QwWY0q_IHvj$s_<& z)w@Sq%vWz2c+)mWtx?fV;O5<2RO;t+-}LaxWC;^p@A`^r8w5DE74$fQ zL@V-F3=aBaghM-F_fh+0TA6r?Fb#VSmWxZW1A$9=KB}S!SfqtwzMaG(B?I}4^>?PH zTJVTEVA9Jz?=iMeKm2M%?_JkQ*<{Z3_oluyf43rPS}cQWt@eaFm!S){iQodf3@5+t zOq8<6mb9l2I{!Ft%m%!H?I*RJDD`j!wq>o(1WCEtv2cDpm^_NFkO!4~Rk24_BW)s4 zw(StnlW3yf(ynON$H#ycYH>1EF9TPD*q?PNrA|vDcTslm8@q_wo&#gzrW(U<6}1Oc zpr~>UTJ9<0^OBo}chi}!O+7&au*uCgAI5WQ>(W) zF0Shc9>onD1;OMF<9^14r(7-zuPm%A4k;@y3ae+!z>RxXf`^aE>NnLdk3T~ag2^$8 zrlhF{faCP1oQVwsQD3atX;$X61_laoiDD#j2lu#1M%jpoh+_j^?TcWau;c@H$#x@v zlIle9%m???Kq<%q#jQ({9f)E@k2Zzf(uAa~+@ zF2tJ)4LYv{sncodol$KOS$<}m69SLFQ*{Q+X_fX??9>VGy{_(|ZVRSD=umes1q~ry z@#?2$7TMK4+X9@wq`i+hrF{*zFtmxS(k_NgEL*` zD|H}{)$3)#gM~nK9QKEbgxLmrzSV+8zO!ck(%GFiM3T$W>Jwn_7ECp3X(b zgU7QEWM<(5z68zIg|b{D1&z5>5<8}nkWd@XqDkR-ec;e(1L9xmvlax~vqd58m+5sX zR)w`a8S<#8vn=CYK+?n`h9u$gqeqW6o`rBMH=Xi=>C^6<;JW@ek8^J>3{erpSKC!3 zZXvoQ>;>Tq`xN=Ge5JV8FZOP-qX=(%}WoW+u$tdHB5bne&x%{8nzqCyr8R@|u z!+(U3XdGUR(QKo1y5!>#MrDL>-iBcwe)5zAF}B(Ka$ANnswRwW~p}qKUE()*?@+ z+wXnZ)ej%{?uM*k@o*y&|Ax;<%brHeBTyaG-#)~Jmdt9rhgt0sk9eEoKD#|7`Q zpiIh6CL%Pl9GsK-+IA=XRQhI|Ew<$nK+At}V&81Sz+6Y}F|mB?2$}LRfq0p7bc7t9 z2U>WGFHOHrw@=fZia5QWk;4DpW5e;CM6Pl0o3iBZ(CY*b1^$FZtq+*MrzZtH`t6wx zCgg4wb1iQFd|P&Tr&~5BIa!PUTX($~Lsk)#RE`Mxd`huh<;Nvt<#nK)1e5jq${}A` zKl0@A^lN{wzQ>1MXk*XULb>0*B_R@>c*#mrTKs_tKYEXqb?S0X23b`LA|;0e_rDrJ zxZtw_`EJQuKp0Zl^98x}cxj_|!8eF&L8(XKqui`5k5HE!+uOyv_G#C5ys-39Z=sYB zqcCqQ@6uo$)w&{w6{~&`xE|jB8a7`q98uC>UN5j^x?WN7xYtnjn#k$3BJ+Z0by$^K z%i)sLw6mkTxP$Pd+agg&-#HO$Y3oQkw2jG_sU6(4Fx7o*f_2c%htmBeqU4~4-#RH5 zKDkPS!XSqH#THZ>MW+^bc%~Z(q26WcBo*SKKQbN15Q9K}Q9t$5lvKYK6d;paM9T+h z;$V=SAJ;^MJEgFgZA$<_wJDZ@AEF~`uv^4i6Nxe%YC)4MGNJm@$}l7+Yig>(g6d}Y zwR7e7q3xMBlNW$vAp-ir?O4_(YW*l{BdGAave^Vgp?T8Tg>=?Otr_4F)3#jd?=tFbc*wKz#*KMgZ4c^uxENxO~-?48&itTo8nDLP*nFFV$5nVQOAdF-JH zy&3Xo8e*pIEk$}T@B&T{iCvf`X~op1pHha7PVP#m0XcU%!d&{57j7A_Xl*Z#cAB&` zTYeY%ol4$Do1vG`$)WwoSdp1S-g$X5Tj~*V%XScc9~y-?U)iX*&I$90@}4hT5TDW8B?p}QQFV@fJY6j;7O?UWO(x`_mxAEb-iz(_(B;3KVKm+Yt6Uf;~ zGt9yZ3VOm)zWe-p3)ss`TT>7QZ}#!?wTW5IQQNxklmMPhC;?KR@256pstnlqAv0b= zNPsS}<$<(FbNb2Tq`XgGwyniI)#0a$!9wzYd+u;g9OAyT*vON&@KPejuj@RbM-rZt zLC(Oj2slyo#TQ^pYRT7w?Yd@$xGL-egERru-%BCJTF!Q#acNB0aNQqasuD7wjBi@d_W^zY2t!o!; z4}LL^@=b&0b=S3XGK>SQoKM-;YBWvb7%puc$vjO<#%^B%-_Ek?AZVWz>QEz=;hdJ& zV1)2V^ZDy(W4mg~&@uI`RDNZU#o?)-Fzmq$xf$7LRT1u796M8ctalU3B{=ykm7fHE z7lJ$XJ)h?_`k9J>BO^g)jI`s_%Z_XfC>h%=XMic)`^VzeM9zMm_*&%-s6z1NcoRMn ziMB<8$TB8F?e!Qo^;hNz6pQ<#f}5fyxJJk4?%37Iw-K4~)&L2~dvSK+A)E8(*)%*h z*{|z&2~xK%`p<74)>`wxhFi0)45-p)x`*?P^&*b!YB4v4h(}bpO&RkjhT2?LGaWLw zq{Ix>XHx(lq!M2xsU-sM$5&B@irj<-wmClwZ&_`Ia{wlCB1{XOe#q;EAoN+Xpx9;EbhjO6Ws3^iccK|DzjFg zbXOj#D;)g zPKLC5NuM;?F%64c%QJ#~KoVbF)IVdftSW}c^BGQ80KD5{g9UIKP?uGKN@|>pv3vLW zqU;z#XBVW!!s)fM;<7sv1Dh`_wy2KG%K(SbDpJ18GBx9XbG(kg%6Avy=>>aAu5%*| zQXesAb9G+#ma+ZLPrt>%*waf9+?WF1AkU-^pP4Qb$M#-WE09-~=06;1HWO>vjzg)y zNApJp%j;Dg65d}Ae2`HXQYcR*ju;eJ6wV^%*h=Y+cD-o@#msojiE6C=_NnNUK>q;pOQQBBybKe zMa7vd!-_b}ijTVaJ^-eoI?Idv`mnEOuyDp}&~FS)u2Ijx4MmZcQr8E9xKIl$>{c7Udv(*#%z8){r2Pm}wBLLWzsrlC?Ywd+3@YdZA@HBB?u-n5 z8?A9W?AAKAc7LPWb9&JB!jtd3&LciK(O02C-y+xg!f(a@l7Fz~#%}dkZf01@gv|cI zyAkA)GtEi@O2c*c@N58=CB<3|Eh46A(@kF)Bmh z_~iBP*U3*D6^DF7G5G0X!rnFGhN9&7YJ_}oBl9?>(k;*snMFdgh_|2OPXiQuXx~md zOMFomX;#mLYuOH53{lq$ZRodjANjg?L$_QINs-@&SrFqwM3~umB!|>8-IjJ*CNsUy zh|Vbi&RA^S2(Bb-mWCQkD=*Wyy1MnGf*8dRq$pc2)3*3w>K#PBtMdYPE|tAV6$AV+ z1zFSTrP5l;NWgkbyExeHwWV~=Fb*Q{LD$S7ycpuiynjye+yROHL?NxnIV5t;-x=)4 zvKxibpcMs|I`IM@*=Ph+&5gfmtDK%OXJt?C#tCm;v3oi*O6fyBY*Z{a zrgC?Ghzlp*1~Ls$V$7W>l_&We4}unegMI$(%JtUWO^1uCBMs`PKjeOE#Djksao2E3 zvvJNc9wh%nH7n;-?E9Z={lQFJpRqhQgh{XSj}vGQ)(!b4v?KQdg-*EdXlrRtda!n&CkW zS{F*Z{dD3bKJY^QAe#UOB)4eN{tBSAq3?NauETDv0c1SSjMO7_a+Fv;6ra*~-_G;2 z$qVE7ZDL=>J&c662bh!0G+F4mMyc~-gCm_M+u4oV>? zt*w-9G{L2*HN#PPnDn{+TElx1s%HKD2WR1=ffraKl(hkC^}q6m2}eTsDv`3opHEog+wH`RZCjs~PvE z{N(FO*Ik<_76v$l+g`Rwpv|wi4usP^CPE@y{rkF9)lv22%mTkicn;|X`T-z;2CZC} zCpy&B$4$ABKt`zUS+v8EEIRlNzLw_KVprv`-+Qe1{YG0$V=i?zlNFFvN3Xw^<3h7m z)r%DU1z>y#YsB=`$@qtcOm3koQIl@jvnQn^`O7yTHR)G45IccOPx2`f#z+KxXUz1V zabWUTlN*L2knCR1WcEEUp}kHmIpbc+`;CS|I#Z?(fRCximBMv z8O;K$;4Y`ZYPY|agJvE5&0fo^mY9aiz+?$R5C|1jS20ncz@~}%NY6&z7`)r^L&9lJ zAbrgNGPdDxbo>_&Glre-EZ^1Bh-p;2`Y;C{xDuF1s_Nn&E7 z0Ry9!1tYY*x<|b>{-8M%XWdM&Ngjw-7d_Me;2OtWxM`}Ec4h|(u^2a&@$BF|L(0lR z_qN0j`xl>tq+-U$H*W*_6t1YQR#=jW&+^G>H;G zBVb~N+nJV%e*zlnGoHHp?L@wZpU`w0PV8HPs)7sgNXQr5A*3qUi#FviW|l|B=0Eu- zz^Q}oQ=Xwgzizf18&BE@-5|z6CP1fX)a~=|EBw|&cmvdzMqx7P4b!5my55JL#LHUD z2YTa6p${(5u(RcWM!OqsLqGNnmS{b1NmG|Iyo9#~)E{c7Z*GNlycc__sdx|aJ5NLV z%CCdxDBiP@Mt$nI@B^2T_f74CL}=tGk3G{O@Y&jaYJ4jXd2c;ZI#B|{bw+U$58(Zx zGnDH7j((_Cu>*lgm-W{jYl@@@yyh&FacPA%G@W!fnIDZwP9!XixnpbBhSWH8nlqY5 zc;u@miO@RS)Z6T76s zMfScLL}E_vsm%>xIxFn{ntM|gD)Fzw$cThp z>_wNpmy;u6B0HoTClv+1TMJ`X^5Rwb#V@mo+u#}Zm2WCCLjyLV5}=0m2m5*D;T|tG zO|f`WJ7S$=ScgqyxBT9XO0b?i%wz(6Lqw6gcFtikJ_n zcfj79MHEFaPHlhi%D6{gjRN1abk;qwDr=~PdJ4{<-!|RuAWr`tge1tC_c>F1>aFaw z5a`3H(zQ1+&^Gb_l|H1*7XarC7c}hG72E2p-B#}yf-6^p4hG|F7v8O!O)d3BF(asr z(yeS*cWr|fcY5wfZpCW30$aX;4A+kqGeUU}WRgT3_`Gpc*4@4)km8c)iK8!g?$ z#qfS!TFl#35gkos{V?oJgd~^(ed0&;5}tg^Ez^NW2G}cRqq%U1(qeVc568|FDQBMq zq>1w<+Zcp*YSp%^#C)gooBBADwJklVMv;@}nbmmh!t-NHLAMqu6_l(xuHL|Kh7Bc< zVT5Z8-~j;4-dA04Tu-O11yl?4@g0w4Q0k=HD0x}mJJQ?A%q%K_5X1V01c2q11{l>ISLiN8|VVEq(^2Zpfa;h`7z3G?|T zgGC`8z(aA&Kl2RJP7h0bd%h-a0e`nN0rah!`fM$lPg@ou`jc97IP$tm&XB6h_MZ@2 zZvluug!D6{?Trgk4yU{3M3W^Ns{v61&lHG&lNLc~2DRtVM&Y8ke^_o36v32)11r#G%PYZTrUWoPe zoZB8Ba#~ykJS8NLC67V5hqCU`qKC9DZI;B`v#z3Ar!VoKmfM$T+ya{Jzr+ZZH+ z9OL>wfGgrNr)?%V1t)S+Gz9UQwTxd;gMok0dk@IB zr*e$ulyib=Qk&Ll)#-`3k&S*SF(-H3j}g4*&>f$)k(1$iREy*cksV^WXv~e25nhh5 zycx|RlGOM$z{jS#%EjbZ-Mk0?h|J_p+vnM5ZEXHeZr!FTA%uQnXhMU}f&+e;?nCdW zY3x`&*39&%Al-imm+`rJ;$O%Pb0D(qXtgM?@U)x}OfKwcn&(*1HCMWa0qOmNu5+h8 zauappDWe^Aq@be`p|z`QgXDJ(8k=%OMa@3&^CU02e@^#(sU5TXeKZ&$2;5M#p@WLm zXa>XW>^`H;Dh@+0+w!bXTA{|{rkNB4xO?$sS5ZND_hRauJ^9Q#p*ey`@-{njHOBNX zq|l%yp^5VHc4G(fWF+bx!z3{slUpNQsXuhi(w7|f z&iy_U>ex^Q>h@xtyLg6pnZ7iJ71(}=1d_5zuq`aA;^W#>)}XlQBSBZw^P`AzQ=}hE zA8HQ!)!z?1eK!J^xhs_nSF;+ zwZ?YaDYb^_IdJ-=c^zq&&O_;As)eTTPDut5C5w{0J>>U!cgg4`m)S3v5Fz`L=D;z)PS)dXL2Wc|D9F*yCp%B$A zrOiO_Zk5e*P-M> z3>$FoG#qMn6R1;E`f9cDf}t8HM0;#6W=Gm{!Qnk@FtP^EW&Xauq0 z6x}!8Qz^0DRNBwacUhEz)6Kmo;ruHykW}Swed(0I76TBArHak=<$-2htbYOCbs4x^ zQWa@VVHppcY0_wkEF#s-DKN@eh$xn6`5Px;~K zZ-D1>$v96`j$^M4Mu05_NX!#k)L87B@0cx~uo6E5;AmC^?Kv~C`effz2ND)MSiU<% zq}-$(X#9x3C}v^HC7VT7Q9u>^u3AsRONPLO^Nehzf!A1rftqdO{Za2-tsuVr?x6a; zf;HpPj=+s|g7CtJBhuM3W0n4r-Id-LNv}-&rE}rcI8(PF$Z=G-8}`*oi=#i z*W&EvlJMfXd2?TXJG6i!de^MbG%-fML>SLy>6D!Rbtk_jxth}f4Y@fAxoZSd6Ukcf z6#t_3gUfhZz=9FE6YRIY+^d|ZDMOg68l{U=1W1p>3e-tdfBzgENg}GCR@?>h69}NlId+Sk#DHw~1&wS5FVRa60=1mdYIs&cYr?V0zhhqsy z4t{^C+qFuYZ#Kp~TR70NI&Uu7J1>@1p2PFe1mR$4RBN#5sDHhIcseMu37ZA-G;0Xt zeX35ijqat7dn3$}dFN|*nwz~y_?^7^!D2-Y{-dWE zNLf;Gl`gCkKV@(WO=J_Mq7VwOZavFnqZ@bi};#RM3|IJL)%fHfOBI;{A zzq*9|en~sqf(HxyD!t}nR5q>7D}M!zJ+d@Ol1pCaMocZ3e@3erh}(%m@sqOwDLa{Y`65~L)d$jt!Bb7Wi}K#$ ziMF2%rXR&mDfbK7$U|(GcBOI0*o+5g@BolnP1hf^r)o)zm|A(+X43hslfx1I%|hNwdXC@i-)VA7?5 zcYlq!sXU%;DB!F)_u|Acj>_5uji9OcDlESc34GI1)N4rN$O7@YmzVrno|#((PtB0r zse;Q&kd9%?%t3zn9xM2dry5B3NHn14OX@ywP2Kw2I7GsADTloj@3Dnf@2E#UQ$sU~ zbNSUf2a&K(#pkIl)&4F9$tod!Zj^-FrOgJGf@8gC%F70eeXqUOw{xuy60*kaC27M% zt^S^)Dmt${3|QXEx$Ol!)V9{j{i2JNT?KsD4<&3-SL zYHLSb#<4Nkk?;XP0Z#D_1n((I$Zivj(q*7%Cj~hG|1o+{(#-Z_)#cr0)&1(5K!*%P zilC7G4XZlSP;zLS?P?giEs!8z>Oz8*Iuj^FwOVM;T}B#}-97Y&=^XHRBbH8gt0!+; zq0bY?Xvtd@F!npO-C_5gZ$jevZu#7FZHkg4{gZ~MCn}Yn`(%YDUg3BsVCC>CRgZ<` z7Gd;kTV%Kk!~dLE(zG$^Yls4!qBNi>^A(F$L#Ta{exN_;=duFxM~cU>p?0@d3{4=* zu!`xzBbPGrqvGOHCp|qx#%)IonNKEg;&s+SXv)QUZk1$5lc$9zS_~8EB)$*EO4JKKB8)O%2$TesvR3-TbF`Yep8FRsqH+Y4(c~l z)3H!6{5YmY50wSE@pfy_>Y@n~8{K-s1H#Z~F=83VVdc3iUianB$@;ZsWnE7=qnwv@ z>?dn}D2J#TgLr;t)UwgA=KF@<90r<4oD(#u*jF{FpTsd&+>qdyI`cJ_fJ5z3xZY*| z!qvAkmUtXS4()QK#IUQ3(a_TQ)QQ2Yl7h0#gGYrm6nCF=wmIeQ{bm=o!yXB$CVO&~ zanaT!6<)s)Cl7;;5rL~gm0#iwu=~ahxUl}dkB&#msyeVvvK3w^dK>l{uS!lUI`mq#`OchO9R zH6-2x5a6eWS%yJ%JkMQ{oOALG*^%)%ccYI;&Va9GD$5xn^C~MYFT$N$M;I|bvd*gj z3lfJbL|my|inpw%L*k+}iVjomb$z&d%n(kmu_KsSEaG>V*5h93@ND|PM;dI7A2 zHuP%*!Ou^XS=jG7jBg}>f1>&$LcsRKi$RSvu*sl59# zCwG;)XQ`=wpeO7hd~(S!P#Ydp9jzIYri+1_&=yTWP zmgH|8ye?WnVk5#7j@Mx(dN1WYJTM){mgqBNqgh@Si{GP3@6^AzY7-`{rY`c z+2S!c3B0lR%)+bMe5&Gwau5`j&`6y~Ke6zJR~1oco7f8hvL9%yX1!#c!=5klZ(w3pAj?tFL)GyD8=)b=$ za_IA67RbrZ3-7!=l3V}h=r_=HZ%dPAkUkak{6jn0@%!u>nXwEZFDqL{AojrBs(vb8 z60!6Uz@@Lid1wfxy zOD|omZ&Ni__ki)%okhu*?{=J_RnJB_aM$ABi(NR^8Z-(}*b%q3w1qKd+z{rQyGOs~ zKNZ4q?p8OC`89{)T@gUI@B!w`jtwt*hF=T}He`T;!#Am|sDlLGxNsn}o^MO?xS8H! z6(*KoHCQmKbm4Jy$Uz9jrKm=-D;2M09i}c6kk#4)s2Zodr+BmUg>!W#-OH2?sWZg7Zz(hSN!{@6|jvGL!)k zltYyBZno+#4_a-+E}nEp9GwK!stk==~G^gKGgf~S!^r@sVV$sht( zE=lM3Uy|LTKHWVb&E)5x4Cu=ZXli>Ouf_^8aD$0{98PJ+k5qDXLIba;_A$t==Ar0? zP{t?vlN^L`p`j2Zba{Mk_m9S*`;#vL8V5 z5t|JP-CCOqM+jf-;1_c(EG~ut=6)ERQhxYFcOiBW!3A|pufdoOiCSZ(-ke)BEZSU@ zXH`^vx@dEeM%+ngd{GW4{Lq`@HWWSh#Y4*SC*eABZ|56e9O>`^^Pz93YkUu>$>O~1 z;v8|rqMHrPT>;GKaJz1Y=M$YhQHl?eyHK3H^Gd*wtyVlmawyl^C>3uINlpnJ@^GI{ zZ;32G;HB}~Tl$6P7yX5cbE0s!LoYFS)DG(C7N{&3r|7+tIvHRxPqO&s&ybcC+y+h4 z6xA0=CtP3w34?r9DG5sxDiZf%&jmThfQJcN5U@{w&A?&Tmfpvin{G<|IcrlKnVTZ! z;bl>=YfDA#vA>A~ui7x`G=J|k-scG|BoIWNg-e8QK2iu9Ne1Dx;5Uh=bV>qYg6o zfw1-BR%Iin;5Ks$ErMzQdYf88z>(!od~_e>NqqxI_5~ZTt$X7jrscXw=1za7?rT=P zs+EUI5P1eI6SeV-$cH!8mz)>9(VjkCRk`HBo#M=KpWP4QqKT2v54N_}Y*`2r4sR9n zS!;D0ILtItuo+`*S^Ub2O6OwhKJe)C#TH6(vVB{sk=bv0Mx)C^3-qfyGVtrHH4Mp}&%h%1zThj*L$#Gwo2@$zd@e9G4WBbo@Tz)dvqH zkBw3!O{(~)2gzWFKozN-_oU4k<9aLxmu9#eqO^lzrKl{(HE+(oK%5GZQo_6?Ji<{i zC?bGdbg{?9$XV=hAJFr5FrUh&NbPd41M{QF)6S>wc@~F=-57eD96bSKgbU9L(ymtR zP8BvnPMahoPS`>tc zaf$qB6|ue1EtTTIAlRI`C}Wd=He#3hgj-PXo^<3pajrv(Q9oUdeTK!wc9}LJNQ6O% zNwh`fyy!Cjr7ox9{P)4(XYp1;gtaN81(~2O7}G{A!-CogenK=)CRZ_s016e7|G%7bC{X|R2aB% z)upg~VpI2i~qYO0M?6O1YQg=xOcDBRthoL%xWq+x7UCk5A+im)@3I{Bxt)9F2g5 z(_xO%8q=CDPPFc=GO@6wxCx-j!M{=q^_!YS;w7hlr-A*|e9=*op@U6>WzAQDj*cf` zF21T$7ZdBClYS2QS>)a6*xoqh=CqLT;EF)1rExvQVcfYu!-HCm(lYKhMdV$6c4vcY zhmjh0Q(m=3Mlyg6@fMg^dKmD7s@6YH`ROC9%h0Po8WnXIRdR9WtO8Wx%a_2;Jp$#; z;La;^VrC$ILSuClv7+X3fY=`{fv*u~!*)&FQenj^>XHpK|9ZRcsWb@L}JOMG5U z#qm!m>-1e3m)hX}x$%xss^LN66Se=Ku5>cGhG27IzWiesA7Og7b2WVD#riZmGZ0r}K_6qwc+t zu5IPt>mVg~`U+!>MMeFkVg8d=uR3CkuZsnaEBwdE{*|Ho*RAfnWKi}`pLPC|JO7ot zT>ZlMdd{#D=C54*C(pRdzURyh2ov{O3kT<#if;Ih|k+l}AxnEuN@J1=?qoTE{?m2sY- zgvgJ~Q;};fjCP_7I`MqC#y7~{SqjhY*c_n?f_OL`Q|7rG(OS2J9vR*vPnkN#<8w;? zUe8eNz9ZfVs<@9?5ZyzEj=%U-3&1QQv6RW!e1Fh871KB&$wDjTv>&8|f7fO`RIE&?o!UdoL0+c16a*p+JN z=h)3)2j;SxK2UA zj7kXdVqq>66#p@fzcR0XvK+YY-HA&VP!F+syT1wRe0JbLxeR43UaH=ZVRXoX=jc3T ztU9L5iKFAt4;RwbH;WjG(z9Q?ykoy%3Vt1teoCw5Iy0~jEeDsX+`?R9LVm~I`7gtz z-Ef3apF#RwkF0Jer-M=Y{m8Z4vq;u&c|rKJJejs$6yyNKNLEP|vxeo}OP52MJFCN= zFdEyca|PFuVA4?YgN>6-;@s`QSxmmQ|$9RG%YBCMNWtC%w~#uQJ^vrbd(>QU!( zdQNaTGDE(jXp*Md-;3Z}dGI*y-3J+g|1$S~ZVdi?v0%nC-aq1BhhDBt8@5v#vUp{?H1wbQ?k{Z3 z|G6a5blUU#l-ihpNK>Yj+@QB6eh-%4<(&y?!AmoE{{YlkdB$eo`dUpib>UFCkB_wV zQE1{%@^N|t7uR3@`D1^(kWG)|8w-zo;H;dA<8d?^Lk#l%t(UqpZOq^vhKps~dwckA z-9TI8NT*0g_@e#^> * <> +* <> -- include::overview.asciidoc[] include::monitor.asciidoc[] +include::settings.asciidoc[] diff --git a/docs/uptime/monitor.asciidoc b/docs/uptime/monitor.asciidoc index d54fd02c7c0691..8a4be1f11a7219 100644 --- a/docs/uptime/monitor.asciidoc +++ b/docs/uptime/monitor.asciidoc @@ -5,21 +5,24 @@ The Monitor page will help you get further insight into the performance of a specific network endpoint. You'll see a detailed visualization of the monitor's request duration over time, as well as the `up`/`down` -status over time. +status over time. You can also also detect anomalies in response time data +by configuring Machine Learning jobs on this page. [float] -=== Status bar +=== Status panel [role="screenshot"] image::uptime/images/status-bar.png[Status bar] -The Status bar displays a quick summary of the latest information +The Status panel displays a quick summary of the latest information regarding your monitor. You can view its latest status, click a link to visit the targeted URL, see its most recent request duration, and determine the amount of time that has elapsed since the last check. -You can use the Status bar to get a quick summary of current performance, -beyond simply knowing if the monitor is `up` or `down`. +When two Heartbeat instances are configured in different geographic locations +the map will show each location as a pinpoint on the map, along with the +amount of time elapsed since data was last received from that location. + [float] === Monitor charts @@ -32,12 +35,14 @@ date range. These charts can help you gain insight into how quickly requests are by the targeted endpoint, and give you a sense of how frequently a host or endpoint was down in your selected timespan. -The first chart displays request duration information for your monitor. +The Monitor duration chart displays request duration information for your monitor. The area surrounding the line is the range of request time for the corresponding -bucket. The line is the average time. +bucket. The line is the average time. Anomaly detection using Machine Learning +can be configured in the upper right hand of this panel. When response times change +in an unexpected way the time range in which they occurred will be given filled with a color. -Next, is a graphical representation of the check statuses over time. Hover over -the charts to display crosshairs with more specific numeric data. +The pings over time chart is a graphical representation of the check statuses over time. +Hover over the charts to display crosshairs with more specific numeric data. [role="screenshot"] image::uptime/images/crosshair-example.png[Chart crosshair] @@ -49,6 +54,6 @@ image::uptime/images/crosshair-example.png[Chart crosshair] image::uptime/images/check-history.png[Check history view] The Check history displays the total count of this monitor's checks for the selected -date range. You can additionally filter the checks by `status` to help find recent problems +date range. You can additionally filter the checks by status and location to help find recent problems on a per-check basis. This table can help you gain some insight into more granular details about recent individual data points Heartbeat is logging about your host or endpoint. diff --git a/docs/uptime/overview.asciidoc b/docs/uptime/overview.asciidoc index 098ce12a569911..71c09c968e5124 100644 --- a/docs/uptime/overview.asciidoc +++ b/docs/uptime/overview.asciidoc @@ -21,12 +21,12 @@ This control allows you to use automated filter options, as well as input custom text to select specific monitors by field, URL, ID, and other attributes. [float] -=== Snapshot view +=== Snapshot panel [role="screenshot"] image::uptime/images/snapshot-view.png[Snapshot view] -This view is intended to quickly give you a sense of the overall +This panel is intended to quickly give you a sense of the overall status of the environment you're monitoring, or a subset of those monitors. Here, you can see the total number of detected monitors within the selected Uptime date range. In addition to the total, the counts for the number of monitors @@ -49,6 +49,17 @@ way to navigate to a more in-depth visualization for interesting hosts or endpoi This table includes information like the most recent status, when the monitor was last checked, its ID and URL, its IP address, and a dedicated sparkline showing its check status over time. +[float] +=== Creating and managing alerts + +[role="screenshot"] +image::uptime/images/alert-flyout.png[Create alert flyout] + +To receive alerts when a monitor goes down, use the alerting menu at the top of the +overview page. Use a query in the alert flyout to determine which monitors to check +with your alert. If you already have a query in the overview page search bar it will +be carried over into this box. + [float] === Observability integrations @@ -60,14 +71,3 @@ Docker related host information, it will provide links to open the Metrics app o for this host. Additionally, this feature supplies links to simply filter the other views on the host's IP address, to help you quickly determine if these other solutions contain data relevant to your current interest. - -[float] -=== Error list - -[role="screenshot"] -image::uptime/images/error-list.png[Error list] - -The Error list displays aggregations of errors that Heartbeat has logged. Errors are -displayed by Error type, monitor ID, and message. Clicking a monitor's ID will take you -to the corresponding Monitor view, which can provide you richer information about the individual -data points that are resulting in the displayed errors. diff --git a/docs/uptime/settings.asciidoc b/docs/uptime/settings.asciidoc new file mode 100644 index 00000000000000..55da6e802bec60 --- /dev/null +++ b/docs/uptime/settings.asciidoc @@ -0,0 +1,27 @@ +[role="xpack"] +[[uptime-settings]] + +== Settings + +[role="screenshot"] +image::uptime/images/settings.png[Filter bar] + +The Uptime settings page lets you change which Heartbeat indices are displayed +by the uptime app. Users must have the 'all' permission to modify items on this page. +Uptime settings apply to the current space only. Use different settings in different +spaces to segment different uptime use cases and domains. + +As an example, imagine your organization has one team for internal IT services, and another +for public services. Each team operates independently and is only responsible for its +own services. In this scenario, you might set up separate Heartbeat instances for each team, +writing out to index patterns named `it-heartbeat-\*`, and `external-heartbeat-\*`. You would +create separate roles and users for each in Elasticsearch, each with access to their own spaces, +named `it` and `external` respectively. Within each space you would navigate to the settings page +and set the correct index pattern to match only the indices that space is allowed to access. + +Note that the pattern set here only restricts what the Uptime app shows. Users may still be able +to manually query Elasticsearch for data outside this pattern! + +See the <> +and {heartbeat-ref}/securing-heartbeat.html[Heartbeat security] +docs for more information.

T}^?=Z+1YQhBucGlEvoHO;#1&Lh(CN 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⋙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

CZT$XzGOaws8V^6|Y%zIQQ9xFT{ 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

8% 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≪DP1Xk9B0 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⁣O0d;kW>w4TUJnm3u; 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 R+Rwn{_chV?ig(2Ee*!Vq^;7@= literal 0 HcmV?d00001 diff --git a/docs/siem/siem-ui.asciidoc b/docs/siem/siem-ui.asciidoc index 85253daaf29330..985138756622d2 100644 --- a/docs/siem/siem-ui.asciidoc +++ b/docs/siem/siem-ui.asciidoc @@ -35,7 +35,7 @@ image::siem/images/network-ui.png[] [float] [[detections-ui]] -=== Detections (Beta) +=== Detections (beta) The Detections feature automatically searches for threats and creates signals when they are detected. Signal detection rules define the conditions @@ -50,6 +50,22 @@ or the Detections API. [role="screenshot"] image::siem/images/detections-ui.png[] +[float] +[[cases-ui]] +=== Cases (beta) + +Cases are used to open and track security issues directly in SIEM. +Cases list the original reporter and all users who contribute to a case +(`participants`). Case comments support Markdown syntax, and allow linking to +saved Timelines. Additionally, you can send cases to external systems from +within SIEM (currently ServiceNow). + +For information about opening, updating, and closing cases, see +{siem-guide}/cases-overview.html[Cases] in the SIEM Guide. + +[role="screenshot"] +image::siem/images/cases-ui.png[] + [float] [[timelines-ui]] === Timeline From cc0e83827d01c1520a2b81e03fe389fc326e89de Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Tue, 21 Apr 2020 19:24:41 +0200 Subject: [PATCH 45/54] Run local prettier script (#63959) (#64064) * convert eslint scripts into TS * update settings for BWC * add script updating styles to pretter v2 * use default prettier config * run npx once, point to the correct head branch, do not add to git * throw if run script not on a clear branch * run in a batch, add logging --- scripts/prettier_on_changed.js | 21 +++++ src/dev/eslint/{index.js => index.ts} | 0 .../eslint/{lint_files.js => lint_files.ts} | 5 +- ...files_to_lint.js => pick_files_to_lint.ts} | 8 +- src/dev/run_prettier_on_changed.ts | 87 +++++++++++++++++++ 5 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 scripts/prettier_on_changed.js rename src/dev/eslint/{index.js => index.ts} (100%) rename src/dev/eslint/{lint_files.js => lint_files.ts} (90%) rename src/dev/eslint/{pick_files_to_lint.js => pick_files_to_lint.ts} (88%) create mode 100644 src/dev/run_prettier_on_changed.ts diff --git a/scripts/prettier_on_changed.js b/scripts/prettier_on_changed.js new file mode 100644 index 00000000000000..f9598110f91fd3 --- /dev/null +++ b/scripts/prettier_on_changed.js @@ -0,0 +1,21 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +require('../src/setup_node_env/babel_register'); +require('../src/dev/run_prettier_on_changed'); diff --git a/src/dev/eslint/index.js b/src/dev/eslint/index.ts similarity index 100% rename from src/dev/eslint/index.js rename to src/dev/eslint/index.ts diff --git a/src/dev/eslint/lint_files.js b/src/dev/eslint/lint_files.ts similarity index 90% rename from src/dev/eslint/lint_files.js rename to src/dev/eslint/lint_files.ts index a76edeb2eb865f..80c493233f39ab 100644 --- a/src/dev/eslint/lint_files.js +++ b/src/dev/eslint/lint_files.ts @@ -19,7 +19,8 @@ import { CLIEngine } from 'eslint'; -import { createFailError } from '@kbn/dev-utils'; +import { createFailError, ToolingLog } from '@kbn/dev-utils'; +import { File } from '../file'; import { REPO_ROOT } from '../constants'; /** @@ -30,7 +31,7 @@ import { REPO_ROOT } from '../constants'; * @param {Array} files * @return {undefined} */ -export function lintFiles(log, files, { fix } = {}) { +export function lintFiles(log: ToolingLog, files: File[], { fix }: { fix?: boolean } = {}) { const cli = new CLIEngine({ cache: true, cwd: REPO_ROOT, diff --git a/src/dev/eslint/pick_files_to_lint.js b/src/dev/eslint/pick_files_to_lint.ts similarity index 88% rename from src/dev/eslint/pick_files_to_lint.js rename to src/dev/eslint/pick_files_to_lint.ts index e3212c00d9e0de..b96781fc3a611f 100644 --- a/src/dev/eslint/pick_files_to_lint.js +++ b/src/dev/eslint/pick_files_to_lint.ts @@ -16,9 +16,11 @@ * specific language governing permissions and limitations * under the License. */ - import { CLIEngine } from 'eslint'; +import { ToolingLog } from '@kbn/dev-utils'; +import { File } from '../file'; + /** * Filters a list of files to only include lintable files. * @@ -26,8 +28,8 @@ import { CLIEngine } from 'eslint'; * @param {Array} files * @return {Array} */ -export function pickFilesToLint(log, files) { - const cli = new CLIEngine(); +export function pickFilesToLint(log: ToolingLog, files: File[]) { + const cli = new CLIEngine({}); return files.filter(file => { if (!file.isJs() && !file.isTypescript()) { diff --git a/src/dev/run_prettier_on_changed.ts b/src/dev/run_prettier_on_changed.ts new file mode 100644 index 00000000000000..deca4fa1be3ce5 --- /dev/null +++ b/src/dev/run_prettier_on_changed.ts @@ -0,0 +1,87 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import execa from 'execa'; +// @ts-ignore +import SimpleGit from 'simple-git'; +import { run } from '@kbn/dev-utils'; +import dedent from 'dedent'; +import Util from 'util'; + +import pkg from '../../package.json'; +import { REPO_ROOT } from './constants'; +import { File } from './file'; +import * as Eslint from './eslint'; + +run(async function getChangedFiles({ log }) { + const simpleGit = new SimpleGit(REPO_ROOT); + + const getStatus = Util.promisify(simpleGit.status.bind(simpleGit)); + const gitStatus = await getStatus(); + + if (gitStatus.files.length > 0) { + throw new Error( + dedent(`You should run prettier formatter on a clean branch. + Found not committed changes to: + ${gitStatus.files.map((f: { path: string }) => f.path).join('\n')}`) + ); + } + + const revParse = Util.promisify(simpleGit.revparse.bind(simpleGit)); + const currentBranch = await revParse(['--abbrev-ref', 'HEAD']); + const headBranch = pkg.branch; + + const diff = Util.promisify(simpleGit.diff.bind(simpleGit)); + + const changedFileStatuses: string = await diff([ + '--name-status', + `${headBranch}...${currentBranch}`, + ]); + + const changedFiles = changedFileStatuses + .split('\n') + // Ignore blank lines + .filter(line => line.trim().length > 0) + // git diff --name-status outputs lines with two OR three parts + // separated by a tab character + .map(line => line.trim().split('\t')) + .map(([status, ...paths]) => { + // ignore deleted files + if (status === 'D') { + return undefined; + } + + // the status is always in the first column + // .. If the file is edited the line will only have two columns + // .. If the file is renamed it will have three columns + // .. In any case, the last column is the CURRENT path to the file + return new File(paths[paths.length - 1]); + }) + .filter((file): file is File => Boolean(file)); + + const pathsToLint = Eslint.pickFilesToLint(log, changedFiles).map(f => f.getAbsolutePath()); + + if (pathsToLint.length > 0) { + log.debug('[prettier] run on %j files: ', pathsToLint.length, pathsToLint); + } + + while (pathsToLint.length > 0) { + await execa('npx', ['prettier@2.0.4', '--write', ...pathsToLint.splice(0, 100)]); + } +}); From 7ae74e2b58861fd1d8d7605e70ce1eb67e2c186a Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Tue, 21 Apr 2020 10:39:54 -0700 Subject: [PATCH 46/54] [7.x][DOCS] Add file size setting for Data Visualizer (#64006) (#64091) --- docs/settings/ml-settings.asciidoc | 9 ++++++- .../ml/images/ml-data-visualizer-sample.jpg | Bin 579529 -> 355490 bytes docs/user/ml/index.asciidoc | 22 +++++++++--------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/docs/settings/ml-settings.asciidoc b/docs/settings/ml-settings.asciidoc index 6528568e868900..b71e1c672756ac 100644 --- a/docs/settings/ml-settings.asciidoc +++ b/docs/settings/ml-settings.asciidoc @@ -8,7 +8,6 @@ You do not need to configure any settings to use {kib} {ml-features}. They are enabled by default. -[float] [[general-ml-settings-kb]] ==== General {ml} settings @@ -19,3 +18,11 @@ If set to `false` in `kibana.yml`, the {ml} icon is hidden in this {kib} instance. If `xpack.ml.enabled` is set to `true` in `elasticsearch.yml`, however, you can still use the {ml} APIs. To disable {ml} entirely, see the {ref}/ml-settings.html[{es} {ml} settings]. + +[[data-visualizer-settings]] +==== {data-viz} settings + +`xpack.ml.file_data_visualizer.max_file_size`:: +Sets the file size limit when importing data in the {data-viz}. The default +value is `100MB`. The highest supported value for this setting is `1GB`. + diff --git a/docs/user/ml/images/ml-data-visualizer-sample.jpg b/docs/user/ml/images/ml-data-visualizer-sample.jpg index 6c2e018932717f478b9f92dc412d1904d52d6893..ce2bb660d7da1a3cea161afcb07e6223d77e038f 100644 GIT binary patch literal 355490 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∾l4lWCBm1k&WWD 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